docier-web 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1006) hide show
  1. package/COMMERCIAL.md +45 -0
  2. package/LICENSE +50 -0
  3. package/LICENSE.AGPL-3.0 +661 -0
  4. package/README.md +239 -0
  5. package/dist/api/commands.d.ts +46 -0
  6. package/dist/api/commands.d.ts.map +1 -0
  7. package/dist/api/commands.js +274 -0
  8. package/dist/api/commands.js.map +1 -0
  9. package/dist/api/config.d.ts +14 -0
  10. package/dist/api/config.d.ts.map +1 -0
  11. package/dist/api/config.js +248 -0
  12. package/dist/api/config.js.map +1 -0
  13. package/dist/api/constants.d.ts +12 -0
  14. package/dist/api/constants.d.ts.map +1 -0
  15. package/dist/api/constants.js +45 -0
  16. package/dist/api/constants.js.map +1 -0
  17. package/dist/api/editor.d.ts +43 -0
  18. package/dist/api/editor.d.ts.map +1 -0
  19. package/dist/api/editor.js +983 -0
  20. package/dist/api/editor.js.map +1 -0
  21. package/dist/api/errors.d.ts +25 -0
  22. package/dist/api/errors.d.ts.map +1 -0
  23. package/dist/api/errors.js +106 -0
  24. package/dist/api/errors.js.map +1 -0
  25. package/dist/api/events.d.ts +25 -0
  26. package/dist/api/events.d.ts.map +1 -0
  27. package/dist/api/events.js +182 -0
  28. package/dist/api/events.js.map +1 -0
  29. package/dist/api/history.d.ts +40 -0
  30. package/dist/api/history.d.ts.map +1 -0
  31. package/dist/api/history.js +91 -0
  32. package/dist/api/history.js.map +1 -0
  33. package/dist/api/index.d.ts +15 -0
  34. package/dist/api/index.d.ts.map +1 -0
  35. package/dist/api/index.js +10 -0
  36. package/dist/api/index.js.map +1 -0
  37. package/dist/api/localize.d.ts +12 -0
  38. package/dist/api/localize.d.ts.map +1 -0
  39. package/dist/api/localize.js +45 -0
  40. package/dist/api/localize.js.map +1 -0
  41. package/dist/api/types.d.ts +453 -0
  42. package/dist/api/types.d.ts.map +1 -0
  43. package/dist/api/types.js +2 -0
  44. package/dist/api/types.js.map +1 -0
  45. package/dist/edit/actions.d.ts +52 -0
  46. package/dist/edit/actions.d.ts.map +1 -0
  47. package/dist/edit/actions.js +319 -0
  48. package/dist/edit/actions.js.map +1 -0
  49. package/dist/edit/areas/comment.d.ts +20 -0
  50. package/dist/edit/areas/comment.d.ts.map +1 -0
  51. package/dist/edit/areas/comment.js +199 -0
  52. package/dist/edit/areas/comment.js.map +1 -0
  53. package/dist/edit/areas/content.d.ts +12 -0
  54. package/dist/edit/areas/content.d.ts.map +1 -0
  55. package/dist/edit/areas/content.js +78 -0
  56. package/dist/edit/areas/content.js.map +1 -0
  57. package/dist/edit/areas/index.d.ts +19 -0
  58. package/dist/edit/areas/index.d.ts.map +1 -0
  59. package/dist/edit/areas/index.js +42 -0
  60. package/dist/edit/areas/index.js.map +1 -0
  61. package/dist/edit/areas/insert.d.ts +42 -0
  62. package/dist/edit/areas/insert.d.ts.map +1 -0
  63. package/dist/edit/areas/insert.js +265 -0
  64. package/dist/edit/areas/insert.js.map +1 -0
  65. package/dist/edit/areas/note.d.ts +12 -0
  66. package/dist/edit/areas/note.d.ts.map +1 -0
  67. package/dist/edit/areas/note.js +122 -0
  68. package/dist/edit/areas/note.js.map +1 -0
  69. package/dist/edit/areas/numbering.d.ts +14 -0
  70. package/dist/edit/areas/numbering.d.ts.map +1 -0
  71. package/dist/edit/areas/numbering.js +119 -0
  72. package/dist/edit/areas/numbering.js.map +1 -0
  73. package/dist/edit/areas/object.d.ts +24 -0
  74. package/dist/edit/areas/object.d.ts.map +1 -0
  75. package/dist/edit/areas/object.js +274 -0
  76. package/dist/edit/areas/object.js.map +1 -0
  77. package/dist/edit/areas/page.d.ts +33 -0
  78. package/dist/edit/areas/page.d.ts.map +1 -0
  79. package/dist/edit/areas/page.js +170 -0
  80. package/dist/edit/areas/page.js.map +1 -0
  81. package/dist/edit/areas/paragraph.d.ts +27 -0
  82. package/dist/edit/areas/paragraph.d.ts.map +1 -0
  83. package/dist/edit/areas/paragraph.js +205 -0
  84. package/dist/edit/areas/paragraph.js.map +1 -0
  85. package/dist/edit/areas/proof.d.ts +7 -0
  86. package/dist/edit/areas/proof.d.ts.map +1 -0
  87. package/dist/edit/areas/proof.js +71 -0
  88. package/dist/edit/areas/proof.js.map +1 -0
  89. package/dist/edit/areas/region.d.ts +4 -0
  90. package/dist/edit/areas/region.d.ts.map +1 -0
  91. package/dist/edit/areas/region.js +139 -0
  92. package/dist/edit/areas/region.js.map +1 -0
  93. package/dist/edit/areas/style.d.ts +7 -0
  94. package/dist/edit/areas/style.d.ts.map +1 -0
  95. package/dist/edit/areas/style.js +33 -0
  96. package/dist/edit/areas/style.js.map +1 -0
  97. package/dist/edit/areas/support.d.ts +42 -0
  98. package/dist/edit/areas/support.d.ts.map +1 -0
  99. package/dist/edit/areas/support.js +102 -0
  100. package/dist/edit/areas/support.js.map +1 -0
  101. package/dist/edit/areas/table.d.ts +55 -0
  102. package/dist/edit/areas/table.d.ts.map +1 -0
  103. package/dist/edit/areas/table.js +910 -0
  104. package/dist/edit/areas/table.js.map +1 -0
  105. package/dist/edit/areas/unsupported.d.ts +5 -0
  106. package/dist/edit/areas/unsupported.d.ts.map +1 -0
  107. package/dist/edit/areas/unsupported.js +318 -0
  108. package/dist/edit/areas/unsupported.js.map +1 -0
  109. package/dist/edit/caret.d.ts +44 -0
  110. package/dist/edit/caret.d.ts.map +1 -0
  111. package/dist/edit/caret.js +136 -0
  112. package/dist/edit/caret.js.map +1 -0
  113. package/dist/edit/clipboard/commands.d.ts +29 -0
  114. package/dist/edit/clipboard/commands.d.ts.map +1 -0
  115. package/dist/edit/clipboard/commands.js +289 -0
  116. package/dist/edit/clipboard/commands.js.map +1 -0
  117. package/dist/edit/clipboard/fragment.d.ts +19 -0
  118. package/dist/edit/clipboard/fragment.d.ts.map +1 -0
  119. package/dist/edit/clipboard/fragment.js +365 -0
  120. package/dist/edit/clipboard/fragment.js.map +1 -0
  121. package/dist/edit/clipboard/html-export.d.ts +6 -0
  122. package/dist/edit/clipboard/html-export.d.ts.map +1 -0
  123. package/dist/edit/clipboard/html-export.js +167 -0
  124. package/dist/edit/clipboard/html-export.js.map +1 -0
  125. package/dist/edit/clipboard/html-import.d.ts +16 -0
  126. package/dist/edit/clipboard/html-import.d.ts.map +1 -0
  127. package/dist/edit/clipboard/html-import.js +744 -0
  128. package/dist/edit/clipboard/html-import.js.map +1 -0
  129. package/dist/edit/clipboard/index.d.ts +15 -0
  130. package/dist/edit/clipboard/index.d.ts.map +1 -0
  131. package/dist/edit/clipboard/index.js +9 -0
  132. package/dist/edit/clipboard/index.js.map +1 -0
  133. package/dist/edit/clipboard/insert.d.ts +18 -0
  134. package/dist/edit/clipboard/insert.d.ts.map +1 -0
  135. package/dist/edit/clipboard/insert.js +282 -0
  136. package/dist/edit/clipboard/insert.js.map +1 -0
  137. package/dist/edit/clipboard/text.d.ts +12 -0
  138. package/dist/edit/clipboard/text.d.ts.map +1 -0
  139. package/dist/edit/clipboard/text.js +102 -0
  140. package/dist/edit/clipboard/text.js.map +1 -0
  141. package/dist/edit/clipboard/transfer.d.ts +16 -0
  142. package/dist/edit/clipboard/transfer.d.ts.map +1 -0
  143. package/dist/edit/clipboard/transfer.js +112 -0
  144. package/dist/edit/clipboard/transfer.js.map +1 -0
  145. package/dist/edit/clipboard/types.d.ts +62 -0
  146. package/dist/edit/clipboard/types.d.ts.map +1 -0
  147. package/dist/edit/clipboard/types.js +40 -0
  148. package/dist/edit/clipboard/types.js.map +1 -0
  149. package/dist/edit/commands.d.ts +27 -0
  150. package/dist/edit/commands.d.ts.map +1 -0
  151. package/dist/edit/commands.js +641 -0
  152. package/dist/edit/commands.js.map +1 -0
  153. package/dist/edit/containers.d.ts +17 -0
  154. package/dist/edit/containers.d.ts.map +1 -0
  155. package/dist/edit/containers.js +108 -0
  156. package/dist/edit/containers.js.map +1 -0
  157. package/dist/edit/index.d.ts +33 -0
  158. package/dist/edit/index.d.ts.map +1 -0
  159. package/dist/edit/index.js +18 -0
  160. package/dist/edit/index.js.map +1 -0
  161. package/dist/edit/input.d.ts +53 -0
  162. package/dist/edit/input.d.ts.map +1 -0
  163. package/dist/edit/input.js +1035 -0
  164. package/dist/edit/input.js.map +1 -0
  165. package/dist/edit/inspect.d.ts +39 -0
  166. package/dist/edit/inspect.d.ts.map +1 -0
  167. package/dist/edit/inspect.js +119 -0
  168. package/dist/edit/inspect.js.map +1 -0
  169. package/dist/edit/list.d.ts +33 -0
  170. package/dist/edit/list.d.ts.map +1 -0
  171. package/dist/edit/list.js +399 -0
  172. package/dist/edit/list.js.map +1 -0
  173. package/dist/edit/mutation.d.ts +57 -0
  174. package/dist/edit/mutation.d.ts.map +1 -0
  175. package/dist/edit/mutation.js +468 -0
  176. package/dist/edit/mutation.js.map +1 -0
  177. package/dist/edit/navigation.d.ts +34 -0
  178. package/dist/edit/navigation.d.ts.map +1 -0
  179. package/dist/edit/navigation.js +209 -0
  180. package/dist/edit/navigation.js.map +1 -0
  181. package/dist/edit/object-resize.d.ts +56 -0
  182. package/dist/edit/object-resize.d.ts.map +1 -0
  183. package/dist/edit/object-resize.js +189 -0
  184. package/dist/edit/object-resize.js.map +1 -0
  185. package/dist/edit/objects.d.ts +19 -0
  186. package/dist/edit/objects.d.ts.map +1 -0
  187. package/dist/edit/objects.js +58 -0
  188. package/dist/edit/objects.js.map +1 -0
  189. package/dist/edit/positions.d.ts +63 -0
  190. package/dist/edit/positions.d.ts.map +1 -0
  191. package/dist/edit/positions.js +267 -0
  192. package/dist/edit/positions.js.map +1 -0
  193. package/dist/edit/search.d.ts +19 -0
  194. package/dist/edit/search.d.ts.map +1 -0
  195. package/dist/edit/search.js +65 -0
  196. package/dist/edit/search.js.map +1 -0
  197. package/dist/edit/selection.d.ts +44 -0
  198. package/dist/edit/selection.d.ts.map +1 -0
  199. package/dist/edit/selection.js +126 -0
  200. package/dist/edit/selection.js.map +1 -0
  201. package/dist/edit/session.d.ts +84 -0
  202. package/dist/edit/session.d.ts.map +1 -0
  203. package/dist/edit/session.js +703 -0
  204. package/dist/edit/session.js.map +1 -0
  205. package/dist/edit/tables.d.ts +28 -0
  206. package/dist/edit/tables.d.ts.map +1 -0
  207. package/dist/edit/tables.js +169 -0
  208. package/dist/edit/tables.js.map +1 -0
  209. package/dist/edit/words.d.ts +17 -0
  210. package/dist/edit/words.d.ts.map +1 -0
  211. package/dist/edit/words.js +102 -0
  212. package/dist/edit/words.js.map +1 -0
  213. package/dist/index.d.ts +14 -0
  214. package/dist/index.d.ts.map +1 -0
  215. package/dist/index.js +12 -0
  216. package/dist/index.js.map +1 -0
  217. package/dist/layout/assembly.d.ts +30 -0
  218. package/dist/layout/assembly.d.ts.map +1 -0
  219. package/dist/layout/assembly.js +87 -0
  220. package/dist/layout/assembly.js.map +1 -0
  221. package/dist/layout/atoms.d.ts +46 -0
  222. package/dist/layout/atoms.d.ts.map +1 -0
  223. package/dist/layout/atoms.js +238 -0
  224. package/dist/layout/atoms.js.map +1 -0
  225. package/dist/layout/breaking.d.ts +25 -0
  226. package/dist/layout/breaking.d.ts.map +1 -0
  227. package/dist/layout/breaking.js +112 -0
  228. package/dist/layout/breaking.js.map +1 -0
  229. package/dist/layout/fields.d.ts +22 -0
  230. package/dist/layout/fields.d.ts.map +1 -0
  231. package/dist/layout/fields.js +74 -0
  232. package/dist/layout/fields.js.map +1 -0
  233. package/dist/layout/finalize.d.ts +51 -0
  234. package/dist/layout/finalize.d.ts.map +1 -0
  235. package/dist/layout/finalize.js +282 -0
  236. package/dist/layout/finalize.js.map +1 -0
  237. package/dist/layout/fonts.d.ts +26 -0
  238. package/dist/layout/fonts.d.ts.map +1 -0
  239. package/dist/layout/fonts.js +69 -0
  240. package/dist/layout/fonts.js.map +1 -0
  241. package/dist/layout/format.d.ts +51 -0
  242. package/dist/layout/format.d.ts.map +1 -0
  243. package/dist/layout/format.js +99 -0
  244. package/dist/layout/format.js.map +1 -0
  245. package/dist/layout/freeze.d.ts +2 -0
  246. package/dist/layout/freeze.d.ts.map +1 -0
  247. package/dist/layout/freeze.js +21 -0
  248. package/dist/layout/freeze.js.map +1 -0
  249. package/dist/layout/frozen-map.d.ts +8 -0
  250. package/dist/layout/frozen-map.d.ts.map +1 -0
  251. package/dist/layout/frozen-map.js +21 -0
  252. package/dist/layout/frozen-map.js.map +1 -0
  253. package/dist/layout/hash.d.ts +7 -0
  254. package/dist/layout/hash.d.ts.map +1 -0
  255. package/dist/layout/hash.js +0 -0
  256. package/dist/layout/hash.js.map +1 -0
  257. package/dist/layout/header-footer.d.ts +51 -0
  258. package/dist/layout/header-footer.d.ts.map +1 -0
  259. package/dist/layout/header-footer.js +115 -0
  260. package/dist/layout/header-footer.js.map +1 -0
  261. package/dist/layout/index.d.ts +59 -0
  262. package/dist/layout/index.d.ts.map +1 -0
  263. package/dist/layout/index.js +32 -0
  264. package/dist/layout/index.js.map +1 -0
  265. package/dist/layout/indices.d.ts +20 -0
  266. package/dist/layout/indices.d.ts.map +1 -0
  267. package/dist/layout/indices.js +73 -0
  268. package/dist/layout/indices.js.map +1 -0
  269. package/dist/layout/ingest.d.ts +99 -0
  270. package/dist/layout/ingest.d.ts.map +1 -0
  271. package/dist/layout/ingest.js +338 -0
  272. package/dist/layout/ingest.js.map +1 -0
  273. package/dist/layout/intrinsic.d.ts +20 -0
  274. package/dist/layout/intrinsic.d.ts.map +1 -0
  275. package/dist/layout/intrinsic.js +67 -0
  276. package/dist/layout/intrinsic.js.map +1 -0
  277. package/dist/layout/justify.d.ts +6 -0
  278. package/dist/layout/justify.d.ts.map +1 -0
  279. package/dist/layout/justify.js +49 -0
  280. package/dist/layout/justify.js.map +1 -0
  281. package/dist/layout/line-geometry.d.ts +24 -0
  282. package/dist/layout/line-geometry.d.ts.map +1 -0
  283. package/dist/layout/line-geometry.js +136 -0
  284. package/dist/layout/line-geometry.js.map +1 -0
  285. package/dist/layout/numbering.d.ts +28 -0
  286. package/dist/layout/numbering.d.ts.map +1 -0
  287. package/dist/layout/numbering.js +303 -0
  288. package/dist/layout/numbering.js.map +1 -0
  289. package/dist/layout/objects.d.ts +7 -0
  290. package/dist/layout/objects.d.ts.map +1 -0
  291. package/dist/layout/objects.js +107 -0
  292. package/dist/layout/objects.js.map +1 -0
  293. package/dist/layout/page-geometry.d.ts +7 -0
  294. package/dist/layout/page-geometry.d.ts.map +1 -0
  295. package/dist/layout/page-geometry.js +17 -0
  296. package/dist/layout/page-geometry.js.map +1 -0
  297. package/dist/layout/paginate.d.ts +63 -0
  298. package/dist/layout/paginate.d.ts.map +1 -0
  299. package/dist/layout/paginate.js +354 -0
  300. package/dist/layout/paginate.js.map +1 -0
  301. package/dist/layout/paint.d.ts +10 -0
  302. package/dist/layout/paint.d.ts.map +1 -0
  303. package/dist/layout/paint.js +56 -0
  304. package/dist/layout/paint.js.map +1 -0
  305. package/dist/layout/paragraph-blocks.d.ts +36 -0
  306. package/dist/layout/paragraph-blocks.d.ts.map +1 -0
  307. package/dist/layout/paragraph-blocks.js +244 -0
  308. package/dist/layout/paragraph-blocks.js.map +1 -0
  309. package/dist/layout/pipeline.d.ts +19 -0
  310. package/dist/layout/pipeline.d.ts.map +1 -0
  311. package/dist/layout/pipeline.js +620 -0
  312. package/dist/layout/pipeline.js.map +1 -0
  313. package/dist/layout/sections.d.ts +29 -0
  314. package/dist/layout/sections.d.ts.map +1 -0
  315. package/dist/layout/sections.js +109 -0
  316. package/dist/layout/sections.js.map +1 -0
  317. package/dist/layout/table-borders.d.ts +28 -0
  318. package/dist/layout/table-borders.d.ts.map +1 -0
  319. package/dist/layout/table-borders.js +116 -0
  320. package/dist/layout/table-borders.js.map +1 -0
  321. package/dist/layout/table-columns.d.ts +33 -0
  322. package/dist/layout/table-columns.d.ts.map +1 -0
  323. package/dist/layout/table-columns.js +265 -0
  324. package/dist/layout/table-columns.js.map +1 -0
  325. package/dist/layout/table-flow.d.ts +51 -0
  326. package/dist/layout/table-flow.d.ts.map +1 -0
  327. package/dist/layout/table-flow.js +343 -0
  328. package/dist/layout/table-flow.js.map +1 -0
  329. package/dist/layout/table-ingest.d.ts +90 -0
  330. package/dist/layout/table-ingest.d.ts.map +1 -0
  331. package/dist/layout/table-ingest.js +272 -0
  332. package/dist/layout/table-ingest.js.map +1 -0
  333. package/dist/layout/table-prepare.d.ts +111 -0
  334. package/dist/layout/table-prepare.d.ts.map +1 -0
  335. package/dist/layout/table-prepare.js +485 -0
  336. package/dist/layout/table-prepare.js.map +1 -0
  337. package/dist/layout/types.d.ts +250 -0
  338. package/dist/layout/types.d.ts.map +1 -0
  339. package/dist/layout/types.js +4 -0
  340. package/dist/layout/types.js.map +1 -0
  341. package/dist/measure/deterministic.d.ts +19 -0
  342. package/dist/measure/deterministic.d.ts.map +1 -0
  343. package/dist/measure/deterministic.js +124 -0
  344. package/dist/measure/deterministic.js.map +1 -0
  345. package/dist/measure/font.d.ts +15 -0
  346. package/dist/measure/font.d.ts.map +1 -0
  347. package/dist/measure/font.js +120 -0
  348. package/dist/measure/font.js.map +1 -0
  349. package/dist/measure/index.d.ts +9 -0
  350. package/dist/measure/index.d.ts.map +1 -0
  351. package/dist/measure/index.js +5 -0
  352. package/dist/measure/index.js.map +1 -0
  353. package/dist/measure/measurer.d.ts +25 -0
  354. package/dist/measure/measurer.d.ts.map +1 -0
  355. package/dist/measure/measurer.js +50 -0
  356. package/dist/measure/measurer.js.map +1 -0
  357. package/dist/measure/metrics.d.ts +42 -0
  358. package/dist/measure/metrics.d.ts.map +1 -0
  359. package/dist/measure/metrics.js +48 -0
  360. package/dist/measure/metrics.js.map +1 -0
  361. package/dist/model/blocks/block-node.d.ts +25 -0
  362. package/dist/model/blocks/block-node.d.ts.map +1 -0
  363. package/dist/model/blocks/block-node.js +42 -0
  364. package/dist/model/blocks/block-node.js.map +1 -0
  365. package/dist/model/blocks/content-control.d.ts +77 -0
  366. package/dist/model/blocks/content-control.d.ts.map +1 -0
  367. package/dist/model/blocks/content-control.js +433 -0
  368. package/dist/model/blocks/content-control.js.map +1 -0
  369. package/dist/model/blocks/index.d.ts +9 -0
  370. package/dist/model/blocks/index.d.ts.map +1 -0
  371. package/dist/model/blocks/index.js +5 -0
  372. package/dist/model/blocks/index.js.map +1 -0
  373. package/dist/model/blocks/paragraph.d.ts +48 -0
  374. package/dist/model/blocks/paragraph.d.ts.map +1 -0
  375. package/dist/model/blocks/paragraph.js +217 -0
  376. package/dist/model/blocks/paragraph.js.map +1 -0
  377. package/dist/model/blocks/table.d.ts +86 -0
  378. package/dist/model/blocks/table.d.ts.map +1 -0
  379. package/dist/model/blocks/table.js +414 -0
  380. package/dist/model/blocks/table.js.map +1 -0
  381. package/dist/model/context.d.ts +15 -0
  382. package/dist/model/context.d.ts.map +1 -0
  383. package/dist/model/context.js +26 -0
  384. package/dist/model/context.js.map +1 -0
  385. package/dist/model/diagnostics.d.ts +26 -0
  386. package/dist/model/diagnostics.d.ts.map +1 -0
  387. package/dist/model/diagnostics.js +28 -0
  388. package/dist/model/diagnostics.js.map +1 -0
  389. package/dist/model/document.d.ts +81 -0
  390. package/dist/model/document.d.ts.map +1 -0
  391. package/dist/model/document.js +453 -0
  392. package/dist/model/document.js.map +1 -0
  393. package/dist/model/ids.d.ts +11 -0
  394. package/dist/model/ids.d.ts.map +1 -0
  395. package/dist/model/ids.js +16 -0
  396. package/dist/model/ids.js.map +1 -0
  397. package/dist/model/index.d.ts +22 -0
  398. package/dist/model/index.d.ts.map +1 -0
  399. package/dist/model/index.js +15 -0
  400. package/dist/model/index.js.map +1 -0
  401. package/dist/model/inline/alternate-content.d.ts +51 -0
  402. package/dist/model/inline/alternate-content.d.ts.map +1 -0
  403. package/dist/model/inline/alternate-content.js +73 -0
  404. package/dist/model/inline/alternate-content.js.map +1 -0
  405. package/dist/model/inline/annotation.d.ts +16 -0
  406. package/dist/model/inline/annotation.d.ts.map +1 -0
  407. package/dist/model/inline/annotation.js +47 -0
  408. package/dist/model/inline/annotation.js.map +1 -0
  409. package/dist/model/inline/field.d.ts +34 -0
  410. package/dist/model/inline/field.d.ts.map +1 -0
  411. package/dist/model/inline/field.js +150 -0
  412. package/dist/model/inline/field.js.map +1 -0
  413. package/dist/model/inline/index.d.ts +11 -0
  414. package/dist/model/inline/index.d.ts.map +1 -0
  415. package/dist/model/inline/index.js +6 -0
  416. package/dist/model/inline/index.js.map +1 -0
  417. package/dist/model/inline/nodes.d.ts +147 -0
  418. package/dist/model/inline/nodes.d.ts.map +1 -0
  419. package/dist/model/inline/nodes.js +492 -0
  420. package/dist/model/inline/nodes.js.map +1 -0
  421. package/dist/model/inline/run-content.d.ts +114 -0
  422. package/dist/model/inline/run-content.d.ts.map +1 -0
  423. package/dist/model/inline/run-content.js +368 -0
  424. package/dist/model/inline/run-content.js.map +1 -0
  425. package/dist/model/numbering/abstract-numbering.d.ts +24 -0
  426. package/dist/model/numbering/abstract-numbering.d.ts.map +1 -0
  427. package/dist/model/numbering/abstract-numbering.js +66 -0
  428. package/dist/model/numbering/abstract-numbering.js.map +1 -0
  429. package/dist/model/numbering/index.d.ts +7 -0
  430. package/dist/model/numbering/index.d.ts.map +1 -0
  431. package/dist/model/numbering/index.js +5 -0
  432. package/dist/model/numbering/index.js.map +1 -0
  433. package/dist/model/numbering/instance.d.ts +38 -0
  434. package/dist/model/numbering/instance.d.ts.map +1 -0
  435. package/dist/model/numbering/instance.js +86 -0
  436. package/dist/model/numbering/instance.js.map +1 -0
  437. package/dist/model/numbering/level.d.ts +44 -0
  438. package/dist/model/numbering/level.d.ts.map +1 -0
  439. package/dist/model/numbering/level.js +115 -0
  440. package/dist/model/numbering/level.js.map +1 -0
  441. package/dist/model/numbering/numbering-part.d.ts +32 -0
  442. package/dist/model/numbering/numbering-part.d.ts.map +1 -0
  443. package/dist/model/numbering/numbering-part.js +157 -0
  444. package/dist/model/numbering/numbering-part.js.map +1 -0
  445. package/dist/model/properties/common.d.ts +142 -0
  446. package/dist/model/properties/common.d.ts.map +1 -0
  447. package/dist/model/properties/common.js +377 -0
  448. package/dist/model/properties/common.js.map +1 -0
  449. package/dist/model/properties/index.d.ts +14 -0
  450. package/dist/model/properties/index.d.ts.map +1 -0
  451. package/dist/model/properties/index.js +8 -0
  452. package/dist/model/properties/index.js.map +1 -0
  453. package/dist/model/properties/paragraph-properties.d.ts +113 -0
  454. package/dist/model/properties/paragraph-properties.d.ts.map +1 -0
  455. package/dist/model/properties/paragraph-properties.js +331 -0
  456. package/dist/model/properties/paragraph-properties.js.map +1 -0
  457. package/dist/model/properties/property-keys.d.ts +18 -0
  458. package/dist/model/properties/property-keys.d.ts.map +1 -0
  459. package/dist/model/properties/property-keys.js +166 -0
  460. package/dist/model/properties/property-keys.js.map +1 -0
  461. package/dist/model/properties/property.d.ts +37 -0
  462. package/dist/model/properties/property.d.ts.map +1 -0
  463. package/dist/model/properties/property.js +132 -0
  464. package/dist/model/properties/property.js.map +1 -0
  465. package/dist/model/properties/run-properties.d.ts +74 -0
  466. package/dist/model/properties/run-properties.d.ts.map +1 -0
  467. package/dist/model/properties/run-properties.js +208 -0
  468. package/dist/model/properties/run-properties.js.map +1 -0
  469. package/dist/model/properties/section-properties.d.ts +82 -0
  470. package/dist/model/properties/section-properties.d.ts.map +1 -0
  471. package/dist/model/properties/section-properties.js +250 -0
  472. package/dist/model/properties/section-properties.js.map +1 -0
  473. package/dist/model/properties/table-properties.d.ts +105 -0
  474. package/dist/model/properties/table-properties.d.ts.map +1 -0
  475. package/dist/model/properties/table-properties.js +301 -0
  476. package/dist/model/properties/table-properties.js.map +1 -0
  477. package/dist/model/schema-order.d.ts +15 -0
  478. package/dist/model/schema-order.d.ts.map +1 -0
  479. package/dist/model/schema-order.js +526 -0
  480. package/dist/model/schema-order.js.map +1 -0
  481. package/dist/model/settings.d.ts +46 -0
  482. package/dist/model/settings.d.ts.map +1 -0
  483. package/dist/model/settings.js +159 -0
  484. package/dist/model/settings.js.map +1 -0
  485. package/dist/model/story.d.ts +61 -0
  486. package/dist/model/story.d.ts.map +1 -0
  487. package/dist/model/story.js +159 -0
  488. package/dist/model/story.js.map +1 -0
  489. package/dist/model/styles/cascade.d.ts +120 -0
  490. package/dist/model/styles/cascade.d.ts.map +1 -0
  491. package/dist/model/styles/cascade.js +636 -0
  492. package/dist/model/styles/cascade.js.map +1 -0
  493. package/dist/model/styles/index.d.ts +9 -0
  494. package/dist/model/styles/index.d.ts.map +1 -0
  495. package/dist/model/styles/index.js +5 -0
  496. package/dist/model/styles/index.js.map +1 -0
  497. package/dist/model/styles/resolved.d.ts +112 -0
  498. package/dist/model/styles/resolved.d.ts.map +1 -0
  499. package/dist/model/styles/resolved.js +360 -0
  500. package/dist/model/styles/resolved.js.map +1 -0
  501. package/dist/model/styles/style.d.ts +67 -0
  502. package/dist/model/styles/style.d.ts.map +1 -0
  503. package/dist/model/styles/style.js +281 -0
  504. package/dist/model/styles/style.js.map +1 -0
  505. package/dist/model/styles/styles-part.d.ts +53 -0
  506. package/dist/model/styles/styles-part.d.ts.map +1 -0
  507. package/dist/model/styles/styles-part.js +263 -0
  508. package/dist/model/styles/styles-part.js.map +1 -0
  509. package/dist/model/view.d.ts +18 -0
  510. package/dist/model/view.d.ts.map +1 -0
  511. package/dist/model/view.js +38 -0
  512. package/dist/model/view.js.map +1 -0
  513. package/dist/model/xml.d.ts +23 -0
  514. package/dist/model/xml.d.ts.map +1 -0
  515. package/dist/model/xml.js +87 -0
  516. package/dist/model/xml.js.map +1 -0
  517. package/dist/ooxml/bytes.d.ts +15 -0
  518. package/dist/ooxml/bytes.d.ts.map +1 -0
  519. package/dist/ooxml/bytes.js +92 -0
  520. package/dist/ooxml/bytes.js.map +1 -0
  521. package/dist/ooxml/content-types.d.ts +66 -0
  522. package/dist/ooxml/content-types.d.ts.map +1 -0
  523. package/dist/ooxml/content-types.js +328 -0
  524. package/dist/ooxml/content-types.js.map +1 -0
  525. package/dist/ooxml/drawing.d.ts +35 -0
  526. package/dist/ooxml/drawing.d.ts.map +1 -0
  527. package/dist/ooxml/drawing.js +245 -0
  528. package/dist/ooxml/drawing.js.map +1 -0
  529. package/dist/ooxml/errors.d.ts +21 -0
  530. package/dist/ooxml/errors.d.ts.map +1 -0
  531. package/dist/ooxml/errors.js +21 -0
  532. package/dist/ooxml/errors.js.map +1 -0
  533. package/dist/ooxml/index.d.ts +22 -0
  534. package/dist/ooxml/index.d.ts.map +1 -0
  535. package/dist/ooxml/index.js +14 -0
  536. package/dist/ooxml/index.js.map +1 -0
  537. package/dist/ooxml/namespaces.d.ts +88 -0
  538. package/dist/ooxml/namespaces.d.ts.map +1 -0
  539. package/dist/ooxml/namespaces.js +165 -0
  540. package/dist/ooxml/namespaces.js.map +1 -0
  541. package/dist/ooxml/package.d.ts +117 -0
  542. package/dist/ooxml/package.d.ts.map +1 -0
  543. package/dist/ooxml/package.js +830 -0
  544. package/dist/ooxml/package.js.map +1 -0
  545. package/dist/ooxml/part-kinds.d.ts +41 -0
  546. package/dist/ooxml/part-kinds.d.ts.map +1 -0
  547. package/dist/ooxml/part-kinds.js +540 -0
  548. package/dist/ooxml/part-kinds.js.map +1 -0
  549. package/dist/ooxml/part.d.ts +68 -0
  550. package/dist/ooxml/part.d.ts.map +1 -0
  551. package/dist/ooxml/part.js +180 -0
  552. package/dist/ooxml/part.js.map +1 -0
  553. package/dist/ooxml/relationships.d.ts +91 -0
  554. package/dist/ooxml/relationships.d.ts.map +1 -0
  555. package/dist/ooxml/relationships.js +471 -0
  556. package/dist/ooxml/relationships.js.map +1 -0
  557. package/dist/ooxml/sha256.d.ts +6 -0
  558. package/dist/ooxml/sha256.d.ts.map +1 -0
  559. package/dist/ooxml/sha256.js +107 -0
  560. package/dist/ooxml/sha256.js.map +1 -0
  561. package/dist/ooxml/xml/index.d.ts +8 -0
  562. package/dist/ooxml/xml/index.d.ts.map +1 -0
  563. package/dist/ooxml/xml/index.js +6 -0
  564. package/dist/ooxml/xml/index.js.map +1 -0
  565. package/dist/ooxml/xml/io.d.ts +15 -0
  566. package/dist/ooxml/xml/io.d.ts.map +1 -0
  567. package/dist/ooxml/xml/io.js +122 -0
  568. package/dist/ooxml/xml/io.js.map +1 -0
  569. package/dist/ooxml/xml/nodes.d.ts +97 -0
  570. package/dist/ooxml/xml/nodes.d.ts.map +1 -0
  571. package/dist/ooxml/xml/nodes.js +109 -0
  572. package/dist/ooxml/xml/nodes.js.map +1 -0
  573. package/dist/ooxml/xml/parse.d.ts +7 -0
  574. package/dist/ooxml/xml/parse.d.ts.map +1 -0
  575. package/dist/ooxml/xml/parse.js +529 -0
  576. package/dist/ooxml/xml/parse.js.map +1 -0
  577. package/dist/ooxml/xml/serialize.d.ts +11 -0
  578. package/dist/ooxml/xml/serialize.d.ts.map +1 -0
  579. package/dist/ooxml/xml/serialize.js +94 -0
  580. package/dist/ooxml/xml/serialize.js.map +1 -0
  581. package/dist/ooxml/xml/tree.d.ts +10 -0
  582. package/dist/ooxml/xml/tree.d.ts.map +1 -0
  583. package/dist/ooxml/xml/tree.js +67 -0
  584. package/dist/ooxml/xml/tree.js.map +1 -0
  585. package/dist/ooxml/zip/crc32.d.ts +2 -0
  586. package/dist/ooxml/zip/crc32.d.ts.map +1 -0
  587. package/dist/ooxml/zip/crc32.js +20 -0
  588. package/dist/ooxml/zip/crc32.js.map +1 -0
  589. package/dist/ooxml/zip/deflate.d.ts +23 -0
  590. package/dist/ooxml/zip/deflate.d.ts.map +1 -0
  591. package/dist/ooxml/zip/deflate.js +172 -0
  592. package/dist/ooxml/zip/deflate.js.map +1 -0
  593. package/dist/ooxml/zip/index.d.ts +10 -0
  594. package/dist/ooxml/zip/index.d.ts.map +1 -0
  595. package/dist/ooxml/zip/index.js +6 -0
  596. package/dist/ooxml/zip/index.js.map +1 -0
  597. package/dist/ooxml/zip/read.d.ts +17 -0
  598. package/dist/ooxml/zip/read.d.ts.map +1 -0
  599. package/dist/ooxml/zip/read.js +345 -0
  600. package/dist/ooxml/zip/read.js.map +1 -0
  601. package/dist/ooxml/zip/types.d.ts +66 -0
  602. package/dist/ooxml/zip/types.d.ts.map +1 -0
  603. package/dist/ooxml/zip/types.js +26 -0
  604. package/dist/ooxml/zip/types.js.map +1 -0
  605. package/dist/ooxml/zip/write.d.ts +17 -0
  606. package/dist/ooxml/zip/write.d.ts.map +1 -0
  607. package/dist/ooxml/zip/write.js +175 -0
  608. package/dist/ooxml/zip/write.js.map +1 -0
  609. package/dist/pdf/abort.d.ts +2 -0
  610. package/dist/pdf/abort.d.ts.map +1 -0
  611. package/dist/pdf/abort.js +7 -0
  612. package/dist/pdf/abort.js.map +1 -0
  613. package/dist/pdf/bytes.d.ts +7 -0
  614. package/dist/pdf/bytes.d.ts.map +1 -0
  615. package/dist/pdf/bytes.js +54 -0
  616. package/dist/pdf/bytes.js.map +1 -0
  617. package/dist/pdf/color.d.ts +7 -0
  618. package/dist/pdf/color.d.ts.map +1 -0
  619. package/dist/pdf/color.js +25 -0
  620. package/dist/pdf/color.js.map +1 -0
  621. package/dist/pdf/content.d.ts +37 -0
  622. package/dist/pdf/content.d.ts.map +1 -0
  623. package/dist/pdf/content.js +129 -0
  624. package/dist/pdf/content.js.map +1 -0
  625. package/dist/pdf/decoration.d.ts +10 -0
  626. package/dist/pdf/decoration.d.ts.map +1 -0
  627. package/dist/pdf/decoration.js +60 -0
  628. package/dist/pdf/decoration.js.map +1 -0
  629. package/dist/pdf/document.d.ts +4 -0
  630. package/dist/pdf/document.d.ts.map +1 -0
  631. package/dist/pdf/document.js +158 -0
  632. package/dist/pdf/document.js.map +1 -0
  633. package/dist/pdf/errors.d.ts +13 -0
  634. package/dist/pdf/errors.d.ts.map +1 -0
  635. package/dist/pdf/errors.js +13 -0
  636. package/dist/pdf/errors.js.map +1 -0
  637. package/dist/pdf/fonts/advance.d.ts +35 -0
  638. package/dist/pdf/fonts/advance.d.ts.map +1 -0
  639. package/dist/pdf/fonts/advance.js +157 -0
  640. package/dist/pdf/fonts/advance.js.map +1 -0
  641. package/dist/pdf/fonts/embed.d.ts +32 -0
  642. package/dist/pdf/fonts/embed.d.ts.map +1 -0
  643. package/dist/pdf/fonts/embed.js +183 -0
  644. package/dist/pdf/fonts/embed.js.map +1 -0
  645. package/dist/pdf/fonts/registry.d.ts +47 -0
  646. package/dist/pdf/fonts/registry.d.ts.map +1 -0
  647. package/dist/pdf/fonts/registry.js +222 -0
  648. package/dist/pdf/fonts/registry.js.map +1 -0
  649. package/dist/pdf/fonts/sfnt.d.ts +83 -0
  650. package/dist/pdf/fonts/sfnt.d.ts.map +1 -0
  651. package/dist/pdf/fonts/sfnt.js +363 -0
  652. package/dist/pdf/fonts/sfnt.js.map +1 -0
  653. package/dist/pdf/fonts/subset.d.ts +8 -0
  654. package/dist/pdf/fonts/subset.d.ts.map +1 -0
  655. package/dist/pdf/fonts/subset.js +101 -0
  656. package/dist/pdf/fonts/subset.js.map +1 -0
  657. package/dist/pdf/fonts/table-builder.d.ts +8 -0
  658. package/dist/pdf/fonts/table-builder.d.ts.map +1 -0
  659. package/dist/pdf/fonts/table-builder.js +90 -0
  660. package/dist/pdf/fonts/table-builder.js.map +1 -0
  661. package/dist/pdf/geometry.d.ts +24 -0
  662. package/dist/pdf/geometry.d.ts.map +1 -0
  663. package/dist/pdf/geometry.js +26 -0
  664. package/dist/pdf/geometry.js.map +1 -0
  665. package/dist/pdf/images/embed.d.ts +10 -0
  666. package/dist/pdf/images/embed.d.ts.map +1 -0
  667. package/dist/pdf/images/embed.js +80 -0
  668. package/dist/pdf/images/embed.js.map +1 -0
  669. package/dist/pdf/images/jpeg.d.ts +18 -0
  670. package/dist/pdf/images/jpeg.d.ts.map +1 -0
  671. package/dist/pdf/images/jpeg.js +65 -0
  672. package/dist/pdf/images/jpeg.js.map +1 -0
  673. package/dist/pdf/images/png.d.ts +13 -0
  674. package/dist/pdf/images/png.d.ts.map +1 -0
  675. package/dist/pdf/images/png.js +213 -0
  676. package/dist/pdf/images/png.js.map +1 -0
  677. package/dist/pdf/images/registry.d.ts +22 -0
  678. package/dist/pdf/images/registry.d.ts.map +1 -0
  679. package/dist/pdf/images/registry.js +94 -0
  680. package/dist/pdf/images/registry.js.map +1 -0
  681. package/dist/pdf/index.d.ts +10 -0
  682. package/dist/pdf/index.d.ts.map +1 -0
  683. package/dist/pdf/index.js +11 -0
  684. package/dist/pdf/index.js.map +1 -0
  685. package/dist/pdf/metadata.d.ts +21 -0
  686. package/dist/pdf/metadata.d.ts.map +1 -0
  687. package/dist/pdf/metadata.js +65 -0
  688. package/dist/pdf/metadata.js.map +1 -0
  689. package/dist/pdf/objects.d.ts +46 -0
  690. package/dist/pdf/objects.d.ts.map +1 -0
  691. package/dist/pdf/objects.js +174 -0
  692. package/dist/pdf/objects.js.map +1 -0
  693. package/dist/pdf/options.d.ts +9 -0
  694. package/dist/pdf/options.d.ts.map +1 -0
  695. package/dist/pdf/options.js +84 -0
  696. package/dist/pdf/options.js.map +1 -0
  697. package/dist/pdf/page.d.ts +21 -0
  698. package/dist/pdf/page.d.ts.map +1 -0
  699. package/dist/pdf/page.js +228 -0
  700. package/dist/pdf/page.js.map +1 -0
  701. package/dist/pdf/pdfa.d.ts +6 -0
  702. package/dist/pdf/pdfa.d.ts.map +1 -0
  703. package/dist/pdf/pdfa.js +139 -0
  704. package/dist/pdf/pdfa.js.map +1 -0
  705. package/dist/pdf/runs.d.ts +25 -0
  706. package/dist/pdf/runs.d.ts.map +1 -0
  707. package/dist/pdf/runs.js +122 -0
  708. package/dist/pdf/runs.js.map +1 -0
  709. package/dist/pdf/selection.d.ts +4 -0
  710. package/dist/pdf/selection.d.ts.map +1 -0
  711. package/dist/pdf/selection.js +31 -0
  712. package/dist/pdf/selection.js.map +1 -0
  713. package/dist/pdf/stream.d.ts +13 -0
  714. package/dist/pdf/stream.d.ts.map +1 -0
  715. package/dist/pdf/stream.js +61 -0
  716. package/dist/pdf/stream.js.map +1 -0
  717. package/dist/pdf/types.d.ts +111 -0
  718. package/dist/pdf/types.d.ts.map +1 -0
  719. package/dist/pdf/types.js +2 -0
  720. package/dist/pdf/types.js.map +1 -0
  721. package/dist/pdf/xmp.d.ts +11 -0
  722. package/dist/pdf/xmp.d.ts.map +1 -0
  723. package/dist/pdf/xmp.js +53 -0
  724. package/dist/pdf/xmp.js.map +1 -0
  725. package/dist/render/color.d.ts +6 -0
  726. package/dist/render/color.d.ts.map +1 -0
  727. package/dist/render/color.js +49 -0
  728. package/dist/render/color.js.map +1 -0
  729. package/dist/render/decoration.d.ts +18 -0
  730. package/dist/render/decoration.d.ts.map +1 -0
  731. package/dist/render/decoration.js +120 -0
  732. package/dist/render/decoration.js.map +1 -0
  733. package/dist/render/divergence.d.ts +78 -0
  734. package/dist/render/divergence.d.ts.map +1 -0
  735. package/dist/render/divergence.js +680 -0
  736. package/dist/render/divergence.js.map +1 -0
  737. package/dist/render/document.d.ts +6 -0
  738. package/dist/render/document.d.ts.map +1 -0
  739. package/dist/render/document.js +204 -0
  740. package/dist/render/document.js.map +1 -0
  741. package/dist/render/dom.d.ts +56 -0
  742. package/dist/render/dom.d.ts.map +1 -0
  743. package/dist/render/dom.js +62 -0
  744. package/dist/render/dom.js.map +1 -0
  745. package/dist/render/images.d.ts +26 -0
  746. package/dist/render/images.d.ts.map +1 -0
  747. package/dist/render/images.js +79 -0
  748. package/dist/render/images.js.map +1 -0
  749. package/dist/render/index.d.ts +29 -0
  750. package/dist/render/index.d.ts.map +1 -0
  751. package/dist/render/index.js +17 -0
  752. package/dist/render/index.js.map +1 -0
  753. package/dist/render/inline-object.d.ts +13 -0
  754. package/dist/render/inline-object.d.ts.map +1 -0
  755. package/dist/render/inline-object.js +19 -0
  756. package/dist/render/inline-object.js.map +1 -0
  757. package/dist/render/objects.d.ts +20 -0
  758. package/dist/render/objects.d.ts.map +1 -0
  759. package/dist/render/objects.js +85 -0
  760. package/dist/render/objects.js.map +1 -0
  761. package/dist/render/page-range.d.ts +11 -0
  762. package/dist/render/page-range.d.ts.map +1 -0
  763. package/dist/render/page-range.js +64 -0
  764. package/dist/render/page-range.js.map +1 -0
  765. package/dist/render/pages.d.ts +21 -0
  766. package/dist/render/pages.d.ts.map +1 -0
  767. package/dist/render/pages.js +200 -0
  768. package/dist/render/pages.js.map +1 -0
  769. package/dist/render/print-style.d.ts +27 -0
  770. package/dist/render/print-style.d.ts.map +1 -0
  771. package/dist/render/print-style.js +106 -0
  772. package/dist/render/print-style.js.map +1 -0
  773. package/dist/render/print.d.ts +57 -0
  774. package/dist/render/print.d.ts.map +1 -0
  775. package/dist/render/print.js +189 -0
  776. package/dist/render/print.js.map +1 -0
  777. package/dist/render/registry.d.ts +38 -0
  778. package/dist/render/registry.d.ts.map +1 -0
  779. package/dist/render/registry.js +120 -0
  780. package/dist/render/registry.js.map +1 -0
  781. package/dist/render/runs.d.ts +23 -0
  782. package/dist/render/runs.d.ts.map +1 -0
  783. package/dist/render/runs.js +99 -0
  784. package/dist/render/runs.js.map +1 -0
  785. package/dist/render/scale.d.ts +13 -0
  786. package/dist/render/scale.d.ts.map +1 -0
  787. package/dist/render/scale.js +20 -0
  788. package/dist/render/scale.js.map +1 -0
  789. package/dist/render/style.d.ts +21 -0
  790. package/dist/render/style.d.ts.map +1 -0
  791. package/dist/render/style.js +127 -0
  792. package/dist/render/style.js.map +1 -0
  793. package/dist/render/types.d.ts +124 -0
  794. package/dist/render/types.d.ts.map +1 -0
  795. package/dist/render/types.js +5 -0
  796. package/dist/render/types.js.map +1 -0
  797. package/dist/sfnt/sfnt.d.ts +87 -0
  798. package/dist/sfnt/sfnt.d.ts.map +1 -0
  799. package/dist/sfnt/sfnt.js +367 -0
  800. package/dist/sfnt/sfnt.js.map +1 -0
  801. package/dist/style.css +128 -0
  802. package/dist/tokens/binding.d.ts +31 -0
  803. package/dist/tokens/binding.d.ts.map +1 -0
  804. package/dist/tokens/binding.js +151 -0
  805. package/dist/tokens/binding.js.map +1 -0
  806. package/dist/tokens/catalogue.d.ts +53 -0
  807. package/dist/tokens/catalogue.d.ts.map +1 -0
  808. package/dist/tokens/catalogue.js +209 -0
  809. package/dist/tokens/catalogue.js.map +1 -0
  810. package/dist/tokens/display.d.ts +30 -0
  811. package/dist/tokens/display.d.ts.map +1 -0
  812. package/dist/tokens/display.js +59 -0
  813. package/dist/tokens/display.js.map +1 -0
  814. package/dist/tokens/engine.d.ts +49 -0
  815. package/dist/tokens/engine.d.ts.map +1 -0
  816. package/dist/tokens/engine.js +166 -0
  817. package/dist/tokens/engine.js.map +1 -0
  818. package/dist/tokens/events.d.ts +83 -0
  819. package/dist/tokens/events.d.ts.map +1 -0
  820. package/dist/tokens/events.js +2 -0
  821. package/dist/tokens/events.js.map +1 -0
  822. package/dist/tokens/fill.d.ts +29 -0
  823. package/dist/tokens/fill.d.ts.map +1 -0
  824. package/dist/tokens/fill.js +129 -0
  825. package/dist/tokens/fill.js.map +1 -0
  826. package/dist/tokens/format.d.ts +16 -0
  827. package/dist/tokens/format.d.ts.map +1 -0
  828. package/dist/tokens/format.js +141 -0
  829. package/dist/tokens/format.js.map +1 -0
  830. package/dist/tokens/headless.d.ts +31 -0
  831. package/dist/tokens/headless.d.ts.map +1 -0
  832. package/dist/tokens/headless.js +143 -0
  833. package/dist/tokens/headless.js.map +1 -0
  834. package/dist/tokens/images.d.ts +28 -0
  835. package/dist/tokens/images.d.ts.map +1 -0
  836. package/dist/tokens/images.js +184 -0
  837. package/dist/tokens/images.js.map +1 -0
  838. package/dist/tokens/index.d.ts +34 -0
  839. package/dist/tokens/index.d.ts.map +1 -0
  840. package/dist/tokens/index.js +17 -0
  841. package/dist/tokens/index.js.map +1 -0
  842. package/dist/tokens/insert.d.ts +22 -0
  843. package/dist/tokens/insert.d.ts.map +1 -0
  844. package/dist/tokens/insert.js +113 -0
  845. package/dist/tokens/insert.js.map +1 -0
  846. package/dist/tokens/issues.d.ts +37 -0
  847. package/dist/tokens/issues.d.ts.map +1 -0
  848. package/dist/tokens/issues.js +149 -0
  849. package/dist/tokens/issues.js.map +1 -0
  850. package/dist/tokens/keys.d.ts +49 -0
  851. package/dist/tokens/keys.d.ts.map +1 -0
  852. package/dist/tokens/keys.js +107 -0
  853. package/dist/tokens/keys.js.map +1 -0
  854. package/dist/tokens/module.d.ts +103 -0
  855. package/dist/tokens/module.d.ts.map +1 -0
  856. package/dist/tokens/module.js +861 -0
  857. package/dist/tokens/module.js.map +1 -0
  858. package/dist/tokens/types.d.ts +257 -0
  859. package/dist/tokens/types.d.ts.map +1 -0
  860. package/dist/tokens/types.js +2 -0
  861. package/dist/tokens/types.js.map +1 -0
  862. package/dist/tokens/unlink.d.ts +11 -0
  863. package/dist/tokens/unlink.d.ts.map +1 -0
  864. package/dist/tokens/unlink.js +49 -0
  865. package/dist/tokens/unlink.js.map +1 -0
  866. package/dist/tokens/validation.d.ts +10 -0
  867. package/dist/tokens/validation.d.ts.map +1 -0
  868. package/dist/tokens/validation.js +156 -0
  869. package/dist/tokens/validation.js.map +1 -0
  870. package/dist/tokens/values.d.ts +24 -0
  871. package/dist/tokens/values.d.ts.map +1 -0
  872. package/dist/tokens/values.js +211 -0
  873. package/dist/tokens/values.js.map +1 -0
  874. package/dist/tokens/write.d.ts +14 -0
  875. package/dist/tokens/write.d.ts.map +1 -0
  876. package/dist/tokens/write.js +167 -0
  877. package/dist/tokens/write.js.map +1 -0
  878. package/dist/ui/chrome.d.ts +49 -0
  879. package/dist/ui/chrome.d.ts.map +1 -0
  880. package/dist/ui/chrome.js +795 -0
  881. package/dist/ui/chrome.js.map +1 -0
  882. package/dist/ui/colour-picker.d.ts +57 -0
  883. package/dist/ui/colour-picker.d.ts.map +1 -0
  884. package/dist/ui/colour-picker.js +491 -0
  885. package/dist/ui/colour-picker.js.map +1 -0
  886. package/dist/ui/comments-panel.d.ts +17 -0
  887. package/dist/ui/comments-panel.d.ts.map +1 -0
  888. package/dist/ui/comments-panel.js +122 -0
  889. package/dist/ui/comments-panel.js.map +1 -0
  890. package/dist/ui/context-menu.d.ts +21 -0
  891. package/dist/ui/context-menu.d.ts.map +1 -0
  892. package/dist/ui/context-menu.js +121 -0
  893. package/dist/ui/context-menu.js.map +1 -0
  894. package/dist/ui/controls.d.ts +30 -0
  895. package/dist/ui/controls.d.ts.map +1 -0
  896. package/dist/ui/controls.js +363 -0
  897. package/dist/ui/controls.js.map +1 -0
  898. package/dist/ui/dialog.d.ts +132 -0
  899. package/dist/ui/dialog.d.ts.map +1 -0
  900. package/dist/ui/dialog.js +712 -0
  901. package/dist/ui/dialog.js.map +1 -0
  902. package/dist/ui/dom.d.ts +25 -0
  903. package/dist/ui/dom.d.ts.map +1 -0
  904. package/dist/ui/dom.js +90 -0
  905. package/dist/ui/dom.js.map +1 -0
  906. package/dist/ui/floating-toolbar.d.ts +26 -0
  907. package/dist/ui/floating-toolbar.d.ts.map +1 -0
  908. package/dist/ui/floating-toolbar.js +189 -0
  909. package/dist/ui/floating-toolbar.js.map +1 -0
  910. package/dist/ui/font-dialog.d.ts +56 -0
  911. package/dist/ui/font-dialog.d.ts.map +1 -0
  912. package/dist/ui/font-dialog.js +341 -0
  913. package/dist/ui/font-dialog.js.map +1 -0
  914. package/dist/ui/i18n.d.ts +18 -0
  915. package/dist/ui/i18n.d.ts.map +1 -0
  916. package/dist/ui/i18n.js +370 -0
  917. package/dist/ui/i18n.js.map +1 -0
  918. package/dist/ui/icons.d.ts +4 -0
  919. package/dist/ui/icons.d.ts.map +1 -0
  920. package/dist/ui/icons.js +150 -0
  921. package/dist/ui/icons.js.map +1 -0
  922. package/dist/ui/image-picker.d.ts +35 -0
  923. package/dist/ui/image-picker.d.ts.map +1 -0
  924. package/dist/ui/image-picker.js +133 -0
  925. package/dist/ui/image-picker.js.map +1 -0
  926. package/dist/ui/index.d.ts +37 -0
  927. package/dist/ui/index.d.ts.map +1 -0
  928. package/dist/ui/index.js +20 -0
  929. package/dist/ui/index.js.map +1 -0
  930. package/dist/ui/insert-dialogs.d.ts +39 -0
  931. package/dist/ui/insert-dialogs.d.ts.map +1 -0
  932. package/dist/ui/insert-dialogs.js +281 -0
  933. package/dist/ui/insert-dialogs.js.map +1 -0
  934. package/dist/ui/keyboard.d.ts +22 -0
  935. package/dist/ui/keyboard.d.ts.map +1 -0
  936. package/dist/ui/keyboard.js +128 -0
  937. package/dist/ui/keyboard.js.map +1 -0
  938. package/dist/ui/menu-bar.d.ts +22 -0
  939. package/dist/ui/menu-bar.d.ts.map +1 -0
  940. package/dist/ui/menu-bar.js +326 -0
  941. package/dist/ui/menu-bar.js.map +1 -0
  942. package/dist/ui/menu-model.d.ts +46 -0
  943. package/dist/ui/menu-model.d.ts.map +1 -0
  944. package/dist/ui/menu-model.js +1063 -0
  945. package/dist/ui/menu-model.js.map +1 -0
  946. package/dist/ui/menu.d.ts +28 -0
  947. package/dist/ui/menu.d.ts.map +1 -0
  948. package/dist/ui/menu.js +235 -0
  949. package/dist/ui/menu.js.map +1 -0
  950. package/dist/ui/paragraph-dialog.d.ts +39 -0
  951. package/dist/ui/paragraph-dialog.d.ts.map +1 -0
  952. package/dist/ui/paragraph-dialog.js +258 -0
  953. package/dist/ui/paragraph-dialog.js.map +1 -0
  954. package/dist/ui/queries.d.ts +38 -0
  955. package/dist/ui/queries.d.ts.map +1 -0
  956. package/dist/ui/queries.js +138 -0
  957. package/dist/ui/queries.js.map +1 -0
  958. package/dist/ui/ruler-vertical.d.ts +21 -0
  959. package/dist/ui/ruler-vertical.d.ts.map +1 -0
  960. package/dist/ui/ruler-vertical.js +411 -0
  961. package/dist/ui/ruler-vertical.js.map +1 -0
  962. package/dist/ui/ruler.d.ts +42 -0
  963. package/dist/ui/ruler.d.ts.map +1 -0
  964. package/dist/ui/ruler.js +391 -0
  965. package/dist/ui/ruler.js.map +1 -0
  966. package/dist/ui/status-bar.d.ts +24 -0
  967. package/dist/ui/status-bar.d.ts.map +1 -0
  968. package/dist/ui/status-bar.js +206 -0
  969. package/dist/ui/status-bar.js.map +1 -0
  970. package/dist/ui/store.d.ts +15 -0
  971. package/dist/ui/store.d.ts.map +1 -0
  972. package/dist/ui/store.js +82 -0
  973. package/dist/ui/store.js.map +1 -0
  974. package/dist/ui/styles.d.ts +8 -0
  975. package/dist/ui/styles.d.ts.map +1 -0
  976. package/dist/ui/styles.js +150 -0
  977. package/dist/ui/styles.js.map +1 -0
  978. package/dist/ui/theme.d.ts +9 -0
  979. package/dist/ui/theme.d.ts.map +1 -0
  980. package/dist/ui/theme.js +93 -0
  981. package/dist/ui/theme.js.map +1 -0
  982. package/dist/ui/types.d.ts +81 -0
  983. package/dist/ui/types.d.ts.map +1 -0
  984. package/dist/ui/types.js +23 -0
  985. package/dist/ui/types.js.map +1 -0
  986. package/dist/units/brand.d.ts +27 -0
  987. package/dist/units/brand.d.ts.map +1 -0
  988. package/dist/units/brand.js +23 -0
  989. package/dist/units/brand.js.map +1 -0
  990. package/dist/units/constants.d.ts +19 -0
  991. package/dist/units/constants.d.ts.map +1 -0
  992. package/dist/units/constants.js +19 -0
  993. package/dist/units/constants.js.map +1 -0
  994. package/dist/units/convert.d.ts +34 -0
  995. package/dist/units/convert.d.ts.map +1 -0
  996. package/dist/units/convert.js +42 -0
  997. package/dist/units/convert.js.map +1 -0
  998. package/dist/units/css.d.ts +6 -0
  999. package/dist/units/css.d.ts.map +1 -0
  1000. package/dist/units/css.js +8 -0
  1001. package/dist/units/css.js.map +1 -0
  1002. package/dist/units/index.d.ts +6 -0
  1003. package/dist/units/index.d.ts.map +1 -0
  1004. package/dist/units/index.js +5 -0
  1005. package/dist/units/index.js.map +1 -0
  1006. package/package.json +84 -0
