e-virt-table 1.3.26 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/index.cjs.js +16 -5
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.es.js +2993 -2520
  4. package/dist/index.es.js.map +1 -1
  5. package/dist/index.umd.js +16 -5
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/lib/Autofill.js +3 -2
  8. package/dist/lib/Autofill.js.map +1 -1
  9. package/dist/lib/BaseCell.d.ts +15 -2
  10. package/dist/lib/BaseCell.js +55 -15
  11. package/dist/lib/BaseCell.js.map +1 -1
  12. package/dist/lib/Body.d.ts +8 -0
  13. package/dist/lib/Body.js +230 -0
  14. package/dist/lib/Body.js.map +1 -1
  15. package/dist/lib/Cell.d.ts +9 -18
  16. package/dist/lib/Cell.js +143 -181
  17. package/dist/lib/Cell.js.map +1 -1
  18. package/dist/lib/CellHeader.d.ts +9 -2
  19. package/dist/lib/CellHeader.js +80 -44
  20. package/dist/lib/CellHeader.js.map +1 -1
  21. package/dist/lib/CellImage.d.ts +15 -0
  22. package/dist/lib/CellImage.js +72 -0
  23. package/dist/lib/CellImage.js.map +1 -0
  24. package/dist/lib/Config.d.ts +18 -3
  25. package/dist/lib/Config.js +72 -25
  26. package/dist/lib/Config.js.map +1 -1
  27. package/dist/lib/Context.d.ts +5 -1
  28. package/dist/lib/Context.js +22 -3
  29. package/dist/lib/Context.js.map +1 -1
  30. package/dist/lib/ContextMenu.js +10 -2
  31. package/dist/lib/ContextMenu.js.map +1 -1
  32. package/dist/lib/DOMTreeMenu.js +1 -1
  33. package/dist/lib/DOMTreeMenu.js.map +1 -1
  34. package/dist/lib/Database.d.ts +1 -0
  35. package/dist/lib/Database.js +105 -94
  36. package/dist/lib/Database.js.map +1 -1
  37. package/dist/lib/EVirtTable.d.ts +5 -0
  38. package/dist/lib/EVirtTable.js +24 -0
  39. package/dist/lib/EVirtTable.js.map +1 -1
  40. package/dist/lib/Editor.d.ts +1 -0
  41. package/dist/lib/Editor.js +10 -3
  42. package/dist/lib/Editor.js.map +1 -1
  43. package/dist/lib/Empty.d.ts +2 -0
  44. package/dist/lib/Empty.js +11 -2
  45. package/dist/lib/Empty.js.map +1 -1
  46. package/dist/lib/EventTable.d.ts +0 -13
  47. package/dist/lib/EventTable.js +33 -221
  48. package/dist/lib/EventTable.js.map +1 -1
  49. package/dist/lib/Header.d.ts +2 -0
  50. package/dist/lib/Header.js +46 -2
  51. package/dist/lib/Header.js.map +1 -1
  52. package/dist/lib/Icons.d.ts +8 -7
  53. package/dist/lib/Icons.js +22 -10
  54. package/dist/lib/Icons.js.map +1 -1
  55. package/dist/lib/Loading.d.ts +3 -0
  56. package/dist/lib/Loading.js +18 -4
  57. package/dist/lib/Loading.js.map +1 -1
  58. package/dist/lib/Locale.d.ts +7 -0
  59. package/dist/lib/Locale.js +26 -0
  60. package/dist/lib/Locale.js.map +1 -0
  61. package/dist/lib/Paint.d.ts +7 -0
  62. package/dist/lib/Paint.js +220 -67
  63. package/dist/lib/Paint.js.map +1 -1
  64. package/dist/lib/Selector.js +16 -12
  65. package/dist/lib/Selector.js.map +1 -1
  66. package/dist/lib/TextSelector.d.ts +95 -0
  67. package/dist/lib/TextSelector.js +250 -0
  68. package/dist/lib/TextSelector.js.map +1 -0
  69. package/dist/lib/TreeUtil.d.ts +6 -8
  70. package/dist/lib/TreeUtil.js +49 -40
  71. package/dist/lib/TreeUtil.js.map +1 -1
  72. package/dist/lib/lang/en-US.d.ts +25 -0
  73. package/dist/lib/lang/en-US.js +25 -0
  74. package/dist/lib/lang/en-US.js.map +1 -0
  75. package/dist/lib/lang/zh-CN.d.ts +25 -0
  76. package/dist/lib/lang/zh-CN.js +25 -0
  77. package/dist/lib/lang/zh-CN.js.map +1 -0
  78. package/dist/lib/types.d.ts +25 -3
  79. package/dist/lib/util.d.ts +2 -1
  80. package/dist/lib/util.js +5 -1
  81. package/dist/lib/util.js.map +1 -1
  82. package/package.json +1 -1
