@qxs-bns/components 0.0.14 → 0.0.16

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 (2100) hide show
  1. package/es/_virtual/_plugin-vue_export-helper.js +10 -0
  2. package/es/_virtual/_plugin-vue_export-helper.js.map +1 -0
  3. package/es/index.js +17 -0
  4. package/es/index.js.map +1 -0
  5. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +27 -0
  6. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  7. package/es/package.json.js +4 -0
  8. package/es/package.json.js.map +1 -0
  9. package/es/src/components.js +11 -0
  10. package/es/src/components.js.map +1 -0
  11. package/es/src/data-chart/index.js +7 -0
  12. package/es/src/data-chart/index.js.map +1 -0
  13. package/es/src/data-chart/src/data-chart.vue.js +8 -0
  14. package/es/src/data-chart/src/data-chart.vue.js.map +1 -0
  15. package/es/src/data-chart/src/data-chart.vue2.js +108 -0
  16. package/es/src/data-chart/src/data-chart.vue2.js.map +1 -0
  17. package/es/src/data-chart/src/data-chart.vue3.js +7 -0
  18. package/es/src/data-chart/src/data-chart.vue3.js.map +1 -0
  19. package/es/src/data-chart/src/utils/config.js +380 -0
  20. package/es/src/data-chart/src/utils/config.js.map +1 -0
  21. package/es/src/data-chart/src/utils/injectionKeys.js +4 -0
  22. package/es/src/data-chart/src/utils/injectionKeys.js.map +1 -0
  23. package/es/src/data-chart/src/utils/useCharts.js +23 -0
  24. package/es/src/data-chart/src/utils/useCharts.js.map +1 -0
  25. package/es/src/defaults.js +7 -0
  26. package/es/src/defaults.js.map +1 -0
  27. package/es/src/file-upload/index.js +7 -0
  28. package/es/src/file-upload/index.js.map +1 -0
  29. package/es/src/file-upload/src/file-upload.vue.js +113 -0
  30. package/es/src/file-upload/src/file-upload.vue.js.map +1 -0
  31. package/es/src/file-upload/src/file-upload.vue2.js +6 -0
  32. package/es/src/file-upload/src/file-upload.vue2.js.map +1 -0
  33. package/es/src/fixed-action-bar/index.js +7 -0
  34. package/es/src/fixed-action-bar/index.js.map +1 -0
  35. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.js +85 -0
  36. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.js.map +1 -0
  37. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.js +6 -0
  38. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.js.map +1 -0
  39. package/es/src/image-upload/index.js +7 -0
  40. package/es/src/image-upload/index.js.map +1 -0
  41. package/es/src/image-upload/src/image-upload.vue.js +229 -0
  42. package/es/src/image-upload/src/image-upload.vue.js.map +1 -0
  43. package/es/src/image-upload/src/image-upload.vue2.js +6 -0
  44. package/es/src/image-upload/src/image-upload.vue2.js.map +1 -0
  45. package/es/src/make-installer.js +16 -0
  46. package/es/src/make-installer.js.map +1 -0
  47. package/es/src/photo-crop-tool/index.js +7 -0
  48. package/es/src/photo-crop-tool/index.js.map +1 -0
  49. package/es/src/photo-crop-tool/src/composables.js +56 -0
  50. package/es/src/photo-crop-tool/src/composables.js.map +1 -0
  51. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.js +399 -0
  52. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.js.map +1 -0
  53. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.js +6 -0
  54. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.js.map +1 -0
  55. package/es/src/subject-action/index.js +7 -0
  56. package/es/src/subject-action/index.js.map +1 -0
  57. package/es/src/subject-action/src/subject-action.vue.js +322 -0
  58. package/es/src/subject-action/src/subject-action.vue.js.map +1 -0
  59. package/es/src/subject-action/src/subject-action.vue2.js +6 -0
  60. package/es/src/subject-action/src/subject-action.vue2.js.map +1 -0
  61. package/es/src/subject-layout/index.js +7 -0
  62. package/es/src/subject-layout/index.js.map +1 -0
  63. package/es/src/subject-layout/src/subject-layout.vue.js +37 -0
  64. package/es/src/subject-layout/src/subject-layout.vue.js.map +1 -0
  65. package/es/src/subject-layout/src/subject-layout.vue2.js +6 -0
  66. package/es/src/subject-layout/src/subject-layout.vue2.js.map +1 -0
  67. package/es/src/subject-list/index.js +7 -0
  68. package/es/src/subject-list/index.js.map +1 -0
  69. package/es/src/subject-list/src/components/SubjectPageEnd.vue.js +95 -0
  70. package/es/src/subject-list/src/components/SubjectPageEnd.vue.js.map +1 -0
  71. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.js +6 -0
  72. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.js.map +1 -0
  73. package/es/src/subject-list/src/components/SubjectRichText.vue.js +93 -0
  74. package/es/src/subject-list/src/components/SubjectRichText.vue.js.map +1 -0
  75. package/es/src/subject-list/src/components/SubjectRichText.vue2.js +6 -0
  76. package/es/src/subject-list/src/components/SubjectRichText.vue2.js.map +1 -0
  77. package/es/src/subject-list/src/components/subject-blank-fill.vue.js +477 -0
  78. package/es/src/subject-list/src/components/subject-blank-fill.vue.js.map +1 -0
  79. package/es/src/subject-list/src/components/subject-blank-fill.vue2.js +6 -0
  80. package/es/src/subject-list/src/components/subject-blank-fill.vue2.js.map +1 -0
  81. package/es/src/subject-list/src/components/subject-scale.vue.js +448 -0
  82. package/es/src/subject-list/src/components/subject-scale.vue.js.map +1 -0
  83. package/es/src/subject-list/src/components/subject-scale.vue2.js +6 -0
  84. package/es/src/subject-list/src/components/subject-scale.vue2.js.map +1 -0
  85. package/es/src/subject-list/src/components/subject-single.vue.js +733 -0
  86. package/es/src/subject-list/src/components/subject-single.vue.js.map +1 -0
  87. package/es/src/subject-list/src/components/subject-single.vue2.js +6 -0
  88. package/es/src/subject-list/src/components/subject-single.vue2.js.map +1 -0
  89. package/es/src/subject-list/src/components/subject-text-fill.vue.js +584 -0
  90. package/es/src/subject-list/src/components/subject-text-fill.vue.js.map +1 -0
  91. package/es/src/subject-list/src/components/subject-text-fill.vue2.js +6 -0
  92. package/es/src/subject-list/src/components/subject-text-fill.vue2.js.map +1 -0
  93. package/es/src/subject-list/src/subject-list.vue.js +266 -0
  94. package/es/src/subject-list/src/subject-list.vue.js.map +1 -0
  95. package/es/src/subject-list/src/subject-list.vue2.js +6 -0
  96. package/es/src/subject-list/src/subject-list.vue2.js.map +1 -0
  97. package/es/src/subject-type/index.js +7 -0
  98. package/es/src/subject-type/index.js.map +1 -0
  99. package/es/src/subject-type/src/subject-type.vue.js +180 -0
  100. package/es/src/subject-type/src/subject-type.vue.js.map +1 -0
  101. package/es/src/subject-type/src/subject-type.vue2.js +6 -0
  102. package/es/src/subject-type/src/subject-type.vue2.js.map +1 -0
  103. package/es/src/tiny-mce-editor/index.js +7 -0
  104. package/es/src/tiny-mce-editor/index.js.map +1 -0
  105. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.js +157 -0
  106. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.js.map +1 -0
  107. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue2.js +6 -0
  108. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue2.js.map +1 -0
  109. package/es/src/withInstall.js +11 -0
  110. package/es/src/withInstall.js.map +1 -0
  111. package/lib/_virtual/_plugin-vue_export-helper.js +12 -8
  112. package/lib/_virtual/_plugin-vue_export-helper.js.map +1 -1
  113. package/lib/index.js +32 -27
  114. package/lib/index.js.map +1 -1
  115. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +31 -0
  116. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  117. package/lib/package.json.js +5 -4
  118. package/lib/package.json.js.map +1 -1
  119. package/lib/src/components.js +25 -22
  120. package/lib/src/components.js.map +1 -1
  121. package/lib/src/data-chart/index.js +11 -7
  122. package/lib/src/data-chart/index.js.map +1 -1
  123. package/lib/src/data-chart/src/data-chart.vue.js +11 -8
  124. package/lib/src/data-chart/src/data-chart.vue.js.map +1 -1
  125. package/lib/src/data-chart/src/data-chart.vue2.js +74 -47
  126. package/lib/src/data-chart/src/data-chart.vue2.js.map +1 -1
  127. package/lib/src/data-chart/src/data-chart.vue3.js +11 -0
  128. package/lib/src/data-chart/src/data-chart.vue3.js.map +1 -0
  129. package/lib/src/data-chart/src/utils/config.js +344 -377
  130. package/lib/src/data-chart/src/utils/config.js.map +1 -1
  131. package/lib/src/data-chart/src/utils/injectionKeys.js +5 -4
  132. package/lib/src/data-chart/src/utils/injectionKeys.js.map +1 -1
  133. package/lib/src/data-chart/src/utils/useCharts.js +21 -128
  134. package/lib/src/data-chart/src/utils/useCharts.js.map +1 -1
  135. package/lib/src/defaults.js +10 -6
  136. package/lib/src/defaults.js.map +1 -1
  137. package/lib/src/file-upload/index.js +11 -7
  138. package/lib/src/file-upload/index.js.map +1 -1
  139. package/lib/src/file-upload/src/file-upload.vue.js +115 -6
  140. package/lib/src/file-upload/src/file-upload.vue.js.map +1 -1
  141. package/lib/src/file-upload/src/file-upload.vue2.js +9 -91
  142. package/lib/src/file-upload/src/file-upload.vue2.js.map +1 -1
  143. package/lib/src/fixed-action-bar/index.js +11 -7
  144. package/lib/src/fixed-action-bar/index.js.map +1 -1
  145. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.js +87 -6
  146. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.js.map +1 -1
  147. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.js +9 -66
  148. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.js.map +1 -1
  149. package/lib/src/image-upload/index.js +11 -7
  150. package/lib/src/image-upload/index.js.map +1 -1
  151. package/lib/src/image-upload/src/image-upload.vue.js +231 -6
  152. package/lib/src/image-upload/src/image-upload.vue.js.map +1 -1
  153. package/lib/src/image-upload/src/image-upload.vue2.js +9 -176
  154. package/lib/src/image-upload/src/image-upload.vue2.js.map +1 -1
  155. package/lib/src/make-installer.js +14 -10
  156. package/lib/src/make-installer.js.map +1 -1
  157. package/lib/src/photo-crop-tool/index.js +11 -7
  158. package/lib/src/photo-crop-tool/index.js.map +1 -1
  159. package/lib/src/photo-crop-tool/src/composables.js +55 -31
  160. package/lib/src/photo-crop-tool/src/composables.js.map +1 -1
  161. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.js +402 -7
  162. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.js.map +1 -1
  163. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.js +9 -255
  164. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.js.map +1 -1
  165. package/lib/src/subject-action/index.js +11 -7
  166. package/lib/src/subject-action/index.js.map +1 -1
  167. package/lib/src/subject-action/src/subject-action.vue.js +324 -6
  168. package/lib/src/subject-action/src/subject-action.vue.js.map +1 -1
  169. package/lib/src/subject-action/src/subject-action.vue2.js +9 -276
  170. package/lib/src/subject-action/src/subject-action.vue2.js.map +1 -1
  171. package/lib/src/subject-layout/index.js +11 -7
  172. package/lib/src/subject-layout/index.js.map +1 -1
  173. package/lib/src/subject-layout/src/subject-layout.vue.js +39 -6
  174. package/lib/src/subject-layout/src/subject-layout.vue.js.map +1 -1
  175. package/lib/src/subject-layout/src/subject-layout.vue2.js +9 -24
  176. package/lib/src/subject-layout/src/subject-layout.vue2.js.map +1 -1
  177. package/lib/src/subject-list/index.js +11 -7
  178. package/lib/src/subject-list/index.js.map +1 -1
  179. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.js +98 -7
  180. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.js.map +1 -1
  181. package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.js +9 -68
  182. package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.js.map +1 -1
  183. package/lib/src/subject-list/src/components/SubjectRichText.vue.js +96 -7
  184. package/lib/src/subject-list/src/components/SubjectRichText.vue.js.map +1 -1
  185. package/lib/src/subject-list/src/components/SubjectRichText.vue2.js +9 -75
  186. package/lib/src/subject-list/src/components/SubjectRichText.vue2.js.map +1 -1
  187. package/lib/src/subject-list/src/components/subject-blank-fill.vue.js +479 -6
  188. package/lib/src/subject-list/src/components/subject-blank-fill.vue.js.map +1 -1
  189. package/lib/src/subject-list/src/components/subject-blank-fill.vue2.js +9 -306
  190. package/lib/src/subject-list/src/components/subject-blank-fill.vue2.js.map +1 -1
  191. package/lib/src/subject-list/src/components/subject-scale.vue.js +450 -6
  192. package/lib/src/subject-list/src/components/subject-scale.vue.js.map +1 -1
  193. package/lib/src/subject-list/src/components/subject-scale.vue2.js +9 -289
  194. package/lib/src/subject-list/src/components/subject-scale.vue2.js.map +1 -1
  195. package/lib/src/subject-list/src/components/subject-single.vue.js +735 -6
  196. package/lib/src/subject-list/src/components/subject-single.vue.js.map +1 -1
  197. package/lib/src/subject-list/src/components/subject-single.vue2.js +9 -486
  198. package/lib/src/subject-list/src/components/subject-single.vue2.js.map +1 -1
  199. package/lib/src/subject-list/src/components/subject-text-fill.vue.js +586 -6
  200. package/lib/src/subject-list/src/components/subject-text-fill.vue.js.map +1 -1
  201. package/lib/src/subject-list/src/components/subject-text-fill.vue2.js +9 -370
  202. package/lib/src/subject-list/src/components/subject-text-fill.vue2.js.map +1 -1
  203. package/lib/src/subject-list/src/subject-list.vue.js +269 -7
  204. package/lib/src/subject-list/src/subject-list.vue.js.map +1 -1
  205. package/lib/src/subject-list/src/subject-list.vue2.js +9 -237
  206. package/lib/src/subject-list/src/subject-list.vue2.js.map +1 -1
  207. package/lib/src/subject-type/index.js +11 -7
  208. package/lib/src/subject-type/index.js.map +1 -1
  209. package/lib/src/subject-type/src/subject-type.vue.js +183 -7
  210. package/lib/src/subject-type/src/subject-type.vue.js.map +1 -1
  211. package/lib/src/subject-type/src/subject-type.vue2.js +9 -96
  212. package/lib/src/subject-type/src/subject-type.vue2.js.map +1 -1
  213. package/lib/src/tiny-mce-editor/index.js +11 -7
  214. package/lib/src/tiny-mce-editor/index.js.map +1 -1
  215. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.js +160 -7
  216. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.js.map +1 -1
  217. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue2.js +9 -140
  218. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue2.js.map +1 -1
  219. package/lib/src/withInstall.js +11 -8
  220. package/lib/src/withInstall.js.map +1 -1
  221. package/package.json +20 -33
  222. package/README.md +0 -0
  223. package/es/_virtual/@amap/amap-jsapi-loader/dist/index.mjs +0 -132
  224. package/es/_virtual/@amap/amap-jsapi-loader/dist/index.mjs.map +0 -1
  225. package/es/_virtual/@ctrl/tinycolor/dist/module/conversion.mjs +0 -116
  226. package/es/_virtual/@ctrl/tinycolor/dist/module/conversion.mjs.map +0 -1
  227. package/es/_virtual/@ctrl/tinycolor/dist/module/css-color-names.mjs +0 -154
  228. package/es/_virtual/@ctrl/tinycolor/dist/module/css-color-names.mjs.map +0 -1
  229. package/es/_virtual/@ctrl/tinycolor/dist/module/format-input.mjs +0 -69
  230. package/es/_virtual/@ctrl/tinycolor/dist/module/format-input.mjs.map +0 -1
  231. package/es/_virtual/@ctrl/tinycolor/dist/module/index.mjs +0 -184
  232. package/es/_virtual/@ctrl/tinycolor/dist/module/index.mjs.map +0 -1
  233. package/es/_virtual/@ctrl/tinycolor/dist/module/util.mjs +0 -33
  234. package/es/_virtual/@ctrl/tinycolor/dist/module/util.mjs.map +0 -1
  235. package/es/_virtual/@sxzz/popperjs-es/dist/index.mjs +0 -575
  236. package/es/_virtual/@sxzz/popperjs-es/dist/index.mjs.map +0 -1
  237. package/es/_virtual/@vue/shared/dist/shared.esm-bundler.mjs +0 -27
  238. package/es/_virtual/@vue/shared/dist/shared.esm-bundler.mjs.map +0 -1
  239. package/es/_virtual/@vueuse/core/index.mjs +0 -366
  240. package/es/_virtual/@vueuse/core/index.mjs.map +0 -1
  241. package/es/_virtual/@vueuse/core/index2.mjs +0 -214
  242. package/es/_virtual/@vueuse/core/index2.mjs.map +0 -1
  243. package/es/_virtual/@vueuse/shared/index.mjs +0 -155
  244. package/es/_virtual/@vueuse/shared/index.mjs.map +0 -1
  245. package/es/_virtual/@vueuse/shared/index2.mjs +0 -99
  246. package/es/_virtual/@vueuse/shared/index2.mjs.map +0 -1
  247. package/es/_virtual/_commonjsHelpers.mjs +0 -7
  248. package/es/_virtual/_commonjsHelpers.mjs.map +0 -1
  249. package/es/_virtual/_plugin-vue_export-helper.mjs +0 -10
  250. package/es/_virtual/_plugin-vue_export-helper.mjs.map +0 -1
  251. package/es/_virtual/dynamic-import-helper.mjs +0 -17
  252. package/es/_virtual/dynamic-import-helper.mjs.map +0 -1
  253. package/es/_virtual/element-plus/es/_virtual/plugin-vue_export-helper.mjs +0 -10
  254. package/es/_virtual/element-plus/es/_virtual/plugin-vue_export-helper.mjs.map +0 -1
  255. package/es/_virtual/element-plus/es/components/alert/index.mjs +0 -8
  256. package/es/_virtual/element-plus/es/components/alert/index.mjs.map +0 -1
  257. package/es/_virtual/element-plus/es/components/alert/src/alert.mjs +0 -41
  258. package/es/_virtual/element-plus/es/components/alert/src/alert.mjs.map +0 -1
  259. package/es/_virtual/element-plus/es/components/alert/src/alert2.mjs +0 -94
  260. package/es/_virtual/element-plus/es/components/alert/src/alert2.mjs.map +0 -1
  261. package/es/_virtual/element-plus/es/components/badge/index.mjs +0 -8
  262. package/es/_virtual/element-plus/es/components/badge/index.mjs.map +0 -1
  263. package/es/_virtual/element-plus/es/components/badge/src/badge.mjs +0 -37
  264. package/es/_virtual/element-plus/es/components/badge/src/badge.mjs.map +0 -1
  265. package/es/_virtual/element-plus/es/components/badge/src/badge2.mjs +0 -73
  266. package/es/_virtual/element-plus/es/components/badge/src/badge2.mjs.map +0 -1
  267. package/es/_virtual/element-plus/es/components/button/index.mjs +0 -12
  268. package/es/_virtual/element-plus/es/components/button/index.mjs.map +0 -1
  269. package/es/_virtual/element-plus/es/components/button/src/button-custom.mjs +0 -52
  270. package/es/_virtual/element-plus/es/components/button/src/button-custom.mjs.map +0 -1
  271. package/es/_virtual/element-plus/es/components/button/src/button-group.mjs +0 -40
  272. package/es/_virtual/element-plus/es/components/button/src/button-group.mjs.map +0 -1
  273. package/es/_virtual/element-plus/es/components/button/src/button-group2.mjs +0 -9
  274. package/es/_virtual/element-plus/es/components/button/src/button-group2.mjs.map +0 -1
  275. package/es/_virtual/element-plus/es/components/button/src/button.mjs +0 -61
  276. package/es/_virtual/element-plus/es/components/button/src/button.mjs.map +0 -1
  277. package/es/_virtual/element-plus/es/components/button/src/button2.mjs +0 -85
  278. package/es/_virtual/element-plus/es/components/button/src/button2.mjs.map +0 -1
  279. package/es/_virtual/element-plus/es/components/button/src/constants.mjs +0 -5
  280. package/es/_virtual/element-plus/es/components/button/src/constants.mjs.map +0 -1
  281. package/es/_virtual/element-plus/es/components/button/src/use-button.mjs +0 -54
  282. package/es/_virtual/element-plus/es/components/button/src/use-button.mjs.map +0 -1
  283. package/es/_virtual/element-plus/es/components/checkbox/index.mjs +0 -16
  284. package/es/_virtual/element-plus/es/components/checkbox/index.mjs.map +0 -1
  285. package/es/_virtual/element-plus/es/components/checkbox/src/checkbox-button.mjs +0 -105
  286. package/es/_virtual/element-plus/es/components/checkbox/src/checkbox-button.mjs.map +0 -1
  287. package/es/_virtual/element-plus/es/components/checkbox/src/checkbox-group.mjs +0 -90
  288. package/es/_virtual/element-plus/es/components/checkbox/src/checkbox-group.mjs.map +0 -1
  289. package/es/_virtual/element-plus/es/components/checkbox/src/checkbox-group2.mjs +0 -44
  290. package/es/_virtual/element-plus/es/components/checkbox/src/checkbox-group2.mjs.map +0 -1
  291. package/es/_virtual/element-plus/es/components/checkbox/src/checkbox.mjs +0 -72
  292. package/es/_virtual/element-plus/es/components/checkbox/src/checkbox.mjs.map +0 -1
  293. package/es/_virtual/element-plus/es/components/checkbox/src/checkbox2.mjs +0 -121
  294. package/es/_virtual/element-plus/es/components/checkbox/src/checkbox2.mjs.map +0 -1
  295. package/es/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-disabled.mjs +0 -22
  296. package/es/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-disabled.mjs.map +0 -1
  297. package/es/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-event.mjs +0 -58
  298. package/es/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-event.mjs.map +0 -1
  299. package/es/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-model.mjs +0 -26
  300. package/es/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-model.mjs.map +0 -1
  301. package/es/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-status.mjs +0 -32
  302. package/es/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-status.mjs.map +0 -1
  303. package/es/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox.mjs +0 -71
  304. package/es/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox.mjs.map +0 -1
  305. package/es/_virtual/element-plus/es/components/checkbox/src/constants.mjs +0 -5
  306. package/es/_virtual/element-plus/es/components/checkbox/src/constants.mjs.map +0 -1
  307. package/es/_virtual/element-plus/es/components/col/index.mjs +0 -8
  308. package/es/_virtual/element-plus/es/components/col/index.mjs.map +0 -1
  309. package/es/_virtual/element-plus/es/components/col/src/col.mjs +0 -48
  310. package/es/_virtual/element-plus/es/components/col/src/col.mjs.map +0 -1
  311. package/es/_virtual/element-plus/es/components/col/src/col2.mjs +0 -54
  312. package/es/_virtual/element-plus/es/components/col/src/col2.mjs.map +0 -1
  313. package/es/_virtual/element-plus/es/components/collection/src/collection-item.mjs +0 -14
  314. package/es/_virtual/element-plus/es/components/collection/src/collection-item.mjs.map +0 -1
  315. package/es/_virtual/element-plus/es/components/collection/src/collection.mjs +0 -61
  316. package/es/_virtual/element-plus/es/components/collection/src/collection.mjs.map +0 -1
  317. package/es/_virtual/element-plus/es/components/collection/src/collection2.mjs +0 -13
  318. package/es/_virtual/element-plus/es/components/collection/src/collection2.mjs.map +0 -1
  319. package/es/_virtual/element-plus/es/components/config-provider/src/config-provider-props.mjs +0 -46
  320. package/es/_virtual/element-plus/es/components/config-provider/src/config-provider-props.mjs.map +0 -1
  321. package/es/_virtual/element-plus/es/components/config-provider/src/config-provider.mjs +0 -19
  322. package/es/_virtual/element-plus/es/components/config-provider/src/config-provider.mjs.map +0 -1
  323. package/es/_virtual/element-plus/es/components/config-provider/src/constants.mjs +0 -5
  324. package/es/_virtual/element-plus/es/components/config-provider/src/constants.mjs.map +0 -1
  325. package/es/_virtual/element-plus/es/components/config-provider/src/hooks/use-global-config.mjs +0 -67
  326. package/es/_virtual/element-plus/es/components/config-provider/src/hooks/use-global-config.mjs.map +0 -1
  327. package/es/_virtual/element-plus/es/components/dialog/index.mjs +0 -8
  328. package/es/_virtual/element-plus/es/components/dialog/index.mjs.map +0 -1
  329. package/es/_virtual/element-plus/es/components/dialog/src/constants.mjs +0 -5
  330. package/es/_virtual/element-plus/es/components/dialog/src/constants.mjs.map +0 -1
  331. package/es/_virtual/element-plus/es/components/dialog/src/dialog-content.mjs +0 -34
  332. package/es/_virtual/element-plus/es/components/dialog/src/dialog-content.mjs.map +0 -1
  333. package/es/_virtual/element-plus/es/components/dialog/src/dialog-content2.mjs +0 -90
  334. package/es/_virtual/element-plus/es/components/dialog/src/dialog-content2.mjs.map +0 -1
  335. package/es/_virtual/element-plus/es/components/dialog/src/dialog.mjs +0 -83
  336. package/es/_virtual/element-plus/es/components/dialog/src/dialog.mjs.map +0 -1
  337. package/es/_virtual/element-plus/es/components/dialog/src/dialog2.mjs +0 -176
  338. package/es/_virtual/element-plus/es/components/dialog/src/dialog2.mjs.map +0 -1
  339. package/es/_virtual/element-plus/es/components/dialog/src/use-dialog.mjs +0 -98
  340. package/es/_virtual/element-plus/es/components/dialog/src/use-dialog.mjs.map +0 -1
  341. package/es/_virtual/element-plus/es/components/dropdown/src/dropdown.mjs +0 -111
  342. package/es/_virtual/element-plus/es/components/dropdown/src/dropdown.mjs.map +0 -1
  343. package/es/_virtual/element-plus/es/components/focus-trap/src/focus-trap.mjs +0 -179
  344. package/es/_virtual/element-plus/es/components/focus-trap/src/focus-trap.mjs.map +0 -1
  345. package/es/_virtual/element-plus/es/components/focus-trap/src/tokens.mjs +0 -18
  346. package/es/_virtual/element-plus/es/components/focus-trap/src/tokens.mjs.map +0 -1
  347. package/es/_virtual/element-plus/es/components/focus-trap/src/utils.mjs +0 -104
  348. package/es/_virtual/element-plus/es/components/focus-trap/src/utils.mjs.map +0 -1
  349. package/es/_virtual/element-plus/es/components/form/src/constants.mjs +0 -6
  350. package/es/_virtual/element-plus/es/components/form/src/constants.mjs.map +0 -1
  351. package/es/_virtual/element-plus/es/components/form/src/hooks/use-form-common-props.mjs +0 -16
  352. package/es/_virtual/element-plus/es/components/form/src/hooks/use-form-common-props.mjs.map +0 -1
  353. package/es/_virtual/element-plus/es/components/form/src/hooks/use-form-item.mjs +0 -38
  354. package/es/_virtual/element-plus/es/components/form/src/hooks/use-form-item.mjs.map +0 -1
  355. package/es/_virtual/element-plus/es/components/icon/index.mjs +0 -8
  356. package/es/_virtual/element-plus/es/components/icon/index.mjs.map +0 -1
  357. package/es/_virtual/element-plus/es/components/icon/src/icon.mjs +0 -44
  358. package/es/_virtual/element-plus/es/components/icon/src/icon.mjs.map +0 -1
  359. package/es/_virtual/element-plus/es/components/icon/src/icon2.mjs +0 -13
  360. package/es/_virtual/element-plus/es/components/icon/src/icon2.mjs.map +0 -1
  361. package/es/_virtual/element-plus/es/components/image/index.mjs +0 -8
  362. package/es/_virtual/element-plus/es/components/image/index.mjs.map +0 -1
  363. package/es/_virtual/element-plus/es/components/image/src/image.mjs +0 -73
  364. package/es/_virtual/element-plus/es/components/image/src/image.mjs.map +0 -1
  365. package/es/_virtual/element-plus/es/components/image/src/image2.mjs +0 -193
  366. package/es/_virtual/element-plus/es/components/image/src/image2.mjs.map +0 -1
  367. package/es/_virtual/element-plus/es/components/image-viewer/index.mjs +0 -8
  368. package/es/_virtual/element-plus/es/components/image-viewer/index.mjs.map +0 -1
  369. package/es/_virtual/element-plus/es/components/image-viewer/src/image-viewer.mjs +0 -54
  370. package/es/_virtual/element-plus/es/components/image-viewer/src/image-viewer.mjs.map +0 -1
  371. package/es/_virtual/element-plus/es/components/image-viewer/src/image-viewer2.mjs +0 -372
  372. package/es/_virtual/element-plus/es/components/image-viewer/src/image-viewer2.mjs.map +0 -1
  373. package/es/_virtual/element-plus/es/components/input/index.mjs +0 -8
  374. package/es/_virtual/element-plus/es/components/input/index.mjs.map +0 -1
  375. package/es/_virtual/element-plus/es/components/input/src/input.mjs +0 -117
  376. package/es/_virtual/element-plus/es/components/input/src/input.mjs.map +0 -1
  377. package/es/_virtual/element-plus/es/components/input/src/input2.mjs +0 -368
  378. package/es/_virtual/element-plus/es/components/input/src/input2.mjs.map +0 -1
  379. package/es/_virtual/element-plus/es/components/input/src/utils.mjs +0 -58
  380. package/es/_virtual/element-plus/es/components/input/src/utils.mjs.map +0 -1
  381. package/es/_virtual/element-plus/es/components/input-number/index.mjs +0 -8
  382. package/es/_virtual/element-plus/es/components/input-number/index.mjs.map +0 -1
  383. package/es/_virtual/element-plus/es/components/input-number/src/input-number.mjs +0 -75
  384. package/es/_virtual/element-plus/es/components/input-number/src/input-number.mjs.map +0 -1
  385. package/es/_virtual/element-plus/es/components/input-number/src/input-number2.mjs +0 -234
  386. package/es/_virtual/element-plus/es/components/input-number/src/input-number2.mjs.map +0 -1
  387. package/es/_virtual/element-plus/es/components/link/index.mjs +0 -8
  388. package/es/_virtual/element-plus/es/components/link/index.mjs.map +0 -1
  389. package/es/_virtual/element-plus/es/components/link/src/link.mjs +0 -29
  390. package/es/_virtual/element-plus/es/components/link/src/link.mjs.map +0 -1
  391. package/es/_virtual/element-plus/es/components/link/src/link2.mjs +0 -59
  392. package/es/_virtual/element-plus/es/components/link/src/link2.mjs.map +0 -1
  393. package/es/_virtual/element-plus/es/components/message/index.mjs +0 -8
  394. package/es/_virtual/element-plus/es/components/message/index.mjs.map +0 -1
  395. package/es/_virtual/element-plus/es/components/message/src/instance.mjs +0 -16
  396. package/es/_virtual/element-plus/es/components/message/src/instance.mjs.map +0 -1
  397. package/es/_virtual/element-plus/es/components/message/src/message.mjs +0 -97
  398. package/es/_virtual/element-plus/es/components/message/src/message.mjs.map +0 -1
  399. package/es/_virtual/element-plus/es/components/message/src/message2.mjs +0 -136
  400. package/es/_virtual/element-plus/es/components/message/src/message2.mjs.map +0 -1
  401. package/es/_virtual/element-plus/es/components/message/src/method.mjs +0 -109
  402. package/es/_virtual/element-plus/es/components/message/src/method.mjs.map +0 -1
  403. package/es/_virtual/element-plus/es/components/overlay/index.mjs +0 -10
  404. package/es/_virtual/element-plus/es/components/overlay/index.mjs.map +0 -1
  405. package/es/_virtual/element-plus/es/components/overlay/src/overlay.mjs +0 -59
  406. package/es/_virtual/element-plus/es/components/overlay/src/overlay.mjs.map +0 -1
  407. package/es/_virtual/element-plus/es/components/popover/index.mjs +0 -12
  408. package/es/_virtual/element-plus/es/components/popover/index.mjs.map +0 -1
  409. package/es/_virtual/element-plus/es/components/popover/src/directive.mjs +0 -18
  410. package/es/_virtual/element-plus/es/components/popover/src/directive.mjs.map +0 -1
  411. package/es/_virtual/element-plus/es/components/popover/src/popover.mjs +0 -79
  412. package/es/_virtual/element-plus/es/components/popover/src/popover.mjs.map +0 -1
  413. package/es/_virtual/element-plus/es/components/popover/src/popover2.mjs +0 -100
  414. package/es/_virtual/element-plus/es/components/popover/src/popover2.mjs.map +0 -1
  415. package/es/_virtual/element-plus/es/components/popper/index.mjs +0 -8
  416. package/es/_virtual/element-plus/es/components/popper/index.mjs.map +0 -1
  417. package/es/_virtual/element-plus/es/components/popper/src/arrow.mjs +0 -11
  418. package/es/_virtual/element-plus/es/components/popper/src/arrow.mjs.map +0 -1
  419. package/es/_virtual/element-plus/es/components/popper/src/arrow2.mjs +0 -44
  420. package/es/_virtual/element-plus/es/components/popper/src/arrow2.mjs.map +0 -1
  421. package/es/_virtual/element-plus/es/components/popper/src/composables/use-content-dom.mjs +0 -35
  422. package/es/_virtual/element-plus/es/components/popper/src/composables/use-content-dom.mjs.map +0 -1
  423. package/es/_virtual/element-plus/es/components/popper/src/composables/use-content.mjs +0 -62
  424. package/es/_virtual/element-plus/es/components/popper/src/composables/use-content.mjs.map +0 -1
  425. package/es/_virtual/element-plus/es/components/popper/src/composables/use-focus-trap.mjs +0 -28
  426. package/es/_virtual/element-plus/es/components/popper/src/composables/use-focus-trap.mjs.map +0 -1
  427. package/es/_virtual/element-plus/es/components/popper/src/constants.mjs +0 -6
  428. package/es/_virtual/element-plus/es/components/popper/src/constants.mjs.map +0 -1
  429. package/es/_virtual/element-plus/es/components/popper/src/content.mjs +0 -103
  430. package/es/_virtual/element-plus/es/components/popper/src/content.mjs.map +0 -1
  431. package/es/_virtual/element-plus/es/components/popper/src/content2.mjs +0 -117
  432. package/es/_virtual/element-plus/es/components/popper/src/content2.mjs.map +0 -1
  433. package/es/_virtual/element-plus/es/components/popper/src/popper.mjs +0 -22
  434. package/es/_virtual/element-plus/es/components/popper/src/popper.mjs.map +0 -1
  435. package/es/_virtual/element-plus/es/components/popper/src/popper2.mjs +0 -37
  436. package/es/_virtual/element-plus/es/components/popper/src/popper2.mjs.map +0 -1
  437. package/es/_virtual/element-plus/es/components/popper/src/trigger.mjs +0 -34
  438. package/es/_virtual/element-plus/es/components/popper/src/trigger.mjs.map +0 -1
  439. package/es/_virtual/element-plus/es/components/popper/src/trigger2.mjs +0 -103
  440. package/es/_virtual/element-plus/es/components/popper/src/trigger2.mjs.map +0 -1
  441. package/es/_virtual/element-plus/es/components/popper/src/utils.mjs +0 -69
  442. package/es/_virtual/element-plus/es/components/popper/src/utils.mjs.map +0 -1
  443. package/es/_virtual/element-plus/es/components/progress/index.mjs +0 -8
  444. package/es/_virtual/element-plus/es/components/progress/index.mjs.map +0 -1
  445. package/es/_virtual/element-plus/es/components/progress/src/progress.mjs +0 -58
  446. package/es/_virtual/element-plus/es/components/progress/src/progress.mjs.map +0 -1
  447. package/es/_virtual/element-plus/es/components/progress/src/progress2.mjs +0 -167
  448. package/es/_virtual/element-plus/es/components/progress/src/progress2.mjs.map +0 -1
  449. package/es/_virtual/element-plus/es/components/radio/index.mjs +0 -15
  450. package/es/_virtual/element-plus/es/components/radio/index.mjs.map +0 -1
  451. package/es/_virtual/element-plus/es/components/radio/src/constants.mjs +0 -5
  452. package/es/_virtual/element-plus/es/components/radio/src/constants.mjs.map +0 -1
  453. package/es/_virtual/element-plus/es/components/radio/src/radio-button.mjs +0 -74
  454. package/es/_virtual/element-plus/es/components/radio/src/radio-button.mjs.map +0 -1
  455. package/es/_virtual/element-plus/es/components/radio/src/radio-button2.mjs +0 -18
  456. package/es/_virtual/element-plus/es/components/radio/src/radio-button2.mjs.map +0 -1
  457. package/es/_virtual/element-plus/es/components/radio/src/radio-group.mjs +0 -48
  458. package/es/_virtual/element-plus/es/components/radio/src/radio-group.mjs.map +0 -1
  459. package/es/_virtual/element-plus/es/components/radio/src/radio-group2.mjs +0 -60
  460. package/es/_virtual/element-plus/es/components/radio/src/radio-group2.mjs.map +0 -1
  461. package/es/_virtual/element-plus/es/components/radio/src/radio.mjs +0 -48
  462. package/es/_virtual/element-plus/es/components/radio/src/radio.mjs.map +0 -1
  463. package/es/_virtual/element-plus/es/components/radio/src/radio2.mjs +0 -86
  464. package/es/_virtual/element-plus/es/components/radio/src/radio2.mjs.map +0 -1
  465. package/es/_virtual/element-plus/es/components/radio/src/use-radio.mjs +0 -37
  466. package/es/_virtual/element-plus/es/components/radio/src/use-radio.mjs.map +0 -1
  467. package/es/_virtual/element-plus/es/components/row/index.mjs +0 -8
  468. package/es/_virtual/element-plus/es/components/row/index.mjs.map +0 -1
  469. package/es/_virtual/element-plus/es/components/row/src/constants.mjs +0 -5
  470. package/es/_virtual/element-plus/es/components/row/src/constants.mjs.map +0 -1
  471. package/es/_virtual/element-plus/es/components/row/src/row.mjs +0 -33
  472. package/es/_virtual/element-plus/es/components/row/src/row.mjs.map +0 -1
  473. package/es/_virtual/element-plus/es/components/row/src/row2.mjs +0 -50
  474. package/es/_virtual/element-plus/es/components/row/src/row2.mjs.map +0 -1
  475. package/es/_virtual/element-plus/es/components/scrollbar/index.mjs +0 -8
  476. package/es/_virtual/element-plus/es/components/scrollbar/index.mjs.map +0 -1
  477. package/es/_virtual/element-plus/es/components/scrollbar/src/bar.mjs +0 -15
  478. package/es/_virtual/element-plus/es/components/scrollbar/src/bar.mjs.map +0 -1
  479. package/es/_virtual/element-plus/es/components/scrollbar/src/bar2.mjs +0 -48
  480. package/es/_virtual/element-plus/es/components/scrollbar/src/bar2.mjs.map +0 -1
  481. package/es/_virtual/element-plus/es/components/scrollbar/src/constants.mjs +0 -5
  482. package/es/_virtual/element-plus/es/components/scrollbar/src/constants.mjs.map +0 -1
  483. package/es/_virtual/element-plus/es/components/scrollbar/src/scrollbar.mjs +0 -70
  484. package/es/_virtual/element-plus/es/components/scrollbar/src/scrollbar.mjs.map +0 -1
  485. package/es/_virtual/element-plus/es/components/scrollbar/src/scrollbar2.mjs +0 -131
  486. package/es/_virtual/element-plus/es/components/scrollbar/src/scrollbar2.mjs.map +0 -1
  487. package/es/_virtual/element-plus/es/components/scrollbar/src/thumb.mjs +0 -15
  488. package/es/_virtual/element-plus/es/components/scrollbar/src/thumb.mjs.map +0 -1
  489. package/es/_virtual/element-plus/es/components/scrollbar/src/thumb2.mjs +0 -88
  490. package/es/_virtual/element-plus/es/components/scrollbar/src/thumb2.mjs.map +0 -1
  491. package/es/_virtual/element-plus/es/components/scrollbar/src/util.mjs +0 -35
  492. package/es/_virtual/element-plus/es/components/scrollbar/src/util.mjs.map +0 -1
  493. package/es/_virtual/element-plus/es/components/select/index.mjs +0 -15
  494. package/es/_virtual/element-plus/es/components/select/index.mjs.map +0 -1
  495. package/es/_virtual/element-plus/es/components/select/src/option-group.mjs +0 -76
  496. package/es/_virtual/element-plus/es/components/select/src/option-group.mjs.map +0 -1
  497. package/es/_virtual/element-plus/es/components/select/src/option.mjs +0 -84
  498. package/es/_virtual/element-plus/es/components/select/src/option.mjs.map +0 -1
  499. package/es/_virtual/element-plus/es/components/select/src/options.mjs +0 -27
  500. package/es/_virtual/element-plus/es/components/select/src/options.mjs.map +0 -1
  501. package/es/_virtual/element-plus/es/components/select/src/select-dropdown.mjs +0 -50
  502. package/es/_virtual/element-plus/es/components/select/src/select-dropdown.mjs.map +0 -1
  503. package/es/_virtual/element-plus/es/components/select/src/select.mjs +0 -128
  504. package/es/_virtual/element-plus/es/components/select/src/select.mjs.map +0 -1
  505. package/es/_virtual/element-plus/es/components/select/src/select2.mjs +0 -420
  506. package/es/_virtual/element-plus/es/components/select/src/select2.mjs.map +0 -1
  507. package/es/_virtual/element-plus/es/components/select/src/token.mjs +0 -6
  508. package/es/_virtual/element-plus/es/components/select/src/token.mjs.map +0 -1
  509. package/es/_virtual/element-plus/es/components/select/src/useOption.mjs +0 -50
  510. package/es/_virtual/element-plus/es/components/select/src/useOption.mjs.map +0 -1
  511. package/es/_virtual/element-plus/es/components/select/src/useSelect.mjs +0 -363
  512. package/es/_virtual/element-plus/es/components/select/src/useSelect.mjs.map +0 -1
  513. package/es/_virtual/element-plus/es/components/slot/src/only-child.mjs +0 -56
  514. package/es/_virtual/element-plus/es/components/slot/src/only-child.mjs.map +0 -1
  515. package/es/_virtual/element-plus/es/components/table/index.mjs +0 -12
  516. package/es/_virtual/element-plus/es/components/table/index.mjs.map +0 -1
  517. package/es/_virtual/element-plus/es/components/table/src/composables/use-scrollbar.mjs +0 -21
  518. package/es/_virtual/element-plus/es/components/table/src/composables/use-scrollbar.mjs.map +0 -1
  519. package/es/_virtual/element-plus/es/components/table/src/config.mjs +0 -165
  520. package/es/_virtual/element-plus/es/components/table/src/config.mjs.map +0 -1
  521. package/es/_virtual/element-plus/es/components/table/src/filter-panel.mjs +0 -217
  522. package/es/_virtual/element-plus/es/components/table/src/filter-panel.mjs.map +0 -1
  523. package/es/_virtual/element-plus/es/components/table/src/h-helper.mjs +0 -23
  524. package/es/_virtual/element-plus/es/components/table/src/h-helper.mjs.map +0 -1
  525. package/es/_virtual/element-plus/es/components/table/src/layout-observer.mjs +0 -51
  526. package/es/_virtual/element-plus/es/components/table/src/layout-observer.mjs.map +0 -1
  527. package/es/_virtual/element-plus/es/components/table/src/store/current.mjs +0 -46
  528. package/es/_virtual/element-plus/es/components/table/src/store/current.mjs.map +0 -1
  529. package/es/_virtual/element-plus/es/components/table/src/store/expand.mjs +0 -43
  530. package/es/_virtual/element-plus/es/components/table/src/store/expand.mjs.map +0 -1
  531. package/es/_virtual/element-plus/es/components/table/src/store/helper.mjs +0 -57
  532. package/es/_virtual/element-plus/es/components/table/src/store/helper.mjs.map +0 -1
  533. package/es/_virtual/element-plus/es/components/table/src/store/index.mjs +0 -111
  534. package/es/_virtual/element-plus/es/components/table/src/store/index.mjs.map +0 -1
  535. package/es/_virtual/element-plus/es/components/table/src/store/tree.mjs +0 -146
  536. package/es/_virtual/element-plus/es/components/table/src/store/tree.mjs.map +0 -1
  537. package/es/_virtual/element-plus/es/components/table/src/store/watcher.mjs +0 -295
  538. package/es/_virtual/element-plus/es/components/table/src/store/watcher.mjs.map +0 -1
  539. package/es/_virtual/element-plus/es/components/table/src/table/defaults.mjs +0 -89
  540. package/es/_virtual/element-plus/es/components/table/src/table/defaults.mjs.map +0 -1
  541. package/es/_virtual/element-plus/es/components/table/src/table/key-render-helper.mjs +0 -19
  542. package/es/_virtual/element-plus/es/components/table/src/table/key-render-helper.mjs.map +0 -1
  543. package/es/_virtual/element-plus/es/components/table/src/table/style-helper.mjs +0 -175
  544. package/es/_virtual/element-plus/es/components/table/src/table/style-helper.mjs.map +0 -1
  545. package/es/_virtual/element-plus/es/components/table/src/table/utils-helper.mjs +0 -36
  546. package/es/_virtual/element-plus/es/components/table/src/table/utils-helper.mjs.map +0 -1
  547. package/es/_virtual/element-plus/es/components/table/src/table-body/defaults.mjs +0 -26
  548. package/es/_virtual/element-plus/es/components/table/src/table-body/defaults.mjs.map +0 -1
  549. package/es/_virtual/element-plus/es/components/table/src/table-body/events-helper.mjs +0 -83
  550. package/es/_virtual/element-plus/es/components/table/src/table-body/events-helper.mjs.map +0 -1
  551. package/es/_virtual/element-plus/es/components/table/src/table-body/index.mjs +0 -65
  552. package/es/_virtual/element-plus/es/components/table/src/table-body/index.mjs.map +0 -1
  553. package/es/_virtual/element-plus/es/components/table/src/table-body/render-helper.mjs +0 -153
  554. package/es/_virtual/element-plus/es/components/table/src/table-body/render-helper.mjs.map +0 -1
  555. package/es/_virtual/element-plus/es/components/table/src/table-body/styles-helper.mjs +0 -71
  556. package/es/_virtual/element-plus/es/components/table/src/table-body/styles-helper.mjs.map +0 -1
  557. package/es/_virtual/element-plus/es/components/table/src/table-body/td-wrapper.mjs +0 -41
  558. package/es/_virtual/element-plus/es/components/table/src/table-body/td-wrapper.mjs.map +0 -1
  559. package/es/_virtual/element-plus/es/components/table/src/table-column/defaults.mjs +0 -61
  560. package/es/_virtual/element-plus/es/components/table/src/table-column/defaults.mjs.map +0 -1
  561. package/es/_virtual/element-plus/es/components/table/src/table-column/index.mjs +0 -120
  562. package/es/_virtual/element-plus/es/components/table/src/table-column/index.mjs.map +0 -1
  563. package/es/_virtual/element-plus/es/components/table/src/table-column/render-helper.mjs +0 -86
  564. package/es/_virtual/element-plus/es/components/table/src/table-column/render-helper.mjs.map +0 -1
  565. package/es/_virtual/element-plus/es/components/table/src/table-column/watcher-helper.mjs +0 -56
  566. package/es/_virtual/element-plus/es/components/table/src/table-column/watcher-helper.mjs.map +0 -1
  567. package/es/_virtual/element-plus/es/components/table/src/table-footer/index.mjs +0 -84
  568. package/es/_virtual/element-plus/es/components/table/src/table-footer/index.mjs.map +0 -1
  569. package/es/_virtual/element-plus/es/components/table/src/table-footer/mapState-helper.mjs +0 -17
  570. package/es/_virtual/element-plus/es/components/table/src/table-footer/mapState-helper.mjs.map +0 -1
  571. package/es/_virtual/element-plus/es/components/table/src/table-footer/style-helper.mjs +0 -27
  572. package/es/_virtual/element-plus/es/components/table/src/table-footer/style-helper.mjs.map +0 -1
  573. package/es/_virtual/element-plus/es/components/table/src/table-header/event-helper.mjs +0 -98
  574. package/es/_virtual/element-plus/es/components/table/src/table-header/event-helper.mjs.map +0 -1
  575. package/es/_virtual/element-plus/es/components/table/src/table-header/index.mjs +0 -205
  576. package/es/_virtual/element-plus/es/components/table/src/table-header/index.mjs.map +0 -1
  577. package/es/_virtual/element-plus/es/components/table/src/table-header/style.helper.mjs +0 -52
  578. package/es/_virtual/element-plus/es/components/table/src/table-header/style.helper.mjs.map +0 -1
  579. package/es/_virtual/element-plus/es/components/table/src/table-header/utils-helper.mjs +0 -46
  580. package/es/_virtual/element-plus/es/components/table/src/table-header/utils-helper.mjs.map +0 -1
  581. package/es/_virtual/element-plus/es/components/table/src/table-layout.mjs +0 -137
  582. package/es/_virtual/element-plus/es/components/table/src/table-layout.mjs.map +0 -1
  583. package/es/_virtual/element-plus/es/components/table/src/table.mjs +0 -354
  584. package/es/_virtual/element-plus/es/components/table/src/table.mjs.map +0 -1
  585. package/es/_virtual/element-plus/es/components/table/src/tokens.mjs +0 -5
  586. package/es/_virtual/element-plus/es/components/table/src/tokens.mjs.map +0 -1
  587. package/es/_virtual/element-plus/es/components/table/src/util.mjs +0 -272
  588. package/es/_virtual/element-plus/es/components/table/src/util.mjs.map +0 -1
  589. package/es/_virtual/element-plus/es/components/tag/index.mjs +0 -8
  590. package/es/_virtual/element-plus/es/components/tag/index.mjs.map +0 -1
  591. package/es/_virtual/element-plus/es/components/tag/src/tag.mjs +0 -103
  592. package/es/_virtual/element-plus/es/components/tag/src/tag.mjs.map +0 -1
  593. package/es/_virtual/element-plus/es/components/tag/src/tag2.mjs +0 -31
  594. package/es/_virtual/element-plus/es/components/tag/src/tag2.mjs.map +0 -1
  595. package/es/_virtual/element-plus/es/components/teleport/index.mjs +0 -8
  596. package/es/_virtual/element-plus/es/components/teleport/index.mjs.map +0 -1
  597. package/es/_virtual/element-plus/es/components/teleport/src/teleport.mjs +0 -12
  598. package/es/_virtual/element-plus/es/components/teleport/src/teleport.mjs.map +0 -1
  599. package/es/_virtual/element-plus/es/components/teleport/src/teleport2.mjs +0 -20
  600. package/es/_virtual/element-plus/es/components/teleport/src/teleport2.mjs.map +0 -1
  601. package/es/_virtual/element-plus/es/components/tooltip/index.mjs +0 -8
  602. package/es/_virtual/element-plus/es/components/tooltip/index.mjs.map +0 -1
  603. package/es/_virtual/element-plus/es/components/tooltip/src/constants.mjs +0 -5
  604. package/es/_virtual/element-plus/es/components/tooltip/src/constants.mjs.map +0 -1
  605. package/es/_virtual/element-plus/es/components/tooltip/src/content.mjs +0 -151
  606. package/es/_virtual/element-plus/es/components/tooltip/src/content.mjs.map +0 -1
  607. package/es/_virtual/element-plus/es/components/tooltip/src/content2.mjs +0 -41
  608. package/es/_virtual/element-plus/es/components/tooltip/src/content2.mjs.map +0 -1
  609. package/es/_virtual/element-plus/es/components/tooltip/src/tooltip.mjs +0 -44
  610. package/es/_virtual/element-plus/es/components/tooltip/src/tooltip.mjs.map +0 -1
  611. package/es/_virtual/element-plus/es/components/tooltip/src/tooltip2.mjs +0 -160
  612. package/es/_virtual/element-plus/es/components/tooltip/src/tooltip2.mjs.map +0 -1
  613. package/es/_virtual/element-plus/es/components/tooltip/src/trigger.mjs +0 -30
  614. package/es/_virtual/element-plus/es/components/tooltip/src/trigger.mjs.map +0 -1
  615. package/es/_virtual/element-plus/es/components/tooltip/src/trigger2.mjs +0 -64
  616. package/es/_virtual/element-plus/es/components/tooltip/src/trigger2.mjs.map +0 -1
  617. package/es/_virtual/element-plus/es/components/tooltip/src/utils.mjs +0 -10
  618. package/es/_virtual/element-plus/es/components/tooltip/src/utils.mjs.map +0 -1
  619. package/es/_virtual/element-plus/es/components/upload/index.mjs +0 -8
  620. package/es/_virtual/element-plus/es/components/upload/index.mjs.map +0 -1
  621. package/es/_virtual/element-plus/es/components/upload/src/ajax.mjs +0 -54
  622. package/es/_virtual/element-plus/es/components/upload/src/ajax.mjs.map +0 -1
  623. package/es/_virtual/element-plus/es/components/upload/src/constants.mjs +0 -5
  624. package/es/_virtual/element-plus/es/components/upload/src/constants.mjs.map +0 -1
  625. package/es/_virtual/element-plus/es/components/upload/src/upload-content.mjs +0 -49
  626. package/es/_virtual/element-plus/es/components/upload/src/upload-content.mjs.map +0 -1
  627. package/es/_virtual/element-plus/es/components/upload/src/upload-content2.mjs +0 -174
  628. package/es/_virtual/element-plus/es/components/upload/src/upload-content2.mjs.map +0 -1
  629. package/es/_virtual/element-plus/es/components/upload/src/upload-dragger.mjs +0 -15
  630. package/es/_virtual/element-plus/es/components/upload/src/upload-dragger.mjs.map +0 -1
  631. package/es/_virtual/element-plus/es/components/upload/src/upload-dragger2.mjs +0 -50
  632. package/es/_virtual/element-plus/es/components/upload/src/upload-dragger2.mjs.map +0 -1
  633. package/es/_virtual/element-plus/es/components/upload/src/upload-list.mjs +0 -33
  634. package/es/_virtual/element-plus/es/components/upload/src/upload-list.mjs.map +0 -1
  635. package/es/_virtual/element-plus/es/components/upload/src/upload-list2.mjs +0 -176
  636. package/es/_virtual/element-plus/es/components/upload/src/upload-list2.mjs.map +0 -1
  637. package/es/_virtual/element-plus/es/components/upload/src/upload.mjs +0 -115
  638. package/es/_virtual/element-plus/es/components/upload/src/upload.mjs.map +0 -1
  639. package/es/_virtual/element-plus/es/components/upload/src/upload2.mjs +0 -130
  640. package/es/_virtual/element-plus/es/components/upload/src/upload2.mjs.map +0 -1
  641. package/es/_virtual/element-plus/es/components/upload/src/use-handlers.mjs +0 -107
  642. package/es/_virtual/element-plus/es/components/upload/src/use-handlers.mjs.map +0 -1
  643. package/es/_virtual/element-plus/es/constants/aria.mjs +0 -16
  644. package/es/_virtual/element-plus/es/constants/aria.mjs.map +0 -1
  645. package/es/_virtual/element-plus/es/constants/event.mjs +0 -7
  646. package/es/_virtual/element-plus/es/constants/event.mjs.map +0 -1
  647. package/es/_virtual/element-plus/es/constants/size.mjs +0 -5
  648. package/es/_virtual/element-plus/es/constants/size.mjs.map +0 -1
  649. package/es/_virtual/element-plus/es/directives/click-outside/index.mjs +0 -45
  650. package/es/_virtual/element-plus/es/directives/click-outside/index.mjs.map +0 -1
  651. package/es/_virtual/element-plus/es/directives/mousewheel/index.mjs +0 -18
  652. package/es/_virtual/element-plus/es/directives/mousewheel/index.mjs.map +0 -1
  653. package/es/_virtual/element-plus/es/directives/repeat-click/index.mjs +0 -25
  654. package/es/_virtual/element-plus/es/directives/repeat-click/index.mjs.map +0 -1
  655. package/es/_virtual/element-plus/es/hooks/use-aria/index.mjs +0 -15
  656. package/es/_virtual/element-plus/es/hooks/use-aria/index.mjs.map +0 -1
  657. package/es/_virtual/element-plus/es/hooks/use-attrs/index.mjs +0 -14
  658. package/es/_virtual/element-plus/es/hooks/use-attrs/index.mjs.map +0 -1
  659. package/es/_virtual/element-plus/es/hooks/use-calc-input-width/index.mjs +0 -19
  660. package/es/_virtual/element-plus/es/hooks/use-calc-input-width/index.mjs.map +0 -1
  661. package/es/_virtual/element-plus/es/hooks/use-composition/index.mjs +0 -30
  662. package/es/_virtual/element-plus/es/hooks/use-composition/index.mjs.map +0 -1
  663. package/es/_virtual/element-plus/es/hooks/use-cursor/index.mjs +0 -40
  664. package/es/_virtual/element-plus/es/hooks/use-cursor/index.mjs.map +0 -1
  665. package/es/_virtual/element-plus/es/hooks/use-delayed-toggle/index.mjs +0 -50
  666. package/es/_virtual/element-plus/es/hooks/use-delayed-toggle/index.mjs.map +0 -1
  667. package/es/_virtual/element-plus/es/hooks/use-deprecated/index.mjs +0 -15
  668. package/es/_virtual/element-plus/es/hooks/use-deprecated/index.mjs.map +0 -1
  669. package/es/_virtual/element-plus/es/hooks/use-draggable/index.mjs +0 -42
  670. package/es/_virtual/element-plus/es/hooks/use-draggable/index.mjs.map +0 -1
  671. package/es/_virtual/element-plus/es/hooks/use-empty-values/index.mjs +0 -28
  672. package/es/_virtual/element-plus/es/hooks/use-empty-values/index.mjs.map +0 -1
  673. package/es/_virtual/element-plus/es/hooks/use-escape-keydown/index.mjs +0 -17
  674. package/es/_virtual/element-plus/es/hooks/use-escape-keydown/index.mjs.map +0 -1
  675. package/es/_virtual/element-plus/es/hooks/use-focus-controller/index.mjs +0 -35
  676. package/es/_virtual/element-plus/es/hooks/use-focus-controller/index.mjs.map +0 -1
  677. package/es/_virtual/element-plus/es/hooks/use-forward-ref/index.mjs +0 -24
  678. package/es/_virtual/element-plus/es/hooks/use-forward-ref/index.mjs.map +0 -1
  679. package/es/_virtual/element-plus/es/hooks/use-id/index.mjs +0 -23
  680. package/es/_virtual/element-plus/es/hooks/use-id/index.mjs.map +0 -1
  681. package/es/_virtual/element-plus/es/hooks/use-locale/index.mjs +0 -25
  682. package/es/_virtual/element-plus/es/hooks/use-locale/index.mjs.map +0 -1
  683. package/es/_virtual/element-plus/es/hooks/use-lockscreen/index.mjs +0 -31
  684. package/es/_virtual/element-plus/es/hooks/use-lockscreen/index.mjs.map +0 -1
  685. package/es/_virtual/element-plus/es/hooks/use-model-toggle/index.mjs +0 -73
  686. package/es/_virtual/element-plus/es/hooks/use-model-toggle/index.mjs.map +0 -1
  687. package/es/_virtual/element-plus/es/hooks/use-namespace/index.mjs +0 -45
  688. package/es/_virtual/element-plus/es/hooks/use-namespace/index.mjs.map +0 -1
  689. package/es/_virtual/element-plus/es/hooks/use-popper/index.mjs +0 -89
  690. package/es/_virtual/element-plus/es/hooks/use-popper/index.mjs.map +0 -1
  691. package/es/_virtual/element-plus/es/hooks/use-popper-container/index.mjs +0 -27
  692. package/es/_virtual/element-plus/es/hooks/use-popper-container/index.mjs.map +0 -1
  693. package/es/_virtual/element-plus/es/hooks/use-prop/index.mjs +0 -12
  694. package/es/_virtual/element-plus/es/hooks/use-prop/index.mjs.map +0 -1
  695. package/es/_virtual/element-plus/es/hooks/use-same-target/index.mjs +0 -17
  696. package/es/_virtual/element-plus/es/hooks/use-same-target/index.mjs.map +0 -1
  697. package/es/_virtual/element-plus/es/hooks/use-size/index.mjs +0 -17
  698. package/es/_virtual/element-plus/es/hooks/use-size/index.mjs.map +0 -1
  699. package/es/_virtual/element-plus/es/hooks/use-timeout/index.mjs +0 -15
  700. package/es/_virtual/element-plus/es/hooks/use-timeout/index.mjs.map +0 -1
  701. package/es/_virtual/element-plus/es/hooks/use-z-index/index.mjs +0 -25
  702. package/es/_virtual/element-plus/es/hooks/use-z-index/index.mjs.map +0 -1
  703. package/es/_virtual/element-plus/es/locale/lang/en.mjs +0 -183
  704. package/es/_virtual/element-plus/es/locale/lang/en.mjs.map +0 -1
  705. package/es/_virtual/element-plus/es/utils/browser.mjs +0 -9
  706. package/es/_virtual/element-plus/es/utils/browser.mjs.map +0 -1
  707. package/es/_virtual/element-plus/es/utils/dom/aria.mjs +0 -22
  708. package/es/_virtual/element-plus/es/utils/dom/aria.mjs.map +0 -1
  709. package/es/_virtual/element-plus/es/utils/dom/event.mjs +0 -9
  710. package/es/_virtual/element-plus/es/utils/dom/event.mjs.map +0 -1
  711. package/es/_virtual/element-plus/es/utils/dom/position.mjs +0 -17
  712. package/es/_virtual/element-plus/es/utils/dom/position.mjs.map +0 -1
  713. package/es/_virtual/element-plus/es/utils/dom/scroll.mjs +0 -61
  714. package/es/_virtual/element-plus/es/utils/dom/scroll.mjs.map +0 -1
  715. package/es/_virtual/element-plus/es/utils/dom/style.mjs +0 -48
  716. package/es/_virtual/element-plus/es/utils/dom/style.mjs.map +0 -1
  717. package/es/_virtual/element-plus/es/utils/error.mjs +0 -20
  718. package/es/_virtual/element-plus/es/utils/error.mjs.map +0 -1
  719. package/es/_virtual/element-plus/es/utils/i18n.mjs +0 -5
  720. package/es/_virtual/element-plus/es/utils/i18n.mjs.map +0 -1
  721. package/es/_virtual/element-plus/es/utils/objects.mjs +0 -15
  722. package/es/_virtual/element-plus/es/utils/objects.mjs.map +0 -1
  723. package/es/_virtual/element-plus/es/utils/raf.mjs +0 -6
  724. package/es/_virtual/element-plus/es/utils/raf.mjs.map +0 -1
  725. package/es/_virtual/element-plus/es/utils/strings.mjs +0 -5
  726. package/es/_virtual/element-plus/es/utils/strings.mjs.map +0 -1
  727. package/es/_virtual/element-plus/es/utils/types.mjs +0 -18
  728. package/es/_virtual/element-plus/es/utils/types.mjs.map +0 -1
  729. package/es/_virtual/element-plus/es/utils/typescript.mjs +0 -5
  730. package/es/_virtual/element-plus/es/utils/typescript.mjs.map +0 -1
  731. package/es/_virtual/element-plus/es/utils/vue/icon.mjs +0 -28
  732. package/es/_virtual/element-plus/es/utils/vue/icon.mjs.map +0 -1
  733. package/es/_virtual/element-plus/es/utils/vue/install.mjs +0 -21
  734. package/es/_virtual/element-plus/es/utils/vue/install.mjs.map +0 -1
  735. package/es/_virtual/element-plus/es/utils/vue/props/runtime.mjs +0 -32
  736. package/es/_virtual/element-plus/es/utils/vue/props/runtime.mjs.map +0 -1
  737. package/es/_virtual/element-plus/es/utils/vue/refs.mjs +0 -10
  738. package/es/_virtual/element-plus/es/utils/vue/refs.mjs.map +0 -1
  739. package/es/_virtual/element-plus/es/utils/vue/vnode.mjs +0 -6
  740. package/es/_virtual/element-plus/es/utils/vue/vnode.mjs.map +0 -1
  741. package/es/_virtual/element-plus/theme-chalk/src/tooltip.scss.mjs +0 -2
  742. package/es/_virtual/element-plus/theme-chalk/src/tooltip.scss.mjs.map +0 -1
  743. package/es/_virtual/index.mjs +0 -3
  744. package/es/_virtual/index.mjs.map +0 -1
  745. package/es/_virtual/index10.mjs +0 -3
  746. package/es/_virtual/index10.mjs.map +0 -1
  747. package/es/_virtual/index11.mjs +0 -3
  748. package/es/_virtual/index11.mjs.map +0 -1
  749. package/es/_virtual/index12.mjs +0 -3
  750. package/es/_virtual/index12.mjs.map +0 -1
  751. package/es/_virtual/index13.mjs +0 -3
  752. package/es/_virtual/index13.mjs.map +0 -1
  753. package/es/_virtual/index14.mjs +0 -3
  754. package/es/_virtual/index14.mjs.map +0 -1
  755. package/es/_virtual/index15.mjs +0 -3
  756. package/es/_virtual/index15.mjs.map +0 -1
  757. package/es/_virtual/index16.mjs +0 -12
  758. package/es/_virtual/index16.mjs.map +0 -1
  759. package/es/_virtual/index17.mjs +0 -5
  760. package/es/_virtual/index17.mjs.map +0 -1
  761. package/es/_virtual/index18.mjs +0 -5
  762. package/es/_virtual/index18.mjs.map +0 -1
  763. package/es/_virtual/index19.mjs +0 -5
  764. package/es/_virtual/index19.mjs.map +0 -1
  765. package/es/_virtual/index2.mjs +0 -3
  766. package/es/_virtual/index2.mjs.map +0 -1
  767. package/es/_virtual/index20.mjs +0 -5
  768. package/es/_virtual/index20.mjs.map +0 -1
  769. package/es/_virtual/index21.mjs +0 -5
  770. package/es/_virtual/index21.mjs.map +0 -1
  771. package/es/_virtual/index22.mjs +0 -5
  772. package/es/_virtual/index22.mjs.map +0 -1
  773. package/es/_virtual/index23.mjs +0 -5
  774. package/es/_virtual/index23.mjs.map +0 -1
  775. package/es/_virtual/index24.mjs +0 -5
  776. package/es/_virtual/index24.mjs.map +0 -1
  777. package/es/_virtual/index25.mjs +0 -5
  778. package/es/_virtual/index25.mjs.map +0 -1
  779. package/es/_virtual/index26.mjs +0 -5
  780. package/es/_virtual/index26.mjs.map +0 -1
  781. package/es/_virtual/index27.mjs +0 -5
  782. package/es/_virtual/index27.mjs.map +0 -1
  783. package/es/_virtual/index28.mjs +0 -5
  784. package/es/_virtual/index28.mjs.map +0 -1
  785. package/es/_virtual/index29.mjs +0 -5
  786. package/es/_virtual/index29.mjs.map +0 -1
  787. package/es/_virtual/index3.mjs +0 -3
  788. package/es/_virtual/index3.mjs.map +0 -1
  789. package/es/_virtual/index30.mjs +0 -5
  790. package/es/_virtual/index30.mjs.map +0 -1
  791. package/es/_virtual/index31.mjs +0 -5
  792. package/es/_virtual/index31.mjs.map +0 -1
  793. package/es/_virtual/index32.mjs +0 -5
  794. package/es/_virtual/index32.mjs.map +0 -1
  795. package/es/_virtual/index4.mjs +0 -3
  796. package/es/_virtual/index4.mjs.map +0 -1
  797. package/es/_virtual/index5.mjs +0 -3
  798. package/es/_virtual/index5.mjs.map +0 -1
  799. package/es/_virtual/index6.mjs +0 -3
  800. package/es/_virtual/index6.mjs.map +0 -1
  801. package/es/_virtual/index7.mjs +0 -3
  802. package/es/_virtual/index7.mjs.map +0 -1
  803. package/es/_virtual/index8.mjs +0 -3
  804. package/es/_virtual/index8.mjs.map +0 -1
  805. package/es/_virtual/index9.mjs +0 -3
  806. package/es/_virtual/index9.mjs.map +0 -1
  807. package/es/_virtual/model.mjs +0 -5
  808. package/es/_virtual/model.mjs.map +0 -1
  809. package/es/_virtual/normalize-wheel-es/dist/index.mjs +0 -89
  810. package/es/_virtual/normalize-wheel-es/dist/index.mjs.map +0 -1
  811. package/es/_virtual/plugin.mjs +0 -5
  812. package/es/_virtual/plugin.mjs.map +0 -1
  813. package/es/_virtual/plugin10.mjs +0 -5
  814. package/es/_virtual/plugin10.mjs.map +0 -1
  815. package/es/_virtual/plugin11.mjs +0 -5
  816. package/es/_virtual/plugin11.mjs.map +0 -1
  817. package/es/_virtual/plugin12.mjs +0 -5
  818. package/es/_virtual/plugin12.mjs.map +0 -1
  819. package/es/_virtual/plugin13.mjs +0 -5
  820. package/es/_virtual/plugin13.mjs.map +0 -1
  821. package/es/_virtual/plugin14.mjs +0 -5
  822. package/es/_virtual/plugin14.mjs.map +0 -1
  823. package/es/_virtual/plugin2.mjs +0 -5
  824. package/es/_virtual/plugin2.mjs.map +0 -1
  825. package/es/_virtual/plugin3.mjs +0 -5
  826. package/es/_virtual/plugin3.mjs.map +0 -1
  827. package/es/_virtual/plugin4.mjs +0 -5
  828. package/es/_virtual/plugin4.mjs.map +0 -1
  829. package/es/_virtual/plugin5.mjs +0 -5
  830. package/es/_virtual/plugin5.mjs.map +0 -1
  831. package/es/_virtual/plugin6.mjs +0 -5
  832. package/es/_virtual/plugin6.mjs.map +0 -1
  833. package/es/_virtual/plugin7.mjs +0 -5
  834. package/es/_virtual/plugin7.mjs.map +0 -1
  835. package/es/_virtual/plugin8.mjs +0 -5
  836. package/es/_virtual/plugin8.mjs.map +0 -1
  837. package/es/_virtual/plugin9.mjs +0 -5
  838. package/es/_virtual/plugin9.mjs.map +0 -1
  839. package/es/_virtual/theme.mjs +0 -3
  840. package/es/_virtual/theme.mjs.map +0 -1
  841. package/es/_virtual/theme2.mjs +0 -5
  842. package/es/_virtual/theme2.mjs.map +0 -1
  843. package/es/_virtual/tinymce/icons/default/icons.mjs +0 -229
  844. package/es/_virtual/tinymce/icons/default/icons.mjs.map +0 -1
  845. package/es/_virtual/tinymce/models/dom/index.mjs +0 -10
  846. package/es/_virtual/tinymce/models/dom/index.mjs.map +0 -1
  847. package/es/_virtual/tinymce/models/dom/model.mjs +0 -4282
  848. package/es/_virtual/tinymce/models/dom/model.mjs.map +0 -1
  849. package/es/_virtual/tinymce/plugins/autolink/index.mjs +0 -10
  850. package/es/_virtual/tinymce/plugins/autolink/index.mjs.map +0 -1
  851. package/es/_virtual/tinymce/plugins/autolink/plugin.mjs +0 -112
  852. package/es/_virtual/tinymce/plugins/autolink/plugin.mjs.map +0 -1
  853. package/es/_virtual/tinymce/plugins/autoresize/index.mjs +0 -10
  854. package/es/_virtual/tinymce/plugins/autoresize/index.mjs.map +0 -1
  855. package/es/_virtual/tinymce/plugins/autoresize/plugin.mjs +0 -106
  856. package/es/_virtual/tinymce/plugins/autoresize/plugin.mjs.map +0 -1
  857. package/es/_virtual/tinymce/plugins/code/index.mjs +0 -10
  858. package/es/_virtual/tinymce/plugins/code/index.mjs.map +0 -1
  859. package/es/_virtual/tinymce/plugins/code/plugin.mjs +0 -65
  860. package/es/_virtual/tinymce/plugins/code/plugin.mjs.map +0 -1
  861. package/es/_virtual/tinymce/plugins/fullscreen/index.mjs +0 -10
  862. package/es/_virtual/tinymce/plugins/fullscreen/index.mjs.map +0 -1
  863. package/es/_virtual/tinymce/plugins/fullscreen/plugin.mjs +0 -703
  864. package/es/_virtual/tinymce/plugins/fullscreen/plugin.mjs.map +0 -1
  865. package/es/_virtual/tinymce/plugins/image/index.mjs +0 -10
  866. package/es/_virtual/tinymce/plugins/image/index.mjs.map +0 -1
  867. package/es/_virtual/tinymce/plugins/image/plugin.mjs +0 -882
  868. package/es/_virtual/tinymce/plugins/image/plugin.mjs.map +0 -1
  869. package/es/_virtual/tinymce/plugins/insertdatetime/index.mjs +0 -10
  870. package/es/_virtual/tinymce/plugins/insertdatetime/index.mjs.map +0 -1
  871. package/es/_virtual/tinymce/plugins/insertdatetime/plugin.mjs +0 -115
  872. package/es/_virtual/tinymce/plugins/insertdatetime/plugin.mjs.map +0 -1
  873. package/es/_virtual/tinymce/plugins/link/index.mjs +0 -10
  874. package/es/_virtual/tinymce/plugins/link/index.mjs.map +0 -1
  875. package/es/_virtual/tinymce/plugins/link/plugin.mjs +0 -815
  876. package/es/_virtual/tinymce/plugins/link/plugin.mjs.map +0 -1
  877. package/es/_virtual/tinymce/plugins/lists/index.mjs +0 -10
  878. package/es/_virtual/tinymce/plugins/lists/index.mjs.map +0 -1
  879. package/es/_virtual/tinymce/plugins/lists/plugin.mjs +0 -1169
  880. package/es/_virtual/tinymce/plugins/lists/plugin.mjs.map +0 -1
  881. package/es/_virtual/tinymce/plugins/media/index.mjs +0 -10
  882. package/es/_virtual/tinymce/plugins/media/index.mjs.map +0 -1
  883. package/es/_virtual/tinymce/plugins/media/plugin.mjs +0 -777
  884. package/es/_virtual/tinymce/plugins/media/plugin.mjs.map +0 -1
  885. package/es/_virtual/tinymce/plugins/nonbreaking/index.mjs +0 -10
  886. package/es/_virtual/tinymce/plugins/nonbreaking/index.mjs.map +0 -1
  887. package/es/_virtual/tinymce/plugins/nonbreaking/plugin.mjs +0 -79
  888. package/es/_virtual/tinymce/plugins/nonbreaking/plugin.mjs.map +0 -1
  889. package/es/_virtual/tinymce/plugins/preview/index.mjs +0 -10
  890. package/es/_virtual/tinymce/plugins/preview/index.mjs.map +0 -1
  891. package/es/_virtual/tinymce/plugins/preview/plugin.mjs +0 -384
  892. package/es/_virtual/tinymce/plugins/preview/plugin.mjs.map +0 -1
  893. package/es/_virtual/tinymce/plugins/searchreplace/index.mjs +0 -10
  894. package/es/_virtual/tinymce/plugins/searchreplace/index.mjs.map +0 -1
  895. package/es/_virtual/tinymce/plugins/searchreplace/plugin.mjs +0 -675
  896. package/es/_virtual/tinymce/plugins/searchreplace/plugin.mjs.map +0 -1
  897. package/es/_virtual/tinymce/plugins/table/index.mjs +0 -10
  898. package/es/_virtual/tinymce/plugins/table/index.mjs.map +0 -1
  899. package/es/_virtual/tinymce/plugins/table/plugin.mjs +0 -2147
  900. package/es/_virtual/tinymce/plugins/table/plugin.mjs.map +0 -1
  901. package/es/_virtual/tinymce/plugins/wordcount/index.mjs +0 -10
  902. package/es/_virtual/tinymce/plugins/wordcount/index.mjs.map +0 -1
  903. package/es/_virtual/tinymce/plugins/wordcount/plugin.mjs +0 -270
  904. package/es/_virtual/tinymce/plugins/wordcount/plugin.mjs.map +0 -1
  905. package/es/_virtual/tinymce/themes/silver/theme.mjs +0 -21392
  906. package/es/_virtual/tinymce/themes/silver/theme.mjs.map +0 -1
  907. package/es/_virtual/tinymce/tinymce.mjs +0 -16923
  908. package/es/_virtual/tinymce/tinymce.mjs.map +0 -1
  909. package/es/_virtual/tinymce.mjs +0 -8
  910. package/es/_virtual/tinymce.mjs.map +0 -1
  911. package/es/_virtual/tinymce2.mjs +0 -5
  912. package/es/_virtual/tinymce2.mjs.map +0 -1
  913. package/es/_virtual/xlsx/xlsx.mjs +0 -15604
  914. package/es/_virtual/xlsx/xlsx.mjs.map +0 -1
  915. package/es/components.css +0 -1
  916. package/es/index.d.ts +0 -6
  917. package/es/index.mjs +0 -28
  918. package/es/index.mjs.map +0 -1
  919. package/es/package.json.mjs +0 -5
  920. package/es/package.json.mjs.map +0 -1
  921. package/es/packages/hooks/src/use-namespace.mjs +0 -50
  922. package/es/packages/hooks/src/use-namespace.mjs.map +0 -1
  923. package/es/packages/utils/src/device.mjs +0 -8
  924. package/es/packages/utils/src/device.mjs.map +0 -1
  925. package/es/packages/utils/src/json.mjs +0 -15
  926. package/es/packages/utils/src/json.mjs.map +0 -1
  927. package/es/public/tiny-mce-editor/tinymce/langs/zh-Hans.js +0 -7
  928. package/es/public/tiny-mce-editor/tinymce/skins/content/dark/content.css +0 -78
  929. package/es/public/tiny-mce-editor/tinymce/skins/content/dark/content.min.css +0 -21
  930. package/es/public/tiny-mce-editor/tinymce/skins/content/default/content.css +0 -72
  931. package/es/public/tiny-mce-editor/tinymce/skins/content/default/content.min.css +0 -20
  932. package/es/public/tiny-mce-editor/tinymce/skins/content/document/content.css +0 -77
  933. package/es/public/tiny-mce-editor/tinymce/skins/content/document/content.min.css +0 -21
  934. package/es/public/tiny-mce-editor/tinymce/skins/content/tinymce-5/content.css +0 -72
  935. package/es/public/tiny-mce-editor/tinymce/skins/content/tinymce-5/content.min.css +0 -20
  936. package/es/public/tiny-mce-editor/tinymce/skins/content/tinymce-5-dark/content.css +0 -78
  937. package/es/public/tiny-mce-editor/tinymce/skins/content/tinymce-5-dark/content.min.css +0 -21
  938. package/es/public/tiny-mce-editor/tinymce/skins/content/writer/content.css +0 -73
  939. package/es/public/tiny-mce-editor/tinymce/skins/content/writer/content.min.css +0 -20
  940. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide/content.css +0 -775
  941. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide/content.inline.css +0 -769
  942. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide/content.inline.min.css +0 -310
  943. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide/content.min.css +0 -312
  944. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide/skin.css +0 -3109
  945. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide/skin.min.css +0 -771
  946. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide/skin.shadowdom.css +0 -35
  947. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide/skin.shadowdom.min.css +0 -10
  948. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/content.css +0 -756
  949. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/content.inline.css +0 -769
  950. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/content.inline.min.css +0 -310
  951. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/content.min.css +0 -299
  952. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/skin.css +0 -3112
  953. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/skin.min.css +0 -772
  954. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +0 -35
  955. package/es/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +0 -10
  956. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/content.css +0 -775
  957. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/content.inline.css +0 -769
  958. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/content.inline.min.css +0 -310
  959. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/content.min.css +0 -312
  960. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/skin.css +0 -3199
  961. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/skin.min.css +0 -812
  962. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/skin.shadowdom.css +0 -35
  963. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +0 -10
  964. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/content.css +0 -756
  965. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/content.inline.css +0 -769
  966. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +0 -310
  967. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/content.min.css +0 -299
  968. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/skin.css +0 -3199
  969. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/skin.min.css +0 -812
  970. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css +0 -35
  971. package/es/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +0 -10
  972. package/es/src/base/style/css.d.ts +0 -1
  973. package/es/src/base/style/index.d.ts +0 -1
  974. package/es/src/components.d.ts +0 -10
  975. package/es/src/components.mjs +0 -23
  976. package/es/src/components.mjs.map +0 -1
  977. package/es/src/data-chart/index.d.ts +0 -19
  978. package/es/src/data-chart/index.mjs +0 -8
  979. package/es/src/data-chart/index.mjs.map +0 -1
  980. package/es/src/data-chart/src/analyze.d.ts +0 -23
  981. package/es/src/data-chart/src/components/area.vue.mjs +0 -9
  982. package/es/src/data-chart/src/components/area.vue.mjs.map +0 -1
  983. package/es/src/data-chart/src/components/area.vue2.mjs +0 -155
  984. package/es/src/data-chart/src/components/area.vue2.mjs.map +0 -1
  985. package/es/src/data-chart/src/components/bar.vue.mjs +0 -8
  986. package/es/src/data-chart/src/components/bar.vue.mjs.map +0 -1
  987. package/es/src/data-chart/src/components/bar.vue2.mjs +0 -125
  988. package/es/src/data-chart/src/components/bar.vue2.mjs.map +0 -1
  989. package/es/src/data-chart/src/components/card.vue.mjs +0 -9
  990. package/es/src/data-chart/src/components/card.vue.mjs.map +0 -1
  991. package/es/src/data-chart/src/components/card.vue2.mjs +0 -94
  992. package/es/src/data-chart/src/components/card.vue2.mjs.map +0 -1
  993. package/es/src/data-chart/src/components/empty.svg.mjs +0 -5
  994. package/es/src/data-chart/src/components/empty.svg.mjs.map +0 -1
  995. package/es/src/data-chart/src/components/empty.svg2.mjs +0 -5
  996. package/es/src/data-chart/src/components/empty.svg2.mjs.map +0 -1
  997. package/es/src/data-chart/src/components/empty.vue.mjs +0 -9
  998. package/es/src/data-chart/src/components/empty.vue.mjs.map +0 -1
  999. package/es/src/data-chart/src/components/empty.vue2.mjs +0 -27
  1000. package/es/src/data-chart/src/components/empty.vue2.mjs.map +0 -1
  1001. package/es/src/data-chart/src/components/funnel.vue.mjs +0 -8
  1002. package/es/src/data-chart/src/components/funnel.vue.mjs.map +0 -1
  1003. package/es/src/data-chart/src/components/funnel.vue2.mjs +0 -67
  1004. package/es/src/data-chart/src/components/funnel.vue2.mjs.map +0 -1
  1005. package/es/src/data-chart/src/components/line.vue.mjs +0 -9
  1006. package/es/src/data-chart/src/components/line.vue.mjs.map +0 -1
  1007. package/es/src/data-chart/src/components/line.vue2.mjs +0 -105
  1008. package/es/src/data-chart/src/components/line.vue2.mjs.map +0 -1
  1009. package/es/src/data-chart/src/components/pie.vue.mjs +0 -8
  1010. package/es/src/data-chart/src/components/pie.vue.mjs.map +0 -1
  1011. package/es/src/data-chart/src/components/pie.vue2.mjs +0 -107
  1012. package/es/src/data-chart/src/components/pie.vue2.mjs.map +0 -1
  1013. package/es/src/data-chart/src/components/radar.vue.mjs +0 -8
  1014. package/es/src/data-chart/src/components/radar.vue.mjs.map +0 -1
  1015. package/es/src/data-chart/src/components/radar.vue2.mjs +0 -65
  1016. package/es/src/data-chart/src/components/radar.vue2.mjs.map +0 -1
  1017. package/es/src/data-chart/src/components/scatter-simple.vue.mjs +0 -8
  1018. package/es/src/data-chart/src/components/scatter-simple.vue.mjs.map +0 -1
  1019. package/es/src/data-chart/src/components/scatter-simple.vue2.mjs +0 -52
  1020. package/es/src/data-chart/src/components/scatter-simple.vue2.mjs.map +0 -1
  1021. package/es/src/data-chart/src/components/scatter.vue.mjs +0 -8
  1022. package/es/src/data-chart/src/components/scatter.vue.mjs.map +0 -1
  1023. package/es/src/data-chart/src/components/scatter.vue2.mjs +0 -67
  1024. package/es/src/data-chart/src/components/scatter.vue2.mjs.map +0 -1
  1025. package/es/src/data-chart/src/components/table.vue.mjs +0 -9
  1026. package/es/src/data-chart/src/components/table.vue.mjs.map +0 -1
  1027. package/es/src/data-chart/src/components/table.vue2.mjs +0 -94
  1028. package/es/src/data-chart/src/components/table.vue2.mjs.map +0 -1
  1029. package/es/src/data-chart/src/data-chart.vue.d.ts +0 -143
  1030. package/es/src/data-chart/src/data-chart.vue.mjs +0 -9
  1031. package/es/src/data-chart/src/data-chart.vue.mjs.map +0 -1
  1032. package/es/src/data-chart/src/data-chart.vue2.mjs +0 -85
  1033. package/es/src/data-chart/src/data-chart.vue2.mjs.map +0 -1
  1034. package/es/src/data-chart/src/utils/config.d.ts +0 -41
  1035. package/es/src/data-chart/src/utils/config.mjs +0 -417
  1036. package/es/src/data-chart/src/utils/config.mjs.map +0 -1
  1037. package/es/src/data-chart/src/utils/injectionKeys.d.ts +0 -3
  1038. package/es/src/data-chart/src/utils/injectionKeys.mjs +0 -5
  1039. package/es/src/data-chart/src/utils/injectionKeys.mjs.map +0 -1
  1040. package/es/src/data-chart/src/utils/useCharts.d.ts +0 -16
  1041. package/es/src/data-chart/src/utils/useCharts.mjs +0 -132
  1042. package/es/src/data-chart/src/utils/useCharts.mjs.map +0 -1
  1043. package/es/src/data-chart/style/index.d.ts +0 -1
  1044. package/es/src/defaults.d.ts +0 -5
  1045. package/es/src/defaults.mjs +0 -7
  1046. package/es/src/defaults.mjs.map +0 -1
  1047. package/es/src/file-upload/index.d.ts +0 -36
  1048. package/es/src/file-upload/index.mjs +0 -8
  1049. package/es/src/file-upload/index.mjs.map +0 -1
  1050. package/es/src/file-upload/src/file-upload.vue.d.ts +0 -37
  1051. package/es/src/file-upload/src/file-upload.vue.mjs +0 -8
  1052. package/es/src/file-upload/src/file-upload.vue.mjs.map +0 -1
  1053. package/es/src/file-upload/src/file-upload.vue2.mjs +0 -92
  1054. package/es/src/file-upload/src/file-upload.vue2.mjs.map +0 -1
  1055. package/es/src/file-upload/style/index.d.ts +0 -1
  1056. package/es/src/fixed-action-bar/index.d.ts +0 -40
  1057. package/es/src/fixed-action-bar/index.mjs +0 -8
  1058. package/es/src/fixed-action-bar/index.mjs.map +0 -1
  1059. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts +0 -21
  1060. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs +0 -8
  1061. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs.map +0 -1
  1062. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs +0 -67
  1063. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs.map +0 -1
  1064. package/es/src/fixed-action-bar/style/index.d.ts +0 -1
  1065. package/es/src/image-upload/index.d.ts +0 -46
  1066. package/es/src/image-upload/index.mjs +0 -8
  1067. package/es/src/image-upload/index.mjs.map +0 -1
  1068. package/es/src/image-upload/src/image-upload.vue.d.ts +0 -47
  1069. package/es/src/image-upload/src/image-upload.vue.mjs +0 -8
  1070. package/es/src/image-upload/src/image-upload.vue.mjs.map +0 -1
  1071. package/es/src/image-upload/src/image-upload.vue2.mjs +0 -177
  1072. package/es/src/image-upload/src/image-upload.vue2.mjs.map +0 -1
  1073. package/es/src/image-upload/style/index.d.ts +0 -1
  1074. package/es/src/make-installer.d.ts +0 -9
  1075. package/es/src/make-installer.mjs +0 -14
  1076. package/es/src/make-installer.mjs.map +0 -1
  1077. package/es/src/photo-crop-tool/index.d.ts +0 -54
  1078. package/es/src/photo-crop-tool/index.mjs +0 -8
  1079. package/es/src/photo-crop-tool/index.mjs.map +0 -1
  1080. package/es/src/photo-crop-tool/src/composables.d.ts +0 -6
  1081. package/es/src/photo-crop-tool/src/composables.mjs +0 -34
  1082. package/es/src/photo-crop-tool/src/composables.mjs.map +0 -1
  1083. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts +0 -65
  1084. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs +0 -8
  1085. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs.map +0 -1
  1086. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs +0 -256
  1087. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs.map +0 -1
  1088. package/es/src/photo-crop-tool/style/index.d.ts +0 -1
  1089. package/es/src/subject-action/index.d.ts +0 -78
  1090. package/es/src/subject-action/index.mjs +0 -8
  1091. package/es/src/subject-action/index.mjs.map +0 -1
  1092. package/es/src/subject-action/src/subject-action.vue.d.ts +0 -77
  1093. package/es/src/subject-action/src/subject-action.vue.mjs +0 -8
  1094. package/es/src/subject-action/src/subject-action.vue.mjs.map +0 -1
  1095. package/es/src/subject-action/src/subject-action.vue2.mjs +0 -277
  1096. package/es/src/subject-action/src/subject-action.vue2.mjs.map +0 -1
  1097. package/es/src/subject-action/style/index.d.ts +0 -1
  1098. package/es/src/subject-layout/index.d.ts +0 -27
  1099. package/es/src/subject-layout/index.mjs +0 -8
  1100. package/es/src/subject-layout/index.mjs.map +0 -1
  1101. package/es/src/subject-layout/src/subject-layout.vue.d.ts +0 -17
  1102. package/es/src/subject-layout/src/subject-layout.vue.mjs +0 -8
  1103. package/es/src/subject-layout/src/subject-layout.vue.mjs.map +0 -1
  1104. package/es/src/subject-layout/src/subject-layout.vue2.mjs +0 -25
  1105. package/es/src/subject-layout/src/subject-layout.vue2.mjs.map +0 -1
  1106. package/es/src/subject-layout/style/index.d.ts +0 -1
  1107. package/es/src/subject-list/index.d.ts +0 -18
  1108. package/es/src/subject-list/index.mjs +0 -8
  1109. package/es/src/subject-list/index.mjs.map +0 -1
  1110. package/es/src/subject-list/src/components/SubjectPageEnd.vue.d.ts +0 -30
  1111. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs +0 -8
  1112. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs.map +0 -1
  1113. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs +0 -69
  1114. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs.map +0 -1
  1115. package/es/src/subject-list/src/components/SubjectRichText.vue.d.ts +0 -32
  1116. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs +0 -8
  1117. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs.map +0 -1
  1118. package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs +0 -76
  1119. package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs.map +0 -1
  1120. package/es/src/subject-list/src/components/subject-blank-fill.vue.d.ts +0 -46
  1121. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs +0 -8
  1122. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs.map +0 -1
  1123. package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs +0 -307
  1124. package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs.map +0 -1
  1125. package/es/src/subject-list/src/components/subject-scale.vue.d.ts +0 -40
  1126. package/es/src/subject-list/src/components/subject-scale.vue.mjs +0 -8
  1127. package/es/src/subject-list/src/components/subject-scale.vue.mjs.map +0 -1
  1128. package/es/src/subject-list/src/components/subject-scale.vue2.mjs +0 -290
  1129. package/es/src/subject-list/src/components/subject-scale.vue2.mjs.map +0 -1
  1130. package/es/src/subject-list/src/components/subject-single.vue.d.ts +0 -46
  1131. package/es/src/subject-list/src/components/subject-single.vue.mjs +0 -8
  1132. package/es/src/subject-list/src/components/subject-single.vue.mjs.map +0 -1
  1133. package/es/src/subject-list/src/components/subject-single.vue2.mjs +0 -487
  1134. package/es/src/subject-list/src/components/subject-single.vue2.mjs.map +0 -1
  1135. package/es/src/subject-list/src/components/subject-text-fill.vue.d.ts +0 -50
  1136. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs +0 -8
  1137. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs.map +0 -1
  1138. package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs +0 -371
  1139. package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs.map +0 -1
  1140. package/es/src/subject-list/src/subject-list.vue.d.ts +0 -20
  1141. package/es/src/subject-list/src/subject-list.vue.mjs +0 -8
  1142. package/es/src/subject-list/src/subject-list.vue.mjs.map +0 -1
  1143. package/es/src/subject-list/src/subject-list.vue2.mjs +0 -238
  1144. package/es/src/subject-list/src/subject-list.vue2.mjs.map +0 -1
  1145. package/es/src/subject-list/style/index.d.ts +0 -1
  1146. package/es/src/subject-type/index.d.ts +0 -7
  1147. package/es/src/subject-type/index.mjs +0 -8
  1148. package/es/src/subject-type/index.mjs.map +0 -1
  1149. package/es/src/subject-type/src/subject-type.vue.d.ts +0 -6
  1150. package/es/src/subject-type/src/subject-type.vue.mjs +0 -8
  1151. package/es/src/subject-type/src/subject-type.vue.mjs.map +0 -1
  1152. package/es/src/subject-type/src/subject-type.vue2.mjs +0 -97
  1153. package/es/src/subject-type/src/subject-type.vue2.mjs.map +0 -1
  1154. package/es/src/subject-type/style/index.d.ts +0 -1
  1155. package/es/src/tiny-mce-editor/index.d.ts +0 -17
  1156. package/es/src/tiny-mce-editor/index.mjs +0 -8
  1157. package/es/src/tiny-mce-editor/index.mjs.map +0 -1
  1158. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.d.ts +0 -18
  1159. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs +0 -8
  1160. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs.map +0 -1
  1161. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue2.mjs +0 -141
  1162. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue2.mjs.map +0 -1
  1163. package/es/src/tiny-mce-editor/style/index.d.ts +0 -1
  1164. package/es/src/withInstall.d.ts +0 -4
  1165. package/es/src/withInstall.mjs +0 -10
  1166. package/es/src/withInstall.mjs.map +0 -1
  1167. package/es/theme-chalk/base.css +0 -658
  1168. package/es/theme-chalk/base.scss +0 -18
  1169. package/es/theme-chalk/common/element-plus.css +0 -402
  1170. package/es/theme-chalk/common/element-plus.scss +0 -605
  1171. package/es/theme-chalk/common/popup.css +0 -37
  1172. package/es/theme-chalk/common/popup.scss +0 -43
  1173. package/es/theme-chalk/common/transition.css +0 -119
  1174. package/es/theme-chalk/common/transition.scss +0 -126
  1175. package/es/theme-chalk/common/var.css +0 -1
  1176. package/es/theme-chalk/common/var.scss +0 -1511
  1177. package/es/theme-chalk/data-chart.css +0 -4
  1178. package/es/theme-chalk/data-chart.scss +0 -7
  1179. package/es/theme-chalk/file-upload.css +0 -23
  1180. package/es/theme-chalk/file-upload.scss +0 -33
  1181. package/es/theme-chalk/fixed-action-bar.css +0 -14
  1182. package/es/theme-chalk/fixed-action-bar.scss +0 -18
  1183. package/es/theme-chalk/image-upload.css +0 -117
  1184. package/es/theme-chalk/image-upload.scss +0 -136
  1185. package/es/theme-chalk/index.css +0 -1202
  1186. package/es/theme-chalk/index.scss +0 -13
  1187. package/es/theme-chalk/mixins/_col.css +0 -1
  1188. package/es/theme-chalk/mixins/_col.scss +0 -33
  1189. package/es/theme-chalk/mixins/_var.css +0 -1
  1190. package/es/theme-chalk/mixins/_var.scss +0 -87
  1191. package/es/theme-chalk/mixins/config.css +0 -0
  1192. package/es/theme-chalk/mixins/config.scss +0 -5
  1193. package/es/theme-chalk/mixins/function.css +0 -0
  1194. package/es/theme-chalk/mixins/function.scss +0 -95
  1195. package/es/theme-chalk/mixins/mixins.css +0 -1
  1196. package/es/theme-chalk/mixins/mixins.scss +0 -236
  1197. package/es/theme-chalk/mixins/utils.css +0 -0
  1198. package/es/theme-chalk/mixins/utils.scss +0 -39
  1199. package/es/theme-chalk/photo-crop-tool.css +0 -76
  1200. package/es/theme-chalk/photo-crop-tool.scss +0 -84
  1201. package/es/theme-chalk/subject-action.css +0 -27
  1202. package/es/theme-chalk/subject-action.scss +0 -34
  1203. package/es/theme-chalk/subject-layout.css +0 -23
  1204. package/es/theme-chalk/subject-layout.scss +0 -26
  1205. package/es/theme-chalk/subject-list.css +0 -222
  1206. package/es/theme-chalk/subject-list.scss +0 -302
  1207. package/es/theme-chalk/subject-template.css +0 -4
  1208. package/es/theme-chalk/subject-template.scss +0 -5
  1209. package/es/theme-chalk/subject-type.css +0 -24
  1210. package/es/theme-chalk/subject-type.scss +0 -32
  1211. package/es/theme-chalk/tiny-mce-editor.css +0 -16
  1212. package/es/theme-chalk/tiny-mce-editor.scss +0 -23
  1213. package/es/theme-chalk/var.css +0 -129
  1214. package/es/theme-chalk/var.scss +0 -87
  1215. package/lib/_virtual/@amap/amap-jsapi-loader/dist/index.js +0 -132
  1216. package/lib/_virtual/@amap/amap-jsapi-loader/dist/index.js.map +0 -1
  1217. package/lib/_virtual/@ctrl/tinycolor/dist/module/conversion.js +0 -116
  1218. package/lib/_virtual/@ctrl/tinycolor/dist/module/conversion.js.map +0 -1
  1219. package/lib/_virtual/@ctrl/tinycolor/dist/module/css-color-names.js +0 -154
  1220. package/lib/_virtual/@ctrl/tinycolor/dist/module/css-color-names.js.map +0 -1
  1221. package/lib/_virtual/@ctrl/tinycolor/dist/module/format-input.js +0 -69
  1222. package/lib/_virtual/@ctrl/tinycolor/dist/module/format-input.js.map +0 -1
  1223. package/lib/_virtual/@ctrl/tinycolor/dist/module/index.js +0 -184
  1224. package/lib/_virtual/@ctrl/tinycolor/dist/module/index.js.map +0 -1
  1225. package/lib/_virtual/@ctrl/tinycolor/dist/module/util.js +0 -33
  1226. package/lib/_virtual/@ctrl/tinycolor/dist/module/util.js.map +0 -1
  1227. package/lib/_virtual/@sxzz/popperjs-es/dist/index.js +0 -575
  1228. package/lib/_virtual/@sxzz/popperjs-es/dist/index.js.map +0 -1
  1229. package/lib/_virtual/@vue/shared/dist/shared.esm-bundler.js +0 -27
  1230. package/lib/_virtual/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
  1231. package/lib/_virtual/@vueuse/core/index.js +0 -366
  1232. package/lib/_virtual/@vueuse/core/index.js.map +0 -1
  1233. package/lib/_virtual/@vueuse/core/index2.js +0 -214
  1234. package/lib/_virtual/@vueuse/core/index2.js.map +0 -1
  1235. package/lib/_virtual/@vueuse/shared/index.js +0 -155
  1236. package/lib/_virtual/@vueuse/shared/index.js.map +0 -1
  1237. package/lib/_virtual/@vueuse/shared/index2.js +0 -99
  1238. package/lib/_virtual/@vueuse/shared/index2.js.map +0 -1
  1239. package/lib/_virtual/_commonjsHelpers.js +0 -7
  1240. package/lib/_virtual/_commonjsHelpers.js.map +0 -1
  1241. package/lib/_virtual/dynamic-import-helper.js +0 -17
  1242. package/lib/_virtual/dynamic-import-helper.js.map +0 -1
  1243. package/lib/_virtual/element-plus/es/_virtual/plugin-vue_export-helper.js +0 -10
  1244. package/lib/_virtual/element-plus/es/_virtual/plugin-vue_export-helper.js.map +0 -1
  1245. package/lib/_virtual/element-plus/es/components/alert/index.js +0 -8
  1246. package/lib/_virtual/element-plus/es/components/alert/index.js.map +0 -1
  1247. package/lib/_virtual/element-plus/es/components/alert/src/alert.js +0 -41
  1248. package/lib/_virtual/element-plus/es/components/alert/src/alert.js.map +0 -1
  1249. package/lib/_virtual/element-plus/es/components/alert/src/alert2.js +0 -94
  1250. package/lib/_virtual/element-plus/es/components/alert/src/alert2.js.map +0 -1
  1251. package/lib/_virtual/element-plus/es/components/badge/index.js +0 -8
  1252. package/lib/_virtual/element-plus/es/components/badge/index.js.map +0 -1
  1253. package/lib/_virtual/element-plus/es/components/badge/src/badge.js +0 -37
  1254. package/lib/_virtual/element-plus/es/components/badge/src/badge.js.map +0 -1
  1255. package/lib/_virtual/element-plus/es/components/badge/src/badge2.js +0 -73
  1256. package/lib/_virtual/element-plus/es/components/badge/src/badge2.js.map +0 -1
  1257. package/lib/_virtual/element-plus/es/components/button/index.js +0 -12
  1258. package/lib/_virtual/element-plus/es/components/button/index.js.map +0 -1
  1259. package/lib/_virtual/element-plus/es/components/button/src/button-custom.js +0 -52
  1260. package/lib/_virtual/element-plus/es/components/button/src/button-custom.js.map +0 -1
  1261. package/lib/_virtual/element-plus/es/components/button/src/button-group.js +0 -40
  1262. package/lib/_virtual/element-plus/es/components/button/src/button-group.js.map +0 -1
  1263. package/lib/_virtual/element-plus/es/components/button/src/button-group2.js +0 -9
  1264. package/lib/_virtual/element-plus/es/components/button/src/button-group2.js.map +0 -1
  1265. package/lib/_virtual/element-plus/es/components/button/src/button.js +0 -61
  1266. package/lib/_virtual/element-plus/es/components/button/src/button.js.map +0 -1
  1267. package/lib/_virtual/element-plus/es/components/button/src/button2.js +0 -85
  1268. package/lib/_virtual/element-plus/es/components/button/src/button2.js.map +0 -1
  1269. package/lib/_virtual/element-plus/es/components/button/src/constants.js +0 -5
  1270. package/lib/_virtual/element-plus/es/components/button/src/constants.js.map +0 -1
  1271. package/lib/_virtual/element-plus/es/components/button/src/use-button.js +0 -54
  1272. package/lib/_virtual/element-plus/es/components/button/src/use-button.js.map +0 -1
  1273. package/lib/_virtual/element-plus/es/components/checkbox/index.js +0 -16
  1274. package/lib/_virtual/element-plus/es/components/checkbox/index.js.map +0 -1
  1275. package/lib/_virtual/element-plus/es/components/checkbox/src/checkbox-button.js +0 -105
  1276. package/lib/_virtual/element-plus/es/components/checkbox/src/checkbox-button.js.map +0 -1
  1277. package/lib/_virtual/element-plus/es/components/checkbox/src/checkbox-group.js +0 -90
  1278. package/lib/_virtual/element-plus/es/components/checkbox/src/checkbox-group.js.map +0 -1
  1279. package/lib/_virtual/element-plus/es/components/checkbox/src/checkbox-group2.js +0 -44
  1280. package/lib/_virtual/element-plus/es/components/checkbox/src/checkbox-group2.js.map +0 -1
  1281. package/lib/_virtual/element-plus/es/components/checkbox/src/checkbox.js +0 -72
  1282. package/lib/_virtual/element-plus/es/components/checkbox/src/checkbox.js.map +0 -1
  1283. package/lib/_virtual/element-plus/es/components/checkbox/src/checkbox2.js +0 -121
  1284. package/lib/_virtual/element-plus/es/components/checkbox/src/checkbox2.js.map +0 -1
  1285. package/lib/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-disabled.js +0 -22
  1286. package/lib/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-disabled.js.map +0 -1
  1287. package/lib/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-event.js +0 -58
  1288. package/lib/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-event.js.map +0 -1
  1289. package/lib/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-model.js +0 -26
  1290. package/lib/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-model.js.map +0 -1
  1291. package/lib/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-status.js +0 -32
  1292. package/lib/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox-status.js.map +0 -1
  1293. package/lib/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox.js +0 -71
  1294. package/lib/_virtual/element-plus/es/components/checkbox/src/composables/use-checkbox.js.map +0 -1
  1295. package/lib/_virtual/element-plus/es/components/checkbox/src/constants.js +0 -5
  1296. package/lib/_virtual/element-plus/es/components/checkbox/src/constants.js.map +0 -1
  1297. package/lib/_virtual/element-plus/es/components/col/index.js +0 -8
  1298. package/lib/_virtual/element-plus/es/components/col/index.js.map +0 -1
  1299. package/lib/_virtual/element-plus/es/components/col/src/col.js +0 -48
  1300. package/lib/_virtual/element-plus/es/components/col/src/col.js.map +0 -1
  1301. package/lib/_virtual/element-plus/es/components/col/src/col2.js +0 -54
  1302. package/lib/_virtual/element-plus/es/components/col/src/col2.js.map +0 -1
  1303. package/lib/_virtual/element-plus/es/components/collection/src/collection-item.js +0 -14
  1304. package/lib/_virtual/element-plus/es/components/collection/src/collection-item.js.map +0 -1
  1305. package/lib/_virtual/element-plus/es/components/collection/src/collection.js +0 -61
  1306. package/lib/_virtual/element-plus/es/components/collection/src/collection.js.map +0 -1
  1307. package/lib/_virtual/element-plus/es/components/collection/src/collection2.js +0 -13
  1308. package/lib/_virtual/element-plus/es/components/collection/src/collection2.js.map +0 -1
  1309. package/lib/_virtual/element-plus/es/components/config-provider/src/config-provider-props.js +0 -46
  1310. package/lib/_virtual/element-plus/es/components/config-provider/src/config-provider-props.js.map +0 -1
  1311. package/lib/_virtual/element-plus/es/components/config-provider/src/config-provider.js +0 -19
  1312. package/lib/_virtual/element-plus/es/components/config-provider/src/config-provider.js.map +0 -1
  1313. package/lib/_virtual/element-plus/es/components/config-provider/src/constants.js +0 -5
  1314. package/lib/_virtual/element-plus/es/components/config-provider/src/constants.js.map +0 -1
  1315. package/lib/_virtual/element-plus/es/components/config-provider/src/hooks/use-global-config.js +0 -67
  1316. package/lib/_virtual/element-plus/es/components/config-provider/src/hooks/use-global-config.js.map +0 -1
  1317. package/lib/_virtual/element-plus/es/components/dialog/index.js +0 -8
  1318. package/lib/_virtual/element-plus/es/components/dialog/index.js.map +0 -1
  1319. package/lib/_virtual/element-plus/es/components/dialog/src/constants.js +0 -5
  1320. package/lib/_virtual/element-plus/es/components/dialog/src/constants.js.map +0 -1
  1321. package/lib/_virtual/element-plus/es/components/dialog/src/dialog-content.js +0 -34
  1322. package/lib/_virtual/element-plus/es/components/dialog/src/dialog-content.js.map +0 -1
  1323. package/lib/_virtual/element-plus/es/components/dialog/src/dialog-content2.js +0 -90
  1324. package/lib/_virtual/element-plus/es/components/dialog/src/dialog-content2.js.map +0 -1
  1325. package/lib/_virtual/element-plus/es/components/dialog/src/dialog.js +0 -83
  1326. package/lib/_virtual/element-plus/es/components/dialog/src/dialog.js.map +0 -1
  1327. package/lib/_virtual/element-plus/es/components/dialog/src/dialog2.js +0 -176
  1328. package/lib/_virtual/element-plus/es/components/dialog/src/dialog2.js.map +0 -1
  1329. package/lib/_virtual/element-plus/es/components/dialog/src/use-dialog.js +0 -98
  1330. package/lib/_virtual/element-plus/es/components/dialog/src/use-dialog.js.map +0 -1
  1331. package/lib/_virtual/element-plus/es/components/dropdown/src/dropdown.js +0 -111
  1332. package/lib/_virtual/element-plus/es/components/dropdown/src/dropdown.js.map +0 -1
  1333. package/lib/_virtual/element-plus/es/components/focus-trap/src/focus-trap.js +0 -179
  1334. package/lib/_virtual/element-plus/es/components/focus-trap/src/focus-trap.js.map +0 -1
  1335. package/lib/_virtual/element-plus/es/components/focus-trap/src/tokens.js +0 -18
  1336. package/lib/_virtual/element-plus/es/components/focus-trap/src/tokens.js.map +0 -1
  1337. package/lib/_virtual/element-plus/es/components/focus-trap/src/utils.js +0 -104
  1338. package/lib/_virtual/element-plus/es/components/focus-trap/src/utils.js.map +0 -1
  1339. package/lib/_virtual/element-plus/es/components/form/src/constants.js +0 -6
  1340. package/lib/_virtual/element-plus/es/components/form/src/constants.js.map +0 -1
  1341. package/lib/_virtual/element-plus/es/components/form/src/hooks/use-form-common-props.js +0 -16
  1342. package/lib/_virtual/element-plus/es/components/form/src/hooks/use-form-common-props.js.map +0 -1
  1343. package/lib/_virtual/element-plus/es/components/form/src/hooks/use-form-item.js +0 -38
  1344. package/lib/_virtual/element-plus/es/components/form/src/hooks/use-form-item.js.map +0 -1
  1345. package/lib/_virtual/element-plus/es/components/icon/index.js +0 -8
  1346. package/lib/_virtual/element-plus/es/components/icon/index.js.map +0 -1
  1347. package/lib/_virtual/element-plus/es/components/icon/src/icon.js +0 -44
  1348. package/lib/_virtual/element-plus/es/components/icon/src/icon.js.map +0 -1
  1349. package/lib/_virtual/element-plus/es/components/icon/src/icon2.js +0 -13
  1350. package/lib/_virtual/element-plus/es/components/icon/src/icon2.js.map +0 -1
  1351. package/lib/_virtual/element-plus/es/components/image/index.js +0 -8
  1352. package/lib/_virtual/element-plus/es/components/image/index.js.map +0 -1
  1353. package/lib/_virtual/element-plus/es/components/image/src/image.js +0 -73
  1354. package/lib/_virtual/element-plus/es/components/image/src/image.js.map +0 -1
  1355. package/lib/_virtual/element-plus/es/components/image/src/image2.js +0 -193
  1356. package/lib/_virtual/element-plus/es/components/image/src/image2.js.map +0 -1
  1357. package/lib/_virtual/element-plus/es/components/image-viewer/index.js +0 -8
  1358. package/lib/_virtual/element-plus/es/components/image-viewer/index.js.map +0 -1
  1359. package/lib/_virtual/element-plus/es/components/image-viewer/src/image-viewer.js +0 -54
  1360. package/lib/_virtual/element-plus/es/components/image-viewer/src/image-viewer.js.map +0 -1
  1361. package/lib/_virtual/element-plus/es/components/image-viewer/src/image-viewer2.js +0 -372
  1362. package/lib/_virtual/element-plus/es/components/image-viewer/src/image-viewer2.js.map +0 -1
  1363. package/lib/_virtual/element-plus/es/components/input/index.js +0 -8
  1364. package/lib/_virtual/element-plus/es/components/input/index.js.map +0 -1
  1365. package/lib/_virtual/element-plus/es/components/input/src/input.js +0 -117
  1366. package/lib/_virtual/element-plus/es/components/input/src/input.js.map +0 -1
  1367. package/lib/_virtual/element-plus/es/components/input/src/input2.js +0 -368
  1368. package/lib/_virtual/element-plus/es/components/input/src/input2.js.map +0 -1
  1369. package/lib/_virtual/element-plus/es/components/input/src/utils.js +0 -58
  1370. package/lib/_virtual/element-plus/es/components/input/src/utils.js.map +0 -1
  1371. package/lib/_virtual/element-plus/es/components/input-number/index.js +0 -8
  1372. package/lib/_virtual/element-plus/es/components/input-number/index.js.map +0 -1
  1373. package/lib/_virtual/element-plus/es/components/input-number/src/input-number.js +0 -75
  1374. package/lib/_virtual/element-plus/es/components/input-number/src/input-number.js.map +0 -1
  1375. package/lib/_virtual/element-plus/es/components/input-number/src/input-number2.js +0 -234
  1376. package/lib/_virtual/element-plus/es/components/input-number/src/input-number2.js.map +0 -1
  1377. package/lib/_virtual/element-plus/es/components/link/index.js +0 -8
  1378. package/lib/_virtual/element-plus/es/components/link/index.js.map +0 -1
  1379. package/lib/_virtual/element-plus/es/components/link/src/link.js +0 -29
  1380. package/lib/_virtual/element-plus/es/components/link/src/link.js.map +0 -1
  1381. package/lib/_virtual/element-plus/es/components/link/src/link2.js +0 -59
  1382. package/lib/_virtual/element-plus/es/components/link/src/link2.js.map +0 -1
  1383. package/lib/_virtual/element-plus/es/components/message/index.js +0 -8
  1384. package/lib/_virtual/element-plus/es/components/message/index.js.map +0 -1
  1385. package/lib/_virtual/element-plus/es/components/message/src/instance.js +0 -16
  1386. package/lib/_virtual/element-plus/es/components/message/src/instance.js.map +0 -1
  1387. package/lib/_virtual/element-plus/es/components/message/src/message.js +0 -97
  1388. package/lib/_virtual/element-plus/es/components/message/src/message.js.map +0 -1
  1389. package/lib/_virtual/element-plus/es/components/message/src/message2.js +0 -136
  1390. package/lib/_virtual/element-plus/es/components/message/src/message2.js.map +0 -1
  1391. package/lib/_virtual/element-plus/es/components/message/src/method.js +0 -109
  1392. package/lib/_virtual/element-plus/es/components/message/src/method.js.map +0 -1
  1393. package/lib/_virtual/element-plus/es/components/overlay/index.js +0 -10
  1394. package/lib/_virtual/element-plus/es/components/overlay/index.js.map +0 -1
  1395. package/lib/_virtual/element-plus/es/components/overlay/src/overlay.js +0 -59
  1396. package/lib/_virtual/element-plus/es/components/overlay/src/overlay.js.map +0 -1
  1397. package/lib/_virtual/element-plus/es/components/popover/index.js +0 -12
  1398. package/lib/_virtual/element-plus/es/components/popover/index.js.map +0 -1
  1399. package/lib/_virtual/element-plus/es/components/popover/src/directive.js +0 -18
  1400. package/lib/_virtual/element-plus/es/components/popover/src/directive.js.map +0 -1
  1401. package/lib/_virtual/element-plus/es/components/popover/src/popover.js +0 -79
  1402. package/lib/_virtual/element-plus/es/components/popover/src/popover.js.map +0 -1
  1403. package/lib/_virtual/element-plus/es/components/popover/src/popover2.js +0 -100
  1404. package/lib/_virtual/element-plus/es/components/popover/src/popover2.js.map +0 -1
  1405. package/lib/_virtual/element-plus/es/components/popper/index.js +0 -8
  1406. package/lib/_virtual/element-plus/es/components/popper/index.js.map +0 -1
  1407. package/lib/_virtual/element-plus/es/components/popper/src/arrow.js +0 -11
  1408. package/lib/_virtual/element-plus/es/components/popper/src/arrow.js.map +0 -1
  1409. package/lib/_virtual/element-plus/es/components/popper/src/arrow2.js +0 -44
  1410. package/lib/_virtual/element-plus/es/components/popper/src/arrow2.js.map +0 -1
  1411. package/lib/_virtual/element-plus/es/components/popper/src/composables/use-content-dom.js +0 -35
  1412. package/lib/_virtual/element-plus/es/components/popper/src/composables/use-content-dom.js.map +0 -1
  1413. package/lib/_virtual/element-plus/es/components/popper/src/composables/use-content.js +0 -62
  1414. package/lib/_virtual/element-plus/es/components/popper/src/composables/use-content.js.map +0 -1
  1415. package/lib/_virtual/element-plus/es/components/popper/src/composables/use-focus-trap.js +0 -28
  1416. package/lib/_virtual/element-plus/es/components/popper/src/composables/use-focus-trap.js.map +0 -1
  1417. package/lib/_virtual/element-plus/es/components/popper/src/constants.js +0 -6
  1418. package/lib/_virtual/element-plus/es/components/popper/src/constants.js.map +0 -1
  1419. package/lib/_virtual/element-plus/es/components/popper/src/content.js +0 -103
  1420. package/lib/_virtual/element-plus/es/components/popper/src/content.js.map +0 -1
  1421. package/lib/_virtual/element-plus/es/components/popper/src/content2.js +0 -117
  1422. package/lib/_virtual/element-plus/es/components/popper/src/content2.js.map +0 -1
  1423. package/lib/_virtual/element-plus/es/components/popper/src/popper.js +0 -22
  1424. package/lib/_virtual/element-plus/es/components/popper/src/popper.js.map +0 -1
  1425. package/lib/_virtual/element-plus/es/components/popper/src/popper2.js +0 -37
  1426. package/lib/_virtual/element-plus/es/components/popper/src/popper2.js.map +0 -1
  1427. package/lib/_virtual/element-plus/es/components/popper/src/trigger.js +0 -34
  1428. package/lib/_virtual/element-plus/es/components/popper/src/trigger.js.map +0 -1
  1429. package/lib/_virtual/element-plus/es/components/popper/src/trigger2.js +0 -103
  1430. package/lib/_virtual/element-plus/es/components/popper/src/trigger2.js.map +0 -1
  1431. package/lib/_virtual/element-plus/es/components/popper/src/utils.js +0 -69
  1432. package/lib/_virtual/element-plus/es/components/popper/src/utils.js.map +0 -1
  1433. package/lib/_virtual/element-plus/es/components/progress/index.js +0 -8
  1434. package/lib/_virtual/element-plus/es/components/progress/index.js.map +0 -1
  1435. package/lib/_virtual/element-plus/es/components/progress/src/progress.js +0 -58
  1436. package/lib/_virtual/element-plus/es/components/progress/src/progress.js.map +0 -1
  1437. package/lib/_virtual/element-plus/es/components/progress/src/progress2.js +0 -167
  1438. package/lib/_virtual/element-plus/es/components/progress/src/progress2.js.map +0 -1
  1439. package/lib/_virtual/element-plus/es/components/radio/index.js +0 -15
  1440. package/lib/_virtual/element-plus/es/components/radio/index.js.map +0 -1
  1441. package/lib/_virtual/element-plus/es/components/radio/src/constants.js +0 -5
  1442. package/lib/_virtual/element-plus/es/components/radio/src/constants.js.map +0 -1
  1443. package/lib/_virtual/element-plus/es/components/radio/src/radio-button.js +0 -74
  1444. package/lib/_virtual/element-plus/es/components/radio/src/radio-button.js.map +0 -1
  1445. package/lib/_virtual/element-plus/es/components/radio/src/radio-button2.js +0 -18
  1446. package/lib/_virtual/element-plus/es/components/radio/src/radio-button2.js.map +0 -1
  1447. package/lib/_virtual/element-plus/es/components/radio/src/radio-group.js +0 -48
  1448. package/lib/_virtual/element-plus/es/components/radio/src/radio-group.js.map +0 -1
  1449. package/lib/_virtual/element-plus/es/components/radio/src/radio-group2.js +0 -60
  1450. package/lib/_virtual/element-plus/es/components/radio/src/radio-group2.js.map +0 -1
  1451. package/lib/_virtual/element-plus/es/components/radio/src/radio.js +0 -48
  1452. package/lib/_virtual/element-plus/es/components/radio/src/radio.js.map +0 -1
  1453. package/lib/_virtual/element-plus/es/components/radio/src/radio2.js +0 -86
  1454. package/lib/_virtual/element-plus/es/components/radio/src/radio2.js.map +0 -1
  1455. package/lib/_virtual/element-plus/es/components/radio/src/use-radio.js +0 -37
  1456. package/lib/_virtual/element-plus/es/components/radio/src/use-radio.js.map +0 -1
  1457. package/lib/_virtual/element-plus/es/components/row/index.js +0 -8
  1458. package/lib/_virtual/element-plus/es/components/row/index.js.map +0 -1
  1459. package/lib/_virtual/element-plus/es/components/row/src/constants.js +0 -5
  1460. package/lib/_virtual/element-plus/es/components/row/src/constants.js.map +0 -1
  1461. package/lib/_virtual/element-plus/es/components/row/src/row.js +0 -33
  1462. package/lib/_virtual/element-plus/es/components/row/src/row.js.map +0 -1
  1463. package/lib/_virtual/element-plus/es/components/row/src/row2.js +0 -50
  1464. package/lib/_virtual/element-plus/es/components/row/src/row2.js.map +0 -1
  1465. package/lib/_virtual/element-plus/es/components/scrollbar/index.js +0 -8
  1466. package/lib/_virtual/element-plus/es/components/scrollbar/index.js.map +0 -1
  1467. package/lib/_virtual/element-plus/es/components/scrollbar/src/bar.js +0 -15
  1468. package/lib/_virtual/element-plus/es/components/scrollbar/src/bar.js.map +0 -1
  1469. package/lib/_virtual/element-plus/es/components/scrollbar/src/bar2.js +0 -48
  1470. package/lib/_virtual/element-plus/es/components/scrollbar/src/bar2.js.map +0 -1
  1471. package/lib/_virtual/element-plus/es/components/scrollbar/src/constants.js +0 -5
  1472. package/lib/_virtual/element-plus/es/components/scrollbar/src/constants.js.map +0 -1
  1473. package/lib/_virtual/element-plus/es/components/scrollbar/src/scrollbar.js +0 -70
  1474. package/lib/_virtual/element-plus/es/components/scrollbar/src/scrollbar.js.map +0 -1
  1475. package/lib/_virtual/element-plus/es/components/scrollbar/src/scrollbar2.js +0 -131
  1476. package/lib/_virtual/element-plus/es/components/scrollbar/src/scrollbar2.js.map +0 -1
  1477. package/lib/_virtual/element-plus/es/components/scrollbar/src/thumb.js +0 -15
  1478. package/lib/_virtual/element-plus/es/components/scrollbar/src/thumb.js.map +0 -1
  1479. package/lib/_virtual/element-plus/es/components/scrollbar/src/thumb2.js +0 -88
  1480. package/lib/_virtual/element-plus/es/components/scrollbar/src/thumb2.js.map +0 -1
  1481. package/lib/_virtual/element-plus/es/components/scrollbar/src/util.js +0 -35
  1482. package/lib/_virtual/element-plus/es/components/scrollbar/src/util.js.map +0 -1
  1483. package/lib/_virtual/element-plus/es/components/select/index.js +0 -15
  1484. package/lib/_virtual/element-plus/es/components/select/index.js.map +0 -1
  1485. package/lib/_virtual/element-plus/es/components/select/src/option-group.js +0 -76
  1486. package/lib/_virtual/element-plus/es/components/select/src/option-group.js.map +0 -1
  1487. package/lib/_virtual/element-plus/es/components/select/src/option.js +0 -84
  1488. package/lib/_virtual/element-plus/es/components/select/src/option.js.map +0 -1
  1489. package/lib/_virtual/element-plus/es/components/select/src/options.js +0 -27
  1490. package/lib/_virtual/element-plus/es/components/select/src/options.js.map +0 -1
  1491. package/lib/_virtual/element-plus/es/components/select/src/select-dropdown.js +0 -50
  1492. package/lib/_virtual/element-plus/es/components/select/src/select-dropdown.js.map +0 -1
  1493. package/lib/_virtual/element-plus/es/components/select/src/select.js +0 -128
  1494. package/lib/_virtual/element-plus/es/components/select/src/select.js.map +0 -1
  1495. package/lib/_virtual/element-plus/es/components/select/src/select2.js +0 -420
  1496. package/lib/_virtual/element-plus/es/components/select/src/select2.js.map +0 -1
  1497. package/lib/_virtual/element-plus/es/components/select/src/token.js +0 -6
  1498. package/lib/_virtual/element-plus/es/components/select/src/token.js.map +0 -1
  1499. package/lib/_virtual/element-plus/es/components/select/src/useOption.js +0 -50
  1500. package/lib/_virtual/element-plus/es/components/select/src/useOption.js.map +0 -1
  1501. package/lib/_virtual/element-plus/es/components/select/src/useSelect.js +0 -363
  1502. package/lib/_virtual/element-plus/es/components/select/src/useSelect.js.map +0 -1
  1503. package/lib/_virtual/element-plus/es/components/slot/src/only-child.js +0 -56
  1504. package/lib/_virtual/element-plus/es/components/slot/src/only-child.js.map +0 -1
  1505. package/lib/_virtual/element-plus/es/components/table/index.js +0 -12
  1506. package/lib/_virtual/element-plus/es/components/table/index.js.map +0 -1
  1507. package/lib/_virtual/element-plus/es/components/table/src/composables/use-scrollbar.js +0 -21
  1508. package/lib/_virtual/element-plus/es/components/table/src/composables/use-scrollbar.js.map +0 -1
  1509. package/lib/_virtual/element-plus/es/components/table/src/config.js +0 -165
  1510. package/lib/_virtual/element-plus/es/components/table/src/config.js.map +0 -1
  1511. package/lib/_virtual/element-plus/es/components/table/src/filter-panel.js +0 -217
  1512. package/lib/_virtual/element-plus/es/components/table/src/filter-panel.js.map +0 -1
  1513. package/lib/_virtual/element-plus/es/components/table/src/h-helper.js +0 -23
  1514. package/lib/_virtual/element-plus/es/components/table/src/h-helper.js.map +0 -1
  1515. package/lib/_virtual/element-plus/es/components/table/src/layout-observer.js +0 -51
  1516. package/lib/_virtual/element-plus/es/components/table/src/layout-observer.js.map +0 -1
  1517. package/lib/_virtual/element-plus/es/components/table/src/store/current.js +0 -46
  1518. package/lib/_virtual/element-plus/es/components/table/src/store/current.js.map +0 -1
  1519. package/lib/_virtual/element-plus/es/components/table/src/store/expand.js +0 -43
  1520. package/lib/_virtual/element-plus/es/components/table/src/store/expand.js.map +0 -1
  1521. package/lib/_virtual/element-plus/es/components/table/src/store/helper.js +0 -57
  1522. package/lib/_virtual/element-plus/es/components/table/src/store/helper.js.map +0 -1
  1523. package/lib/_virtual/element-plus/es/components/table/src/store/index.js +0 -111
  1524. package/lib/_virtual/element-plus/es/components/table/src/store/index.js.map +0 -1
  1525. package/lib/_virtual/element-plus/es/components/table/src/store/tree.js +0 -146
  1526. package/lib/_virtual/element-plus/es/components/table/src/store/tree.js.map +0 -1
  1527. package/lib/_virtual/element-plus/es/components/table/src/store/watcher.js +0 -295
  1528. package/lib/_virtual/element-plus/es/components/table/src/store/watcher.js.map +0 -1
  1529. package/lib/_virtual/element-plus/es/components/table/src/table/defaults.js +0 -89
  1530. package/lib/_virtual/element-plus/es/components/table/src/table/defaults.js.map +0 -1
  1531. package/lib/_virtual/element-plus/es/components/table/src/table/key-render-helper.js +0 -19
  1532. package/lib/_virtual/element-plus/es/components/table/src/table/key-render-helper.js.map +0 -1
  1533. package/lib/_virtual/element-plus/es/components/table/src/table/style-helper.js +0 -175
  1534. package/lib/_virtual/element-plus/es/components/table/src/table/style-helper.js.map +0 -1
  1535. package/lib/_virtual/element-plus/es/components/table/src/table/utils-helper.js +0 -36
  1536. package/lib/_virtual/element-plus/es/components/table/src/table/utils-helper.js.map +0 -1
  1537. package/lib/_virtual/element-plus/es/components/table/src/table-body/defaults.js +0 -26
  1538. package/lib/_virtual/element-plus/es/components/table/src/table-body/defaults.js.map +0 -1
  1539. package/lib/_virtual/element-plus/es/components/table/src/table-body/events-helper.js +0 -83
  1540. package/lib/_virtual/element-plus/es/components/table/src/table-body/events-helper.js.map +0 -1
  1541. package/lib/_virtual/element-plus/es/components/table/src/table-body/index.js +0 -65
  1542. package/lib/_virtual/element-plus/es/components/table/src/table-body/index.js.map +0 -1
  1543. package/lib/_virtual/element-plus/es/components/table/src/table-body/render-helper.js +0 -153
  1544. package/lib/_virtual/element-plus/es/components/table/src/table-body/render-helper.js.map +0 -1
  1545. package/lib/_virtual/element-plus/es/components/table/src/table-body/styles-helper.js +0 -71
  1546. package/lib/_virtual/element-plus/es/components/table/src/table-body/styles-helper.js.map +0 -1
  1547. package/lib/_virtual/element-plus/es/components/table/src/table-body/td-wrapper.js +0 -41
  1548. package/lib/_virtual/element-plus/es/components/table/src/table-body/td-wrapper.js.map +0 -1
  1549. package/lib/_virtual/element-plus/es/components/table/src/table-column/defaults.js +0 -61
  1550. package/lib/_virtual/element-plus/es/components/table/src/table-column/defaults.js.map +0 -1
  1551. package/lib/_virtual/element-plus/es/components/table/src/table-column/index.js +0 -120
  1552. package/lib/_virtual/element-plus/es/components/table/src/table-column/index.js.map +0 -1
  1553. package/lib/_virtual/element-plus/es/components/table/src/table-column/render-helper.js +0 -86
  1554. package/lib/_virtual/element-plus/es/components/table/src/table-column/render-helper.js.map +0 -1
  1555. package/lib/_virtual/element-plus/es/components/table/src/table-column/watcher-helper.js +0 -56
  1556. package/lib/_virtual/element-plus/es/components/table/src/table-column/watcher-helper.js.map +0 -1
  1557. package/lib/_virtual/element-plus/es/components/table/src/table-footer/index.js +0 -84
  1558. package/lib/_virtual/element-plus/es/components/table/src/table-footer/index.js.map +0 -1
  1559. package/lib/_virtual/element-plus/es/components/table/src/table-footer/mapState-helper.js +0 -17
  1560. package/lib/_virtual/element-plus/es/components/table/src/table-footer/mapState-helper.js.map +0 -1
  1561. package/lib/_virtual/element-plus/es/components/table/src/table-footer/style-helper.js +0 -27
  1562. package/lib/_virtual/element-plus/es/components/table/src/table-footer/style-helper.js.map +0 -1
  1563. package/lib/_virtual/element-plus/es/components/table/src/table-header/event-helper.js +0 -98
  1564. package/lib/_virtual/element-plus/es/components/table/src/table-header/event-helper.js.map +0 -1
  1565. package/lib/_virtual/element-plus/es/components/table/src/table-header/index.js +0 -205
  1566. package/lib/_virtual/element-plus/es/components/table/src/table-header/index.js.map +0 -1
  1567. package/lib/_virtual/element-plus/es/components/table/src/table-header/style.helper.js +0 -52
  1568. package/lib/_virtual/element-plus/es/components/table/src/table-header/style.helper.js.map +0 -1
  1569. package/lib/_virtual/element-plus/es/components/table/src/table-header/utils-helper.js +0 -46
  1570. package/lib/_virtual/element-plus/es/components/table/src/table-header/utils-helper.js.map +0 -1
  1571. package/lib/_virtual/element-plus/es/components/table/src/table-layout.js +0 -137
  1572. package/lib/_virtual/element-plus/es/components/table/src/table-layout.js.map +0 -1
  1573. package/lib/_virtual/element-plus/es/components/table/src/table.js +0 -354
  1574. package/lib/_virtual/element-plus/es/components/table/src/table.js.map +0 -1
  1575. package/lib/_virtual/element-plus/es/components/table/src/tokens.js +0 -5
  1576. package/lib/_virtual/element-plus/es/components/table/src/tokens.js.map +0 -1
  1577. package/lib/_virtual/element-plus/es/components/table/src/util.js +0 -272
  1578. package/lib/_virtual/element-plus/es/components/table/src/util.js.map +0 -1
  1579. package/lib/_virtual/element-plus/es/components/tag/index.js +0 -8
  1580. package/lib/_virtual/element-plus/es/components/tag/index.js.map +0 -1
  1581. package/lib/_virtual/element-plus/es/components/tag/src/tag.js +0 -103
  1582. package/lib/_virtual/element-plus/es/components/tag/src/tag.js.map +0 -1
  1583. package/lib/_virtual/element-plus/es/components/tag/src/tag2.js +0 -31
  1584. package/lib/_virtual/element-plus/es/components/tag/src/tag2.js.map +0 -1
  1585. package/lib/_virtual/element-plus/es/components/teleport/index.js +0 -8
  1586. package/lib/_virtual/element-plus/es/components/teleport/index.js.map +0 -1
  1587. package/lib/_virtual/element-plus/es/components/teleport/src/teleport.js +0 -12
  1588. package/lib/_virtual/element-plus/es/components/teleport/src/teleport.js.map +0 -1
  1589. package/lib/_virtual/element-plus/es/components/teleport/src/teleport2.js +0 -20
  1590. package/lib/_virtual/element-plus/es/components/teleport/src/teleport2.js.map +0 -1
  1591. package/lib/_virtual/element-plus/es/components/tooltip/index.js +0 -8
  1592. package/lib/_virtual/element-plus/es/components/tooltip/index.js.map +0 -1
  1593. package/lib/_virtual/element-plus/es/components/tooltip/src/constants.js +0 -5
  1594. package/lib/_virtual/element-plus/es/components/tooltip/src/constants.js.map +0 -1
  1595. package/lib/_virtual/element-plus/es/components/tooltip/src/content.js +0 -151
  1596. package/lib/_virtual/element-plus/es/components/tooltip/src/content.js.map +0 -1
  1597. package/lib/_virtual/element-plus/es/components/tooltip/src/content2.js +0 -41
  1598. package/lib/_virtual/element-plus/es/components/tooltip/src/content2.js.map +0 -1
  1599. package/lib/_virtual/element-plus/es/components/tooltip/src/tooltip.js +0 -44
  1600. package/lib/_virtual/element-plus/es/components/tooltip/src/tooltip.js.map +0 -1
  1601. package/lib/_virtual/element-plus/es/components/tooltip/src/tooltip2.js +0 -160
  1602. package/lib/_virtual/element-plus/es/components/tooltip/src/tooltip2.js.map +0 -1
  1603. package/lib/_virtual/element-plus/es/components/tooltip/src/trigger.js +0 -30
  1604. package/lib/_virtual/element-plus/es/components/tooltip/src/trigger.js.map +0 -1
  1605. package/lib/_virtual/element-plus/es/components/tooltip/src/trigger2.js +0 -64
  1606. package/lib/_virtual/element-plus/es/components/tooltip/src/trigger2.js.map +0 -1
  1607. package/lib/_virtual/element-plus/es/components/tooltip/src/utils.js +0 -10
  1608. package/lib/_virtual/element-plus/es/components/tooltip/src/utils.js.map +0 -1
  1609. package/lib/_virtual/element-plus/es/components/upload/index.js +0 -8
  1610. package/lib/_virtual/element-plus/es/components/upload/index.js.map +0 -1
  1611. package/lib/_virtual/element-plus/es/components/upload/src/ajax.js +0 -54
  1612. package/lib/_virtual/element-plus/es/components/upload/src/ajax.js.map +0 -1
  1613. package/lib/_virtual/element-plus/es/components/upload/src/constants.js +0 -5
  1614. package/lib/_virtual/element-plus/es/components/upload/src/constants.js.map +0 -1
  1615. package/lib/_virtual/element-plus/es/components/upload/src/upload-content.js +0 -49
  1616. package/lib/_virtual/element-plus/es/components/upload/src/upload-content.js.map +0 -1
  1617. package/lib/_virtual/element-plus/es/components/upload/src/upload-content2.js +0 -174
  1618. package/lib/_virtual/element-plus/es/components/upload/src/upload-content2.js.map +0 -1
  1619. package/lib/_virtual/element-plus/es/components/upload/src/upload-dragger.js +0 -15
  1620. package/lib/_virtual/element-plus/es/components/upload/src/upload-dragger.js.map +0 -1
  1621. package/lib/_virtual/element-plus/es/components/upload/src/upload-dragger2.js +0 -50
  1622. package/lib/_virtual/element-plus/es/components/upload/src/upload-dragger2.js.map +0 -1
  1623. package/lib/_virtual/element-plus/es/components/upload/src/upload-list.js +0 -33
  1624. package/lib/_virtual/element-plus/es/components/upload/src/upload-list.js.map +0 -1
  1625. package/lib/_virtual/element-plus/es/components/upload/src/upload-list2.js +0 -176
  1626. package/lib/_virtual/element-plus/es/components/upload/src/upload-list2.js.map +0 -1
  1627. package/lib/_virtual/element-plus/es/components/upload/src/upload.js +0 -115
  1628. package/lib/_virtual/element-plus/es/components/upload/src/upload.js.map +0 -1
  1629. package/lib/_virtual/element-plus/es/components/upload/src/upload2.js +0 -130
  1630. package/lib/_virtual/element-plus/es/components/upload/src/upload2.js.map +0 -1
  1631. package/lib/_virtual/element-plus/es/components/upload/src/use-handlers.js +0 -107
  1632. package/lib/_virtual/element-plus/es/components/upload/src/use-handlers.js.map +0 -1
  1633. package/lib/_virtual/element-plus/es/constants/aria.js +0 -16
  1634. package/lib/_virtual/element-plus/es/constants/aria.js.map +0 -1
  1635. package/lib/_virtual/element-plus/es/constants/event.js +0 -7
  1636. package/lib/_virtual/element-plus/es/constants/event.js.map +0 -1
  1637. package/lib/_virtual/element-plus/es/constants/size.js +0 -5
  1638. package/lib/_virtual/element-plus/es/constants/size.js.map +0 -1
  1639. package/lib/_virtual/element-plus/es/directives/click-outside/index.js +0 -45
  1640. package/lib/_virtual/element-plus/es/directives/click-outside/index.js.map +0 -1
  1641. package/lib/_virtual/element-plus/es/directives/mousewheel/index.js +0 -18
  1642. package/lib/_virtual/element-plus/es/directives/mousewheel/index.js.map +0 -1
  1643. package/lib/_virtual/element-plus/es/directives/repeat-click/index.js +0 -25
  1644. package/lib/_virtual/element-plus/es/directives/repeat-click/index.js.map +0 -1
  1645. package/lib/_virtual/element-plus/es/hooks/use-aria/index.js +0 -15
  1646. package/lib/_virtual/element-plus/es/hooks/use-aria/index.js.map +0 -1
  1647. package/lib/_virtual/element-plus/es/hooks/use-attrs/index.js +0 -14
  1648. package/lib/_virtual/element-plus/es/hooks/use-attrs/index.js.map +0 -1
  1649. package/lib/_virtual/element-plus/es/hooks/use-calc-input-width/index.js +0 -19
  1650. package/lib/_virtual/element-plus/es/hooks/use-calc-input-width/index.js.map +0 -1
  1651. package/lib/_virtual/element-plus/es/hooks/use-composition/index.js +0 -30
  1652. package/lib/_virtual/element-plus/es/hooks/use-composition/index.js.map +0 -1
  1653. package/lib/_virtual/element-plus/es/hooks/use-cursor/index.js +0 -40
  1654. package/lib/_virtual/element-plus/es/hooks/use-cursor/index.js.map +0 -1
  1655. package/lib/_virtual/element-plus/es/hooks/use-delayed-toggle/index.js +0 -50
  1656. package/lib/_virtual/element-plus/es/hooks/use-delayed-toggle/index.js.map +0 -1
  1657. package/lib/_virtual/element-plus/es/hooks/use-deprecated/index.js +0 -15
  1658. package/lib/_virtual/element-plus/es/hooks/use-deprecated/index.js.map +0 -1
  1659. package/lib/_virtual/element-plus/es/hooks/use-draggable/index.js +0 -42
  1660. package/lib/_virtual/element-plus/es/hooks/use-draggable/index.js.map +0 -1
  1661. package/lib/_virtual/element-plus/es/hooks/use-empty-values/index.js +0 -28
  1662. package/lib/_virtual/element-plus/es/hooks/use-empty-values/index.js.map +0 -1
  1663. package/lib/_virtual/element-plus/es/hooks/use-escape-keydown/index.js +0 -17
  1664. package/lib/_virtual/element-plus/es/hooks/use-escape-keydown/index.js.map +0 -1
  1665. package/lib/_virtual/element-plus/es/hooks/use-focus-controller/index.js +0 -35
  1666. package/lib/_virtual/element-plus/es/hooks/use-focus-controller/index.js.map +0 -1
  1667. package/lib/_virtual/element-plus/es/hooks/use-forward-ref/index.js +0 -24
  1668. package/lib/_virtual/element-plus/es/hooks/use-forward-ref/index.js.map +0 -1
  1669. package/lib/_virtual/element-plus/es/hooks/use-id/index.js +0 -23
  1670. package/lib/_virtual/element-plus/es/hooks/use-id/index.js.map +0 -1
  1671. package/lib/_virtual/element-plus/es/hooks/use-locale/index.js +0 -25
  1672. package/lib/_virtual/element-plus/es/hooks/use-locale/index.js.map +0 -1
  1673. package/lib/_virtual/element-plus/es/hooks/use-lockscreen/index.js +0 -31
  1674. package/lib/_virtual/element-plus/es/hooks/use-lockscreen/index.js.map +0 -1
  1675. package/lib/_virtual/element-plus/es/hooks/use-model-toggle/index.js +0 -73
  1676. package/lib/_virtual/element-plus/es/hooks/use-model-toggle/index.js.map +0 -1
  1677. package/lib/_virtual/element-plus/es/hooks/use-namespace/index.js +0 -45
  1678. package/lib/_virtual/element-plus/es/hooks/use-namespace/index.js.map +0 -1
  1679. package/lib/_virtual/element-plus/es/hooks/use-popper/index.js +0 -89
  1680. package/lib/_virtual/element-plus/es/hooks/use-popper/index.js.map +0 -1
  1681. package/lib/_virtual/element-plus/es/hooks/use-popper-container/index.js +0 -27
  1682. package/lib/_virtual/element-plus/es/hooks/use-popper-container/index.js.map +0 -1
  1683. package/lib/_virtual/element-plus/es/hooks/use-prop/index.js +0 -12
  1684. package/lib/_virtual/element-plus/es/hooks/use-prop/index.js.map +0 -1
  1685. package/lib/_virtual/element-plus/es/hooks/use-same-target/index.js +0 -17
  1686. package/lib/_virtual/element-plus/es/hooks/use-same-target/index.js.map +0 -1
  1687. package/lib/_virtual/element-plus/es/hooks/use-size/index.js +0 -17
  1688. package/lib/_virtual/element-plus/es/hooks/use-size/index.js.map +0 -1
  1689. package/lib/_virtual/element-plus/es/hooks/use-timeout/index.js +0 -15
  1690. package/lib/_virtual/element-plus/es/hooks/use-timeout/index.js.map +0 -1
  1691. package/lib/_virtual/element-plus/es/hooks/use-z-index/index.js +0 -25
  1692. package/lib/_virtual/element-plus/es/hooks/use-z-index/index.js.map +0 -1
  1693. package/lib/_virtual/element-plus/es/locale/lang/en.js +0 -183
  1694. package/lib/_virtual/element-plus/es/locale/lang/en.js.map +0 -1
  1695. package/lib/_virtual/element-plus/es/utils/browser.js +0 -9
  1696. package/lib/_virtual/element-plus/es/utils/browser.js.map +0 -1
  1697. package/lib/_virtual/element-plus/es/utils/dom/aria.js +0 -22
  1698. package/lib/_virtual/element-plus/es/utils/dom/aria.js.map +0 -1
  1699. package/lib/_virtual/element-plus/es/utils/dom/event.js +0 -9
  1700. package/lib/_virtual/element-plus/es/utils/dom/event.js.map +0 -1
  1701. package/lib/_virtual/element-plus/es/utils/dom/position.js +0 -17
  1702. package/lib/_virtual/element-plus/es/utils/dom/position.js.map +0 -1
  1703. package/lib/_virtual/element-plus/es/utils/dom/scroll.js +0 -61
  1704. package/lib/_virtual/element-plus/es/utils/dom/scroll.js.map +0 -1
  1705. package/lib/_virtual/element-plus/es/utils/dom/style.js +0 -48
  1706. package/lib/_virtual/element-plus/es/utils/dom/style.js.map +0 -1
  1707. package/lib/_virtual/element-plus/es/utils/error.js +0 -20
  1708. package/lib/_virtual/element-plus/es/utils/error.js.map +0 -1
  1709. package/lib/_virtual/element-plus/es/utils/i18n.js +0 -5
  1710. package/lib/_virtual/element-plus/es/utils/i18n.js.map +0 -1
  1711. package/lib/_virtual/element-plus/es/utils/objects.js +0 -15
  1712. package/lib/_virtual/element-plus/es/utils/objects.js.map +0 -1
  1713. package/lib/_virtual/element-plus/es/utils/raf.js +0 -6
  1714. package/lib/_virtual/element-plus/es/utils/raf.js.map +0 -1
  1715. package/lib/_virtual/element-plus/es/utils/strings.js +0 -5
  1716. package/lib/_virtual/element-plus/es/utils/strings.js.map +0 -1
  1717. package/lib/_virtual/element-plus/es/utils/types.js +0 -18
  1718. package/lib/_virtual/element-plus/es/utils/types.js.map +0 -1
  1719. package/lib/_virtual/element-plus/es/utils/typescript.js +0 -5
  1720. package/lib/_virtual/element-plus/es/utils/typescript.js.map +0 -1
  1721. package/lib/_virtual/element-plus/es/utils/vue/icon.js +0 -28
  1722. package/lib/_virtual/element-plus/es/utils/vue/icon.js.map +0 -1
  1723. package/lib/_virtual/element-plus/es/utils/vue/install.js +0 -21
  1724. package/lib/_virtual/element-plus/es/utils/vue/install.js.map +0 -1
  1725. package/lib/_virtual/element-plus/es/utils/vue/props/runtime.js +0 -32
  1726. package/lib/_virtual/element-plus/es/utils/vue/props/runtime.js.map +0 -1
  1727. package/lib/_virtual/element-plus/es/utils/vue/refs.js +0 -10
  1728. package/lib/_virtual/element-plus/es/utils/vue/refs.js.map +0 -1
  1729. package/lib/_virtual/element-plus/es/utils/vue/vnode.js +0 -6
  1730. package/lib/_virtual/element-plus/es/utils/vue/vnode.js.map +0 -1
  1731. package/lib/_virtual/element-plus/theme-chalk/src/tooltip.scss.js +0 -2
  1732. package/lib/_virtual/element-plus/theme-chalk/src/tooltip.scss.js.map +0 -1
  1733. package/lib/_virtual/index.js +0 -3
  1734. package/lib/_virtual/index.js.map +0 -1
  1735. package/lib/_virtual/index10.js +0 -3
  1736. package/lib/_virtual/index10.js.map +0 -1
  1737. package/lib/_virtual/index11.js +0 -3
  1738. package/lib/_virtual/index11.js.map +0 -1
  1739. package/lib/_virtual/index12.js +0 -3
  1740. package/lib/_virtual/index12.js.map +0 -1
  1741. package/lib/_virtual/index13.js +0 -3
  1742. package/lib/_virtual/index13.js.map +0 -1
  1743. package/lib/_virtual/index14.js +0 -3
  1744. package/lib/_virtual/index14.js.map +0 -1
  1745. package/lib/_virtual/index15.js +0 -3
  1746. package/lib/_virtual/index15.js.map +0 -1
  1747. package/lib/_virtual/index16.js +0 -12
  1748. package/lib/_virtual/index16.js.map +0 -1
  1749. package/lib/_virtual/index17.js +0 -5
  1750. package/lib/_virtual/index17.js.map +0 -1
  1751. package/lib/_virtual/index18.js +0 -5
  1752. package/lib/_virtual/index18.js.map +0 -1
  1753. package/lib/_virtual/index19.js +0 -5
  1754. package/lib/_virtual/index19.js.map +0 -1
  1755. package/lib/_virtual/index2.js +0 -3
  1756. package/lib/_virtual/index2.js.map +0 -1
  1757. package/lib/_virtual/index20.js +0 -5
  1758. package/lib/_virtual/index20.js.map +0 -1
  1759. package/lib/_virtual/index21.js +0 -5
  1760. package/lib/_virtual/index21.js.map +0 -1
  1761. package/lib/_virtual/index22.js +0 -5
  1762. package/lib/_virtual/index22.js.map +0 -1
  1763. package/lib/_virtual/index23.js +0 -5
  1764. package/lib/_virtual/index23.js.map +0 -1
  1765. package/lib/_virtual/index24.js +0 -5
  1766. package/lib/_virtual/index24.js.map +0 -1
  1767. package/lib/_virtual/index25.js +0 -5
  1768. package/lib/_virtual/index25.js.map +0 -1
  1769. package/lib/_virtual/index26.js +0 -5
  1770. package/lib/_virtual/index26.js.map +0 -1
  1771. package/lib/_virtual/index27.js +0 -5
  1772. package/lib/_virtual/index27.js.map +0 -1
  1773. package/lib/_virtual/index28.js +0 -5
  1774. package/lib/_virtual/index28.js.map +0 -1
  1775. package/lib/_virtual/index29.js +0 -5
  1776. package/lib/_virtual/index29.js.map +0 -1
  1777. package/lib/_virtual/index3.js +0 -3
  1778. package/lib/_virtual/index3.js.map +0 -1
  1779. package/lib/_virtual/index30.js +0 -5
  1780. package/lib/_virtual/index30.js.map +0 -1
  1781. package/lib/_virtual/index31.js +0 -5
  1782. package/lib/_virtual/index31.js.map +0 -1
  1783. package/lib/_virtual/index32.js +0 -5
  1784. package/lib/_virtual/index32.js.map +0 -1
  1785. package/lib/_virtual/index4.js +0 -3
  1786. package/lib/_virtual/index4.js.map +0 -1
  1787. package/lib/_virtual/index5.js +0 -3
  1788. package/lib/_virtual/index5.js.map +0 -1
  1789. package/lib/_virtual/index6.js +0 -3
  1790. package/lib/_virtual/index6.js.map +0 -1
  1791. package/lib/_virtual/index7.js +0 -3
  1792. package/lib/_virtual/index7.js.map +0 -1
  1793. package/lib/_virtual/index8.js +0 -3
  1794. package/lib/_virtual/index8.js.map +0 -1
  1795. package/lib/_virtual/index9.js +0 -3
  1796. package/lib/_virtual/index9.js.map +0 -1
  1797. package/lib/_virtual/model.js +0 -5
  1798. package/lib/_virtual/model.js.map +0 -1
  1799. package/lib/_virtual/normalize-wheel-es/dist/index.js +0 -89
  1800. package/lib/_virtual/normalize-wheel-es/dist/index.js.map +0 -1
  1801. package/lib/_virtual/plugin.js +0 -5
  1802. package/lib/_virtual/plugin.js.map +0 -1
  1803. package/lib/_virtual/plugin10.js +0 -5
  1804. package/lib/_virtual/plugin10.js.map +0 -1
  1805. package/lib/_virtual/plugin11.js +0 -5
  1806. package/lib/_virtual/plugin11.js.map +0 -1
  1807. package/lib/_virtual/plugin12.js +0 -5
  1808. package/lib/_virtual/plugin12.js.map +0 -1
  1809. package/lib/_virtual/plugin13.js +0 -5
  1810. package/lib/_virtual/plugin13.js.map +0 -1
  1811. package/lib/_virtual/plugin14.js +0 -5
  1812. package/lib/_virtual/plugin14.js.map +0 -1
  1813. package/lib/_virtual/plugin2.js +0 -5
  1814. package/lib/_virtual/plugin2.js.map +0 -1
  1815. package/lib/_virtual/plugin3.js +0 -5
  1816. package/lib/_virtual/plugin3.js.map +0 -1
  1817. package/lib/_virtual/plugin4.js +0 -5
  1818. package/lib/_virtual/plugin4.js.map +0 -1
  1819. package/lib/_virtual/plugin5.js +0 -5
  1820. package/lib/_virtual/plugin5.js.map +0 -1
  1821. package/lib/_virtual/plugin6.js +0 -5
  1822. package/lib/_virtual/plugin6.js.map +0 -1
  1823. package/lib/_virtual/plugin7.js +0 -5
  1824. package/lib/_virtual/plugin7.js.map +0 -1
  1825. package/lib/_virtual/plugin8.js +0 -5
  1826. package/lib/_virtual/plugin8.js.map +0 -1
  1827. package/lib/_virtual/plugin9.js +0 -5
  1828. package/lib/_virtual/plugin9.js.map +0 -1
  1829. package/lib/_virtual/theme.js +0 -3
  1830. package/lib/_virtual/theme.js.map +0 -1
  1831. package/lib/_virtual/theme2.js +0 -5
  1832. package/lib/_virtual/theme2.js.map +0 -1
  1833. package/lib/_virtual/tinymce/icons/default/icons.js +0 -229
  1834. package/lib/_virtual/tinymce/icons/default/icons.js.map +0 -1
  1835. package/lib/_virtual/tinymce/models/dom/index.js +0 -10
  1836. package/lib/_virtual/tinymce/models/dom/index.js.map +0 -1
  1837. package/lib/_virtual/tinymce/models/dom/model.js +0 -4282
  1838. package/lib/_virtual/tinymce/models/dom/model.js.map +0 -1
  1839. package/lib/_virtual/tinymce/plugins/autolink/index.js +0 -10
  1840. package/lib/_virtual/tinymce/plugins/autolink/index.js.map +0 -1
  1841. package/lib/_virtual/tinymce/plugins/autolink/plugin.js +0 -112
  1842. package/lib/_virtual/tinymce/plugins/autolink/plugin.js.map +0 -1
  1843. package/lib/_virtual/tinymce/plugins/autoresize/index.js +0 -10
  1844. package/lib/_virtual/tinymce/plugins/autoresize/index.js.map +0 -1
  1845. package/lib/_virtual/tinymce/plugins/autoresize/plugin.js +0 -106
  1846. package/lib/_virtual/tinymce/plugins/autoresize/plugin.js.map +0 -1
  1847. package/lib/_virtual/tinymce/plugins/code/index.js +0 -10
  1848. package/lib/_virtual/tinymce/plugins/code/index.js.map +0 -1
  1849. package/lib/_virtual/tinymce/plugins/code/plugin.js +0 -65
  1850. package/lib/_virtual/tinymce/plugins/code/plugin.js.map +0 -1
  1851. package/lib/_virtual/tinymce/plugins/fullscreen/index.js +0 -10
  1852. package/lib/_virtual/tinymce/plugins/fullscreen/index.js.map +0 -1
  1853. package/lib/_virtual/tinymce/plugins/fullscreen/plugin.js +0 -703
  1854. package/lib/_virtual/tinymce/plugins/fullscreen/plugin.js.map +0 -1
  1855. package/lib/_virtual/tinymce/plugins/image/index.js +0 -10
  1856. package/lib/_virtual/tinymce/plugins/image/index.js.map +0 -1
  1857. package/lib/_virtual/tinymce/plugins/image/plugin.js +0 -882
  1858. package/lib/_virtual/tinymce/plugins/image/plugin.js.map +0 -1
  1859. package/lib/_virtual/tinymce/plugins/insertdatetime/index.js +0 -10
  1860. package/lib/_virtual/tinymce/plugins/insertdatetime/index.js.map +0 -1
  1861. package/lib/_virtual/tinymce/plugins/insertdatetime/plugin.js +0 -115
  1862. package/lib/_virtual/tinymce/plugins/insertdatetime/plugin.js.map +0 -1
  1863. package/lib/_virtual/tinymce/plugins/link/index.js +0 -10
  1864. package/lib/_virtual/tinymce/plugins/link/index.js.map +0 -1
  1865. package/lib/_virtual/tinymce/plugins/link/plugin.js +0 -815
  1866. package/lib/_virtual/tinymce/plugins/link/plugin.js.map +0 -1
  1867. package/lib/_virtual/tinymce/plugins/lists/index.js +0 -10
  1868. package/lib/_virtual/tinymce/plugins/lists/index.js.map +0 -1
  1869. package/lib/_virtual/tinymce/plugins/lists/plugin.js +0 -1169
  1870. package/lib/_virtual/tinymce/plugins/lists/plugin.js.map +0 -1
  1871. package/lib/_virtual/tinymce/plugins/media/index.js +0 -10
  1872. package/lib/_virtual/tinymce/plugins/media/index.js.map +0 -1
  1873. package/lib/_virtual/tinymce/plugins/media/plugin.js +0 -777
  1874. package/lib/_virtual/tinymce/plugins/media/plugin.js.map +0 -1
  1875. package/lib/_virtual/tinymce/plugins/nonbreaking/index.js +0 -10
  1876. package/lib/_virtual/tinymce/plugins/nonbreaking/index.js.map +0 -1
  1877. package/lib/_virtual/tinymce/plugins/nonbreaking/plugin.js +0 -79
  1878. package/lib/_virtual/tinymce/plugins/nonbreaking/plugin.js.map +0 -1
  1879. package/lib/_virtual/tinymce/plugins/preview/index.js +0 -10
  1880. package/lib/_virtual/tinymce/plugins/preview/index.js.map +0 -1
  1881. package/lib/_virtual/tinymce/plugins/preview/plugin.js +0 -384
  1882. package/lib/_virtual/tinymce/plugins/preview/plugin.js.map +0 -1
  1883. package/lib/_virtual/tinymce/plugins/searchreplace/index.js +0 -10
  1884. package/lib/_virtual/tinymce/plugins/searchreplace/index.js.map +0 -1
  1885. package/lib/_virtual/tinymce/plugins/searchreplace/plugin.js +0 -675
  1886. package/lib/_virtual/tinymce/plugins/searchreplace/plugin.js.map +0 -1
  1887. package/lib/_virtual/tinymce/plugins/table/index.js +0 -10
  1888. package/lib/_virtual/tinymce/plugins/table/index.js.map +0 -1
  1889. package/lib/_virtual/tinymce/plugins/table/plugin.js +0 -2147
  1890. package/lib/_virtual/tinymce/plugins/table/plugin.js.map +0 -1
  1891. package/lib/_virtual/tinymce/plugins/wordcount/index.js +0 -10
  1892. package/lib/_virtual/tinymce/plugins/wordcount/index.js.map +0 -1
  1893. package/lib/_virtual/tinymce/plugins/wordcount/plugin.js +0 -270
  1894. package/lib/_virtual/tinymce/plugins/wordcount/plugin.js.map +0 -1
  1895. package/lib/_virtual/tinymce/themes/silver/theme.js +0 -21392
  1896. package/lib/_virtual/tinymce/themes/silver/theme.js.map +0 -1
  1897. package/lib/_virtual/tinymce/tinymce.js +0 -16923
  1898. package/lib/_virtual/tinymce/tinymce.js.map +0 -1
  1899. package/lib/_virtual/tinymce.js +0 -8
  1900. package/lib/_virtual/tinymce.js.map +0 -1
  1901. package/lib/_virtual/tinymce2.js +0 -5
  1902. package/lib/_virtual/tinymce2.js.map +0 -1
  1903. package/lib/_virtual/xlsx/xlsx.js +0 -15604
  1904. package/lib/_virtual/xlsx/xlsx.js.map +0 -1
  1905. package/lib/components.css +0 -1
  1906. package/lib/index.d.ts +0 -6
  1907. package/lib/packages/hooks/src/use-namespace.js +0 -50
  1908. package/lib/packages/hooks/src/use-namespace.js.map +0 -1
  1909. package/lib/packages/utils/src/device.js +0 -8
  1910. package/lib/packages/utils/src/device.js.map +0 -1
  1911. package/lib/packages/utils/src/json.js +0 -15
  1912. package/lib/packages/utils/src/json.js.map +0 -1
  1913. package/lib/public/tiny-mce-editor/tinymce/langs/zh-Hans.js +0 -7
  1914. package/lib/public/tiny-mce-editor/tinymce/skins/content/dark/content.css +0 -78
  1915. package/lib/public/tiny-mce-editor/tinymce/skins/content/dark/content.min.css +0 -21
  1916. package/lib/public/tiny-mce-editor/tinymce/skins/content/default/content.css +0 -72
  1917. package/lib/public/tiny-mce-editor/tinymce/skins/content/default/content.min.css +0 -20
  1918. package/lib/public/tiny-mce-editor/tinymce/skins/content/document/content.css +0 -77
  1919. package/lib/public/tiny-mce-editor/tinymce/skins/content/document/content.min.css +0 -21
  1920. package/lib/public/tiny-mce-editor/tinymce/skins/content/tinymce-5/content.css +0 -72
  1921. package/lib/public/tiny-mce-editor/tinymce/skins/content/tinymce-5/content.min.css +0 -20
  1922. package/lib/public/tiny-mce-editor/tinymce/skins/content/tinymce-5-dark/content.css +0 -78
  1923. package/lib/public/tiny-mce-editor/tinymce/skins/content/tinymce-5-dark/content.min.css +0 -21
  1924. package/lib/public/tiny-mce-editor/tinymce/skins/content/writer/content.css +0 -73
  1925. package/lib/public/tiny-mce-editor/tinymce/skins/content/writer/content.min.css +0 -20
  1926. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide/content.css +0 -775
  1927. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide/content.inline.css +0 -769
  1928. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide/content.inline.min.css +0 -310
  1929. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide/content.min.css +0 -312
  1930. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide/skin.css +0 -3109
  1931. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide/skin.min.css +0 -771
  1932. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide/skin.shadowdom.css +0 -35
  1933. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide/skin.shadowdom.min.css +0 -10
  1934. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/content.css +0 -756
  1935. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/content.inline.css +0 -769
  1936. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/content.inline.min.css +0 -310
  1937. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/content.min.css +0 -299
  1938. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/skin.css +0 -3112
  1939. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/skin.min.css +0 -772
  1940. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +0 -35
  1941. package/lib/public/tiny-mce-editor/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +0 -10
  1942. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/content.css +0 -775
  1943. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/content.inline.css +0 -769
  1944. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/content.inline.min.css +0 -310
  1945. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/content.min.css +0 -312
  1946. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/skin.css +0 -3199
  1947. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/skin.min.css +0 -812
  1948. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/skin.shadowdom.css +0 -35
  1949. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +0 -10
  1950. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/content.css +0 -756
  1951. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/content.inline.css +0 -769
  1952. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +0 -310
  1953. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/content.min.css +0 -299
  1954. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/skin.css +0 -3199
  1955. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/skin.min.css +0 -812
  1956. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css +0 -35
  1957. package/lib/public/tiny-mce-editor/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +0 -10
  1958. package/lib/src/base/style/css.d.ts +0 -1
  1959. package/lib/src/base/style/index.d.ts +0 -1
  1960. package/lib/src/components.d.ts +0 -10
  1961. package/lib/src/data-chart/index.d.ts +0 -19
  1962. package/lib/src/data-chart/src/analyze.d.ts +0 -23
  1963. package/lib/src/data-chart/src/components/area.vue.js +0 -9
  1964. package/lib/src/data-chart/src/components/area.vue.js.map +0 -1
  1965. package/lib/src/data-chart/src/components/area.vue2.js +0 -155
  1966. package/lib/src/data-chart/src/components/area.vue2.js.map +0 -1
  1967. package/lib/src/data-chart/src/components/bar.vue.js +0 -8
  1968. package/lib/src/data-chart/src/components/bar.vue.js.map +0 -1
  1969. package/lib/src/data-chart/src/components/bar.vue2.js +0 -125
  1970. package/lib/src/data-chart/src/components/bar.vue2.js.map +0 -1
  1971. package/lib/src/data-chart/src/components/card.vue.js +0 -9
  1972. package/lib/src/data-chart/src/components/card.vue.js.map +0 -1
  1973. package/lib/src/data-chart/src/components/card.vue2.js +0 -94
  1974. package/lib/src/data-chart/src/components/card.vue2.js.map +0 -1
  1975. package/lib/src/data-chart/src/components/empty.svg.js +0 -5
  1976. package/lib/src/data-chart/src/components/empty.svg.js.map +0 -1
  1977. package/lib/src/data-chart/src/components/empty.svg2.js +0 -5
  1978. package/lib/src/data-chart/src/components/empty.svg2.js.map +0 -1
  1979. package/lib/src/data-chart/src/components/empty.vue.js +0 -9
  1980. package/lib/src/data-chart/src/components/empty.vue.js.map +0 -1
  1981. package/lib/src/data-chart/src/components/empty.vue2.js +0 -27
  1982. package/lib/src/data-chart/src/components/empty.vue2.js.map +0 -1
  1983. package/lib/src/data-chart/src/components/funnel.vue.js +0 -8
  1984. package/lib/src/data-chart/src/components/funnel.vue.js.map +0 -1
  1985. package/lib/src/data-chart/src/components/funnel.vue2.js +0 -67
  1986. package/lib/src/data-chart/src/components/funnel.vue2.js.map +0 -1
  1987. package/lib/src/data-chart/src/components/line.vue.js +0 -9
  1988. package/lib/src/data-chart/src/components/line.vue.js.map +0 -1
  1989. package/lib/src/data-chart/src/components/line.vue2.js +0 -105
  1990. package/lib/src/data-chart/src/components/line.vue2.js.map +0 -1
  1991. package/lib/src/data-chart/src/components/pie.vue.js +0 -8
  1992. package/lib/src/data-chart/src/components/pie.vue.js.map +0 -1
  1993. package/lib/src/data-chart/src/components/pie.vue2.js +0 -107
  1994. package/lib/src/data-chart/src/components/pie.vue2.js.map +0 -1
  1995. package/lib/src/data-chart/src/components/radar.vue.js +0 -8
  1996. package/lib/src/data-chart/src/components/radar.vue.js.map +0 -1
  1997. package/lib/src/data-chart/src/components/radar.vue2.js +0 -65
  1998. package/lib/src/data-chart/src/components/radar.vue2.js.map +0 -1
  1999. package/lib/src/data-chart/src/components/scatter-simple.vue.js +0 -8
  2000. package/lib/src/data-chart/src/components/scatter-simple.vue.js.map +0 -1
  2001. package/lib/src/data-chart/src/components/scatter-simple.vue2.js +0 -52
  2002. package/lib/src/data-chart/src/components/scatter-simple.vue2.js.map +0 -1
  2003. package/lib/src/data-chart/src/components/scatter.vue.js +0 -8
  2004. package/lib/src/data-chart/src/components/scatter.vue.js.map +0 -1
  2005. package/lib/src/data-chart/src/components/scatter.vue2.js +0 -67
  2006. package/lib/src/data-chart/src/components/scatter.vue2.js.map +0 -1
  2007. package/lib/src/data-chart/src/components/table.vue.js +0 -9
  2008. package/lib/src/data-chart/src/components/table.vue.js.map +0 -1
  2009. package/lib/src/data-chart/src/components/table.vue2.js +0 -94
  2010. package/lib/src/data-chart/src/components/table.vue2.js.map +0 -1
  2011. package/lib/src/data-chart/src/data-chart.vue.d.ts +0 -143
  2012. package/lib/src/data-chart/src/utils/config.d.ts +0 -41
  2013. package/lib/src/data-chart/src/utils/injectionKeys.d.ts +0 -3
  2014. package/lib/src/data-chart/src/utils/useCharts.d.ts +0 -16
  2015. package/lib/src/data-chart/style/index.d.ts +0 -1
  2016. package/lib/src/defaults.d.ts +0 -5
  2017. package/lib/src/file-upload/index.d.ts +0 -36
  2018. package/lib/src/file-upload/src/file-upload.vue.d.ts +0 -37
  2019. package/lib/src/file-upload/style/index.d.ts +0 -1
  2020. package/lib/src/fixed-action-bar/index.d.ts +0 -40
  2021. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts +0 -21
  2022. package/lib/src/fixed-action-bar/style/index.d.ts +0 -1
  2023. package/lib/src/image-upload/index.d.ts +0 -46
  2024. package/lib/src/image-upload/src/image-upload.vue.d.ts +0 -47
  2025. package/lib/src/image-upload/style/index.d.ts +0 -1
  2026. package/lib/src/make-installer.d.ts +0 -9
  2027. package/lib/src/photo-crop-tool/index.d.ts +0 -54
  2028. package/lib/src/photo-crop-tool/src/composables.d.ts +0 -6
  2029. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts +0 -65
  2030. package/lib/src/photo-crop-tool/style/index.d.ts +0 -1
  2031. package/lib/src/subject-action/index.d.ts +0 -78
  2032. package/lib/src/subject-action/src/subject-action.vue.d.ts +0 -77
  2033. package/lib/src/subject-action/style/index.d.ts +0 -1
  2034. package/lib/src/subject-layout/index.d.ts +0 -27
  2035. package/lib/src/subject-layout/src/subject-layout.vue.d.ts +0 -17
  2036. package/lib/src/subject-layout/style/index.d.ts +0 -1
  2037. package/lib/src/subject-list/index.d.ts +0 -18
  2038. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.d.ts +0 -30
  2039. package/lib/src/subject-list/src/components/SubjectRichText.vue.d.ts +0 -32
  2040. package/lib/src/subject-list/src/components/subject-blank-fill.vue.d.ts +0 -46
  2041. package/lib/src/subject-list/src/components/subject-scale.vue.d.ts +0 -40
  2042. package/lib/src/subject-list/src/components/subject-single.vue.d.ts +0 -46
  2043. package/lib/src/subject-list/src/components/subject-text-fill.vue.d.ts +0 -50
  2044. package/lib/src/subject-list/src/subject-list.vue.d.ts +0 -20
  2045. package/lib/src/subject-list/style/index.d.ts +0 -1
  2046. package/lib/src/subject-type/index.d.ts +0 -7
  2047. package/lib/src/subject-type/src/subject-type.vue.d.ts +0 -6
  2048. package/lib/src/subject-type/style/index.d.ts +0 -1
  2049. package/lib/src/tiny-mce-editor/index.d.ts +0 -17
  2050. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.d.ts +0 -18
  2051. package/lib/src/tiny-mce-editor/style/index.d.ts +0 -1
  2052. package/lib/src/withInstall.d.ts +0 -4
  2053. package/lib/theme-chalk/base.css +0 -658
  2054. package/lib/theme-chalk/base.scss +0 -18
  2055. package/lib/theme-chalk/common/element-plus.css +0 -402
  2056. package/lib/theme-chalk/common/element-plus.scss +0 -605
  2057. package/lib/theme-chalk/common/popup.css +0 -37
  2058. package/lib/theme-chalk/common/popup.scss +0 -43
  2059. package/lib/theme-chalk/common/transition.css +0 -119
  2060. package/lib/theme-chalk/common/transition.scss +0 -126
  2061. package/lib/theme-chalk/common/var.css +0 -1
  2062. package/lib/theme-chalk/common/var.scss +0 -1511
  2063. package/lib/theme-chalk/data-chart.css +0 -4
  2064. package/lib/theme-chalk/data-chart.scss +0 -7
  2065. package/lib/theme-chalk/file-upload.css +0 -23
  2066. package/lib/theme-chalk/file-upload.scss +0 -33
  2067. package/lib/theme-chalk/fixed-action-bar.css +0 -14
  2068. package/lib/theme-chalk/fixed-action-bar.scss +0 -18
  2069. package/lib/theme-chalk/image-upload.css +0 -117
  2070. package/lib/theme-chalk/image-upload.scss +0 -136
  2071. package/lib/theme-chalk/index.css +0 -1202
  2072. package/lib/theme-chalk/index.scss +0 -13
  2073. package/lib/theme-chalk/mixins/_col.css +0 -1
  2074. package/lib/theme-chalk/mixins/_col.scss +0 -33
  2075. package/lib/theme-chalk/mixins/_var.css +0 -1
  2076. package/lib/theme-chalk/mixins/_var.scss +0 -87
  2077. package/lib/theme-chalk/mixins/config.css +0 -0
  2078. package/lib/theme-chalk/mixins/config.scss +0 -5
  2079. package/lib/theme-chalk/mixins/function.css +0 -0
  2080. package/lib/theme-chalk/mixins/function.scss +0 -95
  2081. package/lib/theme-chalk/mixins/mixins.css +0 -1
  2082. package/lib/theme-chalk/mixins/mixins.scss +0 -236
  2083. package/lib/theme-chalk/mixins/utils.css +0 -0
  2084. package/lib/theme-chalk/mixins/utils.scss +0 -39
  2085. package/lib/theme-chalk/photo-crop-tool.css +0 -76
  2086. package/lib/theme-chalk/photo-crop-tool.scss +0 -84
  2087. package/lib/theme-chalk/subject-action.css +0 -27
  2088. package/lib/theme-chalk/subject-action.scss +0 -34
  2089. package/lib/theme-chalk/subject-layout.css +0 -23
  2090. package/lib/theme-chalk/subject-layout.scss +0 -26
  2091. package/lib/theme-chalk/subject-list.css +0 -222
  2092. package/lib/theme-chalk/subject-list.scss +0 -302
  2093. package/lib/theme-chalk/subject-template.css +0 -4
  2094. package/lib/theme-chalk/subject-template.scss +0 -5
  2095. package/lib/theme-chalk/subject-type.css +0 -24
  2096. package/lib/theme-chalk/subject-type.scss +0 -32
  2097. package/lib/theme-chalk/tiny-mce-editor.css +0 -16
  2098. package/lib/theme-chalk/tiny-mce-editor.scss +0 -23
  2099. package/lib/theme-chalk/var.css +0 -129
  2100. package/lib/theme-chalk/var.scss +0 -87
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.js","sources":["../../../../../../../node_modules/.pnpm/tinymce@7.7.0/node_modules/tinymce/models/dom/model.js"],"sourcesContent":["/**\n * TinyMCE version 7.7.0 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.ModelManager');\n\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType$1 = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq$2 = t => a => t === a;\n const isString = isType$1('string');\n const isObject = isType$1('object');\n const isArray = isType$1('array');\n const isNull = eq$2(null);\n const isBoolean = isSimpleType('boolean');\n const isUndefined = eq$2(undefined);\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n\n const noop = () => {\n };\n const compose = (fa, fb) => {\n return (...args) => {\n return fa(fb.apply(null, args));\n };\n };\n const compose1 = (fbc, fab) => a => fbc(fab(a));\n const constant = value => {\n return () => {\n return value;\n };\n };\n const identity = x => {\n return x;\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n function curry(fn, ...initialArgs) {\n return (...restArgs) => {\n const all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n const not = f => t => !f(t);\n const die = msg => {\n return () => {\n throw new Error(msg);\n };\n };\n const apply = f => {\n return f();\n };\n const never = constant(false);\n const always = constant(true);\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const nativeSlice = Array.prototype.slice;\n const nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const contains$2 = (xs, x) => rawIndexOf(xs, x) > -1;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const range$1 = (num, f) => {\n const r = [];\n for (let i = 0; i < num; i++) {\n r.push(f(i));\n }\n return r;\n };\n const map$1 = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$2 = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const eachr = (xs, f) => {\n for (let i = xs.length - 1; i >= 0; i--) {\n const x = xs[i];\n f(x, i);\n }\n };\n const partition = (xs, pred) => {\n const pass = [];\n const fail = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n const arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n return {\n pass,\n fail\n };\n };\n const filter$2 = (xs, pred) => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n const foldr = (xs, f, acc) => {\n eachr(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const foldl = (xs, f, acc) => {\n each$2(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find$1 = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const findIndex = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n return Optional.none();\n };\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const bind$2 = (xs, f) => flatten(map$1(xs, f));\n const forall = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; ++i) {\n const x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n const reverse = xs => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n const mapToObject = (xs, f) => {\n const r = {};\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n const sort$1 = (xs, comparator) => {\n const copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n const get$d = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get$d(xs, 0);\n const last$2 = xs => get$d(xs, xs.length - 1);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each$1 = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const map = (obj, f) => {\n return tupleMap(obj, (x, i) => ({\n k: i,\n v: f(x, i)\n }));\n };\n const tupleMap = (obj, f) => {\n const r = {};\n each$1(obj, (x, i) => {\n const tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each$1(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const filter$1 = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const mapToArray = (obj, f) => {\n const r = [];\n each$1(obj, (value, name) => {\n r.push(f(value, name));\n });\n return r;\n };\n const values = obj => {\n return mapToArray(obj, identity);\n };\n const get$c = (obj, key) => {\n return has$1(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n const has$1 = (obj, key) => hasOwnProperty.call(obj, key);\n const hasNonNullableKey = (obj, key) => has$1(obj, key) && obj[key] !== undefined && obj[key] !== null;\n const isEmpty = r => {\n for (const x in r) {\n if (hasOwnProperty.call(r, x)) {\n return false;\n }\n }\n return true;\n };\n\n const Global = typeof window !== 'undefined' ? window : Function('return this;')();\n\n const path = (parts, scope) => {\n let o = scope !== undefined && scope !== null ? scope : Global;\n for (let i = 0; i < parts.length && o !== undefined && o !== null; ++i) {\n o = o[parts[i]];\n }\n return o;\n };\n const resolve$2 = (p, scope) => {\n const parts = p.split('.');\n return path(parts, scope);\n };\n\n const unsafe = (name, scope) => {\n return resolve$2(name, scope);\n };\n const getOrDie = (name, scope) => {\n const actual = unsafe(name, scope);\n if (actual === undefined || actual === null) {\n throw new Error(name + ' not available on this browser');\n }\n return actual;\n };\n\n const getPrototypeOf = Object.getPrototypeOf;\n const sandHTMLElement = scope => {\n return getOrDie('HTMLElement', scope);\n };\n const isPrototypeOf = x => {\n const scope = resolve$2('ownerDocument.defaultView', x);\n return isObject(x) && (sandHTMLElement(scope).prototype.isPrototypeOf(x) || /^HTML\\w*Element$/.test(getPrototypeOf(x).constructor.name));\n };\n\n const COMMENT = 8;\n const DOCUMENT = 9;\n const DOCUMENT_FRAGMENT = 11;\n const ELEMENT = 1;\n const TEXT = 3;\n\n const name = element => {\n const r = element.dom.nodeName;\n return r.toLowerCase();\n };\n const type = element => element.dom.nodeType;\n const isType = t => element => type(element) === t;\n const isComment = element => type(element) === COMMENT || name(element) === '#comment';\n const isHTMLElement = element => isElement(element) && isPrototypeOf(element.dom);\n const isElement = isType(ELEMENT);\n const isText = isType(TEXT);\n const isDocument = isType(DOCUMENT);\n const isDocumentFragment = isType(DOCUMENT_FRAGMENT);\n const isTag = tag => e => isElement(e) && name(e) === tag;\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set$2 = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const setAll$1 = (element, attrs) => {\n const dom = element.dom;\n each$1(attrs, (v, k) => {\n rawSet(dom, k, v);\n });\n };\n const setOptions = (element, attrs) => {\n each$1(attrs, (v, k) => {\n v.fold(() => {\n remove$7(element, k);\n }, value => {\n rawSet(element.dom, k, value);\n });\n });\n };\n const get$b = (element, key) => {\n const v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n const getOpt = (element, key) => Optional.from(get$b(element, key));\n const remove$7 = (element, key) => {\n element.dom.removeAttribute(key);\n };\n const clone$2 = element => foldl(element.dom.attributes, (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n\n const fromHtml$1 = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom$1(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom$1(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom$1(node);\n };\n const fromDom$1 = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint$1 = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom$1);\n const SugarElement = {\n fromHtml: fromHtml$1,\n fromTag,\n fromText,\n fromDom: fromDom$1,\n fromPoint: fromPoint$1\n };\n\n const is$2 = (element, selector) => {\n const dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n const elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n const all$1 = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map$1(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n const one = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom);\n };\n\n const eq$1 = (e1, e2) => e1.dom === e2.dom;\n const contains$1 = (e1, e2) => {\n const d1 = e1.dom;\n const d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n const is$1 = is$2;\n\n const owner = element => SugarElement.fromDom(element.dom.ownerDocument);\n const documentOrOwner = dos => isDocument(dos) ? dos : owner(dos);\n const documentElement = element => SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n const defaultView = element => SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom);\n const parents = (element, isRoot) => {\n const stop = isFunction(isRoot) ? isRoot : never;\n let dom = element.dom;\n const ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n const rawParent = dom.parentNode;\n const p = SugarElement.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n const prevSibling = element => Optional.from(element.dom.previousSibling).map(SugarElement.fromDom);\n const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n const children$2 = element => map$1(element.dom.childNodes, SugarElement.fromDom);\n const child$2 = (element, index) => {\n const cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n const firstChild = element => child$2(element, 0);\n\n const before$3 = (marker, element) => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n const after$5 = (marker, element) => {\n const sibling = nextSibling(marker);\n sibling.fold(() => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n append$1(v, element);\n });\n }, v => {\n before$3(v, element);\n });\n };\n const prepend = (parent, element) => {\n const firstChild$1 = firstChild(parent);\n firstChild$1.fold(() => {\n append$1(parent, element);\n }, v => {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n const append$1 = (parent, element) => {\n parent.dom.appendChild(element.dom);\n };\n const appendAt = (parent, element, index) => {\n child$2(parent, index).fold(() => {\n append$1(parent, element);\n }, v => {\n before$3(v, element);\n });\n };\n const wrap = (element, wrapper) => {\n before$3(element, wrapper);\n append$1(wrapper, element);\n };\n\n const after$4 = (marker, elements) => {\n each$2(elements, (x, i) => {\n const e = i === 0 ? marker : elements[i - 1];\n after$5(e, x);\n });\n };\n const append = (parent, elements) => {\n each$2(elements, x => {\n append$1(parent, x);\n });\n };\n\n const empty = element => {\n element.dom.textContent = '';\n each$2(children$2(element), rogue => {\n remove$6(rogue);\n });\n };\n const remove$6 = element => {\n const dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n const unwrap = wrapper => {\n const children = children$2(wrapper);\n if (children.length > 0) {\n after$4(wrapper, children);\n }\n remove$6(wrapper);\n };\n\n const clone$1 = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep));\n const shallow = original => clone$1(original, false);\n const deep = original => clone$1(original, true);\n const shallowAs = (original, tag) => {\n const nu = SugarElement.fromTag(tag);\n const attributes = clone$2(original);\n setAll$1(nu, attributes);\n return nu;\n };\n const copy$2 = (original, tag) => {\n const nu = shallowAs(original, tag);\n const cloneChildren = children$2(deep(original));\n append(nu, cloneChildren);\n return nu;\n };\n const mutate$1 = (original, tag) => {\n const nu = shallowAs(original, tag);\n after$5(original, nu);\n const children = children$2(original);\n append(nu, children);\n remove$6(original);\n return nu;\n };\n\n const validSectionList = [\n 'tfoot',\n 'thead',\n 'tbody',\n 'colgroup'\n ];\n const isValidSection = parentName => contains$2(validSectionList, parentName);\n const grid = (rows, columns) => ({\n rows,\n columns\n });\n const address = (row, column) => ({\n row,\n column\n });\n const detail = (element, rowspan, colspan) => ({\n element,\n rowspan,\n colspan\n });\n const detailnew = (element, rowspan, colspan, isNew) => ({\n element,\n rowspan,\n colspan,\n isNew\n });\n const extended = (element, rowspan, colspan, row, column, isLocked) => ({\n element,\n rowspan,\n colspan,\n row,\n column,\n isLocked\n });\n const rowdetail = (element, cells, section) => ({\n element,\n cells,\n section\n });\n const rowdetailnew = (element, cells, section, isNew) => ({\n element,\n cells,\n section,\n isNew\n });\n const elementnew = (element, isNew, isLocked) => ({\n element,\n isNew,\n isLocked\n });\n const rowcells = (element, cells, section, isNew) => ({\n element,\n cells,\n section,\n isNew\n });\n const bounds = (startRow, startCol, finishRow, finishCol) => ({\n startRow,\n startCol,\n finishRow,\n finishCol\n });\n const columnext = (element, colspan, column) => ({\n element,\n colspan,\n column\n });\n const colgroup = (element, columns) => ({\n element,\n columns\n });\n\n const isShadowRoot = dos => isDocumentFragment(dos) && isNonNullable(dos.dom.host);\n const getRootNode = e => SugarElement.fromDom(e.dom.getRootNode());\n const getContentContainer = dos => isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n const getShadowRoot = e => {\n const r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n const getShadowHost = e => SugarElement.fromDom(e.dom.host);\n const getOriginalEventTarget = event => {\n if (isNonNullable(event.target)) {\n const el = SugarElement.fromDom(event.target);\n if (isElement(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n const composedPath = event.composedPath();\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n return Optional.from(event.target);\n };\n const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot);\n\n const inBody = element => {\n const dom = isText(element) ? element.dom.parentNode : element.dom;\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n const doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost));\n };\n const body$1 = () => getBody$1(SugarElement.fromDom(document));\n const getBody$1 = doc => {\n const b = doc.dom.body;\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n return SugarElement.fromDom(b);\n };\n\n const ancestors$4 = (scope, predicate, isRoot) => filter$2(parents(scope, isRoot), predicate);\n const children$1 = (scope, predicate) => filter$2(children$2(scope), predicate);\n const descendants$1 = (scope, predicate) => {\n let result = [];\n each$2(children$2(scope), x => {\n if (predicate(x)) {\n result = result.concat([x]);\n }\n result = result.concat(descendants$1(x, predicate));\n });\n return result;\n };\n\n const ancestors$3 = (scope, selector, isRoot) => ancestors$4(scope, e => is$2(e, selector), isRoot);\n const children = (scope, selector) => children$1(scope, e => is$2(e, selector));\n const descendants = (scope, selector) => all$1(selector, scope);\n\n var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n };\n\n const ancestor$2 = (scope, predicate, isRoot) => {\n let element = scope.dom;\n const stop = isFunction(isRoot) ? isRoot : never;\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$2 = (scope, predicate, isRoot) => {\n const is = (s, test) => test(s);\n return ClosestOrAncestor(is, ancestor$2, scope, predicate, isRoot);\n };\n const child$1 = (scope, predicate) => {\n const pred = node => predicate(SugarElement.fromDom(node));\n const result = find$1(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n const descendant$1 = (scope, predicate) => {\n const descend = node => {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = SugarElement.fromDom(node.childNodes[i]);\n if (predicate(child)) {\n return Optional.some(child);\n }\n const res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope.dom);\n };\n\n const ancestor$1 = (scope, selector, isRoot) => ancestor$2(scope, e => is$2(e, selector), isRoot);\n const child = (scope, selector) => child$1(scope, e => is$2(e, selector));\n const descendant = (scope, selector) => one(selector, scope);\n const closest$1 = (scope, selector, isRoot) => {\n const is = (element, selector) => is$2(element, selector);\n return ClosestOrAncestor(is, ancestor$1, scope, selector, isRoot);\n };\n\n const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const cat = arr => {\n const r = [];\n const push = x => {\n r.push(x);\n };\n for (let i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n const bindFrom = (a, f) => a !== undefined && a !== null ? f(a) : Optional.none();\n const someIf = (b, a) => b ? Optional.some(a) : Optional.none();\n\n const removeFromStart = (str, numChars) => {\n return str.substring(numChars);\n };\n\n const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n const removeLeading = (str, prefix) => {\n return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n };\n const contains = (str, substr, start = 0, end) => {\n const idx = str.indexOf(substr, start);\n if (idx !== -1) {\n return isUndefined(end) ? true : idx + substr.length <= end;\n } else {\n return false;\n }\n };\n const startsWith = (str, prefix) => {\n return checkRange(str, prefix, 0);\n };\n const endsWith = (str, suffix) => {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n const blank = r => s => s.replace(r, '');\n const trim = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = s => s.length > 0;\n const toFloat = value => {\n const num = parseFloat(value);\n return isNaN(num) ? Optional.none() : Optional.some(num);\n };\n\n const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n\n const internalSet = (dom, property, value) => {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n const internalRemove = (dom, property) => {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n const set$1 = (element, property, value) => {\n const dom = element.dom;\n internalSet(dom, property, value);\n };\n const setAll = (element, css) => {\n const dom = element.dom;\n each$1(css, (v, k) => {\n internalSet(dom, k, v);\n });\n };\n const get$a = (element, property) => {\n const dom = element.dom;\n const styles = window.getComputedStyle(dom);\n const r = styles.getPropertyValue(property);\n return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n };\n const getUnsafeProperty = (dom, property) => isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n const getRaw$2 = (element, property) => {\n const dom = element.dom;\n const raw = getUnsafeProperty(dom, property);\n return Optional.from(raw).filter(r => r.length > 0);\n };\n const remove$5 = (element, property) => {\n const dom = element.dom;\n internalRemove(dom, property);\n if (is(getOpt(element, 'style').map(trim), '')) {\n remove$7(element, 'style');\n }\n };\n const copy$1 = (source, target) => {\n const sourceDom = source.dom;\n const targetDom = target.dom;\n if (isSupported(sourceDom) && isSupported(targetDom)) {\n targetDom.style.cssText = sourceDom.style.cssText;\n }\n };\n\n const getAttrValue = (cell, name, fallback = 0) => getOpt(cell, name).map(value => parseInt(value, 10)).getOr(fallback);\n const getSpan = (cell, type) => getAttrValue(cell, type, 1);\n const hasColspan = cellOrCol => {\n if (isTag('col')(cellOrCol)) {\n return getAttrValue(cellOrCol, 'span', 1) > 1;\n } else {\n return getSpan(cellOrCol, 'colspan') > 1;\n }\n };\n const hasRowspan = cell => getSpan(cell, 'rowspan') > 1;\n const getCssValue = (element, property) => parseInt(get$a(element, property), 10);\n const minWidth = constant(10);\n const minHeight = constant(10);\n\n const firstLayer = (scope, selector) => {\n return filterFirstLayer(scope, selector, always);\n };\n const filterFirstLayer = (scope, selector, predicate) => {\n return bind$2(children$2(scope), x => {\n if (is$2(x, selector)) {\n return predicate(x) ? [x] : [];\n } else {\n return filterFirstLayer(x, selector, predicate);\n }\n });\n };\n\n const lookup = (tags, element, isRoot = never) => {\n if (isRoot(element)) {\n return Optional.none();\n }\n if (contains$2(tags, name(element))) {\n return Optional.some(element);\n }\n const isRootOrUpperTable = elm => is$2(elm, 'table') || isRoot(elm);\n return ancestor$1(element, tags.join(','), isRootOrUpperTable);\n };\n const cell = (element, isRoot) => lookup([\n 'td',\n 'th'\n ], element, isRoot);\n const cells$1 = ancestor => firstLayer(ancestor, 'th,td');\n const columns$1 = ancestor => {\n if (is$2(ancestor, 'colgroup')) {\n return children(ancestor, 'col');\n } else {\n return bind$2(columnGroups(ancestor), columnGroup => children(columnGroup, 'col'));\n }\n };\n const table = (element, isRoot) => closest$1(element, 'table', isRoot);\n const rows$1 = ancestor => firstLayer(ancestor, 'tr');\n const columnGroups = ancestor => table(ancestor).fold(constant([]), table => children(table, 'colgroup'));\n\n const fromRowsOrColGroups = (elems, getSection) => map$1(elems, row => {\n if (name(row) === 'colgroup') {\n const cells = map$1(columns$1(row), column => {\n const colspan = getAttrValue(column, 'span', 1);\n return detail(column, 1, colspan);\n });\n return rowdetail(row, cells, 'colgroup');\n } else {\n const cells = map$1(cells$1(row), cell => {\n const rowspan = getAttrValue(cell, 'rowspan', 1);\n const colspan = getAttrValue(cell, 'colspan', 1);\n return detail(cell, rowspan, colspan);\n });\n return rowdetail(row, cells, getSection(row));\n }\n });\n const getParentSection = group => parent(group).map(parent => {\n const parentName = name(parent);\n return isValidSection(parentName) ? parentName : 'tbody';\n }).getOr('tbody');\n const fromTable$1 = table => {\n const rows = rows$1(table);\n const columnGroups$1 = columnGroups(table);\n const elems = [\n ...columnGroups$1,\n ...rows\n ];\n return fromRowsOrColGroups(elems, getParentSection);\n };\n const fromPastedRows = (elems, section) => fromRowsOrColGroups(elems, () => section);\n\n const cached = f => {\n let called = false;\n let r;\n return (...args) => {\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n const DeviceType = (os, browser, userAgent, mediaMatch) => {\n const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n const isiPhone = os.isiOS() && !isiPad;\n const isMobile = os.isiOS() || os.isAndroid();\n const isTouch = isMobile || mediaMatch('(pointer:coarse)');\n const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n const isPhone = isiPhone || isMobile && !isTablet;\n const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n const isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview),\n isDesktop: constant(isDesktop)\n };\n };\n\n const firstMatch = (regexes, s) => {\n for (let i = 0; i < regexes.length; i++) {\n const x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n const find = (regexes, agent) => {\n const r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n const group = i => {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$2(group(1), group(2));\n };\n const detect$5 = (versionRegexes, agent) => {\n const cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown$2();\n }\n return find(versionRegexes, cleanedAgent);\n };\n const unknown$2 = () => {\n return nu$2(0, 0);\n };\n const nu$2 = (major, minor) => {\n return {\n major,\n minor\n };\n };\n const Version = {\n nu: nu$2,\n detect: detect$5,\n unknown: unknown$2\n };\n\n const detectBrowser$1 = (browsers, userAgentData) => {\n return findMap(userAgentData.brands, uaBrand => {\n const lcBrand = uaBrand.brand.toLowerCase();\n return find$1(browsers, browser => {\n var _a;\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(info => ({\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n }));\n });\n };\n\n const detect$4 = (candidates, userAgent) => {\n const agent = String(userAgent).toLowerCase();\n return find$1(candidates, candidate => {\n return candidate.search(agent);\n });\n };\n const detectBrowser = (browsers, userAgent) => {\n return detect$4(browsers, userAgent).map(browser => {\n const version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version\n };\n });\n };\n const detectOs = (oses, userAgent) => {\n return detect$4(oses, userAgent).map(os => {\n const version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version\n };\n });\n };\n\n const normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n const checkContains = target => {\n return uastring => {\n return contains(uastring, target);\n };\n };\n const browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: uastring => {\n return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chromium',\n brand: 'Chromium',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: uastring => {\n return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: uastring => {\n return contains(uastring, 'msie') || contains(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: uastring => {\n return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit');\n }\n }\n ];\n const oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: uastring => {\n return contains(uastring, 'iphone') || contains(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'macOS',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n },\n {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }\n ];\n const PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n const edge = 'Edge';\n const chromium = 'Chromium';\n const ie = 'IE';\n const opera = 'Opera';\n const firefox = 'Firefox';\n const safari = 'Safari';\n const unknown$1 = () => {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$1 = info => {\n const current = info.current;\n const version = info.version;\n const isBrowser = name => () => current === name;\n return {\n current,\n version,\n isEdge: isBrowser(edge),\n isChromium: isBrowser(chromium),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n const Browser = {\n unknown: unknown$1,\n nu: nu$1,\n edge: constant(edge),\n chromium: constant(chromium),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n const windows = 'Windows';\n const ios = 'iOS';\n const android = 'Android';\n const linux = 'Linux';\n const macos = 'macOS';\n const solaris = 'Solaris';\n const freebsd = 'FreeBSD';\n const chromeos = 'ChromeOS';\n const unknown = () => {\n return nu({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu = info => {\n const current = info.current;\n const version = info.version;\n const isOS = name => () => current === name;\n return {\n current,\n version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isMacOS: isOS(macos),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n const OperatingSystem = {\n unknown,\n nu,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n macos: constant(macos),\n solaris: constant(solaris),\n freebsd: constant(freebsd),\n chromeos: constant(chromeos)\n };\n\n const detect$3 = (userAgent, userAgentDataOpt, mediaMatch) => {\n const browsers = PlatformInfo.browsers();\n const oses = PlatformInfo.oses();\n const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu);\n const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n const deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser,\n os,\n deviceType\n };\n };\n const PlatformDetection = { detect: detect$3 };\n\n const mediaMatch = query => window.matchMedia(query).matches;\n let platform = cached(() => PlatformDetection.detect(window.navigator.userAgent, Optional.from(window.navigator.userAgentData), mediaMatch));\n const detect$2 = () => platform();\n\n const Dimension = (name, getOffset) => {\n const set = (element, h) => {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n const dom = element.dom;\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n const get = element => {\n const r = getOffset(element);\n if (r <= 0 || r === null) {\n const css = get$a(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n const getOuter = get;\n const aggregate = (element, properties) => foldl(properties, (acc, property) => {\n const val = get$a(element, property);\n const value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n const max = (element, value, properties) => {\n const cumulativeInclusions = aggregate(element, properties);\n const absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set,\n get,\n getOuter,\n aggregate,\n max\n };\n };\n\n const toNumber = (px, fallback) => toFloat(px).getOr(fallback);\n const getProp = (element, name, fallback) => toNumber(get$a(element, name), fallback);\n const calcContentBoxSize = (element, size, upper, lower) => {\n const paddingUpper = getProp(element, `padding-${ upper }`, 0);\n const paddingLower = getProp(element, `padding-${ lower }`, 0);\n const borderUpper = getProp(element, `border-${ upper }-width`, 0);\n const borderLower = getProp(element, `border-${ lower }-width`, 0);\n return size - paddingUpper - paddingLower - borderUpper - borderLower;\n };\n const getCalculatedWidth = (element, boxSizing) => {\n const dom = element.dom;\n const width = dom.getBoundingClientRect().width || dom.offsetWidth;\n return boxSizing === 'border-box' ? width : calcContentBoxSize(element, width, 'left', 'right');\n };\n const getHeight$1 = element => getProp(element, 'height', element.dom.offsetHeight);\n const getWidth = element => getProp(element, 'width', element.dom.offsetWidth);\n const getInnerWidth = element => getCalculatedWidth(element, 'content-box');\n\n const api$2 = Dimension('width', element => element.dom.offsetWidth);\n const get$9 = element => api$2.get(element);\n const getOuter$2 = element => api$2.getOuter(element);\n const getInner = getInnerWidth;\n const getRuntime$1 = getWidth;\n\n const addCells = (gridRow, index, cells) => {\n const existingCells = gridRow.cells;\n const before = existingCells.slice(0, index);\n const after = existingCells.slice(index);\n const newCells = before.concat(cells).concat(after);\n return setCells(gridRow, newCells);\n };\n const addCell = (gridRow, index, cell) => addCells(gridRow, index, [cell]);\n const mutateCell = (gridRow, index, cell) => {\n const cells = gridRow.cells;\n cells[index] = cell;\n };\n const setCells = (gridRow, cells) => rowcells(gridRow.element, cells, gridRow.section, gridRow.isNew);\n const mapCells = (gridRow, f) => {\n const cells = gridRow.cells;\n const r = map$1(cells, f);\n return rowcells(gridRow.element, r, gridRow.section, gridRow.isNew);\n };\n const getCell = (gridRow, index) => gridRow.cells[index];\n const getCellElement = (gridRow, index) => getCell(gridRow, index).element;\n const cellLength = gridRow => gridRow.cells.length;\n const extractGridDetails = grid => {\n const result = partition(grid, row => row.section === 'colgroup');\n return {\n rows: result.fail,\n cols: result.pass\n };\n };\n const clone = (gridRow, cloneRow, cloneCell) => {\n const newCells = map$1(gridRow.cells, cloneCell);\n return rowcells(cloneRow(gridRow.element), newCells, gridRow.section, true);\n };\n\n const LOCKED_COL_ATTR = 'data-snooker-locked-cols';\n const getLockedColumnsFromTable = table => getOpt(table, LOCKED_COL_ATTR).bind(lockedColStr => Optional.from(lockedColStr.match(/\\d+/g))).map(lockedCols => mapToObject(lockedCols, always));\n const getLockedColumnsFromGrid = grid => {\n const locked = foldl(extractGridDetails(grid).rows, (acc, row) => {\n each$2(row.cells, (cell, idx) => {\n if (cell.isLocked) {\n acc[idx] = true;\n }\n });\n return acc;\n }, {});\n const lockedArr = mapToArray(locked, (_val, key) => parseInt(key, 10));\n return sort$1(lockedArr);\n };\n\n const key = (row, column) => {\n return row + ',' + column;\n };\n const getAt = (warehouse, row, column) => Optional.from(warehouse.access[key(row, column)]);\n const findItem = (warehouse, item, comparator) => {\n const filtered = filterItems(warehouse, detail => {\n return comparator(item, detail.element);\n });\n return filtered.length > 0 ? Optional.some(filtered[0]) : Optional.none();\n };\n const filterItems = (warehouse, predicate) => {\n const all = bind$2(warehouse.all, r => {\n return r.cells;\n });\n return filter$2(all, predicate);\n };\n const generateColumns = rowData => {\n const columnsGroup = {};\n let index = 0;\n each$2(rowData.cells, column => {\n const colspan = column.colspan;\n range$1(colspan, columnIndex => {\n const colIndex = index + columnIndex;\n columnsGroup[colIndex] = columnext(column.element, colspan, colIndex);\n });\n index += colspan;\n });\n return columnsGroup;\n };\n const generate$2 = list => {\n const access = {};\n const cells = [];\n const tableOpt = head(list).map(rowData => rowData.element).bind(table);\n const lockedColumns = tableOpt.bind(getLockedColumnsFromTable).getOr({});\n let maxRows = 0;\n let maxColumns = 0;\n let rowCount = 0;\n const {\n pass: colgroupRows,\n fail: rows\n } = partition(list, rowData => rowData.section === 'colgroup');\n each$2(rows, rowData => {\n const currentRow = [];\n each$2(rowData.cells, rowCell => {\n let start = 0;\n while (access[key(rowCount, start)] !== undefined) {\n start++;\n }\n const isLocked = hasNonNullableKey(lockedColumns, start.toString());\n const current = extended(rowCell.element, rowCell.rowspan, rowCell.colspan, rowCount, start, isLocked);\n for (let occupiedColumnPosition = 0; occupiedColumnPosition < rowCell.colspan; occupiedColumnPosition++) {\n for (let occupiedRowPosition = 0; occupiedRowPosition < rowCell.rowspan; occupiedRowPosition++) {\n const rowPosition = rowCount + occupiedRowPosition;\n const columnPosition = start + occupiedColumnPosition;\n const newpos = key(rowPosition, columnPosition);\n access[newpos] = current;\n maxColumns = Math.max(maxColumns, columnPosition + 1);\n }\n }\n currentRow.push(current);\n });\n maxRows++;\n cells.push(rowdetail(rowData.element, currentRow, rowData.section));\n rowCount++;\n });\n const {columns, colgroups} = last$2(colgroupRows).map(rowData => {\n const columns = generateColumns(rowData);\n const colgroup$1 = colgroup(rowData.element, values(columns));\n return {\n colgroups: [colgroup$1],\n columns\n };\n }).getOrThunk(() => ({\n colgroups: [],\n columns: {}\n }));\n const grid$1 = grid(maxRows, maxColumns);\n return {\n grid: grid$1,\n access,\n all: cells,\n columns,\n colgroups\n };\n };\n const fromTable = table => {\n const list = fromTable$1(table);\n return generate$2(list);\n };\n const justCells = warehouse => bind$2(warehouse.all, w => w.cells);\n const justColumns = warehouse => values(warehouse.columns);\n const hasColumns = warehouse => keys(warehouse.columns).length > 0;\n const getColumnAt = (warehouse, columnIndex) => Optional.from(warehouse.columns[columnIndex]);\n const Warehouse = {\n fromTable,\n generate: generate$2,\n getAt,\n findItem,\n filterItems,\n justCells,\n justColumns,\n hasColumns,\n getColumnAt\n };\n\n const columns = (warehouse, isValidCell = always) => {\n const grid = warehouse.grid;\n const cols = range$1(grid.columns, identity);\n const rowsArr = range$1(grid.rows, identity);\n return map$1(cols, col => {\n const getBlock = () => bind$2(rowsArr, r => Warehouse.getAt(warehouse, r, col).filter(detail => detail.column === col).toArray());\n const isValid = detail => detail.colspan === 1 && isValidCell(detail.element);\n const getFallback = () => Warehouse.getAt(warehouse, 0, col);\n return decide(getBlock, isValid, getFallback);\n });\n };\n const decide = (getBlock, isValid, getFallback) => {\n const inBlock = getBlock();\n const validInBlock = find$1(inBlock, isValid);\n const detailOption = validInBlock.orThunk(() => Optional.from(inBlock[0]).orThunk(getFallback));\n return detailOption.map(detail => detail.element);\n };\n const rows = warehouse => {\n const grid = warehouse.grid;\n const rowsArr = range$1(grid.rows, identity);\n const cols = range$1(grid.columns, identity);\n return map$1(rowsArr, row => {\n const getBlock = () => bind$2(cols, c => Warehouse.getAt(warehouse, row, c).filter(detail => detail.row === row).fold(constant([]), detail => [detail]));\n const isSingle = detail => detail.rowspan === 1;\n const getFallback = () => Warehouse.getAt(warehouse, row, 0);\n return decide(getBlock, isSingle, getFallback);\n });\n };\n\n const deduce = (xs, index) => {\n if (index < 0 || index >= xs.length - 1) {\n return Optional.none();\n }\n const current = xs[index].fold(() => {\n const rest = reverse(xs.slice(0, index));\n return findMap(rest, (a, i) => a.map(aa => ({\n value: aa,\n delta: i + 1\n })));\n }, c => Optional.some({\n value: c,\n delta: 0\n }));\n const next = xs[index + 1].fold(() => {\n const rest = xs.slice(index + 1);\n return findMap(rest, (a, i) => a.map(aa => ({\n value: aa,\n delta: i + 1\n })));\n }, n => Optional.some({\n value: n,\n delta: 1\n }));\n return current.bind(c => next.map(n => {\n const extras = n.delta + c.delta;\n return Math.abs(n.value - c.value) / extras;\n }));\n };\n\n const onDirection = (isLtr, isRtl) => element => getDirection(element) === 'rtl' ? isRtl : isLtr;\n const getDirection = element => get$a(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n\n const api$1 = Dimension('height', element => {\n const dom = element.dom;\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n const get$8 = element => api$1.get(element);\n const getOuter$1 = element => api$1.getOuter(element);\n const getRuntime = getHeight$1;\n\n const r = (left, top) => {\n const translate = (x, y) => r(left + x, top + y);\n return {\n left,\n top,\n translate\n };\n };\n const SugarPosition = r;\n\n const boxPosition = dom => {\n const box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n const firstDefinedOrZero = (a, b) => {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n const absolute = element => {\n const doc = element.dom.ownerDocument;\n const body = doc.body;\n const win = doc.defaultView;\n const html = doc.documentElement;\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n const scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n const scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n const clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n const clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n const viewport = element => {\n const dom = element.dom;\n const doc = dom.ownerDocument;\n const body = doc.body;\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n return boxPosition(dom);\n };\n\n const rowInfo = (row, y) => ({\n row,\n y\n });\n const colInfo = (col, x) => ({\n col,\n x\n });\n const rtlEdge = cell => {\n const pos = absolute(cell);\n return pos.left + getOuter$2(cell);\n };\n const ltrEdge = cell => {\n return absolute(cell).left;\n };\n const getLeftEdge = (index, cell) => {\n return colInfo(index, ltrEdge(cell));\n };\n const getRightEdge = (index, cell) => {\n return colInfo(index, rtlEdge(cell));\n };\n const getTop$1 = cell => {\n return absolute(cell).top;\n };\n const getTopEdge = (index, cell) => {\n return rowInfo(index, getTop$1(cell));\n };\n const getBottomEdge = (index, cell) => {\n return rowInfo(index, getTop$1(cell) + getOuter$1(cell));\n };\n const findPositions = (getInnerEdge, getOuterEdge, array) => {\n if (array.length === 0) {\n return [];\n }\n const lines = map$1(array.slice(1), (cellOption, index) => {\n return cellOption.map(cell => {\n return getInnerEdge(index, cell);\n });\n });\n const lastLine = array[array.length - 1].map(cell => {\n return getOuterEdge(array.length - 1, cell);\n });\n return lines.concat([lastLine]);\n };\n const negate = step => {\n return -step;\n };\n const height = {\n delta: identity,\n positions: optElements => findPositions(getTopEdge, getBottomEdge, optElements),\n edge: getTop$1\n };\n const ltr$1 = {\n delta: identity,\n edge: ltrEdge,\n positions: optElements => findPositions(getLeftEdge, getRightEdge, optElements)\n };\n const rtl$1 = {\n delta: negate,\n edge: rtlEdge,\n positions: optElements => findPositions(getRightEdge, getLeftEdge, optElements)\n };\n const detect$1 = onDirection(ltr$1, rtl$1);\n const width = {\n delta: (amount, table) => detect$1(table).delta(amount, table),\n positions: (cols, table) => detect$1(table).positions(cols, table),\n edge: cell => detect$1(cell).edge(cell)\n };\n\n const units = {\n unsupportedLength: [\n 'em',\n 'ex',\n 'cap',\n 'ch',\n 'ic',\n 'rem',\n 'lh',\n 'rlh',\n 'vw',\n 'vh',\n 'vi',\n 'vb',\n 'vmin',\n 'vmax',\n 'cm',\n 'mm',\n 'Q',\n 'in',\n 'pc',\n 'pt',\n 'px'\n ],\n fixed: [\n 'px',\n 'pt'\n ],\n relative: ['%'],\n empty: ['']\n };\n const pattern = (() => {\n const decimalDigits = '[0-9]+';\n const signedInteger = '[+-]?' + decimalDigits;\n const exponentPart = '[eE]' + signedInteger;\n const dot = '\\\\.';\n const opt = input => `(?:${ input })?`;\n const unsignedDecimalLiteral = [\n 'Infinity',\n decimalDigits + dot + opt(decimalDigits) + opt(exponentPart),\n dot + decimalDigits + opt(exponentPart),\n decimalDigits + opt(exponentPart)\n ].join('|');\n const float = `[+-]?(?:${ unsignedDecimalLiteral })`;\n return new RegExp(`^(${ float })(.*)$`);\n })();\n const isUnit = (unit, accepted) => exists(accepted, acc => exists(units[acc], check => unit === check));\n const parse = (input, accepted) => {\n const match = Optional.from(pattern.exec(input));\n return match.bind(array => {\n const value = Number(array[1]);\n const unitRaw = array[2];\n if (isUnit(unitRaw, accepted)) {\n return Optional.some({\n value,\n unit: unitRaw\n });\n } else {\n return Optional.none();\n }\n });\n };\n\n const rPercentageBasedSizeRegex = /(\\d+(\\.\\d+)?)%/;\n const rPixelBasedSizeRegex = /(\\d+(\\.\\d+)?)px|em/;\n const isCol$2 = isTag('col');\n const isRow$2 = isTag('tr');\n const getPercentSize = (elm, outerGetter, innerGetter) => {\n const relativeParent = parentElement(elm).getOrThunk(() => getBody$1(owner(elm)));\n return outerGetter(elm) / innerGetter(relativeParent) * 100;\n };\n const setPixelWidth = (cell, amount) => {\n set$1(cell, 'width', amount + 'px');\n };\n const setPercentageWidth = (cell, amount) => {\n set$1(cell, 'width', amount + '%');\n };\n const setHeight = (cell, amount) => {\n set$1(cell, 'height', amount + 'px');\n };\n const removeHeight = cell => {\n remove$5(cell, 'height');\n };\n const getHeightValue = cell => getRuntime(cell) + 'px';\n const convert = (cell, number, getter, setter) => {\n const newSize = table(cell).map(table => {\n const total = getter(table);\n return Math.floor(number / 100 * total);\n }).getOr(number);\n setter(cell, newSize);\n return newSize;\n };\n const normalizePixelSize = (value, cell, getter, setter) => {\n const number = parseFloat(value);\n return endsWith(value, '%') && name(cell) !== 'table' ? convert(cell, number, getter, setter) : number;\n };\n const getTotalHeight = cell => {\n const value = getHeightValue(cell);\n if (!value) {\n return get$8(cell);\n }\n return normalizePixelSize(value, cell, get$8, setHeight);\n };\n const get$7 = (cell, type, f) => {\n const v = f(cell);\n const span = getSpan(cell, type);\n return v / span;\n };\n const getRaw$1 = (element, prop) => {\n return getRaw$2(element, prop).orThunk(() => {\n return getOpt(element, prop).map(val => val + 'px');\n });\n };\n const getRawWidth$1 = element => getRaw$1(element, 'width');\n const getRawHeight$1 = element => getRaw$1(element, 'height');\n const getPercentageWidth = cell => getPercentSize(cell, get$9, getInner);\n const getPixelWidth$1 = cell => isCol$2(cell) ? get$9(cell) : getRuntime$1(cell);\n const getHeight = cell => {\n return isRow$2(cell) ? get$8(cell) : get$7(cell, 'rowspan', getTotalHeight);\n };\n const getGenericWidth = cell => {\n const width = getRawWidth$1(cell);\n return width.bind(w => parse(w, [\n 'fixed',\n 'relative',\n 'empty'\n ]));\n };\n const setGenericWidth = (cell, amount, unit) => {\n set$1(cell, 'width', amount + unit);\n };\n const getPixelTableWidth = table => get$9(table) + 'px';\n const getPixelTableHeight = table => get$8(table) + 'px';\n const getPercentTableWidth = table => getPercentSize(table, get$9, getInner) + '%';\n const isPercentSizing$1 = table => getRawWidth$1(table).exists(size => rPercentageBasedSizeRegex.test(size));\n const isPixelSizing$1 = table => getRawWidth$1(table).exists(size => rPixelBasedSizeRegex.test(size));\n const isNoneSizing$1 = table => getRawWidth$1(table).isNone();\n const percentageBasedSizeRegex = constant(rPercentageBasedSizeRegex);\n\n const isCol$1 = isTag('col');\n const getRawW = cell => {\n return getRawWidth$1(cell).getOrThunk(() => getPixelWidth$1(cell) + 'px');\n };\n const getRawH = cell => {\n return getRawHeight$1(cell).getOrThunk(() => getHeight(cell) + 'px');\n };\n const justCols = warehouse => map$1(Warehouse.justColumns(warehouse), column => Optional.from(column.element));\n const isValidColumn = cell => {\n const browser = detect$2().browser;\n const supportsColWidths = browser.isChromium() || browser.isFirefox();\n return isCol$1(cell) ? supportsColWidths : true;\n };\n const getDimension = (cellOpt, index, backups, filter, getter, fallback) => cellOpt.filter(filter).fold(() => fallback(deduce(backups, index)), cell => getter(cell));\n const getWidthFrom = (warehouse, table, getWidth, fallback) => {\n const columnCells = columns(warehouse);\n const columns$1 = Warehouse.hasColumns(warehouse) ? justCols(warehouse) : columnCells;\n const backups = [Optional.some(width.edge(table))].concat(map$1(width.positions(columnCells, table), pos => pos.map(p => p.x)));\n const colFilter = not(hasColspan);\n return map$1(columns$1, (cellOption, c) => {\n return getDimension(cellOption, c, backups, colFilter, column => {\n if (isValidColumn(column)) {\n return getWidth(column);\n } else {\n const cell = bindFrom(columnCells[c], identity);\n return getDimension(cell, c, backups, colFilter, cell => fallback(Optional.some(get$9(cell))), fallback);\n }\n }, fallback);\n });\n };\n const getDeduced = deduced => {\n return deduced.map(d => {\n return d + 'px';\n }).getOr('');\n };\n const getRawWidths = (warehouse, table) => {\n return getWidthFrom(warehouse, table, getRawW, getDeduced);\n };\n const getPercentageWidths = (warehouse, table, tableSize) => {\n return getWidthFrom(warehouse, table, getPercentageWidth, deduced => {\n return deduced.fold(() => {\n return tableSize.minCellWidth();\n }, cellWidth => {\n return cellWidth / tableSize.pixelWidth() * 100;\n });\n });\n };\n const getPixelWidths = (warehouse, table, tableSize) => {\n return getWidthFrom(warehouse, table, getPixelWidth$1, deduced => {\n return deduced.getOrThunk(tableSize.minCellWidth);\n });\n };\n const getHeightFrom = (warehouse, table, getHeight, fallback) => {\n const rowCells = rows(warehouse);\n const rows$1 = map$1(warehouse.all, r => Optional.some(r.element));\n const backups = [Optional.some(height.edge(table))].concat(map$1(height.positions(rowCells, table), pos => pos.map(p => p.y)));\n return map$1(rows$1, (row, i) => getDimension(row, i, backups, always, getHeight, fallback));\n };\n const getPixelHeights = (warehouse, table) => {\n return getHeightFrom(warehouse, table, getHeight, deduced => {\n return deduced.getOrThunk(minHeight);\n });\n };\n const getRawHeights = (warehouse, table) => {\n return getHeightFrom(warehouse, table, getRawH, getDeduced);\n };\n\n const widthLookup = (table, getter) => () => {\n if (inBody(table)) {\n return getter(table);\n } else {\n return parseFloat(getRaw$2(table, 'width').getOr('0'));\n }\n };\n const noneSize = table => {\n const getWidth = widthLookup(table, get$9);\n const zero = constant(0);\n const getWidths = (warehouse, tableSize) => getPixelWidths(warehouse, table, tableSize);\n return {\n width: getWidth,\n pixelWidth: getWidth,\n getWidths,\n getCellDelta: zero,\n singleColumnWidth: constant([0]),\n minCellWidth: zero,\n setElementWidth: noop,\n adjustTableWidth: noop,\n isRelative: true,\n label: 'none'\n };\n };\n const percentageSize = table => {\n const getFloatWidth = widthLookup(table, elem => parseFloat(getPercentTableWidth(elem)));\n const getWidth = widthLookup(table, get$9);\n const getCellDelta = delta => delta / getWidth() * 100;\n const singleColumnWidth = (w, _delta) => [100 - w];\n const minCellWidth = () => minWidth() / getWidth() * 100;\n const adjustTableWidth = delta => {\n const currentWidth = getFloatWidth();\n const change = delta / 100 * currentWidth;\n const newWidth = currentWidth + change;\n setPercentageWidth(table, newWidth);\n };\n const getWidths = (warehouse, tableSize) => getPercentageWidths(warehouse, table, tableSize);\n return {\n width: getFloatWidth,\n pixelWidth: getWidth,\n getWidths,\n getCellDelta,\n singleColumnWidth,\n minCellWidth,\n setElementWidth: setPercentageWidth,\n adjustTableWidth,\n isRelative: true,\n label: 'percent'\n };\n };\n const pixelSize = table => {\n const getWidth = widthLookup(table, get$9);\n const getCellDelta = identity;\n const singleColumnWidth = (w, delta) => {\n const newNext = Math.max(minWidth(), w + delta);\n return [newNext - w];\n };\n const adjustTableWidth = delta => {\n const newWidth = getWidth() + delta;\n setPixelWidth(table, newWidth);\n };\n const getWidths = (warehouse, tableSize) => getPixelWidths(warehouse, table, tableSize);\n return {\n width: getWidth,\n pixelWidth: getWidth,\n getWidths,\n getCellDelta,\n singleColumnWidth,\n minCellWidth: minWidth,\n setElementWidth: setPixelWidth,\n adjustTableWidth,\n isRelative: false,\n label: 'pixel'\n };\n };\n const chooseSize = (element, width) => {\n const percentMatch = percentageBasedSizeRegex().exec(width);\n if (percentMatch !== null) {\n return percentageSize(element);\n } else {\n return pixelSize(element);\n }\n };\n const getTableSize = table => {\n const width = getRawWidth$1(table);\n return width.fold(() => noneSize(table), w => chooseSize(table, w));\n };\n const TableSize = {\n getTableSize,\n pixelSize,\n percentageSize,\n noneSize\n };\n\n const statsStruct = (minRow, minCol, maxRow, maxCol, allCells, selectedCells) => ({\n minRow,\n minCol,\n maxRow,\n maxCol,\n allCells,\n selectedCells\n });\n const findSelectedStats = (house, isSelected) => {\n const totalColumns = house.grid.columns;\n const totalRows = house.grid.rows;\n let minRow = totalRows;\n let minCol = totalColumns;\n let maxRow = 0;\n let maxCol = 0;\n const allCells = [];\n const selectedCells = [];\n each$1(house.access, detail => {\n allCells.push(detail);\n if (isSelected(detail)) {\n selectedCells.push(detail);\n const startRow = detail.row;\n const endRow = startRow + detail.rowspan - 1;\n const startCol = detail.column;\n const endCol = startCol + detail.colspan - 1;\n if (startRow < minRow) {\n minRow = startRow;\n } else if (endRow > maxRow) {\n maxRow = endRow;\n }\n if (startCol < minCol) {\n minCol = startCol;\n } else if (endCol > maxCol) {\n maxCol = endCol;\n }\n }\n });\n return statsStruct(minRow, minCol, maxRow, maxCol, allCells, selectedCells);\n };\n const makeCell = (list, seenSelected, rowIndex) => {\n const row = list[rowIndex].element;\n const td = SugarElement.fromTag('td');\n append$1(td, SugarElement.fromTag('br'));\n const f = seenSelected ? append$1 : prepend;\n f(row, td);\n };\n const fillInGaps = (list, house, stats, isSelected) => {\n const rows = filter$2(list, row => row.section !== 'colgroup');\n const totalColumns = house.grid.columns;\n const totalRows = house.grid.rows;\n for (let i = 0; i < totalRows; i++) {\n let seenSelected = false;\n for (let j = 0; j < totalColumns; j++) {\n if (!(i < stats.minRow || i > stats.maxRow || j < stats.minCol || j > stats.maxCol)) {\n const needCell = Warehouse.getAt(house, i, j).filter(isSelected).isNone();\n if (needCell) {\n makeCell(rows, seenSelected, i);\n } else {\n seenSelected = true;\n }\n }\n }\n }\n };\n const clean = (replica, stats, house, widthDelta) => {\n each$1(house.columns, col => {\n if (col.column < stats.minCol || col.column > stats.maxCol) {\n remove$6(col.element);\n }\n });\n const emptyRows = filter$2(firstLayer(replica, 'tr'), row => row.dom.childElementCount === 0);\n each$2(emptyRows, remove$6);\n if (stats.minCol === stats.maxCol || stats.minRow === stats.maxRow) {\n each$2(firstLayer(replica, 'th,td'), cell => {\n remove$7(cell, 'rowspan');\n remove$7(cell, 'colspan');\n });\n }\n remove$7(replica, LOCKED_COL_ATTR);\n remove$7(replica, 'data-snooker-col-series');\n const tableSize = TableSize.getTableSize(replica);\n tableSize.adjustTableWidth(widthDelta);\n };\n const getTableWidthDelta = (table, warehouse, tableSize, stats) => {\n if (stats.minCol === 0 && warehouse.grid.columns === stats.maxCol + 1) {\n return 0;\n }\n const colWidths = getPixelWidths(warehouse, table, tableSize);\n const allColsWidth = foldl(colWidths, (acc, width) => acc + width, 0);\n const selectedColsWidth = foldl(colWidths.slice(stats.minCol, stats.maxCol + 1), (acc, width) => acc + width, 0);\n const newWidth = selectedColsWidth / allColsWidth * tableSize.pixelWidth();\n const delta = newWidth - tableSize.pixelWidth();\n return tableSize.getCellDelta(delta);\n };\n const extract$1 = (table, selectedSelector) => {\n const isSelected = detail => is$2(detail.element, selectedSelector);\n const replica = deep(table);\n const list = fromTable$1(replica);\n const tableSize = TableSize.getTableSize(table);\n const replicaHouse = Warehouse.generate(list);\n const replicaStats = findSelectedStats(replicaHouse, isSelected);\n const selector = 'th:not(' + selectedSelector + ')' + ',td:not(' + selectedSelector + ')';\n const unselectedCells = filterFirstLayer(replica, 'th,td', cell => is$2(cell, selector));\n each$2(unselectedCells, remove$6);\n fillInGaps(list, replicaHouse, replicaStats, isSelected);\n const house = Warehouse.fromTable(table);\n const widthDelta = getTableWidthDelta(table, house, tableSize, replicaStats);\n clean(replica, replicaStats, replicaHouse, widthDelta);\n return replica;\n };\n\n const nbsp = '\\xA0';\n\n const NodeValue = (is, name) => {\n const get = element => {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n const getOption = element => is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n const set = (element, value) => {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom.nodeValue = value;\n };\n return {\n get,\n getOption,\n set\n };\n };\n\n const api = NodeValue(isText, 'text');\n const get$6 = element => api.get(element);\n const getOption = element => api.getOption(element);\n const set = (element, value) => api.set(element, value);\n\n const getEnd = element => name(element) === 'img' ? 1 : getOption(element).fold(() => children$2(element).length, v => v.length);\n const isTextNodeWithCursorPosition = el => getOption(el).filter(text => text.trim().length !== 0 || text.indexOf(nbsp) > -1).isSome();\n const isContentEditableFalse = elem => isHTMLElement(elem) && get$b(elem, 'contenteditable') === 'false';\n const elementsWithCursorPosition = [\n 'img',\n 'br'\n ];\n const isCursorPosition = elem => {\n const hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains$2(elementsWithCursorPosition, name(elem)) || isContentEditableFalse(elem);\n };\n\n const first = element => descendant$1(element, isCursorPosition);\n const last$1 = element => descendantRtl(element, isCursorPosition);\n const descendantRtl = (scope, predicate) => {\n const descend = element => {\n const children = children$2(element);\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i];\n if (predicate(child)) {\n return Optional.some(child);\n }\n const res = descend(child);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope);\n };\n\n const transferableAttributes = {\n scope: [\n 'row',\n 'col'\n ]\n };\n const createCell = doc => () => {\n const td = SugarElement.fromTag('td', doc.dom);\n append$1(td, SugarElement.fromTag('br', doc.dom));\n return td;\n };\n const createCol = doc => () => {\n return SugarElement.fromTag('col', doc.dom);\n };\n const createColgroup = doc => () => {\n return SugarElement.fromTag('colgroup', doc.dom);\n };\n const createRow$1 = doc => () => {\n return SugarElement.fromTag('tr', doc.dom);\n };\n const replace$1 = (cell, tag, attrs) => {\n const replica = copy$2(cell, tag);\n each$1(attrs, (v, k) => {\n if (v === null) {\n remove$7(replica, k);\n } else {\n set$2(replica, k, v);\n }\n });\n return replica;\n };\n const pasteReplace = cell => {\n return cell;\n };\n const cloneFormats = (oldCell, newCell, formats) => {\n const first$1 = first(oldCell);\n return first$1.map(firstText => {\n const formatSelector = formats.join(',');\n const parents = ancestors$3(firstText, formatSelector, element => {\n return eq$1(element, oldCell);\n });\n return foldr(parents, (last, parent) => {\n const clonedFormat = shallow(parent);\n append$1(last, clonedFormat);\n return clonedFormat;\n }, newCell);\n }).getOr(newCell);\n };\n const cloneAppropriateAttributes = (original, clone) => {\n each$1(transferableAttributes, (validAttributes, attributeName) => getOpt(original, attributeName).filter(attribute => contains$2(validAttributes, attribute)).each(attribute => set$2(clone, attributeName, attribute)));\n };\n const cellOperations = (mutate, doc, formatsToClone) => {\n const cloneCss = (prev, clone) => {\n copy$1(prev.element, clone);\n remove$5(clone, 'height');\n if (prev.colspan !== 1) {\n remove$5(clone, 'width');\n }\n };\n const newCell = prev => {\n const td = SugarElement.fromTag(name(prev.element), doc.dom);\n const formats = formatsToClone.getOr([\n 'strong',\n 'em',\n 'b',\n 'i',\n 'span',\n 'font',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'div'\n ]);\n const lastNode = formats.length > 0 ? cloneFormats(prev.element, td, formats) : td;\n append$1(lastNode, SugarElement.fromTag('br'));\n cloneCss(prev, td);\n cloneAppropriateAttributes(prev.element, td);\n mutate(prev.element, td);\n return td;\n };\n const newCol = prev => {\n const col = SugarElement.fromTag(name(prev.element), doc.dom);\n cloneCss(prev, col);\n mutate(prev.element, col);\n return col;\n };\n return {\n col: newCol,\n colgroup: createColgroup(doc),\n row: createRow$1(doc),\n cell: newCell,\n replace: replace$1,\n colGap: createCol(doc),\n gap: createCell(doc)\n };\n };\n const paste$1 = doc => {\n return {\n col: createCol(doc),\n colgroup: createColgroup(doc),\n row: createRow$1(doc),\n cell: createCell(doc),\n replace: pasteReplace,\n colGap: createCol(doc),\n gap: createCell(doc)\n };\n };\n\n const fromHtml = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n return children$2(SugarElement.fromDom(div));\n };\n const fromDom = nodes => map$1(nodes, SugarElement.fromDom);\n\n const option = name => editor => editor.options.get(name);\n const defaultWidth = '100%';\n const getPixelForcedWidth = editor => {\n var _a;\n const dom = editor.dom;\n const parentBlock = (_a = dom.getParent(editor.selection.getStart(), dom.isBlock)) !== null && _a !== void 0 ? _a : editor.getBody();\n return getInner(SugarElement.fromDom(parentBlock)) + 'px';\n };\n const determineDefaultTableStyles = (editor, defaultStyles) => {\n if (isTableResponsiveForced(editor) || !shouldStyleWithCss(editor)) {\n return defaultStyles;\n } else if (isTablePixelsForced(editor)) {\n return {\n ...defaultStyles,\n width: getPixelForcedWidth(editor)\n };\n } else {\n return {\n ...defaultStyles,\n width: defaultWidth\n };\n }\n };\n const determineDefaultTableAttributes = (editor, defaultAttributes) => {\n if (isTableResponsiveForced(editor) || shouldStyleWithCss(editor)) {\n return defaultAttributes;\n } else if (isTablePixelsForced(editor)) {\n return {\n ...defaultAttributes,\n width: getPixelForcedWidth(editor)\n };\n } else {\n return {\n ...defaultAttributes,\n width: defaultWidth\n };\n }\n };\n const register = editor => {\n const registerOption = editor.options.register;\n registerOption('table_clone_elements', { processor: 'string[]' });\n registerOption('table_use_colgroups', {\n processor: 'boolean',\n default: true\n });\n registerOption('table_header_type', {\n processor: value => {\n const valid = contains$2([\n 'section',\n 'cells',\n 'sectionCells',\n 'auto'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be one of: section, cells, sectionCells or auto.'\n };\n },\n default: 'section'\n });\n registerOption('table_sizing_mode', {\n processor: 'string',\n default: 'auto'\n });\n registerOption('table_default_attributes', {\n processor: 'object',\n default: { border: '1' }\n });\n registerOption('table_default_styles', {\n processor: 'object',\n default: { 'border-collapse': 'collapse' }\n });\n registerOption('table_column_resizing', {\n processor: value => {\n const valid = contains$2([\n 'preservetable',\n 'resizetable'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be preservetable, or resizetable.'\n };\n },\n default: 'preservetable'\n });\n registerOption('table_resize_bars', {\n processor: 'boolean',\n default: true\n });\n registerOption('table_style_by_css', {\n processor: 'boolean',\n default: true\n });\n registerOption('table_merge_content_on_paste', {\n processor: 'boolean',\n default: true\n });\n };\n const getTableCloneElements = editor => {\n return Optional.from(editor.options.get('table_clone_elements'));\n };\n const hasTableObjectResizing = editor => {\n const objectResizing = editor.options.get('object_resizing');\n return contains$2(objectResizing.split(','), 'table');\n };\n const getTableHeaderType = option('table_header_type');\n const getTableColumnResizingBehaviour = option('table_column_resizing');\n const isPreserveTableColumnResizing = editor => getTableColumnResizingBehaviour(editor) === 'preservetable';\n const isResizeTableColumnResizing = editor => getTableColumnResizingBehaviour(editor) === 'resizetable';\n const getTableSizingMode = option('table_sizing_mode');\n const isTablePercentagesForced = editor => getTableSizingMode(editor) === 'relative';\n const isTablePixelsForced = editor => getTableSizingMode(editor) === 'fixed';\n const isTableResponsiveForced = editor => getTableSizingMode(editor) === 'responsive';\n const hasTableResizeBars = option('table_resize_bars');\n const shouldStyleWithCss = option('table_style_by_css');\n const shouldMergeContentOnPaste = option('table_merge_content_on_paste');\n const getTableDefaultAttributes = editor => {\n const options = editor.options;\n const defaultAttributes = options.get('table_default_attributes');\n return options.isSet('table_default_attributes') ? defaultAttributes : determineDefaultTableAttributes(editor, defaultAttributes);\n };\n const getTableDefaultStyles = editor => {\n const options = editor.options;\n const defaultStyles = options.get('table_default_styles');\n return options.isSet('table_default_styles') ? defaultStyles : determineDefaultTableStyles(editor, defaultStyles);\n };\n const tableUseColumnGroup = option('table_use_colgroups');\n const fixedContainerSelector = option('fixed_toolbar_container');\n const fixedToolbarContainerTarget = option('fixed_toolbar_container_target');\n const fixedContainerTarget = editor => {\n var _a;\n if (!editor.inline) {\n return Optional.none();\n }\n const selector = (_a = fixedContainerSelector(editor)) !== null && _a !== void 0 ? _a : '';\n if (selector.length > 0) {\n return descendant(body$1(), selector);\n }\n const element = fixedToolbarContainerTarget(editor);\n if (isNonNullable(element)) {\n return Optional.some(SugarElement.fromDom(element));\n }\n return Optional.none();\n };\n const useFixedContainer = editor => editor.inline && fixedContainerTarget(editor).isSome();\n const getUiMode = option('ui_mode');\n const isSplitUiMode = editor => !useFixedContainer(editor) && getUiMode(editor) === 'split';\n\n const closest = target => closest$1(target, '[contenteditable]');\n const isEditable$1 = (element, assumeEditable = false) => {\n if (inBody(element)) {\n return element.dom.isContentEditable;\n } else {\n return closest(element).fold(constant(assumeEditable), editable => getRaw(editable) === 'true');\n }\n };\n const getRaw = element => element.dom.contentEditable;\n\n const getBody = editor => SugarElement.fromDom(editor.getBody());\n const getIsRoot = editor => element => eq$1(element, getBody(editor));\n const removeDataStyle = table => {\n remove$7(table, 'data-mce-style');\n const removeStyleAttribute = element => remove$7(element, 'data-mce-style');\n each$2(cells$1(table), removeStyleAttribute);\n each$2(columns$1(table), removeStyleAttribute);\n each$2(rows$1(table), removeStyleAttribute);\n };\n const getSelectionStart = editor => SugarElement.fromDom(editor.selection.getStart());\n const getPixelWidth = elm => elm.getBoundingClientRect().width;\n const getPixelHeight = elm => elm.getBoundingClientRect().height;\n const getRawValue = prop => (editor, elm) => {\n const raw = editor.dom.getStyle(elm, prop) || editor.dom.getAttrib(elm, prop);\n return Optional.from(raw).filter(isNotEmpty);\n };\n const getRawWidth = getRawValue('width');\n const getRawHeight = getRawValue('height');\n const isPercentage$1 = value => /^(\\d+(\\.\\d+)?)%$/.test(value);\n const isPixel = value => /^(\\d+(\\.\\d+)?)px$/.test(value);\n const isInEditableContext$1 = cell => closest$2(cell, isTag('table')).exists(isEditable$1);\n\n const inSelection = (bounds, detail) => {\n const leftEdge = detail.column;\n const rightEdge = detail.column + detail.colspan - 1;\n const topEdge = detail.row;\n const bottomEdge = detail.row + detail.rowspan - 1;\n return leftEdge <= bounds.finishCol && rightEdge >= bounds.startCol && (topEdge <= bounds.finishRow && bottomEdge >= bounds.startRow);\n };\n const isWithin = (bounds, detail) => {\n return detail.column >= bounds.startCol && detail.column + detail.colspan - 1 <= bounds.finishCol && detail.row >= bounds.startRow && detail.row + detail.rowspan - 1 <= bounds.finishRow;\n };\n const isRectangular = (warehouse, bounds) => {\n let isRect = true;\n const detailIsWithin = curry(isWithin, bounds);\n for (let i = bounds.startRow; i <= bounds.finishRow; i++) {\n for (let j = bounds.startCol; j <= bounds.finishCol; j++) {\n isRect = isRect && Warehouse.getAt(warehouse, i, j).exists(detailIsWithin);\n }\n }\n return isRect ? Optional.some(bounds) : Optional.none();\n };\n\n const getBounds = (detailA, detailB) => {\n return bounds(Math.min(detailA.row, detailB.row), Math.min(detailA.column, detailB.column), Math.max(detailA.row + detailA.rowspan - 1, detailB.row + detailB.rowspan - 1), Math.max(detailA.column + detailA.colspan - 1, detailB.column + detailB.colspan - 1));\n };\n const getAnyBox = (warehouse, startCell, finishCell) => {\n const startCoords = Warehouse.findItem(warehouse, startCell, eq$1);\n const finishCoords = Warehouse.findItem(warehouse, finishCell, eq$1);\n return startCoords.bind(sc => {\n return finishCoords.map(fc => {\n return getBounds(sc, fc);\n });\n });\n };\n const getBox$1 = (warehouse, startCell, finishCell) => {\n return getAnyBox(warehouse, startCell, finishCell).bind(bounds => {\n return isRectangular(warehouse, bounds);\n });\n };\n\n const moveBy$1 = (warehouse, cell, row, column) => {\n return Warehouse.findItem(warehouse, cell, eq$1).bind(detail => {\n const startRow = row > 0 ? detail.row + detail.rowspan - 1 : detail.row;\n const startCol = column > 0 ? detail.column + detail.colspan - 1 : detail.column;\n const dest = Warehouse.getAt(warehouse, startRow + row, startCol + column);\n return dest.map(d => {\n return d.element;\n });\n });\n };\n const intercepts$1 = (warehouse, start, finish) => {\n return getAnyBox(warehouse, start, finish).map(bounds => {\n const inside = Warehouse.filterItems(warehouse, curry(inSelection, bounds));\n return map$1(inside, detail => {\n return detail.element;\n });\n });\n };\n const parentCell = (warehouse, innerCell) => {\n const isContainedBy = (c1, c2) => {\n return contains$1(c2, c1);\n };\n return Warehouse.findItem(warehouse, innerCell, isContainedBy).map(detail => {\n return detail.element;\n });\n };\n\n const moveBy = (cell, deltaRow, deltaColumn) => {\n return table(cell).bind(table => {\n const warehouse = getWarehouse(table);\n return moveBy$1(warehouse, cell, deltaRow, deltaColumn);\n });\n };\n const intercepts = (table, first, last) => {\n const warehouse = getWarehouse(table);\n return intercepts$1(warehouse, first, last);\n };\n const nestedIntercepts = (table, first, firstTable, last, lastTable) => {\n const warehouse = getWarehouse(table);\n const optStartCell = eq$1(table, firstTable) ? Optional.some(first) : parentCell(warehouse, first);\n const optLastCell = eq$1(table, lastTable) ? Optional.some(last) : parentCell(warehouse, last);\n return optStartCell.bind(startCell => optLastCell.bind(lastCell => intercepts$1(warehouse, startCell, lastCell)));\n };\n const getBox = (table, first, last) => {\n const warehouse = getWarehouse(table);\n return getBox$1(warehouse, first, last);\n };\n const getWarehouse = Warehouse.fromTable;\n\n var TagBoundaries = [\n 'body',\n 'p',\n 'div',\n 'article',\n 'aside',\n 'figcaption',\n 'figure',\n 'footer',\n 'header',\n 'nav',\n 'section',\n 'ol',\n 'ul',\n 'li',\n 'table',\n 'thead',\n 'tbody',\n 'tfoot',\n 'caption',\n 'tr',\n 'td',\n 'th',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'pre',\n 'address'\n ];\n\n var DomUniverse = () => {\n const clone = element => {\n return SugarElement.fromDom(element.dom.cloneNode(false));\n };\n const document = element => documentOrOwner(element).dom;\n const isBoundary = element => {\n if (!isElement(element)) {\n return false;\n }\n if (name(element) === 'body') {\n return true;\n }\n return contains$2(TagBoundaries, name(element));\n };\n const isEmptyTag = element => {\n if (!isElement(element)) {\n return false;\n }\n return contains$2([\n 'br',\n 'img',\n 'hr',\n 'input'\n ], name(element));\n };\n const isNonEditable = element => isElement(element) && get$b(element, 'contenteditable') === 'false';\n const comparePosition = (element, other) => {\n return element.dom.compareDocumentPosition(other.dom);\n };\n const copyAttributesTo = (source, destination) => {\n const as = clone$2(source);\n setAll$1(destination, as);\n };\n const isSpecial = element => {\n const tag = name(element);\n return contains$2([\n 'script',\n 'noscript',\n 'iframe',\n 'noframes',\n 'noembed',\n 'title',\n 'style',\n 'textarea',\n 'xmp'\n ], tag);\n };\n const getLanguage = element => isElement(element) ? getOpt(element, 'lang') : Optional.none();\n return {\n up: constant({\n selector: ancestor$1,\n closest: closest$1,\n predicate: ancestor$2,\n all: parents\n }),\n down: constant({\n selector: descendants,\n predicate: descendants$1\n }),\n styles: constant({\n get: get$a,\n getRaw: getRaw$2,\n set: set$1,\n remove: remove$5\n }),\n attrs: constant({\n get: get$b,\n set: set$2,\n remove: remove$7,\n copyTo: copyAttributesTo\n }),\n insert: constant({\n before: before$3,\n after: after$5,\n afterAll: after$4,\n append: append$1,\n appendAll: append,\n prepend: prepend,\n wrap: wrap\n }),\n remove: constant({\n unwrap: unwrap,\n remove: remove$6\n }),\n create: constant({\n nu: SugarElement.fromTag,\n clone,\n text: SugarElement.fromText\n }),\n query: constant({\n comparePosition,\n prevSibling: prevSibling,\n nextSibling: nextSibling\n }),\n property: constant({\n children: children$2,\n name: name,\n parent: parent,\n document,\n isText: isText,\n isComment: isComment,\n isElement: isElement,\n isSpecial,\n getLanguage,\n getText: get$6,\n setText: set,\n isBoundary,\n isEmptyTag,\n isNonEditable\n }),\n eq: eq$1,\n is: is$1\n };\n };\n\n const all = (universe, look, elements, f) => {\n const head = elements[0];\n const tail = elements.slice(1);\n return f(universe, look, head, tail);\n };\n const oneAll = (universe, look, elements) => {\n return elements.length > 0 ? all(universe, look, elements, unsafeOne) : Optional.none();\n };\n const unsafeOne = (universe, look, head, tail) => {\n const start = look(universe, head);\n return foldr(tail, (b, a) => {\n const current = look(universe, a);\n return commonElement(universe, b, current);\n }, start);\n };\n const commonElement = (universe, start, end) => {\n return start.bind(s => {\n return end.filter(curry(universe.eq, s));\n });\n };\n\n const eq = (universe, item) => {\n return curry(universe.eq, item);\n };\n const ancestors$2 = (universe, start, end, isRoot = never) => {\n const ps1 = [start].concat(universe.up().all(start));\n const ps2 = [end].concat(universe.up().all(end));\n const prune = path => {\n const index = findIndex(path, isRoot);\n return index.fold(() => {\n return path;\n }, ind => {\n return path.slice(0, ind + 1);\n });\n };\n const pruned1 = prune(ps1);\n const pruned2 = prune(ps2);\n const shared = find$1(pruned1, x => {\n return exists(pruned2, eq(universe, x));\n });\n return {\n firstpath: pruned1,\n secondpath: pruned2,\n shared\n };\n };\n\n const sharedOne$1 = oneAll;\n const ancestors$1 = ancestors$2;\n\n const universe$3 = DomUniverse();\n const sharedOne = (look, elements) => {\n return sharedOne$1(universe$3, (_universe, element) => {\n return look(element);\n }, elements);\n };\n const ancestors = (start, finish, isRoot) => {\n return ancestors$1(universe$3, start, finish, isRoot);\n };\n\n const lookupTable = container => {\n return ancestor$1(container, 'table');\n };\n const identify = (start, finish, isRoot) => {\n const getIsRoot = rootTable => {\n return element => {\n return isRoot !== undefined && isRoot(element) || eq$1(element, rootTable);\n };\n };\n if (eq$1(start, finish)) {\n return Optional.some({\n boxes: Optional.some([start]),\n start,\n finish\n });\n } else {\n return lookupTable(start).bind(startTable => {\n return lookupTable(finish).bind(finishTable => {\n if (eq$1(startTable, finishTable)) {\n return Optional.some({\n boxes: intercepts(startTable, start, finish),\n start,\n finish\n });\n } else if (contains$1(startTable, finishTable)) {\n const ancestorCells = ancestors$3(finish, 'td,th', getIsRoot(startTable));\n const finishCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : finish;\n return Optional.some({\n boxes: nestedIntercepts(startTable, start, startTable, finish, finishTable),\n start,\n finish: finishCell\n });\n } else if (contains$1(finishTable, startTable)) {\n const ancestorCells = ancestors$3(start, 'td,th', getIsRoot(finishTable));\n const startCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : start;\n return Optional.some({\n boxes: nestedIntercepts(finishTable, start, startTable, finish, finishTable),\n start,\n finish: startCell\n });\n } else {\n return ancestors(start, finish).shared.bind(lca => {\n return closest$1(lca, 'table', isRoot).bind(lcaTable => {\n const finishAncestorCells = ancestors$3(finish, 'td,th', getIsRoot(lcaTable));\n const finishCell = finishAncestorCells.length > 0 ? finishAncestorCells[finishAncestorCells.length - 1] : finish;\n const startAncestorCells = ancestors$3(start, 'td,th', getIsRoot(lcaTable));\n const startCell = startAncestorCells.length > 0 ? startAncestorCells[startAncestorCells.length - 1] : start;\n return Optional.some({\n boxes: nestedIntercepts(lcaTable, start, startTable, finish, finishTable),\n start: startCell,\n finish: finishCell\n });\n });\n });\n }\n });\n });\n }\n };\n const retrieve$1 = (container, selector) => {\n const sels = descendants(container, selector);\n return sels.length > 0 ? Optional.some(sels) : Optional.none();\n };\n const getLast = (boxes, lastSelectedSelector) => {\n return find$1(boxes, box => {\n return is$2(box, lastSelectedSelector);\n });\n };\n const getEdges = (container, firstSelectedSelector, lastSelectedSelector) => {\n return descendant(container, firstSelectedSelector).bind(first => {\n return descendant(container, lastSelectedSelector).bind(last => {\n return sharedOne(lookupTable, [\n first,\n last\n ]).map(table => {\n return {\n first,\n last,\n table\n };\n });\n });\n });\n };\n const expandTo = (finish, firstSelectedSelector) => {\n return ancestor$1(finish, 'table').bind(table => {\n return descendant(table, firstSelectedSelector).bind(start => {\n return identify(start, finish).bind(identified => {\n return identified.boxes.map(boxes => {\n return {\n boxes,\n start: identified.start,\n finish: identified.finish\n };\n });\n });\n });\n });\n };\n const shiftSelection = (boxes, deltaRow, deltaColumn, firstSelectedSelector, lastSelectedSelector) => {\n return getLast(boxes, lastSelectedSelector).bind(last => {\n return moveBy(last, deltaRow, deltaColumn).bind(finish => {\n return expandTo(finish, firstSelectedSelector);\n });\n });\n };\n\n const retrieve = (container, selector) => {\n return retrieve$1(container, selector);\n };\n const retrieveBox = (container, firstSelectedSelector, lastSelectedSelector) => {\n return getEdges(container, firstSelectedSelector, lastSelectedSelector).bind(edges => {\n const isRoot = ancestor => {\n return eq$1(container, ancestor);\n };\n const sectionSelector = 'thead,tfoot,tbody,table';\n const firstAncestor = ancestor$1(edges.first, sectionSelector, isRoot);\n const lastAncestor = ancestor$1(edges.last, sectionSelector, isRoot);\n return firstAncestor.bind(fA => {\n return lastAncestor.bind(lA => {\n return eq$1(fA, lA) ? getBox(edges.table, edges.first, edges.last) : Optional.none();\n });\n });\n });\n };\n\n const selection = identity;\n const unmergable = selectedCells => {\n const hasSpan = (elem, type) => getOpt(elem, type).exists(span => parseInt(span, 10) > 1);\n const hasRowOrColSpan = elem => hasSpan(elem, 'rowspan') || hasSpan(elem, 'colspan');\n return selectedCells.length > 0 && forall(selectedCells, hasRowOrColSpan) ? Optional.some(selectedCells) : Optional.none();\n };\n const mergable = (table, selectedCells, ephemera) => {\n if (selectedCells.length <= 1) {\n return Optional.none();\n } else {\n return retrieveBox(table, ephemera.firstSelectedSelector, ephemera.lastSelectedSelector).map(bounds => ({\n bounds,\n cells: selectedCells\n }));\n }\n };\n\n const strSelected = 'data-mce-selected';\n const strSelectedSelector = 'td[' + strSelected + '],th[' + strSelected + ']';\n const strAttributeSelector = '[' + strSelected + ']';\n const strFirstSelected = 'data-mce-first-selected';\n const strFirstSelectedSelector = 'td[' + strFirstSelected + '],th[' + strFirstSelected + ']';\n const strLastSelected = 'data-mce-last-selected';\n const strLastSelectedSelector = 'td[' + strLastSelected + '],th[' + strLastSelected + ']';\n const attributeSelector = strAttributeSelector;\n const ephemera = {\n selected: strSelected,\n selectedSelector: strSelectedSelector,\n firstSelected: strFirstSelected,\n firstSelectedSelector: strFirstSelectedSelector,\n lastSelected: strLastSelected,\n lastSelectedSelector: strLastSelectedSelector\n };\n\n const forMenu = (selectedCells, table, cell) => ({\n element: cell,\n mergable: mergable(table, selectedCells, ephemera),\n unmergable: unmergable(selectedCells),\n selection: selection(selectedCells)\n });\n const paste = (element, clipboard, generators) => ({\n element,\n clipboard,\n generators\n });\n const pasteRows = (selectedCells, _cell, clipboard, generators) => ({\n selection: selection(selectedCells),\n clipboard,\n generators\n });\n\n const getSelectionCellFallback = element => table(element).bind(table => retrieve(table, ephemera.firstSelectedSelector)).fold(constant(element), cells => cells[0]);\n const getSelectionFromSelector = selector => (initCell, isRoot) => {\n const cellName = name(initCell);\n const cell = cellName === 'col' || cellName === 'colgroup' ? getSelectionCellFallback(initCell) : initCell;\n return closest$1(cell, selector, isRoot);\n };\n const getSelectionCellOrCaption = getSelectionFromSelector('th,td,caption');\n const getSelectionCell = getSelectionFromSelector('th,td');\n const getCellsFromSelection = editor => fromDom(editor.model.table.getSelectedCells());\n const getCellsFromFakeSelection = editor => filter$2(getCellsFromSelection(editor), cell => is$2(cell, ephemera.selectedSelector));\n\n const extractSelected = cells => {\n return table(cells[0]).map(table => {\n const replica = extract$1(table, attributeSelector);\n removeDataStyle(replica);\n return [replica];\n });\n };\n const serializeElements = (editor, elements) => map$1(elements, elm => editor.selection.serializer.serialize(elm.dom, {})).join('');\n const getTextContent = (editor, replicaElements) => {\n const doc = editor.getDoc();\n const dos = getRootNode(SugarElement.fromDom(editor.getBody()));\n const offscreenDiv = SugarElement.fromTag('div', doc);\n set$2(offscreenDiv, 'data-mce-bogus', 'all');\n setAll(offscreenDiv, {\n position: 'fixed',\n left: '-9999999px',\n top: '0',\n overflow: 'hidden',\n opacity: '0'\n });\n const root = getContentContainer(dos);\n append(offscreenDiv, replicaElements);\n append$1(root, offscreenDiv);\n const textContent = offscreenDiv.dom.innerText;\n remove$6(offscreenDiv);\n return textContent;\n };\n const registerEvents = (editor, actions) => {\n editor.on('BeforeGetContent', e => {\n const multiCellContext = cells => {\n e.preventDefault();\n extractSelected(cells).each(replicaElements => {\n const content = e.format === 'text' ? getTextContent(editor, replicaElements) : serializeElements(editor, replicaElements);\n e.content = content;\n });\n };\n if (e.selection === true) {\n const cells = getCellsFromFakeSelection(editor);\n if (cells.length >= 1) {\n multiCellContext(cells);\n }\n }\n });\n editor.on('BeforeSetContent', e => {\n if (e.selection === true && e.paste === true) {\n const selectedCells = getCellsFromSelection(editor);\n head(selectedCells).each(cell => {\n table(cell).each(table => {\n const elements = filter$2(fromHtml(e.content), content => {\n return name(content) !== 'meta';\n });\n const isTable = isTag('table');\n if (shouldMergeContentOnPaste(editor) && elements.length === 1 && isTable(elements[0])) {\n e.preventDefault();\n const doc = SugarElement.fromDom(editor.getDoc());\n const generators = paste$1(doc);\n const targets = paste(cell, elements[0], generators);\n actions.pasteCells(table, targets).each(() => {\n editor.focus();\n });\n }\n });\n });\n }\n });\n };\n\n const point = (element, offset) => ({\n element,\n offset\n });\n\n const scan$1 = (universe, element, direction) => {\n if (universe.property().isText(element) && universe.property().getText(element).trim().length === 0 || universe.property().isComment(element)) {\n return direction(element).bind(elem => {\n return scan$1(universe, elem, direction).orThunk(() => {\n return Optional.some(elem);\n });\n });\n } else {\n return Optional.none();\n }\n };\n const toEnd = (universe, element) => {\n if (universe.property().isText(element)) {\n return universe.property().getText(element).length;\n }\n const children = universe.property().children(element);\n return children.length;\n };\n const freefallRtl$2 = (universe, element) => {\n const candidate = scan$1(universe, element, universe.query().prevSibling).getOr(element);\n if (universe.property().isText(candidate)) {\n return point(candidate, toEnd(universe, candidate));\n }\n const children = universe.property().children(candidate);\n return children.length > 0 ? freefallRtl$2(universe, children[children.length - 1]) : point(candidate, toEnd(universe, candidate));\n };\n\n const freefallRtl$1 = freefallRtl$2;\n\n const universe$2 = DomUniverse();\n const freefallRtl = element => {\n return freefallRtl$1(universe$2, element);\n };\n\n const halve = (main, other) => {\n if (!hasColspan(main)) {\n const width = getGenericWidth(main);\n width.each(w => {\n const newWidth = w.value / 2;\n setGenericWidth(main, newWidth, w.unit);\n setGenericWidth(other, newWidth, w.unit);\n });\n }\n };\n\n const zero = array => map$1(array, constant(0));\n const surround = (sizes, startIndex, endIndex, results, f) => f(sizes.slice(0, startIndex)).concat(results).concat(f(sizes.slice(endIndex)));\n const clampDeltaHelper = predicate => (sizes, index, delta, minCellSize) => {\n if (!predicate(delta)) {\n return delta;\n } else {\n const newSize = Math.max(minCellSize, sizes[index] - Math.abs(delta));\n const diff = Math.abs(newSize - sizes[index]);\n return delta >= 0 ? diff : -diff;\n }\n };\n const clampNegativeDelta = clampDeltaHelper(delta => delta < 0);\n const clampDelta = clampDeltaHelper(always);\n const resizeTable = () => {\n const calcFixedDeltas = (sizes, index, next, delta, minCellSize) => {\n const clampedDelta = clampNegativeDelta(sizes, index, delta, minCellSize);\n return surround(sizes, index, next + 1, [\n clampedDelta,\n 0\n ], zero);\n };\n const calcRelativeDeltas = (sizes, index, delta, minCellSize) => {\n const ratio = (100 + delta) / 100;\n const newThis = Math.max(minCellSize, (sizes[index] + delta) / ratio);\n return map$1(sizes, (size, idx) => {\n const newSize = idx === index ? newThis : size / ratio;\n return newSize - size;\n });\n };\n const calcLeftEdgeDeltas = (sizes, index, next, delta, minCellSize, isRelative) => {\n if (isRelative) {\n return calcRelativeDeltas(sizes, index, delta, minCellSize);\n } else {\n return calcFixedDeltas(sizes, index, next, delta, minCellSize);\n }\n };\n const calcMiddleDeltas = (sizes, _prev, index, next, delta, minCellSize, isRelative) => calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize, isRelative);\n const resizeTable = (resizer, delta) => resizer(delta);\n const calcRightEdgeDeltas = (sizes, _prev, index, delta, minCellSize, isRelative) => {\n if (isRelative) {\n return calcRelativeDeltas(sizes, index, delta, minCellSize);\n } else {\n const clampedDelta = clampNegativeDelta(sizes, index, delta, minCellSize);\n return zero(sizes.slice(0, index)).concat([clampedDelta]);\n }\n };\n const calcRedestributedWidths = (sizes, totalWidth, pixelDelta, isRelative) => {\n if (isRelative) {\n const tableWidth = totalWidth + pixelDelta;\n const ratio = tableWidth / totalWidth;\n const newSizes = map$1(sizes, size => size / ratio);\n return {\n delta: ratio * 100 - 100,\n newSizes\n };\n } else {\n return {\n delta: pixelDelta,\n newSizes: sizes\n };\n }\n };\n return {\n resizeTable,\n clampTableDelta: clampNegativeDelta,\n calcLeftEdgeDeltas,\n calcMiddleDeltas,\n calcRightEdgeDeltas,\n calcRedestributedWidths\n };\n };\n const preserveTable = () => {\n const calcLeftEdgeDeltas = (sizes, index, next, delta, minCellSize) => {\n const idx = delta >= 0 ? next : index;\n const clampedDelta = clampDelta(sizes, idx, delta, minCellSize);\n return surround(sizes, index, next + 1, [\n clampedDelta,\n -clampedDelta\n ], zero);\n };\n const calcMiddleDeltas = (sizes, _prev, index, next, delta, minCellSize) => calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize);\n const resizeTable = (resizer, delta, isLastColumn) => {\n if (isLastColumn) {\n resizer(delta);\n }\n };\n const calcRightEdgeDeltas = (sizes, _prev, _index, delta, _minCellSize, isRelative) => {\n if (isRelative) {\n return zero(sizes);\n } else {\n const diff = delta / sizes.length;\n return map$1(sizes, constant(diff));\n }\n };\n const clampTableDelta = (sizes, index, delta, minCellSize, isLastColumn) => {\n if (isLastColumn) {\n if (delta >= 0) {\n return delta;\n } else {\n const maxDelta = foldl(sizes, (a, b) => a + b - minCellSize, 0);\n return Math.max(-maxDelta, delta);\n }\n } else {\n return clampNegativeDelta(sizes, index, delta, minCellSize);\n }\n };\n const calcRedestributedWidths = (sizes, _totalWidth, _pixelDelta, _isRelative) => ({\n delta: 0,\n newSizes: sizes\n });\n return {\n resizeTable,\n clampTableDelta,\n calcLeftEdgeDeltas,\n calcMiddleDeltas,\n calcRightEdgeDeltas,\n calcRedestributedWidths\n };\n };\n\n const getGridSize = table => {\n const warehouse = Warehouse.fromTable(table);\n return warehouse.grid;\n };\n\n const isHeaderCell = isTag('th');\n const isHeaderCells = cells => forall(cells, cell => isHeaderCell(cell.element));\n const getRowHeaderType = (isHeaderRow, isHeaderCells) => {\n if (isHeaderRow && isHeaderCells) {\n return 'sectionCells';\n } else if (isHeaderRow) {\n return 'section';\n } else {\n return 'cells';\n }\n };\n const getRowType = row => {\n const isHeaderRow = row.section === 'thead';\n const isHeaderCells = is(findCommonCellType(row.cells), 'th');\n if (row.section === 'tfoot') {\n return { type: 'footer' };\n } else if (isHeaderRow || isHeaderCells) {\n return {\n type: 'header',\n subType: getRowHeaderType(isHeaderRow, isHeaderCells)\n };\n } else {\n return { type: 'body' };\n }\n };\n const findCommonCellType = cells => {\n const headerCells = filter$2(cells, cell => isHeaderCell(cell.element));\n if (headerCells.length === 0) {\n return Optional.some('td');\n } else if (headerCells.length === cells.length) {\n return Optional.some('th');\n } else {\n return Optional.none();\n }\n };\n const findCommonRowType = rows => {\n const rowTypes = map$1(rows, row => getRowType(row).type);\n const hasHeader = contains$2(rowTypes, 'header');\n const hasFooter = contains$2(rowTypes, 'footer');\n if (!hasHeader && !hasFooter) {\n return Optional.some('body');\n } else {\n const hasBody = contains$2(rowTypes, 'body');\n if (hasHeader && !hasBody && !hasFooter) {\n return Optional.some('header');\n } else if (!hasHeader && !hasBody && hasFooter) {\n return Optional.some('footer');\n } else {\n return Optional.none();\n }\n }\n };\n const findTableRowHeaderType = warehouse => findMap(warehouse.all, row => {\n const rowType = getRowType(row);\n return rowType.type === 'header' ? Optional.from(rowType.subType) : Optional.none();\n });\n\n const transformCell = (cell, comparator, substitution) => elementnew(substitution(cell.element, comparator), true, cell.isLocked);\n const transformRow = (row, section) => row.section !== section ? rowcells(row.element, row.cells, section, row.isNew) : row;\n const section = () => ({\n transformRow,\n transformCell: (cell, comparator, substitution) => {\n const newCell = substitution(cell.element, comparator);\n const fixedCell = name(newCell) !== 'td' ? mutate$1(newCell, 'td') : newCell;\n return elementnew(fixedCell, cell.isNew, cell.isLocked);\n }\n });\n const sectionCells = () => ({\n transformRow,\n transformCell\n });\n const cells = () => ({\n transformRow: (row, section) => {\n const newSection = section === 'thead' ? 'tbody' : section;\n return transformRow(row, newSection);\n },\n transformCell\n });\n const fallback = () => ({\n transformRow: identity,\n transformCell\n });\n const getTableSectionType = (table, fallback) => {\n const warehouse = Warehouse.fromTable(table);\n const type = findTableRowHeaderType(warehouse).getOr(fallback);\n switch (type) {\n case 'section':\n return section();\n case 'sectionCells':\n return sectionCells();\n case 'cells':\n return cells();\n }\n };\n const TableSection = {\n getTableSectionType,\n section,\n sectionCells,\n cells,\n fallback\n };\n\n const setIfNot = (element, property, value, ignore) => {\n if (value === ignore) {\n remove$7(element, property);\n } else {\n set$2(element, property, value);\n }\n };\n const insert$1 = (table, selector, element) => {\n last$2(children(table, selector)).fold(() => prepend(table, element), child => after$5(child, element));\n };\n const generateSection = (table, sectionName) => {\n const section = child(table, sectionName).getOrThunk(() => {\n const newSection = SugarElement.fromTag(sectionName, owner(table).dom);\n if (sectionName === 'thead') {\n insert$1(table, 'caption,colgroup', newSection);\n } else if (sectionName === 'colgroup') {\n insert$1(table, 'caption', newSection);\n } else {\n append$1(table, newSection);\n }\n return newSection;\n });\n empty(section);\n return section;\n };\n const render$1 = (table, grid) => {\n const newRows = [];\n const newCells = [];\n const syncRows = gridSection => map$1(gridSection, row => {\n if (row.isNew) {\n newRows.push(row.element);\n }\n const tr = row.element;\n empty(tr);\n each$2(row.cells, cell => {\n if (cell.isNew) {\n newCells.push(cell.element);\n }\n setIfNot(cell.element, 'colspan', cell.colspan, 1);\n setIfNot(cell.element, 'rowspan', cell.rowspan, 1);\n append$1(tr, cell.element);\n });\n return tr;\n });\n const syncColGroup = gridSection => bind$2(gridSection, colGroup => map$1(colGroup.cells, col => {\n setIfNot(col.element, 'span', col.colspan, 1);\n return col.element;\n }));\n const renderSection = (gridSection, sectionName) => {\n const section = generateSection(table, sectionName);\n const sync = sectionName === 'colgroup' ? syncColGroup : syncRows;\n const sectionElems = sync(gridSection);\n append(section, sectionElems);\n };\n const removeSection = sectionName => {\n child(table, sectionName).each(remove$6);\n };\n const renderOrRemoveSection = (gridSection, sectionName) => {\n if (gridSection.length > 0) {\n renderSection(gridSection, sectionName);\n } else {\n removeSection(sectionName);\n }\n };\n const headSection = [];\n const bodySection = [];\n const footSection = [];\n const columnGroupsSection = [];\n each$2(grid, row => {\n switch (row.section) {\n case 'thead':\n headSection.push(row);\n break;\n case 'tbody':\n bodySection.push(row);\n break;\n case 'tfoot':\n footSection.push(row);\n break;\n case 'colgroup':\n columnGroupsSection.push(row);\n break;\n }\n });\n renderOrRemoveSection(columnGroupsSection, 'colgroup');\n renderOrRemoveSection(headSection, 'thead');\n renderOrRemoveSection(bodySection, 'tbody');\n renderOrRemoveSection(footSection, 'tfoot');\n return {\n newRows,\n newCells\n };\n };\n const copy = grid => map$1(grid, row => {\n const tr = shallow(row.element);\n each$2(row.cells, cell => {\n const clonedCell = deep(cell.element);\n setIfNot(clonedCell, 'colspan', cell.colspan, 1);\n setIfNot(clonedCell, 'rowspan', cell.rowspan, 1);\n append$1(tr, clonedCell);\n });\n return tr;\n });\n\n const getColumn = (grid, index) => {\n return map$1(grid, row => {\n return getCell(row, index);\n });\n };\n const getRow = (grid, index) => {\n return grid[index];\n };\n const findDiff = (xs, comp) => {\n if (xs.length === 0) {\n return 0;\n }\n const first = xs[0];\n const index = findIndex(xs, x => {\n return !comp(first.element, x.element);\n });\n return index.getOr(xs.length);\n };\n const subgrid = (grid, row, column, comparator) => {\n const gridRow = getRow(grid, row);\n const isColRow = gridRow.section === 'colgroup';\n const colspan = findDiff(gridRow.cells.slice(column), comparator);\n const rowspan = isColRow ? 1 : findDiff(getColumn(grid.slice(row), column), comparator);\n return {\n colspan,\n rowspan\n };\n };\n\n const toDetails = (grid, comparator) => {\n const seen = map$1(grid, row => map$1(row.cells, never));\n const updateSeen = (rowIndex, columnIndex, rowspan, colspan) => {\n for (let row = rowIndex; row < rowIndex + rowspan; row++) {\n for (let column = columnIndex; column < columnIndex + colspan; column++) {\n seen[row][column] = true;\n }\n }\n };\n return map$1(grid, (row, rowIndex) => {\n const details = bind$2(row.cells, (cell, columnIndex) => {\n if (seen[rowIndex][columnIndex] === false) {\n const result = subgrid(grid, rowIndex, columnIndex, comparator);\n updateSeen(rowIndex, columnIndex, result.rowspan, result.colspan);\n return [detailnew(cell.element, result.rowspan, result.colspan, cell.isNew)];\n } else {\n return [];\n }\n });\n return rowdetailnew(row.element, details, row.section, row.isNew);\n });\n };\n const toGrid = (warehouse, generators, isNew) => {\n const grid = [];\n each$2(warehouse.colgroups, colgroup => {\n const colgroupCols = [];\n for (let columnIndex = 0; columnIndex < warehouse.grid.columns; columnIndex++) {\n const element = Warehouse.getColumnAt(warehouse, columnIndex).map(column => elementnew(column.element, isNew, false)).getOrThunk(() => elementnew(generators.colGap(), true, false));\n colgroupCols.push(element);\n }\n grid.push(rowcells(colgroup.element, colgroupCols, 'colgroup', isNew));\n });\n for (let rowIndex = 0; rowIndex < warehouse.grid.rows; rowIndex++) {\n const rowCells = [];\n for (let columnIndex = 0; columnIndex < warehouse.grid.columns; columnIndex++) {\n const element = Warehouse.getAt(warehouse, rowIndex, columnIndex).map(item => elementnew(item.element, isNew, item.isLocked)).getOrThunk(() => elementnew(generators.gap(), true, false));\n rowCells.push(element);\n }\n const rowDetail = warehouse.all[rowIndex];\n const row = rowcells(rowDetail.element, rowCells, rowDetail.section, isNew);\n grid.push(row);\n }\n return grid;\n };\n\n const fromWarehouse = (warehouse, generators) => toGrid(warehouse, generators, false);\n const toDetailList = grid => toDetails(grid, eq$1);\n const findInWarehouse = (warehouse, element) => findMap(warehouse.all, r => find$1(r.cells, e => eq$1(element, e.element)));\n const extractCells = (warehouse, target, predicate) => {\n const details = map$1(target.selection, cell$1 => {\n return cell(cell$1).bind(lc => findInWarehouse(warehouse, lc)).filter(predicate);\n });\n const cells = cat(details);\n return someIf(cells.length > 0, cells);\n };\n const run = (operation, extract, adjustment, postAction, genWrappers) => (table, target, generators, behaviours) => {\n const warehouse = Warehouse.fromTable(table);\n const tableSection = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.section).getOrThunk(TableSection.fallback);\n const output = extract(warehouse, target).map(info => {\n const model = fromWarehouse(warehouse, generators);\n const result = operation(model, info, eq$1, genWrappers(generators), tableSection);\n const lockedColumns = getLockedColumnsFromGrid(result.grid);\n const grid = toDetailList(result.grid);\n return {\n info,\n grid,\n cursor: result.cursor,\n lockedColumns\n };\n });\n return output.bind(out => {\n const newElements = render$1(table, out.grid);\n const tableSizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.sizing).getOrThunk(() => TableSize.getTableSize(table));\n const resizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.resize).getOrThunk(preserveTable);\n adjustment(table, out.grid, out.info, {\n sizing: tableSizing,\n resize: resizing,\n section: tableSection\n });\n postAction(table);\n remove$7(table, LOCKED_COL_ATTR);\n if (out.lockedColumns.length > 0) {\n set$2(table, LOCKED_COL_ATTR, out.lockedColumns.join(','));\n }\n return Optional.some({\n cursor: out.cursor,\n newRows: newElements.newRows,\n newCells: newElements.newCells\n });\n });\n };\n const onPaste = (warehouse, target) => cell(target.element).bind(cell => findInWarehouse(warehouse, cell).map(details => {\n const value = {\n ...details,\n generators: target.generators,\n clipboard: target.clipboard\n };\n return value;\n }));\n const onPasteByEditor = (warehouse, target) => extractCells(warehouse, target, always).map(cells => ({\n cells,\n generators: target.generators,\n clipboard: target.clipboard\n }));\n const onMergable = (_warehouse, target) => target.mergable;\n const onUnmergable = (_warehouse, target) => target.unmergable;\n const onCells = (warehouse, target) => extractCells(warehouse, target, always);\n const onUnlockedCells = (warehouse, target) => extractCells(warehouse, target, detail => !detail.isLocked);\n const isUnlockedTableCell = (warehouse, cell) => findInWarehouse(warehouse, cell).exists(detail => !detail.isLocked);\n const allUnlocked = (warehouse, cells) => forall(cells, cell => isUnlockedTableCell(warehouse, cell));\n const onUnlockedMergable = (warehouse, target) => onMergable(warehouse, target).filter(mergeable => allUnlocked(warehouse, mergeable.cells));\n const onUnlockedUnmergable = (warehouse, target) => onUnmergable(warehouse, target).filter(cells => allUnlocked(warehouse, cells));\n\n const merge$2 = (grid, bounds, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n if (rows.length === 0) {\n return grid;\n }\n for (let i = bounds.startRow; i <= bounds.finishRow; i++) {\n for (let j = bounds.startCol; j <= bounds.finishCol; j++) {\n const row = rows[i];\n const isLocked = getCell(row, j).isLocked;\n mutateCell(row, j, elementnew(substitution(), false, isLocked));\n }\n }\n return grid;\n };\n const unmerge = (grid, target, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n let first = true;\n for (let i = 0; i < rows.length; i++) {\n for (let j = 0; j < cellLength(rows[0]); j++) {\n const row = rows[i];\n const currentCell = getCell(row, j);\n const currentCellElm = currentCell.element;\n const isToReplace = comparator(currentCellElm, target);\n if (isToReplace && !first) {\n mutateCell(row, j, elementnew(substitution(), true, currentCell.isLocked));\n } else if (isToReplace) {\n first = false;\n }\n }\n }\n return grid;\n };\n const uniqueCells = (row, comparator) => {\n return foldl(row, (rest, cell) => {\n return exists(rest, currentCell => {\n return comparator(currentCell.element, cell.element);\n }) ? rest : rest.concat([cell]);\n }, []);\n };\n const splitCols = (grid, index, comparator, substitution) => {\n if (index > 0 && index < grid[0].cells.length) {\n each$2(grid, row => {\n const prevCell = row.cells[index - 1];\n let offset = 0;\n const substitute = substitution();\n while (row.cells.length > index + offset && comparator(prevCell.element, row.cells[index + offset].element)) {\n mutateCell(row, index + offset, elementnew(substitute, true, row.cells[index + offset].isLocked));\n offset++;\n }\n });\n }\n return grid;\n };\n const splitRows = (grid, index, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n if (index > 0 && index < rows.length) {\n const rowPrevCells = rows[index - 1].cells;\n const cells = uniqueCells(rowPrevCells, comparator);\n each$2(cells, cell => {\n let replacement = Optional.none();\n for (let i = index; i < rows.length; i++) {\n for (let j = 0; j < cellLength(rows[0]); j++) {\n const row = rows[i];\n const current = getCell(row, j);\n const isToReplace = comparator(current.element, cell.element);\n if (isToReplace) {\n if (replacement.isNone()) {\n replacement = Optional.some(substitution());\n }\n replacement.each(sub => {\n mutateCell(row, j, elementnew(sub, true, current.isLocked));\n });\n }\n }\n }\n });\n }\n return grid;\n };\n\n const value$1 = value => {\n const applyHelper = fn => fn(value);\n const constHelper = constant(value);\n const outputHelper = () => output;\n const output = {\n tag: true,\n inner: value,\n fold: (_onError, onValue) => onValue(value),\n isValue: always,\n isError: never,\n map: mapper => Result.value(mapper(value)),\n mapError: outputHelper,\n bind: applyHelper,\n exists: applyHelper,\n forall: applyHelper,\n getOr: constHelper,\n or: outputHelper,\n getOrThunk: constHelper,\n orThunk: outputHelper,\n getOrDie: constHelper,\n each: fn => {\n fn(value);\n },\n toOptional: () => Optional.some(value)\n };\n return output;\n };\n const error = error => {\n const outputHelper = () => output;\n const output = {\n tag: false,\n inner: error,\n fold: (onError, _onValue) => onError(error),\n isValue: never,\n isError: always,\n map: outputHelper,\n mapError: mapper => Result.error(mapper(error)),\n bind: outputHelper,\n exists: never,\n forall: always,\n getOr: identity,\n or: identity,\n getOrThunk: apply,\n orThunk: apply,\n getOrDie: die(String(error)),\n each: noop,\n toOptional: Optional.none\n };\n return output;\n };\n const fromOption = (optional, err) => optional.fold(() => error(err), value$1);\n const Result = {\n value: value$1,\n error,\n fromOption\n };\n\n const measure = (startAddress, gridA, gridB) => {\n if (startAddress.row >= gridA.length || startAddress.column > cellLength(gridA[0])) {\n return Result.error('invalid start address out of table bounds, row: ' + startAddress.row + ', column: ' + startAddress.column);\n }\n const rowRemainder = gridA.slice(startAddress.row);\n const colRemainder = rowRemainder[0].cells.slice(startAddress.column);\n const colRequired = cellLength(gridB[0]);\n const rowRequired = gridB.length;\n return Result.value({\n rowDelta: rowRemainder.length - rowRequired,\n colDelta: colRemainder.length - colRequired\n });\n };\n const measureWidth = (gridA, gridB) => {\n const colLengthA = cellLength(gridA[0]);\n const colLengthB = cellLength(gridB[0]);\n return {\n rowDelta: 0,\n colDelta: colLengthA - colLengthB\n };\n };\n const measureHeight = (gridA, gridB) => {\n const rowLengthA = gridA.length;\n const rowLengthB = gridB.length;\n return {\n rowDelta: rowLengthA - rowLengthB,\n colDelta: 0\n };\n };\n const generateElements = (amount, row, generators, isLocked) => {\n const generator = row.section === 'colgroup' ? generators.col : generators.cell;\n return range$1(amount, idx => elementnew(generator(), true, isLocked(idx)));\n };\n const rowFill = (grid, amount, generators, lockedColumns) => {\n const exampleRow = grid[grid.length - 1];\n return grid.concat(range$1(amount, () => {\n const generator = exampleRow.section === 'colgroup' ? generators.colgroup : generators.row;\n const row = clone(exampleRow, generator, identity);\n const elements = generateElements(row.cells.length, row, generators, idx => has$1(lockedColumns, idx.toString()));\n return setCells(row, elements);\n }));\n };\n const colFill = (grid, amount, generators, startIndex) => map$1(grid, row => {\n const newChildren = generateElements(amount, row, generators, never);\n return addCells(row, startIndex, newChildren);\n });\n const lockedColFill = (grid, generators, lockedColumns) => map$1(grid, row => {\n return foldl(lockedColumns, (acc, colNum) => {\n const newChild = generateElements(1, row, generators, always)[0];\n return addCell(acc, colNum, newChild);\n }, row);\n });\n const tailor = (gridA, delta, generators) => {\n const fillCols = delta.colDelta < 0 ? colFill : identity;\n const fillRows = delta.rowDelta < 0 ? rowFill : identity;\n const lockedColumns = getLockedColumnsFromGrid(gridA);\n const gridWidth = cellLength(gridA[0]);\n const isLastColLocked = exists(lockedColumns, locked => locked === gridWidth - 1);\n const modifiedCols = fillCols(gridA, Math.abs(delta.colDelta), generators, isLastColLocked ? gridWidth - 1 : gridWidth);\n const newLockedColumns = getLockedColumnsFromGrid(modifiedCols);\n return fillRows(modifiedCols, Math.abs(delta.rowDelta), generators, mapToObject(newLockedColumns, always));\n };\n\n const isSpanning = (grid, row, col, comparator) => {\n const candidate = getCell(grid[row], col);\n const matching = curry(comparator, candidate.element);\n const currentRow = grid[row];\n return grid.length > 1 && cellLength(currentRow) > 1 && (col > 0 && matching(getCellElement(currentRow, col - 1)) || col < currentRow.cells.length - 1 && matching(getCellElement(currentRow, col + 1)) || row > 0 && matching(getCellElement(grid[row - 1], col)) || row < grid.length - 1 && matching(getCellElement(grid[row + 1], col)));\n };\n const mergeTables = (startAddress, gridA, gridBRows, generator, comparator, lockedColumns) => {\n const startRow = startAddress.row;\n const startCol = startAddress.column;\n const mergeHeight = gridBRows.length;\n const mergeWidth = cellLength(gridBRows[0]);\n const endRow = startRow + mergeHeight;\n const endCol = startCol + mergeWidth + lockedColumns.length;\n const lockedColumnObj = mapToObject(lockedColumns, always);\n for (let r = startRow; r < endRow; r++) {\n let skippedCol = 0;\n for (let c = startCol; c < endCol; c++) {\n if (lockedColumnObj[c]) {\n skippedCol++;\n continue;\n }\n if (isSpanning(gridA, r, c, comparator)) {\n unmerge(gridA, getCellElement(gridA[r], c), comparator, generator.cell);\n }\n const gridBColIndex = c - startCol - skippedCol;\n const newCell = getCell(gridBRows[r - startRow], gridBColIndex);\n const newCellElm = newCell.element;\n const replacement = generator.replace(newCellElm);\n mutateCell(gridA[r], c, elementnew(replacement, true, newCell.isLocked));\n }\n }\n return gridA;\n };\n const getValidStartAddress = (currentStartAddress, grid, lockedColumns) => {\n const gridColLength = cellLength(grid[0]);\n const adjustedRowAddress = extractGridDetails(grid).cols.length + currentStartAddress.row;\n const possibleColAddresses = range$1(gridColLength - currentStartAddress.column, num => num + currentStartAddress.column);\n const validColAddress = find$1(possibleColAddresses, num => forall(lockedColumns, col => col !== num)).getOr(gridColLength - 1);\n return {\n row: adjustedRowAddress,\n column: validColAddress\n };\n };\n const getLockedColumnsWithinBounds = (startAddress, rows, lockedColumns) => filter$2(lockedColumns, colNum => colNum >= startAddress.column && colNum <= cellLength(rows[0]) + startAddress.column);\n const merge$1 = (startAddress, gridA, gridB, generator, comparator) => {\n const lockedColumns = getLockedColumnsFromGrid(gridA);\n const validStartAddress = getValidStartAddress(startAddress, gridA, lockedColumns);\n const gridBRows = extractGridDetails(gridB).rows;\n const lockedColumnsWithinBounds = getLockedColumnsWithinBounds(validStartAddress, gridBRows, lockedColumns);\n const result = measure(validStartAddress, gridA, gridBRows);\n return result.map(diff => {\n const delta = {\n ...diff,\n colDelta: diff.colDelta - lockedColumnsWithinBounds.length\n };\n const fittedGrid = tailor(gridA, delta, generator);\n const newLockedColumns = getLockedColumnsFromGrid(fittedGrid);\n const newLockedColumnsWithinBounds = getLockedColumnsWithinBounds(validStartAddress, gridBRows, newLockedColumns);\n return mergeTables(validStartAddress, fittedGrid, gridBRows, generator, comparator, newLockedColumnsWithinBounds);\n });\n };\n const insertCols = (index, gridA, gridB, generator, comparator) => {\n splitCols(gridA, index, comparator, generator.cell);\n const delta = measureHeight(gridB, gridA);\n const fittedNewGrid = tailor(gridB, delta, generator);\n const secondDelta = measureHeight(gridA, fittedNewGrid);\n const fittedOldGrid = tailor(gridA, secondDelta, generator);\n return map$1(fittedOldGrid, (gridRow, i) => {\n return addCells(gridRow, index, fittedNewGrid[i].cells);\n });\n };\n const insertRows = (index, gridA, gridB, generator, comparator) => {\n splitRows(gridA, index, comparator, generator.cell);\n const locked = getLockedColumnsFromGrid(gridA);\n const diff = measureWidth(gridA, gridB);\n const delta = {\n ...diff,\n colDelta: diff.colDelta - locked.length\n };\n const fittedOldGrid = tailor(gridA, delta, generator);\n const {\n cols: oldCols,\n rows: oldRows\n } = extractGridDetails(fittedOldGrid);\n const newLocked = getLockedColumnsFromGrid(fittedOldGrid);\n const secondDiff = measureWidth(gridB, gridA);\n const secondDelta = {\n ...secondDiff,\n colDelta: secondDiff.colDelta + newLocked.length\n };\n const fittedGridB = lockedColFill(gridB, generator, newLocked);\n const fittedNewGrid = tailor(fittedGridB, secondDelta, generator);\n return [\n ...oldCols,\n ...oldRows.slice(0, index),\n ...fittedNewGrid,\n ...oldRows.slice(index, oldRows.length)\n ];\n };\n\n const cloneRow = (row, cloneCell, comparator, substitution) => clone(row, elem => substitution(elem, comparator), cloneCell);\n const insertRowAt = (grid, index, example, comparator, substitution) => {\n const {rows, cols} = extractGridDetails(grid);\n const before = rows.slice(0, index);\n const after = rows.slice(index);\n const newRow = cloneRow(rows[example], (ex, c) => {\n const withinSpan = index > 0 && index < rows.length && comparator(getCellElement(rows[index - 1], c), getCellElement(rows[index], c));\n const ret = withinSpan ? getCell(rows[index], c) : elementnew(substitution(ex.element, comparator), true, ex.isLocked);\n return ret;\n }, comparator, substitution);\n return [\n ...cols,\n ...before,\n newRow,\n ...after\n ];\n };\n const getElementFor = (row, column, section, withinSpan, example, comparator, substitution) => {\n if (section === 'colgroup' || !withinSpan) {\n const cell = getCell(row, example);\n return elementnew(substitution(cell.element, comparator), true, false);\n } else {\n return getCell(row, column);\n }\n };\n const insertColumnAt = (grid, index, example, comparator, substitution) => map$1(grid, row => {\n const withinSpan = index > 0 && index < cellLength(row) && comparator(getCellElement(row, index - 1), getCellElement(row, index));\n const sub = getElementFor(row, index, row.section, withinSpan, example, comparator, substitution);\n return addCell(row, index, sub);\n });\n const deleteColumnsAt = (grid, columns) => bind$2(grid, row => {\n const existingCells = row.cells;\n const cells = foldr(columns, (acc, column) => column >= 0 && column < acc.length ? acc.slice(0, column).concat(acc.slice(column + 1)) : acc, existingCells);\n return cells.length > 0 ? [rowcells(row.element, cells, row.section, row.isNew)] : [];\n });\n const deleteRowsAt = (grid, start, finish) => {\n const {rows, cols} = extractGridDetails(grid);\n return [\n ...cols,\n ...rows.slice(0, start),\n ...rows.slice(finish + 1)\n ];\n };\n\n const notInStartRow = (grid, rowIndex, colIndex, comparator) => getCellElement(grid[rowIndex], colIndex) !== undefined && (rowIndex > 0 && comparator(getCellElement(grid[rowIndex - 1], colIndex), getCellElement(grid[rowIndex], colIndex)));\n const notInStartColumn = (row, index, comparator) => index > 0 && comparator(getCellElement(row, index - 1), getCellElement(row, index));\n const isDuplicatedCell = (grid, rowIndex, colIndex, comparator) => notInStartRow(grid, rowIndex, colIndex, comparator) || notInStartColumn(grid[rowIndex], colIndex, comparator);\n const rowReplacerPredicate = (targetRow, columnHeaders) => {\n const entireTableIsHeader = forall(columnHeaders, identity) && isHeaderCells(targetRow.cells);\n return entireTableIsHeader ? always : (cell, _rowIndex, colIndex) => {\n const type = name(cell.element);\n return !(type === 'th' && columnHeaders[colIndex]);\n };\n };\n const columnReplacePredicate = (targetColumn, rowHeaders) => {\n const entireTableIsHeader = forall(rowHeaders, identity) && isHeaderCells(targetColumn);\n return entireTableIsHeader ? always : (cell, rowIndex, _colIndex) => {\n const type = name(cell.element);\n return !(type === 'th' && rowHeaders[rowIndex]);\n };\n };\n const determineScope = (applyScope, cell, newScope, isInHeader) => {\n const hasSpan = scope => scope === 'row' ? hasRowspan(cell) : hasColspan(cell);\n const getScope = scope => hasSpan(scope) ? `${ scope }group` : scope;\n if (applyScope) {\n return isHeaderCell(cell) ? getScope(newScope) : null;\n } else if (isInHeader && isHeaderCell(cell)) {\n const oppositeScope = newScope === 'row' ? 'col' : 'row';\n return getScope(oppositeScope);\n } else {\n return null;\n }\n };\n const rowScopeGenerator = (applyScope, columnHeaders) => (cell, rowIndex, columnIndex) => Optional.some(determineScope(applyScope, cell.element, 'col', columnHeaders[columnIndex]));\n const columnScopeGenerator = (applyScope, rowHeaders) => (cell, rowIndex) => Optional.some(determineScope(applyScope, cell.element, 'row', rowHeaders[rowIndex]));\n const replace = (cell, comparator, substitute) => elementnew(substitute(cell.element, comparator), true, cell.isLocked);\n const replaceIn = (grid, targets, comparator, substitute, replacer, genScope, shouldReplace) => {\n const isTarget = cell => {\n return exists(targets, target => {\n return comparator(cell.element, target.element);\n });\n };\n return map$1(grid, (row, rowIndex) => {\n return mapCells(row, (cell, colIndex) => {\n if (isTarget(cell)) {\n const newCell = shouldReplace(cell, rowIndex, colIndex) ? replacer(cell, comparator, substitute) : cell;\n genScope(newCell, rowIndex, colIndex).each(scope => {\n setOptions(newCell.element, { scope: Optional.from(scope) });\n });\n return newCell;\n } else {\n return cell;\n }\n });\n });\n };\n const getColumnCells = (rows, columnIndex, comparator) => bind$2(rows, (row, i) => {\n return isDuplicatedCell(rows, i, columnIndex, comparator) ? [] : [getCell(row, columnIndex)];\n });\n const getRowCells = (rows, rowIndex, comparator) => {\n const targetRow = rows[rowIndex];\n return bind$2(targetRow.cells, (item, i) => {\n return isDuplicatedCell(rows, rowIndex, i, comparator) ? [] : [item];\n });\n };\n const replaceColumns = (grid, indexes, applyScope, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n const targets = bind$2(indexes, index => getColumnCells(rows, index, comparator));\n const rowHeaders = map$1(rows, row => isHeaderCells(row.cells));\n const shouldReplaceCell = columnReplacePredicate(targets, rowHeaders);\n const scopeGenerator = columnScopeGenerator(applyScope, rowHeaders);\n return replaceIn(grid, targets, comparator, substitution, replace, scopeGenerator, shouldReplaceCell);\n };\n const replaceRows = (grid, indexes, section, applyScope, comparator, substitution, tableSection) => {\n const {cols, rows} = extractGridDetails(grid);\n const targetRow = rows[indexes[0]];\n const targets = bind$2(indexes, index => getRowCells(rows, index, comparator));\n const columnHeaders = map$1(targetRow.cells, (_cell, index) => isHeaderCells(getColumnCells(rows, index, comparator)));\n const newRows = [...rows];\n each$2(indexes, index => {\n newRows[index] = tableSection.transformRow(rows[index], section);\n });\n const newGrid = [\n ...cols,\n ...newRows\n ];\n const shouldReplaceCell = rowReplacerPredicate(targetRow, columnHeaders);\n const scopeGenerator = rowScopeGenerator(applyScope, columnHeaders);\n return replaceIn(newGrid, targets, comparator, substitution, tableSection.transformCell, scopeGenerator, shouldReplaceCell);\n };\n const replaceCells = (grid, details, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n const targetCells = map$1(details, detail => getCell(rows[detail.row], detail.column));\n return replaceIn(grid, targetCells, comparator, substitution, replace, Optional.none, always);\n };\n\n const generate$1 = cases => {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n const constructors = [];\n const adt = {};\n each$2(cases, (acase, count) => {\n const keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n const key = keys$1[0];\n const value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = (...args) => {\n const argLength = args.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n const match = branches => {\n const branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n const allReqd = forall(constructors, reqKey => {\n return contains$2(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: (...foldArgs) => {\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n const target = foldArgs[count];\n return target.apply(null, args);\n },\n match,\n log: label => {\n console.log(label, {\n constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n const Adt = { generate: generate$1 };\n\n const adt$6 = Adt.generate([\n { none: [] },\n { only: ['index'] },\n {\n left: [\n 'index',\n 'next'\n ]\n },\n {\n middle: [\n 'prev',\n 'index',\n 'next'\n ]\n },\n {\n right: [\n 'prev',\n 'index'\n ]\n }\n ]);\n const ColumnContext = { ...adt$6 };\n\n const neighbours = (input, index) => {\n if (input.length === 0) {\n return ColumnContext.none();\n }\n if (input.length === 1) {\n return ColumnContext.only(0);\n }\n if (index === 0) {\n return ColumnContext.left(0, 1);\n }\n if (index === input.length - 1) {\n return ColumnContext.right(index - 1, index);\n }\n if (index > 0 && index < input.length - 1) {\n return ColumnContext.middle(index - 1, index, index + 1);\n }\n return ColumnContext.none();\n };\n const determine = (input, column, step, tableSize, resize) => {\n const result = input.slice(0);\n const context = neighbours(input, column);\n const onNone = constant(map$1(result, constant(0)));\n const onOnly = index => tableSize.singleColumnWidth(result[index], step);\n const onLeft = (index, next) => resize.calcLeftEdgeDeltas(result, index, next, step, tableSize.minCellWidth(), tableSize.isRelative);\n const onMiddle = (prev, index, next) => resize.calcMiddleDeltas(result, prev, index, next, step, tableSize.minCellWidth(), tableSize.isRelative);\n const onRight = (prev, index) => resize.calcRightEdgeDeltas(result, prev, index, step, tableSize.minCellWidth(), tableSize.isRelative);\n return context.fold(onNone, onOnly, onLeft, onMiddle, onRight);\n };\n\n const total = (start, end, measures) => {\n let r = 0;\n for (let i = start; i < end; i++) {\n r += measures[i] !== undefined ? measures[i] : 0;\n }\n return r;\n };\n const recalculateWidthForCells = (warehouse, widths) => {\n const all = Warehouse.justCells(warehouse);\n return map$1(all, cell => {\n const width = total(cell.column, cell.column + cell.colspan, widths);\n return {\n element: cell.element,\n width,\n colspan: cell.colspan\n };\n });\n };\n const recalculateWidthForColumns = (warehouse, widths) => {\n const groups = Warehouse.justColumns(warehouse);\n return map$1(groups, (column, index) => ({\n element: column.element,\n width: widths[index],\n colspan: column.colspan\n }));\n };\n const matchRowHeight = (warehouse, heights) => {\n return map$1(warehouse.all, (row, i) => {\n return {\n element: row.element,\n height: heights[i]\n };\n });\n };\n\n const sumUp = newSize => foldr(newSize, (b, a) => b + a, 0);\n const recalculate = (warehouse, widths) => {\n if (Warehouse.hasColumns(warehouse)) {\n return recalculateWidthForColumns(warehouse, widths);\n } else {\n return recalculateWidthForCells(warehouse, widths);\n }\n };\n const recalculateAndApply = (warehouse, widths, tableSize) => {\n const newSizes = recalculate(warehouse, widths);\n each$2(newSizes, cell => {\n tableSize.setElementWidth(cell.element, cell.width);\n });\n };\n const adjustWidth = (table, delta, index, resizing, tableSize) => {\n const warehouse = Warehouse.fromTable(table);\n const step = tableSize.getCellDelta(delta);\n const widths = tableSize.getWidths(warehouse, tableSize);\n const isLastColumn = index === warehouse.grid.columns - 1;\n const clampedStep = resizing.clampTableDelta(widths, index, step, tableSize.minCellWidth(), isLastColumn);\n const deltas = determine(widths, index, clampedStep, tableSize, resizing);\n const newWidths = map$1(deltas, (dx, i) => dx + widths[i]);\n recalculateAndApply(warehouse, newWidths, tableSize);\n resizing.resizeTable(tableSize.adjustTableWidth, clampedStep, isLastColumn);\n };\n const adjustHeight = (table, delta, index) => {\n const warehouse = Warehouse.fromTable(table);\n const heights = getPixelHeights(warehouse, table);\n const newHeights = map$1(heights, (dy, i) => index === i ? Math.max(delta + dy, minHeight()) : dy);\n const newRowSizes = matchRowHeight(warehouse, newHeights);\n each$2(newRowSizes, row => {\n setHeight(row.element, row.height);\n });\n each$2(Warehouse.justCells(warehouse), cell => {\n removeHeight(cell.element);\n });\n const total = sumUp(newHeights);\n setHeight(table, total);\n };\n const adjustAndRedistributeWidths$1 = (_table, list, details, tableSize, resizeBehaviour) => {\n const warehouse = Warehouse.generate(list);\n const sizes = tableSize.getWidths(warehouse, tableSize);\n const tablePixelWidth = tableSize.pixelWidth();\n const {newSizes, delta} = resizeBehaviour.calcRedestributedWidths(sizes, tablePixelWidth, details.pixelDelta, tableSize.isRelative);\n recalculateAndApply(warehouse, newSizes, tableSize);\n tableSize.adjustTableWidth(delta);\n };\n const adjustWidthTo = (_table, list, _info, tableSize) => {\n const warehouse = Warehouse.generate(list);\n const widths = tableSize.getWidths(warehouse, tableSize);\n recalculateAndApply(warehouse, widths, tableSize);\n };\n\n const uniqueColumns = details => {\n const uniqueCheck = (rest, detail) => {\n const columnExists = exists(rest, currentDetail => currentDetail.column === detail.column);\n return columnExists ? rest : rest.concat([detail]);\n };\n return foldl(details, uniqueCheck, []).sort((detailA, detailB) => detailA.column - detailB.column);\n };\n\n const isCol = isTag('col');\n const isColgroup = isTag('colgroup');\n const isRow$1 = element => name(element) === 'tr' || isColgroup(element);\n const elementToData = element => {\n const colspan = getAttrValue(element, 'colspan', 1);\n const rowspan = getAttrValue(element, 'rowspan', 1);\n return {\n element,\n colspan,\n rowspan\n };\n };\n const modification = (generators, toData = elementToData) => {\n const nuCell = data => isCol(data.element) ? generators.col(data) : generators.cell(data);\n const nuRow = data => isColgroup(data.element) ? generators.colgroup(data) : generators.row(data);\n const add = element => {\n if (isRow$1(element)) {\n return nuRow({ element });\n } else {\n const cell = element;\n const replacement = nuCell(toData(cell));\n recent = Optional.some({\n item: cell,\n replacement\n });\n return replacement;\n }\n };\n let recent = Optional.none();\n const getOrInit = (element, comparator) => {\n return recent.fold(() => {\n return add(element);\n }, p => {\n return comparator(element, p.item) ? p.replacement : add(element);\n });\n };\n return { getOrInit };\n };\n const transform$1 = tag => {\n return generators => {\n const list = [];\n const find = (element, comparator) => {\n return find$1(list, x => {\n return comparator(x.item, element);\n });\n };\n const makeNew = element => {\n const attrs = tag === 'td' ? { scope: null } : {};\n const cell = generators.replace(element, tag, attrs);\n list.push({\n item: element,\n sub: cell\n });\n return cell;\n };\n const replaceOrInit = (element, comparator) => {\n if (isRow$1(element) || isCol(element)) {\n return element;\n } else {\n const cell = element;\n return find(cell, comparator).fold(() => {\n return makeNew(cell);\n }, p => {\n return comparator(element, p.item) ? p.sub : makeNew(cell);\n });\n }\n };\n return { replaceOrInit };\n };\n };\n const getScopeAttribute = cell => getOpt(cell, 'scope').map(attribute => attribute.substr(0, 3));\n const merging = generators => {\n const unmerge = cell => {\n const scope = getScopeAttribute(cell);\n scope.each(attribute => set$2(cell, 'scope', attribute));\n return () => {\n const raw = generators.cell({\n element: cell,\n colspan: 1,\n rowspan: 1\n });\n remove$5(raw, 'width');\n remove$5(cell, 'width');\n scope.each(attribute => set$2(raw, 'scope', attribute));\n return raw;\n };\n };\n const merge = cells => {\n const getScopeProperty = () => {\n const stringAttributes = cat(map$1(cells, getScopeAttribute));\n if (stringAttributes.length === 0) {\n return Optional.none();\n } else {\n const baseScope = stringAttributes[0];\n const scopes = [\n 'row',\n 'col'\n ];\n const isMixed = exists(stringAttributes, attribute => {\n return attribute !== baseScope && contains$2(scopes, attribute);\n });\n return isMixed ? Optional.none() : Optional.from(baseScope);\n }\n };\n remove$5(cells[0], 'width');\n getScopeProperty().fold(() => remove$7(cells[0], 'scope'), attribute => set$2(cells[0], 'scope', attribute + 'group'));\n return constant(cells[0]);\n };\n return {\n unmerge,\n merge\n };\n };\n const Generators = {\n modification,\n transform: transform$1,\n merging\n };\n\n const blockList = [\n 'body',\n 'p',\n 'div',\n 'article',\n 'aside',\n 'figcaption',\n 'figure',\n 'footer',\n 'header',\n 'nav',\n 'section',\n 'ol',\n 'ul',\n 'table',\n 'thead',\n 'tfoot',\n 'tbody',\n 'caption',\n 'tr',\n 'td',\n 'th',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'pre',\n 'address'\n ];\n const isList$1 = (universe, item) => {\n const tagName = universe.property().name(item);\n return contains$2([\n 'ol',\n 'ul'\n ], tagName);\n };\n const isBlock$1 = (universe, item) => {\n const tagName = universe.property().name(item);\n return contains$2(blockList, tagName);\n };\n const isEmptyTag$1 = (universe, item) => {\n return contains$2([\n 'br',\n 'img',\n 'hr',\n 'input'\n ], universe.property().name(item));\n };\n\n const universe$1 = DomUniverse();\n const isBlock = element => {\n return isBlock$1(universe$1, element);\n };\n const isList = element => {\n return isList$1(universe$1, element);\n };\n const isEmptyTag = element => {\n return isEmptyTag$1(universe$1, element);\n };\n\n const merge = cells => {\n const isBr = isTag('br');\n const advancedBr = children => {\n return forall(children, c => {\n return isBr(c) || isText(c) && get$6(c).trim().length === 0;\n });\n };\n const isListItem = el => {\n return name(el) === 'li' || ancestor$2(el, isList).isSome();\n };\n const siblingIsBlock = el => {\n return nextSibling(el).map(rightSibling => {\n if (isBlock(rightSibling)) {\n return true;\n }\n if (isEmptyTag(rightSibling)) {\n return name(rightSibling) === 'img' ? false : true;\n }\n return false;\n }).getOr(false);\n };\n const markCell = cell => {\n return last$1(cell).bind(rightEdge => {\n const rightSiblingIsBlock = siblingIsBlock(rightEdge);\n return parent(rightEdge).map(parent => {\n return rightSiblingIsBlock === true || isListItem(parent) || isBr(rightEdge) || isBlock(parent) && !eq$1(cell, parent) ? [] : [SugarElement.fromTag('br')];\n });\n }).getOr([]);\n };\n const markContent = () => {\n const content = bind$2(cells, cell => {\n const children = children$2(cell);\n return advancedBr(children) ? [] : children.concat(markCell(cell));\n });\n return content.length === 0 ? [SugarElement.fromTag('br')] : content;\n };\n const contents = markContent();\n empty(cells[0]);\n append(cells[0], contents);\n };\n\n const isEditable = elem => isEditable$1(elem, true);\n const prune = table => {\n const cells = cells$1(table);\n if (cells.length === 0) {\n remove$6(table);\n }\n };\n const outcome = (grid, cursor) => ({\n grid,\n cursor\n });\n const findEditableCursorPosition = rows => findMap(rows, row => findMap(row.cells, cell => {\n const elem = cell.element;\n return someIf(isEditable(elem), elem);\n }));\n const elementFromGrid = (grid, row, column) => {\n var _a, _b;\n const rows = extractGridDetails(grid).rows;\n return Optional.from((_b = (_a = rows[row]) === null || _a === void 0 ? void 0 : _a.cells[column]) === null || _b === void 0 ? void 0 : _b.element).filter(isEditable).orThunk(() => findEditableCursorPosition(rows));\n };\n const bundle = (grid, row, column) => {\n const cursorElement = elementFromGrid(grid, row, column);\n return outcome(grid, cursorElement);\n };\n const uniqueRows = details => {\n const rowCompilation = (rest, detail) => {\n const rowExists = exists(rest, currentDetail => currentDetail.row === detail.row);\n return rowExists ? rest : rest.concat([detail]);\n };\n return foldl(details, rowCompilation, []).sort((detailA, detailB) => detailA.row - detailB.row);\n };\n const opInsertRowsBefore = (grid, details, comparator, genWrappers) => {\n const targetIndex = details[0].row;\n const rows = uniqueRows(details);\n const newGrid = foldr(rows, (acc, row) => {\n const newG = insertRowAt(acc.grid, targetIndex, row.row + acc.delta, comparator, genWrappers.getOrInit);\n return {\n grid: newG,\n delta: acc.delta + 1\n };\n }, {\n grid,\n delta: 0\n }).grid;\n return bundle(newGrid, targetIndex, details[0].column);\n };\n const opInsertRowsAfter = (grid, details, comparator, genWrappers) => {\n const rows = uniqueRows(details);\n const target = rows[rows.length - 1];\n const targetIndex = target.row + target.rowspan;\n const newGrid = foldr(rows, (newG, row) => {\n return insertRowAt(newG, targetIndex, row.row, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, targetIndex, details[0].column);\n };\n const opInsertColumnsBefore = (grid, extractDetail, comparator, genWrappers) => {\n const details = extractDetail.details;\n const columns = uniqueColumns(details);\n const targetIndex = columns[0].column;\n const newGrid = foldr(columns, (acc, col) => {\n const newG = insertColumnAt(acc.grid, targetIndex, col.column + acc.delta, comparator, genWrappers.getOrInit);\n return {\n grid: newG,\n delta: acc.delta + 1\n };\n }, {\n grid,\n delta: 0\n }).grid;\n return bundle(newGrid, details[0].row, targetIndex);\n };\n const opInsertColumnsAfter = (grid, extractDetail, comparator, genWrappers) => {\n const details = extractDetail.details;\n const target = details[details.length - 1];\n const targetIndex = target.column + target.colspan;\n const columns = uniqueColumns(details);\n const newGrid = foldr(columns, (newG, col) => {\n return insertColumnAt(newG, targetIndex, col.column, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, details[0].row, targetIndex);\n };\n const opMakeColumnsHeader = (initialGrid, details, comparator, genWrappers) => {\n const columns = uniqueColumns(details);\n const columnIndexes = map$1(columns, detail => detail.column);\n const newGrid = replaceColumns(initialGrid, columnIndexes, true, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opMakeCellsHeader = (initialGrid, details, comparator, genWrappers) => {\n const newGrid = replaceCells(initialGrid, details, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opUnmakeColumnsHeader = (initialGrid, details, comparator, genWrappers) => {\n const columns = uniqueColumns(details);\n const columnIndexes = map$1(columns, detail => detail.column);\n const newGrid = replaceColumns(initialGrid, columnIndexes, false, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opUnmakeCellsHeader = (initialGrid, details, comparator, genWrappers) => {\n const newGrid = replaceCells(initialGrid, details, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const makeRowsSection = (section, applyScope) => (initialGrid, details, comparator, genWrappers, tableSection) => {\n const rows = uniqueRows(details);\n const rowIndexes = map$1(rows, detail => detail.row);\n const newGrid = replaceRows(initialGrid, rowIndexes, section, applyScope, comparator, genWrappers.replaceOrInit, tableSection);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opMakeRowsHeader = makeRowsSection('thead', true);\n const opMakeRowsBody = makeRowsSection('tbody', false);\n const opMakeRowsFooter = makeRowsSection('tfoot', false);\n const opEraseColumns = (grid, extractDetail, _comparator, _genWrappers) => {\n const columns = uniqueColumns(extractDetail.details);\n const newGrid = deleteColumnsAt(grid, map$1(columns, column => column.column));\n const maxColIndex = newGrid.length > 0 ? newGrid[0].cells.length - 1 : 0;\n return bundle(newGrid, columns[0].row, Math.min(columns[0].column, maxColIndex));\n };\n const opEraseRows = (grid, details, _comparator, _genWrappers) => {\n const rows = uniqueRows(details);\n const newGrid = deleteRowsAt(grid, rows[0].row, rows[rows.length - 1].row);\n const maxRowIndex = Math.max(extractGridDetails(newGrid).rows.length - 1, 0);\n return bundle(newGrid, Math.min(details[0].row, maxRowIndex), details[0].column);\n };\n const opMergeCells = (grid, mergable, comparator, genWrappers) => {\n const cells = mergable.cells;\n merge(cells);\n const newGrid = merge$2(grid, mergable.bounds, comparator, genWrappers.merge(cells));\n return outcome(newGrid, Optional.from(cells[0]));\n };\n const opUnmergeCells = (grid, unmergable, comparator, genWrappers) => {\n const unmerge$1 = (b, cell) => unmerge(b, cell, comparator, genWrappers.unmerge(cell));\n const newGrid = foldr(unmergable, unmerge$1, grid);\n return outcome(newGrid, Optional.from(unmergable[0]));\n };\n const opPasteCells = (grid, pasteDetails, comparator, _genWrappers) => {\n const gridify = (table, generators) => {\n const wh = Warehouse.fromTable(table);\n return toGrid(wh, generators, true);\n };\n const gridB = gridify(pasteDetails.clipboard, pasteDetails.generators);\n const startAddress = address(pasteDetails.row, pasteDetails.column);\n const mergedGrid = merge$1(startAddress, grid, gridB, pasteDetails.generators, comparator);\n return mergedGrid.fold(() => outcome(grid, Optional.some(pasteDetails.element)), newGrid => {\n return bundle(newGrid, pasteDetails.row, pasteDetails.column);\n });\n };\n const gridifyRows = (rows, generators, context) => {\n const pasteDetails = fromPastedRows(rows, context.section);\n const wh = Warehouse.generate(pasteDetails);\n return toGrid(wh, generators, true);\n };\n const opPasteColsBefore = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[0].column;\n const context = rows[pasteDetails.cells[0].row];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertCols(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column);\n };\n const opPasteColsAfter = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[pasteDetails.cells.length - 1].column + pasteDetails.cells[pasteDetails.cells.length - 1].colspan;\n const context = rows[pasteDetails.cells[0].row];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertCols(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, index);\n };\n const opPasteRowsBefore = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[0].row;\n const context = rows[index];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertRows(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column);\n };\n const opPasteRowsAfter = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[pasteDetails.cells.length - 1].row + pasteDetails.cells[pasteDetails.cells.length - 1].rowspan;\n const context = rows[pasteDetails.cells[0].row];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertRows(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, index, pasteDetails.cells[0].column);\n };\n const opGetColumnsType = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onCells(house, target);\n return details.bind(selectedCells => {\n const lastSelectedCell = selectedCells[selectedCells.length - 1];\n const minColRange = selectedCells[0].column;\n const maxColRange = lastSelectedCell.column + lastSelectedCell.colspan;\n const selectedColumnCells = flatten(map$1(house.all, row => filter$2(row.cells, cell => cell.column >= minColRange && cell.column < maxColRange)));\n return findCommonCellType(selectedColumnCells);\n }).getOr('');\n };\n const opGetCellsType = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onCells(house, target);\n return details.bind(findCommonCellType).getOr('');\n };\n const opGetRowsType = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onCells(house, target);\n return details.bind(selectedCells => {\n const lastSelectedCell = selectedCells[selectedCells.length - 1];\n const minRowRange = selectedCells[0].row;\n const maxRowRange = lastSelectedCell.row + lastSelectedCell.rowspan;\n const selectedRows = house.all.slice(minRowRange, maxRowRange);\n return findCommonRowType(selectedRows);\n }).getOr('');\n };\n const resize = (table, list, details, behaviours) => adjustWidthTo(table, list, details, behaviours.sizing);\n const adjustAndRedistributeWidths = (table, list, details, behaviours) => adjustAndRedistributeWidths$1(table, list, details, behaviours.sizing, behaviours.resize);\n const firstColumnIsLocked = (_warehouse, details) => exists(details, detail => detail.column === 0 && detail.isLocked);\n const lastColumnIsLocked = (warehouse, details) => exists(details, detail => detail.column + detail.colspan >= warehouse.grid.columns && detail.isLocked);\n const getColumnsWidth = (warehouse, details) => {\n const columns$1 = columns(warehouse);\n const uniqueCols = uniqueColumns(details);\n return foldl(uniqueCols, (acc, detail) => {\n const column = columns$1[detail.column];\n const colWidth = column.map(getOuter$2).getOr(0);\n return acc + colWidth;\n }, 0);\n };\n const insertColumnsExtractor = before => (warehouse, target) => onCells(warehouse, target).filter(details => {\n const checkLocked = before ? firstColumnIsLocked : lastColumnIsLocked;\n return !checkLocked(warehouse, details);\n }).map(details => ({\n details,\n pixelDelta: getColumnsWidth(warehouse, details)\n }));\n const eraseColumnsExtractor = (warehouse, target) => onUnlockedCells(warehouse, target).map(details => ({\n details,\n pixelDelta: -getColumnsWidth(warehouse, details)\n }));\n const pasteColumnsExtractor = before => (warehouse, target) => onPasteByEditor(warehouse, target).filter(details => {\n const checkLocked = before ? firstColumnIsLocked : lastColumnIsLocked;\n return !checkLocked(warehouse, details.cells);\n });\n const headerCellGenerator = Generators.transform('th');\n const bodyCellGenerator = Generators.transform('td');\n const insertRowsBefore = run(opInsertRowsBefore, onCells, noop, noop, Generators.modification);\n const insertRowsAfter = run(opInsertRowsAfter, onCells, noop, noop, Generators.modification);\n const insertColumnsBefore = run(opInsertColumnsBefore, insertColumnsExtractor(true), adjustAndRedistributeWidths, noop, Generators.modification);\n const insertColumnsAfter = run(opInsertColumnsAfter, insertColumnsExtractor(false), adjustAndRedistributeWidths, noop, Generators.modification);\n const eraseColumns = run(opEraseColumns, eraseColumnsExtractor, adjustAndRedistributeWidths, prune, Generators.modification);\n const eraseRows = run(opEraseRows, onCells, noop, prune, Generators.modification);\n const makeColumnsHeader = run(opMakeColumnsHeader, onUnlockedCells, noop, noop, headerCellGenerator);\n const unmakeColumnsHeader = run(opUnmakeColumnsHeader, onUnlockedCells, noop, noop, bodyCellGenerator);\n const makeRowsHeader = run(opMakeRowsHeader, onCells, noop, noop, headerCellGenerator);\n const makeRowsBody = run(opMakeRowsBody, onCells, noop, noop, bodyCellGenerator);\n const makeRowsFooter = run(opMakeRowsFooter, onCells, noop, noop, bodyCellGenerator);\n const makeCellsHeader = run(opMakeCellsHeader, onUnlockedCells, noop, noop, headerCellGenerator);\n const unmakeCellsHeader = run(opUnmakeCellsHeader, onUnlockedCells, noop, noop, bodyCellGenerator);\n const mergeCells = run(opMergeCells, onUnlockedMergable, resize, noop, Generators.merging);\n const unmergeCells = run(opUnmergeCells, onUnlockedUnmergable, resize, noop, Generators.merging);\n const pasteCells = run(opPasteCells, onPaste, resize, noop, Generators.modification);\n const pasteColsBefore = run(opPasteColsBefore, pasteColumnsExtractor(true), noop, noop, Generators.modification);\n const pasteColsAfter = run(opPasteColsAfter, pasteColumnsExtractor(false), noop, noop, Generators.modification);\n const pasteRowsBefore = run(opPasteRowsBefore, onPasteByEditor, noop, noop, Generators.modification);\n const pasteRowsAfter = run(opPasteRowsAfter, onPasteByEditor, noop, noop, Generators.modification);\n const getColumnsType = opGetColumnsType;\n const getCellsType = opGetCellsType;\n const getRowsType = opGetRowsType;\n\n const fireNewRow = (editor, row) => editor.dispatch('NewRow', { node: row });\n const fireNewCell = (editor, cell) => editor.dispatch('NewCell', { node: cell });\n const fireTableModified = (editor, table, data) => {\n editor.dispatch('TableModified', {\n ...data,\n table\n });\n };\n const fireTableSelectionChange = (editor, cells, start, finish, otherCells) => {\n editor.dispatch('TableSelectionChange', {\n cells,\n start,\n finish,\n otherCells\n });\n };\n const fireTableSelectionClear = editor => {\n editor.dispatch('TableSelectionClear');\n };\n const fireObjectResizeStart = (editor, target, width, height, origin) => {\n editor.dispatch('ObjectResizeStart', {\n target,\n width,\n height,\n origin\n });\n };\n const fireObjectResized = (editor, target, width, height, origin) => {\n editor.dispatch('ObjectResized', {\n target,\n width,\n height,\n origin\n });\n };\n const styleModified = {\n structure: false,\n style: true\n };\n const structureModified = {\n structure: true,\n style: false\n };\n const styleAndStructureModified = {\n structure: true,\n style: true\n };\n\n const get$5 = (editor, table) => {\n if (isTablePercentagesForced(editor)) {\n return TableSize.percentageSize(table);\n } else if (isTablePixelsForced(editor)) {\n return TableSize.pixelSize(table);\n } else {\n return TableSize.getTableSize(table);\n }\n };\n\n const TableActions = (editor, resizeHandler, cellSelectionHandler) => {\n const isTableBody = editor => name(getBody(editor)) === 'table';\n const lastRowGuard = table => !isTableBody(editor) || getGridSize(table).rows > 1;\n const lastColumnGuard = table => !isTableBody(editor) || getGridSize(table).columns > 1;\n const cloneFormats = getTableCloneElements(editor);\n const colMutationOp = isResizeTableColumnResizing(editor) ? noop : halve;\n const getTableSectionType = table => {\n switch (getTableHeaderType(editor)) {\n case 'section':\n return TableSection.section();\n case 'sectionCells':\n return TableSection.sectionCells();\n case 'cells':\n return TableSection.cells();\n default:\n return TableSection.getTableSectionType(table, 'section');\n }\n };\n const setSelectionFromAction = (table, result) => result.cursor.fold(() => {\n const cells = cells$1(table);\n return head(cells).filter(inBody).map(firstCell => {\n cellSelectionHandler.clearSelectedCells(table.dom);\n const rng = editor.dom.createRng();\n rng.selectNode(firstCell.dom);\n editor.selection.setRng(rng);\n set$2(firstCell, 'data-mce-selected', '1');\n return rng;\n });\n }, cell => {\n const des = freefallRtl(cell);\n const rng = editor.dom.createRng();\n rng.setStart(des.element.dom, des.offset);\n rng.setEnd(des.element.dom, des.offset);\n editor.selection.setRng(rng);\n cellSelectionHandler.clearSelectedCells(table.dom);\n return Optional.some(rng);\n });\n const execute = (operation, guard, mutate, effect) => (table, target, noEvents = false) => {\n removeDataStyle(table);\n const doc = SugarElement.fromDom(editor.getDoc());\n const generators = cellOperations(mutate, doc, cloneFormats);\n const behaviours = {\n sizing: get$5(editor, table),\n resize: isResizeTableColumnResizing(editor) ? resizeTable() : preserveTable(),\n section: getTableSectionType(table)\n };\n return guard(table) ? operation(table, target, generators, behaviours).bind(result => {\n resizeHandler.refresh(table.dom);\n each$2(result.newRows, row => {\n fireNewRow(editor, row.dom);\n });\n each$2(result.newCells, cell => {\n fireNewCell(editor, cell.dom);\n });\n const range = setSelectionFromAction(table, result);\n if (inBody(table)) {\n removeDataStyle(table);\n if (!noEvents) {\n fireTableModified(editor, table.dom, effect);\n }\n }\n return range.map(rng => ({\n rng,\n effect\n }));\n }) : Optional.none();\n };\n const deleteRow = execute(eraseRows, lastRowGuard, noop, structureModified);\n const deleteColumn = execute(eraseColumns, lastColumnGuard, noop, structureModified);\n const insertRowsBefore$1 = execute(insertRowsBefore, always, noop, structureModified);\n const insertRowsAfter$1 = execute(insertRowsAfter, always, noop, structureModified);\n const insertColumnsBefore$1 = execute(insertColumnsBefore, always, colMutationOp, structureModified);\n const insertColumnsAfter$1 = execute(insertColumnsAfter, always, colMutationOp, structureModified);\n const mergeCells$1 = execute(mergeCells, always, noop, structureModified);\n const unmergeCells$1 = execute(unmergeCells, always, noop, structureModified);\n const pasteColsBefore$1 = execute(pasteColsBefore, always, noop, structureModified);\n const pasteColsAfter$1 = execute(pasteColsAfter, always, noop, structureModified);\n const pasteRowsBefore$1 = execute(pasteRowsBefore, always, noop, structureModified);\n const pasteRowsAfter$1 = execute(pasteRowsAfter, always, noop, structureModified);\n const pasteCells$1 = execute(pasteCells, always, noop, styleAndStructureModified);\n const makeCellsHeader$1 = execute(makeCellsHeader, always, noop, structureModified);\n const unmakeCellsHeader$1 = execute(unmakeCellsHeader, always, noop, structureModified);\n const makeColumnsHeader$1 = execute(makeColumnsHeader, always, noop, structureModified);\n const unmakeColumnsHeader$1 = execute(unmakeColumnsHeader, always, noop, structureModified);\n const makeRowsHeader$1 = execute(makeRowsHeader, always, noop, structureModified);\n const makeRowsBody$1 = execute(makeRowsBody, always, noop, structureModified);\n const makeRowsFooter$1 = execute(makeRowsFooter, always, noop, structureModified);\n const getTableCellType = getCellsType;\n const getTableColType = getColumnsType;\n const getTableRowType = getRowsType;\n return {\n deleteRow,\n deleteColumn,\n insertRowsBefore: insertRowsBefore$1,\n insertRowsAfter: insertRowsAfter$1,\n insertColumnsBefore: insertColumnsBefore$1,\n insertColumnsAfter: insertColumnsAfter$1,\n mergeCells: mergeCells$1,\n unmergeCells: unmergeCells$1,\n pasteColsBefore: pasteColsBefore$1,\n pasteColsAfter: pasteColsAfter$1,\n pasteRowsBefore: pasteRowsBefore$1,\n pasteRowsAfter: pasteRowsAfter$1,\n pasteCells: pasteCells$1,\n makeCellsHeader: makeCellsHeader$1,\n unmakeCellsHeader: unmakeCellsHeader$1,\n makeColumnsHeader: makeColumnsHeader$1,\n unmakeColumnsHeader: unmakeColumnsHeader$1,\n makeRowsHeader: makeRowsHeader$1,\n makeRowsBody: makeRowsBody$1,\n makeRowsFooter: makeRowsFooter$1,\n getTableRowType,\n getTableCellType,\n getTableColType\n };\n };\n\n const constrainSpan = (element, property, value) => {\n const currentColspan = getAttrValue(element, property, 1);\n if (value === 1 || currentColspan <= 1) {\n remove$7(element, property);\n } else {\n set$2(element, property, Math.min(value, currentColspan));\n }\n };\n const isColInRange = (minColRange, maxColRange) => cell => {\n const endCol = cell.column + cell.colspan - 1;\n const startCol = cell.column;\n return endCol >= minColRange && startCol < maxColRange;\n };\n const generateColGroup = (house, minColRange, maxColRange) => {\n if (Warehouse.hasColumns(house)) {\n const colsToCopy = filter$2(Warehouse.justColumns(house), isColInRange(minColRange, maxColRange));\n const copiedCols = map$1(colsToCopy, c => {\n const clonedCol = deep(c.element);\n constrainSpan(clonedCol, 'span', maxColRange - minColRange);\n return clonedCol;\n });\n const fakeColgroup = SugarElement.fromTag('colgroup');\n append(fakeColgroup, copiedCols);\n return [fakeColgroup];\n } else {\n return [];\n }\n };\n const generateRows = (house, minColRange, maxColRange) => map$1(house.all, row => {\n const cellsToCopy = filter$2(row.cells, isColInRange(minColRange, maxColRange));\n const copiedCells = map$1(cellsToCopy, cell => {\n const clonedCell = deep(cell.element);\n constrainSpan(clonedCell, 'colspan', maxColRange - minColRange);\n return clonedCell;\n });\n const fakeTR = SugarElement.fromTag('tr');\n append(fakeTR, copiedCells);\n return fakeTR;\n });\n const copyCols = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onUnlockedCells(house, target);\n return details.map(selectedCells => {\n const lastSelectedCell = selectedCells[selectedCells.length - 1];\n const minColRange = selectedCells[0].column;\n const maxColRange = lastSelectedCell.column + lastSelectedCell.colspan;\n const fakeColGroups = generateColGroup(house, minColRange, maxColRange);\n const fakeRows = generateRows(house, minColRange, maxColRange);\n return [\n ...fakeColGroups,\n ...fakeRows\n ];\n });\n };\n\n const copyRows = (table, target, generators) => {\n const warehouse = Warehouse.fromTable(table);\n const details = onCells(warehouse, target);\n return details.bind(selectedCells => {\n const grid = toGrid(warehouse, generators, false);\n const rows = extractGridDetails(grid).rows;\n const slicedGrid = rows.slice(selectedCells[0].row, selectedCells[selectedCells.length - 1].row + selectedCells[selectedCells.length - 1].rowspan);\n const filteredGrid = bind$2(slicedGrid, row => {\n const newCells = filter$2(row.cells, cell => !cell.isLocked);\n return newCells.length > 0 ? [{\n ...row,\n cells: newCells\n }] : [];\n });\n const slicedDetails = toDetailList(filteredGrid);\n return someIf(slicedDetails.length > 0, slicedDetails);\n }).map(slicedDetails => copy(slicedDetails));\n };\n\n const adt$5 = Adt.generate([\n { invalid: ['raw'] },\n { pixels: ['value'] },\n { percent: ['value'] }\n ]);\n const validateFor = (suffix, type, value) => {\n const rawAmount = value.substring(0, value.length - suffix.length);\n const amount = parseFloat(rawAmount);\n return rawAmount === amount.toString() ? type(amount) : adt$5.invalid(value);\n };\n const from = value => {\n if (endsWith(value, '%')) {\n return validateFor('%', adt$5.percent, value);\n }\n if (endsWith(value, 'px')) {\n return validateFor('px', adt$5.pixels, value);\n }\n return adt$5.invalid(value);\n };\n const Size = {\n ...adt$5,\n from\n };\n\n const redistributeToPercent = (widths, totalWidth) => {\n return map$1(widths, w => {\n const colType = Size.from(w);\n return colType.fold(() => {\n return w;\n }, px => {\n const ratio = px / totalWidth * 100;\n return ratio + '%';\n }, pc => {\n return pc + '%';\n });\n });\n };\n const redistributeToPx = (widths, totalWidth, newTotalWidth) => {\n const scale = newTotalWidth / totalWidth;\n return map$1(widths, w => {\n const colType = Size.from(w);\n return colType.fold(() => {\n return w;\n }, px => {\n return px * scale + 'px';\n }, pc => {\n return pc / 100 * newTotalWidth + 'px';\n });\n });\n };\n const redistributeEmpty = (newWidthType, columns) => {\n const f = newWidthType.fold(() => constant(''), pixels => {\n const num = pixels / columns;\n return constant(num + 'px');\n }, () => {\n const num = 100 / columns;\n return constant(num + '%');\n });\n return range$1(columns, f);\n };\n const redistributeValues = (newWidthType, widths, totalWidth) => {\n return newWidthType.fold(() => {\n return widths;\n }, px => {\n return redistributeToPx(widths, totalWidth, px);\n }, _pc => {\n return redistributeToPercent(widths, totalWidth);\n });\n };\n const redistribute$1 = (widths, totalWidth, newWidth) => {\n const newType = Size.from(newWidth);\n const floats = forall(widths, s => {\n return s === '0px';\n }) ? redistributeEmpty(newType, widths.length) : redistributeValues(newType, widths, totalWidth);\n return normalize(floats);\n };\n const sum = (values, fallback) => {\n if (values.length === 0) {\n return fallback;\n }\n return foldr(values, (rest, v) => {\n return Size.from(v).fold(constant(0), identity, identity) + rest;\n }, 0);\n };\n const roundDown = (num, unit) => {\n const floored = Math.floor(num);\n return {\n value: floored + unit,\n remainder: num - floored\n };\n };\n const add$3 = (value, amount) => {\n return Size.from(value).fold(constant(value), px => {\n return px + amount + 'px';\n }, pc => {\n return pc + amount + '%';\n });\n };\n const normalize = values => {\n if (values.length === 0) {\n return values;\n }\n const scan = foldr(values, (rest, value) => {\n const info = Size.from(value).fold(() => ({\n value,\n remainder: 0\n }), num => roundDown(num, 'px'), num => ({\n value: num + '%',\n remainder: 0\n }));\n return {\n output: [info.value].concat(rest.output),\n remainder: rest.remainder + info.remainder\n };\n }, {\n output: [],\n remainder: 0\n });\n const r = scan.output;\n return r.slice(0, r.length - 1).concat([add$3(r[r.length - 1], Math.round(scan.remainder))]);\n };\n const validate = Size.from;\n\n const redistributeToW = (newWidths, cells, unit) => {\n each$2(cells, cell => {\n const widths = newWidths.slice(cell.column, cell.colspan + cell.column);\n const w = sum(widths, minWidth());\n set$1(cell.element, 'width', w + unit);\n });\n };\n const redistributeToColumns = (newWidths, columns, unit) => {\n each$2(columns, (column, index) => {\n const width = sum([newWidths[index]], minWidth());\n set$1(column.element, 'width', width + unit);\n });\n };\n const redistributeToH = (newHeights, rows, cells) => {\n each$2(cells, cell => {\n remove$5(cell.element, 'height');\n });\n each$2(rows, (row, i) => {\n set$1(row.element, 'height', newHeights[i]);\n });\n };\n const getUnit = newSize => {\n return validate(newSize).fold(constant('px'), constant('px'), constant('%'));\n };\n const redistribute = (table, optWidth, optHeight) => {\n const warehouse = Warehouse.fromTable(table);\n const rows = warehouse.all;\n const cells = Warehouse.justCells(warehouse);\n const columns = Warehouse.justColumns(warehouse);\n optWidth.each(newWidth => {\n const widthUnit = getUnit(newWidth);\n const totalWidth = get$9(table);\n const oldWidths = getRawWidths(warehouse, table);\n const nuWidths = redistribute$1(oldWidths, totalWidth, newWidth);\n if (Warehouse.hasColumns(warehouse)) {\n redistributeToColumns(nuWidths, columns, widthUnit);\n } else {\n redistributeToW(nuWidths, cells, widthUnit);\n }\n set$1(table, 'width', newWidth);\n });\n optHeight.each(newHeight => {\n const totalHeight = get$8(table);\n const oldHeights = getRawHeights(warehouse, table);\n const nuHeights = redistribute$1(oldHeights, totalHeight, newHeight);\n redistributeToH(nuHeights, rows, cells);\n set$1(table, 'height', newHeight);\n });\n };\n const isPercentSizing = isPercentSizing$1;\n const isPixelSizing = isPixelSizing$1;\n const isNoneSizing = isNoneSizing$1;\n\n const cleanupLegacyAttributes = element => {\n remove$7(element, 'width');\n remove$7(element, 'height');\n };\n const convertToPercentSizeWidth = table => {\n const newWidth = getPercentTableWidth(table);\n redistribute(table, Optional.some(newWidth), Optional.none());\n cleanupLegacyAttributes(table);\n };\n const convertToPixelSizeWidth = table => {\n const newWidth = getPixelTableWidth(table);\n redistribute(table, Optional.some(newWidth), Optional.none());\n cleanupLegacyAttributes(table);\n };\n const convertToPixelSizeHeight = table => {\n const newHeight = getPixelTableHeight(table);\n redistribute(table, Optional.none(), Optional.some(newHeight));\n cleanupLegacyAttributes(table);\n };\n const convertToNoneSizeWidth = table => {\n remove$5(table, 'width');\n const columns = columns$1(table);\n const rowElements = columns.length > 0 ? columns : cells$1(table);\n each$2(rowElements, cell => {\n remove$5(cell, 'width');\n cleanupLegacyAttributes(cell);\n });\n cleanupLegacyAttributes(table);\n };\n\n const DefaultRenderOptions = {\n styles: {\n 'border-collapse': 'collapse',\n 'width': '100%'\n },\n attributes: { border: '1' },\n colGroups: false\n };\n const tableHeaderCell = () => SugarElement.fromTag('th');\n const tableCell = () => SugarElement.fromTag('td');\n const tableColumn = () => SugarElement.fromTag('col');\n const createRow = (columns, rowHeaders, columnHeaders, rowIndex) => {\n const tr = SugarElement.fromTag('tr');\n for (let j = 0; j < columns; j++) {\n const td = rowIndex < rowHeaders || j < columnHeaders ? tableHeaderCell() : tableCell();\n if (j < columnHeaders) {\n set$2(td, 'scope', 'row');\n }\n if (rowIndex < rowHeaders) {\n set$2(td, 'scope', 'col');\n }\n append$1(td, SugarElement.fromTag('br'));\n append$1(tr, td);\n }\n return tr;\n };\n const createGroupRow = columns => {\n const columnGroup = SugarElement.fromTag('colgroup');\n range$1(columns, () => append$1(columnGroup, tableColumn()));\n return columnGroup;\n };\n const createRows = (rows, columns, rowHeaders, columnHeaders) => range$1(rows, r => createRow(columns, rowHeaders, columnHeaders, r));\n const render = (rows, columns, rowHeaders, columnHeaders, headerType, renderOpts = DefaultRenderOptions) => {\n const table = SugarElement.fromTag('table');\n const rowHeadersGoInThead = headerType !== 'cells';\n setAll(table, renderOpts.styles);\n setAll$1(table, renderOpts.attributes);\n if (renderOpts.colGroups) {\n append$1(table, createGroupRow(columns));\n }\n const actualRowHeaders = Math.min(rows, rowHeaders);\n if (rowHeadersGoInThead && rowHeaders > 0) {\n const thead = SugarElement.fromTag('thead');\n append$1(table, thead);\n const theadRowHeaders = headerType === 'sectionCells' ? actualRowHeaders : 0;\n const theadRows = createRows(rowHeaders, columns, theadRowHeaders, columnHeaders);\n append(thead, theadRows);\n }\n const tbody = SugarElement.fromTag('tbody');\n append$1(table, tbody);\n const numRows = rowHeadersGoInThead ? rows - actualRowHeaders : rows;\n const numRowHeaders = rowHeadersGoInThead ? 0 : rowHeaders;\n const tbodyRows = createRows(numRows, columns, numRowHeaders, columnHeaders);\n append(tbody, tbodyRows);\n return table;\n };\n\n const get$4 = element => element.dom.innerHTML;\n const getOuter = element => {\n const container = SugarElement.fromTag('div');\n const clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append$1(container, clone);\n return get$4(container);\n };\n\n const placeCaretInCell = (editor, cell) => {\n editor.selection.select(cell.dom, true);\n editor.selection.collapse(true);\n };\n const selectFirstCellInTable = (editor, tableElm) => {\n descendant(tableElm, 'td,th').each(curry(placeCaretInCell, editor));\n };\n const fireEvents = (editor, table) => {\n each$2(descendants(table, 'tr'), row => {\n fireNewRow(editor, row.dom);\n each$2(descendants(row, 'th,td'), cell => {\n fireNewCell(editor, cell.dom);\n });\n });\n };\n const isPercentage = width => isString(width) && width.indexOf('%') !== -1;\n const insert = (editor, columns, rows, colHeaders, rowHeaders) => {\n const defaultStyles = getTableDefaultStyles(editor);\n const options = {\n styles: defaultStyles,\n attributes: getTableDefaultAttributes(editor),\n colGroups: tableUseColumnGroup(editor)\n };\n editor.undoManager.ignore(() => {\n const table = render(rows, columns, rowHeaders, colHeaders, getTableHeaderType(editor), options);\n set$2(table, 'data-mce-id', '__mce');\n const html = getOuter(table);\n editor.insertContent(html);\n editor.addVisual();\n });\n return descendant(getBody(editor), 'table[data-mce-id=\"__mce\"]').map(table => {\n if (isTablePixelsForced(editor)) {\n convertToPixelSizeWidth(table);\n } else if (isTableResponsiveForced(editor)) {\n convertToNoneSizeWidth(table);\n } else if (isTablePercentagesForced(editor) || isPercentage(defaultStyles.width)) {\n convertToPercentSizeWidth(table);\n }\n removeDataStyle(table);\n remove$7(table, 'data-mce-id');\n fireEvents(editor, table);\n selectFirstCellInTable(editor, table);\n return table.dom;\n }).getOrNull();\n };\n const insertTable = (editor, rows, columns, options = {}) => {\n const checkInput = val => isNumber(val) && val > 0;\n if (checkInput(rows) && checkInput(columns)) {\n const headerRows = options.headerRows || 0;\n const headerColumns = options.headerColumns || 0;\n return insert(editor, columns, rows, headerColumns, headerRows);\n } else {\n console.error('Invalid values for mceInsertTable - rows and columns values are required to insert a table.');\n return null;\n }\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.FakeClipboard');\n\n const tableTypeBase = 'x-tinymce/dom-table-';\n const tableTypeRow = tableTypeBase + 'rows';\n const tableTypeColumn = tableTypeBase + 'columns';\n const setData = items => {\n const fakeClipboardItem = global.FakeClipboardItem(items);\n global.write([fakeClipboardItem]);\n };\n const getData = type => {\n var _a;\n const items = (_a = global.read()) !== null && _a !== void 0 ? _a : [];\n return findMap(items, item => Optional.from(item.getType(type)));\n };\n const clearData = type => {\n if (getData(type).isSome()) {\n global.clear();\n }\n };\n const setRows = rowsOpt => {\n rowsOpt.fold(clearRows, rows => setData({ [tableTypeRow]: rows }));\n };\n const getRows = () => getData(tableTypeRow);\n const clearRows = () => clearData(tableTypeRow);\n const setColumns = columnsOpt => {\n columnsOpt.fold(clearColumns, columns => setData({ [tableTypeColumn]: columns }));\n };\n const getColumns = () => getData(tableTypeColumn);\n const clearColumns = () => clearData(tableTypeColumn);\n\n const getSelectionStartCellOrCaption = editor => getSelectionCellOrCaption(getSelectionStart(editor), getIsRoot(editor)).filter(isInEditableContext$1);\n const getSelectionStartCell = editor => getSelectionCell(getSelectionStart(editor), getIsRoot(editor)).filter(isInEditableContext$1);\n const registerCommands = (editor, actions) => {\n const isRoot = getIsRoot(editor);\n const eraseTable = () => getSelectionStartCellOrCaption(editor).each(cellOrCaption => {\n table(cellOrCaption, isRoot).filter(not(isRoot)).each(table => {\n const cursor = SugarElement.fromText('');\n after$5(table, cursor);\n remove$6(table);\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n } else {\n const rng = editor.dom.createRng();\n rng.setStart(cursor.dom, 0);\n rng.setEnd(cursor.dom, 0);\n editor.selection.setRng(rng);\n editor.nodeChanged();\n }\n });\n });\n const setSizingMode = sizing => getSelectionStartCellOrCaption(editor).each(cellOrCaption => {\n const isForcedSizing = isTableResponsiveForced(editor) || isTablePixelsForced(editor) || isTablePercentagesForced(editor);\n if (!isForcedSizing) {\n table(cellOrCaption, isRoot).each(table => {\n if (sizing === 'relative' && !isPercentSizing(table)) {\n convertToPercentSizeWidth(table);\n } else if (sizing === 'fixed' && !isPixelSizing(table)) {\n convertToPixelSizeWidth(table);\n } else if (sizing === 'responsive' && !isNoneSizing(table)) {\n convertToNoneSizeWidth(table);\n }\n removeDataStyle(table);\n fireTableModified(editor, table.dom, structureModified);\n });\n }\n });\n const getTableFromCell = cell => table(cell, isRoot);\n const performActionOnSelection = action => getSelectionStartCell(editor).bind(cell => getTableFromCell(cell).map(table => action(table, cell)));\n const toggleTableClass = (_ui, clazz) => {\n performActionOnSelection(table => {\n editor.formatter.toggle('tableclass', { value: clazz }, table.dom);\n fireTableModified(editor, table.dom, styleModified);\n });\n };\n const toggleTableCellClass = (_ui, clazz) => {\n performActionOnSelection(table => {\n const selectedCells = getCellsFromSelection(editor);\n const allHaveClass = forall(selectedCells, cell => editor.formatter.match('tablecellclass', { value: clazz }, cell.dom));\n const formatterAction = allHaveClass ? editor.formatter.remove : editor.formatter.apply;\n each$2(selectedCells, cell => formatterAction('tablecellclass', { value: clazz }, cell.dom));\n fireTableModified(editor, table.dom, styleModified);\n });\n };\n const toggleCaption = () => {\n getSelectionStartCellOrCaption(editor).each(cellOrCaption => {\n table(cellOrCaption, isRoot).each(table => {\n child(table, 'caption').fold(() => {\n const caption = SugarElement.fromTag('caption');\n append$1(caption, SugarElement.fromText('Caption'));\n appendAt(table, caption, 0);\n editor.selection.setCursorLocation(caption.dom, 0);\n }, caption => {\n if (isTag('caption')(cellOrCaption)) {\n one('td', table).each(td => editor.selection.setCursorLocation(td.dom, 0));\n }\n remove$6(caption);\n });\n fireTableModified(editor, table.dom, structureModified);\n });\n });\n };\n const postExecute = _data => {\n editor.focus();\n };\n const actOnSelection = (execute, noEvents = false) => performActionOnSelection((table, startCell) => {\n const targets = forMenu(getCellsFromSelection(editor), table, startCell);\n execute(table, targets, noEvents).each(postExecute);\n });\n const copyRowSelection = () => performActionOnSelection((table, startCell) => {\n const targets = forMenu(getCellsFromSelection(editor), table, startCell);\n const generators = cellOperations(noop, SugarElement.fromDom(editor.getDoc()), Optional.none());\n return copyRows(table, targets, generators);\n });\n const copyColSelection = () => performActionOnSelection((table, startCell) => {\n const targets = forMenu(getCellsFromSelection(editor), table, startCell);\n return copyCols(table, targets);\n });\n const pasteOnSelection = (execute, getRows) => getRows().each(rows => {\n const clonedRows = map$1(rows, row => deep(row));\n performActionOnSelection((table, startCell) => {\n const generators = paste$1(SugarElement.fromDom(editor.getDoc()));\n const targets = pasteRows(getCellsFromSelection(editor), startCell, clonedRows, generators);\n execute(table, targets).each(postExecute);\n });\n });\n const actOnType = getAction => (_ui, args) => get$c(args, 'type').each(type => {\n actOnSelection(getAction(type), args.no_events);\n });\n each$1({\n mceTableSplitCells: () => actOnSelection(actions.unmergeCells),\n mceTableMergeCells: () => actOnSelection(actions.mergeCells),\n mceTableInsertRowBefore: () => actOnSelection(actions.insertRowsBefore),\n mceTableInsertRowAfter: () => actOnSelection(actions.insertRowsAfter),\n mceTableInsertColBefore: () => actOnSelection(actions.insertColumnsBefore),\n mceTableInsertColAfter: () => actOnSelection(actions.insertColumnsAfter),\n mceTableDeleteCol: () => actOnSelection(actions.deleteColumn),\n mceTableDeleteRow: () => actOnSelection(actions.deleteRow),\n mceTableCutCol: () => copyColSelection().each(selection => {\n setColumns(selection);\n actOnSelection(actions.deleteColumn);\n }),\n mceTableCutRow: () => copyRowSelection().each(selection => {\n setRows(selection);\n actOnSelection(actions.deleteRow);\n }),\n mceTableCopyCol: () => copyColSelection().each(selection => setColumns(selection)),\n mceTableCopyRow: () => copyRowSelection().each(selection => setRows(selection)),\n mceTablePasteColBefore: () => pasteOnSelection(actions.pasteColsBefore, getColumns),\n mceTablePasteColAfter: () => pasteOnSelection(actions.pasteColsAfter, getColumns),\n mceTablePasteRowBefore: () => pasteOnSelection(actions.pasteRowsBefore, getRows),\n mceTablePasteRowAfter: () => pasteOnSelection(actions.pasteRowsAfter, getRows),\n mceTableDelete: eraseTable,\n mceTableCellToggleClass: toggleTableCellClass,\n mceTableToggleClass: toggleTableClass,\n mceTableToggleCaption: toggleCaption,\n mceTableSizingMode: (_ui, sizing) => setSizingMode(sizing),\n mceTableCellType: actOnType(type => type === 'th' ? actions.makeCellsHeader : actions.unmakeCellsHeader),\n mceTableColType: actOnType(type => type === 'th' ? actions.makeColumnsHeader : actions.unmakeColumnsHeader),\n mceTableRowType: actOnType(type => {\n switch (type) {\n case 'header':\n return actions.makeRowsHeader;\n case 'footer':\n return actions.makeRowsFooter;\n default:\n return actions.makeRowsBody;\n }\n })\n }, (func, name) => editor.addCommand(name, func));\n editor.addCommand('mceInsertTable', (_ui, args) => {\n insertTable(editor, args.rows, args.columns, args.options);\n });\n editor.addCommand('mceTableApplyCellStyle', (_ui, args) => {\n const getFormatName = style => 'tablecell' + style.toLowerCase().replace('-', '');\n if (!isObject(args)) {\n return;\n }\n const cells = filter$2(getCellsFromSelection(editor), isInEditableContext$1);\n if (cells.length === 0) {\n return;\n }\n const validArgs = filter$1(args, (value, style) => editor.formatter.has(getFormatName(style)) && isString(value));\n if (isEmpty(validArgs)) {\n return;\n }\n each$1(validArgs, (value, style) => {\n const formatName = getFormatName(style);\n each$2(cells, cell => {\n if (value === '') {\n editor.formatter.remove(formatName, { value: null }, cell.dom, true);\n } else {\n editor.formatter.apply(formatName, { value }, cell.dom);\n }\n });\n });\n getTableFromCell(cells[0]).each(table => fireTableModified(editor, table.dom, styleModified));\n });\n };\n\n const registerQueryCommands = (editor, actions) => {\n const isRoot = getIsRoot(editor);\n const lookupOnSelection = action => getSelectionCell(getSelectionStart(editor)).bind(cell => table(cell, isRoot).map(table => {\n const targets = forMenu(getCellsFromSelection(editor), table, cell);\n return action(table, targets);\n })).getOr('');\n each$1({\n mceTableRowType: () => lookupOnSelection(actions.getTableRowType),\n mceTableCellType: () => lookupOnSelection(actions.getTableCellType),\n mceTableColType: () => lookupOnSelection(actions.getTableColType)\n }, (func, name) => editor.addQueryValueHandler(name, func));\n };\n\n const adt$4 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n const cata$1 = (subject, onBefore, onOn, onAfter) => subject.fold(onBefore, onOn, onAfter);\n const getStart$1 = situ => situ.fold(identity, identity, identity);\n const before$2 = adt$4.before;\n const on = adt$4.on;\n const after$3 = adt$4.after;\n const Situ = {\n before: before$2,\n on,\n after: after$3,\n cata: cata$1,\n getStart: getStart$1\n };\n\n const create$4 = (selection, kill) => ({\n selection,\n kill\n });\n const Response = { create: create$4 };\n\n const selectNode = (win, element) => {\n const rng = win.document.createRange();\n rng.selectNode(element.dom);\n return rng;\n };\n const selectNodeContents = (win, element) => {\n const rng = win.document.createRange();\n selectNodeContentsUsing(rng, element);\n return rng;\n };\n const selectNodeContentsUsing = (rng, element) => rng.selectNodeContents(element.dom);\n const setStart = (rng, situ) => {\n situ.fold(e => {\n rng.setStartBefore(e.dom);\n }, (e, o) => {\n rng.setStart(e.dom, o);\n }, e => {\n rng.setStartAfter(e.dom);\n });\n };\n const setFinish = (rng, situ) => {\n situ.fold(e => {\n rng.setEndBefore(e.dom);\n }, (e, o) => {\n rng.setEnd(e.dom, o);\n }, e => {\n rng.setEndAfter(e.dom);\n });\n };\n const relativeToNative = (win, startSitu, finishSitu) => {\n const range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n const exactToNative = (win, start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const toRect = rect => ({\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.width,\n height: rect.height\n });\n const getFirstRect$1 = rng => {\n const rects = rng.getClientRects();\n const rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n\n const adt$3 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const fromRange = (win, type, range) => type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n const getRanges = (win, selection) => selection.match({\n domRange: rng => {\n return {\n ltr: constant(rng),\n rtl: Optional.none\n };\n },\n relative: (startSitu, finishSitu) => {\n return {\n ltr: cached(() => relativeToNative(win, startSitu, finishSitu)),\n rtl: cached(() => Optional.some(relativeToNative(win, finishSitu, startSitu)))\n };\n },\n exact: (start, soffset, finish, foffset) => {\n return {\n ltr: cached(() => exactToNative(win, start, soffset, finish, foffset)),\n rtl: cached(() => Optional.some(exactToNative(win, finish, foffset, start, soffset)))\n };\n }\n });\n const doDiagnose = (win, ranges) => {\n const rng = ranges.ltr();\n if (rng.collapsed) {\n const reversed = ranges.rtl().filter(rev => rev.collapsed === false);\n return reversed.map(rev => adt$3.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset)).getOrThunk(() => fromRange(win, adt$3.ltr, rng));\n } else {\n return fromRange(win, adt$3.ltr, rng);\n }\n };\n const diagnose = (win, selection) => {\n const ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n const asLtrRange = (win, selection) => {\n const diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n },\n rtl: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(finish.dom, foffset);\n rng.setEnd(start.dom, soffset);\n return rng;\n }\n });\n };\n adt$3.ltr;\n adt$3.rtl;\n\n const create$3 = (start, soffset, finish, foffset) => ({\n start,\n soffset,\n finish,\n foffset\n });\n const SimRange = { create: create$3 };\n\n const create$2 = (start, soffset, finish, foffset) => {\n return {\n start: Situ.on(start, soffset),\n finish: Situ.on(finish, foffset)\n };\n };\n const Situs = { create: create$2 };\n\n const convertToRange = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset);\n };\n const makeSitus = Situs.create;\n\n const sync = (container, isRoot, start, soffset, finish, foffset, selectRange) => {\n if (!(eq$1(start, finish) && soffset === foffset)) {\n return closest$1(start, 'td,th', isRoot).bind(s => {\n return closest$1(finish, 'td,th', isRoot).bind(f => {\n return detect(container, isRoot, s, f, selectRange);\n });\n });\n } else {\n return Optional.none();\n }\n };\n const detect = (container, isRoot, start, finish, selectRange) => {\n if (!eq$1(start, finish)) {\n return identify(start, finish, isRoot).bind(cellSel => {\n const boxes = cellSel.boxes.getOr([]);\n if (boxes.length > 1) {\n selectRange(container, boxes, cellSel.start, cellSel.finish);\n return Optional.some(Response.create(Optional.some(makeSitus(start, 0, start, getEnd(start))), true));\n } else {\n return Optional.none();\n }\n });\n } else {\n return Optional.none();\n }\n };\n const update = (rows, columns, container, selected, annotations) => {\n const updateSelection = newSels => {\n annotations.clearBeforeUpdate(container);\n annotations.selectRange(container, newSels.boxes, newSels.start, newSels.finish);\n return newSels.boxes;\n };\n return shiftSelection(selected, rows, columns, annotations.firstSelectedSelector, annotations.lastSelectedSelector).map(updateSelection);\n };\n\n const traverse = (item, mode) => ({\n item,\n mode\n });\n const backtrack = (universe, item, _direction, transition = sidestep) => {\n return universe.property().parent(item).map(p => {\n return traverse(p, transition);\n });\n };\n const sidestep = (universe, item, direction, transition = advance) => {\n return direction.sibling(universe, item).map(p => {\n return traverse(p, transition);\n });\n };\n const advance = (universe, item, direction, transition = advance) => {\n const children = universe.property().children(item);\n const result = direction.first(children);\n return result.map(r => {\n return traverse(r, transition);\n });\n };\n const successors = [\n {\n current: backtrack,\n next: sidestep,\n fallback: Optional.none()\n },\n {\n current: sidestep,\n next: advance,\n fallback: Optional.some(backtrack)\n },\n {\n current: advance,\n next: advance,\n fallback: Optional.some(sidestep)\n }\n ];\n const go = (universe, item, mode, direction, rules = successors) => {\n const ruleOpt = find$1(rules, succ => {\n return succ.current === mode;\n });\n return ruleOpt.bind(rule => {\n return rule.current(universe, item, direction, rule.next).orThunk(() => {\n return rule.fallback.bind(fb => {\n return go(universe, item, fb, direction);\n });\n });\n });\n };\n\n const left$1 = () => {\n const sibling = (universe, item) => {\n return universe.query().prevSibling(item);\n };\n const first = children => {\n return children.length > 0 ? Optional.some(children[children.length - 1]) : Optional.none();\n };\n return {\n sibling,\n first\n };\n };\n const right$1 = () => {\n const sibling = (universe, item) => {\n return universe.query().nextSibling(item);\n };\n const first = children => {\n return children.length > 0 ? Optional.some(children[0]) : Optional.none();\n };\n return {\n sibling,\n first\n };\n };\n const Walkers = {\n left: left$1,\n right: right$1\n };\n\n const hone = (universe, item, predicate, mode, direction, isRoot) => {\n const next = go(universe, item, mode, direction);\n return next.bind(n => {\n if (isRoot(n.item)) {\n return Optional.none();\n } else {\n return predicate(n.item) ? Optional.some(n.item) : hone(universe, n.item, predicate, n.mode, direction, isRoot);\n }\n });\n };\n const left = (universe, item, predicate, isRoot) => {\n return hone(universe, item, predicate, sidestep, Walkers.left(), isRoot);\n };\n const right = (universe, item, predicate, isRoot) => {\n return hone(universe, item, predicate, sidestep, Walkers.right(), isRoot);\n };\n\n const isLeaf = universe => element => universe.property().children(element).length === 0;\n const before$1 = (universe, item, isRoot) => {\n return seekLeft$1(universe, item, isLeaf(universe), isRoot);\n };\n const after$2 = (universe, item, isRoot) => {\n return seekRight$1(universe, item, isLeaf(universe), isRoot);\n };\n const seekLeft$1 = left;\n const seekRight$1 = right;\n\n const universe = DomUniverse();\n const before = (element, isRoot) => {\n return before$1(universe, element, isRoot);\n };\n const after$1 = (element, isRoot) => {\n return after$2(universe, element, isRoot);\n };\n const seekLeft = (element, predicate, isRoot) => {\n return seekLeft$1(universe, element, predicate, isRoot);\n };\n const seekRight = (element, predicate, isRoot) => {\n return seekRight$1(universe, element, predicate, isRoot);\n };\n\n const ancestor = (scope, predicate, isRoot) => ancestor$2(scope, predicate, isRoot).isSome();\n\n const adt$2 = Adt.generate([\n { none: ['message'] },\n { success: [] },\n { failedUp: ['cell'] },\n { failedDown: ['cell'] }\n ]);\n const isOverlapping = (bridge, before, after) => {\n const beforeBounds = bridge.getRect(before);\n const afterBounds = bridge.getRect(after);\n return afterBounds.right > beforeBounds.left && afterBounds.left < beforeBounds.right;\n };\n const isRow = elem => {\n return closest$1(elem, 'tr');\n };\n const verify = (bridge, before, beforeOffset, after, afterOffset, failure, isRoot) => {\n return closest$1(after, 'td,th', isRoot).bind(afterCell => {\n return closest$1(before, 'td,th', isRoot).map(beforeCell => {\n if (!eq$1(afterCell, beforeCell)) {\n return sharedOne(isRow, [\n afterCell,\n beforeCell\n ]).fold(() => {\n return isOverlapping(bridge, beforeCell, afterCell) ? adt$2.success() : failure(beforeCell);\n }, _sharedRow => {\n return failure(beforeCell);\n });\n } else {\n return eq$1(after, afterCell) && getEnd(afterCell) === afterOffset ? failure(beforeCell) : adt$2.none('in same cell');\n }\n });\n }).getOr(adt$2.none('default'));\n };\n const cata = (subject, onNone, onSuccess, onFailedUp, onFailedDown) => {\n return subject.fold(onNone, onSuccess, onFailedUp, onFailedDown);\n };\n const BeforeAfter = {\n ...adt$2,\n verify,\n cata\n };\n\n const inParent = (parent, children, element, index) => ({\n parent,\n children,\n element,\n index\n });\n const indexInParent = element => parent(element).bind(parent => {\n const children = children$2(parent);\n return indexOf(children, element).map(index => inParent(parent, children, element, index));\n });\n const indexOf = (elements, element) => findIndex(elements, curry(eq$1, element));\n\n const isBr = isTag('br');\n const gatherer = (cand, gather, isRoot) => {\n return gather(cand, isRoot).bind(target => {\n return isText(target) && get$6(target).trim().length === 0 ? gatherer(target, gather, isRoot) : Optional.some(target);\n });\n };\n const handleBr = (isRoot, element, direction) => {\n return direction.traverse(element).orThunk(() => {\n return gatherer(element, direction.gather, isRoot);\n }).map(direction.relative);\n };\n const findBr = (element, offset) => {\n return child$2(element, offset).filter(isBr).orThunk(() => {\n return child$2(element, offset - 1).filter(isBr);\n });\n };\n const handleParent = (isRoot, element, offset, direction) => {\n return findBr(element, offset).bind(br => {\n return direction.traverse(br).fold(() => {\n return gatherer(br, direction.gather, isRoot).map(direction.relative);\n }, adjacent => {\n return indexInParent(adjacent).map(info => {\n return Situ.on(info.parent, info.index);\n });\n });\n });\n };\n const tryBr = (isRoot, element, offset, direction) => {\n const target = isBr(element) ? handleBr(isRoot, element, direction) : handleParent(isRoot, element, offset, direction);\n return target.map(tgt => {\n return {\n start: tgt,\n finish: tgt\n };\n });\n };\n const process = analysis => {\n return BeforeAfter.cata(analysis, _message => {\n return Optional.none();\n }, () => {\n return Optional.none();\n }, cell => {\n return Optional.some(point(cell, 0));\n }, cell => {\n return Optional.some(point(cell, getEnd(cell)));\n });\n };\n\n const moveDown = (caret, amount) => {\n return {\n left: caret.left,\n top: caret.top + amount,\n right: caret.right,\n bottom: caret.bottom + amount\n };\n };\n const moveUp = (caret, amount) => {\n return {\n left: caret.left,\n top: caret.top - amount,\n right: caret.right,\n bottom: caret.bottom - amount\n };\n };\n const translate = (caret, xDelta, yDelta) => {\n return {\n left: caret.left + xDelta,\n top: caret.top + yDelta,\n right: caret.right + xDelta,\n bottom: caret.bottom + yDelta\n };\n };\n const getTop = caret => {\n return caret.top;\n };\n const getBottom = caret => {\n return caret.bottom;\n };\n\n const getPartialBox = (bridge, element, offset) => {\n if (offset >= 0 && offset < getEnd(element)) {\n return bridge.getRangedRect(element, offset, element, offset + 1);\n } else if (offset > 0) {\n return bridge.getRangedRect(element, offset - 1, element, offset);\n }\n return Optional.none();\n };\n const toCaret = rect => ({\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom\n });\n const getElemBox = (bridge, element) => {\n return Optional.some(bridge.getRect(element));\n };\n const getBoxAt = (bridge, element, offset) => {\n if (isElement(element)) {\n return getElemBox(bridge, element).map(toCaret);\n } else if (isText(element)) {\n return getPartialBox(bridge, element, offset).map(toCaret);\n } else {\n return Optional.none();\n }\n };\n const getEntireBox = (bridge, element) => {\n if (isElement(element)) {\n return getElemBox(bridge, element).map(toCaret);\n } else if (isText(element)) {\n return bridge.getRangedRect(element, 0, element, getEnd(element)).map(toCaret);\n } else {\n return Optional.none();\n }\n };\n\n const JUMP_SIZE = 5;\n const NUM_RETRIES = 100;\n const adt$1 = Adt.generate([\n { none: [] },\n { retry: ['caret'] }\n ]);\n const isOutside = (caret, box) => {\n return caret.left < box.left || Math.abs(box.right - caret.left) < 1 || caret.left > box.right;\n };\n const inOutsideBlock = (bridge, element, caret) => {\n return closest$2(element, isBlock).fold(never, cell => {\n return getEntireBox(bridge, cell).exists(box => {\n return isOutside(caret, box);\n });\n });\n };\n const adjustDown = (bridge, element, guessBox, original, caret) => {\n const lowerCaret = moveDown(caret, JUMP_SIZE);\n if (Math.abs(guessBox.bottom - original.bottom) < 1) {\n return adt$1.retry(lowerCaret);\n } else if (guessBox.top > caret.bottom) {\n return adt$1.retry(lowerCaret);\n } else if (guessBox.top === caret.bottom) {\n return adt$1.retry(moveDown(caret, 1));\n } else {\n return inOutsideBlock(bridge, element, caret) ? adt$1.retry(translate(lowerCaret, JUMP_SIZE, 0)) : adt$1.none();\n }\n };\n const adjustUp = (bridge, element, guessBox, original, caret) => {\n const higherCaret = moveUp(caret, JUMP_SIZE);\n if (Math.abs(guessBox.top - original.top) < 1) {\n return adt$1.retry(higherCaret);\n } else if (guessBox.bottom < caret.top) {\n return adt$1.retry(higherCaret);\n } else if (guessBox.bottom === caret.top) {\n return adt$1.retry(moveUp(caret, 1));\n } else {\n return inOutsideBlock(bridge, element, caret) ? adt$1.retry(translate(higherCaret, JUMP_SIZE, 0)) : adt$1.none();\n }\n };\n const upMovement = {\n point: getTop,\n adjuster: adjustUp,\n move: moveUp,\n gather: before\n };\n const downMovement = {\n point: getBottom,\n adjuster: adjustDown,\n move: moveDown,\n gather: after$1\n };\n const isAtTable = (bridge, x, y) => {\n return bridge.elementFromPoint(x, y).filter(elm => {\n return name(elm) === 'table';\n }).isSome();\n };\n const adjustForTable = (bridge, movement, original, caret, numRetries) => {\n return adjustTil(bridge, movement, original, movement.move(caret, JUMP_SIZE), numRetries);\n };\n const adjustTil = (bridge, movement, original, caret, numRetries) => {\n if (numRetries === 0) {\n return Optional.some(caret);\n }\n if (isAtTable(bridge, caret.left, movement.point(caret))) {\n return adjustForTable(bridge, movement, original, caret, numRetries - 1);\n }\n return bridge.situsFromPoint(caret.left, movement.point(caret)).bind(guess => {\n return guess.start.fold(Optional.none, element => {\n return getEntireBox(bridge, element).bind(guessBox => {\n return movement.adjuster(bridge, element, guessBox, original, caret).fold(Optional.none, newCaret => {\n return adjustTil(bridge, movement, original, newCaret, numRetries - 1);\n });\n }).orThunk(() => {\n return Optional.some(caret);\n });\n }, Optional.none);\n });\n };\n const checkScroll = (movement, adjusted, bridge) => {\n if (movement.point(adjusted) > bridge.getInnerHeight()) {\n return Optional.some(movement.point(adjusted) - bridge.getInnerHeight());\n } else if (movement.point(adjusted) < 0) {\n return Optional.some(-movement.point(adjusted));\n } else {\n return Optional.none();\n }\n };\n const retry = (movement, bridge, caret) => {\n const moved = movement.move(caret, JUMP_SIZE);\n const adjusted = adjustTil(bridge, movement, caret, moved, NUM_RETRIES).getOr(moved);\n return checkScroll(movement, adjusted, bridge).fold(() => {\n return bridge.situsFromPoint(adjusted.left, movement.point(adjusted));\n }, delta => {\n bridge.scrollBy(0, delta);\n return bridge.situsFromPoint(adjusted.left, movement.point(adjusted) - delta);\n });\n };\n const Retries = {\n tryUp: curry(retry, upMovement),\n tryDown: curry(retry, downMovement),\n getJumpSize: constant(JUMP_SIZE)\n };\n\n const MAX_RETRIES = 20;\n const findSpot = (bridge, isRoot, direction) => {\n return bridge.getSelection().bind(sel => {\n return tryBr(isRoot, sel.finish, sel.foffset, direction).fold(() => {\n return Optional.some(point(sel.finish, sel.foffset));\n }, brNeighbour => {\n const range = bridge.fromSitus(brNeighbour);\n const analysis = BeforeAfter.verify(bridge, sel.finish, sel.foffset, range.finish, range.foffset, direction.failure, isRoot);\n return process(analysis);\n });\n });\n };\n const scan = (bridge, isRoot, element, offset, direction, numRetries) => {\n if (numRetries === 0) {\n return Optional.none();\n }\n return tryCursor(bridge, isRoot, element, offset, direction).bind(situs => {\n const range = bridge.fromSitus(situs);\n const analysis = BeforeAfter.verify(bridge, element, offset, range.finish, range.foffset, direction.failure, isRoot);\n return BeforeAfter.cata(analysis, () => {\n return Optional.none();\n }, () => {\n return Optional.some(situs);\n }, cell => {\n if (eq$1(element, cell) && offset === 0) {\n return tryAgain(bridge, element, offset, moveUp, direction);\n } else {\n return scan(bridge, isRoot, cell, 0, direction, numRetries - 1);\n }\n }, cell => {\n if (eq$1(element, cell) && offset === getEnd(cell)) {\n return tryAgain(bridge, element, offset, moveDown, direction);\n } else {\n return scan(bridge, isRoot, cell, getEnd(cell), direction, numRetries - 1);\n }\n });\n });\n };\n const tryAgain = (bridge, element, offset, move, direction) => {\n return getBoxAt(bridge, element, offset).bind(box => {\n return tryAt(bridge, direction, move(box, Retries.getJumpSize()));\n });\n };\n const tryAt = (bridge, direction, box) => {\n const browser = detect$2().browser;\n if (browser.isChromium() || browser.isSafari() || browser.isFirefox()) {\n return direction.retry(bridge, box);\n } else {\n return Optional.none();\n }\n };\n const tryCursor = (bridge, isRoot, element, offset, direction) => {\n return getBoxAt(bridge, element, offset).bind(box => {\n return tryAt(bridge, direction, box);\n });\n };\n const handle$1 = (bridge, isRoot, direction) => {\n return findSpot(bridge, isRoot, direction).bind(spot => {\n return scan(bridge, isRoot, spot.element, spot.offset, direction, MAX_RETRIES).map(bridge.fromSitus);\n });\n };\n\n const inSameTable = (elem, table) => {\n return ancestor(elem, e => {\n return parent(e).exists(p => {\n return eq$1(p, table);\n });\n });\n };\n const simulate = (bridge, isRoot, direction, initial, anchor) => {\n return closest$1(initial, 'td,th', isRoot).bind(start => {\n return closest$1(start, 'table', isRoot).bind(table => {\n if (!inSameTable(anchor, table)) {\n return Optional.none();\n }\n return handle$1(bridge, isRoot, direction).bind(range => {\n return closest$1(range.finish, 'td,th', isRoot).map(finish => {\n return {\n start,\n finish,\n range\n };\n });\n });\n });\n });\n };\n const navigate = (bridge, isRoot, direction, initial, anchor, precheck) => {\n return precheck(initial, isRoot).orThunk(() => {\n return simulate(bridge, isRoot, direction, initial, anchor).map(info => {\n const range = info.range;\n return Response.create(Optional.some(makeSitus(range.start, range.soffset, range.finish, range.foffset)), true);\n });\n });\n };\n const firstUpCheck = (initial, isRoot) => {\n return closest$1(initial, 'tr', isRoot).bind(startRow => {\n return closest$1(startRow, 'table', isRoot).bind(table => {\n const rows = descendants(table, 'tr');\n if (eq$1(startRow, rows[0])) {\n return seekLeft(table, element => {\n return last$1(element).isSome();\n }, isRoot).map(last => {\n const lastOffset = getEnd(last);\n return Response.create(Optional.some(makeSitus(last, lastOffset, last, lastOffset)), true);\n });\n } else {\n return Optional.none();\n }\n });\n });\n };\n const lastDownCheck = (initial, isRoot) => {\n return closest$1(initial, 'tr', isRoot).bind(startRow => {\n return closest$1(startRow, 'table', isRoot).bind(table => {\n const rows = descendants(table, 'tr');\n if (eq$1(startRow, rows[rows.length - 1])) {\n return seekRight(table, element => {\n return first(element).isSome();\n }, isRoot).map(first => {\n return Response.create(Optional.some(makeSitus(first, 0, first, 0)), true);\n });\n } else {\n return Optional.none();\n }\n });\n });\n };\n const select = (bridge, container, isRoot, direction, initial, anchor, selectRange) => {\n return simulate(bridge, isRoot, direction, initial, anchor).bind(info => {\n return detect(container, isRoot, info.start, info.finish, selectRange);\n });\n };\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n const singleton = doRevoke => {\n const subject = Cell(Optional.none());\n const revoke = () => subject.get().each(doRevoke);\n const clear = () => {\n revoke();\n subject.set(Optional.none());\n };\n const isSet = () => subject.get().isSome();\n const get = () => subject.get();\n const set = s => {\n revoke();\n subject.set(Optional.some(s));\n };\n return {\n clear,\n isSet,\n get,\n set\n };\n };\n const value = () => {\n const subject = singleton(noop);\n const on = f => subject.get().each(f);\n return {\n ...subject,\n on\n };\n };\n\n const findCell = (target, isRoot) => closest$1(target, 'td,th', isRoot);\n const isInEditableContext = cell => parentElement(cell).exists(isEditable$1);\n const MouseSelection = (bridge, container, isRoot, annotations) => {\n const cursor = value();\n const clearstate = cursor.clear;\n const applySelection = event => {\n cursor.on(start => {\n annotations.clearBeforeUpdate(container);\n findCell(event.target, isRoot).each(finish => {\n identify(start, finish, isRoot).each(cellSel => {\n const boxes = cellSel.boxes.getOr([]);\n if (boxes.length === 1) {\n const singleCell = boxes[0];\n const isNonEditableCell = getRaw(singleCell) === 'false';\n const isCellClosestContentEditable = is(closest(event.target), singleCell, eq$1);\n if (isNonEditableCell && isCellClosestContentEditable) {\n annotations.selectRange(container, boxes, singleCell, singleCell);\n }\n } else if (boxes.length > 1) {\n annotations.selectRange(container, boxes, cellSel.start, cellSel.finish);\n bridge.selectContents(finish);\n }\n });\n });\n });\n };\n const mousedown = event => {\n annotations.clear(container);\n findCell(event.target, isRoot).filter(isInEditableContext).each(cursor.set);\n };\n const mouseover = event => {\n applySelection(event);\n };\n const mouseup = event => {\n applySelection(event);\n clearstate();\n };\n return {\n clearstate,\n mousedown,\n mouseover,\n mouseup\n };\n };\n\n const down = {\n traverse: nextSibling,\n gather: after$1,\n relative: Situ.before,\n retry: Retries.tryDown,\n failure: BeforeAfter.failedDown\n };\n const up = {\n traverse: prevSibling,\n gather: before,\n relative: Situ.before,\n retry: Retries.tryUp,\n failure: BeforeAfter.failedUp\n };\n\n const isKey = key => {\n return keycode => {\n return keycode === key;\n };\n };\n const isUp = isKey(38);\n const isDown = isKey(40);\n const isNavigation = keycode => {\n return keycode >= 37 && keycode <= 40;\n };\n const ltr = {\n isBackward: isKey(37),\n isForward: isKey(39)\n };\n const rtl = {\n isBackward: isKey(39),\n isForward: isKey(37)\n };\n\n const get$3 = _DOC => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n const y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return SugarPosition(x, y);\n };\n const by = (x, y, _DOC) => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const win = doc.defaultView;\n if (win) {\n win.scrollBy(x, y);\n }\n };\n\n const adt = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const exactFromRange = simRange => adt.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n const getStart = selection => selection.match({\n domRange: rng => SugarElement.fromDom(rng.startContainer),\n relative: (startSitu, _finishSitu) => Situ.getStart(startSitu),\n exact: (start, _soffset, _finish, _foffset) => start\n });\n const domRange = adt.domRange;\n const relative = adt.relative;\n const exact = adt.exact;\n const getWin = selection => {\n const start = getStart(selection);\n return defaultView(start);\n };\n const range = SimRange.create;\n const SimSelection = {\n domRange,\n relative,\n exact,\n exactFromRange,\n getWin,\n range\n };\n\n const caretPositionFromPoint = (doc, x, y) => {\n var _a;\n return Optional.from((_a = doc.caretPositionFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y)).bind(pos => {\n if (pos.offsetNode === null) {\n return Optional.none();\n }\n const r = doc.createRange();\n r.setStart(pos.offsetNode, pos.offset);\n r.collapse();\n return Optional.some(r);\n });\n };\n const caretRangeFromPoint = (doc, x, y) => {\n var _a;\n return Optional.from((_a = doc.caretRangeFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y));\n };\n const availableSearch = (doc, x, y) => {\n if (doc.caretPositionFromPoint) {\n return caretPositionFromPoint(doc, x, y);\n } else if (doc.caretRangeFromPoint) {\n return caretRangeFromPoint(doc, x, y);\n } else {\n return Optional.none();\n }\n };\n const fromPoint = (win, x, y) => {\n const doc = win.document;\n return availableSearch(doc, x, y).map(rng => SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset));\n };\n\n const beforeSpecial = (element, offset) => {\n const name$1 = name(element);\n if ('input' === name$1) {\n return Situ.after(element);\n } else if (!contains$2([\n 'br',\n 'img'\n ], name$1)) {\n return Situ.on(element, offset);\n } else {\n return offset === 0 ? Situ.before(element) : Situ.after(element);\n }\n };\n const preprocessRelative = (startSitu, finishSitu) => {\n const start = startSitu.fold(Situ.before, beforeSpecial, Situ.after);\n const finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after);\n return SimSelection.relative(start, finish);\n };\n const preprocessExact = (start, soffset, finish, foffset) => {\n const startSitu = beforeSpecial(start, soffset);\n const finishSitu = beforeSpecial(finish, foffset);\n return SimSelection.relative(startSitu, finishSitu);\n };\n\n const makeRange = (start, soffset, finish, foffset) => {\n const doc = owner(start);\n const rng = doc.dom.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const after = (start, soffset, finish, foffset) => {\n const r = makeRange(start, soffset, finish, foffset);\n const same = eq$1(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n const getNativeSelection = win => Optional.from(win.getSelection());\n const doSetNativeRange = (win, rng) => {\n getNativeSelection(win).each(selection => {\n selection.removeAllRanges();\n selection.addRange(rng);\n });\n };\n const doSetRange = (win, start, soffset, finish, foffset) => {\n const rng = exactToNative(win, start, soffset, finish, foffset);\n doSetNativeRange(win, rng);\n };\n const setLegacyRtlRange = (win, selection, start, soffset, finish, foffset) => {\n selection.collapse(start.dom, soffset);\n selection.extend(finish.dom, foffset);\n };\n const setRangeFromRelative = (win, relative) => diagnose(win, relative).match({\n ltr: (start, soffset, finish, foffset) => {\n doSetRange(win, start, soffset, finish, foffset);\n },\n rtl: (start, soffset, finish, foffset) => {\n getNativeSelection(win).each(selection => {\n if (selection.setBaseAndExtent) {\n selection.setBaseAndExtent(start.dom, soffset, finish.dom, foffset);\n } else if (selection.extend) {\n try {\n setLegacyRtlRange(win, selection, start, soffset, finish, foffset);\n } catch (_a) {\n doSetRange(win, finish, foffset, start, soffset);\n }\n } else {\n doSetRange(win, finish, foffset, start, soffset);\n }\n });\n }\n });\n const setExact = (win, start, soffset, finish, foffset) => {\n const relative = preprocessExact(start, soffset, finish, foffset);\n setRangeFromRelative(win, relative);\n };\n const setRelative = (win, startSitu, finishSitu) => {\n const relative = preprocessRelative(startSitu, finishSitu);\n setRangeFromRelative(win, relative);\n };\n const readRange = selection => {\n if (selection.rangeCount > 0) {\n const firstRng = selection.getRangeAt(0);\n const lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Optional.some(SimRange.create(SugarElement.fromDom(firstRng.startContainer), firstRng.startOffset, SugarElement.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Optional.none();\n }\n };\n const doGetExact = selection => {\n if (selection.anchorNode === null || selection.focusNode === null) {\n return readRange(selection);\n } else {\n const anchor = SugarElement.fromDom(selection.anchorNode);\n const focus = SugarElement.fromDom(selection.focusNode);\n return after(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Optional.some(SimRange.create(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);\n }\n };\n const setToElement = (win, element, selectNodeContents$1 = true) => {\n const rngGetter = selectNodeContents$1 ? selectNodeContents : selectNode;\n const rng = rngGetter(win, element);\n doSetNativeRange(win, rng);\n };\n const getExact = win => getNativeSelection(win).filter(sel => sel.rangeCount > 0).bind(doGetExact);\n const get$2 = win => getExact(win).map(range => SimSelection.exact(range.start, range.soffset, range.finish, range.foffset));\n const getFirstRect = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return getFirstRect$1(rng);\n };\n const getAtPoint = (win, x, y) => fromPoint(win, x, y);\n const clear = win => {\n getNativeSelection(win).each(selection => selection.removeAllRanges());\n };\n\n const WindowBridge = win => {\n const elementFromPoint = (x, y) => {\n return SugarElement.fromPoint(SugarElement.fromDom(win.document), x, y);\n };\n const getRect = element => {\n return element.dom.getBoundingClientRect();\n };\n const getRangedRect = (start, soffset, finish, foffset) => {\n const sel = SimSelection.exact(start, soffset, finish, foffset);\n return getFirstRect(win, sel);\n };\n const getSelection = () => {\n return get$2(win).map(exactAdt => {\n return convertToRange(win, exactAdt);\n });\n };\n const fromSitus = situs => {\n const relative = SimSelection.relative(situs.start, situs.finish);\n return convertToRange(win, relative);\n };\n const situsFromPoint = (x, y) => {\n return getAtPoint(win, x, y).map(exact => {\n return Situs.create(exact.start, exact.soffset, exact.finish, exact.foffset);\n });\n };\n const clearSelection = () => {\n clear(win);\n };\n const collapseSelection = (toStart = false) => {\n get$2(win).each(sel => sel.fold(rng => rng.collapse(toStart), (startSitu, finishSitu) => {\n const situ = toStart ? startSitu : finishSitu;\n setRelative(win, situ, situ);\n }, (start, soffset, finish, foffset) => {\n const node = toStart ? start : finish;\n const offset = toStart ? soffset : foffset;\n setExact(win, node, offset, node, offset);\n }));\n };\n const selectNode = element => {\n setToElement(win, element, false);\n };\n const selectContents = element => {\n setToElement(win, element);\n };\n const setSelection = sel => {\n setExact(win, sel.start, sel.soffset, sel.finish, sel.foffset);\n };\n const setRelativeSelection = (start, finish) => {\n setRelative(win, start, finish);\n };\n const getInnerHeight = () => {\n return win.innerHeight;\n };\n const getScrollY = () => {\n const pos = get$3(SugarElement.fromDom(win.document));\n return pos.top;\n };\n const scrollBy = (x, y) => {\n by(x, y, SugarElement.fromDom(win.document));\n };\n return {\n elementFromPoint,\n getRect,\n getRangedRect,\n getSelection,\n fromSitus,\n situsFromPoint,\n clearSelection,\n collapseSelection,\n setSelection,\n setRelativeSelection,\n selectNode,\n selectContents,\n getInnerHeight,\n getScrollY,\n scrollBy\n };\n };\n\n const rc = (rows, cols) => ({\n rows,\n cols\n });\n const mouse = (win, container, isRoot, annotations) => {\n const bridge = WindowBridge(win);\n const handlers = MouseSelection(bridge, container, isRoot, annotations);\n return {\n clearstate: handlers.clearstate,\n mousedown: handlers.mousedown,\n mouseover: handlers.mouseover,\n mouseup: handlers.mouseup\n };\n };\n const isEditableNode = node => closest$2(node, isHTMLElement).exists(isEditable$1);\n const isEditableSelection = (start, finish) => isEditableNode(start) || isEditableNode(finish);\n const keyboard = (win, container, isRoot, annotations) => {\n const bridge = WindowBridge(win);\n const clearToNavigate = () => {\n annotations.clear(container);\n return Optional.none();\n };\n const keydown = (event, start, soffset, finish, foffset, direction) => {\n const realEvent = event.raw;\n const keycode = realEvent.which;\n const shiftKey = realEvent.shiftKey === true;\n const handler = retrieve$1(container, annotations.selectedSelector).fold(() => {\n if (isNavigation(keycode) && !shiftKey) {\n annotations.clearBeforeUpdate(container);\n }\n if (isNavigation(keycode) && shiftKey && !isEditableSelection(start, finish)) {\n return Optional.none;\n } else if (isDown(keycode) && shiftKey) {\n return curry(select, bridge, container, isRoot, down, finish, start, annotations.selectRange);\n } else if (isUp(keycode) && shiftKey) {\n return curry(select, bridge, container, isRoot, up, finish, start, annotations.selectRange);\n } else if (isDown(keycode)) {\n return curry(navigate, bridge, isRoot, down, finish, start, lastDownCheck);\n } else if (isUp(keycode)) {\n return curry(navigate, bridge, isRoot, up, finish, start, firstUpCheck);\n } else {\n return Optional.none;\n }\n }, selected => {\n const update$1 = attempts => {\n return () => {\n const navigation = findMap(attempts, delta => {\n return update(delta.rows, delta.cols, container, selected, annotations);\n });\n return navigation.fold(() => {\n return getEdges(container, annotations.firstSelectedSelector, annotations.lastSelectedSelector).map(edges => {\n const relative = isDown(keycode) || direction.isForward(keycode) ? Situ.after : Situ.before;\n bridge.setRelativeSelection(Situ.on(edges.first, 0), relative(edges.table));\n annotations.clear(container);\n return Response.create(Optional.none(), true);\n });\n }, _ => {\n return Optional.some(Response.create(Optional.none(), true));\n });\n };\n };\n if (isNavigation(keycode) && shiftKey && !isEditableSelection(start, finish)) {\n return Optional.none;\n } else if (isDown(keycode) && shiftKey) {\n return update$1([rc(+1, 0)]);\n } else if (isUp(keycode) && shiftKey) {\n return update$1([rc(-1, 0)]);\n } else if (direction.isBackward(keycode) && shiftKey) {\n return update$1([\n rc(0, -1),\n rc(-1, 0)\n ]);\n } else if (direction.isForward(keycode) && shiftKey) {\n return update$1([\n rc(0, +1),\n rc(+1, 0)\n ]);\n } else if (isNavigation(keycode) && !shiftKey) {\n return clearToNavigate;\n } else {\n return Optional.none;\n }\n });\n return handler();\n };\n const keyup = (event, start, soffset, finish, foffset) => {\n return retrieve$1(container, annotations.selectedSelector).fold(() => {\n const realEvent = event.raw;\n const keycode = realEvent.which;\n const shiftKey = realEvent.shiftKey === true;\n if (!shiftKey) {\n return Optional.none();\n }\n if (isNavigation(keycode) && isEditableSelection(start, finish)) {\n return sync(container, isRoot, start, soffset, finish, foffset, annotations.selectRange);\n } else {\n return Optional.none();\n }\n }, Optional.none);\n };\n return {\n keydown,\n keyup\n };\n };\n const external = (win, container, isRoot, annotations) => {\n const bridge = WindowBridge(win);\n return (start, finish) => {\n annotations.clearBeforeUpdate(container);\n identify(start, finish, isRoot).each(cellSel => {\n const boxes = cellSel.boxes.getOr([]);\n annotations.selectRange(container, boxes, cellSel.start, cellSel.finish);\n bridge.selectContents(finish);\n bridge.collapseSelection();\n });\n };\n };\n\n const read = (element, attr) => {\n const value = get$b(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n const add$2 = (element, attr, id) => {\n const old = read(element, attr);\n const nu = old.concat([id]);\n set$2(element, attr, nu.join(' '));\n return true;\n };\n const remove$4 = (element, attr, id) => {\n const nu = filter$2(read(element, attr), v => v !== id);\n if (nu.length > 0) {\n set$2(element, attr, nu.join(' '));\n } else {\n remove$7(element, attr);\n }\n return false;\n };\n\n const supports = element => element.dom.classList !== undefined;\n const get$1 = element => read(element, 'class');\n const add$1 = (element, clazz) => add$2(element, 'class', clazz);\n const remove$3 = (element, clazz) => remove$4(element, 'class', clazz);\n\n const add = (element, clazz) => {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$1(element, clazz);\n }\n };\n const cleanClass = element => {\n const classList = supports(element) ? element.dom.classList : get$1(element);\n if (classList.length === 0) {\n remove$7(element, 'class');\n }\n };\n const remove$2 = (element, clazz) => {\n if (supports(element)) {\n const classList = element.dom.classList;\n classList.remove(clazz);\n } else {\n remove$3(element, clazz);\n }\n cleanClass(element);\n };\n const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz);\n\n const remove$1 = (element, classes) => {\n each$2(classes, x => {\n remove$2(element, x);\n });\n };\n\n const addClass = clazz => element => {\n add(element, clazz);\n };\n const removeClasses = classes => element => {\n remove$1(element, classes);\n };\n\n const byClass = ephemera => {\n const addSelectionClass = addClass(ephemera.selected);\n const removeSelectionClasses = removeClasses([\n ephemera.selected,\n ephemera.lastSelected,\n ephemera.firstSelected\n ]);\n const clear = container => {\n const sels = descendants(container, ephemera.selectedSelector);\n each$2(sels, removeSelectionClasses);\n };\n const selectRange = (container, cells, start, finish) => {\n clear(container);\n each$2(cells, addSelectionClass);\n add(start, ephemera.firstSelected);\n add(finish, ephemera.lastSelected);\n };\n return {\n clearBeforeUpdate: clear,\n clear,\n selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n const byAttr = (ephemera, onSelection, onClear) => {\n const removeSelectionAttributes = element => {\n remove$7(element, ephemera.selected);\n remove$7(element, ephemera.firstSelected);\n remove$7(element, ephemera.lastSelected);\n };\n const addSelectionAttribute = element => {\n set$2(element, ephemera.selected, '1');\n };\n const clear = container => {\n clearBeforeUpdate(container);\n onClear();\n };\n const clearBeforeUpdate = container => {\n const sels = descendants(container, `${ ephemera.selectedSelector },${ ephemera.firstSelectedSelector },${ ephemera.lastSelectedSelector }`);\n each$2(sels, removeSelectionAttributes);\n };\n const selectRange = (container, cells, start, finish) => {\n clear(container);\n each$2(cells, addSelectionAttribute);\n set$2(start, ephemera.firstSelected, '1');\n set$2(finish, ephemera.lastSelected, '1');\n onSelection(cells, start, finish);\n };\n return {\n clearBeforeUpdate,\n clear,\n selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n const SelectionAnnotation = {\n byClass,\n byAttr\n };\n\n const fold = (subject, onNone, onMultiple, onSingle) => {\n switch (subject.tag) {\n case 'none':\n return onNone();\n case 'single':\n return onSingle(subject.element);\n case 'multiple':\n return onMultiple(subject.elements);\n }\n };\n const none = () => ({ tag: 'none' });\n const multiple = elements => ({\n tag: 'multiple',\n elements\n });\n const single = element => ({\n tag: 'single',\n element\n });\n\n const Selections = (lazyRoot, getStart, selectedSelector) => {\n const get = () => retrieve(lazyRoot(), selectedSelector).fold(() => getStart().fold(none, single), multiple);\n return { get };\n };\n\n const getUpOrLeftCells = (grid, selectedCells) => {\n const upGrid = grid.slice(0, selectedCells[selectedCells.length - 1].row + 1);\n const upDetails = toDetailList(upGrid);\n return bind$2(upDetails, detail => {\n const slicedCells = detail.cells.slice(0, selectedCells[selectedCells.length - 1].column + 1);\n return map$1(slicedCells, cell => cell.element);\n });\n };\n const getDownOrRightCells = (grid, selectedCells) => {\n const downGrid = grid.slice(selectedCells[0].row + selectedCells[0].rowspan - 1, grid.length);\n const downDetails = toDetailList(downGrid);\n return bind$2(downDetails, detail => {\n const slicedCells = detail.cells.slice(selectedCells[0].column + selectedCells[0].colspan - 1, detail.cells.length);\n return map$1(slicedCells, cell => cell.element);\n });\n };\n const getOtherCells = (table, target, generators) => {\n const warehouse = Warehouse.fromTable(table);\n const details = onCells(warehouse, target);\n return details.map(selectedCells => {\n const grid = toGrid(warehouse, generators, false);\n const {rows} = extractGridDetails(grid);\n const upOrLeftCells = getUpOrLeftCells(rows, selectedCells);\n const downOrRightCells = getDownOrRightCells(rows, selectedCells);\n return {\n upOrLeftCells,\n downOrRightCells\n };\n });\n };\n\n const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({\n target,\n x,\n y,\n stop,\n prevent,\n kill,\n raw\n });\n const fromRawEvent$1 = rawEvent => {\n const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n const stop = () => rawEvent.stopPropagation();\n const prevent = () => rawEvent.preventDefault();\n const kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n const handle = (filter, handler) => rawEvent => {\n if (filter(rawEvent)) {\n handler(fromRawEvent$1(rawEvent));\n }\n };\n const binder = (element, event, filter, handler, useCapture) => {\n const wrapped = handle(filter, handler);\n element.dom.addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n const bind$1 = (element, event, filter, handler) => binder(element, event, filter, handler, false);\n const unbind = (element, event, handler, useCapture) => {\n element.dom.removeEventListener(event, handler, useCapture);\n };\n\n const filter = always;\n const bind = (element, event, handler) => bind$1(element, event, filter, handler);\n const fromRawEvent = fromRawEvent$1;\n\n const hasInternalTarget = e => !has(SugarElement.fromDom(e.target), 'ephox-snooker-resizer-bar');\n const TableCellSelectionHandler = (editor, resizeHandler) => {\n const cellSelection = Selections(() => SugarElement.fromDom(editor.getBody()), () => getSelectionCell(getSelectionStart(editor), getIsRoot(editor)), ephemera.selectedSelector);\n const onSelection = (cells, start, finish) => {\n const tableOpt = table(start);\n tableOpt.each(table => {\n const cellsDom = map$1(cells, cell => cell.dom);\n const cloneFormats = getTableCloneElements(editor);\n const generators = cellOperations(noop, SugarElement.fromDom(editor.getDoc()), cloneFormats);\n const selectedCells = getCellsFromSelection(editor);\n const otherCellsDom = getOtherCells(table, { selection: selectedCells }, generators).map(otherCells => map(otherCells, cellArr => map$1(cellArr, cell => cell.dom))).getOrUndefined();\n fireTableSelectionChange(editor, cellsDom, start.dom, finish.dom, otherCellsDom);\n });\n };\n const onClear = () => fireTableSelectionClear(editor);\n const annotations = SelectionAnnotation.byAttr(ephemera, onSelection, onClear);\n editor.on('init', _e => {\n const win = editor.getWin();\n const body = getBody(editor);\n const isRoot = getIsRoot(editor);\n const syncSelection = () => {\n const sel = editor.selection;\n const start = SugarElement.fromDom(sel.getStart());\n const end = SugarElement.fromDom(sel.getEnd());\n const shared = sharedOne(table, [\n start,\n end\n ]);\n shared.fold(() => annotations.clear(body), noop);\n };\n const mouseHandlers = mouse(win, body, isRoot, annotations);\n const keyHandlers = keyboard(win, body, isRoot, annotations);\n const external$1 = external(win, body, isRoot, annotations);\n const hasShiftKey = event => event.raw.shiftKey === true;\n editor.on('TableSelectorChange', e => external$1(e.start, e.finish));\n const handleResponse = (event, response) => {\n if (!hasShiftKey(event)) {\n return;\n }\n if (response.kill) {\n event.kill();\n }\n response.selection.each(ns => {\n const relative = SimSelection.relative(ns.start, ns.finish);\n const rng = asLtrRange(win, relative);\n editor.selection.setRng(rng);\n });\n };\n const keyup = event => {\n const wrappedEvent = fromRawEvent(event);\n if (wrappedEvent.raw.shiftKey && isNavigation(wrappedEvent.raw.which)) {\n const rng = editor.selection.getRng();\n const start = SugarElement.fromDom(rng.startContainer);\n const end = SugarElement.fromDom(rng.endContainer);\n keyHandlers.keyup(wrappedEvent, start, rng.startOffset, end, rng.endOffset).each(response => {\n handleResponse(wrappedEvent, response);\n });\n }\n };\n const keydown = event => {\n const wrappedEvent = fromRawEvent(event);\n resizeHandler.hide();\n const rng = editor.selection.getRng();\n const start = SugarElement.fromDom(rng.startContainer);\n const end = SugarElement.fromDom(rng.endContainer);\n const direction = onDirection(ltr, rtl)(SugarElement.fromDom(editor.selection.getStart()));\n keyHandlers.keydown(wrappedEvent, start, rng.startOffset, end, rng.endOffset, direction).each(response => {\n handleResponse(wrappedEvent, response);\n });\n resizeHandler.show();\n };\n const isLeftMouse = raw => raw.button === 0;\n const isLeftButtonPressed = raw => {\n if (raw.buttons === undefined) {\n return true;\n }\n return (raw.buttons & 1) !== 0;\n };\n const dragStart = _e => {\n mouseHandlers.clearstate();\n };\n const mouseDown = e => {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mousedown(fromRawEvent(e));\n }\n };\n const mouseOver = e => {\n if (isLeftButtonPressed(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseover(fromRawEvent(e));\n }\n };\n const mouseUp = e => {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseup(fromRawEvent(e));\n }\n };\n const getDoubleTap = () => {\n const lastTarget = Cell(SugarElement.fromDom(body));\n const lastTimeStamp = Cell(0);\n const touchEnd = t => {\n const target = SugarElement.fromDom(t.target);\n if (isTag('td')(target) || isTag('th')(target)) {\n const lT = lastTarget.get();\n const lTS = lastTimeStamp.get();\n if (eq$1(lT, target) && t.timeStamp - lTS < 300) {\n t.preventDefault();\n external$1(target, target);\n }\n }\n lastTarget.set(target);\n lastTimeStamp.set(t.timeStamp);\n };\n return { touchEnd };\n };\n const doubleTap = getDoubleTap();\n editor.on('dragstart', dragStart);\n editor.on('mousedown', mouseDown);\n editor.on('mouseover', mouseOver);\n editor.on('mouseup', mouseUp);\n editor.on('touchend', doubleTap.touchEnd);\n editor.on('keyup', keyup);\n editor.on('keydown', keydown);\n editor.on('NodeChange', syncSelection);\n });\n editor.on('PreInit', () => {\n editor.serializer.addTempAttr(ephemera.firstSelected);\n editor.serializer.addTempAttr(ephemera.lastSelected);\n });\n const clearSelectedCells = container => annotations.clear(SugarElement.fromDom(container));\n const getSelectedCells = () => fold(cellSelection.get(), constant([]), cells => {\n return map$1(cells, cell => cell.dom);\n }, cell => [cell.dom]);\n return {\n getSelectedCells,\n clearSelectedCells\n };\n };\n\n const Event = fields => {\n let handlers = [];\n const bind = handler => {\n if (handler === undefined) {\n throw new Error('Event bind error: undefined handler');\n }\n handlers.push(handler);\n };\n const unbind = handler => {\n handlers = filter$2(handlers, h => {\n return h !== handler;\n });\n };\n const trigger = (...args) => {\n const event = {};\n each$2(fields, (name, i) => {\n event[name] = args[i];\n });\n each$2(handlers, handler => {\n handler(event);\n });\n };\n return {\n bind,\n unbind,\n trigger\n };\n };\n\n const create$1 = typeDefs => {\n const registry = map(typeDefs, event => {\n return {\n bind: event.bind,\n unbind: event.unbind\n };\n });\n const trigger = map(typeDefs, event => {\n return event.trigger;\n });\n return {\n registry,\n trigger\n };\n };\n\n const last = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n cancel();\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n return {\n cancel,\n throttle\n };\n };\n\n const sort = arr => {\n return arr.slice(0).sort();\n };\n const reqMessage = (required, keys) => {\n throw new Error('All required keys (' + sort(required).join(', ') + ') were not specified. Specified keys were: ' + sort(keys).join(', ') + '.');\n };\n const unsuppMessage = unsupported => {\n throw new Error('Unsupported keys for object: ' + sort(unsupported).join(', '));\n };\n const validateStrArr = (label, array) => {\n if (!isArray(array)) {\n throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');\n }\n each$2(array, a => {\n if (!isString(a)) {\n throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');\n }\n });\n };\n const invalidTypeMessage = (incorrect, type) => {\n throw new Error('All values need to be of type: ' + type + '. Keys (' + sort(incorrect).join(', ') + ') were not.');\n };\n const checkDupes = everything => {\n const sorted = sort(everything);\n const dupe = find$1(sorted, (s, i) => {\n return i < sorted.length - 1 && s === sorted[i + 1];\n });\n dupe.each(d => {\n throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');\n });\n };\n\n const base = (handleUnsupported, required) => {\n return baseWith(handleUnsupported, required, {\n validate: isFunction,\n label: 'function'\n });\n };\n const baseWith = (handleUnsupported, required, pred) => {\n if (required.length === 0) {\n throw new Error('You must specify at least one required field.');\n }\n validateStrArr('required', required);\n checkDupes(required);\n return obj => {\n const keys$1 = keys(obj);\n const allReqd = forall(required, req => {\n return contains$2(keys$1, req);\n });\n if (!allReqd) {\n reqMessage(required, keys$1);\n }\n handleUnsupported(required, keys$1);\n const invalidKeys = filter$2(required, key => {\n return !pred.validate(obj[key], key);\n });\n if (invalidKeys.length > 0) {\n invalidTypeMessage(invalidKeys, pred.label);\n }\n return obj;\n };\n };\n const handleExact = (required, keys) => {\n const unsupported = filter$2(keys, key => {\n return !contains$2(required, key);\n });\n if (unsupported.length > 0) {\n unsuppMessage(unsupported);\n }\n };\n const exactly = required => base(handleExact, required);\n\n const DragMode = exactly([\n 'compare',\n 'extract',\n 'mutate',\n 'sink'\n ]);\n const DragSink = exactly([\n 'element',\n 'start',\n 'stop',\n 'destroy'\n ]);\n const DragApi = exactly([\n 'forceDrop',\n 'drop',\n 'move',\n 'delayDrop'\n ]);\n\n const InDrag = () => {\n let previous = Optional.none();\n const reset = () => {\n previous = Optional.none();\n };\n const update = (mode, nu) => {\n const result = previous.map(old => {\n return mode.compare(old, nu);\n });\n previous = Optional.some(nu);\n return result;\n };\n const onEvent = (event, mode) => {\n const dataOption = mode.extract(event);\n dataOption.each(data => {\n const offset = update(mode, data);\n offset.each(d => {\n events.trigger.move(d);\n });\n });\n };\n const events = create$1({ move: Event(['info']) });\n return {\n onEvent,\n reset,\n events: events.registry\n };\n };\n\n const NoDrag = () => {\n const events = create$1({ move: Event(['info']) });\n return {\n onEvent: noop,\n reset: noop,\n events: events.registry\n };\n };\n\n const Movement = () => {\n const noDragState = NoDrag();\n const inDragState = InDrag();\n let dragState = noDragState;\n const on = () => {\n dragState.reset();\n dragState = inDragState;\n };\n const off = () => {\n dragState.reset();\n dragState = noDragState;\n };\n const onEvent = (event, mode) => {\n dragState.onEvent(event, mode);\n };\n const isOn = () => {\n return dragState === inDragState;\n };\n return {\n on,\n off,\n isOn,\n onEvent,\n events: inDragState.events\n };\n };\n\n const setup = (mutation, mode, settings) => {\n let active = false;\n const events = create$1({\n start: Event([]),\n stop: Event([])\n });\n const movement = Movement();\n const drop = () => {\n sink.stop();\n if (movement.isOn()) {\n movement.off();\n events.trigger.stop();\n }\n };\n const throttledDrop = last(drop, 200);\n const go = parent => {\n sink.start(parent);\n movement.on();\n events.trigger.start();\n };\n const mousemove = event => {\n throttledDrop.cancel();\n movement.onEvent(event, mode);\n };\n movement.events.move.bind(event => {\n mode.mutate(mutation, event.info);\n });\n const on = () => {\n active = true;\n };\n const off = () => {\n active = false;\n };\n const isActive = () => active;\n const runIfActive = f => {\n return (...args) => {\n if (active) {\n f.apply(null, args);\n }\n };\n };\n const sink = mode.sink(DragApi({\n forceDrop: drop,\n drop: runIfActive(drop),\n move: runIfActive(mousemove),\n delayDrop: runIfActive(throttledDrop.throttle)\n }), settings);\n const destroy = () => {\n sink.destroy();\n };\n return {\n element: sink.element,\n go,\n on,\n off,\n isActive,\n destroy,\n events: events.registry\n };\n };\n\n const css = namespace => {\n const dashNamespace = namespace.replace(/\\./g, '-');\n const resolve = str => {\n return dashNamespace + '-' + str;\n };\n return { resolve };\n };\n\n const styles$1 = css('ephox-dragster');\n const resolve$1 = styles$1.resolve;\n\n const Blocker = options => {\n const settings = {\n layerClass: resolve$1('blocker'),\n ...options\n };\n const div = SugarElement.fromTag('div');\n set$2(div, 'role', 'presentation');\n setAll(div, {\n position: 'fixed',\n left: '0px',\n top: '0px',\n width: '100%',\n height: '100%'\n });\n add(div, resolve$1('blocker'));\n add(div, settings.layerClass);\n const element = constant(div);\n const destroy = () => {\n remove$6(div);\n };\n return {\n element,\n destroy\n };\n };\n\n const compare = (old, nu) => {\n return SugarPosition(nu.left - old.left, nu.top - old.top);\n };\n const extract = event => {\n return Optional.some(SugarPosition(event.x, event.y));\n };\n const mutate = (mutation, info) => {\n mutation.mutate(info.left, info.top);\n };\n const sink = (dragApi, settings) => {\n const blocker = Blocker(settings);\n const mdown = bind(blocker.element(), 'mousedown', dragApi.forceDrop);\n const mup = bind(blocker.element(), 'mouseup', dragApi.drop);\n const mmove = bind(blocker.element(), 'mousemove', dragApi.move);\n const mout = bind(blocker.element(), 'mouseout', dragApi.delayDrop);\n const destroy = () => {\n blocker.destroy();\n mup.unbind();\n mmove.unbind();\n mout.unbind();\n mdown.unbind();\n };\n const start = parent => {\n append$1(parent, blocker.element());\n };\n const stop = () => {\n remove$6(blocker.element());\n };\n return DragSink({\n element: blocker.element,\n start,\n stop,\n destroy\n });\n };\n var MouseDrag = DragMode({\n compare,\n extract,\n sink,\n mutate\n });\n\n const transform = (mutation, settings = {}) => {\n var _a;\n const mode = (_a = settings.mode) !== null && _a !== void 0 ? _a : MouseDrag;\n return setup(mutation, mode, settings);\n };\n\n const styles = css('ephox-snooker');\n const resolve = styles.resolve;\n\n const Mutation = () => {\n const events = create$1({\n drag: Event([\n 'xDelta',\n 'yDelta'\n ])\n });\n const mutate = (x, y) => {\n events.trigger.drag(x, y);\n };\n return {\n mutate,\n events: events.registry\n };\n };\n\n const BarMutation = () => {\n const events = create$1({\n drag: Event([\n 'xDelta',\n 'yDelta',\n 'target'\n ])\n });\n let target = Optional.none();\n const delegate = Mutation();\n delegate.events.drag.bind(event => {\n target.each(t => {\n events.trigger.drag(event.xDelta, event.yDelta, t);\n });\n });\n const assign = t => {\n target = Optional.some(t);\n };\n const get = () => {\n return target;\n };\n return {\n assign,\n get,\n mutate: delegate.mutate,\n events: events.registry\n };\n };\n\n const col = (column, x, y, w, h) => {\n const bar = SugarElement.fromTag('div');\n setAll(bar, {\n position: 'absolute',\n left: x - w / 2 + 'px',\n top: y + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll$1(bar, {\n 'data-column': column,\n 'role': 'presentation'\n });\n return bar;\n };\n const row = (r, x, y, w, h) => {\n const bar = SugarElement.fromTag('div');\n setAll(bar, {\n position: 'absolute',\n left: x + 'px',\n top: y - h / 2 + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll$1(bar, {\n 'data-row': r,\n 'role': 'presentation'\n });\n return bar;\n };\n\n const resizeBar = resolve('resizer-bar');\n const resizeRowBar = resolve('resizer-rows');\n const resizeColBar = resolve('resizer-cols');\n const BAR_THICKNESS = 7;\n const resizableRows = (warehouse, isResizable) => bind$2(warehouse.all, (row, i) => isResizable(row.element) ? [i] : []);\n const resizableColumns = (warehouse, isResizable) => {\n const resizableCols = [];\n range$1(warehouse.grid.columns, index => {\n const colElmOpt = Warehouse.getColumnAt(warehouse, index).map(col => col.element);\n if (colElmOpt.forall(isResizable)) {\n resizableCols.push(index);\n }\n });\n return filter$2(resizableCols, colIndex => {\n const columnCells = Warehouse.filterItems(warehouse, cell => cell.column === colIndex);\n return forall(columnCells, cell => isResizable(cell.element));\n });\n };\n const destroy = wire => {\n const previous = descendants(wire.parent(), '.' + resizeBar);\n each$2(previous, remove$6);\n };\n const drawBar = (wire, positions, create) => {\n const origin = wire.origin();\n each$2(positions, cpOption => {\n cpOption.each(cp => {\n const bar = create(origin, cp);\n add(bar, resizeBar);\n append$1(wire.parent(), bar);\n });\n });\n };\n const refreshCol = (wire, colPositions, position, tableHeight) => {\n drawBar(wire, colPositions, (origin, cp) => {\n const colBar = col(cp.col, cp.x - origin.left, position.top - origin.top, BAR_THICKNESS, tableHeight);\n add(colBar, resizeColBar);\n return colBar;\n });\n };\n const refreshRow = (wire, rowPositions, position, tableWidth) => {\n drawBar(wire, rowPositions, (origin, cp) => {\n const rowBar = row(cp.row, position.left - origin.left, cp.y - origin.top, tableWidth, BAR_THICKNESS);\n add(rowBar, resizeRowBar);\n return rowBar;\n });\n };\n const refreshGrid = (warhouse, wire, table, rows, cols) => {\n const position = absolute(table);\n const isResizable = wire.isResizable;\n const rowPositions = rows.length > 0 ? height.positions(rows, table) : [];\n const resizableRowBars = rowPositions.length > 0 ? resizableRows(warhouse, isResizable) : [];\n const resizableRowPositions = filter$2(rowPositions, (_pos, i) => exists(resizableRowBars, barIndex => i === barIndex));\n refreshRow(wire, resizableRowPositions, position, getOuter$2(table));\n const colPositions = cols.length > 0 ? width.positions(cols, table) : [];\n const resizableColBars = colPositions.length > 0 ? resizableColumns(warhouse, isResizable) : [];\n const resizableColPositions = filter$2(colPositions, (_pos, i) => exists(resizableColBars, barIndex => i === barIndex));\n refreshCol(wire, resizableColPositions, position, getOuter$1(table));\n };\n const refresh = (wire, table) => {\n destroy(wire);\n if (wire.isResizable(table)) {\n const warehouse = Warehouse.fromTable(table);\n const rows$1 = rows(warehouse);\n const cols = columns(warehouse);\n refreshGrid(warehouse, wire, table, rows$1, cols);\n }\n };\n const each = (wire, f) => {\n const bars = descendants(wire.parent(), '.' + resizeBar);\n each$2(bars, f);\n };\n const hide = wire => {\n each(wire, bar => {\n set$1(bar, 'display', 'none');\n });\n };\n const show = wire => {\n each(wire, bar => {\n set$1(bar, 'display', 'block');\n });\n };\n const isRowBar = element => {\n return has(element, resizeRowBar);\n };\n const isColBar = element => {\n return has(element, resizeColBar);\n };\n\n const resizeBarDragging = resolve('resizer-bar-dragging');\n const BarManager = wire => {\n const mutation = BarMutation();\n const resizing = transform(mutation, {});\n let hoverTable = Optional.none();\n const getResizer = (element, type) => {\n return Optional.from(get$b(element, type));\n };\n mutation.events.drag.bind(event => {\n getResizer(event.target, 'data-row').each(_dataRow => {\n const currentRow = getCssValue(event.target, 'top');\n set$1(event.target, 'top', currentRow + event.yDelta + 'px');\n });\n getResizer(event.target, 'data-column').each(_dataCol => {\n const currentCol = getCssValue(event.target, 'left');\n set$1(event.target, 'left', currentCol + event.xDelta + 'px');\n });\n });\n const getDelta = (target, dir) => {\n const newX = getCssValue(target, dir);\n const oldX = getAttrValue(target, 'data-initial-' + dir, 0);\n return newX - oldX;\n };\n resizing.events.stop.bind(() => {\n mutation.get().each(target => {\n hoverTable.each(table => {\n getResizer(target, 'data-row').each(row => {\n const delta = getDelta(target, 'top');\n remove$7(target, 'data-initial-top');\n events.trigger.adjustHeight(table, delta, parseInt(row, 10));\n });\n getResizer(target, 'data-column').each(column => {\n const delta = getDelta(target, 'left');\n remove$7(target, 'data-initial-left');\n events.trigger.adjustWidth(table, delta, parseInt(column, 10));\n });\n refresh(wire, table);\n });\n });\n });\n const handler = (target, dir) => {\n events.trigger.startAdjust();\n mutation.assign(target);\n set$2(target, 'data-initial-' + dir, getCssValue(target, dir));\n add(target, resizeBarDragging);\n set$1(target, 'opacity', '0.2');\n resizing.go(wire.dragContainer());\n };\n const mousedown = bind(wire.parent(), 'mousedown', event => {\n if (isRowBar(event.target)) {\n handler(event.target, 'top');\n }\n if (isColBar(event.target)) {\n handler(event.target, 'left');\n }\n });\n const isRoot = e => {\n return eq$1(e, wire.view());\n };\n const findClosestEditableTable = target => closest$1(target, 'table', isRoot).filter(isEditable$1);\n const mouseover = bind(wire.view(), 'mouseover', event => {\n findClosestEditableTable(event.target).fold(() => {\n if (inBody(event.target)) {\n destroy(wire);\n }\n }, table => {\n if (resizing.isActive()) {\n hoverTable = Optional.some(table);\n refresh(wire, table);\n }\n });\n });\n const destroy$1 = () => {\n mousedown.unbind();\n mouseover.unbind();\n resizing.destroy();\n destroy(wire);\n };\n const refresh$1 = tbl => {\n refresh(wire, tbl);\n };\n const events = create$1({\n adjustHeight: Event([\n 'table',\n 'delta',\n 'row'\n ]),\n adjustWidth: Event([\n 'table',\n 'delta',\n 'column'\n ]),\n startAdjust: Event([])\n });\n return {\n destroy: destroy$1,\n refresh: refresh$1,\n on: resizing.on,\n off: resizing.off,\n hideBars: curry(hide, wire),\n showBars: curry(show, wire),\n events: events.registry\n };\n };\n\n const create = (wire, resizing, lazySizing) => {\n const hdirection = height;\n const vdirection = width;\n const manager = BarManager(wire);\n const events = create$1({\n beforeResize: Event([\n 'table',\n 'type'\n ]),\n afterResize: Event([\n 'table',\n 'type'\n ]),\n startDrag: Event([])\n });\n manager.events.adjustHeight.bind(event => {\n const table = event.table;\n events.trigger.beforeResize(table, 'row');\n const delta = hdirection.delta(event.delta, table);\n adjustHeight(table, delta, event.row);\n events.trigger.afterResize(table, 'row');\n });\n manager.events.startAdjust.bind(_event => {\n events.trigger.startDrag();\n });\n manager.events.adjustWidth.bind(event => {\n const table = event.table;\n events.trigger.beforeResize(table, 'col');\n const delta = vdirection.delta(event.delta, table);\n const tableSize = lazySizing(table);\n adjustWidth(table, delta, event.column, resizing, tableSize);\n events.trigger.afterResize(table, 'col');\n });\n return {\n on: manager.on,\n off: manager.off,\n refreshBars: manager.refresh,\n hideBars: manager.hideBars,\n showBars: manager.showBars,\n destroy: manager.destroy,\n events: events.registry\n };\n };\n const TableResize = { create };\n\n const random = () => window.crypto.getRandomValues(new Uint32Array(1))[0] / 4294967295;\n\n let unique = 0;\n const generate = prefix => {\n const date = new Date();\n const time = date.getTime();\n const random$1 = Math.floor(random() * 1000000000);\n unique++;\n return prefix + '_' + random$1 + unique + String(time);\n };\n\n const only = (element, isResizable) => {\n const parent = isDocument(element) ? documentElement(element) : element;\n return {\n parent: constant(parent),\n view: constant(element),\n dragContainer: constant(parent),\n origin: constant(SugarPosition(0, 0)),\n isResizable\n };\n };\n const detached = (editable, chrome, isResizable) => {\n const origin = () => absolute(chrome);\n return {\n parent: constant(chrome),\n view: constant(editable),\n dragContainer: constant(chrome),\n origin,\n isResizable\n };\n };\n const body = (editable, chrome, isResizable) => {\n return {\n parent: constant(chrome),\n view: constant(editable),\n dragContainer: constant(chrome),\n origin: constant(SugarPosition(0, 0)),\n isResizable\n };\n };\n const scrollable = (editable, chrome, dragContainer, isResizable) => {\n return {\n parent: constant(chrome),\n view: constant(editable),\n dragContainer: constant(dragContainer),\n origin: () => absolute(chrome),\n isResizable\n };\n };\n const ResizeWire = {\n only,\n detached,\n body,\n scrollable\n };\n\n const createContainer = position => {\n const id = generate('resizer-container');\n const container = SugarElement.fromTag('div');\n set$2(container, 'id', id);\n setAll(container, {\n position,\n height: '0',\n width: '0',\n padding: '0',\n margin: '0',\n border: '0'\n });\n return container;\n };\n const getInlineResizeWire = (editor, isResizable) => {\n const isSplitUiMode$1 = isSplitUiMode(editor);\n const editorBody = SugarElement.fromDom(editor.getBody());\n const container = createContainer(isSplitUiMode$1 ? 'relative' : 'static');\n const body = body$1();\n if (isSplitUiMode$1) {\n after$5(editorBody, container);\n return ResizeWire.scrollable(editorBody, container, body, isResizable);\n }\n append$1(body, container);\n return ResizeWire.body(editorBody, container, isResizable);\n };\n const get = (editor, isResizable) => {\n if (editor.inline) {\n return getInlineResizeWire(editor, isResizable);\n }\n return ResizeWire.only(SugarElement.fromDom(editor.getDoc()), isResizable);\n };\n const remove = (editor, wire) => {\n if (editor.inline) {\n remove$6(wire.parent());\n }\n };\n\n const isTable = node => isNonNullable(node) && node.nodeName === 'TABLE';\n const barResizerPrefix = 'bar-';\n const isResizable = elm => get$b(elm, 'data-mce-resize') !== 'false';\n const syncTableCellPixels = table => {\n const warehouse = Warehouse.fromTable(table);\n if (!Warehouse.hasColumns(warehouse)) {\n each$2(cells$1(table), cell => {\n const computedWidth = get$a(cell, 'width');\n set$1(cell, 'width', computedWidth);\n remove$7(cell, 'width');\n });\n }\n };\n const isCornerResize = origin => startsWith(origin, 'corner-');\n const getCornerLocation = origin => removeLeading(origin, 'corner-');\n const TableResizeHandler = editor => {\n const selectionRng = value();\n const tableResize = value();\n const resizeWire = value();\n let startW;\n let startRawW;\n let startH;\n let startRawH;\n const lazySizing = table => get$5(editor, table);\n const lazyResizingBehaviour = () => isPreserveTableColumnResizing(editor) ? preserveTable() : resizeTable();\n const getNumColumns = table => getGridSize(table).columns;\n const getNumRows = table => getGridSize(table).rows;\n const afterCornerResize = (table, origin, width, height) => {\n const location = getCornerLocation(origin);\n const isRightEdgeResize = endsWith(location, 'e');\n const isNorthEdgeResize = startsWith(location, 'n');\n if (startRawW === '') {\n convertToPercentSizeWidth(table);\n }\n if (startRawH === '') {\n convertToPixelSizeHeight(table);\n }\n if (width !== startW && startRawW !== '') {\n set$1(table, 'width', startRawW);\n const resizing = lazyResizingBehaviour();\n const tableSize = lazySizing(table);\n const col = isPreserveTableColumnResizing(editor) || isRightEdgeResize ? getNumColumns(table) - 1 : 0;\n adjustWidth(table, width - startW, col, resizing, tableSize);\n } else if (isPercentage$1(startRawW)) {\n const percentW = parseFloat(startRawW.replace('%', ''));\n const targetPercentW = width * percentW / startW;\n set$1(table, 'width', targetPercentW + '%');\n }\n if (isPixel(startRawW)) {\n syncTableCellPixels(table);\n }\n if (height !== startH && startRawH !== '') {\n set$1(table, 'height', startRawH);\n const idx = isNorthEdgeResize ? 0 : getNumRows(table) - 1;\n adjustHeight(table, height - startH, idx);\n }\n };\n const destroy = () => {\n tableResize.on(sz => {\n sz.destroy();\n });\n resizeWire.on(w => {\n remove(editor, w);\n });\n };\n editor.on('init', () => {\n const rawWire = get(editor, isResizable);\n resizeWire.set(rawWire);\n if (hasTableObjectResizing(editor) && hasTableResizeBars(editor)) {\n const resizing = lazyResizingBehaviour();\n const sz = TableResize.create(rawWire, resizing, lazySizing);\n if (!editor.mode.isReadOnly()) {\n sz.on();\n }\n sz.events.startDrag.bind(_event => {\n selectionRng.set(editor.selection.getRng());\n });\n sz.events.beforeResize.bind(event => {\n const rawTable = event.table.dom;\n fireObjectResizeStart(editor, rawTable, getPixelWidth(rawTable), getPixelHeight(rawTable), barResizerPrefix + event.type);\n });\n sz.events.afterResize.bind(event => {\n const table = event.table;\n const rawTable = table.dom;\n removeDataStyle(table);\n selectionRng.on(rng => {\n editor.selection.setRng(rng);\n editor.focus();\n });\n fireObjectResized(editor, rawTable, getPixelWidth(rawTable), getPixelHeight(rawTable), barResizerPrefix + event.type);\n editor.undoManager.add();\n });\n tableResize.set(sz);\n }\n });\n editor.on('ObjectResizeStart', e => {\n const targetElm = e.target;\n if (isTable(targetElm) && !editor.mode.isReadOnly()) {\n const table = SugarElement.fromDom(targetElm);\n each$2(editor.dom.select('.mce-clonedresizable'), clone => {\n editor.dom.addClass(clone, 'mce-' + getTableColumnResizingBehaviour(editor) + '-columns');\n });\n if (!isPixelSizing(table) && isTablePixelsForced(editor)) {\n convertToPixelSizeWidth(table);\n } else if (!isPercentSizing(table) && isTablePercentagesForced(editor)) {\n convertToPercentSizeWidth(table);\n }\n if (isNoneSizing(table) && startsWith(e.origin, barResizerPrefix)) {\n convertToPercentSizeWidth(table);\n }\n startW = e.width;\n startRawW = isTableResponsiveForced(editor) ? '' : getRawWidth(editor, targetElm).getOr('');\n startH = e.height;\n startRawH = getRawHeight(editor, targetElm).getOr('');\n }\n });\n editor.on('ObjectResized', e => {\n const targetElm = e.target;\n if (isTable(targetElm)) {\n const table = SugarElement.fromDom(targetElm);\n const origin = e.origin;\n if (isCornerResize(origin)) {\n afterCornerResize(table, origin, e.width, e.height);\n }\n removeDataStyle(table);\n fireTableModified(editor, table.dom, styleModified);\n }\n });\n const showResizeBars = () => {\n tableResize.on(resize => {\n resize.on();\n resize.showBars();\n });\n };\n const hideResizeBars = () => {\n tableResize.on(resize => {\n resize.off();\n resize.hideBars();\n });\n };\n editor.on('DisabledStateChange', e => {\n e.state ? hideResizeBars() : showResizeBars();\n });\n editor.on('SwitchMode', () => {\n editor.mode.isReadOnly() ? hideResizeBars() : showResizeBars();\n });\n editor.on('dragstart dragend', e => {\n e.type === 'dragstart' ? hideResizeBars() : showResizeBars();\n });\n editor.on('remove', () => {\n destroy();\n });\n const refresh = table => {\n tableResize.on(resize => resize.refreshBars(SugarElement.fromDom(table)));\n };\n const hide = () => {\n tableResize.on(resize => resize.hideBars());\n };\n const show = () => {\n tableResize.on(resize => resize.showBars());\n };\n return {\n refresh,\n hide,\n show\n };\n };\n\n const setupTable = editor => {\n register(editor);\n const resizeHandler = TableResizeHandler(editor);\n const cellSelectionHandler = TableCellSelectionHandler(editor, resizeHandler);\n const actions = TableActions(editor, resizeHandler, cellSelectionHandler);\n registerCommands(editor, actions);\n registerQueryCommands(editor, actions);\n registerEvents(editor, actions);\n return {\n getSelectedCells: cellSelectionHandler.getSelectedCells,\n clearSelectedCells: cellSelectionHandler.clearSelectedCells\n };\n };\n\n const DomModel = editor => {\n const table = setupTable(editor);\n return { table };\n };\n var Model = () => {\n global$1.add('dom', DomModel);\n };\n\n Model();\n\n})();\n"],"names":["global$1","hasProto","v","constructor","predicate","_a","typeOf","x","t","o","proto","isType$1","type","value","isSimpleType","eq$2","a","isString","isObject","isArray","isNull","isBoolean","isUndefined","isNullable","isNonNullable","isFunction","isNumber","noop","compose","fa","fb","args","compose1","fbc","fab","constant","identity","tripleEquals","b","curry","fn","initialArgs","restArgs","all","not","f","die","msg","apply","never","always","Optional","tag","onNone","onSome","mapper","binder","replacement","thunk","message","worker","nativeSlice","nativeIndexOf","nativePush","rawIndexOf","ts","contains$2","xs","exists","pred","i","len","range$1","num","r","map$1","each$2","eachr","partition","pass","fail","filter$2","foldr","acc","foldl","findUntil","until","find$1","findIndex","flatten","bind$2","forall","reverse","mapToObject","sort$1","comparator","copy","get$d","head","last$2","findMap","arr","keys","hasOwnProperty","each$1","obj","props","k","map","tupleMap","tuple","objAcc","internalFilter","onTrue","onFalse","filter$1","mapToArray","name","values","get$c","key","has$1","hasNonNullableKey","isEmpty","Global","path","parts","scope","resolve$2","p","unsafe","getOrDie","actual","getPrototypeOf","sandHTMLElement","isPrototypeOf","COMMENT","DOCUMENT","DOCUMENT_FRAGMENT","ELEMENT","TEXT","element","isType","isComment","isHTMLElement","isElement","isText","isDocument","isDocumentFragment","isTag","rawSet","dom","set$2","setAll$1","attrs","setOptions","remove$7","get$b","getOpt","clone$2","attr","fromHtml$1","html","div","fromDom$1","fromTag","node","fromText","text","SugarElement","docElm","y","is$2","selector","elem","bypassSelector","all$1","base","one","eq$1","e1","e2","contains$1","d1","d2","is$1","owner","documentOrOwner","dos","documentElement","defaultView","parent","parentElement","parents","isRoot","stop","ret","rawParent","prevSibling","nextSibling","children$2","child$2","index","cs","firstChild","before$3","marker","after$5","append$1","prepend","appendAt","wrap","wrapper","after$4","elements","e","append","empty","rogue","remove$6","unwrap","children","clone$1","original","isDeep","shallow","deep","shallowAs","nu","attributes","copy$2","cloneChildren","mutate$1","validSectionList","isValidSection","parentName","grid","rows","columns","address","row","column","detail","rowspan","colspan","detailnew","isNew","extended","isLocked","rowdetail","cells","section","rowdetailnew","elementnew","rowcells","bounds","startRow","startCol","finishRow","finishCol","columnext","colgroup","isShadowRoot","getRootNode","getContentContainer","getShadowRoot","getShadowHost","getOriginalEventTarget","event","el","isOpenShadowHost","composedPath","inBody","doc","body$1","getBody$1","ancestors$4","children$1","descendants$1","result","ancestors$3","descendants","ClosestOrAncestor","is","ancestor","ancestor$2","closest$2","test","child$1","descendant$1","descend","child","res","ancestor$1","descendant","closest$1","lhs","rhs","left","cat","push","bindFrom","someIf","removeFromStart","str","numChars","checkRange","substr","start","removeLeading","prefix","startsWith","contains","end","idx","endsWith","suffix","trim","s","isNotEmpty","toFloat","isSupported","internalSet","property","internalRemove","set$1","setAll","css","get$a","getUnsafeProperty","getRaw$2","raw","remove$5","copy$1","source","target","sourceDom","targetDom","getAttrValue","cell","fallback","getSpan","hasColspan","cellOrCol","hasRowspan","getCssValue","minWidth","minHeight","firstLayer","filterFirstLayer","lookup","tags","isRootOrUpperTable","elm","cells$1","columns$1","columnGroups","columnGroup","table","rows$1","fromRowsOrColGroups","elems","getSection","getParentSection","group","fromTable$1","fromPastedRows","cached","called","DeviceType","os","browser","userAgent","mediaMatch","isiPad","isiPhone","isMobile","isTouch","isTablet","isPhone","iOSwebview","isDesktop","firstMatch","regexes","find","agent","nu$2","detect$5","versionRegexes","cleanedAgent","unknown$2","major","minor","Version","detectBrowser$1","browsers","userAgentData","uaBrand","lcBrand","info","detect$4","candidates","candidate","detectBrowser","version","detectOs","oses","normalVersionRegex","checkContains","uastring","PlatformInfo","edge","chromium","ie","opera","firefox","safari","unknown$1","nu$1","current","isBrowser","Browser","windows","ios","android","linux","macos","solaris","freebsd","chromeos","unknown","isOS","OperatingSystem","PlatformDetection","userAgentDataOpt","deviceType","query","platform","detect$2","Dimension","getOffset","set","h","get","getOuter","aggregate","properties","val","cumulativeInclusions","toNumber","px","getProp","calcContentBoxSize","size","upper","lower","paddingUpper","paddingLower","borderUpper","borderLower","getCalculatedWidth","boxSizing","width","getHeight$1","getWidth","getInnerWidth","api$2","get$9","getOuter$2","getInner","getRuntime$1","addCells","gridRow","existingCells","before","after","newCells","setCells","addCell","mutateCell","mapCells","getCell","getCellElement","cellLength","extractGridDetails","clone","cloneRow","cloneCell","LOCKED_COL_ATTR","getLockedColumnsFromTable","lockedColStr","lockedCols","getLockedColumnsFromGrid","locked","lockedArr","_val","getAt","warehouse","findItem","item","filtered","filterItems","generateColumns","rowData","columnsGroup","columnIndex","colIndex","generate$2","list","access","lockedColumns","maxRows","maxColumns","rowCount","colgroupRows","currentRow","rowCell","occupiedColumnPosition","occupiedRowPosition","rowPosition","columnPosition","newpos","colgroups","Warehouse","w","isValidCell","cols","rowsArr","col","decide","getBlock","isValid","getFallback","inBlock","c","deduce","rest","aa","next","n","extras","onDirection","isLtr","isRtl","getDirection","api$1","get$8","getOuter$1","getRuntime","top","SugarPosition","boxPosition","box","firstDefinedOrZero","absolute","body","win","scrollTop","scrollLeft","clientTop","clientLeft","viewport","rowInfo","colInfo","rtlEdge","ltrEdge","getLeftEdge","getRightEdge","getTop$1","getTopEdge","getBottomEdge","findPositions","getInnerEdge","getOuterEdge","array","lines","cellOption","lastLine","negate","step","height","optElements","detect$1","amount","units","pattern","decimalDigits","exponentPart","dot","opt","input","float","isUnit","unit","accepted","check","parse","unitRaw","rPercentageBasedSizeRegex","rPixelBasedSizeRegex","isCol$2","isRow$2","getPercentSize","outerGetter","innerGetter","relativeParent","setPixelWidth","setPercentageWidth","setHeight","removeHeight","getHeightValue","convert","number","getter","setter","newSize","total","normalizePixelSize","getTotalHeight","get$7","span","getRaw$1","prop","getRawWidth$1","getRawHeight$1","getPercentageWidth","getPixelWidth$1","getHeight","getGenericWidth","setGenericWidth","getPixelTableWidth","getPixelTableHeight","getPercentTableWidth","isPercentSizing$1","isPixelSizing$1","isNoneSizing$1","percentageBasedSizeRegex","isCol$1","getRawW","getRawH","justCols","isValidColumn","supportsColWidths","getDimension","cellOpt","backups","filter","getWidthFrom","columnCells","pos","colFilter","getDeduced","deduced","d","getRawWidths","getPercentageWidths","tableSize","cellWidth","getPixelWidths","getHeightFrom","rowCells","getPixelHeights","getRawHeights","widthLookup","noneSize","zero","percentageSize","getFloatWidth","delta","_delta","currentWidth","change","newWidth","pixelSize","chooseSize","TableSize","statsStruct","minRow","minCol","maxRow","maxCol","allCells","selectedCells","findSelectedStats","house","isSelected","totalColumns","endRow","endCol","makeCell","seenSelected","rowIndex","td","fillInGaps","stats","totalRows","j","clean","replica","widthDelta","emptyRows","getTableWidthDelta","colWidths","allColsWidth","extract$1","selectedSelector","replicaHouse","replicaStats","unselectedCells","nbsp","api","getOption","get$6","getEnd","isTextNodeWithCursorPosition","isContentEditableFalse","elementsWithCursorPosition","isCursorPosition","first","last$1","descendantRtl","transferableAttributes","createCell","createCol","createColgroup","createRow$1","replace$1","pasteReplace","cloneFormats","oldCell","newCell","formats","firstText","formatSelector","last","clonedFormat","cloneAppropriateAttributes","validAttributes","attributeName","attribute","cellOperations","mutate","formatsToClone","cloneCss","prev","lastNode","paste$1","fromHtml","fromDom","nodes","option","editor","defaultWidth","getPixelForcedWidth","parentBlock","determineDefaultTableStyles","defaultStyles","isTableResponsiveForced","shouldStyleWithCss","isTablePixelsForced","__spreadProps","__spreadValues","determineDefaultTableAttributes","defaultAttributes","register","registerOption","valid","getTableCloneElements","hasTableObjectResizing","objectResizing","getTableHeaderType","getTableColumnResizingBehaviour","isPreserveTableColumnResizing","isResizeTableColumnResizing","getTableSizingMode","isTablePercentagesForced","hasTableResizeBars","shouldMergeContentOnPaste","getTableDefaultAttributes","options","getTableDefaultStyles","tableUseColumnGroup","fixedContainerSelector","fixedToolbarContainerTarget","fixedContainerTarget","useFixedContainer","getUiMode","isSplitUiMode","closest","isEditable$1","assumeEditable","editable","getRaw","getBody","getIsRoot","removeDataStyle","removeStyleAttribute","getSelectionStart","getPixelWidth","getPixelHeight","getRawValue","getRawWidth","getRawHeight","isPercentage$1","isPixel","isInEditableContext$1","inSelection","leftEdge","rightEdge","topEdge","bottomEdge","isWithin","isRectangular","isRect","detailIsWithin","getBounds","detailA","detailB","getAnyBox","startCell","finishCell","startCoords","finishCoords","sc","fc","getBox$1","moveBy$1","intercepts$1","finish","inside","parentCell","innerCell","isContainedBy","c1","c2","moveBy","deltaRow","deltaColumn","getWarehouse","intercepts","nestedIntercepts","firstTable","lastTable","optStartCell","optLastCell","lastCell","getBox","TagBoundaries","DomUniverse","document","isBoundary","isEmptyTag","isNonEditable","comparePosition","other","copyAttributesTo","destination","as","isSpecial","getLanguage","universe","look","tail","oneAll","unsafeOne","commonElement","eq","ancestors$2","ps1","ps2","prune","ind","pruned1","pruned2","shared","sharedOne$1","ancestors$1","universe$3","sharedOne","_universe","ancestors","lookupTable","container","identify","rootTable","startTable","finishTable","ancestorCells","lca","lcaTable","finishAncestorCells","startAncestorCells","retrieve$1","sels","getLast","boxes","lastSelectedSelector","getEdges","firstSelectedSelector","expandTo","identified","shiftSelection","retrieve","retrieveBox","edges","sectionSelector","firstAncestor","lastAncestor","fA","lA","selection","unmergable","hasSpan","hasRowOrColSpan","mergable","ephemera","strSelected","strSelectedSelector","strAttributeSelector","strFirstSelected","strFirstSelectedSelector","strLastSelected","strLastSelectedSelector","attributeSelector","forMenu","paste","clipboard","generators","pasteRows","_cell","getSelectionCellFallback","getSelectionFromSelector","initCell","cellName","getSelectionCellOrCaption","getSelectionCell","getCellsFromSelection","getCellsFromFakeSelection","extractSelected","serializeElements","getTextContent","replicaElements","offscreenDiv","root","textContent","registerEvents","actions","multiCellContext","content","isTable","targets","point","offset","scan$1","direction","toEnd","freefallRtl$2","freefallRtl$1","universe$2","freefallRtl","halve","main","surround","sizes","startIndex","endIndex","results","clampDeltaHelper","minCellSize","diff","clampNegativeDelta","clampDelta","resizeTable","calcFixedDeltas","clampedDelta","calcRelativeDeltas","ratio","newThis","calcLeftEdgeDeltas","isRelative","resizer","_prev","totalWidth","pixelDelta","newSizes","preserveTable","isLastColumn","maxDelta","_index","_minCellSize","_totalWidth","_pixelDelta","_isRelative","getGridSize","isHeaderCell","isHeaderCells","getRowHeaderType","isHeaderRow","getRowType","findCommonCellType","headerCells","findCommonRowType","rowTypes","hasHeader","hasFooter","hasBody","findTableRowHeaderType","rowType","transformCell","substitution","transformRow","fixedCell","sectionCells","TableSection","setIfNot","ignore","insert$1","generateSection","sectionName","newSection","render$1","newRows","syncRows","gridSection","tr","syncColGroup","colGroup","renderSection","sectionElems","removeSection","renderOrRemoveSection","headSection","bodySection","footSection","columnGroupsSection","clonedCell","getColumn","getRow","findDiff","comp","subgrid","isColRow","toDetails","seen","updateSeen","details","toGrid","colgroupCols","rowDetail","fromWarehouse","toDetailList","findInWarehouse","extractCells","cell$1","lc","run","operation","extract","adjustment","postAction","genWrappers","behaviours","tableSection","model","out","newElements","tableSizing","resizing","onPaste","onPasteByEditor","onMergable","_warehouse","onUnmergable","onCells","onUnlockedCells","isUnlockedTableCell","allUnlocked","onUnlockedMergable","mergeable","onUnlockedUnmergable","merge$2","unmerge","currentCell","currentCellElm","isToReplace","uniqueCells","splitCols","prevCell","substitute","splitRows","rowPrevCells","sub","value$1","applyHelper","constHelper","outputHelper","output","_onError","onValue","Result","error","onError","_onValue","optional","err","measure","startAddress","gridA","gridB","rowRemainder","colRemainder","colRequired","rowRequired","measureWidth","colLengthA","colLengthB","measureHeight","rowLengthA","rowLengthB","generateElements","generator","rowFill","exampleRow","colFill","newChildren","lockedColFill","colNum","newChild","tailor","fillCols","fillRows","gridWidth","isLastColLocked","modifiedCols","newLockedColumns","isSpanning","matching","mergeTables","gridBRows","mergeHeight","mergeWidth","lockedColumnObj","skippedCol","gridBColIndex","newCellElm","getValidStartAddress","currentStartAddress","gridColLength","adjustedRowAddress","possibleColAddresses","validColAddress","getLockedColumnsWithinBounds","merge$1","validStartAddress","lockedColumnsWithinBounds","fittedGrid","newLockedColumnsWithinBounds","insertCols","fittedNewGrid","secondDelta","fittedOldGrid","insertRows","oldCols","oldRows","newLocked","secondDiff","fittedGridB","insertRowAt","example","newRow","ex","getElementFor","withinSpan","insertColumnAt","deleteColumnsAt","deleteRowsAt","notInStartRow","notInStartColumn","isDuplicatedCell","rowReplacerPredicate","targetRow","columnHeaders","_rowIndex","columnReplacePredicate","targetColumn","rowHeaders","_colIndex","determineScope","applyScope","newScope","isInHeader","getScope","rowScopeGenerator","columnScopeGenerator","replace","replaceIn","replacer","genScope","shouldReplace","isTarget","getColumnCells","getRowCells","replaceColumns","indexes","shouldReplaceCell","scopeGenerator","replaceRows","newGrid","replaceCells","targetCells","Adt","cases","constructors","adt","acase","count","keys$1","argLength","foldArgs","branches","branchKeys","reqKey","label","adt$6","ColumnContext","neighbours","determine","resize","context","onOnly","onLeft","onMiddle","onRight","measures","recalculateWidthForCells","widths","recalculateWidthForColumns","groups","matchRowHeight","heights","sumUp","recalculate","recalculateAndApply","adjustWidth","clampedStep","deltas","newWidths","dx","adjustHeight","newHeights","dy","newRowSizes","adjustAndRedistributeWidths$1","_table","resizeBehaviour","tablePixelWidth","adjustWidthTo","_info","uniqueColumns","currentDetail","isCol","isColgroup","isRow$1","elementToData","modification","toData","nuCell","data","nuRow","add","recent","transform$1","makeNew","getScopeAttribute","Generators","getScopeProperty","stringAttributes","baseScope","scopes","blockList","isList$1","tagName","isBlock$1","isEmptyTag$1","universe$1","isBlock","isList","merge","isBr","advancedBr","isListItem","siblingIsBlock","rightSibling","markCell","rightSiblingIsBlock","contents","isEditable","outcome","cursor","findEditableCursorPosition","elementFromGrid","_b","bundle","cursorElement","uniqueRows","opInsertRowsBefore","targetIndex","opInsertRowsAfter","newG","opInsertColumnsBefore","extractDetail","opInsertColumnsAfter","opMakeColumnsHeader","initialGrid","columnIndexes","opMakeCellsHeader","opUnmakeColumnsHeader","opUnmakeCellsHeader","makeRowsSection","rowIndexes","opMakeRowsHeader","opMakeRowsBody","opMakeRowsFooter","opEraseColumns","_comparator","_genWrappers","maxColIndex","opEraseRows","maxRowIndex","opMergeCells","opUnmergeCells","opPasteCells","pasteDetails","wh","gridifyRows","opPasteColsBefore","mergedGrid","opPasteColsAfter","opPasteRowsBefore","opPasteRowsAfter","opGetColumnsType","lastSelectedCell","minColRange","maxColRange","selectedColumnCells","opGetCellsType","opGetRowsType","minRowRange","maxRowRange","selectedRows","adjustAndRedistributeWidths","firstColumnIsLocked","lastColumnIsLocked","getColumnsWidth","uniqueCols","colWidth","insertColumnsExtractor","eraseColumnsExtractor","pasteColumnsExtractor","headerCellGenerator","bodyCellGenerator","insertRowsBefore","insertRowsAfter","insertColumnsBefore","insertColumnsAfter","eraseColumns","eraseRows","makeColumnsHeader","unmakeColumnsHeader","makeRowsHeader","makeRowsBody","makeRowsFooter","makeCellsHeader","unmakeCellsHeader","mergeCells","unmergeCells","pasteCells","pasteColsBefore","pasteColsAfter","pasteRowsBefore","pasteRowsAfter","getColumnsType","getCellsType","getRowsType","fireNewRow","fireNewCell","fireTableModified","fireTableSelectionChange","otherCells","fireTableSelectionClear","fireObjectResizeStart","origin","fireObjectResized","styleModified","structureModified","styleAndStructureModified","get$5","TableActions","resizeHandler","cellSelectionHandler","isTableBody","lastRowGuard","lastColumnGuard","colMutationOp","getTableSectionType","setSelectionFromAction","firstCell","rng","des","execute","guard","effect","noEvents","range","deleteRow","deleteColumn","insertRowsBefore$1","insertRowsAfter$1","insertColumnsBefore$1","insertColumnsAfter$1","mergeCells$1","unmergeCells$1","pasteColsBefore$1","pasteColsAfter$1","pasteRowsBefore$1","pasteRowsAfter$1","pasteCells$1","makeCellsHeader$1","unmakeCellsHeader$1","makeColumnsHeader$1","unmakeColumnsHeader$1","makeRowsHeader$1","makeRowsBody$1","makeRowsFooter$1","constrainSpan","currentColspan","isColInRange","generateColGroup","colsToCopy","copiedCols","clonedCol","fakeColgroup","generateRows","cellsToCopy","copiedCells","fakeTR","copyCols","fakeColGroups","fakeRows","copyRows","slicedGrid","filteredGrid","slicedDetails","adt$5","validateFor","rawAmount","from","Size","redistributeToPercent","pc","redistributeToPx","newTotalWidth","scale","redistributeEmpty","newWidthType","pixels","redistributeValues","_pc","redistribute$1","newType","floats","normalize","sum","roundDown","floored","add$3","scan","validate","redistributeToW","redistributeToColumns","redistributeToH","getUnit","redistribute","optWidth","optHeight","widthUnit","oldWidths","nuWidths","newHeight","totalHeight","oldHeights","nuHeights","isPercentSizing","isPixelSizing","isNoneSizing","cleanupLegacyAttributes","convertToPercentSizeWidth","convertToPixelSizeWidth","convertToPixelSizeHeight","convertToNoneSizeWidth","rowElements","DefaultRenderOptions","tableHeaderCell","tableCell","tableColumn","createRow","createGroupRow","createRows","render","headerType","renderOpts","rowHeadersGoInThead","actualRowHeaders","thead","theadRows","tbody","numRows","tbodyRows","get$4","placeCaretInCell","selectFirstCellInTable","tableElm","fireEvents","isPercentage","insert","colHeaders","insertTable","checkInput","headerRows","headerColumns","global","tableTypeBase","tableTypeRow","tableTypeColumn","setData","items","fakeClipboardItem","getData","clearData","setRows","rowsOpt","clearRows","getRows","setColumns","columnsOpt","clearColumns","getColumns","getSelectionStartCellOrCaption","getSelectionStartCell","registerCommands","eraseTable","cellOrCaption","setSizingMode","sizing","getTableFromCell","performActionOnSelection","action","toggleTableClass","_ui","clazz","toggleTableCellClass","formatterAction","toggleCaption","caption","postExecute","_data","actOnSelection","copyRowSelection","copyColSelection","pasteOnSelection","clonedRows","actOnType","getAction","func","getFormatName","style","validArgs","formatName","registerQueryCommands","lookupOnSelection","adt$4","cata$1","subject","onBefore","onOn","onAfter","getStart$1","situ","before$2","on","after$3","Situ","Response","kill","selectNode","selectNodeContents","selectNodeContentsUsing","setStart","setFinish","relativeToNative","startSitu","finishSitu","exactToNative","soffset","foffset","toRect","rect","getFirstRect$1","rects","adt$3","fromRange","getRanges","doDiagnose","ranges","rev","diagnose","asLtrRange","SimRange","Situs","convertToRange","makeSitus","sync","selectRange","detect","cellSel","update","selected","annotations","updateSelection","newSels","traverse","mode","backtrack","_direction","transition","sidestep","advance","successors","go","rules","succ","rule","Walkers","hone","right","isLeaf","before$1","seekLeft$1","after$2","seekRight$1","after$1","seekLeft","seekRight","adt$2","isOverlapping","bridge","beforeBounds","afterBounds","isRow","verify","beforeOffset","afterOffset","failure","afterCell","beforeCell","_sharedRow","cata","onSuccess","onFailedUp","onFailedDown","BeforeAfter","inParent","indexInParent","indexOf","gatherer","cand","gather","handleBr","findBr","handleParent","br","adjacent","tryBr","tgt","process","analysis","_message","moveDown","caret","moveUp","translate","xDelta","yDelta","getTop","getBottom","getPartialBox","toCaret","getElemBox","getBoxAt","getEntireBox","JUMP_SIZE","NUM_RETRIES","adt$1","isOutside","inOutsideBlock","adjustDown","guessBox","lowerCaret","upMovement","higherCaret","downMovement","isAtTable","adjustForTable","movement","numRetries","adjustTil","guess","newCaret","checkScroll","adjusted","retry","moved","Retries","MAX_RETRIES","findSpot","sel","brNeighbour","tryCursor","situs","tryAgain","move","tryAt","handle$1","spot","inSameTable","simulate","initial","anchor","navigate","precheck","firstUpCheck","lastOffset","lastDownCheck","select","Cell","singleton","doRevoke","revoke","findCell","isInEditableContext","MouseSelection","clearstate","applySelection","singleCell","isNonEditableCell","isCellClosestContentEditable","down","up","isKey","keycode","isUp","isDown","isNavigation","ltr","rtl","get$3","_DOC","by","exactFromRange","simRange","getStart","_finishSitu","_soffset","_finish","_foffset","domRange","relative","exact","getWin","SimSelection","caretPositionFromPoint","caretRangeFromPoint","availableSearch","fromPoint","beforeSpecial","name$1","preprocessRelative","preprocessExact","makeRange","same","getNativeSelection","doSetNativeRange","doSetRange","setLegacyRtlRange","setRangeFromRelative","setExact","setRelative","readRange","firstRng","lastRng","doGetExact","focus","setToElement","selectNodeContents$1","getExact","get$2","getFirstRect","getAtPoint","clear","WindowBridge","exactAdt","toStart","rc","mouse","handlers","isEditableNode","isEditableSelection","keyboard","clearToNavigate","realEvent","shiftKey","update$1","attempts","_","external","read","add$2","id","remove$4","supports","get$1","add$1","remove$3","cleanClass","remove$2","has","remove$1","classes","addClass","removeClasses","SelectionAnnotation","addSelectionClass","removeSelectionClasses","onSelection","onClear","removeSelectionAttributes","addSelectionAttribute","clearBeforeUpdate","fold","onMultiple","onSingle","none","multiple","single","Selections","lazyRoot","getUpOrLeftCells","upGrid","upDetails","slicedCells","getDownOrRightCells","downGrid","downDetails","getOtherCells","upOrLeftCells","downOrRightCells","mkEvent","prevent","fromRawEvent$1","rawEvent","handle","handler","useCapture","wrapped","unbind","bind$1","bind","fromRawEvent","hasInternalTarget","TableCellSelectionHandler","cellSelection","cellsDom","otherCellsDom","cellArr","_e","syncSelection","mouseHandlers","keyHandlers","external$1","hasShiftKey","handleResponse","response","ns","keyup","wrappedEvent","keydown","isLeftMouse","isLeftButtonPressed","dragStart","mouseDown","mouseOver","mouseUp","doubleTap","lastTarget","lastTimeStamp","lT","lTS","Event","fields","create$1","typeDefs","registry","trigger","rate","timer","cancel","sort","reqMessage","required","unsuppMessage","unsupported","validateStrArr","invalidTypeMessage","incorrect","checkDupes","everything","sorted","handleUnsupported","baseWith","req","invalidKeys","handleExact","exactly","DragMode","DragSink","DragApi","InDrag","previous","reset","old","onEvent","events","NoDrag","Movement","noDragState","inDragState","dragState","setup","mutation","settings","active","drop","sink","throttledDrop","mousemove","off","isActive","runIfActive","destroy","namespace","dashNamespace","resolve$1","Blocker","MouseDrag","dragApi","blocker","mdown","mup","mmove","mout","transform","resolve","Mutation","BarMutation","delegate","bar","resizeBar","resizeRowBar","resizeColBar","BAR_THICKNESS","resizableRows","isResizable","resizableColumns","resizableCols","wire","drawBar","positions","create","cpOption","cp","refreshCol","colPositions","position","tableHeight","colBar","refreshRow","rowPositions","tableWidth","rowBar","refreshGrid","warhouse","resizableRowBars","resizableRowPositions","_pos","barIndex","resizableColBars","resizableColPositions","refresh","each","bars","hide","show","isRowBar","isColBar","resizeBarDragging","BarManager","hoverTable","getResizer","_dataRow","_dataCol","currentCol","getDelta","dir","newX","oldX","mousedown","findClosestEditableTable","mouseover","destroy$1","refresh$1","tbl","TableResize","lazySizing","hdirection","vdirection","manager","_event","random","unique","generate","time","random$1","ResizeWire","chrome","dragContainer","createContainer","getInlineResizeWire","isSplitUiMode$1","editorBody","remove","barResizerPrefix","syncTableCellPixels","computedWidth","isCornerResize","getCornerLocation","TableResizeHandler","selectionRng","tableResize","resizeWire","startW","startRawW","startH","startRawH","lazyResizingBehaviour","getNumColumns","getNumRows","afterCornerResize","location","isRightEdgeResize","isNorthEdgeResize","percentW","targetPercentW","sz","rawWire","rawTable","targetElm","showResizeBars","hideResizeBars","setupTable","DomModel","Model"],"mappings":"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","x_google_ignoreList":[0]}