@@ -0,0 +1,910 @@
1
+ import { mpToTwip, twip } from '../../units/index.js';
2
+ import { isWElement, propertyOf, setWAttr } from '../../model/index.js';
3
+ import { caretSelection, rangeAsDocRange } from '../selection.js';
4
+ import { DEFAULT_TABLE_COLUMNS, DEFAULT_TABLE_ROWS, MAX_TABLE_DEPTH, MAX_TABLE_DIMENSION, createTableElement, firstParagraphOf, fitCellsToGrid, insertBlockAfter, insertColumnAt, insertParagraphAt, insertRowAt, removeBlock, splitVerticalMerge, tableDepthAllowed, tableOf, } from '../tables.js';
5
+ import { areaCommand, caretInRegion, changedBy, documentSection } from './support.js';
6
+ const NOT_ALIGNED = 'This document lays out tables in a way the editing layer cannot map onto paragraphs, so table commands are unavailable';
7
+ const PLACE_CARET = 'Place the caret inside a table to use this command';
8
+ const NO_SELECTION = 'Select the cells to merge and try again';
9
+ const ONE_TABLE = 'The selection starts and ends in different tables';
10
+ const RECTANGLE = 'This build merges cells along one row or one column; a block of rows and columns is not merged';
11
+ const BAD_WIDTH = 'A column needs a width of at least 6 points';
12
+ const BAD_TABLE_WIDTH = 'A table needs a width of at least 12 points';
13
+ const BAD_HEIGHT = 'A row needs a height of at least 6 points';
14
+ const NOT_MERGED = 'The cell under the caret is not merged, so there is nothing to split';
15
+ const LAST_ROW = 'This table has a single row; delete the table instead';
16
+ const LAST_COLUMN = 'This table has a single column; delete the table instead';
17
+ const NEEDS_PROPERTY = 'This control needs a table property to apply';
18
+ const BAD_SHAPE = 'This build creates tables of 1 to 63 rows and columns';
19
+ const TOO_DEEP = `This build nests tables at most ${String(MAX_TABLE_DEPTH)} levels deep, and the caret is already at that depth`;
20
+ const NO_PARAGRAPH = 'Place the caret in a paragraph to insert a table';
21
+ const REGION_TABLE = 'This build lays out no table inside a header or footer, so it cannot insert one there';
22
+ const targetAt = (host, anchor) => {
23
+ const resolved = host.session.resolve(anchor ?? host.selection.focus);
24
+ if (resolved === undefined)
25
+ return undefined;
26
+ const ref = resolved.slot.cell;
27
+ if (ref === undefined)
28
+ return undefined;
29
+ const table = tableOf(host.session.model, resolved.slot.element);
30
+ if (table === undefined)
31
+ return undefined;
32
+ const cell = table.cellAt(ref.row, ref.column);
33
+ if (cell === undefined)
34
+ return undefined;
35
+ return { slot: resolved.slot, table, row: ref.row, column: ref.column, cell };
36
+ };
37
+ const gate = (check) => ({
38
+ enabledIn: (host) => {
39
+ if (!host.session.aligned)
40
+ return false;
41
+ const target = targetAt(host);
42
+ return target !== undefined && (check === undefined || check(target) === undefined);
43
+ },
44
+ reason: (host) => {
45
+ if (!host.session.aligned)
46
+ return NOT_ALIGNED;
47
+ const target = targetAt(host);
48
+ if (target === undefined)
49
+ return PLACE_CARET;
50
+ return check?.(target) ?? PLACE_CARET;
51
+ },
52
+ });
53
+ const positionOf = (host, element) => {
54
+ for (const slot of host.session.slots()) {
55
+ if (slot.element === element)
56
+ return slot.start;
57
+ }
58
+ return undefined;
59
+ };
60
+ const placeCaret = (host, element) => {
61
+ host.session.relayout();
62
+ const pos = element === undefined ? undefined : positionOf(host, element);
63
+ if (pos !== undefined)
64
+ host.setSelection(caretSelection(pos, 'downstream'), 'set');
65
+ };
66
+ const availableWidthTwips = (host, slot) => {
67
+ let width;
68
+ for (const page of host.session.layout.pages) {
69
+ for (const block of page.blocks) {
70
+ if (block.docRange.start === slot.span.start)
71
+ width = block.box.width;
72
+ }
73
+ }
74
+ if (width !== undefined && width > 0)
75
+ return mpToTwip(width);
76
+ const section = documentSection(host);
77
+ const size = section.pageSize;
78
+ const margins = section.margins;
79
+ const content = size.width - margins.left - margins.right;
80
+ return twip(content > 0 ? content : size.width);
81
+ };
82
+ const dimensionOf = (value, fallback) => {
83
+ if (value === undefined || !Number.isFinite(value))
84
+ return fallback;
85
+ return Math.max(1, Math.min(MAX_TABLE_DIMENSION, Math.floor(value)));
86
+ };
87
+ const shapeOf = (args, widthTwips) => {
88
+ const requested = args?.widthTwips;
89
+ const width = requested === undefined || !Number.isFinite(requested) || requested < 1
90
+ ? widthTwips
91
+ : Math.floor(requested);
92
+ return {
93
+ rows: dimensionOf(args?.rows, DEFAULT_TABLE_ROWS),
94
+ columns: dimensionOf(args?.columns, DEFAULT_TABLE_COLUMNS),
95
+ widthTwips: twip(width),
96
+ };
97
+ };
98
+ const shapeReason = (args) => {
99
+ const rows = args?.rows;
100
+ const columns = args?.columns;
101
+ const width = args?.widthTwips;
102
+ if (rows !== undefined && (!Number.isFinite(rows) || rows < 1 || rows > MAX_TABLE_DIMENSION)) {
103
+ return BAD_SHAPE;
104
+ }
105
+ if (columns !== undefined &&
106
+ (!Number.isFinite(columns) || columns < 1 || columns > MAX_TABLE_DIMENSION)) {
107
+ return BAD_SHAPE;
108
+ }
109
+ if (width !== undefined && (!Number.isFinite(width) || width < 1))
110
+ return BAD_SHAPE;
111
+ return undefined;
112
+ };
113
+ const countOf = (args) => dimensionOf(args?.count, 1);
114
+ const cellAt = (table, rowIndex, column) => {
115
+ const row = table.rows()[rowIndex];
116
+ if (row === undefined)
117
+ return undefined;
118
+ return row.spanAt(column)?.cell ?? row.cells()[0];
119
+ };
120
+ const caretInto = (host, table, rowIndex, column) => {
121
+ const cell = cellAt(table, Math.max(0, rowIndex), Math.max(0, column));
122
+ placeCaret(host, cell === undefined ? undefined : firstParagraphOf(cell.element));
123
+ };
124
+ const runInsertRows = (host, below, count) => {
125
+ const target = targetAt(host);
126
+ if (target === undefined)
127
+ return false;
128
+ const at = below ? target.row + 1 : target.row;
129
+ for (let index = 0; index < count; index += 1)
130
+ insertRowAt(target.table, at + index);
131
+ host.session.model.context.forgetSubtree(target.table.element);
132
+ caretInto(host, target.table, at, target.column);
133
+ return true;
134
+ };
135
+ const runInsertColumns = (host, right, count) => {
136
+ const target = targetAt(host);
137
+ if (target === undefined)
138
+ return false;
139
+ const at = right ? target.column + 1 : target.column;
140
+ for (let index = 0; index < count; index += 1)
141
+ insertColumnAt(target.table, at + index);
142
+ host.session.model.context.forgetSubtree(target.table.element);
143
+ caretInto(host, target.table, target.row, at);
144
+ return true;
145
+ };
146
+ const verticalSpan = (table, rowIndex, column) => {
147
+ const rows = table.rows();
148
+ let count = 0;
149
+ for (let index = rowIndex + 1; index < rows.length; index += 1) {
150
+ const cell = rows[index]?.spanAt(column)?.cell;
151
+ if (cell === undefined || !cell.isVerticalContinuation)
152
+ break;
153
+ count += 1;
154
+ }
155
+ return count;
156
+ };
157
+ const splitsCell = (target) => target.cell.gridSpan > 1 ||
158
+ (target.cell.isVerticalRestart && verticalSpan(target.table, target.row, target.column) > 0);
159
+ const mergeRefusal = (host) => {
160
+ const range = rangeAsDocRange(host.selection);
161
+ if (range.start === range.end)
162
+ return NO_SELECTION;
163
+ const first = host.session.resolve(range.start);
164
+ const last = host.session.resolve(range.end);
165
+ if (first === undefined || last === undefined)
166
+ return PLACE_CARET;
167
+ const start = first.slot.cell;
168
+ const end = last.slot.cell;
169
+ if (start === undefined || end === undefined)
170
+ return PLACE_CARET;
171
+ if (start.table !== end.table)
172
+ return ONE_TABLE;
173
+ if (start.row !== end.row && start.column !== end.column)
174
+ return RECTANGLE;
175
+ return undefined;
176
+ };
177
+ const propertiesReason = (args) => {
178
+ if (args === undefined)
179
+ return NEEDS_PROPERTY;
180
+ const width = args.widthTwips;
181
+ if (args.alignment === undefined && width === undefined && args.layout === undefined) {
182
+ return NEEDS_PROPERTY;
183
+ }
184
+ if (width !== undefined && (!Number.isFinite(width) || width < 1))
185
+ return NEEDS_PROPERTY;
186
+ return undefined;
187
+ };
188
+ const placeableIn = (host) => {
189
+ const resolved = host.session.resolve(host.selection.focus);
190
+ if (resolved === undefined)
191
+ return NO_PARAGRAPH;
192
+ if (caretInRegion(host))
193
+ return REGION_TABLE;
194
+ if (!tableDepthAllowed(resolved.slot.element))
195
+ return TOO_DEEP;
196
+ return undefined;
197
+ };
198
+ const insertTableSpec = {
199
+ id: 'docier.command.insert.table',
200
+ label: 'Table',
201
+ category: 'insert',
202
+ permissions: ['insert'],
203
+ enabledIn: (host, args) => host.session.aligned &&
204
+ shapeReason(args) === undefined &&
205
+ placeableIn(host) === undefined,
206
+ reason: (host, args) => {
207
+ if (!host.session.aligned)
208
+ return NOT_ALIGNED;
209
+ return shapeReason(args) ?? placeableIn(host) ?? BAD_SHAPE;
210
+ },
211
+ run: (host, args) => {
212
+ const resolved = host.session.resolve(host.selection.focus);
213
+ if (resolved === undefined)
214
+ return false;
215
+ const element = resolved.slot.element;
216
+ const parent = element.parent;
217
+ if (parent === undefined)
218
+ return false;
219
+ const shape = shapeOf(args, availableWidthTwips(host, resolved.slot));
220
+ const table = createTableElement(parent, shape);
221
+ insertBlockAfter(parent, element, table);
222
+ host.session.model.context.forgetSubtree(parent);
223
+ placeCaret(host, firstParagraphOf(table));
224
+ return true;
225
+ },
226
+ };
227
+ const insertRowsSpec = (id, label, below) => ({
228
+ id,
229
+ label,
230
+ category: 'table',
231
+ permissions: ['insert'],
232
+ ...gate(),
233
+ run: (host, args) => runInsertRows(host, below ?? args?.side !== 'above', countOf(args)),
234
+ });
235
+ const insertColumnsSpec = (id, label, right) => ({
236
+ id,
237
+ label,
238
+ category: 'table',
239
+ permissions: ['insert'],
240
+ ...gate(),
241
+ run: (host, args) => runInsertColumns(host, right ?? args?.side !== 'left', countOf(args)),
242
+ });
243
+ const deleteRowSpec = {
244
+ id: 'docier.command.table.deleteRow',
245
+ label: 'Delete row',
246
+ category: 'table',
247
+ permissions: ['edit'],
248
+ ...gate((target) => (target.table.rows().length > 1 ? undefined : LAST_ROW)),
249
+ run: (host) => {
250
+ const target = targetAt(host);
251
+ if (target === undefined)
252
+ return false;
253
+ const remaining = target.table.rows().length - 2;
254
+ if (!target.table.removeRow(target.row))
255
+ return false;
256
+ host.session.model.context.forgetSubtree(target.table.element);
257
+ caretInto(host, target.table, Math.min(target.row, remaining), target.column);
258
+ return true;
259
+ },
260
+ };
261
+ const deleteColumnSpec = {
262
+ id: 'docier.command.table.deleteColumn',
263
+ label: 'Delete column',
264
+ category: 'table',
265
+ permissions: ['edit'],
266
+ ...gate((target) => (target.table.columnCount > 1 ? undefined : LAST_COLUMN)),
267
+ run: (host) => {
268
+ const target = targetAt(host);
269
+ if (target === undefined)
270
+ return false;
271
+ const remaining = target.table.columnCount - 2;
272
+ target.table.removeColumn(target.column);
273
+ fitCellsToGrid(target.table);
274
+ host.session.model.context.forgetSubtree(target.table.element);
275
+ caretInto(host, target.table, target.row, Math.min(target.column, remaining));
276
+ return true;
277
+ },
278
+ };
279
+ const deleteSpec = {
280
+ id: 'docier.command.table.delete',
281
+ label: 'Delete table',
282
+ category: 'table',
283
+ permissions: ['edit'],
284
+ ...gate(),
285
+ run: (host) => {
286
+ const target = targetAt(host);
287
+ if (target === undefined)
288
+ return false;
289
+ const element = target.table.element;
290
+ const parent = element.parent;
291
+ if (parent === undefined)
292
+ return false;
293
+ const at = parent.children.indexOf(element);
294
+ if (at < 0)
295
+ return false;
296
+ const following = parent.children[at + 1];
297
+ const successor = following !== undefined && following.kind === 'element' && isWElement(following, 'p')
298
+ ? following
299
+ : undefined;
300
+ removeBlock(host.session.model, element);
301
+ const next = parent.children[at];
302
+ const focus = successor ??
303
+ (next !== undefined && next.kind === 'element' && isWElement(next, 'tbl')
304
+ ? firstParagraphOf(next)
305
+ : insertParagraphAt(parent, at));
306
+ placeCaret(host, focus);
307
+ return true;
308
+ },
309
+ };
310
+ const mergeSpec = {
311
+ id: 'docier.command.table.mergeCells',
312
+ label: 'Merge cells',
313
+ category: 'table',
314
+ permissions: ['edit'],
315
+ enabledIn: (host) => host.session.aligned && mergeRefusal(host) === undefined,
316
+ reason: (host) => (host.session.aligned ? mergeRefusal(host) ?? NO_SELECTION : NOT_ALIGNED),
317
+ run: (host) => {
318
+ if (mergeRefusal(host) !== undefined)
319
+ return false;
320
+ const range = rangeAsDocRange(host.selection);
321
+ const first = host.session.resolve(range.start);
322
+ const last = host.session.resolve(range.end);
323
+ if (first === undefined || last === undefined)
324
+ return false;
325
+ const start = first.slot.cell;
326
+ const end = last.slot.cell;
327
+ if (start === undefined || end === undefined)
328
+ return false;
329
+ const table = tableOf(host.session.model, first.slot.element);
330
+ if (table === undefined)
331
+ return false;
332
+ const startRow = Math.min(start.row, end.row);
333
+ const endRow = Math.max(start.row, end.row);
334
+ const startColumn = Math.min(start.column, end.column);
335
+ const endCell = table.cellAt(end.row, end.column);
336
+ if (endCell === undefined)
337
+ return false;
338
+ const endColumn = end.column + endCell.gridSpan - 1;
339
+ const merged = startRow === endRow
340
+ ? table.mergeHorizontally(startRow, startColumn, endColumn - startColumn + 1)
341
+ : table.mergeVertically(startColumn, startRow, endRow);
342
+ if (merged === undefined)
343
+ return false;
344
+ fitCellsToGrid(table);
345
+ host.session.model.context.forgetSubtree(table.element);
346
+ placeCaret(host, firstParagraphOf(merged.element));
347
+ return true;
348
+ },
349
+ };
350
+ const splitSpec = {
351
+ id: 'docier.command.table.splitCells',
352
+ label: 'Split cells',
353
+ category: 'table',
354
+ permissions: ['edit'],
355
+ ...gate((target) => (splitsCell(target) ? undefined : NOT_MERGED)),
356
+ run: (host) => {
357
+ const target = targetAt(host);
358
+ if (target === undefined)
359
+ return false;
360
+ const table = target.table;
361
+ const horizontal = target.cell.gridSpan > 1;
362
+ const first = horizontal
363
+ ? table.splitCellHorizontally(target.row, target.column)[0]
364
+ : splitVerticalMerge(table, target.row, target.column)
365
+ ? target.cell
366
+ : undefined;
367
+ if (first === undefined)
368
+ return false;
369
+ fitCellsToGrid(table);
370
+ host.session.model.context.forgetSubtree(table.element);
371
+ placeCaret(host, firstParagraphOf(first.element));
372
+ return true;
373
+ },
374
+ };
375
+ const setPropertiesSpec = {
376
+ id: 'docier.command.table.setProperties',
377
+ label: 'Table properties',
378
+ category: 'table',
379
+ permissions: ['format'],
380
+ enabledIn: (host, args) => host.session.aligned &&
381
+ propertiesReason(args) === undefined &&
382
+ targetAt(host) !== undefined,
383
+ reason: (host, args) => {
384
+ if (!host.session.aligned)
385
+ return NOT_ALIGNED;
386
+ if (propertiesReason(args) !== undefined)
387
+ return NEEDS_PROPERTY;
388
+ return targetAt(host) === undefined ? PLACE_CARET : NEEDS_PROPERTY;
389
+ },
390
+ run: (host, args) => {
391
+ const target = targetAt(host);
392
+ if (target === undefined)
393
+ return false;
394
+ const table = target.table;
395
+ const width = args.widthTwips;
396
+ const changed = changedBy([table.element], () => {
397
+ if (width !== undefined) {
398
+ const properties = table.properties;
399
+ properties.ensure();
400
+ properties.width.type = 'dxa';
401
+ properties.width.twips = twip(Math.floor(width));
402
+ }
403
+ if (args.layout !== undefined)
404
+ table.properties.layout = args.layout;
405
+ if (args.alignment !== undefined) {
406
+ const container = () => table.properties.ensure();
407
+ propertyOf(container, container, 'jc').value = args.alignment;
408
+ }
409
+ });
410
+ if (!changed)
411
+ return false;
412
+ host.session.model.context.forgetSubtree(table.element);
413
+ placeCaret(host, firstParagraphOf(target.cell.element));
414
+ return true;
415
+ },
416
+ };
417
+ const MIN_COLUMN_TWIPS = 120;
418
+ const MIN_ROW_TWIPS = 120;
419
+ const setColumnWidthSpec = {
420
+ id: 'docier.command.table.setColumnWidth',
421
+ label: 'Column width',
422
+ category: 'table',
423
+ permissions: ['format'],
424
+ enabledIn: (host, args) => {
425
+ if (!host.session.aligned)
426
+ return false;
427
+ const target = targetAt(host, args?.anchor);
428
+ return target !== undefined && widthSettable(target, args);
429
+ },
430
+ reason: (host, args) => {
431
+ if (!host.session.aligned)
432
+ return NOT_ALIGNED;
433
+ const target = targetAt(host, args?.anchor);
434
+ if (target === undefined)
435
+ return PLACE_CARET;
436
+ return widthSettable(target, args) ? NEEDS_PROPERTY : BAD_WIDTH;
437
+ },
438
+ run: (host, args) => {
439
+ const target = targetAt(host, args.anchor);
440
+ if (target === undefined || !widthSettable(target, args))
441
+ return false;
442
+ const table = target.table;
443
+ const targetColumn = args.column ?? target.column;
444
+ const requested = Math.max(MIN_COLUMN_TWIPS, Math.floor(args.widthTwips ?? 0));
445
+ const declared = args.widths;
446
+ const widthAt = (at) => {
447
+ const value = declared?.[at];
448
+ return value === undefined || !Number.isFinite(value)
449
+ ? requested
450
+ : Math.max(MIN_COLUMN_TWIPS, Math.floor(value));
451
+ };
452
+ const changed = changedBy([table.element], () => {
453
+ if (declared !== undefined) {
454
+ const properties = table.properties;
455
+ properties.ensure();
456
+ properties.layout = 'fixed';
457
+ }
458
+ const grid = table.gridColumns();
459
+ for (let index = 0; index < grid.length; index += 1) {
460
+ const column = grid[index];
461
+ if (column === undefined)
462
+ continue;
463
+ const isTarget = index === targetColumn;
464
+ if (!isTarget && declared === undefined)
465
+ continue;
466
+ setWAttr(column.element, 'w', String(isTarget ? requested : widthAt(index)));
467
+ }
468
+ for (const row of table.rows()) {
469
+ for (const span of row.cellSpans()) {
470
+ const spanWidth = Math.max(1, span.span);
471
+ const properties = span.cell.properties;
472
+ if (declared === undefined) {
473
+ if (span.start !== targetColumn || spanWidth !== 1)
474
+ continue;
475
+ properties.width.type = 'dxa';
476
+ properties.width.twips = twip(requested);
477
+ continue;
478
+ }
479
+ let total = 0;
480
+ for (let step = 0; step < spanWidth; step += 1) {
481
+ total += span.start + step === targetColumn ? requested : widthAt(span.start + step);
482
+ }
483
+ properties.width.type = 'dxa';
484
+ properties.width.twips = twip(total);
485
+ }
486
+ }
487
+ });
488
+ if (!changed)
489
+ return false;
490
+ host.session.model.context.forgetSubtree(table.element);
491
+ return true;
492
+ },
493
+ };
494
+ const widthSettable = (target, args) => {
495
+ if (target === undefined || args === undefined)
496
+ return false;
497
+ const width = args.widthTwips;
498
+ if (width === undefined || !Number.isFinite(width) || Math.floor(width) < MIN_COLUMN_TWIPS) {
499
+ return false;
500
+ }
501
+ const column = args.column ?? target.column;
502
+ return column >= 0 && column < target.table.columnCount;
503
+ };
504
+ const setRowHeightSpec = {
505
+ id: 'docier.command.table.setRowHeight',
506
+ label: 'Row height',
507
+ category: 'table',
508
+ permissions: ['format'],
509
+ enabledIn: (host, args) => {
510
+ if (!host.session.aligned)
511
+ return false;
512
+ const target = targetAt(host, args?.anchor);
513
+ return target !== undefined && rowSettable(target, args);
514
+ },
515
+ reason: (host, args) => {
516
+ if (!host.session.aligned)
517
+ return NOT_ALIGNED;
518
+ const target = targetAt(host, args?.anchor);
519
+ if (target === undefined)
520
+ return PLACE_CARET;
521
+ return rowSettable(target, args) ? NEEDS_PROPERTY : BAD_HEIGHT;
522
+ },
523
+ run: (host, args) => {
524
+ const target = targetAt(host, args.anchor);
525
+ if (target === undefined || !rowSettable(target, args))
526
+ return false;
527
+ const index = args.row ?? target.row;
528
+ const row = target.table.rows()[index];
529
+ if (row === undefined)
530
+ return false;
531
+ const height = Math.max(MIN_ROW_TWIPS, Math.floor(args.heightTwips ?? 0));
532
+ const changed = changedBy([target.table.element], () => {
533
+ row.properties.height = twip(height);
534
+ row.properties.heightRule = 'atLeast';
535
+ });
536
+ if (!changed)
537
+ return false;
538
+ host.session.model.context.forgetSubtree(target.table.element);
539
+ return true;
540
+ },
541
+ };
542
+ export const CELL_ALIGNMENTS = ['top', 'center', 'bottom'].flatMap((vertical) => ['left', 'center', 'right'].map((horizontal) => ({ vertical, horizontal })));
543
+ export const CELL_ALIGNMENT_ORDER = ['left', 'center', 'right'];
544
+ const alignmentIdOf = (alignment) => `docier.command.table.cellAlign${alignment.vertical[0].toUpperCase()}${alignment.vertical.slice(1)}${alignment.horizontal[0].toUpperCase()}${alignment.horizontal.slice(1)}`;
545
+ export const cellAlignmentCommandId = (alignment) => alignmentIdOf(alignment);
546
+ const cellParagraphs = (cell) => cell.paragraphs.filter((block) => block.blockKind === 'paragraph');
547
+ const cellAlignmentOf = (cell) => {
548
+ const vertical = cell.properties.verticalAlign;
549
+ if (vertical !== 'top' && vertical !== 'center' && vertical !== 'bottom')
550
+ return undefined;
551
+ const paragraph = cellParagraphs(cell)[0];
552
+ const raw = paragraph?.properties.justification;
553
+ const horizontal = raw === 'left' || raw === 'center' || raw === 'right' ? raw : raw === undefined ? 'left' : undefined;
554
+ if (horizontal === undefined)
555
+ return undefined;
556
+ return { vertical, horizontal };
557
+ };
558
+ const cellAlignmentSpec = (alignment) => ({
559
+ id: alignmentIdOf(alignment),
560
+ label: `Align ${alignment.vertical} ${alignment.horizontal}`,
561
+ category: 'table',
562
+ permissions: ['format'],
563
+ enabledIn: (host) => host.session.aligned && targetAt(host) !== undefined,
564
+ reason: (host) => (host.session.aligned ? PLACE_CARET : NOT_ALIGNED),
565
+ activeIn: (host) => {
566
+ const target = targetAt(host);
567
+ if (target === undefined)
568
+ return false;
569
+ const current = cellAlignmentOf(target.cell);
570
+ return (current?.vertical === alignment.vertical && current.horizontal === alignment.horizontal);
571
+ },
572
+ run: (host) => {
573
+ const target = targetAt(host);
574
+ if (target === undefined)
575
+ return false;
576
+ const cells = targetCells(host, target);
577
+ const changed = changedBy(cells.map((cell) => cell.element), () => {
578
+ for (const cell of cells) {
579
+ cell.properties.verticalAlign = alignment.vertical;
580
+ for (const paragraph of cellParagraphs(cell)) {
581
+ paragraph.properties.justification = alignment.horizontal;
582
+ }
583
+ }
584
+ });
585
+ if (!changed)
586
+ return false;
587
+ for (const cell of cells)
588
+ host.session.model.context.forgetSubtree(cell.element);
589
+ return true;
590
+ },
591
+ });
592
+ const targetCells = (host, target) => {
593
+ const range = rangeAsDocRange(host.selection);
594
+ if (range.start === range.end)
595
+ return [target.cell];
596
+ const cells = [];
597
+ const seen = new Set();
598
+ for (const slot of host.session.slots()) {
599
+ const ref = slot.cell;
600
+ if (ref === undefined)
601
+ continue;
602
+ if (tableOf(host.session.model, slot.element) !== target.table)
603
+ continue;
604
+ if (slot.end < range.start || slot.start > range.end) {
605
+ continue;
606
+ }
607
+ const key = `${String(ref.row)}:${String(ref.column)}`;
608
+ if (seen.has(key))
609
+ continue;
610
+ seen.add(key);
611
+ const cell = target.table.cellAt(ref.row, ref.column);
612
+ if (cell !== undefined)
613
+ cells.push(cell);
614
+ }
615
+ return cells.length === 0 ? [target.cell] : cells;
616
+ };
617
+ const repeatHeaderSpec = {
618
+ id: 'docier.command.table.repeatHeaderRows',
619
+ label: 'Repeat header rows',
620
+ category: 'table',
621
+ permissions: ['format'],
622
+ enabledIn: (host) => host.session.aligned && targetAt(host) !== undefined,
623
+ reason: (host) => (host.session.aligned ? PLACE_CARET : NOT_ALIGNED),
624
+ activeIn: (host) => {
625
+ const target = targetAt(host);
626
+ if (target === undefined)
627
+ return false;
628
+ const rows = targetRows(host, target);
629
+ return rows.length > 0 && rows.every((row) => row.properties.repeatsAsHeader === true);
630
+ },
631
+ run: (host, args) => {
632
+ const target = targetAt(host);
633
+ if (target === undefined)
634
+ return false;
635
+ const rows = targetRows(host, target);
636
+ if (rows.length === 0)
637
+ return false;
638
+ const want = args.repeat ?? !rows.every((row) => row.properties.repeatsAsHeader === true);
639
+ const changed = changedBy(rows.map((row) => row.element), () => {
640
+ for (const row of rows)
641
+ row.properties.repeatsAsHeader = want;
642
+ });
643
+ if (!changed)
644
+ return false;
645
+ host.session.model.context.forgetSubtree(target.table.element);
646
+ return true;
647
+ },
648
+ };
649
+ const targetRows = (host, target) => {
650
+ const range = rangeAsDocRange(host.selection);
651
+ if (range.start === range.end) {
652
+ const row = target.table.rows()[target.row];
653
+ return row === undefined ? [] : [row];
654
+ }
655
+ const rows = [];
656
+ const seen = new Set();
657
+ for (const slot of host.session.slots()) {
658
+ const ref = slot.cell;
659
+ if (ref === undefined)
660
+ continue;
661
+ if (tableOf(host.session.model, slot.element) !== target.table)
662
+ continue;
663
+ if (slot.end < range.start || slot.start > range.end) {
664
+ continue;
665
+ }
666
+ if (seen.has(ref.row))
667
+ continue;
668
+ seen.add(ref.row);
669
+ const row = target.table.rows()[ref.row];
670
+ if (row !== undefined)
671
+ rows.push(row);
672
+ }
673
+ return rows;
674
+ };
675
+ const AUTO_FIT_MODES = ['contents', 'window', 'fixed'];
676
+ const autoFitSpec = (mode) => ({
677
+ id: `docier.command.table.autoFit${mode[0].toUpperCase()}${mode.slice(1)}`,
678
+ label: mode === 'contents'
679
+ ? 'AutoFit contents'
680
+ : mode === 'window'
681
+ ? 'AutoFit window'
682
+ : 'Fixed column width',
683
+ category: 'table',
684
+ permissions: ['format'],
685
+ enabledIn: (host) => host.session.aligned && targetAt(host) !== undefined,
686
+ reason: (host) => (host.session.aligned ? PLACE_CARET : NOT_ALIGNED),
687
+ activeIn: (host) => {
688
+ const target = targetAt(host);
689
+ if (target === undefined)
690
+ return false;
691
+ const properties = target.table.properties;
692
+ if (mode === 'fixed')
693
+ return properties.layout === 'fixed';
694
+ if (properties.layout === 'fixed')
695
+ return false;
696
+ const type = properties.width.type;
697
+ return mode === 'window' ? type === 'pct' : type !== 'pct';
698
+ },
699
+ run: (host) => {
700
+ const target = targetAt(host);
701
+ if (target === undefined)
702
+ return false;
703
+ const properties = target.table.properties;
704
+ const changed = changedBy([target.table.element], () => {
705
+ properties.ensure();
706
+ properties.layout = mode === 'fixed' ? 'fixed' : 'autofit';
707
+ if (mode === 'window') {
708
+ properties.width.type = 'pct';
709
+ const element = properties.element;
710
+ if (element !== undefined)
711
+ setWAttr(element, 'w', '5000');
712
+ return;
713
+ }
714
+ properties.width.type = 'auto';
715
+ });
716
+ if (!changed)
717
+ return false;
718
+ host.session.model.context.forgetSubtree(target.table.element);
719
+ return true;
720
+ },
721
+ });
722
+ export const autoFitCommandId = (mode) => `docier.command.table.autoFit${mode[0].toUpperCase()}${mode.slice(1)}`;
723
+ export const AUTO_FIT = AUTO_FIT_MODES;
724
+ const distributeSpec = {
725
+ id: 'docier.command.table.distributeColumns',
726
+ label: 'Distribute columns',
727
+ category: 'table',
728
+ permissions: ['format'],
729
+ enabledIn: (host) => host.session.aligned && targetAt(host) !== undefined,
730
+ reason: (host) => (host.session.aligned ? PLACE_CARET : NOT_ALIGNED),
731
+ run: (host, args) => {
732
+ const target = targetAt(host, args?.anchor);
733
+ if (target === undefined)
734
+ return false;
735
+ const table = target.table;
736
+ const grid = table.gridColumns();
737
+ if (grid.length === 0)
738
+ return false;
739
+ const current = grid.map((column) => column.width === undefined ? MIN_COLUMN_TWIPS : Math.max(MIN_COLUMN_TWIPS, Math.floor(column.width)));
740
+ const total = current.reduce((sum, value) => sum + value, 0);
741
+ const widths = proportionalWidths(current.map(() => 1), total);
742
+ const changed = changedBy([table.element], () => {
743
+ const properties = table.properties;
744
+ properties.ensure();
745
+ properties.layout = 'fixed';
746
+ properties.width.type = 'dxa';
747
+ properties.width.twips = twip(total);
748
+ for (let index = 0; index < grid.length; index += 1) {
749
+ const column = grid[index];
750
+ if (column === undefined)
751
+ continue;
752
+ setWAttr(column.element, 'w', String(widths[index] ?? MIN_COLUMN_TWIPS));
753
+ }
754
+ for (const row of table.rows()) {
755
+ for (const span of row.cellSpans()) {
756
+ const spanWidth = Math.max(1, span.span);
757
+ let cellTotal = 0;
758
+ for (let step = 0; step < spanWidth; step += 1) {
759
+ cellTotal += widths[span.start + step] ?? MIN_COLUMN_TWIPS;
760
+ }
761
+ span.cell.properties.width.type = 'dxa';
762
+ span.cell.properties.width.twips = twip(cellTotal);
763
+ }
764
+ }
765
+ });
766
+ if (!changed)
767
+ return false;
768
+ host.session.model.context.forgetSubtree(table.element);
769
+ return true;
770
+ },
771
+ };
772
+ const MIN_TABLE_TWIPS = 240;
773
+ export const proportionalWidths = (current, total) => {
774
+ const count = current.length;
775
+ if (count === 0)
776
+ return [];
777
+ const sum = current.reduce((running, value) => running + Math.max(0, value), 0);
778
+ const share = sum <= 0 ? total / count : 0;
779
+ const exact = current.map((value) => (sum <= 0 ? share : (Math.max(0, value) * total) / sum));
780
+ const widths = exact.map((value) => Math.max(MIN_COLUMN_TWIPS, Math.floor(value)));
781
+ let remainder = total - widths.reduce((running, value) => running + value, 0);
782
+ const byFraction = exact
783
+ .map((value, index) => ({ index, fraction: value - Math.floor(value) }))
784
+ .sort((left, right) => right.fraction - left.fraction || left.index - right.index);
785
+ for (const entry of byFraction) {
786
+ if (remainder <= 0)
787
+ break;
788
+ widths[entry.index] = (widths[entry.index] ?? 0) + 1;
789
+ remainder -= 1;
790
+ }
791
+ const bySize = [...widths]
792
+ .map((value, index) => ({ index, value }))
793
+ .sort((left, right) => right.value - left.value || left.index - right.index);
794
+ for (const entry of bySize) {
795
+ if (remainder >= 0)
796
+ break;
797
+ const room = (widths[entry.index] ?? 0) - MIN_COLUMN_TWIPS;
798
+ if (room <= 0)
799
+ continue;
800
+ const take = Math.min(room, -remainder);
801
+ widths[entry.index] = (widths[entry.index] ?? 0) - take;
802
+ remainder += take;
803
+ }
804
+ return widths;
805
+ };
806
+ const setTableWidthSpec = {
807
+ id: 'docier.command.table.setWidth',
808
+ label: 'Table width',
809
+ category: 'table',
810
+ permissions: ['format'],
811
+ enabledIn: (host, args) => {
812
+ if (!host.session.aligned)
813
+ return false;
814
+ const target = targetAt(host, args?.anchor);
815
+ return target !== undefined && tableWidthSettable(target, args);
816
+ },
817
+ reason: (host, args) => {
818
+ if (!host.session.aligned)
819
+ return NOT_ALIGNED;
820
+ const target = targetAt(host, args?.anchor);
821
+ if (target === undefined)
822
+ return PLACE_CARET;
823
+ return tableWidthSettable(target, args) ? NEEDS_PROPERTY : BAD_TABLE_WIDTH;
824
+ },
825
+ run: (host, args) => {
826
+ const target = targetAt(host, args.anchor);
827
+ if (target === undefined || !tableWidthSettable(target, args))
828
+ return false;
829
+ const table = target.table;
830
+ const total = Math.max(MIN_TABLE_TWIPS, Math.floor(args.widthTwips ?? 0));
831
+ const grid = table.gridColumns();
832
+ const declared = grid.map((column) => column.width === undefined ? MIN_COLUMN_TWIPS : Math.max(MIN_COLUMN_TWIPS, Math.floor(column.width)));
833
+ const seen = args.fromWidths;
834
+ const current = seen === undefined || seen.length !== declared.length
835
+ ? declared
836
+ : seen.map((value) => Number.isFinite(value) ? Math.max(MIN_COLUMN_TWIPS, Math.floor(value)) : MIN_COLUMN_TWIPS);
837
+ const widths = proportionalWidths(current, total);
838
+ const changed = changedBy([table.element], () => {
839
+ const properties = table.properties;
840
+ properties.ensure();
841
+ properties.layout = 'fixed';
842
+ properties.width.type = 'dxa';
843
+ properties.width.twips = twip(widths.reduce((running, value) => running + value, 0));
844
+ for (let index = 0; index < grid.length; index += 1) {
845
+ const column = grid[index];
846
+ if (column === undefined)
847
+ continue;
848
+ setWAttr(column.element, 'w', String(widths[index] ?? MIN_COLUMN_TWIPS));
849
+ }
850
+ for (const row of table.rows()) {
851
+ for (const span of row.cellSpans()) {
852
+ const spanWidth = Math.max(1, span.span);
853
+ let cellTotal = 0;
854
+ for (let step = 0; step < spanWidth; step += 1) {
855
+ cellTotal += widths[span.start + step] ?? MIN_COLUMN_TWIPS;
856
+ }
857
+ span.cell.properties.width.type = 'dxa';
858
+ span.cell.properties.width.twips = twip(cellTotal);
859
+ }
860
+ }
861
+ });
862
+ if (!changed)
863
+ return false;
864
+ host.session.model.context.forgetSubtree(table.element);
865
+ return true;
866
+ },
867
+ };
868
+ const tableWidthSettable = (target, args) => {
869
+ if (target === undefined || args === undefined)
870
+ return false;
871
+ const width = args.widthTwips;
872
+ if (width === undefined || !Number.isFinite(width))
873
+ return false;
874
+ if (Math.floor(width) < MIN_TABLE_TWIPS)
875
+ return false;
876
+ return target.table.columnCount > 0;
877
+ };
878
+ const rowSettable = (target, args) => {
879
+ if (target === undefined || args === undefined)
880
+ return false;
881
+ const height = args.heightTwips;
882
+ if (height === undefined || !Number.isFinite(height) || Math.floor(height) < MIN_ROW_TWIPS) {
883
+ return false;
884
+ }
885
+ const index = args.row ?? target.row;
886
+ return index >= 0 && index < target.table.rows().length;
887
+ };
888
+ export const tableCommands = (host) => [
889
+ areaCommand(host, insertTableSpec),
890
+ areaCommand(host, insertRowsSpec('docier.command.table.insertRowsAbove', 'Insert rows above', false)),
891
+ areaCommand(host, insertRowsSpec('docier.command.table.insertRowsBelow', 'Insert rows below', true)),
892
+ areaCommand(host, insertRowsSpec('docier.command.table.insertRow', 'Insert row', undefined)),
893
+ areaCommand(host, insertColumnsSpec('docier.command.table.insertColumnsLeft', 'Insert columns left', false)),
894
+ areaCommand(host, insertColumnsSpec('docier.command.table.insertColumnsRight', 'Insert columns right', true)),
895
+ areaCommand(host, insertColumnsSpec('docier.command.table.insertColumn', 'Insert column', undefined)),
896
+ areaCommand(host, deleteRowSpec),
897
+ areaCommand(host, deleteColumnSpec),
898
+ areaCommand(host, mergeSpec),
899
+ areaCommand(host, splitSpec),
900
+ areaCommand(host, setPropertiesSpec),
901
+ areaCommand(host, setColumnWidthSpec),
902
+ areaCommand(host, setTableWidthSpec),
903
+ areaCommand(host, setRowHeightSpec),
904
+ areaCommand(host, distributeSpec),
905
+ areaCommand(host, repeatHeaderSpec),
906
+ ...CELL_ALIGNMENTS.map((alignment) => areaCommand(host, cellAlignmentSpec(alignment))),
907
+ ...AUTO_FIT.map((mode) => areaCommand(host, autoFitSpec(mode))),
908
+ areaCommand(host, deleteSpec),
909
+ ];
910
+ //# sourceMappingURL=table.js.map