quill-table-up 3.1.2 → 3.2.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 (111) hide show
  1. package/README.md +7 -0
  2. package/dist/index.css +1 -1
  3. package/dist/index.d.ts +168 -146
  4. package/dist/index.js +47 -47
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.umd.js +52 -52
  7. package/dist/index.umd.js.map +1 -1
  8. package/package.json +22 -24
  9. package/src/__tests__/e2e/custom-creator.test.ts +44 -44
  10. package/src/__tests__/e2e/editor-page.ts +77 -77
  11. package/src/__tests__/e2e/table-align.test.ts +104 -104
  12. package/src/__tests__/e2e/table-blots.test.ts +169 -169
  13. package/src/__tests__/e2e/table-caption.test.ts +134 -134
  14. package/src/__tests__/e2e/table-clipboard.test.ts +20 -20
  15. package/src/__tests__/e2e/table-hack.test.ts +151 -151
  16. package/src/__tests__/e2e/table-keyboard-handler.test.ts +12 -3
  17. package/src/__tests__/e2e/table-menu.test.ts +172 -172
  18. package/src/__tests__/e2e/table-resize.test.ts +654 -9
  19. package/src/__tests__/e2e/table-scrollbar.test.ts +144 -144
  20. package/src/__tests__/e2e/table-selection.test.ts +563 -563
  21. package/src/__tests__/e2e/types.d.ts +7 -7
  22. package/src/__tests__/e2e/utils.ts +52 -52
  23. package/src/__tests__/unit/table-blots.test.ts +720 -720
  24. package/src/__tests__/unit/table-caption.test.ts +234 -234
  25. package/src/__tests__/unit/table-cell-merge.test.ts +724 -724
  26. package/src/__tests__/unit/table-clipboard.test.ts +2176 -2176
  27. package/src/__tests__/unit/table-hack.test.ts +1014 -1014
  28. package/src/__tests__/unit/table-insert.test.ts +926 -926
  29. package/src/__tests__/unit/table-redo-undo.test.ts +2429 -2429
  30. package/src/__tests__/unit/table-remove.test.ts +343 -343
  31. package/src/__tests__/unit/utils.test-d.ts +49 -49
  32. package/src/__tests__/unit/utils.test.ts +711 -711
  33. package/src/__tests__/unit/utils.ts +307 -307
  34. package/src/__tests__/unit/vitest.d.ts +14 -14
  35. package/src/formats/container-format.ts +107 -107
  36. package/src/formats/overrides/block-embed.ts +72 -72
  37. package/src/formats/overrides/block.ts +95 -95
  38. package/src/formats/overrides/index.ts +3 -3
  39. package/src/formats/overrides/scroll.ts +70 -70
  40. package/src/formats/table-body-format.ts +52 -52
  41. package/src/formats/table-caption-format.ts +116 -116
  42. package/src/formats/table-cell-format.ts +304 -304
  43. package/src/formats/table-cell-inner-format.ts +403 -398
  44. package/src/formats/table-colgroup-format.ts +136 -136
  45. package/src/formats/table-foot-format.ts +7 -7
  46. package/src/formats/table-head-format.ts +7 -7
  47. package/src/formats/table-main-format.ts +1 -1
  48. package/src/formats/table-row-format.ts +218 -210
  49. package/src/formats/utils.ts +6 -6
  50. package/src/index.ts +19 -19
  51. package/src/modules/index.ts +7 -7
  52. package/src/modules/table-align.ts +131 -131
  53. package/src/modules/table-clipboard/table-clipboard.ts +6 -8
  54. package/src/modules/table-dom-selector.ts +33 -33
  55. package/src/modules/table-menu/constants.ts +223 -223
  56. package/src/modules/table-menu/index.ts +4 -4
  57. package/src/modules/table-menu/table-menu-common.ts +330 -329
  58. package/src/modules/table-menu/table-menu-contextmenu.ts +111 -118
  59. package/src/modules/table-menu/table-menu-select.ts +96 -94
  60. package/src/modules/table-resize/index.ts +5 -5
  61. package/src/modules/table-resize/table-resize-box.ts +714 -363
  62. package/src/modules/table-resize/table-resize-common.ts +246 -382
  63. package/src/modules/table-resize/table-resize-drag.ts +241 -0
  64. package/src/modules/table-resize/table-resize-line.ts +244 -182
  65. package/src/modules/table-resize/table-resize-scale.ts +174 -173
  66. package/src/modules/table-resize/utils.ts +84 -3
  67. package/src/modules/table-scrollbar.ts +292 -292
  68. package/src/modules/table-selection.ts +613 -669
  69. package/src/style/button.less +45 -45
  70. package/src/style/color-picker.less +136 -136
  71. package/src/style/dialog.less +53 -53
  72. package/src/style/functions.less +9 -9
  73. package/src/style/index.less +120 -120
  74. package/src/style/input.less +64 -64
  75. package/src/style/select-box.less +52 -52
  76. package/src/style/table-creator.less +56 -56
  77. package/src/style/table-menu.less +125 -125
  78. package/src/style/table-resize-scale.less +31 -31
  79. package/src/style/table-resize.less +249 -202
  80. package/src/style/table-scrollbar.less +49 -49
  81. package/src/style/table-selection.less +23 -23
  82. package/src/style/tooltip.less +19 -19
  83. package/src/style/variables.less +1 -1
  84. package/src/svg/arrow-up-down.svg +11 -11
  85. package/src/svg/convert-cell.svg +7 -7
  86. package/src/table-up.ts +1360 -1360
  87. package/src/types.d.ts +4 -4
  88. package/src/utils/bem.ts +23 -23
  89. package/src/utils/blot-helper.ts +101 -105
  90. package/src/utils/color.ts +109 -109
  91. package/src/utils/components/button.ts +22 -22
  92. package/src/utils/components/color-picker.ts +236 -236
  93. package/src/utils/components/dialog.ts +83 -41
  94. package/src/utils/components/index.ts +6 -6
  95. package/src/utils/components/input.ts +74 -74
  96. package/src/utils/components/table/creator.ts +89 -89
  97. package/src/utils/components/table/index.ts +2 -2
  98. package/src/utils/components/table/select-box.ts +78 -78
  99. package/src/utils/components/tooltip.ts +179 -189
  100. package/src/utils/constants.ts +125 -124
  101. package/src/utils/drag-helper.ts +112 -0
  102. package/src/utils/index.ts +15 -14
  103. package/src/utils/is.ts +9 -9
  104. package/src/utils/position.ts +60 -60
  105. package/src/utils/resize-observer-helper.ts +47 -47
  106. package/src/utils/scroll.ts +145 -47
  107. package/src/utils/style-helper.ts +47 -47
  108. package/src/utils/transformer.ts +10 -10
  109. package/src/utils/transition-event-helper.ts +8 -8
  110. package/src/utils/types.ts +156 -157
  111. package/src/utils/utils.ts +12 -12
