quill-table-up 1.3.0 → 1.3.2

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.
package/README.md CHANGED
@@ -235,18 +235,16 @@ It helps to migrate from other table modules with the same data structure.
235
235
 
236
236
  If you change the `TableWrapperFormat` blot name, you also need to add new css style to make toolbar icon have correct style.
237
237
 
238
- ```less
239
- .ql-toolbar {
240
- // change 'table-up' to your new blot name
241
- .ql-picker:not(.ql-color-picker):not(.ql-icon-picker).ql-table-up {
242
- width: 28px;
243
- .ql-picker-label {
244
- padding: 2px 4px;
245
- svg {
246
- position: static;
247
- margin-top: 0;
248
- }
249
- }
250
- }
238
+ ```css
239
+ /* change 'table-up' to your new blot name */
240
+ .ql-toolbar .ql-picker:not(.ql-color-picker):not(.ql-icon-picker).ql-table-up {
241
+ width: 28px;
242
+ }
243
+ .ql-toolbar .ql-picker:not(.ql-color-picker):not(.ql-icon-picker).ql-table-up .ql-picker-label {
244
+ padding: 2px 4px;
245
+ }
246
+ .ql-toolbar .ql-picker:not(.ql-color-picker):not(.ql-icon-picker).ql-table-up .ql-picker-label svg {
247
+ position: static;
248
+ margin-top: 0;
251
249
  }
