pptx-react-viewer 4.45.0 → 4.46.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/CHANGELOG.md +17 -0
- package/README.md +2 -2
- package/dist/{chunk-KUQRWMIK.js → chunk-2J3467IB.js} +122 -120
- package/dist/chunk-2J3467IB.js.br +0 -0
- package/dist/chunk-2J3467IB.js.gz +0 -0
- package/dist/{chunk-2YCROYR6.js → chunk-AMXSOQRH.js} +32 -11
- package/dist/chunk-AMXSOQRH.js.br +0 -0
- package/dist/chunk-AMXSOQRH.js.gz +0 -0
- package/dist/{chunk-VUE3EPTJ.mjs → chunk-CLHUOZSY.mjs} +7 -5
- package/dist/chunk-CLHUOZSY.mjs.br +0 -0
- package/dist/chunk-CLHUOZSY.mjs.gz +0 -0
- package/dist/{chunk-66APV3YZ.mjs → chunk-UQFIRJGG.mjs} +33 -12
- package/dist/chunk-UQFIRJGG.mjs.br +0 -0
- package/dist/chunk-UQFIRJGG.mjs.gz +0 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.js +22 -22
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +8 -1
- package/dist/internals.js +80 -80
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +1 -1
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.d.ts +5 -1
- package/dist/viewer/index.js +17 -17
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +2 -2
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +3 -3
- package/dist/chunk-2YCROYR6.js.br +0 -0
- package/dist/chunk-2YCROYR6.js.gz +0 -0
- package/dist/chunk-66APV3YZ.mjs.br +0 -0
- package/dist/chunk-66APV3YZ.mjs.gz +0 -0
- package/dist/chunk-KUQRWMIK.js.br +0 -0
- package/dist/chunk-KUQRWMIK.js.gz +0 -0
- package/dist/chunk-VUE3EPTJ.mjs.br +0 -0
- package/dist/chunk-VUE3EPTJ.mjs.gz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkAMXSOQRH_js = require('./chunk-AMXSOQRH.js');
|
|
4
4
|
var chunkVJZJESNT_js = require('./chunk-VJZJESNT.js');
|
|
5
5
|
var pptx = require('ooxml-ui/pptx');
|
|
6
6
|
var React106 = require('react');
|
|
@@ -307,7 +307,7 @@ function SlideTemplatePreview({
|
|
|
307
307
|
transformOrigin: "top left"
|
|
308
308
|
},
|
|
309
309
|
children: previewSlide.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
310
|
-
|
|
310
|
+
chunkAMXSOQRH_js.StaticElementRenderer,
|
|
311
311
|
{
|
|
312
312
|
element,
|
|
313
313
|
activeSlide: previewSlide,
|
|
@@ -376,7 +376,7 @@ function SlideTemplateGalleryDialog({
|
|
|
376
376
|
scheme
|
|
377
377
|
}) {
|
|
378
378
|
const { t } = reactI18next.useTranslation();
|
|
379
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
379
|
+
const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
|
|
380
380
|
const [selected, setSelected] = React106.useState(null);
|
|
381
381
|
const dialogRef = React106.useRef(null);
|
|
382
382
|
useModalFocus(isOpen, dialogRef, onClose);
|
|
@@ -868,7 +868,7 @@ function MobileSheet({
|
|
|
868
868
|
}) {
|
|
869
869
|
const sheetRef = React106.useRef(null);
|
|
870
870
|
const { t } = reactI18next.useTranslation();
|
|
871
|
-
const { dragY, dragging, handlers } =
|
|
871
|
+
const { dragY, dragging, handlers } = chunkAMXSOQRH_js.useSheetDismissDrag(onClose);
|
|
872
872
|
useModalFocus(open, sheetRef, onClose);
|
|
873
873
|
if (!open) {
|
|
874
874
|
return null;
|
|
@@ -1136,7 +1136,7 @@ function WebHomeControls({
|
|
|
1136
1136
|
function ShapeArrangeExtras(p) {
|
|
1137
1137
|
const commands = useShapeFormatContext();
|
|
1138
1138
|
const crop = commands?.crop;
|
|
1139
|
-
const { isHidden } =
|
|
1139
|
+
const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(p.hiddenActions);
|
|
1140
1140
|
const { onGroupElements, onUngroupElement, onUpdateElementStyle } = p;
|
|
1141
1141
|
const controls = React106.useMemo(
|
|
1142
1142
|
() => pptx.arrangeShapeHomeControls({
|
|
@@ -1471,7 +1471,7 @@ function TransitionsSection(p) {
|
|
|
1471
1471
|
case "soundPreview": {
|
|
1472
1472
|
const url = pptx.ribbonTransitionStockSoundUrl(transition);
|
|
1473
1473
|
if (url) {
|
|
1474
|
-
|
|
1474
|
+
chunkAMXSOQRH_js.playAnimationSound(url);
|
|
1475
1475
|
}
|
|
1476
1476
|
break;
|
|
1477
1477
|
}
|
|
@@ -1667,7 +1667,7 @@ function AccountPage() {
|
|
|
1667
1667
|
return void 0;
|
|
1668
1668
|
});
|
|
1669
1669
|
};
|
|
1670
|
-
const version = "4.
|
|
1670
|
+
const version = "4.46.0" ;
|
|
1671
1671
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
|
|
1672
1672
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: cardClass, children: [
|
|
1673
1673
|
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
@@ -1931,7 +1931,7 @@ function FileSection(p) {
|
|
|
1931
1931
|
const page = offered(requestedPage) ? requestedPage : offered("home") ? "home" : nav.find((item) => item.id !== "save" && item.id !== "close")?.id ?? "home";
|
|
1932
1932
|
const [query, setQuery] = React106.useState("");
|
|
1933
1933
|
const [recent, setRecent] = React106.useState([]);
|
|
1934
|
-
const { isHidden } =
|
|
1934
|
+
const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(p.hiddenActions);
|
|
1935
1935
|
const exportHidden = isHidden("export");
|
|
1936
1936
|
React106.useEffect(() => {
|
|
1937
1937
|
void pptx.listBackstageRecentFiles(t, p.recentPresentationsCount).then(setRecent);
|
|
@@ -2279,7 +2279,7 @@ function LayoutArtwork({
|
|
|
2279
2279
|
backgroundColor
|
|
2280
2280
|
};
|
|
2281
2281
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: (preview?.elements ?? []).slice(0, MAX_PREVIEW_ELEMENTS).map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2282
|
-
|
|
2282
|
+
chunkAMXSOQRH_js.StaticElementRenderer,
|
|
2283
2283
|
{
|
|
2284
2284
|
element,
|
|
2285
2285
|
activeSlide: slide,
|
|
@@ -2729,7 +2729,7 @@ function SlideShowOptions({
|
|
|
2729
2729
|
}
|
|
2730
2730
|
function SubtitleSettingsControl() {
|
|
2731
2731
|
const { t } = reactI18next.useTranslation();
|
|
2732
|
-
const supplied = React106.useContext(
|
|
2732
|
+
const supplied = React106.useContext(chunkAMXSOQRH_js.ViewerOptionsStoreContext);
|
|
2733
2733
|
const fallback = React106.useRef(null);
|
|
2734
2734
|
if (!supplied) {
|
|
2735
2735
|
fallback.current ??= pptx.createViewerOptionsStore({ persist: false });
|
|
@@ -2763,7 +2763,7 @@ function SubtitleSettingsControl() {
|
|
|
2763
2763
|
}
|
|
2764
2764
|
function SlideShowSection(p) {
|
|
2765
2765
|
const { t } = reactI18next.useTranslation();
|
|
2766
|
-
const { isHidden } =
|
|
2766
|
+
const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(p.hiddenActions);
|
|
2767
2767
|
const [showsOpen, setShowsOpen] = React106.useState(false);
|
|
2768
2768
|
const showsRef = React106.useRef(null);
|
|
2769
2769
|
React106.useEffect(() => {
|
|
@@ -3302,7 +3302,7 @@ function MobileMenuSheet(props) {
|
|
|
3302
3302
|
const { t } = reactI18next.useTranslation();
|
|
3303
3303
|
const { open, onClose } = props;
|
|
3304
3304
|
const [active, setActive] = React106.useState("home");
|
|
3305
|
-
const { isTabVisible } =
|
|
3305
|
+
const { isTabVisible } = chunkAMXSOQRH_js.useToolbarVisibility(props.hiddenActions);
|
|
3306
3306
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3307
3307
|
MobileSheet,
|
|
3308
3308
|
{
|
|
@@ -3591,7 +3591,7 @@ function MobileToolbar(props) {
|
|
|
3591
3591
|
const { t } = reactI18next.useTranslation();
|
|
3592
3592
|
const { mode, canUndo, canRedo, onUndo, onRedo, onSetMode, onSaveAsPptx } = props;
|
|
3593
3593
|
const [menuOpen, setMenuOpen] = React106.useState(false);
|
|
3594
|
-
const { isHidden } =
|
|
3594
|
+
const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(props.hiddenActions);
|
|
3595
3595
|
const showEdit = mode === "edit" || mode === "master";
|
|
3596
3596
|
const hidden = [];
|
|
3597
3597
|
if (isHidden("undo")) {
|
|
@@ -3638,7 +3638,7 @@ function MobileToolbar(props) {
|
|
|
3638
3638
|
}
|
|
3639
3639
|
function ChartSelectionStrip() {
|
|
3640
3640
|
const { t } = reactI18next.useTranslation();
|
|
3641
|
-
const commands =
|
|
3641
|
+
const commands = chunkAMXSOQRH_js.useChartFormatContext();
|
|
3642
3642
|
const chart = commands?.chart;
|
|
3643
3643
|
const chartData = chart?.type === "chart" ? chart.chartData : void 0;
|
|
3644
3644
|
const controls = React106.useMemo(
|
|
@@ -3669,7 +3669,7 @@ function PictureSizeStrip({
|
|
|
3669
3669
|
hiddenActions
|
|
3670
3670
|
}) {
|
|
3671
3671
|
const crop = useShapeFormatContext()?.crop;
|
|
3672
|
-
const { isHidden } =
|
|
3672
|
+
const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(hiddenActions);
|
|
3673
3673
|
const controls = React106.useMemo(
|
|
3674
3674
|
() => pptx.pictureSizeHomeControls({
|
|
3675
3675
|
editable: Boolean(crop),
|
|
@@ -3842,7 +3842,7 @@ var TAB_BASE = "relative px-3.5 py-2 text-[12px] font-medium whitespace-nowrap t
|
|
|
3842
3842
|
var TAB_UNDERLINE = "after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary";
|
|
3843
3843
|
function RibbonTabBar(p) {
|
|
3844
3844
|
const { t } = reactI18next.useTranslation();
|
|
3845
|
-
const viewerOptions =
|
|
3845
|
+
const viewerOptions = chunkAMXSOQRH_js.useViewerOptionsContext();
|
|
3846
3846
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3847
3847
|
"div",
|
|
3848
3848
|
{
|
|
@@ -3919,9 +3919,9 @@ function RibbonTabBar(p) {
|
|
|
3919
3919
|
}
|
|
3920
3920
|
function TabRowActions(p) {
|
|
3921
3921
|
const { t } = reactI18next.useTranslation();
|
|
3922
|
-
const collab =
|
|
3922
|
+
const collab = chunkAMXSOQRH_js.useCollaboration();
|
|
3923
3923
|
const isCollaborating = Boolean(collab && collab.status === "connected");
|
|
3924
|
-
const { isHidden } =
|
|
3924
|
+
const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(p.hiddenActions);
|
|
3925
3925
|
const customization = useViewerCustomizationContext();
|
|
3926
3926
|
const ref = React106.useRef(null);
|
|
3927
3927
|
const handlers = React106.useRef(p);
|
|
@@ -3976,7 +3976,7 @@ function TabRowActions(p) {
|
|
|
3976
3976
|
}
|
|
3977
3977
|
function TitleBarElement(p) {
|
|
3978
3978
|
const { t } = reactI18next.useTranslation();
|
|
3979
|
-
const options =
|
|
3979
|
+
const options = chunkAMXSOQRH_js.useViewerOptionsContext();
|
|
3980
3980
|
const customization = useViewerCustomizationContext();
|
|
3981
3981
|
const ref = React106.useRef(null);
|
|
3982
3982
|
const stripVisible = options.quickAccess.visible && pptx.isPanelVisible(customization, "quickAccessToolbar");
|
|
@@ -4312,7 +4312,7 @@ function ToolbarPrimaryRow(p) {
|
|
|
4312
4312
|
onToggleSidebar,
|
|
4313
4313
|
onToggleInspector
|
|
4314
4314
|
} = p;
|
|
4315
|
-
const collab =
|
|
4315
|
+
const collab = chunkAMXSOQRH_js.useCollaboration();
|
|
4316
4316
|
const customization = useViewerCustomizationContext();
|
|
4317
4317
|
const showSlidesToggle = pptx.isPanelVisible(customization, "slidesPane");
|
|
4318
4318
|
const showInspectorToggle = pptx.isPanelVisible(customization, "inspector");
|
|
@@ -4602,8 +4602,8 @@ function ToolbarLateTabs({
|
|
|
4602
4602
|
function Toolbar(p) {
|
|
4603
4603
|
const { mode, isNarrowViewport, isCompactToolbarOpen, toolbarSection, onSetToolbarSection } = p;
|
|
4604
4604
|
const { t } = reactI18next.useTranslation();
|
|
4605
|
-
const { isTabVisible } =
|
|
4606
|
-
const viewerOptions =
|
|
4605
|
+
const { isTabVisible } = chunkAMXSOQRH_js.useToolbarVisibility(p.hiddenActions);
|
|
4606
|
+
const viewerOptions = chunkAMXSOQRH_js.useViewerOptionsContext();
|
|
4607
4607
|
const customization = useViewerCustomizationContext();
|
|
4608
4608
|
const belowInput = React106.useMemo(
|
|
4609
4609
|
() => ({
|
|
@@ -5587,7 +5587,7 @@ function DrawingOverlaySvg({
|
|
|
5587
5587
|
onPointerDown,
|
|
5588
5588
|
onPointerMove,
|
|
5589
5589
|
onPointerUp,
|
|
5590
|
-
children: isStrokeActive && liveStrokeView ?
|
|
5590
|
+
children: isStrokeActive && liveStrokeView ? chunkAMXSOQRH_js.renderStrokeView(liveStrokeView, true, void 0, "ink-live-preview") : isStrokeActive && liveStrokeD && /* @__PURE__ */ jsxRuntime.jsx(
|
|
5591
5591
|
"path",
|
|
5592
5592
|
{
|
|
5593
5593
|
d: liveStrokeD,
|
|
@@ -6166,7 +6166,7 @@ function PictureCropOverlay({
|
|
|
6166
6166
|
};
|
|
6167
6167
|
};
|
|
6168
6168
|
const { ghost, frame, handles } = overlay;
|
|
6169
|
-
const src =
|
|
6169
|
+
const src = chunkAMXSOQRH_js.imgSrc(element);
|
|
6170
6170
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6171
6171
|
"div",
|
|
6172
6172
|
{
|
|
@@ -6606,7 +6606,7 @@ function SelectionHandleOverlay({
|
|
|
6606
6606
|
onDoubleClick: (e) => onDoubleClick(element.id, e),
|
|
6607
6607
|
onContextMenu: (e) => onContextMenu(element.id, e),
|
|
6608
6608
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6609
|
-
|
|
6609
|
+
chunkAMXSOQRH_js.ResizeHandles,
|
|
6610
6610
|
{
|
|
6611
6611
|
elementId: element.id,
|
|
6612
6612
|
adjustmentHandles,
|
|
@@ -7317,7 +7317,7 @@ function SlideCanvas(props) {
|
|
|
7317
7317
|
props.registerInlineEditReader
|
|
7318
7318
|
]
|
|
7319
7319
|
);
|
|
7320
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7320
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.InlineCollaborationContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx(SlideCanvasContent, { ...props }) });
|
|
7321
7321
|
}
|
|
7322
7322
|
function SlideCanvasContent({
|
|
7323
7323
|
imagePaste,
|
|
@@ -7586,7 +7586,7 @@ function SlideCanvasContent({
|
|
|
7586
7586
|
onPointerMove: handleStagePointerMove,
|
|
7587
7587
|
onPointerUp: handleStagePointerUp,
|
|
7588
7588
|
children: [
|
|
7589
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7589
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.SlideBackgroundImageLayer, { slide: activeSlide }),
|
|
7590
7590
|
presentationKeyframesCss && /* @__PURE__ */ jsxRuntime.jsx("style", { children: presentationKeyframesCss }),
|
|
7591
7591
|
/* @__PURE__ */ jsxRuntime.jsx(GridOverlay, { canvasSize, gridSpacingPx, visible: showGrid }),
|
|
7592
7592
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -7598,7 +7598,7 @@ function SlideCanvasContent({
|
|
|
7598
7598
|
}
|
|
7599
7599
|
),
|
|
7600
7600
|
templateElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7601
|
-
|
|
7601
|
+
chunkAMXSOQRH_js.ElementRenderer,
|
|
7602
7602
|
{
|
|
7603
7603
|
element,
|
|
7604
7604
|
activeSlide,
|
|
@@ -7642,7 +7642,7 @@ function SlideCanvasContent({
|
|
|
7642
7642
|
`tpl-${element.id}`
|
|
7643
7643
|
)),
|
|
7644
7644
|
activeSlide?.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7645
|
-
|
|
7645
|
+
chunkAMXSOQRH_js.ElementRenderer,
|
|
7646
7646
|
{
|
|
7647
7647
|
element,
|
|
7648
7648
|
activeSlide,
|
|
@@ -7708,7 +7708,7 @@ function SlideCanvasContent({
|
|
|
7708
7708
|
editingMember && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7709
7709
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `[data-element-id="${cssAttr(editingMember.parentId)}"] [data-element-id="${cssAttr(editingMember.member.id)}"]{visibility:hidden}` }),
|
|
7710
7710
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7711
|
-
|
|
7711
|
+
chunkAMXSOQRH_js.ElementRenderer,
|
|
7712
7712
|
{
|
|
7713
7713
|
element: editingMember.member,
|
|
7714
7714
|
activeSlide,
|
|
@@ -8224,7 +8224,7 @@ function SlideThumbnailImpl({
|
|
|
8224
8224
|
...pptx.deviceStrokeStageStyle(scale)
|
|
8225
8225
|
},
|
|
8226
8226
|
children: [
|
|
8227
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8227
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.SlideBackgroundImageLayer, { slide }),
|
|
8228
8228
|
slide.transition && slide.transition.type !== "none" && slide.transition.type !== "cut" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
8229
8229
|
"div",
|
|
8230
8230
|
{
|
|
@@ -8234,7 +8234,7 @@ function SlideThumbnailImpl({
|
|
|
8234
8234
|
}
|
|
8235
8235
|
),
|
|
8236
8236
|
previewElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8237
|
-
|
|
8237
|
+
chunkAMXSOQRH_js.StaticElementRenderer,
|
|
8238
8238
|
{
|
|
8239
8239
|
element,
|
|
8240
8240
|
activeSlide: slide,
|
|
@@ -8409,7 +8409,7 @@ function ContextMenu(props) {
|
|
|
8409
8409
|
const { t } = reactI18next.useTranslation();
|
|
8410
8410
|
const customization = useViewerCustomizationContext();
|
|
8411
8411
|
const shapeFormat = useShapeFormatContext();
|
|
8412
|
-
const chartFormat =
|
|
8412
|
+
const chartFormat = chunkAMXSOQRH_js.useChartFormatContext();
|
|
8413
8413
|
const open = Boolean(contextMenuState) && mode === "edit";
|
|
8414
8414
|
const handlers = {
|
|
8415
8415
|
...contextMenuHandlers(props, shapeFormat),
|
|
@@ -9324,7 +9324,7 @@ function SlidesPaneSidebar({
|
|
|
9324
9324
|
tableStyleContext
|
|
9325
9325
|
}) {
|
|
9326
9326
|
const { t } = reactI18next.useTranslation();
|
|
9327
|
-
const collab =
|
|
9327
|
+
const collab = chunkAMXSOQRH_js.useCollaboration();
|
|
9328
9328
|
const slideRefs = React106.useRef(/* @__PURE__ */ new Map());
|
|
9329
9329
|
const renameInputRef = React106.useRef(null);
|
|
9330
9330
|
const slidePresenceMap = React106.useMemo(() => {
|
|
@@ -9419,7 +9419,7 @@ function SlidesPaneSidebar({
|
|
|
9419
9419
|
[sectionGroups, showSectionHeaders, effectiveCollapsed]
|
|
9420
9420
|
);
|
|
9421
9421
|
const shouldVirtualize = slides.length >= VIRTUALIZATION_THRESHOLD;
|
|
9422
|
-
const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } =
|
|
9422
|
+
const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } = chunkAMXSOQRH_js.useVirtualizedSlides({
|
|
9423
9423
|
totalItems: shouldVirtualize ? flatItems.length : 0,
|
|
9424
9424
|
itemHeight: estimatedItemHeight
|
|
9425
9425
|
});
|
|
@@ -11303,7 +11303,7 @@ function ReadingViewStage({
|
|
|
11303
11303
|
className: "absolute left-0 top-0 origin-top-left",
|
|
11304
11304
|
style: { width, height, transform: `scale(${scale})`, ...pptx.deviceStrokeStageStyle(scale) },
|
|
11305
11305
|
children: elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
11306
|
-
|
|
11306
|
+
chunkAMXSOQRH_js.StaticElementRenderer,
|
|
11307
11307
|
{
|
|
11308
11308
|
element,
|
|
11309
11309
|
activeSlide: slide,
|
|
@@ -11958,7 +11958,7 @@ function SlideNotesPanel({
|
|
|
11958
11958
|
});
|
|
11959
11959
|
const hasNotes = draft.trim().length > 0;
|
|
11960
11960
|
const slideLabel = activeSlide ? t("pptx.notes.slideN", { n: activeSlide.slideNumber }) : t("pptx.notes.noSlide");
|
|
11961
|
-
const { dragY, handlers: dragHandlers } =
|
|
11961
|
+
const { dragY, handlers: dragHandlers } = chunkAMXSOQRH_js.useSheetDismissDrag(onToggle);
|
|
11962
11962
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
11963
11963
|
isExpanded && /* @__PURE__ */ jsxRuntime.jsx(
|
|
11964
11964
|
"button",
|
|
@@ -13095,7 +13095,7 @@ function DocumentPropertiesDialog({
|
|
|
13095
13095
|
const handleClose = React106.useCallback(() => {
|
|
13096
13096
|
onClose();
|
|
13097
13097
|
}, [onClose]);
|
|
13098
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
13098
|
+
const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(handleClose);
|
|
13099
13099
|
if (!isOpen) {
|
|
13100
13100
|
return null;
|
|
13101
13101
|
}
|
|
@@ -13692,7 +13692,7 @@ function PresentationSubtitleBar({
|
|
|
13692
13692
|
}) {
|
|
13693
13693
|
const { t } = reactI18next.useTranslation();
|
|
13694
13694
|
const language = pptx.subtitleRecognitionLanguage(
|
|
13695
|
-
pptx.subtitleSettingsFromOptions(
|
|
13695
|
+
pptx.subtitleSettingsFromOptions(chunkAMXSOQRH_js.useViewerOptionsContext()),
|
|
13696
13696
|
typeof navigator === "undefined" ? "en-US" : navigator.language
|
|
13697
13697
|
);
|
|
13698
13698
|
const [captionText, setCaptionText] = React106.useState("");
|
|
@@ -13886,7 +13886,7 @@ function ScaledSlidePreviewImpl({
|
|
|
13886
13886
|
...pptx.deviceStrokeStageStyle(scale)
|
|
13887
13887
|
},
|
|
13888
13888
|
children: previewElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
13889
|
-
|
|
13889
|
+
chunkAMXSOQRH_js.StaticElementRenderer,
|
|
13890
13890
|
{
|
|
13891
13891
|
element,
|
|
13892
13892
|
activeSlide: slide,
|
|
@@ -15203,7 +15203,7 @@ function EffectSoundRow({
|
|
|
15203
15203
|
}
|
|
15204
15204
|
const asset = pptx.getEffectSoundAsset(soundState.catalogueId);
|
|
15205
15205
|
if (asset) {
|
|
15206
|
-
|
|
15206
|
+
chunkAMXSOQRH_js.playAnimationSound(asset.dataUrl);
|
|
15207
15207
|
}
|
|
15208
15208
|
};
|
|
15209
15209
|
return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex flex-col gap-1", children: [
|
|
@@ -15715,7 +15715,7 @@ function AnimationPanel({
|
|
|
15715
15715
|
onUpdateSlide
|
|
15716
15716
|
}) {
|
|
15717
15717
|
const { t } = reactI18next.useTranslation();
|
|
15718
|
-
const { viewportWidth } =
|
|
15718
|
+
const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
|
|
15719
15719
|
const directionBtnPx = Math.max(28, pptx.getDensePanelTouchTargetPx(viewportWidth));
|
|
15720
15720
|
const fieldStyle = { minHeight: pptx.getDensePanelTouchTargetPx(viewportWidth) };
|
|
15721
15721
|
const handlers = useAnimationHandlers({
|
|
@@ -16614,7 +16614,7 @@ function ChartDataGrid({
|
|
|
16614
16614
|
}) {
|
|
16615
16615
|
const { t } = reactI18next.useTranslation();
|
|
16616
16616
|
const highlightRef = React106.useRef(null);
|
|
16617
|
-
const { viewportWidth } =
|
|
16617
|
+
const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
|
|
16618
16618
|
const gridPlan = pptx.getDenseGridLayoutPlan(viewportWidth);
|
|
16619
16619
|
const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
|
|
16620
16620
|
const rowHeaderClass = gridPlan.stickyFirstColumn ? "sticky left-0 z-10 bg-card" : "";
|
|
@@ -17971,8 +17971,8 @@ function ChartUserShapeOptions({
|
|
|
17971
17971
|
}
|
|
17972
17972
|
function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
17973
17973
|
const chartData = selectedElement.chartData;
|
|
17974
|
-
const followDataPoint =
|
|
17975
|
-
const { selection: partSelection } =
|
|
17974
|
+
const followDataPoint = chunkAMXSOQRH_js.useViewerOptionsContext().advanced.chartPropertiesFollowDataPoint;
|
|
17975
|
+
const { selection: partSelection } = chunkAMXSOQRH_js.useChartPartSelection();
|
|
17976
17976
|
const canvasPart = partSelection?.elementId === selectedElement.id ? partSelection.part : null;
|
|
17977
17977
|
const title = chartData?.title;
|
|
17978
17978
|
const chartType = chartData?.chartType;
|
|
@@ -19240,7 +19240,7 @@ function DuotonePanel({
|
|
|
19240
19240
|
] }),
|
|
19241
19241
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
|
|
19242
19242
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground text-[10px]", children: t("pptx.image.duotonePresets") }),
|
|
19243
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-1", children:
|
|
19243
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-1", children: chunkAMXSOQRH_js.DUOTONE_PRESETS.map((preset) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
19244
19244
|
"button",
|
|
19245
19245
|
{
|
|
19246
19246
|
type: "button",
|
|
@@ -21542,7 +21542,7 @@ function QuickStylesGallery({
|
|
|
21542
21542
|
onUpdateShapeStyle
|
|
21543
21543
|
}) {
|
|
21544
21544
|
const { t } = reactI18next.useTranslation();
|
|
21545
|
-
const { viewportWidth } =
|
|
21545
|
+
const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
|
|
21546
21546
|
const swatchMinHeight = pptx.getDensePanelTouchTargetPx(viewportWidth);
|
|
21547
21547
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
21548
21548
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: LBL, children: t("pptx.shape.quickStyles") }),
|
|
@@ -23237,7 +23237,7 @@ function SmartArtPropertiesPanel({
|
|
|
23237
23237
|
const reflowed = box ? pptx.rebuildDrawingShapesIfCleared(
|
|
23238
23238
|
newData,
|
|
23239
23239
|
newData.layout,
|
|
23240
|
-
|
|
23240
|
+
chunkAMXSOQRH_js.resolveSmartArtDataPalette(newData),
|
|
23241
23241
|
newData.style ?? "flat",
|
|
23242
23242
|
"inspector",
|
|
23243
23243
|
box
|
|
@@ -23426,7 +23426,7 @@ function TableDataGrid({
|
|
|
23426
23426
|
}) {
|
|
23427
23427
|
const { t } = reactI18next.useTranslation();
|
|
23428
23428
|
const grid = pptx.buildTableDataGrid(tableElement);
|
|
23429
|
-
const { viewportWidth } =
|
|
23429
|
+
const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
|
|
23430
23430
|
const gridPlan = pptx.getDenseGridLayoutPlan(viewportWidth);
|
|
23431
23431
|
const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
|
|
23432
23432
|
const stickyGutterClass = gridPlan.stickyFirstColumn ? "sticky left-0 z-10" : "";
|
|
@@ -25268,7 +25268,7 @@ function InspectorPaneHeader({
|
|
|
25268
25268
|
onClose
|
|
25269
25269
|
}) {
|
|
25270
25270
|
const { t } = reactI18next.useTranslation();
|
|
25271
|
-
const { viewportWidth } =
|
|
25271
|
+
const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
|
|
25272
25272
|
const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
|
|
25273
25273
|
const touchBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
25274
25274
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -25969,7 +25969,7 @@ function TransitionPreview({
|
|
|
25969
25969
|
const { t } = reactI18next.useTranslation();
|
|
25970
25970
|
const durationMs = transition.durationMs ?? 500;
|
|
25971
25971
|
const animations = React106.useMemo(
|
|
25972
|
-
() =>
|
|
25972
|
+
() => chunkAMXSOQRH_js.getSlideTransitionAnimations(
|
|
25973
25973
|
transition.type,
|
|
25974
25974
|
durationMs,
|
|
25975
25975
|
transition.direction,
|
|
@@ -26038,7 +26038,7 @@ function TransitionPreview({
|
|
|
26038
26038
|
]
|
|
26039
26039
|
}
|
|
26040
26040
|
),
|
|
26041
|
-
/* @__PURE__ */ jsxRuntime.jsx("style", { children:
|
|
26041
|
+
/* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkAMXSOQRH_js.SLIDE_TRANSITION_KEYFRAMES })
|
|
26042
26042
|
] });
|
|
26043
26043
|
}
|
|
26044
26044
|
var DEFAULT_DURATION_MS = 320;
|
|
@@ -26701,7 +26701,7 @@ function InspectorPane(props) {
|
|
|
26701
26701
|
} = props;
|
|
26702
26702
|
const hasSelection = selectedElement !== null;
|
|
26703
26703
|
const { t } = reactI18next.useTranslation();
|
|
26704
|
-
const { dragY, handlers: dragHandlers } =
|
|
26704
|
+
const { dragY, handlers: dragHandlers } = chunkAMXSOQRH_js.useSheetDismissDrag(onClose);
|
|
26705
26705
|
const {
|
|
26706
26706
|
animationPanelHeight,
|
|
26707
26707
|
effectiveThemeOptions,
|
|
@@ -27114,7 +27114,7 @@ function PresentationTouchControls({
|
|
|
27114
27114
|
hideNavigation = false
|
|
27115
27115
|
}) {
|
|
27116
27116
|
const { t } = reactI18next.useTranslation();
|
|
27117
|
-
const { isTouchDevice } =
|
|
27117
|
+
const { isTouchDevice } = chunkAMXSOQRH_js.useIsMobile();
|
|
27118
27118
|
if (!isTouchDevice) {
|
|
27119
27119
|
return null;
|
|
27120
27120
|
}
|
|
@@ -27761,11 +27761,11 @@ function PrintDialog({
|
|
|
27761
27761
|
}) {
|
|
27762
27762
|
const { t } = reactI18next.useTranslation();
|
|
27763
27763
|
const regionRenderer = useRegionRenderer("dialog.print");
|
|
27764
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
27765
|
-
const { viewportWidth } =
|
|
27764
|
+
const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
|
|
27765
|
+
const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
|
|
27766
27766
|
const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
|
|
27767
27767
|
const closeBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
27768
|
-
const printOptionDefaults = pptx.resolveDefaultPrintSettings(
|
|
27768
|
+
const printOptionDefaults = pptx.resolveDefaultPrintSettings(chunkAMXSOQRH_js.useViewerOptionsContext());
|
|
27769
27769
|
const [printWhat, setPrintWhat] = React106.useState(printOptionDefaults?.printWhat ?? "slides");
|
|
27770
27770
|
const [orientation, setOrientation] = React106.useState("landscape");
|
|
27771
27771
|
const [colorMode, setColorMode] = React106.useState(
|
|
@@ -28282,14 +28282,14 @@ function BroadcastDialog({
|
|
|
28282
28282
|
}) {
|
|
28283
28283
|
const { t } = reactI18next.useTranslation();
|
|
28284
28284
|
const regionRenderer = useRegionRenderer("dialog.broadcast");
|
|
28285
|
-
const collab =
|
|
28285
|
+
const collab = chunkAMXSOQRH_js.useCollaboration();
|
|
28286
28286
|
const isBroadcasting = collab !== null && collab.status !== "disconnected" && collab.status !== "error" && collab.config.role === "owner";
|
|
28287
28287
|
const [roomId, setRoomId] = React106.useState("");
|
|
28288
28288
|
const [userName, setUserName] = React106.useState("");
|
|
28289
28289
|
const [serverUrl, setServerUrl] = React106.useState("");
|
|
28290
28290
|
const [copied, setCopied] = React106.useState(false);
|
|
28291
28291
|
const dialogRef = React106.useRef(null);
|
|
28292
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
28292
|
+
const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
|
|
28293
28293
|
useModalFocus(open, dialogRef, onClose);
|
|
28294
28294
|
React106.useEffect(() => {
|
|
28295
28295
|
if (open && !isBroadcasting) {
|
|
@@ -28605,7 +28605,7 @@ function ActiveSessionView({
|
|
|
28605
28605
|
onCopyRoomId,
|
|
28606
28606
|
onStopCollaboration
|
|
28607
28607
|
}) {
|
|
28608
|
-
const { t } = reactI18next.useTranslation(), viewerOptions =
|
|
28608
|
+
const { t } = reactI18next.useTranslation(), viewerOptions = chunkAMXSOQRH_js.useViewerOptionsContext(), statusColor = collab.status === "connected" ? "text-green-400" : collab.status === "connecting" ? "text-yellow-400" : "text-red-400", statusIcon = collab.status === "connected" || collab.status === "connecting" ? /* @__PURE__ */ jsxRuntime.jsx(lu.LuWifi, { className: "w-4 h-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lu.LuWifiOff, { className: "w-4 h-4" }), sessionUsers = pptx.buildActiveSessionUsers({
|
|
28609
28609
|
localUserName: activeCollaboration?.userName ?? collab.config.userName,
|
|
28610
28610
|
localUserInitials: viewerOptions.general.userInitials,
|
|
28611
28611
|
localUserColor: collab.config.userColor,
|
|
@@ -28704,7 +28704,7 @@ function StartSessionForm({
|
|
|
28704
28704
|
onRetry
|
|
28705
28705
|
}) {
|
|
28706
28706
|
const { t } = reactI18next.useTranslation();
|
|
28707
|
-
const { viewportWidth } =
|
|
28707
|
+
const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
|
|
28708
28708
|
const tabBtnStyle = { minHeight: pptx.getDensePanelTouchTargetPx(viewportWidth) };
|
|
28709
28709
|
const inputReadOnlyClass = preconfigured ? " opacity-70 cursor-not-allowed" : "";
|
|
28710
28710
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
@@ -28838,7 +28838,7 @@ function ShareDialog({
|
|
|
28838
28838
|
defaultUserName,
|
|
28839
28839
|
defaultServerUrl
|
|
28840
28840
|
}) {
|
|
28841
|
-
const collab =
|
|
28841
|
+
const collab = chunkAMXSOQRH_js.useCollaboration();
|
|
28842
28842
|
const isActive = collab !== null && collab.status !== "disconnected" && collab.status !== "error";
|
|
28843
28843
|
const { t } = reactI18next.useTranslation();
|
|
28844
28844
|
const regionRenderer = useRegionRenderer("dialog.share");
|
|
@@ -28849,9 +28849,9 @@ function ShareDialog({
|
|
|
28849
28849
|
const [invitation, setInvitation] = React106.useState("");
|
|
28850
28850
|
const [copied, setCopied] = React106.useState(false);
|
|
28851
28851
|
const dialogRef = React106.useRef(null);
|
|
28852
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
28852
|
+
const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
|
|
28853
28853
|
useModalFocus(open, dialogRef, onClose);
|
|
28854
|
-
const { viewportWidth, viewportHeight } =
|
|
28854
|
+
const { viewportWidth, viewportHeight } = chunkAMXSOQRH_js.useIsMobile();
|
|
28855
28855
|
const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
|
|
28856
28856
|
const touchBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
28857
28857
|
const stickyFooterClass = pptx.shouldStickyActionRow(viewportWidth, viewportHeight) ? "sticky bottom-0 bg-popover" : "";
|
|
@@ -29150,12 +29150,12 @@ function HyperlinkEditDialog({
|
|
|
29150
29150
|
onCancel
|
|
29151
29151
|
}) {
|
|
29152
29152
|
const { t } = reactI18next.useTranslation();
|
|
29153
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
29153
|
+
const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onCancel);
|
|
29154
29154
|
const inputRef = React106.useRef(null);
|
|
29155
|
-
const detectedType =
|
|
29156
|
-
const emailParts =
|
|
29157
|
-
const detectedSlide =
|
|
29158
|
-
const detectedVerb = initialAction ?
|
|
29155
|
+
const detectedType = chunkAMXSOQRH_js.detectTargetType(initialUrl, initialAction);
|
|
29156
|
+
const emailParts = chunkAMXSOQRH_js.parseEmailUrl(initialUrl || "");
|
|
29157
|
+
const detectedSlide = chunkAMXSOQRH_js.parseSlideFromUrl(initialUrl, initialAction);
|
|
29158
|
+
const detectedVerb = initialAction ? chunkAMXSOQRH_js.ACTION_VERB_MAP[initialAction.toLowerCase()] || "nextSlide" : "nextSlide";
|
|
29159
29159
|
const [targetType, setTargetType] = React106.useState(detectedType);
|
|
29160
29160
|
const [url, setUrl] = React106.useState(
|
|
29161
29161
|
detectedType === "email" || detectedType === "slide" || detectedType === "action" ? "" : initialUrl || ""
|
|
@@ -29432,7 +29432,7 @@ function ViewerBottomPanels({
|
|
|
29432
29432
|
notesStyle,
|
|
29433
29433
|
onNotesHeightChange
|
|
29434
29434
|
}) {
|
|
29435
|
-
const { isHidden } =
|
|
29435
|
+
const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(hiddenActions);
|
|
29436
29436
|
const customization = useViewerCustomizationContext();
|
|
29437
29437
|
const showNotes = pptx.isPanelVisible(customization, "notes");
|
|
29438
29438
|
const notesRenderer = useRegionRenderer("notes");
|
|
@@ -29822,7 +29822,7 @@ function ViewerToolbarSection(props) {
|
|
|
29822
29822
|
[activeSlide, propertyHandlers]
|
|
29823
29823
|
);
|
|
29824
29824
|
const scopedLayoutOptions = React106__default.default.useMemo(
|
|
29825
|
-
() =>
|
|
29825
|
+
() => chunkAMXSOQRH_js.scopeLayoutOptionsToActiveSlide(s.layoutOptions, activeSlide),
|
|
29826
29826
|
[s.layoutOptions, activeSlide]
|
|
29827
29827
|
);
|
|
29828
29828
|
const handleResetSlide = React106.useCallback(() => {
|
|
@@ -30227,7 +30227,7 @@ function ViewerToolbarSection(props) {
|
|
|
30227
30227
|
isMobileInsertOpen: s.isMobileInsertOpen,
|
|
30228
30228
|
onCloseMobileInsert: () => s.setIsMobileInsertOpen(false),
|
|
30229
30229
|
slideCommentCount: activeSlide?.comments?.length ?? 0,
|
|
30230
|
-
reviewComments:
|
|
30230
|
+
reviewComments: chunkAMXSOQRH_js.createReviewCommentsHost({
|
|
30231
30231
|
state: s,
|
|
30232
30232
|
activeSlideIndex,
|
|
30233
30233
|
updateSlides: ops.updateSlides,
|
|
@@ -30321,7 +30321,7 @@ function EquationEditorDialog({
|
|
|
30321
30321
|
existingOmml
|
|
30322
30322
|
}) {
|
|
30323
30323
|
const { t } = reactI18next.useTranslation();
|
|
30324
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
30324
|
+
const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
|
|
30325
30325
|
const initialLatex = React106.useMemo(() => {
|
|
30326
30326
|
if (!existingOmml) {
|
|
30327
30327
|
return "";
|
|
@@ -30509,7 +30509,7 @@ function getPreviewForLayout(layout) {
|
|
|
30509
30509
|
transform: `scale(${scale})`,
|
|
30510
30510
|
transformOrigin: "top left"
|
|
30511
30511
|
},
|
|
30512
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
30512
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.SmartArtRenderer, { element: pptx.buildSmartArtPreviewElement(layout) })
|
|
30513
30513
|
}
|
|
30514
30514
|
)
|
|
30515
30515
|
}
|
|
@@ -30521,7 +30521,7 @@ function InsertSmartArtDialog({
|
|
|
30521
30521
|
onInsert
|
|
30522
30522
|
}) {
|
|
30523
30523
|
const { t } = reactI18next.useTranslation();
|
|
30524
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
30524
|
+
const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
|
|
30525
30525
|
const [activeCategory, setActiveCategory] = React106.useState("list");
|
|
30526
30526
|
const [selectedLayout, setSelectedLayout] = React106.useState(null);
|
|
30527
30527
|
const dialogRef = React106.useRef(null);
|
|
@@ -31128,11 +31128,11 @@ function PresentationStage({
|
|
|
31128
31128
|
})
|
|
31129
31129
|
},
|
|
31130
31130
|
children: [
|
|
31131
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31131
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.SlideBackgroundImageLayer, { slide: activeSlide }),
|
|
31132
31132
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: pptx.PRESENTATION_HIT_TEST_CSS }),
|
|
31133
31133
|
presentationKeyframesCss && /* @__PURE__ */ jsxRuntime.jsx("style", { children: presentationKeyframesCss }),
|
|
31134
31134
|
templateElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
31135
|
-
|
|
31135
|
+
chunkAMXSOQRH_js.ElementRenderer,
|
|
31136
31136
|
{
|
|
31137
31137
|
element,
|
|
31138
31138
|
activeSlide,
|
|
@@ -31169,7 +31169,7 @@ function PresentationStage({
|
|
|
31169
31169
|
`tpl-${element.id}`
|
|
31170
31170
|
)),
|
|
31171
31171
|
activeSlide?.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
31172
|
-
|
|
31172
|
+
chunkAMXSOQRH_js.ElementRenderer,
|
|
31173
31173
|
{
|
|
31174
31174
|
element,
|
|
31175
31175
|
activeSlide,
|
|
@@ -31291,8 +31291,8 @@ function ViewerCanvasArea(props) {
|
|
|
31291
31291
|
aiCanvasActive = false
|
|
31292
31292
|
} = props;
|
|
31293
31293
|
const { t } = reactI18next.useTranslation();
|
|
31294
|
-
const { isHidden } =
|
|
31295
|
-
const viewerOptions =
|
|
31294
|
+
const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(hiddenActions);
|
|
31295
|
+
const viewerOptions = chunkAMXSOQRH_js.useViewerOptionsContext();
|
|
31296
31296
|
const outlineAuthoring = useOutlineAuthoring({
|
|
31297
31297
|
state: s,
|
|
31298
31298
|
updateElement: canvasHandlers.handleUpdateSmartArtElement,
|
|
@@ -31430,7 +31430,7 @@ ${url}`)) {
|
|
|
31430
31430
|
s.setActiveSlideIndex((i) => Math.max(0, i - 1));
|
|
31431
31431
|
}
|
|
31432
31432
|
}, [mode, presentation, s]);
|
|
31433
|
-
const swipe =
|
|
31433
|
+
const swipe = chunkAMXSOQRH_js.useSwipeNavigation({
|
|
31434
31434
|
enabled: swipeEnabled,
|
|
31435
31435
|
onNext: handleSwipeNext,
|
|
31436
31436
|
onPrev: handleSwipePrev
|
|
@@ -31510,7 +31510,7 @@ ${url}`)) {
|
|
|
31510
31510
|
),
|
|
31511
31511
|
children: (stageScale) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
31512
31512
|
presentation.transitionOverlay && slides[presentation.transitionOverlay.outgoingSlideIndex] && /* @__PURE__ */ jsxRuntime.jsx(
|
|
31513
|
-
|
|
31513
|
+
chunkAMXSOQRH_js.PresentationTransitionOverlay,
|
|
31514
31514
|
{
|
|
31515
31515
|
outgoingSlide: slides[presentation.transitionOverlay.outgoingSlideIndex],
|
|
31516
31516
|
templateElements,
|
|
@@ -31621,14 +31621,14 @@ ${url}`)) {
|
|
|
31621
31621
|
outlineAuthoring,
|
|
31622
31622
|
collaborationOverlay: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
31623
31623
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31624
|
-
|
|
31624
|
+
chunkAMXSOQRH_js.RemoteSelectionOverlay,
|
|
31625
31625
|
{
|
|
31626
31626
|
elements: effectiveSlide?.elements ?? [],
|
|
31627
31627
|
activeSlideIndex
|
|
31628
31628
|
}
|
|
31629
31629
|
),
|
|
31630
31630
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31631
|
-
|
|
31631
|
+
chunkAMXSOQRH_js.CollaborationCursorOverlay,
|
|
31632
31632
|
{
|
|
31633
31633
|
activeSlideIndex,
|
|
31634
31634
|
canvasWidth: canvasSize.width,
|
|
@@ -31892,7 +31892,7 @@ function AiChangeOverlay({ batch, activeSlideIndex }) {
|
|
|
31892
31892
|
}
|
|
31893
31893
|
function ChartFormatPanel() {
|
|
31894
31894
|
const { t } = reactI18next.useTranslation();
|
|
31895
|
-
const commands =
|
|
31895
|
+
const commands = chunkAMXSOQRH_js.useChartFormatContext();
|
|
31896
31896
|
const ref = React106.useRef(null);
|
|
31897
31897
|
const chart = commands?.chart;
|
|
31898
31898
|
const chartData = chart?.type === "chart" ? chart.chartData : void 0;
|
|
@@ -31965,7 +31965,7 @@ function MobileDismissSheet({
|
|
|
31965
31965
|
children
|
|
31966
31966
|
}) {
|
|
31967
31967
|
const { t } = reactI18next.useTranslation();
|
|
31968
|
-
const { dragY, handlers } =
|
|
31968
|
+
const { dragY, handlers } = chunkAMXSOQRH_js.useSheetDismissDrag(onClose);
|
|
31969
31969
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
31970
31970
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31971
31971
|
"button",
|
|
@@ -32705,7 +32705,7 @@ function ViewerMainContent(props) {
|
|
|
32705
32705
|
);
|
|
32706
32706
|
const layoutGalleryAnchorRef = React106.useRef(null);
|
|
32707
32707
|
const layoutGalleryPreviews = useLayoutPreviews(loadLayoutPreviews, layoutGalleryAnchor !== null);
|
|
32708
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
32708
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.ChartPartSelectionProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-pptx-chrome": "body", className: "relative z-10 flex flex-1 min-h-0", children: [
|
|
32709
32709
|
showSlidesPane && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
32710
32710
|
slidesPaneRenderer ? (
|
|
32711
32711
|
// The rail's slot (width, collapse, resize handle) stays the viewer's.
|
|
@@ -33210,7 +33210,7 @@ function MobileChromeOverlay(props) {
|
|
|
33210
33210
|
slideSectionGroups,
|
|
33211
33211
|
canEdit,
|
|
33212
33212
|
commentCount
|
|
33213
|
-
} = props, { keyboardInset, isKeyboardOpen } =
|
|
33213
|
+
} = props, { keyboardInset, isKeyboardOpen } = chunkAMXSOQRH_js.useKeyboardInsets(), activeSheet = s.isMobileInsertOpen ? "insert" : s.isSlidesPaneOpen ? "slides" : s.isInspectorPaneOpen ? s.sidebarPanelMode === "comments" ? "comments" : "inspector" : !s.isSlideNotesCollapsed ? "notes" : null, closeAllSheets = () => {
|
|
33214
33214
|
s.setIsSlidesPaneOpen(false);
|
|
33215
33215
|
s.setIsMobileInsertOpen(false);
|
|
33216
33216
|
s.setIsInspectorPaneOpen(false);
|
|
@@ -33696,7 +33696,7 @@ async function exportAiChatLogs(options) {
|
|
|
33696
33696
|
chats,
|
|
33697
33697
|
{ format: options?.format, detailed: options?.detailed, now: options?.now },
|
|
33698
33698
|
(filename, content, mime) => {
|
|
33699
|
-
|
|
33699
|
+
chunkAMXSOQRH_js.downloadBlob(new Blob([content], { type: mime }), filename);
|
|
33700
33700
|
}
|
|
33701
33701
|
);
|
|
33702
33702
|
}
|
|
@@ -34038,7 +34038,7 @@ function ViewerOptionsProvider({
|
|
|
34038
34038
|
store,
|
|
34039
34039
|
children
|
|
34040
34040
|
}) {
|
|
34041
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
34041
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.ViewerOptionsStoreContext.Provider, { value: store, children: /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.ViewerOptionsContext.Provider, { value: options, children }) });
|
|
34042
34042
|
}
|
|
34043
34043
|
function useAiBridge(input) {
|
|
34044
34044
|
const ref = React106.useRef(input);
|
|
@@ -34304,6 +34304,7 @@ function useCollaborationStateReport(collab, onChange) {
|
|
|
34304
34304
|
const clientId = collab?.clientId;
|
|
34305
34305
|
const remoteUsers = collab?.remoteUsers;
|
|
34306
34306
|
const config = collab?.config;
|
|
34307
|
+
const writeBack = collab?.writeBack;
|
|
34307
34308
|
React106.useEffect(() => {
|
|
34308
34309
|
reporter.update(
|
|
34309
34310
|
pptx.buildCollaborationState({
|
|
@@ -34314,10 +34315,11 @@ function useCollaborationStateReport(collab, onChange) {
|
|
|
34314
34315
|
clientId,
|
|
34315
34316
|
userName: config?.userName,
|
|
34316
34317
|
userColor: config?.userColor,
|
|
34317
|
-
remoteUsers: remoteUsers ?? []
|
|
34318
|
+
remoteUsers: remoteUsers ?? [],
|
|
34319
|
+
writeBack: pptx.writeBackReport(config, writeBack)
|
|
34318
34320
|
})
|
|
34319
34321
|
);
|
|
34320
|
-
}, [reporter, status, synced, clientId, remoteUsers, config]);
|
|
34322
|
+
}, [reporter, status, synced, clientId, remoteUsers, config, writeBack]);
|
|
34321
34323
|
}
|
|
34322
34324
|
function handleClearOptionsCache() {
|
|
34323
34325
|
void (async () => {
|
|
@@ -34509,7 +34511,7 @@ function useMasterViewCrud(input) {
|
|
|
34509
34511
|
if (id === "renameLayout" || id === "renameMaster") {
|
|
34510
34512
|
const master = slideMasters[target.masterIndex];
|
|
34511
34513
|
const current = id === "renameLayout" ? master?.layouts?.[target.layoutIndex ?? -1]?.name ?? "" : master?.name ?? "";
|
|
34512
|
-
const next =
|
|
34514
|
+
const next = chunkAMXSOQRH_js.safePrompt(t("pptx.masterView.renamePrompt"), current)?.trim();
|
|
34513
34515
|
if (!next) {
|
|
34514
34516
|
return;
|
|
34515
34517
|
}
|
|
@@ -35009,7 +35011,7 @@ var PowerPointViewer = React106.forwardRef(
|
|
|
35009
35011
|
}
|
|
35010
35012
|
})();
|
|
35011
35013
|
}, []);
|
|
35012
|
-
const { optionsStore, options: viewerOptions } =
|
|
35014
|
+
const { optionsStore, options: viewerOptions } = chunkAMXSOQRH_js.useViewerOptions();
|
|
35013
35015
|
const custom = useViewerCustomization(customization, legacyHiddenActions, optionsStore);
|
|
35014
35016
|
const { resolved: customizationResolved, hiddenActions } = custom;
|
|
35015
35017
|
const aiEnabled = Boolean(ai) && pptx.isFeatureEnabled(customizationResolved, "ai");
|
|
@@ -35023,8 +35025,8 @@ var PowerPointViewer = React106.forwardRef(
|
|
|
35023
35025
|
const handleEnableEditing = React106.useCallback(() => {
|
|
35024
35026
|
setProtectedViewOverridden(true);
|
|
35025
35027
|
}, []);
|
|
35026
|
-
const readOnlyRec =
|
|
35027
|
-
const compatToastsState =
|
|
35028
|
+
const readOnlyRec = chunkAMXSOQRH_js.useReadOnlyRecommendationState(content);
|
|
35029
|
+
const compatToastsState = chunkAMXSOQRH_js.useCompatibilityToastsState();
|
|
35028
35030
|
const [notesBarHeight, setNotesBarHeight] = React106.useState(0);
|
|
35029
35031
|
const runProgramNoticesState = useRunProgramNoticesState();
|
|
35030
35032
|
const [collaborationReadOnly, setCollaborationReadOnly] = React106.useState(Boolean(collaboration));
|
|
@@ -35039,8 +35041,8 @@ var PowerPointViewer = React106.forwardRef(
|
|
|
35039
35041
|
filePath
|
|
35040
35042
|
});
|
|
35041
35043
|
const [isShareDialogOpen, setIsShareDialogOpen] = React106.useState(false);
|
|
35042
|
-
const { reducedMotion, toggleReducedMotion } =
|
|
35043
|
-
const state =
|
|
35044
|
+
const { reducedMotion, toggleReducedMotion } = chunkAMXSOQRH_js.useReducedMotion();
|
|
35045
|
+
const state = chunkAMXSOQRH_js.useViewerState({
|
|
35044
35046
|
content,
|
|
35045
35047
|
canEdit,
|
|
35046
35048
|
inspectorInitiallyOpen: props.inspectorInitiallyOpen
|
|
@@ -35164,16 +35166,16 @@ var PowerPointViewer = React106.forwardRef(
|
|
|
35164
35166
|
}
|
|
35165
35167
|
}, [settings, optionsStore]);
|
|
35166
35168
|
const handleClearOptionsCache2 = useAutosaveCacheMaintenance(viewerOptions);
|
|
35167
|
-
const mobile =
|
|
35169
|
+
const mobile = chunkAMXSOQRH_js.useIsMobile();
|
|
35168
35170
|
const { isMobile, isTouchDevice, isVirtualKeyboardOpen } = mobile;
|
|
35169
|
-
const resizablePanels =
|
|
35171
|
+
const resizablePanels = chunkAMXSOQRH_js.useResizablePanels();
|
|
35170
35172
|
const {
|
|
35171
35173
|
gridSpacingPx,
|
|
35172
35174
|
visibleSlideIndexes,
|
|
35173
35175
|
slideSectionGroups,
|
|
35174
35176
|
masterPseudoSlide,
|
|
35175
35177
|
authoredRange
|
|
35176
|
-
} =
|
|
35178
|
+
} = chunkAMXSOQRH_js.useDerivedSlideState({
|
|
35177
35179
|
slides,
|
|
35178
35180
|
sections: state.sections,
|
|
35179
35181
|
customShows: state.customShows,
|
|
@@ -35198,7 +35200,7 @@ var PowerPointViewer = React106.forwardRef(
|
|
|
35198
35200
|
state.cropSessionRef
|
|
35199
35201
|
]
|
|
35200
35202
|
);
|
|
35201
|
-
const zoom =
|
|
35203
|
+
const zoom = chunkAMXSOQRH_js.useZoomViewport({
|
|
35202
35204
|
canvasSize,
|
|
35203
35205
|
selectedElements: state.selectedElements,
|
|
35204
35206
|
fitPadding: props.fitPadding,
|
|
@@ -35208,7 +35210,7 @@ var PowerPointViewer = React106.forwardRef(
|
|
|
35208
35210
|
const markDocumentDirty = React106.useCallback(() => {
|
|
35209
35211
|
setIsDirty(true);
|
|
35210
35212
|
}, [setIsDirty]);
|
|
35211
|
-
const history =
|
|
35213
|
+
const history = chunkAMXSOQRH_js.useEditorHistory({
|
|
35212
35214
|
slides,
|
|
35213
35215
|
canvasSize,
|
|
35214
35216
|
activeSlideIndex,
|
|
@@ -35234,7 +35236,7 @@ var PowerPointViewer = React106.forwardRef(
|
|
|
35234
35236
|
setEditTemplateMode: state.setEditTemplateMode,
|
|
35235
35237
|
setHeaderFooter: state.setHeaderFooter
|
|
35236
35238
|
});
|
|
35237
|
-
const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } =
|
|
35239
|
+
const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = chunkAMXSOQRH_js.usePresentationSetup({
|
|
35238
35240
|
mode,
|
|
35239
35241
|
slides,
|
|
35240
35242
|
visibleSlideIndexes,
|
|
@@ -35309,7 +35311,7 @@ ${url}`)
|
|
|
35309
35311
|
loading,
|
|
35310
35312
|
error
|
|
35311
35313
|
]);
|
|
35312
|
-
|
|
35314
|
+
chunkAMXSOQRH_js.useTouchGestures({
|
|
35313
35315
|
targetRef: zoom.canvasViewportRef,
|
|
35314
35316
|
currentScale: zoom.scale,
|
|
35315
35317
|
callbacks: {
|
|
@@ -35331,7 +35333,7 @@ ${url}`)
|
|
|
35331
35333
|
},
|
|
35332
35334
|
enabled: isTouchDevice
|
|
35333
35335
|
});
|
|
35334
|
-
const dialogs =
|
|
35336
|
+
const dialogs = chunkAMXSOQRH_js.useViewerDialogs({
|
|
35335
35337
|
mode,
|
|
35336
35338
|
slides,
|
|
35337
35339
|
activeSlide,
|
|
@@ -35380,7 +35382,7 @@ ${url}`)
|
|
|
35380
35382
|
zoom.handleZoomToFit();
|
|
35381
35383
|
zoom.canvasViewportRef.current?.scrollTo({ left: 0, top: 0 });
|
|
35382
35384
|
}, [mode]);
|
|
35383
|
-
const editorOps =
|
|
35385
|
+
const editorOps = chunkAMXSOQRH_js.useEditorOperations({
|
|
35384
35386
|
state,
|
|
35385
35387
|
history,
|
|
35386
35388
|
zoom,
|
|
@@ -35423,7 +35425,7 @@ ${url}`)
|
|
|
35423
35425
|
handlerRef,
|
|
35424
35426
|
viewerApi,
|
|
35425
35427
|
loadVersion
|
|
35426
|
-
} =
|
|
35428
|
+
} = chunkAMXSOQRH_js.useViewerIntegration({
|
|
35427
35429
|
transformCommittedText: (text) => pptx.applyAutoCorrect(text, viewerOptions.proofing),
|
|
35428
35430
|
state,
|
|
35429
35431
|
zoom,
|
|
@@ -35550,7 +35552,7 @@ ${url}`)
|
|
|
35550
35552
|
updateElementById: editorOps.ops.updateElementById
|
|
35551
35553
|
});
|
|
35552
35554
|
const ribbonScope = useRibbonScopeToken();
|
|
35553
|
-
const viewPreferencesSync =
|
|
35555
|
+
const viewPreferencesSync = chunkAMXSOQRH_js.useViewPreferencesSync({
|
|
35554
35556
|
loadVersion,
|
|
35555
35557
|
viewProperties: state.viewProperties,
|
|
35556
35558
|
setViewProperties: state.setViewProperties,
|
|
@@ -35588,7 +35590,7 @@ ${url}`)
|
|
|
35588
35590
|
},
|
|
35589
35591
|
[state]
|
|
35590
35592
|
);
|
|
35591
|
-
const layoutSwitching =
|
|
35593
|
+
const layoutSwitching = chunkAMXSOQRH_js.useLayoutSwitching({
|
|
35592
35594
|
handler: handlerRef.current,
|
|
35593
35595
|
slides,
|
|
35594
35596
|
activeSlideIndex,
|
|
@@ -36094,8 +36096,8 @@ ${url}`)
|
|
|
36094
36096
|
// Nothing previously provided it, so every one of those consumers was
|
|
36095
36097
|
// silently reading `DEFAULT_VIEWER_OPTIONS` forever, no matter what
|
|
36096
36098
|
// the user changed in the Options dialog.
|
|
36097
|
-
/* @__PURE__ */ jsxRuntime.jsx(ViewerOptionsProvider, { options: viewerOptions, store: optionsStore, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerCustomizationContext.Provider, { value: customizationResolved, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerRegionBaseContext.Provider, { value: regionBase, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonAddInsContext.Provider, { value: ribbonAddIns ?? NO_RIBBON_ADD_INS, children: /* @__PURE__ */ jsxRuntime.jsx(AccountAuthContext.Provider, { value: accountAuth, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
36098
|
-
|
|
36099
|
+
/* @__PURE__ */ jsxRuntime.jsx(ViewerOptionsProvider, { options: viewerOptions, store: optionsStore, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerCustomizationContext.Provider, { value: customizationResolved, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerRegionBaseContext.Provider, { value: regionBase, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonAddInsContext.Provider, { value: ribbonAddIns ?? NO_RIBBON_ADD_INS, children: /* @__PURE__ */ jsxRuntime.jsx(AccountAuthContext.Provider, { value: accountAuth, children: /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.Rendering3DFlagsContext.Provider, { value: effective3D, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
36100
|
+
chunkAMXSOQRH_js.CollaborationProvider,
|
|
36099
36101
|
{
|
|
36100
36102
|
config: collaboration,
|
|
36101
36103
|
canvasWidth: canvasSize.width,
|
|
@@ -36145,7 +36147,7 @@ ${url}`)
|
|
|
36145
36147
|
slideCount: slides.length
|
|
36146
36148
|
}
|
|
36147
36149
|
),
|
|
36148
|
-
/* @__PURE__ */ jsxRuntime.jsx(ShapeFormatContext.Provider, { value: shapeFormat, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonGalleryCommandsContext.Provider, { value: ribbonGalleries, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
36150
|
+
/* @__PURE__ */ jsxRuntime.jsx(ShapeFormatContext.Provider, { value: shapeFormat, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonGalleryCommandsContext.Provider, { value: ribbonGalleries, children: /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.ChartFormatContext.Provider, { value: chartFormat, children: viewerContent }) }) })
|
|
36149
36151
|
]
|
|
36150
36152
|
}
|
|
36151
36153
|
) }) }) }) }) }) }) })
|
|
@@ -36154,7 +36156,7 @@ ${url}`)
|
|
|
36154
36156
|
);
|
|
36155
36157
|
PowerPointViewer.displayName = "PowerPointViewer";
|
|
36156
36158
|
function CollaborationStatusStrip() {
|
|
36157
|
-
const collab =
|
|
36159
|
+
const collab = chunkAMXSOQRH_js.useCollaboration();
|
|
36158
36160
|
if (!collab) {
|
|
36159
36161
|
return null;
|
|
36160
36162
|
}
|
|
@@ -36170,7 +36172,7 @@ function CollaborationStatusStrip() {
|
|
|
36170
36172
|
function CollaborationStateReporter({
|
|
36171
36173
|
onChange
|
|
36172
36174
|
}) {
|
|
36173
|
-
useCollaborationStateReport(
|
|
36175
|
+
useCollaborationStateReport(chunkAMXSOQRH_js.useCollaboration(), onChange);
|
|
36174
36176
|
return null;
|
|
36175
36177
|
}
|
|
36176
36178
|
function CollaborationDocumentSync({
|
|
@@ -36184,8 +36186,8 @@ function CollaborationDocumentSync({
|
|
|
36184
36186
|
deckSaveState,
|
|
36185
36187
|
onReadOnlyChange
|
|
36186
36188
|
}) {
|
|
36187
|
-
const collab =
|
|
36188
|
-
|
|
36189
|
+
const collab = chunkAMXSOQRH_js.useCollaboration();
|
|
36190
|
+
chunkAMXSOQRH_js.useCollaborationDocumentSync({
|
|
36189
36191
|
collaboration: collab,
|
|
36190
36192
|
slides,
|
|
36191
36193
|
templateElementsBySlideId,
|
|
@@ -36204,14 +36206,14 @@ function CollaborationFollowLayer({
|
|
|
36204
36206
|
setActiveSlideIndex,
|
|
36205
36207
|
slideCount
|
|
36206
36208
|
}) {
|
|
36207
|
-
const collab =
|
|
36208
|
-
const { followedClientId, followUser } =
|
|
36209
|
+
const collab = chunkAMXSOQRH_js.useCollaboration();
|
|
36210
|
+
const { followedClientId, followUser } = chunkAMXSOQRH_js.useFollowMode({
|
|
36209
36211
|
collab,
|
|
36210
36212
|
activeSlideIndex,
|
|
36211
36213
|
setActiveSlideIndex,
|
|
36212
36214
|
slideCount
|
|
36213
36215
|
});
|
|
36214
|
-
|
|
36216
|
+
chunkAMXSOQRH_js.useBroadcastFollower({
|
|
36215
36217
|
collab,
|
|
36216
36218
|
activeSlideIndex,
|
|
36217
36219
|
setActiveSlideIndex,
|