@opentiny/fluent-editor 3.19.4 → 3.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/README.md +99 -99
  2. package/es/attributors/index.es.js +1 -1
  3. package/es/attributors/line-height.es.js.map +1 -1
  4. package/es/config/base64-image.es.js.map +1 -1
  5. package/es/config/editor.config.es.js.map +1 -1
  6. package/es/config/editor.utils.es.js +12 -12
  7. package/es/config/editor.utils.es.js.map +1 -1
  8. package/es/config/i18n/en-us.es.js.map +1 -1
  9. package/es/config/i18n/zh-cn.es.js.map +1 -1
  10. package/es/config/icons.config.es.js +4 -4
  11. package/es/config/icons.config.es.js.map +1 -1
  12. package/es/config/types/index.es.js +2 -2
  13. package/es/config.es.js +1 -1
  14. package/es/config.es.js.map +1 -1
  15. package/es/counter/index.es.js.map +1 -1
  16. package/es/custom-clipboard.es.js +14 -14
  17. package/es/custom-clipboard.es.js.map +1 -1
  18. package/es/custom-image/BlotFormatter.es.js +1 -1
  19. package/es/custom-image/BlotFormatter.es.js.map +1 -1
  20. package/es/custom-image/Options.es.js.map +1 -1
  21. package/es/custom-image/actions/Action.es.js.map +1 -1
  22. package/es/custom-image/actions/CustomResizeAction.es.js +6 -4
  23. package/es/custom-image/actions/CustomResizeAction.es.js.map +1 -1
  24. package/es/custom-image/actions/DeleteAction.es.js.map +1 -1
  25. package/es/custom-image/image.es.js +3 -3
  26. package/es/custom-image/image.es.js.map +1 -1
  27. package/es/custom-image/specs/BlotSpec.es.js.map +1 -1
  28. package/es/custom-image/specs/CustomImageSpec.es.js.map +1 -1
  29. package/es/custom-image/specs/ImageSpec.es.js.map +1 -1
  30. package/es/custom-uploader.es.js +4 -7
  31. package/es/custom-uploader.es.js.map +1 -1
  32. package/es/emoji/emoji-list/people.es.js.map +1 -1
  33. package/es/emoji/emoji-list.es.js.map +1 -1
  34. package/es/emoji/emoji-map.es.js.map +1 -1
  35. package/es/emoji/formats/emoji-blot.es.js +2 -2
  36. package/es/emoji/formats/emoji-blot.es.js.map +1 -1
  37. package/es/emoji/index.es.js.map +1 -1
  38. package/es/emoji/modules/emoji.es.js +7 -7
  39. package/es/emoji/modules/emoji.es.js.map +1 -1
  40. package/es/emoji/modules/toolbar-emoji.es.js +15 -15
  41. package/es/emoji/modules/toolbar-emoji.es.js.map +1 -1
  42. package/es/emoji/utils.es.js.map +1 -1
  43. package/es/file/formats/file.es.js.map +1 -1
  44. package/es/file/index.es.js.map +1 -1
  45. package/es/file/modules/file-bar.es.js +3 -3
  46. package/es/file/modules/file-bar.es.js.map +1 -1
  47. package/es/fluent-editor.es.js +6 -5
  48. package/es/fluent-editor.es.js.map +1 -1
  49. package/es/format-painter/index.es.js.map +1 -1
  50. package/es/global-link/constants.es.js.map +1 -1
  51. package/es/global-link/formats/customer-widget-link.es.js.map +1 -1
  52. package/es/global-link/formats/doc-link.es.js.map +1 -1
  53. package/es/global-link/formats/wiki-link.es.js.map +1 -1
  54. package/es/global-link/formats/work-item-link.es.js.map +1 -1
  55. package/es/global-link/index.es.js +1 -1
  56. package/es/global-link/index.es.js.map +1 -1
  57. package/es/global-link/utils/createTable.es.js.map +1 -1
  58. package/es/link/formats/link.es.js +1 -1
  59. package/es/link/formats/link.es.js.map +1 -1
  60. package/es/link/index.es.js.map +1 -1
  61. package/es/link/modules/tooltip.es.js +3 -3
  62. package/es/link/modules/tooltip.es.js.map +1 -1
  63. package/es/mention/Mention.es.js +7 -12
  64. package/es/mention/Mention.es.js.map +1 -1
  65. package/es/mention/MentionLink.es.js.map +1 -1
  66. package/es/mention/constants.es.js.map +1 -1
  67. package/es/quick-menu/index.es.js +1 -1
  68. package/es/quick-menu/index.es.js.map +1 -1
  69. package/es/screenshot/index.es.js +172 -135
  70. package/es/screenshot/index.es.js.map +1 -1
  71. package/es/soft-break/index.es.js.map +1 -1
  72. package/es/strike/index.es.js.map +1 -1
  73. package/es/syntax/index.es.js.map +1 -1
  74. package/es/table/better-table.es.js +4 -5
  75. package/es/table/better-table.es.js.map +1 -1
  76. package/es/table/formats/header.es.js.map +1 -1
  77. package/es/table/formats/list.es.js +3 -3
  78. package/es/table/formats/list.es.js.map +1 -1
  79. package/es/table/formats/table.es.js +26 -27
  80. package/es/table/formats/table.es.js.map +1 -1
  81. package/es/table/modules/table-column-tool.es.js +8 -8
  82. package/es/table/modules/table-column-tool.es.js.map +1 -1
  83. package/es/table/modules/table-operation-menu.es.js +7 -8
  84. package/es/table/modules/table-operation-menu.es.js.map +1 -1
  85. package/es/table/modules/table-scroll-bar.es.js +1 -1
  86. package/es/table/modules/table-scroll-bar.es.js.map +1 -1
  87. package/es/table/modules/table-selection.es.js +0 -1
  88. package/es/table/modules/table-selection.es.js.map +1 -1
  89. package/es/table/table-config.es.js.map +1 -1
  90. package/es/table/utils/index.es.js.map +1 -1
  91. package/es/table/utils/node-matchers.es.js +14 -14
  92. package/es/table/utils/node-matchers.es.js.map +1 -1
  93. package/es/toolbar/better-picker.es.js.map +1 -1
  94. package/es/toolbar/index.es.js +1 -1
  95. package/es/toolbar/index.es.js.map +1 -1
  96. package/es/utils/debounce.es.js.map +1 -1
  97. package/es/utils/image.es.js +26 -0
  98. package/es/utils/image.es.js.map +1 -0
  99. package/es/utils/method.es.js +2 -2
  100. package/es/utils/method.es.js.map +1 -1
  101. package/es/utils/scroll-lock.es.js +47 -0
  102. package/es/utils/scroll-lock.es.js.map +1 -0
  103. package/es/video/index.es.js +6 -3
  104. package/es/video/index.es.js.map +1 -1
  105. package/lib/attributors/index.cjs.js +2 -2
  106. package/lib/attributors/line-height.cjs.js.map +1 -1
  107. package/lib/config/base64-image.cjs.js.map +1 -1
  108. package/lib/config/editor.config.cjs.js.map +1 -1
  109. package/lib/config/editor.utils.cjs.js +12 -12
  110. package/lib/config/editor.utils.cjs.js.map +1 -1
  111. package/lib/config/i18n/en-us.cjs.js.map +1 -1
  112. package/lib/config/i18n/zh-cn.cjs.js.map +1 -1
  113. package/lib/config/icons.config.cjs.js +4 -4
  114. package/lib/config/icons.config.cjs.js.map +1 -1
  115. package/lib/config/types/index.cjs.js +2 -2
  116. package/lib/config.cjs.js +1 -1
  117. package/lib/config.cjs.js.map +1 -1
  118. package/lib/counter/index.cjs.js.map +1 -1
  119. package/lib/custom-clipboard.cjs.js +14 -14
  120. package/lib/custom-clipboard.cjs.js.map +1 -1
  121. package/lib/custom-image/BlotFormatter.cjs.js +1 -1
  122. package/lib/custom-image/BlotFormatter.cjs.js.map +1 -1
  123. package/lib/custom-image/Options.cjs.js.map +1 -1
  124. package/lib/custom-image/actions/Action.cjs.js.map +1 -1
  125. package/lib/custom-image/actions/CustomResizeAction.cjs.js +6 -4
  126. package/lib/custom-image/actions/CustomResizeAction.cjs.js.map +1 -1
  127. package/lib/custom-image/actions/DeleteAction.cjs.js.map +1 -1
  128. package/lib/custom-image/image.cjs.js +3 -3
  129. package/lib/custom-image/image.cjs.js.map +1 -1
  130. package/lib/custom-image/specs/BlotSpec.cjs.js.map +1 -1
  131. package/lib/custom-image/specs/CustomImageSpec.cjs.js.map +1 -1
  132. package/lib/custom-image/specs/ImageSpec.cjs.js.map +1 -1
  133. package/lib/custom-uploader.cjs.js +4 -7
  134. package/lib/custom-uploader.cjs.js.map +1 -1
  135. package/lib/emoji/emoji-list/people.cjs.js.map +1 -1
  136. package/lib/emoji/emoji-list.cjs.js.map +1 -1
  137. package/lib/emoji/emoji-map.cjs.js.map +1 -1
  138. package/lib/emoji/formats/emoji-blot.cjs.js +2 -2
  139. package/lib/emoji/formats/emoji-blot.cjs.js.map +1 -1
  140. package/lib/emoji/index.cjs.js.map +1 -1
  141. package/lib/emoji/modules/emoji.cjs.js +7 -7
  142. package/lib/emoji/modules/emoji.cjs.js.map +1 -1
  143. package/lib/emoji/modules/toolbar-emoji.cjs.js +15 -15
  144. package/lib/emoji/modules/toolbar-emoji.cjs.js.map +1 -1
  145. package/lib/emoji/utils.cjs.js.map +1 -1
  146. package/lib/file/formats/file.cjs.js.map +1 -1
  147. package/lib/file/index.cjs.js.map +1 -1
  148. package/lib/file/modules/file-bar.cjs.js +3 -3
  149. package/lib/file/modules/file-bar.cjs.js.map +1 -1
  150. package/lib/fluent-editor.cjs.js +25 -24
  151. package/lib/fluent-editor.cjs.js.map +1 -1
  152. package/lib/format-painter/index.cjs.js.map +1 -1
  153. package/lib/global-link/constants.cjs.js.map +1 -1
  154. package/lib/global-link/formats/customer-widget-link.cjs.js.map +1 -1
  155. package/lib/global-link/formats/doc-link.cjs.js.map +1 -1
  156. package/lib/global-link/formats/wiki-link.cjs.js.map +1 -1
  157. package/lib/global-link/formats/work-item-link.cjs.js.map +1 -1
  158. package/lib/global-link/index.cjs.js +1 -1
  159. package/lib/global-link/index.cjs.js.map +1 -1
  160. package/lib/global-link/utils/createTable.cjs.js.map +1 -1
  161. package/lib/link/formats/link.cjs.js +1 -1
  162. package/lib/link/formats/link.cjs.js.map +1 -1
  163. package/lib/link/index.cjs.js.map +1 -1
  164. package/lib/link/modules/tooltip.cjs.js +3 -3
  165. package/lib/link/modules/tooltip.cjs.js.map +1 -1
  166. package/lib/mention/Mention.cjs.js +7 -12
  167. package/lib/mention/Mention.cjs.js.map +1 -1
  168. package/lib/mention/MentionLink.cjs.js.map +1 -1
  169. package/lib/mention/constants.cjs.js.map +1 -1
  170. package/lib/quick-menu/index.cjs.js +1 -1
  171. package/lib/quick-menu/index.cjs.js.map +1 -1
  172. package/lib/screenshot/index.cjs.js +173 -136
  173. package/lib/screenshot/index.cjs.js.map +1 -1
  174. package/lib/soft-break/index.cjs.js.map +1 -1
  175. package/lib/strike/index.cjs.js.map +1 -1
  176. package/lib/syntax/index.cjs.js.map +1 -1
  177. package/lib/table/better-table.cjs.js +4 -5
  178. package/lib/table/better-table.cjs.js.map +1 -1
  179. package/lib/table/formats/header.cjs.js.map +1 -1
  180. package/lib/table/formats/list.cjs.js +3 -3
  181. package/lib/table/formats/list.cjs.js.map +1 -1
  182. package/lib/table/formats/table.cjs.js +26 -27
  183. package/lib/table/formats/table.cjs.js.map +1 -1
  184. package/lib/table/modules/table-column-tool.cjs.js +8 -8
  185. package/lib/table/modules/table-column-tool.cjs.js.map +1 -1
  186. package/lib/table/modules/table-operation-menu.cjs.js +7 -8
  187. package/lib/table/modules/table-operation-menu.cjs.js.map +1 -1
  188. package/lib/table/modules/table-scroll-bar.cjs.js +1 -1
  189. package/lib/table/modules/table-scroll-bar.cjs.js.map +1 -1
  190. package/lib/table/modules/table-selection.cjs.js +0 -1
  191. package/lib/table/modules/table-selection.cjs.js.map +1 -1
  192. package/lib/table/table-config.cjs.js.map +1 -1
  193. package/lib/table/utils/index.cjs.js.map +1 -1
  194. package/lib/table/utils/node-matchers.cjs.js +14 -14
  195. package/lib/table/utils/node-matchers.cjs.js.map +1 -1
  196. package/lib/toolbar/better-picker.cjs.js.map +1 -1
  197. package/lib/toolbar/index.cjs.js +1 -1
  198. package/lib/toolbar/index.cjs.js.map +1 -1
  199. package/lib/utils/debounce.cjs.js.map +1 -1
  200. package/lib/utils/image.cjs.js +26 -0
  201. package/lib/utils/image.cjs.js.map +1 -0
  202. package/lib/utils/method.cjs.js +2 -2
  203. package/lib/utils/method.cjs.js.map +1 -1
  204. package/lib/utils/scroll-lock.cjs.js +47 -0
  205. package/lib/utils/scroll-lock.cjs.js.map +1 -0
  206. package/lib/video/index.cjs.js +6 -3
  207. package/lib/video/index.cjs.js.map +1 -1
  208. package/package.json +61 -55
  209. package/{style.css → theme/style.css} +100 -14
  210. package/es/types/vue.d.es.js +0 -2
  211. package/es/types/vue.d.es.js.map +0 -1
  212. package/lib/types/vue.d.cjs.js +0 -2
  213. package/lib/types/vue.d.cjs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"header.cjs.js","sources":["../../../../src/table/formats/header.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { isNullOrUndefined } from '../../config/editor.utils'\r\nimport { CELL_ATTRIBUTES, CELL_IDENTITY_KEYS } from '../table-config'\r\n\r\nconst Block = Quill.imports['blots/block']\r\n\r\n// @dynamic\r\nclass Header extends Block {\r\n static tagName: any\r\n static blotName: string\r\n domNode: any\r\n replaceWith: any\r\n parent: any\r\n wrap: any\r\n enforceAllowedChildren: any\r\n uiNode: any\r\n children: any\r\n statics: any\r\n appendChild: any\r\n remove: any\r\n cache: Record<string, any>\r\n scroll: any\r\n static create(value) {\r\n if (typeof value === 'string') {\r\n value = { value }\r\n }\r\n\r\n const node = super.create(value.value)\r\n\r\n CELL_IDENTITY_KEYS.forEach((key) => {\r\n if (value[key]) {\r\n node.setAttribute(`data-${key}`, value[key])\r\n }\r\n })\r\n\r\n CELL_ATTRIBUTES.forEach((key) => {\r\n if (value[key]) {\r\n node.setAttribute(`data-${key}`, value[key])\r\n }\r\n })\r\n\r\n return node\r\n }\r\n\r\n static formats(domNode) {\r\n const formats: any = {}\r\n formats.value = this.tagName.indexOf(domNode.tagName) + 1\r\n\r\n return CELL_ATTRIBUTES.concat(CELL_IDENTITY_KEYS).reduce((tableFormats, attribute) => {\r\n if (domNode.hasAttribute(`data-${attribute}`)) {\r\n tableFormats[attribute] = domNode.getAttribute(`data-${attribute}`) || undefined\r\n }\r\n return tableFormats\r\n }, formats)\r\n }\r\n\r\n format(name, value) {\r\n // fix: 在标题处粘贴内容,会导致该粘贴内容的格式错误\r\n if (Object.prototype.toString.call(value) === '[object Object]') {\r\n value = value.value\r\n }\r\n const headerDom: any = Header.formats(this.domNode)\r\n const { row, cell, rowspan, colspan } = headerDom\r\n if (name === Header.blotName) {\r\n if (value) {\r\n super.format(name, {\r\n value,\r\n row,\r\n cell,\r\n rowspan,\r\n colspan,\r\n })\r\n }\r\n else {\r\n if (row) {\r\n this.replaceWith('table-cell-line', {\r\n row,\r\n cell,\r\n rowspan,\r\n colspan,\r\n })\r\n }\r\n else {\r\n super.format(name, value)\r\n }\r\n }\r\n }\r\n else {\r\n super.format(name, value)\r\n }\r\n }\r\n\r\n optimize(_context) {\r\n const { row, cell, rowspan, colspan } = Header.formats(this.domNode)\r\n\r\n if (row && this.parent.statics.blotName !== 'table') {\r\n this.wrap('table', {\r\n row,\r\n cell,\r\n colspan,\r\n rowspan,\r\n })\r\n }\r\n\r\n // ShadowBlot optimize\r\n this.enforceAllowedChildren()\r\n if (!isNullOrUndefined(this.uiNode) && this.uiNode !== this.domNode.firstChild) {\r\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild)\r\n }\r\n if (this.children.length === 0) {\r\n if (!isNullOrUndefined(this.statics.defaultChild)) {\r\n const child = this.scroll.create(this.statics.defaultChild.blotName)\r\n this.appendChild(child)\r\n // TODO double check if necessary\r\n // child.optimize(context);\r\n }\r\n else {\r\n this.remove()\r\n }\r\n }\r\n // Block optimize\r\n this.cache = {}\r\n }\r\n}\r\n\r\nHeader.blotName = 'header'\r\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6']\r\n\r\nexport default Header\r\n"],"names":["CELL_IDENTITY_KEYS","CELL_ATTRIBUTES","isNullOrUndefined"],"mappings":";;;;;AAIA,MAAM,QAAQ,MAAM,QAAQ,aAAa;AAGzC,MAAM,eAAe,MAAM;AAAA,EAezB,OAAO,OAAO,OAAO;AACf,QAAA,OAAO,UAAU,UAAU;AAC7B,cAAQ,EAAE;IACZ;AAEA,UAAM,OAAO,MAAM,OAAO,MAAM,KAAK;AAElBA,mCAAA,QAAQ,CAAC,QAAQ;AAC9B,UAAA,MAAM,GAAG,GAAG;AACd,aAAK,aAAa,QAAQ,GAAG,IAAI,MAAM,GAAG,CAAC;AAAA,MAC7C;AAAA,IAAA,CACD;AAEeC,gCAAA,QAAQ,CAAC,QAAQ;AAC3B,UAAA,MAAM,GAAG,GAAG;AACd,aAAK,aAAa,QAAQ,GAAG,IAAI,MAAM,GAAG,CAAC;AAAA,MAC7C;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,EACT;AAAA,EAEA,OAAO,QAAQ,SAAS;AACtB,UAAM,UAAe,CAAA;AACrB,YAAQ,QAAQ,KAAK,QAAQ,QAAQ,QAAQ,OAAO,IAAI;AAExD,WAAOA,YAAAA,gBAAgB,OAAOD,YAAkB,kBAAA,EAAE,OAAO,CAAC,cAAc,cAAc;AACpF,UAAI,QAAQ,aAAa,QAAQ,SAAS,EAAE,GAAG;AAC7C,qBAAa,SAAS,IAAI,QAAQ,aAAa,QAAQ,SAAS,EAAE,KAAK;AAAA,MACzE;AACO,aAAA;AAAA,OACN,OAAO;AAAA,EACZ;AAAA,EAEA,OAAO,MAAM,OAAO;AAElB,QAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,mBAAmB;AAC/D,cAAQ,MAAM;AAAA,IAChB;AACA,UAAM,YAAiB,OAAO,QAAQ,KAAK,OAAO;AAClD,UAAM,EAAE,KAAK,MAAM,SAAS,YAAY;AACpC,QAAA,SAAS,OAAO,UAAU;AAC5B,UAAI,OAAO;AACT,cAAM,OAAO,MAAM;AAAA,UACjB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MAAA,OAEE;AACH,YAAI,KAAK;AACP,eAAK,YAAY,mBAAmB;AAAA,YAClC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA,CACD;AAAA,QAAA,OAEE;AACG,gBAAA,OAAO,MAAM,KAAK;AAAA,QAC1B;AAAA,MACF;AAAA,IAAA,OAEG;AACG,YAAA,OAAO,MAAM,KAAK;AAAA,IAC1B;AAAA,EACF;AAAA,EAEA,SAAS,UAAU;AACX,UAAA,EAAE,KAAK,MAAM,SAAS,YAAY,OAAO,QAAQ,KAAK,OAAO;AAEnE,QAAI,OAAO,KAAK,OAAO,QAAQ,aAAa,SAAS;AACnD,WAAK,KAAK,SAAS;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAGA,SAAK,uBAAuB;AACxB,QAAA,CAACE,aAAAA,kBAAkB,KAAK,MAAM,KAAK,KAAK,WAAW,KAAK,QAAQ,YAAY;AAC9E,WAAK,QAAQ,aAAa,KAAK,QAAQ,KAAK,QAAQ,UAAU;AAAA,IAChE;AACI,QAAA,KAAK,SAAS,WAAW,GAAG;AAC9B,UAAI,CAACA,aAAAA,kBAAkB,KAAK,QAAQ,YAAY,GAAG;AACjD,cAAM,QAAQ,KAAK,OAAO,OAAO,KAAK,QAAQ,aAAa,QAAQ;AACnE,aAAK,YAAY,KAAK;AAAA,MAAA,OAInB;AACH,aAAK,OAAO;AAAA,MACd;AAAA,IACF;AAEA,SAAK,QAAQ;EACf;AACF;AAEA,OAAO,WAAW;AAClB,OAAO,UAAU,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;;"}
