pptx-react-viewer 4.48.0 → 4.49.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 +20 -0
- package/dist/{chunk-5FAX7F3O.js → chunk-2ZXXHNNR.js} +218 -276
- package/dist/chunk-2ZXXHNNR.js.br +0 -0
- package/dist/chunk-2ZXXHNNR.js.gz +0 -0
- package/dist/{chunk-JKZNL6HP.js → chunk-ME5QRTVS.js} +33 -57
- package/dist/chunk-ME5QRTVS.js.br +0 -0
- package/dist/chunk-ME5QRTVS.js.gz +0 -0
- package/dist/{chunk-H7JRMKYC.mjs → chunk-YKLL2Z33.mjs} +100 -158
- package/dist/chunk-YKLL2Z33.mjs.br +0 -0
- package/dist/chunk-YKLL2Z33.mjs.gz +0 -0
- package/dist/{chunk-JHQHAO43.mjs → chunk-Z62JFXMZ.mjs} +34 -58
- package/dist/chunk-Z62JFXMZ.mjs.br +0 -0
- package/dist/chunk-Z62JFXMZ.mjs.gz +0 -0
- 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.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/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- 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-5FAX7F3O.js.br +0 -0
- package/dist/chunk-5FAX7F3O.js.gz +0 -0
- package/dist/chunk-H7JRMKYC.mjs.br +0 -0
- package/dist/chunk-H7JRMKYC.mjs.gz +0 -0
- package/dist/chunk-JHQHAO43.mjs.br +0 -0
- package/dist/chunk-JHQHAO43.mjs.gz +0 -0
- package/dist/chunk-JKZNL6HP.js.br +0 -0
- package/dist/chunk-JKZNL6HP.js.gz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkME5QRTVS_js = require('./chunk-ME5QRTVS.js');
|
|
4
4
|
var chunkJAI42EXQ_js = require('./chunk-JAI42EXQ.js');
|
|
5
5
|
var pptx = require('ooxml-ui/pptx');
|
|
6
6
|
var React107 = require('react');
|
|
@@ -309,7 +309,7 @@ function SlideTemplatePreview({
|
|
|
309
309
|
transformOrigin: "top left"
|
|
310
310
|
},
|
|
311
311
|
children: previewSlide.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
312
|
-
|
|
312
|
+
chunkME5QRTVS_js.StaticElementRenderer,
|
|
313
313
|
{
|
|
314
314
|
element,
|
|
315
315
|
activeSlide: previewSlide,
|
|
@@ -378,7 +378,7 @@ function SlideTemplateGalleryDialog({
|
|
|
378
378
|
scheme
|
|
379
379
|
}) {
|
|
380
380
|
const { t } = reactI18next.useTranslation();
|
|
381
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
381
|
+
const { panelStyle, handlers: dragHandlers } = chunkME5QRTVS_js.useModalDismissDrag(onClose);
|
|
382
382
|
const [selected, setSelected] = React107.useState(null);
|
|
383
383
|
const dialogRef = React107.useRef(null);
|
|
384
384
|
useModalFocus(isOpen, dialogRef, onClose);
|
|
@@ -872,7 +872,7 @@ function MobileSheet({
|
|
|
872
872
|
}) {
|
|
873
873
|
const sheetRef = React107.useRef(null);
|
|
874
874
|
const { t } = reactI18next.useTranslation();
|
|
875
|
-
const { dragY, dragging, handlers } =
|
|
875
|
+
const { dragY, dragging, handlers } = chunkME5QRTVS_js.useSheetDismissDrag(onClose);
|
|
876
876
|
useModalFocus(open, sheetRef, onClose);
|
|
877
877
|
if (!open) {
|
|
878
878
|
return null;
|
|
@@ -1140,7 +1140,7 @@ function WebHomeControls({
|
|
|
1140
1140
|
function ShapeArrangeExtras(p) {
|
|
1141
1141
|
const commands = useShapeFormatContext();
|
|
1142
1142
|
const crop = commands?.crop;
|
|
1143
|
-
const { isHidden } =
|
|
1143
|
+
const { isHidden } = chunkME5QRTVS_js.useToolbarVisibility(p.hiddenActions);
|
|
1144
1144
|
const { onGroupElements, onUngroupElement, onUpdateElementStyle } = p;
|
|
1145
1145
|
const controls = React107.useMemo(
|
|
1146
1146
|
() => pptx.arrangeShapeHomeControls({
|
|
@@ -1475,7 +1475,7 @@ function TransitionsSection(p) {
|
|
|
1475
1475
|
case "soundPreview": {
|
|
1476
1476
|
const url = pptx.ribbonTransitionStockSoundUrl(transition);
|
|
1477
1477
|
if (url) {
|
|
1478
|
-
|
|
1478
|
+
chunkME5QRTVS_js.playAnimationSound(url);
|
|
1479
1479
|
}
|
|
1480
1480
|
break;
|
|
1481
1481
|
}
|
|
@@ -1678,7 +1678,7 @@ function AccountPage() {
|
|
|
1678
1678
|
return void 0;
|
|
1679
1679
|
});
|
|
1680
1680
|
};
|
|
1681
|
-
const version = "4.
|
|
1681
|
+
const version = "4.49.0" ;
|
|
1682
1682
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
|
|
1683
1683
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: cardClass, children: [
|
|
1684
1684
|
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
@@ -1942,7 +1942,7 @@ function FileSection(p) {
|
|
|
1942
1942
|
const page = offered(requestedPage) ? requestedPage : offered("home") ? "home" : nav.find((item) => item.id !== "save" && item.id !== "close")?.id ?? "home";
|
|
1943
1943
|
const [query, setQuery] = React107.useState("");
|
|
1944
1944
|
const [recent, setRecent] = React107.useState([]);
|
|
1945
|
-
const { isHidden } =
|
|
1945
|
+
const { isHidden } = chunkME5QRTVS_js.useToolbarVisibility(p.hiddenActions);
|
|
1946
1946
|
const exportHidden = isHidden("export");
|
|
1947
1947
|
const storage = useViewerStorage();
|
|
1948
1948
|
React107.useEffect(() => {
|
|
@@ -2291,7 +2291,7 @@ function LayoutArtwork({
|
|
|
2291
2291
|
backgroundColor
|
|
2292
2292
|
};
|
|
2293
2293
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: (preview?.elements ?? []).slice(0, MAX_PREVIEW_ELEMENTS).map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2294
|
-
|
|
2294
|
+
chunkME5QRTVS_js.StaticElementRenderer,
|
|
2295
2295
|
{
|
|
2296
2296
|
element,
|
|
2297
2297
|
activeSlide: slide,
|
|
@@ -2741,7 +2741,7 @@ function SlideShowOptions({
|
|
|
2741
2741
|
}
|
|
2742
2742
|
function SubtitleSettingsControl() {
|
|
2743
2743
|
const { t } = reactI18next.useTranslation();
|
|
2744
|
-
const supplied = React107.useContext(
|
|
2744
|
+
const supplied = React107.useContext(chunkME5QRTVS_js.ViewerOptionsStoreContext);
|
|
2745
2745
|
const fallback = React107.useRef(null);
|
|
2746
2746
|
if (!supplied) {
|
|
2747
2747
|
fallback.current ??= pptx.createViewerOptionsStore({ persist: false });
|
|
@@ -2775,7 +2775,7 @@ function SubtitleSettingsControl() {
|
|
|
2775
2775
|
}
|
|
2776
2776
|
function SlideShowSection(p) {
|
|
2777
2777
|
const { t } = reactI18next.useTranslation();
|
|
2778
|
-
const { isHidden } =
|
|
2778
|
+
const { isHidden } = chunkME5QRTVS_js.useToolbarVisibility(p.hiddenActions);
|
|
2779
2779
|
const [showsOpen, setShowsOpen] = React107.useState(false);
|
|
2780
2780
|
const showsRef = React107.useRef(null);
|
|
2781
2781
|
React107.useEffect(() => {
|
|
@@ -3314,7 +3314,7 @@ function MobileMenuSheet(props) {
|
|
|
3314
3314
|
const { t } = reactI18next.useTranslation();
|
|
3315
3315
|
const { open, onClose } = props;
|
|
3316
3316
|
const [active, setActive] = React107.useState("home");
|
|
3317
|
-
const { isTabVisible } =
|
|
3317
|
+
const { isTabVisible } = chunkME5QRTVS_js.useToolbarVisibility(props.hiddenActions);
|
|
3318
3318
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3319
3319
|
MobileSheet,
|
|
3320
3320
|
{
|
|
@@ -3604,7 +3604,7 @@ function MobileToolbar(props) {
|
|
|
3604
3604
|
const { t } = reactI18next.useTranslation();
|
|
3605
3605
|
const { mode, canUndo, canRedo, onUndo, onRedo, onSetMode, onSaveAsPptx } = props;
|
|
3606
3606
|
const [menuOpen, setMenuOpen] = React107.useState(false);
|
|
3607
|
-
const { isHidden } =
|
|
3607
|
+
const { isHidden } = chunkME5QRTVS_js.useToolbarVisibility(props.hiddenActions);
|
|
3608
3608
|
const showEdit = mode === "edit" || mode === "master";
|
|
3609
3609
|
const hidden = [];
|
|
3610
3610
|
if (isHidden("undo")) {
|
|
@@ -3651,7 +3651,7 @@ function MobileToolbar(props) {
|
|
|
3651
3651
|
}
|
|
3652
3652
|
function ChartSelectionStrip() {
|
|
3653
3653
|
const { t } = reactI18next.useTranslation();
|
|
3654
|
-
const commands =
|
|
3654
|
+
const commands = chunkME5QRTVS_js.useChartFormatContext();
|
|
3655
3655
|
const chart = commands?.chart;
|
|
3656
3656
|
const chartData = chart?.type === "chart" ? chart.chartData : void 0;
|
|
3657
3657
|
const controls = React107.useMemo(
|
|
@@ -3682,7 +3682,7 @@ function PictureSizeStrip({
|
|
|
3682
3682
|
hiddenActions
|
|
3683
3683
|
}) {
|
|
3684
3684
|
const crop = useShapeFormatContext()?.crop;
|
|
3685
|
-
const { isHidden } =
|
|
3685
|
+
const { isHidden } = chunkME5QRTVS_js.useToolbarVisibility(hiddenActions);
|
|
3686
3686
|
const controls = React107.useMemo(
|
|
3687
3687
|
() => pptx.pictureSizeHomeControls({
|
|
3688
3688
|
editable: Boolean(crop),
|
|
@@ -3855,7 +3855,7 @@ var TAB_BASE = "relative px-3.5 py-2 text-[12px] font-medium whitespace-nowrap t
|
|
|
3855
3855
|
var TAB_UNDERLINE = "after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary";
|
|
3856
3856
|
function RibbonTabBar(p) {
|
|
3857
3857
|
const { t } = reactI18next.useTranslation();
|
|
3858
|
-
const viewerOptions =
|
|
3858
|
+
const viewerOptions = chunkME5QRTVS_js.useViewerOptionsContext();
|
|
3859
3859
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3860
3860
|
"div",
|
|
3861
3861
|
{
|
|
@@ -3932,9 +3932,9 @@ function RibbonTabBar(p) {
|
|
|
3932
3932
|
}
|
|
3933
3933
|
function TabRowActions(p) {
|
|
3934
3934
|
const { t } = reactI18next.useTranslation();
|
|
3935
|
-
const collab =
|
|
3935
|
+
const collab = chunkME5QRTVS_js.useCollaboration();
|
|
3936
3936
|
const isCollaborating = Boolean(collab && collab.status === "connected");
|
|
3937
|
-
const { isHidden } =
|
|
3937
|
+
const { isHidden } = chunkME5QRTVS_js.useToolbarVisibility(p.hiddenActions);
|
|
3938
3938
|
const customization = useViewerCustomizationContext();
|
|
3939
3939
|
const ref = React107.useRef(null);
|
|
3940
3940
|
const handlers = React107.useRef(p);
|
|
@@ -3989,7 +3989,7 @@ function TabRowActions(p) {
|
|
|
3989
3989
|
}
|
|
3990
3990
|
function TitleBarElement(p) {
|
|
3991
3991
|
const { t } = reactI18next.useTranslation();
|
|
3992
|
-
const options =
|
|
3992
|
+
const options = chunkME5QRTVS_js.useViewerOptionsContext();
|
|
3993
3993
|
const customization = useViewerCustomizationContext();
|
|
3994
3994
|
const ref = React107.useRef(null);
|
|
3995
3995
|
const stripVisible = options.quickAccess.visible && pptx.isPanelVisible(customization, "quickAccessToolbar");
|
|
@@ -4325,7 +4325,7 @@ function ToolbarPrimaryRow(p) {
|
|
|
4325
4325
|
onToggleSidebar,
|
|
4326
4326
|
onToggleInspector
|
|
4327
4327
|
} = p;
|
|
4328
|
-
const collab =
|
|
4328
|
+
const collab = chunkME5QRTVS_js.useCollaboration();
|
|
4329
4329
|
const customization = useViewerCustomizationContext();
|
|
4330
4330
|
const showSlidesToggle = pptx.isPanelVisible(customization, "slidesPane");
|
|
4331
4331
|
const showInspectorToggle = pptx.isPanelVisible(customization, "inspector");
|
|
@@ -4615,8 +4615,8 @@ function ToolbarLateTabs({
|
|
|
4615
4615
|
function Toolbar(p) {
|
|
4616
4616
|
const { mode, isNarrowViewport, isCompactToolbarOpen, toolbarSection, onSetToolbarSection } = p;
|
|
4617
4617
|
const { t } = reactI18next.useTranslation();
|
|
4618
|
-
const { isTabVisible } =
|
|
4619
|
-
const viewerOptions =
|
|
4618
|
+
const { isTabVisible } = chunkME5QRTVS_js.useToolbarVisibility(p.hiddenActions);
|
|
4619
|
+
const viewerOptions = chunkME5QRTVS_js.useViewerOptionsContext();
|
|
4620
4620
|
const customization = useViewerCustomizationContext();
|
|
4621
4621
|
const belowInput = React107.useMemo(
|
|
4622
4622
|
() => ({
|
|
@@ -5602,7 +5602,7 @@ function DrawingOverlaySvg({
|
|
|
5602
5602
|
onPointerDown,
|
|
5603
5603
|
onPointerMove,
|
|
5604
5604
|
onPointerUp,
|
|
5605
|
-
children: isStrokeActive && liveStrokeView ?
|
|
5605
|
+
children: isStrokeActive && liveStrokeView ? chunkME5QRTVS_js.renderStrokeView(liveStrokeView, true, void 0, "ink-live-preview") : isStrokeActive && liveStrokeD && /* @__PURE__ */ jsxRuntime.jsx(
|
|
5606
5606
|
"path",
|
|
5607
5607
|
{
|
|
5608
5608
|
d: liveStrokeD,
|
|
@@ -6181,7 +6181,7 @@ function PictureCropOverlay({
|
|
|
6181
6181
|
};
|
|
6182
6182
|
};
|
|
6183
6183
|
const { ghost, frame, handles } = overlay;
|
|
6184
|
-
const src =
|
|
6184
|
+
const src = chunkME5QRTVS_js.imgSrc(element);
|
|
6185
6185
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6186
6186
|
"div",
|
|
6187
6187
|
{
|
|
@@ -6357,7 +6357,7 @@ function HorizontalRulerView({ ticks, widthPx, highlight }) {
|
|
|
6357
6357
|
}
|
|
6358
6358
|
);
|
|
6359
6359
|
}
|
|
6360
|
-
var HorizontalRuler = /* @__PURE__ */
|
|
6360
|
+
var HorizontalRuler = /* @__PURE__ */ chunkME5QRTVS_js.withDisplayName(
|
|
6361
6361
|
/* @__PURE__ */ React107__default.default.memo(HorizontalRulerView),
|
|
6362
6362
|
"HorizontalRuler"
|
|
6363
6363
|
);
|
|
@@ -6431,7 +6431,7 @@ function VerticalRulerView({ ticks, heightPx, highlight }) {
|
|
|
6431
6431
|
}
|
|
6432
6432
|
);
|
|
6433
6433
|
}
|
|
6434
|
-
var VerticalRuler = /* @__PURE__ */
|
|
6434
|
+
var VerticalRuler = /* @__PURE__ */ chunkME5QRTVS_js.withDisplayName(
|
|
6435
6435
|
/* @__PURE__ */ React107__default.default.memo(VerticalRulerView),
|
|
6436
6436
|
"VerticalRuler"
|
|
6437
6437
|
);
|
|
@@ -6625,7 +6625,7 @@ function SelectionHandleOverlay({
|
|
|
6625
6625
|
onDoubleClick: (e) => onDoubleClick(element.id, e),
|
|
6626
6626
|
onContextMenu: (e) => onContextMenu(element.id, e),
|
|
6627
6627
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6628
|
-
|
|
6628
|
+
chunkME5QRTVS_js.ResizeHandles,
|
|
6629
6629
|
{
|
|
6630
6630
|
elementId: element.id,
|
|
6631
6631
|
adjustmentHandles,
|
|
@@ -7336,7 +7336,7 @@ function SlideCanvas(props) {
|
|
|
7336
7336
|
props.registerInlineEditReader
|
|
7337
7337
|
]
|
|
7338
7338
|
);
|
|
7339
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7339
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkME5QRTVS_js.InlineCollaborationContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx(SlideCanvasContent, { ...props }) });
|
|
7340
7340
|
}
|
|
7341
7341
|
function SlideCanvasContent({
|
|
7342
7342
|
imagePaste,
|
|
@@ -7605,7 +7605,7 @@ function SlideCanvasContent({
|
|
|
7605
7605
|
onPointerMove: handleStagePointerMove,
|
|
7606
7606
|
onPointerUp: handleStagePointerUp,
|
|
7607
7607
|
children: [
|
|
7608
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7608
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkME5QRTVS_js.SlideBackgroundImageLayer, { slide: activeSlide }),
|
|
7609
7609
|
presentationKeyframesCss && /* @__PURE__ */ jsxRuntime.jsx("style", { children: presentationKeyframesCss }),
|
|
7610
7610
|
/* @__PURE__ */ jsxRuntime.jsx(GridOverlay, { canvasSize, gridSpacingPx, visible: showGrid }),
|
|
7611
7611
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -7617,7 +7617,7 @@ function SlideCanvasContent({
|
|
|
7617
7617
|
}
|
|
7618
7618
|
),
|
|
7619
7619
|
templateElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7620
|
-
|
|
7620
|
+
chunkME5QRTVS_js.ElementRenderer,
|
|
7621
7621
|
{
|
|
7622
7622
|
element,
|
|
7623
7623
|
activeSlide,
|
|
@@ -7661,7 +7661,7 @@ function SlideCanvasContent({
|
|
|
7661
7661
|
`tpl-${element.id}`
|
|
7662
7662
|
)),
|
|
7663
7663
|
activeSlide?.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7664
|
-
|
|
7664
|
+
chunkME5QRTVS_js.ElementRenderer,
|
|
7665
7665
|
{
|
|
7666
7666
|
element,
|
|
7667
7667
|
activeSlide,
|
|
@@ -7727,7 +7727,7 @@ function SlideCanvasContent({
|
|
|
7727
7727
|
editingMember && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7728
7728
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `[data-element-id="${cssAttr(editingMember.parentId)}"] [data-element-id="${cssAttr(editingMember.member.id)}"]{visibility:hidden}` }),
|
|
7729
7729
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7730
|
-
|
|
7730
|
+
chunkME5QRTVS_js.ElementRenderer,
|
|
7731
7731
|
{
|
|
7732
7732
|
element: editingMember.member,
|
|
7733
7733
|
activeSlide,
|
|
@@ -8049,41 +8049,11 @@ function ExportProgressModal({
|
|
|
8049
8049
|
onCancel
|
|
8050
8050
|
}) {
|
|
8051
8051
|
const { t } = reactI18next.useTranslation();
|
|
8052
|
-
|
|
8053
|
-
|
|
8054
|
-
|
|
8055
|
-
const clampedProgress = pptx.clampPercent(progress);
|
|
8056
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8057
|
-
"div",
|
|
8058
|
-
{
|
|
8059
|
-
style: { zIndex: 1200 },
|
|
8060
|
-
className: "fixed inset-0 flex items-center justify-center bg-black/60 backdrop-blur-sm",
|
|
8061
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-96 max-w-[calc(100%-2rem)] rounded-xl border border-border bg-background p-6 shadow-2xl", children: [
|
|
8062
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-sm font-semibold text-foreground", children: title }),
|
|
8063
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 h-2.5 w-full overflow-hidden rounded-full bg-accent", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8064
|
-
"div",
|
|
8065
|
-
{
|
|
8066
|
-
className: "h-full rounded-full bg-primary transition-all duration-300 ease-out",
|
|
8067
|
-
style: { width: `${clampedProgress}%` }
|
|
8068
|
-
}
|
|
8069
|
-
) }),
|
|
8070
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center justify-between text-xs text-muted-foreground", children: [
|
|
8071
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: statusMessage ?? t("pptx.export.processing") }),
|
|
8072
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "tabular-nums", children: [
|
|
8073
|
-
clampedProgress,
|
|
8074
|
-
"%"
|
|
8075
|
-
] })
|
|
8076
|
-
] }),
|
|
8077
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8078
|
-
DialogFooter,
|
|
8079
|
-
{
|
|
8080
|
-
actions: [{ id: "cancel", label: t("pptx.export.cancel") }],
|
|
8081
|
-
onAction: onCancel
|
|
8082
|
-
}
|
|
8083
|
-
) })
|
|
8084
|
-
] })
|
|
8085
|
-
}
|
|
8052
|
+
const ref = useWebControl(
|
|
8053
|
+
{ open: isOpen, title, progress, status: statusMessage, translate: t },
|
|
8054
|
+
{ "export-cancel": () => onCancel() }
|
|
8086
8055
|
);
|
|
8056
|
+
return /* @__PURE__ */ jsxRuntime.jsx("pptx-ui-export-progress", { ref });
|
|
8087
8057
|
}
|
|
8088
8058
|
function StatusBar(p) {
|
|
8089
8059
|
const { t } = reactI18next.useTranslation();
|
|
@@ -8229,7 +8199,7 @@ function SlideThumbnailImpl({
|
|
|
8229
8199
|
...pptx.deviceStrokeStageStyle(scale)
|
|
8230
8200
|
},
|
|
8231
8201
|
children: [
|
|
8232
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8202
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkME5QRTVS_js.SlideBackgroundImageLayer, { slide }),
|
|
8233
8203
|
slide.transition && slide.transition.type !== "none" && slide.transition.type !== "cut" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
8234
8204
|
"div",
|
|
8235
8205
|
{
|
|
@@ -8239,7 +8209,7 @@ function SlideThumbnailImpl({
|
|
|
8239
8209
|
}
|
|
8240
8210
|
),
|
|
8241
8211
|
previewElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8242
|
-
|
|
8212
|
+
chunkME5QRTVS_js.StaticElementRenderer,
|
|
8243
8213
|
{
|
|
8244
8214
|
element,
|
|
8245
8215
|
activeSlide: slide,
|
|
@@ -8417,7 +8387,7 @@ function ContextMenu(props) {
|
|
|
8417
8387
|
const { t } = reactI18next.useTranslation();
|
|
8418
8388
|
const customization = useViewerCustomizationContext();
|
|
8419
8389
|
const shapeFormat = useShapeFormatContext();
|
|
8420
|
-
const chartFormat =
|
|
8390
|
+
const chartFormat = chunkME5QRTVS_js.useChartFormatContext();
|
|
8421
8391
|
const open = Boolean(contextMenuState) && mode === "edit";
|
|
8422
8392
|
const handlers = {
|
|
8423
8393
|
...contextMenuHandlers(props, shapeFormat),
|
|
@@ -9332,7 +9302,7 @@ function SlidesPaneSidebar({
|
|
|
9332
9302
|
tableStyleContext
|
|
9333
9303
|
}) {
|
|
9334
9304
|
const { t } = reactI18next.useTranslation();
|
|
9335
|
-
const collab =
|
|
9305
|
+
const collab = chunkME5QRTVS_js.useCollaboration();
|
|
9336
9306
|
const slideRefs = React107.useRef(/* @__PURE__ */ new Map());
|
|
9337
9307
|
const renameInputRef = React107.useRef(null);
|
|
9338
9308
|
const slidePresenceMap = React107.useMemo(() => {
|
|
@@ -9427,7 +9397,7 @@ function SlidesPaneSidebar({
|
|
|
9427
9397
|
[sectionGroups, showSectionHeaders, effectiveCollapsed]
|
|
9428
9398
|
);
|
|
9429
9399
|
const shouldVirtualize = slides.length >= VIRTUALIZATION_THRESHOLD;
|
|
9430
|
-
const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } =
|
|
9400
|
+
const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } = chunkME5QRTVS_js.useVirtualizedSlides({
|
|
9431
9401
|
totalItems: shouldVirtualize ? flatItems.length : 0,
|
|
9432
9402
|
itemHeight: estimatedItemHeight
|
|
9433
9403
|
});
|
|
@@ -11311,7 +11281,7 @@ function ReadingViewStage({
|
|
|
11311
11281
|
className: "absolute left-0 top-0 origin-top-left",
|
|
11312
11282
|
style: { width, height, transform: `scale(${scale})`, ...pptx.deviceStrokeStageStyle(scale) },
|
|
11313
11283
|
children: elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
11314
|
-
|
|
11284
|
+
chunkME5QRTVS_js.StaticElementRenderer,
|
|
11315
11285
|
{
|
|
11316
11286
|
element,
|
|
11317
11287
|
activeSlide: slide,
|
|
@@ -11966,7 +11936,7 @@ function SlideNotesPanel({
|
|
|
11966
11936
|
});
|
|
11967
11937
|
const hasNotes = draft.trim().length > 0;
|
|
11968
11938
|
const slideLabel = activeSlide ? t("pptx.notes.slideN", { n: activeSlide.slideNumber }) : t("pptx.notes.noSlide");
|
|
11969
|
-
const { dragY, handlers: dragHandlers } =
|
|
11939
|
+
const { dragY, handlers: dragHandlers } = chunkME5QRTVS_js.useSheetDismissDrag(onToggle);
|
|
11970
11940
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
11971
11941
|
isExpanded && /* @__PURE__ */ jsxRuntime.jsx(
|
|
11972
11942
|
"button",
|
|
@@ -13103,7 +13073,7 @@ function DocumentPropertiesDialog({
|
|
|
13103
13073
|
const handleClose = React107.useCallback(() => {
|
|
13104
13074
|
onClose();
|
|
13105
13075
|
}, [onClose]);
|
|
13106
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
13076
|
+
const { panelStyle, handlers: dragHandlers } = chunkME5QRTVS_js.useModalDismissDrag(handleClose);
|
|
13107
13077
|
if (!isOpen) {
|
|
13108
13078
|
return null;
|
|
13109
13079
|
}
|
|
@@ -13700,7 +13670,7 @@ function PresentationSubtitleBar({
|
|
|
13700
13670
|
}) {
|
|
13701
13671
|
const { t } = reactI18next.useTranslation();
|
|
13702
13672
|
const language = pptx.subtitleRecognitionLanguage(
|
|
13703
|
-
pptx.subtitleSettingsFromOptions(
|
|
13673
|
+
pptx.subtitleSettingsFromOptions(chunkME5QRTVS_js.useViewerOptionsContext()),
|
|
13704
13674
|
typeof navigator === "undefined" ? "en-US" : navigator.language
|
|
13705
13675
|
);
|
|
13706
13676
|
const [captionText, setCaptionText] = React107.useState("");
|
|
@@ -13894,7 +13864,7 @@ function ScaledSlidePreviewImpl({
|
|
|
13894
13864
|
...pptx.deviceStrokeStageStyle(scale)
|
|
13895
13865
|
},
|
|
13896
13866
|
children: previewElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
13897
|
-
|
|
13867
|
+
chunkME5QRTVS_js.StaticElementRenderer,
|
|
13898
13868
|
{
|
|
13899
13869
|
element,
|
|
13900
13870
|
activeSlide: slide,
|
|
@@ -14920,6 +14890,24 @@ var AFTER_ANIMATION_OPTIONS = [
|
|
|
14920
14890
|
{ value: "hideAfterAnimation", labelKey: "pptx.animation.afterAnimation.hideAfterAnimation" },
|
|
14921
14891
|
{ value: "hideOnNextClick", labelKey: "pptx.animation.afterAnimation.hideOnNextClick" }
|
|
14922
14892
|
];
|
|
14893
|
+
var pushers = /* @__PURE__ */ new WeakMap();
|
|
14894
|
+
function pushCommittedColor(event) {
|
|
14895
|
+
const input = event.currentTarget;
|
|
14896
|
+
pushers.get(input)?.current(input.value);
|
|
14897
|
+
}
|
|
14898
|
+
function useRecentColorCommit() {
|
|
14899
|
+
const { pushColor } = useRecentColors();
|
|
14900
|
+
const pushRef = React107.useRef(pushColor);
|
|
14901
|
+
React107.useEffect(() => {
|
|
14902
|
+
pushRef.current = pushColor;
|
|
14903
|
+
}, [pushColor]);
|
|
14904
|
+
return React107.useCallback((input) => {
|
|
14905
|
+
if (input) {
|
|
14906
|
+
pushers.set(input, pushRef);
|
|
14907
|
+
input.addEventListener("change", pushCommittedColor);
|
|
14908
|
+
}
|
|
14909
|
+
}, []);
|
|
14910
|
+
}
|
|
14923
14911
|
function AfterAnimationRow({
|
|
14924
14912
|
action,
|
|
14925
14913
|
color,
|
|
@@ -14929,7 +14917,7 @@ function AfterAnimationRow({
|
|
|
14929
14917
|
onColorChange
|
|
14930
14918
|
}) {
|
|
14931
14919
|
const { t } = reactI18next.useTranslation();
|
|
14932
|
-
const
|
|
14920
|
+
const commitRecentColor = useRecentColorCommit();
|
|
14933
14921
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
14934
14922
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex flex-col gap-1", children: [
|
|
14935
14923
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-[11px]", children: t("pptx.animation.afterAnimation") }),
|
|
@@ -14953,10 +14941,8 @@ function AfterAnimationRow({
|
|
|
14953
14941
|
type: "color",
|
|
14954
14942
|
"aria-label": t("pptx.animation.afterAnimation.color"),
|
|
14955
14943
|
value: color ?? "#808080",
|
|
14956
|
-
|
|
14957
|
-
|
|
14958
|
-
pushColor(event.target.value);
|
|
14959
|
-
},
|
|
14944
|
+
ref: commitRecentColor,
|
|
14945
|
+
onChange: (event) => onColorChange(event.target.value),
|
|
14960
14946
|
disabled: !canEdit,
|
|
14961
14947
|
className: "h-6 w-10 rounded border border-border bg-transparent p-0"
|
|
14962
14948
|
}
|
|
@@ -15212,7 +15198,7 @@ function EffectSoundRow({
|
|
|
15212
15198
|
}
|
|
15213
15199
|
const asset = pptx.getEffectSoundAsset(soundState.catalogueId);
|
|
15214
15200
|
if (asset) {
|
|
15215
|
-
|
|
15201
|
+
chunkME5QRTVS_js.playAnimationSound(asset.dataUrl);
|
|
15216
15202
|
}
|
|
15217
15203
|
};
|
|
15218
15204
|
return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex flex-col gap-1", children: [
|
|
@@ -15724,7 +15710,7 @@ function AnimationPanel({
|
|
|
15724
15710
|
onUpdateSlide
|
|
15725
15711
|
}) {
|
|
15726
15712
|
const { t } = reactI18next.useTranslation();
|
|
15727
|
-
const { viewportWidth } =
|
|
15713
|
+
const { viewportWidth } = chunkME5QRTVS_js.useIsMobile();
|
|
15728
15714
|
const directionBtnPx = Math.max(28, pptx.getDensePanelTouchTargetPx(viewportWidth));
|
|
15729
15715
|
const fieldStyle = { minHeight: pptx.getDensePanelTouchTargetPx(viewportWidth) };
|
|
15730
15716
|
const handlers = useAnimationHandlers({
|
|
@@ -16409,7 +16395,7 @@ function ChartAxisStyleOptions({
|
|
|
16409
16395
|
onSetGridlineStyle
|
|
16410
16396
|
}) {
|
|
16411
16397
|
const { t } = reactI18next.useTranslation();
|
|
16412
|
-
const
|
|
16398
|
+
const commitRecentColor = useRecentColorCommit();
|
|
16413
16399
|
const rows = SCALE_AXES.map((row) => ({
|
|
16414
16400
|
...row,
|
|
16415
16401
|
axis: axes?.find((a) => a.axisType === row.type)
|
|
@@ -16509,10 +16495,8 @@ function ChartAxisStyleOptions({
|
|
|
16509
16495
|
disabled: !canEdit,
|
|
16510
16496
|
className: "h-6 w-8 cursor-pointer rounded border border-border bg-transparent",
|
|
16511
16497
|
value: axis.fontColor ?? "#000000",
|
|
16512
|
-
|
|
16513
|
-
|
|
16514
|
-
pushColor(e.target.value);
|
|
16515
|
-
}
|
|
16498
|
+
ref: commitRecentColor,
|
|
16499
|
+
onChange: (e) => onSetTitleStyle(type, { fontColor: e.target.value })
|
|
16516
16500
|
}
|
|
16517
16501
|
)
|
|
16518
16502
|
] })
|
|
@@ -16535,10 +16519,8 @@ function ChartAxisStyleOptions({
|
|
|
16535
16519
|
title: t("pptx.chart.gridlineColor"),
|
|
16536
16520
|
className: "h-6 w-8 cursor-pointer rounded border border-border bg-transparent",
|
|
16537
16521
|
value: spPr?.strokeColor ?? "#d9d9d9",
|
|
16538
|
-
|
|
16539
|
-
|
|
16540
|
-
pushColor(e.target.value);
|
|
16541
|
-
}
|
|
16522
|
+
ref: commitRecentColor,
|
|
16523
|
+
onChange: (e) => onSetGridlineStyle(type, which, { color: e.target.value })
|
|
16542
16524
|
}
|
|
16543
16525
|
),
|
|
16544
16526
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -16623,7 +16605,7 @@ function ChartDataGrid({
|
|
|
16623
16605
|
}) {
|
|
16624
16606
|
const { t } = reactI18next.useTranslation();
|
|
16625
16607
|
const highlightRef = React107.useRef(null);
|
|
16626
|
-
const { viewportWidth } =
|
|
16608
|
+
const { viewportWidth } = chunkME5QRTVS_js.useIsMobile();
|
|
16627
16609
|
const gridPlan = pptx.getDenseGridLayoutPlan(viewportWidth);
|
|
16628
16610
|
const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
|
|
16629
16611
|
const rowHeaderClass = gridPlan.stickyFirstColumn ? "sticky left-0 z-10 bg-card" : "";
|
|
@@ -16805,7 +16787,7 @@ function ChartDataPointMarkerOptions({
|
|
|
16805
16787
|
onSetPointMarker
|
|
16806
16788
|
}) {
|
|
16807
16789
|
const { t } = reactI18next.useTranslation();
|
|
16808
|
-
const
|
|
16790
|
+
const commitRecentColor = useRecentColorCommit();
|
|
16809
16791
|
const [seriesIndex, setSeriesIndex] = React107.useState(0);
|
|
16810
16792
|
if (!MARKER_SUPPORTED_TYPES.has(chartType) || series.length === 0 || categories.length === 0) {
|
|
16811
16793
|
return null;
|
|
@@ -16892,10 +16874,8 @@ function ChartDataPointMarkerOptions({
|
|
|
16892
16874
|
title: t("pptx.chart.markerFill"),
|
|
16893
16875
|
className: "h-6 w-8 cursor-pointer rounded border border-border bg-transparent",
|
|
16894
16876
|
value: point2.marker.spPr?.fillColor ?? "#4472c4",
|
|
16895
|
-
|
|
16896
|
-
|
|
16897
|
-
pushColor(e.target.value);
|
|
16898
|
-
}
|
|
16877
|
+
ref: commitRecentColor,
|
|
16878
|
+
onChange: (e) => onSetPointMarker(seriesIndex, idx, { fillColor: e.target.value })
|
|
16899
16879
|
}
|
|
16900
16880
|
)
|
|
16901
16881
|
] })
|
|
@@ -16913,7 +16893,7 @@ function ChartDataPointOptions({
|
|
|
16913
16893
|
onSetPointLabel
|
|
16914
16894
|
}) {
|
|
16915
16895
|
const { t } = reactI18next.useTranslation();
|
|
16916
|
-
const
|
|
16896
|
+
const commitRecentColor = useRecentColorCommit();
|
|
16917
16897
|
const [seriesIndex, setSeriesIndex] = React107.useState(0);
|
|
16918
16898
|
if (series.length === 0 || categories.length === 0) {
|
|
16919
16899
|
return null;
|
|
@@ -16964,10 +16944,8 @@ function ChartDataPointOptions({
|
|
|
16964
16944
|
title: t("pptx.chart.pointFill"),
|
|
16965
16945
|
className: "h-6 w-8 cursor-pointer rounded border border-border bg-transparent",
|
|
16966
16946
|
value: point2?.spPr?.fillColor ?? activeSeries.color ?? "#4472c4",
|
|
16967
|
-
|
|
16968
|
-
|
|
16969
|
-
pushColor(e.target.value);
|
|
16970
|
-
}
|
|
16947
|
+
ref: commitRecentColor,
|
|
16948
|
+
onChange: (e) => onSetPointFill(seriesIndex, idx, e.target.value)
|
|
16971
16949
|
}
|
|
16972
16950
|
),
|
|
16973
16951
|
point2?.spPr?.fillColor && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -17254,7 +17232,7 @@ function ChartMarkerOptions({
|
|
|
17254
17232
|
onSetMarker
|
|
17255
17233
|
}) {
|
|
17256
17234
|
const { t } = reactI18next.useTranslation();
|
|
17257
|
-
const
|
|
17235
|
+
const commitRecentColor = useRecentColorCommit();
|
|
17258
17236
|
if (!MARKER_SUPPORTED_TYPES.has(chartType) || series.length === 0) {
|
|
17259
17237
|
return null;
|
|
17260
17238
|
}
|
|
@@ -17313,10 +17291,8 @@ function ChartMarkerOptions({
|
|
|
17313
17291
|
disabled: !canEdit,
|
|
17314
17292
|
className: "h-6 w-8 cursor-pointer rounded border border-border bg-transparent",
|
|
17315
17293
|
value: marker.spPr?.fillColor ?? "#4472c4",
|
|
17316
|
-
|
|
17317
|
-
|
|
17318
|
-
pushColor(e.target.value);
|
|
17319
|
-
}
|
|
17294
|
+
ref: commitRecentColor,
|
|
17295
|
+
onChange: (e) => onSetMarker(i, { fillColor: e.target.value })
|
|
17320
17296
|
}
|
|
17321
17297
|
)
|
|
17322
17298
|
] })
|
|
@@ -17335,19 +17311,15 @@ function DebouncedColorInput({
|
|
|
17335
17311
|
const [local, setLocal] = React107.useState(value);
|
|
17336
17312
|
const commitRef = React107.useRef(onCommit);
|
|
17337
17313
|
commitRef.current = onCommit;
|
|
17338
|
-
const
|
|
17314
|
+
const commitRecentColor = useRecentColorCommit();
|
|
17339
17315
|
React107.useEffect(() => {
|
|
17340
17316
|
setLocal(value);
|
|
17341
17317
|
}, [value]);
|
|
17342
|
-
const handleChange = React107.useCallback(
|
|
17343
|
-
|
|
17344
|
-
|
|
17345
|
-
|
|
17346
|
-
|
|
17347
|
-
pushColor(next);
|
|
17348
|
-
},
|
|
17349
|
-
[pushColor]
|
|
17350
|
-
);
|
|
17318
|
+
const handleChange = React107.useCallback((e) => {
|
|
17319
|
+
const next = e.target.value;
|
|
17320
|
+
setLocal(next);
|
|
17321
|
+
commitRef.current(next);
|
|
17322
|
+
}, []);
|
|
17351
17323
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
17352
17324
|
"input",
|
|
17353
17325
|
{
|
|
@@ -17356,6 +17328,7 @@ function DebouncedColorInput({
|
|
|
17356
17328
|
disabled,
|
|
17357
17329
|
value: local,
|
|
17358
17330
|
className,
|
|
17331
|
+
ref: commitRecentColor,
|
|
17359
17332
|
onChange: handleChange
|
|
17360
17333
|
}
|
|
17361
17334
|
);
|
|
@@ -17980,8 +17953,8 @@ function ChartUserShapeOptions({
|
|
|
17980
17953
|
}
|
|
17981
17954
|
function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
|
|
17982
17955
|
const chartData = selectedElement.chartData;
|
|
17983
|
-
const followDataPoint =
|
|
17984
|
-
const { selection: partSelection } =
|
|
17956
|
+
const followDataPoint = chunkME5QRTVS_js.useViewerOptionsContext().advanced.chartPropertiesFollowDataPoint;
|
|
17957
|
+
const { selection: partSelection } = chunkME5QRTVS_js.useChartPartSelection();
|
|
17985
17958
|
const canvasPart = partSelection?.elementId === selectedElement.id ? partSelection.part : null;
|
|
17986
17959
|
const title = chartData?.title;
|
|
17987
17960
|
const chartType = chartData?.chartType;
|
|
@@ -19249,7 +19222,7 @@ function DuotonePanel({
|
|
|
19249
19222
|
] }),
|
|
19250
19223
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
|
|
19251
19224
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground text-[10px]", children: t("pptx.image.duotonePresets") }),
|
|
19252
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-1", children:
|
|
19225
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-1", children: chunkME5QRTVS_js.DUOTONE_PRESETS.map((preset) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
19253
19226
|
"button",
|
|
19254
19227
|
{
|
|
19255
19228
|
type: "button",
|
|
@@ -21085,7 +21058,7 @@ function EffectField({
|
|
|
21085
21058
|
onUpdate
|
|
21086
21059
|
}) {
|
|
21087
21060
|
const { t } = reactI18next.useTranslation();
|
|
21088
|
-
const
|
|
21061
|
+
const commitRecentColor = useRecentColorCommit();
|
|
21089
21062
|
const fieldLabel = field.i18nKey ? t(field.i18nKey) : field.label;
|
|
21090
21063
|
const val = field.read(style);
|
|
21091
21064
|
const cls = `flex flex-col gap-1 ${field.span2 ? COL2 : ""}`;
|
|
@@ -21115,10 +21088,10 @@ function EffectField({
|
|
|
21115
21088
|
{
|
|
21116
21089
|
type: "color",
|
|
21117
21090
|
value: String(val),
|
|
21091
|
+
ref: commitRecentColor,
|
|
21118
21092
|
onChange: (e) => {
|
|
21119
21093
|
const result = field.write(e.target.value, style);
|
|
21120
21094
|
onUpdate(typeof result === "function" ? result(style) : result);
|
|
21121
|
-
pushColor(e.target.value);
|
|
21122
21095
|
},
|
|
21123
21096
|
className: `h-8 ${SEL} px-1`
|
|
21124
21097
|
}
|
|
@@ -21212,6 +21185,7 @@ function ColorPickerRow({
|
|
|
21212
21185
|
}) {
|
|
21213
21186
|
const { t } = reactI18next.useTranslation();
|
|
21214
21187
|
const { pushColor } = useRecentColors();
|
|
21188
|
+
const commitRecentColor = useRecentColorCommit();
|
|
21215
21189
|
const commit = (color, ref) => {
|
|
21216
21190
|
onChange(color, ref);
|
|
21217
21191
|
pushColor(color);
|
|
@@ -21231,7 +21205,8 @@ function ColorPickerRow({
|
|
|
21231
21205
|
type: "color",
|
|
21232
21206
|
value,
|
|
21233
21207
|
disabled,
|
|
21234
|
-
|
|
21208
|
+
ref: commitRecentColor,
|
|
21209
|
+
onChange: (e) => onChange(e.target.value),
|
|
21235
21210
|
className: `h-8 flex-1 ${SEL} px-1 ${DIS}`
|
|
21236
21211
|
}
|
|
21237
21212
|
),
|
|
@@ -21289,6 +21264,7 @@ function GradientStopRow({
|
|
|
21289
21264
|
}) {
|
|
21290
21265
|
const { t } = reactI18next.useTranslation();
|
|
21291
21266
|
const { pushColor } = useRecentColors();
|
|
21267
|
+
const commitRecentColor = useRecentColorCommit();
|
|
21292
21268
|
const patchStop = (patch) => {
|
|
21293
21269
|
const next = allStops.map((s, i) => i === index ? { ...s, ...patch } : s);
|
|
21294
21270
|
onUpdate(next);
|
|
@@ -21300,11 +21276,8 @@ function GradientStopRow({
|
|
|
21300
21276
|
{
|
|
21301
21277
|
type: "color",
|
|
21302
21278
|
value: chunkJAI42EXQ_js.normalizeHexColor(stop2.color, "#3b82f6"),
|
|
21303
|
-
|
|
21304
|
-
|
|
21305
|
-
patchStop({ color: hex, colorRef: void 0 });
|
|
21306
|
-
pushColor(hex);
|
|
21307
|
-
},
|
|
21279
|
+
ref: commitRecentColor,
|
|
21280
|
+
onChange: (e) => patchStop({ color: chunkJAI42EXQ_js.normalizeHexColor(e.target.value, "#3b82f6"), colorRef: void 0 }),
|
|
21308
21281
|
className: "h-7 w-10 rounded border border-border bg-muted"
|
|
21309
21282
|
}
|
|
21310
21283
|
),
|
|
@@ -21838,7 +21811,7 @@ function Text3DProperties({
|
|
|
21838
21811
|
onUpdateTextStyle
|
|
21839
21812
|
}) {
|
|
21840
21813
|
const { t } = reactI18next.useTranslation();
|
|
21841
|
-
const
|
|
21814
|
+
const commitRecentColor = useRecentColorCommit();
|
|
21842
21815
|
const t3d = ts?.text3d;
|
|
21843
21816
|
const hasExtrusion = Boolean(t3d?.extrusionHeight && t3d.extrusionHeight > 0);
|
|
21844
21817
|
const update3d = (partial) => {
|
|
@@ -21885,10 +21858,8 @@ function Text3DProperties({
|
|
|
21885
21858
|
{
|
|
21886
21859
|
type: "color",
|
|
21887
21860
|
value: chunkJAI42EXQ_js.normalizeHexColor(t3d?.extrusionColor, "#888888"),
|
|
21888
|
-
|
|
21889
|
-
|
|
21890
|
-
pushColor(e.target.value);
|
|
21891
|
-
},
|
|
21861
|
+
ref: commitRecentColor,
|
|
21862
|
+
onChange: (e) => update3d({ extrusionColor: e.target.value }),
|
|
21892
21863
|
className: COLOR_CLS
|
|
21893
21864
|
}
|
|
21894
21865
|
)
|
|
@@ -22054,7 +22025,7 @@ function AdvancedTextFormatting({
|
|
|
22054
22025
|
numChange
|
|
22055
22026
|
}) {
|
|
22056
22027
|
const { t } = reactI18next.useTranslation();
|
|
22057
|
-
const
|
|
22028
|
+
const commitRecentColor = useRecentColorCommit();
|
|
22058
22029
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 rounded border border-border bg-card p-2 space-y-2", children: [
|
|
22059
22030
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted-foreground", children: t("pptx.textProperties.advancedTextHeading") }),
|
|
22060
22031
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: BASELINE_TOGGLES.map(([label, baseline]) => /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "inline-flex items-center gap-2 text-foreground", children: [
|
|
@@ -22076,10 +22047,8 @@ function AdvancedTextFormatting({
|
|
|
22076
22047
|
{
|
|
22077
22048
|
type: "color",
|
|
22078
22049
|
value: chunkJAI42EXQ_js.normalizeHexColor(ts?.highlightColor, "#ffff00"),
|
|
22079
|
-
|
|
22080
|
-
|
|
22081
|
-
pushColor(e.target.value);
|
|
22082
|
-
},
|
|
22050
|
+
ref: commitRecentColor,
|
|
22051
|
+
onChange: (e) => onUpdateTextStyle({ highlightColor: e.target.value }),
|
|
22083
22052
|
disabled: !canEdit,
|
|
22084
22053
|
className: COLOR_CLS2
|
|
22085
22054
|
}
|
|
@@ -22110,10 +22079,8 @@ function AdvancedTextFormatting({
|
|
|
22110
22079
|
{
|
|
22111
22080
|
type: "color",
|
|
22112
22081
|
value: ts?.underlineColor || ts?.color || "#000000",
|
|
22113
|
-
|
|
22114
|
-
|
|
22115
|
-
pushColor(e.target.value);
|
|
22116
|
-
},
|
|
22082
|
+
ref: commitRecentColor,
|
|
22083
|
+
onChange: (e) => onUpdateTextStyle({ underlineColor: e.target.value }),
|
|
22117
22084
|
className: COLOR_CLS2
|
|
22118
22085
|
}
|
|
22119
22086
|
)
|
|
@@ -22144,10 +22111,8 @@ function AdvancedTextFormatting({
|
|
|
22144
22111
|
{
|
|
22145
22112
|
type: "color",
|
|
22146
22113
|
value: ts?.textOutlineColor || "#000000",
|
|
22147
|
-
|
|
22148
|
-
|
|
22149
|
-
pushColor(e.target.value);
|
|
22150
|
-
},
|
|
22114
|
+
ref: commitRecentColor,
|
|
22115
|
+
onChange: (e) => onUpdateTextStyle({ textOutlineColor: e.target.value }),
|
|
22151
22116
|
className: COLOR_CLS2
|
|
22152
22117
|
}
|
|
22153
22118
|
)
|
|
@@ -22334,7 +22299,7 @@ function TextEffectsPanel({
|
|
|
22334
22299
|
numChange
|
|
22335
22300
|
}) {
|
|
22336
22301
|
const { t } = reactI18next.useTranslation();
|
|
22337
|
-
const
|
|
22302
|
+
const commitRecentColor = useRecentColorCommit();
|
|
22338
22303
|
const hasShadow = Boolean(
|
|
22339
22304
|
ts?.textShadowColor || typeof ts?.textShadowBlur === "number" && ts.textShadowBlur > 0
|
|
22340
22305
|
);
|
|
@@ -22380,10 +22345,8 @@ function TextEffectsPanel({
|
|
|
22380
22345
|
{
|
|
22381
22346
|
type: "color",
|
|
22382
22347
|
value: chunkJAI42EXQ_js.normalizeHexColor(ts?.textShadowColor, "#000000"),
|
|
22383
|
-
|
|
22384
|
-
|
|
22385
|
-
pushColor(e.target.value);
|
|
22386
|
-
},
|
|
22348
|
+
ref: commitRecentColor,
|
|
22349
|
+
onChange: (e) => onUpdateTextStyle({ textShadowColor: e.target.value }),
|
|
22387
22350
|
className: COLOR_CLS2
|
|
22388
22351
|
}
|
|
22389
22352
|
)
|
|
@@ -22487,10 +22450,8 @@ function TextEffectsPanel({
|
|
|
22487
22450
|
{
|
|
22488
22451
|
type: "color",
|
|
22489
22452
|
value: chunkJAI42EXQ_js.normalizeHexColor(ts?.textGlowColor, "#ffff00"),
|
|
22490
|
-
|
|
22491
|
-
|
|
22492
|
-
pushColor(e.target.value);
|
|
22493
|
-
},
|
|
22453
|
+
ref: commitRecentColor,
|
|
22454
|
+
onChange: (e) => onUpdateTextStyle({ textGlowColor: e.target.value }),
|
|
22494
22455
|
className: COLOR_CLS2
|
|
22495
22456
|
}
|
|
22496
22457
|
)
|
|
@@ -22984,7 +22945,7 @@ function SmartArtNodeStyleControls({
|
|
|
22984
22945
|
canEdit,
|
|
22985
22946
|
onChangeStyle
|
|
22986
22947
|
}) {
|
|
22987
|
-
const
|
|
22948
|
+
const commitRecentColor = useRecentColorCommit();
|
|
22988
22949
|
const bold = Boolean(style?.bold);
|
|
22989
22950
|
const italic = Boolean(style?.italic);
|
|
22990
22951
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -23004,10 +22965,8 @@ function SmartArtNodeStyleControls({
|
|
|
23004
22965
|
"aria-label": `Fill colour for ${label}`,
|
|
23005
22966
|
className: "h-4 w-5 cursor-pointer rounded border border-border bg-transparent p-0 disabled:cursor-not-allowed",
|
|
23006
22967
|
value: style?.fillColor ?? DEFAULT_FILL,
|
|
23007
|
-
|
|
23008
|
-
|
|
23009
|
-
pushColor(e.target.value);
|
|
23010
|
-
}
|
|
22968
|
+
ref: commitRecentColor,
|
|
22969
|
+
onChange: (e) => onChangeStyle(nodeId, { fillColor: e.target.value })
|
|
23011
22970
|
}
|
|
23012
22971
|
)
|
|
23013
22972
|
] }),
|
|
@@ -23021,10 +22980,8 @@ function SmartArtNodeStyleControls({
|
|
|
23021
22980
|
"aria-label": `Font colour for ${label}`,
|
|
23022
22981
|
className: "h-4 w-5 cursor-pointer rounded border border-border bg-transparent p-0 disabled:cursor-not-allowed",
|
|
23023
22982
|
value: style?.fontColor ?? DEFAULT_FONT,
|
|
23024
|
-
|
|
23025
|
-
|
|
23026
|
-
pushColor(e.target.value);
|
|
23027
|
-
}
|
|
22983
|
+
ref: commitRecentColor,
|
|
22984
|
+
onChange: (e) => onChangeStyle(nodeId, { fontColor: e.target.value })
|
|
23028
22985
|
}
|
|
23029
22986
|
)
|
|
23030
22987
|
] }),
|
|
@@ -23258,7 +23215,7 @@ function SmartArtPropertiesPanel({
|
|
|
23258
23215
|
const reflowed = box ? pptx.rebuildDrawingShapesIfCleared(
|
|
23259
23216
|
newData,
|
|
23260
23217
|
newData.layout,
|
|
23261
|
-
|
|
23218
|
+
chunkME5QRTVS_js.resolveSmartArtDataPalette(newData),
|
|
23262
23219
|
newData.style ?? "flat",
|
|
23263
23220
|
"inspector",
|
|
23264
23221
|
box
|
|
@@ -23447,7 +23404,7 @@ function TableDataGrid({
|
|
|
23447
23404
|
}) {
|
|
23448
23405
|
const { t } = reactI18next.useTranslation();
|
|
23449
23406
|
const grid = pptx.buildTableDataGrid(tableElement);
|
|
23450
|
-
const { viewportWidth } =
|
|
23407
|
+
const { viewportWidth } = chunkME5QRTVS_js.useIsMobile();
|
|
23451
23408
|
const gridPlan = pptx.getDenseGridLayoutPlan(viewportWidth);
|
|
23452
23409
|
const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
|
|
23453
23410
|
const stickyGutterClass = gridPlan.stickyFirstColumn ? "sticky left-0 z-10" : "";
|
|
@@ -23612,7 +23569,7 @@ function TableCellPatternFill({
|
|
|
23612
23569
|
onUpdateCellStyle
|
|
23613
23570
|
}) {
|
|
23614
23571
|
const { t } = reactI18next.useTranslation();
|
|
23615
|
-
const
|
|
23572
|
+
const commitRecentColor = useRecentColorCommit();
|
|
23616
23573
|
const translate = (key) => t(key);
|
|
23617
23574
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
23618
23575
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex flex-col gap-0.5", children: [
|
|
@@ -23639,10 +23596,8 @@ function TableCellPatternFill({
|
|
|
23639
23596
|
disabled: !canEdit,
|
|
23640
23597
|
className: "w-full h-7 rounded border border-border bg-transparent cursor-pointer",
|
|
23641
23598
|
value: cellStyle.patternFillForeground ?? "#000000",
|
|
23642
|
-
|
|
23643
|
-
|
|
23644
|
-
pushColor(e.target.value);
|
|
23645
|
-
}
|
|
23599
|
+
ref: commitRecentColor,
|
|
23600
|
+
onChange: (e) => onUpdateCellStyle({ patternFillForeground: e.target.value })
|
|
23646
23601
|
}
|
|
23647
23602
|
)
|
|
23648
23603
|
] }),
|
|
@@ -23655,10 +23610,8 @@ function TableCellPatternFill({
|
|
|
23655
23610
|
disabled: !canEdit,
|
|
23656
23611
|
className: "w-full h-7 rounded border border-border bg-transparent cursor-pointer",
|
|
23657
23612
|
value: cellStyle.patternFillBackground ?? "#FFFFFF",
|
|
23658
|
-
|
|
23659
|
-
|
|
23660
|
-
pushColor(e.target.value);
|
|
23661
|
-
}
|
|
23613
|
+
ref: commitRecentColor,
|
|
23614
|
+
onChange: (e) => onUpdateCellStyle({ patternFillBackground: e.target.value })
|
|
23662
23615
|
}
|
|
23663
23616
|
)
|
|
23664
23617
|
] })
|
|
@@ -23759,7 +23712,7 @@ function GradientControls({
|
|
|
23759
23712
|
onUpdateCellStyle
|
|
23760
23713
|
}) {
|
|
23761
23714
|
const { t } = reactI18next.useTranslation();
|
|
23762
|
-
const
|
|
23715
|
+
const commitRecentColor = useRecentColorCommit();
|
|
23763
23716
|
const stops = cellStyle.gradientFillStops ?? [];
|
|
23764
23717
|
const gradType = cellStyle.gradientFillType ?? "linear";
|
|
23765
23718
|
const updateStop = (index, patch) => {
|
|
@@ -23816,10 +23769,8 @@ function GradientControls({
|
|
|
23816
23769
|
disabled: !canEdit,
|
|
23817
23770
|
className: "h-6 w-6 rounded border border-border cursor-pointer",
|
|
23818
23771
|
value: stop2.color,
|
|
23819
|
-
|
|
23820
|
-
|
|
23821
|
-
pushColor(e.target.value);
|
|
23822
|
-
}
|
|
23772
|
+
ref: commitRecentColor,
|
|
23773
|
+
onChange: (e) => updateStop(idx, { color: e.target.value })
|
|
23823
23774
|
}
|
|
23824
23775
|
),
|
|
23825
23776
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -25289,7 +25240,7 @@ function InspectorPaneHeader({
|
|
|
25289
25240
|
onClose
|
|
25290
25241
|
}) {
|
|
25291
25242
|
const { t } = reactI18next.useTranslation();
|
|
25292
|
-
const { viewportWidth } =
|
|
25243
|
+
const { viewportWidth } = chunkME5QRTVS_js.useIsMobile();
|
|
25293
25244
|
const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
|
|
25294
25245
|
const touchBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
25295
25246
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -25990,7 +25941,7 @@ function TransitionPreview({
|
|
|
25990
25941
|
const { t } = reactI18next.useTranslation();
|
|
25991
25942
|
const durationMs = transition.durationMs ?? 500;
|
|
25992
25943
|
const animations = React107.useMemo(
|
|
25993
|
-
() =>
|
|
25944
|
+
() => chunkME5QRTVS_js.getSlideTransitionAnimations(
|
|
25994
25945
|
transition.type,
|
|
25995
25946
|
durationMs,
|
|
25996
25947
|
transition.direction,
|
|
@@ -26059,7 +26010,7 @@ function TransitionPreview({
|
|
|
26059
26010
|
]
|
|
26060
26011
|
}
|
|
26061
26012
|
),
|
|
26062
|
-
/* @__PURE__ */ jsxRuntime.jsx("style", { children:
|
|
26013
|
+
/* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkME5QRTVS_js.SLIDE_TRANSITION_KEYFRAMES })
|
|
26063
26014
|
] });
|
|
26064
26015
|
}
|
|
26065
26016
|
var DEFAULT_DURATION_MS = 320;
|
|
@@ -26722,7 +26673,7 @@ function InspectorPane(props) {
|
|
|
26722
26673
|
} = props;
|
|
26723
26674
|
const hasSelection = selectedElement !== null;
|
|
26724
26675
|
const { t } = reactI18next.useTranslation();
|
|
26725
|
-
const { dragY, handlers: dragHandlers } =
|
|
26676
|
+
const { dragY, handlers: dragHandlers } = chunkME5QRTVS_js.useSheetDismissDrag(onClose);
|
|
26726
26677
|
const {
|
|
26727
26678
|
animationPanelHeight,
|
|
26728
26679
|
effectiveThemeOptions,
|
|
@@ -27135,7 +27086,7 @@ function PresentationTouchControls({
|
|
|
27135
27086
|
hideNavigation = false
|
|
27136
27087
|
}) {
|
|
27137
27088
|
const { t } = reactI18next.useTranslation();
|
|
27138
|
-
const { isTouchDevice } =
|
|
27089
|
+
const { isTouchDevice } = chunkME5QRTVS_js.useIsMobile();
|
|
27139
27090
|
if (!isTouchDevice) {
|
|
27140
27091
|
return null;
|
|
27141
27092
|
}
|
|
@@ -27782,11 +27733,11 @@ function PrintDialog({
|
|
|
27782
27733
|
}) {
|
|
27783
27734
|
const { t } = reactI18next.useTranslation();
|
|
27784
27735
|
const regionRenderer = useRegionRenderer("dialog.print");
|
|
27785
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
27786
|
-
const { viewportWidth } =
|
|
27736
|
+
const { panelStyle, handlers: dragHandlers } = chunkME5QRTVS_js.useModalDismissDrag(onClose);
|
|
27737
|
+
const { viewportWidth } = chunkME5QRTVS_js.useIsMobile();
|
|
27787
27738
|
const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
|
|
27788
27739
|
const closeBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
27789
|
-
const printOptionDefaults = pptx.resolveDefaultPrintSettings(
|
|
27740
|
+
const printOptionDefaults = pptx.resolveDefaultPrintSettings(chunkME5QRTVS_js.useViewerOptionsContext());
|
|
27790
27741
|
const [printWhat, setPrintWhat] = React107.useState(printOptionDefaults?.printWhat ?? "slides");
|
|
27791
27742
|
const [orientation, setOrientation] = React107.useState("landscape");
|
|
27792
27743
|
const [colorMode, setColorMode] = React107.useState(
|
|
@@ -28303,14 +28254,14 @@ function BroadcastDialog({
|
|
|
28303
28254
|
}) {
|
|
28304
28255
|
const { t } = reactI18next.useTranslation();
|
|
28305
28256
|
const regionRenderer = useRegionRenderer("dialog.broadcast");
|
|
28306
|
-
const collab =
|
|
28257
|
+
const collab = chunkME5QRTVS_js.useCollaboration();
|
|
28307
28258
|
const isBroadcasting = collab !== null && collab.status !== "disconnected" && collab.status !== "error" && collab.config.role === "owner";
|
|
28308
28259
|
const [roomId, setRoomId] = React107.useState("");
|
|
28309
28260
|
const [userName, setUserName] = React107.useState("");
|
|
28310
28261
|
const [serverUrl, setServerUrl] = React107.useState("");
|
|
28311
28262
|
const [copied, setCopied] = React107.useState(false);
|
|
28312
28263
|
const dialogRef = React107.useRef(null);
|
|
28313
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
28264
|
+
const { panelStyle, handlers: dragHandlers } = chunkME5QRTVS_js.useModalDismissDrag(onClose);
|
|
28314
28265
|
useModalFocus(open, dialogRef, onClose);
|
|
28315
28266
|
React107.useEffect(() => {
|
|
28316
28267
|
if (open && !isBroadcasting) {
|
|
@@ -28626,7 +28577,7 @@ function ActiveSessionView({
|
|
|
28626
28577
|
onCopyRoomId,
|
|
28627
28578
|
onStopCollaboration
|
|
28628
28579
|
}) {
|
|
28629
|
-
const { t } = reactI18next.useTranslation(), viewerOptions =
|
|
28580
|
+
const { t } = reactI18next.useTranslation(), viewerOptions = chunkME5QRTVS_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({
|
|
28630
28581
|
localUserName: activeCollaboration?.userName ?? collab.config.userName,
|
|
28631
28582
|
localUserInitials: viewerOptions.general.userInitials,
|
|
28632
28583
|
localUserColor: collab.config.userColor,
|
|
@@ -28725,7 +28676,7 @@ function StartSessionForm({
|
|
|
28725
28676
|
onRetry
|
|
28726
28677
|
}) {
|
|
28727
28678
|
const { t } = reactI18next.useTranslation();
|
|
28728
|
-
const { viewportWidth } =
|
|
28679
|
+
const { viewportWidth } = chunkME5QRTVS_js.useIsMobile();
|
|
28729
28680
|
const tabBtnStyle = { minHeight: pptx.getDensePanelTouchTargetPx(viewportWidth) };
|
|
28730
28681
|
const inputReadOnlyClass = preconfigured ? " opacity-70 cursor-not-allowed" : "";
|
|
28731
28682
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
@@ -28859,7 +28810,7 @@ function ShareDialog({
|
|
|
28859
28810
|
defaultUserName,
|
|
28860
28811
|
defaultServerUrl
|
|
28861
28812
|
}) {
|
|
28862
|
-
const collab =
|
|
28813
|
+
const collab = chunkME5QRTVS_js.useCollaboration();
|
|
28863
28814
|
const isActive = collab !== null && collab.status !== "disconnected" && collab.status !== "error";
|
|
28864
28815
|
const { t } = reactI18next.useTranslation();
|
|
28865
28816
|
const regionRenderer = useRegionRenderer("dialog.share");
|
|
@@ -28870,9 +28821,9 @@ function ShareDialog({
|
|
|
28870
28821
|
const [invitation, setInvitation] = React107.useState("");
|
|
28871
28822
|
const [copied, setCopied] = React107.useState(false);
|
|
28872
28823
|
const dialogRef = React107.useRef(null);
|
|
28873
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
28824
|
+
const { panelStyle, handlers: dragHandlers } = chunkME5QRTVS_js.useModalDismissDrag(onClose);
|
|
28874
28825
|
useModalFocus(open, dialogRef, onClose);
|
|
28875
|
-
const { viewportWidth, viewportHeight } =
|
|
28826
|
+
const { viewportWidth, viewportHeight } = chunkME5QRTVS_js.useIsMobile();
|
|
28876
28827
|
const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
|
|
28877
28828
|
const touchBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
28878
28829
|
const stickyFooterClass = pptx.shouldStickyActionRow(viewportWidth, viewportHeight) ? "sticky bottom-0 bg-popover" : "";
|
|
@@ -29171,12 +29122,12 @@ function HyperlinkEditDialog({
|
|
|
29171
29122
|
onCancel
|
|
29172
29123
|
}) {
|
|
29173
29124
|
const { t } = reactI18next.useTranslation();
|
|
29174
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
29125
|
+
const { panelStyle, handlers: dragHandlers } = chunkME5QRTVS_js.useModalDismissDrag(onCancel);
|
|
29175
29126
|
const inputRef = React107.useRef(null);
|
|
29176
|
-
const detectedType =
|
|
29177
|
-
const emailParts =
|
|
29178
|
-
const detectedSlide =
|
|
29179
|
-
const detectedVerb = initialAction ?
|
|
29127
|
+
const detectedType = chunkME5QRTVS_js.detectTargetType(initialUrl, initialAction);
|
|
29128
|
+
const emailParts = chunkME5QRTVS_js.parseEmailUrl(initialUrl || "");
|
|
29129
|
+
const detectedSlide = chunkME5QRTVS_js.parseSlideFromUrl(initialUrl, initialAction);
|
|
29130
|
+
const detectedVerb = initialAction ? chunkME5QRTVS_js.ACTION_VERB_MAP[initialAction.toLowerCase()] || "nextSlide" : "nextSlide";
|
|
29180
29131
|
const [targetType, setTargetType] = React107.useState(detectedType);
|
|
29181
29132
|
const [url, setUrl] = React107.useState(
|
|
29182
29133
|
detectedType === "email" || detectedType === "slide" || detectedType === "action" ? "" : initialUrl || ""
|
|
@@ -29453,7 +29404,7 @@ function ViewerBottomPanels({
|
|
|
29453
29404
|
notesStyle,
|
|
29454
29405
|
onNotesHeightChange
|
|
29455
29406
|
}) {
|
|
29456
|
-
const { isHidden } =
|
|
29407
|
+
const { isHidden } = chunkME5QRTVS_js.useToolbarVisibility(hiddenActions);
|
|
29457
29408
|
const customization = useViewerCustomizationContext();
|
|
29458
29409
|
const showNotes = pptx.isPanelVisible(customization, "notes");
|
|
29459
29410
|
const notesRenderer = useRegionRenderer("notes");
|
|
@@ -29843,7 +29794,7 @@ function ViewerToolbarSection(props) {
|
|
|
29843
29794
|
[activeSlide, propertyHandlers]
|
|
29844
29795
|
);
|
|
29845
29796
|
const scopedLayoutOptions = React107__default.default.useMemo(
|
|
29846
|
-
() =>
|
|
29797
|
+
() => chunkME5QRTVS_js.scopeLayoutOptionsToActiveSlide(s.layoutOptions, activeSlide),
|
|
29847
29798
|
[s.layoutOptions, activeSlide]
|
|
29848
29799
|
);
|
|
29849
29800
|
const handleResetSlide = React107.useCallback(() => {
|
|
@@ -30249,7 +30200,7 @@ function ViewerToolbarSection(props) {
|
|
|
30249
30200
|
isMobileInsertOpen: s.isMobileInsertOpen,
|
|
30250
30201
|
onCloseMobileInsert: () => s.setIsMobileInsertOpen(false),
|
|
30251
30202
|
slideCommentCount: activeSlide?.comments?.length ?? 0,
|
|
30252
|
-
reviewComments:
|
|
30203
|
+
reviewComments: chunkME5QRTVS_js.createReviewCommentsHost({
|
|
30253
30204
|
state: s,
|
|
30254
30205
|
activeSlideIndex,
|
|
30255
30206
|
updateSlides: ops.updateSlides,
|
|
@@ -30343,7 +30294,7 @@ function EquationEditorDialog({
|
|
|
30343
30294
|
existingOmml
|
|
30344
30295
|
}) {
|
|
30345
30296
|
const { t } = reactI18next.useTranslation();
|
|
30346
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
30297
|
+
const { panelStyle, handlers: dragHandlers } = chunkME5QRTVS_js.useModalDismissDrag(onClose);
|
|
30347
30298
|
const initialLatex = React107.useMemo(() => {
|
|
30348
30299
|
if (!existingOmml) {
|
|
30349
30300
|
return "";
|
|
@@ -30531,7 +30482,7 @@ function getPreviewForLayout(layout) {
|
|
|
30531
30482
|
transform: `scale(${scale})`,
|
|
30532
30483
|
transformOrigin: "top left"
|
|
30533
30484
|
},
|
|
30534
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
30485
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkME5QRTVS_js.SmartArtRenderer, { element: pptx.buildSmartArtPreviewElement(layout) })
|
|
30535
30486
|
}
|
|
30536
30487
|
)
|
|
30537
30488
|
}
|
|
@@ -30543,7 +30494,7 @@ function InsertSmartArtDialog({
|
|
|
30543
30494
|
onInsert
|
|
30544
30495
|
}) {
|
|
30545
30496
|
const { t } = reactI18next.useTranslation();
|
|
30546
|
-
const { panelStyle, handlers: dragHandlers } =
|
|
30497
|
+
const { panelStyle, handlers: dragHandlers } = chunkME5QRTVS_js.useModalDismissDrag(onClose);
|
|
30547
30498
|
const [activeCategory, setActiveCategory] = React107.useState("list");
|
|
30548
30499
|
const [selectedLayout, setSelectedLayout] = React107.useState(null);
|
|
30549
30500
|
const dialogRef = React107.useRef(null);
|
|
@@ -31150,11 +31101,11 @@ function PresentationStage({
|
|
|
31150
31101
|
})
|
|
31151
31102
|
},
|
|
31152
31103
|
children: [
|
|
31153
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31104
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkME5QRTVS_js.SlideBackgroundImageLayer, { slide: activeSlide }),
|
|
31154
31105
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: pptx.PRESENTATION_HIT_TEST_CSS }),
|
|
31155
31106
|
presentationKeyframesCss && /* @__PURE__ */ jsxRuntime.jsx("style", { children: presentationKeyframesCss }),
|
|
31156
31107
|
templateElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
31157
|
-
|
|
31108
|
+
chunkME5QRTVS_js.ElementRenderer,
|
|
31158
31109
|
{
|
|
31159
31110
|
element,
|
|
31160
31111
|
activeSlide,
|
|
@@ -31191,7 +31142,7 @@ function PresentationStage({
|
|
|
31191
31142
|
`tpl-${element.id}`
|
|
31192
31143
|
)),
|
|
31193
31144
|
activeSlide?.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
31194
|
-
|
|
31145
|
+
chunkME5QRTVS_js.ElementRenderer,
|
|
31195
31146
|
{
|
|
31196
31147
|
element,
|
|
31197
31148
|
activeSlide,
|
|
@@ -31313,8 +31264,8 @@ function ViewerCanvasArea(props) {
|
|
|
31313
31264
|
aiCanvasActive = false
|
|
31314
31265
|
} = props;
|
|
31315
31266
|
const { t } = reactI18next.useTranslation();
|
|
31316
|
-
const { isHidden } =
|
|
31317
|
-
const viewerOptions =
|
|
31267
|
+
const { isHidden } = chunkME5QRTVS_js.useToolbarVisibility(hiddenActions);
|
|
31268
|
+
const viewerOptions = chunkME5QRTVS_js.useViewerOptionsContext();
|
|
31318
31269
|
const outlineAuthoring = useOutlineAuthoring({
|
|
31319
31270
|
state: s,
|
|
31320
31271
|
updateElement: canvasHandlers.handleUpdateSmartArtElement,
|
|
@@ -31452,7 +31403,7 @@ ${url}`)) {
|
|
|
31452
31403
|
s.setActiveSlideIndex((i) => Math.max(0, i - 1));
|
|
31453
31404
|
}
|
|
31454
31405
|
}, [mode, presentation, s]);
|
|
31455
|
-
const swipe =
|
|
31406
|
+
const swipe = chunkME5QRTVS_js.useSwipeNavigation({
|
|
31456
31407
|
enabled: swipeEnabled,
|
|
31457
31408
|
onNext: handleSwipeNext,
|
|
31458
31409
|
onPrev: handleSwipePrev
|
|
@@ -31532,7 +31483,7 @@ ${url}`)) {
|
|
|
31532
31483
|
),
|
|
31533
31484
|
children: (stageScale) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
31534
31485
|
presentation.transitionOverlay && slides[presentation.transitionOverlay.outgoingSlideIndex] && /* @__PURE__ */ jsxRuntime.jsx(
|
|
31535
|
-
|
|
31486
|
+
chunkME5QRTVS_js.PresentationTransitionOverlay,
|
|
31536
31487
|
{
|
|
31537
31488
|
outgoingSlide: slides[presentation.transitionOverlay.outgoingSlideIndex],
|
|
31538
31489
|
templateElements: [
|
|
@@ -31649,14 +31600,14 @@ ${url}`)) {
|
|
|
31649
31600
|
outlineAuthoring,
|
|
31650
31601
|
collaborationOverlay: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
31651
31602
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31652
|
-
|
|
31603
|
+
chunkME5QRTVS_js.RemoteSelectionOverlay,
|
|
31653
31604
|
{
|
|
31654
31605
|
elements: effectiveSlide?.elements ?? [],
|
|
31655
31606
|
activeSlideIndex
|
|
31656
31607
|
}
|
|
31657
31608
|
),
|
|
31658
31609
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31659
|
-
|
|
31610
|
+
chunkME5QRTVS_js.CollaborationCursorOverlay,
|
|
31660
31611
|
{
|
|
31661
31612
|
activeSlideIndex,
|
|
31662
31613
|
canvasWidth: canvasSize.width,
|
|
@@ -31920,7 +31871,7 @@ function AiChangeOverlay({ batch, activeSlideIndex }) {
|
|
|
31920
31871
|
}
|
|
31921
31872
|
function ChartFormatPanel() {
|
|
31922
31873
|
const { t } = reactI18next.useTranslation();
|
|
31923
|
-
const commands =
|
|
31874
|
+
const commands = chunkME5QRTVS_js.useChartFormatContext();
|
|
31924
31875
|
const ref = React107.useRef(null);
|
|
31925
31876
|
const chart = commands?.chart;
|
|
31926
31877
|
const chartData = chart?.type === "chart" ? chart.chartData : void 0;
|
|
@@ -31993,7 +31944,7 @@ function MobileDismissSheet({
|
|
|
31993
31944
|
children
|
|
31994
31945
|
}) {
|
|
31995
31946
|
const { t } = reactI18next.useTranslation();
|
|
31996
|
-
const { dragY, handlers } =
|
|
31947
|
+
const { dragY, handlers } = chunkME5QRTVS_js.useSheetDismissDrag(onClose);
|
|
31997
31948
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
31998
31949
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31999
31950
|
"button",
|
|
@@ -32733,7 +32684,7 @@ function ViewerMainContent(props) {
|
|
|
32733
32684
|
);
|
|
32734
32685
|
const layoutGalleryAnchorRef = React107.useRef(null);
|
|
32735
32686
|
const layoutGalleryPreviews = useLayoutPreviews(loadLayoutPreviews, layoutGalleryAnchor !== null);
|
|
32736
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
32687
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkME5QRTVS_js.ChartPartSelectionProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-pptx-chrome": "body", className: "relative z-10 flex flex-1 min-h-0", children: [
|
|
32737
32688
|
showSlidesPane && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
32738
32689
|
slidesPaneRenderer ? (
|
|
32739
32690
|
// The rail's slot (width, collapse, resize handle) stays the viewer's.
|
|
@@ -33238,7 +33189,7 @@ function MobileChromeOverlay(props) {
|
|
|
33238
33189
|
slideSectionGroups,
|
|
33239
33190
|
canEdit,
|
|
33240
33191
|
commentCount
|
|
33241
|
-
} = props, { keyboardInset, isKeyboardOpen } =
|
|
33192
|
+
} = props, { keyboardInset, isKeyboardOpen } = chunkME5QRTVS_js.useKeyboardInsets(), activeSheet = s.isMobileInsertOpen ? "insert" : s.isSlidesPaneOpen ? "slides" : s.isInspectorPaneOpen ? s.sidebarPanelMode === "comments" ? "comments" : "inspector" : !s.isSlideNotesCollapsed ? "notes" : null, closeAllSheets = () => {
|
|
33242
33193
|
s.setIsSlidesPaneOpen(false);
|
|
33243
33194
|
s.setIsMobileInsertOpen(false);
|
|
33244
33195
|
s.setIsInspectorPaneOpen(false);
|
|
@@ -33340,31 +33291,22 @@ function MobileChromeOverlay(props) {
|
|
|
33340
33291
|
function ReadOnlyBanner(p) {
|
|
33341
33292
|
const { t } = reactI18next.useTranslation();
|
|
33342
33293
|
const ref = useWebControl(
|
|
33294
|
+
pptx.readOnlyBannerState(
|
|
33295
|
+
p.recommendation,
|
|
33296
|
+
{
|
|
33297
|
+
passwordPromptOpen: p.passwordPromptOpen ?? false,
|
|
33298
|
+
passwordError: p.passwordError ?? null,
|
|
33299
|
+
checkingPassword: p.checkingPassword ?? false
|
|
33300
|
+
},
|
|
33301
|
+
t
|
|
33302
|
+
),
|
|
33343
33303
|
{
|
|
33344
|
-
|
|
33345
|
-
|
|
33346
|
-
|
|
33347
|
-
|
|
33348
|
-
|
|
33349
|
-
|
|
33350
|
-
},
|
|
33351
|
-
{
|
|
33352
|
-
"read-only-request": (event) => {
|
|
33353
|
-
const intent = event.detail;
|
|
33354
|
-
switch (intent.id) {
|
|
33355
|
-
case "editAnyway":
|
|
33356
|
-
p.onEditAnyway();
|
|
33357
|
-
break;
|
|
33358
|
-
case "dismiss":
|
|
33359
|
-
p.onDismiss();
|
|
33360
|
-
break;
|
|
33361
|
-
case "cancelPassword":
|
|
33362
|
-
p.onCancelPassword?.();
|
|
33363
|
-
break;
|
|
33364
|
-
case "submitPassword":
|
|
33365
|
-
p.onSubmitPassword?.(intent.password);
|
|
33366
|
-
}
|
|
33367
|
-
}
|
|
33304
|
+
"read-only-request": (event) => pptx.dispatchReadOnlyBannerIntent(event, {
|
|
33305
|
+
editAnyway: p.onEditAnyway,
|
|
33306
|
+
dismiss: p.onDismiss,
|
|
33307
|
+
cancelPassword: p.onCancelPassword,
|
|
33308
|
+
submitPassword: p.onSubmitPassword
|
|
33309
|
+
})
|
|
33368
33310
|
}
|
|
33369
33311
|
);
|
|
33370
33312
|
return /* @__PURE__ */ jsxRuntime.jsx("pptx-ui-read-only-banner", { ref });
|
|
@@ -33724,7 +33666,7 @@ async function exportAiChatLogs(options) {
|
|
|
33724
33666
|
chats,
|
|
33725
33667
|
{ format: options?.format, detailed: options?.detailed, now: options?.now },
|
|
33726
33668
|
(filename, content, mime) => {
|
|
33727
|
-
|
|
33669
|
+
chunkME5QRTVS_js.downloadBlob(new Blob([content], { type: mime }), filename);
|
|
33728
33670
|
}
|
|
33729
33671
|
);
|
|
33730
33672
|
}
|
|
@@ -34066,7 +34008,7 @@ function ViewerOptionsProvider({
|
|
|
34066
34008
|
store,
|
|
34067
34009
|
children
|
|
34068
34010
|
}) {
|
|
34069
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
34011
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkME5QRTVS_js.ViewerOptionsStoreContext.Provider, { value: store, children: /* @__PURE__ */ jsxRuntime.jsx(chunkME5QRTVS_js.ViewerOptionsContext.Provider, { value: options, children }) });
|
|
34070
34012
|
}
|
|
34071
34013
|
function useAiBridge(input) {
|
|
34072
34014
|
const ref = React107.useRef(input);
|
|
@@ -34532,7 +34474,7 @@ function useMasterViewCrud(input) {
|
|
|
34532
34474
|
if (id === "renameLayout" || id === "renameMaster") {
|
|
34533
34475
|
const master = slideMasters[target.masterIndex];
|
|
34534
34476
|
const current = id === "renameLayout" ? master?.layouts?.[target.layoutIndex ?? -1]?.name ?? "" : master?.name ?? "";
|
|
34535
|
-
const next =
|
|
34477
|
+
const next = chunkME5QRTVS_js.safePrompt(t("pptx.masterView.renamePrompt"), current)?.trim();
|
|
34536
34478
|
if (!next) {
|
|
34537
34479
|
return;
|
|
34538
34480
|
}
|
|
@@ -35047,7 +34989,7 @@ var PowerPointViewerComponent = /* @__PURE__ */ React107.forwardRef(
|
|
|
35047
34989
|
},
|
|
35048
34990
|
[storage]
|
|
35049
34991
|
);
|
|
35050
|
-
const { optionsStore, options: viewerOptions } =
|
|
34992
|
+
const { optionsStore, options: viewerOptions } = chunkME5QRTVS_js.useViewerOptions();
|
|
35051
34993
|
const custom = useViewerCustomization(customization, legacyHiddenActions, optionsStore);
|
|
35052
34994
|
const { resolved: customizationResolved, hiddenActions } = custom;
|
|
35053
34995
|
const aiEnabled = Boolean(ai) && pptx.isFeatureEnabled(customizationResolved, "ai");
|
|
@@ -35061,8 +35003,8 @@ var PowerPointViewerComponent = /* @__PURE__ */ React107.forwardRef(
|
|
|
35061
35003
|
const handleEnableEditing = React107.useCallback(() => {
|
|
35062
35004
|
setProtectedViewOverridden(true);
|
|
35063
35005
|
}, []);
|
|
35064
|
-
const readOnlyRec =
|
|
35065
|
-
const compatToastsState =
|
|
35006
|
+
const readOnlyRec = chunkME5QRTVS_js.useReadOnlyRecommendationState(content);
|
|
35007
|
+
const compatToastsState = chunkME5QRTVS_js.useCompatibilityToastsState();
|
|
35066
35008
|
const [notesBarHeight, setNotesBarHeight] = React107.useState(0);
|
|
35067
35009
|
const runProgramNoticesState = useRunProgramNoticesState();
|
|
35068
35010
|
const [collaborationReadOnly, setCollaborationReadOnly] = React107.useState(Boolean(collaboration));
|
|
@@ -35085,8 +35027,8 @@ var PowerPointViewerComponent = /* @__PURE__ */ React107.forwardRef(
|
|
|
35085
35027
|
filePath
|
|
35086
35028
|
});
|
|
35087
35029
|
const [isShareDialogOpen, setIsShareDialogOpen] = React107.useState(false);
|
|
35088
|
-
const { reducedMotion, toggleReducedMotion } =
|
|
35089
|
-
const state =
|
|
35030
|
+
const { reducedMotion, toggleReducedMotion } = chunkME5QRTVS_js.useReducedMotion();
|
|
35031
|
+
const state = chunkME5QRTVS_js.useViewerState({
|
|
35090
35032
|
content,
|
|
35091
35033
|
canEdit,
|
|
35092
35034
|
inspectorInitiallyOpen: props.inspectorInitiallyOpen
|
|
@@ -35213,16 +35155,16 @@ var PowerPointViewerComponent = /* @__PURE__ */ React107.forwardRef(
|
|
|
35213
35155
|
}
|
|
35214
35156
|
}, [settings, optionsStore]);
|
|
35215
35157
|
const handleClearOptionsCache = useAutosaveCacheMaintenance(viewerOptions, storage);
|
|
35216
|
-
const mobile =
|
|
35158
|
+
const mobile = chunkME5QRTVS_js.useIsMobile();
|
|
35217
35159
|
const { isMobile, isTouchDevice, isVirtualKeyboardOpen } = mobile;
|
|
35218
|
-
const resizablePanels =
|
|
35160
|
+
const resizablePanels = chunkME5QRTVS_js.useResizablePanels();
|
|
35219
35161
|
const {
|
|
35220
35162
|
gridSpacingPx,
|
|
35221
35163
|
visibleSlideIndexes,
|
|
35222
35164
|
slideSectionGroups,
|
|
35223
35165
|
masterPseudoSlide,
|
|
35224
35166
|
authoredRange
|
|
35225
|
-
} =
|
|
35167
|
+
} = chunkME5QRTVS_js.useDerivedSlideState({
|
|
35226
35168
|
slides,
|
|
35227
35169
|
sections: state.sections,
|
|
35228
35170
|
customShows: state.customShows,
|
|
@@ -35247,7 +35189,7 @@ var PowerPointViewerComponent = /* @__PURE__ */ React107.forwardRef(
|
|
|
35247
35189
|
state.cropSessionRef
|
|
35248
35190
|
]
|
|
35249
35191
|
);
|
|
35250
|
-
const zoom =
|
|
35192
|
+
const zoom = chunkME5QRTVS_js.useZoomViewport({
|
|
35251
35193
|
canvasSize,
|
|
35252
35194
|
selectedElements: state.selectedElements,
|
|
35253
35195
|
fitPadding: props.fitPadding,
|
|
@@ -35262,7 +35204,7 @@ var PowerPointViewerComponent = /* @__PURE__ */ React107.forwardRef(
|
|
|
35262
35204
|
setIsDirty(true);
|
|
35263
35205
|
onChangeCallback.current?.();
|
|
35264
35206
|
}, [setIsDirty]);
|
|
35265
|
-
const history =
|
|
35207
|
+
const history = chunkME5QRTVS_js.useEditorHistory({
|
|
35266
35208
|
slides,
|
|
35267
35209
|
canvasSize,
|
|
35268
35210
|
activeSlideIndex,
|
|
@@ -35288,7 +35230,7 @@ var PowerPointViewerComponent = /* @__PURE__ */ React107.forwardRef(
|
|
|
35288
35230
|
setEditTemplateMode: state.setEditTemplateMode,
|
|
35289
35231
|
setHeaderFooter: state.setHeaderFooter
|
|
35290
35232
|
});
|
|
35291
|
-
const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } =
|
|
35233
|
+
const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = chunkME5QRTVS_js.usePresentationSetup({
|
|
35292
35234
|
mode,
|
|
35293
35235
|
slides,
|
|
35294
35236
|
visibleSlideIndexes,
|
|
@@ -35363,7 +35305,7 @@ ${url}`)
|
|
|
35363
35305
|
loading,
|
|
35364
35306
|
error
|
|
35365
35307
|
]);
|
|
35366
|
-
|
|
35308
|
+
chunkME5QRTVS_js.useTouchGestures({
|
|
35367
35309
|
targetRef: zoom.canvasViewportRef,
|
|
35368
35310
|
currentScale: zoom.scale,
|
|
35369
35311
|
callbacks: {
|
|
@@ -35385,7 +35327,7 @@ ${url}`)
|
|
|
35385
35327
|
},
|
|
35386
35328
|
enabled: isTouchDevice
|
|
35387
35329
|
});
|
|
35388
|
-
const dialogs =
|
|
35330
|
+
const dialogs = chunkME5QRTVS_js.useViewerDialogs({
|
|
35389
35331
|
mode,
|
|
35390
35332
|
slides,
|
|
35391
35333
|
activeSlide,
|
|
@@ -35434,7 +35376,7 @@ ${url}`)
|
|
|
35434
35376
|
zoom.handleZoomToFit();
|
|
35435
35377
|
zoom.canvasViewportRef.current?.scrollTo({ left: 0, top: 0 });
|
|
35436
35378
|
}, [mode]);
|
|
35437
|
-
const editorOps =
|
|
35379
|
+
const editorOps = chunkME5QRTVS_js.useEditorOperations({
|
|
35438
35380
|
state,
|
|
35439
35381
|
history,
|
|
35440
35382
|
zoom,
|
|
@@ -35477,7 +35419,7 @@ ${url}`)
|
|
|
35477
35419
|
handlerRef,
|
|
35478
35420
|
viewerApi,
|
|
35479
35421
|
loadVersion
|
|
35480
|
-
} =
|
|
35422
|
+
} = chunkME5QRTVS_js.useViewerIntegration({
|
|
35481
35423
|
transformCommittedText: (text) => pptx.applyAutoCorrect(text, viewerOptions.proofing),
|
|
35482
35424
|
state,
|
|
35483
35425
|
zoom,
|
|
@@ -35616,7 +35558,7 @@ ${url}`)
|
|
|
35616
35558
|
updateElementById: editorOps.ops.updateElementById
|
|
35617
35559
|
});
|
|
35618
35560
|
const ribbonScope = useRibbonScopeToken();
|
|
35619
|
-
const viewPreferencesSync =
|
|
35561
|
+
const viewPreferencesSync = chunkME5QRTVS_js.useViewPreferencesSync({
|
|
35620
35562
|
loadVersion,
|
|
35621
35563
|
viewProperties: state.viewProperties,
|
|
35622
35564
|
setViewProperties: state.setViewProperties,
|
|
@@ -35658,7 +35600,7 @@ ${url}`)
|
|
|
35658
35600
|
},
|
|
35659
35601
|
[state]
|
|
35660
35602
|
);
|
|
35661
|
-
const layoutSwitching =
|
|
35603
|
+
const layoutSwitching = chunkME5QRTVS_js.useLayoutSwitching({
|
|
35662
35604
|
handler: handlerRef.current,
|
|
35663
35605
|
slides,
|
|
35664
35606
|
activeSlideIndex,
|
|
@@ -36170,8 +36112,8 @@ ${url}`)
|
|
|
36170
36112
|
// Nothing previously provided it, so every one of those consumers was
|
|
36171
36113
|
// silently reading `DEFAULT_VIEWER_OPTIONS` forever, no matter what
|
|
36172
36114
|
// the user changed in the Options dialog.
|
|
36173
|
-
/* @__PURE__ */ jsxRuntime.jsx(ViewerOptionsProvider, { options: viewerOptions, store: optionsStore, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerCustomizationContext.Provider, { value: customizationResolved, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerStorageContext.Provider, { value: storage, 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(
|
|
36174
|
-
|
|
36115
|
+
/* @__PURE__ */ jsxRuntime.jsx(ViewerOptionsProvider, { options: viewerOptions, store: optionsStore, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerCustomizationContext.Provider, { value: customizationResolved, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerStorageContext.Provider, { value: storage, 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(chunkME5QRTVS_js.Rendering3DFlagsContext.Provider, { value: effective3D, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
36116
|
+
chunkME5QRTVS_js.CollaborationProvider,
|
|
36175
36117
|
{
|
|
36176
36118
|
config: collaboration,
|
|
36177
36119
|
canvasWidth: canvasSize.width,
|
|
@@ -36227,19 +36169,19 @@ ${url}`)
|
|
|
36227
36169
|
slideCount: slides.length
|
|
36228
36170
|
}
|
|
36229
36171
|
),
|
|
36230
|
-
/* @__PURE__ */ jsxRuntime.jsx(ShapeFormatContext.Provider, { value: shapeFormat, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonGalleryCommandsContext.Provider, { value: ribbonGalleries, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
36172
|
+
/* @__PURE__ */ jsxRuntime.jsx(ShapeFormatContext.Provider, { value: shapeFormat, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonGalleryCommandsContext.Provider, { value: ribbonGalleries, children: /* @__PURE__ */ jsxRuntime.jsx(chunkME5QRTVS_js.ChartFormatContext.Provider, { value: chartFormat, children: viewerContent }) }) })
|
|
36231
36173
|
]
|
|
36232
36174
|
}
|
|
36233
36175
|
) }) }) }) }) }) }) }) })
|
|
36234
36176
|
);
|
|
36235
36177
|
}
|
|
36236
36178
|
);
|
|
36237
|
-
var PowerPointViewer2 = /* @__PURE__ */
|
|
36179
|
+
var PowerPointViewer2 = /* @__PURE__ */ chunkME5QRTVS_js.withDisplayName(
|
|
36238
36180
|
PowerPointViewerComponent,
|
|
36239
36181
|
"PowerPointViewer"
|
|
36240
36182
|
);
|
|
36241
36183
|
function CollaborationStatusStrip() {
|
|
36242
|
-
const collab =
|
|
36184
|
+
const collab = chunkME5QRTVS_js.useCollaboration();
|
|
36243
36185
|
if (!collab) {
|
|
36244
36186
|
return null;
|
|
36245
36187
|
}
|
|
@@ -36256,9 +36198,9 @@ function CollaborationStateReporter({
|
|
|
36256
36198
|
onChange,
|
|
36257
36199
|
onStatus
|
|
36258
36200
|
}) {
|
|
36259
|
-
const collab =
|
|
36201
|
+
const collab = chunkME5QRTVS_js.useCollaboration();
|
|
36260
36202
|
useCollaborationStateReport(collab, onChange);
|
|
36261
|
-
|
|
36203
|
+
chunkME5QRTVS_js.useReportOnChange(collab?.status ?? "disconnected", onStatus, "disconnected");
|
|
36262
36204
|
return null;
|
|
36263
36205
|
}
|
|
36264
36206
|
function CollaborationDocumentSync({
|
|
@@ -36272,8 +36214,8 @@ function CollaborationDocumentSync({
|
|
|
36272
36214
|
deckSaveState,
|
|
36273
36215
|
onReadOnlyChange
|
|
36274
36216
|
}) {
|
|
36275
|
-
const collab =
|
|
36276
|
-
|
|
36217
|
+
const collab = chunkME5QRTVS_js.useCollaboration();
|
|
36218
|
+
chunkME5QRTVS_js.useCollaborationDocumentSync({
|
|
36277
36219
|
collaboration: collab,
|
|
36278
36220
|
slides,
|
|
36279
36221
|
templateElementsBySlideId,
|
|
@@ -36292,14 +36234,14 @@ function CollaborationFollowLayer({
|
|
|
36292
36234
|
setActiveSlideIndex,
|
|
36293
36235
|
slideCount
|
|
36294
36236
|
}) {
|
|
36295
|
-
const collab =
|
|
36296
|
-
const { followedClientId, followUser } =
|
|
36237
|
+
const collab = chunkME5QRTVS_js.useCollaboration();
|
|
36238
|
+
const { followedClientId, followUser } = chunkME5QRTVS_js.useFollowMode({
|
|
36297
36239
|
collab,
|
|
36298
36240
|
activeSlideIndex,
|
|
36299
36241
|
setActiveSlideIndex,
|
|
36300
36242
|
slideCount
|
|
36301
36243
|
});
|
|
36302
|
-
|
|
36244
|
+
chunkME5QRTVS_js.useBroadcastFollower({
|
|
36303
36245
|
collab,
|
|
36304
36246
|
activeSlideIndex,
|
|
36305
36247
|
setActiveSlideIndex,
|