package/dist/lib/Paint.js CHANGED
@@ -17,6 +17,9 @@ export class Paint {
17
17
  throw new Error('canvas context not found');
18
18
  this.ctx = ctx;
19
19
  }
20
+ getCtx() {
21
+ return this.ctx;
22
+ }
20
23
  clearTextCache() {
21
24
  this.textCacheMap.clear();
22
25
  }
@@ -177,19 +180,70 @@ export class Paint {
177
180
  const { font = '12px Arial', align = 'center', color = '#495060', padding = 0, verticalAlign = 'middle', maxLineClamp = 1, autoRowHeight = false, offsetLeft = 0, offsetRight = 0, } = options;
178
181
  this.ctx.font = font;
179
182
  this.ctx.fillStyle = color;
180
- this.ctx.textAlign = align;
181
183
  if (['', null, undefined].includes(text)) {
182
184
  this.ctx.restore();
183
185
  return false;
184
186
  }
185
187
  const fontSize = parseInt(font.match(/\d+/)?.[0] || '12');
186
- const lineHeight = fontSize * (options.lineHeight || 1.2); // 默认行高为字体大小的1.2倍
188
+ const lineHeight = fontSize * (options.lineHeight || 1.2);
189
+ const layout = this.buildTextLayout(text, x, y, width, height, {
190
+ font,
191
+ color,
192
+ align,
193
+ padding,
194
+ verticalAlign,
195
+ maxLineClamp,
196
+ autoRowHeight,
197
+ lineHeight,
198
+ offsetLeft,
199
+ offsetRight,
200
+ });
201
+ this.ctx.textBaseline = 'top';
202
+ this.ctx.textAlign = 'left';
203
+ layout.lines.forEach((line) => {
204
+ this.ctx.fillText(line.text, line.drawX, line.drawY);
205
+ });
206
+ if (options.textCallback && layout.lines.length) {
207
+ const maxLineWidth = layout.lines.reduce((max, line) => Math.max(max, line.width), 0);
208
+ const textMaxWidth = Math.round(maxLineWidth);
209
+ let left = layout.lines[0]?.drawX ?? x + padding + offsetLeft;
210
+ let right = left + textMaxWidth;
211
+ if (align === 'center') {
212
+ left = x + width / 2 - textMaxWidth / 2;
213
+ right = x + width / 2 + textMaxWidth / 2;
214
+ }
215
+ else if (align === 'right') {
216
+ left = x + width - padding - offsetRight - textMaxWidth;
217
+ right = x + width - padding - offsetRight;
218
+ }
219
+ const textInfo = {
220
+ x: layout.lines[0]?.drawX ?? left,
221
+ y: layout.contentY,
222
+ width: textMaxWidth,
223
+ height: layout.lines.length * lineHeight,
224
+ left,
225
+ right,
226
+ top: layout.contentY,
227
+ bottom: layout.contentY + layout.lines.length * lineHeight,
228
+ };
229
+ options.textCallback(textInfo);
230
+ }
231
+ if (options.layoutCallback) {
232
+ options.layoutCallback(layout);
233
+ }
234
+ this.ctx.restore();
235
+ return layout.ellipsis;
236
+ }
237
+ buildTextLayout(text, x, y, width, height, options) {
238
+ const { font, color, align, padding, verticalAlign, maxLineClamp, autoRowHeight, lineHeight, offsetLeft, offsetRight, } = options;
239
+ this.ctx.save();
240
+ this.ctx.font = font;
187
241
  const availableWidth = width - padding * 2 - offsetLeft - offsetRight;
188
- let textEllipsis = false;
189
- // 计算总行数,向上取整round
190
- const maxTextLine = Math.round((height - 2 * padding) / lineHeight);
191
- // 将文本按可用宽度分割成行,如果为1直接就不计算了,直接绘制
192
- let lines = this.wrapText(text, availableWidth, options.cacheTextKey);
242
+ const contentWidth = availableWidth;
243
+ const contentHeight = height - padding * 2;
244
+ const chars = Array.from(text);
245
+ let lines = this.wrapTextToLines(text, availableWidth);
246
+ const maxTextLine = Math.round(contentHeight / lineHeight);
193
247
  let totalTextLine = Math.min(lines.length, Math.max(maxTextLine, 1));
194
248
  if (maxLineClamp === 'auto' && autoRowHeight) {
195
249
  totalTextLine = lines.length;
@@ -198,81 +252,180 @@ export class Paint {
198
252
  totalTextLine = maxLineClamp;
199
253
  }
200
254
  else {
201
- // 处理边界问题
202
255
  if (maxLineClamp === 1) {
203
- lines = [text];
256
+ lines = [{ items: chars.map((char, i) => ({ char, sourceIndex: i })), text, caretIndex: 0, lineIndex: 0, drawX: 0, drawY: 0, width: 0, segments: [] }];
204
257
  totalTextLine = 1;
205
258
  }
206
259
  if (maxLineClamp === 'auto' && maxTextLine === 1) {
207
- lines = [text];
260
+ lines = [{ items: chars.map((char, i) => ({ char, sourceIndex: i })), text, caretIndex: 0, lineIndex: 0, drawX: 0, drawY: 0, width: 0, segments: [] }];
208
261
  totalTextLine = 1;
209
262
  }
210
263
  }
211
- // 计算起始Y位置
212
- let startY = y + padding;
213
- const totalTextHeight = Math.round(totalTextLine * lineHeight);
264
+ let ellipsis = false;
265
+ const visibleLines = lines.slice(0, totalTextLine);
266
+ if (lines.length > totalTextLine) {
267
+ ellipsis = true;
268
+ const remainingLines = lines.slice(totalTextLine - 1);
269
+ const ellipsisLine = this.buildEllipsisLine(remainingLines, width, padding);
270
+ ellipsisLine.lineIndex = totalTextLine - 1;
271
+ visibleLines[totalTextLine - 1] = ellipsisLine;
272
+ }
273
+ else if (totalTextLine > 0) {
274
+ const lastLineIndex = totalTextLine - 1;
275
+ const remainingLines = lines.slice(lastLineIndex);
276
+ const remainingText = remainingLines.map((line) => line.text).join('');
277
+ const { ellipsis: widthEllipsis } = this.handleEllipsis(remainingText, width, padding, font);
278
+ if (widthEllipsis) {
279
+ ellipsis = true;
280
+ const ellipsisLine = this.buildEllipsisLine(remainingLines, width, padding);
281
+ ellipsisLine.lineIndex = lastLineIndex;
282
+ visibleLines[lastLineIndex] = ellipsisLine;
283
+ }
284
+ }
285
+ const totalTextHeight = visibleLines.length * lineHeight;
286
+ let contentY = y + padding;
214
287
  if (verticalAlign === 'middle') {
215
- startY = y + (height - totalTextHeight) / 2;
288
+ contentY = y + (height - totalTextHeight) / 2;
216
289
  }
217
290
  else if (verticalAlign === 'bottom') {
218
- startY = y + height - totalTextHeight - padding;
219
- }
220
- // 计算起始X位置
221
- let startX = x + padding + offsetLeft;
222
- if (align === 'center') {
223
- startX = x + width / 2;
224
- }
225
- else if (align === 'right') {
226
- startX = x + width - padding - offsetRight;
227
- }
228
- // 绘制每一行用for循环
229
- for (let i = 0; i < lines.length; i++) {
230
- const lineText = lines[i];
231
- const lineY = startY + i * lineHeight;
232
- this.ctx.textBaseline = 'top';
233
- // 如果设置了lineClamp,则只绘制lineClamp行
234
- if (i === totalTextLine - 1) {
235
- //截取剩余lines,组合成字符串处理省略号
236
- const remainingLines = lines.slice(i);
237
- const remainingText = remainingLines.join('');
238
- const { _text, ellipsis } = this.handleEllipsis(remainingText, width, padding, font);
239
- this.ctx.fillText(_text, startX, lineY);
240
- textEllipsis = ellipsis;
241
- break;
242
- }
243
- this.ctx.fillText(lineText, startX, lineY);
244
- }
245
- // 文字信息回调,用于画跟随图标的
246
- if (options.textCallback && lines.length) {
247
- // 取最长行
248
- const maxLineWidth = lines.reduce((max, line) => {
249
- return Math.max(max, this.ctx.measureText(line).width);
250
- }, 0);
251
- const textMaxWidth = Math.round(maxLineWidth);
252
- let left = startX;
253
- let right = startX + textMaxWidth;
291
+ contentY = y + height - totalTextHeight - padding;
292
+ }
293
+ const glyphs = [];
294
+ visibleLines.forEach((line, index) => {
295
+ line.lineIndex = index;
296
+ const segments = this.buildLineSegments(line);
297
+ const lineWidth = segments.reduce((sum, segment) => sum + segment.width, 0);
298
+ let lineX = x + padding + offsetLeft;
254
299
  if (align === 'center') {
255
- left = startX - textMaxWidth / 2;
256
- right = startX + textMaxWidth / 2;
300
+ lineX = x + (width - lineWidth) / 2;
257
301
  }
258
302
  else if (align === 'right') {
259
- left = startX - textMaxWidth;
260
- right = startX;
303
+ lineX = x + width - padding - offsetRight - lineWidth;
261
304
  }
262
- const textInfo = {
263
- x: startX,
264
- y: startY,
265
- width: textMaxWidth,
266
- height: totalTextHeight,
267
- left,
268
- right,
269
- top: startY,
270
- bottom: startY + totalTextHeight,
271
- };
272
- options.textCallback(textInfo);
273
- }
305
+ const lineY = contentY + index * lineHeight;
306
+ line.drawX = lineX;
307
+ line.drawY = lineY;
308
+ line.width = lineWidth;
309
+ line.segments = segments;
310
+ segments.forEach((segment) => {
311
+ if (segment.sourceIndex < 0) {
312
+ return;
313
+ }
314
+ glyphs.push({
315
+ char: segment.char,
316
+ index: segment.sourceIndex,
317
+ line: index,
318
+ x: lineX + segment.x,
319
+ y: lineY,
320
+ width: segment.width,
321
+ height: lineHeight,
322
+ });
323
+ });
324
+ });
274
325
  this.ctx.restore();
275
- return textEllipsis;
326
+ return {
327
+ text,
328
+ chars,
329
+ glyphs,
330
+ lines: visibleLines,
331
+ box: { x, y, width, height },
332
+ contentBox: { x: x + padding + offsetLeft, y: y + padding, width: contentWidth, height: contentHeight },
333
+ contentY,
334
+ lineHeight,
335
+ font,
336
+ color,
337
+ align,
338
+ ellipsis,
339
+ };
340
+ }
341
+ wrapTextToLines(text, maxWidth) {
342
+ if (!text) {
343
+ return [{ items: [], text: '', caretIndex: 0, lineIndex: 0, drawX: 0, drawY: 0, width: 0, segments: [] }];
344
+ }
345
+ const chars = Array.from(text);
346
+ const lines = [];
347
+ let currentItems = [];
348
+ let currentWidth = 0;
349
+ let lineCaretIndex = 0;
350
+ const flushLine = (nextCaretIndex) => {
351
+ const lineText = currentItems.map((item) => item.char).join('');
352
+ lines.push({
353
+ items: currentItems,
354
+ text: lineText,
355
+ caretIndex: lineCaretIndex,
356
+ lineIndex: lines.length,
357
+ drawX: 0,
358
+ drawY: 0,
359
+ width: 0,
360
+ segments: [],
361
+ });
362
+ currentItems = [];
363
+ currentWidth = 0;
364
+ lineCaretIndex = nextCaretIndex;
365
+ };
366
+ for (let i = 0; i < chars.length; i++) {
367
+ const char = chars[i];
368
+ if (char === '\n') {
369
+ flushLine(i + 1);
370
+ continue;
371
+ }
372
+ const charWidth = this.ctx.measureText(char).width;
373
+ if (currentWidth + charWidth > maxWidth && currentItems.length > 0) {
374
+ flushLine(currentItems[currentItems.length - 1].sourceIndex + 1);
375
+ currentItems.push({ char, sourceIndex: i });
376
+ currentWidth = charWidth;
377
+ continue;
378
+ }
379
+ currentItems.push({ char, sourceIndex: i });
380
+ currentWidth += charWidth;
381
+ }
382
+ if (currentItems.length > 0 || lines.length === 0) {
383
+ flushLine(chars.length);
384
+ }
385
+ return lines;
386
+ }
387
+ buildEllipsisLine(remainingLines, width, padding) {
388
+ const remainingItems = remainingLines.flatMap((line) => line.items);
389
+ const remainingText = remainingItems.map((item) => item.char).join('');
390
+ const { _text, ellipsis } = this.handleEllipsis(remainingText, width, padding, this.ctx.font);
391
+ const contentText = ellipsis ? _text.slice(0, -3) : _text;
392
+ const items = [];
393
+ for (let i = 0; i < contentText.length; i++) {
394
+ const item = remainingItems[i];
395
+ if (!item) {
396
+ break;
397
+ }
398
+ items.push({ char: item.char, sourceIndex: item.sourceIndex });
399
+ }
400
+ if (ellipsis) {
401
+ items.push({ char: '.', sourceIndex: -1, ellipsis: true }, { char: '.', sourceIndex: -1, ellipsis: true }, { char: '.', sourceIndex: -1, ellipsis: true });
402
+ }
403
+ return {
404
+ items,
405
+ text: _text,
406
+ caretIndex: remainingLines[0]?.caretIndex ?? 0,
407
+ lineIndex: 0,
408
+ drawX: 0,
409
+ drawY: 0,
410
+ width: 0,
411
+ segments: [],
412
+ };
413
+ }
414
+ buildLineSegments(line) {
415
+ const segments = [];
416
+ let offsetX = 0;
417
+ line.items.forEach((item, itemIndex) => {
418
+ const segmentWidth = this.ctx.measureText(item.char).width;
419
+ segments.push({
420
+ char: item.char,
421
+ itemIndex,
422
+ sourceIndex: item.sourceIndex,
423
+ x: offsetX,
424
+ width: segmentWidth,
425
+ });
426
+ offsetX += segmentWidth;
427
+ });
428
+ return segments;
276
429
  }
