pptx-react-viewer 1.24.1 → 1.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{Model3DScene-E7YIHJ2R.mjs → Model3DScene-2QZ7CADN.mjs} +2 -2
  3. package/dist/Model3DScene-2QZ7CADN.mjs.br +0 -0
  4. package/dist/Model3DScene-2QZ7CADN.mjs.gz +0 -0
  5. package/dist/{Model3DScene-RYR4SSOM.js → Model3DScene-AWSM6CYB.js} +3 -3
  6. package/dist/Model3DScene-AWSM6CYB.js.br +0 -0
  7. package/dist/Model3DScene-AWSM6CYB.js.gz +0 -0
  8. package/dist/PowerPointViewer-CnADroqZ.d.ts.map +1 -1
  9. package/dist/{SurfaceChart3DScene-ZM3J67VQ.mjs → SurfaceChart3DScene-IW4WGZHH.mjs} +2 -2
  10. package/dist/SurfaceChart3DScene-IW4WGZHH.mjs.br +0 -0
  11. package/dist/SurfaceChart3DScene-IW4WGZHH.mjs.gz +0 -0
  12. package/dist/{SurfaceChart3DScene-PBSZVNAM.js → SurfaceChart3DScene-PJ36HRGC.js} +3 -3
  13. package/dist/SurfaceChart3DScene-PJ36HRGC.js.br +0 -0
  14. package/dist/SurfaceChart3DScene-PJ36HRGC.js.gz +0 -0
  15. package/dist/{chunk-ZISXRMDJ.js → chunk-2EFVXYNA.js} +187 -1
  16. package/dist/chunk-2EFVXYNA.js.br +0 -0
  17. package/dist/{chunk-ZISXRMDJ.js.gz → chunk-2EFVXYNA.js.gz} +0 -0
  18. package/dist/{chunk-KVTSERRP.js → chunk-ASN2DZSP.js} +1743 -1105
  19. package/dist/chunk-ASN2DZSP.js.br +0 -0
  20. package/dist/chunk-ASN2DZSP.js.gz +0 -0
  21. package/dist/{chunk-KV3EOLP3.js → chunk-CYZLRYJV.js} +66 -8
  22. package/dist/chunk-CYZLRYJV.js.br +0 -0
  23. package/dist/{chunk-KV3EOLP3.js.gz → chunk-CYZLRYJV.js.gz} +0 -0
  24. package/dist/{chunk-E3KJKCSV.mjs → chunk-M3SIFXWD.mjs} +187 -1
  25. package/dist/chunk-M3SIFXWD.mjs.br +0 -0
  26. package/dist/{chunk-E3KJKCSV.mjs.gz → chunk-M3SIFXWD.mjs.gz} +0 -0
  27. package/dist/{chunk-LDZQNYWL.mjs → chunk-M7JHZV3P.mjs} +66 -8
  28. package/dist/chunk-M7JHZV3P.mjs.br +0 -0
  29. package/dist/{chunk-LDZQNYWL.mjs.gz → chunk-M7JHZV3P.mjs.gz} +0 -0
  30. package/dist/{chunk-275WERXZ.js → chunk-NIWO2WYI.js} +908 -43
  31. package/dist/chunk-NIWO2WYI.js.br +0 -0
  32. package/dist/chunk-NIWO2WYI.js.gz +0 -0
  33. package/dist/{chunk-DPTDFK2L.js → chunk-NT5FIWWU.js} +590 -511
  34. package/dist/chunk-NT5FIWWU.js.br +0 -0
  35. package/dist/chunk-NT5FIWWU.js.gz +0 -0
  36. package/dist/{chunk-MEVZNYJK.mjs → chunk-PMGLZ7N4.mjs} +860 -10
  37. package/dist/chunk-PMGLZ7N4.mjs.br +0 -0
  38. package/dist/chunk-PMGLZ7N4.mjs.gz +0 -0
  39. package/dist/{chunk-UCFXE6YS.mjs → chunk-QTIJWFJX.mjs} +117 -39
  40. package/dist/chunk-QTIJWFJX.mjs.br +0 -0
  41. package/dist/chunk-QTIJWFJX.mjs.gz +0 -0
  42. package/dist/{chunk-UDM2SYE3.mjs → chunk-RVKPHAK5.mjs} +966 -328
  43. package/dist/chunk-RVKPHAK5.mjs.br +0 -0
  44. package/dist/chunk-RVKPHAK5.mjs.gz +0 -0
  45. package/dist/{dist-XF3QJAEF.js → dist-AFRACFHO.js} +562 -562
  46. package/dist/dist-AFRACFHO.js.br +0 -0
  47. package/dist/dist-AFRACFHO.js.gz +0 -0
  48. package/dist/{dist-A3OATMOE.mjs → dist-RHAXXX2R.mjs} +1 -1
  49. package/dist/dist-RHAXXX2R.mjs.br +0 -0
  50. package/dist/dist-RHAXXX2R.mjs.gz +0 -0
  51. package/dist/hooks-unstable.d.ts +207 -2
  52. package/dist/hooks-unstable.d.ts.map +1 -1
  53. package/dist/hooks-unstable.js +82 -78
  54. package/dist/hooks-unstable.js.br +0 -0
  55. package/dist/hooks-unstable.js.gz +0 -0
  56. package/dist/hooks-unstable.mjs +4 -4
  57. package/dist/hooks-unstable.mjs.br +0 -0
  58. package/dist/hooks-unstable.mjs.gz +0 -0
  59. package/dist/i18n.js +4 -4
  60. package/dist/i18n.js.br +0 -0
  61. package/dist/i18n.js.gz +0 -0
  62. package/dist/i18n.mjs +1 -1
  63. package/dist/i18n.mjs.br +0 -0
  64. package/dist/i18n.mjs.gz +0 -0
  65. package/dist/{index-waNAYwmr.d.ts → index-DWvM1PBB.d.ts} +16 -1
  66. package/dist/index-DWvM1PBB.d.ts.map +1 -0
  67. package/dist/index.d.ts +146 -26
  68. package/dist/index.js +35 -35
  69. package/dist/index.js.br +0 -0
  70. package/dist/index.js.gz +0 -0
  71. package/dist/index.mjs +5 -5
  72. package/dist/index.mjs.br +0 -0
  73. package/dist/index.mjs.gz +0 -0
  74. package/dist/pptx-viewer.css +1 -1
  75. package/dist/pptx-viewer.css.br +0 -0
  76. package/dist/pptx-viewer.css.gz +0 -0
  77. package/dist/viewer/index.js +21 -21
  78. package/dist/viewer/index.js.br +0 -0
  79. package/dist/viewer/index.js.gz +0 -0
  80. package/dist/viewer/index.mjs +5 -5
  81. package/dist/viewer/index.mjs.br +0 -0
  82. package/dist/viewer/index.mjs.gz +0 -0
  83. package/package.json +1 -1
  84. package/dist/Model3DScene-E7YIHJ2R.mjs.br +0 -0
  85. package/dist/Model3DScene-E7YIHJ2R.mjs.gz +0 -0
  86. package/dist/Model3DScene-RYR4SSOM.js.br +0 -0
  87. package/dist/Model3DScene-RYR4SSOM.js.gz +0 -0
  88. package/dist/SurfaceChart3DScene-PBSZVNAM.js.br +0 -0
  89. package/dist/SurfaceChart3DScene-PBSZVNAM.js.gz +0 -0
  90. package/dist/SurfaceChart3DScene-ZM3J67VQ.mjs.br +0 -0
  91. package/dist/SurfaceChart3DScene-ZM3J67VQ.mjs.gz +0 -0
  92. package/dist/chunk-275WERXZ.js.br +0 -0
  93. package/dist/chunk-275WERXZ.js.gz +0 -0
  94. package/dist/chunk-DPTDFK2L.js.br +0 -0
  95. package/dist/chunk-DPTDFK2L.js.gz +0 -0
  96. package/dist/chunk-E3KJKCSV.mjs.br +0 -0
  97. package/dist/chunk-KV3EOLP3.js.br +0 -0
  98. package/dist/chunk-KVTSERRP.js.br +0 -0
  99. package/dist/chunk-KVTSERRP.js.gz +0 -0
  100. package/dist/chunk-LDZQNYWL.mjs.br +0 -0
  101. package/dist/chunk-MEVZNYJK.mjs.br +0 -0
  102. package/dist/chunk-MEVZNYJK.mjs.gz +0 -0
  103. package/dist/chunk-UCFXE6YS.mjs.br +0 -0
  104. package/dist/chunk-UCFXE6YS.mjs.gz +0 -0
  105. package/dist/chunk-UDM2SYE3.mjs.br +0 -0
  106. package/dist/chunk-UDM2SYE3.mjs.gz +0 -0
  107. package/dist/chunk-ZISXRMDJ.js.br +0 -0
  108. package/dist/dist-A3OATMOE.mjs.br +0 -0
  109. package/dist/dist-A3OATMOE.mjs.gz +0 -0
  110. package/dist/dist-XF3QJAEF.js.br +0 -0
  111. package/dist/dist-XF3QJAEF.js.gz +0 -0
  112. package/dist/index-waNAYwmr.d.ts.map +0 -1