252
250
  ```
package/dist/index.d.ts CHANGED
@@ -361,10 +361,64 @@ declare class TableMenu {
361
361
  destroy(): void;
362
362
  }
363
363
 
364
- declare class TableResize {
364
+ declare class TableResizeCommon {
365
+ quill: Quill;
366
+ colIndex: number;
367
+ tableMain?: TableMainFormat;
368
+ dragging: boolean;
369
+ dragColBreak: HTMLElement | null;
370
+ handleColMouseUpFunc: () => void;
371
+ handleColMouseMoveFunc: (e: MouseEvent) => {
372
+ left: number;
373
+ width: number;
374
+ } | undefined;
375
+ handleColMouseDownFunc: (e: MouseEvent) => {
376
+ top: number;
377
+ left: number;
378
+ height: number;
379
+ } | undefined;
380
+ rowIndex: number;
381
+ dragRowBreak: HTMLElement | null;
382
+ handleRowMouseUpFunc: () => void;
383
+ handleRowMouseMoveFunc: (e: MouseEvent) => {
384
+ top: number;
385
+ height: number;
386
+ } | undefined;
387
+ handleRowMouseDownFunc: (e: MouseEvent) => {
388
+ top: number;
389
+ left: number;
390
+ width: number;
391
+ } | undefined;
392
+ constructor(quill: Quill);
393
+ findCurrentColIndex(_e: MouseEvent): number;
394
+ colWidthChange(_i: number, _w: number, _isFull: boolean): void;
395
+ handleColMouseUp(): void;
396
+ handleColMouseMove(e: MouseEvent): {
397
+ left: number;
398
+ width: number;
399
+ } | undefined;
400
+ handleColMouseDown(e: MouseEvent): {
401
+ top: number;
402
+ left: number;
403
+ height: number;
404
+ } | undefined;
405
+ findCurrentRowIndex(_e: MouseEvent): number;
406
+ rowHeightChange(_i: number, _h: number): void;
407
+ handleRowMouseUp(): void;
408
+ handleRowMouseMove(e: MouseEvent): {
409
+ top: number;
410
+ height: number;
411
+ } | undefined;
412
+ handleRowMouseDown(e: MouseEvent): {
413
+ top: number;
414
+ left: number;
415
+ width: number;
416
+ } | undefined;
417
+ }
418
+
419
+ declare class TableResize extends TableResizeCommon {
365
420
  tableModule: TableUp;
366
421
  table: HTMLElement;
367
- quill: Quill;
368
422
  options: TableResizeOptions;
369
423
  root: HTMLElement;
370
424
  tableMain: TableMainFormat;
@@ -380,27 +434,47 @@ declare class TableResize {
380
434
  size: number;
381
435
  } & Partial<TableResizeOptions>;
382
436
  addScrollEvent(dom: HTMLElement, handle: (e: Event) => void): void;
383
- handleResizerHeader: (isX: boolean, e: MouseEvent) => void;
437
+ handleResizerHeader(isX: boolean, e: MouseEvent): void;
438
+ findCurrentColIndex(e: MouseEvent): number;
439
+ colWidthChange(i: number, w: number, isFull: boolean): void;
440
+ handleColMouseDownFunc: (e: MouseEvent) => {
441
+ top: number;
442
+ left: number;
443
+ height: number;
444
+ } | undefined;
384
445
  bindColEvents(): void;
446
+ findCurrentRowIndex(e: MouseEvent): number;
447
+ rowHeightChange(i: number, h: number): void;
448
+ handleRowMouseDownFunc: (e: MouseEvent) => {
449
+ top: number;
450
+ left: number;
451
+ width: number;
452
+ } | undefined;
385
453
  bindRowEvents(): void;
386
454
  showTool(): void;
387
455
  hideTool(): void;
388
456
  destroy(): void;
389
457
  }
390
458
 
391
- declare class TableResizeLine {
459
+ declare class TableResizeLine extends TableResizeCommon {
392
460
  tableModule: TableUp;
393
- quill: Quill;
394
461
  colResizer: HTMLElement;
395
462
  rowResizer: HTMLElement;
396
463
  currentTableCell?: HTMLElement;
397
464
  dragging: boolean;
398
465
  options: TableResizeLineOptions;
466
+ curColIndex: number;
467
+ curRowIndex: number;
468
+ tableCellBlot?: TableCellFormat;
399
469
  constructor(tableModule: TableUp, quill: Quill, options: Partial<TableResizeLineOptions>);
400
470
  resolveOptions(options: Partial<TableResizeLineOptions>): Partial<TableResizeLineOptions>;
401
471
  findTableCell(e: MouseEvent): HTMLElement | null;
402
- updateColResizer(tableCellBlot: TableCellFormat): void;
403
- updateRowResizer(tableCellBlot: TableCellFormat): void;
472
+ findCurrentColIndex(): number;
473
+ handleColMouseUpFunc: () => void;
474
+ updateColResizer(): void;
475
+ findCurrentRowIndex(): number;
476
+ handleRowMouseUpFunc: () => void;
477
+ updateRowResizer(): void;
404
478
  showResizer(): void;
405
479
  hideResizer(): void;
406
480
  }
@@ -533,4 +607,4 @@ declare class TableUp {
533
607
  }
534
608
  declare const updateTableConstants: (data: Partial<TableConstantsData>) => void;
535
609
 
536
- export { BlockOverride, BlockquoteOverride, CodeBlockOverride, type Constructor, ContainerFormat, HeaderOverride, ListItemOverride, type RelactiveRect, ScrollOverride, type SkipRowCount, TableBodyFormat, TableCellFormat, TableCellInnerFormat, type TableCellValue, TableColFormat, type TableColValue, TableColgroupFormat, type TableConstantsData, TableMainFormat, TableMenu, type TableMenuOptions, type TableMenuTexts, TableResize, TableResizeLine, type TableResizeLineOptions, type TableResizeOptions, TableRowFormat, type TableRowValue, TableSelection, type TableSelectionOptions, type TableTextOptions, TableUp, type TableUpOptions, type TableValue, TableWrapperFormat, type Tool, type ToolOption, type ToolOptionBreak, blotName, TableUp as default, findParentBlot, findParentBlots, getRelativeRect, isRectanglesIntersect, randomId, tableCantInsert, tableUpEvent, tableUpSize, updateTableConstants };
610
+ export { BlockOverride, BlockquoteOverride, CodeBlockOverride, type Constructor, ContainerFormat, HeaderOverride, ListItemOverride, type RelactiveRect, ScrollOverride, type SkipRowCount, TableBodyFormat, TableCellFormat, TableCellInnerFormat, type TableCellValue, TableColFormat, type TableColValue, TableColgroupFormat, type TableConstantsData, TableMainFormat, TableMenu, type TableMenuOptions, type TableMenuTexts, TableResize, TableResizeCommon, TableResizeLine, type TableResizeLineOptions, type TableResizeOptions, TableRowFormat, type TableRowValue, TableSelection, type TableSelectionOptions, type TableTextOptions, TableUp, type TableUpOptions, type TableValue, TableWrapperFormat, type Tool, type ToolOption, type ToolOptionBreak, blotName, TableUp as default, findParentBlot, findParentBlots, getRelativeRect, isRectanglesIntersect, randomId, tableCantInsert, tableUpEvent, tableUpSize, updateTableConstants };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import t from"quill";const e=t=>"function"==typeof t,s=Array.isArray,o=()=>Math.random().toString(36).slice(2),l=(t,e)=>{let s;return function(...o){s&&clearTimeout(s),s=setTimeout((()=>{t.apply(this,o)}),e)}};function i(t,e){let s=t.parent;for(;s&&s.statics.blotName!==e&&s!==t.scroll;)s=s.parent;if(s===t.scroll)throw new Error(`${t.statics.blotName} must be a child of ${e}`);return s}function n(t,e){const s=new Array(e.length),o=new Map(e.map(((t,e)=>[t,e])));let l=t.parent;for(;l&&l!==t.scroll&&0!==o.size;){if(o.has(l.statics.blotName)){s[o.get(l.statics.blotName)]=l,o.delete(l.statics.blotName)}l=l.parent}if(o.size>0)throw new Error(`${t.statics.blotName} must be a child of ${Array.from(o.keys()).join(", ")}`);return s}function r(t,e){for(const s of Object.getOwnPropertyNames(e))/^constructor$/.test(s)||Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(e,s));return t}function a(t,e){const s=class extends t{constructor(...t){super(...t)}};for(const t of e)r(s.prototype,t.prototype);return s}const d=t=>{let{left:e,top:s,width:o,height:l}=t;const{clientWidth:i,clientHeight:n}=document.documentElement;let r=!1,a=!1;return e+o>i?(e=i-o-8,r=!0):e<0&&(e=8,r=!0),s+l>n?(s=n-l-8,a=!0):s<0&&(s=8,a=!0),{left:e,top:s,leftLimited:r,topLimited:a}},c=(t,e)=>{e.type||(e.type="text"),e.value||(e.value="");const s=document.createElement("div");if(s.classList.add("input__item"),t){const e=document.createElement("span");e.classList.add("input__label"),e.textContent=t,s.appendChild(e)}const o=document.createElement("div");o.classList.add("input__input");const l=document.createElement("input");for(const t in e)l.setAttribute(t,e[t]);(e.max||e.min)&&l.addEventListener("blur",(()=>{e.max&&e.max<=Number(l.value)&&(l.value=String(e.max)),e.min&&e.min>=Number(l.value)&&(l.value=String(e.min))})),o.appendChild(l),s.appendChild(o),l.addEventListener("focus",(()=>{o.classList.add("focus")})),l.addEventListener("blur",(()=>{o.classList.remove("focus")}));return{item:s,input:l,errorTip:t=>{let e;o.classList.contains("error")?e=o.querySelector(".input__error-tip"):(e=document.createElement("span"),e.classList.add("input__error-tip"),o.appendChild(e)),e.textContent=t,o.classList.add("error");return{removeError:()=>{o.classList.remove("error"),e.remove()}}}}};let h=8e3;const u=async(t={})=>{const e=document.createElement("div");e.classList.add("table-creator");const s=document.createElement("div");s.classList.add("table-creator__input");const{item:o,input:l,errorTip:i}=c(t.rowText||"行数",{type:"number",value:String(t.row||""),max:99}),{item:n,input:r,errorTip:a}=c(t.colText||"列数",{type:"number",value:String(t.col||""),max:99});s.appendChild(o),s.appendChild(n),e.appendChild(s);const d=document.createElement("div");d.classList.add("table-creator__control");const u=document.createElement("button");u.classList.add("table-creator__btn","confirm"),u.textContent=t.confirmText||"Confirm";const p=document.createElement("button");return p.classList.add("table-creator__btn","cancel"),p.textContent=t.cancelText||"Cancel",d.appendChild(u),d.appendChild(p),e.appendChild(d),new Promise(((s,o)=>{const{close:n}=(({child:t,target:e=document.body,beforeClose:s=()=>{}}={})=>{const o=e,l=document.createElement("div");l.classList.add("dialog"),l.style.zIndex=String(h);const i=document.createElement("div");if(i.classList.add("dialog__overlay"),l.appendChild(i),t){const e=document.createElement("div");e.classList.add("dialog__content"),e.appendChild(t),i.appendChild(e),e.addEventListener("click",(t=>{t.stopPropagation()}))}const n=getComputedStyle(o).overflow;o.style.overflow="hidden",o.appendChild(l);const r=()=>{s(),l.remove(),o.style.overflow=n};return l.addEventListener("click",r),h+=1,{dialog:l,close:r}})({child:e,beforeClose:o});u.addEventListener("click",(async()=>{const e=Number(l.value),o=Number(r.value);return Number.isNaN(e)||e<=0?i(t.notPositiveNumberError||"请输入正整数"):Number.isNaN(o)||o<=0?a(t.notPositiveNumberError||"请输入正整数"):(s({row:e,col:o}),void n())})),p.addEventListener("click",(()=>{n()}))}))};let p;const b=(t,e={})=>{const{msg:s="",delay:o=150,content:l,direction:i="bottom"}=e;if(s||l){p||(p=document.createElement("div"),document.body.appendChild(p));const e=document.createElement("div");let n;e.classList.add("tooltip"),e.classList.add("hidden"),e.classList.add("transparent"),l?e.appendChild(l):s&&(e.textContent=s);const r=()=>{e.classList.add("hidden"),p.contains(e)&&p.removeChild(e)},a=()=>{n&&clearTimeout(n),n=setTimeout((()=>{p.appendChild(e),e.removeEventListener("transitionend",r),e.classList.remove("hidden");const s=t.getBoundingClientRect(),o=e.getBoundingClientRect(),l={top:{top:-o.height-8,left:s.width/2-o.width/2},right:{top:s.height/2-o.height/2,left:s.width+8},bottom:{top:o.height+8,left:s.width/2-o.width/2},left:{top:s.height/2-o.height/2,left:-o.width-8}}[i];let n=s.top+l.top,a=s.left+l.left;Object.assign(e.style,{top:`${n+window.scrollY}px`,left:`${a+window.scrollX}px`}),({top:n,left:a}=d(e.getBoundingClientRect())),Object.assign(e.style,{top:`${n+window.scrollY}px`,left:`${a+window.scrollX}px`}),e.classList.remove("transparent")}),o)},c=()=>{n&&clearTimeout(n),n=setTimeout((()=>{e.classList.add("transparent"),e.addEventListener("transitionend",r,{once:!0}),setTimeout((()=>{r()}),150)}),o)};return t.addEventListener("mouseenter",a),t.addEventListener("mouseleave",c),e.addEventListener("mouseenter",a),e.addEventListener("mouseleave",c),e}return null},m={container:"table-up-container",tableWrapper:"table-up",tableMain:"table-up-main",tableColgroup:"table-up-colgroup",tableCol:"table-up-col",tableBody:"table-up-body",tableRow:"table-up-row",tableCell:"table-up-cell",tableCellInner:"table-up-cell-inner"},g={colMinWidthPre:5,colMinWidthPx:26,rowMinHeightPx:36},f={AFTER_TABLE_RESIZE:"after-table-resize"},w=t.import("parchment"),v=t.import("blots/container"),C=t.import("blots/block"),x=t.import("blots/block/embed");class I extends v{static blotName=m.container;static scope=w.Scope.BLOCK_BLOT;static allowedChildren=[C,x,v];static requiredContainer;static defaultChild;clearDeltaCache(){const t=this.descendants(C,0);for(const e of t)e.cache={}}insertBefore(t,e){t.statics.blotName===this.statics.blotName&&t.children.length>0?super.insertBefore(t.children.head,e):super.insertBefore(t,e)}insertAt(t,e,s){const[o]=this.children.find(t);if(!o){const t=this.scroll.create(this.statics.defaultChild.blotName||"block");this.appendChild(t)}super.insertAt(t,e,s)}optimize(t){if(0===this.children.length)if(null!=this.statics.defaultChild){const t=this.scroll.create(this.statics.defaultChild.blotName);this.appendChild(t)}else this.remove();this.children.length>0&&null!=this.next&&this.checkMerge()&&(this.next.moveChildren(this),this.next.remove())}}const y=t.import("parchment"),N=t.import("blots/block");class L extends N{replaceWith(t,e){const s="string"==typeof t?this.scroll.create(t,e):t;if(s instanceof y.ParentBlot){if(s.statics.blotName===m.tableCellInner){const t=this.parent;if(t.statics.blotName===m.tableCellInner){if(null!=t&&t.insertBefore(s,this.prev?null:this.next),this.parent.statics.blotName===m.tableCellInner&&this.prev){let t=this;for(;t;){const e=t.next;s.appendChild(t),t=e}}else s.appendChild(this);if(t&&0===t.length()){t.parent.remove();const e=t.parent.parent;e.statics.blotName===m.tableRow&&0===e.children.length&&e.remove()}}else null!=t&&t.insertBefore(s,this.next),s.appendChild(this);return s}this.moveChildren(s)}return null!=this.parent&&(this.parent.insertBefore(s,this.next||void 0),this.remove()),this.attributes.copy(s),s}format(t,e){if(t!==m.tableCellInner||this.parent.statics.blotName!==t||e)super.format(t,e);else{const[t,e,s]=n(this,[m.tableCell,m.tableRow,m.tableWrapper]),o=s.next;let l=e.next,i=t.next;for(s.parent.insertBefore(this,o);i;){const t=i.next;s.parent.insertBefore(i,o),i=t}for(;l;){const t=l.next;s.parent.insertBefore(l,o),l=t}}}}const E=t.import("formats/blockquote");class T extends(a(E,[L])){}const M=t.import("formats/code-block");class R extends(a(M,[L])){}const B=t.import("formats/header");class S extends(a(B,[L])){}const z=t.import("formats/list");class k extends(a(z,[L])){static register(){}}const q=t.import("parchment"),O=t.import("blots/scroll");class $ extends O{createBlock(t,e){let s,o={};for(const[e,l]of Object.entries(t)){null!=this.query(e,q.Scope.BLOCK&q.Scope.BLOT)?s=e:o[e]=l}s===m.tableCellInner&&(o={...t},delete o[s]);const l=this.create(s||this.statics.defaultChild.blotName,s?t[s]:void 0);this.insertBefore(l,e||void 0);const i=l.length();for(const[t,e]of Object.entries(o))l.formatAt(0,i,t,e);return l}}const A=t.import("blots/block"),H=t.import("blots/block/embed");class j extends I{static blotName=m.tableCellInner;static tagName="div";static className="ql-table-cell-inner";static defaultChild=A;static create(t){const{tableId:e,rowId:s,colId:o,rowspan:l,colspan:i,backgroundColor:n,height:r}=t,a=super.create();return a.dataset.tableId=e,a.dataset.rowId=s,a.dataset.colId=o,a.dataset.rowspan=String(l||1),a.dataset.colspan=String(i||1),r&&(a.dataset.height=r),n&&(a.dataset.backgroundColor=n),a}allowDataAttrs=new Set(["table-id","row-id","col-id","rowspan","colspan","background-color","height"]);setFormatValue(t,e){if(!this.allowDataAttrs.has(t))return;const s=`data-${t}`;e?this.domNode.setAttribute(s,e):this.domNode.removeAttribute(s),this.clearDeltaCache()}get tableId(){return this.domNode.dataset.tableId}get rowId(){return this.domNode.dataset.rowId}set rowId(t){this.parent&&(this.parent.rowId=t),this.setFormatValue("row-id",t)}get colId(){return this.domNode.dataset.colId}set colId(t){this.parent&&(this.parent.colId=t),this.setFormatValue("col-id",t)}get rowspan(){return Number(this.domNode.dataset.rowspan)}set rowspan(t){this.parent&&(this.parent.rowspan=t),this.setFormatValue("rowspan",t)}get colspan(){return Number(this.domNode.dataset.colspan)}set colspan(t){this.parent&&(this.parent.colspan=t),this.setFormatValue("colspan",t)}get backgroundColor(){return this.domNode.dataset.backgroundColor||""}set backgroundColor(t){this.parent&&(this.parent.backgroundColor=t),this.setFormatValue("background-color",t)}get height(){return this.domNode.dataset.height||""}set height(t){this.parent&&(this.parent.height=t),this.setFormatValue("height",t)}getColumnIndex(){return i(this,m.tableMain).getColIds().indexOf(this.colId)}formatAt(t,e,s,o){0===this.children.length&&(this.appendChild(this.scroll.create(this.statics.defaultChild.blotName)),e+=1),super.formatAt(t,e,s,o)}formats(){const{tableId:t,rowId:e,colId:s,rowspan:o,colspan:l,backgroundColor:i,height:n}=this,r={tableId:t,rowId:e,colId:s,rowspan:o,colspan:l};return n&&(r.height=n),i&&(r.backgroundColor=i),{[this.statics.blotName]:r}}optimize(){const t=this.parent,{tableId:e,colId:s,rowId:o,rowspan:l,colspan:i,backgroundColor:n,height:r}=this;if(this.prev&&this.prev instanceof H){const t=this.scroll.create("block");this.appendChild(this.prev),this.appendChild(t)}null!==t&&t.statics.blotName!==m.tableCell&&this.wrap(m.tableCell,{tableId:e,colId:s,rowId:o,rowspan:l,colspan:i,backgroundColor:n,height:r}),this.children.length>0&&null!=this.next&&this.checkMerge()&&(this.next.moveChildren(this),this.next.remove()),null!=this.uiNode&&this.uiNode!==this.domNode.firstChild&&this.domNode.insertBefore(this.uiNode,this.domNode.firstChild),0===this.children.length&&this.remove()}insertBefore(t,e){if(t.statics.blotName===this.statics.blotName){const s=t,o=s.formats()[this.statics.blotName],l=this.formats()[this.statics.blotName];if(Object.entries(l).every((([t,e])=>e===o[t])))return this.parent.insertBefore(s,this.next);{const[t,i]=n(this,[m.tableRow,m.tableCell]);if(e){const s=e.offset();if(s+1<this.length()){const e=this.scroll.create(m.tableCellInner,l);this.children.forEachAt(s+1,this.length(),(t=>{e.appendChild(t)})),t.insertBefore(e.wrap(m.tableCell,l),i.next),0===this.children.length&&(this.remove(),0===this.parent.children.length&&this.parent.remove())}}if(l.rowId!==o.rowId){if(e){const s=e.offset(t);t.split(s)}else if(i.next){const e=i.next.offset(t);t.split(e)}const l=s.wrap(m.tableCell,o);return t.parent.insertBefore(l.wrap(m.tableRow,o),t.next)}return t.insertBefore(s.wrap(m.tableCell,o),e?i:i.next)}}super.insertBefore(t,e)}}class _ extends I{static blotName=m.tableRow;static tagName="tr";static className="ql-table-row";static create(t){const e=super.create();return e.dataset.tableId=t.tableId,e.dataset.rowId=t.rowId,e}checkMerge(){const t=this.next;return null!==t&&t.statics.blotName===this.statics.blotName&&t.domNode.dataset.rowId===this.rowId}get rowId(){return this.domNode.dataset.rowId}get tableId(){return this.domNode.dataset.tableId}setHeight(t){this.foreachCellInner((e=>{e.height=t}))}insertCell(t,e){const s=[],o=this.children.iterator();let l,i=0;for(;(l=o())&&(i+=l.colspan,!(i>t));)if(1!==l.rowspan)for(let t=0;t<l.rowspan-1;t++)s[t]=(s[t]||0)+l.colspan;if(l&&i-l.colspan<t){l.getCellInner().colspan+=1,1!==l.rowspan&&(s.skipRowNum=l.rowspan-1)}else{const t=this.scroll.create(m.tableCell,e),s=this.scroll.create(m.tableCellInner,e),o=this.scroll.create("block");o.appendChild(this.scroll.create("break")),s.appendChild(o),t.appendChild(s),this.insertBefore(t,l)}return s}getCellByColumIndex(t){const e=[];let s=null,o=0;if(t<0)return[s,o,e];const l=this.children.iterator();for(;s=l();){if(o+=s.colspan,1!==s.rowspan)for(let t=0;t<s.rowspan-1;t++)e[t]=(e[t]||0)+s.colspan;if(o>t)break}return[s,o,e]}removeCell(t){if(t<0)return[];const e=this.getCellByColumIndex(t),[s,o]=e,l=e[2];if(!s)return l;if(o-s.colspan<t||s.colspan>1){const[e]=s.descendants(j);if(1!==s.colspan&&t===o-s.colspan){const t=i(this,m.tableMain).getColIds();e.colId=t[t.indexOf(e.colId)+1]}1!==s.rowspan&&(l.skipRowNum=s.rowspan-1),e.colspan-=1}else s.remove();return l}foreachCellInner(t){const e=this.children.iterator();let s,o=0;for(;s=e();){const[e]=s.descendants(j);if(t(e,o++))break}}optimize(t){const e=this.parent,{tableId:s}=this;null!==e&&e.statics.blotName!==m.tableBody&&this.wrap(m.tableBody,s),super.optimize(t)}}class W extends I{static blotName=m.tableBody;static tagName="tbody";static create(t){const e=super.create();return e.dataset.tableId=t,e}get tableId(){return this.domNode.dataset.tableId}checkMerge(){const t=this.next;return null!==t&&t.statics.blotName===this.statics.blotName}insertRow(t){const e=i(this,m.tableMain);if(!e)return;const s=e.getColIds(),l=this.descendants(_),n=new Set(s);let r=0;for(const e of l){if(r===t)break;e.foreachCellInner((e=>{if(r+e.rowspan>t&&(e.rowspan+=1,n.delete(e.colId),1!==e.colspan)){const t=s.indexOf(e.colId);for(let o=0;o<e.colspan-1;o++)n.delete(s[t+o+1])}})),r+=1}const a=e.tableId,d=o(),c=this.scroll.create(m.tableRow,{tableId:a,rowId:d});for(const t of n){const e=this.scroll.create("break").wrap("block").wrap(m.tableCellInner,{tableId:a,rowId:d,colId:t,rowspan:1,colspan:1}).wrap(m.tableCell,{tableId:a,rowId:d,colId:t,rowspan:1,colspan:1});c.appendChild(e)}this.insertBefore(c,l[t]||null)}optimize(t){const e=this.parent;if(null!==e&&e.statics.blotName!==m.tableMain){const{tableId:t}=this;this.wrap(m.tableMain,{tableId:t})}super.optimize(t)}}class D extends I{static blotName=m.tableCell;static tagName="td";static className="ql-table-cell";__rect;static create(t){const{tableId:e,rowId:s,colId:o,rowspan:l,colspan:i,backgroundColor:n,height:r}=t,a=super.create();return a.dataset.tableId=e,a.dataset.rowId=s,a.dataset.colId=o,a.setAttribute("rowspan",String(l||1)),a.setAttribute("colspan",String(i||1)),n&&(a.style.backgroundColor=n),r&&(a.style.height=r),a}get tableId(){return this.domNode.dataset.tableId}get rowId(){return this.domNode.dataset.rowId}set rowId(t){this.domNode.dataset.rowId=t}get colId(){return this.domNode.dataset.colId}set colId(t){this.domNode.dataset.colId=t}get rowspan(){return Number(this.domNode.getAttribute("rowspan"))}set rowspan(t){this.domNode.setAttribute("rowspan",String(t))}get colspan(){return Number(this.domNode.getAttribute("colspan"))}set colspan(t){this.domNode.setAttribute("colspan",String(t))}get backgroundColor(){return this.domNode.dataset.backgroundColor||""}set backgroundColor(t){Object.assign(this.domNode.style,{backgroundColor:t})}get height(){return this.domNode.style.height}set height(t){t&&(this.domNode.style.height=t)}getCellInner(){return this.descendants(j)[0]}checkMerge(){const{colId:t,rowId:e}=this.domNode.dataset,s=this.next;return null!==s&&s.statics.blotName===this.statics.blotName&&s.domNode.dataset.rowId===e&&s.domNode.dataset.colId===t}optimize(t){const e=this.parent,{tableId:s,rowId:o}=this;null!==e&&e.statics.blotName!==m.tableRow&&this.wrap(m.tableRow,{tableId:s,rowId:o}),super.optimize(t)}}const P=t.import("blots/block/embed");class V extends P{scroll;domNode;static blotName=m.tableCol;static tagName="col";static create(t){const{width:e,tableId:s,colId:o,full:l}=t,i=super.create();return i.setAttribute("width",`${Number.parseFloat(e)}${l?"%":"px"}`),l&&(i.dataset.full=String(l)),i.dataset.tableId=s,i.dataset.colId=o,i.setAttribute("contenteditable","false"),i}constructor(t,e){super(t,e),this.scroll=t,this.domNode=e}get width(){const t=this.domNode.getAttribute("width");return Number.parseFloat(t)}set width(t){const e=Number.parseFloat(t);this.domNode.setAttribute("width",`${e}${this.full?"%":"px"}`)}get tableId(){return this.domNode.dataset.tableId}get colId(){return this.domNode.dataset.colId}get full(){return Object.hasOwn(this.domNode.dataset,"full")}static value(t){const{tableId:e,colId:s}=t.dataset,o=t.getAttribute("width"),l={tableId:e,colId:s,full:Object.hasOwn(t.dataset,"full")};return o&&(l.width=Number.parseFloat(o)),l}checkMerge(){const t=this.next,{tableId:e,colId:s}=this;return null!==t&&t.statics.blotName===this.statics.blotName&&t.domNode.dataset.tableId===e&&t.domNode.dataset.colId===s}optimize(t){const e=this.parent;if(null!=e&&e.statics.blotName!==m.tableColgroup){const{tableId:t,full:e}=this;this.wrap(m.tableColgroup,{tableId:t,full:e})}super.optimize(t)}insertAt(t,e,s){if(null!=s)return void super.insertAt(t,e,s);const o=e.split("\n"),l=o.pop(),i=o.map((t=>{const e=this.scroll.create("block");return e.insertAt(0,t),e})),r=this.split(t),[a,d]=n(this,[m.tableColgroup,m.tableMain]),c=a.next;if(r){const t=r.offset(a);a.split(t)}let h=d.parent.parent,u=d.parent.next;if(c){const t=c.descendants(j);if(t.length>0){const e=t[0].formats()[m.tableCellInner],s=this.scroll.create("block"),o=s.wrap(m.tableCellInner,e).wrap(m.tableCell,e).wrap(m.tableRow,e).wrap(m.tableBody,e.tableId);a.parent.insertBefore(o,a.next),h=s,u=s.next}}for(const t of i)h.insertBefore(t,u);l&&h.insertBefore(this.scroll.create("text",l),u)}}class F extends I{static blotName=m.tableMain;static tagName="table";static create(t){const e=super.create(),{tableId:s,full:o}=t;return e.dataset.tableId=s,o&&(e.dataset.full=String(o)),e.classList.add("ql-table"),e.setAttribute("cellpadding","0"),e.setAttribute("cellspacing","0"),e}constructor(t,e){super(t,e),setTimeout((()=>{this.colWidthFillTable()}),0)}colWidthFillTable(){if(this.full)return;const t=this.getCols();if(!t)return;const e=t.reduce(((t,e)=>e.width+t),0);return 0===e||Number.isNaN(e)||this.full?null:(this.domNode.style.width=`${e}px`,e)}get tableId(){return this.domNode.dataset.tableId}get full(){return Object.hasOwn(this.domNode.dataset,"full")}set full(t){this.domNode[t?"setAttribute":"removeAttribute"]("data-full","")}getRows(){return this.descendants(_)}getRowIds(){return this.getRows().map((t=>t.rowId))}getCols(){return this.descendants(V)}getColIds(){return this.getCols().map((t=>t.colId))}checkMerge(){const t=this.next;return null!==t&&t.statics.blotName===this.statics.blotName&&t.domNode.tagName===this.domNode.tagName&&t.domNode.dataset.tableId===this.tableId}optimize(t){const e=this.parent;null!==e&&e.statics.blotName!==m.tableWrapper&&this.wrap(m.tableWrapper,this.tableId),super.optimize(t)}}class X extends I{static blotName=m.tableColgroup;static tagName="colgroup";static create(t){const e=super.create();return e.dataset.tableId=t.tableId,t.full&&(e.dataset.full=String(t.full)),e.setAttribute("contenteditable","false"),e}get tableId(){return this.domNode.dataset.tableId}get full(){return Object.hasOwn(this.domNode.dataset,"full")}findCol(t){const e=this.children.iterator();let s,o=0;for(;(s=e())&&o!==t;)o++;return s}insertColByIndex(t,e){const s=this.parent;if(!(s instanceof F))throw new TypeError("TableColgroupFormat should be child of TableFormat");const o=this.findCol(t),l=this.scroll.create(m.tableCol,e);if(s.full){const t=this.children.iterator();let e;for(;e=t();)if(e.width-l.width>=g.colMinWidthPre){e.width-=l.width;break}}this.insertBefore(l,o)}removeColByIndex(t){if(!(this.parent instanceof F))throw new TypeError("TableColgroupFormat should be child of TableMainFormat");const e=this.findCol(t);e&&(e.next?e.next.width+=e.width:e.prev&&(e.prev.width+=e.width),e.remove())}optimize(t){const e=this.parent;if(null!=e&&e.statics.blotName!==m.tableMain){const{tableId:t,full:e}=this;this.wrap(m.tableMain,{tableId:t,full:e})}super.optimize(t)}}class U extends I{static blotName=m.tableWrapper;static tagName="div";static className="ql-table-wrapper";static create(t){const e=super.create();return e.dataset.tableId=t,e.addEventListener("dragstart",(t=>{t.preventDefault(),t.stopPropagation()}),!0),e.addEventListener("drop",(t=>{t.preventDefault()})),e.addEventListener("dragover",(t=>{t.preventDefault(),t.dataTransfer.dropEffect="none"})),e}get tableId(){return this.domNode.dataset.tableId}insertBefore(t,e){t.statics.blotName===this.statics.blotName?super.insertBefore(t.children.head,e):this.statics.allowedChildren.some((e=>e.blotName===t.statics.blotName))?super.insertBefore(t,e):e?this.prev?this.prev.insertBefore(t,null):this.parent.insertBefore(t,this):this.next?this.next.insertBefore(t,e):this.parent.appendChild(t)}checkMerge(){const t=this.next;return null!==t&&t.statics.blotName===this.statics.blotName&&t.domNode.tagName===this.domNode.tagName&&t.domNode.dataset.tableId===this.tableId}deleteAt(t,e){super.deleteAt(t,e),setTimeout((()=>{const t=this.descendants(W),e=this.descendants(X);0!==t.length&&0!==e.length||this.remove()}),0)}}const Y=new Set,Z=[{name:"InsertTop",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M4 3h14a2 2 0 0 1 2 2v7.08a6 6 0 0 0-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2m0 4v4h6V7zm8 0v4h6V7zm-8 6v4h6v-4zm17.94 4.5h-2v4h-2v-4h-2l3-3z"/></svg>',tip:"Insert row above",handle:t=>{t.appendRow(!1),t.hideTableTools()}},{name:"InsertRight",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M4 3h14a2 2 0 0 1 2 2v7.08a6 6 0 0 0-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2m0 4v4h6V7zm8 0v4h6V7zm-8 6v4h6v-4zm15.44 8v-2h-4v-2h4v-2l3 3z"/></svg>',tip:"Insert column right",handle:t=>{t.appendCol(!0),t.hideTableTools()}},{name:"InsertBottom",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M4 3h14a2 2 0 0 1 2 2v7.08a6 6 0 0 0-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2m0 4v4h6V7zm8 0v4h6V7zm-8 6v4h6v-4zm11.94 5.5h2v-4h2v4h2l-3 3z"/></svg>',tip:"Insert row below",handle:t=>{t.appendRow(!0),t.hideTableTools()}},{name:"InsertLeft",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M4 3h14a2 2 0 0 1 2 2v7.08a6 6 0 0 0-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2m0 4v4h6V7zm8 0v4h6V7zm-8 6v4h6v-4zm14.44 2v2h4v2h-4v2l-3-3z"/></svg>',tip:"Insert column Left",handle:t=>{t.appendCol(!1),t.hideTableTools()}},{name:"break"},{name:"MergeCell",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5 10H3V4h8v2H5zm14 8h-6v2h8v-6h-2zM5 18v-4H3v6h8v-2zM21 4h-8v2h6v4h2zM8 13v2l3-3l-3-3v2H3v2zm8-2V9l-3 3l3 3v-2h5v-2z"/></svg>',tip:"Merge Cell",handle:t=>{t.mergeCells(),t.hideTableTools()}},{name:"SplitCell",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M19 14h2v6H3v-6h2v4h14zM3 4v6h2V6h14v4h2V4zm8 7v2H8v2l-3-3l3-3v2zm5 0V9l3 3l-3 3v-2h-3v-2z"/></svg>',tip:"Split Cell",handle:t=>{t.splitCell(),t.hideTableTools()}},{name:"break"},{name:"DeleteRow",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M9.41 13L12 15.59L14.59 13L16 14.41L13.41 17L16 19.59L14.59 21L12 18.41L9.41 21L8 19.59L10.59 17L8 14.41zM22 9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2zM4 9h4V6H4zm6 0h4V6h-4zm6 0h4V6h-4z"/></svg>',tip:"Delete Row",handle:t=>{t.removeRow(),t.hideTableTools()}},{name:"DeleteColumn",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M4 2h7a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2m0 8v4h7v-4zm0 6v4h7v-4zM4 4v4h7V4zm13.59 8L15 9.41L16.41 8L19 10.59L21.59 8L23 9.41L20.41 12L23 14.59L21.59 16L19 13.41L16.41 16L15 14.59z"/></svg>',tip:"Delete Column",handle:t=>{t.removeCol(),t.hideTableTools()}},{name:"DeleteTable",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="m15.46 15.88l1.42-1.42L19 16.59l2.12-2.13l1.42 1.42L20.41 18l2.13 2.12l-1.42 1.42L19 19.41l-2.12 2.13l-1.42-1.42L17.59 18zM4 3h14a2 2 0 0 1 2 2v7.08a6 6 0 0 0-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m0 4v4h6V7zm8 0v4h6V7zm-8 6v4h6v-4z"/></svg>',tip:"Delete table",handle:t=>{t.deleteTable()}},{name:"break"},{name:"BackgroundColor",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m11 7l6 6M4 16L15.7 4.3a1 1 0 0 1 1.4 0l2.6 2.6a1 1 0 0 1 0 1.4L8 20H4z"/></svg>',isColorChoose:!0,tip:"Set background color",handle:(t,e,s)=>{t.setBackgroundColor(e,s)}}];class K{tableModule;quill;options;menu=null;selectedTds=[];updateUsedColor;colorItemClass=`color-${o()}`;tooltipItem=[];constructor(t,e,o){this.tableModule=t,this.quill=e,this.options=this.resolveOptions(o);try{const t=localStorage.getItem(this.options.localstorageKey)||"[]";let e=JSON.parse(t);s(e)||(e=[]),e.map((t=>Y.add(t)))}catch{}this.updateUsedColor=l((t=>{if(t&&Y.add(t),Y.size>10){const t=Array.from(Y).slice(-10);Y.clear(),t.map((t=>Y.add(t)))}localStorage.setItem(this.options.localstorageKey,JSON.stringify(Array.from(Y)));const e=Array.from(document.querySelectorAll(`.${this.colorItemClass}.table-color-used`));for(const t of e)if(t){t.innerHTML="";for(const e of Y){const s=document.createElement("div");s.classList.add("table-color-item"),s.style.backgroundColor=e,t.appendChild(s)}}}),1e3),this.options.contextmenu?this.quill.root.addEventListener("contextmenu",this.listenContextmenu):this.menu=this.buildTools()}resolveOptions(t){return Object.assign({tipText:!0,tipTexts:{},tools:Z,localstorageKey:"__table-bg-used-color",contextmenu:!1,defaultColorMap:[["rgb(255, 255, 255)","rgb(0, 0, 0)","rgb(72, 83, 104)","rgb(41, 114, 244)","rgb(0, 163, 245)","rgb(49, 155, 98)","rgb(222, 60, 54)","rgb(248, 136, 37)","rgb(245, 196, 0)","rgb(153, 56, 215)"],["rgb(242, 242, 242)","rgb(127, 127, 127)","rgb(243, 245, 247)","rgb(229, 239, 255)","rgb(229, 246, 255)","rgb(234, 250, 241)","rgb(254, 233, 232)","rgb(254, 243, 235)","rgb(254, 249, 227)","rgb(253, 235, 255)"],["rgb(216, 216, 216)","rgb(89, 89, 89)","rgb(197, 202, 211)","rgb(199, 220, 255)","rgb(199, 236, 255)","rgb(195, 234, 213)","rgb(255, 201, 199)","rgb(255, 220, 196)","rgb(255, 238, 173)","rgb(242, 199, 255)"],["rgb(191, 191, 191)","rgb(63, 63, 63)","rgb(128, 139, 158)","rgb(153, 190, 255)","rgb(153, 221, 255)","rgb(152, 215, 182)","rgb(255, 156, 153)","rgb(255, 186, 132)","rgb(255, 226, 112)","rgb(213, 142, 255)"],["rgb(165, 165, 165)","rgb(38, 38, 38)","rgb(53, 59, 69)","rgb(20, 80, 184)","rgb(18, 116, 165)","rgb(39, 124, 79)","rgb(158, 30, 26)","rgb(184, 96, 20)","rgb(163, 130, 0)","rgb(94, 34, 129)"],["rgb(147, 147, 147)","rgb(13, 13, 13)","rgb(36, 39, 46)","rgb(12, 48, 110)","rgb(10, 65, 92)","rgb(24, 78, 50)","rgb(88, 17, 14)","rgb(92, 48, 10)","rgb(102, 82, 0)","rgb(59, 21, 81)"]],texts:this.resolveTexts(t.texts)},t)}resolveTexts(t={}){return Object.assign({custom:"Custom",clear:"Clear"},t)}listenContextmenu=t=>{t.preventDefault();const e=t.composedPath();if(!e||e.length<=0)return;e.find((t=>t.tagName&&"TABLE"===t.tagName.toUpperCase()&&t.classList.contains("ql-table")))&&this.tableModule.tableSelection?.selectedTds?.length?(this.menu||(this.menu=this.buildTools()),this.updateTools({x:t.clientX,y:t.clientY}),document.addEventListener("click",(()=>{this.hideTools()}),{once:!0})):this.hideTools()};buildTools(){const t=document.createElement("div");t.classList.add("ql-table-menu"),document.body.appendChild(t),this.options.contextmenu&&t.classList.add("contextmenu"),Object.assign(t.style,{display:"flex"});for(const s of this.options.tools){const{name:o,icon:l,handle:i,isColorChoose:n,tip:r=""}=s,a=document.createElement("span");if(a.classList.add("ql-table-menu-item"),"break"===o)a.classList.add("break");else{const t=document.createElement("i");if(t.classList.add("icon"),e(l)?t.appendChild(l(this.tableModule)):t.innerHTML=l,a.appendChild(t),n){const t=document.createElement("div");if(t.classList.add("table-color-select-wrapper"),this.options.defaultColorMap.length>0){const e=document.createElement("div");e.classList.add("table-color-map");for(const t of this.options.defaultColorMap){const s=document.createElement("div");s.classList.add("table-color-map-row");for(const e of t){const t=document.createElement("div");t.classList.add("table-color-item"),t.style.backgroundColor=e,s.appendChild(t)}e.appendChild(s)}t.appendChild(e)}const e=document.createElement("div");e.classList.add("table-color-map-row"),Object.assign(e.style,{marginTop:"4px"});const s=document.createElement("div");s.textContent=this.options.texts.clear,s.addEventListener("click",(()=>{i(this.tableModule,this.selectedTds,null)}));const o=document.createElement("label"),l=document.createElement("span");l.textContent=this.options.texts.custom;const n=document.createElement("input");if(n.type="color",Object.assign(n.style,{width:0,height:0,padding:0,border:0,outline:"none",opacity:0}),n.addEventListener("input",(()=>{i(this.tableModule,this.selectedTds,n.value),this.updateUsedColor(n.value)}),!1),o.appendChild(l),o.appendChild(n),s.classList.add("table-color-clear"),o.classList.add("table-color-custom"),e.appendChild(s),e.appendChild(o),t.appendChild(e),Y.size>0){const e=document.createElement("div");e.classList.add("table-color-used"),e.classList.add(this.colorItemClass),a.appendChild(e);for(const t of Y){const s=document.createElement("div");s.classList.add("table-color-item"),s.style.backgroundColor=t,e.appendChild(s)}t.appendChild(e)}t.addEventListener("click",(t=>{const e=t.target,s=e.style.backgroundColor;e&&s&&this.selectedTds.length>0&&(this.tableModule.setBackgroundColor(this.selectedTds,s),this.updateUsedColor(s))}));const r=b(a,{content:t,direction:"top"});r&&this.tooltipItem.push(r),this.options.contextmenu&&a.addEventListener("click",(t=>t.stopPropagation()))}else e(i)&&a.addEventListener("click",(t=>{this.quill.focus(),i(this.tableModule,this.selectedTds,t)}),!1);const s=this.options.tipTexts[o]||r;if(s&&r)if(this.options.contextmenu){const t=document.createElement("span");t.textContent=s,a.appendChild(t)}else{const t=b(a,{msg:s});t&&this.tooltipItem.push(t)}}t.appendChild(a)}return t}hideTools(){this.menu&&Object.assign(this.menu.style,{display:"none"})}updateTools(t){if(!this.menu||!this.tableModule.tableSelection||!this.tableModule.tableSelection.boundary)return;const{boundary:e,selectedTds:s}=this.tableModule.tableSelection;this.selectedTds=s;const o={display:"flex",left:0,top:0};if(this.options.contextmenu){if(!t)return this.hideTools();const{x:e,y:s}=t;o.left=e,o.top=s}else{const t=this.quill.container.getBoundingClientRect();o.left=t.left+e.x+e.width/2,o.top=t.top+e.y+e.height,o.transform="translate(-50%, 20%)"}Object.assign(this.menu.style,{...o,left:`${o.left+window.scrollX}px`,top:`${o.top+window.scrollY}px`});const l=this.menu.getBoundingClientRect(),{left:i,top:n,leftLimited:r}=d(l);Object.assign(this.menu.style,{left:`${i+window.scrollX}px`,top:`${n+window.scrollY}px`,transform:!this.options.contextmenu&&r?"translate(0%, 20%)":null})}destroy(){for(const t of this.tooltipItem)t.remove();this.quill.root.removeEventListener("contextmenu",this.listenContextmenu),this.menu&&(this.menu.remove(),this.menu=null)}}class G{tableModule;table;quill;options;root;tableMain;tableWrapper;resizeObserver;tableCols=[];tableRows=[];rowHeadWrapper=null;colHeadWrapper=null;scrollHandler=[];constructor(e,s,o,l){this.tableModule=e,this.table=s,this.quill=o,this.options=this.resolveOptions(l),this.tableMain=t.find(this.table),this.tableMain&&(this.tableWrapper=this.tableMain.parent,this.tableWrapper&&(this.root=this.tableModule.addContainer("ql-table-resizer"),this.resizeObserver=new ResizeObserver((()=>{this.showTool()})),this.resizeObserver.observe(this.table)))}resolveOptions(t){return Object.assign({size:12},t)}addScrollEvent(t,e){t.addEventListener("scroll",e),this.scrollHandler.push([t,e])}handleResizerHeader=(t,e)=>{const{clientX:s,clientY:o}=e,l=this.table.getBoundingClientRect();if(this.tableModule.tableSelection){const e=this.tableModule.tableSelection;e.selectedTds=e.computeSelectedTds({x:s,y:o},{x:t?l.right:s,y:t?o:l.bottom}),e.showSelection()}};bindColEvents(){let t=null,e=-1;const s=Array.from(this.root.getElementsByClassName("ql-table-col-header")),o=Array.from(this.root.getElementsByClassName("ql-table-col-separator")),l=document.body,i=o=>{o.preventDefault();const l=s[e].getBoundingClientRect(),i=this.tableMain.domNode.getBoundingClientRect().width;let n=o.clientX;if(this.tableMain.full){const t=g.colMinWidthPre/100*i,o=n>l.right?s[e+1]?s[e+1].getBoundingClientRect().right-t:l.right-t:1/0,r=l.x+t;n=Math.min(Math.max(n,r),o)}else n-l.x<g.colMinWidthPx&&(n=l.x+g.colMinWidthPx);t.style.left=`${n}px`,t.dataset.w=String(n-l.x)},n=()=>{const o=Number.parseInt(t.dataset.w);if(this.tableMain.full){let t=o/this.tableMain.domNode.getBoundingClientRect().width*100;const l=this.tableCols[e].width;if(t<l){t=Math.max(g.colMinWidthPre,t);const o=l-t;this.tableCols[e+1]?(s[e+1].style.width=`${this.tableCols[e+1].width+o}%`,this.tableCols[e+1].width=`${this.tableCols[e+1].width+o}%`):this.tableCols[e-1]?(s[e-1].style.width=`${this.tableCols[e-1].width+o}%`,this.tableCols[e-1].width=`${this.tableCols[e-1].width+o}%`):t=100,s[e].style.width=`${t}%`,this.tableCols[e].width=`${t}%`}else if(this.tableCols[e+1]){const o=l+this.tableCols[e+1].width;t=Math.min(o-g.colMinWidthPre,t),this.tableCols[e].width=`${t}%`,this.tableCols[e+1].width=o-t+"%",s[e].style.width=`${t}%`,s[e+1].style.width=o-t+"%"}}else this.tableMain.domNode.style.width=`${Number.parseFloat(this.tableMain.domNode.style.width)-Number.parseFloat(s[e].style.width)+o}px`,s[e].style.width=`${o}px`,this.tableCols[e].width=`${o}px`,this.colHeadWrapper.style.width=`${this.tableMain.colWidthFillTable()}px`;l.removeChild(t),t=null,e=-1,document.removeEventListener("mouseup",n),document.removeEventListener("mousemove",i),this.quill.emitter.emit(f.AFTER_TABLE_RESIZE)},r=(o,r)=>{r.preventDefault(),document.addEventListener("mouseup",n),document.addEventListener("mousemove",i),e=o;const a=document.createElement("div");a.classList.add("ql-table-drag-line"),a.classList.add("col");const d=this.tableMain.domNode.getBoundingClientRect().width,c=Number.parseFloat(s[e].style.width),h=this.tableMain.full?c/100*d:c;a.dataset.w=String(h);const u=this.table.getBoundingClientRect();Object.assign(a.style,{top:u.y-this.options.size+"px",left:`${r.clientX}px`,height:`${u.height+this.options.size}px`}),l.appendChild(a),t&&l.removeChild(t),t=a};this.addScrollEvent(this.tableWrapper.domNode,(()=>{this.colHeadWrapper.scrollLeft=this.tableWrapper.domNode.scrollLeft}));for(const t of s)t.addEventListener("click",this.handleResizerHeader.bind(this,!1));for(const[t,e]of o.entries())e.addEventListener("mousedown",r.bind(this,t)),e.addEventListener("dragstart",(t=>{t.preventDefault()}))}bindRowEvents(){let t=null,e=-1;const s=Array.from(this.root.getElementsByClassName("ql-table-row-header")),o=Array.from(this.root.getElementsByClassName("ql-table-row-separator")),l=document.body,i=o=>{o.preventDefault();const l=s[e].getBoundingClientRect();let i=o.clientY;i-l.y<g.rowMinHeightPx&&(i=l.y+g.rowMinHeightPx),t.style.top=`${i}px`,t.dataset.w=String(i-l.y)},n=()=>{const o=`${t.dataset.w}px`;this.tableRows[e].setHeight(o);const r=this.table.getBoundingClientRect();this.rowHeadWrapper.style.height=`${r.height}px`;for(const[t,e]of this.tableRows.entries()){const o=e.domNode.getBoundingClientRect();s[t].style.height=`${o.height}px`}l.removeChild(t),t=null,e=-1,document.removeEventListener("mouseup",n),document.removeEventListener("mousemove",i),this.quill.emitter.emit(f.AFTER_TABLE_RESIZE)},r=(o,r)=>{r.preventDefault(),document.addEventListener("mouseup",n),document.addEventListener("mousemove",i),e=o;const a=document.createElement("div");a.classList.add("ql-table-drag-line"),a.classList.add("row");const d=s[e].getBoundingClientRect().height;a.dataset.w=String(d);const c=this.table.getBoundingClientRect();Object.assign(a.style,{top:`${r.clientY}px`,left:c.x-this.options.size+"px",width:`${c.width+this.options.size}px`}),l.appendChild(a),t&&l.removeChild(t),t=a};for(const t of s)t.addEventListener("click",this.handleResizerHeader.bind(this,!0));for(const[t,e]of o.entries())e.addEventListener("mousedown",r.bind(this,t)),e.addEventListener("dragstart",(t=>t.preventDefault()))}showTool(){const e=t.find(this.table);if(!e)return;this.tableCols=this.tableMain.getCols(),this.tableRows=this.tableMain.getRows(),this.root.innerHTML="";const s=this.tableWrapper.domNode.getBoundingClientRect(),o=e.domNode.getBoundingClientRect(),l=this.quill.root.getBoundingClientRect();if(Object.assign(this.root.style,{top:o.y-l.y+"px",left:`${o.x-l.x+this.tableWrapper.domNode.scrollLeft}px`}),this.tableCols.length>0&&this.tableRows.length>0){const t=document.createElement("div");t.classList.add("ql-table-resizer-corner"),Object.assign(t.style,{width:`${this.options.size}px`,height:`${this.options.size}px`,transform:`translate(-${this.options.size}px, -${this.options.size}px)`}),this.root.appendChild(t)}if(this.tableCols.length>0){let t="";for(const s of this.tableCols){let l=s.width+(e.full?"%":"px");s.width||(l=`${s.domNode.getBoundingClientRect().width}px`),t+=`<div class="ql-table-col-header" style="width: ${l}">\n <div class="ql-table-col-separator" style="height: ${o.height+this.options.size-3}px"></div>\n </div>`}const l=document.createElement("div");l.classList.add("ql-table-resizer-col");const i=document.createElement("div");i.classList.add("ql-table-col-wrapper"),Object.assign(l.style,{transform:`translateY(-${this.options.size}px)`,width:`${s.width}px`,height:`${this.options.size}px`}),Object.assign(i.style,{width:`${o.width}px`}),i.innerHTML=t,l.appendChild(i),this.root.appendChild(l),l.scrollLeft=this.tableWrapper.domNode.scrollLeft,this.colHeadWrapper=l,this.bindColEvents()}if(this.tableRows.length>0){let t="";for(const e of this.tableRows){t+=`<div class="ql-table-row-header" style="height: ${`${e.domNode.getBoundingClientRect().height}px`}">\n <div class="ql-table-row-separator" style="width: ${o.width+this.options.size-3}px"></div>\n </div>`}const e=document.createElement("div");e.classList.add("ql-table-resizer-row");const i=document.createElement("div");i.classList.add("ql-table-row-wrapper"),Object.assign(e.style,{transform:`translateX(-${this.options.size}px)`,width:`${this.options.size}px`,height:s.height-(s.bottom>l.bottom?s.bottom-l.bottom:0)+"px"}),Object.assign(i.style,{height:`${o.height}px`}),i.innerHTML=t,e.appendChild(i),this.root.appendChild(e),this.rowHeadWrapper=e,this.bindRowEvents()}}hideTool(){this.root.classList.add("ql-hidden")}destroy(){this.hideTool(),this.resizeObserver.disconnect();for(const[t,e]of this.scrollHandler)t.removeEventListener("scroll",e);this.root.remove()}}class J{tableModule;quill;colResizer;rowResizer;currentTableCell;dragging=!1;options;constructor(e,s,o){this.tableModule=e,this.quill=s,this.options=this.resolveOptions(o),this.colResizer=this.tableModule.addContainer("ql-table-resize-line-col"),this.rowResizer=this.tableModule.addContainer("ql-table-resize-line-row"),this.quill.root.addEventListener("mousemove",(e=>{if(this.dragging)return;const s=this.findTableCell(e);if(!s)return;const o=t.find(s);if(o&&this.currentTableCell!==s){this.showResizer(),this.currentTableCell=s;i(o,m.tableMain).getCols().length>0&&this.updateColResizer(o),this.updateRowResizer(o)}})),this.quill.on(t.events.TEXT_CHANGE,(()=>{this.hideResizer()}))}resolveOptions(t){return Object.assign({},t)}findTableCell(t){for(const e of t.composedPath())if(e instanceof HTMLElement&&"TD"===e.tagName)return e;return null}updateColResizer(t){this.tableModule.toolBox.removeChild(this.colResizer),this.colResizer=this.tableModule.addContainer("ql-table-resize-line-col");const[e,s]=n(t,[m.tableBody,m.tableMain]),o=e.domNode.getBoundingClientRect(),l=t.domNode.getBoundingClientRect(),i=this.quill.root.getBoundingClientRect();Object.assign(this.colResizer.style,{top:o.y-i.y+"px",left:l.right-i.x+"px",height:`${o.height}px`});const r=s.getCols(),a=r.findIndex((e=>e.colId===t.colId));let d;const c=t=>{t.preventDefault();const e=r[a].domNode.getBoundingClientRect(),o=s.domNode.getBoundingClientRect().width;let l=t.clientX;if(s.full){const t=g.colMinWidthPre/100*o,s=l>e.right?r[a+1]?r[a+1].domNode.getBoundingClientRect().right-t:e.right-t:1/0,i=e.x+t;l=Math.min(Math.max(l,i),s)}else l-e.x<g.colMinWidthPx&&(l=e.x+g.colMinWidthPx);d.style.left=`${l}px`,d.dataset.w=String(l-e.x)},h=()=>{const e=Number.parseInt(d.dataset.w);if(s.full){let t=e/s.domNode.getBoundingClientRect().width*100;const o=r[a].width;if(t<o){t=Math.max(g.colMinWidthPre,t);const e=o-t;r[a+1]?r[a+1].width=`${r[a+1].width+e}%`:r[a-1]?r[a-1].width=`${r[a-1].width+e}%`:t=100,r[a].width=`${t}%`}else if(r[a+1]){const e=o+r[a+1].width;t=Math.min(e-g.colMinWidthPre,t),r[a].width=`${t}%`,r[a+1].width=e-t+"%"}}else s.domNode.style.width=`${Number.parseFloat(s.domNode.style.width)-r[a].domNode.getBoundingClientRect().width+e}px`,r[a].width=`${e}px`;document.body.removeChild(d),d=null,document.removeEventListener("mouseup",h),document.removeEventListener("mousemove",c),this.dragging=!1,this.updateColResizer(t),this.quill.emitter.emit(f.AFTER_TABLE_RESIZE)};this.colResizer.addEventListener("mousedown",(t=>{if(0!==t.button)return;t.preventDefault(),this.dragging=!0,document.addEventListener("mouseup",h),document.addEventListener("mousemove",c);const e=document.createElement("div");e.classList.add("ql-table-drag-line"),e.classList.add("col");const o=s.domNode.getBoundingClientRect(),l=o.width,i=r[a].width,n=s.full?i/100*l:i;e.dataset.w=String(n),Object.assign(e.style,{top:`${o.y}px`,left:`${t.clientX}px`,height:`${o.height}px`}),document.body.appendChild(e),d&&document.body.removeChild(d),d=e})),this.colResizer.addEventListener("dragstart",(t=>{t.preventDefault()}))}updateRowResizer(t){this.tableModule.toolBox.removeChild(this.rowResizer),this.rowResizer=this.tableModule.addContainer("ql-table-resize-line-row");if(!(t.parent instanceof _))return;const[e,s]=n(t,[m.tableBody,m.tableMain]),o=e.domNode.getBoundingClientRect(),l=t.domNode.getBoundingClientRect(),i=this.quill.root.getBoundingClientRect();let r;Object.assign(this.rowResizer.style,{top:l.bottom-i.y+"px",left:o.x-i.x+"px",width:`${o.width}px`});const a=e=>{e.preventDefault();const s=t.parent.domNode.getBoundingClientRect();let o=e.clientY;o-s.y<g.rowMinHeightPx&&(o=s.y+g.rowMinHeightPx),r.style.top=`${o}px`,r.dataset.w=String(o-s.y)},d=()=>{const e=`${r.dataset.w}px`;t.parent.setHeight(e),document.body.removeChild(r),r=null,document.removeEventListener("mouseup",d),document.removeEventListener("mousemove",a),this.dragging=!1,this.updateRowResizer(t),this.quill.emitter.emit(f.AFTER_TABLE_RESIZE)};this.rowResizer.addEventListener("mousedown",(e=>{if(0!==e.button)return;e.preventDefault(),this.dragging=!0,document.addEventListener("mouseup",d),document.addEventListener("mousemove",a);const o=document.createElement("div");o.classList.add("ql-table-drag-line"),o.classList.add("row");const l=t.parent.domNode.getBoundingClientRect().height;o.dataset.w=String(l);const i=s.domNode.getBoundingClientRect();Object.assign(o.style,{top:`${e.clientY}px`,left:`${i.x}px`,width:`${i.width}px`}),document.body.appendChild(o),r&&document.body.removeChild(r),r=o})),this.rowResizer.addEventListener("dragstart",(t=>{t.preventDefault()}))}showResizer(){Object.assign(this.colResizer.style,{display:null}),Object.assign(this.rowResizer.style,{display:null})}hideResizer(){this.currentTableCell=void 0,this.rowResizer.style.display="none",this.colResizer.style.display="none"}}class Q{tableModule;table;quill;options;boundary=null;startScrollX=0;selectedTds=[];cellSelect;dragging=!1;scrollHandler=[];selectingHandler=this.mouseDownHandler.bind(this);tableMenu;constructor(t,e,s,o={}){this.tableModule=t,this.table=e,this.quill=s,this.options=this.resolveOptions(o),this.cellSelect=this.tableModule.addContainer("ql-table-selection_line"),this.helpLinesInitial();new ResizeObserver((()=>{this.hideSelection()})).observe(this.table),this.quill.root.addEventListener("mousedown",this.selectingHandler,!1),this.tableMenu=new K(this.tableModule,s,this.options.tableMenu)}resolveOptions(t){return Object.assign({selectColor:"#0589f3",tableMenu:{}},t)}addScrollEvent(t,e){t.addEventListener("scroll",e),this.scrollHandler.push([t,e])}clearScrollEvent(){for(let t=0;t<this.scrollHandler.length;t++){const[e,s]=this.scrollHandler[t];e.removeEventListener("scroll",s)}this.scrollHandler=[]}helpLinesInitial(){Object.assign(this.cellSelect.style,{"border-color":this.options.selectColor})}computeSelectedTds(e,s){const o=t.find(this.table);if(!o)return[];const l=new Set(o.descendants(D).map(((t,e)=>(t.index=e,t)))),i=this.table.getBoundingClientRect();let n={x:Math.max(i.left,Math.min(s.x,e.x)),y:Math.max(i.top,Math.min(s.y,e.y)),x1:Math.min(i.right,Math.max(s.x,e.x)),y1:Math.min(i.bottom,Math.max(s.y,e.y))};const r=new Set;let a=!0;for(;a;){a=!1;for(const t of l){t.__rect||(t.__rect=t.domNode.getBoundingClientRect());const{x:e,y:s,right:o,bottom:i}=t.__rect;if(tt(n,{x:e,y:s,x1:o,y1:i},2)){r.add(t),l.delete(t),n={x:Math.min(n.x,e),y:Math.min(n.y,s),x1:Math.max(n.x1,o),y1:Math.max(n.y1,i)},a=!0;break}}}for(const t of[...r,...l])delete t.__rect;return this.boundary=et({...n,width:n.x1-n.x,height:n.y1-n.y},this.quill.root.parentNode),Array.from(r).sort(((t,e)=>t.index-e.index)).map((t=>(delete t.index,t.getCellInner())))}mouseDownHandler(t){const{button:e,target:s,clientX:o,clientY:l}=t,i=s.closest(".ql-table");if(0!==e||!i)return;const n=i.dataset.tableId,r={x:o,y:l};this.startScrollX=this.table.parentNode.scrollLeft,this.selectedTds=this.computeSelectedTds(r,r),this.showSelection();const a=t=>{const{button:e,target:s,clientX:o,clientY:l}=t,i=s.closest(".ql-table");if(0!==e||!i||i.dataset.tableId!==n)return;this.dragging=!0;const a={x:o,y:l};this.selectedTds=this.computeSelectedTds(r,a),this.selectedTds.length>1&&this.quill.blur(),this.updateSelection()},d=()=>{document.body.removeEventListener("mousemove",a,!1),document.body.removeEventListener("mouseup",d,!1),this.dragging=!1};document.body.addEventListener("mousemove",a,!1),document.body.addEventListener("mouseup",d,!1)}updateSelection(){if(0===this.selectedTds.length||!this.boundary)return;const t=this.table.parentNode.scrollLeft,e=this.quill.root.parentNode.scrollTop;Object.assign(this.cellSelect.style,{left:this.boundary.x+(this.startScrollX-t)-1+"px",top:`${2*e+this.boundary.y}px`,width:`${this.boundary.width+1}px`,height:`${this.boundary.height+1}px`}),this.tableMenu.updateTools()}showSelection(){this.clearScrollEvent(),Object.assign(this.cellSelect.style,{display:"block"}),this.updateSelection(),this.addScrollEvent(this.table.parentNode,(()=>{this.updateSelection()}))}hideSelection(){this.boundary=null,this.selectedTds=[],this.cellSelect&&Object.assign(this.cellSelect.style,{display:"none"}),this.tableMenu.hideTools(),this.clearScrollEvent()}destroy(){return this.hideSelection(),this.tableMenu.destroy(),this.cellSelect.remove(),this.clearScrollEvent(),this.quill.root.removeEventListener("mousedown",this.selectingHandler,!1),null}}function tt(t,e,s=4){const{x:o,y:l,x1:i,y1:n}=t,{x:r,y:a,x1:d,y1:c}=e;return!(i<=r+s||o+s>=d||(n<=a+s||l+s>=c))}function et(t,e){const s=e.getBoundingClientRect();return{x:t.x-s.x-e.scrollLeft,y:t.y-s.y-e.scrollTop,x1:t.x-s.x-e.scrollLeft+t.width,y1:t.y-s.y-e.scrollTop+t.height,width:t.width,height:t.height}}const st=t.import("delta"),ot=t.import("blots/break"),lt=t.import("ui/icons"),it=(t,{tableId:e,rowId:s,colId:o})=>{const l={tableId:e,rowId:s,colId:o,colspan:1,rowspan:1},i=t.create(m.tableCell,l),n=t.create(m.tableCellInner,l),r=t.create("block");return r.appendChild(t.create("break")),n.appendChild(r),i.appendChild(n),i},nt=[m.tableCell],rt=t=>{return!(!t||!t.parent)&&(e=t.parent,!!nt.includes(e.statics.blotName)||rt(t.parent));var e};class at{static moduleName="tableUp";static toolName=m.tableWrapper;static keyboradHandler={"forbid remove table by backspace":{bindInHead:!0,key:"Backspace",collapsed:!0,offset:0,handler(t,e){const s=this.quill.getLine(t.index)[0];if(s.prev instanceof U)return s.prev.remove(),!0;if(e.format[m.tableCellInner]){if(0===s.offset(i(s,m.tableCellInner)))return!1}return!0}},"forbid remove table by delete":{bindInHead:!0,key:"Delete",collapsed:!0,handler(t,e){const s=this.quill.getLine(t.index),o=s[0],l=s[1];if((o.next instanceof U||o.next instanceof V)&&l===o.length()-1)return!1;if(e.format[m.tableCellInner]){if(o===i(o,m.tableCellInner).children.tail&&l===o.length()-1)return!1}return!0}},"after table insert new line":{bindInHead:!0,key:"Enter",collapsed:!0,format:[m.tableCellInner],prefix:/^$/,suffix:/^\s*$/,handler(e){const[s,o]=this.quill.getLine(e.index);if(this.quill.getFormat(e.index+o+1,1)[m.tableCellInner])return!0;let l=2,i=s;for(;null!==i&&i.length()<=1;)if(i=i.prev,l-=1,l<=0)return this.quill.insertText(e.index+1,"\n"),this.quill.setSelection(e.index+1,t.sources.SILENT),!1;return!0}}};static register(){U.allowedChildren=[F],F.allowedChildren=[W,X],F.requiredContainer=U,X.allowedChildren=[V],X.requiredContainer=F,W.allowedChildren=[_],W.requiredContainer=F,_.allowedChildren=[D],D.requiredContainer=W,D.allowedChildren=[j,ot],D.requiredContainer=_,j.requiredContainer=D,t.register({"blots/scroll":$,"blots/block":L,[`blots/${m.container}`]:I,"formats/header":S,"formats/list":k,"formats/blockquote":T,"formats/code-block":R,[`formats/${m.tableCell}`]:D,[`formats/${m.tableCellInner}`]:j,[`formats/${m.tableRow}`]:_,[`formats/${m.tableBody}`]:W,[`formats/${m.tableCol}`]:V,[`formats/${m.tableColgroup}`]:X,[`formats/${m.tableMain}`]:F,[`formats/${m.tableWrapper}`]:U},!0)}quill;options;toolBox;fixTableByLisenter=l(this.balanceTables,100);selector;picker;range;table;tableSelection;tableResizer;tableResizerLine;get statics(){return this.constructor}constructor(e,s){this.quill=e,this.options=this.resolveOptions(s||{}),this.toolBox=this.quill.addContainer("ql-table-toolbox");const o=this.quill.getModule("toolbar");if(o&&this.quill.theme.pickers){const[,t]=(o.controls||[]).find((([t])=>t===this.statics.toolName))||[];t&&"select"===t.tagName.toLocaleLowerCase()&&(this.picker=this.quill.theme.pickers.find((e=>e.select===t)),this.picker&&(this.picker.label.innerHTML=this.options.icon,this.buildCustomSelect(this.options.customSelect),this.picker.label.addEventListener("mousedown",this.handleInViewport)))}const l=this.quill.getModule("keyboard");for(const t of Object.values(at.keyboradHandler))t.bindInHead?l.bindings[t.key].unshift(t):l.addBinding(t.key,t);this.quill.root.addEventListener("click",(t=>{const s=t.composedPath();if(!s||s.length<=0)return;const o=s.find((t=>t.tagName&&"TABLE"===t.tagName.toUpperCase()&&t.classList.contains("ql-table")));if(o){if(this.table===o)return void(this.tableSelection&&this.tableSelection?.showSelection());this.table&&this.hideTableTools(),this.showTableTools(o,e)}else this.table&&this.hideTableTools()}),!1),this.quill.root.addEventListener("scroll",(()=>{this.hideTableTools()})),this.quill.on(t.events.EDITOR_CHANGE,((e,s,o)=>{if(e===t.events.SELECTION_CHANGE&&s){const[e]=this.quill.getLine(s.index),[l]=this.quill.getLine(s.index+s.length);let n,r;try{n=i(e,m.tableMain)}catch{}try{r=i(l,m.tableMain)}catch{}if(e instanceof V)return this.quill.setSelection(s.index+(o.index>s.index?-1:1),s.length+(o.length===s.length?0:o.length>s.length?-1:1),t.sources.USER);if(l instanceof V)return this.quill.setSelection(s.index+1,s.length+1,t.sources.USER);s.length>0&&(n&&!r?this.quill.setSelection(s.index-1,s.length+1,t.sources.USER):r&&!n&&this.quill.setSelection(s.index,s.length+1,t.sources.USER)),n&&r||this.hideTableTools()}})),this.options.resizerSetOuter||(this.tableResizerLine=new J(this,e,this.options.resizeLine||{})),this.quill.on(f.AFTER_TABLE_RESIZE,(()=>{this.tableSelection&&this.tableSelection.hideSelection()})),this.pasteTableHandler(),this.listenBalanceCells()}addContainer(t){const e=document.createElement("div");for(const s of t.split(" "))e.classList.add(s);return this.toolBox.appendChild(e),e}resolveOptions(t){return Object.assign({customBtn:!0,texts:this.resolveTexts(t.texts||{}),full:!0,resizerSetOuter:!1,icon:lt.table},t)}resolveTexts(t){return Object.assign({customBtnText:"Custom",confirmText:"Confirm",cancelText:"Cancel",rowText:"Row",colText:"Column",notPositiveNumberError:"Please enter a positive integer"},t)}pasteTableHandler(){let t=o(),e=o(),s=[],l=0,i=0;this.quill.clipboard.addMatcher("table",((e,n)=>{if(0===n.ops.length)return n;let r,a=!1;if(n.ops[0]&&"string"!=typeof n.ops[0].insert){for(let t=0;t<n.ops.length;t++){const{insert:e,attributes:s}=n.ops[t];if(e&&"string"!=typeof e&&e[m.tableCol]){a=!0;break}if(s&&s[m.tableCellInner])break}a=!!n.ops[0].insert?.[m.tableCol]}let d=this.options.full;a&&(d=!!n.ops[0].insert?.[m.tableCol]?.full);const c=window.getComputedStyle(this.quill.root),h=Number.parseFloat(c.paddingLeft),u=Number.parseFloat(c.paddingRight),p=Number.parseFloat(c.width)-h-u,b=d?`${Math.max(100/s.length,g.colMinWidthPre)}%`:`${Math.max(p/s.length,g.colMinWidthPx)}px`;if(a)for(let e=0;e<n.ops.length;e++){const o=n.ops[e].insert;if(!o||"string"==typeof o||!o[m.tableCol]){"\n"===o&&n.ops.splice(e,1);break}Object.assign(o[m.tableCol],{tableId:t,colId:s[e],full:d,width:o[m.tableCol].width?Number.parseFloat(o[m.tableCol].width)+(d?"%":"px"):b})}else r=s.reduce(((e,s)=>(e.insert({[m.tableCol]:{colId:s,tableId:t,width:b,full:d}}),e)),new st);for(let t=0;t<n.ops.length;t++){const e=n.ops[t].attributes;e&&e.table&&delete e.table}return t=o(),s=[],l=0,i=0,(n=r?r.concat(n):n).ops.unshift({insert:"\n"}),n.ops.push({insert:"\n"}),n})),this.quill.clipboard.addMatcher("col",(e=>{s[i]=o();const l=(new st).insert({[m.tableCol]:{tableId:t,colId:s[i],full:Object.hasOwn(e.dataset,"full")}});return i+=1,l})),this.quill.clipboard.addMatcher("tr",((t,s)=>{e=o(),l=0;for(const t of s.ops)t.attributes&&t.attributes.background&&t.attributes[m.tableCellInner]&&!t.attributes[m.tableCellInner].backgroundColor&&(t.attributes[m.tableCellInner].backgroundColor=t.attributes.background);return s}));const n=(i,n)=>{const r=i,a=Number(r.getAttribute("rowspan"))||1,d=Number(r.getAttribute("colspan"))||1,c=r.style.height,h=r.style.backgroundColor;if(!s[l])for(let t=l;t>=0;t--)s[t]||(s[t]=o());const u=s[l];l+=Number(d),"\n"!==n.slice(n.length()-1).ops[0]?.insert&&n.insert("\n");const p={tableId:t,rowId:e,colId:u,rowspan:Number.isNaN(a)?1:a,colspan:Number.isNaN(d)?1:d};return c&&(p.height=c),h&&(p.backgroundColor=h),n.compose((new st).retain(n.length(),{[m.tableCellInner]:p}))};this.quill.clipboard.addMatcher("td",n),this.quill.clipboard.addMatcher("th",n)}showTableTools(t,e){t&&(this.table=t,this.tableSelection=new Q(this,t,e,this.options.selection||{}),this.options.resizerSetOuter&&(this.tableResizer=new G(this,t,e,this.options.resizer||{})))}hideTableTools(){this.tableSelection&&this.tableSelection.destroy(),this.tableSelection=void 0,this.table=void 0,this.options.resizerSetOuter&&(this.tableResizer&&this.tableResizer.destroy(),this.tableResizer=void 0)}async buildCustomSelect(t){if(!this.picker)return;const s=document.createElement("div");s.classList.add("ql-custom-select"),this.selector=t&&e(t)?await t(this):((t={})=>{const e=document.createElement("div");e.classList.add("select-box");const s=document.createElement("div");s.classList.add("select-box__block");for(let e=0;e<(t.row||8);e++)for(let o=0;o<(t.col||8);o++){const t=document.createElement("div");t.classList.add("select-box__item"),t.dataset.row=String(e+1),t.dataset.col=String(o+1),s.appendChild(t)}const o=()=>{const{row:t,col:o}=e.dataset;for(const t of Array.from(s.querySelectorAll(".active")))t.classList.remove("active");if(!t||!o)return;const l=Array.from(s.children);for(let e=0;e<l.length;e++){const{row:s,col:i}=l[e].dataset;if(s>t&&i>o)return;s<=t&&i<=o?l[e].classList.add("active"):l[e].classList.remove("active")}};if(s.addEventListener("mousemove",(t=>{if(!t.target)return;const{row:s,col:l}=t.target.dataset;s&&l&&(e.dataset.row=s,e.dataset.col=l,o())})),s.addEventListener("mouseleave",(()=>{e.removeAttribute("data-row"),e.removeAttribute("data-col"),o()})),s.addEventListener("click",(()=>{const{row:s,col:o}=e.dataset;s&&o&&t.onSelect&&t.onSelect(Number(s),Number(o))})),e.appendChild(s),t.customBtn){const s=t.texts||{},o=document.createElement("div");o.classList.add("select-box__custom"),o.textContent=s.customBtnText||"自定义行列数",o.addEventListener("click",(async()=>{const e=await u(s);e&&t.onSelect&&t.onSelect(e.row,e.col)})),e.appendChild(o)}return e})({onSelect:(t,e)=>{this.insertTable(t,e),this.picker&&this.picker.close()},customBtn:this.options.customBtn,texts:this.options.texts}),s.appendChild(this.selector),this.picker.options.appendChild(s)}handleInViewport=()=>{if(!this.selector||!this.picker)return;if(this.selector.getBoundingClientRect().right>=window.innerWidth){const t=this.picker.label.getBoundingClientRect();Object.assign(this.picker.options.style,{transform:`translateX(calc(-100% + ${t.width}px))`})}else Object.assign(this.picker.options.style,{transform:void 0})};insertTable(e,s){if(e>=30||s>=30)throw new Error("Both rows and columns must be less than 30.");this.quill.focus(),this.range=this.quill.getSelection();const l=this.range;if(null==l)return;const[i]=this.quill.getLeaf(l.index);if(!i)return;if(rt(i))throw new Error(`Not supported ${i.statics.blotName} insert into table.`);const n=getComputedStyle(this.quill.root),r=Number.parseInt(n.paddingLeft),a=Number.parseInt(n.paddingRight),d=Number.parseInt(n.width)-r-a;let c=(new st).retain(l.index).insert("\n");const h=o(),u=new Array(s).fill(0).map((()=>o()));c=new Array(s).fill("\n").reduce(((t,e,o)=>(t.insert(e,{[m.tableCol]:{width:this.options.full?1/s*100+"%":`${Math.floor(d/s)}px`,tableId:h,colId:u[o],full:this.options.full}}),t)),c),c=new Array(e).fill(0).reduce((t=>{const e=o();return new Array(s).fill("\n").reduce(((t,s,o)=>(t.insert(s,{[m.tableCellInner]:{tableId:h,rowId:e,colId:u[o],rowspan:1,colspan:1}}),t)),t)}),c),this.quill.updateContents(c,t.sources.USER),this.quill.setSelection(l.index+s+s*e+1,t.sources.SILENT),this.quill.focus()}fixUnusuaDeletelTable(t){const e=t.getRows(),s=t.getColIds();if(0===e.length)return t.remove();if(0===s.length)return;const o=new Array(e.length).fill(0).map((()=>new Array(s.length).fill(!1))),l=t.tableId;for(const[t,i]of e.entries()){let n=0,r=0;const a=o[t],d=i.descendants(D);for(;r<s.length;){if(a[r]){r+=1;continue}const c=d[n];if(c&&c.colId===s[r]){t+c.rowspan-1>=e.length&&(c.getCellInner().rowspan=e.length-t);const{colspan:s,rowspan:l}=c;if(s>1)for(let t=1;t<s;t++)a[r+t]=!0;if(l>1)for(let e=t+1;e<t+l;e++)for(let t=0;t<s;t++)o[e][r+t]=!0;n+=1}else i.insertBefore(it(this.quill.scroll,{tableId:l,colId:s[r],rowId:i.rowId}),c);r+=1}if(n<d.length)for(let t=n;t<d.length;t++)d[t].remove()}}balanceTables(){for(const t of this.quill.scroll.descendants(F))this.fixUnusuaDeletelTable(t)}listenBalanceCells(){this.quill.on(t.events.SCROLL_OPTIMIZE,(t=>{t.some((t=>!!["TD","TR","TBODY","TABLE"].includes(t.target.tagName)&&(this.fixTableByLisenter(),!0)))}))}setBackgroundColor(t,e){if(0!==t.length)for(const s of t)s.backgroundColor=e}deleteTable(){if(!this.tableSelection||0===this.tableSelection.selectedTds.length)return;const t=i(this.tableSelection.selectedTds[0],m.tableMain);t&&t.remove(),this.hideTableTools()}appendRow(t){if(!this.tableSelection)return;const e=this.tableSelection.selectedTds;if(e.length<=0)return;const s=e[t?e.length-1:0],[o,l,i]=n(s,[m.tableMain,m.tableBody,m.tableRow]),r=o.getRows().indexOf(i)+(t?s.rowspan:0);l.insertRow(r)}appendCol(t){if(!this.tableSelection)return;const e=this.tableSelection.selectedTds;if(e.length<=0)return;const[s]=e.reduce(((e,s)=>{const o=s.getColumnIndex();return(!t&&o<=e[1]||t&&o>=e[1])&&(e=[s,o]),e}),[e[0],e[0].getColumnIndex()]),l=s.getColumnIndex()+(t?s.colspan:0),n=i(s,m.tableMain),r=n.tableId,a=o(),[d]=n.descendants(X);d&&d.insertColByIndex(l,{tableId:r,colId:a,width:n.full?"6%":"160px",full:n.full});const c=n.getRows(),h=[];let u=0;for(const t of Object.values(c)){const e=h.shift()||0;if(u>0){u-=1;continue}const s=t.insertCell(l-e,{tableId:r,rowId:t.rowId,colId:a,rowspan:1,colspan:1});s.skipRowNum&&(u+=s.skipRowNum);for(const[t,e]of s.entries())h[t]=(h[t]||0)+e}}fixTableByRemove(t){const e=t.getRows(),s=t.getCols(),o=s.reduce(((t,e)=>(t[e.colId]=0,t)),{}),l=[...e].reverse(),i=[];for(const[t,s]of l.entries()){const l=e.length-t-1;s.children.length<=0?i.push(l):s.foreachCellInner((t=>{const e=i.reduce(((e,s)=>t.rowspan+l>s?e+1:e),0);t.rowspan-=e,o[t.colId]+=1}))}let n=0;for(const t of Object.values(o))if(0===t){const t=[];let s=0;for(const o of Object.values(e)){const e=t.shift()||0;let l=[];s>0?(l=o.getCellByColumIndex(n-e)[2],s-=1):(l=o.removeCell(n-e),l.skipRowNum&&(s+=l.skipRowNum));for(const[e,s]of l.entries())t[e]=(t[e]||0)+s}}else n+=1;for(const t of s)0===o[t.colId]&&(t.prev?t.prev.width+=t.width:t.next&&(t.next.width+=t.width),t.remove())}removeRow(){if(!this.tableSelection)return;const t=this.tableSelection.selectedTds;if(t.length<=0)return;const e=i(t[0],m.tableMain),s=e.getRows();let o=s.length,l=-1;for(const e of t){const t=i(e,m.tableRow),n=s.indexOf(t);n<o&&(o=n),n+e.rowspan>l&&(l=n+e.rowspan)}const n={};for(let t=o;t<Math.min(s.length,l);t++){s[t].foreachCellInner((e=>{e.rowspan+t>l&&(n[e.colId]={rowspan:e.rowspan+t-l,colspan:e.colspan,colIndex:e.getColumnIndex()}),e.parent.remove()}))}if(s[l]){const t=s[l],o=e.tableId;for(const[e,{colIndex:s,colspan:l,rowspan:i}]of Object.entries(n))t.insertCell(s,{tableId:o,rowId:t.rowId,colId:e,colspan:l,rowspan:i})}this.fixTableByRemove(e)}removeCol(){if(!this.tableSelection)return;const t=this.tableSelection.selectedTds;if(t.length<=0)return;const e=t[0],s=i(e,m.tableMain),o={};for(const e of t)o[e.rowId]||(o[e.rowId]=0),o[e.rowId]+=e.colspan;const l=Math.max(...Object.values(o)),n=e.getColumnIndex(),r=s.descendants(_);for(let t=0;t<l;t++){const t=[];let e=0;for(const s of Object.values(r)){const o=t.shift()||0;if(e>0){e-=1;continue}const l=s.removeCell(n-o);l.skipRowNum&&(e+=l.skipRowNum);for(const[e,s]of l.entries())t[e]=(t[e]||0)+s}}const[a]=s.descendants(X);if(a)for(let t=0;t<l;t++)a.removeColByIndex(n);this.fixTableByRemove(s)}mergeCells(){if(!this.tableSelection)return;const t=this.tableSelection.selectedTds;if(t.length<=1)return;const e=t.reduce(((t,e,s)=>{const o=e.colId;t[0][o]||(t[0][o]=0),t[0][o]+=e.rowspan;const l=e.rowId;return t[1][l]||(t[1][l]=0),t[1][l]+=e.colspan,0!==s&&(e.moveChildren(t[2]),e.parent.remove()),t}),[{},{},t[0]]),s=Math.max(...Object.values(e[0])),o=Math.max(...Object.values(e[1])),l=e[2];l.colspan=o,l.rowspan=s;const n=i(l,m.tableMain);this.fixTableByRemove(n)}splitCell(){if(!this.tableSelection)return;const t=this.tableSelection.selectedTds;if(1!==t.length)return;const e=t[0];if(1===e.colspan&&1===e.rowspan)return;const[s,o]=n(e,[m.tableMain,m.tableRow]),l=s.tableId,i=e.getColumnIndex(),r=s.getColIds().slice(i,i+e.colspan).reverse();let a=o,d=e.rowspan;for(e.colspan=1,e.rowspan=1;a&&d>0;){for(const t of r)a===o&&t===e.colId||a.insertCell(i+(a===o?1:0),{tableId:l,rowId:a.rowId,colId:t,rowspan:1,colspan:1});d-=1,a=a.next}}}const dt=t=>{Object.assign(m,t.blotName||{}),Object.assign(g,t.tableUpSize||{}),Object.assign(f,t.tableUpEvent||{}),at.toolName=m.tableWrapper,I.blotName=m.container,U.blotName=m.tableWrapper,F.blotName=m.tableMain,X.blotName=m.tableColgroup,V.blotName=m.tableCol,W.blotName=m.tableBody,_.blotName=m.tableRow,D.blotName=m.tableCell,j.blotName=m.tableCellInner};export{L as BlockOverride,T as BlockquoteOverride,R as CodeBlockOverride,I as ContainerFormat,S as HeaderOverride,k as ListItemOverride,$ as ScrollOverride,W as TableBodyFormat,D as TableCellFormat,j as TableCellInnerFormat,V as TableColFormat,X as TableColgroupFormat,F as TableMainFormat,K as TableMenu,G as TableResize,J as TableResizeLine,_ as TableRowFormat,Q as TableSelection,at as TableUp,U as TableWrapperFormat,m as blotName,at as default,i as findParentBlot,n as findParentBlots,et as getRelativeRect,tt as isRectanglesIntersect,o as randomId,nt as tableCantInsert,f as tableUpEvent,g as tableUpSize,dt as updateTableConstants};
1
+ import e from"quill";const t=e=>"function"==typeof e,s=Array.isArray,o=()=>Math.random().toString(36).slice(2),l=(e,t)=>{let s;return function(...o){s&&clearTimeout(s),s=setTimeout((()=>{e.apply(this,o)}),t)}};function i(e,t){let s=e.parent;for(;s&&s.statics.blotName!==t&&s!==e.scroll;)s=s.parent;if(s===e.scroll)throw new Error(`${e.statics.blotName} must be a child of ${t}`);return s}function n(e,t){const s=new Array(t.length),o=new Map(t.map(((e,t)=>[e,t])));let l=e.parent;for(;l&&l!==e.scroll&&0!==o.size;){if(o.has(l.statics.blotName)){s[o.get(l.statics.blotName)]=l,o.delete(l.statics.blotName)}l=l.parent}if(o.size>0)throw new Error(`${e.statics.blotName} must be a child of ${Array.from(o.keys()).join(", ")}`);return s}function r(e,t){for(const s of Object.getOwnPropertyNames(t))/^constructor$/.test(s)||Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(t,s));return e}function a(e,t){const s=class extends e{constructor(...e){super(...e)}};for(const e of t)r(s.prototype,e.prototype);return s}const d=e=>{let{left:t,top:s,width:o,height:l}=e;const{clientWidth:i,clientHeight:n}=document.documentElement;let r=!1,a=!1;return t+o>i?(t=i-o-8,r=!0):t<0&&(t=8,r=!0),s+l>n?(s=n-l-8,a=!0):s<0&&(s=8,a=!0),{left:t,top:s,leftLimited:r,topLimited:a}},c=(e,t)=>{t.type||(t.type="text"),t.value||(t.value="");const s=document.createElement("div");if(s.classList.add("input__item"),e){const t=document.createElement("span");t.classList.add("input__label"),t.textContent=e,s.appendChild(t)}const o=document.createElement("div");o.classList.add("input__input");const l=document.createElement("input");for(const e in t)l.setAttribute(e,t[e]);(t.max||t.min)&&l.addEventListener("blur",(()=>{t.max&&t.max<=Number(l.value)&&(l.value=String(t.max)),t.min&&t.min>=Number(l.value)&&(l.value=String(t.min))})),o.appendChild(l),s.appendChild(o),l.addEventListener("focus",(()=>{o.classList.add("focus")})),l.addEventListener("blur",(()=>{o.classList.remove("focus")}));return{item:s,input:l,errorTip:e=>{let t;o.classList.contains("error")?t=o.querySelector(".input__error-tip"):(t=document.createElement("span"),t.classList.add("input__error-tip"),o.appendChild(t)),t.textContent=e,o.classList.add("error");return{removeError:()=>{o.classList.remove("error"),t.remove()}}}}};let h=8e3;const u=async(e={})=>{const t=document.createElement("div");t.classList.add("table-creator");const s=document.createElement("div");s.classList.add("table-creator__input");const{item:o,input:l,errorTip:i}=c(e.rowText||"行数",{type:"number",value:String(e.row||""),max:99}),{item:n,input:r,errorTip:a}=c(e.colText||"列数",{type:"number",value:String(e.col||""),max:99});s.appendChild(o),s.appendChild(n),t.appendChild(s);const d=document.createElement("div");d.classList.add("table-creator__control");const u=document.createElement("button");u.classList.add("table-creator__btn","confirm"),u.textContent=e.confirmText||"Confirm";const p=document.createElement("button");return p.classList.add("table-creator__btn","cancel"),p.textContent=e.cancelText||"Cancel",d.appendChild(u),d.appendChild(p),t.appendChild(d),new Promise(((s,o)=>{const{close:n}=(({child:e,target:t=document.body,beforeClose:s=()=>{}}={})=>{const o=t,l=document.createElement("div");l.classList.add("dialog"),l.style.zIndex=String(h);const i=document.createElement("div");if(i.classList.add("dialog__overlay"),l.appendChild(i),e){const t=document.createElement("div");t.classList.add("dialog__content"),t.appendChild(e),i.appendChild(t),t.addEventListener("click",(e=>{e.stopPropagation()}))}const n=getComputedStyle(o).overflow;o.style.overflow="hidden",o.appendChild(l);const r=()=>{s(),l.remove(),o.style.overflow=n};return l.addEventListener("click",r),h+=1,{dialog:l,close:r}})({child:t,beforeClose:o});l.focus(),u.addEventListener("click",(async()=>{const t=Number(l.value),o=Number(r.value);return Number.isNaN(t)||t<=0?i(e.notPositiveNumberError||"请输入正整数"):Number.isNaN(o)||o<=0?a(e.notPositiveNumberError||"请输入正整数"):(s({row:t,col:o}),void n())})),p.addEventListener("click",(()=>{n()}))}))};let p;const b=(e,t={})=>{const{msg:s="",delay:o=150,content:l,direction:i="bottom"}=t;if(s||l){p||(p=document.createElement("div"),document.body.appendChild(p));const t=document.createElement("div");let n;t.classList.add("tooltip"),t.classList.add("hidden"),t.classList.add("transparent"),l?t.appendChild(l):s&&(t.textContent=s);const r=()=>{t.classList.add("hidden"),p.contains(t)&&p.removeChild(t)},a=()=>{n&&clearTimeout(n),n=setTimeout((()=>{p.appendChild(t),t.removeEventListener("transitionend",r),t.classList.remove("hidden");const s=e.getBoundingClientRect(),o=t.getBoundingClientRect(),l={top:{top:-o.height-8,left:s.width/2-o.width/2},right:{top:s.height/2-o.height/2,left:s.width+8},bottom:{top:o.height+8,left:s.width/2-o.width/2},left:{top:s.height/2-o.height/2,left:-o.width-8}}[i];let n=s.top+l.top,a=s.left+l.left;Object.assign(t.style,{top:`${n+window.scrollY}px`,left:`${a+window.scrollX}px`}),({top:n,left:a}=d(t.getBoundingClientRect())),Object.assign(t.style,{top:`${n+window.scrollY}px`,left:`${a+window.scrollX}px`}),t.classList.remove("transparent")}),o)},c=()=>{n&&clearTimeout(n),n=setTimeout((()=>{t.classList.add("transparent"),t.addEventListener("transitionend",r,{once:!0}),setTimeout((()=>{r()}),150)}),o)};return e.addEventListener("mouseenter",a),e.addEventListener("mouseleave",c),t.addEventListener("mouseenter",a),t.addEventListener("mouseleave",c),t}return null},m={container:"table-up-container",tableWrapper:"table-up",tableMain:"table-up-main",tableColgroup:"table-up-colgroup",tableCol:"table-up-col",tableBody:"table-up-body",tableRow:"table-up-row",tableCell:"table-up-cell",tableCellInner:"table-up-cell-inner"},g={colMinWidthPre:5,colMinWidthPx:26,rowMinHeightPx:36},f={AFTER_TABLE_RESIZE:"after-table-resize"},w=e.import("parchment"),C=e.import("blots/container"),v=e.import("blots/block"),x=e.import("blots/block/embed");class I extends C{static blotName=m.container;static scope=w.Scope.BLOCK_BLOT;static allowedChildren=[v,x,C];static requiredContainer;static defaultChild;clearDeltaCache(){const e=this.descendants(v,0);for(const t of e)t.cache={}}insertBefore(e,t){e.statics.blotName===this.statics.blotName&&e.children.length>0?super.insertBefore(e.children.head,t):super.insertBefore(e,t)}insertAt(e,t,s){const[o]=this.children.find(e);if(!o){const e=this.scroll.create(this.statics.defaultChild.blotName||"block");this.appendChild(e)}super.insertAt(e,t,s)}optimize(e){if(0===this.children.length)if(null!=this.statics.defaultChild){const e=this.scroll.create(this.statics.defaultChild.blotName);this.appendChild(e)}else this.remove();this.children.length>0&&null!=this.next&&this.checkMerge()&&(this.next.moveChildren(this),this.next.remove())}}const N=e.import("parchment"),y=e.import("blots/block");class M extends y{replaceWith(e,t){const s="string"==typeof e?this.scroll.create(e,t):e;if(s instanceof N.ParentBlot){if(s.statics.blotName===m.tableCellInner){const e=this.parent;if(e.statics.blotName===m.tableCellInner){if(null!=e&&e.insertBefore(s,this.prev?null:this.next),this.parent.statics.blotName===m.tableCellInner&&this.prev){let e=this;for(;e;){const t=e.next;s.appendChild(e),e=t}}else s.appendChild(this);if(e&&0===e.length()){e.parent.remove();const t=e.parent.parent;t.statics.blotName===m.tableRow&&0===t.children.length&&t.remove()}}else null!=e&&e.insertBefore(s,this.next),s.appendChild(this);return s}this.moveChildren(s)}return null!=this.parent&&(this.parent.insertBefore(s,this.next||void 0),this.remove()),this.attributes.copy(s),s}format(e,t){if(e!==m.tableCellInner||this.parent.statics.blotName!==e||t)super.format(e,t);else{const[e,t,s]=n(this,[m.tableCell,m.tableRow,m.tableWrapper]),o=s.next;let l=t.next,i=e.next;for(s.parent.insertBefore(this,o);i;){const e=i.next;s.parent.insertBefore(i,o),i=e}for(;l;){const e=l.next;s.parent.insertBefore(l,o),l=e}}}}const L=e.import("formats/blockquote");class R extends(a(L,[M])){}const E=e.import("formats/code-block");class T extends(a(E,[M])){}const B=e.import("formats/header");class k extends(a(B,[M])){}const S=e.import("formats/list");class z extends(a(S,[M])){static register(){}}const q=e.import("parchment"),O=e.import("blots/scroll");class $ extends O{createBlock(e,t){let s,o={};for(const[t,l]of Object.entries(e)){null!=this.query(t,q.Scope.BLOCK&q.Scope.BLOT)?s=t:o[t]=l}s===m.tableCellInner&&(o={...e},delete o[s]);const l=this.create(s||this.statics.defaultChild.blotName,s?e[s]:void 0);this.insertBefore(l,t||void 0);const i=l.length();for(const[e,t]of Object.entries(o))l.formatAt(0,i,e,t);return l}}const A=e.import("blots/block"),H=e.import("blots/block/embed");class j extends I{static blotName=m.tableCellInner;static tagName="div";static className="ql-table-cell-inner";static defaultChild=A;static create(e){const{tableId:t,rowId:s,colId:o,rowspan:l,colspan:i,backgroundColor:n,height:r}=e,a=super.create();return a.dataset.tableId=t,a.dataset.rowId=s,a.dataset.colId=o,a.dataset.rowspan=String(l||1),a.dataset.colspan=String(i||1),r&&(a.dataset.height=r),n&&(a.dataset.backgroundColor=n),a}allowDataAttrs=new Set(["table-id","row-id","col-id","rowspan","colspan","background-color","height"]);setFormatValue(e,t){if(!this.allowDataAttrs.has(e))return;const s=`data-${e}`;t?this.domNode.setAttribute(s,t):this.domNode.removeAttribute(s),this.clearDeltaCache()}get tableId(){return this.domNode.dataset.tableId}get rowId(){return this.domNode.dataset.rowId}set rowId(e){this.parent&&(this.parent.rowId=e),this.setFormatValue("row-id",e)}get colId(){return this.domNode.dataset.colId}set colId(e){this.parent&&(this.parent.colId=e),this.setFormatValue("col-id",e)}get rowspan(){return Number(this.domNode.dataset.rowspan)}set rowspan(e){this.parent&&(this.parent.rowspan=e),this.setFormatValue("rowspan",e)}get colspan(){return Number(this.domNode.dataset.colspan)}set colspan(e){this.parent&&(this.parent.colspan=e),this.setFormatValue("colspan",e)}get backgroundColor(){return this.domNode.dataset.backgroundColor||""}set backgroundColor(e){this.parent&&(this.parent.backgroundColor=e),this.setFormatValue("background-color",e)}get height(){return this.domNode.dataset.height||""}set height(e){this.parent&&(this.parent.height=e),this.setFormatValue("height",e)}getColumnIndex(){return i(this,m.tableMain).getColIds().indexOf(this.colId)}formatAt(e,t,s,o){0===this.children.length&&(this.appendChild(this.scroll.create(this.statics.defaultChild.blotName)),t+=1),super.formatAt(e,t,s,o)}formats(){const{tableId:e,rowId:t,colId:s,rowspan:o,colspan:l,backgroundColor:i,height:n}=this,r={tableId:e,rowId:t,colId:s,rowspan:o,colspan:l};return n&&(r.height=n),i&&(r.backgroundColor=i),{[this.statics.blotName]:r}}optimize(){const e=this.parent,{tableId:t,colId:s,rowId:o,rowspan:l,colspan:i,backgroundColor:n,height:r}=this;if(this.prev&&this.prev instanceof H){const e=this.scroll.create("block");this.appendChild(this.prev),this.appendChild(e)}if(null!==e&&e.statics.blotName!==m.tableCell&&(this.wrap(m.tableCell,{tableId:t,colId:s,rowId:o,rowspan:l,colspan:i,backgroundColor:n,height:r}),0===this.children.length)){const e=this.scroll.create("block");e.appendChild(this.scroll.create("break")),this.appendChild(e)}this.children.length>0&&null!=this.next&&this.checkMerge()&&(this.next.moveChildren(this),this.next.remove()),null!=this.uiNode&&this.uiNode!==this.domNode.firstChild&&this.domNode.insertBefore(this.uiNode,this.domNode.firstChild),0===this.children.length&&this.remove()}insertBefore(e,t){if(e.statics.blotName===this.statics.blotName){const s=e,o={tableId:s.tableId,rowId:s.rowId,colId:s.colId,rowspan:s.rowspan,colspan:s.colspan,backgroundColor:s.backgroundColor,height:s.height},l={tableId:this.tableId,rowId:this.rowId,colId:this.colId,rowspan:this.rowspan,colspan:this.colspan,backgroundColor:this.backgroundColor,height:this.height};if(Object.entries(l).every((([e,t])=>t===o[e])))return this.parent.insertBefore(s,this.next);{const[e,i]=n(this,[m.tableRow,m.tableCell]);if(t){const s=t.offset();if(s+1<this.length()){const t=this.scroll.create(m.tableCellInner,l);this.children.forEachAt(s+1,this.length(),(e=>{t.appendChild(e)})),e.insertBefore(t.wrap(m.tableCell,l),i.next),0===this.children.length&&(this.remove(),0===this.parent.children.length&&this.parent.remove())}}if(this.rowId!==s.rowId){if(t){const s=t.offset(e);e.split(s)}else if(i.next){const t=i.next.offset(e);e.split(t)}const l=s.wrap(m.tableCell,o);return e.parent.insertBefore(l.wrap(m.tableRow,o),e.next)}return e.insertBefore(s.wrap(m.tableCell,o),t?i:i.next)}}super.insertBefore(e,t)}}class _ extends I{static blotName=m.tableRow;static tagName="tr";static className="ql-table-row";static create(e){const t=super.create();return t.dataset.tableId=e.tableId,t.dataset.rowId=e.rowId,t}checkMerge(){const e=this.next;return null!==e&&e.statics.blotName===this.statics.blotName&&e.domNode.dataset.rowId===this.rowId}get rowId(){return this.domNode.dataset.rowId}get tableId(){return this.domNode.dataset.tableId}setHeight(e){this.foreachCellInner((t=>{t.height=e}))}insertCell(e,t){const s=[],o=this.children.iterator();let l,i=0;for(;(l=o())&&(i+=l.colspan,!(i>e));)if(1!==l.rowspan)for(let e=0;e<l.rowspan-1;e++)s[e]=(s[e]||0)+l.colspan;if(l&&i-l.colspan<e){l.getCellInner().colspan+=1,1!==l.rowspan&&(s.skipRowNum=l.rowspan-1)}else{const e=this.scroll.create(m.tableCell,t),s=this.scroll.create(m.tableCellInner,t),o=this.scroll.create("block");o.appendChild(this.scroll.create("break")),s.appendChild(o),e.appendChild(s),this.insertBefore(e,l)}return s}getCellByColumIndex(e){const t=[];let s=null,o=0;if(e<0)return[s,o,t];const l=this.children.iterator();for(;s=l();){if(o+=s.colspan,1!==s.rowspan)for(let e=0;e<s.rowspan-1;e++)t[e]=(t[e]||0)+s.colspan;if(o>e)break}return[s,o,t]}removeCell(e){if(e<0)return[];const t=this.getCellByColumIndex(e),[s,o]=t,l=t[2];if(!s)return l;if(o-s.colspan<e||s.colspan>1){const[t]=s.descendants(j);if(1!==s.colspan&&e===o-s.colspan){const e=i(this,m.tableMain).getColIds();t.colId=e[e.indexOf(t.colId)+1]}1!==s.rowspan&&(l.skipRowNum=s.rowspan-1),t.colspan-=1}else s.remove();return l}foreachCellInner(e){const t=this.children.iterator();let s,o=0;for(;s=t();){const[t]=s.descendants(j);if(e(t,o++))break}}optimize(e){const t=this.parent,{tableId:s}=this;null!==t&&t.statics.blotName!==m.tableBody&&this.wrap(m.tableBody,s),super.optimize(e)}}class F extends I{static blotName=m.tableBody;static tagName="tbody";static create(e){const t=super.create();return t.dataset.tableId=e,t}get tableId(){return this.domNode.dataset.tableId}checkMerge(){const e=this.next;return null!==e&&e.statics.blotName===this.statics.blotName}insertRow(e){const t=i(this,m.tableMain);if(!t)return;const s=t.getColIds(),l=this.descendants(_),n=new Set(s);let r=0;for(const t of l){if(r===e)break;t.foreachCellInner((t=>{if(r+t.rowspan>e&&(t.rowspan+=1,n.delete(t.colId),1!==t.colspan)){const e=s.indexOf(t.colId);for(let o=0;o<t.colspan-1;o++)n.delete(s[e+o+1])}})),r+=1}const a=t.tableId,d=o(),c=this.scroll.create(m.tableRow,{tableId:a,rowId:d});for(const e of n){const t=this.scroll.create("break").wrap("block").wrap(m.tableCellInner,{tableId:a,rowId:d,colId:e,rowspan:1,colspan:1}).wrap(m.tableCell,{tableId:a,rowId:d,colId:e,rowspan:1,colspan:1});c.appendChild(t)}this.insertBefore(c,l[e]||null)}optimize(e){const t=this.parent;if(null!==t&&t.statics.blotName!==m.tableMain){const{tableId:e}=this;this.wrap(m.tableMain,{tableId:e})}super.optimize(e)}}class W extends I{static blotName=m.tableCell;static tagName="td";static className="ql-table-cell";__rect;static create(e){const{tableId:t,rowId:s,colId:o,rowspan:l,colspan:i,backgroundColor:n,height:r}=e,a=super.create();return a.dataset.tableId=t,a.dataset.rowId=s,a.dataset.colId=o,a.setAttribute("rowspan",String(l||1)),a.setAttribute("colspan",String(i||1)),n&&(a.style.backgroundColor=n),r&&(a.style.height=r),a}get tableId(){return this.domNode.dataset.tableId}get rowId(){return this.domNode.dataset.rowId}set rowId(e){this.domNode.dataset.rowId=e}get colId(){return this.domNode.dataset.colId}set colId(e){this.domNode.dataset.colId=e}get rowspan(){return Number(this.domNode.getAttribute("rowspan"))}set rowspan(e){this.domNode.setAttribute("rowspan",String(e))}get colspan(){return Number(this.domNode.getAttribute("colspan"))}set colspan(e){this.domNode.setAttribute("colspan",String(e))}get backgroundColor(){return this.domNode.dataset.backgroundColor||""}set backgroundColor(e){Object.assign(this.domNode.style,{backgroundColor:e})}get height(){return this.domNode.style.height}set height(e){e&&(this.domNode.style.height=e)}getCellInner(){return this.descendants(j)[0]}checkMerge(){const{colId:e,rowId:t}=this.domNode.dataset,s=this.next;return null!==s&&s.statics.blotName===this.statics.blotName&&s.domNode.dataset.rowId===t&&s.domNode.dataset.colId===e}optimize(e){const t=this.parent,{tableId:s,rowId:o}=this;null!==t&&t.statics.blotName!==m.tableRow&&this.wrap(m.tableRow,{tableId:s,rowId:o}),super.optimize(e)}}const D=e.import("blots/block/embed");class V extends D{scroll;domNode;static blotName=m.tableCol;static tagName="col";static create(e){const{width:t,tableId:s,colId:o,full:l}=e,i=super.create();return i.setAttribute("width",`${Number.parseFloat(t)}${l?"%":"px"}`),l&&(i.dataset.full=String(l)),i.dataset.tableId=s,i.dataset.colId=o,i.setAttribute("contenteditable","false"),i}constructor(e,t){super(e,t),this.scroll=e,this.domNode=t}get width(){const e=this.domNode.getAttribute("width");return Number.parseFloat(e)}set width(e){const t=Number.parseFloat(e);this.domNode.setAttribute("width",`${t}${this.full?"%":"px"}`)}get tableId(){return this.domNode.dataset.tableId}get colId(){return this.domNode.dataset.colId}get full(){return Object.hasOwn(this.domNode.dataset,"full")}static value(e){const{tableId:t,colId:s}=e.dataset,o=e.getAttribute("width"),l={tableId:t,colId:s,full:Object.hasOwn(e.dataset,"full")};return o&&(l.width=Number.parseFloat(o)),l}checkMerge(){const e=this.next,{tableId:t,colId:s}=this;return null!==e&&e.statics.blotName===this.statics.blotName&&e.domNode.dataset.tableId===t&&e.domNode.dataset.colId===s}optimize(e){const t=this.parent;if(null!=t&&t.statics.blotName!==m.tableColgroup){const{tableId:e,full:t}=this;this.wrap(m.tableColgroup,{tableId:e,full:t})}super.optimize(e)}insertAt(e,t,s){if(null!=s)return void super.insertAt(e,t,s);const o=t.split("\n"),l=o.pop(),i=o.map((e=>{const t=this.scroll.create("block");return t.insertAt(0,e),t})),r=this.split(e),[a,d]=n(this,[m.tableColgroup,m.tableMain]),c=a.next;if(r){const e=r.offset(a);a.split(e)}let h=d.parent.parent,u=d.parent.next;if(c){const e=c.descendants(j);if(e.length>0){const t=e[0],s={tableId:t.tableId,rowId:t.rowId,colId:t.colId,rowspan:t.rowspan,colspan:t.colspan,backgroundColor:t.backgroundColor,height:t.height},o=this.scroll.create("block"),l=o.wrap(m.tableCellInner,s).wrap(m.tableCell,s).wrap(m.tableRow,s).wrap(m.tableBody,s.tableId);a.parent.insertBefore(l,a.next),h=o,u=o.next}}for(const e of i)h.insertBefore(e,u);l&&h.insertBefore(this.scroll.create("text",l),u)}}class P extends I{static blotName=m.tableMain;static tagName="table";static create(e){const t=super.create(),{tableId:s,full:o}=e;return t.dataset.tableId=s,o&&(t.dataset.full=String(o)),t.classList.add("ql-table"),t.setAttribute("cellpadding","0"),t.setAttribute("cellspacing","0"),t}constructor(e,t){super(e,t),setTimeout((()=>{this.colWidthFillTable()}),0)}colWidthFillTable(){if(this.full)return;const e=this.getCols();if(!e)return;const t=e.reduce(((e,t)=>t.width+e),0);return 0===t||Number.isNaN(t)||this.full?null:(this.domNode.style.width=`${t}px`,t)}get tableId(){return this.domNode.dataset.tableId}get full(){return Object.hasOwn(this.domNode.dataset,"full")}set full(e){this.domNode[e?"setAttribute":"removeAttribute"]("data-full","")}getRows(){return this.descendants(_)}getRowIds(){return this.getRows().map((e=>e.rowId))}getCols(){return this.descendants(V)}getColIds(){return this.getCols().map((e=>e.colId))}checkMerge(){const e=this.next;return null!==e&&e.statics.blotName===this.statics.blotName&&e.domNode.tagName===this.domNode.tagName&&e.domNode.dataset.tableId===this.tableId}optimize(e){const t=this.parent;null!==t&&t.statics.blotName!==m.tableWrapper&&this.wrap(m.tableWrapper,this.tableId),super.optimize(e)}}class U extends I{static blotName=m.tableColgroup;static tagName="colgroup";static create(e){const t=super.create();return t.dataset.tableId=e.tableId,e.full&&(t.dataset.full=String(e.full)),t.setAttribute("contenteditable","false"),t}get tableId(){return this.domNode.dataset.tableId}get full(){return Object.hasOwn(this.domNode.dataset,"full")}findCol(e){const t=this.children.iterator();let s,o=0;for(;(s=t())&&o!==e;)o++;return s}insertColByIndex(e,t){const s=this.parent;if(!(s instanceof P))throw new TypeError("TableColgroupFormat should be child of TableFormat");const o=this.findCol(e),l=this.scroll.create(m.tableCol,t);if(s.full){const e=this.children.iterator();let t;for(;t=e();)if(t.width-l.width>=g.colMinWidthPre){t.width-=l.width;break}}this.insertBefore(l,o)}removeColByIndex(e){if(!(this.parent instanceof P))throw new TypeError("TableColgroupFormat should be child of TableMainFormat");const t=this.findCol(e);t&&(t.next?t.next.width+=t.width:t.prev&&(t.prev.width+=t.width),t.remove())}optimize(e){const t=this.parent;if(null!=t&&t.statics.blotName!==m.tableMain){const{tableId:e,full:t}=this;this.wrap(m.tableMain,{tableId:e,full:t})}super.optimize(e)}}class X extends I{static blotName=m.tableWrapper;static tagName="div";static className="ql-table-wrapper";static create(e){const t=super.create();return t.dataset.tableId=e,t.addEventListener("dragstart",(e=>{e.preventDefault(),e.stopPropagation()}),!0),t.addEventListener("drop",(e=>{e.preventDefault()})),t.addEventListener("dragover",(e=>{e.preventDefault(),e.dataTransfer.dropEffect="none"})),t}get tableId(){return this.domNode.dataset.tableId}insertBefore(e,t){e.statics.blotName===this.statics.blotName?super.insertBefore(e.children.head,t):this.statics.allowedChildren.some((t=>t.blotName===e.statics.blotName))?super.insertBefore(e,t):t?this.prev?this.prev.insertBefore(e,null):this.parent.insertBefore(e,this):this.next?this.next.insertBefore(e,t):this.parent.appendChild(e)}checkMerge(){const e=this.next;return null!==e&&e.statics.blotName===this.statics.blotName&&e.domNode.tagName===this.domNode.tagName&&e.domNode.dataset.tableId===this.tableId}deleteAt(e,t){super.deleteAt(e,t),setTimeout((()=>{const e=this.descendants(F),t=this.descendants(U);0!==e.length&&0!==t.length||this.remove()}),0)}}const Y=new Set,K=[{name:"InsertTop",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M4 3h14a2 2 0 0 1 2 2v7.08a6 6 0 0 0-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2m0 4v4h6V7zm8 0v4h6V7zm-8 6v4h6v-4zm17.94 4.5h-2v4h-2v-4h-2l3-3z"/></svg>',tip:"Insert row above",handle:e=>{e.appendRow(!1),e.hideTableTools()}},{name:"InsertRight",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M4 3h14a2 2 0 0 1 2 2v7.08a6 6 0 0 0-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2m0 4v4h6V7zm8 0v4h6V7zm-8 6v4h6v-4zm15.44 8v-2h-4v-2h4v-2l3 3z"/></svg>',tip:"Insert column right",handle:e=>{e.appendCol(!0),e.hideTableTools()}},{name:"InsertBottom",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M4 3h14a2 2 0 0 1 2 2v7.08a6 6 0 0 0-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2m0 4v4h6V7zm8 0v4h6V7zm-8 6v4h6v-4zm11.94 5.5h2v-4h2v4h2l-3 3z"/></svg>',tip:"Insert row below",handle:e=>{e.appendRow(!0),e.hideTableTools()}},{name:"InsertLeft",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M4 3h14a2 2 0 0 1 2 2v7.08a6 6 0 0 0-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2m0 4v4h6V7zm8 0v4h6V7zm-8 6v4h6v-4zm14.44 2v2h4v2h-4v2l-3-3z"/></svg>',tip:"Insert column Left",handle:e=>{e.appendCol(!1),e.hideTableTools()}},{name:"break"},{name:"MergeCell",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5 10H3V4h8v2H5zm14 8h-6v2h8v-6h-2zM5 18v-4H3v6h8v-2zM21 4h-8v2h6v4h2zM8 13v2l3-3l-3-3v2H3v2zm8-2V9l-3 3l3 3v-2h5v-2z"/></svg>',tip:"Merge Cell",handle:e=>{e.mergeCells(),e.hideTableTools()}},{name:"SplitCell",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M19 14h2v6H3v-6h2v4h14zM3 4v6h2V6h14v4h2V4zm8 7v2H8v2l-3-3l3-3v2zm5 0V9l3 3l-3 3v-2h-3v-2z"/></svg>',tip:"Split Cell",handle:e=>{e.splitCell(),e.hideTableTools()}},{name:"break"},{name:"DeleteRow",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M9.41 13L12 15.59L14.59 13L16 14.41L13.41 17L16 19.59L14.59 21L12 18.41L9.41 21L8 19.59L10.59 17L8 14.41zM22 9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2zM4 9h4V6H4zm6 0h4V6h-4zm6 0h4V6h-4z"/></svg>',tip:"Delete Row",handle:e=>{e.removeRow(),e.hideTableTools()}},{name:"DeleteColumn",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M4 2h7a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2m0 8v4h7v-4zm0 6v4h7v-4zM4 4v4h7V4zm13.59 8L15 9.41L16.41 8L19 10.59L21.59 8L23 9.41L20.41 12L23 14.59L21.59 16L19 13.41L16.41 16L15 14.59z"/></svg>',tip:"Delete Column",handle:e=>{e.removeCol(),e.hideTableTools()}},{name:"DeleteTable",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="m15.46 15.88l1.42-1.42L19 16.59l2.12-2.13l1.42 1.42L20.41 18l2.13 2.12l-1.42 1.42L19 19.41l-2.12 2.13l-1.42-1.42L17.59 18zM4 3h14a2 2 0 0 1 2 2v7.08a6 6 0 0 0-4.32.92H12v4h1.08c-.11.68-.11 1.35 0 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m0 4v4h6V7zm8 0v4h6V7zm-8 6v4h6v-4z"/></svg>',tip:"Delete table",handle:e=>{e.deleteTable()}},{name:"break"},{name:"BackgroundColor",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m11 7l6 6M4 16L15.7 4.3a1 1 0 0 1 1.4 0l2.6 2.6a1 1 0 0 1 0 1.4L8 20H4z"/></svg>',isColorChoose:!0,tip:"Set background color",handle:(e,t,s)=>{e.setBackgroundColor(t,s)}}];class Z{tableModule;quill;options;menu=null;selectedTds=[];updateUsedColor;colorItemClass=`color-${o()}`;tooltipItem=[];constructor(e,t,o){this.tableModule=e,this.quill=t,this.options=this.resolveOptions(o);try{const e=localStorage.getItem(this.options.localstorageKey)||"[]";let t=JSON.parse(e);s(t)||(t=[]),t.map((e=>Y.add(e)))}catch{}this.updateUsedColor=l((e=>{if(e&&Y.add(e),Y.size>10){const e=Array.from(Y).slice(-10);Y.clear(),e.map((e=>Y.add(e)))}localStorage.setItem(this.options.localstorageKey,JSON.stringify(Array.from(Y)));const t=Array.from(document.querySelectorAll(`.${this.colorItemClass}.table-color-used`));for(const e of t)if(e){e.innerHTML="";for(const t of Y){const s=document.createElement("div");s.classList.add("table-color-item"),s.style.backgroundColor=t,e.appendChild(s)}}}),1e3),this.options.contextmenu?this.quill.root.addEventListener("contextmenu",this.listenContextmenu):this.menu=this.buildTools()}resolveOptions(e){return Object.assign({tipText:!0,tipTexts:{},tools:K,localstorageKey:"__table-bg-used-color",contextmenu:!1,defaultColorMap:[["rgb(255, 255, 255)","rgb(0, 0, 0)","rgb(72, 83, 104)","rgb(41, 114, 244)","rgb(0, 163, 245)","rgb(49, 155, 98)","rgb(222, 60, 54)","rgb(248, 136, 37)","rgb(245, 196, 0)","rgb(153, 56, 215)"],["rgb(242, 242, 242)","rgb(127, 127, 127)","rgb(243, 245, 247)","rgb(229, 239, 255)","rgb(229, 246, 255)","rgb(234, 250, 241)","rgb(254, 233, 232)","rgb(254, 243, 235)","rgb(254, 249, 227)","rgb(253, 235, 255)"],["rgb(216, 216, 216)","rgb(89, 89, 89)","rgb(197, 202, 211)","rgb(199, 220, 255)","rgb(199, 236, 255)","rgb(195, 234, 213)","rgb(255, 201, 199)","rgb(255, 220, 196)","rgb(255, 238, 173)","rgb(242, 199, 255)"],["rgb(191, 191, 191)","rgb(63, 63, 63)","rgb(128, 139, 158)","rgb(153, 190, 255)","rgb(153, 221, 255)","rgb(152, 215, 182)","rgb(255, 156, 153)","rgb(255, 186, 132)","rgb(255, 226, 112)","rgb(213, 142, 255)"],["rgb(165, 165, 165)","rgb(38, 38, 38)","rgb(53, 59, 69)","rgb(20, 80, 184)","rgb(18, 116, 165)","rgb(39, 124, 79)","rgb(158, 30, 26)","rgb(184, 96, 20)","rgb(163, 130, 0)","rgb(94, 34, 129)"],["rgb(147, 147, 147)","rgb(13, 13, 13)","rgb(36, 39, 46)","rgb(12, 48, 110)","rgb(10, 65, 92)","rgb(24, 78, 50)","rgb(88, 17, 14)","rgb(92, 48, 10)","rgb(102, 82, 0)","rgb(59, 21, 81)"]],texts:this.resolveTexts(e.texts)},e)}resolveTexts(e={}){return Object.assign({custom:"Custom",clear:"Clear"},e)}listenContextmenu=e=>{e.preventDefault();const t=e.composedPath();if(!t||t.length<=0)return;t.find((e=>e.tagName&&"TABLE"===e.tagName.toUpperCase()&&e.classList.contains("ql-table")))&&this.tableModule.tableSelection?.selectedTds?.length?(this.menu||(this.menu=this.buildTools()),this.updateTools({x:e.clientX,y:e.clientY}),document.addEventListener("click",(()=>{this.hideTools()}),{once:!0})):this.hideTools()};buildTools(){const e=document.createElement("div");e.classList.add("ql-table-menu"),document.body.appendChild(e),this.options.contextmenu&&e.classList.add("contextmenu"),Object.assign(e.style,{display:"flex"});for(const s of this.options.tools){const{name:o,icon:l,handle:i,isColorChoose:n,tip:r=""}=s,a=document.createElement("span");if(a.classList.add("ql-table-menu-item"),"break"===o)a.classList.add("break");else{const e=document.createElement("i");if(e.classList.add("icon"),t(l)?e.appendChild(l(this.tableModule)):e.innerHTML=l,a.appendChild(e),n){const e=document.createElement("div");if(e.classList.add("table-color-select-wrapper"),this.options.defaultColorMap.length>0){const t=document.createElement("div");t.classList.add("table-color-map");for(const e of this.options.defaultColorMap){const s=document.createElement("div");s.classList.add("table-color-map-row");for(const t of e){const e=document.createElement("div");e.classList.add("table-color-item"),e.style.backgroundColor=t,s.appendChild(e)}t.appendChild(s)}e.appendChild(t)}const t=document.createElement("div");t.classList.add("table-color-map-row"),Object.assign(t.style,{marginTop:"4px"});const s=document.createElement("div");s.textContent=this.options.texts.clear,s.addEventListener("click",(()=>{i(this.tableModule,this.selectedTds,null)}));const o=document.createElement("label"),l=document.createElement("span");l.textContent=this.options.texts.custom;const n=document.createElement("input");if(n.type="color",Object.assign(n.style,{width:0,height:0,padding:0,border:0,outline:"none",opacity:0}),n.addEventListener("input",(()=>{i(this.tableModule,this.selectedTds,n.value),this.updateUsedColor(n.value)}),!1),o.appendChild(l),o.appendChild(n),s.classList.add("table-color-clear"),o.classList.add("table-color-custom"),t.appendChild(s),t.appendChild(o),e.appendChild(t),Y.size>0){const t=document.createElement("div");t.classList.add("table-color-used"),t.classList.add(this.colorItemClass),a.appendChild(t);for(const e of Y){const s=document.createElement("div");s.classList.add("table-color-item"),s.style.backgroundColor=e,t.appendChild(s)}e.appendChild(t)}e.addEventListener("click",(e=>{const t=e.target,s=t.style.backgroundColor;t&&s&&this.selectedTds.length>0&&(this.tableModule.setBackgroundColor(this.selectedTds,s),this.updateUsedColor(s))}));const r=b(a,{content:e,direction:"top"});r&&this.tooltipItem.push(r),this.options.contextmenu&&a.addEventListener("click",(e=>e.stopPropagation()))}else t(i)&&a.addEventListener("click",(e=>{this.quill.focus(),i(this.tableModule,this.selectedTds,e)}),!1);const s=this.options.tipTexts[o]||r;if(s&&r)if(this.options.contextmenu){const e=document.createElement("span");e.textContent=s,a.appendChild(e)}else{const e=b(a,{msg:s});e&&this.tooltipItem.push(e)}}e.appendChild(a)}return e}hideTools(){this.menu&&Object.assign(this.menu.style,{display:"none"})}updateTools(e){if(!this.menu||!this.tableModule.tableSelection||!this.tableModule.tableSelection.boundary)return;const{boundary:t,selectedTds:s}=this.tableModule.tableSelection;this.selectedTds=s;const o={display:"flex",left:0,top:0};if(this.options.contextmenu){if(!e)return this.hideTools();const{x:t,y:s}=e;o.left=t,o.top=s}else{const e=this.quill.container.getBoundingClientRect();o.left=e.left+t.x+t.width/2,o.top=e.top+t.y+t.height,o.transform="translate(-50%, 20%)"}Object.assign(this.menu.style,{...o,left:`${o.left+window.scrollX}px`,top:`${o.top+window.scrollY}px`});const l=this.menu.getBoundingClientRect(),{left:i,top:n,leftLimited:r}=d(l);Object.assign(this.menu.style,{left:`${i+window.scrollX}px`,top:`${n+window.scrollY}px`,transform:!this.options.contextmenu&&r?"translate(0%, 20%)":null})}destroy(){for(const e of this.tooltipItem)e.remove();this.quill.root.removeEventListener("contextmenu",this.listenContextmenu),this.menu&&(this.menu.remove(),this.menu=null)}}class G{quill;colIndex=-1;tableMain;dragging=!1;dragColBreak=null;handleColMouseUpFunc=this.handleColMouseUp.bind(this);handleColMouseMoveFunc=this.handleColMouseMove.bind(this);handleColMouseDownFunc=this.handleColMouseDown.bind(this);rowIndex=-1;dragRowBreak=null;handleRowMouseUpFunc=this.handleRowMouseUp.bind(this);handleRowMouseMoveFunc=this.handleRowMouseMove.bind(this);handleRowMouseDownFunc=this.handleRowMouseDown.bind(this);constructor(e){this.quill=e}findCurrentColIndex(e){return-1}colWidthChange(e,t,s){}handleColMouseUp(){if(!this.dragColBreak||!this.tableMain||-1===this.colIndex)return;const e=this.tableMain.getCols(),t=Number.parseInt(this.dragColBreak.dataset.w),s=this.tableMain.full;if(s){let o=t/this.tableMain.domNode.getBoundingClientRect().width*100;const l=e[this.colIndex].width;if(o<l){if(o=Math.max(g.colMinWidthPre,o),e[this.colIndex+1]||e[this.colIndex-1]){const t=e[this.colIndex+1]?this.colIndex+1:this.colIndex-1,i=e[t],n=i.width+l-o;i.width=`${n}%`,this.colWidthChange(t,n,s)}else o=100;e[this.colIndex].width=`${o}%`,this.colWidthChange(this.colIndex,o,s)}else if(e[this.colIndex+1]){const t=l+e[this.colIndex+1].width;o=Math.min(t-g.colMinWidthPre,o),e[this.colIndex].width=`${o}%`,this.colWidthChange(this.colIndex,o,s),e[this.colIndex+1].width=t-o+"%",this.colWidthChange(this.colIndex+1,t-o,s)}}else this.tableMain.domNode.style.width=`${Number.parseFloat(this.tableMain.domNode.style.width)-e[this.colIndex].domNode.getBoundingClientRect().width+t}px`,e[this.colIndex].width=`${t}px`,this.colWidthChange(this.colIndex,t,s);document.body.removeChild(this.dragColBreak),this.dragColBreak=null,document.removeEventListener("mouseup",this.handleColMouseUpFunc),document.removeEventListener("mousemove",this.handleColMouseMoveFunc),this.dragging=!1,this.quill.emitter.emit(f.AFTER_TABLE_RESIZE)}handleColMouseMove(e){if(e.preventDefault(),!this.dragColBreak||!this.tableMain||-1===this.colIndex)return;const t=this.tableMain.getCols(),s=t[this.colIndex].domNode.getBoundingClientRect(),o=this.tableMain.domNode.getBoundingClientRect();let l=e.clientX;if(this.tableMain.full){const e=g.colMinWidthPre/100*o.width,i=l>s.right?t[this.colIndex+1]?Math.max(t[this.colIndex+1].domNode.getBoundingClientRect().right-e,s.left+e):o.right:1/0,n=s.x+e;l=Math.min(Math.max(l,n),i)}else l-s.x<g.colMinWidthPx&&(l=s.x+g.colMinWidthPx);return this.dragColBreak.style.left=`${l}px`,this.dragColBreak.dataset.w=String(l-s.x),{left:l,width:l-s.x}}handleColMouseDown(e){if(0!==e.button)return;if(e.preventDefault(),!this.tableMain)return;const t=this.tableMain.getCols(),s=this.tableMain.domNode.getBoundingClientRect(),o=s.width;if(this.colIndex=this.findCurrentColIndex(e),-1===this.colIndex)return;const l=t[this.colIndex].width,i=this.tableMain.full?l/100*o:l;if(this.tableMain.full){if(l<g.colMinWidthPre)return}else if(i<g.colMinWidthPx)return;document.addEventListener("mouseup",this.handleColMouseUpFunc),document.addEventListener("mousemove",this.handleColMouseMoveFunc),this.dragging=!0;const n=document.createElement("div");n.classList.add("ql-table-drag-line"),n.classList.add("col"),n.dataset.w=String(i);const r={top:s.y,left:e.clientX,height:s.height};Object.assign(n.style,{top:`${r.top}px`,left:`${r.left}px`,height:`${r.height}px`});const a=document.body;return a.appendChild(n),this.dragColBreak&&a.removeChild(this.dragColBreak),this.dragColBreak=n,r}findCurrentRowIndex(e){return-1}rowHeightChange(e,t){}handleRowMouseUp(){if(!this.tableMain||!this.dragRowBreak||-1===this.rowIndex)return;const e=Number.parseInt(this.dragRowBreak.dataset.h);this.tableMain.getRows()[this.rowIndex].setHeight(`${e}px`),this.rowHeightChange(this.rowIndex,e),document.body.removeChild(this.dragRowBreak),this.dragRowBreak=null,document.removeEventListener("mouseup",this.handleRowMouseUpFunc),document.removeEventListener("mousemove",this.handleRowMouseMoveFunc),this.dragging=!1,this.quill.emitter.emit(f.AFTER_TABLE_RESIZE)}handleRowMouseMove(e){if(!this.tableMain||!this.dragRowBreak||-1===this.rowIndex)return;e.preventDefault();const t=this.tableMain.getRows()[this.rowIndex].domNode.getBoundingClientRect();let s=e.clientY;return s-t.y<g.rowMinHeightPx&&(s=t.y+g.rowMinHeightPx),this.dragRowBreak.style.top=`${s}px`,this.dragRowBreak.dataset.h=String(s-t.y),{top:s,height:s-t.y}}handleRowMouseDown(e){if(0!==e.button)return;if(e.preventDefault(),!this.tableMain)return;if(this.rowIndex=this.findCurrentRowIndex(e),-1===this.rowIndex)return;this.dragging=!0,document.addEventListener("mouseup",this.handleRowMouseUpFunc),document.addEventListener("mousemove",this.handleRowMouseMoveFunc);const t=this.tableMain.getRows()[this.rowIndex].domNode.getBoundingClientRect().height,s=this.tableMain?.domNode.getBoundingClientRect(),o=document.createElement("div");o.classList.add("ql-table-drag-line"),o.classList.add("row"),o.dataset.h=String(t);const l={top:e.clientY,left:s.x,width:s.width};Object.assign(o.style,{top:`${l.top}px`,left:`${l.left}px`,width:`${l.width}px`});const i=document.body;return i.appendChild(o),this.dragRowBreak&&i.removeChild(this.dragRowBreak),this.dragRowBreak=o,l}}class J extends G{tableModule;table;options;root;tableMain;tableWrapper;resizeObserver;tableCols=[];tableRows=[];rowHeadWrapper=null;colHeadWrapper=null;scrollHandler=[];constructor(t,s,o,l){super(o),this.tableModule=t,this.table=s,this.options=this.resolveOptions(l),this.tableMain=e.find(this.table),this.tableMain&&(this.tableWrapper=this.tableMain.parent,this.tableWrapper&&(this.root=this.tableModule.addContainer("ql-table-resizer"),this.resizeObserver=new ResizeObserver((()=>{this.showTool()})),this.resizeObserver.observe(this.table)))}resolveOptions(e){return Object.assign({size:12},e)}addScrollEvent(e,t){e.addEventListener("scroll",t),this.scrollHandler.push([e,t])}handleResizerHeader(e,t){const{clientX:s,clientY:o}=t,l=this.table.getBoundingClientRect();if(this.tableModule.tableSelection){const t=this.tableModule.tableSelection;t.selectedTds=t.computeSelectedTds({x:s,y:o},{x:e?l.right:s,y:e?o:l.bottom}),t.showSelection()}}findCurrentColIndex(e){return Array.from(this.root.getElementsByClassName("ql-table-col-separator")).indexOf(e.target)}colWidthChange(e,t,s){Array.from(this.root.getElementsByClassName("ql-table-col-header"))[e].style.width=`${t}${s?"%":"px"}`}handleColMouseDownFunc=function(e){const t=this.handleColMouseDown(e);return t&&Object.assign(this.dragColBreak.style,{top:t.top-this.options.size+"px",left:`${t.left}px`,height:`${t.height+this.options.size}px`}),t}.bind(this);bindColEvents(){const e=Array.from(this.root.getElementsByClassName("ql-table-col-header")),t=Array.from(this.root.getElementsByClassName("ql-table-col-separator"));this.addScrollEvent(this.tableWrapper.domNode,(()=>{this.colHeadWrapper.scrollLeft=this.tableWrapper.domNode.scrollLeft}));for(const t of e)t.addEventListener("click",this.handleResizerHeader.bind(this,!1));for(const e of t)e.addEventListener("mousedown",this.handleColMouseDownFunc),e.addEventListener("dragstart",(e=>e.preventDefault()))}findCurrentRowIndex(e){return Array.from(this.root.getElementsByClassName("ql-table-row-separator")).indexOf(e.target)}rowHeightChange(e,t){Array.from(this.root.getElementsByClassName("ql-table-row-header"))[e].style.height=`${t}px`}handleRowMouseDownFunc=function(e){const t=this.handleRowMouseDown(e);return t&&Object.assign(this.dragRowBreak.style,{top:`${t.top}px`,left:t.left-this.options.size+"px",width:`${t.width+this.options.size}px`}),t}.bind(this);bindRowEvents(){const e=Array.from(this.root.getElementsByClassName("ql-table-row-header")),t=Array.from(this.root.getElementsByClassName("ql-table-row-separator"));for(const t of e)t.addEventListener("click",this.handleResizerHeader.bind(this,!0));for(const e of t)e.addEventListener("mousedown",this.handleRowMouseDownFunc),e.addEventListener("dragstart",(e=>e.preventDefault()))}showTool(){const t=e.find(this.table);if(!t)return;this.tableCols=this.tableMain.getCols(),this.tableRows=this.tableMain.getRows(),this.root.innerHTML="";const s=this.tableWrapper.domNode.getBoundingClientRect(),o=t.domNode.getBoundingClientRect(),l=this.quill.root.getBoundingClientRect();if(Object.assign(this.root.style,{top:o.y-l.y+"px",left:`${o.x-l.x+this.tableWrapper.domNode.scrollLeft}px`}),this.tableCols.length>0&&this.tableRows.length>0){const e=document.createElement("div");e.classList.add("ql-table-resizer-corner"),Object.assign(e.style,{width:`${this.options.size}px`,height:`${this.options.size}px`,transform:`translate(-${this.options.size}px, -${this.options.size}px)`}),this.root.appendChild(e)}if(this.tableCols.length>0){let e="";for(const s of this.tableCols){let l=s.width+(t.full?"%":"px");s.width||(l=`${s.domNode.getBoundingClientRect().width}px`),e+=`<div class="ql-table-col-header" style="width: ${l}">\n <div class="ql-table-col-separator" style="height: ${o.height+this.options.size-3}px"></div>\n </div>`}const l=document.createElement("div");l.classList.add("ql-table-resizer-col");const i=document.createElement("div");i.classList.add("ql-table-col-wrapper"),Object.assign(l.style,{transform:`translateY(-${this.options.size}px)`,width:`${s.width}px`,height:`${this.options.size}px`}),Object.assign(i.style,{width:`${o.width}px`}),i.innerHTML=e,l.appendChild(i),this.root.appendChild(l),l.scrollLeft=this.tableWrapper.domNode.scrollLeft,this.colHeadWrapper=l,this.bindColEvents()}if(this.tableRows.length>0){let e="";for(const t of this.tableRows){e+=`<div class="ql-table-row-header" style="height: ${`${t.domNode.getBoundingClientRect().height}px`}">\n <div class="ql-table-row-separator" style="width: ${o.width+this.options.size-3}px"></div>\n </div>`}const t=document.createElement("div");t.classList.add("ql-table-resizer-row");const i=document.createElement("div");i.classList.add("ql-table-row-wrapper"),Object.assign(t.style,{transform:`translateX(-${this.options.size}px)`,width:`${this.options.size}px`,height:s.height-(s.bottom>l.bottom?s.bottom-l.bottom:0)+"px"}),Object.assign(i.style,{height:`${o.height}px`}),i.innerHTML=e,t.appendChild(i),this.root.appendChild(t),this.rowHeadWrapper=t,this.bindRowEvents()}}hideTool(){this.root.classList.add("ql-hidden")}destroy(){this.hideTool(),this.resizeObserver.disconnect();for(const[e,t]of this.scrollHandler)e.removeEventListener("scroll",t);this.root.remove()}}class Q extends G{tableModule;colResizer;rowResizer;currentTableCell;dragging=!1;options;curColIndex=-1;curRowIndex=-1;tableCellBlot;constructor(t,s,o){super(s),this.tableModule=t,this.options=this.resolveOptions(o),this.colResizer=this.tableModule.addContainer("ql-table-resize-line-col"),this.rowResizer=this.tableModule.addContainer("ql-table-resize-line-row"),this.quill.root.addEventListener("mousemove",(t=>{if(this.dragging)return;const s=this.findTableCell(t);if(!s)return;const o=e.find(s);o&&this.currentTableCell!==s&&(this.showResizer(),this.currentTableCell=s,this.tableCellBlot=o,this.tableMain=i(o,m.tableMain),this.tableMain.getCols().length>0&&this.updateColResizer(),this.updateRowResizer())})),this.quill.on(e.events.TEXT_CHANGE,(()=>{this.hideResizer()}))}resolveOptions(e){return Object.assign({},e)}findTableCell(e){for(const t of e.composedPath())if(t instanceof HTMLElement&&"TD"===t.tagName)return t;return null}findCurrentColIndex(){return this.curColIndex}handleColMouseUpFunc=function(){this.handleColMouseUp(),this.updateColResizer()}.bind(this);updateColResizer(){if(!this.tableMain||!this.tableCellBlot)return;const e=this.tableCellBlot;this.tableModule.toolBox.removeChild(this.colResizer),this.colResizer=this.tableModule.addContainer("ql-table-resize-line-col");const[t]=n(e,[m.tableBody]),s=t.domNode.getBoundingClientRect(),o=e.domNode.getBoundingClientRect(),l=this.quill.root.getBoundingClientRect();Object.assign(this.colResizer.style,{top:s.y-l.y+"px",left:o.right-l.x+"px",height:`${s.height}px`});const i=this.tableMain.getCols();this.curColIndex=i.findIndex((t=>t.colId===e.colId)),this.colResizer.addEventListener("mousedown",this.handleColMouseDownFunc),this.colResizer.addEventListener("dragstart",(e=>{e.preventDefault()}))}findCurrentRowIndex(){return this.curRowIndex}handleRowMouseUpFunc=function(){this.handleRowMouseUp(),this.updateRowResizer()}.bind(this);updateRowResizer(){if(!this.tableMain||!this.tableCellBlot)return;const e=this.tableCellBlot;this.tableModule.toolBox.removeChild(this.rowResizer),this.rowResizer=this.tableModule.addContainer("ql-table-resize-line-row");const t=e.parent;if(!(t instanceof _))return;const[s]=n(e,[m.tableBody]),o=s.domNode.getBoundingClientRect(),l=e.domNode.getBoundingClientRect(),i=this.quill.root.getBoundingClientRect();Object.assign(this.rowResizer.style,{top:l.bottom-i.y+"px",left:o.x-i.x+"px",width:`${o.width}px`});const r=this.tableMain.getRows();this.curRowIndex=r.indexOf(t),this.rowResizer.addEventListener("mousedown",this.handleRowMouseDownFunc),this.rowResizer.addEventListener("dragstart",(e=>{e.preventDefault()}))}showResizer(){Object.assign(this.colResizer.style,{display:null}),Object.assign(this.rowResizer.style,{display:null})}hideResizer(){this.currentTableCell=void 0,this.rowResizer.style.display="none",this.colResizer.style.display="none"}}class ee{tableModule;table;quill;options;boundary=null;startScrollX=0;selectedTds=[];cellSelect;dragging=!1;scrollHandler=[];selectingHandler=this.mouseDownHandler.bind(this);tableMenu;constructor(e,t,s,o={}){this.tableModule=e,this.table=t,this.quill=s,this.options=this.resolveOptions(o),this.cellSelect=this.tableModule.addContainer("ql-table-selection_line"),this.helpLinesInitial();new ResizeObserver((()=>{this.hideSelection()})).observe(this.table),this.quill.root.addEventListener("mousedown",this.selectingHandler,!1),this.tableMenu=new Z(this.tableModule,s,this.options.tableMenu)}resolveOptions(e){return Object.assign({selectColor:"#0589f3",tableMenu:{}},e)}addScrollEvent(e,t){e.addEventListener("scroll",t),this.scrollHandler.push([e,t])}clearScrollEvent(){for(let e=0;e<this.scrollHandler.length;e++){const[t,s]=this.scrollHandler[e];t.removeEventListener("scroll",s)}this.scrollHandler=[]}helpLinesInitial(){Object.assign(this.cellSelect.style,{"border-color":this.options.selectColor})}computeSelectedTds(t,s){const o=e.find(this.table);if(!o)return[];const l=new Set(o.descendants(W).map(((e,t)=>(e.index=t,e)))),i=this.table.getBoundingClientRect();let n={x:Math.max(i.left,Math.min(s.x,t.x)),y:Math.max(i.top,Math.min(s.y,t.y)),x1:Math.min(i.right,Math.max(s.x,t.x)),y1:Math.min(i.bottom,Math.max(s.y,t.y))};const r=new Set;let a=!0;for(;a;){a=!1;for(const e of l){e.__rect||(e.__rect=e.domNode.getBoundingClientRect());const{x:t,y:s,right:o,bottom:i}=e.__rect;if(te(n,{x:t,y:s,x1:o,y1:i},2)){r.add(e),l.delete(e),n={x:Math.min(n.x,t),y:Math.min(n.y,s),x1:Math.max(n.x1,o),y1:Math.max(n.y1,i)},a=!0;break}}}for(const e of[...r,...l])delete e.__rect;return this.boundary=se({...n,width:n.x1-n.x,height:n.y1-n.y},this.quill.root.parentNode),Array.from(r).sort(((e,t)=>e.index-t.index)).map((e=>(delete e.index,e.getCellInner())))}mouseDownHandler(e){const{button:t,target:s,clientX:o,clientY:l}=e,i=s.closest(".ql-table");if(0!==t||!i)return;const n=i.dataset.tableId,r={x:o,y:l};this.startScrollX=this.table.parentNode.scrollLeft,this.selectedTds=this.computeSelectedTds(r,r),this.showSelection();const a=e=>{const{button:t,target:s,clientX:o,clientY:l}=e,i=s.closest(".ql-table");if(0!==t||!i||i.dataset.tableId!==n)return;this.dragging=!0;const a={x:o,y:l};this.selectedTds=this.computeSelectedTds(r,a),this.selectedTds.length>1&&this.quill.blur(),this.updateSelection()},d=()=>{document.body.removeEventListener("mousemove",a,!1),document.body.removeEventListener("mouseup",d,!1),this.dragging=!1};document.body.addEventListener("mousemove",a,!1),document.body.addEventListener("mouseup",d,!1)}updateSelection(){if(0===this.selectedTds.length||!this.boundary)return;const e=this.table.parentNode.scrollLeft,t=this.quill.root.parentNode.scrollTop;Object.assign(this.cellSelect.style,{left:this.boundary.x+(this.startScrollX-e)-1+"px",top:`${2*t+this.boundary.y}px`,width:`${this.boundary.width+1}px`,height:`${this.boundary.height+1}px`}),this.tableMenu.updateTools()}showSelection(){this.clearScrollEvent(),Object.assign(this.cellSelect.style,{display:"block"}),this.updateSelection(),this.addScrollEvent(this.table.parentNode,(()=>{this.updateSelection()}))}hideSelection(){this.boundary=null,this.selectedTds=[],this.cellSelect&&Object.assign(this.cellSelect.style,{display:"none"}),this.tableMenu.hideTools(),this.clearScrollEvent()}destroy(){return this.hideSelection(),this.tableMenu.destroy(),this.cellSelect.remove(),this.clearScrollEvent(),this.quill.root.removeEventListener("mousedown",this.selectingHandler,!1),null}}function te(e,t,s=4){const{x:o,y:l,x1:i,y1:n}=e,{x:r,y:a,x1:d,y1:c}=t;return!(i<=r+s||o+s>=d||(n<=a+s||l+s>=c))}function se(e,t){const s=t.getBoundingClientRect();return{x:e.x-s.x-t.scrollLeft,y:e.y-s.y-t.scrollTop,x1:e.x-s.x-t.scrollLeft+e.width,y1:e.y-s.y-t.scrollTop+e.height,width:e.width,height:e.height}}const oe=e.import("delta"),le=e.import("blots/break"),ie=e.import("ui/icons"),ne=(e,{tableId:t,rowId:s,colId:o})=>{const l={tableId:t,rowId:s,colId:o,colspan:1,rowspan:1},i=e.create(m.tableCell,l),n=e.create(m.tableCellInner,l),r=e.create("block");return r.appendChild(e.create("break")),n.appendChild(r),i.appendChild(n),i},re=[m.tableCell],ae=e=>{return!(!e||!e.parent)&&(t=e.parent,!!re.includes(t.statics.blotName)||ae(e.parent));var t};class de{static moduleName="tableUp";static toolName=m.tableWrapper;static keyboradHandler={"forbid remove table by backspace":{bindInHead:!0,key:"Backspace",collapsed:!0,offset:0,handler(e,t){const s=this.quill.getLine(e.index)[0];if(s.prev instanceof X)return s.prev.remove(),!0;if(t.format[m.tableCellInner]){if(0===s.offset(i(s,m.tableCellInner)))return!1}return!0}},"forbid remove table by delete":{bindInHead:!0,key:"Delete",collapsed:!0,handler(e,t){const s=this.quill.getLine(e.index),o=s[0],l=s[1];if((o.next instanceof X||o.next instanceof V)&&l===o.length()-1)return!1;if(t.format[m.tableCellInner]){if(o===i(o,m.tableCellInner).children.tail&&l===o.length()-1)return!1}return!0}},"after table insert new line":{bindInHead:!0,key:"Enter",collapsed:!0,format:[m.tableCellInner],prefix:/^$/,suffix:/^\s*$/,handler(t){const[s,o]=this.quill.getLine(t.index);if(this.quill.getFormat(t.index+o+1,1)[m.tableCellInner])return!0;let l=2,i=s;for(;null!==i&&i.length()<=1;)if(i=i.prev,l-=1,l<=0)return this.quill.insertText(t.index+1,"\n"),this.quill.setSelection(t.index+1,e.sources.SILENT),!1;return!0}}};static register(){X.allowedChildren=[P],P.allowedChildren=[F,U],P.requiredContainer=X,U.allowedChildren=[V],U.requiredContainer=P,F.allowedChildren=[_],F.requiredContainer=P,_.allowedChildren=[W],W.requiredContainer=F,W.allowedChildren=[j,le],W.requiredContainer=_,j.requiredContainer=W,e.register({"blots/scroll":$,"blots/block":M,[`blots/${m.container}`]:I,"formats/header":k,"formats/list":z,"formats/blockquote":R,"formats/code-block":T,[`formats/${m.tableCell}`]:W,[`formats/${m.tableCellInner}`]:j,[`formats/${m.tableRow}`]:_,[`formats/${m.tableBody}`]:F,[`formats/${m.tableCol}`]:V,[`formats/${m.tableColgroup}`]:U,[`formats/${m.tableMain}`]:P,[`formats/${m.tableWrapper}`]:X},!0)}quill;options;toolBox;fixTableByLisenter=l(this.balanceTables,100);selector;picker;range;table;tableSelection;tableResizer;tableResizerLine;get statics(){return this.constructor}constructor(t,s){this.quill=t,this.options=this.resolveOptions(s||{}),this.toolBox=this.quill.addContainer("ql-table-toolbox");const o=this.quill.getModule("toolbar");if(o&&this.quill.theme.pickers){const[,e]=(o.controls||[]).find((([e])=>e===this.statics.toolName))||[];e&&"select"===e.tagName.toLocaleLowerCase()&&(this.picker=this.quill.theme.pickers.find((t=>t.select===e)),this.picker&&(this.picker.label.innerHTML=this.options.icon,this.buildCustomSelect(this.options.customSelect),this.picker.label.addEventListener("mousedown",this.handleInViewport)))}const l=this.quill.getModule("keyboard");for(const e of Object.values(de.keyboradHandler))e.bindInHead?l.bindings[e.key].unshift(e):l.addBinding(e.key,e);this.quill.root.addEventListener("click",(e=>{const s=e.composedPath();if(!s||s.length<=0)return;const o=s.find((e=>e.tagName&&"TABLE"===e.tagName.toUpperCase()&&e.classList.contains("ql-table")));if(o){if(this.table===o)return void(this.tableSelection&&this.tableSelection?.showSelection());this.table&&this.hideTableTools(),this.showTableTools(o,t)}else this.table&&this.hideTableTools()}),!1),this.quill.root.addEventListener("scroll",(()=>{this.hideTableTools()})),this.quill.on(e.events.EDITOR_CHANGE,((t,s,o)=>{if(t===e.events.SELECTION_CHANGE&&s){const[t]=this.quill.getLine(s.index),[l]=this.quill.getLine(s.index+s.length);let n,r;try{n=i(t,m.tableMain)}catch{}try{r=i(l,m.tableMain)}catch{}if(t instanceof V)return this.quill.setSelection(s.index+(o.index>s.index?-1:1),s.length+(o.length===s.length?0:o.length>s.length?-1:1),e.sources.USER);if(l instanceof V)return this.quill.setSelection(s.index+1,s.length+1,e.sources.USER);s.length>0&&(n&&!r?this.quill.setSelection(s.index-1,s.length+1,e.sources.USER):r&&!n&&this.quill.setSelection(s.index,s.length+1,e.sources.USER)),n&&r||this.hideTableTools()}})),this.options.resizerSetOuter||(this.tableResizerLine=new Q(this,t,this.options.resizeLine||{})),this.quill.on(f.AFTER_TABLE_RESIZE,(()=>{this.tableSelection&&this.tableSelection.hideSelection()})),this.pasteTableHandler(),this.listenBalanceCells()}addContainer(e){const t=document.createElement("div");for(const s of e.split(" "))t.classList.add(s);return this.toolBox.appendChild(t),t}resolveOptions(e){return Object.assign({customBtn:!0,texts:this.resolveTexts(e.texts||{}),full:!0,resizerSetOuter:!1,icon:ie.table},e)}resolveTexts(e){return Object.assign({customBtnText:"Custom",confirmText:"Confirm",cancelText:"Cancel",rowText:"Row",colText:"Column",notPositiveNumberError:"Please enter a positive integer"},e)}pasteTableHandler(){let e=o(),t=o(),s=[],l=0,i=0;this.quill.clipboard.addMatcher("table",((t,n)=>{if(0===n.ops.length)return n;let r,a=!1;if(n.ops[0]&&"string"!=typeof n.ops[0].insert){for(let e=0;e<n.ops.length;e++){const{insert:t,attributes:s}=n.ops[e];if(t&&"string"!=typeof t&&t[m.tableCol]){a=!0;break}if(s&&s[m.tableCellInner])break}a=!!n.ops[0].insert?.[m.tableCol]}let d=this.options.full;a&&(d=!!n.ops[0].insert?.[m.tableCol]?.full);const c=window.getComputedStyle(this.quill.root),h=Number.parseFloat(c.paddingLeft),u=Number.parseFloat(c.paddingRight),p=Number.parseFloat(c.width)-h-u,b=d?`${Math.max(100/s.length,g.colMinWidthPre)}%`:`${Math.max(p/s.length,g.colMinWidthPx)}px`;if(a)for(let t=0;t<n.ops.length;t++){const o=n.ops[t].insert;if(!o||"string"==typeof o||!o[m.tableCol]){"\n"===o&&n.ops.splice(t,1);break}Object.assign(o[m.tableCol],{tableId:e,colId:s[t],full:d,width:o[m.tableCol].width?Number.parseFloat(o[m.tableCol].width)+(d?"%":"px"):b})}else r=s.reduce(((t,s)=>(t.insert({[m.tableCol]:{colId:s,tableId:e,width:b,full:d}}),t)),new oe);for(let e=0;e<n.ops.length;e++){const t=n.ops[e].attributes;t&&t.table&&delete t.table}return e=o(),s=[],l=0,i=0,(n=r?r.concat(n):n).ops.unshift({insert:"\n"}),n.ops.push({insert:"\n"}),n})),this.quill.clipboard.addMatcher("col",(t=>{s[i]=o();const l=(new oe).insert({[m.tableCol]:{tableId:e,colId:s[i],full:Object.hasOwn(t.dataset,"full")}});return i+=1,l})),this.quill.clipboard.addMatcher("tr",((e,s)=>{t=o(),l=0;for(const e of s.ops)e.attributes&&e.attributes.background&&e.attributes[m.tableCellInner]&&!e.attributes[m.tableCellInner].backgroundColor&&(e.attributes[m.tableCellInner].backgroundColor=e.attributes.background);return s}));const n=(i,n)=>{const r=i,a=Number(r.getAttribute("rowspan"))||1,d=Number(r.getAttribute("colspan"))||1,c=r.style.height,h=r.style.backgroundColor;if(!s[l])for(let e=l;e>=0;e--)s[e]||(s[e]=o());const u=s[l];l+=Number(d),"\n"!==n.slice(n.length()-1).ops[0]?.insert&&n.insert("\n");const p={tableId:e,rowId:t,colId:u,rowspan:Number.isNaN(a)?1:a,colspan:Number.isNaN(d)?1:d};return c&&(p.height=c),h&&(p.backgroundColor=h),n.compose((new oe).retain(n.length(),{[m.tableCellInner]:p}))};this.quill.clipboard.addMatcher("td",n),this.quill.clipboard.addMatcher("th",n)}showTableTools(e,t){e&&(this.table=e,this.tableSelection=new ee(this,e,t,this.options.selection||{}),this.options.resizerSetOuter&&(this.tableResizer=new J(this,e,t,this.options.resizer||{})))}hideTableTools(){this.tableSelection&&this.tableSelection.destroy(),this.tableSelection=void 0,this.table=void 0,this.options.resizerSetOuter&&(this.tableResizer&&this.tableResizer.destroy(),this.tableResizer=void 0)}async buildCustomSelect(e){if(!this.picker)return;const s=document.createElement("div");s.classList.add("ql-custom-select"),this.selector=e&&t(e)?await e(this):((e={})=>{const t=document.createElement("div");t.classList.add("select-box");const s=document.createElement("div");s.classList.add("select-box__block");for(let t=0;t<(e.row||8);t++)for(let o=0;o<(e.col||8);o++){const e=document.createElement("div");e.classList.add("select-box__item"),e.dataset.row=String(t+1),e.dataset.col=String(o+1),s.appendChild(e)}const o=()=>{const{row:e,col:o}=t.dataset;for(const e of Array.from(s.querySelectorAll(".active")))e.classList.remove("active");if(!e||!o)return;const l=Array.from(s.children);for(let t=0;t<l.length;t++){const{row:s,col:i}=l[t].dataset;if(s>e&&i>o)return;s<=e&&i<=o?l[t].classList.add("active"):l[t].classList.remove("active")}};if(s.addEventListener("mousemove",(e=>{if(!e.target)return;const{row:s,col:l}=e.target.dataset;s&&l&&(t.dataset.row=s,t.dataset.col=l,o())})),s.addEventListener("mouseleave",(()=>{t.removeAttribute("data-row"),t.removeAttribute("data-col"),o()})),s.addEventListener("click",(()=>{const{row:s,col:o}=t.dataset;s&&o&&e.onSelect&&e.onSelect(Number(s),Number(o))})),t.appendChild(s),e.customBtn){const s=e.texts||{},o=document.createElement("div");o.classList.add("select-box__custom"),o.textContent=s.customBtnText||"自定义行列数",o.addEventListener("click",(async()=>{const t=await u(s);t&&e.onSelect&&e.onSelect(t.row,t.col)})),t.appendChild(o)}return t})({onSelect:(e,t)=>{this.insertTable(e,t),this.picker&&this.picker.close()},customBtn:this.options.customBtn,texts:this.options.texts}),s.appendChild(this.selector),this.picker.options.appendChild(s)}handleInViewport=()=>{if(!this.selector||!this.picker)return;if(this.selector.getBoundingClientRect().right>=window.innerWidth){const e=this.picker.label.getBoundingClientRect();Object.assign(this.picker.options.style,{transform:`translateX(calc(-100% + ${e.width}px))`})}else Object.assign(this.picker.options.style,{transform:void 0})};insertTable(t,s){if(t>=30||s>=30)throw new Error("Both rows and columns must be less than 30.");this.quill.focus(),this.range=this.quill.getSelection();const l=this.range;if(null==l)return;const[i]=this.quill.getLeaf(l.index);if(!i)return;if(ae(i))throw new Error(`Not supported ${i.statics.blotName} insert into table.`);const n=getComputedStyle(this.quill.root),r=Number.parseInt(n.paddingLeft),a=Number.parseInt(n.paddingRight),d=Number.parseInt(n.width)-r-a;let c=(new oe).retain(l.index).insert("\n");const h=o(),u=new Array(s).fill(0).map((()=>o())),p=this.options.full?`${Math.max(1/s*100,g.colMinWidthPre)}%`:`${Math.max(Math.floor(d/s),g.colMinWidthPx)}px`;c=new Array(s).fill("\n").reduce(((e,t,s)=>(e.insert(t,{[m.tableCol]:{width:p,tableId:h,colId:u[s],full:this.options.full}}),e)),c),c=new Array(t).fill(0).reduce((e=>{const t=o();return new Array(s).fill("\n").reduce(((e,s,o)=>(e.insert(s,{[m.tableCellInner]:{tableId:h,rowId:t,colId:u[o],rowspan:1,colspan:1}}),e)),e)}),c),this.quill.updateContents(c,e.sources.USER),this.quill.setSelection(l.index+s+s*t+1,e.sources.SILENT),this.quill.focus()}fixUnusuaDeletelTable(e){const t=e.getRows(),s=e.getColIds();if(0===t.length)return e.remove();if(0===s.length)return;const o=new Array(t.length).fill(0).map((()=>new Array(s.length).fill(!1))),l=e.tableId;for(const[e,i]of t.entries()){let n=0,r=0;const a=o[e],d=i.descendants(W);for(;r<s.length;){if(a[r]){r+=1;continue}const c=d[n];if(c&&c.colId===s[r]){e+c.rowspan-1>=t.length&&(c.getCellInner().rowspan=t.length-e);const{colspan:s,rowspan:l}=c;if(s>1)for(let e=1;e<s;e++)a[r+e]=!0;if(l>1)for(let t=e+1;t<e+l;t++)for(let e=0;e<s;e++)o[t][r+e]=!0;n+=1}else i.insertBefore(ne(this.quill.scroll,{tableId:l,colId:s[r],rowId:i.rowId}),c);r+=1}if(n<d.length)for(let e=n;e<d.length;e++)d[e].remove()}}balanceTables(){for(const e of this.quill.scroll.descendants(P))this.fixUnusuaDeletelTable(e)}listenBalanceCells(){this.quill.on(e.events.SCROLL_OPTIMIZE,(e=>{e.some((e=>!!["TD","TR","TBODY","TABLE"].includes(e.target.tagName)&&(this.fixTableByLisenter(),!0)))}))}setBackgroundColor(e,t){if(0!==e.length)for(const s of e)s.backgroundColor=t}deleteTable(){if(!this.tableSelection||0===this.tableSelection.selectedTds.length)return;const e=i(this.tableSelection.selectedTds[0],m.tableMain);e&&e.remove(),this.hideTableTools()}appendRow(e){if(!this.tableSelection)return;const t=this.tableSelection.selectedTds;if(t.length<=0)return;const s=t[e?t.length-1:0],[o,l,i]=n(s,[m.tableMain,m.tableBody,m.tableRow]),r=o.getRows().indexOf(i)+(e?s.rowspan:0);l.insertRow(r)}appendCol(e){if(!this.tableSelection)return;const t=this.tableSelection.selectedTds;if(t.length<=0)return;const[s]=t.reduce(((t,s)=>{const o=s.getColumnIndex();return(!e&&o<=t[1]||e&&o>=t[1])&&(t=[s,o]),t}),[t[0],t[0].getColumnIndex()]),l=s.getColumnIndex()+(e?s.colspan:0),n=i(s,m.tableMain),r=n.tableId,a=o(),[d]=n.descendants(U);d&&d.insertColByIndex(l,{tableId:r,colId:a,width:n.full?"6%":"160px",full:n.full});const c=n.getRows(),h=[];let u=0;for(const e of Object.values(c)){const t=h.shift()||0;if(u>0){u-=1;continue}const s=e.insertCell(l-t,{tableId:r,rowId:e.rowId,colId:a,rowspan:1,colspan:1});s.skipRowNum&&(u+=s.skipRowNum);for(const[e,t]of s.entries())h[e]=(h[e]||0)+t}}fixTableByRemove(e){const t=e.getRows(),s=e.getCols(),o=s.reduce(((e,t)=>(e[t.colId]=0,e)),{}),l=[...t].reverse(),i=[];for(const[e,s]of l.entries()){const l=t.length-e-1;s.children.length<=0?i.push(l):s.foreachCellInner((e=>{const t=i.reduce(((t,s)=>e.rowspan+l>s?t+1:t),0);e.rowspan-=t,o[e.colId]+=1}))}let n=0;for(const e of Object.values(o))if(0===e){const e=[];let s=0;for(const o of Object.values(t)){const t=e.shift()||0;let l=[];s>0?(l=o.getCellByColumIndex(n-t)[2],s-=1):(l=o.removeCell(n-t),l.skipRowNum&&(s+=l.skipRowNum));for(const[t,s]of l.entries())e[t]=(e[t]||0)+s}}else n+=1;for(const e of s)0===o[e.colId]&&(e.prev?e.prev.width+=e.width:e.next&&(e.next.width+=e.width),e.remove())}removeRow(){if(!this.tableSelection)return;const e=this.tableSelection.selectedTds;if(e.length<=0)return;const t=i(e[0],m.tableMain),s=t.getRows();let o=s.length,l=-1;for(const t of e){const e=i(t,m.tableRow),n=s.indexOf(e);n<o&&(o=n),n+t.rowspan>l&&(l=n+t.rowspan)}const n={};for(let e=o;e<Math.min(s.length,l);e++){s[e].foreachCellInner((t=>{t.rowspan+e>l&&(n[t.colId]={rowspan:t.rowspan+e-l,colspan:t.colspan,colIndex:t.getColumnIndex()}),t.parent.remove()}))}if(s[l]){const e=s[l],o=t.tableId;for(const[t,{colIndex:s,colspan:l,rowspan:i}]of Object.entries(n))e.insertCell(s,{tableId:o,rowId:e.rowId,colId:t,colspan:l,rowspan:i})}this.fixTableByRemove(t)}removeCol(){if(!this.tableSelection)return;const e=this.tableSelection.selectedTds;if(e.length<=0)return;const t=e[0],s=i(t,m.tableMain),o={};for(const t of e)o[t.rowId]||(o[t.rowId]=0),o[t.rowId]+=t.colspan;const l=Math.max(...Object.values(o)),n=t.getColumnIndex(),r=s.descendants(_);for(let e=0;e<l;e++){const e=[];let t=0;for(const s of Object.values(r)){const o=e.shift()||0;if(t>0){t-=1;continue}const l=s.removeCell(n-o);l.skipRowNum&&(t+=l.skipRowNum);for(const[t,s]of l.entries())e[t]=(e[t]||0)+s}}const[a]=s.descendants(U);if(a)for(let e=0;e<l;e++)a.removeColByIndex(n);this.fixTableByRemove(s)}mergeCells(){if(!this.tableSelection)return;const e=this.tableSelection.selectedTds;if(e.length<=1)return;const t=e.reduce(((e,t,s)=>{const o=t.colId;e[0][o]||(e[0][o]=0),e[0][o]+=t.rowspan;const l=t.rowId;return e[1][l]||(e[1][l]=0),e[1][l]+=t.colspan,0!==s&&(t.moveChildren(e[2]),t.parent.remove()),e}),[{},{},e[0]]),s=Math.max(...Object.values(t[0])),o=Math.max(...Object.values(t[1])),l=t[2];l.colspan=o,l.rowspan=s;const n=i(l,m.tableMain);this.fixTableByRemove(n)}splitCell(){if(!this.tableSelection)return;const e=this.tableSelection.selectedTds;if(1!==e.length)return;const t=e[0];if(1===t.colspan&&1===t.rowspan)return;const[s,o]=n(t,[m.tableMain,m.tableRow]),l=s.tableId,i=t.getColumnIndex(),r=s.getColIds().slice(i,i+t.colspan).reverse();let a=o,d=t.rowspan;for(t.colspan=1,t.rowspan=1;a&&d>0;){for(const e of r)a===o&&e===t.colId||a.insertCell(i+(a===o?1:0),{tableId:l,rowId:a.rowId,colId:e,rowspan:1,colspan:1});d-=1,a=a.next}}}const ce=e=>{Object.assign(m,e.blotName||{}),Object.assign(g,e.tableUpSize||{}),Object.assign(f,e.tableUpEvent||{}),de.toolName=m.tableWrapper,I.blotName=m.container,X.blotName=m.tableWrapper,P.blotName=m.tableMain,U.blotName=m.tableColgroup,V.blotName=m.tableCol,F.blotName=m.tableBody,_.blotName=m.tableRow,W.blotName=m.tableCell,j.blotName=m.tableCellInner};export{M as BlockOverride,R as BlockquoteOverride,T as CodeBlockOverride,I as ContainerFormat,k as HeaderOverride,z as ListItemOverride,$ as ScrollOverride,F as TableBodyFormat,W as TableCellFormat,j as TableCellInnerFormat,V as TableColFormat,U as TableColgroupFormat,P as TableMainFormat,Z as TableMenu,J as TableResize,G as TableResizeCommon,Q as TableResizeLine,_ as TableRowFormat,ee as TableSelection,de as TableUp,X as TableWrapperFormat,m as blotName,de as default,i as findParentBlot,n as findParentBlots,se as getRelativeRect,te as isRectanglesIntersect,o as randomId,re as tableCantInsert,f as tableUpEvent,g as tableUpSize,ce as updateTableConstants};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/utils.ts","../src/utils/components.ts","../src/utils/constants.ts","../src/formats/container-format.ts","../src/formats/overrides/block.ts","../src/formats/overrides/blockquote.ts","../src/formats/overrides/code.ts","../src/formats/overrides/header.ts","../src/formats/overrides/list.ts","../src/formats/overrides/scroll.ts","../src/formats/table-cell-inner-format.ts","../src/formats/table-row-format.ts","../src/formats/table-body-format.ts","../src/formats/table-cell-format.ts","../src/formats/table-col-format.ts","../src/formats/table-main-format.ts","../src/formats/table-colgroup-format.ts","../src/formats/table-wrapper-format.ts","../src/modules/table-menu.ts","../src/modules/table-resize.ts","../src/modules/table-resize-line.ts","../src/modules/table-selection.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["isFunction","val","isArray","Array","randomId","Math","random","toString","slice","debounce","fn","delay","timestamp","args","clearTimeout","setTimeout","apply","this","findParentBlot","blot","targetBlotName","target","parent","statics","blotName","scroll","Error","findParentBlots","targetBlotNames","resultBlots","length","blotNameIndexMaps","Map","map","name","i","size","has","get","delete","from","keys","join","mixinProps","source","prop","Object","getOwnPropertyNames","test","defineProperty","getOwnPropertyDescriptor","mixinClass","base","mixins","targetClass","constructor","props","super","prototype","limitDomInViewPort","rect","left","top","width","height","clientWidth","clientHeight","document","documentElement","leftLimited","topLimited","createInputItem","label","options","type","value","inputItem","createElement","classList","add","inputLabel","textContent","appendChild","inputInput","input","key","setAttribute","max","min","addEventListener","Number","String","remove","item","errorTip","msg","contains","querySelector","removeError","zindex","showTableCreator","async","box","inputContent","rowItem","rowInput","rowErrorTip","rowText","row","colItem","colInput","colErrorTip","colText","col","control","confirmBtn","confirmText","cancelBtn","cancelText","Promise","resolve","reject","close","child","body","beforeClose","appendTo","dialog","style","zIndex","overlay","content","e","stopPropagation","originOverflow","getComputedStyle","overflow","createDialog","isNaN","notPositiveNumberError","tooltipContainer","createToolTip","direction","tooltip","timer","transitionendHandler","removeChild","open","removeEventListener","elRect","getBoundingClientRect","contentRect","extra","right","bottom","assign","window","scrollY","scrollX","once","container","tableWrapper","tableMain","tableColgroup","tableCol","tableBody","tableRow","tableCell","tableCellInner","tableUpSize","colMinWidthPre","colMinWidthPx","rowMinHeightPx","tableUpEvent","AFTER_TABLE_RESIZE","Parchment","Quill","import","Container","Block","BlockEmbed","ContainerFormat","static","Scope","BLOCK_BLOT","clearDeltaCache","blocks","descendants","cache","insertBefore","ref","children","head","insertAt","index","def","find","defaultChild","create","optimize","_context","next","checkMerge","moveChildren","BlockOverride","replaceWith","replacement","ParentBlot","selfParent","prev","block","selfRow","undefined","attributes","copy","format","tableNext","tableRowNext","tableCellNext","Blockquote","BlockquoteOverride","CodeBlock","CodeBlockOverride","Header","HeaderOverride","ListItem","ListItemOverride","register","ScrollBlot","ScrollOverride","createBlock","refBlot","createBlotName","formats","entries","query","BLOCK","BLOT","formatAt","TableCellInnerFormat","tableId","rowId","colId","rowspan","colspan","backgroundColor","node","dataset","allowDataAttrs","Set","setFormatValue","attrName","domNode","removeAttribute","getColumnIndex","getColIds","indexOf","afterBlock","wrap","uiNode","firstChild","cellInnerBlot","cellInnerBlotValue","selfValue","every","selfCell","offset","newCellInner","forEachAt","split","newCell","TableRowFormat","setHeight","foreachCellInner","cellInner","insertCell","targetIndex","skip","iterator","cur","getCellInner","skipRowNum","getCellByColumIndex","stopIndex","cellEndIndex","removeCell","columnIndexData","colIds","func","context","TableBodyFormat","insertRow","tableBlot","rows","insertColIds","cell","colIndex","TableCellFormat","__rect","getAttribute","TableColFormat","full","parseFloat","hasOwn","lines","text","pop","line","tableColgroupBlot","tableMainBlot","tableBodyBlot","insertBlot","nextBlotRef","cellInners","newBlock","newTableBody","TableMainFormat","colWidthFillTable","cols","getCols","colsWidth","reduce","sum","getRows","getRowIds","d","tagName","TableColgroupFormat","findCol","insertColByIndex","table","TypeError","removeColByIndex","TableWrapperFormat","preventDefault","dataTransfer","dropEffect","allowedChildren","some","deleteAt","tableBodys","tableColgroups","usedColors","defaultTools","icon","tip","handle","tableModule","appendRow","hideTableTools","appendCol","mergeCells","splitCell","removeRow","removeCol","deleteTable","isColorChoose","selectedTds","color","setBackgroundColor","TableMenu","quill","menu","updateUsedColor","colorItemClass","tooltipItem","resolveOptions","storageValue","localStorage","getItem","localstorageKey","colorValue","JSON","parse","c","saveColors","clear","v","setItem","stringify","usedColorWrappers","querySelectorAll","usedColorWrapper","innerHTML","recordColor","colorItem","contextmenu","root","listenContextmenu","buildTools","tipText","tipTexts","tools","defaultColorMap","texts","resolveTexts","custom","path","composedPath","toUpperCase","tableSelection","updateTools","x","clientX","y","clientY","hideTools","toolBox","display","tool","iconDom","colorSelectWrapper","colorMap","colors","colorMapRow","marginTop","clearColor","customColor","padding","border","outline","opacity","usedColorWrap","push","focus","tipTextDom","position","boundary","containerRect","transform","menuRect","limitLeft","limitTop","destroy","TableResize","resizeObserver","tableCols","tableRows","rowHeadWrapper","colHeadWrapper","scrollHandler","addContainer","ResizeObserver","showTool","observe","addScrollEvent","dom","handleResizerHeader","isX","tableRect","computeSelectedTds","showSelection","bindColEvents","tipColBreak","curColIndex","tableColHeads","getElementsByClassName","tableColHeadSeparators","handleMousemove","tableWidth","resX","minWidth","maxRange","Infinity","minRange","w","handleMouseup","parseInt","pre","oldWidthPre","last","totalWidthNextPre","emitter","emit","handleMousedown","divDom","fullWidth","colWidthAttr","tableMainRect","scrollLeft","el","bind","bindRowEvents","tipRowBreak","curRowIndex","tableRowHeads","tableRowHeadSeparators","resY","tableWrapperRect","rootRect","corner","colHeadStr","colHead","rowHeadStr","rowHead","hideTool","disconnect","TableResizeLine","colResizer","rowResizer","currentTableCell","dragging","findTableCell","tableCellBlot","showResizer","updateColResizer","updateRowResizer","on","events","TEXT_CHANGE","hideResizer","HTMLElement","tableBodyect","tableCellRect","findIndex","button","tableBodynRect","TableSelection","startScrollX","cellSelect","selectingHandler","mouseDownHandler","tableMenu","helpLinesInitial","hideSelection","selectColor","clearScrollEvent","startPoint","endPoint","tableCells","x1","y1","selectedCells","findEnd","isRectanglesIntersect","getRelativeRect","parentNode","sort","a","b","mousedownEvent","closestTable","closest","startTableId","mouseMoveHandler","mousemoveEvent","movePoint","blur","updateSelection","mouseUpHandler","tableViewScrollLeft","scrollTop","tolerance","minAx","minAy","maxAx","maxAy","minBx","minBy","maxBx","maxBy","targetRect","Delta","Break","icons","createCell","tableCantInsert","isForbidInTable","current","includes","TableUp","bindInHead","collapsed","handler","range","getLine","offsetInline","tail","prefix","suffix","getFormat","numLines","insertText","setSelection","sources","SILENT","requiredContainer","fixTableByLisenter","balanceTables","selector","picker","tableResizer","tableResizerLine","toolbar","getModule","theme","pickers","select","controls","toolName","toLocaleLowerCase","buildCustomSelect","customSelect","handleInViewport","keyboard","values","keyboradHandler","bindings","unshift","addBinding","evt","tableNode","showTableTools","EDITOR_CHANGE","event","oldRange","SELECTION_CHANGE","startBlot","endBlot","startTableBlot","endTableBlot","USER","resizerSetOuter","resizeLine","pasteTableHandler","listenBalanceCells","classes","classname","customBtn","customBtnText","cellCount","colCount","clipboard","addMatcher","delta","ops","colDelta","hasCol","insert","isFull","editorStyle","editorPaddingLeft","paddingLeft","editorPaddingRight","paddingRight","editorInnerWidth","defaultColWidth","splice","id","attrs","concat","op","background","matchCell","compose","retain","selection","resizer","selectDom","selectBlock","r","selectItem","updateSelectBlockItems","childs","childRow","childCol","onSelect","selectCustom","res","createSelectBox","insertTable","innerWidth","labelRect","columns","getSelection","currentBlot","getLeaf","rootStyle","fill","memo","floor","updateContents","fixUnusuaDeletelTable","trBlots","tableColIds","cellSpanMap","indexTr","tr","indexTd","indexCol","curCellSpan","tds","curTd","SCROLL_OPTIMIZE","mutations","mutation","td","isDown","baseTd","baseTdParentTr","insertRowIndex","isRight","columnIndex","newColId","colgroup","trs","spanCols","spanCol","shift","nextSpanCols","n","fixTableByRemove","colIdMap","idMap","reverseTrBlots","reverse","removeTr","count","endTrIndex","nextTrIndex","patchTds","nextTr","colspanMap","colspanCount","counts","selectTd","rowCount","baseTr","curTr","updateTableConstants","data"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/utils.ts","../src/utils/components.ts","../src/utils/constants.ts","../src/formats/container-format.ts","../src/formats/overrides/block.ts","../src/formats/overrides/blockquote.ts","../src/formats/overrides/code.ts","../src/formats/overrides/header.ts","../src/formats/overrides/list.ts","../src/formats/overrides/scroll.ts","../src/formats/table-cell-inner-format.ts","../src/formats/table-row-format.ts","../src/formats/table-body-format.ts","../src/formats/table-cell-format.ts","../src/formats/table-col-format.ts","../src/formats/table-main-format.ts","../src/formats/table-colgroup-format.ts","../src/formats/table-wrapper-format.ts","../src/modules/table-menu.ts","../src/modules/table-resize-common.ts","../src/modules/table-resize.ts","../src/modules/table-resize-line.ts","../src/modules/table-selection.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["isFunction","val","isArray","Array","randomId","Math","random","toString","slice","debounce","fn","delay","timestamp","args","clearTimeout","setTimeout","apply","this","findParentBlot","blot","targetBlotName","target","parent","statics","blotName","scroll","Error","findParentBlots","targetBlotNames","resultBlots","length","blotNameIndexMaps","Map","map","name","i","size","has","get","delete","from","keys","join","mixinProps","source","prop","Object","getOwnPropertyNames","test","defineProperty","getOwnPropertyDescriptor","mixinClass","base","mixins","targetClass","constructor","props","super","prototype","limitDomInViewPort","rect","left","top","width","height","clientWidth","clientHeight","document","documentElement","leftLimited","topLimited","createInputItem","label","options","type","value","inputItem","createElement","classList","add","inputLabel","textContent","appendChild","inputInput","input","key","setAttribute","max","min","addEventListener","Number","String","remove","item","errorTip","msg","contains","querySelector","removeError","zindex","showTableCreator","async","box","inputContent","rowItem","rowInput","rowErrorTip","rowText","row","colItem","colInput","colErrorTip","colText","col","control","confirmBtn","confirmText","cancelBtn","cancelText","Promise","resolve","reject","close","child","body","beforeClose","appendTo","dialog","style","zIndex","overlay","content","e","stopPropagation","originOverflow","getComputedStyle","overflow","createDialog","focus","isNaN","notPositiveNumberError","tooltipContainer","createToolTip","direction","tooltip","timer","transitionendHandler","removeChild","open","removeEventListener","elRect","getBoundingClientRect","contentRect","extra","right","bottom","assign","window","scrollY","scrollX","once","container","tableWrapper","tableMain","tableColgroup","tableCol","tableBody","tableRow","tableCell","tableCellInner","tableUpSize","colMinWidthPre","colMinWidthPx","rowMinHeightPx","tableUpEvent","AFTER_TABLE_RESIZE","Parchment","Quill","import","Container","Block","BlockEmbed","ContainerFormat","static","Scope","BLOCK_BLOT","clearDeltaCache","blocks","descendants","cache","insertBefore","ref","children","head","insertAt","index","def","find","defaultChild","create","optimize","_context","next","checkMerge","moveChildren","BlockOverride","replaceWith","replacement","ParentBlot","selfParent","prev","block","selfRow","undefined","attributes","copy","format","tableNext","tableRowNext","tableCellNext","Blockquote","BlockquoteOverride","CodeBlock","CodeBlockOverride","Header","HeaderOverride","ListItem","ListItemOverride","register","ScrollBlot","ScrollOverride","createBlock","refBlot","createBlotName","formats","entries","query","BLOCK","BLOT","formatAt","TableCellInnerFormat","tableId","rowId","colId","rowspan","colspan","backgroundColor","node","dataset","allowDataAttrs","Set","setFormatValue","attrName","domNode","removeAttribute","getColumnIndex","getColIds","indexOf","afterBlock","wrap","uiNode","firstChild","cellInnerBlot","cellInnerBlotValue","selfValue","every","selfCell","offset","newCellInner","forEachAt","split","newCell","TableRowFormat","setHeight","foreachCellInner","cellInner","insertCell","targetIndex","skip","iterator","cur","getCellInner","skipRowNum","getCellByColumIndex","stopIndex","cellEndIndex","removeCell","columnIndexData","colIds","func","context","TableBodyFormat","insertRow","tableBlot","rows","insertColIds","cell","colIndex","TableCellFormat","__rect","getAttribute","TableColFormat","full","parseFloat","hasOwn","lines","text","pop","line","tableColgroupBlot","tableMainBlot","tableBodyBlot","insertBlot","nextBlotRef","cellInners","newBlock","newTableBody","TableMainFormat","colWidthFillTable","cols","getCols","colsWidth","reduce","sum","getRows","getRowIds","d","tagName","TableColgroupFormat","findCol","insertColByIndex","table","TypeError","removeColByIndex","TableWrapperFormat","preventDefault","dataTransfer","dropEffect","allowedChildren","some","deleteAt","tableBodys","tableColgroups","usedColors","defaultTools","icon","tip","handle","tableModule","appendRow","hideTableTools","appendCol","mergeCells","splitCell","removeRow","removeCol","deleteTable","isColorChoose","selectedTds","color","setBackgroundColor","TableMenu","quill","menu","updateUsedColor","colorItemClass","tooltipItem","resolveOptions","storageValue","localStorage","getItem","localstorageKey","colorValue","JSON","parse","c","saveColors","clear","v","setItem","stringify","usedColorWrappers","querySelectorAll","usedColorWrapper","innerHTML","recordColor","colorItem","contextmenu","root","listenContextmenu","buildTools","tipText","tipTexts","tools","defaultColorMap","texts","resolveTexts","custom","path","composedPath","toUpperCase","tableSelection","updateTools","x","clientX","y","clientY","hideTools","toolBox","display","tool","iconDom","colorSelectWrapper","colorMap","colors","colorMapRow","marginTop","clearColor","customColor","padding","border","outline","opacity","usedColorWrap","push","tipTextDom","position","boundary","containerRect","transform","menuRect","limitLeft","limitTop","destroy","TableResizeCommon","dragging","dragColBreak","handleColMouseUpFunc","handleColMouseUp","bind","handleColMouseMoveFunc","handleColMouseMove","handleColMouseDownFunc","handleColMouseDown","rowIndex","dragRowBreak","handleRowMouseUpFunc","handleRowMouseUp","handleRowMouseMoveFunc","handleRowMouseMove","handleRowMouseDownFunc","handleRowMouseDown","findCurrentColIndex","_e","colWidthChange","_i","_w","_isFull","w","parseInt","isFull","pre","oldWidthPre","changeTableCol","resultWidth","totalWidthNextPre","emitter","emit","tableRect","resX","minWidth","maxRange","Infinity","minRange","button","tableMainRect","fullWidth","colWidthAttr","divDom","styleValue","findCurrentRowIndex","rowHeightChange","_h","h","resY","TableResize","resizeObserver","tableCols","tableRows","rowHeadWrapper","colHeadWrapper","scrollHandler","addContainer","ResizeObserver","showTool","observe","addScrollEvent","dom","handleResizerHeader","isX","computeSelectedTds","showSelection","getElementsByClassName","bindColEvents","tableColHeads","tableColHeadSeparators","scrollLeft","el","bindRowEvents","tableRowHeads","tableRowHeadSeparators","tableWrapperRect","rootRect","corner","colHeadStr","colHead","rowHeadStr","rowHead","hideTool","disconnect","TableResizeLine","colResizer","rowResizer","currentTableCell","curColIndex","curRowIndex","tableCellBlot","findTableCell","showResizer","updateColResizer","updateRowResizer","on","events","TEXT_CHANGE","hideResizer","HTMLElement","tableBodyect","tableCellRect","findIndex","currentRow","tableBodynRect","TableSelection","startScrollX","cellSelect","selectingHandler","mouseDownHandler","tableMenu","helpLinesInitial","hideSelection","selectColor","clearScrollEvent","startPoint","endPoint","tableCells","x1","y1","selectedCells","findEnd","isRectanglesIntersect","getRelativeRect","parentNode","sort","a","b","mousedownEvent","closestTable","closest","startTableId","mouseMoveHandler","mousemoveEvent","movePoint","blur","updateSelection","mouseUpHandler","tableViewScrollLeft","scrollTop","tolerance","minAx","minAy","maxAx","maxAy","minBx","minBy","maxBx","maxBy","targetRect","Delta","Break","icons","createCell","tableCantInsert","isForbidInTable","current","includes","TableUp","bindInHead","collapsed","handler","range","getLine","offsetInline","tail","prefix","suffix","getFormat","numLines","insertText","setSelection","sources","SILENT","requiredContainer","fixTableByLisenter","balanceTables","selector","picker","tableResizer","tableResizerLine","toolbar","getModule","theme","pickers","select","controls","toolName","toLocaleLowerCase","buildCustomSelect","customSelect","handleInViewport","keyboard","values","keyboradHandler","bindings","unshift","addBinding","evt","tableNode","showTableTools","EDITOR_CHANGE","event","oldRange","SELECTION_CHANGE","startBlot","endBlot","startTableBlot","endTableBlot","USER","resizerSetOuter","resizeLine","pasteTableHandler","listenBalanceCells","classes","classname","customBtn","customBtnText","cellCount","colCount","clipboard","addMatcher","delta","ops","colDelta","hasCol","insert","editorStyle","editorPaddingLeft","paddingLeft","editorPaddingRight","paddingRight","editorInnerWidth","defaultColWidth","splice","id","attrs","concat","op","background","matchCell","compose","retain","selection","resizer","selectDom","selectBlock","r","selectItem","updateSelectBlockItems","childs","childRow","childCol","onSelect","selectCustom","res","createSelectBox","insertTable","innerWidth","labelRect","columns","getSelection","currentBlot","getLeaf","rootStyle","fill","colWidth","floor","memo","updateContents","fixUnusuaDeletelTable","trBlots","tableColIds","cellSpanMap","indexTr","tr","indexTd","indexCol","curCellSpan","tds","curTd","SCROLL_OPTIMIZE","mutations","mutation","td","isDown","baseTd","baseTdParentTr","insertRowIndex","isRight","columnIndex","newColId","colgroup","trs","spanCols","spanCol","shift","nextSpanCols","n","fixTableByRemove","colIdMap","idMap","reverseTrBlots","reverse","removeTr","count","endTrIndex","nextTrIndex","patchTds","nextTr","colspanMap","colspanCount","counts","selectTd","rowCount","baseTr","curTr","updateTableConstants","data"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "quill-table-up",
3
3
  "type": "module",
4
- "version": "1.3.0",
4
+ "version": "1.3.2",
5
5
  "packageManager": "pnpm@9.9.0",
6
6
  "description": "A table module for quill2.x",
7
7
  "author": "zzxming",
@@ -34,6 +34,7 @@
34
34
  "build": "gulp --require @esbuild-kit/cjs-loader",
35
35
  "dev": "gulp --require @esbuild-kit/cjs-loader dev",
36
36
  "test": "vitest",
37
+ "test:ui": "vitest --ui",
37
38
  "test:cover": "vitest --coverage"
38
39
  },
39
40
  "peerDependencies": {