1
+ {"version":3,"file":"header.cjs.js","sources":["../../../../src/table/formats/header.ts"],"sourcesContent":["import Quill from 'quill'\nimport { isNullOrUndefined } from '../../config/editor.utils'\nimport { CELL_ATTRIBUTES, CELL_IDENTITY_KEYS } from '../table-config'\n\nconst Block = Quill.imports['blots/block']\n\n// @dynamic\nclass Header extends Block {\n static tagName: any\n static blotName: string\n domNode: any\n replaceWith: any\n parent: any\n wrap: any\n enforceAllowedChildren: any\n uiNode: any\n children: any\n statics: any\n appendChild: any\n remove: any\n cache: Record<string, any>\n scroll: any\n static create(value) {\n if (typeof value === 'string') {\n value = { value }\n }\n\n const node = super.create(value.value)\n\n CELL_IDENTITY_KEYS.forEach((key) => {\n if (value[key]) {\n node.setAttribute(`data-${key}`, value[key])\n }\n })\n\n CELL_ATTRIBUTES.forEach((key) => {\n if (value[key]) {\n node.setAttribute(`data-${key}`, value[key])\n }\n })\n\n return node\n }\n\n static formats(domNode) {\n const formats: any = {}\n formats.value = this.tagName.indexOf(domNode.tagName) + 1\n\n return CELL_ATTRIBUTES.concat(CELL_IDENTITY_KEYS).reduce((tableFormats, attribute) => {\n if (domNode.hasAttribute(`data-${attribute}`)) {\n tableFormats[attribute] = domNode.getAttribute(`data-${attribute}`) || undefined\n }\n return tableFormats\n }, formats)\n }\n\n format(name, value) {\n // fix: 在标题处粘贴内容,会导致该粘贴内容的格式错误\n if (Object.prototype.toString.call(value) === '[object Object]') {\n value = value.value\n }\n const headerDom: any = Header.formats(this.domNode)\n const { row, cell, rowspan, colspan } = headerDom\n if (name === Header.blotName) {\n if (value) {\n super.format(name, {\n value,\n row,\n cell,\n rowspan,\n colspan,\n })\n }\n else {\n if (row) {\n this.replaceWith('table-cell-line', {\n row,\n cell,\n rowspan,\n colspan,\n })\n }\n else {\n super.format(name, value)\n }\n }\n }\n else {\n super.format(name, value)\n }\n }\n\n optimize(_context) {\n const { row, cell, rowspan, colspan } = Header.formats(this.domNode)\n\n if (row && this.parent.statics.blotName !== 'table') {\n this.wrap('table', {\n row,\n cell,\n colspan,\n rowspan,\n })\n }\n\n // ShadowBlot optimize\n this.enforceAllowedChildren()\n if (!isNullOrUndefined(this.uiNode) && this.uiNode !== this.domNode.firstChild) {\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild)\n }\n if (this.children.length === 0) {\n if (!isNullOrUndefined(this.statics.defaultChild)) {\n const child = this.scroll.create(this.statics.defaultChild.blotName)\n this.appendChild(child)\n // TODO double check if necessary\n // child.optimize(context);\n }\n else {\n this.remove()\n }\n }\n // Block optimize\n this.cache = {}\n }\n}\n\nHeader.blotName = 'header'\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6']\n\nexport default Header\n"],"names":["CELL_IDENTITY_KEYS","CELL_ATTRIBUTES","isNullOrUndefined"],"mappings":";;;;;AAIA,MAAM,QAAQ,MAAM,QAAQ,aAAa;AAGzC,MAAM,eAAe,MAAM;AAAA,EAezB,OAAO,OAAO,OAAO;AACf,QAAA,OAAO,UAAU,UAAU;AAC7B,cAAQ,EAAE;IACZ;AAEA,UAAM,OAAO,MAAM,OAAO,MAAM,KAAK;AAElBA,mCAAA,QAAQ,CAAC,QAAQ;AAC9B,UAAA,MAAM,GAAG,GAAG;AACd,aAAK,aAAa,QAAQ,GAAG,IAAI,MAAM,GAAG,CAAC;AAAA,MAC7C;AAAA,IAAA,CACD;AAEeC,gCAAA,QAAQ,CAAC,QAAQ;AAC3B,UAAA,MAAM,GAAG,GAAG;AACd,aAAK,aAAa,QAAQ,GAAG,IAAI,MAAM,GAAG,CAAC;AAAA,MAC7C;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,EACT;AAAA,EAEA,OAAO,QAAQ,SAAS;AACtB,UAAM,UAAe,CAAA;AACrB,YAAQ,QAAQ,KAAK,QAAQ,QAAQ,QAAQ,OAAO,IAAI;AAExD,WAAOA,YAAAA,gBAAgB,OAAOD,YAAkB,kBAAA,EAAE,OAAO,CAAC,cAAc,cAAc;AACpF,UAAI,QAAQ,aAAa,QAAQ,SAAS,EAAE,GAAG;AAC7C,qBAAa,SAAS,IAAI,QAAQ,aAAa,QAAQ,SAAS,EAAE,KAAK;AAAA,MACzE;AACO,aAAA;AAAA,OACN,OAAO;AAAA,EACZ;AAAA,EAEA,OAAO,MAAM,OAAO;AAElB,QAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,mBAAmB;AAC/D,cAAQ,MAAM;AAAA,IAChB;AACA,UAAM,YAAiB,OAAO,QAAQ,KAAK,OAAO;AAClD,UAAM,EAAE,KAAK,MAAM,SAAS,YAAY;AACpC,QAAA,SAAS,OAAO,UAAU;AAC5B,UAAI,OAAO;AACT,cAAM,OAAO,MAAM;AAAA,UACjB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MAAA,OAEE;AACH,YAAI,KAAK;AACP,eAAK,YAAY,mBAAmB;AAAA,YAClC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA,CACD;AAAA,QAAA,OAEE;AACG,gBAAA,OAAO,MAAM,KAAK;AAAA,QAC1B;AAAA,MACF;AAAA,IAAA,OAEG;AACG,YAAA,OAAO,MAAM,KAAK;AAAA,IAC1B;AAAA,EACF;AAAA,EAEA,SAAS,UAAU;AACX,UAAA,EAAE,KAAK,MAAM,SAAS,YAAY,OAAO,QAAQ,KAAK,OAAO;AAEnE,QAAI,OAAO,KAAK,OAAO,QAAQ,aAAa,SAAS;AACnD,WAAK,KAAK,SAAS;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAGA,SAAK,uBAAuB;AACxB,QAAA,CAACE,aAAAA,kBAAkB,KAAK,MAAM,KAAK,KAAK,WAAW,KAAK,QAAQ,YAAY;AAC9E,WAAK,QAAQ,aAAa,KAAK,QAAQ,KAAK,QAAQ,UAAU;AAAA,IAChE;AACI,QAAA,KAAK,SAAS,WAAW,GAAG;AAC9B,UAAI,CAACA,aAAAA,kBAAkB,KAAK,QAAQ,YAAY,GAAG;AACjD,cAAM,QAAQ,KAAK,OAAO,OAAO,KAAK,QAAQ,aAAa,QAAQ;AACnE,aAAK,YAAY,KAAK;AAAA,MAAA,OAInB;AACH,aAAK,OAAO;AAAA,MACd;AAAA,IACF;AAEA,SAAK,QAAQ;EACf;AACF;AAEA,OAAO,WAAW;AAClB,OAAO,UAAU,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;;"}
@@ -106,7 +106,7 @@ class ListItem extends Block {
106
106
  }