Binary file
Binary file
@@ -66881,6 +66881,8 @@ var PptxHandlerRuntime56 = class extends PptxHandlerRuntime55 {
66881
66881
  const existing = merged[key];
66882
66882
  if (value && typeof value === "object" && !Array.isArray(value) && existing && typeof existing === "object" && !Array.isArray(existing)) {
66883
66883
  merged[key] = this.mergeXmlObjects(existing, value, depth + 1);
66884
+ } else if (value === "" && existing !== void 0 && existing !== "" && typeof existing === "object") {
66885
+ merged[key] = existing;
66884
66886
  } else {
66885
66887
  merged[key] = value;
66886
66888
  }
@@ -69641,32 +69643,56 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
69641
69643
  }
69642
69644
  const grpSpPr = group["p:grpSpPr"];
69643
69645
  const xfrm = grpSpPr?.["a:xfrm"];
69646
+ const EMU_PX = _PptxHandlerRuntime30.EMU_PER_PX;
69644
69647
  let parentX = 0, parentY = 0, parentW = 0, parentH = 0;
69645
69648
  let chX = 0, chY = 0, chW = 0, chH = 0;
69646
69649
  if (xfrm) {
69647
69650
  const off = xfrm["a:off"];
69648
69651
  if (off) {
69649
- parentX = Math.round(parseEmuInt2(off["@_x"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69650
- parentY = Math.round(parseEmuInt2(off["@_y"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69652
+ parentX = parseEmuInt2(off["@_x"]) / EMU_PX;
69653
+ parentY = parseEmuInt2(off["@_y"]) / EMU_PX;
69651
69654
  }
69652
69655
  const ext = xfrm["a:ext"];
69653
69656
  if (ext) {
69654
- parentW = Math.round(parseEmuInt2(ext["@_cx"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69655
- parentH = Math.round(parseEmuInt2(ext["@_cy"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69657
+ parentW = parseEmuInt2(ext["@_cx"]) / EMU_PX;
69658
+ parentH = parseEmuInt2(ext["@_cy"]) / EMU_PX;
69656
69659
  }
69657
69660
  const chOff = xfrm["a:chOff"];
69658
69661
  if (chOff) {
69659
- chX = Math.round(parseEmuInt2(chOff["@_x"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69660
- chY = Math.round(parseEmuInt2(chOff["@_y"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69662
+ chX = parseEmuInt2(chOff["@_x"]) / EMU_PX;
69663
+ chY = parseEmuInt2(chOff["@_y"]) / EMU_PX;
69661
69664
  }
69662
69665
  const chExt = xfrm["a:chExt"];
69663
69666
  if (chExt) {
69664
- chW = Math.round(parseEmuInt2(chExt["@_cx"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69665
- chH = Math.round(parseEmuInt2(chExt["@_cy"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69667
+ chW = parseEmuInt2(chExt["@_cx"]) / EMU_PX;
69668
+ chH = parseEmuInt2(chExt["@_cy"]) / EMU_PX;
69666
69669
  }
69667
69670
  }
69668
69671
  const scaleX = chW > 0 ? parentW / chW : 1;
69669
69672
  const scaleY = chH > 0 ? parentH / chH : 1;
69673
+ const rawChildXfrm = (childNode) => {
69674
+ if (!childNode) {
69675
+ return void 0;
69676
+ }
69677
+ const childXfrm = childNode["p:spPr"]?.["a:xfrm"] ?? childNode["p:xfrm"];
69678
+ return childXfrm;
69679
+ };
69680
+ const applyRawChildGeometry = (el, childNode) => {
69681
+ const childXfrm = rawChildXfrm(childNode);
69682
+ if (!childXfrm) {
69683
+ return;
69684
+ }
69685
+ const off = childXfrm["a:off"];
69686
+ const ext = childXfrm["a:ext"];
69687
+ if (off) {
69688
+ el.x = parseEmuInt2(off["@_x"]) / EMU_PX;
69689
+ el.y = parseEmuInt2(off["@_y"]) / EMU_PX;
69690
+ }
69691
+ if (ext) {
69692
+ el.width = parseEmuInt2(ext["@_cx"]) / EMU_PX;
69693
+ el.height = parseEmuInt2(ext["@_cy"]) / EMU_PX;
69694
+ }
69695
+ };
69670
69696
  const transformElement = (el) => {
69671
69697
  const relativeX = el.x - chX;
69672
69698
  const relativeY = el.y - chY;
@@ -69724,6 +69750,8 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
69724
69750
  `${baseId}-`
69725
69751
  );
69726
69752
  if (element) {
69753
+ const childNode = this.ensureArray(group[entry.tag])[entry.indexInType];
69754
+ applyRawChildGeometry(element, childNode);
69727
69755
  transformElement(element);
69728
69756
  elements2.push(element);
69729
69757
  }
@@ -71218,6 +71246,21 @@ var PptxHandlerRuntime74 = class extends PptxHandlerRuntime73 {
71218
71246
  element.id = `master-${element.id}`;
71219
71247
  elements2.push(element);
71220
71248
  }
71249
+ } else if (entry.tag === "p:grpSp") {
71250
+ const groups = this.ensureArray(spTree["p:grpSp"]);
71251
+ const group = groups[entry.indexInType];
71252
+ if (!group) {
71253
+ continue;
71254
+ }
71255
+ const element = await this.parseGroupShapeAsGroup(
71256
+ group,
71257
+ `master-group-${masterToken}-${entry.indexInType}`,
71258
+ masterPath
71259
+ );
71260
+ if (element) {
71261
+ element.id = `master-${element.id}`;
71262
+ elements2.push(element);
71263
+ }
71221
71264
  }
71222
71265
  }
71223
71266
  this.masterCache.set(masterPath, elements2);
@@ -71425,6 +71468,21 @@ var PptxHandlerRuntime76 = class extends PptxHandlerRuntime75 {
71425
71468
  element.id = `layout-${element.id}`;
71426
71469
  elements2.push(element);
71427
71470
  }
71471
+ } else if (entry.tag === "p:grpSp") {
71472
+ const groups = this.ensureArray(spTree["p:grpSp"]);
71473
+ const group = groups[entry.indexInType];
71474
+ if (!group) {
71475
+ continue;
71476
+ }
71477
+ const element = await this.parseGroupShapeAsGroup(
71478
+ group,
71479
+ `layout-group-${layoutToken}-${entry.indexInType}`,
71480
+ layoutPath
71481
+ );
71482
+ if (element) {
71483
+ element.id = `layout-${element.id}`;
71484
+ elements2.push(element);
71485
+ }
71428
71486
  }
71429
71487
  }
71430
71488
  const layoutShowMasterSp = xmlAttr(
Binary file
@@ -2529,7 +2529,193 @@ var translationsEn = {
2529
2529
  "pptx.connectorArrows.startLength": "Start Length",
2530
2530
  "pptx.connectorArrows.endLength": "End Length",
2531
2531
  "pptx.slideThumbnail.transitionTooltip": "Transition: {{name}}",
2532
- "pptx.ribbon.groupShapeStyles": "Shape Styles"
2532
+ "pptx.ribbon.groupShapeStyles": "Shape Styles",
2533
+ "pptx.options.title": "Options",
2534
+ "pptx.options.resetAll": "Reset all options",
2535
+ "pptx.options.resetTab": "Reset this tab",
2536
+ "pptx.options.general.description": "General options for working with the viewer.",
2537
+ "pptx.options.general.userInterface": "User Interface options",
2538
+ "pptx.options.general.displayOptimization": "When using multiple displays",
2539
+ "pptx.options.displayOptimization.appearance": "Optimize for best appearance",
2540
+ "pptx.options.displayOptimization.compatibility": "Optimize for compatibility",
2541
+ "pptx.options.general.showMiniToolbar": "Show Mini Toolbar on selection",
2542
+ "pptx.options.general.showMiniToolbarInfo": "Shows the floating formatting toolbar when you select text.",
2543
+ "pptx.options.general.enableLivePreview": "Enable Live Preview",
2544
+ "pptx.options.general.enableLivePreviewInfo": "Previews formatting changes on the slide as you hover over gallery choices.",
2545
+ "pptx.options.general.collapseRibbon": "Collapse the ribbon automatically",
2546
+ "pptx.options.general.collapseSearch": "Collapse the search box by default",
2547
+ "pptx.options.general.screenTipStyle": "ScreenTip style",
2548
+ "pptx.options.screenTipStyle.descriptions": "Show feature descriptions in ScreenTips",
2549
+ "pptx.options.screenTipStyle.plain": "Don't show feature descriptions in ScreenTips",
2550
+ "pptx.options.screenTipStyle.off": "Don't show ScreenTips",
2551
+ "pptx.options.general.personalize": "Personalize your copy of the viewer",
2552
+ "pptx.options.general.userName": "User name",
2553
+ "pptx.options.general.userInitials": "Initials",
2554
+ "pptx.options.general.appearance": "Viewer theme",
2555
+ "pptx.options.general.startup": "Start up options",
2556
+ "pptx.options.general.showStartScreen": "Show the Start screen when this application starts",
2557
+ "pptx.options.proofing.label": "Proofing",
2558
+ "pptx.options.proofing.description": "Change how the viewer corrects and formats your text.",
2559
+ "pptx.options.proofing.autoCorrect": "AutoCorrect options",
2560
+ "pptx.options.proofing.autoCorrectDescription": "Change how text is corrected and formatted as you type.",
2561
+ "pptx.options.proofing.twoInitialCapitals": "Correct TWo INitial CApitals",
2562
+ "pptx.options.proofing.capitalizeFirstLetter": "Capitalize first letter of sentences",
2563
+ "pptx.options.proofing.capitalizeDayNames": "Capitalize names of days",
2564
+ "pptx.options.proofing.smartQuotes": "Replace straight quotes with smart quotes",
2565
+ "pptx.options.proofing.hyphensToDash": "Replace hyphens (--) with dash",
2566
+ "pptx.options.proofing.fractions": "Replace fractions (1/2) with fraction characters (\xBD)",
2567
+ "pptx.options.proofing.ordinals": "Replace ordinals (1st) with superscript",
2568
+ "pptx.options.proofing.spellingOffice": "When correcting spelling",
2569
+ "pptx.options.proofing.ignoreUppercase": "Ignore words in UPPERCASE",
2570
+ "pptx.options.proofing.ignoreWordsWithNumbers": "Ignore words that contain numbers",
2571
+ "pptx.options.proofing.ignoreInternetAddresses": "Ignore Internet and file addresses",
2572
+ "pptx.options.proofing.flagRepeatedWords": "Flag repeated words",
2573
+ "pptx.options.proofing.spellingViewer": "When correcting spelling in the viewer",
2574
+ "pptx.options.proofing.checkSpellingAsYouType": "Check spelling as you type",
2575
+ "pptx.options.proofing.hideSpellingErrors": "Hide spelling errors",
2576
+ "pptx.options.save.label": "Save",
2577
+ "pptx.options.save.description": "Customize how documents are saved.",
2578
+ "pptx.options.save.savePresentations": "Save presentations",
2579
+ "pptx.options.save.autoSave": "Save changes automatically (AutoSave)",
2580
+ "pptx.options.save.autoSaveInfo": "Snapshots are stored locally and offered for recovery when you reopen.",
2581
+ "pptx.options.save.defaultFormat": "Save files in this format",
2582
+ "pptx.options.saveFormat.pptx": "PowerPoint Presentation (*.pptx)",
2583
+ "pptx.options.saveFormat.pdf": "PDF Document (*.pdf)",
2584
+ "pptx.options.saveFormat.png": "PNG Images (*.png)",
2585
+ "pptx.options.save.autoRecoverInterval": "Save AutoRecover information every",
2586
+ "pptx.options.save.minutes": "minutes",
2587
+ "pptx.options.save.keepLastAutoRecovered": "Keep the last AutoRecovered version if I close without saving",
2588
+ "pptx.options.save.fidelity": "Preserve fidelity when sharing this presentation",
2589
+ "pptx.options.save.embedFonts": "Embed fonts in the file",
2590
+ "pptx.options.save.embedFontsInfo": "Embedding fonts increases file size but keeps text identical on other devices.",
2591
+ "pptx.options.save.embedAllCharacters": "Embed all characters (best for editing by other people)",
2592
+ "pptx.options.save.cache": "Cache Settings",
2593
+ "pptx.options.save.cacheRetentionDays": "Days to keep files in the local document cache",
2594
+ "pptx.options.save.days": "days",
2595
+ "pptx.options.save.clearCacheOnClose": "Delete files from the local document cache when they are closed",
2596
+ "pptx.options.save.clearCacheNow": "Delete cached files",
2597
+ "pptx.options.save.clearCacheDescription": "Deletes locally stored recovery snapshots and recent files. This does not affect the open presentation.",
2598
+ "pptx.options.language.description": "Set the viewer language preferences.",
2599
+ "pptx.options.language.displayLanguage": "Display language",
2600
+ "pptx.options.language.displayLanguageDescription": "Buttons, menus, and other controls will show in the selected language.",
2601
+ "pptx.options.accessibility.label": "Accessibility",
2602
+ "pptx.options.accessibility.description": "Make the viewer more accessible.",
2603
+ "pptx.options.accessibility.assistant": "Make your document accessible to others",
2604
+ "pptx.options.accessibility.showStatus": "Show accessibility status in the status bar",
2605
+ "pptx.options.accessibility.feedback": "Feedback options",
2606
+ "pptx.options.accessibility.feedbackWithSound": "Provide feedback with sound",
2607
+ "pptx.options.accessibility.soundScheme": "Sound Scheme",
2608
+ "pptx.options.soundScheme.modern": "Modern",
2609
+ "pptx.options.soundScheme.classic": "Classic",
2610
+ "pptx.options.accessibility.display": "Application display options",
2611
+ "pptx.options.accessibility.showShortcutKeys": "Show shortcut keys in ScreenTips",
2612
+ "pptx.options.advanced.label": "Advanced",
2613
+ "pptx.options.advanced.description": "Advanced options for working with the viewer.",
2614
+ "pptx.options.advanced.editing": "Editing options",
2615
+ "pptx.options.advanced.autoSelectWord": "When selecting, automatically select entire word",
2616
+ "pptx.options.advanced.textDragAndDrop": "Allow text to be dragged and dropped",
2617
+ "pptx.options.advanced.maximumUndoSteps": "Maximum number of undos",
2618
+ "pptx.options.advanced.cutCopyPaste": "Cut, copy, and paste",
2619
+ "pptx.options.advanced.smartCutAndPaste": "Use smart cut and paste",
2620
+ "pptx.options.advanced.showPasteOptions": "Show Paste Options button when content is pasted",
2621
+ "pptx.options.advanced.imageQuality": "Image Size and Quality",
2622
+ "pptx.options.advanced.doNotCompressImages": "Do not compress images in file",
2623
+ "pptx.options.advanced.defaultResolution": "Default resolution",
2624
+ "pptx.options.resolution.highFidelity": "High fidelity",
2625
+ "pptx.options.resolution.ppi330": "330 ppi",
2626
+ "pptx.options.resolution.ppi220": "220 ppi",
2627
+ "pptx.options.resolution.ppi150": "150 ppi",
2628
+ "pptx.options.resolution.ppi96": "96 ppi",
2629
+ "pptx.options.advanced.chart": "Chart",
2630
+ "pptx.options.advanced.chartFollowDataPoint": "Properties follow chart data point",
2631
+ "pptx.options.advanced.display": "Display",
2632
+ "pptx.options.advanced.recentCount": "Show this number of Recent Presentations",
2633
+ "pptx.options.advanced.disableHardwareAcceleration": "Disable hardware graphics acceleration",
2634
+ "pptx.options.advanced.openDocumentsView": "Open all documents using this view",
2635
+ "pptx.options.openView.savedView": "The view saved in the file",
2636
+ "pptx.options.openView.normal": "Normal",
2637
+ "pptx.options.openView.outline": "Outline",
2638
+ "pptx.options.openView.slideSorter": "Slide Sorter",
2639
+ "pptx.options.openView.notes": "Notes",
2640
+ "pptx.options.advanced.slideShow": "Slide Show",
2641
+ "pptx.options.advanced.showMenuOnRightClick": "Show menu on right mouse click",
2642
+ "pptx.options.advanced.showPopupToolbar": "Show popup toolbar",
2643
+ "pptx.options.advanced.promptKeepInk": "Prompt to keep ink annotations when exiting",
2644
+ "pptx.options.advanced.endWithBlackSlide": "End with black slide",
2645
+ "pptx.options.advanced.print": "Print",
2646
+ "pptx.options.advanced.printInBackground": "Print in background",
2647
+ "pptx.options.advanced.printHighQuality": "High quality",
2648
+ "pptx.options.advanced.printUseMostRecent": "Use the most recently used print settings",
2649
+ "pptx.options.advanced.printWhat": "Print what",
2650
+ "pptx.options.printWhat.slides": "Full Page Slides",
2651
+ "pptx.options.printWhat.handouts": "Handouts",
2652
+ "pptx.options.printWhat.notes": "Notes Pages",
2653
+ "pptx.options.printWhat.outline": "Outline",
2654
+ "pptx.options.advanced.printColorMode": "Color/grayscale",
2655
+ "pptx.options.printColorMode.color": "Color",
2656
+ "pptx.options.printColorMode.grayscale": "Grayscale",
2657
+ "pptx.options.printColorMode.blackAndWhite": "Pure Black and White",
2658
+ "pptx.options.advanced.printHiddenSlides": "Print hidden slides",
2659
+ "pptx.options.advanced.printScaleToFit": "Scale to fit paper",
2660
+ "pptx.options.advanced.printFrameSlides": "Frame slides",
2661
+ "pptx.options.ribbon.label": "Customize Ribbon",
2662
+ "pptx.options.ribbon.description": "Customize the ribbon.",
2663
+ "pptx.options.ribbon.tabsTitle": "Main Tabs",
2664
+ "pptx.options.ribbon.tabsDescription": "Untick a tab to hide it from the ribbon. The File tab is always shown.",
2665
+ "pptx.options.ribbon.reset": "Reset ribbon customizations",
2666
+ "pptx.options.quickAccess.label": "Quick Access Toolbar",
2667
+ "pptx.options.quickAccess.description": "Customize the Quick Access Toolbar.",
2668
+ "pptx.options.quickAccess.optionsTitle": "Quick Access Toolbar options",
2669
+ "pptx.options.quickAccess.show": "Show Quick Access Toolbar",
2670
+ "pptx.options.quickAccess.position": "Toolbar Position",
2671
+ "pptx.options.quickAccessPosition.above": "Above Ribbon",
2672
+ "pptx.options.quickAccessPosition.below": "Below Ribbon",
2673
+ "pptx.options.quickAccess.showLabels": "Always show command labels",
2674
+ "pptx.options.quickAccess.chooseCommands": "Choose commands",
2675
+ "pptx.options.quickAccess.currentCommands": "Customize Quick Access Toolbar",
2676
+ "pptx.options.quickAccess.add": "Add",
2677
+ "pptx.options.quickAccess.remove": "Remove",
2678
+ "pptx.options.quickAccess.moveUp": "Move Up",
2679
+ "pptx.options.quickAccess.moveDown": "Move Down",
2680
+ "pptx.options.quickAccess.reset": "Reset",
2681
+ "pptx.options.quickAccess.command.presentFromStart": "From Beginning",
2682
+ "pptx.options.quickAccess.command.print": "Print",
2683
+ "pptx.options.quickAccess.command.exportPdf": "Export as PDF",
2684
+ "pptx.options.quickAccess.command.newSlide": "New Slide",
2685
+ "pptx.options.quickAccess.command.zoomIn": "Zoom In",
2686
+ "pptx.options.quickAccess.command.zoomOut": "Zoom Out",
2687
+ "pptx.options.addIns.label": "Add-ins",
2688
+ "pptx.options.addIns.description": "View and manage viewer capability modules.",
2689
+ "pptx.options.addIns.name": "Name",
2690
+ "pptx.options.addIns.location": "Location",
2691
+ "pptx.options.addIns.type": "Type",
2692
+ "pptx.options.addIns.active": "Active Capability Modules",
2693
+ "pptx.options.addIns.inactive": "Inactive Capability Modules",
2694
+ "pptx.options.addInType.renderer": "Renderer",
2695
+ "pptx.options.addInType.converter": "Converter",
2696
+ "pptx.options.addInType.collaboration": "Collaboration",
2697
+ "pptx.options.addInType.localization": "Localization",
2698
+ "pptx.options.addIns.smartArt3d": "SmartArt 3D Renderer",
2699
+ "pptx.options.addIns.smartArt3dDescription": "Opt-in three.js renderer for extruded and spatial SmartArt layouts.",
2700
+ "pptx.options.addIns.model3d": "3D Model Renderer",
2701
+ "pptx.options.addIns.model3dDescription": "Interactive GLB/GLTF model rendering on slides.",
2702
+ "pptx.options.addIns.emfConverter": "EMF/WMF Converter",
2703
+ "pptx.options.addIns.emfConverterDescription": "Converts EMF and WMF metafile images to PNG for display.",
2704
+ "pptx.options.addIns.mtxDecompressor": "MicroType Express Font Decompressor",
2705
+ "pptx.options.addIns.mtxDecompressorDescription": "Decompresses embedded MicroType Express fonts.",
2706
+ "pptx.options.addIns.collaboration": "Real-time Collaboration",
2707
+ "pptx.options.addIns.collaborationDescription": "CRDT-based co-editing, presence, and sync relay support.",
2708
+ "pptx.options.addIns.locales": "Locale Packs",
2709
+ "pptx.options.addIns.localesDescription": "Additional display languages for the viewer chrome.",
2710
+ "pptx.options.trust.label": "Trust Center",
2711
+ "pptx.options.trust.description": "Help keep your documents safe and secure.",
2712
+ "pptx.options.trust.settingsTitle": "Security settings",
2713
+ "pptx.options.trust.settingsDescription": "These settings help keep the content you open safe. We recommend the defaults.",
2714
+ "pptx.options.trust.protectedView": "Open presentations in Protected View",
2715
+ "pptx.options.trust.protectedViewInfo": "Documents open read-only; use Enable Editing to make changes.",
2716
+ "pptx.options.trust.allowExternalContent": "Allow external content (remote images and media)",
2717
+ "pptx.options.trust.allowExternalContentInfo": "When off, only content embedded in the file is displayed.",
2718
+ "pptx.options.trust.confirmHyperlinks": "Confirm before opening external hyperlinks"
2533
2719
  };
2534
2720
  function keyToLabel(key) {
2535
2721
  const last = key.split(".").pop() ?? key;
Binary file
@@ -66875,6 +66875,8 @@ var PptxHandlerRuntime56 = class extends PptxHandlerRuntime55 {
66875
66875
  const existing = merged[key];
66876
66876
  if (value && typeof value === "object" && !Array.isArray(value) && existing && typeof existing === "object" && !Array.isArray(existing)) {
66877
66877
  merged[key] = this.mergeXmlObjects(existing, value, depth + 1);
66878
+ } else if (value === "" && existing !== void 0 && existing !== "" && typeof existing === "object") {
66879
+ merged[key] = existing;
66878
66880
  } else {
66879
66881
  merged[key] = value;
66880
66882
  }
@@ -69635,32 +69637,56 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
69635
69637
  }
69636
69638
  const grpSpPr = group["p:grpSpPr"];
69637
69639
  const xfrm = grpSpPr?.["a:xfrm"];
69640
+ const EMU_PX = _PptxHandlerRuntime30.EMU_PER_PX;
69638
69641
  let parentX = 0, parentY = 0, parentW = 0, parentH = 0;
69639
69642
  let chX = 0, chY = 0, chW = 0, chH = 0;
69640
69643
  if (xfrm) {
69641
69644
  const off = xfrm["a:off"];
69642
69645
  if (off) {
69643
- parentX = Math.round(parseEmuInt2(off["@_x"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69644
- parentY = Math.round(parseEmuInt2(off["@_y"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69646
+ parentX = parseEmuInt2(off["@_x"]) / EMU_PX;
69647
+ parentY = parseEmuInt2(off["@_y"]) / EMU_PX;
69645
69648
  }
69646
69649
  const ext = xfrm["a:ext"];
69647
69650
  if (ext) {
69648
- parentW = Math.round(parseEmuInt2(ext["@_cx"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69649
- parentH = Math.round(parseEmuInt2(ext["@_cy"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69651
+ parentW = parseEmuInt2(ext["@_cx"]) / EMU_PX;
69652
+ parentH = parseEmuInt2(ext["@_cy"]) / EMU_PX;
69650
69653
  }
69651
69654
  const chOff = xfrm["a:chOff"];
69652
69655
  if (chOff) {
69653
- chX = Math.round(parseEmuInt2(chOff["@_x"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69654
- chY = Math.round(parseEmuInt2(chOff["@_y"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69656
+ chX = parseEmuInt2(chOff["@_x"]) / EMU_PX;
69657
+ chY = parseEmuInt2(chOff["@_y"]) / EMU_PX;
69655
69658
  }
69656
69659
  const chExt = xfrm["a:chExt"];
69657
69660
  if (chExt) {
69658
- chW = Math.round(parseEmuInt2(chExt["@_cx"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69659
- chH = Math.round(parseEmuInt2(chExt["@_cy"]) / _PptxHandlerRuntime30.EMU_PER_PX);
69661
+ chW = parseEmuInt2(chExt["@_cx"]) / EMU_PX;
69662
+ chH = parseEmuInt2(chExt["@_cy"]) / EMU_PX;
69660
69663
  }
69661
69664
  }
69662
69665
  const scaleX = chW > 0 ? parentW / chW : 1;
69663
69666
  const scaleY = chH > 0 ? parentH / chH : 1;
69667
+ const rawChildXfrm = (childNode) => {
69668
+ if (!childNode) {
69669
+ return void 0;
69670
+ }
69671
+ const childXfrm = childNode["p:spPr"]?.["a:xfrm"] ?? childNode["p:xfrm"];
69672
+ return childXfrm;
69673
+ };
69674
+ const applyRawChildGeometry = (el, childNode) => {
69675
+ const childXfrm = rawChildXfrm(childNode);
69676
+ if (!childXfrm) {
69677
+ return;
69678
+ }
69679
+ const off = childXfrm["a:off"];
69680
+ const ext = childXfrm["a:ext"];
69681
+ if (off) {
69682
+ el.x = parseEmuInt2(off["@_x"]) / EMU_PX;
69683
+ el.y = parseEmuInt2(off["@_y"]) / EMU_PX;
69684
+ }
69685
+ if (ext) {
69686
+ el.width = parseEmuInt2(ext["@_cx"]) / EMU_PX;
69687
+ el.height = parseEmuInt2(ext["@_cy"]) / EMU_PX;
69688
+ }
69689
+ };
69664
69690
  const transformElement = (el) => {
69665
69691
  const relativeX = el.x - chX;
69666
69692
  const relativeY = el.y - chY;
@@ -69718,6 +69744,8 @@ var PptxHandlerRuntime67 = class _PptxHandlerRuntime30 extends PptxHandlerRuntim
69718
69744
  `${baseId}-`
69719
69745
  );
69720
69746
  if (element) {
69747
+ const childNode = this.ensureArray(group[entry.tag])[entry.indexInType];
69748
+ applyRawChildGeometry(element, childNode);
69721
69749
  transformElement(element);
69722
69750
  elements2.push(element);
69723
69751
  }
@@ -71212,6 +71240,21 @@ var PptxHandlerRuntime74 = class extends PptxHandlerRuntime73 {
71212
71240
  element.id = `master-${element.id}`;
71213
71241
  elements2.push(element);
71214
71242
  }
71243
+ } else if (entry.tag === "p:grpSp") {
71244
+ const groups = this.ensureArray(spTree["p:grpSp"]);
71245
+ const group = groups[entry.indexInType];
71246
+ if (!group) {
71247
+ continue;
71248
+ }
71249
+ const element = await this.parseGroupShapeAsGroup(
71250
+ group,
71251
+ `master-group-${masterToken}-${entry.indexInType}`,
71252
+ masterPath
71253
+ );
71254
+ if (element) {
71255
+ element.id = `master-${element.id}`;
71256
+ elements2.push(element);
71257
+ }
71215
71258
  }
71216
71259
  }
71217
71260
  this.masterCache.set(masterPath, elements2);
@@ -71419,6 +71462,21 @@ var PptxHandlerRuntime76 = class extends PptxHandlerRuntime75 {
71419
71462
  element.id = `layout-${element.id}`;
71420
71463
  elements2.push(element);
71421
71464
  }
71465
+ } else if (entry.tag === "p:grpSp") {
71466
+ const groups = this.ensureArray(spTree["p:grpSp"]);
71467
+ const group = groups[entry.indexInType];
71468
+ if (!group) {
71469
+ continue;
71470
+ }
71471
+ const element = await this.parseGroupShapeAsGroup(
71472
+ group,
71473
+ `layout-group-${layoutToken}-${entry.indexInType}`,
71474
+ layoutPath
71475
+ );
71476
+ if (element) {
71477
+ element.id = `layout-${element.id}`;
71478
+ elements2.push(element);
71479
+ }
71422
71480
  }
71423
71481
  }
71424
71482
  const layoutShowMasterSp = xmlAttr(
Binary file