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
package/README.md CHANGED
@@ -132,6 +132,13 @@ The table cell selection handler
132
132
 
133
133
  The table cell resize handler
134
134
 
135
+ #### TableResizeBox Options
136
+
137
+ | Attribute | Description | Type | Default |
138
+ | --------- | ------------------------------------------------- | --------- | ------- |
139
+ | size | bounding box size(px) | `number` | `12` |
140
+ | draggable | allow drag bounding box head to sort content cell | `boolean` | `true` |
141
+
135
142
  ### TableMenuContextmenu / TableMenuSelect
136
143
 
137
144
  The table operate menu
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- .ql-toolbar .ql-picker:not(.ql-color-picker):not(.ql-icon-picker).ql-table-up{width:28px}.ql-toolbar .ql-picker:not(.ql-color-picker):not(.ql-icon-picker).ql-table-up .ql-picker-label{padding:2px 4px}.ql-toolbar .ql-picker:not(.ql-color-picker):not(.ql-icon-picker).ql-table-up .ql-picker-label svg{position:static;margin-top:0}.ql-toolbar .ql-picker.ql-expanded .ql-picker-options{z-index:1}.ql-editor .ql-table{display:table;border-collapse:collapse;table-layout:fixed;width:auto}.ql-editor .ql-table[data-full]{width:100%}.ql-editor .ql-table-wrapper{width:100%;overflow:auto}.ql-editor .ql-table-caption{position:relative;word-break:break-word;outline:0}.ql-editor .ql-table-caption .ql-table-caption--switch{display:flex;align-items:center;justify-content:center;padding:2px;border-radius:4px;border:1px solid #0003;font-size:12px;cursor:pointer;background-color:#fff}.ql-editor .ql-table-caption .ql-table-caption--switch:hover{background-color:#eee}.ql-editor .ql-table-cell{padding:8px 12px;border-color:transparent;font-size:14px;outline:0;overflow:auto}.ql-editor .ql-table-cell-inner{display:inline-block;min-width:100%;word-break:break-word;outline:0;counter-reset:list-0}.ql-editor .ql-table col{border-collapse:separate;text-indent:initial;display:table-column;table-layout:fixed}.ql-editor .ql-table tr+tr td,.ql-editor .ql-table tr+tr th{border-top:none}.ql-editor .ql-table td,.ql-editor .ql-table th{border:1px solid #a1a1aa}.ql-editor .ql-table td+td,.ql-editor .ql-table td+th,.ql-editor .ql-table th+td,.ql-editor .ql-table th+th{border-left:none}.table-up-toolbox{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.table-up-toolbox *{pointer-events:all}.table-up-tooltip{position:absolute;z-index:20;padding:.25rem .75rem;border-radius:.25rem;font-size:.75rem;color:#fff;white-space:nowrap;background-color:#303133;transition:opacity .15s linear}.table-up-tooltip.transparent{opacity:0}.table-up-tooltip.hidden{display:none}.table-up-button{--table-btn-color:#606266;--table-btn-bg-hover:#f3f4f6;--table-btn-color-border:#dcdfe6;--table-btn-border:0.0625rem solid var(--table-btn-color-border);--table-btn-confirm-color-border:#409eff;--table-btn-confirm-bg:#409eff;--table-btn-confirm-hover:#79bbff;--table-btn-confirm-outline-focus-visible:0.125rem solid #a0cfff;box-sizing:border-box;display:inline-flex;height:2rem;line-height:1;margin:0;padding:.5rem 1rem;border-radius:.25rem;border:var(--table-btn-border);color:var(--table-btn-color);background-color:transparent;font-size:.875rem;cursor:pointer}.table-up-button+.table-up-button{margin-left:.375rem}.table-up-button:hover{background-color:var(--table-btn-bg-hover)}.table-up-button.confirm{border-color:var(--table-btn-confirm-color-border);background-color:var(--table-btn-confirm-bg);color:#fff}.table-up-button.confirm:hover{border-color:var(--table-btn-confirm-hover);background-color:var(--table-btn-confirm-hover)}.table-up-button.confirm:focus-visible{outline:var(--table-btn-confirm-outline-focus-visible);outline-offset:.0625rem}.table-up-dialog{--dialog-bg:rgba(0, 0, 0, 0.5);--dialog-color-border:#ebeef5;--dialog-color-boxshadow:rgba(0, 0, 0, 0.12);--dialog-border:0.0625rem solid var(--dialog-color-border);--dialog-boxshadow:0 0 0.75rem var(--dialog-color-boxshadow);position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--dialog-bg);overflow:auto}.table-up-dialog__overlay{position:fixed;top:0;right:0;bottom:0;left:0;padding:1rem;overflow:auto;text-align:center}.table-up-dialog__overlay::after{content:'';display:inline-block;height:100%;width:0;vertical-align:middle}.table-up-dialog__content{display:inline-block;max-width:50vw;width:100%;vertical-align:middle;background-color:#fff;border-radius:.25rem;border:var(--dialog-border);font-size:1.125rem;box-shadow:var(--dialog-boxshadow);text-align:left;overflow:hidden;box-sizing:border-box}.table-up-color-picker{--color-picker-bg-color:#ffffff;box-sizing:border-box;display:inline-flex;flex-direction:column;width:16.75rem;padding:.5rem;border-radius:.375rem;background:var(--color-picker-bg-color);box-shadow:0 0 .375rem #b2b5b8}.table-up-color-picker__content{box-sizing:border-box;width:100%;height:11.75rem;padding-top:.5rem}.table-up-color-picker__selector{width:14.375rem;height:9.375rem;position:absolute}.table-up-color-picker__background{width:100%;height:100%;background:linear-gradient(to top,#000 0,rgba(0,0,0,0) 100%),linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%)}.table-up-color-picker__background-handle{box-sizing:border-box;position:absolute;border:.0625rem solid #fff;cursor:pointer;top:0;left:14.375rem;border-radius:100%;width:.625rem;height:.625rem;transform:translate(-.3125rem,-.3125rem)}.table-up-color-picker__hue{width:.75rem;height:9.375rem;margin-left:15rem;position:absolute;background:linear-gradient(0deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.table-up-color-picker__hue-handle{box-sizing:border-box;position:absolute;border:.0625rem solid #fff;cursor:pointer;background-color:#fff;box-shadow:0 0 .125rem #0009;left:0;width:1rem;height:.625rem;transform:translate(-.125rem,-.3125rem)}.table-up-color-picker__alpha{width:14.375rem;height:.75rem;position:absolute;margin-top:10rem;background:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(135deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(135deg,transparent 75%,#ccc 75%);background-size:.75rem .75rem;background-position:0 0,.375rem 0,.375rem -.375rem,0 .375rem}.table-up-color-picker__alpha-bg{position:relative;height:100%;background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%)}.table-up-color-picker__alpha-handle{box-sizing:border-box;position:absolute;border:.0625rem solid #fff;cursor:pointer;background-color:#fff;box-shadow:0 0 .125rem #0009;top:0;width:.625rem;height:1rem;transform:translate(-.3125rem,-.125rem)}.table-up-color-picker__action{box-sizing:border-box;display:flex;align-items:center;gap:.375rem;width:100%;padding-top:.5rem;border-top:.0625rem solid #e9ecef}.table-up-color-picker__action-item{flex:1;display:inline-flex;align-items:center;font-size:.75rem}.table-up-color-picker__input{box-sizing:border-box;width:100%;height:1.375rem;margin-left:.125rem;padding:.125rem 0 .125rem .25rem;background-color:#fff;border:.0625rem solid #ced4da;border-radius:.25rem;outline:0;color:#405057}.table-up-tooltip .table-up-color-picker{--color-picker-bg-color:transparent;box-shadow:none;width:15.75rem;padding:.5rem 0}.ql-container .table-up-selection{--select-color:#0589f340;display:none;position:absolute;overflow:hidden;pointer-events:none}.ql-container .table-up-selection__line{position:absolute;background-color:var(--select-color);pointer-events:none}.table-up-resize-line__col,.table-up-resize-line__row{position:absolute;z-index:0}.table-up-resize-line__col.is-hidden,.table-up-resize-line__row.is-hidden{display:none}.table-up-resize-line__col::after,.table-up-resize-line__col::before,.table-up-resize-line__row::after,.table-up-resize-line__row::before{content:'';display:block;position:absolute;top:0;z-index:1}.table-up-resize-line__row{height:.0625rem;cursor:ns-resize}.table-up-resize-line__row::after,.table-up-resize-line__row::before{width:100%;height:.5rem}.table-up-resize-line__row::before{transform:translateY(-.5rem)}.table-up-resize-line__col{width:.0625rem;cursor:ew-resize}.table-up-resize-line__col::after,.table-up-resize-line__col::before{height:100%;width:.5rem}.table-up-resize-line__col::before{transform:translateX(-.5rem)}.table-up-resize-box{position:absolute;z-index:0}.table-up-resize-box.is-hidden{display:none}.table-up-resize-box.is-caption-bottom .table-up-resize-box__corner{border-top-width:0;border-bottom-width:.0625rem;border-top-left-radius:0;border-bottom-left-radius:50%}.table-up-resize-box.is-align-right .table-up-resize-box__col-separator{left:-.125rem}.table-up-resize-box.is-align-right .table-up-resize-box__corner{border-left-width:0;border-right-width:.0625rem;border-top-left-radius:0;border-top-right-radius:50%}.table-up-resize-box.is-align-right.is-caption-bottom .table-up-resize-box__corner{border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:50%}.table-up-resize-box__col,.table-up-resize-box__row{position:absolute;top:0;left:0;overflow:hidden;display:flex}.table-up-resize-box__col-wrapper,.table-up-resize-box__row-wrapper{display:flex}.table-up-resize-box__col-header,.table-up-resize-box__row-header{position:relative;flex-shrink:0;background-color:#f3f4f5;border:.0625rem solid #ccc}.table-up-resize-box__col-wrapper{height:100%}.table-up-resize-box__col-header{height:100%;cursor:pointer;border-right-color:transparent}.table-up-resize-box__col-header:last-child{border-right-color:#ccc}.table-up-resize-box__col-separator{position:absolute;top:0;bottom:0;right:-.125rem;width:.125rem;cursor:ew-resize;z-index:0}.table-up-resize-box__col-separator::after{right:-.375rem}.table-up-resize-box__col-separator::before{left:-.375rem}.table-up-resize-box__col-separator::after,.table-up-resize-box__col-separator::before{content:'';position:absolute;top:0;display:block;width:.5rem;height:100%;z-index:1}.table-up-resize-box__row-wrapper{flex-direction:column;width:100%}.table-up-resize-box__row-header{width:100%;cursor:pointer;border-bottom-color:transparent}.table-up-resize-box__row-header:last-child{border-bottom-color:#ccc}.table-up-resize-box__row-separator{position:absolute;left:0;right:0;bottom:-.125rem;height:.125rem;cursor:ns-resize;z-index:0}.table-up-resize-box__row-separator::after{bottom:-.375rem}.table-up-resize-box__row-separator::before{top:-.375rem}.table-up-resize-box__row-separator::after,.table-up-resize-box__row-separator::before{content:'';position:absolute;left:0;display:block;width:100%;height:.5rem;z-index:1}.table-up-resize-box__corner{position:absolute;top:0;left:0;background-color:#f3f4f5;border:.0625rem solid #ccc;border-right-width:0;border-bottom-width:0;border-top-left-radius:50%;cursor:pointer}.table-up-drag-line{position:fixed;z-index:0;background-color:#409eff}.table-up-drag-line.is-col{width:.125rem;cursor:ew-resize}.table-up-drag-line.is-row{height:.125rem;cursor:ns-resize}.table-up-scale{position:absolute;top:0;left:0;overflow:hidden;pointer-events:none}.table-up-scale__block{position:absolute;top:0;left:0;transform:translate(-100%,-100%);width:.75rem;height:.75rem;background-color:#f1f5f9;border:.0625rem solid grey;cursor:nwse-resize;pointer-events:all}.table-up-scale.is-align-right .table-up-scale__block{cursor:nesw-resize}.table-up-scale.is-hidden{display:none}.table-up-scrollbar{position:absolute;z-index:1;transition:opacity .15s linear}.table-up-scrollbar__container{position:relative}.table-up-scrollbar.is-transparent{opacity:0}.table-up-scrollbar.is-vertical{top:.125rem;bottom:.125rem;left:-.5rem;width:.375rem}.table-up-scrollbar.is-vertical .table-up-scrollbar__thumb{width:100%}.table-up-scrollbar.is-horizontal{bottom:.125rem;left:.125rem;right:.125rem;height:.375rem}.table-up-scrollbar.is-horizontal .table-up-scrollbar__thumb{height:100%}.table-up-scrollbar__thumb{border-radius:.3125rem;background-color:#d2d2d2;cursor:pointer}.table-up-scrollbar__thumb:hover{background-color:#a1a1aa}.table-up-scrollbar--virtual.ql-container .ql-table-wrapper{scrollbar-width:none}.table-up-align,.table-up-menu{position:absolute;z-index:1;display:flex;align-items:center;padding:.25rem;border-radius:.375rem;box-shadow:0 0 .5rem rgba(0,0,0,.5);background-color:#fff;font-size:.875rem}.table-up-align__item,.table-up-menu__item{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:.25rem;border-radius:.25rem;cursor:pointer}.table-up-align__item:hover,.table-up-menu__item:hover{background-color:#eee}.table-up-align__item.is-break,.table-up-menu__item.is-break{align-self:stretch;width:.0625rem;padding:0;margin:.125rem .25rem;background-color:#a3a3a3;cursor:default}.table-up-align.is-hidden,.table-up-menu.is-hidden{display:none}.table-up-align .icon,.table-up-menu .icon{display:flex;flex-shrink:0;font-size:1.25rem}.table-up-align span,.table-up-menu span{text-wrap:nowrap}.table-up-menu.is-contextmenu{flex-direction:column;padding:.25rem .5rem;max-height:21.875rem;overflow-y:auto;overflow-x:hidden}.table-up-menu.is-contextmenu .table-up-menu__item{display:flex;justify-content:flex-start;width:100%;gap:.25rem;cursor:pointer}.table-up-menu.is-contextmenu .is-break{width:100%;height:.0625rem;flex-shrink:0;margin:.25rem 0;background-color:#a3a3a3}.table-up-align .icon{width:1.25rem;height:1.25rem}.table-up-color-map{display:flex;flex-direction:column}.table-up-color-map--used{display:flex;align-items:center;justify-content:center;flex-direction:row-reverse;margin-top:.25rem;padding-top:.25rem;border-top:.0625rem solid #ccc}.table-up-color-map__content{display:flex;flex-direction:column}.table-up-color-map__content-row{display:flex;align-items:center;justify-content:center;gap:.25rem}.table-up-color-map__item{width:.875rem;height:.875rem;margin:.125rem;border:.0625rem solid #a3a3a3;cursor:pointer}.table-up-color-map__btn{display:flex;align-items:center;justify-content:center;flex:1;height:1.25rem;padding:0 .375rem;color:#303133;background-color:#fff;cursor:pointer}.table-up-color-map__btn:hover{background-color:#edeeef}
1
+ .ql-toolbar .ql-picker:not(.ql-color-picker):not(.ql-icon-picker).ql-table-up{width:28px}.ql-toolbar .ql-picker:not(.ql-color-picker):not(.ql-icon-picker).ql-table-up .ql-picker-label{padding:2px 4px}.ql-toolbar .ql-picker:not(.ql-color-picker):not(.ql-icon-picker).ql-table-up .ql-picker-label svg{position:static;margin-top:0}.ql-toolbar .ql-picker.ql-expanded .ql-picker-options{z-index:1}.ql-editor .ql-table{display:table;border-collapse:collapse;table-layout:fixed;width:auto}.ql-editor .ql-table[data-full]{width:100%}.ql-editor .ql-table-wrapper{width:100%;overflow:auto}.ql-editor .ql-table-caption{position:relative;word-break:break-word;outline:0}.ql-editor .ql-table-caption .ql-table-caption--switch{display:flex;align-items:center;justify-content:center;padding:2px;border-radius:4px;border:1px solid #0003;font-size:12px;cursor:pointer;background-color:#fff}.ql-editor .ql-table-caption .ql-table-caption--switch:hover{background-color:#eee}.ql-editor .ql-table-cell{padding:8px 12px;border-color:transparent;font-size:14px;outline:0;overflow:auto}.ql-editor .ql-table-cell-inner{display:inline-block;min-width:100%;word-break:break-word;outline:0;counter-reset:list-0}.ql-editor .ql-table col{border-collapse:separate;text-indent:initial;display:table-column;table-layout:fixed}.ql-editor .ql-table tr+tr td,.ql-editor .ql-table tr+tr th{border-top:none}.ql-editor .ql-table td,.ql-editor .ql-table th{border:1px solid #a1a1aa}.ql-editor .ql-table td+td,.ql-editor .ql-table td+th,.ql-editor .ql-table th+td,.ql-editor .ql-table th+th{border-left:none}.table-up-toolbox{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.table-up-toolbox *{pointer-events:all}.table-up-tooltip{position:absolute;z-index:20;padding:.25rem .75rem;border-radius:.25rem;font-size:.75rem;color:#fff;white-space:nowrap;background-color:#303133;transition:opacity .15s linear}.table-up-tooltip.transparent{opacity:0}.table-up-tooltip.hidden{display:none}.table-up-button{--table-btn-color:#606266;--table-btn-bg-hover:#f3f4f6;--table-btn-color-border:#dcdfe6;--table-btn-border:0.0625rem solid var(--table-btn-color-border);--table-btn-confirm-color-border:#409eff;--table-btn-confirm-bg:#409eff;--table-btn-confirm-hover:#79bbff;--table-btn-confirm-outline-focus-visible:0.125rem solid #a0cfff;box-sizing:border-box;display:inline-flex;height:2rem;line-height:1;margin:0;padding:.5rem 1rem;border-radius:.25rem;border:var(--table-btn-border);color:var(--table-btn-color);background-color:transparent;font-size:.875rem;cursor:pointer}.table-up-button+.table-up-button{margin-left:.375rem}.table-up-button:hover{background-color:var(--table-btn-bg-hover)}.table-up-button.confirm{border-color:var(--table-btn-confirm-color-border);background-color:var(--table-btn-confirm-bg);color:#fff}.table-up-button.confirm:hover{border-color:var(--table-btn-confirm-hover);background-color:var(--table-btn-confirm-hover)}.table-up-button.confirm:focus-visible{outline:var(--table-btn-confirm-outline-focus-visible);outline-offset:.0625rem}.table-up-dialog{--dialog-bg:rgba(0, 0, 0, 0.5);--dialog-color-border:#ebeef5;--dialog-color-boxshadow:rgba(0, 0, 0, 0.12);--dialog-border:0.0625rem solid var(--dialog-color-border);--dialog-boxshadow:0 0 0.75rem var(--dialog-color-boxshadow);position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--dialog-bg);overflow:auto}.table-up-dialog__overlay{position:fixed;top:0;right:0;bottom:0;left:0;padding:1rem;overflow:auto;text-align:center}.table-up-dialog__overlay::after{content:'';display:inline-block;height:100%;width:0;vertical-align:middle}.table-up-dialog__content{display:inline-block;max-width:50vw;width:100%;vertical-align:middle;background-color:#fff;border-radius:.25rem;border:var(--dialog-border);font-size:1.125rem;box-shadow:var(--dialog-boxshadow);text-align:left;overflow:hidden;box-sizing:border-box}.table-up-color-picker{--color-picker-bg-color:#ffffff;box-sizing:border-box;display:inline-flex;flex-direction:column;width:16.75rem;padding:.5rem;border-radius:.375rem;background:var(--color-picker-bg-color);box-shadow:0 0 .375rem #b2b5b8}.table-up-color-picker__content{box-sizing:border-box;width:100%;height:11.75rem;padding-top:.5rem}.table-up-color-picker__selector{width:14.375rem;height:9.375rem;position:absolute}.table-up-color-picker__background{width:100%;height:100%;background:linear-gradient(to top,#000 0,rgba(0,0,0,0) 100%),linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%)}.table-up-color-picker__background-handle{box-sizing:border-box;position:absolute;border:.0625rem solid #fff;cursor:pointer;top:0;left:14.375rem;border-radius:100%;width:.625rem;height:.625rem;transform:translate(-.3125rem,-.3125rem)}.table-up-color-picker__hue{width:.75rem;height:9.375rem;margin-left:15rem;position:absolute;background:linear-gradient(0deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.table-up-color-picker__hue-handle{box-sizing:border-box;position:absolute;border:.0625rem solid #fff;cursor:pointer;background-color:#fff;box-shadow:0 0 .125rem #0009;left:0;width:1rem;height:.625rem;transform:translate(-.125rem,-.3125rem)}.table-up-color-picker__alpha{width:14.375rem;height:.75rem;position:absolute;margin-top:10rem;background:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(135deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(135deg,transparent 75%,#ccc 75%);background-size:.75rem .75rem;background-position:0 0,.375rem 0,.375rem -.375rem,0 .375rem}.table-up-color-picker__alpha-bg{position:relative;height:100%;background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%)}.table-up-color-picker__alpha-handle{box-sizing:border-box;position:absolute;border:.0625rem solid #fff;cursor:pointer;background-color:#fff;box-shadow:0 0 .125rem #0009;top:0;width:.625rem;height:1rem;transform:translate(-.3125rem,-.125rem)}.table-up-color-picker__action{box-sizing:border-box;display:flex;align-items:center;gap:.375rem;width:100%;padding-top:.5rem;border-top:.0625rem solid #e9ecef}.table-up-color-picker__action-item{flex:1;display:inline-flex;align-items:center;font-size:.75rem}.table-up-color-picker__input{box-sizing:border-box;width:100%;height:1.375rem;margin-left:.125rem;padding:.125rem 0 .125rem .25rem;background-color:#fff;border:.0625rem solid #ced4da;border-radius:.25rem;outline:0;color:#405057}.table-up-tooltip .table-up-color-picker{--color-picker-bg-color:transparent;box-shadow:none;width:15.75rem;padding:.5rem 0}.ql-container .table-up-selection{--select-color:#0589f340;display:none;position:absolute;overflow:hidden;pointer-events:none}.ql-container .table-up-selection__line{position:absolute;background-color:var(--select-color);pointer-events:none}.table-up-resize-line__col,.table-up-resize-line__row{position:absolute;z-index:0}.table-up-resize-line__col.is-hidden,.table-up-resize-line__row.is-hidden{display:none}.table-up-resize-line__col::after,.table-up-resize-line__col::before,.table-up-resize-line__row::after,.table-up-resize-line__row::before{content:'';display:block;position:absolute;top:0;z-index:1}.table-up-resize-line__row{height:.0625rem;cursor:ns-resize}.table-up-resize-line__row::after,.table-up-resize-line__row::before{width:100%;height:.5rem}.table-up-resize-line__row::before{transform:translateY(-.5rem)}.table-up-resize-line__col{width:.0625rem;cursor:ew-resize}.table-up-resize-line__col::after,.table-up-resize-line__col::before{height:100%;width:.5rem}.table-up-resize-line__col::before{transform:translateX(-.5rem)}.table-up-resize-box{position:absolute;z-index:0}.table-up-resize-box.is-hidden{display:none}.table-up-resize-box.is-caption-bottom .table-up-resize-box__corner{border-top-width:0;border-bottom-width:.0625rem;border-top-left-radius:0;border-bottom-left-radius:50%}.table-up-resize-box.is-align-right .table-up-resize-box__col-separator{left:-.125rem}.table-up-resize-box.is-align-right .table-up-resize-box__corner{border-left-width:0;border-right-width:.0625rem;border-top-left-radius:0;border-top-right-radius:50%}.table-up-resize-box.is-align-right.is-caption-bottom .table-up-resize-box__corner{border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:50%}.table-up-resize-box__col,.table-up-resize-box__row{position:absolute;top:0;left:0;overflow:hidden;display:flex}.table-up-resize-box__col-wrapper,.table-up-resize-box__row-wrapper{display:flex}.table-up-resize-box__col-header,.table-up-resize-box__row-header{position:relative;flex-shrink:0;background-color:#f5f6f7;border:.0625rem solid #ccc}.table-up-resize-box__col-header:hover,.table-up-resize-box__row-header:hover{background-color:rgba(23,26,29,.1)}.table-up-resize-box__col-header.is-selected,.table-up-resize-box__row-header.is-selected{cursor:grab}.table-up-resize-box__col-header.is-selected:hover,.table-up-resize-box__row-header.is-selected:hover{background-color:#f5f6f7}.table-up-resize-box__col-wrapper{height:100%}.table-up-resize-box__col-header{height:100%;cursor:pointer;border-right-color:transparent}.table-up-resize-box__col-header:last-child{border-right-color:#ccc}.table-up-resize-box__col-separator{position:absolute;top:0;bottom:0;right:-.125rem;width:.125rem;cursor:ew-resize;z-index:0}.table-up-resize-box__col-separator::after{right:-.375rem}.table-up-resize-box__col-separator::before{left:-.375rem}.table-up-resize-box__col-separator::after,.table-up-resize-box__col-separator::before{content:'';position:absolute;top:0;display:block;width:.5rem;height:100%;z-index:1}.table-up-resize-box__row-wrapper{flex-direction:column;width:100%}.table-up-resize-box__row-header{width:100%;cursor:pointer;border-bottom-color:transparent}.table-up-resize-box__row-header:last-child{border-bottom-color:#ccc}.table-up-resize-box__row-separator{position:absolute;left:0;right:0;bottom:-.125rem;height:.125rem;cursor:ns-resize;z-index:0}.table-up-resize-box__row-separator::after{bottom:-.375rem}.table-up-resize-box__row-separator::before{top:-.375rem}.table-up-resize-box__row-separator::after,.table-up-resize-box__row-separator::before{content:'';position:absolute;left:0;display:block;width:100%;height:.5rem;z-index:1}.table-up-resize-box__corner{position:absolute;top:0;left:0;background-color:#f3f4f5;border:.0625rem solid #ccc;border-right-width:0;border-bottom-width:0;border-top-left-radius:50%;cursor:pointer}.table-up-drag{position:absolute;overflow:hidden;pointer-events:none}.table-up-drag__line{position:absolute;z-index:0;background-color:#409eff}.table-up-drag__line.is-col{width:.125rem;cursor:ew-resize}.table-up-drag__line.is-row{height:.125rem;cursor:ns-resize}.table-up-drag__placeholder{position:absolute;background-color:#04f2;pointer-events:none;z-index:0}.table-up-drag__placeholder.is-hidden{display:none}.table-up-drag__indicator{position:absolute;width:0;height:0;border:.0625rem solid #3f85ff;cursor:col-resize;z-index:0;opacity:0;transition:opacity .2s ease-in;pointer-events:none}.table-up-drag__tip{position:fixed;margin-left:-1.25rem;margin-top:-1.25rem;padding-top:1.25rem;padding-left:1.25rem;cursor:grabbing;z-index:1000}.table-up-drag__tip-content{width:6.25rem;height:1.5rem}.table-up-scale{position:absolute;top:0;left:0;overflow:hidden;pointer-events:none}.table-up-scale__block{position:absolute;top:0;left:0;transform:translate(-100%,-100%);width:.75rem;height:.75rem;background-color:#f1f5f9;border:.0625rem solid grey;cursor:nwse-resize;pointer-events:all}.table-up-scale.is-align-right .table-up-scale__block{cursor:nesw-resize}.table-up-scale.is-hidden{display:none}.table-up-scrollbar{position:absolute;z-index:1;transition:opacity .15s linear}.table-up-scrollbar__container{position:relative}.table-up-scrollbar.is-transparent{opacity:0}.table-up-scrollbar.is-vertical{top:.125rem;bottom:.125rem;left:-.5rem;width:.375rem}.table-up-scrollbar.is-vertical .table-up-scrollbar__thumb{width:100%}.table-up-scrollbar.is-horizontal{bottom:.125rem;left:.125rem;right:.125rem;height:.375rem}.table-up-scrollbar.is-horizontal .table-up-scrollbar__thumb{height:100%}.table-up-scrollbar__thumb{border-radius:.3125rem;background-color:#d2d2d2;cursor:pointer}.table-up-scrollbar__thumb:hover{background-color:#a1a1aa}.table-up-scrollbar--virtual.ql-container .ql-table-wrapper{scrollbar-width:none}.table-up-align,.table-up-menu{position:absolute;z-index:1;display:flex;align-items:center;padding:.25rem;border-radius:.375rem;box-shadow:0 0 .5rem rgba(0,0,0,.5);background-color:#fff;font-size:.875rem}.table-up-align__item,.table-up-menu__item{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:.25rem;border-radius:.25rem;cursor:pointer}.table-up-align__item:hover,.table-up-menu__item:hover{background-color:#eee}.table-up-align__item.is-break,.table-up-menu__item.is-break{align-self:stretch;width:.0625rem;padding:0;margin:.125rem .25rem;background-color:#a3a3a3;cursor:default}.table-up-align.is-hidden,.table-up-menu.is-hidden{display:none}.table-up-align .icon,.table-up-menu .icon{display:flex;flex-shrink:0;font-size:1.25rem}.table-up-align span,.table-up-menu span{text-wrap:nowrap}.table-up-menu.is-contextmenu{flex-direction:column;padding:.25rem .5rem;max-height:21.875rem;overflow-y:auto;overflow-x:hidden}.table-up-menu.is-contextmenu .table-up-menu__item{display:flex;justify-content:flex-start;width:100%;gap:.25rem;cursor:pointer}.table-up-menu.is-contextmenu .is-break{width:100%;height:.0625rem;flex-shrink:0;margin:.25rem 0;background-color:#a3a3a3}.table-up-align .icon{width:1.25rem;height:1.25rem}.table-up-color-map{display:flex;flex-direction:column}.table-up-color-map--used{display:flex;align-items:center;justify-content:center;flex-direction:row-reverse;margin-top:.25rem;padding-top:.25rem;border-top:.0625rem solid #ccc}.table-up-color-map__content{display:flex;flex-direction:column}.table-up-color-map__content-row{display:flex;align-items:center;justify-content:center;gap:.25rem}.table-up-color-map__item{width:.875rem;height:.875rem;margin:.125rem;border:.0625rem solid #a3a3a3;cursor:pointer}.table-up-color-map__btn{display:flex;align-items:center;justify-content:center;flex:1;height:1.25rem;padding:0 .375rem;color:#303133;background-color:#fff;cursor:pointer}.table-up-color-map__btn:hover{background-color:#edeeef}
package/dist/index.d.ts CHANGED
@@ -57,6 +57,7 @@ declare class TableCellInnerFormat extends ContainerFormat {
57
57
  set wrapTag(value: TableBodyTag);
58
58
  get wrapTag(): TableBodyTag;
59
59
  getColumnIndex(): number;
60
+ getRowIndex(): number;
60
61
  getTableBody(): TableBodyFormat | null;
61
62
  getTableRow(): TableRowFormat | null;
62
63
  setStyleByString(styleStr: string): void;
@@ -122,6 +123,7 @@ declare class TableRowFormat extends ContainerFormat {
122
123
  checkMerge(): boolean;
123
124
  wrapParentTag(): void;
124
125
  optimize(_context: Record<string, any>): void;
126
+ remove(): void;
125
127
  }
126
128
  //#endregion
127
129
  //#region src/formats/table-body-format.d.ts
@@ -316,6 +318,7 @@ declare const tableUpEvent: {
316
318
  };
317
319
  declare const tableUpInternal: {
318
320
  moduleName: string;
321
+ tableSelectionName: string;
319
322
  };
320
323
  //#endregion
321
324
  //#region src/modules/table-dom-selector.d.ts
@@ -506,17 +509,15 @@ type TableMenuOptionsInput$1 = Partial<Omit<TableMenuOptions, 'texts'>>;
506
509
  declare class TableMenuContextmenu extends TableMenuCommon {
507
510
  tableModule: TableUp;
508
511
  quill: Quill;
509
- colorChooseTooltipOption: ToolTipOptions;
512
+ static moduleName: string;
513
+ scrollHandler: [HTMLElement, (e: Event) => void][];
510
514
  constructor(tableModule: TableUp, quill: Quill, options: TableMenuOptionsInput$1);
511
515
  tableSelectioChange: (tableSelection: InternalTableSelectionModule) => void;
512
516
  listenContextmenu: (e: MouseEvent) => void;
513
517
  buildTools(): HTMLElement;
514
518
  createTipText(item: HTMLElement, text: string): void;
515
519
  show(): void;
516
- update(position?: {
517
- x: number;
518
- y: number;
519
- }): void;
520
+ update(position?: Position): void;
520
521
  destroy(): void;
521
522
  }
522
523
  //#endregion
@@ -524,6 +525,7 @@ declare class TableMenuContextmenu extends TableMenuCommon {
524
525
  declare class TableMenuSelect extends TableMenuCommon {
525
526
  tableModule: TableUp;
526
527
  quill: Quill;
528
+ static moduleName: string;
527
529
  constructor(tableModule: TableUp, quill: Quill, options: TableMenuOptionsInput);
528
530
  tableSelectionDragStart: () => void;
529
531
  tableSelectionDragEnd: (tableSelection: InternalTableSelectionModule) => void;
@@ -536,102 +538,81 @@ declare class TableMenuSelect extends TableMenuCommon {
536
538
  }
537
539
  //#endregion
538
540
  //#region src/modules/table-resize/table-resize-common.d.ts
539
- interface sizeChangeValue {
540
- px: number;
541
- pre: number;
541
+ declare class TableResizeCommonHelper {
542
+ maxRange: number;
543
+ minRange: number;
544
+ startValue: number;
545
+ dragBreak: HTMLElement | null;
546
+ tableModule: TableUp;
547
+ isX: boolean;
548
+ constructor(tableModule: TableUp, isX: boolean);
549
+ createBreak(): void;
550
+ getOffsetFromStart(tableBlot?: TableMainFormat): number;
551
+ limitRange(tableBlot: TableMainFormat | undefined, value: number, countScroll?: boolean): number;
542
552
  }
543
553
  declare class TableResizeCommon extends TableDomSelector {
544
554
  tableModule: TableUp;
545
555
  quill: Quill;
546
- static moduleName: string;
547
- colIndex: number;
548
556
  tableBlot?: TableMainFormat;
549
557
  dragging: boolean;
550
- dragColBreak: HTMLElement | null;
551
- handleColMouseUpFunc: () => Promise<void>;
552
- handleColMouseMoveFunc: (e: MouseEvent) => {
553
- left: number;
554
- width: number;
555
- } | undefined;
556
- handleColMouseDownFunc: (e: MouseEvent) => {
557
- top: number;
558
- left: number;
559
- height: number;
560
- } | undefined;
558
+ colIndex: number;
561
559
  rowIndex: number;
562
- dragRowBreak: HTMLElement | null;
563
- handleRowMouseUpFunc: () => void;
564
- handleRowMouseMoveFunc: (e: MouseEvent) => {
565
- top: number;
566
- height: number;
567
- } | undefined;
568
- handleRowMouseDownFunc: (e: MouseEvent) => {
569
- top: number;
570
- left: number;
571
- width: number;
572
- } | undefined;
573
- dragBEM: {
574
- b: () => string;
575
- be: (e?: string) => string;
576
- bm: (m?: string) => string;
577
- bem: (e?: string, m?: string) => string;
578
- ns: (s?: string) => string;
579
- bs: (s?: string) => string;
580
- cv: (v?: string) => string;
581
- is: (n: string) => string;
582
- };
560
+ dragXCommon: TableResizeCommonHelper;
561
+ dragYCommon: TableResizeCommonHelper;
583
562
  constructor(tableModule: TableUp, quill: Quill);
584
- findCurrentColIndex(_e: MouseEvent): number;
585
- colWidthChange(_i: number, _w: sizeChangeValue, _isFull: boolean): void;
586
- createConfirmDialog({
587
- message,
588
- confirm,
589
- cancel
590
- }: {
591
- message: string;
592
- confirm: string;
593
- cancel: string;
594
- }): Promise<boolean>;
595
- handleColMouseUp(): Promise<void>;
596
- getColumnRect(columnIndex: number): {
597
- left: number;
598
- right: number;
599
- width: number;
600
- } | null;
601
- handleColMouseMove(e: MouseEvent): {
602
- left: number;
603
- width: number;
604
- } | undefined;
605
- handleColMouseDown(e: MouseEvent): {
606
- top: number;
607
- left: number;
608
- height: number;
609
- } | undefined;
610
- findCurrentRowIndex(_e: MouseEvent): number;
611
- rowHeightChange(_i: number, _h: number): void;
612
- handleRowMouseUp(): void;
613
- handleRowMouseMove(e: MouseEvent): {
614
- top: number;
615
- height: number;
616
- } | undefined;
617
- handleRowMouseDown(e: MouseEvent): {
618
- top: number;
619
- left: number;
620
- width: number;
621
- } | undefined;
622
- update(): void;
623
- destroy(): void;
563
+ findDragColIndex(_cols: TableColFormat[]): number;
564
+ calculateColDragRangeByFull(): void;
565
+ calculateColDragRangeByFixed(): void;
566
+ calculateColDragRange(): void;
567
+ updateTableCol(left: number): Promise<void>;
568
+ findDragRowIndex(_rows: TableRowFormat[]): number;
569
+ calculateRowDragRange(): void;
570
+ updateTableRow(top: number): void;
571
+ removeBreak(): void;
572
+ }
573
+ //#endregion
574
+ //#region src/modules/table-resize/table-resize-drag.d.ts
575
+ declare class TableAutoScroller extends AutoScroller {
576
+ minusY: number;
577
+ minusX: number;
578
+ checkMinY(containerRect: DOMRect): boolean;
579
+ checkMinX(containerRect: DOMRect): boolean;
580
+ }
581
+ interface DragHelperOptions {
582
+ isDragX: boolean;
583
+ allowMoveToIndex?: (index: number) => boolean;
584
+ }
585
+ declare class DragTableHelper {
586
+ startPosition: ({
587
+ position: number;
588
+ size: number;
589
+ index: number;
590
+ })[];
591
+ selectedIndex: Set<number>;
592
+ moveToIndex: number;
593
+ tableModule: TableUp;
594
+ tableBlot: TableMainFormat;
595
+ dragCommon: TableResizeCommonHelper;
596
+ options: DragHelperOptions;
597
+ get isDragX(): boolean;
598
+ constructor(tableModule: TableUp, tableBlot: TableMainFormat, dragCommon: TableResizeCommonHelper, options: DragHelperOptions);
599
+ onStart(positionInfo: DragPosition, e: PointerEvent, callback?: (context: this) => void): false | undefined;
600
+ onMove(positionInfo: DragPosition, e: PointerEvent, callback?: (context: this) => void): void;
601
+ onEnd(positionInfo: DragPosition, e: PointerEvent, callback?: (context: this) => void): void;
602
+ recalculateStartPosition(): void;
603
+ findTheMovedToIndex(e: PointerEvent): number;
604
+ updateTableStructure(content: Delta, isMoveMinus: boolean): Delta;
624
605
  }
625
606
  //#endregion
626
607
  //#region src/modules/table-resize/table-resize-box.d.ts
627
608
  declare class TableResizeBox extends TableResizeCommon {
628
609
  tableModule: TableUp;
629
610
  quill: Quill;
611
+ static moduleName: string;
612
+ options: TableResizeBoxOptions;
630
613
  root: HTMLElement;
631
614
  tableWrapperBlot?: TableWrapperFormat;
632
615
  resizeObserver?: ResizeObserver;
633
- tableCols: TableColFormat[];
634
- tableRows: TableRowFormat[];
635
616
  rowHeadWrapper: HTMLElement | null;
636
617
  colHeadWrapper: HTMLElement | null;
637
618
  corner: HTMLElement | null;
@@ -640,7 +621,6 @@ declare class TableResizeBox extends TableResizeCommon {
640
621
  isX: boolean;
641
622
  index: number;
642
623
  } | null;
643
- size: number;
644
624
  bem: {
645
625
  b: () => string;
646
626
  be: (e?: string) => string;
@@ -651,26 +631,44 @@ declare class TableResizeBox extends TableResizeCommon {
651
631
  cv: (v?: string) => string;
652
632
  is: (n: string) => string;
653
633
  };
654
- constructor(tableModule: TableUp, quill: Quill, _options: any);
634
+ draggingColIndex: number;
635
+ draggingRowIndex: number;
636
+ stopColDrag: (() => void)[];
637
+ stopRowDrag: (() => void)[];
638
+ dragWrapper: HTMLElement | null;
639
+ dragPlaceholder: HTMLElement | null;
640
+ markIndicator: HTMLElement | null;
641
+ dragTip: HTMLElement | null;
642
+ stopColMoveDrag: (() => void)[];
643
+ stopRowMoveDrag: (() => void)[];
644
+ autoScroller: TableAutoScroller | null;
645
+ updateContentDraggingPosition: () => void;
646
+ cellSpanIndex: Set<number>;
647
+ dragPlaceholderStartPosition: {
648
+ x: number;
649
+ y: number;
650
+ };
651
+ constructor(tableModule: TableUp, quill: Quill, options: Partial<TableResizeBoxOptions>);
652
+ resolveOptions(options: Partial<TableResizeBoxOptions>): {
653
+ size: number;
654
+ draggable: boolean;
655
+ } & Partial<TableResizeBoxOptions>;
656
+ updateWrapperHead: () => void;
655
657
  updateWhenTextChange: (eventName: string) => void;
656
658
  setSelectionTable(table: HTMLTableElement | undefined): void;
657
- handleResizerHeader(isX: boolean, index: number, e: MouseEvent): void;
658
- findCurrentColIndex(e: MouseEvent): number;
659
- colWidthChange(i: number, w: sizeChangeValue, isFull: boolean): void;
660
- handleColMouseDownFunc: (e: MouseEvent) => {
661
- top: number;
662
- left: number;
663
- height: number;
664
- } | undefined;
659
+ handleResizerHeaderClick(isX: boolean, index: number, e: MouseEvent): void;
660
+ findDragColIndex(): number;
661
+ findDragRowIndex(): number;
662
+ updateContentDraggerPosition(dragHelper: DragTableHelper): void;
663
+ createContentDragger(e: PointerEvent, isX: boolean, dragHelper: DragTableHelper): void;
665
664
  bindColEvents(): void;
666
- findCurrentRowIndex(e: MouseEvent): number;
667
- rowHeightChange(i: number, h: number): void;
668
- handleRowMouseDownFunc: (e: MouseEvent) => {
669
- top: number;
670
- left: number;
671
- width: number;
672
- } | undefined;
673
665
  bindRowEvents(): void;
666
+ allowMoveToIndex(index: number): boolean;
667
+ recordCellSpan(isX: boolean): Set<number>;
668
+ dragHeadOptions(isX: boolean, context: {
669
+ index: number;
670
+ dragHelper: DragTableHelper;
671
+ }): Partial<DragElementOptions>;
674
672
  update(): void;
675
673
  show(): void;
676
674
  hide(): void;
@@ -681,12 +679,10 @@ declare class TableResizeBox extends TableResizeCommon {
681
679
  declare class TableResizeLine extends TableResizeCommon {
682
680
  tableModule: TableUp;
683
681
  quill: Quill;
682
+ static moduleName: string;
684
683
  colResizer?: HTMLElement;
685
684
  rowResizer?: HTMLElement;
686
685
  currentTableCell?: HTMLElement;
687
- dragging: boolean;
688
- curColIndex: number;
689
- curRowIndex: number;
690
686
  tableCellBlot?: TableCellFormat;
691
687
  bem: {
692
688
  b: () => string;
@@ -698,19 +694,21 @@ declare class TableResizeLine extends TableResizeCommon {
698
694
  cv: (v?: string) => string;
699
695
  is: (n: string) => string;
700
696
  };
701
- constructor(tableModule: TableUp, quill: Quill, _options: any);
697
+ stopColDrag?: () => void;
698
+ stopRowDrag?: () => void;
699
+ scrollHandler: [HTMLElement, (e: Event) => void][];
700
+ constructor(tableModule: TableUp, quill: Quill);
701
+ setSelectionTable(table: HTMLTableElement | undefined): void;
702
702
  updateWhenTextChange: (eventName: string) => void;
703
- mousemoveHandler: (e: MouseEvent) => void;
704
703
  findTableCell(e: MouseEvent): HTMLElement | null;
705
- findCurrentColIndex(): number;
706
- handleColMouseUpFunc: () => Promise<void>;
704
+ pointermoveHandler: (e: MouseEvent) => void;
705
+ findDragColIndex(cols: TableColFormat[]): number;
707
706
  updateColResizer(): void;
708
- findCurrentRowIndex(): number;
709
- handleRowMouseUpFunc: () => void;
707
+ findDragRowIndex(rows: TableRowFormat[]): number;
710
708
  updateRowResizer(): void;
711
709
  show(): void;
710
+ hideResizer(): void;
712
711
  hide(): void;
713
- update(): void;
714
712
  destroy(): void;
715
713
  }
716
714
  //#endregion
@@ -718,6 +716,7 @@ declare class TableResizeLine extends TableResizeCommon {
718
716
  declare class TableResizeScale extends TableDomSelector {
719
717
  tableModule: TableUp;
720
718
  quill: Quill;
719
+ static moduleName: string;
721
720
  scrollHandler: [HTMLElement, (e: Event) => void][];
722
721
  tableMainBlot?: TableMainFormat;
723
722
  tableWrapperBlot?: TableWrapperFormat;
@@ -753,6 +752,15 @@ declare class TableResizeScale extends TableDomSelector {
753
752
  //#endregion
754
753
  //#region src/modules/table-resize/utils.d.ts
755
754
  declare const isTableAlignRight: (tableMainBlot: TableMainFormat) => boolean;
755
+ declare function getColRect(cols: TableColFormat[], columnIndex: number): {
756
+ left: number;
757
+ right: number;
758
+ width: number;
759
+ } | null;
760
+ declare function isCellsSpan(isX: boolean, tableBlot: TableMainFormat, cells: TableCellInnerFormat[]): {
761
+ cellIndex: Set<number>;
762
+ isSpan: boolean;
763
+ };
756
764
  //#endregion
757
765
  //#region src/modules/table-scrollbar.d.ts
758
766
  declare class Scrollbar {
@@ -860,10 +868,7 @@ declare class TableSelection extends TableDomSelector {
860
868
  options: TableSelectionOptions;
861
869
  boundary: RelactiveRect | null;
862
870
  scrollRecordEls: HTMLElement[];
863
- startScrollRecordPosition: {
864
- x: number;
865
- y: number;
866
- }[];
871
+ startScrollRecordPosition: Position[];
867
872
  selectedTableScrollX: number;
868
873
  selectedTableScrollY: number;
869
874
  selectedEditorScrollX: number;
@@ -884,6 +889,7 @@ declare class TableSelection extends TableDomSelector {
884
889
  cv: (v?: string) => string;
885
890
  is: (n: string) => string;
886
891
  };
892
+ autoScroller: AutoScroller;
887
893
  lastSelection: SelectionData;
888
894
  _dragging: boolean;
889
895
  set dragging(val: boolean);
@@ -895,35 +901,14 @@ declare class TableSelection extends TableDomSelector {
895
901
  updateAfterEvent: () => void;
896
902
  removeCellBySelectedTds(): void;
897
903
  setSelectedTds(tds: TableCellInnerFormat[]): void;
898
- getFirstTextNode(dom: HTMLElement | Node): Node;
899
- getLastTextNode(dom: HTMLElement | Node): Node;
900
- getNodeTailOffset(node: Node): number;
901
904
  quillSelectionChangeHandler: (range: Range | null, _oldRange: Range | null, source: EmitterSource) => void;
902
905
  setSelectionData(selection: Selection, selectionData: SelectionData): void;
903
906
  selectionDirectionUp(selection: SelectionData): boolean;
904
- findWrapSelection(points: {
905
- node: Node | null;
906
- offset: number;
907
- }[]): {
908
- startNode: Node | null;
909
- startOffset: number;
910
- endNode: Node | null;
911
- endOffset: number;
912
- };
913
907
  resolveOptions(options: Partial<TableSelectionOptions>): TableSelectionOptions;
914
908
  selectionChangeHandler(): void;
915
909
  helpLinesInitial(): HTMLDivElement;
916
- computeSelectedTds(startPoint: {
917
- x: number;
918
- y: number;
919
- }, endPoint: {
920
- x: number;
921
- y: number;
922
- }): TableCellInnerFormat[];
923
- getScrollPositionDiff(): {
924
- x: number;
925
- y: number;
926
- };
910
+ computeSelectedTds(startPoint: Position, endPoint: Position): TableCellInnerFormat[];
911
+ getScrollPositionDiff(): Position;
927
912
  recordScrollPosition(): void;
928
913
  clearRecordScrollPosition(): void;
929
914
  tableSelectHandler(mousedownEvent: MouseEvent): void;
@@ -972,6 +957,10 @@ interface TableSelectionOptions {
972
957
  interface TableResizeScaleOptions {
973
958
  blockSize: number;
974
959
  }
960
+ interface TableResizeBoxOptions {
961
+ size: number;
962
+ draggable: boolean;
963
+ }
975
964
  interface TableCreatorTextOptions {
976
965
  fullCheckboxText: string;
977
966
  customBtnText: string;
@@ -1039,6 +1028,10 @@ interface TableValue {
1039
1028
  full?: boolean;
1040
1029
  align?: string;
1041
1030
  }
1031
+ interface Position {
1032
+ x: number;
1033
+ y: number;
1034
+ }
1042
1035
  interface RelactiveRect {
1043
1036
  x: number;
1044
1037
  y: number;
@@ -1062,13 +1055,7 @@ interface InternalTableSelectionModule extends InternalModule {
1062
1055
  cellSelect: HTMLElement;
1063
1056
  isDisplaySelection: boolean;
1064
1057
  tableMenu?: InternalModule;
1065
- computeSelectedTds: (startPoint: {
1066
- x: number;
1067
- y: number;
1068
- }, endPoint: {
1069
- x: number;
1070
- y: number;
1071
- }) => TableCellInnerFormat[];
1058
+ computeSelectedTds: (startPoint: Position, endPoint: Position) => TableCellInnerFormat[];
1072
1059
  setSelectedTds: (tds: TableCellInnerFormat[]) => void;
1073
1060
  updateWithSelectedTds: () => void;
1074
1061
  showDisplay: () => void;
@@ -1140,6 +1127,41 @@ interface TooltipInstance {
1140
1127
  }
1141
1128
  declare function createTooltip(target: HTMLElement, options?: ToolTipOptions): TooltipInstance | null;
1142
1129
  //#endregion
1130
+ //#region src/utils/drag-helper.d.ts
1131
+ interface DragPosition {
1132
+ startPosition: Position;
1133
+ position: Position;
1134
+ movePosition: Position;
1135
+ }
1136
+ interface DragElementOptions {
1137
+ axis: 'x' | 'y' | 'both';
1138
+ onStart: (position: DragPosition, e: PointerEvent) => void | boolean;
1139
+ onMove: (position: DragPosition, e: PointerEvent) => void;
1140
+ onEnd: (position: DragPosition, e: PointerEvent) => void;
1141
+ buttons: number[];
1142
+ container: HTMLElement;
1143
+ draggingElement: HTMLElement | Window | Document;
1144
+ exact: boolean;
1145
+ }
1146
+ //#endregion
1147
+ //#region src/utils/scroll.d.ts
1148
+ declare class AutoScroller {
1149
+ scrollThresholdX: number;
1150
+ scrollThresholdY: number;
1151
+ maxScrollSpeed: number;
1152
+ mouseY: number;
1153
+ mouseX: number;
1154
+ private animationId;
1155
+ constructor(scrollThresholdX?: number, scrollThresholdY?: number, maxScrollSpeed?: number);
1156
+ checkMinY(containerRect: DOMRect): boolean;
1157
+ checkMaxY(containerRect: DOMRect): boolean;
1158
+ checkMinX(containerRect: DOMRect): boolean;
1159
+ checkMaxX(containerRect: DOMRect): boolean;
1160
+ start(container: HTMLElement, onScroll?: (speedX: number, speedY: number) => void): void;
1161
+ updateMousePosition(x: number, y: number): void;
1162
+ stop(): void;
1163
+ }
1164
+ //#endregion
1143
1165
  //#region src/utils/utils.d.ts
1144
1166
  declare const randomId: () => string;
1145
1167
  //#endregion
@@ -1260,5 +1282,5 @@ declare class TableUp {
1260
1282
  convertTableBodyByCells(tableBlot: TableMainFormat, selecteds: TableCellInnerFormat[], tag: TableBodyTag): void;
1261
1283
  }
1262
1284
  //#endregion
1263
- export { BlockEmbedOverride, BlockOverride, ClipboardOptions, Constructor, ContainerFormat, InternalModule, InternalTableMenuModule, InternalTableSelectionModule, Matcher, MenuTooltipInstance, QuillTheme, QuillThemePicker, RelactiveRect, ScrollOverride, Scrollbar, SelectionData, Selector, SkipRowCount, TableAlign, TableBodyFormat, TableBodyTag, TableCaptionFormat, TableCaptionValue, TableCellFormat, TableCellInnerFormat, TableCellValue, TableClipboard, TableColFormat, TableColValue, TableColgroupFormat, TableConstantsData, TableCreatorTextOptions, TableDomSelector, TableFootFormat, TableHeadFormat, TableMainFormat, TableMenuCommon, TableMenuContextmenu, TableMenuOptions, TableMenuOptionsInput, TableMenuSelect, TableMenuTexts, TableResizeBox, TableResizeCommon, TableResizeLine, TableResizeScale, TableResizeScaleOptions, TableRowFormat, TableRowValue, TableSelection, TableSelectionOptions, TableTextOptions, TableUp, TableUpExtraModule, TableUpModule, TableUpOptions, TableValue, TableVirtualScrollbar, TableWrapperFormat, Tool, ToolOption, ToolOptionBreak, Writable, applyCellUpdates, blotName, createColorPicker, createSelectBox, createTooltip, TableUp as default, defaultCustomSelect, findParentBlot, findParentBlots, getCellPositions, getCountByPosition, getTableCellStructure, getTableMainRect, groupCellByRow, isTableAlignRight, parsePasteDelta, pasteCells, pasteWithLoop, pasteWithStructure, prepareCellUpdate, randomId, removeOverlappingCells, sizeChangeValue, tableMenuTools, tableUpEvent, tableUpInternal, tableUpSize, updateTableConstants };
1285
+ export { BlockEmbedOverride, BlockOverride, ClipboardOptions, Constructor, ContainerFormat, InternalModule, InternalTableMenuModule, InternalTableSelectionModule, Matcher, MenuTooltipInstance, Position, QuillTheme, QuillThemePicker, RelactiveRect, ScrollOverride, Scrollbar, SelectionData, Selector, SkipRowCount, TableAlign, TableBodyFormat, TableBodyTag, TableCaptionFormat, TableCaptionValue, TableCellFormat, TableCellInnerFormat, TableCellValue, TableClipboard, TableColFormat, TableColValue, TableColgroupFormat, TableConstantsData, TableCreatorTextOptions, TableDomSelector, TableFootFormat, TableHeadFormat, TableMainFormat, TableMenuCommon, TableMenuContextmenu, TableMenuOptions, TableMenuOptionsInput, TableMenuSelect, TableMenuTexts, TableResizeBox, TableResizeBoxOptions, TableResizeCommon, TableResizeCommonHelper, TableResizeLine, TableResizeScale, TableResizeScaleOptions, TableRowFormat, TableRowValue, TableSelection, TableSelectionOptions, TableTextOptions, TableUp, TableUp as default, TableUpExtraModule, TableUpModule, TableUpOptions, TableValue, TableVirtualScrollbar, TableWrapperFormat, Tool, ToolOption, ToolOptionBreak, Writable, applyCellUpdates, blotName, createColorPicker, createSelectBox, createTooltip, defaultCustomSelect, findParentBlot, findParentBlots, getCellPositions, getColRect, getCountByPosition, getTableCellStructure, getTableMainRect, groupCellByRow, isCellsSpan, isTableAlignRight, parsePasteDelta, pasteCells, pasteWithLoop, pasteWithStructure, prepareCellUpdate, randomId, removeOverlappingCells, tableMenuTools, tableUpEvent, tableUpInternal, tableUpSize, updateTableConstants };
1264
1286
  //# sourceMappingURL=index.d.ts.map