ooxml-ui 0.30.0 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -1
- package/custom-elements.json +37 -5
- package/dist/base.d.ts +1 -0
- package/dist/base.d.ts.map +1 -0
- package/dist/chrome/account-profile.d.ts +1 -0
- package/dist/chrome/account-profile.d.ts.map +1 -0
- package/dist/chrome/account.d.ts +1 -0
- package/dist/chrome/account.d.ts.map +1 -0
- package/dist/chrome/backstage.d.ts +1 -0
- package/dist/chrome/backstage.d.ts.map +1 -0
- package/dist/chrome/find-bar.d.ts +1 -0
- package/dist/chrome/find-bar.d.ts.map +1 -0
- package/dist/chrome/print-preview.d.ts +1 -0
- package/dist/chrome/print-preview.d.ts.map +1 -0
- package/dist/chrome/ruler.d.ts +1 -0
- package/dist/chrome/ruler.d.ts.map +1 -0
- package/dist/chrome/status-bar.d.ts +1 -0
- package/dist/chrome/status-bar.d.ts.map +1 -0
- package/dist/chrome/status-item.d.ts +1 -0
- package/dist/chrome/status-item.d.ts.map +1 -0
- package/dist/chrome/tab-strip.d.ts +1 -0
- package/dist/chrome/tab-strip.d.ts.map +1 -0
- package/dist/chrome/title-bar-types.d.ts +1 -0
- package/dist/chrome/title-bar-types.d.ts.map +1 -0
- package/dist/chrome/title-bar.d.ts +1 -0
- package/dist/chrome/title-bar.d.ts.map +1 -0
- package/dist/{chunk-4VKD3COE.js → chunk-2QW4QE56.js} +96 -23
- package/dist/chunk-3GE2NHNG.js +4044 -0
- package/dist/{chunk-7Q7ZS2CC.js → chunk-JFJXBYRD.js} +2 -0
- package/dist/{chunk-4TSBX6J3.js → chunk-OXKWNNNJ.js} +1 -1
- package/dist/{chunk-QHY7U7KK.js → chunk-RAZAJMHK.js} +5 -5
- package/dist/chunk-SNV6YKPC.js +234 -0
- package/dist/{chunk-7QLJS57B.js → chunk-X7RINDJQ.js} +1 -1
- package/dist/{chunk-C66U34OA.js → chunk-XDUYS4KK.js} +40 -26
- package/dist/{chunk-ZWBP2WTC.js → chunk-ZV2Z4IWH.js} +1 -1
- package/dist/controls.d.ts +2 -0
- package/dist/controls.d.ts.map +1 -0
- package/dist/controls.js +4 -4
- package/dist/dialog/dialog-footer.d.ts +1 -0
- package/dist/dialog/dialog-footer.d.ts.map +1 -0
- package/dist/dialog/dialog.d.ts +1 -0
- package/dist/dialog/dialog.d.ts.map +1 -0
- package/dist/dialog/focus.d.ts +7 -0
- package/dist/dialog/focus.d.ts.map +1 -0
- package/dist/dialog/options-dialog.d.ts +1 -0
- package/dist/dialog/options-dialog.d.ts.map +1 -0
- package/dist/docx/backstage-home.d.ts +1 -1
- package/dist/docx/backstage-options.d.ts +1 -1
- package/dist/docx/backstage-pages.d.ts +3 -3
- package/dist/docx/backstage.d.ts +2 -2
- package/dist/docx/binding-labels.d.ts +1 -1
- package/dist/docx/bookmark-dialog.d.ts +1 -1
- package/dist/docx/borders-dialog.d.ts +1 -1
- package/dist/docx/caption-dialog.d.ts +1 -1
- package/dist/docx/character-style-picker.d.ts +1 -1
- package/dist/docx/collaboration-session.d.ts +6 -1
- package/dist/docx/columns-dialog.d.ts +1 -1
- package/dist/docx/comment-commands.d.ts +1 -21
- package/dist/docx/comments-panel.d.ts +1 -0
- package/dist/docx/component.d.ts +3 -9
- package/dist/docx/context-menu-items.d.ts +3 -3
- package/dist/docx/context-menu.d.ts +2 -2
- package/dist/docx/cross-reference-dialog.d.ts +1 -1
- package/dist/docx/dialog-shell.d.ts +1 -1
- package/dist/docx/drop-cap-dialog.d.ts +1 -1
- package/dist/docx/editor-chrome.d.ts +6 -6
- package/dist/docx/editor-commands.d.ts +1 -1
- package/dist/docx/editor-controls.d.ts +2 -2
- package/dist/docx/editor-core.d.ts +18 -17
- package/dist/docx/editor-host.d.ts +1 -1
- package/dist/docx/editor-interactions.d.ts +1 -1
- package/dist/docx/editor-plugins.d.ts +3 -1
- package/dist/docx/editor-presence.d.ts +1 -1
- package/dist/docx/editor-render.d.ts +1 -1
- package/dist/docx/editor-shell.d.ts +1 -1
- package/dist/docx/element-api.d.ts +15 -2
- package/dist/docx/events.d.ts +4 -4
- package/dist/docx/font-advanced.d.ts +1 -1
- package/dist/docx/font-dialog.d.ts +1 -1
- package/dist/docx/format-dialogs.d.ts +11 -9
- package/dist/docx/header-footer-editor.d.ts +2 -1
- package/dist/docx/header-footer-link.d.ts +1 -1
- package/dist/docx/header-footer-navigation.d.ts +1 -1
- package/dist/docx/header-footer-ribbon.d.ts +1 -1
- package/dist/docx/header-footer-view.d.ts +2 -2
- package/dist/docx/heading-navigator.d.ts +1 -1
- package/dist/docx/image-media.d.ts +4 -0
- package/dist/docx/index.d.ts +17 -16
- package/dist/docx/insert-controller.d.ts +7 -4
- package/dist/docx/keyboard.d.ts +1 -1
- package/dist/docx/line-number-dialog.d.ts +1 -1
- package/dist/docx/link-dialog.d.ts +1 -1
- package/dist/docx/locales/de-app.d.ts +1 -1
- package/dist/docx/locales/de-ribbon.d.ts +1 -1
- package/dist/docx/locales/de.d.ts +1 -1
- package/dist/docx/locales/en-ribbon.d.ts +3 -0
- package/dist/docx/locales/en.d.ts +5 -2
- package/dist/docx/locales/es-app.d.ts +1 -1
- package/dist/docx/locales/es-ribbon.d.ts +1 -1
- package/dist/docx/locales/es.d.ts +1 -1
- package/dist/docx/locales/fr-app.d.ts +1 -1
- package/dist/docx/locales/fr-ribbon.d.ts +1 -1
- package/dist/docx/locales/fr.d.ts +1 -1
- package/dist/docx/locales/zh-CN-app.d.ts +1 -1
- package/dist/docx/locales/zh-CN-ribbon.d.ts +1 -1
- package/dist/docx/locales/zh-CN.d.ts +1 -1
- package/dist/docx/localization-strings.d.ts +8 -5
- package/dist/docx/localization.d.ts +1 -1
- package/dist/docx/multilevel-list-dialog.d.ts +1 -1
- package/dist/docx/multilingual-ribbon.d.ts +2 -2
- package/dist/docx/note-editor.d.ts +1 -1
- package/dist/docx/page-borders-dialog.d.ts +1 -1
- package/dist/docx/page-controller.d.ts +4 -4
- package/dist/docx/page-navigator.d.ts +1 -1
- package/dist/docx/page-setup-change.d.ts +1 -1
- package/dist/docx/page-setup-dialog.d.ts +1 -1
- package/dist/docx/page-sync.d.ts +1 -1
- package/dist/docx/paragraph-dialog.d.ts +1 -1
- package/dist/docx/paragraph-styles.d.ts +3 -2
- package/dist/docx/parts-controller.d.ts +10 -5
- package/dist/docx/picture-commands.d.ts +1 -1
- package/dist/docx/picture-dialog.d.ts +1 -1
- package/dist/docx/presence-decorations.d.ts +12 -2
- package/dist/docx/presence.d.ts +1 -1
- package/dist/docx/preview-run-styles.d.ts +2 -2
- package/dist/docx/print-header-footer.d.ts +8 -21
- package/dist/docx/print-layout-view.d.ts +2 -1
- package/dist/docx/print-layout.d.ts +2 -2
- package/dist/docx/review-commands.d.ts +1 -24
- package/dist/docx/review-controller.d.ts +5 -2
- package/dist/docx/review-display.d.ts +4 -2
- package/dist/docx/review-options-dialog.d.ts +4 -0
- package/dist/docx/review-paragraph-display.d.ts +6 -0
- package/dist/docx/review-run-css.d.ts +3 -0
- package/dist/docx/review-run-marks.d.ts +8 -0
- package/dist/docx/review-story-previews.d.ts +7 -0
- package/dist/docx/ribbon-action.d.ts +4 -4
- package/dist/docx/ribbon-combo.d.ts +1 -1
- package/dist/docx/ribbon-gallery-menu.d.ts +2 -2
- package/dist/docx/ribbon-keytips.d.ts +1 -1
- package/dist/docx/ribbon-parts.d.ts +2 -2
- package/dist/docx/ribbon-router.d.ts +2 -2
- package/dist/docx/ribbon.d.ts +1 -1
- package/dist/docx/ruler-sync.d.ts +1 -1
- package/dist/docx/ruler.d.ts +1 -1
- package/dist/docx/run-adapter.d.ts +4 -8
- package/dist/docx/run-marks.d.ts +1 -3
- package/dist/docx/run-styles.d.ts +2 -1
- package/dist/docx/shell-labels.d.ts +1 -1
- package/dist/docx/shortcut-help.d.ts +2 -2
- package/dist/docx/styles-group.d.ts +1 -1
- package/dist/docx/styles-pane.d.ts +2 -2
- package/dist/docx/styles-popover.d.ts +1 -1
- package/dist/docx/table-cell-alignment-dialog.d.ts +1 -1
- package/dist/docx/table-cell-margins-dialog.d.ts +1 -1
- package/dist/docx/table-properties-dialog.d.ts +1 -1
- package/dist/docx/table-shading.d.ts +1 -1
- package/dist/docx/text-box-dialog.d.ts +1 -1
- package/dist/docx/title-bar.d.ts +1 -1
- package/dist/docx/track-changes-mode.d.ts +1 -20
- package/dist/docx/view-options.d.ts +1 -1
- package/dist/docx/watermark-dialog.d.ts +1 -1
- package/dist/docx/word-count-panel.d.ts +1 -1
- package/dist/docx/yjs-presence.d.ts +8 -0
- package/dist/docx/zoom-dialog.d.ts +1 -1
- package/dist/docx.js +3044 -3258
- package/dist/form/checkable.d.ts +1 -0
- package/dist/form/checkable.d.ts.map +1 -0
- package/dist/form/checkbox.d.ts +1 -0
- package/dist/form/checkbox.d.ts.map +1 -0
- package/dist/form/color-swatches.d.ts +41 -0
- package/dist/form/color-swatches.d.ts.map +1 -0
- package/dist/form/radio.d.ts +1 -0
- package/dist/form/radio.d.ts.map +1 -0
- package/dist/form/range-control.d.ts +14 -0
- package/dist/form/range-control.d.ts.map +1 -0
- package/dist/form/search-field.d.ts +1 -0
- package/dist/form/search-field.d.ts.map +1 -0
- package/dist/form/select-menu.d.ts +1 -0
- package/dist/form/select-menu.d.ts.map +1 -0
- package/dist/form/select.d.ts +1 -0
- package/dist/form/select.d.ts.map +1 -0
- package/dist/form/switch.d.ts +1 -0
- package/dist/form/switch.d.ts.map +1 -0
- package/dist/form/zoom-slider.d.ts +1 -0
- package/dist/form/zoom-slider.d.ts.map +1 -0
- package/dist/glyph.d.ts +1 -0
- package/dist/glyph.d.ts.map +1 -0
- package/dist/icon.d.ts +1 -0
- package/dist/icon.d.ts.map +1 -0
- package/dist/icons.d.ts +1 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/index.js +9 -8
- package/dist/keytips.d.ts +1 -0
- package/dist/keytips.d.ts.map +1 -0
- package/dist/menu/command-search.d.ts +1 -0
- package/dist/menu/command-search.d.ts.map +1 -0
- package/dist/menu/context-menu.d.ts +1 -0
- package/dist/menu/context-menu.d.ts.map +1 -0
- package/dist/menu/menu-button.d.ts +1 -0
- package/dist/menu/menu-button.d.ts.map +1 -0
- package/dist/menu/menu-item.d.ts +1 -0
- package/dist/menu/menu-item.d.ts.map +1 -0
- package/dist/menu/menu-model.d.ts +1 -0
- package/dist/menu/menu-model.d.ts.map +1 -0
- package/dist/menu/menu-separator.d.ts +1 -0
- package/dist/menu/menu-separator.d.ts.map +1 -0
- package/dist/notices/paste-options.d.ts +1 -0
- package/dist/notices/paste-options.d.ts.map +1 -0
- package/dist/notices/read-only-banner.d.ts +1 -0
- package/dist/notices/read-only-banner.d.ts.map +1 -0
- package/dist/notices/toasts.d.ts +1 -0
- package/dist/notices/toasts.d.ts.map +1 -0
- package/dist/pptx/ai/bridge.d.ts +144 -0
- package/dist/pptx/ai/bridge.d.ts.map +1 -0
- package/dist/pptx/ai/change-animation-css.d.ts +38 -0
- package/dist/pptx/ai/change-animation-css.d.ts.map +1 -0
- package/dist/pptx/ai/change-animator.d.ts +68 -0
- package/dist/pptx/ai/change-animator.d.ts.map +1 -0
- package/dist/pptx/ai/change-diff.d.ts +38 -0
- package/dist/pptx/ai/change-diff.d.ts.map +1 -0
- package/dist/pptx/ai/chat-history-controller.d.ts +63 -0
- package/dist/pptx/ai/chat-history-controller.d.ts.map +1 -0
- package/dist/pptx/ai/chat-history-idb.d.ts +20 -0
- package/dist/pptx/ai/chat-history-idb.d.ts.map +1 -0
- package/dist/pptx/ai/chat-history-store.d.ts +82 -0
- package/dist/pptx/ai/chat-history-store.d.ts.map +1 -0
- package/dist/pptx/ai/chat-log-export.d.ts +84 -0
- package/dist/pptx/ai/chat-log-export.d.ts.map +1 -0
- package/dist/pptx/ai/config.d.ts +110 -0
- package/dist/pptx/ai/config.d.ts.map +1 -0
- package/dist/pptx/ai/context.d.ts +32 -0
- package/dist/pptx/ai/context.d.ts.map +1 -0
- package/dist/pptx/ai/deck-data-diff.d.ts +18 -0
- package/dist/pptx/ai/deck-data-diff.d.ts.map +1 -0
- package/dist/pptx/ai/focus-targets.d.ts +53 -0
- package/dist/pptx/ai/focus-targets.d.ts.map +1 -0
- package/dist/pptx/ai/focused-context.d.ts +34 -0
- package/dist/pptx/ai/focused-context.d.ts.map +1 -0
- package/dist/pptx/ai/index.cjs +2581 -0
- package/dist/pptx/ai/index.d.ts +56 -0
- package/dist/pptx/ai/index.d.ts.map +1 -0
- package/dist/pptx/ai/index.mjs +2493 -0
- package/dist/pptx/ai/loader.d.ts +25 -0
- package/dist/pptx/ai/loader.d.ts.map +1 -0
- package/dist/pptx/ai/mock-bridge.d.ts +34 -0
- package/dist/pptx/ai/mock-bridge.d.ts.map +1 -0
- package/dist/pptx/ai/proposals-diff.d.ts +23 -0
- package/dist/pptx/ai/proposals-diff.d.ts.map +1 -0
- package/dist/pptx/ai/proposals.d.ts +66 -0
- package/dist/pptx/ai/proposals.d.ts.map +1 -0
- package/dist/pptx/ai/server.d.ts +32 -0
- package/dist/pptx/ai/server.d.ts.map +1 -0
- package/dist/pptx/ai/session.d.ts +70 -0
- package/dist/pptx/ai/session.d.ts.map +1 -0
- package/dist/pptx/ai/system-prompt.d.ts +20 -0
- package/dist/pptx/ai/system-prompt.d.ts.map +1 -0
- package/dist/pptx/ai/table-merge.d.ts +3 -0
- package/dist/pptx/ai/table-merge.d.ts.map +1 -0
- package/dist/pptx/ai/tool-summary.d.ts +34 -0
- package/dist/pptx/ai/tool-summary.d.ts.map +1 -0
- package/dist/pptx/ai/tool-target.d.ts +26 -0
- package/dist/pptx/ai/tool-target.d.ts.map +1 -0
- package/dist/pptx/ai/tools/bespoke-registry.d.ts +21 -0
- package/dist/pptx/ai/tools/bespoke-registry.d.ts.map +1 -0
- package/dist/pptx/ai/tools/executor-base.d.ts +49 -0
- package/dist/pptx/ai/tools/executor-base.d.ts.map +1 -0
- package/dist/pptx/ai/tools/index.d.ts +16 -0
- package/dist/pptx/ai/tools/index.d.ts.map +1 -0
- package/dist/pptx/ai/tools/mcp-registry.d.ts +37 -0
- package/dist/pptx/ai/tools/mcp-registry.d.ts.map +1 -0
- package/dist/pptx/ai/tools/merge-tools.d.ts +13 -0
- package/dist/pptx/ai/tools/merge-tools.d.ts.map +1 -0
- package/dist/pptx/ai/tools/mutations.d.ts +21 -0
- package/dist/pptx/ai/tools/mutations.d.ts.map +1 -0
- package/dist/pptx/ai/tools/nav-tools.d.ts +12 -0
- package/dist/pptx/ai/tools/nav-tools.d.ts.map +1 -0
- package/dist/pptx/ai/tools/read-tools.d.ts +16 -0
- package/dist/pptx/ai/tools/read-tools.d.ts.map +1 -0
- package/dist/pptx/ai/tools/registry.d.ts +41 -0
- package/dist/pptx/ai/tools/registry.d.ts.map +1 -0
- package/dist/pptx/ai/tools/shared-tool-runner.d.ts +47 -0
- package/dist/pptx/ai/tools/shared-tool-runner.d.ts.map +1 -0
- package/dist/pptx/ai/ui-parts.d.ts +43 -0
- package/dist/pptx/ai/ui-parts.d.ts.map +1 -0
- package/dist/pptx/ai/vanilla-chat.d.ts +59 -0
- package/dist/pptx/ai/vanilla-chat.d.ts.map +1 -0
- package/dist/pptx/chart-3d-view-scene-3DK5TUBZ.cjs +1667 -0
- package/dist/pptx/chart-3d-view-scene-IANLDFIE.mjs +1664 -0
- package/dist/pptx/chat-history-idb-PGLJPVOI.cjs +92 -0
- package/dist/pptx/chat-history-idb-XXPB3Q4U.mjs +88 -0
- package/dist/pptx/chunk-2JEQHIAL.cjs +387 -0
- package/dist/pptx/chunk-2V5ATMMB.mjs +241 -0
- package/dist/pptx/chunk-3ZI57W7O.mjs +342 -0
- package/dist/pptx/chunk-47FYJVMH.cjs +373 -0
- package/dist/pptx/chunk-52LKIMK3.cjs +59 -0
- package/dist/pptx/chunk-6SCK57RJ.cjs +79562 -0
- package/dist/pptx/chunk-73IDQGYI.cjs +26 -0
- package/dist/pptx/chunk-7BHPBO2O.mjs +34 -0
- package/dist/pptx/chunk-7JBQPQ6G.mjs +226 -0
- package/dist/pptx/chunk-7JEMQW6R.mjs +10854 -0
- package/dist/pptx/chunk-7KPDES3X.mjs +285 -0
- package/dist/pptx/chunk-A5MANNJR.cjs +136 -0
- package/dist/pptx/chunk-A62C6PSL.mjs +21 -0
- package/dist/pptx/chunk-A63ASSCH.mjs +46 -0
- package/dist/pptx/chunk-AEQGGKRZ.mjs +65 -0
- package/dist/pptx/chunk-APQ3OOAT.mjs +56 -0
- package/dist/pptx/chunk-BPAA5FSB.mjs +171 -0
- package/dist/pptx/chunk-BSGCZ4JZ.cjs +63 -0
- package/dist/pptx/chunk-C42ZL35K.mjs +880 -0
- package/dist/pptx/chunk-CENGE3TZ.mjs +10 -0
- package/dist/pptx/chunk-DMWNOP4E.mjs +376 -0
- package/dist/pptx/chunk-EVGSFPUV.mjs +76010 -0
- package/dist/pptx/chunk-EW5DW5KR.cjs +129 -0
- package/dist/pptx/chunk-FGKPZFLL.cjs +154 -0
- package/dist/pptx/chunk-FOE75Z6N.cjs +136 -0
- package/dist/pptx/chunk-FQUX6AUU.cjs +57 -0
- package/dist/pptx/chunk-G4WRLFMJ.cjs +252 -0
- package/dist/pptx/chunk-GVH4QN7R.mjs +1 -0
- package/dist/pptx/chunk-HJ3JZXOL.cjs +230 -0
- package/dist/pptx/chunk-IB6ZM2E2.mjs +130 -0
- package/dist/pptx/chunk-IEAO7N4E.mjs +13 -0
- package/dist/pptx/chunk-IOOI63TH.cjs +115 -0
- package/dist/pptx/chunk-IOR4KOGN.cjs +28 -0
- package/dist/pptx/chunk-IXFG46KB.mjs +149 -0
- package/dist/pptx/chunk-JA7WYSRE.mjs +307 -0
- package/dist/pptx/chunk-JJP5HOLA.cjs +23 -0
- package/dist/pptx/chunk-JSBGBVBH.mjs +4286 -0
- package/dist/pptx/chunk-KY75GY5O.mjs +107 -0
- package/dist/pptx/chunk-L55MIOBC.mjs +81 -0
- package/dist/pptx/chunk-LVDF75JU.mjs +133 -0
- package/dist/pptx/chunk-MNSWEXYO.mjs +96 -0
- package/dist/pptx/chunk-NKHPE4PS.cjs +94 -0
- package/dist/pptx/chunk-NTXHQHCS.cjs +327 -0
- package/dist/pptx/chunk-NVYVHNPD.mjs +90 -0
- package/dist/pptx/chunk-OGJRSAGH.cjs +12 -0
- package/dist/pptx/chunk-OHE5UXST.cjs +902 -0
- package/dist/pptx/chunk-P27CIE4O.cjs +52 -0
- package/dist/pptx/chunk-PI47Z46K.mjs +45 -0
- package/dist/pptx/chunk-QM4FGZG4.cjs +11159 -0
- package/dist/pptx/chunk-QWF3PGUX.cjs +101 -0
- package/dist/pptx/chunk-QX6XPYVA.mjs +60 -0
- package/dist/pptx/chunk-RQJOOXRG.mjs +864 -0
- package/dist/pptx/chunk-SMSCEGAE.mjs +107 -0
- package/dist/pptx/chunk-STXGHV25.cjs +206 -0
- package/dist/pptx/chunk-T7FRLIDM.mjs +69 -0
- package/dist/pptx/chunk-U47LRWDT.cjs +128 -0
- package/dist/pptx/chunk-UEF4BFW4.cjs +184 -0
- package/dist/pptx/chunk-UPN5FFKP.cjs +16 -0
- package/dist/pptx/chunk-USBRSEJK.cjs +77 -0
- package/dist/pptx/chunk-V4YMLIGL.mjs +19 -0
- package/dist/pptx/chunk-VD7HRMTA.mjs +137 -0
- package/dist/pptx/chunk-W3X2UVYQ.cjs +37 -0
- package/dist/pptx/chunk-WB25PCHQ.cjs +116 -0
- package/dist/pptx/chunk-WHUMPYEM.mjs +118 -0
- package/dist/pptx/chunk-WLETAW3T.cjs +1099 -0
- package/dist/pptx/chunk-WSR2S2MY.mjs +23 -0
- package/dist/pptx/chunk-WSTWYZFM.cjs +49 -0
- package/dist/pptx/chunk-X2F6PA2D.mjs +1045 -0
- package/dist/pptx/chunk-X4FNVH7J.cjs +368 -0
- package/dist/pptx/chunk-X7FS7XHU.cjs +10 -0
- package/dist/pptx/chunk-XAOEDYA5.mjs +50 -0
- package/dist/pptx/chunk-XOAXPD2W.cjs +884 -0
- package/dist/pptx/chunk-XQZWZMGZ.cjs +4292 -0
- package/dist/pptx/chunk-XRWEURSV.mjs +357 -0
- package/dist/pptx/chunk-Y4LTLCQP.cjs +324 -0
- package/dist/pptx/chunk-ZJFN5POF.cjs +83 -0
- package/dist/pptx/constants.d.ts +37 -0
- package/dist/pptx/constants.d.ts.map +1 -0
- package/dist/pptx/dom/activex-controls-overlay.d.ts +13 -0
- package/dist/pptx/dom/activex-controls-overlay.d.ts.map +1 -0
- package/dist/pptx/dom/comment-markers.d.ts +19 -0
- package/dist/pptx/dom/comment-markers.d.ts.map +1 -0
- package/dist/pptx/dom/dom.d.ts +19 -0
- package/dist/pptx/dom/dom.d.ts.map +1 -0
- package/dist/pptx/dom/element-styles.d.ts +26 -0
- package/dist/pptx/dom/element-styles.d.ts.map +1 -0
- package/dist/pptx/dom/elements/chart-editable.d.ts +29 -0
- package/dist/pptx/dom/elements/chart-editable.d.ts.map +1 -0
- package/dist/pptx/dom/elements/chart-svg.d.ts +9 -0
- package/dist/pptx/dom/elements/chart-svg.d.ts.map +1 -0
- package/dist/pptx/dom/elements/chart-title-editor.d.ts +3 -0
- package/dist/pptx/dom/elements/chart-title-editor.d.ts.map +1 -0
- package/dist/pptx/dom/elements/chart.d.ts +40 -0
- package/dist/pptx/dom/elements/chart.d.ts.map +1 -0
- package/dist/pptx/dom/elements/connector.d.ts +13 -0
- package/dist/pptx/dom/elements/connector.d.ts.map +1 -0
- package/dist/pptx/dom/elements/contentpart.d.ts +25 -0
- package/dist/pptx/dom/elements/contentpart.d.ts.map +1 -0
- package/dist/pptx/dom/elements/equation.d.ts +12 -0
- package/dist/pptx/dom/elements/equation.d.ts.map +1 -0
- package/dist/pptx/dom/elements/extrusion-overlay.d.ts +4 -0
- package/dist/pptx/dom/elements/extrusion-overlay.d.ts.map +1 -0
- package/dist/pptx/dom/elements/group.d.ts +9 -0
- package/dist/pptx/dom/elements/group.d.ts.map +1 -0
- package/dist/pptx/dom/elements/image.d.ts +8 -0
- package/dist/pptx/dom/elements/image.d.ts.map +1 -0
- package/dist/pptx/dom/elements/index.d.ts +29 -0
- package/dist/pptx/dom/elements/index.d.ts.map +1 -0
- package/dist/pptx/dom/elements/ink-stroke-svg.d.ts +10 -0
- package/dist/pptx/dom/elements/ink-stroke-svg.d.ts.map +1 -0
- package/dist/pptx/dom/elements/ink.d.ts +26 -0
- package/dist/pptx/dom/elements/ink.d.ts.map +1 -0
- package/dist/pptx/dom/elements/media-fullscreen-overlay.d.ts +11 -0
- package/dist/pptx/dom/elements/media-fullscreen-overlay.d.ts.map +1 -0
- package/dist/pptx/dom/elements/media.d.ts +37 -0
- package/dist/pptx/dom/elements/media.d.ts.map +1 -0
- package/dist/pptx/dom/elements/model3d.d.ts +24 -0
- package/dist/pptx/dom/elements/model3d.d.ts.map +1 -0
- package/dist/pptx/dom/elements/ole-icons.d.ts +11 -0
- package/dist/pptx/dom/elements/ole-icons.d.ts.map +1 -0
- package/dist/pptx/dom/elements/ole.d.ts +17 -0
- package/dist/pptx/dom/elements/ole.d.ts.map +1 -0
- package/dist/pptx/dom/elements/placeholder.d.ts +12 -0
- package/dist/pptx/dom/elements/placeholder.d.ts.map +1 -0
- package/dist/pptx/dom/elements/reflection-mirror-content.d.ts +25 -0
- package/dist/pptx/dom/elements/reflection-mirror-content.d.ts.map +1 -0
- package/dist/pptx/dom/elements/register-extras.d.ts +15 -0
- package/dist/pptx/dom/elements/register-extras.d.ts.map +1 -0
- package/dist/pptx/dom/elements/register-rich-media.d.ts +17 -0
- package/dist/pptx/dom/elements/register-rich-media.d.ts.map +1 -0
- package/dist/pptx/dom/elements/register-table-chart.d.ts +10 -0
- package/dist/pptx/dom/elements/register-table-chart.d.ts.map +1 -0
- package/dist/pptx/dom/elements/shape-filter-defs.d.ts +61 -0
- package/dist/pptx/dom/elements/shape-filter-defs.d.ts.map +1 -0
- package/dist/pptx/dom/elements/smartart-3d.d.ts +22 -0
- package/dist/pptx/dom/elements/smartart-3d.d.ts.map +1 -0
- package/dist/pptx/dom/elements/smartart-editable.d.ts +5 -0
- package/dist/pptx/dom/elements/smartart-editable.d.ts.map +1 -0
- package/dist/pptx/dom/elements/smartart-fallback.d.ts +17 -0
- package/dist/pptx/dom/elements/smartart-fallback.d.ts.map +1 -0
- package/dist/pptx/dom/elements/smartart-svg.d.ts +44 -0
- package/dist/pptx/dom/elements/smartart-svg.d.ts.map +1 -0
- package/dist/pptx/dom/elements/smartart.d.ts +30 -0
- package/dist/pptx/dom/elements/smartart.d.ts.map +1 -0
- package/dist/pptx/dom/elements/table-editable.d.ts +15 -0
- package/dist/pptx/dom/elements/table-editable.d.ts.map +1 -0
- package/dist/pptx/dom/elements/table.d.ts +19 -0
- package/dist/pptx/dom/elements/table.d.ts.map +1 -0
- package/dist/pptx/dom/elements/text-block.d.ts +19 -0
- package/dist/pptx/dom/elements/text-block.d.ts.map +1 -0
- package/dist/pptx/dom/elements/text-run-content.d.ts +16 -0
- package/dist/pptx/dom/elements/text-run-content.d.ts.map +1 -0
- package/dist/pptx/dom/elements/text-shape.d.ts +11 -0
- package/dist/pptx/dom/elements/text-shape.d.ts.map +1 -0
- package/dist/pptx/dom/elements/text-warp.d.ts +5 -0
- package/dist/pptx/dom/elements/text-warp.d.ts.map +1 -0
- package/dist/pptx/dom/elements/three-view-reuse.d.ts +8 -0
- package/dist/pptx/dom/elements/three-view-reuse.d.ts.map +1 -0
- package/dist/pptx/dom/elements/three-view.d.ts +55 -0
- package/dist/pptx/dom/elements/three-view.d.ts.map +1 -0
- package/dist/pptx/dom/elements/zoom.d.ts +16 -0
- package/dist/pptx/dom/elements/zoom.d.ts.map +1 -0
- package/dist/pptx/dom/glyph-outline-cache.d.ts +19 -0
- package/dist/pptx/dom/glyph-outline-cache.d.ts.map +1 -0
- package/dist/pptx/dom/index.cjs +4143 -0
- package/dist/pptx/dom/index.d.ts +51 -0
- package/dist/pptx/dom/index.d.ts.map +1 -0
- package/dist/pptx/dom/index.mjs +4057 -0
- package/dist/pptx/dom/load-presentation.d.ts +103 -0
- package/dist/pptx/dom/load-presentation.d.ts.map +1 -0
- package/dist/pptx/dom/presentation-rerender.d.ts +14 -0
- package/dist/pptx/dom/presentation-rerender.d.ts.map +1 -0
- package/dist/pptx/dom/registry.d.ts +10 -0
- package/dist/pptx/dom/registry.d.ts.map +1 -0
- package/dist/pptx/dom/slide-stage.d.ts +106 -0
- package/dist/pptx/dom/slide-stage.d.ts.map +1 -0
- package/dist/pptx/dom/types.d.ts +213 -0
- package/dist/pptx/dom/types.d.ts.map +1 -0
- package/dist/pptx/export/canvas-color-fix.cjs +18 -0
- package/dist/pptx/export/canvas-color-fix.d.ts +120 -0
- package/dist/pptx/export/canvas-color-fix.d.ts.map +1 -0
- package/dist/pptx/export/canvas-color-fix.mjs +1 -0
- package/dist/pptx/export/canvas-jpeg.d.ts +21 -0
- package/dist/pptx/export/canvas-jpeg.d.ts.map +1 -0
- package/dist/pptx/export/canvas-size-probe.d.ts +55 -0
- package/dist/pptx/export/canvas-size-probe.d.ts.map +1 -0
- package/dist/pptx/export/css-preprocessing-flatten.d.ts +75 -0
- package/dist/pptx/export/css-preprocessing-flatten.d.ts.map +1 -0
- package/dist/pptx/export/css-preprocessing.d.ts +49 -0
- package/dist/pptx/export/css-preprocessing.d.ts.map +1 -0
- package/dist/pptx/export/deck-json.d.ts +25 -0
- package/dist/pptx/export/deck-json.d.ts.map +1 -0
- package/dist/pptx/export/download-helpers.d.ts +82 -0
- package/dist/pptx/export/download-helpers.d.ts.map +1 -0
- package/dist/pptx/export/export-capture-decision.d.ts +42 -0
- package/dist/pptx/export/export-capture-decision.d.ts.map +1 -0
- package/dist/pptx/export/gif-encoder.d.ts +100 -0
- package/dist/pptx/export/gif-encoder.d.ts.map +1 -0
- package/dist/pptx/export/handout-chrome-html.d.ts +30 -0
- package/dist/pptx/export/handout-chrome-html.d.ts.map +1 -0
- package/dist/pptx/export/handout-layout.cjs +46 -0
- package/dist/pptx/export/handout-layout.d.ts +86 -0
- package/dist/pptx/export/handout-layout.d.ts.map +1 -0
- package/dist/pptx/export/handout-layout.mjs +1 -0
- package/dist/pptx/export/handout-master-chrome.cjs +10 -0
- package/dist/pptx/export/handout-master-chrome.d.ts +72 -0
- package/dist/pptx/export/handout-master-chrome.d.ts.map +1 -0
- package/dist/pptx/export/handout-master-chrome.mjs +1 -0
- package/dist/pptx/export/html-escape.cjs +14 -0
- package/dist/pptx/export/html-escape.d.ts +23 -0
- package/dist/pptx/export/html-escape.d.ts.map +1 -0
- package/dist/pptx/export/html-escape.mjs +1 -0
- package/dist/pptx/export/html2canvas-clone.cjs +12 -0
- package/dist/pptx/export/html2canvas-clone.d.ts +16 -0
- package/dist/pptx/export/html2canvas-clone.d.ts.map +1 -0
- package/dist/pptx/export/html2canvas-clone.mjs +3 -0
- package/dist/pptx/export/index.d.ts +55 -0
- package/dist/pptx/export/index.d.ts.map +1 -0
- package/dist/pptx/export/notes-page-layout.d.ts +47 -0
- package/dist/pptx/export/notes-page-layout.d.ts.map +1 -0
- package/dist/pptx/export/pdf-notes-builder.d.ts +29 -0
- package/dist/pptx/export/pdf-notes-builder.d.ts.map +1 -0
- package/dist/pptx/export/pdf-notes-layout.d.ts +86 -0
- package/dist/pptx/export/pdf-notes-layout.d.ts.map +1 -0
- package/dist/pptx/export/pdf-page-size.cjs +22 -0
- package/dist/pptx/export/pdf-page-size.d.ts +39 -0
- package/dist/pptx/export/pdf-page-size.d.ts.map +1 -0
- package/dist/pptx/export/pdf-page-size.mjs +1 -0
- package/dist/pptx/export/pdf-slides.d.ts +61 -0
- package/dist/pptx/export/pdf-slides.d.ts.map +1 -0
- package/dist/pptx/export/pdf-tile-placement.d.ts +45 -0
- package/dist/pptx/export/pdf-tile-placement.d.ts.map +1 -0
- package/dist/pptx/export/png-chunk-builder.d.ts +22 -0
- package/dist/pptx/export/png-chunk-builder.d.ts.map +1 -0
- package/dist/pptx/export/png-crc32.d.ts +9 -0
- package/dist/pptx/export/png-crc32.d.ts.map +1 -0
- package/dist/pptx/export/png-row-filter.d.ts +26 -0
- package/dist/pptx/export/png-row-filter.d.ts.map +1 -0
- package/dist/pptx/export/print-document.cjs +73 -0
- package/dist/pptx/export/print-document.d.ts +147 -0
- package/dist/pptx/export/print-document.d.ts.map +1 -0
- package/dist/pptx/export/print-document.mjs +4 -0
- package/dist/pptx/export/print-window.d.ts +26 -0
- package/dist/pptx/export/print-window.d.ts.map +1 -0
- package/dist/pptx/export/raster-result-to-blob.d.ts +21 -0
- package/dist/pptx/export/raster-result-to-blob.d.ts.map +1 -0
- package/dist/pptx/export/rasterize-element-clamped.d.ts +15 -0
- package/dist/pptx/export/rasterize-element-clamped.d.ts.map +1 -0
- package/dist/pptx/export/rasterize-element-strategy.d.ts +59 -0
- package/dist/pptx/export/rasterize-element-strategy.d.ts.map +1 -0
- package/dist/pptx/export/rasterize-element-tiled-canvas.d.ts +32 -0
- package/dist/pptx/export/rasterize-element-tiled-canvas.d.ts.map +1 -0
- package/dist/pptx/export/rasterize-element-tiles.d.ts +46 -0
- package/dist/pptx/export/rasterize-element-tiles.d.ts.map +1 -0
- package/dist/pptx/export/rasterize-element.d.ts +45 -0
- package/dist/pptx/export/rasterize-element.d.ts.map +1 -0
- package/dist/pptx/export/rasterize-foreign-object.d.ts +45 -0
- package/dist/pptx/export/rasterize-foreign-object.d.ts.map +1 -0
- package/dist/pptx/export/save-element-as-picture.d.ts +39 -0
- package/dist/pptx/export/save-element-as-picture.d.ts.map +1 -0
- package/dist/pptx/export/streaming-png-encoder.d.ts +25 -0
- package/dist/pptx/export/streaming-png-encoder.d.ts.map +1 -0
- package/dist/pptx/export/svg-print.d.ts +99 -0
- package/dist/pptx/export/svg-print.d.ts.map +1 -0
- package/dist/pptx/export/tile-row-stitch.d.ts +24 -0
- package/dist/pptx/export/tile-row-stitch.d.ts.map +1 -0
- package/dist/pptx/export/video-plan.cjs +30 -0
- package/dist/pptx/export/video-plan.d.ts +94 -0
- package/dist/pptx/export/video-plan.d.ts.map +1 -0
- package/dist/pptx/export/video-plan.mjs +1 -0
- package/dist/pptx/i18n/alignment-labels.d.ts +3 -0
- package/dist/pptx/i18n/alignment-labels.d.ts.map +1 -0
- package/dist/pptx/i18n/index.cjs +26 -0
- package/dist/pptx/i18n/index.d.ts +8 -0
- package/dist/pptx/i18n/index.d.ts.map +1 -0
- package/dist/pptx/i18n/index.mjs +1 -0
- package/dist/pptx/i18n/locale-catalog.d.ts +17 -0
- package/dist/pptx/i18n/locale-catalog.d.ts.map +1 -0
- package/dist/pptx/i18n/translations-en-animation-presets.d.ts +24 -0
- package/dist/pptx/i18n/translations-en-animation-presets.d.ts.map +1 -0
- package/dist/pptx/i18n/translations-en-galleries-adjust.d.ts +7 -0
- package/dist/pptx/i18n/translations-en-galleries-adjust.d.ts.map +1 -0
- package/dist/pptx/i18n/translations-en-galleries-data.d.ts +6 -0
- package/dist/pptx/i18n/translations-en-galleries-data.d.ts.map +1 -0
- package/dist/pptx/i18n/translations-en-galleries-effects.d.ts +6 -0
- package/dist/pptx/i18n/translations-en-galleries-effects.d.ts.map +1 -0
- package/dist/pptx/i18n/translations-en-galleries-picture.d.ts +7 -0
- package/dist/pptx/i18n/translations-en-galleries-picture.d.ts.map +1 -0
- package/dist/pptx/i18n/translations-en-galleries.d.ts +9 -0
- package/dist/pptx/i18n/translations-en-galleries.d.ts.map +1 -0
- package/dist/pptx/i18n/translations-en.d.ts +24 -0
- package/dist/pptx/i18n/translations-en.d.ts.map +1 -0
- package/dist/pptx/i18n/translator.d.ts +23 -0
- package/dist/pptx/i18n/translator.d.ts.map +1 -0
- package/dist/pptx/index.cjs +13006 -0
- package/dist/pptx/index.d.ts +10 -0
- package/dist/pptx/index.d.ts.map +1 -0
- package/dist/pptx/index.mjs +37 -0
- package/dist/pptx/loader/element-patch-walker.d.ts +3 -0
- package/dist/pptx/loader/element-patch-walker.d.ts.map +1 -0
- package/dist/pptx/loader/index.cjs +74 -0
- package/dist/pptx/loader/index.d.ts +14 -0
- package/dist/pptx/loader/index.d.ts.map +1 -0
- package/dist/pptx/loader/index.mjs +1 -0
- package/dist/pptx/loader/is-external-url.d.ts +2 -0
- package/dist/pptx/loader/is-external-url.d.ts.map +1 -0
- package/dist/pptx/loader/lazy-image-resolution.d.ts +3 -0
- package/dist/pptx/loader/lazy-image-resolution.d.ts.map +1 -0
- package/dist/pptx/loader/load-content-helpers.d.ts +3 -0
- package/dist/pptx/loader/load-content-helpers.d.ts.map +1 -0
- package/dist/pptx/loader/media-element-source.d.ts +44 -0
- package/dist/pptx/loader/media-element-source.d.ts.map +1 -0
- package/dist/pptx/loader/presentation-load-resources.d.ts +11 -0
- package/dist/pptx/loader/presentation-load-resources.d.ts.map +1 -0
- package/dist/pptx/loader/table-style-image-paths.d.ts +3 -0
- package/dist/pptx/loader/table-style-image-paths.d.ts.map +1 -0
- package/dist/pptx/loader/text-fill-image-paths.d.ts +3 -0
- package/dist/pptx/loader/text-fill-image-paths.d.ts.map +1 -0
- package/dist/pptx/render/accessibility-issues.d.ts +75 -0
- package/dist/pptx/render/accessibility-issues.d.ts.map +1 -0
- package/dist/pptx/render/accessibility.d.ts +96 -0
- package/dist/pptx/render/accessibility.d.ts.map +1 -0
- package/dist/pptx/render/account.d.ts +45 -0
- package/dist/pptx/render/account.d.ts.map +1 -0
- package/dist/pptx/render/action-buttons.d.ts +23 -0
- package/dist/pptx/render/action-buttons.d.ts.map +1 -0
- package/dist/pptx/render/activex-overlay-view.d.ts +55 -0
- package/dist/pptx/render/activex-overlay-view.d.ts.map +1 -0
- package/dist/pptx/render/alignment-guides.d.ts +29 -0
- package/dist/pptx/render/alignment-guides.d.ts.map +1 -0
- package/dist/pptx/render/anchored-popup-position.d.ts +43 -0
- package/dist/pptx/render/anchored-popup-position.d.ts.map +1 -0
- package/dist/pptx/render/animation-advanced-triggers-end.d.ts +33 -0
- package/dist/pptx/render/animation-advanced-triggers-end.d.ts.map +1 -0
- package/dist/pptx/render/animation-advanced-triggers-shared.d.ts +40 -0
- package/dist/pptx/render/animation-advanced-triggers-shared.d.ts.map +1 -0
- package/dist/pptx/render/animation-advanced-triggers.d.ts +118 -0
- package/dist/pptx/render/animation-advanced-triggers.d.ts.map +1 -0
- package/dist/pptx/render/animation-after-effect-authoring.d.ts +39 -0
- package/dist/pptx/render/animation-after-effect-authoring.d.ts.map +1 -0
- package/dist/pptx/render/animation-after-effect.d.ts +82 -0
- package/dist/pptx/render/animation-after-effect.d.ts.map +1 -0
- package/dist/pptx/render/animation-attribute-geometry.d.ts +52 -0
- package/dist/pptx/render/animation-attribute-geometry.d.ts.map +1 -0
- package/dist/pptx/render/animation-attribute-transform.d.ts +24 -0
- package/dist/pptx/render/animation-attribute-transform.d.ts.map +1 -0
- package/dist/pptx/render/animation-authoring.cjs +158 -0
- package/dist/pptx/render/animation-authoring.d.ts +210 -0
- package/dist/pptx/render/animation-authoring.d.ts.map +1 -0
- package/dist/pptx/render/animation-authoring.mjs +1 -0
- package/dist/pptx/render/animation-behavior-accumulate.d.ts +52 -0
- package/dist/pptx/render/animation-behavior-accumulate.d.ts.map +1 -0
- package/dist/pptx/render/animation-behavior-keyframes.d.ts +41 -0
- package/dist/pptx/render/animation-behavior-keyframes.d.ts.map +1 -0
- package/dist/pptx/render/animation-behavior-player.d.ts +55 -0
- package/dist/pptx/render/animation-behavior-player.d.ts.map +1 -0
- package/dist/pptx/render/animation-behavior-timing.d.ts +54 -0
- package/dist/pptx/render/animation-behavior-timing.d.ts.map +1 -0
- package/dist/pptx/render/animation-behavior-values.d.ts +35 -0
- package/dist/pptx/render/animation-behavior-values.d.ts.map +1 -0
- package/dist/pptx/render/animation-bookmark-trigger.d.ts +49 -0
- package/dist/pptx/render/animation-bookmark-trigger.d.ts.map +1 -0
- package/dist/pptx/render/animation-bounce-end.d.ts +58 -0
- package/dist/pptx/render/animation-bounce-end.d.ts.map +1 -0
- package/dist/pptx/render/animation-build.d.ts +79 -0
- package/dist/pptx/render/animation-build.d.ts.map +1 -0
- package/dist/pptx/render/animation-circle-iris.d.ts +27 -0
- package/dist/pptx/render/animation-circle-iris.d.ts.map +1 -0
- package/dist/pptx/render/animation-color-base-style.d.ts +18 -0
- package/dist/pptx/render/animation-color-base-style.d.ts.map +1 -0
- package/dist/pptx/render/animation-color.d.ts +78 -0
- package/dist/pptx/render/animation-color.d.ts.map +1 -0
- package/dist/pptx/render/animation-css.d.ts +77 -0
- package/dist/pptx/render/animation-css.d.ts.map +1 -0
- package/dist/pptx/render/animation-direction-options.d.ts +40 -0
- package/dist/pptx/render/animation-direction-options.d.ts.map +1 -0
- package/dist/pptx/render/animation-directional.d.ts +33 -0
- package/dist/pptx/render/animation-directional.d.ts.map +1 -0
- package/dist/pptx/render/animation-easing.d.ts +67 -0
- package/dist/pptx/render/animation-easing.d.ts.map +1 -0
- package/dist/pptx/render/animation-effects.d.ts +19 -0
- package/dist/pptx/render/animation-effects.d.ts.map +1 -0
- package/dist/pptx/render/animation-emphasis-blink-shimmer.d.ts +29 -0
- package/dist/pptx/render/animation-emphasis-blink-shimmer.d.ts.map +1 -0
- package/dist/pptx/render/animation-emphasis-ground-truth-early.d.ts +13 -0
- package/dist/pptx/render/animation-emphasis-ground-truth-early.d.ts.map +1 -0
- package/dist/pptx/render/animation-emphasis-ground-truth-late.d.ts +13 -0
- package/dist/pptx/render/animation-emphasis-ground-truth-late.d.ts.map +1 -0
- package/dist/pptx/render/animation-emphasis-ground-truth-types.d.ts +27 -0
- package/dist/pptx/render/animation-emphasis-ground-truth-types.d.ts.map +1 -0
- package/dist/pptx/render/animation-emphasis-ground-truth.d.ts +50 -0
- package/dist/pptx/render/animation-emphasis-ground-truth.d.ts.map +1 -0
- package/dist/pptx/render/animation-fill-repeat.d.ts +54 -0
- package/dist/pptx/render/animation-fill-repeat.d.ts.map +1 -0
- package/dist/pptx/render/animation-filter-effects.d.ts +124 -0
- package/dist/pptx/render/animation-filter-effects.d.ts.map +1 -0
- package/dist/pptx/render/animation-filter-random.d.ts +31 -0
- package/dist/pptx/render/animation-filter-random.d.ts.map +1 -0
- package/dist/pptx/render/animation-keyframes-emphasis-base.d.ts +12 -0
- package/dist/pptx/render/animation-keyframes-emphasis-base.d.ts.map +1 -0
- package/dist/pptx/render/animation-keyframes-entrance.d.ts +10 -0
- package/dist/pptx/render/animation-keyframes-entrance.d.ts.map +1 -0
- package/dist/pptx/render/animation-keyframes-exit-shapes.d.ts +21 -0
- package/dist/pptx/render/animation-keyframes-exit-shapes.d.ts.map +1 -0
- package/dist/pptx/render/animation-keyframes-exit.d.ts +12 -0
- package/dist/pptx/render/animation-keyframes-exit.d.ts.map +1 -0
- package/dist/pptx/render/animation-keyframes-motion-family.d.ts +14 -0
- package/dist/pptx/render/animation-keyframes-motion-family.d.ts.map +1 -0
- package/dist/pptx/render/animation-keyframes-rotation-family.d.ts +20 -0
- package/dist/pptx/render/animation-keyframes-rotation-family.d.ts.map +1 -0
- package/dist/pptx/render/animation-keyframes-scale-spin.d.ts +25 -0
- package/dist/pptx/render/animation-keyframes-scale-spin.d.ts.map +1 -0
- package/dist/pptx/render/animation-keyframes.d.ts +15 -0
- package/dist/pptx/render/animation-keyframes.d.ts.map +1 -0
- package/dist/pptx/render/animation-mask-hole-reveal.d.ts +39 -0
- package/dist/pptx/render/animation-mask-hole-reveal.d.ts.map +1 -0
- package/dist/pptx/render/animation-mask-reveal.d.ts +80 -0
- package/dist/pptx/render/animation-mask-reveal.d.ts.map +1 -0
- package/dist/pptx/render/animation-media-bookmark-gating.d.ts +60 -0
- package/dist/pptx/render/animation-media-bookmark-gating.d.ts.map +1 -0
- package/dist/pptx/render/animation-media-commands.d.ts +65 -0
- package/dist/pptx/render/animation-media-commands.d.ts.map +1 -0
- package/dist/pptx/render/animation-media-end-gating.d.ts +114 -0
- package/dist/pptx/render/animation-media-end-gating.d.ts.map +1 -0
- package/dist/pptx/render/animation-media-playback.d.ts +78 -0
- package/dist/pptx/render/animation-media-playback.d.ts.map +1 -0
- package/dist/pptx/render/animation-motion-chain-keyframes.d.ts +16 -0
- package/dist/pptx/render/animation-motion-chain-keyframes.d.ts.map +1 -0
- package/dist/pptx/render/animation-motion-path-chain.d.ts +91 -0
- package/dist/pptx/render/animation-motion-path-chain.d.ts.map +1 -0
- package/dist/pptx/render/animation-motion-path-paced.d.ts +24 -0
- package/dist/pptx/render/animation-motion-path-paced.d.ts.map +1 -0
- package/dist/pptx/render/animation-motion-path.d.ts +26 -0
- package/dist/pptx/render/animation-motion-path.d.ts.map +1 -0
- package/dist/pptx/render/animation-parallel-composition.d.ts +8 -0
- package/dist/pptx/render/animation-parallel-composition.d.ts.map +1 -0
- package/dist/pptx/render/animation-pixelate-filter.d.ts +102 -0
- package/dist/pptx/render/animation-pixelate-filter.d.ts.map +1 -0
- package/dist/pptx/render/animation-playback-engine.d.ts +119 -0
- package/dist/pptx/render/animation-playback-engine.d.ts.map +1 -0
- package/dist/pptx/render/animation-playback-seek.d.ts +96 -0
- package/dist/pptx/render/animation-playback-seek.d.ts.map +1 -0
- package/dist/pptx/render/animation-playback-steps.d.ts +15 -0
- package/dist/pptx/render/animation-playback-steps.d.ts.map +1 -0
- package/dist/pptx/render/animation-playback.d.ts +72 -0
- package/dist/pptx/render/animation-playback.d.ts.map +1 -0
- package/dist/pptx/render/animation-ppt-formula.d.ts +41 -0
- package/dist/pptx/render/animation-ppt-formula.d.ts.map +1 -0
- package/dist/pptx/render/animation-preset-ground-truth.d.ts +60 -0
- package/dist/pptx/render/animation-preset-ground-truth.d.ts.map +1 -0
- package/dist/pptx/render/animation-preset-labels.cjs +34 -0
- package/dist/pptx/render/animation-preset-labels.d.ts +91 -0
- package/dist/pptx/render/animation-preset-labels.d.ts.map +1 -0
- package/dist/pptx/render/animation-preset-labels.mjs +1 -0
- package/dist/pptx/render/animation-presets-emphasis.d.ts +103 -0
- package/dist/pptx/render/animation-presets-emphasis.d.ts.map +1 -0
- package/dist/pptx/render/animation-presets-entrance.d.ts +12 -0
- package/dist/pptx/render/animation-presets-entrance.d.ts.map +1 -0
- package/dist/pptx/render/animation-presets-exit.d.ts +12 -0
- package/dist/pptx/render/animation-presets-exit.d.ts.map +1 -0
- package/dist/pptx/render/animation-presets-extended.d.ts +32 -0
- package/dist/pptx/render/animation-presets-extended.d.ts.map +1 -0
- package/dist/pptx/render/animation-presets-subtypes.d.ts +118 -0
- package/dist/pptx/render/animation-presets-subtypes.d.ts.map +1 -0
- package/dist/pptx/render/animation-presets.d.ts +23 -0
- package/dist/pptx/render/animation-presets.d.ts.map +1 -0
- package/dist/pptx/render/animation-preview-behavior.d.ts +46 -0
- package/dist/pptx/render/animation-preview-behavior.d.ts.map +1 -0
- package/dist/pptx/render/animation-preview.d.ts +54 -0
- package/dist/pptx/render/animation-preview.d.ts.map +1 -0
- package/dist/pptx/render/animation-render-context.d.ts +57 -0
- package/dist/pptx/render/animation-render-context.d.ts.map +1 -0
- package/dist/pptx/render/animation-ribbon-preview.d.ts +48 -0
- package/dist/pptx/render/animation-ribbon-preview.d.ts.map +1 -0
- package/dist/pptx/render/animation-sampled-mask-keyframes.d.ts +22 -0
- package/dist/pptx/render/animation-sampled-mask-keyframes.d.ts.map +1 -0
- package/dist/pptx/render/animation-sequence-gating.d.ts +145 -0
- package/dist/pptx/render/animation-sequence-gating.d.ts.map +1 -0
- package/dist/pptx/render/animation-sequencer.d.ts +43 -0
- package/dist/pptx/render/animation-sequencer.d.ts.map +1 -0
- package/dist/pptx/render/animation-slide-filter.d.ts +59 -0
- package/dist/pptx/render/animation-slide-filter.d.ts.map +1 -0
- package/dist/pptx/render/animation-sound-authoring.d.ts +79 -0
- package/dist/pptx/render/animation-sound-authoring.d.ts.map +1 -0
- package/dist/pptx/render/animation-strips-reveal.d.ts +77 -0
- package/dist/pptx/render/animation-strips-reveal.d.ts.map +1 -0
- package/dist/pptx/render/animation-target-id.d.ts +19 -0
- package/dist/pptx/render/animation-target-id.d.ts.map +1 -0
- package/dist/pptx/render/animation-text-style-css.d.ts +70 -0
- package/dist/pptx/render/animation-text-style-css.d.ts.map +1 -0
- package/dist/pptx/render/animation-text-style-resolve.d.ts +64 -0
- package/dist/pptx/render/animation-text-style-resolve.d.ts.map +1 -0
- package/dist/pptx/render/animation-text-style-state.d.ts +30 -0
- package/dist/pptx/render/animation-text-style-state.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-absolute.d.ts +115 -0
- package/dist/pptx/render/animation-timeline-absolute.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-build-descriptors.d.ts +144 -0
- package/dist/pptx/render/animation-timeline-build-descriptors.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-build-level.d.ts +37 -0
- package/dist/pptx/render/animation-timeline-build-level.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-builder-helpers.d.ts +52 -0
- package/dist/pptx/render/animation-timeline-builder-helpers.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-builder.d.ts +41 -0
- package/dist/pptx/render/animation-timeline-builder.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-effect-names.d.ts +12 -0
- package/dist/pptx/render/animation-timeline-effect-names.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-engine.d.ts +277 -0
- package/dist/pptx/render/animation-timeline-engine.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-group-helpers.d.ts +10 -0
- package/dist/pptx/render/animation-timeline-group-helpers.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-group.d.ts +147 -0
- package/dist/pptx/render/animation-timeline-group.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-helpers.d.ts +67 -0
- package/dist/pptx/render/animation-timeline-helpers.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-regular-step.d.ts +73 -0
- package/dist/pptx/render/animation-timeline-regular-step.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-rows.d.ts +78 -0
- package/dist/pptx/render/animation-timeline-rows.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-sequence-builder.d.ts +31 -0
- package/dist/pptx/render/animation-timeline-sequence-builder.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-step-effect.d.ts +44 -0
- package/dist/pptx/render/animation-timeline-step-effect.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-step-scheduling.d.ts +22 -0
- package/dist/pptx/render/animation-timeline-step-scheduling.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-step.d.ts +220 -0
- package/dist/pptx/render/animation-timeline-step.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-text-build-pieces.d.ts +93 -0
- package/dist/pptx/render/animation-timeline-text-build-pieces.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-text-build-ripple.d.ts +38 -0
- package/dist/pptx/render/animation-timeline-text-build-ripple.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-text-build.d.ts +46 -0
- package/dist/pptx/render/animation-timeline-text-build.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-text-range.d.ts +30 -0
- package/dist/pptx/render/animation-timeline-text-range.d.ts.map +1 -0
- package/dist/pptx/render/animation-timeline-types.d.ts +21 -0
- package/dist/pptx/render/animation-timeline-types.d.ts.map +1 -0
- package/dist/pptx/render/animation-transform-keyframes.d.ts +47 -0
- package/dist/pptx/render/animation-transform-keyframes.d.ts.map +1 -0
- package/dist/pptx/render/animation-wedge-reveal.d.ts +33 -0
- package/dist/pptx/render/animation-wedge-reveal.d.ts.map +1 -0
- package/dist/pptx/render/annotation-overlay.d.ts +32 -0
- package/dist/pptx/render/annotation-overlay.d.ts.map +1 -0
- package/dist/pptx/render/arrange-extras.d.ts +23 -0
- package/dist/pptx/render/arrange-extras.d.ts.map +1 -0
- package/dist/pptx/render/audience-content-store.d.ts +37 -0
- package/dist/pptx/render/audience-content-store.d.ts.map +1 -0
- package/dist/pptx/render/audience-display.d.ts +64 -0
- package/dist/pptx/render/audience-display.d.ts.map +1 -0
- package/dist/pptx/render/autosave-file-key.d.ts +7 -0
- package/dist/pptx/render/autosave-file-key.d.ts.map +1 -0
- package/dist/pptx/render/autosave-policy.d.ts +131 -0
- package/dist/pptx/render/autosave-policy.d.ts.map +1 -0
- package/dist/pptx/render/autosave-recovery-acknowledgement.d.ts +13 -0
- package/dist/pptx/render/autosave-recovery-acknowledgement.d.ts.map +1 -0
- package/dist/pptx/render/autosave-recovery.d.ts +140 -0
- package/dist/pptx/render/autosave-recovery.d.ts.map +1 -0
- package/dist/pptx/render/autosave-store.d.ts +49 -0
- package/dist/pptx/render/autosave-store.d.ts.map +1 -0
- package/dist/pptx/render/autosave-tick.d.ts +69 -0
- package/dist/pptx/render/autosave-tick.d.ts.map +1 -0
- package/dist/pptx/render/background-shade-to-title.d.ts +146 -0
- package/dist/pptx/render/background-shade-to-title.d.ts.map +1 -0
- package/dist/pptx/render/backstage-cards.d.ts +35 -0
- package/dist/pptx/render/backstage-cards.d.ts.map +1 -0
- package/dist/pptx/render/backstage.d.ts +86 -0
- package/dist/pptx/render/backstage.d.ts.map +1 -0
- package/dist/pptx/render/bar-chart-3d-hit-test.d.ts +21 -0
- package/dist/pptx/render/bar-chart-3d-hit-test.d.ts.map +1 -0
- package/dist/pptx/render/broadcast-helpers.d.ts +92 -0
- package/dist/pptx/render/broadcast-helpers.d.ts.map +1 -0
- package/dist/pptx/render/bullet-autonum-scripts.d.ts +13 -0
- package/dist/pptx/render/bullet-autonum-scripts.d.ts.map +1 -0
- package/dist/pptx/render/bullet-autonum.d.ts +2 -0
- package/dist/pptx/render/bullet-autonum.d.ts.map +1 -0
- package/dist/pptx/render/bullet-list.d.ts +3 -0
- package/dist/pptx/render/bullet-list.d.ts.map +1 -0
- package/dist/pptx/render/bullet-toggle-selection.d.ts +44 -0
- package/dist/pptx/render/bullet-toggle-selection.d.ts.map +1 -0
- package/dist/pptx/render/bullet-toggle.d.ts +3 -0
- package/dist/pptx/render/bullet-toggle.d.ts.map +1 -0
- package/dist/pptx/render/canvas-context-menu-commands.d.ts +50 -0
- package/dist/pptx/render/canvas-context-menu-commands.d.ts.map +1 -0
- package/dist/pptx/render/canvas-element-node.d.ts +24 -0
- package/dist/pptx/render/canvas-element-node.d.ts.map +1 -0
- package/dist/pptx/render/canvas-size-probe.d.ts +58 -0
- package/dist/pptx/render/canvas-size-probe.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-bar-mesh.d.ts +38 -0
- package/dist/pptx/render/chart-3d-bar-mesh.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-chrome-overlay.d.ts +31 -0
- package/dist/pptx/render/chart-3d-chrome-overlay.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-depth.d.ts +45 -0
- package/dist/pptx/render/chart-3d-depth.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-hover-tooltip.d.ts +33 -0
- package/dist/pptx/render/chart-3d-hover-tooltip.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-interaction.d.ts +79 -0
- package/dist/pptx/render/chart-3d-interaction.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-mark-interaction.d.ts +71 -0
- package/dist/pptx/render/chart-3d-mark-interaction.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-mesh-highlight.d.ts +22 -0
- package/dist/pptx/render/chart-3d-mesh-highlight.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-oblique-bars.d.ts +29 -0
- package/dist/pptx/render/chart-3d-oblique-bars.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-oblique-drag.d.ts +19 -0
- package/dist/pptx/render/chart-3d-oblique-drag.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-oblique-interaction.d.ts +36 -0
- package/dist/pptx/render/chart-3d-oblique-interaction.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-oblique-labels.d.ts +41 -0
- package/dist/pptx/render/chart-3d-oblique-labels.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-oblique-layout.d.ts +42 -0
- package/dist/pptx/render/chart-3d-oblique-layout.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-oblique-shape-mesh.d.ts +44 -0
- package/dist/pptx/render/chart-3d-oblique-shape-mesh.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-oblique-types.d.ts +66 -0
- package/dist/pptx/render/chart-3d-oblique-types.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-bars.d.ts +22 -0
- package/dist/pptx/render/chart-3d-persp-bars.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-gridlines.d.ts +19 -0
- package/dist/pptx/render/chart-3d-persp-gridlines.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-labels.d.ts +38 -0
- package/dist/pptx/render/chart-3d-persp-labels.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-layout.d.ts +71 -0
- package/dist/pptx/render/chart-3d-persp-layout.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-mark-set.d.ts +31 -0
- package/dist/pptx/render/chart-3d-persp-mark-set.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-marks.d.ts +53 -0
- package/dist/pptx/render/chart-3d-persp-marks.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-mesh.d.ts +36 -0
- package/dist/pptx/render/chart-3d-persp-mesh.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-oblique.d.ts +38 -0
- package/dist/pptx/render/chart-3d-persp-oblique.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-scene.d.ts +25 -0
- package/dist/pptx/render/chart-3d-persp-scene.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-shape-mesh.d.ts +24 -0
- package/dist/pptx/render/chart-3d-persp-shape-mesh.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-surface-mesh.d.ts +26 -0
- package/dist/pptx/render/chart-3d-persp-surface-mesh.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-surface.d.ts +57 -0
- package/dist/pptx/render/chart-3d-persp-surface.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-persp-view.d.ts +101 -0
- package/dist/pptx/render/chart-3d-persp-view.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-pie-layout.d.ts +60 -0
- package/dist/pptx/render/chart-3d-pie-layout.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-pie-marks.d.ts +30 -0
- package/dist/pptx/render/chart-3d-pie-marks.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-pie-scene.d.ts +24 -0
- package/dist/pptx/render/chart-3d-pie-scene.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-projection.d.ts +60 -0
- package/dist/pptx/render/chart-3d-projection.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-shading.d.ts +21 -0
- package/dist/pptx/render/chart-3d-shading.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-spec.d.ts +68 -0
- package/dist/pptx/render/chart-3d-spec.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-surfaces.d.ts +57 -0
- package/dist/pptx/render/chart-3d-surfaces.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-three-loader.d.ts +12 -0
- package/dist/pptx/render/chart-3d-three-loader.d.ts.map +1 -0
- package/dist/pptx/render/chart-3d-view-scene.d.ts +32 -0
- package/dist/pptx/render/chart-3d-view-scene.d.ts.map +1 -0
- package/dist/pptx/render/chart-area-fill.d.ts +46 -0
- package/dist/pptx/render/chart-area-fill.d.ts.map +1 -0
- package/dist/pptx/render/chart-auto-title.d.ts +28 -0
- package/dist/pptx/render/chart-auto-title.d.ts.map +1 -0
- package/dist/pptx/render/chart-axis-crossing.d.ts +7 -0
- package/dist/pptx/render/chart-axis-crossing.d.ts.map +1 -0
- package/dist/pptx/render/chart-axis-nice.d.ts +4 -0
- package/dist/pptx/render/chart-axis-nice.d.ts.map +1 -0
- package/dist/pptx/render/chart-axis-primitives.d.ts +13 -0
- package/dist/pptx/render/chart-axis-primitives.d.ts.map +1 -0
- package/dist/pptx/render/chart-axis-range.d.ts +30 -0
- package/dist/pptx/render/chart-axis-range.d.ts.map +1 -0
- package/dist/pptx/render/chart-axis-render.d.ts +40 -0
- package/dist/pptx/render/chart-axis-render.d.ts.map +1 -0
- package/dist/pptx/render/chart-axis-style.d.ts +19 -0
- package/dist/pptx/render/chart-axis-style.d.ts.map +1 -0
- package/dist/pptx/render/chart-axis.d.ts +101 -0
- package/dist/pptx/render/chart-axis.d.ts.map +1 -0
- package/dist/pptx/render/chart-bar-cluster-geometry.d.ts +3 -0
- package/dist/pptx/render/chart-bar-cluster-geometry.d.ts.map +1 -0
- package/dist/pptx/render/chart-bar3d-face-picture-sample.d.ts +66 -0
- package/dist/pptx/render/chart-bar3d-face-picture-sample.d.ts.map +1 -0
- package/dist/pptx/render/chart-bar3d-face-picture.d.ts +61 -0
- package/dist/pptx/render/chart-bar3d-face-picture.d.ts.map +1 -0
- package/dist/pptx/render/chart-bar3d-series-depth.d.ts +42 -0
- package/dist/pptx/render/chart-bar3d-series-depth.d.ts.map +1 -0
- package/dist/pptx/render/chart-blank-display.d.ts +4 -0
- package/dist/pptx/render/chart-blank-display.d.ts.map +1 -0
- package/dist/pptx/render/chart-box-whisker-stats.d.ts +4 -0
- package/dist/pptx/render/chart-box-whisker-stats.d.ts.map +1 -0
- package/dist/pptx/render/chart-box-whisker.d.ts +41 -0
- package/dist/pptx/render/chart-box-whisker.d.ts.map +1 -0
- package/dist/pptx/render/chart-build.d.ts +69 -0
- package/dist/pptx/render/chart-build.d.ts.map +1 -0
- package/dist/pptx/render/chart-canvas-drag.d.ts +111 -0
- package/dist/pptx/render/chart-canvas-drag.d.ts.map +1 -0
- package/dist/pptx/render/chart-cartesian-area.d.ts +23 -0
- package/dist/pptx/render/chart-cartesian-area.d.ts.map +1 -0
- package/dist/pptx/render/chart-cartesian-axes.d.ts +11 -0
- package/dist/pptx/render/chart-cartesian-axes.d.ts.map +1 -0
- package/dist/pptx/render/chart-cartesian-bars.d.ts +22 -0
- package/dist/pptx/render/chart-cartesian-bars.d.ts.map +1 -0
- package/dist/pptx/render/chart-cartesian-bubbles.d.ts +28 -0
- package/dist/pptx/render/chart-cartesian-bubbles.d.ts.map +1 -0
- package/dist/pptx/render/chart-cartesian-line-area.d.ts +32 -0
- package/dist/pptx/render/chart-cartesian-line-area.d.ts.map +1 -0
- package/dist/pptx/render/chart-cartesian-percent-stacked.d.ts +18 -0
- package/dist/pptx/render/chart-cartesian-percent-stacked.d.ts.map +1 -0
- package/dist/pptx/render/chart-cartesian-plots.d.ts +47 -0
- package/dist/pptx/render/chart-cartesian-plots.d.ts.map +1 -0
- package/dist/pptx/render/chart-cartesian-stacked-labels.d.ts +18 -0
- package/dist/pptx/render/chart-cartesian-stacked-labels.d.ts.map +1 -0
- package/dist/pptx/render/chart-cartesian.d.ts +19 -0
- package/dist/pptx/render/chart-cartesian.d.ts.map +1 -0
- package/dist/pptx/render/chart-category-axis.d.ts +21 -0
- package/dist/pptx/render/chart-category-axis.d.ts.map +1 -0
- package/dist/pptx/render/chart-category-labels.d.ts +5 -0
- package/dist/pptx/render/chart-category-labels.d.ts.map +1 -0
- package/dist/pptx/render/chart-category-position.d.ts +3 -0
- package/dist/pptx/render/chart-category-position.d.ts.map +1 -0
- package/dist/pptx/render/chart-combo-classify.d.ts +49 -0
- package/dist/pptx/render/chart-combo-classify.d.ts.map +1 -0
- package/dist/pptx/render/chart-combo-series.d.ts +28 -0
- package/dist/pptx/render/chart-combo-series.d.ts.map +1 -0
- package/dist/pptx/render/chart-combo-stock.cjs +14 -0
- package/dist/pptx/render/chart-combo-stock.d.ts +46 -0
- package/dist/pptx/render/chart-combo-stock.d.ts.map +1 -0
- package/dist/pptx/render/chart-combo-stock.mjs +1 -0
- package/dist/pptx/render/chart-combo.d.ts +5 -0
- package/dist/pptx/render/chart-combo.d.ts.map +1 -0
- package/dist/pptx/render/chart-cx-axis-units.d.ts +39 -0
- package/dist/pptx/render/chart-cx-axis-units.d.ts.map +1 -0
- package/dist/pptx/render/chart-data-grid-ops.d.ts +2 -0
- package/dist/pptx/render/chart-data-grid-ops.d.ts.map +1 -0
- package/dist/pptx/render/chart-data-label-anchor.d.ts +78 -0
- package/dist/pptx/render/chart-data-label-anchor.d.ts.map +1 -0
- package/dist/pptx/render/chart-data-label-callout.d.ts +55 -0
- package/dist/pptx/render/chart-data-label-callout.d.ts.map +1 -0
- package/dist/pptx/render/chart-data-label-text.d.ts +102 -0
- package/dist/pptx/render/chart-data-label-text.d.ts.map +1 -0
- package/dist/pptx/render/chart-data-table-metrics.d.ts +35 -0
- package/dist/pptx/render/chart-data-table-metrics.d.ts.map +1 -0
- package/dist/pptx/render/chart-data-table-render.d.ts +38 -0
- package/dist/pptx/render/chart-data-table-render.d.ts.map +1 -0
- package/dist/pptx/render/chart-datapoint-picture-fills.d.ts +44 -0
- package/dist/pptx/render/chart-datapoint-picture-fills.d.ts.map +1 -0
- package/dist/pptx/render/chart-datapoint-picture-resolve.d.ts +93 -0
- package/dist/pptx/render/chart-datapoint-picture-resolve.d.ts.map +1 -0
- package/dist/pptx/render/chart-datapoint-style.d.ts +144 -0
- package/dist/pptx/render/chart-datapoint-style.d.ts.map +1 -0
- package/dist/pptx/render/chart-date-axis.d.ts +12 -0
- package/dist/pptx/render/chart-date-axis.d.ts.map +1 -0
- package/dist/pptx/render/chart-date-format.d.ts +31 -0
- package/dist/pptx/render/chart-date-format.d.ts.map +1 -0
- package/dist/pptx/render/chart-distribution-range.d.ts +5 -0
- package/dist/pptx/render/chart-distribution-range.d.ts.map +1 -0
- package/dist/pptx/render/chart-distribution.d.ts +5 -0
- package/dist/pptx/render/chart-distribution.d.ts.map +1 -0
- package/dist/pptx/render/chart-editor-options.d.ts +87 -0
- package/dist/pptx/render/chart-editor-options.d.ts.map +1 -0
- package/dist/pptx/render/chart-editor-support.d.ts +29 -0
- package/dist/pptx/render/chart-editor-support.d.ts.map +1 -0
- package/dist/pptx/render/chart-error-bars.d.ts +24 -0
- package/dist/pptx/render/chart-error-bars.d.ts.map +1 -0
- package/dist/pptx/render/chart-event-target.d.ts +36 -0
- package/dist/pptx/render/chart-event-target.d.ts.map +1 -0
- package/dist/pptx/render/chart-ex-insert-defaults.d.ts +54 -0
- package/dist/pptx/render/chart-ex-insert-defaults.d.ts.map +1 -0
- package/dist/pptx/render/chart-ext-editor-actions.d.ts +69 -0
- package/dist/pptx/render/chart-ext-editor-actions.d.ts.map +1 -0
- package/dist/pptx/render/chart-font.d.ts +56 -0
- package/dist/pptx/render/chart-font.d.ts.map +1 -0
- package/dist/pptx/render/chart-funnel-sunburst.d.ts +74 -0
- package/dist/pptx/render/chart-funnel-sunburst.d.ts.map +1 -0
- package/dist/pptx/render/chart-gradient-defs.d.ts +26 -0
- package/dist/pptx/render/chart-gradient-defs.d.ts.map +1 -0
- package/dist/pptx/render/chart-gridlines-toggle.d.ts +46 -0
- package/dist/pptx/render/chart-gridlines-toggle.d.ts.map +1 -0
- package/dist/pptx/render/chart-helper-lines.d.ts +51 -0
- package/dist/pptx/render/chart-helper-lines.d.ts.map +1 -0
- package/dist/pptx/render/chart-helpers.d.ts +110 -0
- package/dist/pptx/render/chart-helpers.d.ts.map +1 -0
- package/dist/pptx/render/chart-histogram-binning.d.ts +14 -0
- package/dist/pptx/render/chart-histogram-binning.d.ts.map +1 -0
- package/dist/pptx/render/chart-histogram.d.ts +15 -0
- package/dist/pptx/render/chart-histogram.d.ts.map +1 -0
- package/dist/pptx/render/chart-horizontal-axis.d.ts +12 -0
- package/dist/pptx/render/chart-horizontal-axis.d.ts.map +1 -0
- package/dist/pptx/render/chart-horizontal-bars-helpers.d.ts +32 -0
- package/dist/pptx/render/chart-horizontal-bars-helpers.d.ts.map +1 -0
- package/dist/pptx/render/chart-horizontal-bars.d.ts +24 -0
- package/dist/pptx/render/chart-horizontal-bars.d.ts.map +1 -0
- package/dist/pptx/render/chart-interaction-mark-drag.d.ts +78 -0
- package/dist/pptx/render/chart-interaction-mark-drag.d.ts.map +1 -0
- package/dist/pptx/render/chart-interaction-pie.d.ts +58 -0
- package/dist/pptx/render/chart-interaction-pie.d.ts.map +1 -0
- package/dist/pptx/render/chart-interaction-radar.d.ts +43 -0
- package/dist/pptx/render/chart-interaction-radar.d.ts.map +1 -0
- package/dist/pptx/render/chart-interaction-stacked.d.ts +52 -0
- package/dist/pptx/render/chart-interaction-stacked.d.ts.map +1 -0
- package/dist/pptx/render/chart-interaction.d.ts +129 -0
- package/dist/pptx/render/chart-interaction.d.ts.map +1 -0
- package/dist/pptx/render/chart-label-lines.d.ts +9 -0
- package/dist/pptx/render/chart-label-lines.d.ts.map +1 -0
- package/dist/pptx/render/chart-label-measure.d.ts +65 -0
- package/dist/pptx/render/chart-label-measure.d.ts.map +1 -0
- package/dist/pptx/render/chart-legend-build.d.ts +39 -0
- package/dist/pptx/render/chart-legend-build.d.ts.map +1 -0
- package/dist/pptx/render/chart-legend-entries.d.ts +30 -0
- package/dist/pptx/render/chart-legend-entries.d.ts.map +1 -0
- package/dist/pptx/render/chart-legend-layout.d.ts +28 -0
- package/dist/pptx/render/chart-legend-layout.d.ts.map +1 -0
- package/dist/pptx/render/chart-legend-placement.d.ts +60 -0
- package/dist/pptx/render/chart-legend-placement.d.ts.map +1 -0
- package/dist/pptx/render/chart-legend-swatch.d.ts +75 -0
- package/dist/pptx/render/chart-legend-swatch.d.ts.map +1 -0
- package/dist/pptx/render/chart-line-path.d.ts +18 -0
- package/dist/pptx/render/chart-line-path.d.ts.map +1 -0
- package/dist/pptx/render/chart-manual-layout.d.ts +93 -0
- package/dist/pptx/render/chart-manual-layout.d.ts.map +1 -0
- package/dist/pptx/render/chart-map-projection.d.ts +38 -0
- package/dist/pptx/render/chart-map-projection.d.ts.map +1 -0
- package/dist/pptx/render/chart-marker-shape.d.ts +54 -0
- package/dist/pptx/render/chart-marker-shape.d.ts.map +1 -0
- package/dist/pptx/render/chart-number-format-pattern.d.ts +35 -0
- package/dist/pptx/render/chart-number-format-pattern.d.ts.map +1 -0
- package/dist/pptx/render/chart-number-format.d.ts +21 -0
- package/dist/pptx/render/chart-number-format.d.ts.map +1 -0
- package/dist/pptx/render/chart-ofpie-secondary.d.ts +33 -0
- package/dist/pptx/render/chart-ofpie-secondary.d.ts.map +1 -0
- package/dist/pptx/render/chart-ofpie-split.d.ts +44 -0
- package/dist/pptx/render/chart-ofpie-split.d.ts.map +1 -0
- package/dist/pptx/render/chart-ofpie.d.ts +27 -0
- package/dist/pptx/render/chart-ofpie.d.ts.map +1 -0
- package/dist/pptx/render/chart-overlays-axis-titles.d.ts +32 -0
- package/dist/pptx/render/chart-overlays-axis-titles.d.ts.map +1 -0
- package/dist/pptx/render/chart-overlays-regression.d.ts +4 -0
- package/dist/pptx/render/chart-overlays-regression.d.ts.map +1 -0
- package/dist/pptx/render/chart-overlays-trendline-fit.d.ts +55 -0
- package/dist/pptx/render/chart-overlays-trendline-fit.d.ts.map +1 -0
- package/dist/pptx/render/chart-overlays-trendline.d.ts +39 -0
- package/dist/pptx/render/chart-overlays-trendline.d.ts.map +1 -0
- package/dist/pptx/render/chart-overlays.cjs +30 -0
- package/dist/pptx/render/chart-overlays.d.ts +29 -0
- package/dist/pptx/render/chart-overlays.d.ts.map +1 -0
- package/dist/pptx/render/chart-overlays.mjs +1 -0
- package/dist/pptx/render/chart-palette.d.ts +26 -0
- package/dist/pptx/render/chart-palette.d.ts.map +1 -0
- package/dist/pptx/render/chart-pareto.d.ts +76 -0
- package/dist/pptx/render/chart-pareto.d.ts.map +1 -0
- package/dist/pptx/render/chart-picture-pattern-def.d.ts +40 -0
- package/dist/pptx/render/chart-picture-pattern-def.d.ts.map +1 -0
- package/dist/pptx/render/chart-pie-best-fit.d.ts +4 -0
- package/dist/pptx/render/chart-pie-best-fit.d.ts.map +1 -0
- package/dist/pptx/render/chart-pie-label-collision.d.ts +4 -0
- package/dist/pptx/render/chart-pie-label-collision.d.ts.map +1 -0
- package/dist/pptx/render/chart-pie-label-helpers.d.ts +30 -0
- package/dist/pptx/render/chart-pie-label-helpers.d.ts.map +1 -0
- package/dist/pptx/render/chart-pie-labels.d.ts +99 -0
- package/dist/pptx/render/chart-pie-labels.d.ts.map +1 -0
- package/dist/pptx/render/chart-pie3d-tilt.d.ts +37 -0
- package/dist/pptx/render/chart-pie3d-tilt.d.ts.map +1 -0
- package/dist/pptx/render/chart-quick-action-styles.d.ts +72 -0
- package/dist/pptx/render/chart-quick-action-styles.d.ts.map +1 -0
- package/dist/pptx/render/chart-quick-action-toggles.d.ts +54 -0
- package/dist/pptx/render/chart-quick-action-toggles.d.ts.map +1 -0
- package/dist/pptx/render/chart-quick-actions.d.ts +92 -0
- package/dist/pptx/render/chart-quick-actions.d.ts.map +1 -0
- package/dist/pptx/render/chart-radar-geometry.d.ts +4 -0
- package/dist/pptx/render/chart-radar-geometry.d.ts.map +1 -0
- package/dist/pptx/render/chart-region-map-alias.d.ts +12 -0
- package/dist/pptx/render/chart-region-map-alias.d.ts.map +1 -0
- package/dist/pptx/render/chart-region-map-colors.d.ts +33 -0
- package/dist/pptx/render/chart-region-map-colors.d.ts.map +1 -0
- package/dist/pptx/render/chart-region-map-data.d.ts +45 -0
- package/dist/pptx/render/chart-region-map-data.d.ts.map +1 -0
- package/dist/pptx/render/chart-region-map-fallback-table.d.ts +26 -0
- package/dist/pptx/render/chart-region-map-fallback-table.d.ts.map +1 -0
- package/dist/pptx/render/chart-region-map-view.d.ts +29 -0
- package/dist/pptx/render/chart-region-map-view.d.ts.map +1 -0
- package/dist/pptx/render/chart-reveal-descriptor.d.ts +61 -0
- package/dist/pptx/render/chart-reveal-descriptor.d.ts.map +1 -0
- package/dist/pptx/render/chart-scatter-x-axis.d.ts +44 -0
- package/dist/pptx/render/chart-scatter-x-axis.d.ts.map +1 -0
- package/dist/pptx/render/chart-schema-label-keys.d.ts +62 -0
- package/dist/pptx/render/chart-schema-label-keys.d.ts.map +1 -0
- package/dist/pptx/render/chart-secondary-axis.d.ts +45 -0
- package/dist/pptx/render/chart-secondary-axis.d.ts.map +1 -0
- package/dist/pptx/render/chart-series-line-style.d.ts +18 -0
- package/dist/pptx/render/chart-series-line-style.d.ts.map +1 -0
- package/dist/pptx/render/chart-sparkline.d.ts +17 -0
- package/dist/pptx/render/chart-sparkline.d.ts.map +1 -0
- package/dist/pptx/render/chart-stacked-series.d.ts +4 -0
- package/dist/pptx/render/chart-stacked-series.d.ts.map +1 -0
- package/dist/pptx/render/chart-stock-candles.d.ts +63 -0
- package/dist/pptx/render/chart-stock-candles.d.ts.map +1 -0
- package/dist/pptx/render/chart-stock-close-label.d.ts +34 -0
- package/dist/pptx/render/chart-stock-close-label.d.ts.map +1 -0
- package/dist/pptx/render/chart-style-defaults.d.ts +69 -0
- package/dist/pptx/render/chart-style-defaults.d.ts.map +1 -0
- package/dist/pptx/render/chart-subtype-options.d.ts +52 -0
- package/dist/pptx/render/chart-subtype-options.d.ts.map +1 -0
- package/dist/pptx/render/chart-sunburst-hierarchy.d.ts +38 -0
- package/dist/pptx/render/chart-sunburst-hierarchy.d.ts.map +1 -0
- package/dist/pptx/render/chart-sunburst-view.d.ts +23 -0
- package/dist/pptx/render/chart-sunburst-view.d.ts.map +1 -0
- package/dist/pptx/render/chart-surface-axes.d.ts +43 -0
- package/dist/pptx/render/chart-surface-axes.d.ts.map +1 -0
- package/dist/pptx/render/chart-surface-bands.d.ts +49 -0
- package/dist/pptx/render/chart-surface-bands.d.ts.map +1 -0
- package/dist/pptx/render/chart-surface-common.d.ts +28 -0
- package/dist/pptx/render/chart-surface-common.d.ts.map +1 -0
- package/dist/pptx/render/chart-surface-flat.d.ts +34 -0
- package/dist/pptx/render/chart-surface-flat.d.ts.map +1 -0
- package/dist/pptx/render/chart-surface-isometric.d.ts +29 -0
- package/dist/pptx/render/chart-surface-isometric.d.ts.map +1 -0
- package/dist/pptx/render/chart-surface-legend.d.ts +50 -0
- package/dist/pptx/render/chart-surface-legend.d.ts.map +1 -0
- package/dist/pptx/render/chart-surface-treemap.cjs +18 -0
- package/dist/pptx/render/chart-surface-treemap.d.ts +27 -0
- package/dist/pptx/render/chart-surface-treemap.d.ts.map +1 -0
- package/dist/pptx/render/chart-surface-treemap.mjs +1 -0
- package/dist/pptx/render/chart-svg-def-types.d.ts +31 -0
- package/dist/pptx/render/chart-svg-def-types.d.ts.map +1 -0
- package/dist/pptx/render/chart-svg-primitives.d.ts +126 -0
- package/dist/pptx/render/chart-svg-primitives.d.ts.map +1 -0
- package/dist/pptx/render/chart-text-defaults.d.ts +21 -0
- package/dist/pptx/render/chart-text-defaults.d.ts.map +1 -0
- package/dist/pptx/render/chart-title-band.d.ts +68 -0
- package/dist/pptx/render/chart-title-band.d.ts.map +1 -0
- package/dist/pptx/render/chart-title-runs.d.ts +66 -0
- package/dist/pptx/render/chart-title-runs.d.ts.map +1 -0
- package/dist/pptx/render/chart-title-style.d.ts +49 -0
- package/dist/pptx/render/chart-title-style.d.ts.map +1 -0
- package/dist/pptx/render/chart-treemap-hierarchy.d.ts +17 -0
- package/dist/pptx/render/chart-treemap-hierarchy.d.ts.map +1 -0
- package/dist/pptx/render/chart-treemap-squarify.d.ts +4 -0
- package/dist/pptx/render/chart-treemap-squarify.d.ts.map +1 -0
- package/dist/pptx/render/chart-treemap-view.d.ts +23 -0
- package/dist/pptx/render/chart-treemap-view.d.ts.map +1 -0
- package/dist/pptx/render/chart-trendline-defaults.d.ts +15 -0
- package/dist/pptx/render/chart-trendline-defaults.d.ts.map +1 -0
- package/dist/pptx/render/chart-trendline-equation-format.d.ts +3 -0
- package/dist/pptx/render/chart-trendline-equation-format.d.ts.map +1 -0
- package/dist/pptx/render/chart-trendlines.d.ts +34 -0
- package/dist/pptx/render/chart-trendlines.d.ts.map +1 -0
- package/dist/pptx/render/chart-user-shape-edit.d.ts +3 -0
- package/dist/pptx/render/chart-user-shape-edit.d.ts.map +1 -0
- package/dist/pptx/render/chart-user-shape-group-child.d.ts +34 -0
- package/dist/pptx/render/chart-user-shape-group-child.d.ts.map +1 -0
- package/dist/pptx/render/chart-user-shape-overlay.d.ts +32 -0
- package/dist/pptx/render/chart-user-shape-overlay.d.ts.map +1 -0
- package/dist/pptx/render/chart-user-shape-row-frame.d.ts +63 -0
- package/dist/pptx/render/chart-user-shape-row-frame.d.ts.map +1 -0
- package/dist/pptx/render/chart-user-shape-row-transform.d.ts +32 -0
- package/dist/pptx/render/chart-user-shape-row-transform.d.ts.map +1 -0
- package/dist/pptx/render/chart-user-shape-tree.d.ts +140 -0
- package/dist/pptx/render/chart-user-shape-tree.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-bars.d.ts +30 -0
- package/dist/pptx/render/chart-view-model-bars.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-build.d.ts +12 -0
- package/dist/pptx/render/chart-view-model-build.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-chrome.d.ts +35 -0
- package/dist/pptx/render/chart-view-model-chrome.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-dom-helpers.d.ts +25 -0
- package/dist/pptx/render/chart-view-model-dom-helpers.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-dom.d.ts +10 -0
- package/dist/pptx/render/chart-view-model-dom.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-kinds.d.ts +22 -0
- package/dist/pptx/render/chart-view-model-kinds.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-layout.d.ts +14 -0
- package/dist/pptx/render/chart-view-model-layout.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-manual.d.ts +26 -0
- package/dist/pptx/render/chart-view-model-manual.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-pie.d.ts +12 -0
- package/dist/pptx/render/chart-view-model-pie.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-points.d.ts +102 -0
- package/dist/pptx/render/chart-view-model-points.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-radar.d.ts +16 -0
- package/dist/pptx/render/chart-view-model-radar.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-scale.d.ts +85 -0
- package/dist/pptx/render/chart-view-model-scale.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model-types.d.ts +189 -0
- package/dist/pptx/render/chart-view-model-types.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model.cjs +166 -0
- package/dist/pptx/render/chart-view-model.d.ts +68 -0
- package/dist/pptx/render/chart-view-model.d.ts.map +1 -0
- package/dist/pptx/render/chart-view-model.mjs +1 -0
- package/dist/pptx/render/chart-waterfall-layout.d.ts +20 -0
- package/dist/pptx/render/chart-waterfall-layout.d.ts.map +1 -0
- package/dist/pptx/render/chart-waterfall-map.cjs +26 -0
- package/dist/pptx/render/chart-waterfall-map.d.ts +30 -0
- package/dist/pptx/render/chart-waterfall-map.d.ts.map +1 -0
- package/dist/pptx/render/chart-waterfall-map.mjs +1 -0
- package/dist/pptx/render/chart-waterfall-view.d.ts +35 -0
- package/dist/pptx/render/chart-waterfall-view.d.ts.map +1 -0
- package/dist/pptx/render/chrome-controls-state.d.ts +127 -0
- package/dist/pptx/render/chrome-controls-state.d.ts.map +1 -0
- package/dist/pptx/render/chrome-metrics.d.ts +175 -0
- package/dist/pptx/render/chrome-metrics.d.ts.map +1 -0
- package/dist/pptx/render/clone.d.ts +4 -0
- package/dist/pptx/render/clone.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-active-session.d.ts +3 -0
- package/dist/pptx/render/collaboration-active-session.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-assets.d.ts +2 -0
- package/dist/pptx/render/collaboration-assets.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-broadcast-follow.d.ts +30 -0
- package/dist/pptx/render/collaboration-broadcast-follow.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-departure.d.ts +3 -0
- package/dist/pptx/render/collaboration-departure.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-external-readiness.d.ts +39 -0
- package/dist/pptx/render/collaboration-external-readiness.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-external-session.d.ts +56 -0
- package/dist/pptx/render/collaboration-external-session.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-inline-dom.d.ts +13 -0
- package/dist/pptx/render/collaboration-inline-dom.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-inline-editor.d.ts +21 -0
- package/dist/pptx/render/collaboration-inline-editor.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-inline-input.d.ts +15 -0
- package/dist/pptx/render/collaboration-inline-input.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-live-patch-target.d.ts +3 -0
- package/dist/pptx/render/collaboration-live-patch-target.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-live-patch.d.ts +59 -0
- package/dist/pptx/render/collaboration-live-patch.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-load-origin.d.ts +3 -0
- package/dist/pptx/render/collaboration-load-origin.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-presence-projector.d.ts +20 -0
- package/dist/pptx/render/collaboration-presence-projector.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-presence-publisher.d.ts +55 -0
- package/dist/pptx/render/collaboration-presence-publisher.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-presence.d.ts +172 -0
- package/dist/pptx/render/collaboration-presence.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-reconcile.d.ts +2 -0
- package/dist/pptx/render/collaboration-reconcile.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-shell-state.d.ts +36 -0
- package/dist/pptx/render/collaboration-shell-state.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-sync-gate.d.ts +31 -0
- package/dist/pptx/render/collaboration-sync-gate.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-sync.d.ts +3 -0
- package/dist/pptx/render/collaboration-sync.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-teardown.d.ts +85 -0
- package/dist/pptx/render/collaboration-teardown.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-codec.d.ts +3 -0
- package/dist/pptx/render/collaboration-text-codec.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-lease.d.ts +2 -0
- package/dist/pptx/render/collaboration-text-lease.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-legacy.d.ts +4 -0
- package/dist/pptx/render/collaboration-text-legacy.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-merge.d.ts +3 -0
- package/dist/pptx/render/collaboration-text-merge.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-native-edit.d.ts +2 -0
- package/dist/pptx/render/collaboration-text-native-edit.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-positions.d.ts +3 -0
- package/dist/pptx/render/collaboration-text-positions.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-projection.d.ts +3 -0
- package/dist/pptx/render/collaboration-text-projection.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-session-apply.d.ts +3 -0
- package/dist/pptx/render/collaboration-text-session-apply.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-session-delta.d.ts +3 -0
- package/dist/pptx/render/collaboration-text-session-delta.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-session-paragraph.d.ts +2 -0
- package/dist/pptx/render/collaboration-text-session-paragraph.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-session.d.ts +3 -0
- package/dist/pptx/render/collaboration-text-session.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-snapshot-positions.d.ts +3 -0
- package/dist/pptx/render/collaboration-text-snapshot-positions.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-text-target.d.ts +30 -0
- package/dist/pptx/render/collaboration-text-target.d.ts.map +1 -0
- package/dist/pptx/render/collaboration-writeback.d.ts +42 -0
- package/dist/pptx/render/collaboration-writeback.d.ts.map +1 -0
- package/dist/pptx/render/color-contrast.d.ts +3 -0
- package/dist/pptx/render/color-contrast.d.ts.map +1 -0
- package/dist/pptx/render/color-swatches.d.ts +2 -0
- package/dist/pptx/render/color-swatches.d.ts.map +1 -0
- package/dist/pptx/render/color-units.d.ts +3 -0
- package/dist/pptx/render/color-units.d.ts.map +1 -0
- package/dist/pptx/render/command-search.d.ts +28 -0
- package/dist/pptx/render/command-search.d.ts.map +1 -0
- package/dist/pptx/render/comment-markers.d.ts +39 -0
- package/dist/pptx/render/comment-markers.d.ts.map +1 -0
- package/dist/pptx/render/comment-mentions.d.ts +73 -0
- package/dist/pptx/render/comment-mentions.d.ts.map +1 -0
- package/dist/pptx/render/comments-list.d.ts +49 -0
- package/dist/pptx/render/comments-list.d.ts.map +1 -0
- package/dist/pptx/render/compatibility-warning-toasts.d.ts +47 -0
- package/dist/pptx/render/compatibility-warning-toasts.d.ts.map +1 -0
- package/dist/pptx/render/connector-arrow-controls.d.ts +69 -0
- package/dist/pptx/render/connector-arrow-controls.d.ts.map +1 -0
- package/dist/pptx/render/connector-authoring.d.ts +78 -0
- package/dist/pptx/render/connector-authoring.d.ts.map +1 -0
- package/dist/pptx/render/connector-dash.d.ts +31 -0
- package/dist/pptx/render/connector-dash.d.ts.map +1 -0
- package/dist/pptx/render/connector-elbow-geometry.d.ts +78 -0
- package/dist/pptx/render/connector-elbow-geometry.d.ts.map +1 -0
- package/dist/pptx/render/connector-endpoints.d.ts +105 -0
- package/dist/pptx/render/connector-endpoints.d.ts.map +1 -0
- package/dist/pptx/render/connector-hit-target.d.ts +36 -0
- package/dist/pptx/render/connector-hit-target.d.ts.map +1 -0
- package/dist/pptx/render/connector-markers.d.ts +54 -0
- package/dist/pptx/render/connector-markers.d.ts.map +1 -0
- package/dist/pptx/render/connector-path.d.ts +130 -0
- package/dist/pptx/render/connector-path.d.ts.map +1 -0
- package/dist/pptx/render/connector-reroute.d.ts +77 -0
- package/dist/pptx/render/connector-reroute.d.ts.map +1 -0
- package/dist/pptx/render/connector-router-astar.d.ts +24 -0
- package/dist/pptx/render/connector-router-astar.d.ts.map +1 -0
- package/dist/pptx/render/connector-router-graph.d.ts +38 -0
- package/dist/pptx/render/connector-router-graph.d.ts.map +1 -0
- package/dist/pptx/render/connector-router-types.d.ts +59 -0
- package/dist/pptx/render/connector-router-types.d.ts.map +1 -0
- package/dist/pptx/render/connector-router.d.ts +35 -0
- package/dist/pptx/render/connector-router.d.ts.map +1 -0
- package/dist/pptx/render/connector-sites.d.ts +72 -0
- package/dist/pptx/render/connector-sites.d.ts.map +1 -0
- package/dist/pptx/render/connector-style.d.ts +47 -0
- package/dist/pptx/render/connector-style.d.ts.map +1 -0
- package/dist/pptx/render/content-part-strokes.cjs +15 -0
- package/dist/pptx/render/content-part-strokes.d.ts +28 -0
- package/dist/pptx/render/content-part-strokes.d.ts.map +1 -0
- package/dist/pptx/render/content-part-strokes.mjs +2 -0
- package/dist/pptx/render/context-menu-commands.d.ts +104 -0
- package/dist/pptx/render/context-menu-commands.d.ts.map +1 -0
- package/dist/pptx/render/context-menu-inspector-anchor.d.ts +34 -0
- package/dist/pptx/render/context-menu-inspector-anchor.d.ts.map +1 -0
- package/dist/pptx/render/context-menu-target.cjs +18 -0
- package/dist/pptx/render/context-menu-target.d.ts +41 -0
- package/dist/pptx/render/context-menu-target.d.ts.map +1 -0
- package/dist/pptx/render/context-menu-target.mjs +1 -0
- package/dist/pptx/render/crop-shape-clip.d.ts +10 -0
- package/dist/pptx/render/crop-shape-clip.d.ts.map +1 -0
- package/dist/pptx/render/cross-slide-audio.d.ts +28 -0
- package/dist/pptx/render/cross-slide-audio.d.ts.map +1 -0
- package/dist/pptx/render/css-escape.d.ts +23 -0
- package/dist/pptx/render/css-escape.d.ts.map +1 -0
- package/dist/pptx/render/css-top-level-split.d.ts +13 -0
- package/dist/pptx/render/css-top-level-split.d.ts.map +1 -0
- package/dist/pptx/render/custom-fonts.cjs +22 -0
- package/dist/pptx/render/custom-fonts.d.ts +65 -0
- package/dist/pptx/render/custom-fonts.d.ts.map +1 -0
- package/dist/pptx/render/custom-fonts.mjs +1 -0
- package/dist/pptx/render/custom-geometry-live-path.d.ts +50 -0
- package/dist/pptx/render/custom-geometry-live-path.d.ts.map +1 -0
- package/dist/pptx/render/custom-shows.d.ts +14 -0
- package/dist/pptx/render/custom-shows.d.ts.map +1 -0
- package/dist/pptx/render/customization/customization-catalog.d.ts +21 -0
- package/dist/pptx/render/customization/customization-catalog.d.ts.map +1 -0
- package/dist/pptx/render/customization/customization-controller.d.ts +83 -0
- package/dist/pptx/render/customization/customization-controller.d.ts.map +1 -0
- package/dist/pptx/render/customization/customization-descriptions.d.ts +18 -0
- package/dist/pptx/render/customization/customization-descriptions.d.ts.map +1 -0
- package/dist/pptx/render/customization/customization-keymap.d.ts +35 -0
- package/dist/pptx/render/customization/customization-keymap.d.ts.map +1 -0
- package/dist/pptx/render/customization/customization-merge.d.ts +19 -0
- package/dist/pptx/render/customization/customization-merge.d.ts.map +1 -0
- package/dist/pptx/render/customization/customization-reference.d.ts +12 -0
- package/dist/pptx/render/customization/customization-reference.d.ts.map +1 -0
- package/dist/pptx/render/customization/customization-resolve-ribbon.d.ts +12 -0
- package/dist/pptx/render/customization/customization-resolve-ribbon.d.ts.map +1 -0
- package/dist/pptx/render/customization/customization-resolve.d.ts +79 -0
- package/dist/pptx/render/customization/customization-resolve.d.ts.map +1 -0
- package/dist/pptx/render/customization/customization-surfaces.d.ts +56 -0
- package/dist/pptx/render/customization/customization-surfaces.d.ts.map +1 -0
- package/dist/pptx/render/customization/customization-types.d.ts +173 -0
- package/dist/pptx/render/customization/customization-types.d.ts.map +1 -0
- package/dist/pptx/render/customization/host-menu-commands.d.ts +40 -0
- package/dist/pptx/render/customization/host-menu-commands.d.ts.map +1 -0
- package/dist/pptx/render/customization/index.d.ts +13 -0
- package/dist/pptx/render/customization/index.d.ts.map +1 -0
- package/dist/pptx/render/customization/ribbon-control-catalog-core.d.ts +204 -0
- package/dist/pptx/render/customization/ribbon-control-catalog-core.d.ts.map +1 -0
- package/dist/pptx/render/customization/ribbon-control-catalog-tail.d.ts +330 -0
- package/dist/pptx/render/customization/ribbon-control-catalog-tail.d.ts.map +1 -0
- package/dist/pptx/render/customization/ribbon-control-catalog-types.d.ts +12 -0
- package/dist/pptx/render/customization/ribbon-control-catalog-types.d.ts.map +1 -0
- package/dist/pptx/render/customization/ribbon-control-catalog.d.ts +554 -0
- package/dist/pptx/render/customization/ribbon-control-catalog.d.ts.map +1 -0
- package/dist/pptx/render/customization/ribbon-control-ids.d.ts +44 -0
- package/dist/pptx/render/customization/ribbon-control-ids.d.ts.map +1 -0
- package/dist/pptx/render/customization/ribbon-control-visibility.d.ts +53 -0
- package/dist/pptx/render/customization/ribbon-control-visibility.d.ts.map +1 -0
- package/dist/pptx/render/deck-save-encryption.d.ts +3 -0
- package/dist/pptx/render/deck-save-encryption.d.ts.map +1 -0
- package/dist/pptx/render/deck-save-options.d.ts +64 -0
- package/dist/pptx/render/deck-save-options.d.ts.map +1 -0
- package/dist/pptx/render/diagram-build.d.ts +107 -0
- package/dist/pptx/render/diagram-build.d.ts.map +1 -0
- package/dist/pptx/render/diagram-drawing-shape-reveal.d.ts +51 -0
- package/dist/pptx/render/diagram-drawing-shape-reveal.d.ts.map +1 -0
- package/dist/pptx/render/diagram-reveal-descriptor.d.ts +54 -0
- package/dist/pptx/render/diagram-reveal-descriptor.d.ts.map +1 -0
- package/dist/pptx/render/document-statistics.d.ts +18 -0
- package/dist/pptx/render/document-statistics.d.ts.map +1 -0
- package/dist/pptx/render/dompurify-safe.d.ts +5 -0
- package/dist/pptx/render/dompurify-safe.d.ts.map +1 -0
- package/dist/pptx/render/drawing-color.d.ts +16 -0
- package/dist/pptx/render/drawing-color.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-availability.d.ts +19 -0
- package/dist/pptx/render/edit-points/edit-points-availability.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-bezier.d.ts +60 -0
- package/dist/pptx/render/edit-points/edit-points-bezier.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-commands.d.ts +13 -0
- package/dist/pptx/render/edit-points/edit-points-commands.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-dom.d.ts +42 -0
- package/dist/pptx/render/edit-points/edit-points-dom.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-drag-ops.d.ts +19 -0
- package/dist/pptx/render/edit-points/edit-points-drag-ops.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-export.d.ts +47 -0
- package/dist/pptx/render/edit-points/edit-points-export.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-frame.d.ts +43 -0
- package/dist/pptx/render/edit-points/edit-points-frame.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-geometry-utils.d.ts +36 -0
- package/dist/pptx/render/edit-points/edit-points-geometry-utils.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-import.d.ts +27 -0
- package/dist/pptx/render/edit-points/edit-points-import.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-menu.d.ts +41 -0
- package/dist/pptx/render/edit-points/edit-points-menu.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-pen.d.ts +43 -0
- package/dist/pptx/render/edit-points/edit-points-pen.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-session-types.d.ts +67 -0
- package/dist/pptx/render/edit-points/edit-points-session-types.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-session.d.ts +68 -0
- package/dist/pptx/render/edit-points/edit-points-session.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-structure-ops.d.ts +33 -0
- package/dist/pptx/render/edit-points/edit-points-structure-ops.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-svg.d.ts +8 -0
- package/dist/pptx/render/edit-points/edit-points-svg.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-types.d.ts +116 -0
- package/dist/pptx/render/edit-points/edit-points-types.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/edit-points-view.d.ts +69 -0
- package/dist/pptx/render/edit-points/edit-points-view.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/freeform-tool-geometry.d.ts +53 -0
- package/dist/pptx/render/edit-points/freeform-tool-geometry.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/freeform-tool-session.d.ts +79 -0
- package/dist/pptx/render/edit-points/freeform-tool-session.d.ts.map +1 -0
- package/dist/pptx/render/edit-points/index.d.ts +27 -0
- package/dist/pptx/render/edit-points/index.d.ts.map +1 -0
- package/dist/pptx/render/editor-chrome/cluster-css.d.ts +3 -0
- package/dist/pptx/render/editor-chrome/cluster-css.d.ts.map +1 -0
- package/dist/pptx/render/editor-chrome/controls-css.d.ts +2 -0
- package/dist/pptx/render/editor-chrome/controls-css.d.ts.map +1 -0
- package/dist/pptx/render/editor-chrome/font-picker-css.d.ts +3 -0
- package/dist/pptx/render/editor-chrome/font-picker-css.d.ts.map +1 -0
- package/dist/pptx/render/editor-chrome/home-layout-css.d.ts +2 -0
- package/dist/pptx/render/editor-chrome/home-layout-css.d.ts.map +1 -0
- package/dist/pptx/render/editor-chrome/index.d.ts +4 -0
- package/dist/pptx/render/editor-chrome/index.d.ts.map +1 -0
- package/dist/pptx/render/editor-chrome/inspector-css.d.ts +2 -0
- package/dist/pptx/render/editor-chrome/inspector-css.d.ts.map +1 -0
- package/dist/pptx/render/editor-chrome/layout-css.d.ts +3 -0
- package/dist/pptx/render/editor-chrome/layout-css.d.ts.map +1 -0
- package/dist/pptx/render/editor-chrome/metrics.d.ts +13 -0
- package/dist/pptx/render/editor-chrome/metrics.d.ts.map +1 -0
- package/dist/pptx/render/editor-chrome/ribbon-collapse-css.d.ts +2 -0
- package/dist/pptx/render/editor-chrome/ribbon-collapse-css.d.ts.map +1 -0
- package/dist/pptx/render/editor-chrome/ribbon-css.d.ts +2 -0
- package/dist/pptx/render/editor-chrome/ribbon-css.d.ts.map +1 -0
- package/dist/pptx/render/editor-chrome/thumbnail-css.d.ts +2 -0
- package/dist/pptx/render/editor-chrome/thumbnail-css.d.ts.map +1 -0
- package/dist/pptx/render/editor-geometry.d.ts +32 -0
- package/dist/pptx/render/editor-geometry.d.ts.map +1 -0
- package/dist/pptx/render/editor-gestures.d.ts +79 -0
- package/dist/pptx/render/editor-gestures.d.ts.map +1 -0
- package/dist/pptx/render/editor-history.d.ts +3 -0
- package/dist/pptx/render/editor-history.d.ts.map +1 -0
- package/dist/pptx/render/editor-image-paste.d.ts +22 -0
- package/dist/pptx/render/editor-image-paste.d.ts.map +1 -0
- package/dist/pptx/render/editor-insert.d.ts +69 -0
- package/dist/pptx/render/editor-insert.d.ts.map +1 -0
- package/dist/pptx/render/editor-key-target.d.ts +28 -0
- package/dist/pptx/render/editor-key-target.d.ts.map +1 -0
- package/dist/pptx/render/editor-keyboard-focus.d.ts +54 -0
- package/dist/pptx/render/editor-keyboard-focus.d.ts.map +1 -0
- package/dist/pptx/render/editor-keymap-arrows.d.ts +33 -0
- package/dist/pptx/render/editor-keymap-arrows.d.ts.map +1 -0
- package/dist/pptx/render/editor-keymap-chords.d.ts +49 -0
- package/dist/pptx/render/editor-keymap-chords.d.ts.map +1 -0
- package/dist/pptx/render/editor-keymap.d.ts +91 -0
- package/dist/pptx/render/editor-keymap.d.ts.map +1 -0
- package/dist/pptx/render/editor-mutations.d.ts +3 -0
- package/dist/pptx/render/editor-mutations.d.ts.map +1 -0
- package/dist/pptx/render/effect-sound-catalogue.d.ts +49 -0
- package/dist/pptx/render/effect-sound-catalogue.d.ts.map +1 -0
- package/dist/pptx/render/effect-sound-dsp.d.ts +41 -0
- package/dist/pptx/render/effect-sound-dsp.d.ts.map +1 -0
- package/dist/pptx/render/effect-sound-generators.d.ts +5 -0
- package/dist/pptx/render/effect-sound-generators.d.ts.map +1 -0
- package/dist/pptx/render/effect-sound-synth.d.ts +17 -0
- package/dist/pptx/render/effect-sound-synth.d.ts.map +1 -0
- package/dist/pptx/render/effect-sound-wav-encoder.d.ts +10 -0
- package/dist/pptx/render/effect-sound-wav-encoder.d.ts.map +1 -0
- package/dist/pptx/render/effects-helpers.d.ts +66 -0
- package/dist/pptx/render/effects-helpers.d.ts.map +1 -0
- package/dist/pptx/render/effects-shadow-helpers.d.ts +55 -0
- package/dist/pptx/render/effects-shadow-helpers.d.ts.map +1 -0
- package/dist/pptx/render/element-accessibility-dom.d.ts +14 -0
- package/dist/pptx/render/element-accessibility-dom.d.ts.map +1 -0
- package/dist/pptx/render/element-action-affordance-dom.d.ts +42 -0
- package/dist/pptx/render/element-action-affordance-dom.d.ts.map +1 -0
- package/dist/pptx/render/element-action-affordance.d.ts +124 -0
- package/dist/pptx/render/element-action-affordance.d.ts.map +1 -0
- package/dist/pptx/render/element-action-options.d.ts +73 -0
- package/dist/pptx/render/element-action-options.d.ts.map +1 -0
- package/dist/pptx/render/element-actionability.d.ts +52 -0
- package/dist/pptx/render/element-actionability.d.ts.map +1 -0
- package/dist/pptx/render/element-align.d.ts +4 -0
- package/dist/pptx/render/element-align.d.ts.map +1 -0
- package/dist/pptx/render/element-aria-attributes.d.ts +36 -0
- package/dist/pptx/render/element-aria-attributes.d.ts.map +1 -0
- package/dist/pptx/render/element-clipboard.d.ts +118 -0
- package/dist/pptx/render/element-clipboard.d.ts.map +1 -0
- package/dist/pptx/render/element-decorative.d.ts +20 -0
- package/dist/pptx/render/element-decorative.d.ts.map +1 -0
- package/dist/pptx/render/element-height-observer.d.ts +23 -0
- package/dist/pptx/render/element-height-observer.d.ts.map +1 -0
- package/dist/pptx/render/element-highlight-click.d.ts +92 -0
- package/dist/pptx/render/element-highlight-click.d.ts.map +1 -0
- package/dist/pptx/render/element-hit-test.cjs +30 -0
- package/dist/pptx/render/element-hit-test.d.ts +77 -0
- package/dist/pptx/render/element-hit-test.d.ts.map +1 -0
- package/dist/pptx/render/element-hit-test.mjs +1 -0
- package/dist/pptx/render/element-insertion.d.ts +11 -0
- package/dist/pptx/render/element-insertion.d.ts.map +1 -0
- package/dist/pptx/render/element-interaction.d.ts +165 -0
- package/dist/pptx/render/element-interaction.d.ts.map +1 -0
- package/dist/pptx/render/element-locks.d.ts +3 -0
- package/dist/pptx/render/element-locks.d.ts.map +1 -0
- package/dist/pptx/render/element-non-visual-description.d.ts +64 -0
- package/dist/pptx/render/element-non-visual-description.d.ts.map +1 -0
- package/dist/pptx/render/element-operations.d.ts +2 -0
- package/dist/pptx/render/element-operations.d.ts.map +1 -0
- package/dist/pptx/render/element-style-transform.d.ts +147 -0
- package/dist/pptx/render/element-style-transform.d.ts.map +1 -0
- package/dist/pptx/render/element-style.d.ts +198 -0
- package/dist/pptx/render/element-style.d.ts.map +1 -0
- package/dist/pptx/render/element-update-batch.d.ts +38 -0
- package/dist/pptx/render/element-update-batch.d.ts.map +1 -0
- package/dist/pptx/render/element-visibility.d.ts +62 -0
- package/dist/pptx/render/element-visibility.d.ts.map +1 -0
- package/dist/pptx/render/element.d.ts +2 -0
- package/dist/pptx/render/element.d.ts.map +1 -0
- package/dist/pptx/render/embedded-fonts.d.ts +108 -0
- package/dist/pptx/render/embedded-fonts.d.ts.map +1 -0
- package/dist/pptx/render/equation-compile.d.ts +59 -0
- package/dist/pptx/render/equation-compile.d.ts.map +1 -0
- package/dist/pptx/render/equation-templates.d.ts +20 -0
- package/dist/pptx/render/equation-templates.d.ts.map +1 -0
- package/dist/pptx/render/export-clone.d.ts +9 -0
- package/dist/pptx/render/export-clone.d.ts.map +1 -0
- package/dist/pptx/render/export-progress.d.ts +41 -0
- package/dist/pptx/render/export-progress.d.ts.map +1 -0
- package/dist/pptx/render/export-tile-plan.d.ts +69 -0
- package/dist/pptx/render/export-tile-plan.d.ts.map +1 -0
- package/dist/pptx/render/eyedropper.d.ts +44 -0
- package/dist/pptx/render/eyedropper.d.ts.map +1 -0
- package/dist/pptx/render/field-context.d.ts +58 -0
- package/dist/pptx/render/field-context.d.ts.map +1 -0
- package/dist/pptx/render/fill-pattern-label-keys.d.ts +34 -0
- package/dist/pptx/render/fill-pattern-label-keys.d.ts.map +1 -0
- package/dist/pptx/render/fill-style.d.ts +342 -0
- package/dist/pptx/render/fill-style.d.ts.map +1 -0
- package/dist/pptx/render/find-replace.d.ts +3 -0
- package/dist/pptx/render/find-replace.d.ts.map +1 -0
- package/dist/pptx/render/flyout-position.d.ts +44 -0
- package/dist/pptx/render/flyout-position.d.ts.map +1 -0
- package/dist/pptx/render/font-availability.d.ts +10 -0
- package/dist/pptx/render/font-availability.d.ts.map +1 -0
- package/dist/pptx/render/font-catalog.cjs +15 -0
- package/dist/pptx/render/font-catalog.d.ts +66 -0
- package/dist/pptx/render/font-catalog.d.ts.map +1 -0
- package/dist/pptx/render/font-catalog.mjs +2 -0
- package/dist/pptx/render/font-embedding.d.ts +92 -0
- package/dist/pptx/render/font-embedding.d.ts.map +1 -0
- package/dist/pptx/render/foreign-object-font-embed.d.ts +77 -0
- package/dist/pptx/render/foreign-object-font-embed.d.ts.map +1 -0
- package/dist/pptx/render/foreign-object-image-embed.d.ts +53 -0
- package/dist/pptx/render/foreign-object-image-embed.d.ts.map +1 -0
- package/dist/pptx/render/foreign-object-style-inline.d.ts +55 -0
- package/dist/pptx/render/foreign-object-style-inline.d.ts.map +1 -0
- package/dist/pptx/render/foreign-object-svg-document.d.ts +64 -0
- package/dist/pptx/render/foreign-object-svg-document.d.ts.map +1 -0
- package/dist/pptx/render/format-helpers.d.ts +33 -0
- package/dist/pptx/render/format-helpers.d.ts.map +1 -0
- package/dist/pptx/render/format-painter.cjs +21 -0
- package/dist/pptx/render/format-painter.d.ts +17 -0
- package/dist/pptx/render/format-painter.d.ts.map +1 -0
- package/dist/pptx/render/format-painter.mjs +4 -0
- package/dist/pptx/render/freeform-stroke-geometry.d.ts +96 -0
- package/dist/pptx/render/freeform-stroke-geometry.d.ts.map +1 -0
- package/dist/pptx/render/google-fonts-catalogue.d.ts +14 -0
- package/dist/pptx/render/google-fonts-catalogue.d.ts.map +1 -0
- package/dist/pptx/render/google-fonts-lookup.d.ts +7 -0
- package/dist/pptx/render/google-fonts-lookup.d.ts.map +1 -0
- package/dist/pptx/render/google-webfonts-link.d.ts +3 -0
- package/dist/pptx/render/google-webfonts-link.d.ts.map +1 -0
- package/dist/pptx/render/google-webfonts-metric-clones.d.ts +17 -0
- package/dist/pptx/render/google-webfonts-metric-clones.d.ts.map +1 -0
- package/dist/pptx/render/google-webfonts.d.ts +137 -0
- package/dist/pptx/render/google-webfonts.d.ts.map +1 -0
- package/dist/pptx/render/gradient-picker.d.ts +66 -0
- package/dist/pptx/render/gradient-picker.d.ts.map +1 -0
- package/dist/pptx/render/grid-spacing.d.ts +14 -0
- package/dist/pptx/render/grid-spacing.d.ts.map +1 -0
- package/dist/pptx/render/group-drill.d.ts +2 -0
- package/dist/pptx/render/group-drill.d.ts.map +1 -0
- package/dist/pptx/render/group-fill.d.ts +67 -0
- package/dist/pptx/render/group-fill.d.ts.map +1 -0
- package/dist/pptx/render/group-ops.d.ts +3 -0
- package/dist/pptx/render/group-ops.d.ts.map +1 -0
- package/dist/pptx/render/header-footer-dialog.d.ts +16 -0
- package/dist/pptx/render/header-footer-dialog.d.ts.map +1 -0
- package/dist/pptx/render/hidden-slide-cue.d.ts +89 -0
- package/dist/pptx/render/hidden-slide-cue.d.ts.map +1 -0
- package/dist/pptx/render/hollow-shape-hit-test.d.ts +59 -0
- package/dist/pptx/render/hollow-shape-hit-test.d.ts.map +1 -0
- package/dist/pptx/render/hyperlink-dialog.d.ts +39 -0
- package/dist/pptx/render/hyperlink-dialog.d.ts.map +1 -0
- package/dist/pptx/render/hyperlink-security.cjs +34 -0
- package/dist/pptx/render/hyperlink-security.d.ts +85 -0
- package/dist/pptx/render/hyperlink-security.d.ts.map +1 -0
- package/dist/pptx/render/hyperlink-security.mjs +1 -0
- package/dist/pptx/render/hyperlink-target.d.ts +37 -0
- package/dist/pptx/render/hyperlink-target.d.ts.map +1 -0
- package/dist/pptx/render/image-adjustments.d.ts +47 -0
- package/dist/pptx/render/image-adjustments.d.ts.map +1 -0
- package/dist/pptx/render/image-artistic-presets.d.ts +13 -0
- package/dist/pptx/render/image-artistic-presets.d.ts.map +1 -0
- package/dist/pptx/render/image-background-removal.d.ts +60 -0
- package/dist/pptx/render/image-background-removal.d.ts.map +1 -0
- package/dist/pptx/render/image-color-change.d.ts +78 -0
- package/dist/pptx/render/image-color-change.d.ts.map +1 -0
- package/dist/pptx/render/image-duotone-canvas.d.ts +51 -0
- package/dist/pptx/render/image-duotone-canvas.d.ts.map +1 -0
- package/dist/pptx/render/image-effect-corrections.d.ts +62 -0
- package/dist/pptx/render/image-effect-corrections.d.ts.map +1 -0
- package/dist/pptx/render/image-effect-filter-values.d.ts +11 -0
- package/dist/pptx/render/image-effect-filter-values.d.ts.map +1 -0
- package/dist/pptx/render/image-effects.d.ts +166 -0
- package/dist/pptx/render/image-effects.d.ts.map +1 -0
- package/dist/pptx/render/image-file-insertion.cjs +10 -0
- package/dist/pptx/render/image-file-insertion.d.ts +13 -0
- package/dist/pptx/render/image-file-insertion.d.ts.map +1 -0
- package/dist/pptx/render/image-file-insertion.mjs +1 -0
- package/dist/pptx/render/image-fill-counter-transform.d.ts +74 -0
- package/dist/pptx/render/image-fill-counter-transform.d.ts.map +1 -0
- package/dist/pptx/render/image-fill-overlay.d.ts +46 -0
- package/dist/pptx/render/image-fill-overlay.d.ts.map +1 -0
- package/dist/pptx/render/image-native-size.d.ts +41 -0
- package/dist/pptx/render/image-native-size.d.ts.map +1 -0
- package/dist/pptx/render/image-source-effects.d.ts +10 -0
- package/dist/pptx/render/image-source-effects.d.ts.map +1 -0
- package/dist/pptx/render/image-tiling.d.ts +85 -0
- package/dist/pptx/render/image-tiling.d.ts.map +1 -0
- package/dist/pptx/render/index.d.ts +656 -0
- package/dist/pptx/render/index.d.ts.map +1 -0
- package/dist/pptx/render/ink-curve-sampling.d.ts +27 -0
- package/dist/pptx/render/ink-curve-sampling.d.ts.map +1 -0
- package/dist/pptx/render/ink-drawing.d.ts +109 -0
- package/dist/pptx/render/ink-drawing.d.ts.map +1 -0
- package/dist/pptx/render/ink-eraser-hit-test.d.ts +29 -0
- package/dist/pptx/render/ink-eraser-hit-test.d.ts.map +1 -0
- package/dist/pptx/render/ink-group-strokes.d.ts +35 -0
- package/dist/pptx/render/ink-group-strokes.d.ts.map +1 -0
- package/dist/pptx/render/ink-live-preview.d.ts +49 -0
- package/dist/pptx/render/ink-live-preview.d.ts.map +1 -0
- package/dist/pptx/render/ink-rendering.cjs +66 -0
- package/dist/pptx/render/ink-rendering.d.ts +189 -0
- package/dist/pptx/render/ink-rendering.d.ts.map +1 -0
- package/dist/pptx/render/ink-rendering.mjs +1 -0
- package/dist/pptx/render/ink-replay-timeline.d.ts +58 -0
- package/dist/pptx/render/ink-replay-timeline.d.ts.map +1 -0
- package/dist/pptx/render/ink-stroke-view.d.ts +78 -0
- package/dist/pptx/render/ink-stroke-view.d.ts.map +1 -0
- package/dist/pptx/render/ink-tilt-nib.d.ts +89 -0
- package/dist/pptx/render/ink-tilt-nib.d.ts.map +1 -0
- package/dist/pptx/render/inline-caret.d.ts +37 -0
- package/dist/pptx/render/inline-caret.d.ts.map +1 -0
- package/dist/pptx/render/inline-editor-selection.d.ts +24 -0
- package/dist/pptx/render/inline-editor-selection.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-activation.d.ts +6 -0
- package/dist/pptx/render/inline-list-activation.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-body.d.ts +2 -0
- package/dist/pptx/render/inline-list-body.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-case.d.ts +6 -0
- package/dist/pptx/render/inline-list-case.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-controller.d.ts +23 -0
- package/dist/pptx/render/inline-list-controller.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-decoration.d.ts +4 -0
- package/dist/pptx/render/inline-list-decoration.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-dom.d.ts +8 -0
- package/dist/pptx/render/inline-list-dom.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-format-style.d.ts +9 -0
- package/dist/pptx/render/inline-list-format-style.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-format.d.ts +4 -0
- package/dist/pptx/render/inline-list-format.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-model.d.ts +18 -0
- package/dist/pptx/render/inline-list-model.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-presentation.d.ts +5 -0
- package/dist/pptx/render/inline-list-presentation.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-provenance.d.ts +9 -0
- package/dist/pptx/render/inline-list-provenance.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-reconcile.d.ts +4 -0
- package/dist/pptx/render/inline-list-reconcile.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-run-reader.d.ts +9 -0
- package/dist/pptx/render/inline-list-run-reader.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-run-style.d.ts +4 -0
- package/dist/pptx/render/inline-list-run-style.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-save.d.ts +18 -0
- package/dist/pptx/render/inline-list-save.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-seed.d.ts +17 -0
- package/dist/pptx/render/inline-list-seed.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-selection.d.ts +24 -0
- package/dist/pptx/render/inline-list-selection.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-snapshot.d.ts +12 -0
- package/dist/pptx/render/inline-list-snapshot.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-style.d.ts +6 -0
- package/dist/pptx/render/inline-list-style.d.ts.map +1 -0
- package/dist/pptx/render/inline-list-types.d.ts +57 -0
- package/dist/pptx/render/inline-list-types.d.ts.map +1 -0
- package/dist/pptx/render/inline-selection-utils.d.ts +38 -0
- package/dist/pptx/render/inline-selection-utils.d.ts.map +1 -0
- package/dist/pptx/render/inline-text-commit.d.ts +12 -0
- package/dist/pptx/render/inline-text-commit.d.ts.map +1 -0
- package/dist/pptx/render/inline-text-extract.d.ts +10 -0
- package/dist/pptx/render/inline-text-extract.d.ts.map +1 -0
- package/dist/pptx/render/insert-chart.d.ts +68 -0
- package/dist/pptx/render/insert-chart.d.ts.map +1 -0
- package/dist/pptx/render/inspector-helpers.cjs +52 -0
- package/dist/pptx/render/inspector-helpers.d.ts +92 -0
- package/dist/pptx/render/inspector-helpers.d.ts.map +1 -0
- package/dist/pptx/render/inspector-helpers.mjs +3 -0
- package/dist/pptx/render/inspector-reset-actions.d.ts +52 -0
- package/dist/pptx/render/inspector-reset-actions.d.ts.map +1 -0
- package/dist/pptx/render/kinsoku-styles.d.ts +21 -0
- package/dist/pptx/render/kinsoku-styles.d.ts.map +1 -0
- package/dist/pptx/render/latex-omml-siblings.d.ts +3 -0
- package/dist/pptx/render/latex-omml-siblings.d.ts.map +1 -0
- package/dist/pptx/render/latex-omml-symbols.d.ts +3 -0
- package/dist/pptx/render/latex-omml-symbols.d.ts.map +1 -0
- package/dist/pptx/render/latex-to-omml-commands.d.ts +3 -0
- package/dist/pptx/render/latex-to-omml-commands.d.ts.map +1 -0
- package/dist/pptx/render/latex-to-omml-constructs.d.ts +3 -0
- package/dist/pptx/render/latex-to-omml-constructs.d.ts.map +1 -0
- package/dist/pptx/render/latex-to-omml-environments.d.ts +3 -0
- package/dist/pptx/render/latex-to-omml-environments.d.ts.map +1 -0
- package/dist/pptx/render/latex-to-omml.d.ts +3 -0
- package/dist/pptx/render/latex-to-omml.d.ts.map +1 -0
- package/dist/pptx/render/layout-gallery.cjs +14 -0
- package/dist/pptx/render/layout-gallery.d.ts +48 -0
- package/dist/pptx/render/layout-gallery.d.ts.map +1 -0
- package/dist/pptx/render/layout-gallery.mjs +1 -0
- package/dist/pptx/render/layout-preview.cjs +14 -0
- package/dist/pptx/render/layout-preview.d.ts +89 -0
- package/dist/pptx/render/layout-preview.d.ts.map +1 -0
- package/dist/pptx/render/layout-preview.mjs +1 -0
- package/dist/pptx/render/linked-text-box-overflow.d.ts +46 -0
- package/dist/pptx/render/linked-text-box-overflow.d.ts.map +1 -0
- package/dist/pptx/render/master-page-layout.d.ts +12 -0
- package/dist/pptx/render/master-page-layout.d.ts.map +1 -0
- package/dist/pptx/render/master-view-crud.d.ts +70 -0
- package/dist/pptx/render/master-view-crud.d.ts.map +1 -0
- package/dist/pptx/render/master-view-editing.d.ts +57 -0
- package/dist/pptx/render/master-view-editing.d.ts.map +1 -0
- package/dist/pptx/render/master-view.d.ts +97 -0
- package/dist/pptx/render/master-view.d.ts.map +1 -0
- package/dist/pptx/render/mathml-sanitize.d.ts +14 -0
- package/dist/pptx/render/mathml-sanitize.d.ts.map +1 -0
- package/dist/pptx/render/media-file-type.d.ts +11 -0
- package/dist/pptx/render/media-file-type.d.ts.map +1 -0
- package/dist/pptx/render/media-fullscreen.d.ts +74 -0
- package/dist/pptx/render/media-fullscreen.d.ts.map +1 -0
- package/dist/pptx/render/media-persistent-audio.d.ts +28 -0
- package/dist/pptx/render/media-persistent-audio.d.ts.map +1 -0
- package/dist/pptx/render/media-playback.d.ts +177 -0
- package/dist/pptx/render/media-playback.d.ts.map +1 -0
- package/dist/pptx/render/media-trim-fade-scheduler.d.ts +44 -0
- package/dist/pptx/render/media-trim-fade-scheduler.d.ts.map +1 -0
- package/dist/pptx/render/media-trim-range.d.ts +40 -0
- package/dist/pptx/render/media-trim-range.d.ts.map +1 -0
- package/dist/pptx/render/media-trim-timeline.d.ts +45 -0
- package/dist/pptx/render/media-trim-timeline.d.ts.map +1 -0
- package/dist/pptx/render/merge-shapes/element-outline.d.ts +24 -0
- package/dist/pptx/render/merge-shapes/element-outline.d.ts.map +1 -0
- package/dist/pptx/render/merge-shapes/index.d.ts +6 -0
- package/dist/pptx/render/merge-shapes/index.d.ts.map +1 -0
- package/dist/pptx/render/merge-shapes/merge-shapes-menu.d.ts +29 -0
- package/dist/pptx/render/merge-shapes/merge-shapes-menu.d.ts.map +1 -0
- package/dist/pptx/render/merge-shapes/merge-shapes.d.ts +51 -0
- package/dist/pptx/render/merge-shapes/merge-shapes.d.ts.map +1 -0
- package/dist/pptx/render/merge-shapes/polygon-arrangement.d.ts +28 -0
- package/dist/pptx/render/merge-shapes/polygon-arrangement.d.ts.map +1 -0
- package/dist/pptx/render/merge-shapes/polygon-boolean.d.ts +21 -0
- package/dist/pptx/render/merge-shapes/polygon-boolean.d.ts.map +1 -0
- package/dist/pptx/render/merge-shapes/polygon-types.d.ts +31 -0
- package/dist/pptx/render/merge-shapes/polygon-types.d.ts.map +1 -0
- package/dist/pptx/render/mobile-chrome.d.ts +45 -0
- package/dist/pptx/render/mobile-chrome.d.ts.map +1 -0
- package/dist/pptx/render/mobile-keyboard.d.ts +68 -0
- package/dist/pptx/render/mobile-keyboard.d.ts.map +1 -0
- package/dist/pptx/render/mobile-viewport.d.ts +69 -0
- package/dist/pptx/render/mobile-viewport.d.ts.map +1 -0
- package/dist/pptx/render/modal-focus.d.ts +16 -0
- package/dist/pptx/render/modal-focus.d.ts.map +1 -0
- package/dist/pptx/render/model3d-scene-apply.d.ts +33 -0
- package/dist/pptx/render/model3d-scene-apply.d.ts.map +1 -0
- package/dist/pptx/render/model3d-scene-descriptor.d.ts +77 -0
- package/dist/pptx/render/model3d-scene-descriptor.d.ts.map +1 -0
- package/dist/pptx/render/model3d-scene.cjs +22 -0
- package/dist/pptx/render/model3d-scene.d.ts +69 -0
- package/dist/pptx/render/model3d-scene.d.ts.map +1 -0
- package/dist/pptx/render/model3d-scene.mjs +1 -0
- package/dist/pptx/render/modify-password-check.d.ts +39 -0
- package/dist/pptx/render/modify-password-check.d.ts.map +1 -0
- package/dist/pptx/render/morph-animation.d.ts +264 -0
- package/dist/pptx/render/morph-animation.d.ts.map +1 -0
- package/dist/pptx/render/morph-color.d.ts +35 -0
- package/dist/pptx/render/morph-color.d.ts.map +1 -0
- package/dist/pptx/render/morph-crossfade-group.d.ts +113 -0
- package/dist/pptx/render/morph-crossfade-group.d.ts.map +1 -0
- package/dist/pptx/render/morph-flatten.d.ts +131 -0
- package/dist/pptx/render/morph-flatten.d.ts.map +1 -0
- package/dist/pptx/render/morph-geometry-interp.d.ts +44 -0
- package/dist/pptx/render/morph-geometry-interp.d.ts.map +1 -0
- package/dist/pptx/render/morph-geometry-keyframes.d.ts +55 -0
- package/dist/pptx/render/morph-geometry-keyframes.d.ts.map +1 -0
- package/dist/pptx/render/morph-geometry.d.ts +48 -0
- package/dist/pptx/render/morph-geometry.d.ts.map +1 -0
- package/dist/pptx/render/morph-heuristics.d.ts +85 -0
- package/dist/pptx/render/morph-heuristics.d.ts.map +1 -0
- package/dist/pptx/render/morph-image-crop.d.ts +81 -0
- package/dist/pptx/render/morph-image-crop.d.ts.map +1 -0
- package/dist/pptx/render/morph-matching.d.ts +60 -0
- package/dist/pptx/render/morph-matching.d.ts.map +1 -0
- package/dist/pptx/render/morph-media-assignment.d.ts +69 -0
- package/dist/pptx/render/morph-media-assignment.d.ts.map +1 -0
- package/dist/pptx/render/morph-name.d.ts +29 -0
- package/dist/pptx/render/morph-name.d.ts.map +1 -0
- package/dist/pptx/render/morph-overlay-order.d.ts +101 -0
- package/dist/pptx/render/morph-overlay-order.d.ts.map +1 -0
- package/dist/pptx/render/morph-plan.d.ts +199 -0
- package/dist/pptx/render/morph-plan.d.ts.map +1 -0
- package/dist/pptx/render/morph-predicates.d.ts +60 -0
- package/dist/pptx/render/morph-predicates.d.ts.map +1 -0
- package/dist/pptx/render/morph-svg-path.d.ts +50 -0
- package/dist/pptx/render/morph-svg-path.d.ts.map +1 -0
- package/dist/pptx/render/morph-text-slot.d.ts +37 -0
- package/dist/pptx/render/morph-text-slot.d.ts.map +1 -0
- package/dist/pptx/render/morph-text-tokens.d.ts +38 -0
- package/dist/pptx/render/morph-text-tokens.d.ts.map +1 -0
- package/dist/pptx/render/morph-text.d.ts +32 -0
- package/dist/pptx/render/morph-text.d.ts.map +1 -0
- package/dist/pptx/render/morph-types.d.ts +136 -0
- package/dist/pptx/render/morph-types.d.ts.map +1 -0
- package/dist/pptx/render/morph-z-order.d.ts +52 -0
- package/dist/pptx/render/morph-z-order.d.ts.map +1 -0
- package/dist/pptx/render/motion-path-authoring.d.ts +81 -0
- package/dist/pptx/render/motion-path-authoring.d.ts.map +1 -0
- package/dist/pptx/render/motion-path-geometry.d.ts +76 -0
- package/dist/pptx/render/motion-path-geometry.d.ts.map +1 -0
- package/dist/pptx/render/motion-path-presets.d.ts +60 -0
- package/dist/pptx/render/motion-path-presets.d.ts.map +1 -0
- package/dist/pptx/render/notes/index.d.ts +20 -0
- package/dist/pptx/render/notes/index.d.ts.map +1 -0
- package/dist/pptx/render/notes/notes-editor.d.ts +65 -0
- package/dist/pptx/render/notes/notes-editor.d.ts.map +1 -0
- package/dist/pptx/render/notes/notes-html.d.ts +14 -0
- package/dist/pptx/render/notes/notes-html.d.ts.map +1 -0
- package/dist/pptx/render/notes/notes-print.d.ts +23 -0
- package/dist/pptx/render/notes/notes-print.d.ts.map +1 -0
- package/dist/pptx/render/notes/notes-style-cascade.d.ts +89 -0
- package/dist/pptx/render/notes/notes-style-cascade.d.ts.map +1 -0
- package/dist/pptx/render/notes/notes-utils.d.ts +39 -0
- package/dist/pptx/render/notes/notes-utils.d.ts.map +1 -0
- package/dist/pptx/render/notes-toolbar-state.d.ts +42 -0
- package/dist/pptx/render/notes-toolbar-state.d.ts.map +1 -0
- package/dist/pptx/render/ole-actions.d.ts +43 -0
- package/dist/pptx/render/ole-actions.d.ts.map +1 -0
- package/dist/pptx/render/ole-edit-model.d.ts +60 -0
- package/dist/pptx/render/ole-edit-model.d.ts.map +1 -0
- package/dist/pptx/render/ole-icon-primitives.d.ts +23 -0
- package/dist/pptx/render/ole-icon-primitives.d.ts.map +1 -0
- package/dist/pptx/render/ole-renderer-helpers.d.ts +78 -0
- package/dist/pptx/render/ole-renderer-helpers.d.ts.map +1 -0
- package/dist/pptx/render/omml-color.d.ts +3 -0
- package/dist/pptx/render/omml-color.d.ts.map +1 -0
- package/dist/pptx/render/omml-to-latex-helpers.d.ts +3 -0
- package/dist/pptx/render/omml-to-latex-helpers.d.ts.map +1 -0
- package/dist/pptx/render/omml-to-latex-layout.d.ts +3 -0
- package/dist/pptx/render/omml-to-latex-layout.d.ts.map +1 -0
- package/dist/pptx/render/omml-to-latex.d.ts +3 -0
- package/dist/pptx/render/omml-to-latex.d.ts.map +1 -0
- package/dist/pptx/render/omml-to-mathml.d.ts +3 -0
- package/dist/pptx/render/omml-to-mathml.d.ts.map +1 -0
- package/dist/pptx/render/online-video.d.ts +53 -0
- package/dist/pptx/render/online-video.d.ts.map +1 -0
- package/dist/pptx/render/open-file-picker.d.ts +33 -0
- package/dist/pptx/render/open-file-picker.d.ts.map +1 -0
- package/dist/pptx/render/options/autocorrect.d.ts +4 -0
- package/dist/pptx/render/options/autocorrect.d.ts.map +1 -0
- package/dist/pptx/render/options/index.d.ts +12 -0
- package/dist/pptx/render/options/index.d.ts.map +1 -0
- package/dist/pptx/render/options/quick-access.d.ts +32 -0
- package/dist/pptx/render/options/quick-access.d.ts.map +1 -0
- package/dist/pptx/render/options/viewer-addins.d.ts +34 -0
- package/dist/pptx/render/options/viewer-addins.d.ts.map +1 -0
- package/dist/pptx/render/options/viewer-options-apply.d.ts +86 -0
- package/dist/pptx/render/options/viewer-options-apply.d.ts.map +1 -0
- package/dist/pptx/render/options/viewer-options-constraints.d.ts +42 -0
- package/dist/pptx/render/options/viewer-options-constraints.d.ts.map +1 -0
- package/dist/pptx/render/options/viewer-options-controls.d.ts +77 -0
- package/dist/pptx/render/options/viewer-options-controls.d.ts.map +1 -0
- package/dist/pptx/render/options/viewer-options-schema.d.ts +8 -0
- package/dist/pptx/render/options/viewer-options-schema.d.ts.map +1 -0
- package/dist/pptx/render/options/viewer-options-store.d.ts +63 -0
- package/dist/pptx/render/options/viewer-options-store.d.ts.map +1 -0
- package/dist/pptx/render/options/viewer-options-tabs-advanced.d.ts +8 -0
- package/dist/pptx/render/options/viewer-options-tabs-advanced.d.ts.map +1 -0
- package/dist/pptx/render/options/viewer-options-tabs-core.d.ts +8 -0
- package/dist/pptx/render/options/viewer-options-tabs-core.d.ts.map +1 -0
- package/dist/pptx/render/options/viewer-options.d.ts +176 -0
- package/dist/pptx/render/options/viewer-options.d.ts.map +1 -0
- package/dist/pptx/render/outline-view-edit.d.ts +107 -0
- package/dist/pptx/render/outline-view-edit.d.ts.map +1 -0
- package/dist/pptx/render/outline-view.d.ts +157 -0
- package/dist/pptx/render/outline-view.d.ts.map +1 -0
- package/dist/pptx/render/p14-transition-css-directional.d.ts +25 -0
- package/dist/pptx/render/p14-transition-css-directional.d.ts.map +1 -0
- package/dist/pptx/render/p14-transition-css.d.ts +23 -0
- package/dist/pptx/render/p14-transition-css.d.ts.map +1 -0
- package/dist/pptx/render/p14-transition-keyframes.d.ts +7 -0
- package/dist/pptx/render/p14-transition-keyframes.d.ts.map +1 -0
- package/dist/pptx/render/paragraph-bullet-marker-style.d.ts +12 -0
- package/dist/pptx/render/paragraph-bullet-marker-style.d.ts.map +1 -0
- package/dist/pptx/render/paragraph-geometry-overrides.d.ts +34 -0
- package/dist/pptx/render/paragraph-geometry-overrides.d.ts.map +1 -0
- package/dist/pptx/render/paragraph-run-build.d.ts +99 -0
- package/dist/pptx/render/paragraph-run-build.d.ts.map +1 -0
- package/dist/pptx/render/paragraph-run-enrich.d.ts +82 -0
- package/dist/pptx/render/paragraph-run-enrich.d.ts.map +1 -0
- package/dist/pptx/render/paragraph-run-text.d.ts +27 -0
- package/dist/pptx/render/paragraph-run-text.d.ts.map +1 -0
- package/dist/pptx/render/paragraph-spacing.d.ts +132 -0
- package/dist/pptx/render/paragraph-spacing.d.ts.map +1 -0
- package/dist/pptx/render/paragraph-strut.d.ts +49 -0
- package/dist/pptx/render/paragraph-strut.d.ts.map +1 -0
- package/dist/pptx/render/paragraph-trailing-space.d.ts +31 -0
- package/dist/pptx/render/paragraph-trailing-space.d.ts.map +1 -0
- package/dist/pptx/render/paragraph-types.d.ts +184 -0
- package/dist/pptx/render/paragraph-types.d.ts.map +1 -0
- package/dist/pptx/render/password-protection.d.ts +6 -0
- package/dist/pptx/render/password-protection.d.ts.map +1 -0
- package/dist/pptx/render/paste-special.d.ts +51 -0
- package/dist/pptx/render/paste-special.d.ts.map +1 -0
- package/dist/pptx/render/path-gradient-rect.d.ts +76 -0
- package/dist/pptx/render/path-gradient-rect.d.ts.map +1 -0
- package/dist/pptx/render/picture-crop/crop-aspect.d.ts +45 -0
- package/dist/pptx/render/picture-crop/crop-aspect.d.ts.map +1 -0
- package/dist/pptx/render/picture-crop/crop-geometry.d.ts +84 -0
- package/dist/pptx/render/picture-crop/crop-geometry.d.ts.map +1 -0
- package/dist/pptx/render/picture-crop/crop-overlay.d.ts +61 -0
- package/dist/pptx/render/picture-crop/crop-overlay.d.ts.map +1 -0
- package/dist/pptx/render/picture-crop/crop-session.d.ts +52 -0
- package/dist/pptx/render/picture-crop/crop-session.d.ts.map +1 -0
- package/dist/pptx/render/picture-crop/index.d.ts +5 -0
- package/dist/pptx/render/picture-crop/index.d.ts.map +1 -0
- package/dist/pptx/render/placeholder-prompt.d.ts +45 -0
- package/dist/pptx/render/placeholder-prompt.d.ts.map +1 -0
- package/dist/pptx/render/present-chrome.d.ts +191 -0
- package/dist/pptx/render/present-chrome.d.ts.map +1 -0
- package/dist/pptx/render/present-controls-state.d.ts +92 -0
- package/dist/pptx/render/present-controls-state.d.ts.map +1 -0
- package/dist/pptx/render/presentation-action.d.ts +272 -0
- package/dist/pptx/render/presentation-action.d.ts.map +1 -0
- package/dist/pptx/render/presentation-animation-controller.d.ts +164 -0
- package/dist/pptx/render/presentation-animation-controller.d.ts.map +1 -0
- package/dist/pptx/render/presentation-blackboard.d.ts +83 -0
- package/dist/pptx/render/presentation-blackboard.d.ts.map +1 -0
- package/dist/pptx/render/presentation-context-menu.d.ts +52 -0
- package/dist/pptx/render/presentation-context-menu.d.ts.map +1 -0
- package/dist/pptx/render/presentation-entry-slide.d.ts +33 -0
- package/dist/pptx/render/presentation-entry-slide.d.ts.map +1 -0
- package/dist/pptx/render/presentation-file-kinds.d.ts +79 -0
- package/dist/pptx/render/presentation-file-kinds.d.ts.map +1 -0
- package/dist/pptx/render/presentation-hit-test.d.ts +74 -0
- package/dist/pptx/render/presentation-hit-test.d.ts.map +1 -0
- package/dist/pptx/render/presentation-keymap.d.ts +102 -0
- package/dist/pptx/render/presentation-keymap.d.ts.map +1 -0
- package/dist/pptx/render/presentation-ole-verb.d.ts +52 -0
- package/dist/pptx/render/presentation-ole-verb.d.ts.map +1 -0
- package/dist/pptx/render/presentation-print-settings.cjs +22 -0
- package/dist/pptx/render/presentation-print-settings.d.ts +29 -0
- package/dist/pptx/render/presentation-print-settings.d.ts.map +1 -0
- package/dist/pptx/render/presentation-print-settings.mjs +1 -0
- package/dist/pptx/render/presentation-session-types.d.ts +67 -0
- package/dist/pptx/render/presentation-session-types.d.ts.map +1 -0
- package/dist/pptx/render/presentation-session.d.ts +26 -0
- package/dist/pptx/render/presentation-session.d.ts.map +1 -0
- package/dist/pptx/render/presentation-setup.d.ts +66 -0
- package/dist/pptx/render/presentation-setup.d.ts.map +1 -0
- package/dist/pptx/render/presentation-show-order.d.ts +163 -0
- package/dist/pptx/render/presentation-show-order.d.ts.map +1 -0
- package/dist/pptx/render/presentation-subtitles.d.ts +33 -0
- package/dist/pptx/render/presentation-subtitles.d.ts.map +1 -0
- package/dist/pptx/render/presentation-toolbar.d.ts +29 -0
- package/dist/pptx/render/presentation-toolbar.d.ts.map +1 -0
- package/dist/pptx/render/presentation-touch-controls.d.ts +12 -0
- package/dist/pptx/render/presentation-touch-controls.d.ts.map +1 -0
- package/dist/pptx/render/presentation-visibility.d.ts +20 -0
- package/dist/pptx/render/presentation-visibility.d.ts.map +1 -0
- package/dist/pptx/render/presenter-chrome-metrics.d.ts +105 -0
- package/dist/pptx/render/presenter-chrome-metrics.d.ts.map +1 -0
- package/dist/pptx/render/presenter-chrome.d.ts +166 -0
- package/dist/pptx/render/presenter-chrome.d.ts.map +1 -0
- package/dist/pptx/render/presenter-console.d.ts +34 -0
- package/dist/pptx/render/presenter-console.d.ts.map +1 -0
- package/dist/pptx/render/presenter-mobile.d.ts +56 -0
- package/dist/pptx/render/presenter-mobile.d.ts.map +1 -0
- package/dist/pptx/render/presenter-show-lifecycle.d.ts +85 -0
- package/dist/pptx/render/presenter-show-lifecycle.d.ts.map +1 -0
- package/dist/pptx/render/presenter-view.d.ts +54 -0
- package/dist/pptx/render/presenter-view.d.ts.map +1 -0
- package/dist/pptx/render/preview-elements.d.ts +49 -0
- package/dist/pptx/render/preview-elements.d.ts.map +1 -0
- package/dist/pptx/render/read-only-recommendation.d.ts +54 -0
- package/dist/pptx/render/read-only-recommendation.d.ts.map +1 -0
- package/dist/pptx/render/reading-view.d.ts +125 -0
- package/dist/pptx/render/reading-view.d.ts.map +1 -0
- package/dist/pptx/render/recent-colors.d.ts +51 -0
- package/dist/pptx/render/recent-colors.d.ts.map +1 -0
- package/dist/pptx/render/reflection.d.ts +111 -0
- package/dist/pptx/render/reflection.d.ts.map +1 -0
- package/dist/pptx/render/remap-empty-paragraph.d.ts +2 -0
- package/dist/pptx/render/remap-empty-paragraph.d.ts.map +1 -0
- package/dist/pptx/render/remap-paragraph-sources.d.ts +3 -0
- package/dist/pptx/render/remap-paragraph-sources.d.ts.map +1 -0
- package/dist/pptx/render/remap-text-bullets.d.ts +2 -0
- package/dist/pptx/render/remap-text-bullets.d.ts.map +1 -0
- package/dist/pptx/render/remap-text-indents.d.ts +19 -0
- package/dist/pptx/render/remap-text-indents.d.ts.map +1 -0
- package/dist/pptx/render/remap-text-paragraph-match.d.ts +80 -0
- package/dist/pptx/render/remap-text-paragraph-match.d.ts.map +1 -0
- package/dist/pptx/render/remap-text-renumber.d.ts +26 -0
- package/dist/pptx/render/remap-text-renumber.d.ts.map +1 -0
- package/dist/pptx/render/remap-text.cjs +10 -0
- package/dist/pptx/render/remap-text.d.ts +2 -0
- package/dist/pptx/render/remap-text.d.ts.map +1 -0
- package/dist/pptx/render/remap-text.mjs +1 -0
- package/dist/pptx/render/resize-handle-hit-area.d.ts +21 -0
- package/dist/pptx/render/resize-handle-hit-area.d.ts.map +1 -0
- package/dist/pptx/render/responsive/dense-grid-layout.d.ts +9 -0
- package/dist/pptx/render/responsive/dense-grid-layout.d.ts.map +1 -0
- package/dist/pptx/render/responsive/dense-panel-sections.d.ts +20 -0
- package/dist/pptx/render/responsive/dense-panel-sections.d.ts.map +1 -0
- package/dist/pptx/render/responsive/dense-panel-viewport.d.ts +3 -0
- package/dist/pptx/render/responsive/dense-panel-viewport.d.ts.map +1 -0
- package/dist/pptx/render/responsive/index.d.ts +18 -0
- package/dist/pptx/render/responsive/index.d.ts.map +1 -0
- package/dist/pptx/render/responsive/sticky-action-row.d.ts +3 -0
- package/dist/pptx/render/responsive/sticky-action-row.d.ts.map +1 -0
- package/dist/pptx/render/responsive/touch-target.d.ts +19 -0
- package/dist/pptx/render/responsive/touch-target.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-animations-state.cjs +23 -0
- package/dist/pptx/render/ribbon-animations-state.d.ts +44 -0
- package/dist/pptx/render/ribbon-animations-state.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-animations-state.mjs +2 -0
- package/dist/pptx/render/ribbon-command-view.d.ts +32 -0
- package/dist/pptx/render/ribbon-command-view.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-design-commands.d.ts +27 -0
- package/dist/pptx/render/ribbon-design-commands.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-draw-state.d.ts +31 -0
- package/dist/pptx/render/ribbon-draw-state.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/bullets-gallery.d.ts +3 -0
- package/dist/pptx/render/ribbon-galleries/bullets-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/chart-color-palette-catalog.d.ts +3 -0
- package/dist/pptx/render/ribbon-galleries/chart-color-palette-catalog.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/chart-colors-gallery.d.ts +26 -0
- package/dist/pptx/render/ribbon-galleries/chart-colors-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/chart-gallery-tiles.d.ts +24 -0
- package/dist/pptx/render/ribbon-galleries/chart-gallery-tiles.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/chart-quick-layout-catalog.d.ts +22 -0
- package/dist/pptx/render/ribbon-galleries/chart-quick-layout-catalog.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/chart-quick-layout-gallery.d.ts +18 -0
- package/dist/pptx/render/ribbon-galleries/chart-quick-layout-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/chart-styles-gallery.d.ts +16 -0
- package/dist/pptx/render/ribbon-galleries/chart-styles-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/effect-tile-svg.d.ts +11 -0
- package/dist/pptx/render/ribbon-galleries/effect-tile-svg.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/gallery-color-spec.d.ts +24 -0
- package/dist/pptx/render/ribbon-galleries/gallery-color-spec.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/gallery-element-patch.d.ts +24 -0
- package/dist/pptx/render/ribbon-galleries/gallery-element-patch.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/gallery-module.d.ts +14 -0
- package/dist/pptx/render/ribbon-galleries/gallery-module.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/gallery-placements.d.ts +52 -0
- package/dist/pptx/render/ribbon-galleries/gallery-placements.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/gallery-preview-svg.d.ts +84 -0
- package/dist/pptx/render/ribbon-galleries/gallery-preview-svg.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/gallery-registry.d.ts +11 -0
- package/dist/pptx/render/ribbon-galleries/gallery-registry.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/gallery-theme.d.ts +20 -0
- package/dist/pptx/render/ribbon-galleries/gallery-theme.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/gallery-types.d.ts +116 -0
- package/dist/pptx/render/ribbon-galleries/gallery-types.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/gallery-view.d.ts +30 -0
- package/dist/pptx/render/ribbon-galleries/gallery-view.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/index.d.ts +16 -0
- package/dist/pptx/render/ribbon-galleries/index.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/list-library-apply.d.ts +22 -0
- package/dist/pptx/render/ribbon-galleries/list-library-apply.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/list-library-catalog.d.ts +32 -0
- package/dist/pptx/render/ribbon-galleries/list-library-catalog.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/list-preview-svg.d.ts +7 -0
- package/dist/pptx/render/ribbon-galleries/list-preview-svg.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/numbering-gallery.d.ts +3 -0
- package/dist/pptx/render/ribbon-galleries/numbering-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-adjust-catalog.d.ts +52 -0
- package/dist/pptx/render/ribbon-galleries/picture-adjust-catalog.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-adjust-gallery.d.ts +47 -0
- package/dist/pptx/render/ribbon-galleries/picture-adjust-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-adjust-tile-svg.d.ts +16 -0
- package/dist/pptx/render/ribbon-galleries/picture-adjust-tile-svg.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-artistic-gallery.d.ts +8 -0
- package/dist/pptx/render/ribbon-galleries/picture-artistic-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-color-gallery.d.ts +6 -0
- package/dist/pptx/render/ribbon-galleries/picture-color-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-corrections-gallery.d.ts +5 -0
- package/dist/pptx/render/ribbon-galleries/picture-corrections-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-style-tile-svg.d.ts +8 -0
- package/dist/pptx/render/ribbon-galleries/picture-style-tile-svg.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-styles-catalog-tail.d.ts +9 -0
- package/dist/pptx/render/ribbon-galleries/picture-styles-catalog-tail.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-styles-catalog.d.ts +3 -0
- package/dist/pptx/render/ribbon-galleries/picture-styles-catalog.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-styles-gallery.d.ts +15 -0
- package/dist/pptx/render/ribbon-galleries/picture-styles-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-styles-patch.d.ts +19 -0
- package/dist/pptx/render/ribbon-galleries/picture-styles-patch.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/picture-styles-spec.d.ts +84 -0
- package/dist/pptx/render/ribbon-galleries/picture-styles-spec.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/shape-effects-catalog.d.ts +83 -0
- package/dist/pptx/render/ribbon-galleries/shape-effects-catalog.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/shape-effects-entries.d.ts +40 -0
- package/dist/pptx/render/ribbon-galleries/shape-effects-entries.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/shape-effects-gallery.d.ts +3 -0
- package/dist/pptx/render/ribbon-galleries/shape-effects-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/shape-effects-sections.d.ts +5 -0
- package/dist/pptx/render/ribbon-galleries/shape-effects-sections.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/shape-effects-style.d.ts +41 -0
- package/dist/pptx/render/ribbon-galleries/shape-effects-style.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/shape-style-catalog.d.ts +78 -0
- package/dist/pptx/render/ribbon-galleries/shape-style-catalog.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/shape-styles-gallery.d.ts +4 -0
- package/dist/pptx/render/ribbon-galleries/shape-styles-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/smartart-color-patch.d.ts +4 -0
- package/dist/pptx/render/ribbon-galleries/smartart-color-patch.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/smartart-colors-gallery.d.ts +11 -0
- package/dist/pptx/render/ribbon-galleries/smartart-colors-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/smartart-commands.d.ts +7 -0
- package/dist/pptx/render/ribbon-galleries/smartart-commands.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/smartart-gallery-patch.d.ts +45 -0
- package/dist/pptx/render/ribbon-galleries/smartart-gallery-patch.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/smartart-gallery-tiles.d.ts +13 -0
- package/dist/pptx/render/ribbon-galleries/smartart-gallery-tiles.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/smartart-layout-tiles.d.ts +6 -0
- package/dist/pptx/render/ribbon-galleries/smartart-layout-tiles.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/smartart-layouts-gallery.d.ts +3 -0
- package/dist/pptx/render/ribbon-galleries/smartart-layouts-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/smartart-styles-gallery.d.ts +14 -0
- package/dist/pptx/render/ribbon-galleries/smartart-styles-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/style-matrix-fallback.d.ts +13 -0
- package/dist/pptx/render/ribbon-galleries/style-matrix-fallback.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/table-style-gallery-catalog.d.ts +22 -0
- package/dist/pptx/render/ribbon-galleries/table-style-gallery-catalog.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/table-style-tile-svg.d.ts +14 -0
- package/dist/pptx/render/ribbon-galleries/table-style-tile-svg.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/table-styles-gallery.d.ts +21 -0
- package/dist/pptx/render/ribbon-galleries/table-styles-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/theme-color-schemes-data.d.ts +9 -0
- package/dist/pptx/render/ribbon-galleries/theme-color-schemes-data.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/theme-colors-gallery.d.ts +19 -0
- package/dist/pptx/render/ribbon-galleries/theme-colors-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/theme-font-schemes-data.d.ts +9 -0
- package/dist/pptx/render/ribbon-galleries/theme-font-schemes-data.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/theme-fonts-gallery.d.ts +5 -0
- package/dist/pptx/render/ribbon-galleries/theme-fonts-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/wordart-preview-svg.d.ts +13 -0
- package/dist/pptx/render/ribbon-galleries/wordart-preview-svg.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/wordart-run-style.d.ts +27 -0
- package/dist/pptx/render/ribbon-galleries/wordart-run-style.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/wordart-style-spec.d.ts +55 -0
- package/dist/pptx/render/ribbon-galleries/wordart-style-spec.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/wordart-styles-catalog-3d.d.ts +3 -0
- package/dist/pptx/render/ribbon-galleries/wordart-styles-catalog-3d.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/wordart-styles-catalog.d.ts +19 -0
- package/dist/pptx/render/ribbon-galleries/wordart-styles-catalog.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-galleries/wordart-styles-gallery.d.ts +6 -0
- package/dist/pptx/render/ribbon-galleries/wordart-styles-gallery.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-help-commands.d.ts +8 -0
- package/dist/pptx/render/ribbon-help-commands.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-home-commands.d.ts +37 -0
- package/dist/pptx/render/ribbon-home-commands.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-home-families-objects.d.ts +4 -0
- package/dist/pptx/render/ribbon-home-families-objects.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-home-families.d.ts +3 -0
- package/dist/pptx/render/ribbon-home-families.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-home-family-helpers.d.ts +13 -0
- package/dist/pptx/render/ribbon-home-family-helpers.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-home-menus.d.ts +34 -0
- package/dist/pptx/render/ribbon-home-menus.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-home-spec.d.ts +212 -0
- package/dist/pptx/render/ribbon-home-spec.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-home-state-extras.d.ts +44 -0
- package/dist/pptx/render/ribbon-home-state-extras.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-home-state-objects.d.ts +46 -0
- package/dist/pptx/render/ribbon-home-state-objects.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-home-state.d.ts +88 -0
- package/dist/pptx/render/ribbon-home-state.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-icons/arrange-alignment-icons.d.ts +3 -0
- package/dist/pptx/render/ribbon-icons/arrange-alignment-icons.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-icons/arrange-operations-icons.d.ts +3 -0
- package/dist/pptx/render/ribbon-icons/arrange-operations-icons.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-icons/clipboard-icons.d.ts +3 -0
- package/dist/pptx/render/ribbon-icons/clipboard-icons.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-icons/drawing-icons.d.ts +3 -0
- package/dist/pptx/render/ribbon-icons/drawing-icons.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-icons/editing-icons.d.ts +3 -0
- package/dist/pptx/render/ribbon-icons/editing-icons.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-icons/font-icons.d.ts +3 -0
- package/dist/pptx/render/ribbon-icons/font-icons.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-icons/paragraph-icons.d.ts +3 -0
- package/dist/pptx/render/ribbon-icons/paragraph-icons.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-icons/slides-icons.d.ts +3 -0
- package/dist/pptx/render/ribbon-icons/slides-icons.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-icons/types.d.ts +11 -0
- package/dist/pptx/render/ribbon-icons/types.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-icons.d.ts +7 -0
- package/dist/pptx/render/ribbon-icons.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-insert-state.d.ts +69 -0
- package/dist/pptx/render/ribbon-insert-state.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-record-commands.d.ts +4 -0
- package/dist/pptx/render/ribbon-record-commands.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-review-commands.d.ts +19 -0
- package/dist/pptx/render/ribbon-review-commands.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-slide-show-commands.d.ts +16 -0
- package/dist/pptx/render/ribbon-slide-show-commands.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-slide-show-options.d.ts +50 -0
- package/dist/pptx/render/ribbon-slide-show-options.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-transitions-state.d.ts +64 -0
- package/dist/pptx/render/ribbon-transitions-state.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-transitions.d.ts +94 -0
- package/dist/pptx/render/ribbon-transitions.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-view-state.d.ts +35 -0
- package/dist/pptx/render/ribbon-view-state.d.ts.map +1 -0
- package/dist/pptx/render/rotate-handle-attachment.d.ts +14 -0
- package/dist/pptx/render/rotate-handle-attachment.d.ts.map +1 -0
- package/dist/pptx/render/rotate-handle-dom.d.ts +9 -0
- package/dist/pptx/render/rotate-handle-dom.d.ts.map +1 -0
- package/dist/pptx/render/rotate-handle-placement.d.ts +28 -0
- package/dist/pptx/render/rotate-handle-placement.d.ts.map +1 -0
- package/dist/pptx/render/rotation-drag.d.ts +8 -0
- package/dist/pptx/render/rotation-drag.d.ts.map +1 -0
- package/dist/pptx/render/ruler.d.ts +51 -0
- package/dist/pptx/render/ruler.d.ts.map +1 -0
- package/dist/pptx/render/run-program-notice.d.ts +38 -0
- package/dist/pptx/render/run-program-notice.d.ts.map +1 -0
- package/dist/pptx/render/schema-label-keys.d.ts +2 -0
- package/dist/pptx/render/schema-label-keys.d.ts.map +1 -0
- package/dist/pptx/render/section-context-menu.d.ts +42 -0
- package/dist/pptx/render/section-context-menu.d.ts.map +1 -0
- package/dist/pptx/render/section-operations.d.ts +3 -0
- package/dist/pptx/render/section-operations.d.ts.map +1 -0
- package/dist/pptx/render/secure-random.d.ts +24 -0
- package/dist/pptx/render/secure-random.d.ts.map +1 -0
- package/dist/pptx/render/selection-control-artwork.d.ts +61 -0
- package/dist/pptx/render/selection-control-artwork.d.ts.map +1 -0
- package/dist/pptx/render/selection-cycle.d.ts +22 -0
- package/dist/pptx/render/selection-cycle.d.ts.map +1 -0
- package/dist/pptx/render/selection-format-state.d.ts +45 -0
- package/dist/pptx/render/selection-format-state.d.ts.map +1 -0
- package/dist/pptx/render/selection-handle-visibility.d.ts +17 -0
- package/dist/pptx/render/selection-handle-visibility.d.ts.map +1 -0
- package/dist/pptx/render/selection-pane-rename.d.ts +44 -0
- package/dist/pptx/render/selection-pane-rename.d.ts.map +1 -0
- package/dist/pptx/render/selection-transform.d.ts +15 -0
- package/dist/pptx/render/selection-transform.d.ts.map +1 -0
- package/dist/pptx/render/session-restore.d.ts +57 -0
- package/dist/pptx/render/session-restore.d.ts.map +1 -0
- package/dist/pptx/render/shape-adjustment-custom-geometry.d.ts +13 -0
- package/dist/pptx/render/shape-adjustment-custom-geometry.d.ts.map +1 -0
- package/dist/pptx/render/shape-adjustment-handles.d.ts +10 -0
- package/dist/pptx/render/shape-adjustment-handles.d.ts.map +1 -0
- package/dist/pptx/render/shape-adjustment-model.d.ts +71 -0
- package/dist/pptx/render/shape-adjustment-model.d.ts.map +1 -0
- package/dist/pptx/render/shape-adjustment-probe.d.ts +58 -0
- package/dist/pptx/render/shape-adjustment-probe.d.ts.map +1 -0
- package/dist/pptx/render/shape-adjustment-solver.d.ts +16 -0
- package/dist/pptx/render/shape-adjustment-solver.d.ts.map +1 -0
- package/dist/pptx/render/shape-adjustment.d.ts +116 -0
- package/dist/pptx/render/shape-adjustment.d.ts.map +1 -0
- package/dist/pptx/render/shape-autofit-resize.d.ts +98 -0
- package/dist/pptx/render/shape-autofit-resize.d.ts.map +1 -0
- package/dist/pptx/render/shape-geometry-cascade.d.ts +72 -0
- package/dist/pptx/render/shape-geometry-cascade.d.ts.map +1 -0
- package/dist/pptx/render/shape-geometry.d.ts +89 -0
- package/dist/pptx/render/shape-geometry.d.ts.map +1 -0
- package/dist/pptx/render/shape-preset-catalog.d.ts +35 -0
- package/dist/pptx/render/shape-preset-catalog.d.ts.map +1 -0
- package/dist/pptx/render/shape-quick-styles.d.ts +38 -0
- package/dist/pptx/render/shape-quick-styles.d.ts.map +1 -0
- package/dist/pptx/render/share-form.d.ts +41 -0
- package/dist/pptx/render/share-form.d.ts.map +1 -0
- package/dist/pptx/render/share-session.d.ts +37 -0
- package/dist/pptx/render/share-session.d.ts.map +1 -0
- package/dist/pptx/render/sheet-dismiss.d.ts +17 -0
- package/dist/pptx/render/sheet-dismiss.d.ts.map +1 -0
- package/dist/pptx/render/slide-background-patch.d.ts +3 -0
- package/dist/pptx/render/slide-background-patch.d.ts.map +1 -0
- package/dist/pptx/render/slide-background.d.ts +32 -0
- package/dist/pptx/render/slide-background.d.ts.map +1 -0
- package/dist/pptx/render/slide-compare.d.ts +73 -0
- package/dist/pptx/render/slide-compare.d.ts.map +1 -0
- package/dist/pptx/render/slide-operations.d.ts +2 -0
- package/dist/pptx/render/slide-operations.d.ts.map +1 -0
- package/dist/pptx/render/slide-pane-context-menu.d.ts +50 -0
- package/dist/pptx/render/slide-pane-context-menu.d.ts.map +1 -0
- package/dist/pptx/render/slide-pane-selection.d.ts +48 -0
- package/dist/pptx/render/slide-pane-selection.d.ts.map +1 -0
- package/dist/pptx/render/slide-search.d.ts +3 -0
- package/dist/pptx/render/slide-search.d.ts.map +1 -0
- package/dist/pptx/render/slide-show-start-keymap.d.ts +45 -0
- package/dist/pptx/render/slide-show-start-keymap.d.ts.map +1 -0
- package/dist/pptx/render/slide-size-rescale.d.ts +3 -0
- package/dist/pptx/render/slide-size-rescale.d.ts.map +1 -0
- package/dist/pptx/render/slide-size.d.ts +123 -0
- package/dist/pptx/render/slide-size.d.ts.map +1 -0
- package/dist/pptx/render/slide-sorter-context-menu.d.ts +71 -0
- package/dist/pptx/render/slide-sorter-context-menu.d.ts.map +1 -0
- package/dist/pptx/render/slide-sorter-keymap.d.ts +74 -0
- package/dist/pptx/render/slide-sorter-keymap.d.ts.map +1 -0
- package/dist/pptx/render/slide-sorter-state.d.ts +29 -0
- package/dist/pptx/render/slide-sorter-state.d.ts.map +1 -0
- package/dist/pptx/render/slide-templates/index.d.ts +4 -0
- package/dist/pptx/render/slide-templates/index.d.ts.map +1 -0
- package/dist/pptx/render/slide-templates/slide-template-builders-basic.d.ts +22 -0
- package/dist/pptx/render/slide-templates/slide-template-builders-basic.d.ts.map +1 -0
- package/dist/pptx/render/slide-templates/slide-template-builders-content.d.ts +20 -0
- package/dist/pptx/render/slide-templates/slide-template-builders-content.d.ts.map +1 -0
- package/dist/pptx/render/slide-templates/slide-template-catalog.d.ts +28 -0
- package/dist/pptx/render/slide-templates/slide-template-catalog.d.ts.map +1 -0
- package/dist/pptx/render/slide-templates/slide-template-helpers.d.ts +67 -0
- package/dist/pptx/render/slide-templates/slide-template-helpers.d.ts.map +1 -0
- package/dist/pptx/render/slide-templates/slide-template-types.d.ts +74 -0
- package/dist/pptx/render/slide-templates/slide-template-types.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-box.d.ts +61 -0
- package/dist/pptx/render/slide-transition-box.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-cinematic-mirror.d.ts +35 -0
- package/dist/pptx/render/slide-transition-cinematic-mirror.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-cinematic.d.ts +46 -0
- package/dist/pptx/render/slide-transition-cinematic.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-css.d.ts +55 -0
- package/dist/pptx/render/slide-transition-css.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-directional-fx.d.ts +35 -0
- package/dist/pptx/render/slide-transition-directional-fx.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-directional-shapes.d.ts +24 -0
- package/dist/pptx/render/slide-transition-directional-shapes.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-edits.d.ts +2 -0
- package/dist/pptx/render/slide-transition-edits.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-fragment-types.d.ts +70 -0
- package/dist/pptx/render/slide-transition-fragment-types.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-fragments-grid.d.ts +16 -0
- package/dist/pptx/render/slide-transition-fragments-grid.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-fragments-panels.d.ts +12 -0
- package/dist/pptx/render/slide-transition-fragments-panels.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-fragments-radial.d.ts +23 -0
- package/dist/pptx/render/slide-transition-fragments-radial.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-fragments.d.ts +78 -0
- package/dist/pptx/render/slide-transition-fragments.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-keyframes.d.ts +35 -0
- package/dist/pptx/render/slide-transition-keyframes.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-label-keys.d.ts +18 -0
- package/dist/pptx/render/slide-transition-label-keys.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-options.d.ts +70 -0
- package/dist/pptx/render/slide-transition-options.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-prism.d.ts +11 -0
- package/dist/pptx/render/slide-transition-prism.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-rotate.d.ts +30 -0
- package/dist/pptx/render/slide-transition-rotate.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-sound-playback.d.ts +72 -0
- package/dist/pptx/render/slide-transition-sound-playback.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-sound.d.ts +102 -0
- package/dist/pptx/render/slide-transition-sound.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-types.d.ts +86 -0
- package/dist/pptx/render/slide-transition-types.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-warp.d.ts +21 -0
- package/dist/pptx/render/slide-transition-warp.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-wheel-keyframes.d.ts +29 -0
- package/dist/pptx/render/slide-transition-wheel-keyframes.d.ts.map +1 -0
- package/dist/pptx/render/slide-transition-wipe-keyframes.d.ts +21 -0
- package/dist/pptx/render/slide-transition-wipe-keyframes.d.ts.map +1 -0
- package/dist/pptx/render/smart-art-preset-data.d.ts +20 -0
- package/dist/pptx/render/smart-art-preset-data.d.ts.map +1 -0
- package/dist/pptx/render/smart-art-presets.d.ts +31 -0
- package/dist/pptx/render/smart-art-presets.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-bevel-profile.d.ts +28 -0
- package/dist/pptx/render/smartart-3d-bevel-profile.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-drawing-model.d.ts +33 -0
- package/dist/pptx/render/smartart-3d-drawing-model.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-drawing-solid.d.ts +34 -0
- package/dist/pptx/render/smartart-3d-drawing-solid.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-edit-layer.d.ts +40 -0
- package/dist/pptx/render/smartart-3d-edit-layer.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-element.d.ts +21 -0
- package/dist/pptx/render/smartart-3d-element.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-geom.d.ts +42 -0
- package/dist/pptx/render/smartart-3d-geom.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-layout-source.d.ts +32 -0
- package/dist/pptx/render/smartart-3d-layout-source.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-light-rig.d.ts +75 -0
- package/dist/pptx/render/smartart-3d-light-rig.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-lighting.d.ts +53 -0
- package/dist/pptx/render/smartart-3d-lighting.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-model.d.ts +26 -0
- package/dist/pptx/render/smartart-3d-model.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-primitive-outline.d.ts +19 -0
- package/dist/pptx/render/smartart-3d-primitive-outline.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-regenerated-drawing.d.ts +24 -0
- package/dist/pptx/render/smartart-3d-regenerated-drawing.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-ring.d.ts +35 -0
- package/dist/pptx/render/smartart-3d-ring.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-scene-camera.d.ts +59 -0
- package/dist/pptx/render/smartart-3d-scene-camera.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-solid-geometry.d.ts +33 -0
- package/dist/pptx/render/smartart-3d-solid-geometry.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-solid-types.d.ts +87 -0
- package/dist/pptx/render/smartart-3d-solid-types.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-solid.d.ts +17 -0
- package/dist/pptx/render/smartart-3d-solid.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-spatial.d.ts +22 -0
- package/dist/pptx/render/smartart-3d-spatial.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-style-path.d.ts +26 -0
- package/dist/pptx/render/smartart-3d-style-path.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-text-extrusion.d.ts +37 -0
- package/dist/pptx/render/smartart-3d-text-extrusion.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-translucency.d.ts +59 -0
- package/dist/pptx/render/smartart-3d-translucency.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-types.d.ts +213 -0
- package/dist/pptx/render/smartart-3d-types.d.ts.map +1 -0
- package/dist/pptx/render/smartart-3d-vertex-shading.d.ts +35 -0
- package/dist/pptx/render/smartart-3d-vertex-shading.d.ts.map +1 -0
- package/dist/pptx/render/smartart-accessibility.d.ts +52 -0
- package/dist/pptx/render/smartart-accessibility.d.ts.map +1 -0
- package/dist/pptx/render/smartart-builtin-layouts.d.ts +20 -0
- package/dist/pptx/render/smartart-builtin-layouts.d.ts.map +1 -0
- package/dist/pptx/render/smartart-drawing-gradient.d.ts +46 -0
- package/dist/pptx/render/smartart-drawing-gradient.d.ts.map +1 -0
- package/dist/pptx/render/smartart-drawing-label-color.d.ts +31 -0
- package/dist/pptx/render/smartart-drawing-label-color.d.ts.map +1 -0
- package/dist/pptx/render/smartart-drawing-viewbox.d.ts +6 -0
- package/dist/pptx/render/smartart-drawing-viewbox.d.ts.map +1 -0
- package/dist/pptx/render/smartart-drawing.d.ts +107 -0
- package/dist/pptx/render/smartart-drawing.d.ts.map +1 -0
- package/dist/pptx/render/smartart-inline-edit.d.ts +91 -0
- package/dist/pptx/render/smartart-inline-edit.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-families-extra.d.ts +29 -0
- package/dist/pptx/render/smartart-layout-families-extra.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-families-flow.d.ts +33 -0
- package/dist/pptx/render/smartart-layout-families-flow.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-families.d.ts +24 -0
- package/dist/pptx/render/smartart-layout-families.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-family-map.d.ts +21 -0
- package/dist/pptx/render/smartart-layout-family-map.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-helpers.d.ts +16 -0
- package/dist/pptx/render/smartart-layout-helpers.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter-aux.d.ts +8 -0
- package/dist/pptx/render/smartart-layout-interpreter-aux.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter-composite.d.ts +8 -0
- package/dist/pptx/render/smartart-layout-interpreter-composite.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter-cycle.d.ts +8 -0
- package/dist/pptx/render/smartart-layout-interpreter-cycle.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter-fidelity-fixtures.d.ts +53 -0
- package/dist/pptx/render/smartart-layout-interpreter-fidelity-fixtures.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter-fidelity-geometry.d.ts +50 -0
- package/dist/pptx/render/smartart-layout-interpreter-fidelity-geometry.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter-flow.d.ts +8 -0
- package/dist/pptx/render/smartart-layout-interpreter-flow.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter-hierarchy.d.ts +8 -0
- package/dist/pptx/render/smartart-layout-interpreter-hierarchy.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter-linear.d.ts +8 -0
- package/dist/pptx/render/smartart-layout-interpreter-linear.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter-model.d.ts +8 -0
- package/dist/pptx/render/smartart-layout-interpreter-model.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter-pyramid.d.ts +8 -0
- package/dist/pptx/render/smartart-layout-interpreter-pyramid.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter-render.d.ts +8 -0
- package/dist/pptx/render/smartart-layout-interpreter-render.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-interpreter.d.ts +16 -0
- package/dist/pptx/render/smartart-layout-interpreter.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout-types.d.ts +15 -0
- package/dist/pptx/render/smartart-layout-types.d.ts.map +1 -0
- package/dist/pptx/render/smartart-layout.d.ts +102 -0
- package/dist/pptx/render/smartart-layout.d.ts.map +1 -0
- package/dist/pptx/render/smartart-node-commit.d.ts +16 -0
- package/dist/pptx/render/smartart-node-commit.d.ts.map +1 -0
- package/dist/pptx/render/smartart-node-label.d.ts +78 -0
- package/dist/pptx/render/smartart-node-label.d.ts.map +1 -0
- package/dist/pptx/render/smartart-node-limits.d.ts +50 -0
- package/dist/pptx/render/smartart-node-limits.d.ts.map +1 -0
- package/dist/pptx/render/smartart-node-pane-handlers.d.ts +57 -0
- package/dist/pptx/render/smartart-node-pane-handlers.d.ts.map +1 -0
- package/dist/pptx/render/smartart-reflow-element.d.ts +31 -0
- package/dist/pptx/render/smartart-reflow-element.d.ts.map +1 -0
- package/dist/pptx/render/smartart-reflow-to-shapes.d.ts +39 -0
- package/dist/pptx/render/smartart-reflow-to-shapes.d.ts.map +1 -0
- package/dist/pptx/render/snap-guides.d.ts +4 -0
- package/dist/pptx/render/snap-guides.d.ts.map +1 -0
- package/dist/pptx/render/state-equality.d.ts +69 -0
- package/dist/pptx/render/state-equality.d.ts.map +1 -0
- package/dist/pptx/render/status-bar-state.d.ts +49 -0
- package/dist/pptx/render/status-bar-state.d.ts.map +1 -0
- package/dist/pptx/render/stroke-dash-options.d.ts +26 -0
- package/dist/pptx/render/stroke-dash-options.d.ts.map +1 -0
- package/dist/pptx/render/stroke-line-style-options.d.ts +27 -0
- package/dist/pptx/render/stroke-line-style-options.d.ts.map +1 -0
- package/dist/pptx/render/stroke-only-preset.d.ts +27 -0
- package/dist/pptx/render/stroke-only-preset.d.ts.map +1 -0
- package/dist/pptx/render/stroke-outline.d.ts +130 -0
- package/dist/pptx/render/stroke-outline.d.ts.map +1 -0
- package/dist/pptx/render/stroke-paint.d.ts +34 -0
- package/dist/pptx/render/stroke-paint.d.ts.map +1 -0
- package/dist/pptx/render/stroke-style.d.ts +70 -0
- package/dist/pptx/render/stroke-style.d.ts.map +1 -0
- package/dist/pptx/render/subpath-fill-overlay.d.ts +60 -0
- package/dist/pptx/render/subpath-fill-overlay.d.ts.map +1 -0
- package/dist/pptx/render/subtitle-settings.d.ts +22 -0
- package/dist/pptx/render/subtitle-settings.d.ts.map +1 -0
- package/dist/pptx/render/summary-zoom.d.ts +51 -0
- package/dist/pptx/render/summary-zoom.d.ts.map +1 -0
- package/dist/pptx/render/surface-chart-3d-geom.d.ts +86 -0
- package/dist/pptx/render/surface-chart-3d-geom.d.ts.map +1 -0
- package/dist/pptx/render/surface-chart-3d-walls.d.ts +50 -0
- package/dist/pptx/render/surface-chart-3d-walls.d.ts.map +1 -0
- package/dist/pptx/render/svg-gradient-paint.d.ts +102 -0
- package/dist/pptx/render/svg-gradient-paint.d.ts.map +1 -0
- package/dist/pptx/render/svg-gradient-rect-path.d.ts +46 -0
- package/dist/pptx/render/svg-gradient-rect-path.d.ts.map +1 -0
- package/dist/pptx/render/svg-path-flatten.d.ts +4 -0
- package/dist/pptx/render/svg-path-flatten.d.ts.map +1 -0
- package/dist/pptx/render/svg-stroke-pattern-paint.d.ts +40 -0
- package/dist/pptx/render/svg-stroke-pattern-paint.d.ts.map +1 -0
- package/dist/pptx/render/svg-text-lines.d.ts +40 -0
- package/dist/pptx/render/svg-text-lines.d.ts.map +1 -0
- package/dist/pptx/render/tab-leader.d.ts +3 -0
- package/dist/pptx/render/tab-leader.d.ts.map +1 -0
- package/dist/pptx/render/table-advanced-fill.d.ts +26 -0
- package/dist/pptx/render/table-advanced-fill.d.ts.map +1 -0
- package/dist/pptx/render/table-cell-css.d.ts +65 -0
- package/dist/pptx/render/table-cell-css.d.ts.map +1 -0
- package/dist/pptx/render/table-cell-edit.d.ts +2 -0
- package/dist/pptx/render/table-cell-edit.d.ts.map +1 -0
- package/dist/pptx/render/table-cell-merge.d.ts +2 -0
- package/dist/pptx/render/table-cell-merge.d.ts.map +1 -0
- package/dist/pptx/render/table-cell-padding.d.ts +17 -0
- package/dist/pptx/render/table-cell-padding.d.ts.map +1 -0
- package/dist/pptx/render/table-cell-pointer.d.ts +54 -0
- package/dist/pptx/render/table-cell-pointer.d.ts.map +1 -0
- package/dist/pptx/render/table-data-grid-ops.d.ts +2 -0
- package/dist/pptx/render/table-data-grid-ops.d.ts.map +1 -0
- package/dist/pptx/render/table-data-grid.d.ts +79 -0
- package/dist/pptx/render/table-data-grid.d.ts.map +1 -0
- package/dist/pptx/render/table-inspector.d.ts +43 -0
- package/dist/pptx/render/table-inspector.d.ts.map +1 -0
- package/dist/pptx/render/table-layout.d.ts +2 -0
- package/dist/pptx/render/table-layout.d.ts.map +1 -0
- package/dist/pptx/render/table-merge.d.ts +3 -0
- package/dist/pptx/render/table-merge.d.ts.map +1 -0
- package/dist/pptx/render/table-resize.d.ts +79 -0
- package/dist/pptx/render/table-resize.d.ts.map +1 -0
- package/dist/pptx/render/table-style-borders.d.ts +51 -0
- package/dist/pptx/render/table-style-borders.d.ts.map +1 -0
- package/dist/pptx/render/table-style-builtins-data.d.ts +36 -0
- package/dist/pptx/render/table-style-builtins-data.d.ts.map +1 -0
- package/dist/pptx/render/table-style-builtins.d.ts +36 -0
- package/dist/pptx/render/table-style-builtins.d.ts.map +1 -0
- package/dist/pptx/render/table-style-cell3d.d.ts +25 -0
- package/dist/pptx/render/table-style-cell3d.d.ts.map +1 -0
- package/dist/pptx/render/table-style-editor-descriptor.d.ts +3 -0
- package/dist/pptx/render/table-style-editor-descriptor.d.ts.map +1 -0
- package/dist/pptx/render/table-style-editor-edit.d.ts +3 -0
- package/dist/pptx/render/table-style-editor-edit.d.ts.map +1 -0
- package/dist/pptx/render/table-style-editor-parts.d.ts +3 -0
- package/dist/pptx/render/table-style-editor-parts.d.ts.map +1 -0
- package/dist/pptx/render/table-style-fill.d.ts +50 -0
- package/dist/pptx/render/table-style-fill.d.ts.map +1 -0
- package/dist/pptx/render/table-style-image.d.ts +46 -0
- package/dist/pptx/render/table-style-image.d.ts.map +1 -0
- package/dist/pptx/render/table-style-map-edits.d.ts +3 -0
- package/dist/pptx/render/table-style-map-edits.d.ts.map +1 -0
- package/dist/pptx/render/table-style-presets.d.ts +33 -0
- package/dist/pptx/render/table-style-presets.d.ts.map +1 -0
- package/dist/pptx/render/table-style-scheme.d.ts +21 -0
- package/dist/pptx/render/table-style-scheme.d.ts.map +1 -0
- package/dist/pptx/render/table-style.d.ts +187 -0
- package/dist/pptx/render/table-style.d.ts.map +1 -0
- package/dist/pptx/render/tag-collections.d.ts +38 -0
- package/dist/pptx/render/tag-collections.d.ts.map +1 -0
- package/dist/pptx/render/template-background-rows.d.ts +25 -0
- package/dist/pptx/render/template-background-rows.d.ts.map +1 -0
- package/dist/pptx/render/template-editing.d.ts +3 -0
- package/dist/pptx/render/template-editing.d.ts.map +1 -0
- package/dist/pptx/render/text-3d-fields.d.ts +105 -0
- package/dist/pptx/render/text-3d-fields.d.ts.map +1 -0
- package/dist/pptx/render/text-3d-presets.d.ts +16 -0
- package/dist/pptx/render/text-3d-presets.d.ts.map +1 -0
- package/dist/pptx/render/text-advanced.d.ts +109 -0
- package/dist/pptx/render/text-advanced.d.ts.map +1 -0
- package/dist/pptx/render/text-autofit-shrink-measure.d.ts +43 -0
- package/dist/pptx/render/text-autofit-shrink-measure.d.ts.map +1 -0
- package/dist/pptx/render/text-autofit-shrink.d.ts +90 -0
- package/dist/pptx/render/text-autofit-shrink.d.ts.map +1 -0
- package/dist/pptx/render/text-block-style.d.ts +57 -0
- package/dist/pptx/render/text-block-style.d.ts.map +1 -0
- package/dist/pptx/render/text-body-layout.d.ts +159 -0
- package/dist/pptx/render/text-body-layout.d.ts.map +1 -0
- package/dist/pptx/render/text-body-rect.d.ts +45 -0
- package/dist/pptx/render/text-body-rect.d.ts.map +1 -0
- package/dist/pptx/render/text-build-spans.d.ts +78 -0
- package/dist/pptx/render/text-build-spans.d.ts.map +1 -0
- package/dist/pptx/render/text-case-transform.cjs +14 -0
- package/dist/pptx/render/text-case-transform.d.ts +19 -0
- package/dist/pptx/render/text-case-transform.d.ts.map +1 -0
- package/dist/pptx/render/text-case-transform.mjs +1 -0
- package/dist/pptx/render/text-decoration.d.ts +98 -0
- package/dist/pptx/render/text-decoration.d.ts.map +1 -0
- package/dist/pptx/render/text-east-asian-breaks.d.ts +131 -0
- package/dist/pptx/render/text-east-asian-breaks.d.ts.map +1 -0
- package/dist/pptx/render/text-effects-3d.d.ts +67 -0
- package/dist/pptx/render/text-effects-3d.d.ts.map +1 -0
- package/dist/pptx/render/text-effects.d.ts +72 -0
- package/dist/pptx/render/text-effects.d.ts.map +1 -0
- package/dist/pptx/render/text-field-datetime.d.ts +35 -0
- package/dist/pptx/render/text-field-datetime.d.ts.map +1 -0
- package/dist/pptx/render/text-field-substitution.d.ts +68 -0
- package/dist/pptx/render/text-field-substitution.d.ts.map +1 -0
- package/dist/pptx/render/text-fill.d.ts +20 -0
- package/dist/pptx/render/text-fill.d.ts.map +1 -0
- package/dist/pptx/render/text-font-alignment.d.ts +36 -0
- package/dist/pptx/render/text-font-alignment.d.ts.map +1 -0
- package/dist/pptx/render/text-format-presets.d.ts +75 -0
- package/dist/pptx/render/text-format-presets.d.ts.map +1 -0
- package/dist/pptx/render/text-line-height.d.ts +72 -0
- package/dist/pptx/render/text-line-height.d.ts.map +1 -0
- package/dist/pptx/render/text-list-style-update.d.ts +17 -0
- package/dist/pptx/render/text-list-style-update.d.ts.map +1 -0
- package/dist/pptx/render/text-metric-tracking.d.ts +114 -0
- package/dist/pptx/render/text-metric-tracking.d.ts.map +1 -0
- package/dist/pptx/render/text-outline-dash.d.ts +40 -0
- package/dist/pptx/render/text-outline-dash.d.ts.map +1 -0
- package/dist/pptx/render/text-overflow-lines.d.ts +33 -0
- package/dist/pptx/render/text-overflow-lines.d.ts.map +1 -0
- package/dist/pptx/render/text-paragraph-style.d.ts +70 -0
- package/dist/pptx/render/text-paragraph-style.d.ts.map +1 -0
- package/dist/pptx/render/text-paragraphs.d.ts +53 -0
- package/dist/pptx/render/text-paragraphs.d.ts.map +1 -0
- package/dist/pptx/render/text-run-decoration.d.ts +39 -0
- package/dist/pptx/render/text-run-decoration.d.ts.map +1 -0
- package/dist/pptx/render/text-run-effects.d.ts +61 -0
- package/dist/pptx/render/text-run-effects.d.ts.map +1 -0
- package/dist/pptx/render/text-run-gradient-span.d.ts +39 -0
- package/dist/pptx/render/text-run-gradient-span.d.ts.map +1 -0
- package/dist/pptx/render/text-run-hollow.d.ts +61 -0
- package/dist/pptx/render/text-run-hollow.d.ts.map +1 -0
- package/dist/pptx/render/text-run-meta.d.ts +92 -0
- package/dist/pptx/render/text-run-meta.d.ts.map +1 -0
- package/dist/pptx/render/text-run-ruby.d.ts +38 -0
- package/dist/pptx/render/text-run-ruby.d.ts.map +1 -0
- package/dist/pptx/render/text-run-spacing.d.ts +61 -0
- package/dist/pptx/render/text-run-spacing.d.ts.map +1 -0
- package/dist/pptx/render/text-run-style.d.ts +73 -0
- package/dist/pptx/render/text-run-style.d.ts.map +1 -0
- package/dist/pptx/render/text-script-fonts.d.ts +79 -0
- package/dist/pptx/render/text-script-fonts.d.ts.map +1 -0
- package/dist/pptx/render/text-segment-paragraph-break.d.ts +2 -0
- package/dist/pptx/render/text-segment-paragraph-break.d.ts.map +1 -0
- package/dist/pptx/render/text-style-helpers.d.ts +176 -0
- package/dist/pptx/render/text-style-helpers.d.ts.map +1 -0
- package/dist/pptx/render/text-style-scope.d.ts +48 -0
- package/dist/pptx/render/text-style-scope.d.ts.map +1 -0
- package/dist/pptx/render/text-style-update.d.ts +30 -0
- package/dist/pptx/render/text-style-update.d.ts.map +1 -0
- package/dist/pptx/render/text-tab-decimal.d.ts +3 -0
- package/dist/pptx/render/text-tab-decimal.d.ts.map +1 -0
- package/dist/pptx/render/text-tab-layout.d.ts +94 -0
- package/dist/pptx/render/text-tab-layout.d.ts.map +1 -0
- package/dist/pptx/render/text-tab-run-build.d.ts +85 -0
- package/dist/pptx/render/text-tab-run-build.d.ts.map +1 -0
- package/dist/pptx/render/text-theme.d.ts +3 -0
- package/dist/pptx/render/text-theme.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-envelope-block.d.ts +47 -0
- package/dist/pptx/render/text-warp-envelope-block.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-envelope-curves.d.ts +19 -0
- package/dist/pptx/render/text-warp-envelope-curves.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-envelope-layout.d.ts +17 -0
- package/dist/pptx/render/text-warp-envelope-layout.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-envelope-map.d.ts +21 -0
- package/dist/pptx/render/text-warp-envelope-map.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-envelope-measure.d.ts +33 -0
- package/dist/pptx/render/text-warp-envelope-measure.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-envelope-types.d.ts +85 -0
- package/dist/pptx/render/text-warp-envelope-types.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-glyph-outline.d.ts +71 -0
- package/dist/pptx/render/text-warp-glyph-outline.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-glyph-slicing.d.ts +47 -0
- package/dist/pptx/render/text-warp-glyph-slicing.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-glyph-trace-contour.d.ts +18 -0
- package/dist/pptx/render/text-warp-glyph-trace-contour.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-glyph-trace.d.ts +27 -0
- package/dist/pptx/render/text-warp-glyph-trace.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-opentype-parser.d.ts +12 -0
- package/dist/pptx/render/text-warp-opentype-parser.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-outline-font-cache.d.ts +86 -0
- package/dist/pptx/render/text-warp-outline-font-cache.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-outline-webfont-fetch.d.ts +17 -0
- package/dist/pptx/render/text-warp-outline-webfont-fetch.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-preset-definitions.d.ts +79 -0
- package/dist/pptx/render/text-warp-preset-definitions.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-preset-sampler.d.ts +15 -0
- package/dist/pptx/render/text-warp-preset-sampler.d.ts.map +1 -0
- package/dist/pptx/render/text-warp-presets.d.ts +18 -0
- package/dist/pptx/render/text-warp-presets.d.ts.map +1 -0
- package/dist/pptx/render/text-warp.d.ts +173 -0
- package/dist/pptx/render/text-warp.d.ts.map +1 -0
- package/dist/pptx/render/text-wrap-estimate.d.ts +49 -0
- package/dist/pptx/render/text-wrap-estimate.d.ts.map +1 -0
- package/dist/pptx/render/theme-color-field-commit.d.ts +36 -0
- package/dist/pptx/render/theme-color-field-commit.d.ts.map +1 -0
- package/dist/pptx/render/theme-color-picker-state.d.ts +4 -0
- package/dist/pptx/render/theme-color-picker-state.d.ts.map +1 -0
- package/dist/pptx/render/theme-color-swatches.d.ts +4 -0
- package/dist/pptx/render/theme-color-swatches.d.ts.map +1 -0
- package/dist/pptx/render/theme-editor-model.d.ts +3 -0
- package/dist/pptx/render/theme-editor-model.d.ts.map +1 -0
- package/dist/pptx/render/theme-editor-presets.d.ts +3 -0
- package/dist/pptx/render/theme-editor-presets.d.ts.map +1 -0
- package/dist/pptx/render/title-bar-state.d.ts +133 -0
- package/dist/pptx/render/title-bar-state.d.ts.map +1 -0
- package/dist/pptx/render/title-bar.d.ts +67 -0
- package/dist/pptx/render/title-bar.d.ts.map +1 -0
- package/dist/pptx/render/toolbar-actions.d.ts +49 -0
- package/dist/pptx/render/toolbar-actions.d.ts.map +1 -0
- package/dist/pptx/render/touch-gestures.d.ts +74 -0
- package/dist/pptx/render/touch-gestures.d.ts.map +1 -0
- package/dist/pptx/render/transition-preview.d.ts +50 -0
- package/dist/pptx/render/transition-preview.d.ts.map +1 -0
- package/dist/pptx/render/unicode-script-detection.d.ts +3 -0
- package/dist/pptx/render/unicode-script-detection.d.ts.map +1 -0
- package/dist/pptx/render/update-text-segment-style.d.ts +6 -0
- package/dist/pptx/render/update-text-segment-style.d.ts.map +1 -0
- package/dist/pptx/render/used-fonts.d.ts +6 -0
- package/dist/pptx/render/used-fonts.d.ts.map +1 -0
- package/dist/pptx/render/vector-subpath-paint.d.ts +56 -0
- package/dist/pptx/render/vector-subpath-paint.d.ts.map +1 -0
- package/dist/pptx/render/verified-text-rect-presets.d.ts +84 -0
- package/dist/pptx/render/verified-text-rect-presets.d.ts.map +1 -0
- package/dist/pptx/render/viewer-preferences.d.ts +100 -0
- package/dist/pptx/render/viewer-preferences.d.ts.map +1 -0
- package/dist/pptx/render/viewer-prefs-storage.d.ts +30 -0
- package/dist/pptx/render/viewer-prefs-storage.d.ts.map +1 -0
- package/dist/pptx/render/viewer-store.d.ts +71 -0
- package/dist/pptx/render/viewer-store.d.ts.map +1 -0
- package/dist/pptx/render/viewer-zoom-store.d.ts +43 -0
- package/dist/pptx/render/viewer-zoom-store.d.ts.map +1 -0
- package/dist/pptx/render/viewport-fit.d.ts +40 -0
- package/dist/pptx/render/viewport-fit.d.ts.map +1 -0
- package/dist/pptx/render/virtualized-list.d.ts +16 -0
- package/dist/pptx/render/virtualized-list.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-bevel-light.d.ts +92 -0
- package/dist/pptx/render/visual-3d-bevel-light.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-bevel-lighting-layer.d.ts +51 -0
- package/dist/pptx/render/visual-3d-bevel-lighting-layer.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-bevel-lighting-material.d.ts +92 -0
- package/dist/pptx/render/visual-3d-bevel-lighting-material.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-bevel-lighting-profile.d.ts +141 -0
- package/dist/pptx/render/visual-3d-bevel-lighting-profile.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-bevel-lighting-routing.d.ts +15 -0
- package/dist/pptx/render/visual-3d-bevel-lighting-routing.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-bevel-lighting-tables.d.ts +140 -0
- package/dist/pptx/render/visual-3d-bevel-lighting-tables.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-bevel-lighting.d.ts +207 -0
- package/dist/pptx/render/visual-3d-bevel-lighting.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-camera-fov.d.ts +44 -0
- package/dist/pptx/render/visual-3d-camera-fov.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-camera-homography-math.d.ts +36 -0
- package/dist/pptx/render/visual-3d-camera-homography-math.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-camera-homography.d.ts +111 -0
- package/dist/pptx/render/visual-3d-camera-homography.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-camera-override.d.ts +29 -0
- package/dist/pptx/render/visual-3d-camera-override.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-camera-parametric.d.ts +158 -0
- package/dist/pptx/render/visual-3d-camera-parametric.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-camera-presets.d.ts +39 -0
- package/dist/pptx/render/visual-3d-camera-presets.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-camera.d.ts +154 -0
- package/dist/pptx/render/visual-3d-camera.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-color.d.ts +12 -0
- package/dist/pptx/render/visual-3d-color.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-constants.d.ts +17 -0
- package/dist/pptx/render/visual-3d-constants.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-extrusion-panels.d.ts +41 -0
- package/dist/pptx/render/visual-3d-extrusion-panels.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-extrusion.d.ts +66 -0
- package/dist/pptx/render/visual-3d-extrusion.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-materials.d.ts +55 -0
- package/dist/pptx/render/visual-3d-materials.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-panel-depth-skew-map.d.ts +107 -0
- package/dist/pptx/render/visual-3d-panel-depth-skew-map.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-panel-quad.d.ts +77 -0
- package/dist/pptx/render/visual-3d-panel-quad.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-panel-sides-perspective.d.ts +72 -0
- package/dist/pptx/render/visual-3d-panel-sides-perspective.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d-panel-sides.d.ts +109 -0
- package/dist/pptx/render/visual-3d-panel-sides.d.ts.map +1 -0
- package/dist/pptx/render/visual-3d.d.ts +263 -0
- package/dist/pptx/render/visual-3d.d.ts.map +1 -0
- package/dist/pptx/render/visual-effects.d.ts +341 -0
- package/dist/pptx/render/visual-effects.d.ts.map +1 -0
- package/dist/pptx/render/wheel-intent.d.ts +90 -0
- package/dist/pptx/render/wheel-intent.d.ts.map +1 -0
- package/dist/pptx/render/zoom-return-navigation.d.ts +107 -0
- package/dist/pptx/render/zoom-return-navigation.d.ts.map +1 -0
- package/dist/pptx/render/zoom-step.d.ts +37 -0
- package/dist/pptx/render/zoom-step.d.ts.map +1 -0
- package/dist/pptx/smartart-3d/connector-object.d.ts +21 -0
- package/dist/pptx/smartart-3d/connector-object.d.ts.map +1 -0
- package/dist/pptx/smartart-3d/flat-mesh-object.d.ts +25 -0
- package/dist/pptx/smartart-3d/flat-mesh-object.d.ts.map +1 -0
- package/dist/pptx/smartart-3d/lit-mesh-object.d.ts +12 -0
- package/dist/pptx/smartart-3d/lit-mesh-object.d.ts.map +1 -0
- package/dist/pptx/smartart-3d/lit-text-object.d.ts +18 -0
- package/dist/pptx/smartart-3d/lit-text-object.d.ts.map +1 -0
- package/dist/pptx/smartart-3d/text-block-layout.d.ts +30 -0
- package/dist/pptx/smartart-3d/text-block-layout.d.ts.map +1 -0
- package/dist/pptx/smartart-3d/text-block-texture.d.ts +25 -0
- package/dist/pptx/smartart-3d/text-block-texture.d.ts.map +1 -0
- package/dist/pptx/smartart-3d/view-camera.d.ts +23 -0
- package/dist/pptx/smartart-3d/view-camera.d.ts.map +1 -0
- package/dist/pptx/smartart-3d/view-overflow.d.ts +19 -0
- package/dist/pptx/smartart-3d/view-overflow.d.ts.map +1 -0
- package/dist/pptx/smartart-3d/view-scene.d.ts +27 -0
- package/dist/pptx/smartart-3d/view-scene.d.ts.map +1 -0
- package/dist/pptx/theme/css-vars.d.ts +16 -0
- package/dist/pptx/theme/css-vars.d.ts.map +1 -0
- package/dist/pptx/theme/defaults.d.ts +20 -0
- package/dist/pptx/theme/defaults.d.ts.map +1 -0
- package/dist/pptx/theme/index.cjs +66 -0
- package/dist/pptx/theme/index.d.ts +8 -0
- package/dist/pptx/theme/index.d.ts.map +1 -0
- package/dist/pptx/theme/index.mjs +1 -0
- package/dist/pptx/theme/presets.d.ts +21 -0
- package/dist/pptx/theme/presets.d.ts.map +1 -0
- package/dist/pptx/theme/theme-catalog.d.ts +20 -0
- package/dist/pptx/theme/theme-catalog.d.ts.map +1 -0
- package/dist/pptx/theme/theme-gallery-presets.d.ts +30 -0
- package/dist/pptx/theme/theme-gallery-presets.d.ts.map +1 -0
- package/dist/pptx/theme/types.d.ts +79 -0
- package/dist/pptx/theme/types.d.ts.map +1 -0
- package/dist/pptx/three-view/chart-events.d.ts +61 -0
- package/dist/pptx/three-view/chart-events.d.ts.map +1 -0
- package/dist/pptx/three-view/element.d.ts +53 -0
- package/dist/pptx/three-view/element.d.ts.map +1 -0
- package/dist/pptx/three-view/export-snapshot.d.ts +23 -0
- package/dist/pptx/three-view/export-snapshot.d.ts.map +1 -0
- package/dist/pptx/three-view/index.d.ts +24 -0
- package/dist/pptx/three-view/index.d.ts.map +1 -0
- package/dist/pptx/three-view/renderer-host.d.ts +60 -0
- package/dist/pptx/three-view/renderer-host.d.ts.map +1 -0
- package/dist/pptx/three-view/scene-registry.d.ts +18 -0
- package/dist/pptx/three-view/scene-registry.d.ts.map +1 -0
- package/dist/pptx/three-view/types.d.ts +119 -0
- package/dist/pptx/three-view/types.d.ts.map +1 -0
- package/dist/pptx/three-view/view-controller.d.ts +58 -0
- package/dist/pptx/three-view/view-controller.d.ts.map +1 -0
- package/dist/pptx/three-view/view-overflow.d.ts +41 -0
- package/dist/pptx/three-view/view-overflow.d.ts.map +1 -0
- package/dist/pptx/three-view/view-size.d.ts +37 -0
- package/dist/pptx/three-view/view-size.d.ts.map +1 -0
- package/dist/pptx/three-view/view-spec.d.ts +45 -0
- package/dist/pptx/three-view/view-spec.d.ts.map +1 -0
- package/dist/pptx/types.d.ts +238 -0
- package/dist/pptx/types.d.ts.map +1 -0
- package/dist/pptx/view-scene-4ZFUCP6S.cjs +906 -0
- package/dist/pptx/view-scene-GHBN7QMR.mjs +904 -0
- package/dist/pptx/web-components/chrome-icons.d.ts +17 -0
- package/dist/pptx/web-components/chrome-icons.d.ts.map +1 -0
- package/dist/pptx/web-components/context-menu-items.d.ts +27 -0
- package/dist/pptx/web-components/context-menu-items.d.ts.map +1 -0
- package/dist/pptx/web-components/context-menu-model.d.ts +61 -0
- package/dist/pptx/web-components/context-menu-model.d.ts.map +1 -0
- package/dist/pptx/web-components/control-styles.d.ts +2 -0
- package/dist/pptx/web-components/control-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/control-tokens.d.ts +59 -0
- package/dist/pptx/web-components/control-tokens.d.ts.map +1 -0
- package/dist/pptx/web-components/host-styles.d.ts +2 -0
- package/dist/pptx/web-components/host-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/index.d.ts +38 -0
- package/dist/pptx/web-components/index.d.ts.map +1 -0
- package/dist/pptx/web-components/lucide-icon.d.ts +9 -0
- package/dist/pptx/web-components/lucide-icon.d.ts.map +1 -0
- package/dist/pptx/web-components/lucide-icons.d.ts +308 -0
- package/dist/pptx/web-components/lucide-icons.d.ts.map +1 -0
- package/dist/pptx/web-components/mobile-bar-styles.d.ts +3 -0
- package/dist/pptx/web-components/mobile-bar-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/mobile-bar.d.ts +18 -0
- package/dist/pptx/web-components/mobile-bar.d.ts.map +1 -0
- package/dist/pptx/web-components/mobile-chrome-icons.d.ts +18 -0
- package/dist/pptx/web-components/mobile-chrome-icons.d.ts.map +1 -0
- package/dist/pptx/web-components/mobile-toolbar.d.ts +20 -0
- package/dist/pptx/web-components/mobile-toolbar.d.ts.map +1 -0
- package/dist/pptx/web-components/notes-toolbar-icons.d.ts +15 -0
- package/dist/pptx/web-components/notes-toolbar-icons.d.ts.map +1 -0
- package/dist/pptx/web-components/notes-toolbar-link.d.ts +13 -0
- package/dist/pptx/web-components/notes-toolbar-link.d.ts.map +1 -0
- package/dist/pptx/web-components/notes-toolbar-styles.d.ts +2 -0
- package/dist/pptx/web-components/notes-toolbar-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/notes-toolbar-view.d.ts +10 -0
- package/dist/pptx/web-components/notes-toolbar-view.d.ts.map +1 -0
- package/dist/pptx/web-components/notes-toolbar.d.ts +18 -0
- package/dist/pptx/web-components/notes-toolbar.d.ts.map +1 -0
- package/dist/pptx/web-components/office-alias-types.d.ts +46 -0
- package/dist/pptx/web-components/office-alias-types.d.ts.map +1 -0
- package/dist/pptx/web-components/office-aliases.d.ts +30 -0
- package/dist/pptx/web-components/office-aliases.d.ts.map +1 -0
- package/dist/pptx/web-components/office-token-bridge.d.ts +20 -0
- package/dist/pptx/web-components/office-token-bridge.d.ts.map +1 -0
- package/dist/pptx/web-components/present-toolbar-styles.d.ts +3 -0
- package/dist/pptx/web-components/present-toolbar-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/present-toolbar-view.d.ts +11 -0
- package/dist/pptx/web-components/present-toolbar-view.d.ts.map +1 -0
- package/dist/pptx/web-components/present-toolbar.d.ts +26 -0
- package/dist/pptx/web-components/present-toolbar.d.ts.map +1 -0
- package/dist/pptx/web-components/presenter-console-styles.d.ts +3 -0
- package/dist/pptx/web-components/presenter-console-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/presenter-console.d.ts +21 -0
- package/dist/pptx/web-components/presenter-console.d.ts.map +1 -0
- package/dist/pptx/web-components/registration-contract.d.ts +5 -0
- package/dist/pptx/web-components/registration-contract.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-animations-gallery-view.d.ts +25 -0
- package/dist/pptx/web-components/ribbon-animations-gallery-view.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-animations-icons.d.ts +3 -0
- package/dist/pptx/web-components/ribbon-animations-icons.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-animations-styles.d.ts +2 -0
- package/dist/pptx/web-components/ribbon-animations-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-animations-timing-view.d.ts +11 -0
- package/dist/pptx/web-components/ribbon-animations-timing-view.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-animations-view.d.ts +7 -0
- package/dist/pptx/web-components/ribbon-animations-view.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-animations.d.ts +13 -0
- package/dist/pptx/web-components/ribbon-animations.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-draw-styles.d.ts +2 -0
- package/dist/pptx/web-components/ribbon-draw-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-draw-view.d.ts +10 -0
- package/dist/pptx/web-components/ribbon-draw-view.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-draw.d.ts +13 -0
- package/dist/pptx/web-components/ribbon-draw.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-gallery-styles.d.ts +2 -0
- package/dist/pptx/web-components/ribbon-gallery-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-gallery.d.ts +31 -0
- package/dist/pptx/web-components/ribbon-gallery.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-home-button.d.ts +10 -0
- package/dist/pptx/web-components/ribbon-home-button.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-home-colour.d.ts +6 -0
- package/dist/pptx/web-components/ribbon-home-colour.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-home-controls.d.ts +23 -0
- package/dist/pptx/web-components/ribbon-home-controls.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-home-gallery.d.ts +7 -0
- package/dist/pptx/web-components/ribbon-home-gallery.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-home-layout.d.ts +10 -0
- package/dist/pptx/web-components/ribbon-home-layout.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-home-menu.d.ts +7 -0
- package/dist/pptx/web-components/ribbon-home-menu.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-home-popup.d.ts +19 -0
- package/dist/pptx/web-components/ribbon-home-popup.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-home-signature.d.ts +8 -0
- package/dist/pptx/web-components/ribbon-home-signature.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-home-styles.d.ts +3 -0
- package/dist/pptx/web-components/ribbon-home-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-home-view.d.ts +10 -0
- package/dist/pptx/web-components/ribbon-home-view.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-home.d.ts +48 -0
- package/dist/pptx/web-components/ribbon-home.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-icons.d.ts +3 -0
- package/dist/pptx/web-components/ribbon-icons.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-insert-dom.d.ts +29 -0
- package/dist/pptx/web-components/ribbon-insert-dom.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-insert-icons.d.ts +7 -0
- package/dist/pptx/web-components/ribbon-insert-icons.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-insert-styles.d.ts +2 -0
- package/dist/pptx/web-components/ribbon-insert-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-insert-view.d.ts +8 -0
- package/dist/pptx/web-components/ribbon-insert-view.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-insert.d.ts +15 -0
- package/dist/pptx/web-components/ribbon-insert.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-launchers.d.ts +20 -0
- package/dist/pptx/web-components/ribbon-launchers.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-overflow.d.ts +20 -0
- package/dist/pptx/web-components/ribbon-overflow.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-scoped-styles.d.ts +3 -0
- package/dist/pptx/web-components/ribbon-scoped-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-section.d.ts +16 -0
- package/dist/pptx/web-components/ribbon-section.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-transitions-icons.d.ts +8 -0
- package/dist/pptx/web-components/ribbon-transitions-icons.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-transitions-styles.d.ts +2 -0
- package/dist/pptx/web-components/ribbon-transitions-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-transitions-view.d.ts +9 -0
- package/dist/pptx/web-components/ribbon-transitions-view.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-transitions.d.ts +13 -0
- package/dist/pptx/web-components/ribbon-transitions.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-view-icons.d.ts +3 -0
- package/dist/pptx/web-components/ribbon-view-icons.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-view-styles.d.ts +2 -0
- package/dist/pptx/web-components/ribbon-view-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-view-view.d.ts +7 -0
- package/dist/pptx/web-components/ribbon-view-view.d.ts.map +1 -0
- package/dist/pptx/web-components/ribbon-view.d.ts +13 -0
- package/dist/pptx/web-components/ribbon-view.d.ts.map +1 -0
- package/dist/pptx/web-components/select-value.d.ts +16 -0
- package/dist/pptx/web-components/select-value.d.ts.map +1 -0
- package/dist/pptx/web-components/slide-show-options-styles.d.ts +2 -0
- package/dist/pptx/web-components/slide-show-options-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/slide-show-options.d.ts +11 -0
- package/dist/pptx/web-components/slide-show-options.d.ts.map +1 -0
- package/dist/pptx/web-components/status-bar-icons.d.ts +11 -0
- package/dist/pptx/web-components/status-bar-icons.d.ts.map +1 -0
- package/dist/pptx/web-components/status-bar-styles.d.ts +3 -0
- package/dist/pptx/web-components/status-bar-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/status-bar.d.ts +21 -0
- package/dist/pptx/web-components/status-bar.d.ts.map +1 -0
- package/dist/pptx/web-components/subtitle-settings-styles.d.ts +2 -0
- package/dist/pptx/web-components/subtitle-settings-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/subtitle-settings.d.ts +15 -0
- package/dist/pptx/web-components/subtitle-settings.d.ts.map +1 -0
- package/dist/pptx/web-components/theme-editor-dock.d.ts +3 -0
- package/dist/pptx/web-components/theme-editor-dock.d.ts.map +1 -0
- package/dist/pptx/web-components/theme-editor-styles.d.ts +2 -0
- package/dist/pptx/web-components/theme-editor-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/theme-editor-view.d.ts +14 -0
- package/dist/pptx/web-components/theme-editor-view.d.ts.map +1 -0
- package/dist/pptx/web-components/theme-editor.d.ts +16 -0
- package/dist/pptx/web-components/theme-editor.d.ts.map +1 -0
- package/dist/pptx/web-components/title-bar-icons.d.ts +3 -0
- package/dist/pptx/web-components/title-bar-icons.d.ts.map +1 -0
- package/dist/pptx/web-components/title-bar-styles.d.ts +7 -0
- package/dist/pptx/web-components/title-bar-styles.d.ts.map +1 -0
- package/dist/pptx/web-components/title-bar.d.ts +24 -0
- package/dist/pptx/web-components/title-bar.d.ts.map +1 -0
- package/dist/presence/presence.d.ts +1 -0
- package/dist/presence/presence.d.ts.map +1 -0
- package/dist/presence.d.ts +1 -0
- package/dist/presence.d.ts.map +1 -0
- package/dist/presence.js +3 -3
- package/dist/presentation-preview-HF3GZ2VD.js +1 -0
- package/dist/registry.d.ts +1 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/ribbon/button.d.ts +1 -0
- package/dist/ribbon/button.d.ts.map +1 -0
- package/dist/ribbon/color-preview.d.ts +6 -0
- package/dist/ribbon/color-preview.d.ts.map +1 -0
- package/dist/ribbon/gallery-styles.d.ts +1 -0
- package/dist/ribbon/gallery-styles.d.ts.map +1 -0
- package/dist/ribbon/gallery.d.ts +5 -2
- package/dist/ribbon/gallery.d.ts.map +1 -0
- package/dist/ribbon/keytip-run.d.ts +1 -0
- package/dist/ribbon/keytip-run.d.ts.map +1 -0
- package/dist/ribbon/overflow.d.ts +1 -0
- package/dist/ribbon/overflow.d.ts.map +1 -0
- package/dist/ribbon/ribbon-group.d.ts +1 -0
- package/dist/ribbon/ribbon-group.d.ts.map +1 -0
- package/dist/ribbon/ribbon-section.d.ts +1 -0
- package/dist/ribbon/ribbon-section.d.ts.map +1 -0
- package/dist/ribbon/ribbon-stack.d.ts +1 -0
- package/dist/ribbon/ribbon-stack.d.ts.map +1 -0
- package/dist/ribbon/ribbon-tabs.d.ts +1 -0
- package/dist/ribbon/ribbon-tabs.d.ts.map +1 -0
- package/dist/ribbon/ribbon-toggle.d.ts +1 -0
- package/dist/ribbon/ribbon-toggle.d.ts.map +1 -0
- package/dist/ribbon/ribbon-toolbar.d.ts +1 -0
- package/dist/ribbon/ribbon-toolbar.d.ts.map +1 -0
- package/dist/ribbon/safe-svg.d.ts +1 -0
- package/dist/ribbon/safe-svg.d.ts.map +1 -0
- package/dist/ribbon/svg-preview.d.ts +7 -0
- package/dist/ribbon/svg-preview.d.ts.map +1 -0
- package/dist/smartart/smartart-svg.d.ts +8 -2
- package/dist/smartart/smartart.d.ts +9 -4
- package/dist/smartart.js +3 -3
- package/dist/styles.d.ts +1 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/teams/app/add-tab-dialog.d.ts +119 -0
- package/dist/teams/app/anchored-popover.d.ts +2 -0
- package/dist/teams/app/bind.d.ts +2 -0
- package/dist/teams/app/channel-tab.d.ts +45 -0
- package/dist/teams/app/content-preview.d.ts +84 -0
- package/dist/teams/app/controller.d.ts +2 -0
- package/dist/teams/app/create-channel-dialog.d.ts +35 -0
- package/dist/teams/app/draft-list.d.ts +2 -0
- package/dist/teams/app/file-actions.d.ts +44 -0
- package/dist/teams/app/file-popout.d.ts +4 -0
- package/dist/teams/app/files-panel.d.ts +72 -0
- package/dist/teams/app/followed-threads.d.ts +2 -0
- package/dist/teams/app/index.d.ts +4 -0
- package/dist/teams/app/markdown-preview.d.ts +2 -0
- package/dist/teams/app/message-transfers.d.ts +2 -0
- package/dist/teams/app/navigation-drawer.d.ts +26 -0
- package/dist/teams/app/presentation-preview.d.ts +49 -0
- package/dist/teams/app/profile-menu.d.ts +20 -0
- package/dist/teams/app/settings-connection.d.ts +4 -0
- package/dist/teams/app/settings-density.d.ts +3 -0
- package/dist/teams/app/settings-search.d.ts +9 -0
- package/dist/teams/app/settings-theme.d.ts +3 -0
- package/dist/teams/app/teams-app.d.ts +72 -5
- package/dist/teams/app/teams-settings.d.ts +40 -7
- package/dist/teams/app/thread-pane.d.ts +4 -0
- package/dist/teams/app/workbook-actions.d.ts +10 -0
- package/dist/teams/app-rail.d.ts +9 -2
- package/dist/teams/avatar.d.ts +1 -1
- package/dist/teams/call-controls.d.ts +1 -1
- package/dist/teams/call-grid.d.ts +1 -1
- package/dist/teams/channel-list.d.ts +1 -1
- package/dist/teams/chat-composer.d.ts +10 -3
- package/dist/teams/chat-list.d.ts +8 -2
- package/dist/teams/prejoin.d.ts +1 -1
- package/dist/teams.js +7 -6
- package/dist/theme.js +2 -2
- package/dist/tokens.d.ts +3 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/visio/arrowheads.d.ts +2 -2
- package/dist/visio/backstage.d.ts +1 -1
- package/dist/visio/render-fill.d.ts +3 -2
- package/dist/visio/status-bar.d.ts +1 -1
- package/dist/visio/viewer-options.d.ts +1 -1
- package/dist/visio/viewer-page-delete.d.ts +19 -0
- package/dist/visio/viewer-page-order.d.ts +19 -0
- package/dist/visio/viewer-page-rename.d.ts +19 -0
- package/dist/visio/viewer-share.d.ts +1 -1
- package/dist/visio.js +517 -32
- package/dist/xlsx/backstage/index.d.ts +3 -3
- package/dist/xlsx/backstage/pages-file.d.ts +1 -1
- package/dist/xlsx/backstage/pages-info.d.ts +1 -1
- package/dist/xlsx/backstage/pages-options.d.ts +1 -1
- package/dist/xlsx/backstage/parts.d.ts +2 -2
- package/dist/xlsx/backstage/properties-custom.d.ts +1 -1
- package/dist/xlsx/chart-series-fill.d.ts +7 -0
- package/dist/xlsx/chart-series-pane.d.ts +7 -0
- package/dist/xlsx/chart-series-transparency.d.ts +7 -0
- package/dist/xlsx/clipboard.d.ts +3 -3
- package/dist/xlsx/commands/chart-colors.d.ts +19 -0
- package/dist/xlsx/component.d.ts +3 -3
- package/dist/xlsx/dialogs/paste-special.d.ts +2 -2
- package/dist/xlsx/editor-attributes.d.ts +1 -1
- package/dist/xlsx/editor-core.d.ts +2 -2
- package/dist/xlsx/editor-files.d.ts +4 -4
- package/dist/xlsx/editor-shell.d.ts +6 -6
- package/dist/xlsx/element-api.d.ts +4 -2
- package/dist/xlsx/file-commands.d.ts +2 -2
- package/dist/xlsx/grid/smartart.d.ts +1 -1
- package/dist/xlsx/grid/styles.d.ts +1 -1
- package/dist/xlsx/index.d.ts +5 -5
- package/dist/xlsx/modules.d.ts +4 -4
- package/dist/xlsx/ribbon/controls-input.d.ts +1 -1
- package/dist/xlsx/ribbon/controls.d.ts +1 -1
- package/dist/xlsx/ribbon/keytips.d.ts +1 -1
- package/dist/xlsx/ribbon/shared-gallery.d.ts +6 -0
- package/dist/xlsx/shell-commands.d.ts +1 -1
- package/dist/xlsx/test-support/shell.d.ts +1 -1
- package/dist/xlsx/theme/index.d.ts +1 -1
- package/dist/xlsx.js +625 -241
- package/package.json +69 -8
- package/dist/chunk-NEDNYLXX.js +0 -1450
|
@@ -0,0 +1,4044 @@
|
|
|
1
|
+
import { THEME_CSS, installOfficeUiTheme } from './chunk-X7RINDJQ.js';
|
|
2
|
+
import { registerControls, defineSwitch } from './chunk-2QW4QE56.js';
|
|
3
|
+
import { registerIcon, getIcon } from './chunk-HZ422LTR.js';
|
|
4
|
+
import { initialsOf, definePresence } from './chunk-OXKWNNNJ.js';
|
|
5
|
+
import { definer, OfficeElement, controlStyles } from './chunk-ZV2Z4IWH.js';
|
|
6
|
+
import { html, nothing, LitElement, unsafeCSS, svg } from 'lit';
|
|
7
|
+
import { repeat } from 'lit/directives/repeat.js';
|
|
8
|
+
import { live } from 'lit/directives/live.js';
|
|
9
|
+
import { MAX_ATTACHMENTS, detectContentKind, contentUrl, readContent, filterFiles, parseServerConfig, sanitizeChannelName, MAX_CHANNEL_NAME_CHARS, MAX_CHANNEL_TOPIC_CHARS, markdownBlocks, createTeamsClient, sanitizeAttachment, markdownInline } from 'ooxml-core/teams';
|
|
10
|
+
import { keyed } from 'lit/directives/keyed.js';
|
|
11
|
+
|
|
12
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/reset.css?raw
|
|
13
|
+
var reset_default = ":host {\n box-sizing: border-box;\n font: var(--office-font-size) var(--office-font);\n color: var(--office-foreground);\n}\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\nbutton {\n font: inherit;\n color: inherit;\n cursor: pointer;\n}\nbutton:focus-visible,\ntextarea:focus-visible,\ninput:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\nsvg.icon {\n width: 1.25em;\n height: 1.25em;\n flex: none;\n fill: none;\n stroke: currentColor;\n stroke-width: var(--office-icon-stroke);\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n";
|
|
14
|
+
|
|
15
|
+
// src/teams/base.ts
|
|
16
|
+
var withStyles = (css) => {
|
|
17
|
+
const [common, own] = controlStyles(css);
|
|
18
|
+
return [common, unsafeCSS(reset_default), own];
|
|
19
|
+
};
|
|
20
|
+
var TeamsElement = class extends OfficeElement {
|
|
21
|
+
static syncUpdates = false;
|
|
22
|
+
};
|
|
23
|
+
function colorFor(id) {
|
|
24
|
+
let hue = 0;
|
|
25
|
+
for (const ch of id) hue = (hue * 31 + ch.charCodeAt(0)) % 360;
|
|
26
|
+
return `hsl(${hue} 45% 42%)`;
|
|
27
|
+
}
|
|
28
|
+
var DAY_MS = 864e5;
|
|
29
|
+
function formatTime(ts) {
|
|
30
|
+
return new Date(ts).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
|
|
31
|
+
}
|
|
32
|
+
function dayLabel(ts, now = Date.now()) {
|
|
33
|
+
const start = (t) => new Date(t).setHours(0, 0, 0, 0);
|
|
34
|
+
const diff = Math.round((start(now) - start(ts)) / DAY_MS);
|
|
35
|
+
if (diff === 0) return "Today";
|
|
36
|
+
if (diff === 1) return "Yesterday";
|
|
37
|
+
return new Date(ts).toLocaleDateString([], { weekday: "long", month: "long", day: "numeric" });
|
|
38
|
+
}
|
|
39
|
+
function formatSize(bytes) {
|
|
40
|
+
if (bytes === void 0) return "";
|
|
41
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
42
|
+
if (bytes < 1048576) return `${Math.round(bytes / 1024)} KB`;
|
|
43
|
+
return `${(bytes / 1048576).toFixed(1)} MB`;
|
|
44
|
+
}
|
|
45
|
+
var GLYPHS = {
|
|
46
|
+
navigation: "M3 5h14M3 10h14M3 15h14",
|
|
47
|
+
send: "M3 10 17 3l-4 14-3-6Zm7 1 7-8",
|
|
48
|
+
paperclip: "M15 9.5l-5.5 5.5a3.5 3.5 0 0 1-5-5l6-6a2.3 2.3 0 0 1 3.3 3.3l-6 6a1.2 1.2 0 0 1-1.7-1.7L11 6",
|
|
49
|
+
smile: "M3 10a7 7 0 1 0 14 0 7 7 0 1 0-14 0M7.5 8v.5M12.5 8v.5M7 12c1.5 2 4.5 2 6 0",
|
|
50
|
+
reply: "M8 4 3 9l5 5M3 9h9a5 5 0 0 1 5 5v2",
|
|
51
|
+
hash: "M7.5 3 6 17M14 3l-1.5 14M4 7.5h13M3 12.5h13",
|
|
52
|
+
users: "M7 9a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM2.5 16c0-2.5 2-4 4.5-4s4.5 1.5 4.5 4M13 8.5a2 2 0 1 0 0-4M14 12c2 .3 3.5 1.6 3.5 4",
|
|
53
|
+
phone: "M5 3h3l1.5 4-2 1.2a8 8 0 0 0 4.3 4.3L13 10.5l4 1.5v3a2 2 0 0 1-2 2A12 12 0 0 1 3 5a2 2 0 0 1 2-2Z",
|
|
54
|
+
folder: "M3 5.5h5l1.5 2H17v8H3Z",
|
|
55
|
+
calendar: "M3.5 5h13v11.5h-13ZM3.5 8.5h13M7 3v3M13 3v3",
|
|
56
|
+
more: "M5 10h.01M10 10h.01M15 10h.01",
|
|
57
|
+
mic: "M10 3a2.5 2.5 0 0 0-2.5 2.5v4a2.5 2.5 0 0 0 5 0v-4A2.5 2.5 0 0 0 10 3ZM5 9.5a5 5 0 0 0 10 0M10 14.5V17",
|
|
58
|
+
micOff: "M10 3a2.5 2.5 0 0 0-2.5 2.5v4a2.5 2.5 0 0 0 5 0v-4A2.5 2.5 0 0 0 10 3ZM5 9.5a5 5 0 0 0 10 0M10 14.5V17M3 3l14 14",
|
|
59
|
+
video: "M3 6h9v8H3ZM12 9l5-3v8l-5-3",
|
|
60
|
+
videoOff: "M3 6h9v8H3ZM12 9l5-3v8l-5-3M3 3l14 14",
|
|
61
|
+
screenShare: "M3 4h14v9H3ZM7 17h6M10 13v4M10 10V6M8 8l2-2 2 2",
|
|
62
|
+
hand: "M7 10V4.5a1 1 0 0 1 2 0V9M9 9V3.5a1 1 0 0 1 2 0V9M11 9V4.5a1 1 0 0 1 2 0V10M13 8.5a1 1 0 0 1 2 0V12a5 5 0 0 1-5 5h-.5A4.5 4.5 0 0 1 5 13.5L4 10.5a1 1 0 0 1 2-.5l1 2",
|
|
63
|
+
phoneOff: "M3 11c4-3 10-3 14 0l-1.5 2.5-3-1V10a9 9 0 0 0-5 0v2.5l-3 1Z",
|
|
64
|
+
chat: "M3 4h14v9H8l-5 4z"
|
|
65
|
+
};
|
|
66
|
+
for (const [name, d] of Object.entries(GLYPHS)) registerIcon(name, d);
|
|
67
|
+
function icon(name) {
|
|
68
|
+
const found = getIcon(name);
|
|
69
|
+
if (!found) return "";
|
|
70
|
+
return html`<svg class="icon" viewBox=${found.viewBox ?? "0 0 20 20"} aria-hidden="true">
|
|
71
|
+
${svg`<path d=${found.d}></path>`}
|
|
72
|
+
</svg>`;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app-rail.css?raw
|
|
76
|
+
var app_rail_default = ":host {\n display: block;\n width: 5em;\n background: var(--office-teams-rail);\n border-inline-end: var(--office-border-width) solid var(--office-teams-divider);\n}\nul {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--office-space-1);\n margin: 0;\n padding: var(--office-space-2) 0;\n list-style: none;\n}\nbutton {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--office-space-0);\n width: 4.4em;\n padding: var(--office-space-2) 0;\n border: 0;\n border-radius: var(--office-radius-md);\n background: transparent;\n color: var(--office-teams-text-subtle);\n}\nbutton:hover {\n background: var(--office-selected);\n}\nbutton[aria-current='page'] {\n color: var(--office-teams-brand);\n font-weight: var(--office-font-weight-bold);\n}\nbutton[aria-current='page']::before {\n content: '';\n position: absolute;\n inset-inline-start: calc(-1 * var(--office-space-1));\n inset-block: 20%;\n width: var(--office-space-1);\n border-radius: var(--office-radius-full);\n background: var(--office-teams-brand);\n}\n.glyph {\n position: relative;\n display: grid;\n place-items: center;\n font-size: 1.3em;\n}\n.label {\n font-size: var(--office-font-size-2xs);\n}\n:host([hide-labels]) .label {\n display: none;\n}\n.badge {\n position: absolute;\n inset-block-start: -0.4em;\n inset-inline-end: -0.9em;\n min-width: 1.5em;\n padding: 0 var(--office-space-1);\n border-radius: var(--office-radius-full);\n background: var(--office-teams-brand);\n color: var(--office-teams-brand-foreground);\n font-size: var(--office-font-size-3xs);\n line-height: 1.6;\n text-align: center;\n}\n";
|
|
77
|
+
|
|
78
|
+
// src/teams/app-rail.ts
|
|
79
|
+
var OfficeUiAppRail = class extends TeamsElement {
|
|
80
|
+
static styles = withStyles(app_rail_default);
|
|
81
|
+
static properties = {
|
|
82
|
+
items: { attribute: false },
|
|
83
|
+
selected: { type: String },
|
|
84
|
+
hideLabels: { type: Boolean, attribute: "hide-labels", reflect: true }
|
|
85
|
+
};
|
|
86
|
+
constructor() {
|
|
87
|
+
super();
|
|
88
|
+
this.items = [];
|
|
89
|
+
this.selected = "";
|
|
90
|
+
this.hideLabels = false;
|
|
91
|
+
}
|
|
92
|
+
connectedCallback() {
|
|
93
|
+
super.connectedCallback();
|
|
94
|
+
this.setAttribute("role", "navigation");
|
|
95
|
+
this.setAttribute("aria-label", "App bar");
|
|
96
|
+
}
|
|
97
|
+
render() {
|
|
98
|
+
return html`
|
|
99
|
+
<ul>
|
|
100
|
+
${this.items.map(
|
|
101
|
+
(item) => html`
|
|
102
|
+
<li>
|
|
103
|
+
<button
|
|
104
|
+
type="button"
|
|
105
|
+
aria-label=${item.label}
|
|
106
|
+
title=${item.label}
|
|
107
|
+
aria-current=${this.selected === item.id ? "page" : "false"}
|
|
108
|
+
@click=${() => this.fire("office-rail-select", { id: item.id })}
|
|
109
|
+
>
|
|
110
|
+
<span class="glyph">
|
|
111
|
+
${icon(item.icon)}
|
|
112
|
+
${item.badge ? html`<span class="badge">${item.badge > 99 ? "99+" : item.badge}</span>` : ""}
|
|
113
|
+
</span>
|
|
114
|
+
<span class="label">${item.label}</span>
|
|
115
|
+
</button>
|
|
116
|
+
</li>
|
|
117
|
+
`
|
|
118
|
+
)}
|
|
119
|
+
</ul>
|
|
120
|
+
`;
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
var defineAppRail = definer("office-ui-app-rail", () => OfficeUiAppRail);
|
|
124
|
+
|
|
125
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/avatar.css?raw
|
|
126
|
+
var avatar_default = ":host {\n --_size: 2.3em;\n position: relative;\n display: inline-block;\n width: var(--_size);\n height: var(--_size);\n flex: none;\n}\n:host([size='sm']) {\n --_size: 1.7em;\n}\n:host([size='lg']) {\n --_size: 3em;\n}\n:host([size='xl']) {\n --_size: 6em;\n}\n\n.face {\n display: grid;\n place-items: center;\n width: 100%;\n height: 100%;\n border-radius: var(--office-radius-full);\n color: var(--office-call-foreground);\n font-size: calc(var(--_size) * 0.38);\n font-weight: var(--office-font-weight-bold);\n user-select: none;\n}\n\n.presence {\n position: absolute;\n inset-inline-end: 0;\n inset-block-end: 0;\n width: 32%;\n height: 32%;\n min-width: 0.5em;\n min-height: 0.5em;\n border-radius: var(--office-radius-full);\n border: var(--office-border-width-thick) solid var(--office-background);\n background: var(--office-presence-offline);\n}\n.presence[data-presence='available'] {\n background: var(--office-presence-available);\n}\n.presence[data-presence='busy'] {\n background: var(--office-presence-busy);\n}\n.presence[data-presence='away'] {\n background: var(--office-presence-away);\n}\n";
|
|
127
|
+
|
|
128
|
+
// src/teams/avatar.ts
|
|
129
|
+
var PRESENCE_LABEL = {
|
|
130
|
+
available: "Available",
|
|
131
|
+
busy: "Busy",
|
|
132
|
+
away: "Away",
|
|
133
|
+
offline: "Offline"
|
|
134
|
+
};
|
|
135
|
+
var OfficeUiAvatar = class extends TeamsElement {
|
|
136
|
+
static styles = withStyles(avatar_default);
|
|
137
|
+
static properties = {
|
|
138
|
+
name: { type: String },
|
|
139
|
+
seed: { type: String },
|
|
140
|
+
color: { type: String },
|
|
141
|
+
size: { type: String, reflect: true },
|
|
142
|
+
presence: { type: String, reflect: true }
|
|
143
|
+
};
|
|
144
|
+
constructor() {
|
|
145
|
+
super();
|
|
146
|
+
this.name = "";
|
|
147
|
+
this.seed = "";
|
|
148
|
+
this.color = "";
|
|
149
|
+
this.size = "md";
|
|
150
|
+
this.presence = "";
|
|
151
|
+
}
|
|
152
|
+
willUpdate(changed) {
|
|
153
|
+
if (changed.has("name") || changed.has("presence")) {
|
|
154
|
+
this.setAttribute("role", "img");
|
|
155
|
+
const status = this.presence ? `, ${PRESENCE_LABEL[this.presence]}` : "";
|
|
156
|
+
this.setAttribute("aria-label", `${this.name}${status}`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
render() {
|
|
160
|
+
const background = this.color || colorFor(this.seed || this.name);
|
|
161
|
+
return html`
|
|
162
|
+
<span class="face" style="background:${background}">${initialsOf(this.name)}</span>
|
|
163
|
+
${this.presence ? html`<span
|
|
164
|
+
class="presence"
|
|
165
|
+
data-presence=${this.presence}
|
|
166
|
+
title=${PRESENCE_LABEL[this.presence]}
|
|
167
|
+
></span>` : ""}
|
|
168
|
+
`;
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
var defineAvatar = definer("office-ui-avatar", () => OfficeUiAvatar);
|
|
172
|
+
|
|
173
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/call-controls.css?raw
|
|
174
|
+
var call_controls_default = ":host {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--office-space-4);\n padding: var(--office-space-2) var(--office-space-4);\n background: var(--office-call-background);\n color: var(--office-call-foreground);\n}\n.info {\n display: flex;\n align-items: center;\n gap: var(--office-space-3);\n min-width: 0;\n color: var(--office-call-muted-foreground);\n}\n.heading {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\ntime {\n font-variant-numeric: tabular-nums;\n}\n.actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: var(--office-space-1-5);\n}\nbutton {\n display: inline-flex;\n align-items: center;\n gap: var(--office-space-2);\n height: 2.6em;\n padding: 0 var(--office-space-3);\n border: 0;\n border-radius: var(--office-radius-md);\n background: transparent;\n color: inherit;\n font-size: var(--office-font-size-sm);\n}\nbutton:hover:not(:disabled) {\n background: var(--office-call-control-hover);\n}\nbutton[aria-pressed='true'] {\n background: var(--office-call-control);\n color: var(--office-call-foreground);\n box-shadow: inset 0 calc(-1 * var(--office-border-width-thick)) 0 var(--office-teams-brand);\n}\nbutton[data-off='true'] {\n color: var(--office-call-danger);\n}\nbutton:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.leave {\n background: var(--office-call-danger);\n color: var(--office-call-foreground);\n}\n.leave:hover:not(:disabled) {\n background: var(--office-call-danger-hover);\n}\n@media (max-width: 767px) {\n .text {\n display: none;\n }\n .info {\n display: none;\n }\n}\n";
|
|
175
|
+
|
|
176
|
+
// src/teams/call-controls.ts
|
|
177
|
+
var formatElapsed = (ms) => {
|
|
178
|
+
const total = Math.max(0, Math.floor(ms / 1e3));
|
|
179
|
+
const pad = (n) => String(n).padStart(2, "0");
|
|
180
|
+
const h = Math.floor(total / 3600);
|
|
181
|
+
return `${h ? `${h}:` : ""}${pad(Math.floor(total % 3600 / 60))}:${pad(total % 60)}`;
|
|
182
|
+
};
|
|
183
|
+
var OfficeUiCallControls = class extends TeamsElement {
|
|
184
|
+
static styles = withStyles(call_controls_default);
|
|
185
|
+
static properties = {
|
|
186
|
+
heading: { type: String },
|
|
187
|
+
startedAt: { type: Number, attribute: "started-at" },
|
|
188
|
+
mic: { type: Boolean },
|
|
189
|
+
camera: { type: Boolean },
|
|
190
|
+
screen: { type: Boolean },
|
|
191
|
+
hand: { type: Boolean },
|
|
192
|
+
panel: { type: String },
|
|
193
|
+
shareUnavailable: { type: Boolean, attribute: "share-unavailable" },
|
|
194
|
+
now: { state: true }
|
|
195
|
+
};
|
|
196
|
+
timer;
|
|
197
|
+
constructor() {
|
|
198
|
+
super();
|
|
199
|
+
this.heading = "";
|
|
200
|
+
this.startedAt = 0;
|
|
201
|
+
this.mic = false;
|
|
202
|
+
this.camera = false;
|
|
203
|
+
this.screen = false;
|
|
204
|
+
this.hand = false;
|
|
205
|
+
this.panel = "";
|
|
206
|
+
this.shareUnavailable = false;
|
|
207
|
+
this.now = Date.now();
|
|
208
|
+
}
|
|
209
|
+
connectedCallback() {
|
|
210
|
+
super.connectedCallback();
|
|
211
|
+
this.setAttribute("role", "toolbar");
|
|
212
|
+
this.setAttribute("aria-label", "Meeting controls");
|
|
213
|
+
this.timer = setInterval(() => this.now = Date.now(), 1e3);
|
|
214
|
+
}
|
|
215
|
+
disconnectedCallback() {
|
|
216
|
+
clearInterval(this.timer);
|
|
217
|
+
super.disconnectedCallback();
|
|
218
|
+
}
|
|
219
|
+
willUpdate(_changed) {
|
|
220
|
+
if (!this.startedAt) this.now = this.startedAt;
|
|
221
|
+
}
|
|
222
|
+
button(action, label, glyph, state = {}) {
|
|
223
|
+
return html`
|
|
224
|
+
<button
|
|
225
|
+
type="button"
|
|
226
|
+
data-action=${action}
|
|
227
|
+
data-off=${String(Boolean(state.off))}
|
|
228
|
+
aria-label=${label}
|
|
229
|
+
aria-pressed=${state.on === void 0 ? nothing : String(state.on)}
|
|
230
|
+
title=${label}
|
|
231
|
+
?disabled=${state.disabled}
|
|
232
|
+
@click=${() => this.fire("office-call-action", { action })}
|
|
233
|
+
>
|
|
234
|
+
${icon(glyph)}<span class="text">${label}</span>
|
|
235
|
+
</button>
|
|
236
|
+
`;
|
|
237
|
+
}
|
|
238
|
+
render() {
|
|
239
|
+
return html`
|
|
240
|
+
<div class="info">
|
|
241
|
+
<span class="heading">${this.heading}</span
|
|
242
|
+
>${this.startedAt ? html`<time>${formatElapsed(this.now - this.startedAt)}</time>` : nothing}
|
|
243
|
+
</div>
|
|
244
|
+
<div class="actions">
|
|
245
|
+
${this.button("chat", "Chat", "chat", { on: this.panel === "chat" })}
|
|
246
|
+
${this.button("people", "People", "users", { on: this.panel === "people" })}
|
|
247
|
+
${this.button("hand", this.hand ? "Lower" : "Raise", "hand", { on: this.hand })}
|
|
248
|
+
${this.button("camera", this.camera ? "Camera off" : "Camera on", this.camera ? "video" : "videoOff", { off: !this.camera })}
|
|
249
|
+
${this.button("mic", this.mic ? "Mute" : "Unmute", this.mic ? "mic" : "micOff", { off: !this.mic })}
|
|
250
|
+
${this.button("screen", this.screen ? "Stop sharing" : "Share", "screenShare", { on: this.screen, disabled: this.shareUnavailable })}
|
|
251
|
+
<button
|
|
252
|
+
type="button"
|
|
253
|
+
class="leave"
|
|
254
|
+
aria-label="Leave call"
|
|
255
|
+
@click=${() => this.fire("office-call-action", { action: "leave" })}
|
|
256
|
+
>
|
|
257
|
+
${icon("phoneOff")}<span class="text">Leave</span>
|
|
258
|
+
</button>
|
|
259
|
+
</div>
|
|
260
|
+
`;
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
var defineCallControls = definer("office-ui-call-controls", () => OfficeUiCallControls);
|
|
264
|
+
|
|
265
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/call-grid.css?raw
|
|
266
|
+
var call_grid_default = ":host {\n display: block;\n min-height: 0;\n background: var(--office-call-background);\n color: var(--office-call-foreground);\n}\n.empty {\n display: grid;\n place-items: center;\n height: 100%;\n margin: 0;\n color: var(--office-call-muted-foreground);\n}\n.grid {\n display: grid;\n gap: var(--office-space-2);\n height: 100%;\n padding: var(--office-space-2);\n grid-template-columns: repeat(var(--cols, 1), minmax(0, 1fr));\n grid-auto-rows: minmax(0, 1fr);\n}\n.grid[data-spotlight='true'] {\n grid-template-columns: minmax(0, 4fr) minmax(0, 1fr);\n grid-template-rows: repeat(var(--rows, 1), minmax(0, 1fr));\n}\n.grid[data-spotlight='true'] .tile[data-main='true'] {\n grid-row: 1 / span var(--rows, 1);\n}\n\n.tile {\n position: relative;\n display: grid;\n place-items: center;\n min-height: 6em;\n overflow: hidden;\n border-radius: var(--office-radius-lg);\n background: var(--office-call-tile);\n}\nvideo {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background: var(--office-call-background);\n}\n.tile[data-screen='true'] video {\n object-fit: contain;\n}\n.tile[data-self='true'] video {\n transform: scaleX(-1);\n}\n.tile[data-self='true'][data-screen='true'] video {\n transform: none;\n}\n\n.name {\n position: absolute;\n inset-inline-start: var(--office-space-2);\n inset-block-end: var(--office-space-2);\n display: flex;\n align-items: center;\n gap: var(--office-space-1-5);\n max-width: calc(100% - 2 * var(--office-space-2));\n padding: var(--office-space-0) var(--office-space-2);\n border-radius: var(--office-radius-md);\n background: var(--office-call-scrim);\n font-size: var(--office-font-size-sm);\n}\n.name span:last-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.muted {\n display: grid;\n color: var(--office-call-danger);\n}\n.hand {\n position: absolute;\n inset-block-start: var(--office-space-2);\n inset-inline-end: var(--office-space-2);\n font-size: 1.5em;\n}\n.status {\n position: absolute;\n inset-block-start: var(--office-space-2);\n inset-inline-start: var(--office-space-2);\n padding: 0 var(--office-space-2);\n border-radius: var(--office-radius-md);\n background: var(--office-call-scrim);\n font-size: var(--office-font-size-xs);\n}\n";
|
|
267
|
+
|
|
268
|
+
// src/teams/call-grid.ts
|
|
269
|
+
var gridColumns = (n) => Math.max(1, Math.ceil(Math.sqrt(n)));
|
|
270
|
+
var OfficeUiCallGrid = class extends TeamsElement {
|
|
271
|
+
static styles = withStyles(call_grid_default);
|
|
272
|
+
static properties = { participants: { attribute: false } };
|
|
273
|
+
constructor() {
|
|
274
|
+
super();
|
|
275
|
+
this.participants = [];
|
|
276
|
+
}
|
|
277
|
+
connectedCallback() {
|
|
278
|
+
super.connectedCallback();
|
|
279
|
+
this.setAttribute("role", "list");
|
|
280
|
+
this.setAttribute("aria-label", "Participants");
|
|
281
|
+
}
|
|
282
|
+
render() {
|
|
283
|
+
const people = this.participants;
|
|
284
|
+
if (people.length === 0) return html`<p class="empty">Nobody is in the call</p>`;
|
|
285
|
+
const sharer = people.find((p) => p.screen);
|
|
286
|
+
const spotlight = sharer !== void 0 && people.length > 1;
|
|
287
|
+
const ordered = sharer ? [sharer, ...people.filter((p) => p !== sharer)] : people;
|
|
288
|
+
const style = `--cols:${gridColumns(people.length)};--rows:${Math.max(1, people.length - 1)}`;
|
|
289
|
+
return html`
|
|
290
|
+
<div class="grid" data-spotlight=${String(spotlight)} style=${style}>
|
|
291
|
+
${repeat(
|
|
292
|
+
ordered,
|
|
293
|
+
(p) => p.id,
|
|
294
|
+
(p, i) => this.tile(p, spotlight && i === 0)
|
|
295
|
+
)}
|
|
296
|
+
</div>
|
|
297
|
+
`;
|
|
298
|
+
}
|
|
299
|
+
tile(p, main) {
|
|
300
|
+
const showVideo = Boolean(p.stream) && (p.video || p.screen || !p.self);
|
|
301
|
+
const showAvatar = !showVideo || !p.video && !p.screen;
|
|
302
|
+
return html`
|
|
303
|
+
<div
|
|
304
|
+
class="tile"
|
|
305
|
+
role="listitem"
|
|
306
|
+
data-self=${String(Boolean(p.self))}
|
|
307
|
+
data-screen=${String(Boolean(p.screen))}
|
|
308
|
+
data-main=${String(main)}
|
|
309
|
+
>
|
|
310
|
+
${showVideo ? html`<video
|
|
311
|
+
autoplay
|
|
312
|
+
playsinline
|
|
313
|
+
.muted=${Boolean(p.self)}
|
|
314
|
+
.srcObject=${p.stream ?? null}
|
|
315
|
+
></video>` : nothing}
|
|
316
|
+
${showAvatar ? html`<office-ui-avatar size="xl" name=${p.name} seed=${p.id}></office-ui-avatar>` : nothing}
|
|
317
|
+
<div class="name">
|
|
318
|
+
${p.audio === false ? html`<span class="muted">${icon("micOff")}</span>` : nothing}
|
|
319
|
+
<span>${p.self ? `${p.name} (you)` : p.name}</span>
|
|
320
|
+
</div>
|
|
321
|
+
${p.hand ? html`<span class="hand" role="img" aria-label="Hand raised">✋</span>` : nothing}
|
|
322
|
+
${!p.self && p.connection && p.connection !== "connected" ? html`<span class="status"
|
|
323
|
+
>${p.connection === "failed" ? "Connection failed" : "Connecting\u2026"}</span
|
|
324
|
+
>` : nothing}
|
|
325
|
+
</div>
|
|
326
|
+
`;
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
var defineCallGrid = definer("office-ui-call-grid", () => OfficeUiCallGrid);
|
|
330
|
+
|
|
331
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/channel-list.css?raw
|
|
332
|
+
var channel_list_default = ":host {\n display: block;\n overflow: auto;\n}\n.team {\n display: flex;\n align-items: center;\n padding: var(--office-space-1) var(--office-space-2) var(--office-space-1) var(--office-space-1);\n}\n.toggle {\n display: flex;\n flex: 1;\n align-items: center;\n gap: var(--office-space-1);\n min-width: 0;\n padding: var(--office-space-2);\n border: 0;\n border-radius: var(--office-radius);\n background: transparent;\n font-weight: var(--office-font-weight-bold);\n text-align: start;\n}\n.toggle:hover,\n.add:hover {\n background: var(--office-selected);\n}\n.chevron {\n display: grid;\n transition: transform var(--office-duration-fast);\n}\n.chevron[data-open='true'] {\n transform: rotate(90deg);\n}\n.name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.add {\n display: grid;\n place-items: center;\n width: 2em;\n height: 2em;\n border: 0;\n border-radius: var(--office-radius);\n background: transparent;\n color: var(--office-teams-text-subtle);\n}\nul {\n margin: 0;\n padding: 0 var(--office-space-2);\n list-style: none;\n}\nul[hidden] {\n display: none;\n}\n.row {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--office-space-2);\n width: 100%;\n padding: var(--office-space-2) var(--office-space-3) var(--office-space-2) var(--office-space-5);\n border: 0;\n border-radius: var(--office-radius);\n background: transparent;\n color: var(--office-teams-text-subtle);\n text-align: start;\n}\n.row:hover {\n background: var(--office-selected);\n}\n.row[aria-current='true'] {\n background: var(--office-teams-brand-subtle);\n color: var(--office-foreground);\n font-weight: var(--office-font-weight-bold);\n}\n.row[aria-current='true']::before {\n content: '';\n position: absolute;\n inset-inline-start: 0;\n inset-block: 20%;\n width: var(--office-space-1);\n border-radius: var(--office-radius-full);\n background: var(--office-teams-brand);\n}\n.row[data-unread='true'] {\n color: var(--office-foreground);\n font-weight: var(--office-font-weight-bold);\n}\n.title {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.live {\n display: grid;\n color: var(--office-call-live);\n}\n.count {\n min-width: 1.6em;\n padding: 0 var(--office-space-1);\n border-radius: var(--office-radius-full);\n background: var(--office-teams-brand);\n color: var(--office-teams-brand-foreground);\n font-size: var(--office-font-size-xs);\n line-height: 1.6;\n text-align: center;\n}\n";
|
|
333
|
+
|
|
334
|
+
// src/teams/channel-list.ts
|
|
335
|
+
var OfficeUiChannelList = class extends TeamsElement {
|
|
336
|
+
static styles = withStyles(channel_list_default);
|
|
337
|
+
static properties = {
|
|
338
|
+
heading: { type: String },
|
|
339
|
+
channels: { attribute: false },
|
|
340
|
+
selectedId: { type: String, attribute: "selected-id" },
|
|
341
|
+
collapsed: { state: true }
|
|
342
|
+
};
|
|
343
|
+
constructor() {
|
|
344
|
+
super();
|
|
345
|
+
this.heading = "Channels";
|
|
346
|
+
this.channels = [];
|
|
347
|
+
this.selectedId = "";
|
|
348
|
+
this.collapsed = false;
|
|
349
|
+
}
|
|
350
|
+
render() {
|
|
351
|
+
return html`
|
|
352
|
+
<div class="team">
|
|
353
|
+
<button
|
|
354
|
+
class="toggle"
|
|
355
|
+
type="button"
|
|
356
|
+
aria-expanded=${String(!this.collapsed)}
|
|
357
|
+
@click=${() => this.collapsed = !this.collapsed}
|
|
358
|
+
>
|
|
359
|
+
<span class="chevron" data-open=${String(!this.collapsed)}>${icon("chevronRight")}</span>
|
|
360
|
+
<span class="name">${this.heading}</span>
|
|
361
|
+
</button>
|
|
362
|
+
<button
|
|
363
|
+
class="add"
|
|
364
|
+
type="button"
|
|
365
|
+
title="Add channel"
|
|
366
|
+
aria-label="Add channel"
|
|
367
|
+
@click=${() => this.fire("office-channel-create", {})}
|
|
368
|
+
>
|
|
369
|
+
${icon("plus")}
|
|
370
|
+
</button>
|
|
371
|
+
</div>
|
|
372
|
+
<ul ?hidden=${this.collapsed}>
|
|
373
|
+
${this.channels.map(
|
|
374
|
+
(c) => html`
|
|
375
|
+
<li>
|
|
376
|
+
<button
|
|
377
|
+
class="row"
|
|
378
|
+
type="button"
|
|
379
|
+
aria-current=${c.id === this.selectedId ? "true" : "false"}
|
|
380
|
+
data-unread=${c.unread ? "true" : "false"}
|
|
381
|
+
@click=${() => this.fire("office-channel-select", { id: c.id })}
|
|
382
|
+
>
|
|
383
|
+
${icon(c.kind === "direct" ? "message" : "hash")}
|
|
384
|
+
<span class="title">${c.name}</span>
|
|
385
|
+
${c.live ? html`<span class="live" title="Call in progress">${icon("video")}</span>` : ""}
|
|
386
|
+
${c.unread ? html`<span class="count">${c.unread > 99 ? "99+" : c.unread}</span>` : ""}
|
|
387
|
+
</button>
|
|
388
|
+
</li>
|
|
389
|
+
`
|
|
390
|
+
)}
|
|
391
|
+
</ul>
|
|
392
|
+
`;
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
var defineChannelList = definer("office-ui-channel-list", () => OfficeUiChannelList);
|
|
396
|
+
|
|
397
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/chat-composer.css?raw
|
|
398
|
+
var chat_composer_default = ":host {\n display: block;\n padding: 0 var(--office-space-5) var(--office-space-4);\n}\n.typing {\n min-height: 1.4em;\n color: var(--office-teams-text-subtle);\n font-size: var(--office-font-size-xs);\n}\n.box {\n position: relative;\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-block-end: var(--office-border-width-thick) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-field-background);\n}\n.box:focus-within {\n border-block-end-color: var(--office-teams-brand);\n}\n.banner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--office-space-1) var(--office-space-3);\n border-bottom: var(--office-border-width) solid var(--office-teams-divider);\n background: var(--office-teams-panel);\n font-size: var(--office-font-size-sm);\n}\ntextarea {\n display: block;\n width: 100%;\n min-height: 3.2em;\n max-height: 12em;\n padding: var(--office-space-3);\n border: 0;\n outline: 0;\n resize: none;\n background: transparent;\n color: inherit;\n font: inherit;\n field-sizing: content;\n}\n.bar {\n display: flex;\n align-items: center;\n gap: var(--office-space-1);\n padding: 0 var(--office-space-2) var(--office-space-2);\n}\n.spacer {\n flex: 1;\n}\n.bar button,\n.banner button,\n.pending button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--office-space-1);\n min-width: 2.2em;\n height: 2.2em;\n border: 0;\n border-radius: var(--office-radius);\n background: transparent;\n color: var(--office-teams-text-subtle);\n}\n.bar button:hover:not(:disabled),\n.banner button:hover {\n background: var(--office-selected);\n color: var(--office-foreground);\n}\n.bar button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.bar .send:not(:disabled) {\n color: var(--office-teams-brand);\n}\n.pending {\n display: flex;\n flex-wrap: wrap;\n gap: var(--office-space-1);\n margin: 0;\n padding: 0 var(--office-space-3);\n list-style: none;\n}\n.pending button {\n padding: 0 var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n background: var(--office-teams-panel);\n font-size: var(--office-font-size-sm);\n color: var(--office-foreground);\n}\n.emoji {\n position: relative;\n}\n.picker {\n position: absolute;\n inset-block-end: calc(100% + var(--office-space-1));\n inset-inline-start: 0;\n z-index: 2;\n display: grid;\n grid-template-columns: repeat(5, 1fr);\n gap: var(--office-space-0);\n padding: var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-popover);\n box-shadow: var(--office-shadow-teams);\n}\n.picker button {\n font-size: 1.3em;\n}\n";
|
|
399
|
+
var EMOJI = [
|
|
400
|
+
"\u{1F600}",
|
|
401
|
+
"\u{1F604}",
|
|
402
|
+
"\u{1F602}",
|
|
403
|
+
"\u{1F642}",
|
|
404
|
+
"\u{1F609}",
|
|
405
|
+
"\u{1F60D}",
|
|
406
|
+
"\u{1F914}",
|
|
407
|
+
"\u{1F62E}",
|
|
408
|
+
"\u{1F622}",
|
|
409
|
+
"\u{1F621}",
|
|
410
|
+
"\u{1F44D}",
|
|
411
|
+
"\u{1F44E}",
|
|
412
|
+
"\u{1F44F}",
|
|
413
|
+
"\u{1F64F}",
|
|
414
|
+
"\u{1F4AA}",
|
|
415
|
+
"\u{1F389}",
|
|
416
|
+
"\u{1F525}",
|
|
417
|
+
"\u2764\uFE0F",
|
|
418
|
+
"\u2705",
|
|
419
|
+
"\u{1F440}"
|
|
420
|
+
];
|
|
421
|
+
var MAX_FILES = MAX_ATTACHMENTS;
|
|
422
|
+
var OfficeUiChatComposer = class extends TeamsElement {
|
|
423
|
+
static styles = withStyles(chat_composer_default);
|
|
424
|
+
static properties = {
|
|
425
|
+
typing: { attribute: false },
|
|
426
|
+
replyingTo: { attribute: false },
|
|
427
|
+
editing: { type: Boolean },
|
|
428
|
+
disabled: { type: Boolean, reflect: true },
|
|
429
|
+
placeholder: { type: String },
|
|
430
|
+
value: { type: String },
|
|
431
|
+
files: { state: true },
|
|
432
|
+
missingFiles: { attribute: false },
|
|
433
|
+
emojiOpen: { state: true }
|
|
434
|
+
};
|
|
435
|
+
lastTyping = 0;
|
|
436
|
+
constructor() {
|
|
437
|
+
super();
|
|
438
|
+
this.typing = [];
|
|
439
|
+
this.replyingTo = null;
|
|
440
|
+
this.editing = false;
|
|
441
|
+
this.disabled = false;
|
|
442
|
+
this.placeholder = "Type a message";
|
|
443
|
+
this.value = "";
|
|
444
|
+
this.files = [];
|
|
445
|
+
this.missingFiles = [];
|
|
446
|
+
this.emojiOpen = false;
|
|
447
|
+
}
|
|
448
|
+
updated(changed) {
|
|
449
|
+
if (changed.has("replyingTo") || changed.has("editing")) {
|
|
450
|
+
if (this.replyingTo !== null || this.editing)
|
|
451
|
+
this.renderRoot.querySelector("textarea")?.focus();
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
get canSend() {
|
|
455
|
+
return !this.disabled && !this.missingFiles.length && (this.value.trim() !== "" || this.files.length > 0);
|
|
456
|
+
}
|
|
457
|
+
submit() {
|
|
458
|
+
if (!this.canSend) return;
|
|
459
|
+
const { value: text, files } = this;
|
|
460
|
+
this.value = "";
|
|
461
|
+
this.files = [];
|
|
462
|
+
this.emojiOpen = false;
|
|
463
|
+
this.fire("office-chat-send", { text, files });
|
|
464
|
+
}
|
|
465
|
+
onInput(event) {
|
|
466
|
+
this.value = event.target.value;
|
|
467
|
+
this.saveDraft();
|
|
468
|
+
const now = Date.now();
|
|
469
|
+
if (now - this.lastTyping > 2e3) {
|
|
470
|
+
this.lastTyping = now;
|
|
471
|
+
this.fire("office-chat-typing", {});
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
onKeydown(event) {
|
|
475
|
+
if (event.key === "Enter" && !event.shiftKey && !event.isComposing) {
|
|
476
|
+
event.preventDefault();
|
|
477
|
+
this.submit();
|
|
478
|
+
} else if (event.key === "Escape" && (this.replyingTo !== null || this.editing)) {
|
|
479
|
+
this.fire("office-chat-cancel", {});
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
pick(event) {
|
|
483
|
+
const input = event.target;
|
|
484
|
+
this.files = [...this.files, ...Array.from(input.files ?? [])].slice(0, MAX_FILES);
|
|
485
|
+
input.value = "";
|
|
486
|
+
this.missingFiles = this.missingFiles.filter(
|
|
487
|
+
(name) => !this.files.some((file) => file.name === name)
|
|
488
|
+
);
|
|
489
|
+
this.saveDraft();
|
|
490
|
+
}
|
|
491
|
+
saveDraft() {
|
|
492
|
+
this.fire("office-chat-draft", {
|
|
493
|
+
text: this.value,
|
|
494
|
+
files: [...this.files],
|
|
495
|
+
missingFiles: [...this.missingFiles]
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
typingLine() {
|
|
499
|
+
const n = this.typing.slice(0, 3);
|
|
500
|
+
if (n.length === 0) return "";
|
|
501
|
+
return n.length === 1 ? `${n[0]} is typing\u2026` : `${n.join(", ")} are typing\u2026`;
|
|
502
|
+
}
|
|
503
|
+
render() {
|
|
504
|
+
const banner = this.editing ? "Editing message" : this.replyingTo !== null ? `Replying to ${this.replyingTo}` : "";
|
|
505
|
+
return html`
|
|
506
|
+
<div class="typing" aria-live="polite">${this.typingLine()}</div>
|
|
507
|
+
<div class="box">
|
|
508
|
+
${this.missingFiles.length ? html`<div role="status">
|
|
509
|
+
Reattach or discard these draft attachments before sending:
|
|
510
|
+
<ul>
|
|
511
|
+
${this.missingFiles.map(
|
|
512
|
+
(name) => html`<li>
|
|
513
|
+
${name}<button
|
|
514
|
+
type="button"
|
|
515
|
+
aria-label=${`Discard missing ${name}`}
|
|
516
|
+
@click=${() => {
|
|
517
|
+
this.missingFiles = this.missingFiles.filter((item) => item !== name);
|
|
518
|
+
this.saveDraft();
|
|
519
|
+
}}
|
|
520
|
+
>
|
|
521
|
+
Discard
|
|
522
|
+
</button>
|
|
523
|
+
</li>`
|
|
524
|
+
)}
|
|
525
|
+
</ul>
|
|
526
|
+
</div>` : nothing}
|
|
527
|
+
${banner ? html`<div class="banner">
|
|
528
|
+
<span>${banner}</span>
|
|
529
|
+
<button
|
|
530
|
+
type="button"
|
|
531
|
+
aria-label="Cancel"
|
|
532
|
+
@click=${() => this.fire("office-chat-cancel", {})}
|
|
533
|
+
>
|
|
534
|
+
${icon("close")}
|
|
535
|
+
</button>
|
|
536
|
+
</div>` : nothing}
|
|
537
|
+
<textarea
|
|
538
|
+
rows="1"
|
|
539
|
+
aria-label="Message"
|
|
540
|
+
.value=${live(this.value)}
|
|
541
|
+
placeholder=${this.placeholder}
|
|
542
|
+
?disabled=${this.disabled}
|
|
543
|
+
@input=${this.onInput}
|
|
544
|
+
@keydown=${this.onKeydown}
|
|
545
|
+
></textarea>
|
|
546
|
+
${this.files.length ? html`<ul class="pending">
|
|
547
|
+
${this.files.map(
|
|
548
|
+
(f, i) => html`<li>
|
|
549
|
+
<button
|
|
550
|
+
type="button"
|
|
551
|
+
aria-label=${`Remove ${f.name}`}
|
|
552
|
+
@click=${() => {
|
|
553
|
+
this.files = this.files.filter((_, j) => j !== i);
|
|
554
|
+
this.saveDraft();
|
|
555
|
+
}}
|
|
556
|
+
>
|
|
557
|
+
${f.name} ${icon("close")}
|
|
558
|
+
</button>
|
|
559
|
+
</li>`
|
|
560
|
+
)}
|
|
561
|
+
</ul>` : nothing}
|
|
562
|
+
<div class="bar">
|
|
563
|
+
<button
|
|
564
|
+
type="button"
|
|
565
|
+
title="Attach files"
|
|
566
|
+
aria-label="Attach files"
|
|
567
|
+
?disabled=${this.disabled}
|
|
568
|
+
@click=${() => this.renderRoot.querySelector("input[type=file]")?.click()}
|
|
569
|
+
>
|
|
570
|
+
${icon("paperclip")}
|
|
571
|
+
</button>
|
|
572
|
+
<div class="emoji">
|
|
573
|
+
<button
|
|
574
|
+
type="button"
|
|
575
|
+
title="Emoji"
|
|
576
|
+
aria-label="Emoji"
|
|
577
|
+
aria-expanded=${String(this.emojiOpen)}
|
|
578
|
+
?disabled=${this.disabled}
|
|
579
|
+
@click=${() => this.emojiOpen = !this.emojiOpen}
|
|
580
|
+
>
|
|
581
|
+
${icon("smile")}
|
|
582
|
+
</button>
|
|
583
|
+
${this.emojiOpen ? html`<div class="picker" role="menu">
|
|
584
|
+
${EMOJI.map(
|
|
585
|
+
(e) => html`<button
|
|
586
|
+
type="button"
|
|
587
|
+
role="menuitem"
|
|
588
|
+
@click=${() => {
|
|
589
|
+
this.value += e;
|
|
590
|
+
this.saveDraft();
|
|
591
|
+
this.emojiOpen = false;
|
|
592
|
+
this.renderRoot.querySelector("textarea")?.focus();
|
|
593
|
+
}}
|
|
594
|
+
>
|
|
595
|
+
${e}
|
|
596
|
+
</button>`
|
|
597
|
+
)}
|
|
598
|
+
</div>` : nothing}
|
|
599
|
+
</div>
|
|
600
|
+
<span class="spacer"></span>
|
|
601
|
+
<button
|
|
602
|
+
type="button"
|
|
603
|
+
class="send"
|
|
604
|
+
title="Send"
|
|
605
|
+
aria-label="Send message"
|
|
606
|
+
?disabled=${!this.canSend}
|
|
607
|
+
@click=${this.submit}
|
|
608
|
+
>
|
|
609
|
+
${icon("send")}
|
|
610
|
+
</button>
|
|
611
|
+
</div>
|
|
612
|
+
<input type="file" multiple hidden @change=${this.pick} />
|
|
613
|
+
</div>
|
|
614
|
+
`;
|
|
615
|
+
}
|
|
616
|
+
};
|
|
617
|
+
var defineChatComposer = definer("office-ui-chat-composer", () => OfficeUiChatComposer);
|
|
618
|
+
|
|
619
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/chat-list.css?raw
|
|
620
|
+
var chat_list_default = ":host {\n display: block;\n min-height: 0;\n overflow: auto;\n padding: var(--office-space-2) var(--office-space-5);\n}\n.thread-link {\n align-self: flex-start;\n font: inherit;\n color: var(--office-foreground);\n background: var(--office-background);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n padding: var(--office-space-2);\n cursor: pointer;\n}\n.empty {\n margin: var(--office-space-6) 0;\n color: var(--office-teams-text-subtle);\n text-align: center;\n}\n\n.day {\n display: flex;\n align-items: center;\n gap: var(--office-space-3);\n margin: var(--office-space-4) 0 var(--office-space-2);\n color: var(--office-teams-text-subtle);\n font-size: var(--office-font-size-xs);\n}\n.day::before,\n.day::after {\n content: '';\n flex: 1;\n height: var(--office-border-width);\n background: var(--office-teams-divider);\n}\n\n.msg {\n position: relative;\n display: grid;\n grid-template-columns: 2.3em minmax(0, 1fr);\n column-gap: var(--office-space-3);\n padding: var(--office-space-0) 0;\n}\n.msg[data-grouped='false'] {\n margin-top: var(--office-teams-message-gap, var(--office-space-3));\n}\n.gutter {\n padding-top: var(--office-space-1);\n}\nheader {\n display: flex;\n align-items: baseline;\n gap: var(--office-space-2);\n margin-bottom: var(--office-space-0);\n}\n.author {\n font-weight: var(--office-font-weight-bold);\n}\ntime,\n.edited,\n.file-size {\n color: var(--office-teams-text-subtle);\n font-size: var(--office-font-size-xs);\n}\n\n.bubble {\n display: inline-block;\n max-width: min(100%, 44em);\n padding: var(--office-teams-message-padding, var(--office-space-2) var(--office-space-3));\n border-radius: var(--office-radius-md);\n background: var(--office-teams-bubble);\n line-height: var(--office-line-height);\n overflow-wrap: anywhere;\n}\n.text {\n white-space: pre-wrap;\n}\n.msg[data-own='true'] .bubble {\n background: var(--office-teams-bubble-own);\n}\n.deleted {\n color: var(--office-teams-text-subtle);\n font-style: italic;\n}\nblockquote {\n margin: 0 0 var(--office-space-1);\n padding-inline-start: var(--office-space-2);\n border-inline-start: var(--office-border-width-thick) solid var(--office-teams-brand);\n color: var(--office-teams-text-subtle);\n font-size: var(--office-font-size-sm);\n white-space: normal;\n}\nblockquote strong {\n display: block;\n color: var(--office-foreground);\n}\n\n.files {\n display: flex;\n flex-wrap: wrap;\n gap: var(--office-space-2);\n margin-top: var(--office-space-2);\n white-space: normal;\n}\n.file {\n display: flex;\n align-items: center;\n gap: var(--office-space-3);\n min-width: 14em;\n padding: var(--office-space-2) var(--office-space-3);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-background);\n text-align: start;\n}\n.file:hover {\n border-color: var(--office-teams-brand);\n}\n.badge {\n display: grid;\n place-items: center;\n width: 2.2em;\n height: 2.2em;\n border-radius: var(--office-radius);\n background: var(--office-file-other);\n color: var(--office-call-foreground);\n font-weight: var(--office-font-weight-bold);\n}\n.badge[data-kind='docx'] {\n background: var(--office-file-docx);\n}\n.badge[data-kind='xlsx'] {\n background: var(--office-file-xlsx);\n}\n.badge[data-kind='pptx'] {\n background: var(--office-file-pptx);\n}\n.badge[data-kind='vsdx'] {\n background: var(--office-file-vsdx);\n}\n.meta {\n display: grid;\n}\n\n.reactions {\n display: flex;\n flex-wrap: wrap;\n gap: var(--office-space-1);\n margin-top: var(--office-space-1);\n}\n.pill {\n display: inline-flex;\n gap: var(--office-space-1);\n padding: 0 var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-full);\n background: var(--office-background);\n font-size: var(--office-font-size-sm);\n}\n.pill[aria-pressed='true'] {\n border-color: var(--office-teams-brand);\n background: var(--office-teams-brand-subtle);\n}\n\n.toolbar {\n position: absolute;\n inset-block-start: calc(-1 * var(--office-space-3));\n inset-inline-end: 0;\n display: none;\n gap: var(--office-space-0);\n padding: var(--office-space-0);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-popover);\n box-shadow: var(--office-shadow-teams);\n}\n.msg:hover .toolbar,\n.msg:focus-within .toolbar {\n display: flex;\n}\n.toolbar button {\n display: grid;\n place-items: center;\n min-width: 2em;\n height: 2em;\n border: 0;\n border-radius: var(--office-radius-sm);\n background: transparent;\n}\n.toolbar button:hover {\n background: var(--office-selected);\n}\n";
|
|
621
|
+
|
|
622
|
+
// src/teams/chat-list.ts
|
|
623
|
+
var QUICK_REACTIONS = ["\u{1F44D}", "\u2764\uFE0F", "\u{1F602}", "\u{1F62E}", "\u{1F622}", "\u{1F389}"];
|
|
624
|
+
var KIND_LETTER = {
|
|
625
|
+
docx: "W",
|
|
626
|
+
xlsx: "X",
|
|
627
|
+
pptx: "P",
|
|
628
|
+
vsdx: "V",
|
|
629
|
+
other: "F"
|
|
630
|
+
};
|
|
631
|
+
var GROUP_MS = 5 * 6e4;
|
|
632
|
+
var OfficeUiChatList = class extends TeamsElement {
|
|
633
|
+
static styles = withStyles(chat_list_default);
|
|
634
|
+
static properties = {
|
|
635
|
+
messages: { attribute: false },
|
|
636
|
+
selfId: { type: String, attribute: "self-id" },
|
|
637
|
+
replyCounts: { attribute: false }
|
|
638
|
+
};
|
|
639
|
+
stickToBottom = true;
|
|
640
|
+
constructor() {
|
|
641
|
+
super();
|
|
642
|
+
this.messages = [];
|
|
643
|
+
this.selfId = "";
|
|
644
|
+
this.replyCounts = {};
|
|
645
|
+
}
|
|
646
|
+
connectedCallback() {
|
|
647
|
+
super.connectedCallback();
|
|
648
|
+
this.setAttribute("role", "log");
|
|
649
|
+
this.setAttribute("aria-live", "polite");
|
|
650
|
+
this.setAttribute("aria-label", "Messages");
|
|
651
|
+
this.addEventListener("scroll", () => {
|
|
652
|
+
this.stickToBottom = this.scrollHeight - this.scrollTop - this.clientHeight < 64;
|
|
653
|
+
});
|
|
654
|
+
}
|
|
655
|
+
updated() {
|
|
656
|
+
if (this.stickToBottom) this.scrollTop = this.scrollHeight;
|
|
657
|
+
}
|
|
658
|
+
render() {
|
|
659
|
+
if (this.messages.length === 0) return html`<p class="empty">No messages yet. Say hello.</p>`;
|
|
660
|
+
const byId = new Map(this.messages.map((m) => [m.id, m]));
|
|
661
|
+
const rows = [];
|
|
662
|
+
let previous;
|
|
663
|
+
for (const m of this.messages) {
|
|
664
|
+
if (!previous || dayLabel(previous.ts) !== dayLabel(m.ts))
|
|
665
|
+
rows.push(html`<div class="day"><span>${dayLabel(m.ts)}</span></div>`);
|
|
666
|
+
const grouped = previous !== void 0 && previous.authorId === m.authorId && m.ts - previous.ts < GROUP_MS && !m.replyTo && dayLabel(previous.ts) === dayLabel(m.ts);
|
|
667
|
+
rows.push(this.message(m, grouped, byId.get(m.replyTo ?? "")));
|
|
668
|
+
previous = m;
|
|
669
|
+
}
|
|
670
|
+
return html`${rows}`;
|
|
671
|
+
}
|
|
672
|
+
message(m, grouped, parent) {
|
|
673
|
+
const own = m.authorId === this.selfId;
|
|
674
|
+
const reactions = Object.entries(m.reactions ?? {}).filter(([, users]) => users.length > 0);
|
|
675
|
+
return html`
|
|
676
|
+
<article
|
|
677
|
+
class="msg"
|
|
678
|
+
data-message-id=${m.id}
|
|
679
|
+
data-own=${String(own)}
|
|
680
|
+
data-grouped=${String(grouped)}
|
|
681
|
+
>
|
|
682
|
+
<div class="gutter">
|
|
683
|
+
${grouped ? nothing : html`<office-ui-avatar name=${m.authorName} seed=${m.authorId}></office-ui-avatar>`}
|
|
684
|
+
</div>
|
|
685
|
+
<div class="body">
|
|
686
|
+
${grouped ? nothing : html`<header>
|
|
687
|
+
<span class="author">${m.authorName}</span>
|
|
688
|
+
<time>${formatTime(m.ts)}</time>
|
|
689
|
+
</header>`}
|
|
690
|
+
<div class="bubble">
|
|
691
|
+
${parent ? html`<blockquote>
|
|
692
|
+
<strong>${parent.authorName}</strong
|
|
693
|
+
>${parent.deleted ? "This message was deleted" : parent.text.slice(0, 120)}
|
|
694
|
+
</blockquote>` : nothing}
|
|
695
|
+
${m.deleted ? html`<span class="deleted">This message was deleted</span>` : html`<span class="text">${m.text}</span>${m.editedAt ? html` <span class="edited">(edited)</span>` : nothing}`}
|
|
696
|
+
${!m.deleted && m.attachments?.length ? this.files(m.attachments) : nothing}
|
|
697
|
+
${!m.deleted && m.tabId ? html`<button class="thread-link" type="button" @click=${() => this.fire("office-chat-open-tab", { tabId: m.tabId })}>Open tab</button>` : nothing}
|
|
698
|
+
</div>
|
|
699
|
+
${!m.deleted && reactions.length ? html`<div class="reactions">
|
|
700
|
+
${reactions.map(
|
|
701
|
+
([emoji, users]) => html`
|
|
702
|
+
<button
|
|
703
|
+
type="button"
|
|
704
|
+
class="pill"
|
|
705
|
+
aria-pressed=${String(users.includes(this.selfId))}
|
|
706
|
+
aria-label=${`${emoji} ${users.length}`}
|
|
707
|
+
@click=${() => this.fire("office-chat-react", { messageId: m.id, emoji })}
|
|
708
|
+
>
|
|
709
|
+
<span>${emoji}</span><span>${users.length}</span>
|
|
710
|
+
</button>
|
|
711
|
+
`
|
|
712
|
+
)}
|
|
713
|
+
</div>` : nothing}
|
|
714
|
+
${m.deleted ? nothing : this.toolbar(m, own)}
|
|
715
|
+
${this.replyCounts[m.id] === void 0 ? nothing : html`<button type="button" class="thread-link" @click=${() => this.fire("office-chat-thread", { messageId: m.id })}>${this.replyCounts[m.id]} ${this.replyCounts[m.id] === 1 ? "reply" : "replies"}</button>`}
|
|
716
|
+
</div>
|
|
717
|
+
</article>
|
|
718
|
+
`;
|
|
719
|
+
}
|
|
720
|
+
toolbar(m, own) {
|
|
721
|
+
return html`
|
|
722
|
+
<div class="toolbar" role="toolbar" aria-label="Message actions">
|
|
723
|
+
${QUICK_REACTIONS.slice(0, 4).map(
|
|
724
|
+
(emoji) => html`<button
|
|
725
|
+
type="button"
|
|
726
|
+
aria-label=${`React ${emoji}`}
|
|
727
|
+
@click=${() => this.fire("office-chat-react", { messageId: m.id, emoji })}
|
|
728
|
+
>
|
|
729
|
+
${emoji}
|
|
730
|
+
</button>`
|
|
731
|
+
)}
|
|
732
|
+
<button
|
|
733
|
+
type="button"
|
|
734
|
+
title="Reply"
|
|
735
|
+
aria-label="Reply"
|
|
736
|
+
@click=${() => this.fire("office-chat-reply", { messageId: m.id })}
|
|
737
|
+
>
|
|
738
|
+
${icon("reply")}
|
|
739
|
+
</button>
|
|
740
|
+
${own ? html`<button
|
|
741
|
+
type="button"
|
|
742
|
+
title="Edit"
|
|
743
|
+
aria-label="Edit"
|
|
744
|
+
@click=${() => this.fire("office-chat-edit", { messageId: m.id })}
|
|
745
|
+
>
|
|
746
|
+
${icon("pencil")}
|
|
747
|
+
</button>
|
|
748
|
+
<button
|
|
749
|
+
type="button"
|
|
750
|
+
title="Delete"
|
|
751
|
+
aria-label="Delete"
|
|
752
|
+
@click=${() => this.fire("office-chat-delete", { messageId: m.id })}
|
|
753
|
+
>
|
|
754
|
+
${icon("trash")}
|
|
755
|
+
</button>` : nothing}
|
|
756
|
+
</div>
|
|
757
|
+
`;
|
|
758
|
+
}
|
|
759
|
+
files(files) {
|
|
760
|
+
return html`<div class="files">
|
|
761
|
+
${files.map(
|
|
762
|
+
(a) => html`
|
|
763
|
+
<button
|
|
764
|
+
type="button"
|
|
765
|
+
class="file"
|
|
766
|
+
aria-label=${`Open ${a.name}`}
|
|
767
|
+
@click=${() => this.fire("office-chat-open-file", { attachment: a })}
|
|
768
|
+
>
|
|
769
|
+
<span class="badge" data-kind=${a.kind}>${KIND_LETTER[a.kind]}</span>
|
|
770
|
+
<span class="meta">
|
|
771
|
+
<span class="file-name">${a.name}</span>
|
|
772
|
+
<span class="file-size">${a.kind.toUpperCase()} ${formatSize(a.size)}</span>
|
|
773
|
+
</span>
|
|
774
|
+
</button>
|
|
775
|
+
`
|
|
776
|
+
)}
|
|
777
|
+
</div>`;
|
|
778
|
+
}
|
|
779
|
+
};
|
|
780
|
+
var defineChatList = definer("office-ui-chat-list", () => OfficeUiChatList);
|
|
781
|
+
|
|
782
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/prejoin.css?raw
|
|
783
|
+
var prejoin_default = ":host {\n display: grid;\n place-items: center;\n padding: var(--office-space-5);\n background: var(--office-teams-panel);\n}\n.card {\n display: grid;\n grid-template-columns: minmax(0, 3fr) minmax(16em, 2fr);\n width: min(60em, 100%);\n overflow: hidden;\n border-radius: var(--office-radius-lg);\n background: var(--office-background);\n box-shadow: var(--office-shadow-teams);\n}\n.stage {\n position: relative;\n display: grid;\n place-content: center;\n justify-items: center;\n gap: var(--office-space-3);\n min-height: 18em;\n background: var(--office-call-background);\n color: var(--office-call-muted-foreground);\n}\n.stage video {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n transform: scaleX(-1);\n}\n.panel {\n display: flex;\n flex-direction: column;\n gap: var(--office-space-3);\n padding: var(--office-space-5);\n}\nh2 {\n margin: 0;\n font-size: var(--office-font-size-lg);\n}\n.for {\n margin: 0;\n color: var(--office-teams-text-subtle);\n}\n.switch {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--office-space-3);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n cursor: pointer;\n}\n.what {\n display: inline-flex;\n align-items: center;\n gap: var(--office-space-2);\n}\n.switch input {\n position: absolute;\n inset: 0;\n margin: 0;\n opacity: 0;\n cursor: pointer;\n}\n.track {\n position: relative;\n width: 2.6em;\n height: 1.4em;\n border-radius: var(--office-radius-full);\n background: var(--office-border);\n transition: background var(--office-duration-fast);\n}\n.track::after {\n content: '';\n position: absolute;\n inset-block-start: 0.2em;\n inset-inline-start: 0.2em;\n width: 1em;\n height: 1em;\n border-radius: 50%;\n background: var(--office-background);\n transition: transform var(--office-duration-fast);\n}\n.switch input:checked ~ .track {\n background: var(--office-teams-brand);\n}\n.switch input:checked ~ .track::after {\n transform: translateX(1.2em);\n}\n.switch:has(input:focus-visible) {\n outline: var(--office-focus-width) solid var(--office-ring);\n}\n.actions {\n display: flex;\n justify-content: flex-end;\n gap: var(--office-space-2);\n margin-top: auto;\n}\n.actions button {\n padding: var(--office-space-2) var(--office-space-5);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-background);\n font-weight: var(--office-font-weight-bold);\n}\n.actions .join {\n border-color: transparent;\n background: var(--office-teams-brand);\n color: var(--office-teams-brand-foreground);\n}\n.actions .join:hover:not(:disabled) {\n background: var(--office-teams-brand-hover);\n}\n.actions button:disabled {\n opacity: 0.6;\n cursor: wait;\n}\n@media (max-width: 767px) {\n .card {\n grid-template-columns: 1fr;\n }\n}\n";
|
|
784
|
+
|
|
785
|
+
// src/teams/prejoin.ts
|
|
786
|
+
var OfficeUiPrejoin = class extends TeamsElement {
|
|
787
|
+
static styles = withStyles(prejoin_default);
|
|
788
|
+
static properties = {
|
|
789
|
+
heading: { type: String },
|
|
790
|
+
name: { type: String },
|
|
791
|
+
preview: { attribute: false },
|
|
792
|
+
audio: { type: Boolean },
|
|
793
|
+
video: { type: Boolean },
|
|
794
|
+
busy: { type: Boolean }
|
|
795
|
+
};
|
|
796
|
+
constructor() {
|
|
797
|
+
super();
|
|
798
|
+
this.heading = "";
|
|
799
|
+
this.name = "";
|
|
800
|
+
this.preview = null;
|
|
801
|
+
this.audio = true;
|
|
802
|
+
this.video = true;
|
|
803
|
+
this.busy = false;
|
|
804
|
+
}
|
|
805
|
+
toggle(label, glyph, on, key) {
|
|
806
|
+
return html`
|
|
807
|
+
<label class="switch">
|
|
808
|
+
<span class="what">${icon(glyph)} ${label}</span>
|
|
809
|
+
<input
|
|
810
|
+
type="checkbox"
|
|
811
|
+
role="switch"
|
|
812
|
+
.checked=${on}
|
|
813
|
+
aria-label=${label}
|
|
814
|
+
@change=${(e) => this.fire("office-prejoin-change", { [key]: e.target.checked })}
|
|
815
|
+
/>
|
|
816
|
+
<span class="track" aria-hidden="true"></span>
|
|
817
|
+
</label>
|
|
818
|
+
`;
|
|
819
|
+
}
|
|
820
|
+
render() {
|
|
821
|
+
const showVideo = this.video && this.preview;
|
|
822
|
+
return html`
|
|
823
|
+
<section class="card">
|
|
824
|
+
<div class="stage">
|
|
825
|
+
${showVideo ? html`<video
|
|
826
|
+
autoplay
|
|
827
|
+
playsinline
|
|
828
|
+
muted
|
|
829
|
+
.muted=${true}
|
|
830
|
+
.srcObject=${this.preview}
|
|
831
|
+
></video>` : html`<office-ui-avatar size="xl" name=${this.name}></office-ui-avatar>
|
|
832
|
+
<p>${this.video ? "Starting camera\u2026" : "Your camera is turned off"}</p>`}
|
|
833
|
+
</div>
|
|
834
|
+
<div class="panel">
|
|
835
|
+
<h2>Choose your audio and video settings</h2>
|
|
836
|
+
<p class="for">${this.heading}</p>
|
|
837
|
+
${this.toggle("Camera", this.video ? "video" : "videoOff", this.video, "video")}
|
|
838
|
+
${this.toggle("Microphone", this.audio ? "mic" : "micOff", this.audio, "audio")}
|
|
839
|
+
<div class="actions">
|
|
840
|
+
<button
|
|
841
|
+
type="button"
|
|
842
|
+
class="cancel"
|
|
843
|
+
@click=${() => this.fire("office-prejoin-cancel", {})}
|
|
844
|
+
>
|
|
845
|
+
Cancel
|
|
846
|
+
</button>
|
|
847
|
+
<button
|
|
848
|
+
type="button"
|
|
849
|
+
class="join"
|
|
850
|
+
?disabled=${this.busy}
|
|
851
|
+
@click=${() => this.fire("office-prejoin-join", {})}
|
|
852
|
+
>
|
|
853
|
+
${this.busy ? "Joining\u2026" : "Join now"}
|
|
854
|
+
</button>
|
|
855
|
+
</div>
|
|
856
|
+
${nothing}
|
|
857
|
+
</div>
|
|
858
|
+
</section>
|
|
859
|
+
`;
|
|
860
|
+
}
|
|
861
|
+
};
|
|
862
|
+
var definePrejoin = definer("office-ui-prejoin", () => OfficeUiPrejoin);
|
|
863
|
+
var TeamsController = class {
|
|
864
|
+
constructor(host, onNotice) {
|
|
865
|
+
this.host = host;
|
|
866
|
+
this.onNotice = onNotice;
|
|
867
|
+
host.addController(this);
|
|
868
|
+
}
|
|
869
|
+
host;
|
|
870
|
+
onNotice;
|
|
871
|
+
client = null;
|
|
872
|
+
state = null;
|
|
873
|
+
off = [];
|
|
874
|
+
flush = () => this.client?.flushStorage();
|
|
875
|
+
start(options) {
|
|
876
|
+
this.stop();
|
|
877
|
+
const client = createTeamsClient(options);
|
|
878
|
+
this.client = client;
|
|
879
|
+
this.state = client.getState();
|
|
880
|
+
this.off = [
|
|
881
|
+
client.subscribe(() => {
|
|
882
|
+
this.state = client.getState();
|
|
883
|
+
this.host.requestUpdate();
|
|
884
|
+
}),
|
|
885
|
+
client.on("notice", this.onNotice)
|
|
886
|
+
];
|
|
887
|
+
this.host.requestUpdate();
|
|
888
|
+
}
|
|
889
|
+
stop() {
|
|
890
|
+
for (const fn of this.off.splice(0)) fn();
|
|
891
|
+
this.client?.destroy();
|
|
892
|
+
this.client = null;
|
|
893
|
+
this.state = null;
|
|
894
|
+
}
|
|
895
|
+
hostDisconnected() {
|
|
896
|
+
globalThis.removeEventListener("pagehide", this.flush);
|
|
897
|
+
this.stop();
|
|
898
|
+
}
|
|
899
|
+
hostConnected() {
|
|
900
|
+
globalThis.addEventListener("pagehide", this.flush);
|
|
901
|
+
}
|
|
902
|
+
};
|
|
903
|
+
|
|
904
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app/content-preview.css?raw
|
|
905
|
+
var content_preview_default = ":host {\n display: flex;\n flex: 1;\n min-height: 0;\n min-width: 0;\n}\nsection {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n min-width: 0;\n}\nheader {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--office-space-3);\n padding: var(--office-space-3);\n border-bottom: var(--office-border-width) solid var(--office-teams-divider);\n}\nh2 {\n margin: 0;\n font-size: 1em;\n flex: 1;\n overflow-wrap: anywhere;\n}\nbutton,\na {\n font: inherit;\n color: var(--office-foreground);\n}\nbutton {\n padding: var(--office-space-2);\n background: var(--office-background);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n cursor: pointer;\n}\narticle {\n overflow: auto;\n padding: var(--office-space-4);\n}\npre {\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n padding: var(--office-space-3);\n background: var(--office-background);\n}\nblockquote {\n border-inline-start: var(--office-space-1) solid var(--office-teams-divider);\n padding-inline-start: var(--office-space-3);\n}\n.markdown-table {\n overflow-x: auto;\n max-width: 100%;\n margin-block: var(--office-space-3);\n}\n.markdown-table:focus-visible {\n outline: var(--office-border-width) solid var(--office-foreground);\n}\ntable {\n border-collapse: collapse;\n min-width: 100%;\n}\nth,\ntd {\n padding: var(--office-space-2) var(--office-space-3);\n border: var(--office-border-width) solid var(--office-teams-divider);\n}\nth {\n background: var(--office-background);\n}\n[data-align='left'] {\n text-align: left;\n}\n[data-align='center'] {\n text-align: center;\n}\n[data-align='right'] {\n text-align: right;\n}\n.task-list {\n list-style: none;\n padding-inline-start: var(--office-space-3);\n}\n.task-list input {\n margin-inline-end: var(--office-space-2);\n}\n.heading {\n font-size: 1.3em;\n font-weight: bold;\n margin-block: var(--office-space-3);\n}\np[role],\n.hint {\n padding-inline: var(--office-space-3);\n}\niframe,\ndocx-editor,\nxlsx-editor,\nvisio-viewer,\nteams-presentation-preview {\n display: block;\n flex: 1;\n width: 100%;\n min-height: 0;\n border: 0;\n}\niframe {\n background: var(--office-background);\n}\nteams-presentation-preview {\n display: flex;\n}\n";
|
|
906
|
+
|
|
907
|
+
// src/xlsx/events.ts
|
|
908
|
+
var XLSX_EDITOR_EVENTS = [
|
|
909
|
+
"workbook-change",
|
|
910
|
+
"workbook-error",
|
|
911
|
+
"workbook-warning",
|
|
912
|
+
"readonly-change",
|
|
913
|
+
"ribbon-action",
|
|
914
|
+
"ribbon-customize",
|
|
915
|
+
"file-command",
|
|
916
|
+
"selection-change",
|
|
917
|
+
"sheet-change",
|
|
918
|
+
"dirty-change"
|
|
919
|
+
];
|
|
920
|
+
var CANCELABLE = /* @__PURE__ */ new Set(["file-command"]);
|
|
921
|
+
function emitEvent(target, type, detail) {
|
|
922
|
+
if (typeof CustomEvent === "undefined") return true;
|
|
923
|
+
return target.dispatchEvent(
|
|
924
|
+
new CustomEvent(type, {
|
|
925
|
+
detail,
|
|
926
|
+
bubbles: true,
|
|
927
|
+
composed: true,
|
|
928
|
+
cancelable: CANCELABLE.has(type)
|
|
929
|
+
})
|
|
930
|
+
);
|
|
931
|
+
}
|
|
932
|
+
function emit(target, type, detail) {
|
|
933
|
+
return emitEvent(target, type, detail);
|
|
934
|
+
}
|
|
935
|
+
|
|
936
|
+
// src/xlsx/file-commands.ts
|
|
937
|
+
var XLSX_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
|
938
|
+
var TYPES = {
|
|
939
|
+
xlsx: XLSX_TYPE,
|
|
940
|
+
xlsm: "application/vnd.ms-excel.sheet.macroEnabled.12",
|
|
941
|
+
csv: "text/csv;charset=utf-8",
|
|
942
|
+
xls: "application/vnd.ms-excel"
|
|
943
|
+
};
|
|
944
|
+
var OPEN_ACCEPT = ".xlsx,.xlsm,.xltx,.xls,.csv,.tsv,.txt";
|
|
945
|
+
function announceFileCommand(host, command, fileName) {
|
|
946
|
+
return emit(host, "file-command", { command, ...fileName === void 0 ? {} : { fileName } });
|
|
947
|
+
}
|
|
948
|
+
var extensionOf = (fileName) => /\.([^./\\]+)$/.exec(fileName)?.[1]?.toLowerCase() ?? "";
|
|
949
|
+
function withExtension(fileName, extension) {
|
|
950
|
+
const base = fileName.trim().replace(/\.[^./\\]+$/, "") || "Book1";
|
|
951
|
+
return `${base}.${extension}`;
|
|
952
|
+
}
|
|
953
|
+
function saveExtension(fileName) {
|
|
954
|
+
return extensionOf(fileName) === "xlsm" ? "xlsm" : "xlsx";
|
|
955
|
+
}
|
|
956
|
+
function blobFor(bytes, fileName) {
|
|
957
|
+
return new Blob([new Uint8Array(bytes)], { type: TYPES[extensionOf(fileName)] ?? XLSX_TYPE });
|
|
958
|
+
}
|
|
959
|
+
function downloadBytes(doc, bytes, fileName, mime) {
|
|
960
|
+
if (typeof URL.createObjectURL !== "function") return;
|
|
961
|
+
const url = URL.createObjectURL(
|
|
962
|
+
mime ? new Blob([new Uint8Array(bytes)], { type: mime }) : blobFor(bytes, fileName)
|
|
963
|
+
);
|
|
964
|
+
const anchor = doc.createElement("a");
|
|
965
|
+
anchor.href = url;
|
|
966
|
+
anchor.download = fileName;
|
|
967
|
+
anchor.style.display = "none";
|
|
968
|
+
doc.body.append(anchor);
|
|
969
|
+
anchor.click();
|
|
970
|
+
anchor.remove();
|
|
971
|
+
setTimeout(() => URL.revokeObjectURL(url), 1e3);
|
|
972
|
+
}
|
|
973
|
+
function pickFile(root, accept = OPEN_ACCEPT) {
|
|
974
|
+
const doc = root.ownerDocument ?? document;
|
|
975
|
+
const input = doc.createElement("input");
|
|
976
|
+
input.type = "file";
|
|
977
|
+
input.accept = accept;
|
|
978
|
+
input.hidden = true;
|
|
979
|
+
root.append(input);
|
|
980
|
+
return new Promise((resolve, reject) => {
|
|
981
|
+
input.addEventListener("change", () => {
|
|
982
|
+
const file = input.files?.[0];
|
|
983
|
+
input.remove();
|
|
984
|
+
if (!file) return resolve(void 0);
|
|
985
|
+
file.arrayBuffer().then((buffer) => resolve({ bytes: new Uint8Array(buffer), name: file.name }), reject);
|
|
986
|
+
});
|
|
987
|
+
input.addEventListener("cancel", () => {
|
|
988
|
+
input.remove();
|
|
989
|
+
resolve(void 0);
|
|
990
|
+
});
|
|
991
|
+
input.click();
|
|
992
|
+
});
|
|
993
|
+
}
|
|
994
|
+
function workbookActions(state, actions) {
|
|
995
|
+
return html`<button type="button" ?disabled=${state.saving} @click=${actions.toggle}>
|
|
996
|
+
${state.editing ? "View workbook" : "Edit workbook"}
|
|
997
|
+
</button>
|
|
998
|
+
<button type="button" ?disabled=${state.saving} @click=${actions.download}>
|
|
999
|
+
Download workbook copy
|
|
1000
|
+
</button>
|
|
1001
|
+
${state.canShare ? html`<button type="button" ?disabled=${state.saving || !state.editing} @click=${actions.share}>${state.saving ? "Saving copy..." : "Save copy to channel"}</button>` : nothing}
|
|
1002
|
+
${state.saving ? html`<button type="button" @click=${actions.cancel}>Cancel workbook save</button>` : nothing}`;
|
|
1003
|
+
}
|
|
1004
|
+
function inline(text, base) {
|
|
1005
|
+
return markdownInline(text, base).map((token) => {
|
|
1006
|
+
if (token.kind === "strong") return html`<strong>${token.text}</strong>`;
|
|
1007
|
+
if (token.kind === "emphasis") return html`<em>${token.text}</em>`;
|
|
1008
|
+
if (token.kind === "code") return html`<code>${token.text}</code>`;
|
|
1009
|
+
if (token.kind === "link")
|
|
1010
|
+
return html`<a href=${token.url} target="_blank" rel="noopener noreferrer"
|
|
1011
|
+
>${token.text}</a
|
|
1012
|
+
>`;
|
|
1013
|
+
return token.text;
|
|
1014
|
+
});
|
|
1015
|
+
}
|
|
1016
|
+
function markdownPreview(source, base) {
|
|
1017
|
+
return markdownBlocks(source).map((block) => {
|
|
1018
|
+
if (block.kind === "code") return html`<pre><code>${block.text}</code></pre>`;
|
|
1019
|
+
if (block.kind === "table" && block.table) {
|
|
1020
|
+
const table = block.table;
|
|
1021
|
+
return html`<div
|
|
1022
|
+
class="markdown-table"
|
|
1023
|
+
tabindex="0"
|
|
1024
|
+
role="region"
|
|
1025
|
+
aria-label="Markdown table"
|
|
1026
|
+
>
|
|
1027
|
+
<table>
|
|
1028
|
+
<thead>
|
|
1029
|
+
<tr>
|
|
1030
|
+
${table.headers.map((cell, column) => html`<th scope="col" data-align=${table.align[column] ?? "left"}>${inline(cell, base)}</th>`)}
|
|
1031
|
+
</tr>
|
|
1032
|
+
</thead>
|
|
1033
|
+
<tbody>
|
|
1034
|
+
${table.rows.map(
|
|
1035
|
+
(row) => html`<tr>
|
|
1036
|
+
${row.map((cell, column) => html`<td data-align=${table.align[column] ?? "left"}>${inline(cell, base)}</td>`)}
|
|
1037
|
+
</tr>`
|
|
1038
|
+
)}
|
|
1039
|
+
</tbody>
|
|
1040
|
+
</table>
|
|
1041
|
+
</div>`;
|
|
1042
|
+
}
|
|
1043
|
+
const text = inline(block.text, base);
|
|
1044
|
+
if (block.kind === "quote") return html`<blockquote>${text}</blockquote>`;
|
|
1045
|
+
if (block.kind === "list")
|
|
1046
|
+
return html`<ul class=${block.checked === void 0 ? "" : "task-list"}>
|
|
1047
|
+
<li>
|
|
1048
|
+
${block.checked === void 0 ? nothing : html`<input type="checkbox" aria-label=${block.text} ?checked=${block.checked} disabled />`}${text}
|
|
1049
|
+
</li>
|
|
1050
|
+
</ul>`;
|
|
1051
|
+
if (block.kind === "heading")
|
|
1052
|
+
return html`<div role="heading" aria-level=${block.level} class="heading">${text}</div>`;
|
|
1053
|
+
return html`<p>${text}</p>`;
|
|
1054
|
+
});
|
|
1055
|
+
}
|
|
1056
|
+
|
|
1057
|
+
// src/teams/app/content-preview.ts
|
|
1058
|
+
var TeamsContentPreview = class extends LitElement {
|
|
1059
|
+
static styles = unsafeCSS(content_preview_default);
|
|
1060
|
+
static properties = {
|
|
1061
|
+
detail: { attribute: false },
|
|
1062
|
+
embeds: { attribute: false },
|
|
1063
|
+
saveCopy: { attribute: false },
|
|
1064
|
+
editing: { state: true },
|
|
1065
|
+
dirty: { state: true },
|
|
1066
|
+
saving: { state: true },
|
|
1067
|
+
saveError: { state: true },
|
|
1068
|
+
saved: { state: true },
|
|
1069
|
+
downloaded: { state: true },
|
|
1070
|
+
status: { state: true },
|
|
1071
|
+
text: { state: true },
|
|
1072
|
+
frame: { state: true },
|
|
1073
|
+
native: { state: true },
|
|
1074
|
+
error: { state: true }
|
|
1075
|
+
};
|
|
1076
|
+
revision = 0;
|
|
1077
|
+
saveAbort;
|
|
1078
|
+
beforeUnload = (event) => {
|
|
1079
|
+
this.commitPendingEdit();
|
|
1080
|
+
if (this.dirty || this.saving) {
|
|
1081
|
+
event.preventDefault();
|
|
1082
|
+
event.returnValue = "";
|
|
1083
|
+
}
|
|
1084
|
+
};
|
|
1085
|
+
abort;
|
|
1086
|
+
constructor() {
|
|
1087
|
+
super();
|
|
1088
|
+
this.detail = null;
|
|
1089
|
+
this.embeds = {};
|
|
1090
|
+
this.saveCopy = void 0;
|
|
1091
|
+
this.editing = false;
|
|
1092
|
+
this.dirty = false;
|
|
1093
|
+
this.saving = false;
|
|
1094
|
+
this.saveError = "";
|
|
1095
|
+
this.saved = false;
|
|
1096
|
+
this.downloaded = false;
|
|
1097
|
+
this.status = "loading";
|
|
1098
|
+
this.text = "";
|
|
1099
|
+
this.frame = null;
|
|
1100
|
+
this.native = null;
|
|
1101
|
+
this.error = "";
|
|
1102
|
+
}
|
|
1103
|
+
updated(changed) {
|
|
1104
|
+
if (changed.has("detail") || changed.has("embeds")) void this.load();
|
|
1105
|
+
}
|
|
1106
|
+
disconnectedCallback() {
|
|
1107
|
+
this.saveAbort?.abort();
|
|
1108
|
+
this.abort?.abort();
|
|
1109
|
+
this.ownerDocument.defaultView?.removeEventListener("beforeunload", this.beforeUnload);
|
|
1110
|
+
super.disconnectedCallback();
|
|
1111
|
+
}
|
|
1112
|
+
connectedCallback() {
|
|
1113
|
+
super.connectedCallback();
|
|
1114
|
+
this.ownerDocument.defaultView?.addEventListener("beforeunload", this.beforeUnload);
|
|
1115
|
+
if (this.hasUpdated) void this.load();
|
|
1116
|
+
}
|
|
1117
|
+
/** Called by the workspace before replacing this pane. */
|
|
1118
|
+
canLeave() {
|
|
1119
|
+
if (this.saving) {
|
|
1120
|
+
this.saveError = "Wait for the workbook copy to finish saving or cancel the save.";
|
|
1121
|
+
return false;
|
|
1122
|
+
}
|
|
1123
|
+
if (!this.commitPendingEdit()) {
|
|
1124
|
+
this.saveError = "Finish or cancel the current cell edit before leaving.";
|
|
1125
|
+
return false;
|
|
1126
|
+
}
|
|
1127
|
+
return !this.dirty || globalThis.confirm?.("Discard unsaved workbook edits?") === true;
|
|
1128
|
+
}
|
|
1129
|
+
commitPendingEdit() {
|
|
1130
|
+
const viewer = this.shadowRoot?.querySelector(
|
|
1131
|
+
"xlsx-editor"
|
|
1132
|
+
);
|
|
1133
|
+
return viewer?.commitEdit() ?? true;
|
|
1134
|
+
}
|
|
1135
|
+
async load() {
|
|
1136
|
+
this.saveAbort?.abort();
|
|
1137
|
+
this.saveAbort = void 0;
|
|
1138
|
+
this.abort?.abort();
|
|
1139
|
+
const request = this.abort = new AbortController();
|
|
1140
|
+
this.editing = false;
|
|
1141
|
+
this.dirty = false;
|
|
1142
|
+
this.saving = false;
|
|
1143
|
+
this.saveError = "";
|
|
1144
|
+
this.saved = false;
|
|
1145
|
+
this.downloaded = false;
|
|
1146
|
+
this.status = "loading";
|
|
1147
|
+
this.text = "";
|
|
1148
|
+
this.frame = null;
|
|
1149
|
+
this.native = null;
|
|
1150
|
+
const detail = this.detail;
|
|
1151
|
+
if (!detail) return;
|
|
1152
|
+
const kind = detectContentKind(detail.attachment.name, detail.attachment.mime);
|
|
1153
|
+
try {
|
|
1154
|
+
const url = contentUrl(detail.url, this.ownerDocument.baseURI);
|
|
1155
|
+
if (!url) throw new Error("This content has no valid web URL");
|
|
1156
|
+
const embed = this.embeds[detail.attachment.kind];
|
|
1157
|
+
if (embed || kind === "website") {
|
|
1158
|
+
this.frame = contentUrl(embed ? embed(detail) : url, this.ownerDocument.baseURI);
|
|
1159
|
+
if (!this.frame) throw new Error("The viewer returned an invalid embed URL");
|
|
1160
|
+
this.status = "ready";
|
|
1161
|
+
return;
|
|
1162
|
+
}
|
|
1163
|
+
if (kind === "other") throw new Error("No embedded viewer is configured for this file type");
|
|
1164
|
+
const bytes = await readContent(
|
|
1165
|
+
url,
|
|
1166
|
+
request.signal,
|
|
1167
|
+
kind === "markdown" || kind === "text" ? 2097152 : 33554432
|
|
1168
|
+
);
|
|
1169
|
+
if (request.signal.aborted) return;
|
|
1170
|
+
if (kind === "markdown" || kind === "text") {
|
|
1171
|
+
this.text = new TextDecoder().decode(bytes);
|
|
1172
|
+
} else {
|
|
1173
|
+
if (kind === "docx") (await import('./docx.js')).registerDocxEditor();
|
|
1174
|
+
if (kind === "xlsx") (await import('./xlsx.js')).defineXlsxEditor();
|
|
1175
|
+
if (kind === "vsdx") (await import('./visio.js')).registerVisioViewer();
|
|
1176
|
+
if (kind === "pptx")
|
|
1177
|
+
(await import('./presentation-preview-HF3GZ2VD.js')).defineTeamsPresentationPreview();
|
|
1178
|
+
if (request.signal.aborted) return;
|
|
1179
|
+
this.native = kind;
|
|
1180
|
+
await this.updateComplete;
|
|
1181
|
+
if (request.signal.aborted) return;
|
|
1182
|
+
const viewer = this.shadowRoot?.querySelector("docx-editor, xlsx-editor, visio-viewer, teams-presentation-preview");
|
|
1183
|
+
if (!viewer) throw new Error("The viewer could not be mounted");
|
|
1184
|
+
await viewer.load(bytes, detail.attachment.name);
|
|
1185
|
+
}
|
|
1186
|
+
if (!request.signal.aborted) this.status = "ready";
|
|
1187
|
+
} catch (error) {
|
|
1188
|
+
if (request.signal.aborted) return;
|
|
1189
|
+
this.native = null;
|
|
1190
|
+
this.error = error instanceof Error ? error.message : "Could not preview content";
|
|
1191
|
+
this.status = "error";
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1194
|
+
toggleWorkbook() {
|
|
1195
|
+
if (!this.commitPendingEdit()) {
|
|
1196
|
+
this.saveError = "Finish or cancel the current cell edit before switching modes.";
|
|
1197
|
+
return;
|
|
1198
|
+
}
|
|
1199
|
+
this.saveError = "";
|
|
1200
|
+
this.editing = !this.editing;
|
|
1201
|
+
}
|
|
1202
|
+
async saveWorkbookCopy(download = false) {
|
|
1203
|
+
if (this.saving || !download && !this.saveCopy || this.native !== "xlsx" || !this.detail)
|
|
1204
|
+
return;
|
|
1205
|
+
if (!this.commitPendingEdit()) {
|
|
1206
|
+
this.saveError = "Finish or cancel the current cell edit before saving.";
|
|
1207
|
+
return;
|
|
1208
|
+
}
|
|
1209
|
+
const viewer = this.shadowRoot?.querySelector("xlsx-editor");
|
|
1210
|
+
if (!viewer) return;
|
|
1211
|
+
const callback = this.saveCopy;
|
|
1212
|
+
const request = this.abort;
|
|
1213
|
+
const controller = new AbortController();
|
|
1214
|
+
this.saveAbort = controller;
|
|
1215
|
+
const name = withExtension(
|
|
1216
|
+
this.detail.attachment.name,
|
|
1217
|
+
saveExtension(this.detail.attachment.name)
|
|
1218
|
+
);
|
|
1219
|
+
this.saving = true;
|
|
1220
|
+
this.saveError = "";
|
|
1221
|
+
this.saved = false;
|
|
1222
|
+
this.downloaded = false;
|
|
1223
|
+
try {
|
|
1224
|
+
const pendingBytes = viewer.saveBytes();
|
|
1225
|
+
const revision = this.revision;
|
|
1226
|
+
const bytes = await pendingBytes;
|
|
1227
|
+
if (request?.signal.aborted || controller.signal.aborted) return;
|
|
1228
|
+
if (download) {
|
|
1229
|
+
downloadBytes(this.ownerDocument, bytes, name);
|
|
1230
|
+
this.downloaded = true;
|
|
1231
|
+
return;
|
|
1232
|
+
}
|
|
1233
|
+
const blob = blobFor(bytes, name);
|
|
1234
|
+
await callback(new File([blob], name, { type: blob.type }), { signal: controller.signal });
|
|
1235
|
+
if (request?.signal.aborted || controller.signal.aborted) return;
|
|
1236
|
+
if (revision === this.revision) viewer.markClean();
|
|
1237
|
+
this.saveError = "";
|
|
1238
|
+
this.saved = true;
|
|
1239
|
+
} catch (error) {
|
|
1240
|
+
if (!request?.signal.aborted && !controller.signal.aborted)
|
|
1241
|
+
this.saveError = error instanceof Error ? error.message : "Could not save the workbook copy";
|
|
1242
|
+
} finally {
|
|
1243
|
+
if (this.saveAbort === controller) {
|
|
1244
|
+
this.saveAbort = void 0;
|
|
1245
|
+
if (!request?.signal.aborted) this.saving = false;
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1249
|
+
cancelWorkbookSave() {
|
|
1250
|
+
this.saveAbort?.abort();
|
|
1251
|
+
this.saveAbort = void 0;
|
|
1252
|
+
this.saving = false;
|
|
1253
|
+
this.saveError = "Workbook save canceled. Your edits remain local.";
|
|
1254
|
+
}
|
|
1255
|
+
render() {
|
|
1256
|
+
const detail = this.detail;
|
|
1257
|
+
if (!detail) return nothing;
|
|
1258
|
+
const kind = detectContentKind(detail.attachment.name, detail.attachment.mime);
|
|
1259
|
+
const url = contentUrl(detail.url, this.ownerDocument.baseURI);
|
|
1260
|
+
return html`<section aria-label="Content preview">
|
|
1261
|
+
<header>
|
|
1262
|
+
<h2>${detail.attachment.name}</h2>
|
|
1263
|
+
${this.native === "xlsx" && this.status === "ready" ? workbookActions(
|
|
1264
|
+
{ editing: this.editing, saving: this.saving, canShare: !!this.saveCopy },
|
|
1265
|
+
{
|
|
1266
|
+
toggle: () => this.toggleWorkbook(),
|
|
1267
|
+
share: () => void this.saveWorkbookCopy(),
|
|
1268
|
+
download: () => void this.saveWorkbookCopy(true),
|
|
1269
|
+
cancel: () => this.cancelWorkbookSave()
|
|
1270
|
+
}
|
|
1271
|
+
) : nothing}
|
|
1272
|
+
${url ? html`<a href=${url} target="_blank" rel="noopener noreferrer">Open externally</a>` : nothing}
|
|
1273
|
+
<button
|
|
1274
|
+
type="button"
|
|
1275
|
+
@click=${() => this.dispatchEvent(new CustomEvent("teams-preview-close", { bubbles: true, composed: true }))}
|
|
1276
|
+
>
|
|
1277
|
+
Close preview
|
|
1278
|
+
</button>
|
|
1279
|
+
</header>
|
|
1280
|
+
${this.native === "xlsx" ? html`<p class="hint">Edits stay local. Download a copy${this.saveCopy ? " or save a copy to the channel" : ""} to keep them. Other people keep their own copy open.</p>` : nothing}
|
|
1281
|
+
${this.saved ? html`<p role="status">Workbook copy shared in the channel.</p>` : nothing}
|
|
1282
|
+
${this.downloaded ? html`<p role="status">Workbook download started. Your changes remain local.</p>` : nothing}
|
|
1283
|
+
${this.saveError ? html`<p role="alert">${this.saveError}</p>` : nothing}
|
|
1284
|
+
${this.status === "loading" ? html`<p role="status">Loading preview...</p>` : nothing}
|
|
1285
|
+
${this.status === "error" ? html`<p role="alert">${this.error}</p>
|
|
1286
|
+
<button type="button" @click=${() => void this.load()}>Retry</button>` : nothing}
|
|
1287
|
+
${this.frame ? html`<p class="hint">If this site blocks embedding, use Open externally.</p>
|
|
1288
|
+
<iframe
|
|
1289
|
+
title=${detail.attachment.name}
|
|
1290
|
+
src=${this.frame}
|
|
1291
|
+
sandbox="allow-scripts allow-forms"
|
|
1292
|
+
referrerpolicy="no-referrer"
|
|
1293
|
+
></iframe>` : nothing}
|
|
1294
|
+
${keyed(
|
|
1295
|
+
detail,
|
|
1296
|
+
this.native === "docx" ? html`<docx-editor .readOnly=${true} .fileName=${detail.attachment.name}></docx-editor>` : this.native === "xlsx" ? html`<xlsx-editor
|
|
1297
|
+
.readOnly=${!this.editing}
|
|
1298
|
+
.fileName=${detail.attachment.name}
|
|
1299
|
+
@workbook-change=${() => {
|
|
1300
|
+
this.revision++;
|
|
1301
|
+
this.saved = false;
|
|
1302
|
+
this.downloaded = false;
|
|
1303
|
+
}}
|
|
1304
|
+
@dirty-change=${(e) => this.dirty = e.detail.dirty}
|
|
1305
|
+
@readonly-change=${(e) => {
|
|
1306
|
+
this.editing = !e.detail.readOnly;
|
|
1307
|
+
}}
|
|
1308
|
+
@file-command=${(e) => {
|
|
1309
|
+
if (["save", "saveAs", "export", "exportCsv"].includes(e.detail.command) && !this.commitPendingEdit()) {
|
|
1310
|
+
e.preventDefault();
|
|
1311
|
+
this.saveError = "Finish or cancel the current cell edit before saving.";
|
|
1312
|
+
return;
|
|
1313
|
+
}
|
|
1314
|
+
if (e.detail.command === "save") {
|
|
1315
|
+
e.preventDefault();
|
|
1316
|
+
void this.saveWorkbookCopy(!this.saveCopy);
|
|
1317
|
+
}
|
|
1318
|
+
if (e.detail.command === "new" || e.detail.command === "open") e.preventDefault();
|
|
1319
|
+
}}
|
|
1320
|
+
></xlsx-editor>` : this.native === "vsdx" ? html`<visio-viewer .showToolbar=${false}></visio-viewer>` : this.native === "pptx" ? html`<teams-presentation-preview></teams-presentation-preview>` : nothing
|
|
1321
|
+
)}
|
|
1322
|
+
${this.status === "ready" && !this.frame && !this.native ? html`<article>
|
|
1323
|
+
${kind === "markdown" ? markdownPreview(this.text, url) : html`<pre>${this.text}</pre>`}
|
|
1324
|
+
</article>` : nothing}
|
|
1325
|
+
</section>`;
|
|
1326
|
+
}
|
|
1327
|
+
};
|
|
1328
|
+
function defineTeamsContentPreview() {
|
|
1329
|
+
if (globalThis.customElements && !customElements.get("teams-content-preview"))
|
|
1330
|
+
customElements.define("teams-content-preview", TeamsContentPreview);
|
|
1331
|
+
}
|
|
1332
|
+
|
|
1333
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app/channel-tab.css?raw
|
|
1334
|
+
var channel_tab_default = ":host {\n display: flex;\n flex: 1;\n min-height: 0;\n min-width: 0;\n}\n";
|
|
1335
|
+
|
|
1336
|
+
// src/teams/app/channel-tab.ts
|
|
1337
|
+
var TeamsChannelTab = class extends LitElement {
|
|
1338
|
+
static styles = unsafeCSS(channel_tab_default);
|
|
1339
|
+
static properties = {
|
|
1340
|
+
tab: { attribute: false },
|
|
1341
|
+
client: { attribute: false },
|
|
1342
|
+
embeds: { attribute: false },
|
|
1343
|
+
canSave: { type: Boolean },
|
|
1344
|
+
detail: { state: true },
|
|
1345
|
+
error: { state: true }
|
|
1346
|
+
};
|
|
1347
|
+
key = "";
|
|
1348
|
+
owner = null;
|
|
1349
|
+
generation = 0;
|
|
1350
|
+
constructor() {
|
|
1351
|
+
super();
|
|
1352
|
+
this.tab = null;
|
|
1353
|
+
this.client = null;
|
|
1354
|
+
this.embeds = {};
|
|
1355
|
+
this.canSave = false;
|
|
1356
|
+
this.detail = null;
|
|
1357
|
+
this.error = "";
|
|
1358
|
+
}
|
|
1359
|
+
updated(changed) {
|
|
1360
|
+
if (changed.has("tab") || changed.has("client")) void this.resolve();
|
|
1361
|
+
}
|
|
1362
|
+
disconnectedCallback() {
|
|
1363
|
+
this.generation++;
|
|
1364
|
+
this.key = "";
|
|
1365
|
+
this.owner = null;
|
|
1366
|
+
super.disconnectedCallback();
|
|
1367
|
+
}
|
|
1368
|
+
connectedCallback() {
|
|
1369
|
+
super.connectedCallback();
|
|
1370
|
+
if (this.hasUpdated) void this.resolve();
|
|
1371
|
+
}
|
|
1372
|
+
async resolve() {
|
|
1373
|
+
const { tab, client } = this;
|
|
1374
|
+
const key = tab ? `${tab.id}:${JSON.stringify(tab.content)}` : "";
|
|
1375
|
+
if (key === this.key && this.owner === client) return;
|
|
1376
|
+
this.key = key;
|
|
1377
|
+
this.owner = client;
|
|
1378
|
+
const generation = ++this.generation;
|
|
1379
|
+
this.detail = null;
|
|
1380
|
+
this.error = "";
|
|
1381
|
+
if (!tab || !client) return;
|
|
1382
|
+
const attachment = tab.content.type === "file" ? tab.content.attachment : { name: tab.name, kind: "other", mime: "text/html", url: tab.content.url };
|
|
1383
|
+
try {
|
|
1384
|
+
const url = tab.content.type === "file" ? await client.fileUrl(attachment) : attachment.url;
|
|
1385
|
+
if (generation !== this.generation || !this.isConnected) return;
|
|
1386
|
+
if (!url) throw new Error("Could not resolve the tab content");
|
|
1387
|
+
this.detail = { attachment, url, channelId: tab.channelId };
|
|
1388
|
+
} catch (error) {
|
|
1389
|
+
if (generation === this.generation)
|
|
1390
|
+
this.error = error instanceof Error ? error.message : "Could not open the tab";
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
saveCopy() {
|
|
1394
|
+
const { client, tab } = this;
|
|
1395
|
+
if (!this.canSave || !client || !tab) return void 0;
|
|
1396
|
+
return async (file, options) => {
|
|
1397
|
+
await client.saveFileCopy(tab.channelId, file, options);
|
|
1398
|
+
};
|
|
1399
|
+
}
|
|
1400
|
+
render() {
|
|
1401
|
+
return html`${this.error ? html`<p role="alert">${this.error}</p>
|
|
1402
|
+
<button
|
|
1403
|
+
type="button"
|
|
1404
|
+
@click=${() => {
|
|
1405
|
+
this.key = "";
|
|
1406
|
+
void this.resolve();
|
|
1407
|
+
}}
|
|
1408
|
+
>
|
|
1409
|
+
Retry
|
|
1410
|
+
</button>` : this.detail ? html`<teams-content-preview
|
|
1411
|
+
.detail=${this.detail}
|
|
1412
|
+
.embeds=${this.embeds}
|
|
1413
|
+
.saveCopy=${this.saveCopy()}
|
|
1414
|
+
></teams-content-preview>` : html`<p role="status">Opening tab...</p>`}`;
|
|
1415
|
+
}
|
|
1416
|
+
};
|
|
1417
|
+
function defineTeamsChannelTab() {
|
|
1418
|
+
if (globalThis.customElements && !customElements.get("teams-channel-tab"))
|
|
1419
|
+
customElements.define("teams-channel-tab", TeamsChannelTab);
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app/files-panel.css?raw
|
|
1423
|
+
var files_panel_default = ":host {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n min-width: 0;\n font: var(--office-font-size) var(--office-font);\n color: var(--office-foreground);\n background: var(--office-background);\n overflow: auto;\n}\n.toolbar,\n.transfer,\nform {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--office-space-3);\n padding: var(--office-space-3);\n}\ninput,\nbutton {\n font: inherit;\n color: inherit;\n}\ninput[type='search'],\ninput[name='name'] {\n box-sizing: border-box;\n min-width: 10em;\n padding: var(--office-space-2);\n background: var(--office-background);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n}\n.toolbar input[type='search'] {\n width: min(22em, 100%);\n}\n.toolbar-space {\n flex: 1;\n}\n.new-control {\n position: relative;\n}\n.new-menu {\n position: absolute;\n inset-block-start: calc(100% + var(--office-space-1));\n inset-inline-start: 0;\n z-index: 1;\n padding: var(--office-space-1);\n background: var(--office-popover);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n box-shadow: var(--office-shadow-teams);\n white-space: nowrap;\n}\n.new-menu button {\n border: 0;\n}\n.file-picker {\n display: none;\n}\nbutton {\n cursor: pointer;\n padding: var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-background);\n}\nbutton:disabled {\n cursor: default;\n opacity: 0.5;\n}\nbutton:hover:not(:disabled) {\n background: var(--office-selected);\n}\nbutton.primary {\n background: var(--office-teams-brand);\n color: var(--office-teams-brand-foreground);\n border-color: transparent;\n}\nbutton.primary:hover:not(:disabled) {\n background: var(--office-teams-brand-hover);\n}\n:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\n.hint,\n[role='status'],\n[role='alert'] {\n margin: 0;\n padding: var(--office-space-2) var(--office-space-3);\n}\n.hint {\n color: var(--office-teams-text-subtle);\n}\n.file-list {\n position: relative;\n min-width: 0;\n min-height: 0;\n flex: 1;\n padding: var(--office-space-3);\n overflow-x: auto;\n}\ntable {\n border-collapse: collapse;\n width: 100%;\n text-align: start;\n}\nth,\ntd {\n padding: var(--office-space-3) var(--office-space-2);\n border-block-end: var(--office-border-width) solid var(--office-teams-divider);\n}\nth {\n text-align: start;\n font-weight: var(--office-font-weight-bold);\n white-space: nowrap;\n}\ntd:not(:first-child) {\n color: var(--office-teams-text-subtle);\n font-size: var(--office-font-size-sm);\n}\ntbody tr:hover {\n background: var(--office-selected);\n}\n.none {\n padding-block: var(--office-space-6);\n text-align: center;\n color: var(--office-teams-text-subtle);\n}\n.file-name {\n display: flex;\n align-items: center;\n gap: var(--office-space-3);\n min-width: 12em;\n}\n.file-open {\n border: 0;\n background: transparent;\n text-align: start;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n.file-open:hover:not(:disabled) {\n color: var(--office-teams-brand);\n text-decoration: underline;\n}\n.visually-hidden {\n position: absolute;\n width: 1em;\n height: 1em;\n clip-path: inset(50%);\n overflow: hidden;\n}\n.badge {\n flex-shrink: 0;\n display: grid;\n place-items: center;\n width: 2.2em;\n height: 2.2em;\n border-radius: var(--office-radius-md);\n background: var(--office-file-other);\n color: var(--office-call-foreground);\n font-weight: var(--office-font-weight-bold);\n}\n.badge[data-kind='docx'] {\n background: var(--office-file-docx);\n}\n.badge[data-kind='xlsx'] {\n background: var(--office-file-xlsx);\n}\n.badge[data-kind='pptx'] {\n background: var(--office-file-pptx);\n}\n.badge[data-kind='vsdx'] {\n background: var(--office-file-vsdx);\n}\n";
|
|
1424
|
+
|
|
1425
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app/file-actions.css?raw
|
|
1426
|
+
var file_actions_default = ":host {\n display: block;\n font: inherit;\n color: inherit;\n}\nbutton {\n font: inherit;\n color: inherit;\n cursor: pointer;\n border: 0;\n background: transparent;\n border-radius: var(--office-radius);\n padding: var(--office-space-2) var(--office-space-3);\n}\nbutton:hover {\n background: var(--office-selected);\n}\nbutton:disabled {\n opacity: 0.5;\n cursor: default;\n}\n[popover] {\n margin: auto;\n min-width: 15em;\n max-width: min(24em, 90vw);\n padding: var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n box-shadow: var(--office-shadow-teams);\n color: var(--office-foreground);\n background: var(--office-popover);\n}\n[popover] button {\n display: block;\n width: 100%;\n text-align: start;\n}\np {\n margin: var(--office-space-2);\n font-size: var(--office-font-size-sm);\n}\n[role='alert'] {\n color: var(--office-danger);\n}\nlabel {\n display: grid;\n gap: var(--office-space-1);\n padding: var(--office-space-2);\n}\ninput {\n min-width: 0;\n width: 100%;\n box-sizing: border-box;\n padding: var(--office-space-2);\n font: inherit;\n background: var(--office-field-background);\n color: inherit;\n border: var(--office-border-width) solid var(--office-field-border);\n border-radius: var(--office-radius);\n}\n:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\n";
|
|
1427
|
+
|
|
1428
|
+
// src/teams/app/anchored-popover.ts
|
|
1429
|
+
function toggleAnchoredPopover(panel, trigger) {
|
|
1430
|
+
if (panel.matches(":popover-open")) {
|
|
1431
|
+
panel.hidePopover();
|
|
1432
|
+
return false;
|
|
1433
|
+
}
|
|
1434
|
+
panel.showPopover();
|
|
1435
|
+
const button = trigger.getBoundingClientRect();
|
|
1436
|
+
const bounds = panel.getBoundingClientRect();
|
|
1437
|
+
const view = panel.ownerDocument.defaultView;
|
|
1438
|
+
panel.style.inset = "auto";
|
|
1439
|
+
panel.style.margin = "0";
|
|
1440
|
+
panel.style.left = `${Math.max(0, Math.min(button.right - bounds.width, view.innerWidth - bounds.width))}px`;
|
|
1441
|
+
panel.style.top = `${Math.max(0, Math.min(button.bottom, view.innerHeight - bounds.height))}px`;
|
|
1442
|
+
return true;
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
// src/teams/app/file-actions.ts
|
|
1446
|
+
var fileKey = (file) => JSON.stringify([file?.channelId, file?.messageId, file?.url, file?.name]);
|
|
1447
|
+
var TeamsFileActions = class extends LitElement {
|
|
1448
|
+
static styles = unsafeCSS(file_actions_default);
|
|
1449
|
+
static properties = {
|
|
1450
|
+
file: { attribute: false },
|
|
1451
|
+
client: { attribute: false },
|
|
1452
|
+
busy: { state: true },
|
|
1453
|
+
error: { state: true },
|
|
1454
|
+
copied: { state: true },
|
|
1455
|
+
copyUrl: { state: true },
|
|
1456
|
+
menuOpen: { state: true }
|
|
1457
|
+
};
|
|
1458
|
+
abort;
|
|
1459
|
+
toggleMenu() {
|
|
1460
|
+
const menu = this.renderRoot.querySelector("[popover]");
|
|
1461
|
+
toggleAnchoredPopover(menu, this.renderRoot.querySelector("button"));
|
|
1462
|
+
}
|
|
1463
|
+
constructor() {
|
|
1464
|
+
super();
|
|
1465
|
+
this.file = null;
|
|
1466
|
+
this.client = null;
|
|
1467
|
+
this.busy = false;
|
|
1468
|
+
this.error = "";
|
|
1469
|
+
this.copied = false;
|
|
1470
|
+
this.copyUrl = "";
|
|
1471
|
+
this.menuOpen = false;
|
|
1472
|
+
}
|
|
1473
|
+
disconnectedCallback() {
|
|
1474
|
+
this.abort?.abort();
|
|
1475
|
+
super.disconnectedCallback();
|
|
1476
|
+
}
|
|
1477
|
+
willUpdate(changed) {
|
|
1478
|
+
if (changed.has("file") && fileKey(changed.get("file")) !== fileKey(this.file) || changed.has("client") && changed.get("client") !== void 0) {
|
|
1479
|
+
this.abort?.abort();
|
|
1480
|
+
this.copyUrl = "";
|
|
1481
|
+
this.error = "";
|
|
1482
|
+
this.copied = false;
|
|
1483
|
+
this.renderRoot.querySelector("[popover]")?.hidePopover();
|
|
1484
|
+
}
|
|
1485
|
+
}
|
|
1486
|
+
open(action) {
|
|
1487
|
+
this.renderRoot.querySelector("[popover]")?.hidePopover();
|
|
1488
|
+
this.dispatchEvent(
|
|
1489
|
+
new CustomEvent(`teams-files-${action}`, {
|
|
1490
|
+
detail: { attachment: this.file, ...action === "open" ? { mode: "teams" } : {} },
|
|
1491
|
+
bubbles: true,
|
|
1492
|
+
composed: true
|
|
1493
|
+
})
|
|
1494
|
+
);
|
|
1495
|
+
}
|
|
1496
|
+
async transfer(action) {
|
|
1497
|
+
if (this.busy || !this.file || !this.client) return;
|
|
1498
|
+
const { file, client } = this;
|
|
1499
|
+
const abort = new AbortController();
|
|
1500
|
+
this.abort = abort;
|
|
1501
|
+
this.busy = true;
|
|
1502
|
+
this.error = "";
|
|
1503
|
+
this.copied = false;
|
|
1504
|
+
try {
|
|
1505
|
+
const url = contentUrl(await client.fileUrl(file), this.ownerDocument.baseURI);
|
|
1506
|
+
if (!this.isConnected || abort.signal.aborted) return;
|
|
1507
|
+
if (!url) throw new Error("The file is no longer available");
|
|
1508
|
+
if (action === "download") {
|
|
1509
|
+
const bytes = await readContent(url, abort.signal, 33554432);
|
|
1510
|
+
if (this.isConnected && !abort.signal.aborted)
|
|
1511
|
+
downloadBytes(
|
|
1512
|
+
this.ownerDocument,
|
|
1513
|
+
bytes,
|
|
1514
|
+
file.name,
|
|
1515
|
+
file.mime ?? "application/octet-stream"
|
|
1516
|
+
);
|
|
1517
|
+
} else {
|
|
1518
|
+
this.copyUrl = url;
|
|
1519
|
+
try {
|
|
1520
|
+
await navigator.clipboard.writeText(url);
|
|
1521
|
+
if (!abort.signal.aborted && this.isConnected) this.copied = true;
|
|
1522
|
+
} catch {
|
|
1523
|
+
}
|
|
1524
|
+
}
|
|
1525
|
+
} catch (error) {
|
|
1526
|
+
if (!abort.signal.aborted)
|
|
1527
|
+
this.error = error instanceof Error ? error.message : "Could not access this file";
|
|
1528
|
+
} finally {
|
|
1529
|
+
if (this.abort === abort) {
|
|
1530
|
+
this.abort = void 0;
|
|
1531
|
+
this.busy = false;
|
|
1532
|
+
}
|
|
1533
|
+
}
|
|
1534
|
+
}
|
|
1535
|
+
render() {
|
|
1536
|
+
return html`<button
|
|
1537
|
+
type="button"
|
|
1538
|
+
aria-label=${`More actions for ${this.file?.name ?? "file"}`}
|
|
1539
|
+
?disabled=${!this.file?.url}
|
|
1540
|
+
aria-controls="actions"
|
|
1541
|
+
aria-expanded=${String(this.menuOpen)}
|
|
1542
|
+
@click=${this.toggleMenu}
|
|
1543
|
+
>
|
|
1544
|
+
…
|
|
1545
|
+
</button>
|
|
1546
|
+
<div
|
|
1547
|
+
id="actions"
|
|
1548
|
+
popover="auto"
|
|
1549
|
+
aria-label="File actions"
|
|
1550
|
+
@toggle=${() => this.menuOpen = this.renderRoot.querySelector("[popover]").matches(":popover-open")}
|
|
1551
|
+
>
|
|
1552
|
+
<button type="button" @click=${() => this.open("open")}>Open in OpenTeams</button>
|
|
1553
|
+
<button type="button" @click=${() => this.open("browser")}>Open in browser</button>
|
|
1554
|
+
<button type="button" ?disabled=${this.busy} @click=${() => void this.transfer("download")}>
|
|
1555
|
+
Download
|
|
1556
|
+
</button>
|
|
1557
|
+
<button type="button" ?disabled=${this.busy} @click=${() => void this.transfer("copy")}>
|
|
1558
|
+
Copy link
|
|
1559
|
+
</button>
|
|
1560
|
+
<button type="button" @click=${() => this.open("pin")}>Pin as tab</button>
|
|
1561
|
+
${this.busy ? html`<p role="status">Preparing file…</p>
|
|
1562
|
+
<button type="button" @click=${() => this.abort?.abort()}>Cancel</button>` : nothing}
|
|
1563
|
+
${this.error ? html`<p role="alert">${this.error}</p>` : nothing}
|
|
1564
|
+
${this.copied ? html`<p role="status">Link copied</p>` : nothing}
|
|
1565
|
+
${this.copyUrl ? html`<label>File link<input readonly .value=${this.copyUrl} @focus=${(event) => event.target.select()} /></label>` : nothing}
|
|
1566
|
+
</div>`;
|
|
1567
|
+
}
|
|
1568
|
+
};
|
|
1569
|
+
function defineTeamsFileActions() {
|
|
1570
|
+
if (!customElements.get("teams-file-actions"))
|
|
1571
|
+
customElements.define("teams-file-actions", TeamsFileActions);
|
|
1572
|
+
}
|
|
1573
|
+
|
|
1574
|
+
// src/teams/app/files-panel.ts
|
|
1575
|
+
var TeamsFilesPanel = class extends LitElement {
|
|
1576
|
+
static styles = unsafeCSS(files_panel_default);
|
|
1577
|
+
static properties = {
|
|
1578
|
+
client: { attribute: false },
|
|
1579
|
+
files: { attribute: false },
|
|
1580
|
+
channelId: { attribute: false },
|
|
1581
|
+
channelName: { attribute: false },
|
|
1582
|
+
canUpload: { type: Boolean },
|
|
1583
|
+
query: { state: true },
|
|
1584
|
+
creating: { state: true },
|
|
1585
|
+
newMenu: { state: true },
|
|
1586
|
+
busy: { state: true },
|
|
1587
|
+
error: { state: true },
|
|
1588
|
+
destination: { state: true },
|
|
1589
|
+
transfer: { state: true },
|
|
1590
|
+
canceled: { state: true }
|
|
1591
|
+
};
|
|
1592
|
+
active;
|
|
1593
|
+
retry;
|
|
1594
|
+
constructor() {
|
|
1595
|
+
super();
|
|
1596
|
+
this.client = null;
|
|
1597
|
+
this.files = [];
|
|
1598
|
+
this.channelId = "";
|
|
1599
|
+
this.channelName = "";
|
|
1600
|
+
this.canUpload = false;
|
|
1601
|
+
this.query = "";
|
|
1602
|
+
this.creating = false;
|
|
1603
|
+
this.newMenu = false;
|
|
1604
|
+
this.busy = false;
|
|
1605
|
+
this.error = "";
|
|
1606
|
+
this.destination = "";
|
|
1607
|
+
this.transfer = null;
|
|
1608
|
+
this.canceled = false;
|
|
1609
|
+
}
|
|
1610
|
+
disconnectedCallback() {
|
|
1611
|
+
this.active?.abort();
|
|
1612
|
+
super.disconnectedCallback();
|
|
1613
|
+
}
|
|
1614
|
+
connectedCallback() {
|
|
1615
|
+
defineTeamsFileActions();
|
|
1616
|
+
super.connectedCallback();
|
|
1617
|
+
}
|
|
1618
|
+
updated(changed) {
|
|
1619
|
+
if (changed.has("client")) {
|
|
1620
|
+
this.active?.abort();
|
|
1621
|
+
this.active = void 0;
|
|
1622
|
+
this.busy = false;
|
|
1623
|
+
this.transfer = null;
|
|
1624
|
+
this.canceled = false;
|
|
1625
|
+
this.retry = void 0;
|
|
1626
|
+
this.error = "";
|
|
1627
|
+
}
|
|
1628
|
+
}
|
|
1629
|
+
emit(action, attachment) {
|
|
1630
|
+
this.dispatchEvent(
|
|
1631
|
+
new CustomEvent(`teams-files-${action}`, {
|
|
1632
|
+
detail: { attachment },
|
|
1633
|
+
bubbles: true,
|
|
1634
|
+
composed: true
|
|
1635
|
+
})
|
|
1636
|
+
);
|
|
1637
|
+
}
|
|
1638
|
+
async run(task) {
|
|
1639
|
+
if (this.busy) return;
|
|
1640
|
+
const client = this.client;
|
|
1641
|
+
const controller = new AbortController();
|
|
1642
|
+
this.active = controller;
|
|
1643
|
+
if (this.retry !== task) this.destination = this.channelName;
|
|
1644
|
+
this.busy = true;
|
|
1645
|
+
this.error = "";
|
|
1646
|
+
this.canceled = false;
|
|
1647
|
+
this.transfer = null;
|
|
1648
|
+
this.retry = task;
|
|
1649
|
+
try {
|
|
1650
|
+
await task({
|
|
1651
|
+
signal: controller.signal,
|
|
1652
|
+
onProgress: (progress) => {
|
|
1653
|
+
if (this.active === controller && this.client === client && this.isConnected)
|
|
1654
|
+
this.transfer = progress;
|
|
1655
|
+
}
|
|
1656
|
+
});
|
|
1657
|
+
if (this.client === client && this.active === controller) this.retry = void 0;
|
|
1658
|
+
} catch (error) {
|
|
1659
|
+
if (this.client === client && this.active === controller && this.isConnected) {
|
|
1660
|
+
this.canceled = controller.signal.aborted;
|
|
1661
|
+
if (!this.canceled)
|
|
1662
|
+
this.error = error instanceof Error ? error.message : "Could not share files";
|
|
1663
|
+
}
|
|
1664
|
+
} finally {
|
|
1665
|
+
if (this.active === controller) {
|
|
1666
|
+
this.active = void 0;
|
|
1667
|
+
this.busy = false;
|
|
1668
|
+
}
|
|
1669
|
+
}
|
|
1670
|
+
}
|
|
1671
|
+
upload(event) {
|
|
1672
|
+
const input = event.target;
|
|
1673
|
+
const files = Array.from(input.files ?? []);
|
|
1674
|
+
input.value = "";
|
|
1675
|
+
const { client, channelId } = this;
|
|
1676
|
+
if (!client || !files.length) return;
|
|
1677
|
+
void this.run((options) => client.uploadFiles(channelId, files, options));
|
|
1678
|
+
}
|
|
1679
|
+
create(event) {
|
|
1680
|
+
event.preventDefault();
|
|
1681
|
+
const name = String(new FormData(event.target).get("name") ?? "");
|
|
1682
|
+
const { client, channelId } = this;
|
|
1683
|
+
if (!client) return;
|
|
1684
|
+
void this.run(async (options) => {
|
|
1685
|
+
const attachment = await client.createWorkbook(channelId, name, options);
|
|
1686
|
+
if (!this.isConnected || this.client !== client || this.channelId !== channelId) return;
|
|
1687
|
+
this.creating = false;
|
|
1688
|
+
this.emit("open", { ...attachment, channelId });
|
|
1689
|
+
});
|
|
1690
|
+
}
|
|
1691
|
+
render() {
|
|
1692
|
+
const files = filterFiles(this.files, this.query);
|
|
1693
|
+
const disabled = this.busy || !this.canUpload || !this.channelId;
|
|
1694
|
+
return html`<div class="toolbar" role="toolbar" aria-label="File actions">
|
|
1695
|
+
<div class="new-control">
|
|
1696
|
+
<button
|
|
1697
|
+
type="button"
|
|
1698
|
+
class="primary"
|
|
1699
|
+
?disabled=${disabled}
|
|
1700
|
+
@click=${() => this.newMenu = !this.newMenu}
|
|
1701
|
+
aria-expanded=${String(this.newMenu)}
|
|
1702
|
+
aria-controls="new-options"
|
|
1703
|
+
>
|
|
1704
|
+
+ New
|
|
1705
|
+
</button>
|
|
1706
|
+
${this.newMenu ? html`<div
|
|
1707
|
+
id="new-options"
|
|
1708
|
+
class="new-menu"
|
|
1709
|
+
role="group"
|
|
1710
|
+
aria-label="New file"
|
|
1711
|
+
@keydown=${(event) => {
|
|
1712
|
+
if (event.key === "Escape") {
|
|
1713
|
+
this.newMenu = false;
|
|
1714
|
+
this.renderRoot.querySelector(".primary")?.focus();
|
|
1715
|
+
}
|
|
1716
|
+
}}
|
|
1717
|
+
>
|
|
1718
|
+
<button
|
|
1719
|
+
type="button"
|
|
1720
|
+
?disabled=${disabled}
|
|
1721
|
+
@click=${() => {
|
|
1722
|
+
this.newMenu = false;
|
|
1723
|
+
this.creating = true;
|
|
1724
|
+
}}
|
|
1725
|
+
>
|
|
1726
|
+
New Excel workbook
|
|
1727
|
+
</button>
|
|
1728
|
+
</div>` : nothing}
|
|
1729
|
+
</div>
|
|
1730
|
+
<button
|
|
1731
|
+
type="button"
|
|
1732
|
+
?disabled=${disabled}
|
|
1733
|
+
@click=${() => this.renderRoot.querySelector('input[type="file"]')?.click()}
|
|
1734
|
+
>
|
|
1735
|
+
Upload
|
|
1736
|
+
</button>
|
|
1737
|
+
<input
|
|
1738
|
+
type="file"
|
|
1739
|
+
class="file-picker"
|
|
1740
|
+
aria-label="Upload files"
|
|
1741
|
+
multiple
|
|
1742
|
+
?disabled=${disabled}
|
|
1743
|
+
@change=${this.upload}
|
|
1744
|
+
/>
|
|
1745
|
+
<span class="toolbar-space"></span>
|
|
1746
|
+
<input
|
|
1747
|
+
type="search"
|
|
1748
|
+
aria-label="Search files"
|
|
1749
|
+
placeholder="Search files"
|
|
1750
|
+
.value=${this.query}
|
|
1751
|
+
@input=${(e) => this.query = e.target.value}
|
|
1752
|
+
/>
|
|
1753
|
+
</div>
|
|
1754
|
+
<p class="hint">
|
|
1755
|
+
${this.canUpload ? `New files are shared in # ${this.channelName}.` : "Configure file storage to upload files or create workbooks."}
|
|
1756
|
+
</p>
|
|
1757
|
+
${this.creating ? html`<form aria-label="Create Excel workbook" @submit=${this.create}>
|
|
1758
|
+
<input
|
|
1759
|
+
name="name"
|
|
1760
|
+
aria-label="Workbook name"
|
|
1761
|
+
placeholder="Workbook name"
|
|
1762
|
+
maxlength="75"
|
|
1763
|
+
required
|
|
1764
|
+
?disabled=${this.busy}
|
|
1765
|
+
/>
|
|
1766
|
+
<button type="submit" ?disabled=${disabled}>Create workbook</button>
|
|
1767
|
+
<button type="button" ?disabled=${this.busy} @click=${() => this.creating = false}>
|
|
1768
|
+
Cancel
|
|
1769
|
+
</button>
|
|
1770
|
+
</form>` : nothing}
|
|
1771
|
+
${this.busy ? html`<div class="transfer">
|
|
1772
|
+
<p role="status">
|
|
1773
|
+
Sharing files in # ${this.destination}:
|
|
1774
|
+
${this.transfer?.phase === "preparing" ? "Preparing" : "Uploading"}
|
|
1775
|
+
${this.transfer?.fileName ?? ""} (${this.transfer?.completed ?? 0} of
|
|
1776
|
+
${this.transfer?.total ?? 0} uploaded)
|
|
1777
|
+
</p>
|
|
1778
|
+
${this.transfer ? html`<progress aria-label="Files uploaded" max=${this.transfer.total} value=${this.transfer.completed}></progress>` : nothing}
|
|
1779
|
+
<button type="button" @click=${() => this.active?.abort()}>Cancel sharing</button>
|
|
1780
|
+
</div>` : nothing}
|
|
1781
|
+
${this.error || this.canceled ? html`${this.canceled ? html`<p role="status">Sharing in # ${this.destination} canceled.</p>` : html`<p role="alert">Sharing in # ${this.destination} failed: ${this.error}</p>`}
|
|
1782
|
+
<button
|
|
1783
|
+
type="button"
|
|
1784
|
+
?disabled=${this.busy}
|
|
1785
|
+
@click=${() => this.retry && void this.run(this.retry)}
|
|
1786
|
+
>
|
|
1787
|
+
Retry sharing files
|
|
1788
|
+
</button>` : nothing}
|
|
1789
|
+
<div class="file-list">
|
|
1790
|
+
<table aria-label="Shared files">
|
|
1791
|
+
<thead>
|
|
1792
|
+
<tr>
|
|
1793
|
+
<th scope="col">Name</th>
|
|
1794
|
+
<th scope="col">Shared on</th>
|
|
1795
|
+
<th scope="col">Shared by</th>
|
|
1796
|
+
<th scope="col">Location</th>
|
|
1797
|
+
<th scope="col"><span class="visually-hidden">Actions</span></th>
|
|
1798
|
+
</tr>
|
|
1799
|
+
</thead>
|
|
1800
|
+
<tbody>
|
|
1801
|
+
${files.length ? files.map(
|
|
1802
|
+
(file) => html`<tr>
|
|
1803
|
+
<td>
|
|
1804
|
+
<div class="file-name">
|
|
1805
|
+
<span class="badge" data-kind=${file.kind}
|
|
1806
|
+
>${{ docx: "W", xlsx: "X", pptx: "P", vsdx: "V", other: "F" }[file.kind]}</span
|
|
1807
|
+
>
|
|
1808
|
+
<button
|
|
1809
|
+
class="file-open"
|
|
1810
|
+
type="button"
|
|
1811
|
+
aria-label=${`Open ${file.name}`}
|
|
1812
|
+
title=${file.name}
|
|
1813
|
+
?disabled=${!file.url}
|
|
1814
|
+
@click=${() => this.emit("open", file)}
|
|
1815
|
+
>
|
|
1816
|
+
${file.name}
|
|
1817
|
+
</button>
|
|
1818
|
+
</div>
|
|
1819
|
+
</td>
|
|
1820
|
+
<td><time>${new Date(file.ts).toLocaleDateString()}</time></td>
|
|
1821
|
+
<td>${file.author}</td>
|
|
1822
|
+
<td>
|
|
1823
|
+
${file.channelName ? `# ${file.channelName}` : `# ${this.channelName}`}
|
|
1824
|
+
</td>
|
|
1825
|
+
<td>
|
|
1826
|
+
<teams-file-actions
|
|
1827
|
+
.file=${file}
|
|
1828
|
+
.client=${this.client}
|
|
1829
|
+
></teams-file-actions>
|
|
1830
|
+
</td>
|
|
1831
|
+
</tr>`
|
|
1832
|
+
) : html`<tr>
|
|
1833
|
+
<td colspan="5" class="none">
|
|
1834
|
+
${this.query.trim() ? "No matching files." : "No files shared yet."}
|
|
1835
|
+
</td>
|
|
1836
|
+
</tr>`}
|
|
1837
|
+
</tbody>
|
|
1838
|
+
</table>
|
|
1839
|
+
</div>`;
|
|
1840
|
+
}
|
|
1841
|
+
};
|
|
1842
|
+
function defineTeamsFilesPanel() {
|
|
1843
|
+
if (globalThis.customElements && !customElements.get("teams-files-panel"))
|
|
1844
|
+
customElements.define("teams-files-panel", TeamsFilesPanel);
|
|
1845
|
+
}
|
|
1846
|
+
|
|
1847
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app/teams-settings.css?raw
|
|
1848
|
+
var teams_settings_default = ":host {\n font: var(--office-font-size) var(--office-font);\n color: var(--office-foreground);\n}\ndialog {\n box-sizing: border-box;\n width: min(76em, 94vw);\n max-height: 90dvh;\n overflow: hidden;\n padding: 0;\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-lg);\n background: var(--office-popover);\n color: inherit;\n box-shadow: var(--office-shadow-teams);\n}\ndialog::backdrop {\n background: var(--office-overlay);\n}\nform {\n display: grid;\n gap: var(--office-space-3);\n padding: var(--office-space-5);\n}\nheader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--office-space-4) var(--office-space-5);\n border-block-end: var(--office-border-width) solid var(--office-teams-divider);\n gap: var(--office-space-3);\n}\nheader input {\n margin-inline-start: auto;\n width: min(24em, 50%);\n min-width: 0;\n}\n.settings-results ul {\n list-style: none;\n padding: 0;\n display: grid;\n gap: var(--office-space-3);\n}\n.settings-results button {\n display: grid;\n gap: var(--office-space-2);\n width: 100%;\n text-align: start;\n}\n.settings-results button:hover {\n background: var(--office-selected);\n}\nh1 {\n margin: 0;\n font-size: var(--office-font-size-lg);\n}\n.settings-layout {\n display: grid;\n grid-template-columns: 19em minmax(0, 1fr);\n height: min(42em, calc(90dvh - 5em));\n min-height: 0;\n}\nnav {\n min-height: 0;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: var(--office-space-1);\n padding: var(--office-space-3);\n background: var(--office-teams-panel);\n border-inline-end: var(--office-border-width) solid var(--office-teams-divider);\n}\nnav button {\n display: flex;\n align-items: center;\n gap: var(--office-space-3);\n min-height: 3em;\n text-align: start;\n border: 0;\n background: transparent;\n}\nnav button:hover {\n background: var(--office-selected);\n}\n.icon {\n width: 1.4em;\n height: 1.4em;\n flex-shrink: 0;\n fill: none;\n stroke: currentColor;\n stroke-width: 1.5;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\nnav button[aria-selected='true'] {\n background: var(--office-teams-brand-subtle);\n color: var(--office-teams-brand);\n font-weight: var(--office-font-weight-bold);\n}\n.settings-content {\n min-width: 0;\n min-height: 0;\n overflow: auto;\n overscroll-behavior: contain;\n}\nsection {\n padding: var(--office-space-5);\n}\nsection h3 {\n margin: var(--office-space-5) 0 var(--office-space-3);\n font-size: var(--office-font-size);\n}\nsection h2 + h3 {\n margin-top: var(--office-space-4);\n}\n[hidden] {\n display: none !important;\n}\n.description {\n color: var(--office-teams-text-subtle);\n line-height: 1.5;\n}\noffice-ui-switch {\n --office-switch-track-on: var(--office-teams-brand);\n}\n.preference {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-block: var(--office-space-3);\n border-block-end: var(--office-border-width) solid var(--office-teams-divider);\n font-weight: normal;\n}\nh2 {\n position: sticky;\n top: 0;\n z-index: 1;\n margin: calc(-1 * var(--office-space-5)) calc(-1 * var(--office-space-5)) var(--office-space-4);\n padding: var(--office-space-5);\n background: var(--office-popover);\n border-bottom: var(--office-border-width) solid var(--office-teams-divider);\n font-size: var(--office-font-size-lg);\n}\nlabel {\n display: grid;\n gap: var(--office-space-1);\n font-weight: var(--office-font-weight-bold);\n}\nsmall {\n color: var(--office-teams-text-subtle);\n font-weight: normal;\n}\ninput,\ntextarea,\nselect {\n padding: var(--office-space-2);\n border: var(--office-border-width) solid var(--office-field-border);\n border-radius: var(--office-radius);\n background: var(--office-field-background);\n color: inherit;\n font: inherit;\n}\ntextarea {\n min-height: 5.5em;\n font-family: ui-monospace, monospace;\n font-size: 0.9em;\n}\n.issues {\n margin: 0;\n padding-inline-start: 1.2em;\n color: var(--office-danger);\n font-size: var(--office-font-size-sm);\n}\n.actions {\n display: flex;\n justify-content: flex-end;\n gap: var(--office-space-2);\n}\nbutton {\n padding: var(--office-space-2) var(--office-space-4);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-background);\n color: inherit;\n font: inherit;\n cursor: pointer;\n}\nbutton.primary {\n border-color: transparent;\n background: var(--office-teams-brand);\n color: var(--office-teams-brand-foreground);\n}\nbutton.primary:hover {\n background: var(--office-teams-brand-hover);\n}\n:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\n@media (max-width: 48em) {\n .settings-layout {\n grid-template-columns: minmax(0, 1fr);\n grid-template-rows: auto minmax(0, 1fr);\n min-height: 0;\n }\n nav {\n max-height: 30dvh;\n border-inline-end: 0;\n border-block-end: var(--office-border-width) solid var(--office-teams-divider);\n }\n}\n";
|
|
1849
|
+
|
|
1850
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app/settings-previews.css?raw
|
|
1851
|
+
var settings_previews_default = ".theme-options,\n.density-options {\n display: flex;\n flex-wrap: wrap;\n gap: var(--office-space-3);\n}\n.theme-options button {\n display: grid;\n gap: var(--office-space-3);\n padding: var(--office-space-2);\n text-align: start;\n min-width: 9em;\n}\n.theme-options button[aria-pressed='true'],\n.density-choice:has(input:checked) {\n border-color: var(--office-teams-brand);\n box-shadow: inset 0 0 0 var(--office-border-width) var(--office-teams-brand);\n}\n.theme-swatch {\n --preview-paper: var(--office-call-foreground);\n --preview-ink: var(--office-call-background);\n display: grid;\n grid-template-columns: 0.7em 2.4em 1fr;\n grid-template-rows: 0.7em 1fr;\n width: 9em;\n height: 5.5em;\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius);\n overflow: hidden;\n background: var(--preview-paper);\n}\n.theme-swatch[data-theme='dark'] {\n --preview-paper: var(--office-call-background);\n --preview-ink: var(--office-call-foreground);\n}\n.theme-swatch[data-theme='system'] {\n background: linear-gradient(\n 90deg,\n var(--office-call-foreground) 50%,\n var(--office-call-background) 50%\n );\n}\n.preview-toolbar {\n grid-column: 1 / -1;\n background: var(--office-teams-brand);\n}\n.preview-rail,\n.preview-sidebar {\n background: color-mix(in srgb, var(--preview-ink) 8%, var(--preview-paper));\n border-inline-end: var(--office-border-width) solid var(--office-teams-divider);\n}\n.preview-sidebar,\n.preview-conversation {\n display: flex;\n flex-direction: column;\n gap: var(--office-space-2);\n padding: var(--office-space-2);\n}\n.preview-sidebar i,\n.preview-conversation i {\n height: 0.4em;\n border-radius: var(--office-radius);\n background: color-mix(in srgb, var(--preview-ink) 25%, var(--preview-paper));\n}\n.preview-conversation i {\n height: 0.8em;\n width: 80%;\n}\n.preview-conversation i:nth-child(2) {\n align-self: flex-end;\n background: var(--office-teams-brand-subtle);\n}\n.density-options {\n margin: var(--office-space-5) 0 0;\n padding: var(--office-space-5) 0 0;\n border: 0;\n border-top: var(--office-border-width) solid var(--office-teams-divider);\n}\n.density-options legend {\n float: inline-start;\n width: 100%;\n font-weight: var(--office-font-weight-bold);\n margin-bottom: var(--office-space-3);\n}\n.density-choice {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--office-space-3);\n width: 13em;\n padding: var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n cursor: pointer;\n font-weight: normal;\n}\n.density-choice input {\n position: absolute;\n inset-inline-end: var(--office-space-2);\n inset-block-end: var(--office-space-2);\n accent-color: var(--office-teams-brand);\n}\n.density-caption {\n display: grid;\n gap: var(--office-space-1);\n padding-inline-end: var(--office-space-5);\n}\n.density-preview {\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: var(--office-space-3);\n height: 7em;\n padding: var(--office-space-3);\n border-radius: var(--office-radius);\n background: var(--office-teams-panel);\n}\n.preview-message {\n display: flex;\n gap: var(--office-space-2);\n align-items: flex-start;\n}\n.preview-message > i {\n width: 1.1em;\n height: 1.1em;\n border-radius: 50%;\n background: var(--office-teams-brand-subtle);\n border: var(--office-border-width) solid var(--office-teams-brand);\n}\n.preview-message > span {\n display: grid;\n gap: var(--office-space-1);\n flex: 1;\n}\n.preview-message b {\n height: 0.3em;\n width: 75%;\n background: var(--office-teams-text-subtle);\n border-radius: var(--office-radius);\n}\n.preview-message b + b {\n width: 100%;\n opacity: 0.4;\n}\n.density-preview[data-density='compact'] {\n gap: var(--office-space-1);\n}\n.density-preview[data-density='compact'] .preview-message > i {\n width: 0.7em;\n height: 0.7em;\n}\n.density-preview[data-density='compact'] .preview-message > span {\n display: flex;\n align-items: center;\n}\n@media (forced-colors: active) {\n .theme-options button[aria-pressed='true'],\n .density-choice:has(input:checked) {\n outline: var(--office-focus-width) solid Highlight;\n }\n}\n";
|
|
1852
|
+
function themeChoices(current, change) {
|
|
1853
|
+
return html`<div class="theme-options" role="group" aria-label="Theme">
|
|
1854
|
+
${["system", "light", "dark"].map(
|
|
1855
|
+
(theme) => html`<button
|
|
1856
|
+
type="button"
|
|
1857
|
+
aria-pressed=${String(current === theme)}
|
|
1858
|
+
@click=${() => change(theme)}
|
|
1859
|
+
>
|
|
1860
|
+
<span class="theme-swatch" data-theme=${theme} aria-hidden="true">
|
|
1861
|
+
<span class="preview-toolbar"></span>
|
|
1862
|
+
<span class="preview-rail"></span>
|
|
1863
|
+
<span class="preview-sidebar"><i></i><i></i><i></i></span>
|
|
1864
|
+
<span class="preview-conversation"><i></i><i></i><i></i></span>
|
|
1865
|
+
</span>
|
|
1866
|
+
<span>${theme === "system" ? "Follow system" : theme === "light" ? "Light" : "Dark"}</span>
|
|
1867
|
+
</button>`
|
|
1868
|
+
)}
|
|
1869
|
+
</div>`;
|
|
1870
|
+
}
|
|
1871
|
+
|
|
1872
|
+
// src/teams/app/settings-connection.ts
|
|
1873
|
+
function parseIceLines(text) {
|
|
1874
|
+
return text.split("\n").map((line) => line.trim()).filter(Boolean).map((line) => {
|
|
1875
|
+
const [urls = "", username, credential] = line.split(/\s+/u);
|
|
1876
|
+
return {
|
|
1877
|
+
urls: urls.split(",").filter(Boolean),
|
|
1878
|
+
...username ? { username } : {},
|
|
1879
|
+
...credential ? { credential } : {}
|
|
1880
|
+
};
|
|
1881
|
+
});
|
|
1882
|
+
}
|
|
1883
|
+
var iceToText = (config) => config.iceServers.map(
|
|
1884
|
+
(server) => [[server.urls].flat().join(","), server.username, server.credential].filter(Boolean).join(" ")
|
|
1885
|
+
).join("\n");
|
|
1886
|
+
function densityChoices(density, change) {
|
|
1887
|
+
return html`<fieldset class="density-options">
|
|
1888
|
+
<legend>Chat density</legend>
|
|
1889
|
+
${["comfy", "compact"].map(
|
|
1890
|
+
(value) => html`<label class="density-choice">
|
|
1891
|
+
<input
|
|
1892
|
+
type="radio"
|
|
1893
|
+
name="chat-density"
|
|
1894
|
+
value=${value}
|
|
1895
|
+
.checked=${density === value}
|
|
1896
|
+
@change=${() => change(value)}
|
|
1897
|
+
/>
|
|
1898
|
+
<span class="density-preview" data-density=${value} aria-hidden="true">
|
|
1899
|
+
${[0, 1, 2].map(
|
|
1900
|
+
() => html`<span class="preview-message"
|
|
1901
|
+
><i></i><span><b></b><b></b></span
|
|
1902
|
+
></span>`
|
|
1903
|
+
)}
|
|
1904
|
+
</span>
|
|
1905
|
+
<span class="density-caption"
|
|
1906
|
+
><strong>${value === "comfy" ? "Comfy" : "Compact"}</strong>
|
|
1907
|
+
<small
|
|
1908
|
+
>${value === "comfy" ? "More space between messages" : "More messages in less space"}</small
|
|
1909
|
+
></span
|
|
1910
|
+
>
|
|
1911
|
+
</label>`
|
|
1912
|
+
)}
|
|
1913
|
+
</fieldset>`;
|
|
1914
|
+
}
|
|
1915
|
+
var SETTINGS_CATEGORIES = [
|
|
1916
|
+
["general", "General"],
|
|
1917
|
+
["appearance", "Appearance and accessibility"],
|
|
1918
|
+
["notifications", "Notifications and activity"],
|
|
1919
|
+
["files", "Files and links"],
|
|
1920
|
+
["connection", "Connection"]
|
|
1921
|
+
];
|
|
1922
|
+
var TOPICS = [
|
|
1923
|
+
{ category: "general", title: "Profile", description: "Your name and workspace on this device" },
|
|
1924
|
+
{
|
|
1925
|
+
category: "appearance",
|
|
1926
|
+
title: "Theme",
|
|
1927
|
+
description: "Follow system, light or dark appearance"
|
|
1928
|
+
},
|
|
1929
|
+
{
|
|
1930
|
+
category: "appearance",
|
|
1931
|
+
title: "Chat density",
|
|
1932
|
+
description: "Comfy or compact message spacing"
|
|
1933
|
+
},
|
|
1934
|
+
{
|
|
1935
|
+
category: "appearance",
|
|
1936
|
+
title: "Show app names",
|
|
1937
|
+
description: "Display labels beneath app bar icons"
|
|
1938
|
+
},
|
|
1939
|
+
{
|
|
1940
|
+
category: "notifications",
|
|
1941
|
+
title: "Followed threads",
|
|
1942
|
+
description: "Threads I start and threads I reply to"
|
|
1943
|
+
},
|
|
1944
|
+
{
|
|
1945
|
+
category: "files",
|
|
1946
|
+
title: "File open preference",
|
|
1947
|
+
description: "Open Word, PowerPoint and Excel in OpenTeams or browser"
|
|
1948
|
+
},
|
|
1949
|
+
{
|
|
1950
|
+
category: "connection",
|
|
1951
|
+
title: "Connection",
|
|
1952
|
+
description: "Workspace server, sync URL, signaling URL, access token and ICE servers"
|
|
1953
|
+
}
|
|
1954
|
+
];
|
|
1955
|
+
function settingsSearch(query, select) {
|
|
1956
|
+
const words = query.trim().toLocaleLowerCase().split(/\s+/u);
|
|
1957
|
+
const matches = TOPICS.filter((topic) => {
|
|
1958
|
+
const category = SETTINGS_CATEGORIES.find(([id]) => id === topic.category)[1];
|
|
1959
|
+
const text = `${category} ${topic.title} ${topic.description}`.toLocaleLowerCase();
|
|
1960
|
+
return words.every((word) => text.includes(word));
|
|
1961
|
+
});
|
|
1962
|
+
return html`<section class="settings-results" aria-label="Settings search results">
|
|
1963
|
+
<h2>Search results</h2>
|
|
1964
|
+
<p role="status">
|
|
1965
|
+
${matches.length ? `${matches.length} ${matches.length === 1 ? "setting" : "settings"} found` : "No matching settings. Try another keyword."}
|
|
1966
|
+
</p>
|
|
1967
|
+
<ul>
|
|
1968
|
+
${matches.map(
|
|
1969
|
+
(topic) => html`<li>
|
|
1970
|
+
<button type="button" @click=${() => select(topic)}>
|
|
1971
|
+
<strong>${topic.title}</strong
|
|
1972
|
+
><span>${SETTINGS_CATEGORIES.find(([id]) => id === topic.category)[1]}</span
|
|
1973
|
+
><small>${topic.description}</small>
|
|
1974
|
+
</button>
|
|
1975
|
+
</li>`
|
|
1976
|
+
)}
|
|
1977
|
+
</ul>
|
|
1978
|
+
</section>`;
|
|
1979
|
+
}
|
|
1980
|
+
|
|
1981
|
+
// src/teams/app/teams-settings.ts
|
|
1982
|
+
var TeamsSettings = class extends LitElement {
|
|
1983
|
+
static styles = [unsafeCSS(teams_settings_default), unsafeCSS(settings_previews_default)];
|
|
1984
|
+
static properties = {
|
|
1985
|
+
config: { attribute: false },
|
|
1986
|
+
open: { type: Boolean, reflect: true },
|
|
1987
|
+
issues: { state: true },
|
|
1988
|
+
category: { state: true },
|
|
1989
|
+
theme: { attribute: false },
|
|
1990
|
+
followSettings: { attribute: false },
|
|
1991
|
+
userName: { attribute: false },
|
|
1992
|
+
fileOpenPreference: { attribute: false },
|
|
1993
|
+
chatDensity: { attribute: false },
|
|
1994
|
+
showAppNames: { attribute: false },
|
|
1995
|
+
query: { state: true }
|
|
1996
|
+
};
|
|
1997
|
+
constructor() {
|
|
1998
|
+
super();
|
|
1999
|
+
this.config = { mode: "local", iceServers: [] };
|
|
2000
|
+
this.open = false;
|
|
2001
|
+
this.issues = [];
|
|
2002
|
+
this.category = "general";
|
|
2003
|
+
this.theme = "system";
|
|
2004
|
+
this.followSettings = { started: true, replied: true };
|
|
2005
|
+
this.userName = "";
|
|
2006
|
+
this.fileOpenPreference = "teams";
|
|
2007
|
+
this.chatDensity = "comfy";
|
|
2008
|
+
this.showAppNames = true;
|
|
2009
|
+
this.query = "";
|
|
2010
|
+
}
|
|
2011
|
+
willUpdate(changed) {
|
|
2012
|
+
if (changed.has("open") && this.open) this.query = "";
|
|
2013
|
+
}
|
|
2014
|
+
updated(changed) {
|
|
2015
|
+
if (changed.has("category")) {
|
|
2016
|
+
const content = this.renderRoot.querySelector(".settings-content");
|
|
2017
|
+
if (content) content.scrollTop = 0;
|
|
2018
|
+
}
|
|
2019
|
+
const dialog = this.renderRoot.querySelector("dialog");
|
|
2020
|
+
if (!dialog) return;
|
|
2021
|
+
if (changed.has("open") && this.open) {
|
|
2022
|
+
const c = this.config;
|
|
2023
|
+
for (const [id, value] of Object.entries({
|
|
2024
|
+
mode: c.mode,
|
|
2025
|
+
sync: c.syncUrl ?? "",
|
|
2026
|
+
signal: c.signalingUrl ?? "",
|
|
2027
|
+
token: c.token ?? "",
|
|
2028
|
+
ice: iceToText(c),
|
|
2029
|
+
policy: c.iceTransportPolicy ?? "all"
|
|
2030
|
+
}))
|
|
2031
|
+
this.field(id).value = value;
|
|
2032
|
+
}
|
|
2033
|
+
if (this.open && !dialog.open) dialog.showModal();
|
|
2034
|
+
if (!this.open && dialog.open) dialog.close();
|
|
2035
|
+
}
|
|
2036
|
+
field(id) {
|
|
2037
|
+
return this.renderRoot.querySelector(`#${id}`);
|
|
2038
|
+
}
|
|
2039
|
+
apply(event) {
|
|
2040
|
+
event.preventDefault();
|
|
2041
|
+
const { config, issues } = parseServerConfig({
|
|
2042
|
+
mode: this.field("mode").value,
|
|
2043
|
+
syncUrl: this.field("sync").value,
|
|
2044
|
+
signalingUrl: this.field("signal").value,
|
|
2045
|
+
token: this.field("token").value,
|
|
2046
|
+
iceServers: parseIceLines(this.field("ice").value),
|
|
2047
|
+
iceTransportPolicy: this.field("policy").value
|
|
2048
|
+
});
|
|
2049
|
+
this.issues = issues;
|
|
2050
|
+
if (this.field("mode").value === "server" && config.mode === "local") return;
|
|
2051
|
+
this.dispatchEvent(
|
|
2052
|
+
new CustomEvent("teams-settings-apply", {
|
|
2053
|
+
detail: { config },
|
|
2054
|
+
bubbles: true,
|
|
2055
|
+
composed: true
|
|
2056
|
+
})
|
|
2057
|
+
);
|
|
2058
|
+
}
|
|
2059
|
+
close() {
|
|
2060
|
+
this.issues = [];
|
|
2061
|
+
this.dispatchEvent(new CustomEvent("teams-settings-close", { bubbles: true, composed: true }));
|
|
2062
|
+
}
|
|
2063
|
+
render() {
|
|
2064
|
+
const c = this.config;
|
|
2065
|
+
return html`
|
|
2066
|
+
<dialog aria-label="Settings" @close=${this.close} @cancel=${this.close}>
|
|
2067
|
+
<header>
|
|
2068
|
+
<h1>Settings</h1>
|
|
2069
|
+
<input
|
|
2070
|
+
type="search"
|
|
2071
|
+
aria-label="Search settings"
|
|
2072
|
+
placeholder="Search settings"
|
|
2073
|
+
.value=${this.query}
|
|
2074
|
+
@input=${(event) => this.query = event.target.value}
|
|
2075
|
+
/>
|
|
2076
|
+
<button type="button" class="close" aria-label="Close settings" @click=${this.close}>
|
|
2077
|
+
×
|
|
2078
|
+
</button>
|
|
2079
|
+
</header>
|
|
2080
|
+
<div class="settings-layout">
|
|
2081
|
+
<nav
|
|
2082
|
+
aria-label="Settings categories"
|
|
2083
|
+
role="tablist"
|
|
2084
|
+
aria-orientation="vertical"
|
|
2085
|
+
@keydown=${(event) => {
|
|
2086
|
+
const index = SETTINGS_CATEGORIES.findIndex(([id]) => id === this.category);
|
|
2087
|
+
const next = event.key === "ArrowDown" ? (index + 1) % SETTINGS_CATEGORIES.length : event.key === "ArrowUp" ? (index + SETTINGS_CATEGORIES.length - 1) % SETTINGS_CATEGORIES.length : event.key === "Home" ? 0 : event.key === "End" ? SETTINGS_CATEGORIES.length - 1 : -1;
|
|
2088
|
+
if (next < 0) return;
|
|
2089
|
+
event.preventDefault();
|
|
2090
|
+
this.category = SETTINGS_CATEGORIES[next][0];
|
|
2091
|
+
this.query = "";
|
|
2092
|
+
this.renderRoot.querySelector(`#settings-${this.category}`)?.focus();
|
|
2093
|
+
}}
|
|
2094
|
+
>
|
|
2095
|
+
${SETTINGS_CATEGORIES.map(
|
|
2096
|
+
([id, label]) => html`<button
|
|
2097
|
+
id=${`settings-${id}`}
|
|
2098
|
+
role="tab"
|
|
2099
|
+
type="button"
|
|
2100
|
+
aria-selected=${String(!this.query.trim() && this.category === id)}
|
|
2101
|
+
tabindex=${this.category === id ? 0 : -1}
|
|
2102
|
+
aria-controls=${`panel-${id}`}
|
|
2103
|
+
@click=${() => {
|
|
2104
|
+
this.category = id;
|
|
2105
|
+
this.query = "";
|
|
2106
|
+
}}
|
|
2107
|
+
>
|
|
2108
|
+
${icon({ general: "settings", appearance: "formatPainter", notifications: "message", files: "folder", connection: "screenShare" }[id])}<span
|
|
2109
|
+
>${label}</span
|
|
2110
|
+
>
|
|
2111
|
+
</button>`
|
|
2112
|
+
)}
|
|
2113
|
+
</nav>
|
|
2114
|
+
<div class="settings-content">
|
|
2115
|
+
${this.query.trim() ? settingsSearch(this.query, async (topic) => {
|
|
2116
|
+
this.category = topic.category;
|
|
2117
|
+
this.query = "";
|
|
2118
|
+
await this.updateComplete;
|
|
2119
|
+
if (!this.open || this.query.trim() || this.category !== topic.category) return;
|
|
2120
|
+
const panel = this.renderRoot.querySelector(
|
|
2121
|
+
`#panel-${topic.category}`
|
|
2122
|
+
);
|
|
2123
|
+
const heading = [...panel.querySelectorAll("h2, h3, legend")].find(
|
|
2124
|
+
(element) => element.textContent?.trim() === topic.title
|
|
2125
|
+
) ?? panel;
|
|
2126
|
+
heading.tabIndex = -1;
|
|
2127
|
+
heading.focus();
|
|
2128
|
+
}) : nothing}
|
|
2129
|
+
<section
|
|
2130
|
+
id="panel-general"
|
|
2131
|
+
role="tabpanel"
|
|
2132
|
+
aria-labelledby="settings-general"
|
|
2133
|
+
?hidden=${!!this.query.trim() || this.category !== "general"}
|
|
2134
|
+
>
|
|
2135
|
+
<h2>General</h2>
|
|
2136
|
+
<h3>Profile</h3>
|
|
2137
|
+
<p>${this.userName || "OpenTeams user"}</p>
|
|
2138
|
+
<h3>Your workspace</h3>
|
|
2139
|
+
<p>${c.mode === "local" ? "Local workspace" : "Connected workspace"}</p>
|
|
2140
|
+
<p class="description">
|
|
2141
|
+
Preferences are saved for this user and workspace on this device.
|
|
2142
|
+
</p>
|
|
2143
|
+
</section>
|
|
2144
|
+
<section
|
|
2145
|
+
id="panel-appearance"
|
|
2146
|
+
role="tabpanel"
|
|
2147
|
+
aria-labelledby="settings-appearance"
|
|
2148
|
+
?hidden=${!!this.query.trim() || this.category !== "appearance"}
|
|
2149
|
+
>
|
|
2150
|
+
<h2>Appearance and accessibility</h2>
|
|
2151
|
+
<h3>Theme</h3>
|
|
2152
|
+
${themeChoices(this.theme, (theme) => this.dispatchEvent(new CustomEvent("teams-settings-theme", { detail: { theme }, bubbles: true, composed: true })))}
|
|
2153
|
+
${densityChoices(this.chatDensity, (density) => this.dispatchEvent(new CustomEvent("teams-settings-density", { detail: { density }, bubbles: true, composed: true })))}
|
|
2154
|
+
<h3>Show app names</h3>
|
|
2155
|
+
<label class="preference"
|
|
2156
|
+
><span>Display labels beneath app bar icons</span
|
|
2157
|
+
><office-ui-switch
|
|
2158
|
+
aria-label="Show app names"
|
|
2159
|
+
.checked=${this.showAppNames}
|
|
2160
|
+
@change=${(event) => this.dispatchEvent(new CustomEvent("teams-settings-app-names", { detail: { show: event.target.checked }, bubbles: true, composed: true }))}
|
|
2161
|
+
></office-ui-switch
|
|
2162
|
+
></label>
|
|
2163
|
+
<p class="description">
|
|
2164
|
+
Changes apply immediately to this OpenTeams workspace. Keyboard focus and system
|
|
2165
|
+
high-contrast preferences remain available.
|
|
2166
|
+
</p>
|
|
2167
|
+
</section>
|
|
2168
|
+
<section
|
|
2169
|
+
id="panel-notifications"
|
|
2170
|
+
role="tabpanel"
|
|
2171
|
+
aria-labelledby="settings-notifications"
|
|
2172
|
+
?hidden=${!!this.query.trim() || this.category !== "notifications"}
|
|
2173
|
+
>
|
|
2174
|
+
<h2>Notifications and activity</h2>
|
|
2175
|
+
<h3>Followed threads</h3>
|
|
2176
|
+
<p class="description">Choose which conversations appear in Followed threads.</p>
|
|
2177
|
+
${["started", "replied"].map((key) => html`<label class="preference"><span>${key === "started" ? "Threads I start" : "Threads I reply to"}</span><office-ui-switch aria-label=${key === "started" ? "Threads I start" : "Threads I reply to"} .checked=${this.followSettings[key]} @change=${(event) => this.dispatchEvent(new CustomEvent("teams-settings-follow", { detail: { [key]: event.target.checked }, bubbles: true, composed: true }))}></office-ui-switch></label>`)}
|
|
2178
|
+
<p class="description">
|
|
2179
|
+
Desktop, email and activity notifications are not available yet.
|
|
2180
|
+
</p>
|
|
2181
|
+
</section>
|
|
2182
|
+
<section
|
|
2183
|
+
id="panel-files"
|
|
2184
|
+
role="tabpanel"
|
|
2185
|
+
aria-labelledby="settings-files"
|
|
2186
|
+
?hidden=${!!this.query.trim() || this.category !== "files"}
|
|
2187
|
+
>
|
|
2188
|
+
<h2>Files and links</h2>
|
|
2189
|
+
<h3>File open preference</h3>
|
|
2190
|
+
<label
|
|
2191
|
+
>Always open Word, PowerPoint and Excel files in:
|
|
2192
|
+
<select
|
|
2193
|
+
aria-label="Office file open preference"
|
|
2194
|
+
.value=${this.fileOpenPreference}
|
|
2195
|
+
@change=${(event) => this.dispatchEvent(new CustomEvent("teams-settings-file-open", { detail: { preference: event.target.value }, bubbles: true, composed: true }))}
|
|
2196
|
+
>
|
|
2197
|
+
<option value="teams">OpenTeams</option>
|
|
2198
|
+
<option value="browser">Browser</option>
|
|
2199
|
+
</select></label
|
|
2200
|
+
>
|
|
2201
|
+
<p class="description">
|
|
2202
|
+
Browser opens the built-in viewer in a separate tab. Hosts can provide their own
|
|
2203
|
+
viewers. Desktop-app defaults and download-location preferences are not available
|
|
2204
|
+
yet.
|
|
2205
|
+
</p>
|
|
2206
|
+
</section>
|
|
2207
|
+
<form
|
|
2208
|
+
id="panel-connection"
|
|
2209
|
+
role="tabpanel"
|
|
2210
|
+
aria-labelledby="settings-connection"
|
|
2211
|
+
?hidden=${!!this.query.trim() || this.category !== "connection"}
|
|
2212
|
+
@submit=${this.apply}
|
|
2213
|
+
>
|
|
2214
|
+
<h2>Connection</h2>
|
|
2215
|
+
<p class="description">Configure your workspace server and calling service.</p>
|
|
2216
|
+
<label>
|
|
2217
|
+
<span>Mode</span>
|
|
2218
|
+
<select id="mode" .value=${c.mode}>
|
|
2219
|
+
<option value="local" ?selected=${c.mode === "local"}>
|
|
2220
|
+
Local: tabs of this browser only (no server)
|
|
2221
|
+
</option>
|
|
2222
|
+
<option value="server" ?selected=${c.mode === "server"}>Your server</option>
|
|
2223
|
+
</select>
|
|
2224
|
+
</label>
|
|
2225
|
+
<label>
|
|
2226
|
+
<span>Sync URL</span>
|
|
2227
|
+
<input
|
|
2228
|
+
id="sync"
|
|
2229
|
+
.value=${c.syncUrl ?? ""}
|
|
2230
|
+
placeholder="ws://localhost:8787/sync"
|
|
2231
|
+
spellcheck="false"
|
|
2232
|
+
autocomplete="off"
|
|
2233
|
+
/>
|
|
2234
|
+
<small>y-websocket compatible endpoint; the workspace id is appended.</small>
|
|
2235
|
+
</label>
|
|
2236
|
+
<label>
|
|
2237
|
+
<span>Signaling URL</span>
|
|
2238
|
+
<input
|
|
2239
|
+
id="signal"
|
|
2240
|
+
.value=${c.signalingUrl ?? ""}
|
|
2241
|
+
placeholder="ws://localhost:8787/signal"
|
|
2242
|
+
spellcheck="false"
|
|
2243
|
+
autocomplete="off"
|
|
2244
|
+
/>
|
|
2245
|
+
<small>WebRTC signaling relay; the call room is appended.</small>
|
|
2246
|
+
</label>
|
|
2247
|
+
<label>
|
|
2248
|
+
<span>Access token</span>
|
|
2249
|
+
<input
|
|
2250
|
+
id="token"
|
|
2251
|
+
type="password"
|
|
2252
|
+
.value=${c.token ?? ""}
|
|
2253
|
+
placeholder="shared secret"
|
|
2254
|
+
autocomplete="off"
|
|
2255
|
+
/>
|
|
2256
|
+
<small>Sent as ?token= to both sockets. Stored in this browser.</small>
|
|
2257
|
+
</label>
|
|
2258
|
+
<label>
|
|
2259
|
+
<span>ICE servers</span>
|
|
2260
|
+
<textarea
|
|
2261
|
+
id="ice"
|
|
2262
|
+
spellcheck="false"
|
|
2263
|
+
.value=${iceToText(c)}
|
|
2264
|
+
placeholder="stun:stun.example.org:3478 turn:turn.example.org:3478 user password"
|
|
2265
|
+
></textarea>
|
|
2266
|
+
<small>One per line: urls [username credential]. TURN needs credentials.</small>
|
|
2267
|
+
</label>
|
|
2268
|
+
<label>
|
|
2269
|
+
<span>ICE transport</span>
|
|
2270
|
+
<select id="policy" .value=${c.iceTransportPolicy ?? "all"}>
|
|
2271
|
+
<option value="all">All routes (direct when possible)</option>
|
|
2272
|
+
<option value="relay" ?selected=${c.iceTransportPolicy === "relay"}>
|
|
2273
|
+
Relay only (TURN required, hides IP addresses)
|
|
2274
|
+
</option>
|
|
2275
|
+
</select>
|
|
2276
|
+
</label>
|
|
2277
|
+
${this.issues.length ? html`<ul class="issues">
|
|
2278
|
+
${this.issues.map((i) => html`<li>${i}</li>`)}
|
|
2279
|
+
</ul>` : nothing}
|
|
2280
|
+
<div class="actions">
|
|
2281
|
+
<button type="button" @click=${this.close}>Cancel</button>
|
|
2282
|
+
<button type="submit" class="primary">Apply and reconnect</button>
|
|
2283
|
+
</div>
|
|
2284
|
+
</form>
|
|
2285
|
+
</div>
|
|
2286
|
+
</div>
|
|
2287
|
+
</dialog>
|
|
2288
|
+
`;
|
|
2289
|
+
}
|
|
2290
|
+
};
|
|
2291
|
+
function defineTeamsSettings(registry = globalThis.customElements) {
|
|
2292
|
+
if (!registry) return;
|
|
2293
|
+
defineSwitch(registry);
|
|
2294
|
+
if (!registry.get("teams-settings")) registry.define("teams-settings", TeamsSettings);
|
|
2295
|
+
}
|
|
2296
|
+
var safeStorage = {
|
|
2297
|
+
getItem(key) {
|
|
2298
|
+
try {
|
|
2299
|
+
return globalThis.localStorage?.getItem(key) ?? null;
|
|
2300
|
+
} catch {
|
|
2301
|
+
return null;
|
|
2302
|
+
}
|
|
2303
|
+
},
|
|
2304
|
+
setItem(key, value) {
|
|
2305
|
+
try {
|
|
2306
|
+
globalThis.localStorage?.setItem(key, value);
|
|
2307
|
+
} catch {
|
|
2308
|
+
}
|
|
2309
|
+
}
|
|
2310
|
+
};
|
|
2311
|
+
function loadIdentity() {
|
|
2312
|
+
try {
|
|
2313
|
+
const raw = JSON.parse(safeStorage.getItem("teams:identity") ?? "null");
|
|
2314
|
+
if (raw && typeof raw.id === "string" && typeof raw.name === "string" && raw.name.trim())
|
|
2315
|
+
return { id: raw.id, name: raw.name };
|
|
2316
|
+
} catch {
|
|
2317
|
+
}
|
|
2318
|
+
return null;
|
|
2319
|
+
}
|
|
2320
|
+
var saveIdentity = (identity) => safeStorage.setItem("teams:identity", JSON.stringify(identity));
|
|
2321
|
+
function loadConfig() {
|
|
2322
|
+
const raw = safeStorage.getItem("teams:config");
|
|
2323
|
+
if (!raw) return null;
|
|
2324
|
+
try {
|
|
2325
|
+
return parseServerConfig(JSON.parse(raw)).config;
|
|
2326
|
+
} catch {
|
|
2327
|
+
return null;
|
|
2328
|
+
}
|
|
2329
|
+
}
|
|
2330
|
+
var saveConfig = (config) => safeStorage.setItem("teams:config", JSON.stringify(config));
|
|
2331
|
+
|
|
2332
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app/teams-app.css?raw
|
|
2333
|
+
var teams_app_default = "/* <teams-app>: the shell. Colours, spacing and radii come from the ooxml-ui tokens, so a host\n retheme or dark mode reaches the whole app. The elements inside bring their own styles. */\n:host {\n display: block;\n height: 100%;\n min-height: 28em;\n font: var(--office-font-size) var(--office-font);\n color: var(--office-foreground);\n background: var(--office-background);\n}\n:host([data-office-theme='dark']) {\n --office-background: var(--office-teams-panel);\n --office-surface: var(--office-teams-bubble);\n --office-popover: var(--office-teams-panel);\n}\n:host([data-chat-density='compact']) {\n --office-teams-message-gap: var(--office-space-1);\n --office-teams-message-padding: var(--office-space-1) var(--office-space-2);\n}\n@media (prefers-color-scheme: dark) {\n :host(:not([data-office-theme='light'])) {\n --office-background: var(--office-teams-panel);\n --office-surface: var(--office-teams-bubble);\n --office-popover: var(--office-teams-panel);\n }\n}\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\nbutton {\n font: inherit;\n color: inherit;\n cursor: pointer;\n}\n:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\n\n.shell {\n display: grid;\n grid-template-rows: auto minmax(0, 1fr);\n height: 100%;\n}\n\n/* ---- top bar ---------------------------------------------------------------------------- */\n.topbar {\n display: grid;\n grid-template-columns: 16em minmax(0, 1fr) auto;\n align-items: center;\n gap: var(--office-space-4);\n padding: var(--office-space-2) var(--office-space-4);\n background: var(--office-teams-rail);\n border-bottom: var(--office-border-width) solid var(--office-teams-divider);\n}\n.navigation-toggle {\n display: none;\n padding: var(--office-space-2);\n border: 0;\n border-radius: var(--office-radius-md);\n background: transparent;\n}\n.navigation-toggle:hover {\n background: var(--office-selected);\n}\n.navigation-toggle svg {\n width: 1.3em;\n height: 1.3em;\n fill: none;\n stroke: currentColor;\n stroke-width: var(--office-icon-stroke);\n stroke-linecap: round;\n}\n.brand {\n display: flex;\n align-items: center;\n gap: var(--office-space-2);\n font-size: var(--office-font-size-lg);\n font-weight: var(--office-font-weight-bold);\n}\n.logo {\n display: inline-grid;\n place-items: center;\n width: 1.8em;\n height: 1.8em;\n border-radius: var(--office-radius-md);\n background: var(--office-teams-brand);\n color: var(--office-teams-brand-foreground);\n font-size: 0.85em;\n}\n.search {\n position: relative;\n justify-self: center;\n width: min(34em, 100%);\n}\n.search input {\n width: 100%;\n padding: var(--office-space-2) var(--office-space-4);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-full);\n background: var(--office-background);\n color: inherit;\n font: inherit;\n}\n.results {\n position: absolute;\n inset-inline: 0;\n inset-block-start: calc(100% + var(--office-space-1));\n z-index: 5;\n max-height: 22em;\n margin: 0;\n padding: var(--office-space-1);\n overflow: auto;\n list-style: none;\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-popover);\n box-shadow: var(--office-shadow-teams);\n}\n.results button {\n display: grid;\n width: 100%;\n padding: var(--office-space-2) var(--office-space-3);\n border: 0;\n border-radius: var(--office-radius);\n background: transparent;\n text-align: start;\n}\n.results button:hover {\n background: var(--office-selected);\n}\n.results .in,\n.results .none {\n color: var(--office-teams-text-subtle);\n font-size: var(--office-font-size-sm);\n}\n.results .none {\n padding: var(--office-space-3);\n}\n.snippet {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.me {\n display: flex;\n align-items: center;\n gap: var(--office-space-3);\n}\n.me office-ui-menu-button::part(caret) {\n display: none;\n}\n.channel-head office-ui-menu-button::part(caret) {\n display: none;\n}\n.channel-head svg {\n width: 1em;\n height: 1em;\n fill: none;\n stroke: currentColor;\n stroke-width: var(--office-icon-stroke);\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n/* ---- body ------------------------------------------------------------------------------- */\n.body {\n display: grid;\n grid-template-columns: auto 19em minmax(0, 1fr);\n min-height: 0;\n}\n.side {\n min-height: 0;\n overflow: auto;\n background: var(--office-teams-panel);\n border-inline-end: var(--office-border-width) solid var(--office-teams-divider);\n}\n.side h2 {\n margin: 0;\n padding: var(--office-space-3) var(--office-space-4);\n font-size: var(--office-font-size-lg);\n}\n.main {\n display: flex;\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n}\n.popout-view {\n display: flex;\n height: 100%;\n min-height: 0;\n}\n.popout-view teams-content-preview {\n flex: 1;\n}\n.main office-ui-chat-list,\n.main office-ui-prejoin {\n flex: 1;\n}\n\nul.plain {\n margin: 0;\n padding: 0 var(--office-space-3);\n list-style: none;\n}\nul.plain li {\n display: flex;\n align-items: center;\n gap: var(--office-space-2);\n padding: var(--office-space-2) var(--office-space-2);\n}\nul.plain li > :first-child:not(office-ui-avatar) {\n flex: 1;\n}\n.hint {\n padding: 0 var(--office-space-4);\n color: var(--office-teams-text-subtle);\n}\n.join {\n padding: var(--office-space-1) var(--office-space-3);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-background);\n}\n.join.live {\n border-color: transparent;\n background: var(--office-call-live);\n color: var(--office-call-foreground);\n}\n\n/* ---- conversation ----------------------------------------------------------------------- */\n.channel-head {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--office-space-4);\n padding: var(--office-space-2) var(--office-space-5);\n border-bottom: var(--office-border-width) solid var(--office-teams-divider);\n}\n.channel-head > button:not(.meet),\n.thread-head button {\n padding: var(--office-space-2) var(--office-space-3);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-background);\n}\n.channel-head > button:hover:not(:disabled),\n.thread-head button:hover {\n background: var(--office-selected);\n}\n.channel-head > button:disabled {\n opacity: 0.5;\n cursor: default;\n}\n.channel-head h1 {\n margin: 0;\n font-size: var(--office-font-size-lg);\n white-space: nowrap;\n}\n.hash {\n color: var(--office-teams-text-subtle);\n}\n.tabs {\n display: flex;\n gap: var(--office-space-1);\n}\n.tabs button {\n padding: var(--office-space-2) var(--office-space-3);\n border: 0;\n border-bottom: var(--office-border-width-thick) solid transparent;\n background: transparent;\n}\n.tabs button[aria-selected='true'] {\n border-bottom-color: var(--office-teams-brand);\n font-weight: var(--office-font-weight-bold);\n}\n.topic {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n color: var(--office-teams-text-subtle);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.people {\n display: flex;\n align-items: center;\n gap: var(--office-space-0);\n}\n.more {\n margin-inline-start: var(--office-space-1);\n color: var(--office-teams-text-subtle);\n font-size: var(--office-font-size-sm);\n}\n.meet {\n padding: var(--office-space-2) var(--office-space-4);\n border: 0;\n border-radius: var(--office-radius-md);\n background: var(--office-teams-brand);\n color: var(--office-teams-brand-foreground);\n font-weight: var(--office-font-weight-bold);\n}\n.meet:hover:not(:disabled) {\n background: var(--office-teams-brand-hover);\n}\n.meet:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.callbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--office-space-2) var(--office-space-5);\n background: var(--office-call-live);\n color: var(--office-call-foreground);\n}\n.callbar button {\n padding: 0 var(--office-space-3);\n border: var(--office-border-width) solid currentColor;\n border-radius: var(--office-radius);\n background: transparent;\n}\n\n/* ---- files ------------------------------------------------------------------------------ */\n/* ---- meeting ---------------------------------------------------------------------------- */\n.meeting {\n display: grid;\n grid-template-rows: auto minmax(0, 1fr);\n height: 100%;\n background: var(--office-call-background);\n}\n.stage {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n min-height: 0;\n}\n.panel {\n display: flex;\n flex-direction: column;\n width: 22em;\n min-height: 0;\n background: var(--office-background);\n border-inline-start: var(--office-border-width) solid var(--office-teams-divider);\n}\n.panel office-ui-chat-list {\n flex: 1;\n padding-inline: var(--office-space-3);\n}\n.panel office-ui-chat-composer {\n padding-inline: var(--office-space-3);\n}\n.people-panel h2 {\n margin: 0;\n padding: var(--office-space-3) var(--office-space-4);\n font-size: var(--office-font-size-lg);\n}\n\n/* ---- welcome and toast ------------------------------------------------------------------ */\n.welcome {\n display: grid;\n place-items: center;\n height: 100%;\n background: var(--office-teams-panel);\n}\n.welcome form {\n display: grid;\n justify-items: center;\n gap: var(--office-space-3);\n width: min(24em, 90%);\n padding: var(--office-space-6);\n border-radius: var(--office-radius-lg);\n background: var(--office-background);\n box-shadow: var(--office-shadow-teams);\n}\n.welcome h1 {\n margin: 0;\n font-size: var(--office-font-size-xl);\n}\n.welcome p {\n margin: 0;\n color: var(--office-teams-text-subtle);\n}\n.welcome input {\n width: 100%;\n padding: var(--office-space-3);\n border: var(--office-border-width) solid var(--office-field-border);\n border-radius: var(--office-radius);\n background: var(--office-field-background);\n color: inherit;\n font: inherit;\n}\n.welcome button {\n width: 100%;\n padding: var(--office-space-3);\n border: 0;\n border-radius: var(--office-radius-md);\n background: var(--office-teams-brand);\n color: var(--office-teams-brand-foreground);\n font-weight: var(--office-font-weight-bold);\n}\n.toast {\n position: fixed;\n inset-block-end: var(--office-space-4);\n inset-inline-start: 50%;\n z-index: 10;\n transform: translateX(-50%);\n padding: var(--office-space-2) var(--office-space-4);\n border-radius: var(--office-radius-md);\n background: var(--office-call-background);\n color: var(--office-call-foreground);\n}\n\n.conversation-grid {\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n flex: 1;\n min-height: 0;\n}\n.conversation-grid[data-thread='true'] {\n grid-template-columns: minmax(0, 1fr) minmax(18em, 0.8fr);\n}\n.conversation-main,\n.thread-pane {\n display: flex;\n flex-direction: column;\n min-height: 0;\n min-width: 0;\n}\n.tab-conversation teams-channel-tab {\n flex: 1;\n min-height: 0;\n}\n.thread-pane {\n border-inline-start: var(--office-border-width) solid var(--office-teams-divider);\n}\n.thread-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--office-space-3);\n padding: var(--office-space-3);\n}\n.thread-head h2 {\n margin: 0;\n font-size: 1em;\n}\n.followed-threads {\n overflow: auto;\n padding: var(--office-space-4);\n}\n.message-transfer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--office-space-3);\n padding: var(--office-space-3);\n background: var(--office-teams-panel);\n border-block-end: var(--office-border-width) solid var(--office-teams-divider);\n}\n.message-transfer span {\n flex: 1;\n overflow-wrap: anywhere;\n}\n.message-transfer button {\n font: inherit;\n color: inherit;\n background: var(--office-background);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n padding: var(--office-space-2) var(--office-space-3);\n cursor: pointer;\n}\n.followed-threads ul {\n list-style: none;\n padding: 0;\n}\n.followed-threads fieldset {\n display: flex;\n flex-wrap: wrap;\n gap: var(--office-space-4);\n padding: var(--office-space-3);\n margin-block: var(--office-space-3);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n}\n.followed-threads li {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--office-space-3);\n padding-block: var(--office-space-3);\n border-block-end: var(--office-border-width) solid var(--office-teams-divider);\n}\n.followed-threads button {\n font: inherit;\n color: inherit;\n background: var(--office-background);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n padding: var(--office-space-2) var(--office-space-3);\n cursor: pointer;\n}\n.followed-threads button:hover {\n background: var(--office-selected);\n}\n.followed-threads li button:first-child {\n display: grid;\n gap: var(--office-space-2);\n flex: 1;\n text-align: start;\n min-width: 0;\n overflow-wrap: anywhere;\n border-color: transparent;\n}\n.followed-threads li[data-unread='true'] button:first-child span {\n font-weight: var(--office-font-weight-bold);\n}\n@media (max-width: 56em) {\n .conversation-grid[data-thread='true'] {\n grid-template-columns: minmax(0, 1fr);\n }\n .conversation-grid[data-thread='true'] .conversation-main {\n display: none;\n }\n}\n.tabs {\n overflow-x: auto;\n min-width: 0;\n flex: 1 1 16em;\n}\n\n@media (max-width: 56.25em) {\n .navigation-toggle {\n display: inline-flex;\n }\n .brand > .logo,\n .brand > span:last-child {\n display: none;\n }\n .channel-head .topic,\n .channel-head .people {\n display: none;\n }\n .channel-head .tabs {\n flex-basis: 100%;\n }\n .body {\n grid-template-columns: auto minmax(0, 1fr);\n }\n .side {\n display: none;\n }\n .topbar {\n grid-template-columns: auto minmax(0, 1fr) auto;\n }\n}\n";
|
|
2334
|
+
function threadPane(state, client, openFile, close) {
|
|
2335
|
+
const thread = state.thread;
|
|
2336
|
+
if (!thread) return nothing;
|
|
2337
|
+
return html`<aside class="thread-pane" aria-label="Thread">
|
|
2338
|
+
<header class="thread-head">
|
|
2339
|
+
<h2 tabindex="-1" data-thread-heading>Thread</h2>
|
|
2340
|
+
<button
|
|
2341
|
+
type="button"
|
|
2342
|
+
@click=${() => client.followThread(state.selectedChannelId, thread.root.id, !state.threadFollowed)}
|
|
2343
|
+
>
|
|
2344
|
+
${state.threadFollowed ? "Unfollow thread" : "Follow thread"}
|
|
2345
|
+
</button>
|
|
2346
|
+
<button type="button" @click=${close}>Close thread</button>
|
|
2347
|
+
</header>
|
|
2348
|
+
<office-ui-chat-list
|
|
2349
|
+
.messages=${[thread.root, ...thread.replies]}
|
|
2350
|
+
self-id=${state.user.id}
|
|
2351
|
+
@office-chat-react=${(e) => client.toggleReaction(e.detail.messageId, e.detail.emoji)}
|
|
2352
|
+
@office-chat-reply=${(e) => client.startReply(e.detail.messageId)}
|
|
2353
|
+
@office-chat-edit=${(e) => client.startEdit(e.detail.messageId)}
|
|
2354
|
+
@office-chat-delete=${(e) => globalThis.confirm?.("Delete this message?") !== false && client.deleteMessage(e.detail.messageId)}
|
|
2355
|
+
@office-chat-open-file=${(e) => openFile(e.detail.attachment)}
|
|
2356
|
+
></office-ui-chat-list>
|
|
2357
|
+
<office-ui-chat-composer
|
|
2358
|
+
.typing=${state.typing}
|
|
2359
|
+
.replyingTo=${state.replyingTo?.authorName ?? null}
|
|
2360
|
+
.editing=${state.editing !== null}
|
|
2361
|
+
.value=${state.draft.text}
|
|
2362
|
+
.files=${state.draft.files}
|
|
2363
|
+
.missingFiles=${state.draft.missingFiles}
|
|
2364
|
+
@office-chat-draft=${(e) => client.setDraft(e.detail)}
|
|
2365
|
+
placeholder="Reply in thread"
|
|
2366
|
+
@office-chat-typing=${() => client.notifyTyping()}
|
|
2367
|
+
@office-chat-cancel=${() => client.cancelCompose()}
|
|
2368
|
+
@office-chat-send=${(e) => {
|
|
2369
|
+
const current = client.getState();
|
|
2370
|
+
if (!current.editing && !current.replyingTo) client.startReply(thread.root.id);
|
|
2371
|
+
void client.send(e.detail);
|
|
2372
|
+
}}
|
|
2373
|
+
></office-ui-chat-composer>
|
|
2374
|
+
</aside>`;
|
|
2375
|
+
}
|
|
2376
|
+
function followedThreads(state, client, open, unreadOnly, filter) {
|
|
2377
|
+
const threads = state.followedThreads.filter((thread) => !unreadOnly || thread.unread > 0);
|
|
2378
|
+
return html`<section class="followed-threads" aria-label="Followed threads">
|
|
2379
|
+
<h1>Followed threads</h1>
|
|
2380
|
+
<p>Threads you follow on this device. Notifications are not enabled.</p>
|
|
2381
|
+
<fieldset>
|
|
2382
|
+
<legend>Automatically follow</legend>
|
|
2383
|
+
<label
|
|
2384
|
+
><input
|
|
2385
|
+
type="checkbox"
|
|
2386
|
+
.checked=${state.threadFollowSettings.started}
|
|
2387
|
+
@change=${(event) => client.setThreadFollowSettings({ started: event.target.checked })}
|
|
2388
|
+
/>
|
|
2389
|
+
Threads I start</label
|
|
2390
|
+
>
|
|
2391
|
+
<label
|
|
2392
|
+
><input
|
|
2393
|
+
type="checkbox"
|
|
2394
|
+
.checked=${state.threadFollowSettings.replied}
|
|
2395
|
+
@change=${(event) => client.setThreadFollowSettings({ replied: event.target.checked })}
|
|
2396
|
+
/>
|
|
2397
|
+
Threads I reply to</label
|
|
2398
|
+
>
|
|
2399
|
+
</fieldset>
|
|
2400
|
+
<label
|
|
2401
|
+
><input
|
|
2402
|
+
type="checkbox"
|
|
2403
|
+
.checked=${unreadOnly}
|
|
2404
|
+
@change=${(event) => filter(event.target.checked)}
|
|
2405
|
+
/>
|
|
2406
|
+
Unread only</label
|
|
2407
|
+
>
|
|
2408
|
+
<ul>
|
|
2409
|
+
${threads.length ? threads.map(
|
|
2410
|
+
(thread) => html`<li data-unread=${String(thread.unread > 0)}>
|
|
2411
|
+
<button
|
|
2412
|
+
type="button"
|
|
2413
|
+
@click=${() => open(thread)}
|
|
2414
|
+
aria-label=${`Open thread in ${thread.channelName}: ${thread.root.deleted ? "Deleted message" : thread.root.text}`}
|
|
2415
|
+
>
|
|
2416
|
+
<strong># ${thread.channelName}</strong
|
|
2417
|
+
><span
|
|
2418
|
+
>${thread.root.deleted ? "This message was deleted" : thread.root.text || "Shared file"}</span
|
|
2419
|
+
>
|
|
2420
|
+
<small
|
|
2421
|
+
>${thread.replyCount} ${thread.replyCount === 1 ? "reply" : "replies"} ·
|
|
2422
|
+
${new Date(thread.updatedAt).toLocaleString()}</small
|
|
2423
|
+
></button
|
|
2424
|
+
><span>${thread.unread > 0 ? `${thread.unread} unread` : "Read"}</span
|
|
2425
|
+
><button
|
|
2426
|
+
type="button"
|
|
2427
|
+
@click=${() => client.markThreadRead(thread.channelId, thread.root.id, thread.unread > 0)}
|
|
2428
|
+
>
|
|
2429
|
+
${thread.unread > 0 ? "Mark as read" : "Mark as unread"}</button
|
|
2430
|
+
><button
|
|
2431
|
+
type="button"
|
|
2432
|
+
@click=${() => client.followThread(thread.channelId, thread.root.id, false)}
|
|
2433
|
+
>
|
|
2434
|
+
Unfollow thread
|
|
2435
|
+
</button>
|
|
2436
|
+
</li>`
|
|
2437
|
+
) : html`<li>
|
|
2438
|
+
${unreadOnly ? "No unread followed threads." : "No followed threads yet. Open a thread and choose Follow thread."}
|
|
2439
|
+
</li>`}
|
|
2440
|
+
</ul>
|
|
2441
|
+
</section>`;
|
|
2442
|
+
}
|
|
2443
|
+
function draftList(state, client, open) {
|
|
2444
|
+
return html`<section class="followed-threads" aria-label="Drafts">
|
|
2445
|
+
<h1>Drafts</h1>
|
|
2446
|
+
<p>Unsent messages on this device. After reloading, draft attachments must be reattached.</p>
|
|
2447
|
+
<ul>
|
|
2448
|
+
${state.drafts.length ? state.drafts.map((draft) => {
|
|
2449
|
+
const channel = state.channels.find((item) => item.id === draft.context.channelId);
|
|
2450
|
+
return html`<li>
|
|
2451
|
+
<button
|
|
2452
|
+
type="button"
|
|
2453
|
+
aria-label=${`Resume draft in ${channel.name}: ${draft.text.slice(0, 80) || "Attachments"}`}
|
|
2454
|
+
@click=${() => open(draft.context)}
|
|
2455
|
+
>
|
|
2456
|
+
<strong># ${channel.name}</strong><span>${draft.text || "Attachments"}</span
|
|
2457
|
+
><small
|
|
2458
|
+
>${draft.context.editId ? "Edit" : draft.context.threadId ? "Thread reply" : "New post"}
|
|
2459
|
+
· ${draft.files.length + draft.missingFiles.length} attachments</small
|
|
2460
|
+
></button
|
|
2461
|
+
><button
|
|
2462
|
+
type="button"
|
|
2463
|
+
@click=${() => {
|
|
2464
|
+
if (globalThis.confirm?.("Discard this unsent draft?") !== false)
|
|
2465
|
+
client.discardDraft(draft.context);
|
|
2466
|
+
}}
|
|
2467
|
+
>
|
|
2468
|
+
Discard draft
|
|
2469
|
+
</button>
|
|
2470
|
+
</li>`;
|
|
2471
|
+
}) : html`<li>No unsent drafts.</li>`}
|
|
2472
|
+
</ul>
|
|
2473
|
+
</section>`;
|
|
2474
|
+
}
|
|
2475
|
+
var MARKER = "openteams-file";
|
|
2476
|
+
function filePopoutUrl(detail, pageUrl) {
|
|
2477
|
+
const url = contentUrl(detail.url, pageUrl);
|
|
2478
|
+
const attachment = sanitizeAttachment(detail.attachment);
|
|
2479
|
+
if (!url || !attachment) return null;
|
|
2480
|
+
const page = new URL(pageUrl);
|
|
2481
|
+
page.searchParams.set(MARKER, "1");
|
|
2482
|
+
page.hash = encodeURIComponent(JSON.stringify({ attachment, url }));
|
|
2483
|
+
if (page.hash.length > 32768) return null;
|
|
2484
|
+
return page.href;
|
|
2485
|
+
}
|
|
2486
|
+
function filePopoutDetail(pageUrl) {
|
|
2487
|
+
try {
|
|
2488
|
+
const page = new URL(pageUrl);
|
|
2489
|
+
if (page.searchParams.get(MARKER) !== "1" || page.hash.length > 32768) return null;
|
|
2490
|
+
const raw = JSON.parse(decodeURIComponent(page.hash.slice(1)));
|
|
2491
|
+
const attachment = sanitizeAttachment(raw.attachment);
|
|
2492
|
+
const url = contentUrl(typeof raw.url === "string" ? raw.url : void 0, pageUrl);
|
|
2493
|
+
return attachment && url ? { attachment, url } : null;
|
|
2494
|
+
} catch {
|
|
2495
|
+
return null;
|
|
2496
|
+
}
|
|
2497
|
+
}
|
|
2498
|
+
function messageTransfers(state, client) {
|
|
2499
|
+
return state.messageTransfers.filter((transfer) => transfer.context.channelId === state.selectedChannelId).map(
|
|
2500
|
+
(transfer) => html`<div class="message-transfer" role="status">
|
|
2501
|
+
<span
|
|
2502
|
+
>${`${transfer.context.threadId || transfer.context.replyTo ? "Sending thread reply" : "Sending channel post"}: ${transfer.progress.fileName}. ${transfer.progress.completed} of ${transfer.progress.total} files uploaded`}</span
|
|
2503
|
+
><progress
|
|
2504
|
+
aria-label="Message file progress"
|
|
2505
|
+
max=${transfer.progress.total}
|
|
2506
|
+
value=${transfer.progress.completed}
|
|
2507
|
+
></progress
|
|
2508
|
+
><button type="button" @click=${() => client.cancelSend(transfer.id)}>
|
|
2509
|
+
Cancel message send
|
|
2510
|
+
</button>
|
|
2511
|
+
</div>`
|
|
2512
|
+
);
|
|
2513
|
+
}
|
|
2514
|
+
|
|
2515
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app/profile-menu.css?raw
|
|
2516
|
+
var profile_menu_default = ":host {\n display: inline-flex;\n font: inherit;\n color: inherit;\n}\n.profile {\n display: inline-flex;\n align-items: center;\n padding: var(--office-space-1);\n border: 0;\n border-radius: var(--office-radius-full);\n background: transparent;\n cursor: pointer;\n}\n.profile:hover {\n background: var(--office-selected);\n}\n[popover] {\n min-width: 20em;\n max-width: 90vw;\n padding: var(--office-space-4);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-popover);\n color: var(--office-foreground);\n box-shadow: var(--office-shadow-teams);\n}\n.identity {\n display: flex;\n gap: var(--office-space-3);\n align-items: center;\n margin-bottom: var(--office-space-4);\n}\n.identity strong {\n overflow-wrap: anywhere;\n}\nlabel {\n display: grid;\n gap: var(--office-space-2);\n}\nselect {\n font: inherit;\n padding: var(--office-space-2);\n color: inherit;\n border: var(--office-border-width) solid var(--office-field-border);\n border-radius: var(--office-radius);\n background: var(--office-field-background);\n}\n.connection {\n color: var(--office-teams-text-subtle);\n margin-bottom: 0;\n font-size: var(--office-font-size-sm);\n}\n:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\n";
|
|
2517
|
+
|
|
2518
|
+
// src/teams/app/profile-menu.ts
|
|
2519
|
+
var AVAILABILITY = ["available", "busy", "away"];
|
|
2520
|
+
var TeamsProfileMenu = class extends LitElement {
|
|
2521
|
+
static styles = unsafeCSS(profile_menu_default);
|
|
2522
|
+
static properties = { state: { attribute: false }, open: { state: true } };
|
|
2523
|
+
constructor() {
|
|
2524
|
+
super();
|
|
2525
|
+
this.state = null;
|
|
2526
|
+
this.open = false;
|
|
2527
|
+
}
|
|
2528
|
+
willUpdate(changed) {
|
|
2529
|
+
const old = changed.get("state");
|
|
2530
|
+
if (old && old.user.id !== this.state?.user.id)
|
|
2531
|
+
this.renderRoot.querySelector("[popover]")?.hidePopover();
|
|
2532
|
+
}
|
|
2533
|
+
toggle() {
|
|
2534
|
+
const panel = this.renderRoot.querySelector("[popover]");
|
|
2535
|
+
if (toggleAnchoredPopover(panel, this.renderRoot.querySelector("button")))
|
|
2536
|
+
panel.querySelector("select")?.focus();
|
|
2537
|
+
}
|
|
2538
|
+
render() {
|
|
2539
|
+
const state = this.state;
|
|
2540
|
+
if (!state) return nothing;
|
|
2541
|
+
return html`<button
|
|
2542
|
+
type="button"
|
|
2543
|
+
class="profile"
|
|
2544
|
+
aria-label=${`Profile for ${state.user.name}`}
|
|
2545
|
+
aria-expanded=${String(this.open)}
|
|
2546
|
+
aria-haspopup="dialog"
|
|
2547
|
+
aria-controls="profile"
|
|
2548
|
+
@click=${this.toggle}
|
|
2549
|
+
>
|
|
2550
|
+
<office-ui-avatar
|
|
2551
|
+
name=${state.user.name}
|
|
2552
|
+
seed=${state.user.id}
|
|
2553
|
+
presence=${state.availability}
|
|
2554
|
+
></office-ui-avatar>
|
|
2555
|
+
</button>
|
|
2556
|
+
<div
|
|
2557
|
+
id="profile"
|
|
2558
|
+
popover="auto"
|
|
2559
|
+
role="dialog"
|
|
2560
|
+
aria-label="Your profile"
|
|
2561
|
+
@keydown=${(event) => {
|
|
2562
|
+
if (event.key !== "Escape") return;
|
|
2563
|
+
event.preventDefault();
|
|
2564
|
+
this.renderRoot.querySelector("[popover]")?.hidePopover();
|
|
2565
|
+
this.renderRoot.querySelector("button")?.focus();
|
|
2566
|
+
}}
|
|
2567
|
+
@toggle=${() => {
|
|
2568
|
+
const panel = this.renderRoot.querySelector("[popover]");
|
|
2569
|
+
this.open = panel.matches(":popover-open");
|
|
2570
|
+
if (!this.open && panel.contains(this.shadowRoot?.activeElement ?? null))
|
|
2571
|
+
this.renderRoot.querySelector("button")?.focus();
|
|
2572
|
+
}}
|
|
2573
|
+
>
|
|
2574
|
+
<div class="identity">
|
|
2575
|
+
<office-ui-avatar
|
|
2576
|
+
size="lg"
|
|
2577
|
+
name=${state.user.name}
|
|
2578
|
+
seed=${state.user.id}
|
|
2579
|
+
presence=${state.availability}
|
|
2580
|
+
></office-ui-avatar
|
|
2581
|
+
><strong>${state.user.name}</strong>
|
|
2582
|
+
</div>
|
|
2583
|
+
<label
|
|
2584
|
+
>Availability<select
|
|
2585
|
+
.value=${state.availability}
|
|
2586
|
+
@change=${(event) => {
|
|
2587
|
+
const availability = event.target.value;
|
|
2588
|
+
if (AVAILABILITY.some((value) => value === availability))
|
|
2589
|
+
this.dispatchEvent(
|
|
2590
|
+
new CustomEvent("teams-profile-status", {
|
|
2591
|
+
detail: { availability },
|
|
2592
|
+
bubbles: true,
|
|
2593
|
+
composed: true
|
|
2594
|
+
})
|
|
2595
|
+
);
|
|
2596
|
+
}}
|
|
2597
|
+
>
|
|
2598
|
+
${AVAILABILITY.map((value) => html`<option value=${value} ?selected=${state.availability === value}>${value[0].toUpperCase() + value.slice(1)}</option>`)}
|
|
2599
|
+
</select></label
|
|
2600
|
+
>
|
|
2601
|
+
<p class="connection">
|
|
2602
|
+
${state.mode === "local" ? "Local workspace" : "Workspace server"}: ${state.status}
|
|
2603
|
+
</p>
|
|
2604
|
+
</div>`;
|
|
2605
|
+
}
|
|
2606
|
+
};
|
|
2607
|
+
function defineTeamsProfileMenu() {
|
|
2608
|
+
if (!customElements.get("teams-profile-menu"))
|
|
2609
|
+
customElements.define("teams-profile-menu", TeamsProfileMenu);
|
|
2610
|
+
}
|
|
2611
|
+
|
|
2612
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app/add-tab-dialog.css?raw
|
|
2613
|
+
var add_tab_dialog_default = ":host {\n font: var(--office-font-size) var(--office-font);\n color: var(--office-foreground);\n}\ndialog {\n box-sizing: border-box;\n width: min(54em, 94vw);\n max-height: 90vh;\n padding: 0;\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-lg);\n color: inherit;\n background: var(--office-popover);\n box-shadow: var(--office-shadow-teams);\n}\ndialog::backdrop {\n background: var(--office-overlay);\n}\nheader,\n.app-heading,\nfooter {\n display: flex;\n align-items: center;\n gap: var(--office-space-3);\n}\nheader {\n justify-content: space-between;\n padding: var(--office-space-4) var(--office-space-5);\n border-bottom: var(--office-border-width) solid var(--office-teams-divider);\n}\nh1,\nh2 {\n margin: 0;\n font-size: var(--office-font-size-lg);\n}\nsection,\nform {\n padding: var(--office-space-5);\n}\nform {\n display: grid;\n gap: var(--office-space-3);\n}\n.apps {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(10em, 1fr));\n gap: var(--office-space-3);\n}\nbutton,\ninput {\n font: inherit;\n color: inherit;\n border: var(--office-border-width) solid var(--office-field-border);\n border-radius: var(--office-radius);\n background: var(--office-field-background);\n padding: var(--office-space-2) var(--office-space-3);\n}\nbutton {\n cursor: pointer;\n}\nbutton:hover:not(:disabled) {\n background: var(--office-selected);\n}\nbutton:disabled {\n opacity: 0.5;\n cursor: default;\n}\n.app {\n display: grid;\n justify-items: start;\n text-align: start;\n gap: var(--office-space-2);\n padding: var(--office-space-4);\n}\n.app-heading h2 {\n flex: 1;\n}\n.badge {\n display: grid;\n place-items: center;\n width: 2.6em;\n height: 2.6em;\n border-radius: var(--office-radius-md);\n color: var(--office-call-foreground);\n background: var(--office-file-other);\n font-weight: var(--office-font-weight-bold);\n}\n.badge[data-kind='docx'] {\n background: var(--office-file-docx);\n}\n.badge[data-kind='xlsx'] {\n background: var(--office-file-xlsx);\n}\n.badge[data-kind='pptx'] {\n background: var(--office-file-pptx);\n}\n.badge[data-kind='vsdx'] {\n background: var(--office-file-vsdx);\n}\nlabel {\n display: grid;\n gap: var(--office-space-2);\n}\ninput {\n min-width: 0;\n}\nsmall,\n.hint,\nsection > p {\n color: var(--office-teams-text-subtle);\n line-height: 1.5;\n}\nsmall {\n display: block;\n}\n.files {\n margin: 0;\n padding: var(--office-space-2);\n max-height: 18em;\n overflow: auto;\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius);\n}\n.file {\n display: flex;\n align-items: center;\n gap: var(--office-space-3);\n padding: var(--office-space-3);\n border-radius: var(--office-radius);\n cursor: pointer;\n}\n.file:has(input:checked) {\n background: var(--office-teams-brand-subtle);\n}\n.file strong {\n overflow-wrap: anywhere;\n}\n[role='alert'] {\n color: var(--office-danger);\n}\nfooter {\n justify-content: flex-end;\n}\n.post-choice {\n display: flex;\n align-items: center;\n gap: var(--office-space-2);\n}\nbutton.primary {\n color: var(--office-teams-brand-foreground);\n border-color: var(--office-teams-brand);\n background: var(--office-teams-brand);\n}\nbutton.primary:hover:not(:disabled) {\n background: var(--office-teams-brand-hover);\n}\n:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\n";
|
|
2614
|
+
|
|
2615
|
+
// src/teams/app/add-tab-dialog.ts
|
|
2616
|
+
var APPS = [
|
|
2617
|
+
{ id: "docx", label: "Word", kind: "docx", letter: "W" },
|
|
2618
|
+
{ id: "xlsx", label: "Excel", kind: "xlsx", letter: "X" },
|
|
2619
|
+
{ id: "pptx", label: "PowerPoint", kind: "pptx", letter: "P" },
|
|
2620
|
+
{ id: "vsdx", label: "Visio", kind: "vsdx", letter: "V" },
|
|
2621
|
+
{ id: "markdown", label: "Markdown", kind: "markdown", letter: "M" },
|
|
2622
|
+
{ id: "site", label: "Static site", kind: "website", letter: "H" },
|
|
2623
|
+
{ id: "text", label: "Text", kind: "text", letter: "T" },
|
|
2624
|
+
{ id: "website", label: "Website", kind: null, letter: "\u2197" }
|
|
2625
|
+
];
|
|
2626
|
+
var fileKey2 = (file) => JSON.stringify([file.messageId, file.name, file.url]);
|
|
2627
|
+
var TeamsAddTabDialog = class extends LitElement {
|
|
2628
|
+
static styles = unsafeCSS(add_tab_dialog_default);
|
|
2629
|
+
static properties = {
|
|
2630
|
+
open: { type: Boolean },
|
|
2631
|
+
client: { attribute: false },
|
|
2632
|
+
channelId: { attribute: false },
|
|
2633
|
+
channelName: { attribute: false },
|
|
2634
|
+
files: { attribute: false },
|
|
2635
|
+
add: { attribute: false },
|
|
2636
|
+
app: { state: true },
|
|
2637
|
+
query: { state: true },
|
|
2638
|
+
selectedKey: { state: true },
|
|
2639
|
+
name: { state: true },
|
|
2640
|
+
url: { state: true },
|
|
2641
|
+
error: { state: true },
|
|
2642
|
+
postToChannel: { state: true }
|
|
2643
|
+
};
|
|
2644
|
+
owner = null;
|
|
2645
|
+
context = "";
|
|
2646
|
+
contextName = "";
|
|
2647
|
+
constructor() {
|
|
2648
|
+
super();
|
|
2649
|
+
this.open = false;
|
|
2650
|
+
this.client = null;
|
|
2651
|
+
this.channelId = "";
|
|
2652
|
+
this.channelName = "";
|
|
2653
|
+
this.files = [];
|
|
2654
|
+
this.add = null;
|
|
2655
|
+
this.app = null;
|
|
2656
|
+
this.query = "";
|
|
2657
|
+
this.selectedKey = "";
|
|
2658
|
+
this.name = "";
|
|
2659
|
+
this.url = "";
|
|
2660
|
+
this.error = "";
|
|
2661
|
+
this.postToChannel = true;
|
|
2662
|
+
}
|
|
2663
|
+
willUpdate(changed) {
|
|
2664
|
+
if (changed.has("open") && this.open) {
|
|
2665
|
+
this.owner = this.client;
|
|
2666
|
+
this.context = this.channelId;
|
|
2667
|
+
this.contextName = this.channelName;
|
|
2668
|
+
this.app = null;
|
|
2669
|
+
this.query = "";
|
|
2670
|
+
this.selectedKey = "";
|
|
2671
|
+
this.name = "";
|
|
2672
|
+
this.url = "";
|
|
2673
|
+
this.error = "";
|
|
2674
|
+
this.postToChannel = true;
|
|
2675
|
+
}
|
|
2676
|
+
}
|
|
2677
|
+
updated(changed) {
|
|
2678
|
+
const dialog = this.renderRoot.querySelector("dialog");
|
|
2679
|
+
if (this.open && !dialog.open) dialog.showModal();
|
|
2680
|
+
else if (!this.open && dialog.open) dialog.close();
|
|
2681
|
+
if (changed.has("app") && this.open)
|
|
2682
|
+
this.renderRoot.querySelector(this.app ? "[data-configure]" : "[data-first-app]")?.focus();
|
|
2683
|
+
}
|
|
2684
|
+
close() {
|
|
2685
|
+
this.dispatchEvent(new CustomEvent("teams-add-tab-close", { bubbles: true, composed: true }));
|
|
2686
|
+
}
|
|
2687
|
+
get current() {
|
|
2688
|
+
return !!this.owner && this.owner === this.client && this.context === this.channelId && this.owner.getState().selectedChannelId === this.context && this.owner.getState().channels.some((channel) => channel.id === this.context);
|
|
2689
|
+
}
|
|
2690
|
+
eligible(kind) {
|
|
2691
|
+
return this.files.filter(
|
|
2692
|
+
(file) => detectContentKind(file.name, file.mime) === kind && !!contentUrl(file.url, this.ownerDocument.baseURI)
|
|
2693
|
+
);
|
|
2694
|
+
}
|
|
2695
|
+
get selected() {
|
|
2696
|
+
const app = APPS.find((entry) => entry.id === this.app);
|
|
2697
|
+
return app?.kind ? this.eligible(app.kind).find((file) => fileKey2(file) === this.selectedKey) : void 0;
|
|
2698
|
+
}
|
|
2699
|
+
availableLabel(kind) {
|
|
2700
|
+
const count = this.eligible(kind).length;
|
|
2701
|
+
return `${count} shared ${count === 1 ? "file" : "files"}`;
|
|
2702
|
+
}
|
|
2703
|
+
choose(app) {
|
|
2704
|
+
this.app = app;
|
|
2705
|
+
this.query = "";
|
|
2706
|
+
this.selectedKey = "";
|
|
2707
|
+
this.name = "";
|
|
2708
|
+
this.url = "";
|
|
2709
|
+
this.error = "";
|
|
2710
|
+
}
|
|
2711
|
+
submit(event) {
|
|
2712
|
+
event.preventDefault();
|
|
2713
|
+
this.error = "";
|
|
2714
|
+
if (!this.current || !this.owner || !this.add) {
|
|
2715
|
+
this.error = "The channel changed. Close this dialog and try again.";
|
|
2716
|
+
return;
|
|
2717
|
+
}
|
|
2718
|
+
if (this.app === "website" && !contentUrl(this.url, this.ownerDocument.baseURI)) {
|
|
2719
|
+
this.error = "Enter a valid http or https website URL.";
|
|
2720
|
+
return;
|
|
2721
|
+
}
|
|
2722
|
+
const content = this.app === "website" ? { type: "website", url: this.url } : this.selected ? { type: "file", attachment: this.selected } : null;
|
|
2723
|
+
if (!content) {
|
|
2724
|
+
this.error = "Choose a file shared in this channel.";
|
|
2725
|
+
return;
|
|
2726
|
+
}
|
|
2727
|
+
const result = this.add(this.name, content, this.context, this.owner, this.postToChannel);
|
|
2728
|
+
if (!result) this.error = "Enter a tab name and valid content.";
|
|
2729
|
+
}
|
|
2730
|
+
render() {
|
|
2731
|
+
const app = APPS.find((entry) => entry.id === this.app);
|
|
2732
|
+
const files = app?.kind ? filterFiles(this.eligible(app.kind), this.query) : [];
|
|
2733
|
+
return html`<dialog aria-label="Add a tab" @cancel=${this.close} @close=${this.close}>
|
|
2734
|
+
<header>
|
|
2735
|
+
<h1>Add a tab</h1>
|
|
2736
|
+
<button type="button" aria-label="Close add tab" @click=${this.close}>×</button>
|
|
2737
|
+
</header>
|
|
2738
|
+
${!app ? html`<section>
|
|
2739
|
+
<h2>Choose an app</h2>
|
|
2740
|
+
<p>Pin content to # ${this.contextName} so everyone in the channel can find it.</p>
|
|
2741
|
+
<div class="apps">
|
|
2742
|
+
${APPS.map(
|
|
2743
|
+
(entry, index) => html`<button
|
|
2744
|
+
type="button"
|
|
2745
|
+
class="app"
|
|
2746
|
+
aria-label=${`Choose ${entry.label}`}
|
|
2747
|
+
?data-first-app=${index === 0}
|
|
2748
|
+
?autofocus=${index === 0}
|
|
2749
|
+
@click=${() => this.choose(entry.id)}
|
|
2750
|
+
>
|
|
2751
|
+
<span class="badge" data-kind=${entry.kind ?? "other"}>${entry.letter}</span
|
|
2752
|
+
><strong>${entry.label}</strong>
|
|
2753
|
+
<small
|
|
2754
|
+
>${entry.kind ? this.availableLabel(entry.kind) : "Add a web address"}</small
|
|
2755
|
+
>
|
|
2756
|
+
</button>`
|
|
2757
|
+
)}
|
|
2758
|
+
</div>
|
|
2759
|
+
<p class="hint">File tabs use files already shared in this channel.</p>
|
|
2760
|
+
</section>` : html`<form @submit=${this.submit}>
|
|
2761
|
+
<div class="app-heading">
|
|
2762
|
+
<span class="badge" data-kind=${app.kind ?? "other"}>${app.letter}</span>
|
|
2763
|
+
<h2>${app.label}</h2>
|
|
2764
|
+
<button
|
|
2765
|
+
type="button"
|
|
2766
|
+
@click=${() => {
|
|
2767
|
+
this.app = null;
|
|
2768
|
+
this.error = "";
|
|
2769
|
+
}}
|
|
2770
|
+
>
|
|
2771
|
+
Back
|
|
2772
|
+
</button>
|
|
2773
|
+
</div>
|
|
2774
|
+
<label
|
|
2775
|
+
>Tab name<input
|
|
2776
|
+
data-configure
|
|
2777
|
+
name="name"
|
|
2778
|
+
maxlength="80"
|
|
2779
|
+
required
|
|
2780
|
+
.value=${this.name}
|
|
2781
|
+
@input=${(event) => {
|
|
2782
|
+
this.name = event.target.value;
|
|
2783
|
+
this.error = "";
|
|
2784
|
+
}}
|
|
2785
|
+
/></label>
|
|
2786
|
+
${!app.kind ? html`<label
|
|
2787
|
+
>Tab website URL<input
|
|
2788
|
+
type="url"
|
|
2789
|
+
required
|
|
2790
|
+
maxlength="2048"
|
|
2791
|
+
placeholder="https://example.com"
|
|
2792
|
+
.value=${this.url}
|
|
2793
|
+
@input=${(event) => {
|
|
2794
|
+
this.url = event.target.value;
|
|
2795
|
+
this.error = "";
|
|
2796
|
+
}}
|
|
2797
|
+
/></label>
|
|
2798
|
+
<p class="hint">
|
|
2799
|
+
Some websites block embedding. Their link remains available from the
|
|
2800
|
+
preview.
|
|
2801
|
+
</p>` : html`<label
|
|
2802
|
+
>Search shared files<input
|
|
2803
|
+
type="search"
|
|
2804
|
+
.value=${this.query}
|
|
2805
|
+
@input=${(event) => this.query = event.target.value}
|
|
2806
|
+
/></label>
|
|
2807
|
+
<fieldset class="files">
|
|
2808
|
+
<legend>Choose a file</legend>
|
|
2809
|
+
${files.map(
|
|
2810
|
+
(file) => html`<label class="file"
|
|
2811
|
+
><input
|
|
2812
|
+
type="radio"
|
|
2813
|
+
name="shared-file"
|
|
2814
|
+
.value=${fileKey2(file)}
|
|
2815
|
+
.checked=${this.selectedKey === fileKey2(file)}
|
|
2816
|
+
@change=${() => {
|
|
2817
|
+
this.selectedKey = fileKey2(file);
|
|
2818
|
+
this.name = file.name;
|
|
2819
|
+
this.error = "";
|
|
2820
|
+
}}
|
|
2821
|
+
/><span
|
|
2822
|
+
><strong>${file.name}</strong
|
|
2823
|
+
><small>Shared by ${file.author}</small></span
|
|
2824
|
+
></label
|
|
2825
|
+
>`
|
|
2826
|
+
)}
|
|
2827
|
+
${files.length ? nothing : html`<p class="hint">${this.query ? "No matching files." : `No ${app.label} files are shared in this channel. Upload a file from Shared first.`}</p>`}
|
|
2828
|
+
</fieldset>
|
|
2829
|
+
${this.selected ? html`<p class="hint">Selected: ${this.selected.name}</p>` : this.selectedKey ? html`<p role="alert">This file is no longer shared in this channel.</p>` : nothing}`}
|
|
2830
|
+
${!this.current ? html`<p role="alert">The channel changed. Close this dialog and try again.</p>` : nothing}
|
|
2831
|
+
${this.error ? html`<p role="alert">${this.error}</p>` : nothing}
|
|
2832
|
+
<label class="post-choice"
|
|
2833
|
+
><input
|
|
2834
|
+
type="checkbox"
|
|
2835
|
+
.checked=${this.postToChannel}
|
|
2836
|
+
@change=${(event) => this.postToChannel = event.target.checked}
|
|
2837
|
+
/>Post to the channel about this tab</label
|
|
2838
|
+
>
|
|
2839
|
+
<footer>
|
|
2840
|
+
<button type="button" @click=${this.close}>Cancel</button
|
|
2841
|
+
><button
|
|
2842
|
+
type="submit"
|
|
2843
|
+
class="primary"
|
|
2844
|
+
?disabled=${!this.current || !this.name.trim() || (app.kind ? !this.selected : !this.url.trim())}
|
|
2845
|
+
>
|
|
2846
|
+
Save
|
|
2847
|
+
</button>
|
|
2848
|
+
</footer>
|
|
2849
|
+
</form>`}
|
|
2850
|
+
</dialog>`;
|
|
2851
|
+
}
|
|
2852
|
+
};
|
|
2853
|
+
function defineTeamsAddTabDialog() {
|
|
2854
|
+
if (!customElements.get("teams-add-tab-dialog"))
|
|
2855
|
+
customElements.define("teams-add-tab-dialog", TeamsAddTabDialog);
|
|
2856
|
+
}
|
|
2857
|
+
|
|
2858
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app/navigation-drawer.css?raw
|
|
2859
|
+
var navigation_drawer_default = ":host {\n font: var(--office-font-size) var(--office-font);\n color: var(--office-foreground);\n}\ndialog {\n box-sizing: border-box;\n inset: 0 auto 0 0;\n margin: 0;\n width: min(24em, 92vw);\n max-width: 92vw;\n height: 100dvh;\n max-height: 100dvh;\n padding: 0;\n border: 0;\n border-inline-end: var(--office-border-width) solid var(--office-teams-divider);\n background: var(--office-teams-panel);\n color: inherit;\n box-shadow: var(--office-shadow-teams);\n}\ndialog[open] {\n display: flex;\n flex-direction: column;\n}\ndialog::backdrop {\n background: var(--office-overlay);\n}\nheader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--office-space-3);\n padding: var(--office-space-3) var(--office-space-4);\n border-block-end: var(--office-border-width) solid var(--office-teams-divider);\n}\nh2 {\n margin: 0;\n font-size: var(--office-font-size-lg);\n}\nbutton {\n padding: var(--office-space-2) var(--office-space-3);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n font: inherit;\n background: var(--office-background);\n color: inherit;\n cursor: pointer;\n}\nbutton:hover {\n background: var(--office-selected);\n}\nbutton:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\nnav {\n flex: 1;\n min-height: 0;\n overflow: auto;\n overscroll-behavior: contain;\n}\n";
|
|
2860
|
+
|
|
2861
|
+
// src/dialog/focus.ts
|
|
2862
|
+
var MODAL_FOCUSABLE_SELECTOR = [
|
|
2863
|
+
"a[href]",
|
|
2864
|
+
"button:not([disabled])",
|
|
2865
|
+
'input:not([disabled]):not([type="hidden"])',
|
|
2866
|
+
"select:not([disabled])",
|
|
2867
|
+
"textarea:not([disabled])",
|
|
2868
|
+
'[contenteditable="true"]',
|
|
2869
|
+
'[tabindex]:not([tabindex="-1"])'
|
|
2870
|
+
].join(",");
|
|
2871
|
+
function isAvailable(element) {
|
|
2872
|
+
if (element.hidden || element.getAttribute("aria-hidden") === "true") {
|
|
2873
|
+
return false;
|
|
2874
|
+
}
|
|
2875
|
+
const style = element.ownerDocument.defaultView?.getComputedStyle(element);
|
|
2876
|
+
return style?.display !== "none" && style?.visibility !== "hidden";
|
|
2877
|
+
}
|
|
2878
|
+
function focusableElements(root, found = []) {
|
|
2879
|
+
for (const child of Array.from(root.children)) {
|
|
2880
|
+
if (child instanceof HTMLElement) {
|
|
2881
|
+
if (!isAvailable(child)) continue;
|
|
2882
|
+
if (child.matches(MODAL_FOCUSABLE_SELECTOR) && isAvailable(child)) {
|
|
2883
|
+
found.push(child);
|
|
2884
|
+
}
|
|
2885
|
+
if (child.shadowRoot && isAvailable(child)) {
|
|
2886
|
+
focusableElements(child.shadowRoot, found);
|
|
2887
|
+
}
|
|
2888
|
+
}
|
|
2889
|
+
focusableElements(child, found);
|
|
2890
|
+
}
|
|
2891
|
+
return found;
|
|
2892
|
+
}
|
|
2893
|
+
function deepActiveElement(doc) {
|
|
2894
|
+
let active = doc.activeElement;
|
|
2895
|
+
while (active?.shadowRoot?.activeElement) {
|
|
2896
|
+
active = active.shadowRoot.activeElement;
|
|
2897
|
+
}
|
|
2898
|
+
return active;
|
|
2899
|
+
}
|
|
2900
|
+
function modalFocusableElements(panel) {
|
|
2901
|
+
return focusableElements(panel);
|
|
2902
|
+
}
|
|
2903
|
+
function modalActiveElement(doc) {
|
|
2904
|
+
return deepActiveElement(doc);
|
|
2905
|
+
}
|
|
2906
|
+
|
|
2907
|
+
// src/teams/app/navigation-drawer.ts
|
|
2908
|
+
var TeamsNavigationDrawer = class extends LitElement {
|
|
2909
|
+
static styles = unsafeCSS(navigation_drawer_default);
|
|
2910
|
+
static properties = {
|
|
2911
|
+
open: { type: Boolean, reflect: true },
|
|
2912
|
+
heading: { type: String }
|
|
2913
|
+
};
|
|
2914
|
+
compact;
|
|
2915
|
+
resized = () => {
|
|
2916
|
+
if (this.open && !this.compact?.matches) this.close();
|
|
2917
|
+
};
|
|
2918
|
+
constructor() {
|
|
2919
|
+
super();
|
|
2920
|
+
this.open = false;
|
|
2921
|
+
this.heading = "Teams and channels";
|
|
2922
|
+
this.addEventListener("keydown", (event) => this.trapTab(event));
|
|
2923
|
+
}
|
|
2924
|
+
connectedCallback() {
|
|
2925
|
+
super.connectedCallback();
|
|
2926
|
+
this.compact = globalThis.matchMedia?.("(max-width: 56.25em)");
|
|
2927
|
+
this.compact?.addEventListener("change", this.resized);
|
|
2928
|
+
}
|
|
2929
|
+
disconnectedCallback() {
|
|
2930
|
+
this.compact?.removeEventListener("change", this.resized);
|
|
2931
|
+
super.disconnectedCallback();
|
|
2932
|
+
}
|
|
2933
|
+
updated() {
|
|
2934
|
+
const dialog = this.renderRoot.querySelector("dialog");
|
|
2935
|
+
if (this.open && !dialog.open) dialog.showModal();
|
|
2936
|
+
else if (!this.open && dialog.open) dialog.close();
|
|
2937
|
+
}
|
|
2938
|
+
trapTab(event) {
|
|
2939
|
+
if (!this.open || event.key !== "Tab") return;
|
|
2940
|
+
const close = this.renderRoot.querySelector("button");
|
|
2941
|
+
const stops = [close, ...modalFocusableElements(this)];
|
|
2942
|
+
const current = modalActiveElement(this.ownerDocument);
|
|
2943
|
+
const index = stops.findIndex((element) => element === current);
|
|
2944
|
+
if (index < 0 || (event.shiftKey ? index === 0 : index === stops.length - 1)) {
|
|
2945
|
+
event.preventDefault();
|
|
2946
|
+
stops[event.shiftKey ? stops.length - 1 : 0]?.focus();
|
|
2947
|
+
}
|
|
2948
|
+
}
|
|
2949
|
+
close() {
|
|
2950
|
+
this.dispatchEvent(
|
|
2951
|
+
new CustomEvent("teams-navigation-close", { bubbles: true, composed: true })
|
|
2952
|
+
);
|
|
2953
|
+
}
|
|
2954
|
+
render() {
|
|
2955
|
+
return html`<dialog
|
|
2956
|
+
aria-label="Workspace navigation"
|
|
2957
|
+
@click=${(event) => {
|
|
2958
|
+
const dialog = event.currentTarget;
|
|
2959
|
+
const rect = dialog.getBoundingClientRect();
|
|
2960
|
+
if (event.target === dialog && (event.clientX < rect.left || event.clientX > rect.right || event.clientY < rect.top || event.clientY > rect.bottom))
|
|
2961
|
+
this.close();
|
|
2962
|
+
}}
|
|
2963
|
+
@cancel=${(event) => {
|
|
2964
|
+
event.preventDefault();
|
|
2965
|
+
this.close();
|
|
2966
|
+
}}
|
|
2967
|
+
>
|
|
2968
|
+
<header>
|
|
2969
|
+
<h2>${this.heading}</h2>
|
|
2970
|
+
<button type="button" aria-label="Close navigation" @click=${this.close}>×</button>
|
|
2971
|
+
</header>
|
|
2972
|
+
<nav aria-label="Workspace channels and calls"><slot></slot></nav>
|
|
2973
|
+
</dialog>`;
|
|
2974
|
+
}
|
|
2975
|
+
};
|
|
2976
|
+
function defineTeamsNavigationDrawer(registry = globalThis.customElements) {
|
|
2977
|
+
if (registry && !registry.get("teams-navigation-drawer"))
|
|
2978
|
+
registry.define("teams-navigation-drawer", TeamsNavigationDrawer);
|
|
2979
|
+
}
|
|
2980
|
+
|
|
2981
|
+
// raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/app/create-channel-dialog.css?raw
|
|
2982
|
+
var create_channel_dialog_default = ":host {\n font: var(--office-font-size) var(--office-font);\n color: var(--office-foreground);\n}\ndialog {\n box-sizing: border-box;\n width: min(40em, 94vw);\n max-height: 90dvh;\n padding: 0;\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-lg);\n background: var(--office-popover);\n color: inherit;\n box-shadow: var(--office-shadow-teams);\n}\ndialog::backdrop {\n background: var(--office-overlay);\n}\nheader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--office-space-3);\n padding: var(--office-space-4) var(--office-space-5);\n border-block-end: var(--office-border-width) solid var(--office-teams-divider);\n}\nh2 {\n margin: 0;\n font-size: var(--office-font-size-lg);\n}\nform {\n display: grid;\n gap: var(--office-space-3);\n padding: var(--office-space-5);\n}\nlabel {\n display: grid;\n gap: var(--office-space-2);\n font-weight: var(--office-font-weight-bold);\n}\ninput,\ntextarea {\n min-width: 0;\n width: 100%;\n box-sizing: border-box;\n padding: var(--office-space-3);\n font: inherit;\n font-weight: normal;\n color: inherit;\n background: var(--office-field-background);\n border: var(--office-border-width) solid var(--office-field-border);\n border-radius: var(--office-radius-md);\n}\ntextarea {\n min-height: 6em;\n resize: vertical;\n}\np,\nsmall {\n margin: 0;\n color: var(--office-teams-text-subtle);\n line-height: 1.5;\n}\n.issue {\n color: var(--office-danger);\n}\nfooter {\n display: flex;\n justify-content: flex-end;\n gap: var(--office-space-2);\n}\nbutton {\n padding: var(--office-space-2) var(--office-space-4);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-background);\n color: inherit;\n font: inherit;\n cursor: pointer;\n}\nbutton:hover {\n background: var(--office-selected);\n}\nbutton.primary {\n background: var(--office-teams-brand);\n color: var(--office-teams-brand-foreground);\n border-color: transparent;\n}\nbutton.primary:hover {\n background: var(--office-teams-brand-hover);\n}\n:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\n";
|
|
2983
|
+
|
|
2984
|
+
// src/teams/app/create-channel-dialog.ts
|
|
2985
|
+
var TeamsCreateChannelDialog = class extends LitElement {
|
|
2986
|
+
static styles = unsafeCSS(create_channel_dialog_default);
|
|
2987
|
+
static properties = {
|
|
2988
|
+
open: { type: Boolean, reflect: true },
|
|
2989
|
+
create: { attribute: false },
|
|
2990
|
+
name: { state: true },
|
|
2991
|
+
description: { state: true },
|
|
2992
|
+
issue: { state: true }
|
|
2993
|
+
};
|
|
2994
|
+
constructor() {
|
|
2995
|
+
super();
|
|
2996
|
+
this.open = false;
|
|
2997
|
+
this.create = void 0;
|
|
2998
|
+
this.name = "";
|
|
2999
|
+
this.description = "";
|
|
3000
|
+
this.issue = "";
|
|
3001
|
+
}
|
|
3002
|
+
willUpdate(changed) {
|
|
3003
|
+
if (changed.has("open") && this.open) {
|
|
3004
|
+
this.name = "";
|
|
3005
|
+
this.description = "";
|
|
3006
|
+
this.issue = "";
|
|
3007
|
+
}
|
|
3008
|
+
}
|
|
3009
|
+
updated() {
|
|
3010
|
+
const dialog = this.renderRoot.querySelector("dialog");
|
|
3011
|
+
if (this.open && !dialog.open) dialog.showModal();
|
|
3012
|
+
else if (!this.open && dialog.open) dialog.close();
|
|
3013
|
+
}
|
|
3014
|
+
close() {
|
|
3015
|
+
this.dispatchEvent(
|
|
3016
|
+
new CustomEvent("teams-create-channel-close", { bubbles: true, composed: true })
|
|
3017
|
+
);
|
|
3018
|
+
}
|
|
3019
|
+
submit(event) {
|
|
3020
|
+
event.preventDefault();
|
|
3021
|
+
const name = sanitizeChannelName(this.name);
|
|
3022
|
+
if (!name) {
|
|
3023
|
+
this.issue = "Enter a channel name.";
|
|
3024
|
+
this.renderRoot.querySelector("input")?.focus();
|
|
3025
|
+
return;
|
|
3026
|
+
}
|
|
3027
|
+
if (!this.create?.(name, this.description))
|
|
3028
|
+
this.issue = "The channel was not created. Your details are kept here.";
|
|
3029
|
+
}
|
|
3030
|
+
render() {
|
|
3031
|
+
return html`<dialog
|
|
3032
|
+
aria-labelledby="title"
|
|
3033
|
+
@cancel=${(event) => {
|
|
3034
|
+
event.preventDefault();
|
|
3035
|
+
this.close();
|
|
3036
|
+
}}
|
|
3037
|
+
>
|
|
3038
|
+
<header>
|
|
3039
|
+
<h2 id="title">Create a channel</h2>
|
|
3040
|
+
<button type="button" aria-label="Close create channel" @click=${this.close}>×</button>
|
|
3041
|
+
</header>
|
|
3042
|
+
<form @submit=${this.submit}>
|
|
3043
|
+
<label
|
|
3044
|
+
>Channel name<input
|
|
3045
|
+
autofocus
|
|
3046
|
+
maxlength=${MAX_CHANNEL_NAME_CHARS}
|
|
3047
|
+
.value=${this.name}
|
|
3048
|
+
@input=${(event) => {
|
|
3049
|
+
this.name = event.target.value;
|
|
3050
|
+
this.issue = "";
|
|
3051
|
+
}}
|
|
3052
|
+
placeholder="Give your channel a name"
|
|
3053
|
+
aria-describedby="channel-name-help"
|
|
3054
|
+
/></label>
|
|
3055
|
+
<small id="channel-name-help">${MAX_CHANNEL_NAME_CHARS} characters maximum.</small>
|
|
3056
|
+
<label
|
|
3057
|
+
>Description (optional)<textarea
|
|
3058
|
+
maxlength=${MAX_CHANNEL_TOPIC_CHARS}
|
|
3059
|
+
.value=${this.description}
|
|
3060
|
+
@input=${(event) => this.description = event.target.value}
|
|
3061
|
+
placeholder="Help others understand what this channel is for"
|
|
3062
|
+
></textarea>
|
|
3063
|
+
</label>
|
|
3064
|
+
<div>
|
|
3065
|
+
<strong>Standard channel</strong>
|
|
3066
|
+
<p>
|
|
3067
|
+
Available to everyone in this workspace. Private and shared channels are not available
|
|
3068
|
+
yet.
|
|
3069
|
+
</p>
|
|
3070
|
+
</div>
|
|
3071
|
+
${this.issue ? html`<p class="issue" role="alert">${this.issue}</p>` : nothing}
|
|
3072
|
+
<footer>
|
|
3073
|
+
<button type="button" @click=${this.close}>Cancel</button
|
|
3074
|
+
><button type="submit" class="primary">Create</button>
|
|
3075
|
+
</footer>
|
|
3076
|
+
</form>
|
|
3077
|
+
</dialog>`;
|
|
3078
|
+
}
|
|
3079
|
+
};
|
|
3080
|
+
function defineTeamsCreateChannelDialog(registry = globalThis.customElements) {
|
|
3081
|
+
if (registry && !registry.get("teams-create-channel-dialog"))
|
|
3082
|
+
registry.define("teams-create-channel-dialog", TeamsCreateChannelDialog);
|
|
3083
|
+
}
|
|
3084
|
+
|
|
3085
|
+
// src/teams/app/teams-app.ts
|
|
3086
|
+
var LOCAL_THEME = THEME_CSS.replaceAll(
|
|
3087
|
+
':root[data-office-theme="dark"]',
|
|
3088
|
+
':host([data-office-theme="dark"])'
|
|
3089
|
+
).replaceAll(':root:not([data-office-theme="light"])', ':host([data-office-theme="system"])').replaceAll(":root", ":host([data-office-theme])");
|
|
3090
|
+
var RAIL = [
|
|
3091
|
+
{ id: "teams", label: "Teams", icon: "users" },
|
|
3092
|
+
{ id: "calls", label: "Calls", icon: "phone" },
|
|
3093
|
+
{ id: "files", label: "Files", icon: "folder" },
|
|
3094
|
+
{ id: "followed", label: "Followed threads", icon: "chat" },
|
|
3095
|
+
{ id: "drafts", label: "Drafts", icon: "chat" }
|
|
3096
|
+
];
|
|
3097
|
+
var TeamsApp = class extends LitElement {
|
|
3098
|
+
static styles = [unsafeCSS(LOCAL_THEME), unsafeCSS(teams_app_default)];
|
|
3099
|
+
static properties = {
|
|
3100
|
+
workspaceId: { type: String, attribute: "workspace-id" },
|
|
3101
|
+
userName: { type: String, attribute: "user-name" },
|
|
3102
|
+
userId: { type: String, attribute: "user-id" },
|
|
3103
|
+
serverConfig: { type: String, attribute: "server-config" },
|
|
3104
|
+
config: { attribute: false },
|
|
3105
|
+
uploadFile: { attribute: false },
|
|
3106
|
+
openers: { attribute: false },
|
|
3107
|
+
embeds: { attribute: false },
|
|
3108
|
+
preview: { state: true },
|
|
3109
|
+
addingTab: { state: true },
|
|
3110
|
+
creatingChannel: { state: true },
|
|
3111
|
+
rail: { state: true },
|
|
3112
|
+
tab: { state: true },
|
|
3113
|
+
panel: { state: true },
|
|
3114
|
+
meeting: { state: true },
|
|
3115
|
+
settingsOpen: { state: true },
|
|
3116
|
+
navigationOpen: { state: true },
|
|
3117
|
+
toast: { state: true },
|
|
3118
|
+
identity: { state: true },
|
|
3119
|
+
followedUnreadOnly: { state: true },
|
|
3120
|
+
theme: { state: true },
|
|
3121
|
+
fileOpenPreference: { state: true },
|
|
3122
|
+
chatDensity: { state: true },
|
|
3123
|
+
showAppNames: { state: true }
|
|
3124
|
+
};
|
|
3125
|
+
teams = new TeamsController(this, (text) => this.notify(text));
|
|
3126
|
+
toastTimer;
|
|
3127
|
+
openRequest = 0;
|
|
3128
|
+
retainedTab;
|
|
3129
|
+
themeStorageKey = "";
|
|
3130
|
+
popoutRequested = new URL(globalThis.location?.href ?? "https://workspace.invalid").searchParams.get(
|
|
3131
|
+
"openteams-file"
|
|
3132
|
+
) === "1";
|
|
3133
|
+
popout = filePopoutDetail(
|
|
3134
|
+
globalThis.location?.href ?? "https://workspace.invalid"
|
|
3135
|
+
);
|
|
3136
|
+
constructor() {
|
|
3137
|
+
super();
|
|
3138
|
+
this.workspaceId = "demo";
|
|
3139
|
+
this.userName = "";
|
|
3140
|
+
this.userId = "";
|
|
3141
|
+
this.serverConfig = "";
|
|
3142
|
+
this.config = null;
|
|
3143
|
+
this.uploadFile = void 0;
|
|
3144
|
+
this.openers = {};
|
|
3145
|
+
this.embeds = {};
|
|
3146
|
+
this.preview = null;
|
|
3147
|
+
this.retainedTab = void 0;
|
|
3148
|
+
this.addingTab = false;
|
|
3149
|
+
this.creatingChannel = false;
|
|
3150
|
+
this.rail = "teams";
|
|
3151
|
+
this.tab = "posts";
|
|
3152
|
+
this.panel = "";
|
|
3153
|
+
this.meeting = false;
|
|
3154
|
+
this.settingsOpen = false;
|
|
3155
|
+
this.navigationOpen = false;
|
|
3156
|
+
this.toast = "";
|
|
3157
|
+
this.identity = null;
|
|
3158
|
+
this.followedUnreadOnly = false;
|
|
3159
|
+
this.theme = "system";
|
|
3160
|
+
this.fileOpenPreference = "teams";
|
|
3161
|
+
this.chatDensity = "comfy";
|
|
3162
|
+
this.showAppNames = true;
|
|
3163
|
+
}
|
|
3164
|
+
/** The core client behind this element, for hosts that want the raw actions. */
|
|
3165
|
+
get client() {
|
|
3166
|
+
return this.teams.client;
|
|
3167
|
+
}
|
|
3168
|
+
connectedCallback() {
|
|
3169
|
+
installOfficeUiTheme();
|
|
3170
|
+
registerControls();
|
|
3171
|
+
definePresence();
|
|
3172
|
+
registerTeams();
|
|
3173
|
+
defineTeamsSettings();
|
|
3174
|
+
defineTeamsContentPreview();
|
|
3175
|
+
defineTeamsChannelTab();
|
|
3176
|
+
defineTeamsFilesPanel();
|
|
3177
|
+
defineTeamsProfileMenu();
|
|
3178
|
+
defineTeamsAddTabDialog();
|
|
3179
|
+
defineTeamsNavigationDrawer();
|
|
3180
|
+
defineTeamsCreateChannelDialog();
|
|
3181
|
+
super.connectedCallback();
|
|
3182
|
+
}
|
|
3183
|
+
// ---- lifecycle --------------------------------------------------------------------------
|
|
3184
|
+
resolveConfig() {
|
|
3185
|
+
if (this.config) return this.config;
|
|
3186
|
+
if (this.serverConfig) {
|
|
3187
|
+
try {
|
|
3188
|
+
return parseServerConfig(JSON.parse(this.serverConfig)).config;
|
|
3189
|
+
} catch {
|
|
3190
|
+
}
|
|
3191
|
+
}
|
|
3192
|
+
return loadConfig() ?? parseServerConfig({}).config;
|
|
3193
|
+
}
|
|
3194
|
+
willUpdate(changed) {
|
|
3195
|
+
if (this.popoutRequested) return;
|
|
3196
|
+
const restart = [
|
|
3197
|
+
"workspaceId",
|
|
3198
|
+
"userName",
|
|
3199
|
+
"userId",
|
|
3200
|
+
"serverConfig",
|
|
3201
|
+
"config",
|
|
3202
|
+
"identity"
|
|
3203
|
+
].some((k) => changed.has(k));
|
|
3204
|
+
if (!restart && this.teams.client) return;
|
|
3205
|
+
this.preview = null;
|
|
3206
|
+
this.tab = "posts";
|
|
3207
|
+
this.addingTab = false;
|
|
3208
|
+
this.creatingChannel = false;
|
|
3209
|
+
this.navigationOpen = false;
|
|
3210
|
+
this.openRequest++;
|
|
3211
|
+
const named = this.userName ? { id: this.userId || loadIdentity()?.id || crypto.randomUUID(), name: this.userName } : this.identity ?? loadIdentity();
|
|
3212
|
+
if (this.userName && !this.userId) saveIdentity(named);
|
|
3213
|
+
if (!named) return this.teams.stop();
|
|
3214
|
+
const workspaceId = /^[\w-]{1,100}$/u.test(this.workspaceId) ? this.workspaceId : "demo";
|
|
3215
|
+
this.themeStorageKey = `teams:theme:${encodeURIComponent(workspaceId)}:${encodeURIComponent(named.id)}`;
|
|
3216
|
+
const rememberedTheme = safeStorage.getItem(this.themeStorageKey);
|
|
3217
|
+
this.theme = rememberedTheme === "dark" || rememberedTheme === "light" ? rememberedTheme : "system";
|
|
3218
|
+
this.applyTheme();
|
|
3219
|
+
this.showAppNames = safeStorage.getItem(this.themeStorageKey.replace("teams:theme:", "teams:app-names:")) !== "false";
|
|
3220
|
+
this.chatDensity = safeStorage.getItem(this.themeStorageKey.replace("teams:theme:", "teams:density:")) === "compact" ? "compact" : "comfy";
|
|
3221
|
+
this.fileOpenPreference = safeStorage.getItem(this.themeStorageKey.replace("teams:theme:", "teams:file-open:")) === "browser" ? "browser" : "teams";
|
|
3222
|
+
this.teams.start({
|
|
3223
|
+
workspaceId,
|
|
3224
|
+
user: named,
|
|
3225
|
+
config: this.resolveConfig(),
|
|
3226
|
+
storage: safeStorage,
|
|
3227
|
+
...this.uploadFile ? { uploadFile: this.uploadFile } : {}
|
|
3228
|
+
});
|
|
3229
|
+
this.dispatchEvent(
|
|
3230
|
+
new CustomEvent("teams-ready", { detail: { user: named }, bubbles: true, composed: true })
|
|
3231
|
+
);
|
|
3232
|
+
}
|
|
3233
|
+
updated() {
|
|
3234
|
+
this.setAttribute("data-chat-density", this.chatDensity);
|
|
3235
|
+
const state = this.teams.state;
|
|
3236
|
+
if (state?.thread && document.visibilityState === "visible" && this.renderRoot.querySelector(".thread-pane"))
|
|
3237
|
+
this.teams.client?.markThreadRead(state.selectedChannelId, state.thread.root.id);
|
|
3238
|
+
}
|
|
3239
|
+
notify(text) {
|
|
3240
|
+
this.toast = text;
|
|
3241
|
+
clearTimeout(this.toastTimer);
|
|
3242
|
+
this.toastTimer = setTimeout(() => this.toast = "", 4e3);
|
|
3243
|
+
}
|
|
3244
|
+
// ---- intent -> client actions -----------------------------------------------------------
|
|
3245
|
+
async openFile(a, mode) {
|
|
3246
|
+
if (!this.canLeaveContent()) return;
|
|
3247
|
+
const browser = mode === "browser" || !mode && a.kind !== "other" && a.kind !== "vsdx" && this.fileOpenPreference === "browser";
|
|
3248
|
+
const popout = browser ? globalThis.open("about:blank", "_blank") : null;
|
|
3249
|
+
if (popout) popout.opener = null;
|
|
3250
|
+
const request = ++this.openRequest;
|
|
3251
|
+
const channelId = a.channelId ?? this.teams.state?.selectedChannelId;
|
|
3252
|
+
const url = await this.teams.client?.fileUrl(a);
|
|
3253
|
+
if (request !== this.openRequest || !this.isConnected) {
|
|
3254
|
+
popout?.close();
|
|
3255
|
+
return;
|
|
3256
|
+
}
|
|
3257
|
+
if (!this.canLeaveContent()) {
|
|
3258
|
+
popout?.close();
|
|
3259
|
+
return;
|
|
3260
|
+
}
|
|
3261
|
+
const detail = { attachment: a, url, ...channelId ? { channelId } : {} };
|
|
3262
|
+
if (!this.dispatchEvent(
|
|
3263
|
+
new CustomEvent("teams-open-file", {
|
|
3264
|
+
detail,
|
|
3265
|
+
bubbles: true,
|
|
3266
|
+
composed: true,
|
|
3267
|
+
cancelable: true
|
|
3268
|
+
})
|
|
3269
|
+
)) {
|
|
3270
|
+
popout?.close();
|
|
3271
|
+
return;
|
|
3272
|
+
}
|
|
3273
|
+
const opener = this.openers[a.kind];
|
|
3274
|
+
if (opener) {
|
|
3275
|
+
popout?.close();
|
|
3276
|
+
return opener(detail);
|
|
3277
|
+
}
|
|
3278
|
+
if (browser && url) {
|
|
3279
|
+
const target = filePopoutUrl(detail, this.ownerDocument.location.href);
|
|
3280
|
+
if (popout && target) {
|
|
3281
|
+
popout.location.replace(target);
|
|
3282
|
+
return;
|
|
3283
|
+
}
|
|
3284
|
+
popout?.close();
|
|
3285
|
+
this.notify("Allow popups to open this file in a browser tab");
|
|
3286
|
+
return;
|
|
3287
|
+
}
|
|
3288
|
+
popout?.close();
|
|
3289
|
+
if (url) this.preview = detail;
|
|
3290
|
+
else this.notify("This file was shared by name only");
|
|
3291
|
+
}
|
|
3292
|
+
/** Preview a host-provided website or file without changing shared conversation state. */
|
|
3293
|
+
previewContent(detail) {
|
|
3294
|
+
if (!this.canLeaveContent()) return;
|
|
3295
|
+
this.openRequest++;
|
|
3296
|
+
this.preview = detail;
|
|
3297
|
+
}
|
|
3298
|
+
canLeaveContent() {
|
|
3299
|
+
const direct = this.shadowRoot?.querySelector(
|
|
3300
|
+
"teams-content-preview"
|
|
3301
|
+
);
|
|
3302
|
+
const nested = this.shadowRoot?.querySelector("teams-channel-tab")?.shadowRoot?.querySelector("teams-content-preview");
|
|
3303
|
+
return (direct ?? nested)?.canLeave() ?? true;
|
|
3304
|
+
}
|
|
3305
|
+
closePreview() {
|
|
3306
|
+
if (!this.canLeaveContent()) return false;
|
|
3307
|
+
this.openRequest++;
|
|
3308
|
+
this.preview = null;
|
|
3309
|
+
return true;
|
|
3310
|
+
}
|
|
3311
|
+
disconnectedCallback() {
|
|
3312
|
+
this.openRequest++;
|
|
3313
|
+
this.preview = null;
|
|
3314
|
+
clearTimeout(this.toastTimer);
|
|
3315
|
+
super.disconnectedCallback();
|
|
3316
|
+
}
|
|
3317
|
+
createChannel() {
|
|
3318
|
+
this.creatingChannel = true;
|
|
3319
|
+
}
|
|
3320
|
+
commitChannel(name, description, client) {
|
|
3321
|
+
if (!this.creatingChannel || !client || client !== this.client || !this.closePreview())
|
|
3322
|
+
return false;
|
|
3323
|
+
client.createChannel(name, description);
|
|
3324
|
+
this.creatingChannel = false;
|
|
3325
|
+
this.tab = "posts";
|
|
3326
|
+
this.rail = "teams";
|
|
3327
|
+
this.meeting = false;
|
|
3328
|
+
void this.closeNavigation(true);
|
|
3329
|
+
void this.focusCreatedChannel();
|
|
3330
|
+
return true;
|
|
3331
|
+
}
|
|
3332
|
+
async focusCreatedChannel() {
|
|
3333
|
+
await this.updateComplete;
|
|
3334
|
+
await this.renderRoot.querySelector("teams-create-channel-dialog")?.updateComplete;
|
|
3335
|
+
const heading = this.renderRoot.querySelector("main h1");
|
|
3336
|
+
if (heading && !this.creatingChannel) {
|
|
3337
|
+
heading.tabIndex = -1;
|
|
3338
|
+
heading.focus();
|
|
3339
|
+
}
|
|
3340
|
+
}
|
|
3341
|
+
onCallAction(action) {
|
|
3342
|
+
const c = this.teams.client;
|
|
3343
|
+
if (!c) return;
|
|
3344
|
+
if (action === "chat" || action === "people") this.panel = this.panel === action ? "" : action;
|
|
3345
|
+
else if (action === "leave") {
|
|
3346
|
+
this.meeting = false;
|
|
3347
|
+
this.panel = "";
|
|
3348
|
+
c.leaveCall();
|
|
3349
|
+
} else if (action === "mic") c.toggleMic();
|
|
3350
|
+
else if (action === "camera") void c.toggleCamera();
|
|
3351
|
+
else if (action === "screen") void c.toggleScreenShare();
|
|
3352
|
+
else if (action === "hand") c.toggleHand();
|
|
3353
|
+
}
|
|
3354
|
+
startMeeting(channelId) {
|
|
3355
|
+
if (!this.closePreview()) return;
|
|
3356
|
+
void this.teams.client?.openCall(channelId);
|
|
3357
|
+
void this.closeNavigation(true);
|
|
3358
|
+
this.meeting = true;
|
|
3359
|
+
this.rail = "teams";
|
|
3360
|
+
}
|
|
3361
|
+
selectChannel(id) {
|
|
3362
|
+
if (!this.closePreview()) return false;
|
|
3363
|
+
this.addingTab = false;
|
|
3364
|
+
this.creatingChannel = false;
|
|
3365
|
+
this.teams.client?.select(id);
|
|
3366
|
+
this.teams.client?.search("");
|
|
3367
|
+
this.meeting = false;
|
|
3368
|
+
this.tab = "posts";
|
|
3369
|
+
this.rail = "teams";
|
|
3370
|
+
void this.closeNavigation(true);
|
|
3371
|
+
return true;
|
|
3372
|
+
}
|
|
3373
|
+
async closeNavigation(navigated = false) {
|
|
3374
|
+
if (!this.navigationOpen) return;
|
|
3375
|
+
this.navigationOpen = false;
|
|
3376
|
+
await this.updateComplete;
|
|
3377
|
+
const drawer = this.renderRoot.querySelector("teams-navigation-drawer");
|
|
3378
|
+
await drawer?.updateComplete;
|
|
3379
|
+
if (this.navigationOpen || !this.isConnected) return;
|
|
3380
|
+
const trigger = this.renderRoot.querySelector("[data-open-navigation]");
|
|
3381
|
+
const heading = this.renderRoot.querySelector("main h1") ?? this.renderRoot.querySelector("main");
|
|
3382
|
+
if (!navigated && trigger?.getClientRects().length) trigger.focus();
|
|
3383
|
+
else if (heading) {
|
|
3384
|
+
heading.tabIndex = -1;
|
|
3385
|
+
heading.focus();
|
|
3386
|
+
}
|
|
3387
|
+
}
|
|
3388
|
+
askSettings() {
|
|
3389
|
+
this.settingsOpen = true;
|
|
3390
|
+
}
|
|
3391
|
+
applyTheme() {
|
|
3392
|
+
if (this.theme === "system") this.removeAttribute("data-office-theme");
|
|
3393
|
+
else this.setAttribute("data-office-theme", this.theme);
|
|
3394
|
+
}
|
|
3395
|
+
// ---- template ---------------------------------------------------------------------------
|
|
3396
|
+
render() {
|
|
3397
|
+
if (this.popoutRequested)
|
|
3398
|
+
return this.popout ? html`<div class="popout-view">
|
|
3399
|
+
<teams-content-preview
|
|
3400
|
+
.detail=${this.popout}
|
|
3401
|
+
@teams-preview-close=${() => globalThis.close()}
|
|
3402
|
+
></teams-content-preview>
|
|
3403
|
+
</div>` : html`<p role="alert">The file preview link is invalid.</p>`;
|
|
3404
|
+
const s = this.teams.state;
|
|
3405
|
+
if (!s) return this.welcome();
|
|
3406
|
+
return html`
|
|
3407
|
+
<div
|
|
3408
|
+
class="shell"
|
|
3409
|
+
@office-chat-open-tab=${(event) => {
|
|
3410
|
+
if (this.teams.state?.tabs.some((entry) => entry.id === event.detail.tabId))
|
|
3411
|
+
this.selectTab(event.detail.tabId);
|
|
3412
|
+
else this.notify("This tab is no longer available in this channel");
|
|
3413
|
+
}}
|
|
3414
|
+
>
|
|
3415
|
+
${this.topbar(s)}
|
|
3416
|
+
<div class="body">
|
|
3417
|
+
<office-ui-app-rail
|
|
3418
|
+
.hideLabels=${!this.showAppNames}
|
|
3419
|
+
.items=${RAIL.map((i) => ({ ...i, ...i.id === "calls" && s.channels.some((c) => c.live) ? { badge: s.channels.filter((c) => c.live).length } : {} }))}
|
|
3420
|
+
selected=${this.rail}
|
|
3421
|
+
@office-rail-select=${(e) => {
|
|
3422
|
+
if (!this.closePreview()) return;
|
|
3423
|
+
this.rail = e.detail.id;
|
|
3424
|
+
this.meeting = false;
|
|
3425
|
+
}}
|
|
3426
|
+
></office-ui-app-rail>
|
|
3427
|
+
<aside class="side">${this.sidebar(s)}</aside>
|
|
3428
|
+
<main class="main">${this.main(s)}</main>
|
|
3429
|
+
</div>
|
|
3430
|
+
<teams-create-channel-dialog
|
|
3431
|
+
?open=${this.creatingChannel}
|
|
3432
|
+
.create=${(name, description) => this.commitChannel(name, description, this.client)}
|
|
3433
|
+
@teams-create-channel-close=${() => this.creatingChannel = false}
|
|
3434
|
+
></teams-create-channel-dialog>
|
|
3435
|
+
<teams-navigation-drawer
|
|
3436
|
+
.heading=${this.rail === "calls" ? "Calls" : "Teams and channels"}
|
|
3437
|
+
?open=${this.navigationOpen}
|
|
3438
|
+
@teams-navigation-close=${() => void this.closeNavigation()}
|
|
3439
|
+
>
|
|
3440
|
+
${this.navigationOpen ? this.sidebar(s) : nothing}
|
|
3441
|
+
</teams-navigation-drawer>
|
|
3442
|
+
${this.toast ? html`<div class="toast" role="status">${this.toast}</div>` : nothing}
|
|
3443
|
+
<teams-settings
|
|
3444
|
+
?open=${this.settingsOpen}
|
|
3445
|
+
.config=${this.resolveConfig()}
|
|
3446
|
+
.theme=${this.theme}
|
|
3447
|
+
.fileOpenPreference=${this.fileOpenPreference}
|
|
3448
|
+
.chatDensity=${this.chatDensity}
|
|
3449
|
+
.showAppNames=${this.showAppNames}
|
|
3450
|
+
@teams-settings-app-names=${(event) => {
|
|
3451
|
+
if (typeof event.detail.show !== "boolean") return;
|
|
3452
|
+
this.showAppNames = event.detail.show;
|
|
3453
|
+
safeStorage.setItem(
|
|
3454
|
+
this.themeStorageKey.replace("teams:theme:", "teams:app-names:"),
|
|
3455
|
+
String(this.showAppNames)
|
|
3456
|
+
);
|
|
3457
|
+
}}
|
|
3458
|
+
@teams-settings-density=${(event) => {
|
|
3459
|
+
if (!["comfy", "compact"].includes(event.detail.density)) return;
|
|
3460
|
+
this.chatDensity = event.detail.density;
|
|
3461
|
+
safeStorage.setItem(
|
|
3462
|
+
this.themeStorageKey.replace("teams:theme:", "teams:density:"),
|
|
3463
|
+
this.chatDensity
|
|
3464
|
+
);
|
|
3465
|
+
}}
|
|
3466
|
+
@teams-settings-file-open=${(event) => {
|
|
3467
|
+
if (!["teams", "browser"].includes(event.detail.preference)) return;
|
|
3468
|
+
this.fileOpenPreference = event.detail.preference;
|
|
3469
|
+
safeStorage.setItem(
|
|
3470
|
+
this.themeStorageKey.replace("teams:theme:", "teams:file-open:"),
|
|
3471
|
+
this.fileOpenPreference
|
|
3472
|
+
);
|
|
3473
|
+
}}
|
|
3474
|
+
.followSettings=${s.threadFollowSettings}
|
|
3475
|
+
.userName=${s.user.name}
|
|
3476
|
+
@teams-settings-theme=${(event) => {
|
|
3477
|
+
if (!["system", "light", "dark"].includes(event.detail.theme)) return;
|
|
3478
|
+
this.theme = event.detail.theme;
|
|
3479
|
+
this.applyTheme();
|
|
3480
|
+
safeStorage.setItem(this.themeStorageKey, this.theme);
|
|
3481
|
+
}}
|
|
3482
|
+
@teams-settings-follow=${(event) => this.teams.client?.setThreadFollowSettings(event.detail)}
|
|
3483
|
+
@teams-settings-close=${() => this.settingsOpen = false}
|
|
3484
|
+
@teams-settings-apply=${(e) => {
|
|
3485
|
+
if (!this.closePreview()) return;
|
|
3486
|
+
saveConfig(e.detail.config);
|
|
3487
|
+
this.config = e.detail.config;
|
|
3488
|
+
this.settingsOpen = false;
|
|
3489
|
+
this.dispatchEvent(
|
|
3490
|
+
new CustomEvent("teams-config-change", {
|
|
3491
|
+
detail: e.detail,
|
|
3492
|
+
bubbles: true,
|
|
3493
|
+
composed: true
|
|
3494
|
+
})
|
|
3495
|
+
);
|
|
3496
|
+
}}
|
|
3497
|
+
></teams-settings>
|
|
3498
|
+
<teams-add-tab-dialog
|
|
3499
|
+
.open=${this.addingTab}
|
|
3500
|
+
.client=${this.teams.client}
|
|
3501
|
+
.channelId=${s.selectedChannelId}
|
|
3502
|
+
.channelName=${s.channel?.name ?? ""}
|
|
3503
|
+
.files=${s.files}
|
|
3504
|
+
.add=${(name, content, channelId, client, postToChannel) => {
|
|
3505
|
+
if (client !== this.teams.client || client.getState().selectedChannelId !== channelId)
|
|
3506
|
+
return null;
|
|
3507
|
+
if (!this.closePreview()) return "canceled";
|
|
3508
|
+
const tab = client.addTab(name, content, { postToChannel });
|
|
3509
|
+
if (tab) {
|
|
3510
|
+
this.retainedTab = tab;
|
|
3511
|
+
this.tab = tab.id;
|
|
3512
|
+
this.addingTab = false;
|
|
3513
|
+
this.creatingChannel = false;
|
|
3514
|
+
}
|
|
3515
|
+
return tab;
|
|
3516
|
+
}}
|
|
3517
|
+
@teams-add-tab-close=${() => this.addingTab = false}
|
|
3518
|
+
></teams-add-tab-dialog>
|
|
3519
|
+
</div>
|
|
3520
|
+
`;
|
|
3521
|
+
}
|
|
3522
|
+
welcome() {
|
|
3523
|
+
return html`
|
|
3524
|
+
<div class="welcome">
|
|
3525
|
+
<form
|
|
3526
|
+
@submit=${(e) => {
|
|
3527
|
+
e.preventDefault();
|
|
3528
|
+
const name = new FormData(e.target).get("name")?.toString().trim();
|
|
3529
|
+
if (!name) return;
|
|
3530
|
+
const identity = { id: crypto.randomUUID(), name };
|
|
3531
|
+
saveIdentity(identity);
|
|
3532
|
+
this.identity = identity;
|
|
3533
|
+
}}
|
|
3534
|
+
>
|
|
3535
|
+
<span class="logo">T</span>
|
|
3536
|
+
<h1>Welcome to Teams</h1>
|
|
3537
|
+
<p>Pick the name your colleagues will see.</p>
|
|
3538
|
+
<input
|
|
3539
|
+
name="name"
|
|
3540
|
+
placeholder="Your name"
|
|
3541
|
+
aria-label="Your name"
|
|
3542
|
+
maxlength="40"
|
|
3543
|
+
autocomplete="name"
|
|
3544
|
+
required
|
|
3545
|
+
/>
|
|
3546
|
+
<button type="submit">Continue</button>
|
|
3547
|
+
</form>
|
|
3548
|
+
</div>
|
|
3549
|
+
`;
|
|
3550
|
+
}
|
|
3551
|
+
topbar(s) {
|
|
3552
|
+
return html`
|
|
3553
|
+
<header class="topbar">
|
|
3554
|
+
<div class="brand">
|
|
3555
|
+
<button
|
|
3556
|
+
type="button"
|
|
3557
|
+
class="navigation-toggle"
|
|
3558
|
+
data-open-navigation
|
|
3559
|
+
aria-label="Open navigation"
|
|
3560
|
+
title="Open navigation"
|
|
3561
|
+
aria-haspopup="dialog"
|
|
3562
|
+
aria-expanded=${String(this.navigationOpen)}
|
|
3563
|
+
@click=${() => this.navigationOpen = true}
|
|
3564
|
+
>
|
|
3565
|
+
${icon("navigation")}
|
|
3566
|
+
</button>
|
|
3567
|
+
<span class="logo">T</span><span>Teams</span>
|
|
3568
|
+
</div>
|
|
3569
|
+
<div class="search">
|
|
3570
|
+
<input
|
|
3571
|
+
type="search"
|
|
3572
|
+
placeholder="Search messages"
|
|
3573
|
+
aria-label="Search messages"
|
|
3574
|
+
.value=${s.searchQuery}
|
|
3575
|
+
@input=${(e) => this.teams.client?.search(e.target.value)}
|
|
3576
|
+
/>
|
|
3577
|
+
${s.searchQuery ? html`<ul class="results" role="listbox" aria-label="Search results">
|
|
3578
|
+
${s.searchResults.length === 0 ? html`<li class="none">No results</li>` : s.searchResults.map(
|
|
3579
|
+
(h) => html`<li>
|
|
3580
|
+
<button
|
|
3581
|
+
type="button"
|
|
3582
|
+
@click=${() => {
|
|
3583
|
+
if (this.selectChannel(h.channelId)) {
|
|
3584
|
+
this.teams.client?.search("");
|
|
3585
|
+
void this.openThread(h.message.id);
|
|
3586
|
+
}
|
|
3587
|
+
}}
|
|
3588
|
+
>
|
|
3589
|
+
<strong>${h.message.authorName}</strong>
|
|
3590
|
+
<span class="in">in # ${h.channelName}</span>
|
|
3591
|
+
<span class="snippet">${h.message.text.slice(0, 100)}</span>
|
|
3592
|
+
</button>
|
|
3593
|
+
</li>`
|
|
3594
|
+
)}
|
|
3595
|
+
</ul>` : nothing}
|
|
3596
|
+
</div>
|
|
3597
|
+
<div class="me">
|
|
3598
|
+
<office-ui-menu-button
|
|
3599
|
+
label="Settings and more"
|
|
3600
|
+
icon="more"
|
|
3601
|
+
icon-only
|
|
3602
|
+
@office-command=${(event) => {
|
|
3603
|
+
if (event.detail.command === "teams-settings") this.askSettings();
|
|
3604
|
+
}}
|
|
3605
|
+
>
|
|
3606
|
+
<office-ui-menu-item label="Settings" command="teams-settings"></office-ui-menu-item>
|
|
3607
|
+
</office-ui-menu-button>
|
|
3608
|
+
<teams-profile-menu
|
|
3609
|
+
.state=${s}
|
|
3610
|
+
@teams-profile-status=${(event) => {
|
|
3611
|
+
if (["available", "busy", "away"].includes(event.detail.availability))
|
|
3612
|
+
this.teams.client?.setAvailability(event.detail.availability);
|
|
3613
|
+
}}
|
|
3614
|
+
></teams-profile-menu>
|
|
3615
|
+
</div>
|
|
3616
|
+
</header>
|
|
3617
|
+
`;
|
|
3618
|
+
}
|
|
3619
|
+
sidebar(s) {
|
|
3620
|
+
if (this.rail === "calls") {
|
|
3621
|
+
const live2 = s.channels.filter((c) => c.live);
|
|
3622
|
+
return html`
|
|
3623
|
+
<h2>Calls</h2>
|
|
3624
|
+
<ul class="plain">
|
|
3625
|
+
${s.channels.map(
|
|
3626
|
+
(c) => html`<li>
|
|
3627
|
+
<span># ${c.name}</span>
|
|
3628
|
+
<button
|
|
3629
|
+
type="button"
|
|
3630
|
+
class=${c.live ? "join live" : "join"}
|
|
3631
|
+
@click=${() => this.startMeeting(c.id)}
|
|
3632
|
+
>
|
|
3633
|
+
${c.live ? "Join" : "Meet now"}
|
|
3634
|
+
</button>
|
|
3635
|
+
</li>`
|
|
3636
|
+
)}
|
|
3637
|
+
</ul>
|
|
3638
|
+
${live2.length === 0 ? html`<p class="hint">Nobody is in a call right now.</p>` : nothing}
|
|
3639
|
+
`;
|
|
3640
|
+
}
|
|
3641
|
+
return html`
|
|
3642
|
+
<office-ui-channel-list
|
|
3643
|
+
heading="Channels"
|
|
3644
|
+
selected-id=${s.selectedChannelId}
|
|
3645
|
+
.channels=${s.channels}
|
|
3646
|
+
@office-channel-select=${(e) => this.selectChannel(e.detail.id)}
|
|
3647
|
+
@office-channel-create=${this.createChannel}
|
|
3648
|
+
></office-ui-channel-list>
|
|
3649
|
+
`;
|
|
3650
|
+
}
|
|
3651
|
+
main(s) {
|
|
3652
|
+
if (this.rail === "drafts" && this.teams.client)
|
|
3653
|
+
return draftList(s, this.teams.client, (context) => void this.resumeDraft(context));
|
|
3654
|
+
if (this.preview)
|
|
3655
|
+
return html`<teams-content-preview
|
|
3656
|
+
.detail=${this.preview}
|
|
3657
|
+
.embeds=${this.embeds}
|
|
3658
|
+
.saveCopy=${this.saveCopyFor(this.preview, s)}
|
|
3659
|
+
@teams-preview-close=${this.closePreview}
|
|
3660
|
+
></teams-content-preview>`;
|
|
3661
|
+
if (this.rail === "files") return this.allFiles(s);
|
|
3662
|
+
if (this.rail === "followed" && this.teams.client)
|
|
3663
|
+
return followedThreads(
|
|
3664
|
+
s,
|
|
3665
|
+
this.teams.client,
|
|
3666
|
+
(thread) => {
|
|
3667
|
+
if (this.selectChannel(thread.channelId)) void this.openThread(thread.root.id);
|
|
3668
|
+
},
|
|
3669
|
+
this.followedUnreadOnly,
|
|
3670
|
+
(value) => {
|
|
3671
|
+
this.followedUnreadOnly = value;
|
|
3672
|
+
}
|
|
3673
|
+
);
|
|
3674
|
+
if (s.call && this.meeting) return this.meetingView(s);
|
|
3675
|
+
return html`
|
|
3676
|
+
${s.call && !this.meeting ? html`<div class="callbar">
|
|
3677
|
+
You are in a call in # ${s.call.channelName}
|
|
3678
|
+
<button
|
|
3679
|
+
type="button"
|
|
3680
|
+
@click=${() => {
|
|
3681
|
+
if (this.selectChannel(s.call.channelId)) this.meeting = true;
|
|
3682
|
+
}}
|
|
3683
|
+
>
|
|
3684
|
+
Return to call
|
|
3685
|
+
</button>
|
|
3686
|
+
</div>` : nothing}
|
|
3687
|
+
${this.conversation(s)}
|
|
3688
|
+
`;
|
|
3689
|
+
}
|
|
3690
|
+
conversation(s, compact = false) {
|
|
3691
|
+
const channel = s.channel;
|
|
3692
|
+
const c = this.teams.client;
|
|
3693
|
+
const compose = s.editing ?? s.replyingTo;
|
|
3694
|
+
const sharedTab = s.tabs.find((t) => t.id === this.tab);
|
|
3695
|
+
if (sharedTab) this.retainedTab = sharedTab;
|
|
3696
|
+
const activeTab = sharedTab ?? (this.retainedTab?.id === this.tab && this.retainedTab.channelId === s.selectedChannelId ? this.retainedTab : void 0);
|
|
3697
|
+
return html`
|
|
3698
|
+
${compact ? nothing : html`<header class="channel-head">
|
|
3699
|
+
<h1><span class="hash">#</span> ${channel?.name ?? "No channel yet"}</h1>
|
|
3700
|
+
<nav class="tabs" role="tablist">
|
|
3701
|
+
${["posts", "files"].map(
|
|
3702
|
+
(t) => html`<button
|
|
3703
|
+
type="button"
|
|
3704
|
+
role="tab"
|
|
3705
|
+
aria-selected=${String(this.tab === t)}
|
|
3706
|
+
@click=${() => this.selectTab(t)}
|
|
3707
|
+
>
|
|
3708
|
+
${t === "posts" ? "Posts" : "Shared"}
|
|
3709
|
+
</button>`
|
|
3710
|
+
)}
|
|
3711
|
+
${s.tabs.map((t) => html`<button type="button" role="tab" aria-selected=${String(this.tab === t.id)} @click=${() => this.selectTab(t.id)}>${t.name}</button>`)}
|
|
3712
|
+
</nav>
|
|
3713
|
+
<button
|
|
3714
|
+
type="button"
|
|
3715
|
+
aria-label="Add tab"
|
|
3716
|
+
title="Add tab"
|
|
3717
|
+
?disabled=${!channel}
|
|
3718
|
+
@click=${() => this.addingTab = !this.addingTab}
|
|
3719
|
+
>
|
|
3720
|
+
+
|
|
3721
|
+
</button>
|
|
3722
|
+
${sharedTab ? html`<button
|
|
3723
|
+
type="button"
|
|
3724
|
+
data-tab-conversation
|
|
3725
|
+
aria-label="Show tab conversation"
|
|
3726
|
+
title="Show tab conversation"
|
|
3727
|
+
aria-expanded=${String(s.thread?.root.tabId === sharedTab.id)}
|
|
3728
|
+
@click=${async () => {
|
|
3729
|
+
if (s.thread?.root.tabId === sharedTab.id) {
|
|
3730
|
+
await this.closeThread();
|
|
3731
|
+
return;
|
|
3732
|
+
}
|
|
3733
|
+
if (!c?.openTabConversation(sharedTab.id)) {
|
|
3734
|
+
this.notify("Could not open this tab conversation");
|
|
3735
|
+
return;
|
|
3736
|
+
}
|
|
3737
|
+
await Promise.resolve();
|
|
3738
|
+
await this.updateComplete;
|
|
3739
|
+
this.shadowRoot?.querySelector("[data-thread-heading]")?.focus();
|
|
3740
|
+
}}
|
|
3741
|
+
>
|
|
3742
|
+
${icon("chat")}
|
|
3743
|
+
</button>` : nothing}
|
|
3744
|
+
${sharedTab?.createdBy === s.user.id ? html`<office-ui-menu-button
|
|
3745
|
+
label="Tab options"
|
|
3746
|
+
icon="more"
|
|
3747
|
+
icon-only
|
|
3748
|
+
@office-command=${(event) => {
|
|
3749
|
+
if (event.detail.command === "rename-tab") {
|
|
3750
|
+
const name = globalThis.prompt?.("Tab name", sharedTab.name)?.trim();
|
|
3751
|
+
if (name) c?.renameTab(sharedTab.id, name);
|
|
3752
|
+
} else if (event.detail.command === "remove-tab") {
|
|
3753
|
+
if (!this.canLeaveContent()) return;
|
|
3754
|
+
if (globalThis.confirm?.(`Remove ${sharedTab.name} from this channel?`) === true && c?.removeTab(sharedTab.id)) {
|
|
3755
|
+
this.openRequest++;
|
|
3756
|
+
this.preview = null;
|
|
3757
|
+
this.tab = "posts";
|
|
3758
|
+
}
|
|
3759
|
+
}
|
|
3760
|
+
}}
|
|
3761
|
+
><office-ui-menu-item
|
|
3762
|
+
label="Rename tab"
|
|
3763
|
+
command="rename-tab"
|
|
3764
|
+
></office-ui-menu-item
|
|
3765
|
+
><office-ui-menu-item
|
|
3766
|
+
label="Remove tab"
|
|
3767
|
+
command="remove-tab"
|
|
3768
|
+
></office-ui-menu-item
|
|
3769
|
+
></office-ui-menu-button>` : nothing}
|
|
3770
|
+
<span class="topic">${channel?.topic ?? ""}</span>
|
|
3771
|
+
<div class="people" aria-label="People online">
|
|
3772
|
+
${s.people.slice(0, 5).map((p) => html`<office-ui-avatar size="sm" name=${p.name} seed=${p.id} color=${p.color} presence=${p.availability}></office-ui-avatar>`)}
|
|
3773
|
+
${s.people.length > 5 ? html`<span class="more">+${s.people.length - 5}</span>` : nothing}
|
|
3774
|
+
</div>
|
|
3775
|
+
<button
|
|
3776
|
+
type="button"
|
|
3777
|
+
class="meet"
|
|
3778
|
+
?disabled=${!channel}
|
|
3779
|
+
@click=${() => this.startMeeting()}
|
|
3780
|
+
>
|
|
3781
|
+
${s.channels.find((x) => x.id === s.selectedChannelId)?.live ? "Join call" : "Meet now"}
|
|
3782
|
+
</button>
|
|
3783
|
+
</header>`}
|
|
3784
|
+
${c ? messageTransfers(s, c) : nothing}
|
|
3785
|
+
${activeTab && !sharedTab && !compact ? html`<p role="status">This tab was removed from the channel. Your open copy remains here until you close it.</p>` : nothing}
|
|
3786
|
+
${activeTab && !compact ? html`<div
|
|
3787
|
+
class="conversation-grid tab-conversation"
|
|
3788
|
+
data-thread=${String(s.thread?.root.tabId === activeTab.id)}
|
|
3789
|
+
>
|
|
3790
|
+
<div class="conversation-main">
|
|
3791
|
+
<teams-channel-tab
|
|
3792
|
+
.tab=${activeTab}
|
|
3793
|
+
.client=${c ?? null}
|
|
3794
|
+
.embeds=${this.embeds}
|
|
3795
|
+
.canSave=${s.canUploadFiles}
|
|
3796
|
+
@teams-preview-close=${() => this.selectTab("posts")}
|
|
3797
|
+
></teams-channel-tab>
|
|
3798
|
+
</div>
|
|
3799
|
+
${s.thread?.root.tabId === activeTab.id && c ? threadPane(
|
|
3800
|
+
s,
|
|
3801
|
+
c,
|
|
3802
|
+
(attachment) => void this.openFile(attachment),
|
|
3803
|
+
() => void this.closeThread()
|
|
3804
|
+
) : nothing}
|
|
3805
|
+
</div>` : this.tab === "files" && !compact ? this.fileList(s.files, s) : html`<div class="conversation-grid" data-thread=${String(!!s.thread && !compact)}>
|
|
3806
|
+
<div class="conversation-main">
|
|
3807
|
+
<office-ui-chat-list
|
|
3808
|
+
.messages=${compact ? s.messages : s.posts}
|
|
3809
|
+
.replyCounts=${compact ? {} : s.replyCounts}
|
|
3810
|
+
self-id=${s.user.id}
|
|
3811
|
+
@office-chat-react=${(e) => c?.toggleReaction(e.detail.messageId, e.detail.emoji)}
|
|
3812
|
+
@office-chat-thread=${(e) => void this.openThread(e.detail.messageId)}
|
|
3813
|
+
@office-chat-reply=${(e) => compact ? c?.startReply(e.detail.messageId) : void this.openThread(e.detail.messageId, "reply")}
|
|
3814
|
+
@office-chat-edit=${(e) => compact ? c?.startEdit(e.detail.messageId) : void this.openThread(e.detail.messageId, "edit")}
|
|
3815
|
+
@office-chat-delete=${(e) => globalThis.confirm?.("Delete this message?") !== false && c?.deleteMessage(e.detail.messageId)}
|
|
3816
|
+
@office-chat-open-file=${(e) => this.openFile(e.detail.attachment)}
|
|
3817
|
+
></office-ui-chat-list>
|
|
3818
|
+
${s.thread && !compact ? nothing : html`<office-ui-chat-composer
|
|
3819
|
+
.typing=${s.typing}
|
|
3820
|
+
.replyingTo=${s.replyingTo?.authorName ?? null}
|
|
3821
|
+
.editing=${s.editing !== null}
|
|
3822
|
+
.value=${s.draft.text}
|
|
3823
|
+
.files=${s.draft.files}
|
|
3824
|
+
.missingFiles=${s.draft.missingFiles}
|
|
3825
|
+
@office-chat-draft=${(e) => c?.setDraft(e.detail)}
|
|
3826
|
+
?disabled=${!channel}
|
|
3827
|
+
placeholder=${channel ? `Message # ${channel.name}` : "Create a channel first"}
|
|
3828
|
+
@office-chat-typing=${() => c?.notifyTyping()}
|
|
3829
|
+
@office-chat-cancel=${() => c?.cancelCompose()}
|
|
3830
|
+
@office-chat-send=${(e) => void c?.send(e.detail)}
|
|
3831
|
+
data-compose=${compose ? "on" : "off"}
|
|
3832
|
+
></office-ui-chat-composer>`}
|
|
3833
|
+
</div>
|
|
3834
|
+
${!compact && c ? threadPane(
|
|
3835
|
+
s,
|
|
3836
|
+
c,
|
|
3837
|
+
(attachment) => void this.openFile(attachment),
|
|
3838
|
+
() => void this.closeThread()
|
|
3839
|
+
) : nothing}
|
|
3840
|
+
</div>`}
|
|
3841
|
+
`;
|
|
3842
|
+
}
|
|
3843
|
+
selectTab(id) {
|
|
3844
|
+
if (!this.closePreview()) return;
|
|
3845
|
+
this.teams.client?.closeThread();
|
|
3846
|
+
this.tab = id;
|
|
3847
|
+
this.addingTab = false;
|
|
3848
|
+
this.creatingChannel = false;
|
|
3849
|
+
}
|
|
3850
|
+
async openThread(id, action) {
|
|
3851
|
+
const client = this.teams.client;
|
|
3852
|
+
client?.openThread(id);
|
|
3853
|
+
if (action === "reply") client?.startReply(id);
|
|
3854
|
+
if (action === "edit") client?.startEdit(id);
|
|
3855
|
+
await Promise.resolve();
|
|
3856
|
+
await this.updateComplete;
|
|
3857
|
+
this.shadowRoot?.querySelector("[data-thread-heading]")?.focus();
|
|
3858
|
+
}
|
|
3859
|
+
async resumeDraft(context) {
|
|
3860
|
+
if (!this.closePreview() || !this.teams.client?.openDraft(context)) return;
|
|
3861
|
+
this.rail = "teams";
|
|
3862
|
+
this.tab = "posts";
|
|
3863
|
+
this.meeting = false;
|
|
3864
|
+
await Promise.resolve();
|
|
3865
|
+
await this.updateComplete;
|
|
3866
|
+
this.shadowRoot?.querySelector("office-ui-chat-composer")?.shadowRoot?.querySelector("textarea")?.focus();
|
|
3867
|
+
}
|
|
3868
|
+
async closeThread() {
|
|
3869
|
+
const client = this.teams.client;
|
|
3870
|
+
const root = client?.getState().thread?.root.id;
|
|
3871
|
+
client?.closeThread();
|
|
3872
|
+
await Promise.resolve();
|
|
3873
|
+
await this.updateComplete;
|
|
3874
|
+
const tabButton = this.shadowRoot?.querySelector("[data-tab-conversation]");
|
|
3875
|
+
if (tabButton) {
|
|
3876
|
+
tabButton.focus();
|
|
3877
|
+
return;
|
|
3878
|
+
}
|
|
3879
|
+
const list = this.shadowRoot?.querySelector(".conversation-main office-ui-chat-list");
|
|
3880
|
+
const message = Array.from(
|
|
3881
|
+
list?.shadowRoot?.querySelectorAll("[data-message-id]") ?? []
|
|
3882
|
+
).find((element) => element.dataset.messageId === root);
|
|
3883
|
+
message?.querySelector('.thread-link, button[aria-label="Reply"]')?.focus();
|
|
3884
|
+
}
|
|
3885
|
+
pinFile(file) {
|
|
3886
|
+
if (!this.selectChannel(file.channelId ?? this.teams.state?.selectedChannelId ?? "")) return;
|
|
3887
|
+
const tab = this.teams.client?.addTab(
|
|
3888
|
+
file.name,
|
|
3889
|
+
{ type: "file", attachment: file },
|
|
3890
|
+
{ postToChannel: true }
|
|
3891
|
+
);
|
|
3892
|
+
if (tab) this.selectTab(tab.id);
|
|
3893
|
+
else this.notify("This file needs an uploaded URL before it can be pinned");
|
|
3894
|
+
}
|
|
3895
|
+
saveCopyFor(detail, state) {
|
|
3896
|
+
const client = this.teams.client;
|
|
3897
|
+
const channelId = detail.channelId;
|
|
3898
|
+
if (!client || !channelId || !state.canUploadFiles) return void 0;
|
|
3899
|
+
return async (file, options) => {
|
|
3900
|
+
await client.saveFileCopy(channelId, file, options);
|
|
3901
|
+
};
|
|
3902
|
+
}
|
|
3903
|
+
fileList(files, state) {
|
|
3904
|
+
return html`<teams-files-panel
|
|
3905
|
+
.client=${this.teams.client}
|
|
3906
|
+
.files=${files}
|
|
3907
|
+
.channelId=${state.selectedChannelId}
|
|
3908
|
+
.channelName=${state.channel?.name ?? ""}
|
|
3909
|
+
.canUpload=${state.canUploadFiles}
|
|
3910
|
+
@teams-files-open=${(event) => void this.openFile(event.detail.attachment, event.detail.mode)}
|
|
3911
|
+
@teams-files-browser=${(event) => void this.openFile(event.detail.attachment, "browser")}
|
|
3912
|
+
@teams-files-pin=${(event) => this.pinFile(event.detail.attachment)}
|
|
3913
|
+
></teams-files-panel>`;
|
|
3914
|
+
}
|
|
3915
|
+
allFiles(s) {
|
|
3916
|
+
return html`<header class="channel-head">
|
|
3917
|
+
<h1>Files</h1>
|
|
3918
|
+
<span class="topic">Shared across your channels</span>
|
|
3919
|
+
</header>
|
|
3920
|
+
${this.fileList(s.allFiles, s)}`;
|
|
3921
|
+
}
|
|
3922
|
+
meetingView(s) {
|
|
3923
|
+
const call = s.call;
|
|
3924
|
+
if (call.phase === "prejoin")
|
|
3925
|
+
return html`
|
|
3926
|
+
<office-ui-prejoin
|
|
3927
|
+
heading=${`# ${call.channelName}`}
|
|
3928
|
+
name=${s.user.name}
|
|
3929
|
+
.preview=${call.preview}
|
|
3930
|
+
?audio=${call.prejoin.audio}
|
|
3931
|
+
?video=${call.prejoin.video}
|
|
3932
|
+
@office-prejoin-change=${(e) => void this.teams.client?.setPrejoin(e.detail)}
|
|
3933
|
+
@office-prejoin-join=${() => void this.teams.client?.joinCall()}
|
|
3934
|
+
@office-prejoin-cancel=${() => (this.meeting = false, this.teams.client?.leaveCall())}
|
|
3935
|
+
></office-ui-prejoin>
|
|
3936
|
+
`;
|
|
3937
|
+
const self = call.self;
|
|
3938
|
+
return html`
|
|
3939
|
+
<section class="meeting">
|
|
3940
|
+
<office-ui-call-controls
|
|
3941
|
+
heading=${`# ${call.channelName}`}
|
|
3942
|
+
started-at=${call.startedAt ?? 0}
|
|
3943
|
+
?mic=${self?.state.audio}
|
|
3944
|
+
?camera=${self?.state.video}
|
|
3945
|
+
?screen=${self?.state.screen}
|
|
3946
|
+
?hand=${self?.state.hand}
|
|
3947
|
+
?share-unavailable=${typeof navigator.mediaDevices?.getDisplayMedia !== "function"}
|
|
3948
|
+
panel=${this.panel}
|
|
3949
|
+
@office-call-action=${(e) => this.onCallAction(e.detail.action)}
|
|
3950
|
+
></office-ui-call-controls>
|
|
3951
|
+
<div class="stage">
|
|
3952
|
+
<office-ui-call-grid
|
|
3953
|
+
.participants=${call.participants.map((p) => ({
|
|
3954
|
+
id: p.id,
|
|
3955
|
+
name: p.name,
|
|
3956
|
+
self: p.self,
|
|
3957
|
+
stream: p.stream,
|
|
3958
|
+
audio: p.state.audio,
|
|
3959
|
+
video: p.state.video,
|
|
3960
|
+
screen: p.state.screen,
|
|
3961
|
+
hand: p.state.hand,
|
|
3962
|
+
connection: p.connection
|
|
3963
|
+
}))}
|
|
3964
|
+
></office-ui-call-grid>
|
|
3965
|
+
${this.panel === "chat" ? html`<aside class="panel chat">${this.conversation(s, true)}</aside>` : this.panel === "people" ? html`<aside class="panel people-panel">
|
|
3966
|
+
<h2>People (${call.participants.length})</h2>
|
|
3967
|
+
<ul class="plain">
|
|
3968
|
+
${call.participants.map(
|
|
3969
|
+
(p) => html`<li>
|
|
3970
|
+
<office-ui-avatar
|
|
3971
|
+
size="sm"
|
|
3972
|
+
name=${p.name}
|
|
3973
|
+
seed=${p.id}
|
|
3974
|
+
></office-ui-avatar>
|
|
3975
|
+
<span>${p.name}${p.self ? " (you)" : ""}</span>
|
|
3976
|
+
${p.state.hand ? html`<span title="Hand raised">✋</span>` : nothing}
|
|
3977
|
+
</li>`
|
|
3978
|
+
)}
|
|
3979
|
+
</ul>
|
|
3980
|
+
</aside>` : nothing}
|
|
3981
|
+
</div>
|
|
3982
|
+
</section>
|
|
3983
|
+
`;
|
|
3984
|
+
}
|
|
3985
|
+
};
|
|
3986
|
+
function defineTeamsApp(registry = globalThis.customElements) {
|
|
3987
|
+
if (registry && !registry.get("teams-app")) registry.define("teams-app", TeamsApp);
|
|
3988
|
+
}
|
|
3989
|
+
|
|
3990
|
+
// src/teams/app/bind.ts
|
|
3991
|
+
var SCALARS = ["workspaceId", "userName", "userId"];
|
|
3992
|
+
function applyTeamsProps(el, props, prev = {}) {
|
|
3993
|
+
for (const key of SCALARS) {
|
|
3994
|
+
if (props[key] === prev[key]) continue;
|
|
3995
|
+
el[key] = props[key] ?? (key === "workspaceId" ? "demo" : "");
|
|
3996
|
+
}
|
|
3997
|
+
if (props.config !== prev.config && props.config !== void 0) el.config = props.config;
|
|
3998
|
+
if (props.uploadFile !== prev.uploadFile) el.uploadFile = props.uploadFile;
|
|
3999
|
+
if (props.openers !== prev.openers) el.openers = props.openers ?? {};
|
|
4000
|
+
if (props.embeds !== prev.embeds) el.embeds = props.embeds ?? {};
|
|
4001
|
+
}
|
|
4002
|
+
function listenTeamsEvents(el, get) {
|
|
4003
|
+
const ready = (e) => get().onReady?.(e.detail);
|
|
4004
|
+
const open = (e) => {
|
|
4005
|
+
const ce = e;
|
|
4006
|
+
get().onOpenFile?.(ce.detail, ce);
|
|
4007
|
+
};
|
|
4008
|
+
const config = (e) => get().onConfigChange?.(e.detail);
|
|
4009
|
+
el.addEventListener("teams-ready", ready);
|
|
4010
|
+
el.addEventListener("teams-open-file", open);
|
|
4011
|
+
el.addEventListener("teams-config-change", config);
|
|
4012
|
+
return () => {
|
|
4013
|
+
el.removeEventListener("teams-ready", ready);
|
|
4014
|
+
el.removeEventListener("teams-open-file", open);
|
|
4015
|
+
el.removeEventListener("teams-config-change", config);
|
|
4016
|
+
};
|
|
4017
|
+
}
|
|
4018
|
+
function createTeams(options) {
|
|
4019
|
+
return createTeamsClient({ storage: safeStorage, ...options });
|
|
4020
|
+
}
|
|
4021
|
+
|
|
4022
|
+
// src/teams/index.ts
|
|
4023
|
+
var TEAMS_TAGS = [
|
|
4024
|
+
"office-ui-avatar",
|
|
4025
|
+
"office-ui-app-rail",
|
|
4026
|
+
"office-ui-channel-list",
|
|
4027
|
+
"office-ui-chat-list",
|
|
4028
|
+
"office-ui-chat-composer",
|
|
4029
|
+
"office-ui-prejoin",
|
|
4030
|
+
"office-ui-call-grid",
|
|
4031
|
+
"office-ui-call-controls"
|
|
4032
|
+
];
|
|
4033
|
+
function registerTeams() {
|
|
4034
|
+
defineAvatar();
|
|
4035
|
+
defineAppRail();
|
|
4036
|
+
defineChannelList();
|
|
4037
|
+
defineChatList();
|
|
4038
|
+
defineChatComposer();
|
|
4039
|
+
definePrejoin();
|
|
4040
|
+
defineCallGrid();
|
|
4041
|
+
defineCallControls();
|
|
4042
|
+
}
|
|
4043
|
+
|
|
4044
|
+
export { EMOJI, OfficeUiAppRail, OfficeUiAvatar, OfficeUiCallControls, OfficeUiCallGrid, OfficeUiChannelList, OfficeUiChatComposer, OfficeUiChatList, OfficeUiPrejoin, QUICK_REACTIONS, TEAMS_TAGS, TeamsApp, TeamsChannelTab, TeamsContentPreview, TeamsController, TeamsElement, TeamsFilesPanel, TeamsSettings, XLSX_EDITOR_EVENTS, announceFileCommand, applyTeamsProps, blobFor, colorFor, createTeams, dayLabel, defineAppRail, defineAvatar, defineCallControls, defineCallGrid, defineChannelList, defineChatComposer, defineChatList, definePrejoin, defineTeamsApp, defineTeamsChannelTab, defineTeamsContentPreview, defineTeamsFilesPanel, defineTeamsSettings, downloadBytes, emit, emitEvent, formatElapsed, formatSize, formatTime, icon, listenTeamsEvents, loadConfig, loadIdentity, parseIceLines, pickFile, registerTeams, safeStorage, saveConfig, saveExtension, saveIdentity, withExtension, withStyles };
|