277
430
  /**
278
431
  * 将文本按宽度换行
@@ -1 +1 @@
1
- {"version":3,"file":"Paint.js","sourceRoot":"","sources":["../../src/Paint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Paint.js","sourceRoot":"","sources":["../../src/Paint.ts"],"names":[],"mappings":"AAkDA,MAAM,OAAO,KAAK;IAGd,YAAY,MAAyB;QAF7B;;;;;WAA8B;QAC9B;;;;mBAAe,IAAI,GAAG,EAAoB;WAAC;QAE/C,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IACD,MAAM;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IACD,cAAc;QACV,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IACD,KAAK,CAAC,GAAW;QACb,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI;QACA,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IACD,OAAO;QACH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IACD,SAAS,CAAC,CAAS,EAAE,CAAS;QAC1B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,MAAM,GAAG,SAAS;QACxB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1C,CAAC;IACD,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAc,EAAE,MAAe;QAC/C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/F,CAAC;IACD;;;;;;;;;OASG;IACH,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,OAAsB;QAClF,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QACvE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,QAAwB,CAAC;QAC7B,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,MAAM;gBACP,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnE,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACrC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM;YACV,KAAK,OAAO;gBACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;gBACnF,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACrC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBACrD,MAAM;YACV,KAAK,KAAK;gBACN,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnE,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACrC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC1D,MAAM;YACV,KAAK,QAAQ;gBACT,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC;gBACrF,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACrC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBACrD,MAAM;YACV;gBACI,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACnD,MAAM;QACd,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IACD,OAAO;IACP,QAAQ,CAAC,MAAgB,EAAE,OAAoB;QAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,EAAE,WAAW,GAAG,OAAO,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;QAE3D,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC;QACjC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IACD,SAAS,CAAC,GAAsB,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QACjF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,QAAQ,CACJ,CAAS,EACT,CAAS,EACT,KAAa,EACb,MAAc,EACd,EAAE,WAAW,GAAG,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,KAAkB,EAAE;QAEzE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO;QACP,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;QACnC,CAAC;QAED,YAAY;QACZ,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;QACvC,CAAC;QACD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACf,yBAAyB;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACJ,yBAAyB;YACzB,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAChG,WAAW;YACX,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,uCAAuC;YAC5F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,2CAA2C;YAClH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,wCAAwC;YAC/F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oCAAoC;QAC7E,CAAC;QAED,aAAa;QACb,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,aAAa;QACb,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IACD;;;;;;;;;OASG;IACH,QAAQ,CACJ,OAAe,EAAE,EACjB,CAAS,EACT,CAAS,EACT,KAAa,EACb,MAAc,EACd,UAA2B,EAAE;QAE7B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,EACF,IAAI,GAAG,YAAY,EACnB,KAAK,GAAG,QAAQ,EAChB,KAAK,GAAG,SAAS,EACjB,OAAO,GAAG,CAAC,EACX,aAAa,GAAG,QAAQ,EACxB,YAAY,GAAG,CAAC,EAChB,aAAa,GAAG,KAAK,EACrB,UAAU,GAAG,CAAC,EACd,WAAW,GAAG,CAAC,GAClB,GAAG,OAAO,CAAC;QACZ,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;YAC3D,IAAI;YACJ,KAAK;YACL,KAAK;YACL,OAAO;YACP,aAAa;YACb,YAAY;YACZ,aAAa;YACb,UAAU;YACV,UAAU;YACV,WAAW;SACd,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YACtF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC;YAC9D,IAAI,KAAK,GAAG,IAAI,GAAG,YAAY,CAAC;YAChC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrB,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;gBACxC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBAC3B,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,CAAC;gBACxD,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,CAAC;YAC9C,CAAC;YACD,MAAM,QAAQ,GAAG;gBACb,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI;gBACjC,CAAC,EAAE,MAAM,CAAC,QAAQ;gBAClB,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;gBACxC,IAAI;gBACJ,KAAK;gBACL,GAAG,EAAE,MAAM,CAAC,QAAQ;gBACpB,MAAM,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;aAC7D,CAAC;YACF,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAEO,eAAe,CACnB,IAAY,EACZ,CAAS,EACT,CAAS,EACT,KAAa,EACb,MAAc,EACd,OAWC;QAED,MAAM,EACF,IAAI,EACJ,KAAK,EACL,KAAK,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,GACd,GAAG,OAAO,CAAC;QACZ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,MAAM,cAAc,GAAG,KAAK,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,WAAW,CAAC;QACtE,MAAM,YAAY,GAAG,cAAc,CAAC;QACpC,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC;QAC3D,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,YAAY,KAAK,MAAM,IAAI,aAAa,EAAE,CAAC;YAC3C,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,CAAC;aAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,GAAG,aAAa,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YAChG,aAAa,GAAG,YAAY,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACrB,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;gBACvJ,aAAa,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,IAAI,YAAY,KAAK,MAAM,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;gBAC/C,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;gBACvJ,aAAa,GAAG,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YAC/B,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC5E,YAAY,CAAC,SAAS,GAAG,aAAa,GAAG,CAAC,CAAC;YAC3C,YAAY,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;QACnD,CAAC;aAAM,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC;YACxC,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7F,IAAI,aAAa,EAAE,CAAC;gBAChB,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC5E,YAAY,CAAC,SAAS,GAAG,aAAa,CAAC;gBACvC,YAAY,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC;YAC/C,CAAC;QACL,CAAC;QACD,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,GAAG,UAAU,CAAC;QACzD,IAAI,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC;QAC3B,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC7B,QAAQ,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YACpC,QAAQ,GAAG,CAAC,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC;QACtD,CAAC;QACD,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5E,IAAI,KAAK,GAAG,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC;YACrC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrB,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBAC3B,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;YAC1D,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC;YAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACzB,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO;gBACX,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,OAAO,CAAC,WAAW;oBAC1B,IAAI,EAAE,KAAK;oBACX,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;oBACpB,CAAC,EAAE,KAAK;oBACR,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,MAAM,EAAE,UAAU;iBACrB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO;YACH,IAAI;YACJ,KAAK;YACL,MAAM;YACN,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;YAC5B,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;YACvG,QAAQ;YACR,UAAU;YACV,IAAI;YACJ,KAAK;YACL,KAAK;YACL,QAAQ;SACX,CAAC;IACN,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,QAAgB;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,IAAI,YAAY,GAAmB,EAAE,CAAC;QACtC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,MAAM,SAAS,GAAG,CAAC,cAAsB,EAAE,EAAE;YACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,cAAc;gBAC1B,SAAS,EAAE,KAAK,CAAC,MAAM;gBACvB,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,EAAE;aACf,CAAC,CAAC;YACH,YAAY,GAAG,EAAE,CAAC;YAClB,YAAY,GAAG,CAAC,CAAC;YACjB,cAAc,GAAG,cAAc,CAAC;QACpC,CAAC,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChB,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjB,SAAS;YACb,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;YACnD,IAAI,YAAY,GAAG,SAAS,GAAG,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gBACjE,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5C,YAAY,GAAG,SAAS,CAAC;gBACzB,SAAS;YACb,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5C,YAAY,IAAI,SAAS,CAAC;QAC9B,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,iBAAiB,CAAC,cAAgC,EAAE,KAAa,EAAE,OAAe;QACtF,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9F,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1D,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,MAAM;YACV,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CACN,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAC9C,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAC9C,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACjD,CAAC;QACN,CAAC;QACD,OAAO;YACH,KAAK;YACL,IAAI,EAAE,KAAK;YACX,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC;YAC9C,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,EAAE;SACf,CAAC;IACN,CAAC;IAEO,iBAAiB,CAAC,IAAoB;QAC1C,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;YAC3D,QAAQ,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS;gBACT,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,CAAC,EAAE,OAAO;gBACV,KAAK,EAAE,YAAY;aACtB,CAAC,CAAC;YACH,OAAO,IAAI,YAAY,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACK,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAE,YAAY,GAAG,EAAE;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO;QACP,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,SAAS;YACb,CAAC;YAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,WAAW,GAAG,IAAI,CAAC;gBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;gBACvD,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;oBACxB,WAAW,GAAG,QAAQ,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACJ,IAAI,WAAW,EAAE,CAAC;wBACd,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBACxB,WAAW,GAAG,IAAI,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACJ,iBAAiB;wBACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACjB,WAAW,GAAG,EAAE,CAAC;oBACrB,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,YAAY,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,OAAe,EAAE,EAAE,KAAa,EAAE,UAA2B,EAAE;QAC/E,MAAM,EACF,IAAI,GAAG,YAAY,EACnB,OAAO,GAAG,CAAC,EACX,KAAK,GAAG,QAAQ,EAChB,KAAK,GAAG,SAAS,EACjB,YAAY,GAAG,CAAC,EAChB,YAAY,GAAG,EAAE,GACpB,GAAG,OAAO,CAAC;QACZ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,YAAY;QACZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,iBAAiB;QAE5E,eAAe;QACf,MAAM,cAAc,GAAG,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAChE,QAAQ;QACR,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YAC1B,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,IAAI,KAAK,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;gBAC9B,UAAU,GAAG,YAAY,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACJ,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;YAC9B,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACnB,4BAA4B;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3G,CAAC;IACD,cAAc,CACV,IAAY,EACZ,KAAa,EACb,UAAkB,CAAC,EACnB,OAAe,YAAY;QAE3B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO;gBACH,KAAK,EAAE,EAAE;gBACT,QAAQ;aACX,CAAC;QACN,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QACxD,8BAA8B;QAC9B,IAAI,KAAK,IAAI,aAAa,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO;gBACH,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,IAAI;aACjB,CAAC;QACN,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QACnD,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;QACtC,SAAS;QACT,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YACtC,QAAQ,GAAG,IAAI,CAAC;YAChB,iBAAiB;YACjB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAClD,IAAI,UAAU,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;oBAC1C,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBACjC,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO;YACH,KAAK;YACL,QAAQ;SACX,CAAC;IACN,CAAC;CACJ;AAED,eAAe,KAAK,CAAC"}
@@ -63,9 +63,6 @@ export default class Selector {
63
63
  if (this.ctx.stageElement.style.cursor === 'pointer') {
64
64
  return;
65
65
  }
66
- if (this.ctx.isPointer) {
67
- return;
68
- }
69
66
  // 如果是填充返回
70
67
  if (this.ctx.stageElement.style.cursor === 'crosshair') {
71
68
  return;
@@ -92,11 +89,17 @@ export default class Selector {
92
89
  }, 0);
93
90
  });
94
91
  this.ctx.on('cellHeaderHoverChange', (cell) => {
92
+ if (this.ctx.textSelecting) {
93
+ return;
94
+ }
95
95
  if (this.ctx.mousedown) {
96
96
  this.selectCols(cell);
97
97
  }
98
98
  });
99
99
  this.ctx.on('cellHoverChange', (cell) => {
100
+ if (this.ctx.textSelecting) {
101
+ return;
102
+ }
100
103
  if (this.ctx.mousedown) {
101
104
  this.selectCols(cell);
102
105
  }
@@ -106,9 +109,6 @@ export default class Selector {
106
109
  if (this.ctx.stageElement.style.cursor === 'pointer') {
107
110
  return;
108
111
  }
109
- if (this.ctx.isPointer) {
110
- return;
111
- }
112
112
  // 解决dom文档选中问题
113
113
  const style = window.getComputedStyle(e.target);
114
114
  if (style.userSelect !== 'text') {
@@ -206,6 +206,9 @@ export default class Selector {
206
206
  if (this.ctx.dragHeaderIng) {
207
207
  return;
208
208
  }
209
+ if (this.ctx.dragRowIng) {
210
+ return;
211
+ }
209
212
  const { ENABLE_SELECTOR_SPAN_COL, ENABLE_SELECTOR_SPAN_ROW } = this.ctx.config;
210
213
  let _xArr = xArr;
211
214
  let _yArr = yArr;
@@ -538,8 +541,8 @@ export default class Selector {
538
541
  if (!this.ctx.config.ENABLE_COPY) {
539
542
  return;
540
543
  }
541
- // dom选中时会阻止复制
542
- if (this.ctx.domSelectionStr) {
544
+ // dom选中或文字选中时会阻止复制
545
+ if (this.ctx.domSelectionStr || this.ctx.textSelectionStr) {
543
546
  return;
544
547
  }
545
548
  let { value, xArr, yArr } = this.ctx.getSelectedData();
@@ -553,13 +556,13 @@ export default class Selector {
553
556
  else {
554
557
  const err = {
555
558
  code: 'ERR_MERGED_CELLS_COPY',
556
- message: 'Merged cells cannot span copy data',
559
+ message: this.ctx.locale.getText('mergeCellNoCopy'),
557
560
  };
558
561
  if (this.ctx.hasEvent('error')) {
559
562
  this.ctx.emit('error', err);
560
563
  }
561
564
  else {
562
- alert(err.message);
565
+ console.error(err.message);
563
566
  }
564
567
  return;
565
568
  }
@@ -680,13 +683,14 @@ export default class Selector {
680
683
  !isOneData) {
681
684
  const err = {
682
685
  code: 'ERR_MERGED_CELLS_PASTE',
683
- message: 'Merged cells cannot span paste data',
686
+ message: this.ctx.locale.getText('mergeCellNoPaste'),
687
+ data: [],
684
688
  };
685
689
  if (this.ctx.hasEvent('error')) {
686
690
  this.ctx.emit('error', err);
687
691
  }
688
692
  else {
689
- alert(err.message);
693
+ console.error(err.message);
690
694
  }
691
695
  return;
692
696
  }