@arbidocs/blocks 0.5.107 → 0.5.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ConnectedCallDock-TDYRHPAK.js → ConnectedCallDock-DV4FU376.js} +8 -8
- package/dist/{ConnectedCallDock-TDYRHPAK.js.map → ConnectedCallDock-DV4FU376.js.map} +1 -1
- package/dist/{ConnectedCallDock-H3WWFGXF.cjs → ConnectedCallDock-EM2VVGZK.cjs} +10 -10
- package/dist/{ConnectedCallDock-H3WWFGXF.cjs.map → ConnectedCallDock-EM2VVGZK.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-55O5OUN7.cjs → ConnectedCallRoom-7WEPEWUJ.cjs} +9 -9
- package/dist/{ConnectedCallRoom-55O5OUN7.cjs.map → ConnectedCallRoom-7WEPEWUJ.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-Z6F6WCLH.js → ConnectedCallRoom-RYTZP34O.js} +8 -8
- package/dist/{ConnectedCallRoom-Z6F6WCLH.js.map → ConnectedCallRoom-RYTZP34O.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-NVZRVNOS.js → ConnectedNativeDocxComparison-2NDXXZLQ.js} +15 -15
- package/dist/{ConnectedNativeDocxComparison-NVZRVNOS.js.map → ConnectedNativeDocxComparison-2NDXXZLQ.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-DGBZJ4XA.cjs → ConnectedNativeDocxComparison-7HOY3AVI.cjs} +16 -16
- package/dist/{ConnectedNativeDocxComparison-DGBZJ4XA.cjs.map → ConnectedNativeDocxComparison-7HOY3AVI.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-R4WINUUB.cjs → ConnectedNativeDocxEditor-CUWDPHXN.cjs} +16 -16
- package/dist/{ConnectedNativeDocxEditor-R4WINUUB.cjs.map → ConnectedNativeDocxEditor-CUWDPHXN.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-RSVBN7DY.js → ConnectedNativeDocxEditor-SPZB6Y27.js} +14 -14
- package/dist/{ConnectedNativeDocxEditor-RSVBN7DY.js.map → ConnectedNativeDocxEditor-SPZB6Y27.js.map} +1 -1
- package/dist/{ConnectedProductionSetDialog-2DFBXE2X.js → ConnectedProductionSetDialog-N3EDG3SU.js} +4 -4
- package/dist/{ConnectedProductionSetDialog-2DFBXE2X.js.map → ConnectedProductionSetDialog-N3EDG3SU.js.map} +1 -1
- package/dist/{ConnectedProductionSetDialog-KYDPQ7SG.cjs → ConnectedProductionSetDialog-XAEFEN3N.cjs} +4 -4
- package/dist/{ConnectedProductionSetDialog-KYDPQ7SG.cjs.map → ConnectedProductionSetDialog-XAEFEN3N.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-HLJ5IIOU.js → ConnectedStreamedWordArtifact-6LTGEAJO.js} +15 -15
- package/dist/ConnectedStreamedWordArtifact-6LTGEAJO.js.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-JQ34AOUU.cjs → ConnectedStreamedWordArtifact-HNCRKZTV.cjs} +16 -16
- package/dist/ConnectedStreamedWordArtifact-HNCRKZTV.cjs.map +1 -0
- package/dist/{DocumentReviewCard-7JSXRJZ2.js → DocumentReviewCard-RJD3CO32.js} +8 -8
- package/dist/{DocumentReviewCard-7JSXRJZ2.js.map → DocumentReviewCard-RJD3CO32.js.map} +1 -1
- package/dist/{DocumentReviewCard-C4HVT3WM.cjs → DocumentReviewCard-VON7LOOY.cjs} +8 -8
- package/dist/{DocumentReviewCard-C4HVT3WM.cjs.map → DocumentReviewCard-VON7LOOY.cjs.map} +1 -1
- package/dist/{FilesViewerDialog-IMQTZWKD.js → FilesViewerDialog-7SJGY72Q.js} +21 -21
- package/dist/{FilesViewerDialog-IMQTZWKD.js.map → FilesViewerDialog-7SJGY72Q.js.map} +1 -1
- package/dist/{FilesViewerDialog-UP7GFHYN.cjs → FilesViewerDialog-VIPTC6OT.cjs} +27 -27
- package/dist/{FilesViewerDialog-UP7GFHYN.cjs.map → FilesViewerDialog-VIPTC6OT.cjs.map} +1 -1
- package/dist/{RechartsRenderer-GIRCW7DB.cjs → RechartsRenderer-THES2SE5.cjs} +6 -5
- package/dist/RechartsRenderer-THES2SE5.cjs.map +1 -0
- package/dist/{RechartsRenderer-23OF4H6X.js → RechartsRenderer-XIZLV6GH.js} +6 -5
- package/dist/RechartsRenderer-XIZLV6GH.js.map +1 -0
- package/dist/{WorkspaceTableView-PJM47B5F.cjs → WorkspaceTableView-FNME7TL6.cjs} +9 -9
- package/dist/{WorkspaceTableView-PJM47B5F.cjs.map → WorkspaceTableView-FNME7TL6.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-YDA7A4UJ.js → WorkspaceTableView-XQ6J2JKI.js} +7 -7
- package/dist/{WorkspaceTableView-YDA7A4UJ.js.map → WorkspaceTableView-XQ6J2JKI.js.map} +1 -1
- package/dist/agents/index.cjs +202 -202
- package/dist/agents/index.js +8 -8
- package/dist/{ai-ADS6YSS2.cjs → ai-3SAMEYBB.cjs} +20 -20
- package/dist/ai-3SAMEYBB.cjs.map +1 -0
- package/dist/{ai-KHWTGBT5.js → ai-OTQWSYVK.js} +12 -12
- package/dist/ai-OTQWSYVK.js.map +1 -0
- package/dist/calls/index.cjs +57 -57
- package/dist/calls/index.js +9 -9
- package/dist/chat/index.cjs +3 -3
- package/dist/chat/index.js +3 -3
- package/dist/{chunk-O27K7KTZ.cjs → chunk-2TBQBF4Y.cjs} +5 -5
- package/dist/{chunk-O27K7KTZ.cjs.map → chunk-2TBQBF4Y.cjs.map} +1 -1
- package/dist/{chunk-YJWAGXYM.js → chunk-4ZA2RSQH.js} +3 -3
- package/dist/{chunk-YJWAGXYM.js.map → chunk-4ZA2RSQH.js.map} +1 -1
- package/dist/{chunk-6A4GNM4T.cjs → chunk-5D2ZINOJ.cjs} +16 -16
- package/dist/{chunk-6A4GNM4T.cjs.map → chunk-5D2ZINOJ.cjs.map} +1 -1
- package/dist/{chunk-BFVCYBND.cjs → chunk-5HXQOM3I.cjs} +5 -5
- package/dist/{chunk-BFVCYBND.cjs.map → chunk-5HXQOM3I.cjs.map} +1 -1
- package/dist/{chunk-GSD5U553.cjs → chunk-5KKT65WU.cjs} +3 -3
- package/dist/{chunk-GSD5U553.cjs.map → chunk-5KKT65WU.cjs.map} +1 -1
- package/dist/{chunk-AVGHTUPE.js → chunk-5PWLXLHY.js} +5 -5
- package/dist/chunk-5PWLXLHY.js.map +1 -0
- package/dist/{chunk-BBWLFK3C.js → chunk-5XIMUQ63.js} +3 -3
- package/dist/{chunk-BBWLFK3C.js.map → chunk-5XIMUQ63.js.map} +1 -1
- package/dist/{chunk-AHMRYY7J.cjs → chunk-6DAJXQZZ.cjs} +13 -13
- package/dist/{chunk-AHMRYY7J.cjs.map → chunk-6DAJXQZZ.cjs.map} +1 -1
- package/dist/{chunk-3PV25ICC.js → chunk-6KKVJ2V6.js} +3 -3
- package/dist/{chunk-3PV25ICC.js.map → chunk-6KKVJ2V6.js.map} +1 -1
- package/dist/{chunk-OLAYDOPC.js → chunk-6LUHNFEE.js} +6 -6
- package/dist/{chunk-OLAYDOPC.js.map → chunk-6LUHNFEE.js.map} +1 -1
- package/dist/{chunk-FSXQHEFQ.cjs → chunk-7CDV7Y4U.cjs} +25 -25
- package/dist/{chunk-FSXQHEFQ.cjs.map → chunk-7CDV7Y4U.cjs.map} +1 -1
- package/dist/{chunk-OAIOOVFN.cjs → chunk-7SJXYEZI.cjs} +36 -36
- package/dist/chunk-7SJXYEZI.cjs.map +1 -0
- package/dist/{chunk-LFYKB7KF.cjs → chunk-7V6APLF7.cjs} +19 -19
- package/dist/{chunk-LFYKB7KF.cjs.map → chunk-7V6APLF7.cjs.map} +1 -1
- package/dist/{chunk-4WMGFGYP.cjs → chunk-AJZ66VJC.cjs} +4 -4
- package/dist/{chunk-4WMGFGYP.cjs.map → chunk-AJZ66VJC.cjs.map} +1 -1
- package/dist/{chunk-KCP42W67.cjs → chunk-ARGQ5YZ5.cjs} +3 -3
- package/dist/{chunk-KCP42W67.cjs.map → chunk-ARGQ5YZ5.cjs.map} +1 -1
- package/dist/{chunk-BH6IKGZ3.js → chunk-AUAHGQY6.js} +5 -5
- package/dist/{chunk-BH6IKGZ3.js.map → chunk-AUAHGQY6.js.map} +1 -1
- package/dist/{chunk-KIXFXCHL.js → chunk-CEOCA7ID.js} +3 -3
- package/dist/{chunk-KIXFXCHL.js.map → chunk-CEOCA7ID.js.map} +1 -1
- package/dist/{chunk-TNKPQ3EF.js → chunk-CIRSOYGK.js} +12 -12
- package/dist/{chunk-TNKPQ3EF.js.map → chunk-CIRSOYGK.js.map} +1 -1
- package/dist/{chunk-BAUZUIHB.js → chunk-COL2TJGO.js} +83 -83
- package/dist/chunk-COL2TJGO.js.map +1 -0
- package/dist/{chunk-XHN5KOI2.cjs → chunk-DRLD4P2C.cjs} +8 -8
- package/dist/{chunk-XHN5KOI2.cjs.map → chunk-DRLD4P2C.cjs.map} +1 -1
- package/dist/{chunk-5AC52BHL.cjs → chunk-DYPFNQTQ.cjs} +140 -140
- package/dist/chunk-DYPFNQTQ.cjs.map +1 -0
- package/dist/{chunk-SCLGUHLU.cjs → chunk-E7TGSOPR.cjs} +4 -4
- package/dist/{chunk-SCLGUHLU.cjs.map → chunk-E7TGSOPR.cjs.map} +1 -1
- package/dist/{chunk-CRLFLMTK.cjs → chunk-EOXA4VJH.cjs} +3 -3
- package/dist/{chunk-CRLFLMTK.cjs.map → chunk-EOXA4VJH.cjs.map} +1 -1
- package/dist/{chunk-DBKZANTC.js → chunk-GA47YVW5.js} +3 -3
- package/dist/{chunk-DBKZANTC.js.map → chunk-GA47YVW5.js.map} +1 -1
- package/dist/{chunk-RCZRI72J.cjs → chunk-GMODJT4N.cjs} +4 -4
- package/dist/{chunk-RCZRI72J.cjs.map → chunk-GMODJT4N.cjs.map} +1 -1
- package/dist/{chunk-22KAKJ3W.cjs → chunk-GS5MFUPC.cjs} +4 -4
- package/dist/{chunk-22KAKJ3W.cjs.map → chunk-GS5MFUPC.cjs.map} +1 -1
- package/dist/{chunk-62OMGQHS.js → chunk-H6W3VXHU.js} +3 -3
- package/dist/{chunk-62OMGQHS.js.map → chunk-H6W3VXHU.js.map} +1 -1
- package/dist/{chunk-DX3Z2COD.cjs → chunk-HUYKO2ES.cjs} +3 -3
- package/dist/{chunk-DX3Z2COD.cjs.map → chunk-HUYKO2ES.cjs.map} +1 -1
- package/dist/{chunk-U5F5P4YU.js → chunk-IK234EFX.js} +12 -12
- package/dist/{chunk-U5F5P4YU.js.map → chunk-IK234EFX.js.map} +1 -1
- package/dist/{chunk-UQ2OBHMV.js → chunk-JUGEFTRC.js} +1010 -1010
- package/dist/chunk-JUGEFTRC.js.map +1 -0
- package/dist/{chunk-CHQMVIHR.js → chunk-LPGBRMYS.js} +36 -36
- package/dist/chunk-LPGBRMYS.js.map +1 -0
- package/dist/{chunk-D35EHOK5.cjs → chunk-M23W7IID.cjs} +12 -12
- package/dist/chunk-M23W7IID.cjs.map +1 -0
- package/dist/{chunk-FPOKWML2.js → chunk-MIVNNQO3.js} +21 -4
- package/dist/chunk-MIVNNQO3.js.map +1 -0
- package/dist/{chunk-WI3BVKEC.cjs → chunk-MNFI66H5.cjs} +5 -5
- package/dist/{chunk-WI3BVKEC.cjs.map → chunk-MNFI66H5.cjs.map} +1 -1
- package/dist/{chunk-T5ZMG6MC.js → chunk-NF4M7PUB.js} +3 -3
- package/dist/{chunk-T5ZMG6MC.js.map → chunk-NF4M7PUB.js.map} +1 -1
- package/dist/{chunk-ZNY5W3VX.js → chunk-NPSFPBIB.js} +3 -3
- package/dist/{chunk-ZNY5W3VX.js.map → chunk-NPSFPBIB.js.map} +1 -1
- package/dist/{chunk-LYW5A35J.js → chunk-OMIYTUVR.js} +12 -12
- package/dist/{chunk-LYW5A35J.js.map → chunk-OMIYTUVR.js.map} +1 -1
- package/dist/{chunk-ZMVF7EYJ.cjs → chunk-PBPO54KZ.cjs} +21 -3
- package/dist/chunk-PBPO54KZ.cjs.map +1 -0
- package/dist/{chunk-7V4OCZS6.cjs → chunk-RA3EGF6K.cjs} +6 -6
- package/dist/{chunk-7V4OCZS6.cjs.map → chunk-RA3EGF6K.cjs.map} +1 -1
- package/dist/{chunk-PL7O3RJJ.cjs → chunk-RKBAY7GZ.cjs} +3 -3
- package/dist/{chunk-PL7O3RJJ.cjs.map → chunk-RKBAY7GZ.cjs.map} +1 -1
- package/dist/{chunk-J3E5CSSC.js → chunk-RKFWBIKS.js} +3 -3
- package/dist/{chunk-J3E5CSSC.js.map → chunk-RKFWBIKS.js.map} +1 -1
- package/dist/{chunk-YLKHTBYA.js → chunk-RRP7MQAO.js} +3 -3
- package/dist/{chunk-YLKHTBYA.js.map → chunk-RRP7MQAO.js.map} +1 -1
- package/dist/{chunk-U6LQ6Z3P.cjs → chunk-SP3IKIPA.cjs} +6 -6
- package/dist/{chunk-U6LQ6Z3P.cjs.map → chunk-SP3IKIPA.cjs.map} +1 -1
- package/dist/{chunk-GX75YCWJ.cjs → chunk-SQUOXOY3.cjs} +560 -560
- package/dist/chunk-SQUOXOY3.cjs.map +1 -0
- package/dist/{chunk-6ZYOUT73.js → chunk-T5LORFHL.js} +7 -7
- package/dist/{chunk-6ZYOUT73.js.map → chunk-T5LORFHL.js.map} +1 -1
- package/dist/{chunk-45OU2UAA.cjs → chunk-TEMTKBBL.cjs} +10 -10
- package/dist/{chunk-45OU2UAA.cjs.map → chunk-TEMTKBBL.cjs.map} +1 -1
- package/dist/{chunk-PHDUN4SG.cjs → chunk-THCMGAFX.cjs} +41 -41
- package/dist/{chunk-PHDUN4SG.cjs.map → chunk-THCMGAFX.cjs.map} +1 -1
- package/dist/{chunk-HTGEAQOA.js → chunk-TOMDMKOD.js} +7 -7
- package/dist/{chunk-HTGEAQOA.js.map → chunk-TOMDMKOD.js.map} +1 -1
- package/dist/{chunk-WJHRWXWJ.js → chunk-TXIAF4PX.js} +3 -3
- package/dist/{chunk-WJHRWXWJ.js.map → chunk-TXIAF4PX.js.map} +1 -1
- package/dist/{chunk-6M5NAAWX.js → chunk-UCSEE52D.js} +3 -3
- package/dist/{chunk-6M5NAAWX.js.map → chunk-UCSEE52D.js.map} +1 -1
- package/dist/{chunk-I7CJDF3V.cjs → chunk-UHMP6S7M.cjs} +104 -103
- package/dist/chunk-UHMP6S7M.cjs.map +1 -0
- package/dist/{chunk-PGCKTXYH.js → chunk-UHUI6A36.js} +3 -3
- package/dist/{chunk-PGCKTXYH.js.map → chunk-UHUI6A36.js.map} +1 -1
- package/dist/{chunk-6KQVTMRL.cjs → chunk-UOGXKHTJ.cjs} +3 -3
- package/dist/{chunk-6KQVTMRL.cjs.map → chunk-UOGXKHTJ.cjs.map} +1 -1
- package/dist/{chunk-7S7YVBFK.js → chunk-VDSDG4FR.js} +3 -3
- package/dist/{chunk-7S7YVBFK.js.map → chunk-VDSDG4FR.js.map} +1 -1
- package/dist/{chunk-3GFQNJYE.js → chunk-VGWCHX6G.js} +104 -103
- package/dist/chunk-VGWCHX6G.js.map +1 -0
- package/dist/{chunk-VY3HTT37.js → chunk-VUH547VQ.js} +3 -3
- package/dist/{chunk-VY3HTT37.js.map → chunk-VUH547VQ.js.map} +1 -1
- package/dist/{chunk-AZCMKGDG.js → chunk-W37PFYFL.js} +4 -4
- package/dist/{chunk-AZCMKGDG.js.map → chunk-W37PFYFL.js.map} +1 -1
- package/dist/{chunk-JGUM4EXE.cjs → chunk-W3IX3GZS.cjs} +8 -8
- package/dist/{chunk-JGUM4EXE.cjs.map → chunk-W3IX3GZS.cjs.map} +1 -1
- package/dist/{chunk-UCA4JLLJ.cjs → chunk-X7GT57KW.cjs} +3 -3
- package/dist/{chunk-UCA4JLLJ.cjs.map → chunk-X7GT57KW.cjs.map} +1 -1
- package/dist/{chunk-IXL2KJOZ.cjs → chunk-XBEGD33U.cjs} +40 -40
- package/dist/{chunk-IXL2KJOZ.cjs.map → chunk-XBEGD33U.cjs.map} +1 -1
- package/dist/{chunk-FDNIK5YS.cjs → chunk-XBKIFGBB.cjs} +8 -8
- package/dist/{chunk-FDNIK5YS.cjs.map → chunk-XBKIFGBB.cjs.map} +1 -1
- package/dist/{chunk-HZE5MHQO.js → chunk-XT7HKQ4H.js} +3 -3
- package/dist/{chunk-HZE5MHQO.js.map → chunk-XT7HKQ4H.js.map} +1 -1
- package/dist/{chunk-M3OK6KGR.js → chunk-ZGQKED5T.js} +3 -3
- package/dist/{chunk-M3OK6KGR.js.map → chunk-ZGQKED5T.js.map} +1 -1
- package/dist/{chunk-NWBCZ4PA.js → chunk-ZKBYG6MN.js} +4 -4
- package/dist/{chunk-NWBCZ4PA.js.map → chunk-ZKBYG6MN.js.map} +1 -1
- package/dist/collaboration/index.cjs +1 -1
- package/dist/collaboration/index.js +1 -1
- package/dist/connect/docx.cjs +19 -19
- package/dist/connect/docx.js +15 -15
- package/dist/connect/index.cjs +762 -762
- package/dist/connect/index.js +63 -63
- package/dist/connect/viewer.cjs +14 -14
- package/dist/connect/viewer.js +13 -13
- package/dist/connection/dashboards/ConnectedDashboardsPage.d.ts +6 -0
- package/dist/dashboards/chartModel.d.ts +12 -0
- package/dist/dashboards/index.cjs +113 -42
- package/dist/dashboards/index.cjs.map +1 -1
- package/dist/dashboards/index.js +95 -24
- package/dist/dashboards/index.js.map +1 -1
- package/dist/embed/index.cjs +29 -29
- package/dist/embed/index.js +23 -23
- package/dist/facts/index.cjs +43 -43
- package/dist/facts/index.js +2 -2
- package/dist/files/index.cjs +1 -1
- package/dist/files/index.js +1 -1
- package/dist/home/index.cjs +31 -31
- package/dist/home/index.js +3 -3
- package/dist/index.cjs +383 -383
- package/dist/index.js +21 -21
- package/dist/settings/index.cjs +153 -153
- package/dist/settings/index.js +4 -4
- package/dist/shell/index.cjs +36 -36
- package/dist/shell/index.js +4 -4
- package/dist/site/index.cjs +5 -5
- package/dist/site/index.js +1 -1
- package/dist/studio/index.cjs +19 -19
- package/dist/studio/index.js +14 -14
- package/dist/styles.css +1 -1
- package/dist/workflow-canvas/index.cjs +33 -33
- package/dist/workflow-canvas/index.js +22 -22
- package/node_modules/@arbidocs/coedit/package.json +2 -2
- package/node_modules/@docx-editor.dev/core/dist/automation.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/automation.d.ts +60 -13
- package/node_modules/@docx-editor.dev/core/dist/automation.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/binding.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/binding.d.ts +21 -13
- package/node_modules/@docx-editor.dev/core/dist/binding.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{index-Bsg7oIKP.d.ts → chrome-print-CAs51cpq.d.ts} +31 -21
- package/node_modules/@docx-editor.dev/core/dist/{chunk-VDNNLG6X.js → chunk-236O4YQW.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-4HENIAFG.js +1 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-SRPILEWV.cjs → chunk-6JPL6ZAS.cjs} +5 -5
- package/node_modules/@docx-editor.dev/core/dist/{chunk-2RC2EPND.js → chunk-6ZQP4HQ7.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{chunk-ZUHOMK52.cjs → chunk-7WQ7AAHW.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{chunk-Z6WBFXJU.js → chunk-BCXH4BXB.js} +3 -3
- package/node_modules/@docx-editor.dev/core/dist/{chunk-QMLCVPCD.cjs → chunk-BY2ACZZ6.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-CAJEXXVG.cjs +4 -0
- package/node_modules/@docx-editor.dev/core/dist/chunk-CPWLFPWC.js +30 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-6APGXLBB.cjs → chunk-D7ZMDMPX.cjs} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/chunk-DOHF6FA7.cjs +30 -0
- package/node_modules/@docx-editor.dev/core/dist/chunk-DVX32P2P.js +27 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-6EYYL7FL.js → chunk-E4LOMDNL.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-EKLM7NWB.cjs +7 -0
- package/node_modules/@docx-editor.dev/core/dist/chunk-G3K63G7P.cjs +27 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-5CSUYANV.js → chunk-G4HOFIKJ.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{chunk-K5U2PLDP.cjs → chunk-JLVBDYVQ.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-LQX36Z5P.js +7 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-TSLBZ26X.js → chunk-LSZ6KPKK.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{chunk-O2AL2HSJ.cjs → chunk-MM5QBMTE.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{chunk-ETTO6GK3.js → chunk-OMCG63ZF.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-OSFOJTHU.cjs +18 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-E7BQA6UP.js → chunk-RCLZXP3B.js} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-T6K2QYNZ.cjs +2 -0
- package/node_modules/@docx-editor.dev/core/dist/chunk-TRGAVV2Y.js +4 -0
- package/node_modules/@docx-editor.dev/core/dist/chunk-U4JZVSOE.js +2 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-2GO5T2JU.cjs → chunk-UHHYFIDT.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-V3N4SOAK.cjs +1 -0
- package/node_modules/@docx-editor.dev/core/dist/{chunk-6AWEKBLB.cjs → chunk-W35WTWAO.cjs} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-YQ5G6LC7.js +18 -0
- package/node_modules/@docx-editor.dev/core/dist/collaboration/replication.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/collaboration/replication.d.ts +5 -5
- package/node_modules/@docx-editor.dev/core/dist/collaboration/replication.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/collaboration.d.ts +4 -4
- package/node_modules/@docx-editor.dev/core/dist/contracts/document.d.ts +3 -3
- package/node_modules/@docx-editor.dev/core/dist/contracts/editor.d.ts +9 -10
- package/node_modules/@docx-editor.dev/core/dist/contracts/interaction.d.ts +2 -2
- package/node_modules/@docx-editor.dev/core/dist/contracts/modules.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/contracts/modules.d.ts +33 -9
- package/node_modules/@docx-editor.dev/core/dist/contracts/modules.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/contracts/types.d.ts +2 -2
- package/node_modules/@docx-editor.dev/core/dist/{custom-node-writes-cvL5rhcD.d.ts → custom-node-writes-Bn6uciLb.d.ts} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/diagnostic-context-B8M79cfK.d.ts +30 -0
- package/node_modules/@docx-editor.dev/core/dist/diagnostic-hints-BeVjfNOv.d.ts +113 -0
- package/node_modules/@docx-editor.dev/core/dist/{document-protection-BAGVGqaP.d.ts → document-protection-CUb55pl_.d.ts} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/{editor-Ci7IZGmG.d.ts → editor-CZQZmTIU.d.ts} +386 -9
- package/node_modules/@docx-editor.dev/core/dist/{editor-scope-OHPwVQ5l.d.ts → editor-scope-7o9xweiJ.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/editor.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/editor.d.ts +54 -33
- package/node_modules/@docx-editor.dev/core/dist/editor.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/export.cjs +2 -2
- package/node_modules/@docx-editor.dev/core/dist/export.d.ts +13 -14
- package/node_modules/@docx-editor.dev/core/dist/export.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{font-resolver-BVQB14qT.d.ts → font-resolver-lSBLirLR.d.ts} +3 -3
- package/node_modules/@docx-editor.dev/core/dist/{headless-document-view-qH331moE.d.ts → headless-document-view-pp3q7wIh.d.ts} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/{image-resources-BN-hUgCn.d.ts → image-resources-tXLQShoC.d.ts} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/index.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/index.d.ts +65 -20
- package/node_modules/@docx-editor.dev/core/dist/index.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{layout-shaping-BEyuiQOk.d.ts → layout-shaping-BD-dF_rn.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/layout.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/layout.d.ts +17 -20
- package/node_modules/@docx-editor.dev/core/dist/layout.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{note-properties-4Y9o6Gyk.d.ts → note-properties-qQUjO1GQ.d.ts} +3 -3
- package/node_modules/@docx-editor.dev/core/dist/{omml-equation-CuzBL5DD.d.ts → omml-equation-BUbU0utM.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/output.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/output.d.ts +8 -9
- package/node_modules/@docx-editor.dev/core/dist/output.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{protocol-Bqk4Izjc.d.ts → protocol-DYzzz2ej.d.ts} +2 -2
- package/node_modules/@docx-editor.dev/core/dist/{review-paragraph-order-DT-n6ouC.d.ts → review-paragraph-order-CN_0l2Cb.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{semantic-cell-selection-D9D1KSXq.d.ts → semantic-cell-selection-eYag3P47.d.ts} +4 -211
- package/node_modules/@docx-editor.dev/core/dist/{semantic-interaction-CIC-PooQ.d.ts → semantic-interaction-kR_QB845.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{semantic-paint-BME37OMv.d.ts → semantic-paint-ZayFF3tD.d.ts} +17 -5
- package/node_modules/@docx-editor.dev/core/dist/{semantic-record-queries-CBlZqZNa.d.ts → semantic-record-queries-Bsgth6lv.d.ts} +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{semantic-records-4B3WwFAi.d.ts → semantic-records-DQmumPgL.d.ts} +1279 -828
- package/node_modules/@docx-editor.dev/core/dist/store.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/store.d.ts +1466 -1464
- package/node_modules/@docx-editor.dev/core/dist/store.js +1 -1
- package/node_modules/@docx-editor.dev/core/dist/{tree-package-fragment-BeeKxDw8.d.ts → tree-package-store-CovjNARF.d.ts} +83 -83
- package/node_modules/@docx-editor.dev/core/dist/{tree-session-contract-CVbmlMlq.d.ts → tree-session-contract-CZVAGl51.d.ts} +6 -6
- package/node_modules/@docx-editor.dev/core/dist/{types-barrel-D3xCgQX6.d.ts → types-barrel-DuC5QBNC.d.ts} +548 -527
- package/node_modules/@docx-editor.dev/core/package.json +3 -3
- package/node_modules/@docx-editor.dev/react/dist/index.js +3 -3
- package/node_modules/@docx-editor.dev/react/dist/index.mjs +3 -3
- package/node_modules/@docx-editor.dev/react/package.json +4 -4
- package/package.json +8 -8
- package/dist/ConnectedStreamedWordArtifact-HLJ5IIOU.js.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-JQ34AOUU.cjs.map +0 -1
- package/dist/RechartsRenderer-23OF4H6X.js.map +0 -1
- package/dist/RechartsRenderer-GIRCW7DB.cjs.map +0 -1
- package/dist/ai-ADS6YSS2.cjs.map +0 -1
- package/dist/ai-KHWTGBT5.js.map +0 -1
- package/dist/chunk-3GFQNJYE.js.map +0 -1
- package/dist/chunk-5AC52BHL.cjs.map +0 -1
- package/dist/chunk-AVGHTUPE.js.map +0 -1
- package/dist/chunk-BAUZUIHB.js.map +0 -1
- package/dist/chunk-CHQMVIHR.js.map +0 -1
- package/dist/chunk-D35EHOK5.cjs.map +0 -1
- package/dist/chunk-FPOKWML2.js.map +0 -1
- package/dist/chunk-GX75YCWJ.cjs.map +0 -1
- package/dist/chunk-I7CJDF3V.cjs.map +0 -1
- package/dist/chunk-OAIOOVFN.cjs.map +0 -1
- package/dist/chunk-UQ2OBHMV.js.map +0 -1
- package/dist/chunk-ZMVF7EYJ.cjs.map +0 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-4GBTELJV.cjs +0 -28
- package/node_modules/@docx-editor.dev/core/dist/chunk-4R3TEXMN.js +0 -18
- package/node_modules/@docx-editor.dev/core/dist/chunk-EO4C5QJW.cjs +0 -2
- package/node_modules/@docx-editor.dev/core/dist/chunk-FIJZIQXA.cjs +0 -18
- package/node_modules/@docx-editor.dev/core/dist/chunk-FRXAOVTB.js +0 -28
- package/node_modules/@docx-editor.dev/core/dist/chunk-J6BVWIDB.js +0 -2
- package/node_modules/@docx-editor.dev/core/dist/chunk-JGNVNT2A.cjs +0 -2
- package/node_modules/@docx-editor.dev/core/dist/chunk-KKIJG3C6.js +0 -2
- package/node_modules/@docx-editor.dev/core/dist/chunk-LWDSDCMO.js +0 -27
- package/node_modules/@docx-editor.dev/core/dist/chunk-NBCVVZOM.cjs +0 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-O5INAWZQ.js +0 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-RCHS4ZEH.cjs +0 -27
- package/node_modules/@docx-editor.dev/core/dist/chunk-VHAVHCQY.js +0 -7
- package/node_modules/@docx-editor.dev/core/dist/chunk-VX43VBAX.cjs +0 -7
- package/node_modules/@docx-editor.dev/core/dist/review-pane-D9jm8DcY.d.ts +0 -128
- package/node_modules/@docx-editor.dev/core/dist/revision-projection-DZ4kKVev.d.ts +0 -242
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as HistoryGroupOutcome } from './editor-scope-
|
|
1
|
+
import { c as HistoryGroupOutcome } from './editor-scope-7o9xweiJ.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* How a tracked change is addressed: `@w:id`, `@w:author` and `@w:date` together, within a
|
|
@@ -1072,56 +1072,6 @@ interface InsertBuildingBlockOp {
|
|
|
1072
1072
|
readonly blocks: readonly OoxmlNode[];
|
|
1073
1073
|
}
|
|
1074
1074
|
|
|
1075
|
-
/**
|
|
1076
|
-
* Why a zip was refused at the trust boundary.
|
|
1077
|
-
*
|
|
1078
|
-
* `too-large` and `too-many-entries` are the zip-bomb guards; `bad-name` catches path traversal —
|
|
1079
|
-
* an entry with `..` or a leading `/` is rejected rather than normalized.
|
|
1080
|
-
*/
|
|
1081
|
-
type ZipRejection = 'too-many-entries' | 'too-large' | 'bad-name' | 'inflate-error';
|
|
1082
|
-
/** Archive caps: entry count, total decompressed bytes, and the decompression ratio. */
|
|
1083
|
-
interface ZipLimits {
|
|
1084
|
-
readonly maxEntries: number;
|
|
1085
|
-
/** Max total UNCOMPRESSED bytes across the archive. */
|
|
1086
|
-
readonly maxTotalBytes: number;
|
|
1087
|
-
/**
|
|
1088
|
-
* Max ratio of the archive's total declared uncompressed bytes to the archive's own byte
|
|
1089
|
-
* length (zip-bomb guard). Applies once that total exceeds 8 MiB, so a small archive is
|
|
1090
|
-
* never refused for compressing well.
|
|
1091
|
-
*/
|
|
1092
|
-
readonly maxRatio?: number;
|
|
1093
|
-
}
|
|
1094
|
-
/** The archive caps in force when a host configures none. Conservative and finite. */
|
|
1095
|
-
declare const DEFAULT_ZIP_LIMITS: ZipLimits;
|
|
1096
|
-
/** The read entries, or the typed refusal. Never throws — the bytes are untrusted. */
|
|
1097
|
-
type ZipReadResult = {
|
|
1098
|
-
readonly ok: true;
|
|
1099
|
-
readonly entries: ReadonlyMap<string, Uint8Array>;
|
|
1100
|
-
} | {
|
|
1101
|
-
readonly ok: false;
|
|
1102
|
-
readonly reason: ZipRejection;
|
|
1103
|
-
readonly detail?: string;
|
|
1104
|
-
readonly limit?: 'zip.maxTotalBytes' | 'zip.maxRatio';
|
|
1105
|
-
};
|
|
1106
|
-
/**
|
|
1107
|
-
* Inflate a ZIP archive with bounds + OPC name normalization. Entry name, count, archive
|
|
1108
|
-
* ratio, and total-uncompressed-size limits are enforced BEFORE each entry is decompressed
|
|
1109
|
-
* (via fflate's pre-inflation filter), so a zip bomb or a traversal name is rejected without
|
|
1110
|
-
* ever being inflated. Keys are canonical part names.
|
|
1111
|
-
*
|
|
1112
|
-
* The budgets count each entry's DECLARED sizes, and the declared size is also a hard cap on
|
|
1113
|
-
* what the entry may produce: fflate inflates into a buffer of exactly `originalSize` bytes
|
|
1114
|
-
* and never grows it, so an entry whose stream holds more than it declares is truncated (or
|
|
1115
|
-
* refused as `inflate-error`), never expanded past its budget. A stored entry is copied at
|
|
1116
|
-
* its compressed size, so the larger of its two declared sizes is what counts.
|
|
1117
|
-
*/
|
|
1118
|
-
declare function readZip(bytes: Uint8Array, limits?: ZipLimits): ZipReadResult;
|
|
1119
|
-
/** Deflate a set of canonical-part-name -> bytes into a ZIP archive. Every part name
|
|
1120
|
-
* is re-validated through the OPC normalization profile before writing, so a
|
|
1121
|
-
* traversal/encoded/normalized-alias name from an untrusted serialized model can
|
|
1122
|
-
* never be smuggled into a ZIP entry (write-side path-traversal guard). */
|
|
1123
|
-
declare function writeZip(entries: ReadonlyMap<string, Uint8Array>): Uint8Array;
|
|
1124
|
-
|
|
1125
1075
|
/**
|
|
1126
1076
|
* Why a part or relationship name was refused.
|
|
1127
1077
|
*
|
|
@@ -1260,91 +1210,6 @@ type ImageRelationshipResolution = {
|
|
|
1260
1210
|
*/
|
|
1261
1211
|
declare function resolveImageRelationship(records: readonly RelationshipRecord[] | undefined, ownerPart: string, relationshipId: string): ImageRelationshipResolution;
|
|
1262
1212
|
|
|
1263
|
-
/** One `<Default>`: a file extension mapped to a content type. */
|
|
1264
|
-
interface DefaultRecord {
|
|
1265
|
-
readonly extension: string;
|
|
1266
|
-
readonly contentType: string;
|
|
1267
|
-
readonly order: number;
|
|
1268
|
-
}
|
|
1269
|
-
/** One `<Override>`: a specific part name mapped to a content type. Beats any Default. */
|
|
1270
|
-
interface OverrideRecord {
|
|
1271
|
-
readonly partName: string;
|
|
1272
|
-
readonly contentType: string;
|
|
1273
|
-
readonly order: number;
|
|
1274
|
-
}
|
|
1275
|
-
/**
|
|
1276
|
-
* The authored `[Content_Types].xml` records, in significant order.
|
|
1277
|
-
*
|
|
1278
|
-
* Retained rather than collapsed into a lookup, because the file's lexical form and ordering are
|
|
1279
|
-
* part of what a lossless save re-emits.
|
|
1280
|
-
*/
|
|
1281
|
-
interface ContentTypeRecords {
|
|
1282
|
-
readonly defaults: readonly DefaultRecord[];
|
|
1283
|
-
readonly overrides: readonly OverrideRecord[];
|
|
1284
|
-
}
|
|
1285
|
-
/**
|
|
1286
|
-
* Why content-type records could not be indexed.
|
|
1287
|
-
*
|
|
1288
|
-
* All fail CLOSED: conflicting Defaults on one extension, duplicate normalized Override names, or
|
|
1289
|
-
* invalid MIME syntax are refused rather than resolved by picking one.
|
|
1290
|
-
*/
|
|
1291
|
-
type ContentTypeError = {
|
|
1292
|
-
readonly code: 'invalid-mime';
|
|
1293
|
-
readonly value: string;
|
|
1294
|
-
} | {
|
|
1295
|
-
readonly code: 'conflicting-default';
|
|
1296
|
-
readonly extension: string;
|
|
1297
|
-
} | {
|
|
1298
|
-
readonly code: 'duplicate-override';
|
|
1299
|
-
readonly partName: string;
|
|
1300
|
-
} | {
|
|
1301
|
-
readonly code: 'invalid-override-name';
|
|
1302
|
-
readonly partName: string;
|
|
1303
|
-
} | {
|
|
1304
|
-
readonly code: 'too-many-records';
|
|
1305
|
-
readonly limit: number;
|
|
1306
|
-
};
|
|
1307
|
-
/** Whether a string is syntactically a MIME type. Syntax only — no registry lookup. */
|
|
1308
|
-
declare function isValidMime(value: string): boolean;
|
|
1309
|
-
/** ASCII-case-insensitive extension key (leading dot removed; ASCII-only fold). */
|
|
1310
|
-
declare function extensionKey(extension: string): string;
|
|
1311
|
-
/** The resolved lookup: Override by case-folded part name, Default by case-insensitive extension. */
|
|
1312
|
-
interface ContentTypeIndex {
|
|
1313
|
-
/** ext key -> single MIME (identical duplicates collapsed). */
|
|
1314
|
-
readonly defaults: ReadonlyMap<string, string>;
|
|
1315
|
-
/** case-folded part name -> MIME. */
|
|
1316
|
-
readonly overrides: ReadonlyMap<string, string>;
|
|
1317
|
-
}
|
|
1318
|
-
/** The built index, or the conflict that made it impossible. */
|
|
1319
|
-
type IndexResult = {
|
|
1320
|
-
readonly ok: true;
|
|
1321
|
-
readonly index: ContentTypeIndex;
|
|
1322
|
-
} | {
|
|
1323
|
-
readonly ok: false;
|
|
1324
|
-
readonly error: ContentTypeError;
|
|
1325
|
-
};
|
|
1326
|
-
/**
|
|
1327
|
-
* Build a resolved content-type index, failing closed on conflict/duplicate/MIME
|
|
1328
|
-
* errors. `maxRecords` bounds the combined record count (N/N+1 gate).
|
|
1329
|
-
*/
|
|
1330
|
-
declare function buildContentTypeIndex(records: ContentTypeRecords, maxRecords?: number): IndexResult;
|
|
1331
|
-
/**
|
|
1332
|
-
* A part's content type, or why it has none.
|
|
1333
|
-
*
|
|
1334
|
-
* An orphan record never determines a part's type — a Default with no matching part is preserved
|
|
1335
|
-
* inertly rather than applied.
|
|
1336
|
-
*/
|
|
1337
|
-
type ResolveResult = {
|
|
1338
|
-
readonly ok: true;
|
|
1339
|
-
readonly contentType: string;
|
|
1340
|
-
readonly source: 'override' | 'default';
|
|
1341
|
-
} | {
|
|
1342
|
-
readonly ok: false;
|
|
1343
|
-
readonly reason: 'unknown';
|
|
1344
|
-
};
|
|
1345
|
-
/** Resolve a part's content type: Override wins over Default; else unknown. */
|
|
1346
|
-
declare function resolveContentType(index: ContentTypeIndex, partName: string): ResolveResult;
|
|
1347
|
-
|
|
1348
1213
|
type ShapeSchemeColorResolver = (scheme: string) => string | null;
|
|
1349
1214
|
type ShapeStyleMatrixResolver = (kind: 'fill' | 'line', index: number) => OoxmlElement | null;
|
|
1350
1215
|
/**
|
|
@@ -1612,80 +1477,303 @@ interface GroupPictureProjection {
|
|
|
1612
1477
|
}
|
|
1613
1478
|
|
|
1614
1479
|
/**
|
|
1615
|
-
*
|
|
1480
|
+
* Why a zip was refused at the trust boundary.
|
|
1616
1481
|
*
|
|
1617
|
-
*
|
|
1618
|
-
*
|
|
1482
|
+
* `too-large` and `too-many-entries` are the zip-bomb guards; `bad-name` catches path traversal —
|
|
1483
|
+
* an entry with `..` or a leading `/` is rejected rather than normalized.
|
|
1619
1484
|
*/
|
|
1620
|
-
type
|
|
1621
|
-
/**
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
readonly
|
|
1632
|
-
readonly right: number;
|
|
1633
|
-
readonly bottom: number;
|
|
1634
|
-
}
|
|
1635
|
-
interface DrawingTransform {
|
|
1636
|
-
readonly rotationDegrees: number;
|
|
1637
|
-
readonly flipHorizontal: boolean;
|
|
1638
|
-
readonly flipVertical: boolean;
|
|
1639
|
-
/** Source `a:off` in EMU; defaults to origin when absent. */
|
|
1640
|
-
readonly offsetEmu: Readonly<{
|
|
1641
|
-
x: number;
|
|
1642
|
-
y: number;
|
|
1643
|
-
}>;
|
|
1644
|
-
/** Source `a:ext` in EMU; zero falls back to `wp:extent` at geometry time. */
|
|
1645
|
-
readonly extentEmu: Readonly<{
|
|
1646
|
-
cx: number;
|
|
1647
|
-
cy: number;
|
|
1648
|
-
}>;
|
|
1485
|
+
type ZipRejection = 'too-many-entries' | 'too-large' | 'bad-name' | 'inflate-error';
|
|
1486
|
+
/** Archive caps: entry count, total decompressed bytes, and the decompression ratio. */
|
|
1487
|
+
interface ZipLimits {
|
|
1488
|
+
readonly maxEntries: number;
|
|
1489
|
+
/** Max total UNCOMPRESSED bytes across the archive. */
|
|
1490
|
+
readonly maxTotalBytes: number;
|
|
1491
|
+
/**
|
|
1492
|
+
* Max ratio of the archive's total declared uncompressed bytes to the archive's own byte
|
|
1493
|
+
* length (zip-bomb guard). Applies once that total exceeds 8 MiB, so a small archive is
|
|
1494
|
+
* never refused for compressing well.
|
|
1495
|
+
*/
|
|
1496
|
+
readonly maxRatio?: number;
|
|
1649
1497
|
}
|
|
1498
|
+
/** The archive caps in force when a host configures none. Conservative and finite. */
|
|
1499
|
+
declare const DEFAULT_ZIP_LIMITS: ZipLimits;
|
|
1500
|
+
/** The read entries, or the typed refusal. Never throws — the bytes are untrusted. */
|
|
1501
|
+
type ZipReadResult = {
|
|
1502
|
+
readonly ok: true;
|
|
1503
|
+
readonly entries: ReadonlyMap<string, Uint8Array>;
|
|
1504
|
+
} | {
|
|
1505
|
+
readonly ok: false;
|
|
1506
|
+
readonly reason: ZipRejection;
|
|
1507
|
+
readonly detail?: string;
|
|
1508
|
+
readonly limit?: 'zip.maxTotalBytes' | 'zip.maxRatio';
|
|
1509
|
+
};
|
|
1650
1510
|
/**
|
|
1651
|
-
*
|
|
1511
|
+
* Inflate a ZIP archive with bounds + OPC name normalization. Entry name, count, archive
|
|
1512
|
+
* ratio, and total-uncompressed-size limits are enforced BEFORE each entry is decompressed
|
|
1513
|
+
* (via fflate's pre-inflation filter), so a zip bomb or a traversal name is rejected without
|
|
1514
|
+
* ever being inflated. Keys are canonical part names.
|
|
1652
1515
|
*
|
|
1653
|
-
*
|
|
1654
|
-
*
|
|
1516
|
+
* The budgets count each entry's DECLARED sizes, and the declared size is also a hard cap on
|
|
1517
|
+
* what the entry may produce: fflate inflates into a buffer of exactly `originalSize` bytes
|
|
1518
|
+
* and never grows it, so an entry whose stream holds more than it declares is truncated (or
|
|
1519
|
+
* refused as `inflate-error`), never expanded past its budget. A stored entry is copied at
|
|
1520
|
+
* its compressed size, so the larger of its two declared sizes is what counts.
|
|
1655
1521
|
*/
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1522
|
+
declare function readZip(bytes: Uint8Array, limits?: ZipLimits): ZipReadResult;
|
|
1523
|
+
/** Deflate a set of canonical-part-name -> bytes into a ZIP archive. Every part name
|
|
1524
|
+
* is re-validated through the OPC normalization profile before writing, so a
|
|
1525
|
+
* traversal/encoded/normalized-alias name from an untrusted serialized model can
|
|
1526
|
+
* never be smuggled into a ZIP entry (write-side path-traversal guard). */
|
|
1527
|
+
declare function writeZip(entries: ReadonlyMap<string, Uint8Array>): Uint8Array;
|
|
1528
|
+
|
|
1529
|
+
/** One `<Default>`: a file extension mapped to a content type. */
|
|
1530
|
+
interface DefaultRecord {
|
|
1531
|
+
readonly extension: string;
|
|
1532
|
+
readonly contentType: string;
|
|
1533
|
+
readonly order: number;
|
|
1661
1534
|
}
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
readonly
|
|
1665
|
-
readonly
|
|
1666
|
-
readonly
|
|
1535
|
+
/** One `<Override>`: a specific part name mapped to a content type. Beats any Default. */
|
|
1536
|
+
interface OverrideRecord {
|
|
1537
|
+
readonly partName: string;
|
|
1538
|
+
readonly contentType: string;
|
|
1539
|
+
readonly order: number;
|
|
1667
1540
|
}
|
|
1668
1541
|
/**
|
|
1669
|
-
*
|
|
1542
|
+
* The authored `[Content_Types].xml` records, in significant order.
|
|
1670
1543
|
*
|
|
1671
|
-
*
|
|
1672
|
-
*
|
|
1544
|
+
* Retained rather than collapsed into a lookup, because the file's lexical form and ordering are
|
|
1545
|
+
* part of what a lossless save re-emits.
|
|
1673
1546
|
*/
|
|
1674
|
-
interface
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
* `wp:simplePos` x/y. `'frame'` (default) uses positionH/V relative frames.
|
|
1678
|
-
*/
|
|
1679
|
-
readonly mode?: 'frame' | 'simple';
|
|
1680
|
-
readonly horizontalEmu?: number;
|
|
1681
|
-
readonly verticalEmu?: number;
|
|
1682
|
-
readonly relativeToH?: DrawingHorizontalReferenceFrame;
|
|
1683
|
-
readonly relativeToV?: DrawingVerticalReferenceFrame;
|
|
1547
|
+
interface ContentTypeRecords {
|
|
1548
|
+
readonly defaults: readonly DefaultRecord[];
|
|
1549
|
+
readonly overrides: readonly OverrideRecord[];
|
|
1684
1550
|
}
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1551
|
+
/**
|
|
1552
|
+
* Why content-type records could not be indexed.
|
|
1553
|
+
*
|
|
1554
|
+
* All fail CLOSED: conflicting Defaults on one extension, duplicate normalized Override names, or
|
|
1555
|
+
* invalid MIME syntax are refused rather than resolved by picking one.
|
|
1556
|
+
*/
|
|
1557
|
+
type ContentTypeError = {
|
|
1558
|
+
readonly code: 'invalid-mime';
|
|
1559
|
+
readonly value: string;
|
|
1560
|
+
} | {
|
|
1561
|
+
readonly code: 'conflicting-default';
|
|
1562
|
+
readonly extension: string;
|
|
1563
|
+
} | {
|
|
1564
|
+
readonly code: 'duplicate-override';
|
|
1565
|
+
readonly partName: string;
|
|
1566
|
+
} | {
|
|
1567
|
+
readonly code: 'invalid-override-name';
|
|
1568
|
+
readonly partName: string;
|
|
1569
|
+
} | {
|
|
1570
|
+
readonly code: 'too-many-records';
|
|
1571
|
+
readonly limit: number;
|
|
1572
|
+
};
|
|
1573
|
+
/** Whether a string is syntactically a MIME type. Syntax only — no registry lookup. */
|
|
1574
|
+
declare function isValidMime(value: string): boolean;
|
|
1575
|
+
/** ASCII-case-insensitive extension key (leading dot removed; ASCII-only fold). */
|
|
1576
|
+
declare function extensionKey(extension: string): string;
|
|
1577
|
+
/** The resolved lookup: Override by case-folded part name, Default by case-insensitive extension. */
|
|
1578
|
+
interface ContentTypeIndex {
|
|
1579
|
+
/** ext key -> single MIME (identical duplicates collapsed). */
|
|
1580
|
+
readonly defaults: ReadonlyMap<string, string>;
|
|
1581
|
+
/** case-folded part name -> MIME. */
|
|
1582
|
+
readonly overrides: ReadonlyMap<string, string>;
|
|
1583
|
+
}
|
|
1584
|
+
/** The built index, or the conflict that made it impossible. */
|
|
1585
|
+
type IndexResult = {
|
|
1586
|
+
readonly ok: true;
|
|
1587
|
+
readonly index: ContentTypeIndex;
|
|
1588
|
+
} | {
|
|
1589
|
+
readonly ok: false;
|
|
1590
|
+
readonly error: ContentTypeError;
|
|
1591
|
+
};
|
|
1592
|
+
/**
|
|
1593
|
+
* Build a resolved content-type index, failing closed on conflict/duplicate/MIME
|
|
1594
|
+
* errors. `maxRecords` bounds the combined record count (N/N+1 gate).
|
|
1595
|
+
*/
|
|
1596
|
+
declare function buildContentTypeIndex(records: ContentTypeRecords, maxRecords?: number): IndexResult;
|
|
1597
|
+
/**
|
|
1598
|
+
* A part's content type, or why it has none.
|
|
1599
|
+
*
|
|
1600
|
+
* An orphan record never determines a part's type — a Default with no matching part is preserved
|
|
1601
|
+
* inertly rather than applied.
|
|
1602
|
+
*/
|
|
1603
|
+
type ResolveResult = {
|
|
1604
|
+
readonly ok: true;
|
|
1605
|
+
readonly contentType: string;
|
|
1606
|
+
readonly source: 'override' | 'default';
|
|
1607
|
+
} | {
|
|
1608
|
+
readonly ok: false;
|
|
1609
|
+
readonly reason: 'unknown';
|
|
1610
|
+
};
|
|
1611
|
+
/** Resolve a part's content type: Override wins over Default; else unknown. */
|
|
1612
|
+
declare function resolveContentType(index: ContentTypeIndex, partName: string): ResolveResult;
|
|
1613
|
+
|
|
1614
|
+
/** Caps applied while loading a package: zip, XML, part count and relationship count. */
|
|
1615
|
+
interface OoxmlPackageLimits {
|
|
1616
|
+
readonly zip?: ZipLimits;
|
|
1617
|
+
readonly xml?: XmlLimits;
|
|
1618
|
+
/** Cap on parts converted into canonical trees (N/N+1 gate, not a soft target). */
|
|
1619
|
+
readonly maxXmlParts?: number;
|
|
1620
|
+
/** Cap on relationship records across every rels part. */
|
|
1621
|
+
readonly maxRelationships?: number;
|
|
1622
|
+
}
|
|
1623
|
+
/** The limits in force when a host configures none. Conservative and finite. */
|
|
1624
|
+
declare const DEFAULT_OOXML_PACKAGE_LIMITS: Required<Pick<OoxmlPackageLimits, 'maxXmlParts' | 'maxRelationships'>>;
|
|
1625
|
+
/**
|
|
1626
|
+
* An external relationship target. Retained verbatim as authored evidence, with the
|
|
1627
|
+
* sink-safety verdict alongside it. Never resolved against the package, never fetched.
|
|
1628
|
+
*/
|
|
1629
|
+
interface OoxmlExternalTarget {
|
|
1630
|
+
readonly ownerPart: string;
|
|
1631
|
+
readonly id: string;
|
|
1632
|
+
readonly type: string;
|
|
1633
|
+
readonly rawTarget: string;
|
|
1634
|
+
/** False when the target is not a safe sink (javascript:, file:, ...). Still not fetched. */
|
|
1635
|
+
readonly sinkSafe: boolean;
|
|
1636
|
+
}
|
|
1637
|
+
/**
|
|
1638
|
+
* A loaded package: every XML part as a canonical tree, plus the non-XML parts kept verbatim.
|
|
1639
|
+
*
|
|
1640
|
+
* The preservation model in one value. Modelled parts re-emit normalized; everything else is
|
|
1641
|
+
* byte-identical, which is why an unrecognized part never costs a document anything.
|
|
1642
|
+
*/
|
|
1643
|
+
interface OoxmlPackage {
|
|
1644
|
+
/** Canonical trees, keyed by canonical part name. Non-XML parts are absent by design. */
|
|
1645
|
+
readonly parts: ReadonlyMap<string, OoxmlPart>;
|
|
1646
|
+
/** Raw bytes of every entry, including the non-XML parts that have no tree. */
|
|
1647
|
+
readonly partBytes: ReadonlyMap<string, Uint8Array>;
|
|
1648
|
+
/** Internal relationships by owner part, in authored order. */
|
|
1649
|
+
readonly relationships: ReadonlyMap<string, readonly RelationshipRecord[]>;
|
|
1650
|
+
readonly externalTargets: readonly OoxmlExternalTarget[];
|
|
1651
|
+
readonly contentTypes: ContentTypeIndex;
|
|
1652
|
+
/** Canonical name of the part the root `officeDocument` relationship points at. */
|
|
1653
|
+
readonly mainDocumentPart: string;
|
|
1654
|
+
}
|
|
1655
|
+
/** Why a package could not be loaded. Every code describes the FILE, not the caller. */
|
|
1656
|
+
type OoxmlPackageRejection = ZipRejection | OoxmlReadRejection | 'no-content-types' | 'bad-content-types' | 'no-main-document' | 'bad-relationship-target' | 'duplicate-relationship-id' | 'too-many-relationships' | 'too-many-xml-parts';
|
|
1657
|
+
/** A loaded package, or a typed refusal. Never throws. */
|
|
1658
|
+
type OoxmlPackageResult = {
|
|
1659
|
+
readonly ok: true;
|
|
1660
|
+
readonly package: OoxmlPackage;
|
|
1661
|
+
} | {
|
|
1662
|
+
readonly ok: false;
|
|
1663
|
+
readonly reason: OoxmlPackageRejection;
|
|
1664
|
+
readonly detail?: string;
|
|
1665
|
+
readonly limit?: 'zip.maxTotalBytes' | 'zip.maxRatio';
|
|
1666
|
+
};
|
|
1667
|
+
/**
|
|
1668
|
+
* Load DOCX bytes into canonical typed/generic OOXML trees, bounded at every step.
|
|
1669
|
+
*
|
|
1670
|
+
* THE trust boundary for a document. Composes the hardened primitives — zip limits and OPC name
|
|
1671
|
+
* normalization, content-type indexing, relationship validation, entity-free XML — into one
|
|
1672
|
+
* loader, and returns a typed rejection rather than throwing from inside a decoder.
|
|
1673
|
+
*
|
|
1674
|
+
* Fails closed on every limit, malformed name, unresolvable internal target, duplicate
|
|
1675
|
+
* relationship id, and XML rejection. An external relationship never causes a failure and
|
|
1676
|
+
* never causes a fetch: it is recorded with its sink-safety verdict for a later, explicitly
|
|
1677
|
+
* user-gated lane. A content-type record with an invalid MIME type is treated as absent,
|
|
1678
|
+
* unless it decides the type of the main document part, a relationships part, or a
|
|
1679
|
+
* non-payload part that the package root or the main document relates to.
|
|
1680
|
+
*/
|
|
1681
|
+
declare function readOoxmlPackage(bytes: Uint8Array, limits?: OoxmlPackageLimits): OoxmlPackageResult;
|
|
1682
|
+
/**
|
|
1683
|
+
* Serialize a canonical package back to DOCX bytes.
|
|
1684
|
+
*
|
|
1685
|
+
* Starts from the ORIGINAL entry bytes and overwrites only the parts held as trees. A part
|
|
1686
|
+
* the loader did not model — media, fonts, an XML part outside the modeled set — passes
|
|
1687
|
+
* through untouched, so round-tripping a document cannot lose a part the engine never
|
|
1688
|
+
* claimed to understand.
|
|
1689
|
+
*
|
|
1690
|
+
* The modeled parts are re-emitted NORMALIZED from the tree rather than patched as text.
|
|
1691
|
+
* That is the whole point of the canonical tree: correctness is judged by the two D9
|
|
1692
|
+
* oracles (the namespace-aware fingerprint and the save/reopen semantic digest), not by
|
|
1693
|
+
* byte equality, so a different-but-equivalent spelling is not a defect.
|
|
1694
|
+
*
|
|
1695
|
+
* `writeZip` re-validates every part name, so a name that became unsafe between load and
|
|
1696
|
+
* save cannot be smuggled into the archive.
|
|
1697
|
+
*/
|
|
1698
|
+
declare function writeOoxmlPackage(pkg: OoxmlPackage): Uint8Array;
|
|
1699
|
+
/** Replace one part's tree, returning a new package. Pure, like the tree edits themselves. */
|
|
1700
|
+
declare function withPart(pkg: OoxmlPackage, part: OoxmlPart): OoxmlPackage;
|
|
1701
|
+
|
|
1702
|
+
/**
|
|
1703
|
+
* Whether a drawing sits in the text flow or is positioned against a frame.
|
|
1704
|
+
*
|
|
1705
|
+
* The distinction that decides everything downstream: an inline drawing occupies a character
|
|
1706
|
+
* position, while an anchored one has offsets relative to a page, margin or column.
|
|
1707
|
+
*/
|
|
1708
|
+
type DrawingKind = 'inline' | 'anchored';
|
|
1709
|
+
/** Nine Word wrap menu targets (inline plus eight floating modes). @public */
|
|
1710
|
+
type ImageWrapTarget = 'inline' | 'square' | 'squareLeft' | 'squareRight' | 'tight' | 'through' | 'topAndBottom' | 'behind' | 'inFront';
|
|
1711
|
+
/** Every text-wrap mode a drawing may be set to, including `inline`. */
|
|
1712
|
+
declare const IMAGE_WRAP_TARGETS: readonly ImageWrapTarget[];
|
|
1713
|
+
type DrawingWrapElement = 'none' | 'square' | 'tight' | 'through' | 'topAndBottom';
|
|
1714
|
+
type DrawingHorizontalReferenceFrame = 'character' | 'column' | 'insideMargin' | 'leftMargin' | 'margin' | 'outsideMargin' | 'page' | 'rightMargin';
|
|
1715
|
+
type DrawingVerticalReferenceFrame = 'bottomMargin' | 'insideMargin' | 'line' | 'margin' | 'outsideMargin' | 'page' | 'paragraph' | 'topMargin';
|
|
1716
|
+
/** `a:srcRect` — how much of each edge of the source image is cropped away, as fractions. */
|
|
1717
|
+
interface SourceCrop {
|
|
1718
|
+
readonly left: number;
|
|
1719
|
+
readonly top: number;
|
|
1720
|
+
readonly right: number;
|
|
1721
|
+
readonly bottom: number;
|
|
1722
|
+
}
|
|
1723
|
+
interface DrawingTransform {
|
|
1724
|
+
readonly rotationDegrees: number;
|
|
1725
|
+
readonly flipHorizontal: boolean;
|
|
1726
|
+
readonly flipVertical: boolean;
|
|
1727
|
+
/** Source `a:off` in EMU; defaults to origin when absent. */
|
|
1728
|
+
readonly offsetEmu: Readonly<{
|
|
1729
|
+
x: number;
|
|
1730
|
+
y: number;
|
|
1731
|
+
}>;
|
|
1732
|
+
/** Source `a:ext` in EMU; zero falls back to `wp:extent` at geometry time. */
|
|
1733
|
+
readonly extentEmu: Readonly<{
|
|
1734
|
+
cx: number;
|
|
1735
|
+
cy: number;
|
|
1736
|
+
}>;
|
|
1737
|
+
}
|
|
1738
|
+
/**
|
|
1739
|
+
* What a drawing refuses: selection, movement, resizing, aspect change.
|
|
1740
|
+
*
|
|
1741
|
+
* Read and honoured rather than advisory — chrome that offered a handle the store will refuse
|
|
1742
|
+
* would promise an edit that cannot happen.
|
|
1743
|
+
*/
|
|
1744
|
+
interface DrawingLocks {
|
|
1745
|
+
readonly select: boolean;
|
|
1746
|
+
readonly move: boolean;
|
|
1747
|
+
readonly resize: boolean;
|
|
1748
|
+
readonly changeAspect: boolean;
|
|
1749
|
+
}
|
|
1750
|
+
interface DrawingLocksInput {
|
|
1751
|
+
readonly select?: boolean;
|
|
1752
|
+
readonly move?: boolean;
|
|
1753
|
+
readonly resize?: boolean;
|
|
1754
|
+
readonly changeAspect?: boolean;
|
|
1755
|
+
}
|
|
1756
|
+
/**
|
|
1757
|
+
* An anchored drawing's position: offsets, and the frames they are relative to.
|
|
1758
|
+
*
|
|
1759
|
+
* The relative-to bases matter as much as the offsets. Writing an offset without preserving its
|
|
1760
|
+
* base re-anchors the drawing against a different reference and moves it somewhere nobody asked.
|
|
1761
|
+
*/
|
|
1762
|
+
interface DrawingPositionInput {
|
|
1763
|
+
/**
|
|
1764
|
+
* `'simple'` when `@simplePos="1"`: `horizontalEmu` / `verticalEmu` are authoritative
|
|
1765
|
+
* `wp:simplePos` x/y. `'frame'` (default) uses positionH/V relative frames.
|
|
1766
|
+
*/
|
|
1767
|
+
readonly mode?: 'frame' | 'simple';
|
|
1768
|
+
readonly horizontalEmu?: number;
|
|
1769
|
+
readonly verticalEmu?: number;
|
|
1770
|
+
readonly relativeToH?: DrawingHorizontalReferenceFrame;
|
|
1771
|
+
readonly relativeToV?: DrawingVerticalReferenceFrame;
|
|
1772
|
+
}
|
|
1773
|
+
interface DrawingProjection {
|
|
1774
|
+
readonly drawingNodeId: string;
|
|
1775
|
+
readonly ownerPartName: string;
|
|
1776
|
+
readonly kind: DrawingKind;
|
|
1689
1777
|
readonly relationshipId: string | null;
|
|
1690
1778
|
readonly docPrId: number | null;
|
|
1691
1779
|
readonly name: string;
|
|
@@ -1799,103 +1887,15 @@ declare function projectDrawing(drawing: OoxmlDrawingNode, context: Readonly<{
|
|
|
1799
1887
|
resolveStyleMatrixReference?: ShapeStyleMatrixResolver;
|
|
1800
1888
|
}>): DrawingProjection | null;
|
|
1801
1889
|
|
|
1802
|
-
/**
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
readonly
|
|
1808
|
-
/** Cap on relationship records across every rels part. */
|
|
1809
|
-
readonly maxRelationships?: number;
|
|
1810
|
-
}
|
|
1811
|
-
/** The limits in force when a host configures none. Conservative and finite. */
|
|
1812
|
-
declare const DEFAULT_OOXML_PACKAGE_LIMITS: Required<Pick<OoxmlPackageLimits, 'maxXmlParts' | 'maxRelationships'>>;
|
|
1813
|
-
/**
|
|
1814
|
-
* An external relationship target. Retained verbatim as authored evidence, with the
|
|
1815
|
-
* sink-safety verdict alongside it. Never resolved against the package, never fetched.
|
|
1816
|
-
*/
|
|
1817
|
-
interface OoxmlExternalTarget {
|
|
1818
|
-
readonly ownerPart: string;
|
|
1819
|
-
readonly id: string;
|
|
1820
|
-
readonly type: string;
|
|
1821
|
-
readonly rawTarget: string;
|
|
1822
|
-
/** False when the target is not a safe sink (javascript:, file:, ...). Still not fetched. */
|
|
1823
|
-
readonly sinkSafe: boolean;
|
|
1890
|
+
/** The `w15` namespace: `commentsExtended.xml` — thread parent and resolved state. */
|
|
1891
|
+
declare const W15_NAMESPACE_URI = "http://schemas.microsoft.com/office/word/2012/wordml";
|
|
1892
|
+
/** A position in one story: a paragraph node id plus a UTF-16 offset inside it. */
|
|
1893
|
+
interface CommentPosition {
|
|
1894
|
+
readonly paragraphId: string;
|
|
1895
|
+
readonly offset: number;
|
|
1824
1896
|
}
|
|
1825
1897
|
/**
|
|
1826
|
-
*
|
|
1827
|
-
*
|
|
1828
|
-
* The preservation model in one value. Modelled parts re-emit normalized; everything else is
|
|
1829
|
-
* byte-identical, which is why an unrecognized part never costs a document anything.
|
|
1830
|
-
*/
|
|
1831
|
-
interface OoxmlPackage {
|
|
1832
|
-
/** Canonical trees, keyed by canonical part name. Non-XML parts are absent by design. */
|
|
1833
|
-
readonly parts: ReadonlyMap<string, OoxmlPart>;
|
|
1834
|
-
/** Raw bytes of every entry, including the non-XML parts that have no tree. */
|
|
1835
|
-
readonly partBytes: ReadonlyMap<string, Uint8Array>;
|
|
1836
|
-
/** Internal relationships by owner part, in authored order. */
|
|
1837
|
-
readonly relationships: ReadonlyMap<string, readonly RelationshipRecord[]>;
|
|
1838
|
-
readonly externalTargets: readonly OoxmlExternalTarget[];
|
|
1839
|
-
readonly contentTypes: ContentTypeIndex;
|
|
1840
|
-
/** Canonical name of the part the root `officeDocument` relationship points at. */
|
|
1841
|
-
readonly mainDocumentPart: string;
|
|
1842
|
-
}
|
|
1843
|
-
/** Why a package could not be loaded. Every code describes the FILE, not the caller. */
|
|
1844
|
-
type OoxmlPackageRejection = ZipRejection | OoxmlReadRejection | 'no-content-types' | 'bad-content-types' | 'no-main-document' | 'bad-relationship-target' | 'duplicate-relationship-id' | 'too-many-relationships' | 'too-many-xml-parts';
|
|
1845
|
-
/** A loaded package, or a typed refusal. Never throws. */
|
|
1846
|
-
type OoxmlPackageResult = {
|
|
1847
|
-
readonly ok: true;
|
|
1848
|
-
readonly package: OoxmlPackage;
|
|
1849
|
-
} | {
|
|
1850
|
-
readonly ok: false;
|
|
1851
|
-
readonly reason: OoxmlPackageRejection;
|
|
1852
|
-
readonly detail?: string;
|
|
1853
|
-
readonly limit?: 'zip.maxTotalBytes' | 'zip.maxRatio';
|
|
1854
|
-
};
|
|
1855
|
-
/**
|
|
1856
|
-
* Load DOCX bytes into canonical typed/generic OOXML trees, bounded at every step.
|
|
1857
|
-
*
|
|
1858
|
-
* THE trust boundary for a document. Composes the hardened primitives — zip limits and OPC name
|
|
1859
|
-
* normalization, content-type indexing, relationship validation, entity-free XML — into one
|
|
1860
|
-
* loader, and returns a typed rejection rather than throwing from inside a decoder.
|
|
1861
|
-
*
|
|
1862
|
-
* Fails closed on every limit, malformed name, unresolvable internal target, duplicate
|
|
1863
|
-
* relationship id, and XML rejection. An external relationship never causes a failure and
|
|
1864
|
-
* never causes a fetch: it is recorded with its sink-safety verdict for a later, explicitly
|
|
1865
|
-
* user-gated lane. A content-type record with an invalid MIME type is treated as absent,
|
|
1866
|
-
* unless it decides the type of the main document part, a relationships part, or a
|
|
1867
|
-
* non-payload part that the package root or the main document relates to.
|
|
1868
|
-
*/
|
|
1869
|
-
declare function readOoxmlPackage(bytes: Uint8Array, limits?: OoxmlPackageLimits): OoxmlPackageResult;
|
|
1870
|
-
/**
|
|
1871
|
-
* Serialize a canonical package back to DOCX bytes.
|
|
1872
|
-
*
|
|
1873
|
-
* Starts from the ORIGINAL entry bytes and overwrites only the parts held as trees. A part
|
|
1874
|
-
* the loader did not model — media, fonts, an XML part outside the modeled set — passes
|
|
1875
|
-
* through untouched, so round-tripping a document cannot lose a part the engine never
|
|
1876
|
-
* claimed to understand.
|
|
1877
|
-
*
|
|
1878
|
-
* The modeled parts are re-emitted NORMALIZED from the tree rather than patched as text.
|
|
1879
|
-
* That is the whole point of the canonical tree: correctness is judged by the two D9
|
|
1880
|
-
* oracles (the namespace-aware fingerprint and the save/reopen semantic digest), not by
|
|
1881
|
-
* byte equality, so a different-but-equivalent spelling is not a defect.
|
|
1882
|
-
*
|
|
1883
|
-
* `writeZip` re-validates every part name, so a name that became unsafe between load and
|
|
1884
|
-
* save cannot be smuggled into the archive.
|
|
1885
|
-
*/
|
|
1886
|
-
declare function writeOoxmlPackage(pkg: OoxmlPackage): Uint8Array;
|
|
1887
|
-
/** Replace one part's tree, returning a new package. Pure, like the tree edits themselves. */
|
|
1888
|
-
declare function withPart(pkg: OoxmlPackage, part: OoxmlPart): OoxmlPackage;
|
|
1889
|
-
|
|
1890
|
-
/** The `w15` namespace: `commentsExtended.xml` — thread parent and resolved state. */
|
|
1891
|
-
declare const W15_NAMESPACE_URI = "http://schemas.microsoft.com/office/word/2012/wordml";
|
|
1892
|
-
/** A position in one story: a paragraph node id plus a UTF-16 offset inside it. */
|
|
1893
|
-
interface CommentPosition {
|
|
1894
|
-
readonly paragraphId: string;
|
|
1895
|
-
readonly offset: number;
|
|
1896
|
-
}
|
|
1897
|
-
/**
|
|
1898
|
-
* Where a comment is anchored, as a range.
|
|
1898
|
+
* Where a comment is anchored, as a range.
|
|
1899
1899
|
*
|
|
1900
1900
|
* `orphaned` records that the file did not give this comment a usable range — a reference with
|
|
1901
1901
|
* no range markers, or a start with no end. The comment is still listed, marked orphaned,
|
|
@@ -1950,19 +1950,246 @@ declare function commentsOfPart(part: OoxmlPart): CommentRecord[];
|
|
|
1950
1950
|
/**
|
|
1951
1951
|
* Thread state by `w14:paraId`, from `commentsExtended.xml`.
|
|
1952
1952
|
*
|
|
1953
|
-
* The part being PRESENT is not evidence of threading. `issue-68-large-comments-suggestions.docx`
|
|
1954
|
-
* ships it with 212 entries carrying `@w15:done` and not one `@w15:paraIdParent`, so it records
|
|
1955
|
-
* resolved state for a flat list. Absent parent means top-level, and that is a fact about the
|
|
1956
|
-
* file rather than a default this code chose.
|
|
1953
|
+
* The part being PRESENT is not evidence of threading. `issue-68-large-comments-suggestions.docx`
|
|
1954
|
+
* ships it with 212 entries carrying `@w15:done` and not one `@w15:paraIdParent`, so it records
|
|
1955
|
+
* resolved state for a flat list. Absent parent means top-level, and that is a fact about the
|
|
1956
|
+
* file rather than a default this code chose.
|
|
1957
|
+
*/
|
|
1958
|
+
declare function threadStateOfPart(part: OoxmlPart): Map<string, CommentThreadState>;
|
|
1959
|
+
/**
|
|
1960
|
+
* Whether the package holds any `w:comment` record — the cheap gate before a reap.
|
|
1961
|
+
*
|
|
1962
|
+
* Overflow cannot prove the package is comment-free, so it returns true and the reap still
|
|
1963
|
+
* runs rather than skipping cleanup.
|
|
1964
|
+
*/
|
|
1965
|
+
declare function hasAnyComment(pkg: OoxmlPackage): boolean;
|
|
1966
|
+
|
|
1967
|
+
/** How deep controls may nest before a walk stops descending. Shared by every lane. */
|
|
1968
|
+
declare const MAX_CONTENT_CONTROL_NESTING = 32;
|
|
1969
|
+
/** Cap on controls one walk reports, so a hostile file cannot make a read unbounded. */
|
|
1970
|
+
declare const MAX_CONTENT_CONTROLS_PER_PART = 10000;
|
|
1971
|
+
/** `CT_SdtPr/w:id` is `ST_DecimalNumber`; Word treats it as a signed 32-bit integer. */
|
|
1972
|
+
declare const CONTENT_CONTROL_ID_MAX = 2147483647;
|
|
1973
|
+
/** `ST_Lock` (§17.5.2.24). An absent `w:lock` is `unlocked`. */
|
|
1974
|
+
/**
|
|
1975
|
+
* `w:lock` — what a control refuses.
|
|
1976
|
+
*
|
|
1977
|
+
* `sdtLocked` protects the wrapper, `contentLocked` the text inside it, and `sdtContentLocked`
|
|
1978
|
+
* both. A control inside a locked one is locked in effect regardless of its own value.
|
|
1979
|
+
*/
|
|
1980
|
+
type ContentControlLock = 'unlocked' | 'sdtLocked' | 'contentLocked' | 'sdtContentLocked';
|
|
1981
|
+
/**
|
|
1982
|
+
* What kind of control this is.
|
|
1983
|
+
*
|
|
1984
|
+
* `checkbox` is the Microsoft `w14:checkbox` extension rather than an ECMA-376 type
|
|
1985
|
+
* element, and the two are not mutually exclusive with "declares no type": four controls
|
|
1986
|
+
* in the comprehensive fixture declare the extension and no `w:`-prefixed type, so a scan
|
|
1987
|
+
* that read only the ECMA-376 choice reported them untyped. `untyped` means the control
|
|
1988
|
+
* declares neither — a rich-text container, which is what Word treats it as.
|
|
1989
|
+
*/
|
|
1990
|
+
/** Which kind of control a `w:sdt` is, and therefore what a written value must look like. */
|
|
1991
|
+
type ContentControlKind = 'richText' | 'plainText' | 'checkbox' | 'dropDownList' | 'comboBox' | 'date' | 'picture' | 'docPartObj' | 'docPartList' | 'group' | 'citation' | 'bibliography' | 'equation' | 'untyped';
|
|
1992
|
+
/** One declared option of a dropdown or combo box: its display text and its stored value. */
|
|
1993
|
+
interface ContentControlListItem {
|
|
1994
|
+
readonly displayText: string;
|
|
1995
|
+
readonly value: string;
|
|
1996
|
+
}
|
|
1997
|
+
/** A date picker's authored format and locale, for rendering and for parsing what it stores. */
|
|
1998
|
+
interface ContentControlDateFormat {
|
|
1999
|
+
readonly fullDate?: string;
|
|
2000
|
+
readonly dateFormat?: string;
|
|
2001
|
+
readonly lid?: string;
|
|
2002
|
+
readonly storeMappedDataAs?: string;
|
|
2003
|
+
readonly calendar?: string;
|
|
2004
|
+
}
|
|
2005
|
+
/** One of a checkbox's two glyphs: the font and code point it is drawn with. */
|
|
2006
|
+
interface ContentControlCheckboxState {
|
|
2007
|
+
/** The `w14:val` hex code point of the glyph, exactly as the control declares it. */
|
|
2008
|
+
readonly value: string;
|
|
2009
|
+
readonly font?: string;
|
|
2010
|
+
}
|
|
2011
|
+
/**
|
|
2012
|
+
* A checkbox's state and the two glyphs it chooses between.
|
|
2013
|
+
*
|
|
2014
|
+
* Both glyphs matter on a write: setting the value has to update `w14:checked` AND the run's
|
|
2015
|
+
* character, or the document's glyph and its recorded state disagree.
|
|
2016
|
+
*/
|
|
2017
|
+
interface ContentControlCheckbox {
|
|
2018
|
+
readonly checked: boolean;
|
|
2019
|
+
readonly checkedState?: ContentControlCheckboxState;
|
|
2020
|
+
readonly uncheckedState?: ContentControlCheckboxState;
|
|
2021
|
+
}
|
|
2022
|
+
/** `CT_DataBinding` — preserved metadata. Never resolved, never fetched. */
|
|
2023
|
+
/** `w:dataBinding` — the custom-XML part and XPath a control's value is bound to. */
|
|
2024
|
+
interface ContentControlDataBinding {
|
|
2025
|
+
readonly xpath?: string;
|
|
2026
|
+
readonly storeItemID?: string;
|
|
2027
|
+
readonly prefixMappings?: string;
|
|
2028
|
+
}
|
|
2029
|
+
/**
|
|
2030
|
+
* A control's whole `w:sdtPr`, projected into one typed shape.
|
|
2031
|
+
*
|
|
2032
|
+
* What every other lane reads instead of walking `localName` strings — which also means a Word
|
|
2033
|
+
* re-save that demotes the properties node to generic does not break the projection.
|
|
2034
|
+
*/
|
|
2035
|
+
interface ContentControlProperties {
|
|
2036
|
+
readonly type: ContentControlKind;
|
|
2037
|
+
readonly alias?: string;
|
|
2038
|
+
readonly tag?: string;
|
|
2039
|
+
/** `@w:val` of `w:id` when the file declares a parseable one. Never fabricated. */
|
|
2040
|
+
readonly id?: number;
|
|
2041
|
+
readonly lock: ContentControlLock;
|
|
2042
|
+
/** The glossary entry named by `w:placeholder/w:docPart`. Preserved, never loaded. */
|
|
2043
|
+
readonly placeholderDocPart?: string;
|
|
2044
|
+
readonly temporary: boolean;
|
|
2045
|
+
readonly showingPlaceholder: boolean;
|
|
2046
|
+
readonly dataBinding?: ContentControlDataBinding;
|
|
2047
|
+
readonly label?: string;
|
|
2048
|
+
readonly tabIndex?: number;
|
|
2049
|
+
/** Items a dropdown or combo box offers. Empty for every other type. */
|
|
2050
|
+
readonly listItems: readonly ContentControlListItem[];
|
|
2051
|
+
readonly lastValue?: string;
|
|
2052
|
+
readonly date?: ContentControlDateFormat;
|
|
2053
|
+
readonly multiLine?: boolean;
|
|
2054
|
+
readonly checkbox?: ContentControlCheckbox;
|
|
2055
|
+
}
|
|
2056
|
+
/** Whether a node is a `w:sdt` wrapper. */
|
|
2057
|
+
declare function isContentControlNode(node: OoxmlNode): node is OoxmlContentControlNode;
|
|
2058
|
+
/** Whether a node is a `w:sdtContent` — the container holding a control's actual content. */
|
|
2059
|
+
declare function isContentControlContentNode(node: OoxmlNode): node is OoxmlContentControlContentNode;
|
|
2060
|
+
/**
|
|
2061
|
+
* A `w:sdt` wrapper, TYPED or DEMOTED.
|
|
2062
|
+
*
|
|
2063
|
+
* Flattening predates typing and must not stop at a control the reader refused to type: a
|
|
2064
|
+
* demoted wrapper still renders its content in place in Word, so a walk that only saw the
|
|
2065
|
+
* typed kind would drop every paragraph inside a malformed control out of the story.
|
|
2066
|
+
*/
|
|
2067
|
+
declare function isContentControlWrapper(node: OoxmlNode): boolean;
|
|
2068
|
+
/**
|
|
2069
|
+
* The children of a wrapper's `w:sdtContent`, typed or demoted, in order.
|
|
2070
|
+
*
|
|
2071
|
+
* The one place that knows a control's content is reached through an intermediate element,
|
|
2072
|
+
* so the four flattening walks (story blocks, layout, header/footer references, list
|
|
2073
|
+
* resolution) ask the same question rather than each re-deriving it.
|
|
2074
|
+
*/
|
|
2075
|
+
declare function contentControlContentChildren(wrapper: OoxmlNode): readonly OoxmlNode[];
|
|
2076
|
+
/**
|
|
2077
|
+
* A container's children with every content-control wrapper flattened away, bounded in depth.
|
|
2078
|
+
*
|
|
2079
|
+
* ONE unwrap rule, for the places where a control sits between a container and the children that
|
|
2080
|
+
* container is defined in terms of. `CT_SdtRow` puts it between `w:tbl` and `w:tr`, `CT_SdtCell`
|
|
2081
|
+
* between `w:tr` and `w:tc`, and a walk that filtered on the child's kind dropped the row or cell
|
|
2082
|
+
* entirely: not measured, not painted, not addressable. Flattening at the point of the filter
|
|
2083
|
+
* means a controlled row is the same row to the grid pass, the pagination pass and the story walk.
|
|
2084
|
+
*
|
|
2085
|
+
* Returns the SAME array identity when there is nothing to unwrap, so the tables that carry no
|
|
2086
|
+
* controls — nearly all of them — allocate nothing and the incremental layout cache still sees
|
|
2087
|
+
* its own inputs.
|
|
2088
|
+
*/
|
|
2089
|
+
declare function flattenContentControls(children: readonly OoxmlNode[], maxDepth?: number): readonly OoxmlNode[];
|
|
2090
|
+
/** A control's `w:sdtPr`, or null. Matches structurally, so a Word-demoted node still resolves. */
|
|
2091
|
+
declare function contentControlPropertiesNodeOf(control: OoxmlNode): OoxmlContentControlPropertiesNode | undefined;
|
|
2092
|
+
/** A control's `w:sdtEndPr` — the run properties applied to its closing marker. */
|
|
2093
|
+
declare function contentControlEndPropertiesNodeOf(control: OoxmlNode): OoxmlContentControlEndPropertiesNode | undefined;
|
|
2094
|
+
/** A control's `w:sdtContent`, or null when the wrapper has none. */
|
|
2095
|
+
declare function contentControlContentNodeOf(control: OoxmlNode): OoxmlContentControlContentNode | undefined;
|
|
2096
|
+
/** A signed 32-bit `ST_DecimalNumber`, or undefined when the file wrote something else. */
|
|
2097
|
+
declare function parseContentControlId(raw: string | undefined): number | undefined;
|
|
2098
|
+
/**
|
|
2099
|
+
* Read a control's properties.
|
|
2100
|
+
*
|
|
2101
|
+
* Total: a control with no `w:sdtPr` at all answers the same shape with the defaults an
|
|
2102
|
+
* absent property means, so no caller has to branch on the container's existence.
|
|
2103
|
+
*/
|
|
2104
|
+
declare function contentControlPropertiesOf(control: OoxmlNode): ContentControlProperties;
|
|
2105
|
+
/** Where a control sits, read off what its content holds. */
|
|
2106
|
+
type ContentControlLevel = 'block' | 'inline' | 'row' | 'cell' | 'empty';
|
|
2107
|
+
/**
|
|
2108
|
+
* How deeply a control is nested inside other controls.
|
|
2109
|
+
*
|
|
2110
|
+
* Bounded by {@link MAX_CONTENT_CONTROL_NESTING}: nesting depth comes from a file and is a
|
|
2111
|
+
* recursion bound.
|
|
2112
|
+
*/
|
|
2113
|
+
declare function contentControlLevelOf(control: OoxmlNode): ContentControlLevel;
|
|
2114
|
+
/** One control, plus how deeply it is nested and the controls that enclose it. */
|
|
2115
|
+
interface ContentControlEntry {
|
|
2116
|
+
readonly node: OoxmlContentControlNode;
|
|
2117
|
+
/** 0 for a top-level control; the nesting depth otherwise. */
|
|
2118
|
+
readonly depth: number;
|
|
2119
|
+
/** Enclosing controls, outermost first. Empty at depth 0. */
|
|
2120
|
+
readonly ancestors: readonly OoxmlContentControlNode[];
|
|
2121
|
+
}
|
|
2122
|
+
/**
|
|
2123
|
+
* Every control under a node, in document order, bounded in depth and in count.
|
|
2124
|
+
*
|
|
2125
|
+
* ONE walk, shared. The nesting bound is the same one layout flattens with, so a control
|
|
2126
|
+
* a lane can address is a control every lane can address — and a file that nests past it
|
|
2127
|
+
* keeps its content in the tree (the serializer never stops) while no walk recurses
|
|
2128
|
+
* further.
|
|
2129
|
+
*/
|
|
2130
|
+
declare function contentControlsIn(root: OoxmlNode, options?: {
|
|
2131
|
+
readonly maxDepth?: number;
|
|
2132
|
+
readonly limit?: number;
|
|
2133
|
+
}): readonly ContentControlEntry[];
|
|
2134
|
+
/** Find one control by canonical node id, with the same bounded walk. */
|
|
2135
|
+
declare function findContentControl(root: OoxmlNode, nodeId: string): ContentControlEntry | null;
|
|
2136
|
+
/**
|
|
2137
|
+
* The plain text a control's content holds, in reading order.
|
|
2138
|
+
*
|
|
2139
|
+
* `w:delText` is excluded: struck text is not the control's value, and a dropdown whose
|
|
2140
|
+
* old item is still present as a tracked deletion would otherwise report both.
|
|
2141
|
+
*
|
|
2142
|
+
* A manual line break is left out unless `lineBreak` names the text to report it as.
|
|
2143
|
+
* With that option, column breaks report U+000E so callers cannot silently discard them.
|
|
2144
|
+
*/
|
|
2145
|
+
declare function contentControlTextOf(control: OoxmlNode, lineBreak?: string): string;
|
|
2146
|
+
/**
|
|
2147
|
+
* Resolve the lock a position inherits from the controls enclosing it.
|
|
2148
|
+
*
|
|
2149
|
+
* CONSERVATIVE, because a template that says a field cannot be edited and sits inside a
|
|
2150
|
+
* section that says it cannot be removed means both. Each half of `ST_Lock` is taken
|
|
2151
|
+
* independently and the strongest wins, so an unlocked control inside a `contentLocked`
|
|
2152
|
+
* one is still content-locked — a nested control cannot grant a permission its parent
|
|
2153
|
+
* withheld, which is the only reading under which a lock is a lock.
|
|
2154
|
+
*/
|
|
2155
|
+
declare function resolveContentControlLock(chain: readonly ContentControlLock[]): ContentControlLock;
|
|
2156
|
+
/** Whether a resolved lock forbids editing the content it covers. */
|
|
2157
|
+
declare function lockForbidsEdit(lock: ContentControlLock): boolean;
|
|
2158
|
+
/** Whether a resolved lock forbids removing the control itself. */
|
|
2159
|
+
declare function lockForbidsRemoval(lock: ContentControlLock): boolean;
|
|
2160
|
+
/**
|
|
2161
|
+
* `CT_SdtPr`'s declared child order (§17.5.2.38), followed by the type choice.
|
|
2162
|
+
*
|
|
2163
|
+
* Serialization re-emits children in tree order, so the ONLY way a write keeps the
|
|
2164
|
+
* sequence valid is to place the child it authors at its schema position — which is what
|
|
2165
|
+
* {@link orderedContentControlProperties} does.
|
|
2166
|
+
*/
|
|
2167
|
+
declare const CONTENT_CONTROL_PROPERTY_ORDER: readonly string[];
|
|
2168
|
+
/**
|
|
2169
|
+
* Rebuild a `w:sdtPr`'s children in schema order.
|
|
2170
|
+
*
|
|
2171
|
+
* Modelled children sort to their declared position and the type element follows them,
|
|
2172
|
+
* as the sequence requires. Everything else — a `w15:repeatingSection`, a vendor
|
|
2173
|
+
* extension, the `w14:checkbox` that is not part of the ECMA-376 choice — keeps the order
|
|
2174
|
+
* it was authored in and follows the modelled block, so a write that touches one property
|
|
2175
|
+
* neither drops nor reorders anything it does not name.
|
|
1957
2176
|
*/
|
|
1958
|
-
declare function
|
|
2177
|
+
declare function orderedContentControlProperties(children: readonly OoxmlNode[]): readonly OoxmlNode[];
|
|
1959
2178
|
/**
|
|
1960
|
-
*
|
|
2179
|
+
* The next `w:id` to write.
|
|
1961
2180
|
*
|
|
1962
|
-
*
|
|
1963
|
-
*
|
|
2181
|
+
* Solo: one past the document's own maximum. Never a clock, a timestamp, a random source
|
|
2182
|
+
* or a hash: those collide with ids already in the file and produce values Word rejects.
|
|
2183
|
+
* Null when the document already reaches the signed 32-bit bound, so the caller refuses
|
|
2184
|
+
* rather than wrapping into a negative id. Hostile or out-of-range existing values are
|
|
2185
|
+
* ignored for seeding rather than counted past.
|
|
2186
|
+
*
|
|
2187
|
+
* When a collaboration actor is bound (explicit argument or the open store transaction),
|
|
2188
|
+
* the next id is the next unused value in that actor's stripe. Two peers inserting a
|
|
2189
|
+
* generic content control — including a custom node authored as `w:sdt` — from the same
|
|
2190
|
+
* snapshot then cannot share a `w:id`.
|
|
1964
2191
|
*/
|
|
1965
|
-
declare function
|
|
2192
|
+
declare function allocateContentControlId(root: OoxmlNode, actorId?: string): number | null;
|
|
1966
2193
|
|
|
1967
2194
|
/** A position in the model offset space of one story. */
|
|
1968
2195
|
interface ReviewPosition {
|
|
@@ -2259,232 +2486,14 @@ declare function activeReviewItem(items: readonly ReviewItem[], position: Review
|
|
|
2259
2486
|
*/
|
|
2260
2487
|
declare function reviewThreadRootOf(items: readonly ReviewItem[], comment: ReviewCommentItem): ReviewItem;
|
|
2261
2488
|
|
|
2262
|
-
/** How deep controls may nest before a walk stops descending. Shared by every lane. */
|
|
2263
|
-
declare const MAX_CONTENT_CONTROL_NESTING = 32;
|
|
2264
|
-
/** Cap on controls one walk reports, so a hostile file cannot make a read unbounded. */
|
|
2265
|
-
declare const MAX_CONTENT_CONTROLS_PER_PART = 10000;
|
|
2266
|
-
/** `CT_SdtPr/w:id` is `ST_DecimalNumber`; Word treats it as a signed 32-bit integer. */
|
|
2267
|
-
declare const CONTENT_CONTROL_ID_MAX = 2147483647;
|
|
2268
|
-
/** `ST_Lock` (§17.5.2.24). An absent `w:lock` is `unlocked`. */
|
|
2269
|
-
/**
|
|
2270
|
-
* `w:lock` — what a control refuses.
|
|
2271
|
-
*
|
|
2272
|
-
* `sdtLocked` protects the wrapper, `contentLocked` the text inside it, and `sdtContentLocked`
|
|
2273
|
-
* both. A control inside a locked one is locked in effect regardless of its own value.
|
|
2274
|
-
*/
|
|
2275
|
-
type ContentControlLock = 'unlocked' | 'sdtLocked' | 'contentLocked' | 'sdtContentLocked';
|
|
2276
|
-
/**
|
|
2277
|
-
* What kind of control this is.
|
|
2278
|
-
*
|
|
2279
|
-
* `checkbox` is the Microsoft `w14:checkbox` extension rather than an ECMA-376 type
|
|
2280
|
-
* element, and the two are not mutually exclusive with "declares no type": four controls
|
|
2281
|
-
* in the comprehensive fixture declare the extension and no `w:`-prefixed type, so a scan
|
|
2282
|
-
* that read only the ECMA-376 choice reported them untyped. `untyped` means the control
|
|
2283
|
-
* declares neither — a rich-text container, which is what Word treats it as.
|
|
2284
|
-
*/
|
|
2285
|
-
/** Which kind of control a `w:sdt` is, and therefore what a written value must look like. */
|
|
2286
|
-
type ContentControlKind = 'richText' | 'plainText' | 'checkbox' | 'dropDownList' | 'comboBox' | 'date' | 'picture' | 'docPartObj' | 'docPartList' | 'group' | 'citation' | 'bibliography' | 'equation' | 'untyped';
|
|
2287
|
-
/** One declared option of a dropdown or combo box: its display text and its stored value. */
|
|
2288
|
-
interface ContentControlListItem {
|
|
2289
|
-
readonly displayText: string;
|
|
2290
|
-
readonly value: string;
|
|
2291
|
-
}
|
|
2292
|
-
/** A date picker's authored format and locale, for rendering and for parsing what it stores. */
|
|
2293
|
-
interface ContentControlDateFormat {
|
|
2294
|
-
readonly fullDate?: string;
|
|
2295
|
-
readonly dateFormat?: string;
|
|
2296
|
-
readonly lid?: string;
|
|
2297
|
-
readonly storeMappedDataAs?: string;
|
|
2298
|
-
readonly calendar?: string;
|
|
2299
|
-
}
|
|
2300
|
-
/** One of a checkbox's two glyphs: the font and code point it is drawn with. */
|
|
2301
|
-
interface ContentControlCheckboxState {
|
|
2302
|
-
/** The `w14:val` hex code point of the glyph, exactly as the control declares it. */
|
|
2303
|
-
readonly value: string;
|
|
2304
|
-
readonly font?: string;
|
|
2305
|
-
}
|
|
2306
|
-
/**
|
|
2307
|
-
* A checkbox's state and the two glyphs it chooses between.
|
|
2308
|
-
*
|
|
2309
|
-
* Both glyphs matter on a write: setting the value has to update `w14:checked` AND the run's
|
|
2310
|
-
* character, or the document's glyph and its recorded state disagree.
|
|
2311
|
-
*/
|
|
2312
|
-
interface ContentControlCheckbox {
|
|
2313
|
-
readonly checked: boolean;
|
|
2314
|
-
readonly checkedState?: ContentControlCheckboxState;
|
|
2315
|
-
readonly uncheckedState?: ContentControlCheckboxState;
|
|
2316
|
-
}
|
|
2317
|
-
/** `CT_DataBinding` — preserved metadata. Never resolved, never fetched. */
|
|
2318
|
-
/** `w:dataBinding` — the custom-XML part and XPath a control's value is bound to. */
|
|
2319
|
-
interface ContentControlDataBinding {
|
|
2320
|
-
readonly xpath?: string;
|
|
2321
|
-
readonly storeItemID?: string;
|
|
2322
|
-
readonly prefixMappings?: string;
|
|
2323
|
-
}
|
|
2324
|
-
/**
|
|
2325
|
-
* A control's whole `w:sdtPr`, projected into one typed shape.
|
|
2326
|
-
*
|
|
2327
|
-
* What every other lane reads instead of walking `localName` strings — which also means a Word
|
|
2328
|
-
* re-save that demotes the properties node to generic does not break the projection.
|
|
2329
|
-
*/
|
|
2330
|
-
interface ContentControlProperties {
|
|
2331
|
-
readonly type: ContentControlKind;
|
|
2332
|
-
readonly alias?: string;
|
|
2333
|
-
readonly tag?: string;
|
|
2334
|
-
/** `@w:val` of `w:id` when the file declares a parseable one. Never fabricated. */
|
|
2335
|
-
readonly id?: number;
|
|
2336
|
-
readonly lock: ContentControlLock;
|
|
2337
|
-
/** The glossary entry named by `w:placeholder/w:docPart`. Preserved, never loaded. */
|
|
2338
|
-
readonly placeholderDocPart?: string;
|
|
2339
|
-
readonly temporary: boolean;
|
|
2340
|
-
readonly showingPlaceholder: boolean;
|
|
2341
|
-
readonly dataBinding?: ContentControlDataBinding;
|
|
2342
|
-
readonly label?: string;
|
|
2343
|
-
readonly tabIndex?: number;
|
|
2344
|
-
/** Items a dropdown or combo box offers. Empty for every other type. */
|
|
2345
|
-
readonly listItems: readonly ContentControlListItem[];
|
|
2346
|
-
readonly lastValue?: string;
|
|
2347
|
-
readonly date?: ContentControlDateFormat;
|
|
2348
|
-
readonly multiLine?: boolean;
|
|
2349
|
-
readonly checkbox?: ContentControlCheckbox;
|
|
2350
|
-
}
|
|
2351
|
-
/** Whether a node is a `w:sdt` wrapper. */
|
|
2352
|
-
declare function isContentControlNode(node: OoxmlNode): node is OoxmlContentControlNode;
|
|
2353
|
-
/** Whether a node is a `w:sdtContent` — the container holding a control's actual content. */
|
|
2354
|
-
declare function isContentControlContentNode(node: OoxmlNode): node is OoxmlContentControlContentNode;
|
|
2355
|
-
/**
|
|
2356
|
-
* A `w:sdt` wrapper, TYPED or DEMOTED.
|
|
2357
|
-
*
|
|
2358
|
-
* Flattening predates typing and must not stop at a control the reader refused to type: a
|
|
2359
|
-
* demoted wrapper still renders its content in place in Word, so a walk that only saw the
|
|
2360
|
-
* typed kind would drop every paragraph inside a malformed control out of the story.
|
|
2361
|
-
*/
|
|
2362
|
-
declare function isContentControlWrapper(node: OoxmlNode): boolean;
|
|
2363
2489
|
/**
|
|
2364
|
-
*
|
|
2365
|
-
*
|
|
2366
|
-
*
|
|
2367
|
-
* so the four flattening walks (story blocks, layout, header/footer references, list
|
|
2368
|
-
* resolution) ask the same question rather than each re-deriving it.
|
|
2369
|
-
*/
|
|
2370
|
-
declare function contentControlContentChildren(wrapper: OoxmlNode): readonly OoxmlNode[];
|
|
2371
|
-
/**
|
|
2372
|
-
* A container's children with every content-control wrapper flattened away, bounded in depth.
|
|
2373
|
-
*
|
|
2374
|
-
* ONE unwrap rule, for the places where a control sits between a container and the children that
|
|
2375
|
-
* container is defined in terms of. `CT_SdtRow` puts it between `w:tbl` and `w:tr`, `CT_SdtCell`
|
|
2376
|
-
* between `w:tr` and `w:tc`, and a walk that filtered on the child's kind dropped the row or cell
|
|
2377
|
-
* entirely: not measured, not painted, not addressable. Flattening at the point of the filter
|
|
2378
|
-
* means a controlled row is the same row to the grid pass, the pagination pass and the story walk.
|
|
2379
|
-
*
|
|
2380
|
-
* Returns the SAME array identity when there is nothing to unwrap, so the tables that carry no
|
|
2381
|
-
* controls — nearly all of them — allocate nothing and the incremental layout cache still sees
|
|
2382
|
-
* its own inputs.
|
|
2383
|
-
*/
|
|
2384
|
-
declare function flattenContentControls(children: readonly OoxmlNode[], maxDepth?: number): readonly OoxmlNode[];
|
|
2385
|
-
/** A control's `w:sdtPr`, or null. Matches structurally, so a Word-demoted node still resolves. */
|
|
2386
|
-
declare function contentControlPropertiesNodeOf(control: OoxmlNode): OoxmlContentControlPropertiesNode | undefined;
|
|
2387
|
-
/** A control's `w:sdtEndPr` — the run properties applied to its closing marker. */
|
|
2388
|
-
declare function contentControlEndPropertiesNodeOf(control: OoxmlNode): OoxmlContentControlEndPropertiesNode | undefined;
|
|
2389
|
-
/** A control's `w:sdtContent`, or null when the wrapper has none. */
|
|
2390
|
-
declare function contentControlContentNodeOf(control: OoxmlNode): OoxmlContentControlContentNode | undefined;
|
|
2391
|
-
/** A signed 32-bit `ST_DecimalNumber`, or undefined when the file wrote something else. */
|
|
2392
|
-
declare function parseContentControlId(raw: string | undefined): number | undefined;
|
|
2393
|
-
/**
|
|
2394
|
-
* Read a control's properties.
|
|
2395
|
-
*
|
|
2396
|
-
* Total: a control with no `w:sdtPr` at all answers the same shape with the defaults an
|
|
2397
|
-
* absent property means, so no caller has to branch on the container's existence.
|
|
2398
|
-
*/
|
|
2399
|
-
declare function contentControlPropertiesOf(control: OoxmlNode): ContentControlProperties;
|
|
2400
|
-
/** Where a control sits, read off what its content holds. */
|
|
2401
|
-
type ContentControlLevel = 'block' | 'inline' | 'row' | 'cell' | 'empty';
|
|
2402
|
-
/**
|
|
2403
|
-
* How deeply a control is nested inside other controls.
|
|
2404
|
-
*
|
|
2405
|
-
* Bounded by {@link MAX_CONTENT_CONTROL_NESTING}: nesting depth comes from a file and is a
|
|
2406
|
-
* recursion bound.
|
|
2407
|
-
*/
|
|
2408
|
-
declare function contentControlLevelOf(control: OoxmlNode): ContentControlLevel;
|
|
2409
|
-
/** One control, plus how deeply it is nested and the controls that enclose it. */
|
|
2410
|
-
interface ContentControlEntry {
|
|
2411
|
-
readonly node: OoxmlContentControlNode;
|
|
2412
|
-
/** 0 for a top-level control; the nesting depth otherwise. */
|
|
2413
|
-
readonly depth: number;
|
|
2414
|
-
/** Enclosing controls, outermost first. Empty at depth 0. */
|
|
2415
|
-
readonly ancestors: readonly OoxmlContentControlNode[];
|
|
2416
|
-
}
|
|
2417
|
-
/**
|
|
2418
|
-
* Every control under a node, in document order, bounded in depth and in count.
|
|
2419
|
-
*
|
|
2420
|
-
* ONE walk, shared. The nesting bound is the same one layout flattens with, so a control
|
|
2421
|
-
* a lane can address is a control every lane can address — and a file that nests past it
|
|
2422
|
-
* keeps its content in the tree (the serializer never stops) while no walk recurses
|
|
2423
|
-
* further.
|
|
2424
|
-
*/
|
|
2425
|
-
declare function contentControlsIn(root: OoxmlNode, options?: {
|
|
2426
|
-
readonly maxDepth?: number;
|
|
2427
|
-
readonly limit?: number;
|
|
2428
|
-
}): readonly ContentControlEntry[];
|
|
2429
|
-
/** Find one control by canonical node id, with the same bounded walk. */
|
|
2430
|
-
declare function findContentControl(root: OoxmlNode, nodeId: string): ContentControlEntry | null;
|
|
2431
|
-
/**
|
|
2432
|
-
* The plain text a control's content holds, in reading order.
|
|
2433
|
-
*
|
|
2434
|
-
* `w:delText` is excluded: struck text is not the control's value, and a dropdown whose
|
|
2435
|
-
* old item is still present as a tracked deletion would otherwise report both.
|
|
2436
|
-
*
|
|
2437
|
-
* A manual line break is left out unless `lineBreak` names the text to report it as.
|
|
2438
|
-
* With that option, column breaks report U+000E so callers cannot silently discard them.
|
|
2439
|
-
*/
|
|
2440
|
-
declare function contentControlTextOf(control: OoxmlNode, lineBreak?: string): string;
|
|
2441
|
-
/**
|
|
2442
|
-
* Resolve the lock a position inherits from the controls enclosing it.
|
|
2443
|
-
*
|
|
2444
|
-
* CONSERVATIVE, because a template that says a field cannot be edited and sits inside a
|
|
2445
|
-
* section that says it cannot be removed means both. Each half of `ST_Lock` is taken
|
|
2446
|
-
* independently and the strongest wins, so an unlocked control inside a `contentLocked`
|
|
2447
|
-
* one is still content-locked — a nested control cannot grant a permission its parent
|
|
2448
|
-
* withheld, which is the only reading under which a lock is a lock.
|
|
2449
|
-
*/
|
|
2450
|
-
declare function resolveContentControlLock(chain: readonly ContentControlLock[]): ContentControlLock;
|
|
2451
|
-
/** Whether a resolved lock forbids editing the content it covers. */
|
|
2452
|
-
declare function lockForbidsEdit(lock: ContentControlLock): boolean;
|
|
2453
|
-
/** Whether a resolved lock forbids removing the control itself. */
|
|
2454
|
-
declare function lockForbidsRemoval(lock: ContentControlLock): boolean;
|
|
2455
|
-
/**
|
|
2456
|
-
* `CT_SdtPr`'s declared child order (§17.5.2.38), followed by the type choice.
|
|
2457
|
-
*
|
|
2458
|
-
* Serialization re-emits children in tree order, so the ONLY way a write keeps the
|
|
2459
|
-
* sequence valid is to place the child it authors at its schema position — which is what
|
|
2460
|
-
* {@link orderedContentControlProperties} does.
|
|
2461
|
-
*/
|
|
2462
|
-
declare const CONTENT_CONTROL_PROPERTY_ORDER: readonly string[];
|
|
2463
|
-
/**
|
|
2464
|
-
* Rebuild a `w:sdtPr`'s children in schema order.
|
|
2465
|
-
*
|
|
2466
|
-
* Modelled children sort to their declared position and the type element follows them,
|
|
2467
|
-
* as the sequence requires. Everything else — a `w15:repeatingSection`, a vendor
|
|
2468
|
-
* extension, the `w14:checkbox` that is not part of the ECMA-376 choice — keeps the order
|
|
2469
|
-
* it was authored in and follows the modelled block, so a write that touches one property
|
|
2470
|
-
* neither drops nor reorders anything it does not name.
|
|
2471
|
-
*/
|
|
2472
|
-
declare function orderedContentControlProperties(children: readonly OoxmlNode[]): readonly OoxmlNode[];
|
|
2473
|
-
/**
|
|
2474
|
-
* The next `w:id` to write.
|
|
2475
|
-
*
|
|
2476
|
-
* Solo: one past the document's own maximum. Never a clock, a timestamp, a random source
|
|
2477
|
-
* or a hash: those collide with ids already in the file and produce values Word rejects.
|
|
2478
|
-
* Null when the document already reaches the signed 32-bit bound, so the caller refuses
|
|
2479
|
-
* rather than wrapping into a negative id. Hostile or out-of-range existing values are
|
|
2480
|
-
* ignored for seeding rather than counted past.
|
|
2490
|
+
* Why a revision site cannot be resolved: no `w:id` or author, a content marker where content
|
|
2491
|
+
* cannot be, a wrapper whose content is itself marked, a structural revision outside tables and
|
|
2492
|
+
* numbering, or a move whose ranges do not pair up.
|
|
2481
2493
|
*
|
|
2482
|
-
*
|
|
2483
|
-
* the next id is the next unused value in that actor's stripe. Two peers inserting a
|
|
2484
|
-
* generic content control — including a custom node authored as `w:sdt` — from the same
|
|
2485
|
-
* snapshot then cannot share a `w:id`.
|
|
2494
|
+
* @public
|
|
2486
2495
|
*/
|
|
2487
|
-
|
|
2496
|
+
type RevisionSiteRefusal = 'unaddressed' | 'misplaced-marker' | 'nested-marker' | 'unsupported-structure' | 'unsupported-move';
|
|
2488
2497
|
|
|
2489
2498
|
/** The value a control accepts, by what kind of control it is. */
|
|
2490
2499
|
type ContentControlValueInput = {
|
|
@@ -2519,9 +2528,19 @@ interface RevisionBatchEntry {
|
|
|
2519
2528
|
readonly author: string;
|
|
2520
2529
|
readonly partName: string;
|
|
2521
2530
|
readonly revisionKind: ReviewRevisionItem['revisionKind'];
|
|
2531
|
+
/** For a formatting change, its OOXML property-change element, as the review item has it. */
|
|
2532
|
+
readonly formattingKind?: string;
|
|
2522
2533
|
}
|
|
2523
2534
|
/** Why a requested decision remains pending. @public */
|
|
2524
2535
|
type RevisionBatchSkipReason = 'unsupported-revision' | 'incomplete-group' | 'retained-structure' | 'unknown-revision';
|
|
2536
|
+
/**
|
|
2537
|
+
* Why an `unsupported-revision` skip happened: a refused site, a formatting change whose earlier
|
|
2538
|
+
* properties were not recorded so it cannot be rejected, a read-only review item, or a change
|
|
2539
|
+
* with no sites in the part.
|
|
2540
|
+
*
|
|
2541
|
+
* @public
|
|
2542
|
+
*/
|
|
2543
|
+
type RevisionBatchSkipDetail = RevisionSiteRefusal | 'unrecorded-properties' | 'read-only' | 'no-sites';
|
|
2525
2544
|
/** Outcome of one selected-set decision. Counts refer to review decisions, not XML markers. @public */
|
|
2526
2545
|
interface RevisionBatchResult {
|
|
2527
2546
|
readonly resolved: readonly RevisionBatchEntry[];
|
|
@@ -2529,6 +2548,8 @@ interface RevisionBatchResult {
|
|
|
2529
2548
|
readonly key: string;
|
|
2530
2549
|
readonly reason: RevisionBatchSkipReason;
|
|
2531
2550
|
readonly revision?: RevisionBatchEntry;
|
|
2551
|
+
/** For `unsupported-revision`, which engine condition refused it. */
|
|
2552
|
+
readonly detail?: RevisionBatchSkipDetail;
|
|
2532
2553
|
}[];
|
|
2533
2554
|
/** All pending decisions in the addressed scope, including excluded and unsupported changes. */
|
|
2534
2555
|
readonly remaining: number;
|
|
@@ -4265,5 +4286,5 @@ type TreeOpResult = {
|
|
|
4265
4286
|
readonly detail?: string;
|
|
4266
4287
|
};
|
|
4267
4288
|
|
|
4268
|
-
export {
|
|
4269
|
-
export type {
|
|
4289
|
+
export { IMAGE_WRAP_TARGETS as aK, TEXT_FORM_FORMATS as aL, ACCEPTED_PARAGRAPH_PROPERTIES as b2, ACCEPTED_RUN_PROPERTIES as b3, CONTENT_CONTROL_ID_MAX as b4, CONTENT_CONTROL_PROPERTY_ORDER as b5, MAX_CONTENT_CONTROL_NESTING as bA, OFFICE_RELATIONSHIP_NAMESPACE_URI as bD, OOXML_NODE_IDENTITY_RULES as bE, DEFAULT_OOXML_PACKAGE_LIMITS as bm, DEFAULT_ZIP_LIMITS as bn, HYPERLINK_RELATIONSHIP_TYPE as bq, IMAGE_RELATIONSHIP_TYPE as bt, MAX_CONTENT_CONTROLS_PER_PART as bz, hyperlinkAnchorOf as c$, allocateContentControlId as cF, asciiFold as cG, buildContentTypeIndex as cH, buildRelationshipSet as cI, childElements as cJ, commentAnchorsOfStory as cK, commentsOfPart as cL, contentControlContentChildren as cM, contentControlContentNodeOf as cN, contentControlEndPropertiesNodeOf as cO, contentControlLevelOf as cP, contentControlPropertiesNodeOf as cQ, contentControlPropertiesOf as cR, contentControlTextOf as cS, contentControlsIn as cT, detectDuplicateNames as cU, extensionKey as cV, findContentControl as cW, findElement as cX, firstReviewRange as cY, flattenContentControls as cZ, hasAnyComment as c_, TABLE_BORDER_STYLES as co, W15_NAMESPACE_URI as cu, WML_NAMESPACE_URI as cv, XMLNS_NAMESPACE_URI as cw, XML_NAMESPACE_URI as cx, hyperlinkRelationshipIdOf as d0, hyperlinkTargetOf as d1, isContentControlContentNode as d2, isContentControlNode as d3, isContentControlWrapper as d4, isContentRevisionKind as d5, isHyperlinkNode as d6, isRangeMarkerKind as d7, isValidMime as d8, legacyCheckboxFieldsOf as d9, withPart as dA, writeOoxmlPackage as dB, writeZip as dC, activeReviewItem as dE, reviewItemPositionRank as dF, reviewItemsAt as dG, reviewThreadRootOf as dH, lockForbidsEdit as da, lockForbidsRemoval as db, normalizePartName as dc, orderedContentControlProperties as dd, parseContentControlId as de, partNameKey as df, planRevisionAuthorChange as dg, planRevisionBatch as dh, projectDrawing as di, readOnOffChild as dj, readOoxmlPackage as dk, readOoxmlPart as dl, readXml as dm, readZip as dn, resolveContentControlLock as dp, resolveContentType as dq, resolveImageRelationship as dr, resolveInternalTarget as ds, resolveRelationship as dt, reviewItemKey as du, reviewItemRanges as dv, textContent as dw, textFormFieldsOf as dx, threadStateOfPart as dy, validateExternalTarget as dz };
|
|
4290
|
+
export type { DrawingVerticalReferenceFrame as $, ParagraphTabStop as A, Block as B, CommentRecord as C, DocxDocument as D, ExecResult as E, RevisionType as F, Section as G, HeaderFooterSet as H, InsertableContentControlType as I, SectionProperties as J, StyleDefinition as K, Theme as L, ThemeColorScheme as M, OoxmlNode as N, OoxmlPart as O, Paragraph as P, OoxmlPackage as Q, ReviewModelInput as R, StyleDefinitions as S, Table as T, OoxmlNodeId as U, OoxmlGenericElementNode as V, DocxDocumentJSON as W, DrawingHorizontalReferenceFrame as X, DrawingKind as Y, DrawingLocks as Z, DrawingPositionInput as _, ReviewItem as a, OoxmlHardBreakNode as a$, FontDefinition as a0, ImageWrapTarget as a1, NumberingRef as a2, PageMargins as a3, ParagraphDisagreements as a4, ParagraphFormatCommand as a5, Point as a6, Rect as a7, RevisionAuthorResult as a8, RevisionBatchResult as a9, OoxmlNoteNode as aA, OoxmlContinuationSeparatorNode as aB, OoxmlEndnotesNode as aC, OoxmlFootnotesNode as aD, OoxmlNoteRefNode as aE, OoxmlNoteReferenceNode as aF, OoxmlSeparatorNode as aG, ImpactClass as aH, SourceCrop as aI, TreeDocColorValue as aJ, TableBorderStyle as aM, DrawingAccessibility as aN, DrawingImageEffects as aO, DrawingTransform as aP, VectorShapeProjection as aQ, OoxmlDrawingNode as aR, TextFormFieldRange as aS, TextFormFieldOptions as aT, OoxmlInvariantResult as aU, OoxmlInvariantIssue as aV, OoxmlFldCharNode as aW, OoxmlFldSimpleNode as aX, OoxmlInstrTextNode as aY, TreeOpResult as aZ, RelationshipRecord as a_, Run as aa, SelectionPin as ab, TableCell as ac, TableRow as ad, Unsubscribe as ae, Watermark as af, TreeDocOp as ag, OoxmlProperty as ah, OoxmlPackageResult as ai, OoxmlPackageRejection as aj, OoxmlElement as ak, OoxmlContentControlNode as al, OoxmlContentControlContentNode as am, DrawingProjection as an, OoxmlPackageLimits as ao, RevisionAuthorEntry as ap, RevisionAuthorSkipReason as aq, RevisionBatchEntry as ar, RevisionBatchSkipDetail as as, RevisionBatchSkipReason as at, RevisionSiteRefusal as au, TreeOpRejection as av, AutomationTableMutation as aw, RevisionAttributionInput as ax, DrawingTreeDocOp as ay, OoxmlParagraphNode as az, ReviewRevisionItem as b, OoxmlHyperlinkNode as b$, OoxmlAttribute as b0, CommentThreadState as b1, CommentAnchor as b6, CommentPosition as b7, CommitTextFormFieldOp as b8, ContentControlCheckbox as b9, NameRejection as bB, NameResult as bC, OoxmlBodyNode as bF, OoxmlBookmarkEndNode as bG, OoxmlBookmarkStartNode as bH, OoxmlContentControlCalendarNode as bI, OoxmlContentControlCheckboxNode as bJ, OoxmlContentControlCheckedNode as bK, OoxmlContentControlCheckedStateNode as bL, OoxmlContentControlComboBoxNode as bM, OoxmlContentControlDataBindingNode as bN, OoxmlContentControlDateFormatNode as bO, OoxmlContentControlDateNode as bP, OoxmlContentControlDropDownListNode as bQ, OoxmlContentControlEndPropertiesNode as bR, OoxmlContentControlLidNode as bS, OoxmlContentControlListItemNode as bT, OoxmlContentControlPropertiesNode as bU, OoxmlContentControlStoreMappedDataAsNode as bV, OoxmlContentControlTextNode as bW, OoxmlContentControlUncheckedStateNode as bX, OoxmlDocumentNode as bY, OoxmlExternalTarget as bZ, OoxmlGenericExtensionAttribute as b_, ContentControlCheckboxState as ba, ContentControlDataBinding as bb, ContentControlDateFormat as bc, ContentControlEntry as bd, ContentControlKind as be, ContentControlLevel as bf, ContentControlListItem as bg, ContentControlLock as bh, ContentControlProperties as bi, ContentTypeError as bj, ContentTypeIndex as bk, ContentTypeRecords as bl, DefaultRecord as bo, DeleteTextOp as bp, HyperlinkKind as br, HyperlinkTarget as bs, ImageRelationshipResolution as bu, IndexResult as bv, InsertBuildingBlockOp as bw, InsertTextOp as bx, LegacyCheckboxFieldRange as by, ReviewCommentItem as c, OoxmlInvariantIssueCode as c0, OoxmlKnownNodeAttribute as c1, OoxmlNamespaceBinding as c2, OoxmlNodeIdentityRules as c3, OoxmlParagraphPropertiesNode as c4, OoxmlPartMetadata as c5, OoxmlReadRejection as c6, OoxmlReadResult as c7, OoxmlRunNode as c8, OoxmlRunPropertiesNode as c9, XmlRejection as cA, XmlResult as cB, ZipLimits as cC, ZipReadResult as cD, ZipRejection as cE, OoxmlTabNode as ca, OoxmlTextElementNode as cb, OoxmlTextNode as cc, OoxmlWmlValAttribute as cd, OoxmlXmlSpaceAttribute as ce, OverrideRecord as cf, RelationshipError as cg, RelationshipSetResult as ch, RelationshipTargetResolver as ci, ResolveResult as cj, ResolvedRelationship as ck, SetLegacyCheckboxOp as cl, SetLegacyDropdownOp as cm, SetTextFormFieldDefaultOp as cn, TabStopWrite as cp, TargetMode as cq, TextFormFieldType as cr, TreeDocOpKind as cs, TreeOpEffect as ct, XmlLimits as cy, XmlNode as cz, ReviewCustomItem as d, VectorShapeComponent as dD, ReviewPosition as e, ReviewRange as f, ReviewRevisionKind as g, RevisionAddress as h, ContentControlType as i, DocTarget as j, RunFormatting as k, Extent as l, ContainerRef as m, ContentControlFilter as n, DocRange as o, Revision as p, DocComment as q, ColorValue as r, ContentControl as s, DocAnchor as t, DocAnchorRange as u, DocLocation as v, DocumentBody as w, ExecErrorCode as x, IndentFormatting as y, ParagraphFlags as z };
|