@@ -34,7 +34,12 @@ test('test TableResizeLine fixed width', async ({ page }) => {
34
34
  await page.mouse.up();
35
35
  const cells = await page.locator('#editor1 .ql-table-wrapper tr').nth(1).locator('td').all();
36
36
  for (const cell of cells) {
37
- await expect(cell).toHaveCSS('height', `${Math.floor(cellBounding.height) + 100}px`);
37
+ expect(cell).toHaveAttribute('style');
38
+ const styleAttribute = (await cell.getAttribute('style'))!;
39
+ const heightMatch = styleAttribute?.match(/height\s*:\s*([^;]+)/);
40
+ const heightValue = heightMatch ? heightMatch[1].trim() : null;
41
+ expect(heightValue).not.toBeNull();
42
+ expect(Number.parseFloat(heightValue!)).toBeCloseTo(cellBounding.height + 100, 3);
38
43
  }
39
44
  });
40
45
 
@@ -51,11 +56,11 @@ test('test TableResizeBox fixed width', async ({ page }) => {
51
56
  if (!colBoundingBox) {
52
57
  throw new Error('colBoundingBox is null');
53
58
  }
54
- await page.mouse.move(colBoundingBox.x + colBoundingBox.width - 4, colBoundingBox.y + 4);
59
+ await page.mouse.move(colBoundingBox.x, colBoundingBox.y + 4);
55
60
  await page.mouse.down();
56
- await page.mouse.move(colBoundingBox.x + colBoundingBox.width - 4 + 100, colBoundingBox.y + 4);
61
+ await page.mouse.move(colBoundingBox.x + 100 + 1, colBoundingBox.y);
57
62
  await page.mouse.up();
58
- expect(page.locator('#editor2 .ql-table-wrapper col').nth(1)).toHaveAttribute('width', `${Math.floor(cellBounding.width - 4) + 100}px`);
63
+ expect(page.locator('#editor2 .ql-table-wrapper col').nth(1)).toHaveAttribute('width', `${Math.floor(cellBounding.width) + 100}px`);
59
64
 
60
65
  // row
61
66
  const rowBoundingBox = await page.locator('#editor2 .table-up-resize-box__row-separator').nth(1).boundingBox();
@@ -65,12 +70,17 @@ test('test TableResizeBox fixed width', async ({ page }) => {
65
70
  }
66
71
  await page.mouse.move(rowBoundingBox.x + 4, rowBoundingBox.y + rowBoundingBox.height - 4);
67
72
  await page.mouse.down();
68
- await page.mouse.move(rowBoundingBox.x + 4, rowBoundingBox.y + rowBoundingBox.height - 4 + 100);
73
+ await page.mouse.move(rowBoundingBox.x + 4, rowBoundingBox.y + rowBoundingBox.height - 4 + 100 + 1);
69
74
  await page.mouse.up();
70
75
  const cells = await page.locator('#editor2 .ql-table-wrapper tr').nth(1).locator('td').all();
71
76
  expect(cells.length).toEqual(3);
72
77
  for (const cell of cells) {
73
- await expect(cell).toHaveCSS('height', `${Math.floor(cellBounding.height - 4) + 100}px`);
78
+ expect(cell).toHaveAttribute('style');
79
+ const styleAttribute = (await cell.getAttribute('style'))!;
80
+ const heightMatch = styleAttribute?.match(/height\s*:\s*([^;]+)/);
81
+ const heightValue = heightMatch ? heightMatch[1].trim() : null;
82
+ expect(heightValue).not.toBeNull();
83
+ expect(Number.parseFloat(heightValue!)).toBeCloseTo(cellBounding.height + 100, 3);
74
84
  }
75
85
  });
76
86
 
@@ -88,7 +98,7 @@ test('test TableResizeLine full width', async ({ page }) => {
88
98
  expect(colBoundingBox).not.toBeNull();
89
99
  await page.mouse.move(colBoundingBox.x + colBoundingBox.width / 2, colBoundingBox.y + cellBounding.height / 2);
90
100
  await page.mouse.down();
91
- await page.mouse.move(colBoundingBox.x + colBoundingBox.width / 2 + 59.4, colBoundingBox.y + cellBounding.height / 2);
101
+ await page.mouse.move(colBoundingBox.x + colBoundingBox.width / 2 + tableBounding.width * 0.05, colBoundingBox.y + cellBounding.height / 2);
92
102
  await page.mouse.up();
93
103
  const cols = page.locator('#editor3 .ql-table-wrapper col');
94
104
  await expect(cols.nth(1)).toHaveAttribute('width');
@@ -108,9 +118,9 @@ test('test TableResizeBox full width', async ({ page }) => {
108
118
 
109
119
  const colBoundingBox = (await page.locator('#editor4 .table-up-resize-box__col-separator').nth(1).boundingBox())!;
110
120
  expect(colBoundingBox).not.toBeNull();
111
- await page.mouse.move(colBoundingBox.x + colBoundingBox.width - 4, colBoundingBox.y + 4);
121
+ await page.mouse.move(colBoundingBox.x, colBoundingBox.y + 4);
112
122
  await page.mouse.down();
113
- await page.mouse.move(colBoundingBox.x + colBoundingBox.width + 58.4, colBoundingBox.y);
123
+ await page.mouse.move(colBoundingBox.x + tableBounding.width * 0.05 + 1, colBoundingBox.y);
114
124
  await page.mouse.up();
115
125
  const cols = page.locator('#editor4 .ql-table-wrapper col');
116
126
  await expect(cols.nth(1)).toHaveAttribute('width');
@@ -340,3 +350,638 @@ extendTest('test TableResizeBox head click and shift click (scroll table wrapper
340
350
  expect(cellBounding).not.toBeNull();
341
351
  expect(selectionBounding.width).toBe(cellBounding.width * 3);
342
352
  });
353
+
354
+ extendTest.describe('TableResizeBox drag content', () => {
355
+ extendTest('drag column', async ({ page, editorPage }) => {
356
+ editorPage.index = 1;
357
+ await editorPage.setContents([
358
+ { insert: '\n' },
359
+ { insert: { 'table-up-col': { tableId: '1', colId: '1', width: 300 } } },
360
+ { insert: { 'table-up-col': { tableId: '1', colId: '2', width: 300 } } },
361
+ { insert: { 'table-up-col': { tableId: '1', colId: '3', width: 300 } } },
362
+ { insert: { 'table-up-col': { tableId: '1', colId: '4', width: 300 } } },
363
+ { insert: { 'table-up-col': { tableId: '1', colId: '5', width: 300 } } },
364
+ { insert: '1' },
365
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
366
+ { insert: '2' },
367
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
368
+ { insert: '3' },
369
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
370
+ { insert: '4' },
371
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
372
+ { insert: '5' },
373
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
374
+ { insert: '6' },
375
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
376
+ { insert: '7' },
377
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
378
+ { insert: '8' },
379
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
380
+ { insert: '9' },
381
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
382
+ { insert: '10' },
383
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
384
+ { insert: '11' },
385
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
386
+ { insert: '12' },
387
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
388
+ { insert: '13' },
389
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
390
+ { insert: '14' },
391
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
392
+ { insert: '15' },
393
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
394
+ { insert: '16' },
395
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
396
+ { insert: '17' },
397
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
398
+ { insert: '18' },
399
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
400
+ { insert: '19' },
401
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
402
+ { insert: '20' },
403
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
404
+ { insert: '21' },
405
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
406
+ { insert: '22' },
407
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
408
+ { insert: '23' },
409
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
410
+ { insert: '24' },
411
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
412
+ { insert: '25' },
413
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
414
+ { insert: '\n' },
415
+ ]);
416
+
417
+ await page.locator('td').nth(0).click();
418
+ expect(await page.locator('#container2 .table-up-toolbox .table-up-resize-box__col').isVisible()).toBe(true);
419
+ await page.locator('#container2 .table-up-toolbox .table-up-resize-box__col-header').nth(0).click();
420
+ const headBoundingBox = (await page.locator('#container2 .table-up-toolbox .table-up-resize-box__col-header').nth(0).boundingBox())!;
421
+ expect(headBoundingBox).not.toBeNull();
422
+
423
+ await page.mouse.move(headBoundingBox.x + headBoundingBox.width / 2, headBoundingBox.y + headBoundingBox.height / 2);
424
+ await page.mouse.down();
425
+ await page.mouse.move(headBoundingBox.x + headBoundingBox.width * 3, headBoundingBox.y + headBoundingBox.height / 2);
426
+ await page.mouse.up();
427
+
428
+ const delta = await editorPage.getContents();
429
+ expect(delta.ops).toEqual([
430
+ { insert: '\n' },
431
+ { insert: { 'table-up-col': { tableId: '1', colId: '2', full: false, width: 300 } } },
432
+ { insert: { 'table-up-col': { tableId: '1', colId: '3', full: false, width: 300 } } },
433
+ { insert: { 'table-up-col': { tableId: '1', colId: '1', full: false, width: 300 } } },
434
+ { insert: { 'table-up-col': { tableId: '1', colId: '4', full: false, width: 300 } } },
435
+ { insert: { 'table-up-col': { tableId: '1', colId: '5', full: false, width: 300 } } },
436
+ { insert: '2' },
437
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
438
+ { insert: '3' },
439
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
440
+ { insert: '1' },
441
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
442
+ { insert: '4' },
443
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
444
+ { insert: '5' },
445
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
446
+ { insert: '7' },
447
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
448
+ { insert: '8' },
449
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
450
+ { insert: '6' },
451
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
452
+ { insert: '9' },
453
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
454
+ { insert: '10' },
455
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
456
+ { insert: '12' },
457
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
458
+ { insert: '13' },
459
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
460
+ { insert: '11' },
461
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
462
+ { insert: '14' },
463
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
464
+ { insert: '15' },
465
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
466
+ { insert: '17' },
467
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
468
+ { insert: '18' },
469
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
470
+ { insert: '16' },
471
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
472
+ { insert: '19' },
473
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
474
+ { insert: '20' },
475
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
476
+ { insert: '22' },
477
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
478
+ { insert: '23' },
479
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
480
+ { insert: '21' },
481
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
482
+ { insert: '24' },
483
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
484
+ { insert: '25' },
485
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
486
+ { insert: '\n' },
487
+ ]);
488
+ });
489
+
490
+ extendTest('drag multiple column', async ({ page, editorPage }) => {
491
+ editorPage.index = 1;
492
+ await editorPage.setContents([
493
+ { insert: '\n' },
494
+ { insert: { 'table-up-col': { tableId: '1', colId: '1', width: 300 } } },
495
+ { insert: { 'table-up-col': { tableId: '1', colId: '2', width: 300 } } },
496
+ { insert: { 'table-up-col': { tableId: '1', colId: '3', width: 300 } } },
497
+ { insert: { 'table-up-col': { tableId: '1', colId: '4', width: 300 } } },
498
+ { insert: { 'table-up-col': { tableId: '1', colId: '5', width: 300 } } },
499
+ { insert: '1' },
500
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
501
+ { insert: '2' },
502
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
503
+ { insert: '3' },
504
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
505
+ { insert: '4' },
506
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
507
+ { insert: '5' },
508
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
509
+ { insert: '6' },
510
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
511
+ { insert: '7' },
512
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
513
+ { insert: '8' },
514
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
515
+ { insert: '9' },
516
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
517
+ { insert: '10' },
518
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
519
+ { insert: '11' },
520
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
521
+ { insert: '12' },
522
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
523
+ { insert: '13' },
524
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
525
+ { insert: '14' },
526
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
527
+ { insert: '15' },
528
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
529
+ { insert: '16' },
530
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
531
+ { insert: '17' },
532
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
533
+ { insert: '18' },
534
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
535
+ { insert: '19' },
536
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
537
+ { insert: '20' },
538
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
539
+ { insert: '21' },
540
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
541
+ { insert: '22' },
542
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
543
+ { insert: '23' },
544
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
545
+ { insert: '24' },
546
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
547
+ { insert: '25' },
548
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
549
+ { insert: '\n' },
550
+ ]);
551
+
552
+ await page.locator('td').nth(0).click();
553
+ expect(await page.locator('#container2 .table-up-toolbox .table-up-resize-box__col').isVisible()).toBe(true);
554
+ await page.locator('#container2 .table-up-toolbox .table-up-resize-box__col-header').nth(0).click();
555
+ await page.keyboard.down('Shift');
556
+ await page.locator('#container2 .table-up-toolbox .table-up-resize-box__col-header').nth(2).click();
557
+ await page.keyboard.up('Shift');
558
+
559
+ const headBoundingBox = (await page.locator('#container2 .table-up-toolbox .table-up-resize-box__col-header').nth(2).boundingBox())!;
560
+ expect(headBoundingBox).not.toBeNull();
561
+
562
+ await page.mouse.move(headBoundingBox.x + headBoundingBox.width / 2, headBoundingBox.y + headBoundingBox.height / 2);
563
+ await page.mouse.down();
564
+ await page.mouse.move(headBoundingBox.x + headBoundingBox.width * 2, headBoundingBox.y + headBoundingBox.height / 2);
565
+ // wait scroll wrapper
566
+ await page.waitForTimeout(1000);
567
+ // trigger mousemove to calculate the position
568
+ await page.mouse.move(headBoundingBox.x + headBoundingBox.width * 2, headBoundingBox.y + headBoundingBox.height / 2);
569
+ await page.mouse.up();
570
+
571
+ const delta = await editorPage.getContents();
572
+ expect(delta.ops).toEqual([
573
+ { insert: '\n' },
574
+ { insert: { 'table-up-col': { tableId: '1', colId: '4', full: false, width: 300 } } },
575
+ { insert: { 'table-up-col': { tableId: '1', colId: '5', full: false, width: 300 } } },
576
+ { insert: { 'table-up-col': { tableId: '1', colId: '1', full: false, width: 300 } } },
577
+ { insert: { 'table-up-col': { tableId: '1', colId: '2', full: false, width: 300 } } },
578
+ { insert: { 'table-up-col': { tableId: '1', colId: '3', full: false, width: 300 } } },
579
+ { insert: '4' },
580
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
581
+ { insert: '5' },
582
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
583
+ { insert: '1' },
584
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
585
+ { insert: '2' },
586
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
587
+ { insert: '3' },
588
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
589
+ { insert: '9' },
590
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
591
+ { insert: '10' },
592
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
593
+ { insert: '6' },
594
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
595
+ { insert: '7' },
596
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
597
+ { insert: '8' },
598
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
599
+ { insert: '14' },
600
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
601
+ { insert: '15' },
602
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
603
+ { insert: '11' },
604
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
605
+ { insert: '12' },
606
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
607
+ { insert: '13' },
608
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
609
+ { insert: '19' },
610
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
611
+ { insert: '20' },
612
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
613
+ { insert: '16' },
614
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
615
+ { insert: '17' },
616
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
617
+ { insert: '18' },
618
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
619
+ { insert: '24' },
620
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
621
+ { insert: '25' },
622
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
623
+ { insert: '21' },
624
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
625
+ { insert: '22' },
626
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
627
+ { insert: '23' },
628
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
629
+ { insert: '\n' },
630
+ ]);
631
+ });
632
+
633
+ extendTest('drag row', async ({ page, editorPage }) => {
634
+ editorPage.index = 1;
635
+ await editorPage.setContents([
636
+ { insert: '\n' },
637
+ { insert: { 'table-up-col': { tableId: '1', colId: '1', width: 300 } } },
638
+ { insert: { 'table-up-col': { tableId: '1', colId: '2', width: 300 } } },
639
+ { insert: { 'table-up-col': { tableId: '1', colId: '3', width: 300 } } },
640
+ { insert: { 'table-up-col': { tableId: '1', colId: '4', width: 300 } } },
641
+ { insert: { 'table-up-col': { tableId: '1', colId: '5', width: 300 } } },
642
+ { insert: '1' },
643
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
644
+ { insert: '2' },
645
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
646
+ { insert: '3' },
647
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
648
+ { insert: '4' },
649
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
650
+ { insert: '5' },
651
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
652
+ { insert: '6' },
653
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
654
+ { insert: '7' },
655
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
656
+ { insert: '8' },
657
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
658
+ { insert: '9' },
659
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
660
+ { insert: '10' },
661
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
662
+ { insert: '11' },
663
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
664
+ { insert: '12' },
665
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
666
+ { insert: '13' },
667
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
668
+ { insert: '14' },
669
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
670
+ { insert: '15' },
671
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
672
+ { insert: '16' },
673
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
674
+ { insert: '17' },
675
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
676
+ { insert: '18' },
677
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
678
+ { insert: '19' },
679
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
680
+ { insert: '20' },
681
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
682
+ { insert: '21' },
683
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
684
+ { insert: '22' },
685
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
686
+ { insert: '23' },
687
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
688
+ { insert: '24' },
689
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
690
+ { insert: '25' },
691
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
692
+ { insert: '\n' },
693
+ ]);
694
+
695
+ await page.locator('td').nth(0).click();
696
+ expect(await page.locator('#container2 .table-up-toolbox .table-up-resize-box__row').isVisible()).toBe(true);
697
+ await page.locator('#container2 .table-up-toolbox .table-up-resize-box__row-header').nth(0).click();
698
+ const headBoundingBox = (await page.locator('#container2 .table-up-toolbox .table-up-resize-box__row-header').nth(0).boundingBox())!;
699
+ expect(headBoundingBox).not.toBeNull();
700
+
701
+ await page.mouse.move(headBoundingBox.x + headBoundingBox.width / 2, headBoundingBox.y + headBoundingBox.height / 2);
702
+ await page.mouse.down();
703
+ await page.mouse.move(headBoundingBox.x + headBoundingBox.width / 2, headBoundingBox.y + headBoundingBox.height * 3);
704
+ await page.mouse.up();
705
+
706
+ const delta = await editorPage.getContents();
707
+ expect(delta.ops).toEqual([
708
+ { insert: '\n' },
709
+ { insert: { 'table-up-col': { tableId: '1', colId: '1', full: false, width: 300 } } },
710
+ { insert: { 'table-up-col': { tableId: '1', colId: '2', full: false, width: 300 } } },
711
+ { insert: { 'table-up-col': { tableId: '1', colId: '3', full: false, width: 300 } } },
712
+ { insert: { 'table-up-col': { tableId: '1', colId: '4', full: false, width: 300 } } },
713
+ { insert: { 'table-up-col': { tableId: '1', colId: '5', full: false, width: 300 } } },
714
+ { insert: '6' },
715
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
716
+ { insert: '7' },
717
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
718
+ { insert: '8' },
719
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
720
+ { insert: '9' },
721
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
722
+ { insert: '10' },
723
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
724
+ { insert: '11' },
725
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
726
+ { insert: '12' },
727
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
728
+ { insert: '13' },
729
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
730
+ { insert: '14' },
731
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
732
+ { insert: '15' },
733
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
734
+ { insert: '1' },
735
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
736
+ { insert: '2' },
737
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
738
+ { insert: '3' },
739
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
740
+ { insert: '4' },
741
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
742
+ { insert: '5' },
743
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
744
+ { insert: '16' },
745
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
746
+ { insert: '17' },
747
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
748
+ { insert: '18' },
749
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
750
+ { insert: '19' },
751
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
752
+ { insert: '20' },
753
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
754
+ { insert: '21' },
755
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
756
+ { insert: '22' },
757
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
758
+ { insert: '23' },
759
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
760
+ { insert: '24' },
761
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
762
+ { insert: '25' },
763
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
764
+ { insert: '\n' },
765
+ ]);
766
+ });
767
+
768
+ extendTest('drag multiple row', async ({ page, editorPage }) => {
769
+ editorPage.index = 1;
770
+ await editorPage.setContents([
771
+ { insert: '\n' },
772
+ { insert: { 'table-up-col': { tableId: '1', colId: '1', width: 300 } } },
773
+ { insert: { 'table-up-col': { tableId: '1', colId: '2', width: 300 } } },
774
+ { insert: { 'table-up-col': { tableId: '1', colId: '3', width: 300 } } },
775
+ { insert: { 'table-up-col': { tableId: '1', colId: '4', width: 300 } } },
776
+ { insert: { 'table-up-col': { tableId: '1', colId: '5', width: 300 } } },
777
+ { insert: '1' },
778
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
779
+ { insert: '2' },
780
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
781
+ { insert: '3' },
782
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
783
+ { insert: '4' },
784
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
785
+ { insert: '5' },
786
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
787
+ { insert: '6' },
788
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
789
+ { insert: '7' },
790
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
791
+ { insert: '8' },
792
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
793
+ { insert: '9' },
794
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
795
+ { insert: '10' },
796
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
797
+ { insert: '11' },
798
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
799
+ { insert: '12' },
800
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
801
+ { insert: '13' },
802
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
803
+ { insert: '14' },
804
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
805
+ { insert: '15' },
806
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
807
+ { insert: '16' },
808
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
809
+ { insert: '17' },
810
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
811
+ { insert: '18' },
812
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
813
+ { insert: '19' },
814
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
815
+ { insert: '20' },
816
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
817
+ { insert: '21' },
818
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '1', rowspan: 1, colspan: 1 } }, insert: '\n' },
819
+ { insert: '22' },
820
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '2', rowspan: 1, colspan: 1 } }, insert: '\n' },
821
+ { insert: '23' },
822
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '3', rowspan: 1, colspan: 1 } }, insert: '\n' },
823
+ { insert: '24' },
824
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '4', rowspan: 1, colspan: 1 } }, insert: '\n' },
825
+ { insert: '25' },
826
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '5', rowspan: 1, colspan: 1 } }, insert: '\n' },
827
+ { insert: '\n' },
828
+ ]);
829
+
830
+ await page.locator('td').nth(0).click();
831
+ expect(await page.locator('#container2 .table-up-toolbox .table-up-resize-box__row').isVisible()).toBe(true);
832
+ await page.locator('#container2 .table-up-toolbox .table-up-resize-box__row-header').nth(0).click();
833
+ await page.keyboard.down('Shift');
834
+ await page.locator('#container2 .table-up-toolbox .table-up-resize-box__row-header').nth(2).click();
835
+ await page.keyboard.up('Shift');
836
+
837
+ const headBoundingBox = (await page.locator('#container2 .table-up-toolbox .table-up-resize-box__row-header').nth(2).boundingBox())!;
838
+ expect(headBoundingBox).not.toBeNull();
839
+
840
+ await page.mouse.move(headBoundingBox.x + headBoundingBox.width / 2, headBoundingBox.y + headBoundingBox.height / 2);
841
+ await page.mouse.down();
842
+ await page.mouse.move(headBoundingBox.x + headBoundingBox.width / 2, headBoundingBox.y + headBoundingBox.height * 3);
843
+ await page.mouse.up();
844
+
845
+ const delta = await editorPage.getContents();
846
+ expect(delta.ops).toEqual([
847
+ { insert: '\n' },
848
+ { insert: { 'table-up-col': { tableId: '1', colId: '1', full: false, width: 300 } } },
849
+ { insert: { 'table-up-col': { tableId: '1', colId: '2', full: false, width: 300 } } },
850
+ { insert: { 'table-up-col': { tableId: '1', colId: '3', full: false, width: 300 } } },
851
+ { insert: { 'table-up-col': { tableId: '1', colId: '4', full: false, width: 300 } } },
852
+ { insert: { 'table-up-col': { tableId: '1', colId: '5', full: false, width: 300 } } },
853
+ { insert: '16' },
854
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
855
+ { insert: '17' },
856
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
857
+ { insert: '18' },
858
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
859
+ { insert: '19' },
860
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
861
+ { insert: '20' },
862
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '4', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
863
+ { insert: '21' },
864
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
865
+ { insert: '22' },
866
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
867
+ { insert: '23' },
868
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
869
+ { insert: '24' },
870
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
871
+ { insert: '25' },
872
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '5', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
873
+ { insert: '1' },
874
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
875
+ { insert: '2' },
876
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
877
+ { insert: '3' },
878
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
879
+ { insert: '4' },
880
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
881
+ { insert: '5' },
882
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
883
+ { insert: '6' },
884
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
885
+ { insert: '7' },
886
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
887
+ { insert: '8' },
888
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
889
+ { insert: '9' },
890
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
891
+ { insert: '10' },
892
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
893
+ { insert: '11' },
894
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
895
+ { insert: '12' },
896
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
897
+ { insert: '13' },
898
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
899
+ { insert: '14' },
900
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
901
+ { insert: '15' },
902
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
903
+ { insert: '\n' },
904
+ ]);
905
+ });
906
+
907
+ extendTest('drag include emptyRow', async ({ page, editorPage }) => {
908
+ editorPage.index = 5;
909
+ editorPage.setContents([
910
+ { insert: '\n' },
911
+ { insert: { 'table-up-col': { tableId: '1', colId: '1', full: false, width: 211 } } },
912
+ { insert: { 'table-up-col': { tableId: '1', colId: '2', full: false, width: 211 } } },
913
+ { insert: { 'table-up-col': { tableId: '1', colId: '3', full: false, width: 211 } } },
914
+ { insert: { 'table-up-col': { tableId: '1', colId: '4', full: false, width: 211 } } },
915
+ { insert: { 'table-up-col': { tableId: '1', colId: '5', full: false, width: 211 } } },
916
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
917
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
918
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
919
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
920
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
921
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
922
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
923
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
924
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
925
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
926
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '1', rowspan: 3, colspan: 5, tag: 'td', wrapTag: 'tbody', emptyRow: ['4', '5'] } }, insert: '\n' },
927
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '6', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
928
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '6', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
929
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '6', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
930
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '6', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
931
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '6', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
932
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '7', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
933
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '7', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
934
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '7', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
935
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '7', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
936
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '7', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
937
+ { insert: '\n' },
938
+ ]);
939
+
940
+ await page.locator('td').nth(0).click();
941
+ expect(await page.locator('#container6 .table-up-toolbox .table-up-resize-box__row').isVisible()).toBe(true);
942
+ await page.locator('#container6 .table-up-toolbox .table-up-resize-box__row-header').nth(1).click();
943
+ await page.keyboard.down('Shift');
944
+ await page.locator('#container6 .table-up-toolbox .table-up-resize-box__row-header').nth(3).click();
945
+ await page.keyboard.up('Shift');
946
+
947
+ const headBoundingBox = (await page.locator('#container6 .table-up-toolbox .table-up-resize-box__row-header').nth(3).boundingBox())!;
948
+ expect(headBoundingBox).not.toBeNull();
949
+
950
+ await page.mouse.move(headBoundingBox.x + headBoundingBox.width / 2, headBoundingBox.y + headBoundingBox.height / 2);
951
+ await page.mouse.down();
952
+ await page.mouse.move(headBoundingBox.x + headBoundingBox.width / 2, headBoundingBox.y + headBoundingBox.height * 2);
953
+ await page.mouse.up();
954
+
955
+ const delta = await editorPage.getContents();
956
+ expect(delta.ops).toEqual([
957
+ { insert: '\n' },
958
+ { insert: { 'table-up-col': { tableId: '1', colId: '1', full: false, width: 211 } } },
959
+ { insert: { 'table-up-col': { tableId: '1', colId: '2', full: false, width: 211 } } },
960
+ { insert: { 'table-up-col': { tableId: '1', colId: '3', full: false, width: 211 } } },
961
+ { insert: { 'table-up-col': { tableId: '1', colId: '4', full: false, width: 211 } } },
962
+ { insert: { 'table-up-col': { tableId: '1', colId: '5', full: false, width: 211 } } },
963
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
964
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
965
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
966
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
967
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '1', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
968
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '7', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
969
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '7', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
970
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '7', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
971
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '7', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
972
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '7', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
973
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
974
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
975
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
976
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
977
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '2', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
978
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '3', colId: '1', rowspan: 3, colspan: 5, tag: 'td', wrapTag: 'tbody', emptyRow: ['4', '5'] } }, insert: '\n' },
979
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '6', colId: '1', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
980
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '6', colId: '2', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
981
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '6', colId: '3', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
982
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '6', colId: '4', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
983
+ { attributes: { 'table-up-cell-inner': { tableId: '1', rowId: '6', colId: '5', rowspan: 1, colspan: 1, tag: 'td', wrapTag: 'tbody' } }, insert: '\n' },
984
+ { insert: '\n' },
985
+ ]);
986
+ });
987
+ });