107
107
  optimize(context) {
108
108
  const tail = this.prev && this.prev.domNode.lastChild;
109
- if (tail && tail.className && tail.className.indexOf("ql-soft-break") >= 0) {
109
+ if (tail && tail.className && tail.className.includes("ql-soft-break")) {
110
110
  this.domNode.childNodes.forEach((v, i) => {
111
111
  if (i > 0) {
112
112
  this.prev.domNode.appendChild(v);
@@ -131,7 +131,7 @@ class ListItem extends Block {
131
131
  if (data.cell && !parentFormats.cell) {
132
132
  [...tableConfig.CELL_IDENTITY_KEYS, ...tableConfig.CELL_ATTRIBUTES].forEach((key) => (formats[key] || data[key]) && this.parent.domNode.setAttribute(`data-${key}`, formats[key] || data[key]));
133
133
  if (this.parent.parent.statics.blotName !== "table") {
134
- delete formats["list"];
134
+ delete formats.list;
135
135
  this.wrap("table", formats);
136
136
  }
137
137
  }
@@ -149,7 +149,7 @@ ListItem.requiredContainer = ListContainer;
149
149
  function getFormats(dom) {
150
150
  const formats = {};
151
151
  if (dom.tagName === "OL") {
152
- formats["list"] = dom.classList.item(0);
152
+ formats.list = dom.classList.item(0);
153
153
  }
154
154
  return [...tableConfig.CELL_ATTRIBUTES, ...tableConfig.CELL_IDENTITY_KEYS].reduce((tableFormats, attribute) => {
155
155
  if (dom.hasAttribute(`data-${attribute}`)) {
@@ -1 +1 @@
1
- {"version":3,"file":"list.cjs.js","sources":["../../../../src/table/formats/list.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { CELL_ATTRIBUTES, CELL_IDENTITY_KEYS } from '../table-config'\r\n\r\nconst Block = Quill.imports['blots/block']\r\nconst Container = Quill.imports['blots/container']\r\n\r\n// @dynamic\r\nclass ListContainer extends Container {\r\n static allowedChildren: any\r\n static blotName: string\r\n static tagName: string\r\n replaceWith: any\r\n domNode: any\r\n parent: any\r\n statics: any\r\n wrap: any\r\n\r\n format(name, value) {\r\n const { row, cell, rowspan, colspan } = this.domNode.dataset\r\n if (name === ListContainer.blotName) {\r\n if (value) {\r\n super.format(name, { row, cell, rowspan, colspan })\r\n }\r\n else if (row) {\r\n this.replaceWith('table-cell-line', { row, cell, rowspan, colspan })\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * bugfix: quill源码中(quill/core/editor.js 272行)在处理拷贝时\r\n * hard code了这个blotName用于处理ol中的li。所以在quill\r\n * 源码内写法不变的情况下这个名字不能改,否则拷贝有bug\r\n */\r\nListContainer.blotName = 'list-container'\r\nListContainer.tagName = 'OL'\r\n\r\n// @dynamic\r\nclass ListItem extends Block {\r\n static blotName: string\r\n static tagName: string\r\n static requiredContainer: typeof ListContainer\r\n statics: any\r\n attachUI: any\r\n domNode: any\r\n replaceWith: any\r\n parent: any\r\n wrap: any\r\n children: any\r\n prev: any\r\n remove: () => void\r\n\r\n static create(value) {\r\n const node = super.create()\r\n if (typeof value === 'string') {\r\n value = { value }\r\n }\r\n else {\r\n [...CELL_IDENTITY_KEYS, ...CELL_ATTRIBUTES].forEach((key) => {\r\n if (value[key]) {\r\n node.dataset[key] = value[key]\r\n }\r\n })\r\n }\r\n node.classList.add(value.value)\r\n return node\r\n }\r\n\r\n static formats(domNode) {\r\n const formats: any = {}\r\n formats.value = domNode.classList.item(0) || undefined\r\n\r\n return [...CELL_ATTRIBUTES, ...CELL_IDENTITY_KEYS].reduce((tableFormats, key) => {\r\n if (domNode.dataset[key]) {\r\n tableFormats[key] = domNode.dataset[key]\r\n }\r\n return tableFormats\r\n }, formats)\r\n }\r\n\r\n static register() {\r\n Quill.register({ 'formats/list-container': ListContainer }, true)\r\n }\r\n\r\n constructor(scroll, domNode) {\r\n super(scroll, domNode)\r\n const quill = Quill.find(scroll.domNode.parentNode)\r\n const range = quill.getSelection()\r\n if (range) {\r\n const [line] = quill.getLine(range.index)\r\n const td = line.domNode.closest('td')\r\n if (td) {\r\n [...CELL_IDENTITY_KEYS, ...CELL_ATTRIBUTES].forEach(key =>\r\n td.dataset[key] && domNode.setAttribute(`data-${key}`, td.dataset[key]))\r\n }\r\n }\r\n\r\n const ui = domNode.ownerDocument.createElement('span')\r\n const listEventHandler = (e) => {\r\n if (!scroll.isEnabled()) return\r\n const { value } = this.statics.formats(domNode, scroll)\r\n if (value === 'checked') {\r\n this.format('list', 'unchecked')\r\n e.preventDefault()\r\n }\r\n else if (value === 'unchecked') {\r\n this.format('list', 'checked')\r\n e.preventDefault()\r\n }\r\n }\r\n ui.addEventListener('mousedown', listEventHandler)\r\n ui.addEventListener('touchstart', listEventHandler)\r\n this.attachUI(ui)\r\n }\r\n\r\n format(name, value) {\r\n if (name !== ListItem.blotName) {\r\n super.format(name, value)\r\n return\r\n }\r\n const type = (value && typeof value === 'object') ? value.value : value\r\n const oldClass = this.domNode.classList[0]\r\n const tdDom = this.domNode.closest('.editing-select-able')\r\n const tableCellBlot = tdDom && Quill.find(tdDom)\r\n const images = this.domNode.querySelectorAll('img[data-image-id]')\r\n if (!type || type === oldClass) {\r\n // 消除格式或相同list抵消格式时恢复图片对齐,li转化为table-cell-line\r\n if (images && images.length) {\r\n images.forEach((img) => {\r\n img.style.verticalAlign = 'baseLine'\r\n })\r\n }\r\n if (tableCellBlot && tableCellBlot.statics.blotName === 'table') {\r\n const tableCellFormats = tableCellBlot.formats()\r\n this.replaceWith('table-cell-line', tableCellFormats)\r\n // fix: 移除list格式时移除父级的ol或ul,避免table-cell-line判断无td自动生成td容器\r\n if (this.parent.statics.blotName === ListContainer.blotName) {\r\n this.parent.unwrap()\r\n }\r\n }\r\n else {\r\n super.format(name, value)\r\n }\r\n }\r\n else if (oldClass) {\r\n this.domNode.className = this.domNode.className.replace(oldClass, type)\r\n }\r\n else {\r\n this.domNode.classList.add(type)\r\n }\r\n }\r\n\r\n optimize(context) {\r\n // 判断前一个li是否包含软回车,如果包含则将当前li与之合并后移除\r\n const tail = this.prev && this.prev.domNode.lastChild\r\n if (tail && tail.className && tail.className.indexOf('ql-soft-break') >= 0) {\r\n // 合并dom\r\n this.domNode.childNodes.forEach((v, i) => {\r\n if (i > 0) {\r\n this.prev.domNode.appendChild(v)\r\n }\r\n })\r\n this.remove()\r\n return\r\n }\r\n\r\n super.optimize(context)\r\n\r\n // list类型\r\n const parentFormats = getFormats(this.parent.domNode)\r\n const formats = ListItem.formats(this.domNode)\r\n // 单元格属性\r\n const data = this.domNode.dataset || []\r\n const images = this.domNode.querySelectorAll('img[data-image-id]')\r\n\r\n // li更新后判断父容器的对应属性是否与自身一致,如果不一致则向上覆盖\r\n if (parentFormats.list !== formats.value) {\r\n const oldClass = this.parent.domNode.classList[0]\r\n if (oldClass) {\r\n this.parent.domNode.className = this.parent.domNode.className.replace(oldClass, formats.value)\r\n }\r\n else {\r\n this.parent.domNode.classList.add(formats.value)\r\n }\r\n }\r\n\r\n if (data.cell && !parentFormats.cell) {\r\n [...CELL_IDENTITY_KEYS, ...CELL_ATTRIBUTES].forEach(key =>\r\n (formats[key] || data[key]) && this.parent.domNode.setAttribute(`data-${key}`, formats[key] || data[key]))\r\n // 如果父容器不在表格内则用单元格包裹\r\n if (this.parent.parent.statics.blotName !== 'table') {\r\n delete formats['list']\r\n this.wrap('table', formats)\r\n }\r\n }\r\n\r\n // 当list中包含图片时,设置图片顶对齐\r\n if (images) {\r\n images.forEach((img) => {\r\n img.style.verticalAlign = 'top'\r\n })\r\n }\r\n }\r\n}\r\n\r\nListItem.blotName = 'list'\r\nListItem.tagName = 'LI'\r\n\r\nListContainer.allowedChildren = [ListItem]\r\nListItem.requiredContainer = ListContainer\r\n\r\n// 属性读取方法:兼容table-cell-line、ol、li\r\n// 因为构造时当前range对应的元素最开始是table-cell-line,然后是li,且ol的formats方法不允许覆写,会导致报错,所以整合一个兼容方法来读取需要的属性。\r\nfunction getFormats(dom): any {\r\n const formats = {}\r\n\r\n if (dom.tagName === 'OL') {\r\n formats['list'] = dom.classList.item(0)\r\n }\r\n\r\n return [...CELL_ATTRIBUTES, ...CELL_IDENTITY_KEYS].reduce((tableFormats, attribute) => {\r\n if (dom.hasAttribute(`data-${attribute}`)) {\r\n tableFormats[attribute] = dom.getAttribute(`data-${attribute}`) || undefined\r\n }\r\n return tableFormats\r\n }, formats)\r\n}\r\n\r\nexport { ListContainer, ListItem as default }\r\n"],"names":["CELL_IDENTITY_KEYS","CELL_ATTRIBUTES"],"mappings":"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"}
1
+ {"version":3,"file":"list.cjs.js","sources":["../../../../src/table/formats/list.ts"],"sourcesContent":["import Quill from 'quill'\nimport { CELL_ATTRIBUTES, CELL_IDENTITY_KEYS } from '../table-config'\n\nconst Block = Quill.imports['blots/block']\nconst Container = Quill.imports['blots/container']\n\n// @dynamic\nclass ListContainer extends Container {\n static allowedChildren: any\n static blotName: string\n static tagName: string\n replaceWith: any\n domNode: any\n parent: any\n statics: any\n wrap: any\n\n format(name, value) {\n const { row, cell, rowspan, colspan } = this.domNode.dataset\n if (name === ListContainer.blotName) {\n if (value) {\n super.format(name, { row, cell, rowspan, colspan })\n }\n else if (row) {\n this.replaceWith('table-cell-line', { row, cell, rowspan, colspan })\n }\n }\n }\n}\n/**\n * bugfix: quill源码中(quill/core/editor.js 272行)在处理拷贝时\n * hard code了这个blotName用于处理ol中的li。所以在quill\n * 源码内写法不变的情况下这个名字不能改,否则拷贝有bug\n */\nListContainer.blotName = 'list-container'\nListContainer.tagName = 'OL'\n\n// @dynamic\nclass ListItem extends Block {\n static blotName: string\n static tagName: string\n static requiredContainer: typeof ListContainer\n statics: any\n attachUI: any\n domNode: any\n replaceWith: any\n parent: any\n wrap: any\n children: any\n prev: any\n remove: () => void\n\n static create(value) {\n const node = super.create()\n if (typeof value === 'string') {\n value = { value }\n }\n else {\n [...CELL_IDENTITY_KEYS, ...CELL_ATTRIBUTES].forEach((key) => {\n if (value[key]) {\n node.dataset[key] = value[key]\n }\n })\n }\n node.classList.add(value.value)\n return node\n }\n\n static formats(domNode) {\n const formats: any = {}\n formats.value = domNode.classList.item(0) || undefined\n\n return [...CELL_ATTRIBUTES, ...CELL_IDENTITY_KEYS].reduce((tableFormats, key) => {\n if (domNode.dataset[key]) {\n tableFormats[key] = domNode.dataset[key]\n }\n return tableFormats\n }, formats)\n }\n\n static register() {\n Quill.register({ 'formats/list-container': ListContainer }, true)\n }\n\n constructor(scroll, domNode) {\n super(scroll, domNode)\n const quill = Quill.find(scroll.domNode.parentNode)\n const range = quill.getSelection()\n if (range) {\n const [line] = quill.getLine(range.index)\n const td = line.domNode.closest('td')\n if (td) {\n [...CELL_IDENTITY_KEYS, ...CELL_ATTRIBUTES].forEach(key =>\n td.dataset[key] && domNode.setAttribute(`data-${key}`, td.dataset[key]))\n }\n }\n\n const ui = domNode.ownerDocument.createElement('span')\n const listEventHandler = (e) => {\n if (!scroll.isEnabled()) return\n const { value } = this.statics.formats(domNode, scroll)\n if (value === 'checked') {\n this.format('list', 'unchecked')\n e.preventDefault()\n }\n else if (value === 'unchecked') {\n this.format('list', 'checked')\n e.preventDefault()\n }\n }\n ui.addEventListener('mousedown', listEventHandler)\n ui.addEventListener('touchstart', listEventHandler)\n this.attachUI(ui)\n }\n\n format(name, value) {\n if (name !== ListItem.blotName) {\n super.format(name, value)\n return\n }\n const type = (value && typeof value === 'object') ? value.value : value\n const oldClass = this.domNode.classList[0]\n const tdDom = this.domNode.closest('.editing-select-able')\n const tableCellBlot = tdDom && Quill.find(tdDom)\n const images = this.domNode.querySelectorAll('img[data-image-id]')\n if (!type || type === oldClass) {\n // 消除格式或相同list抵消格式时恢复图片对齐,li转化为table-cell-line\n if (images && images.length) {\n images.forEach((img) => {\n img.style.verticalAlign = 'baseLine'\n })\n }\n if (tableCellBlot && tableCellBlot.statics.blotName === 'table') {\n const tableCellFormats = tableCellBlot.formats()\n this.replaceWith('table-cell-line', tableCellFormats)\n // fix: 移除list格式时移除父级的ol或ul,避免table-cell-line判断无td自动生成td容器\n if (this.parent.statics.blotName === ListContainer.blotName) {\n this.parent.unwrap()\n }\n }\n else {\n super.format(name, value)\n }\n }\n else if (oldClass) {\n this.domNode.className = this.domNode.className.replace(oldClass, type)\n }\n else {\n this.domNode.classList.add(type)\n }\n }\n\n optimize(context) {\n // 判断前一个li是否包含软回车,如果包含则将当前li与之合并后移除\n const tail = this.prev && this.prev.domNode.lastChild\n if (tail && tail.className && tail.className.includes('ql-soft-break')) {\n // 合并dom\n this.domNode.childNodes.forEach((v, i) => {\n if (i > 0) {\n this.prev.domNode.appendChild(v)\n }\n })\n this.remove()\n return\n }\n\n super.optimize(context)\n\n // list类型\n const parentFormats = getFormats(this.parent.domNode)\n const formats = ListItem.formats(this.domNode)\n // 单元格属性\n const data = this.domNode.dataset || []\n const images = this.domNode.querySelectorAll('img[data-image-id]')\n\n // li更新后判断父容器的对应属性是否与自身一致,如果不一致则向上覆盖\n if (parentFormats.list !== formats.value) {\n const oldClass = this.parent.domNode.classList[0]\n if (oldClass) {\n this.parent.domNode.className = this.parent.domNode.className.replace(oldClass, formats.value)\n }\n else {\n this.parent.domNode.classList.add(formats.value)\n }\n }\n\n if (data.cell && !parentFormats.cell) {\n [...CELL_IDENTITY_KEYS, ...CELL_ATTRIBUTES].forEach(key =>\n (formats[key] || data[key]) && this.parent.domNode.setAttribute(`data-${key}`, formats[key] || data[key]))\n // 如果父容器不在表格内则用单元格包裹\n if (this.parent.parent.statics.blotName !== 'table') {\n delete formats.list\n this.wrap('table', formats)\n }\n }\n\n // 当list中包含图片时,设置图片顶对齐\n if (images) {\n images.forEach((img) => {\n img.style.verticalAlign = 'top'\n })\n }\n }\n}\n\nListItem.blotName = 'list'\nListItem.tagName = 'LI'\n\nListContainer.allowedChildren = [ListItem]\nListItem.requiredContainer = ListContainer\n\n// 属性读取方法:兼容table-cell-line、ol、li\n// 因为构造时当前range对应的元素最开始是table-cell-line,然后是li,且ol的formats方法不允许覆写,会导致报错,所以整合一个兼容方法来读取需要的属性。\nfunction getFormats(dom): any {\n const formats = {}\n\n if (dom.tagName === 'OL') {\n formats.list = dom.classList.item(0)\n }\n\n return [...CELL_ATTRIBUTES, ...CELL_IDENTITY_KEYS].reduce((tableFormats, attribute) => {\n if (dom.hasAttribute(`data-${attribute}`)) {\n tableFormats[attribute] = dom.getAttribute(`data-${attribute}`) || undefined\n }\n return tableFormats\n }, formats)\n}\n\nexport { ListContainer, ListItem as default }\n"],"names":["CELL_IDENTITY_KEYS","CELL_ATTRIBUTES"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const Quill = require("quill");
4
- const method = require("../../utils/method.cjs.js");
5
4
  const editor_utils = require("../../config/editor.utils.cjs.js");
5
+ const method = require("../../utils/method.cjs.js");
6
6
  const tableConfig = require("../table-config.cjs.js");
7
7
  const index = require("../utils/index.cjs.js");
8
8
  const header = require("./header.cjs.js");
@@ -32,8 +32,8 @@ class TableCellLine extends Block {
32
32
  }
33
33
  static formats(domNode) {
34
34
  const formats = {};
35
- if (formats["list"]) {
36
- formats["list"] = domNode.classList.item(0);
35
+ if (formats.list) {
36
+ formats.list = domNode.classList.item(0);
37
37
  }
38
38
  return reduceFormats(domNode, formats);
39
39
  }
@@ -58,7 +58,7 @@ class TableCellLine extends Block {
58
58
  });
59
59
  }
60
60
  format(name, value) {
61
- if ([...tableConfig.CELL_ATTRIBUTES, ...tableConfig.CELL_IDENTITY_KEYS, "parent-bg"].indexOf(name) > -1) {
61
+ if ([...tableConfig.CELL_ATTRIBUTES, ...tableConfig.CELL_IDENTITY_KEYS, "parent-bg"].includes(name)) {
62
62
  if (value) {
63
63
  this.domNode.setAttribute(`data-${name}`, value);
64
64
  } else {
@@ -167,10 +167,10 @@ class TableCell extends Container {
167
167
  formats() {
168
168
  const formats = {};
169
169
  if (this.domNode.hasAttribute("data-row")) {
170
- formats["row"] = this.domNode.getAttribute("data-row");
170
+ formats.row = this.domNode.getAttribute("data-row");
171
171
  }
172
172
  if (this.domNode.hasAttribute("data-cell")) {
173
- formats["cell"] = this.domNode.getAttribute("data-cell");
173
+ formats.cell = this.domNode.getAttribute("data-cell");
174
174
  }
175
175
  return tableConfig.CELL_ATTRIBUTES.reduce((tableFormats, attribute) => {
176
176
  if (this.domNode.hasAttribute(attribute)) {
@@ -191,7 +191,8 @@ class TableCell extends Container {
191
191
  child.format(name, value);
192
192
  });
193
193
  }
194
- /** this method is for TableCellLine to change cell background color
194
+ /**
195
+ * this method is for TableCellLine to change cell background color
195
196
  * if use `format('cell-bg', value)` will loop trigger
196
197
  * TableCellLine.optimize -> TableCell.format -> TableCellLine.optimize ...
197
198
  */
@@ -205,10 +206,10 @@ class TableCell extends Container {
205
206
  format(name, value) {
206
207
  const quill = Quill.find(this.scroll.domNode.parentNode);
207
208
  switch (true) {
208
- case tableConfig.CELL_ATTRIBUTES.indexOf(name) > -1:
209
+ case tableConfig.CELL_ATTRIBUTES.includes(name):
209
210
  this.toggleAttribute(name, value);
210
211
  break;
211
- case ["row", "cell"].indexOf(name) > -1:
212
+ case ["row", "cell"].includes(name):
212
213
  this.toggleAttribute(`data-${name}`, value);
213
214
  break;
214
215
  case name === "background": {
@@ -226,12 +227,14 @@ class TableCell extends Container {
226
227
  quill.setSelection(start, length, Quill.sources.USER);
227
228
  quill.format(name, value, Quill.sources.USER);
228
229
  quill.setSelection(start);
230
+ break;
229
231
  }
230
232
  case name === "cell-bg": {
231
233
  this.toggleAttribute("data-cell-bg", value);
232
234
  this.toggleAttribute("data-parent-bg", value);
233
235
  this.formatChildren(name, value);
234
236
  this.setCellBg(value);
237
+ break;
235
238
  }
236
239
  }
237
240
  }
@@ -272,7 +275,7 @@ class TableCell extends Container {
272
275
  const formats = {};
273
276
  const firstChild = domNode.childNodes[0];
274
277
  if (firstChild && domNode.tagName === "OL") {
275
- formats["list"] = firstChild.classList.item(0);
278
+ formats.list = firstChild.classList.item(0);
276
279
  }
277
280
  return reduceFormats(domNode, formats);
278
281
  }
@@ -375,7 +378,7 @@ class TableCol extends Block {
375
378
  }, {});
376
379
  }
377
380
  format(name, value) {
378
- if (tableConfig.COL_ATTRIBUTES.indexOf(name) > -1) {
381
+ if (tableConfig.COL_ATTRIBUTES.includes(name)) {
379
382
  this.domNode.setAttribute(`${name}`, value || tableConfig.COL_DEFAULT[name]);
380
383
  } else {
381
384
  super.format(name, value);
@@ -473,7 +476,7 @@ class TableContainer extends Container {
473
476
  const tableCol = col.formats()[TableCol.blotName];
474
477
  let tableColWidth = tableConfig.COL_DEFAULT.width;
475
478
  if (tableCol && tableCol.width) {
476
- tableColWidth = parseInt(tableCol.width, 10);
479
+ tableColWidth = Number.parseInt(tableCol.width, 10);
477
480
  }
478
481
  sumWidth = sumWidth + tableColWidth;
479
482
  return sumWidth;
@@ -495,8 +498,8 @@ class TableContainer extends Container {
495
498
  }
496
499
  colGroup.children.forEach((col) => {
497
500
  if (maxTds && col.domNode.width === "auto") {
498
- const width = getComputedStyle(maxTds[tdIndex])["width"];
499
- const num = parseInt(width, 10);
501
+ const width = getComputedStyle(maxTds[tdIndex]).width;
502
+ const num = Number.parseInt(width, 10);
500
503
  col.domNode.width = num < tableConfig.COL_DEFAULT.width && tableConfig.COL_DEFAULT.width || num;
501
504
  }
502
505
  tdIndex++;
@@ -542,7 +545,7 @@ class TableContainer extends Container {
542
545
  cell.remove();
543
546
  });
544
547
  modifiedCells.forEach((cell) => {
545
- const cellColspan = parseInt(cell.formats().colspan, 10);
548
+ const cellColspan = Number.parseInt(cell.formats().colspan, 10);
546
549
  cell.format("colspan", cellColspan - delIndexes.length);
547
550
  });
548
551
  this.updateTableWidth();
@@ -598,7 +601,7 @@ class TableContainer extends Container {
598
601
  });
599
602
  });
600
603
  modifiedCells.forEach((cell) => {
601
- const cellRowspan = parseInt(cell.formats().rowspan, 10);
604
+ const cellRowspan = Number.parseInt(cell.formats().rowspan, 10);
602
605
  const curRowspan = cellRowspan - removedRowsLength;
603
606
  cell.domNode.removeAttribute("style");
604
607
  cell.format("rowspan", curRowspan);
@@ -676,11 +679,7 @@ class TableContainer extends Container {
676
679
  const cellFormats = cell.formats();
677
680
  const tableCell = this.scroll.create(
678
681
  TableCell.blotName,
679
- {
680
- ...tableConfig.CELL_DEFAULT,
681
- row: rId,
682
- rowspan: cellFormats.rowspan
683
- }
682
+ { ...tableConfig.CELL_DEFAULT, row: rId, rowspan: cellFormats.rowspan }
684
683
  );
685
684
  const cellLine = this.scroll.create(TableCellLine.blotName, {
686
685
  row: rId,
@@ -709,7 +708,7 @@ class TableContainer extends Container {
709
708
  }
710
709
  modifiedCells.forEach((cell) => {
711
710
  const cellColspan = cell.formats().colspan;
712
- cell.format("colspan", parseInt(cellColspan, 10) + 1);
711
+ cell.format("colspan", Number.parseInt(cellColspan, 10) + 1);
713
712
  affectedCells.push(cell);
714
713
  });
715
714
  affectedCells.sort((cellA, cellB) => {
@@ -774,7 +773,7 @@ class TableContainer extends Container {
774
773
  affectedCells.push(tableCell);
775
774
  });
776
775
  modifiedCells.forEach((cell) => {
777
- const cellRowspan = parseInt(cell.formats().rowspan, 10);
776
+ const cellRowspan = Number.parseInt(cell.formats().rowspan, 10);
778
777
  cell.format("rowspan", cellRowspan + 1);
779
778
  affectedCells.push(cell);
780
779
  });
@@ -803,7 +802,7 @@ class TableContainer extends Container {
803
802
  result = tableCell;
804
803
  if (rowspan > 1) {
805
804
  const minHeight = tableConfig.CELL_MIN_HEIGHT * rowspan + rowspan - 1;
806
- const cellHeight = parseInt(tableCell.domNode.style.height, 10) || 0;
805
+ const cellHeight = Number.parseInt(tableCell.domNode.style.height, 10) || 0;
807
806
  if (cellHeight < minHeight) {
808
807
  tableCell.domNode.style.height = `${minHeight}px`;
809
808
  }
@@ -815,10 +814,10 @@ class TableContainer extends Container {
815
814
  const cId = mergedCell.children.head.domNode.getAttribute("data-cell");
816
815
  mergedCell.children.forEach((cellLine) => {
817
816
  cellLine.domNode.setAttribute("data-parent-bg", mergedCell.domNode.style.backgroundColor);
818
- if (cellLine.children["head"].domNode.style) {
819
- cellLine.children["head"].domNode.style.backgroundColor = mergedCell.domNode.style.backgroundColor;
817
+ if (cellLine.children.head.domNode.style) {
818
+ cellLine.children.head.domNode.style.backgroundColor = mergedCell.domNode.style.backgroundColor;
820
819
  }
821
- if (!cellLine.prev || cellLine.domNode.innerText.trim()) {
820
+ if (!cellLine.prev || cellLine.domNode.textContent.trim()) {
822
821
  cellLine.format("cell", cId);
823
822
  cellLine.format("row", rId);
824
823
  cellLine.format("colspan", colspan);