pptx-react-viewer 1.15.0 → 1.16.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 (89) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{Model3DScene-EF72C34A.mjs → Model3DScene-DDKQ372V.mjs} +2 -2
  3. package/dist/Model3DScene-DDKQ372V.mjs.br +0 -0
  4. package/dist/Model3DScene-DDKQ372V.mjs.gz +0 -0
  5. package/dist/{Model3DScene-QIE7QZ7M.js → Model3DScene-UBHBPNJ2.js} +3 -3
  6. package/dist/{Model3DScene-QIE7QZ7M.js.br → Model3DScene-UBHBPNJ2.js.br} +0 -0
  7. package/dist/Model3DScene-UBHBPNJ2.js.gz +0 -0
  8. package/dist/{SurfaceChart3DScene-CBUOCCEN.js → SurfaceChart3DScene-MNFDDCYS.js} +3 -3
  9. package/dist/SurfaceChart3DScene-MNFDDCYS.js.br +0 -0
  10. package/dist/SurfaceChart3DScene-MNFDDCYS.js.gz +0 -0
  11. package/dist/{SurfaceChart3DScene-JYCQ2DBR.mjs → SurfaceChart3DScene-VSUUH2MX.mjs} +2 -2
  12. package/dist/{SurfaceChart3DScene-JYCQ2DBR.mjs.br → SurfaceChart3DScene-VSUUH2MX.mjs.br} +0 -0
  13. package/dist/SurfaceChart3DScene-VSUUH2MX.mjs.gz +0 -0
  14. package/dist/{chunk-BZVYWFHS.js → chunk-4LRPKUP7.js} +449 -456
  15. package/dist/chunk-4LRPKUP7.js.br +0 -0
  16. package/dist/chunk-4LRPKUP7.js.gz +0 -0
  17. package/dist/{chunk-QFRXMAFR.mjs → chunk-AJPW5FS7.mjs} +171 -1
  18. package/dist/chunk-AJPW5FS7.mjs.br +0 -0
  19. package/dist/chunk-AJPW5FS7.mjs.gz +0 -0
  20. package/dist/{chunk-FQXZZBFJ.js → chunk-TLGPM7SI.js} +247 -53
  21. package/dist/chunk-TLGPM7SI.js.br +0 -0
  22. package/dist/chunk-TLGPM7SI.js.gz +0 -0
  23. package/dist/{chunk-OBLHB72P.js → chunk-VMQLQEGG.js} +172 -0
  24. package/dist/chunk-VMQLQEGG.js.br +0 -0
  25. package/dist/chunk-VMQLQEGG.js.gz +0 -0
  26. package/dist/{chunk-POP5TS5L.mjs → chunk-XOSQDCHZ.mjs} +35 -42
  27. package/dist/chunk-XOSQDCHZ.mjs.br +0 -0
  28. package/dist/chunk-XOSQDCHZ.mjs.gz +0 -0
  29. package/dist/{chunk-FHOZRWAD.mjs → chunk-YARAQWA4.mjs} +222 -28
  30. package/dist/chunk-YARAQWA4.mjs.br +0 -0
  31. package/dist/chunk-YARAQWA4.mjs.gz +0 -0
  32. package/dist/{chunk-ZDV7QRGB.js → chunk-YQHPV3VP.js} +825 -831
  33. package/dist/chunk-YQHPV3VP.js.br +0 -0
  34. package/dist/chunk-YQHPV3VP.js.gz +0 -0
  35. package/dist/{chunk-X2UMJTCM.mjs → chunk-YW23L4KK.mjs} +7 -13
  36. package/dist/chunk-YW23L4KK.mjs.br +0 -0
  37. package/dist/chunk-YW23L4KK.mjs.gz +0 -0
  38. package/dist/{dist-MVSQ6PWP.js → dist-55M4L5OI.js} +513 -505
  39. package/dist/dist-55M4L5OI.js.br +0 -0
  40. package/dist/dist-55M4L5OI.js.gz +0 -0
  41. package/dist/dist-C5CVVTDM.mjs +2 -0
  42. package/dist/dist-C5CVVTDM.mjs.br +0 -0
  43. package/dist/dist-C5CVVTDM.mjs.gz +0 -0
  44. package/dist/hooks-unstable.js +74 -74
  45. package/dist/hooks-unstable.js.br +0 -0
  46. package/dist/hooks-unstable.js.gz +0 -0
  47. package/dist/hooks-unstable.mjs +3 -3
  48. package/dist/hooks-unstable.mjs.br +0 -0
  49. package/dist/hooks-unstable.mjs.gz +0 -0
  50. package/dist/index.js +18 -18
  51. package/dist/index.js.br +0 -0
  52. package/dist/index.js.gz +0 -0
  53. package/dist/index.mjs +4 -4
  54. package/dist/index.mjs.br +0 -0
  55. package/dist/index.mjs.gz +0 -0
  56. package/dist/viewer/index.js +19 -19
  57. package/dist/viewer/index.js.br +0 -0
  58. package/dist/viewer/index.js.gz +0 -0
  59. package/dist/viewer/index.mjs +4 -4
  60. package/dist/viewer/index.mjs.br +0 -0
  61. package/dist/viewer/index.mjs.gz +0 -0
  62. package/package.json +1 -1
  63. package/dist/Model3DScene-EF72C34A.mjs.br +0 -0
  64. package/dist/Model3DScene-EF72C34A.mjs.gz +0 -0
  65. package/dist/Model3DScene-QIE7QZ7M.js.gz +0 -0
  66. package/dist/SurfaceChart3DScene-CBUOCCEN.js.br +0 -0
  67. package/dist/SurfaceChart3DScene-CBUOCCEN.js.gz +0 -0
  68. package/dist/SurfaceChart3DScene-JYCQ2DBR.mjs.gz +0 -0
  69. package/dist/chunk-BZVYWFHS.js.br +0 -0
  70. package/dist/chunk-BZVYWFHS.js.gz +0 -0
  71. package/dist/chunk-FHOZRWAD.mjs.br +0 -0
  72. package/dist/chunk-FHOZRWAD.mjs.gz +0 -0
  73. package/dist/chunk-FQXZZBFJ.js.br +0 -0
  74. package/dist/chunk-FQXZZBFJ.js.gz +0 -0
  75. package/dist/chunk-OBLHB72P.js.br +0 -0
  76. package/dist/chunk-OBLHB72P.js.gz +0 -0
  77. package/dist/chunk-POP5TS5L.mjs.br +0 -0
  78. package/dist/chunk-POP5TS5L.mjs.gz +0 -0
  79. package/dist/chunk-QFRXMAFR.mjs.br +0 -0
  80. package/dist/chunk-QFRXMAFR.mjs.gz +0 -0
  81. package/dist/chunk-X2UMJTCM.mjs.br +0 -0
  82. package/dist/chunk-X2UMJTCM.mjs.gz +0 -0
  83. package/dist/chunk-ZDV7QRGB.js.br +0 -0
  84. package/dist/chunk-ZDV7QRGB.js.gz +0 -0
  85. package/dist/dist-D5LQ7PW7.mjs +0 -2
  86. package/dist/dist-D5LQ7PW7.mjs.br +0 -0
  87. package/dist/dist-D5LQ7PW7.mjs.gz +0 -0
  88. package/dist/dist-MVSQ6PWP.js.br +0 -0
  89. package/dist/dist-MVSQ6PWP.js.gz +0 -0
@@ -1,4 +1,4 @@
1
- import { MIN_ELEMENT_SIZE, guideEmuToPx, THEME_COLOR_SCHEME_KEYS, hasShapeProperties, hasTextProperties, createChartElement, getShapeClipPath, getAdjustmentAwareShapeClipPath, getShapeClipPathFromPreset, getCloudPathForRendering, hslToRgb, PRESET_COLOR_MAP, isImageLikeElement, applyDrawingColorTransforms } from './chunk-QFRXMAFR.mjs';
1
+ import { MIN_ELEMENT_SIZE, guideEmuToPx, THEME_COLOR_SCHEME_KEYS, hasShapeProperties, hasTextProperties, createChartElement, getShapeClipPath, getAdjustmentAwareShapeClipPath, getShapeClipPathFromPreset, getCloudPathForRendering, hslToRgb, PRESET_COLOR_MAP, isImageLikeElement, applyDrawingColorTransforms } from './chunk-AJPW5FS7.mjs';
2
2
  import DOMPurify from 'dompurify';
3
3
 
4
4
  var defaultThemeColors = {
@@ -12514,6 +12514,77 @@ function derivePresenceList(states, localClientId, canvasWidth, canvasHeight, no
12514
12514
  }
12515
12515
  return users;
12516
12516
  }
12517
+ var YDOC_ASSETS_KEY = "pptx:assets";
12518
+ var ASSET_ELEMENT_FIELDS = /* @__PURE__ */ new Set([
12519
+ "mediaData",
12520
+ "posterFrameData",
12521
+ "oleEmbeddedData",
12522
+ "previewImageData",
12523
+ "modelData"
12524
+ ]);
12525
+ var ASSET_REF_KEYS = {
12526
+ mediaData: "_mdRef",
12527
+ posterFrameData: "_pfdRef",
12528
+ oleEmbeddedData: "_oedRef",
12529
+ previewImageData: "_pidRef",
12530
+ modelData: "_moRef"
12531
+ };
12532
+ var REV_ASSET_REF_KEYS = Object.fromEntries(
12533
+ Object.entries(ASSET_REF_KEYS).map(([field, ref]) => [ref, field])
12534
+ );
12535
+ function assetKey(elementId, fieldName) {
12536
+ return `${elementId}:${fieldName}`;
12537
+ }
12538
+ function getAssetsMap(ydoc) {
12539
+ return ydoc.getMap(YDOC_ASSETS_KEY);
12540
+ }
12541
+ function isAssetRefKey(key) {
12542
+ return key in REV_ASSET_REF_KEYS;
12543
+ }
12544
+ function writeAssetFields(elementId, rec, ymap, assets) {
12545
+ for (const field of ASSET_ELEMENT_FIELDS) {
12546
+ const value = rec[field];
12547
+ if (typeof value === "string" && value.length > 0) {
12548
+ const key = assetKey(elementId, field);
12549
+ if (assets.get(key) !== value) {
12550
+ assets.set(key, value);
12551
+ }
12552
+ ymap.set(ASSET_REF_KEYS[field], key);
12553
+ }
12554
+ }
12555
+ }
12556
+ function reconcileAssetFields(elementId, rec, ymap, assets) {
12557
+ for (const field of ASSET_ELEMENT_FIELDS) {
12558
+ const refKey = ASSET_REF_KEYS[field];
12559
+ const value = rec[field];
12560
+ if (typeof value === "string" && value.length > 0) {
12561
+ const key = assetKey(elementId, field);
12562
+ if (assets.get(key) !== value) {
12563
+ assets.set(key, value);
12564
+ }
12565
+ if (ymap.get(refKey) !== key) {
12566
+ ymap.set(refKey, key);
12567
+ }
12568
+ } else {
12569
+ const existingRef = ymap.get(refKey);
12570
+ if (typeof existingRef === "string") {
12571
+ ymap.delete(refKey);
12572
+ assets.delete(existingRef);
12573
+ }
12574
+ }
12575
+ }
12576
+ }
12577
+ function readAssetFields(ymap, assets, element) {
12578
+ for (const [refKey, field] of Object.entries(REV_ASSET_REF_KEYS)) {
12579
+ const ref = ymap.get(refKey);
12580
+ if (typeof ref === "string") {
12581
+ const value = assets.get(ref);
12582
+ if (typeof value === "string") {
12583
+ element[field] = value;
12584
+ }
12585
+ }
12586
+ }
12587
+ }
12517
12588
  function isYTextLike(value) {
12518
12589
  return typeof value === "object" && value !== null && typeof value.toDelta === "function";
12519
12590
  }
@@ -12708,6 +12779,9 @@ var SCALAR_ELEMENT_KEYS = /* @__PURE__ */ new Set([
12708
12779
  "width",
12709
12780
  "height",
12710
12781
  "rotation",
12782
+ "shapeId",
12783
+ "skewX",
12784
+ "skewY",
12711
12785
  "flipHorizontal",
12712
12786
  "flipVertical",
12713
12787
  "hidden",
@@ -12716,14 +12790,66 @@ var SCALAR_ELEMENT_KEYS = /* @__PURE__ */ new Set([
12716
12790
  "name",
12717
12791
  "altText",
12718
12792
  "shapeType",
12719
- "placeholder",
12720
12793
  "imagePath",
12721
12794
  "imageData",
12722
- "svgContent",
12723
- "inkSvg",
12724
- "sourceSlideId",
12795
+ "svgData",
12796
+ "svgPath",
12797
+ "cropLeft",
12798
+ "cropTop",
12799
+ "cropRight",
12800
+ "cropBottom",
12801
+ "tileOffsetX",
12802
+ "tileOffsetY",
12803
+ "tileScaleX",
12804
+ "tileScaleY",
12805
+ "tileFlip",
12806
+ "tileAlignment",
12807
+ "pathData",
12808
+ "pathWidth",
12809
+ "pathHeight",
12725
12810
  "mediaType",
12726
12811
  "mediaPath",
12812
+ "mediaMimeType",
12813
+ "trimStartMs",
12814
+ "trimEndMs",
12815
+ "posterFramePath",
12816
+ "fullScreen",
12817
+ "loop",
12818
+ "fadeInDuration",
12819
+ "fadeOutDuration",
12820
+ "volume",
12821
+ "autoPlay",
12822
+ "playAcrossSlides",
12823
+ "hideWhenNotPlaying",
12824
+ "playbackSpeed",
12825
+ "mediaMissing",
12826
+ "isLinked",
12827
+ "oleTarget",
12828
+ "oleProgId",
12829
+ "oleName",
12830
+ "oleClsId",
12831
+ "oleObjectType",
12832
+ "oleFileExtension",
12833
+ "fileName",
12834
+ "externalPath",
12835
+ "previewImage",
12836
+ "oleShowAsIcon",
12837
+ "oleImgW",
12838
+ "oleImgH",
12839
+ "oleEmbeddedFileName",
12840
+ "oleEmbeddedMimeType",
12841
+ "oleEmbeddedByteSize",
12842
+ "inkPaths",
12843
+ "inkColors",
12844
+ "inkWidths",
12845
+ "inkOpacities",
12846
+ "inkTool",
12847
+ "zoomType",
12848
+ "targetSlideIndex",
12849
+ "targetSectionId",
12850
+ "modelPath",
12851
+ "modelMimeType",
12852
+ "posterImage",
12727
12853
  "linkedTxbxId",
12728
12854
  "linkedTxbxSeq",
12729
12855
  "promptText"
@@ -12736,20 +12862,28 @@ var COMPLEX_ELEMENT_FIELDS = {
12736
12862
  tableData: "_td",
12737
12863
  chartData: "_cd",
12738
12864
  smartArtData: "_smad",
12739
- connectionStart: "_cs",
12740
- connectionEnd: "_ce",
12741
- animations: "_an",
12742
- nativeAnimations: "_na",
12743
12865
  children: "_ch",
12744
12866
  paragraphIndents: "_pi",
12745
12867
  rawXml: "_rx",
12868
+ extLstXml: "_elx",
12746
12869
  actionClick: "_ac",
12747
12870
  actionHover: "_av",
12748
12871
  locks: "_lk",
12749
12872
  imageEffects: "_ie",
12750
12873
  cropShape: "_cr",
12751
- mediaBookmarks: "_mb",
12752
- captionTracks: "_ct"
12874
+ bookmarks: "_mb",
12875
+ captionTracks: "_ct",
12876
+ metadata: "_md",
12877
+ groupFill: "_gf",
12878
+ inkPointPressures: "_ipp",
12879
+ inkStrokes: "_cis",
12880
+ extensionXml: "_ext",
12881
+ customGeometryPaths: "_cgp",
12882
+ customGeometryRawData: "_cgr",
12883
+ customGeometryAdjustHandlesXY: "_cgx",
12884
+ customGeometryAdjustHandlesPolar: "_cgo",
12885
+ customGeometryConnectionSites: "_cgc",
12886
+ customGeometryTextRect: "_cgt"
12753
12887
  };
12754
12888
  var REV_COMPLEX_ELEMENT = Object.fromEntries(
12755
12889
  Object.entries(COMPLEX_ELEMENT_FIELDS).map(([k, v]) => [v, k])
@@ -12758,6 +12892,7 @@ var SCALAR_SLIDE_KEYS = /* @__PURE__ */ new Set([
12758
12892
  "id",
12759
12893
  "rId",
12760
12894
  "sourceSlideId",
12895
+ "name",
12761
12896
  "layoutPath",
12762
12897
  "layoutName",
12763
12898
  "slideNumber",
@@ -12767,7 +12902,9 @@ var SCALAR_SLIDE_KEYS = /* @__PURE__ */ new Set([
12767
12902
  "backgroundColor",
12768
12903
  "backgroundImage",
12769
12904
  "backgroundGradient",
12905
+ "backgroundShadeToTitle",
12770
12906
  "notes",
12907
+ "notesCSldName",
12771
12908
  "backgroundShowAnimation",
12772
12909
  "showMasterShapes",
12773
12910
  "isDirty"
@@ -12778,21 +12915,25 @@ var COMPLEX_SLIDE_FIELDS = {
12778
12915
  nativeAnimations: "_na",
12779
12916
  rawTiming: "_rt",
12780
12917
  notesSegments: "_ns",
12918
+ notesShapes: "_nsh",
12919
+ notesClrMapOverride: "_ncm",
12781
12920
  comments: "_cm",
12782
12921
  warnings: "_wa",
12783
12922
  rawXml: "_rx",
12784
12923
  clrMapOverride: "_cm2",
12785
12924
  guides: "_gu",
12786
12925
  customerData: "_cu",
12787
- activeXControls: "_ax"
12926
+ activeXControls: "_ax",
12927
+ backgroundPattern: "_bp",
12928
+ headerFooterFlags: "_hff"
12788
12929
  };
12789
12930
  var REV_COMPLEX_SLIDE = Object.fromEntries(
12790
12931
  Object.entries(COMPLEX_SLIDE_FIELDS).map(([k, v]) => [v, k])
12791
12932
  );
12792
- function writeElementToYMap(element, ymap, factories) {
12933
+ function writeElementToYMap(element, ymap, factories, assets) {
12793
12934
  const rec = element;
12794
12935
  for (const [key, value] of Object.entries(rec)) {
12795
- if (value === void 0) {
12936
+ if (value === void 0 || ASSET_ELEMENT_FIELDS.has(key)) {
12796
12937
  continue;
12797
12938
  }
12798
12939
  if (SCALAR_ELEMENT_KEYS.has(key)) {
@@ -12807,15 +12948,17 @@ function writeElementToYMap(element, ymap, factories) {
12807
12948
  ymap.set(COMPLEX_ELEMENT_FIELDS[key], JSON.stringify(value));
12808
12949
  }
12809
12950
  }
12951
+ writeAssetFields(rec.id, rec, ymap, assets);
12810
12952
  }
12811
- function readElementFromYMap(ymap) {
12953
+ function readElementFromYMap(ymap, assets) {
12812
12954
  const element = {};
12813
12955
  ymap.forEach((value, key) => {
12814
12956
  if (key === "textBody") {
12815
12957
  if (isYTextLike(value)) {
12816
12958
  element.textSegments = decodeTextBody(value);
12817
12959
  }
12818
- } else if (REV_COMPLEX_ELEMENT[key]) {
12960
+ } else if (isAssetRefKey(key)) ;
12961
+ else if (REV_COMPLEX_ELEMENT[key]) {
12819
12962
  try {
12820
12963
  element[REV_COMPLEX_ELEMENT[key]] = JSON.parse(value);
12821
12964
  } catch {
@@ -12824,9 +12967,10 @@ function readElementFromYMap(ymap) {
12824
12967
  element[key] = value;
12825
12968
  }
12826
12969
  });
12970
+ readAssetFields(ymap, assets, element);
12827
12971
  return element;
12828
12972
  }
12829
- function writeSlideToYMap(slide, ymap, factories) {
12973
+ function writeSlideToYMap(slide, ymap, factories, assets) {
12830
12974
  const rec = slide;
12831
12975
  for (const key of SCALAR_SLIDE_KEYS) {
12832
12976
  if (rec[key] !== void 0) {
@@ -12841,12 +12985,12 @@ function writeSlideToYMap(slide, ymap, factories) {
12841
12985
  const elemArr = factories.createArray();
12842
12986
  for (const el of slide.elements) {
12843
12987
  const elemMap = factories.createMap();
12844
- writeElementToYMap(el, elemMap, factories);
12988
+ writeElementToYMap(el, elemMap, factories, assets);
12845
12989
  elemArr.push([elemMap]);
12846
12990
  }
12847
12991
  ymap.set("elements", elemArr);
12848
12992
  }
12849
- function readSlideFromYMap(ymap) {
12993
+ function readSlideFromYMap(ymap, assets) {
12850
12994
  const slide = {};
12851
12995
  for (const key of SCALAR_SLIDE_KEYS) {
12852
12996
  const v = ymap.get(key);
@@ -12867,17 +13011,18 @@ function readSlideFromYMap(ymap) {
12867
13011
  const elements = [];
12868
13012
  if (elemArr) {
12869
13013
  for (let i = 0; i < elemArr.length; i++) {
12870
- elements.push(readElementFromYMap(elemArr.get(i)));
13014
+ elements.push(readElementFromYMap(elemArr.get(i), assets));
12871
13015
  }
12872
13016
  }
12873
13017
  slide.elements = elements;
12874
13018
  return slide;
12875
13019
  }
12876
13020
  function readSlidesFromYDoc(ydoc) {
13021
+ const assets = getAssetsMap(ydoc);
12877
13022
  const arr = ydoc.getArray(YDOC_SLIDES_KEY);
12878
13023
  const slides = [];
12879
13024
  for (let i = 0; i < arr.length; i++) {
12880
- slides.push(readSlideFromYMap(arr.get(i)));
13025
+ slides.push(readSlideFromYMap(arr.get(i), assets));
12881
13026
  }
12882
13027
  return slides;
12883
13028
  }
@@ -13056,11 +13201,12 @@ function reconcileTextBody(ymap, rec, factories) {
13056
13201
  encodeTextBody(segments, ytext);
13057
13202
  ymap.set("textBody", ytext);
13058
13203
  }
13059
- function reconcileElementYMap(ymap, element, factories) {
13204
+ function reconcileElementYMap(ymap, element, factories, assets) {
13060
13205
  const rec = element;
13061
13206
  reconcileScalars(ymap, rec, SCALAR_ELEMENT_KEYS);
13062
13207
  reconcileComplexFields(ymap, rec, COMPLEX_ELEMENT_FIELDS);
13063
13208
  reconcileTextBody(ymap, rec, factories);
13209
+ reconcileAssetFields(rec.id, rec, ymap, assets);
13064
13210
  }
13065
13211
  function mapIdAt(arr, index) {
13066
13212
  const entry = arr.get(index);
@@ -13123,7 +13269,7 @@ function reconcileYArrayById(arr, items, adapter) {
13123
13269
  }
13124
13270
  }
13125
13271
  var isYArrayLike = (value) => typeof value === "object" && value !== null && typeof value.insert === "function" && typeof value.toArray === "function";
13126
- function reconcileSlideYMap(ymap, slide, factories) {
13272
+ function reconcileSlideYMap(ymap, slide, factories, assets) {
13127
13273
  const rec = slide;
13128
13274
  reconcileScalars(ymap, rec, SCALAR_SLIDE_KEYS);
13129
13275
  reconcileComplexFields(ymap, rec, COMPLEX_SLIDE_FIELDS);
@@ -13136,26 +13282,59 @@ function reconcileSlideYMap(ymap, slide, factories) {
13136
13282
  idOf: (el) => typeof el.id === "string" ? el.id : void 0,
13137
13283
  create: (el) => {
13138
13284
  const map = factories.createMap();
13139
- writeElementToYMap(el, map, factories);
13285
+ writeElementToYMap(el, map, factories, assets);
13140
13286
  return map;
13141
13287
  },
13142
- update: (map, el) => reconcileElementYMap(map, el, factories)
13288
+ update: (map, el) => reconcileElementYMap(map, el, factories, assets)
13143
13289
  });
13144
13290
  }
13145
13291
  function reconcileSlidesInYDoc(slides, ydoc, factories, origin = LOCAL_SYNC_ORIGIN) {
13292
+ const assets = getAssetsMap(ydoc);
13146
13293
  ydoc.transact(() => {
13147
13294
  const arr = ydoc.getArray(YDOC_SLIDES_KEY);
13148
13295
  reconcileYArrayById(arr, slides, {
13149
13296
  idOf: (slide) => typeof slide.id === "string" ? slide.id : void 0,
13150
13297
  create: (slide) => {
13151
13298
  const map = factories.createMap();
13152
- writeSlideToYMap(slide, map, factories);
13299
+ writeSlideToYMap(slide, map, factories, assets);
13153
13300
  return map;
13154
13301
  },
13155
- update: (map, slide) => reconcileSlideYMap(map, slide, factories)
13302
+ update: (map, slide) => reconcileSlideYMap(map, slide, factories, assets)
13156
13303
  });
13157
13304
  }, origin);
13158
13305
  }
13306
+ function createSyncGate(onOpen, graceMs = INITIAL_SYNC_GRACE_MS) {
13307
+ let opened = false;
13308
+ let timer = null;
13309
+ const clear = () => {
13310
+ if (timer !== null) {
13311
+ clearTimeout(timer);
13312
+ timer = null;
13313
+ }
13314
+ };
13315
+ const open = () => {
13316
+ clear();
13317
+ if (opened) {
13318
+ return;
13319
+ }
13320
+ opened = true;
13321
+ onOpen();
13322
+ };
13323
+ return {
13324
+ isOpen: () => opened,
13325
+ arm: () => {
13326
+ clear();
13327
+ if (!opened) {
13328
+ timer = setTimeout(open, graceMs);
13329
+ }
13330
+ },
13331
+ open,
13332
+ reset: () => {
13333
+ clear();
13334
+ opened = false;
13335
+ }
13336
+ };
13337
+ }
13159
13338
  var POSITION_THRESHOLD = 2;
13160
13339
  var SIZE_THRESHOLD = 2;
13161
13340
  function getElementText(element) {
@@ -17073,6 +17252,21 @@ var SHAPE_PRESET_DEFS = [
17073
17252
  glyphClass: ""
17074
17253
  }
17075
17254
  ];
17255
+ var OFFICE_COLOR_SWATCHES = [
17256
+ { hex: "#000000", label: "Black" },
17257
+ { hex: "#ffffff", label: "White" },
17258
+ { hex: "#ff0000", label: "Red" },
17259
+ { hex: "#00aa00", label: "Green" },
17260
+ { hex: "#0000ff", label: "Blue" },
17261
+ { hex: "#ff8800", label: "Orange" },
17262
+ { hex: "#8800cc", label: "Purple" },
17263
+ { hex: "#00cccc", label: "Cyan" },
17264
+ { hex: "#ff69b4", label: "Pink" },
17265
+ { hex: "#808080", label: "Gray" }
17266
+ ];
17267
+ OFFICE_COLOR_SWATCHES.map(
17268
+ (swatch) => swatch.hex
17269
+ );
17076
17270
  function resolveTitleBarStatusKey(input) {
17077
17271
  const { autosaveState, isDirty, autosaveEnabled, disabledReason } = input;
17078
17272
  if (autosaveState === "disabled") {
@@ -19004,4 +19198,4 @@ function segmentFrameCount(durationMs, fps) {
19004
19198
  return Math.max(1, Math.ceil(durationMs / (1e3 / fps)));
19005
19199
  }
19006
19200
 
19007
- export { ACTION_BUTTON_PRESETS, ARTISTIC_EFFECTS, BROADCAST_THROTTLE_MS, CATEGORIES, CONNECTION_TIMEOUT_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_INSERT_CHART_TYPE, DEFAULT_ROW_HEIGHT, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, FILL_MODE_OPTIONS, GRADIENT_TYPE_OPTIONS, HANDOUT_OPTIONS, INITIAL_SYNC_GRACE_MS, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LOCAL_SYNC_ORIGIN, MOBILE_BREAKPOINT, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, PATTERN_OPTIONS, PRESETS, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SLIDE_TRANSITION_KEYFRAMES, TABLET_BREAKPOINT, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, THEME_COLOR_LABELS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TimelineEngine, WEBM_MIME_CANDIDATES, addSection, alignElements, apply3dEffects, applyCaseTransformToSegments, applyColorChange, applyDuotone, applyFormatToElement, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, bringForward, bringToFront, build3DExtrusionData, buildBroadcastViewerUrl, buildCacheKey, buildChartViewModel, buildCssGradientFromShapeStyle, buildDuotoneCacheKey, buildElementClipboardPayload, buildGlowBoxShadow, buildHandoutsHtml, buildInitialGuides, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildNotesHtml, buildNotesPdfBytes, buildOutlineHtml, buildPatternFillCss, buildPreviewAnimation, buildPrintDocument, buildPrintHtmlDocument, buildReflectionCss, buildShadowCssFromShapeStyle, buildSlidesHtml, buildSlidesPdfBytes, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildTextBody3DSceneStyle, buildTextFillCss, buildTextReflectionCss, buildTextRunFilterChain, buildTextShadowCss, buildThemeColorGrid, canvasToJpegData, chartPartToAttrs, clampCropValue, clampNotesFontSize, clampPercent, clampUnitInterval, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collectImagePaths, collectMediaElements, colorWithOpacity, comparePresentation, computeAllNotesPages, computeAutoFitTextStyle, computeColumnBoundaries, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeLayout, computeLayoutOptions, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSmartArtLayout, computeSnapToShape, computeSplitCell, computeValueRange, computeValueRangeForChart, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, countTextSegments, createBlankSlide, createDefaultChartElement, createTouchGestureRecognizer, defaultCssVars, defaultRadius, defaultThemeColors, deleteSection, deleteTableColumn, deleteTableRow, derivePresenceList, detectOrientation, detectTouchDevice, distributeElements, downloadBlob, downloadDataUrl, dragAnchorViewY, dragValueForPart, encodeGif, expandTextBuildAnimations, extractPathPoints, filterCommands, findChartPartTarget, findSmartArtNodeText, formatAxisValue, formatAxisValueWithUnits, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateLogTicks, generateNoteLineCount, generatePressureCircles, generateTicks, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getChartStylePalette, getCommentMarkerPosition, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineOffsets, getCompoundLineWidths, getConnectionSites, getContentPartReplayStyles, getCssBorderDashStyle, getDisplayUnitLabel, getDuotoneCachedResult, getEffectDagFilter, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getImageEffectsFilter, getImageEffectsOpacity, getInkReplayStyles, getInlineEditorSelection, getKinsokuLineBreakStyles, getNotesPrintableArea, getOleBadgeLabel, getOleTypeColor, getOleTypeLabel, getPatternSvg, getPendingSelectionRestore, getPrintableArea, getResolvedShapeClipPath, getRoundRectRadiusPx, getSecondaryValueAxis, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, getSvgStrokeDasharray, getTextAlphaOpacity, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, hasCopyableFormat, hasDistinctScriptFonts, hasPressureVariation, insertTableColumn, insertTableRow, isBrowserOpenableMime, isCellInRect, isEditableTextElement, isExportAbortError, isFirstSlide, isKeyboardOpen, isLastSlide, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isTemplateElement, isTemplateElementId, isUrlSafe, makeCloneId, makeSlideId, mergeAdditiveSelection, mergeCells, mobileElapsedSince, mobileSlideCounter, mountModel3D, mountSurfaceChart3D, moveSectionDown, moveSectionUp, moveSlidesToSection, newTableElement, normalizeColorsForCapture, normalizeHexColor, normalizeStrokeDashType, normalizeValue, notesSegmentsToSpans, observeYDocSlides, ooxmlDashToCssBorderStyle, openPptxFile, openUrlInNewTab, paletteColor, parseDrawingColor, parseDrawingColorOpacity, parsePpactionUrl, pickSupportedMimeType, preprocessCssForCapture, pressuresToWidths, readSlidesFromYDoc, readViewportMetrics, rebuildDrawingShapesIfCleared, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, remapTextToSegments, renameSection, rerouteConnectorsForMovedElements, resolveCssTextAlign, resolveDrawingShapeNodeId, resolveFontForScript, resolveInkColor, resolveInkOpacity, resolveInkWidth, resolveLineHeight, resolveOleType, resolveParagraphAlign, resolveParagraphRtl, resolveRegionCode, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransportForServerUrl, resolveUnderlineDecorationStyle, restoreSegmentSelection, safeOpenUrl, sanitizeColor, sanitizeDownloadFilename, sanitizeMathMl, saveAutosaveSnapshot, secureRandomUuid, segmentByScript, segmentFrameCount, sendBackward, sendToBack, sequentialColorScale, seriesColor, setCachedResult, setDuotoneCachedResult, setPendingSelectionRestore, shadeColor2, shouldCommitSmartArtNodeText, shouldUseSvgWarp, slideProgressPercent, slideStatusLabel, snapBoxToGrid, splitCell, splitSeriesByAxis, substituteFieldText, svgLineCap, themeToCssVars, tintColor2, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, transformTextCase, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, withChartPointValue, withChartTitle };
19201
+ export { ACTION_BUTTON_PRESETS, ARTISTIC_EFFECTS, BROADCAST_THROTTLE_MS, CATEGORIES, CONNECTION_TIMEOUT_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_INSERT_CHART_TYPE, DEFAULT_ROW_HEIGHT, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, FILL_MODE_OPTIONS, GRADIENT_TYPE_OPTIONS, HANDOUT_OPTIONS, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LOCAL_SYNC_ORIGIN, MOBILE_BREAKPOINT, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, PATTERN_OPTIONS, PRESETS, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SLIDE_TRANSITION_KEYFRAMES, TABLET_BREAKPOINT, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, THEME_COLOR_LABELS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TimelineEngine, WEBM_MIME_CANDIDATES, addSection, alignElements, apply3dEffects, applyCaseTransformToSegments, applyColorChange, applyDuotone, applyFormatToElement, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, bringForward, bringToFront, build3DExtrusionData, buildBroadcastViewerUrl, buildCacheKey, buildChartViewModel, buildCssGradientFromShapeStyle, buildDuotoneCacheKey, buildElementClipboardPayload, buildGlowBoxShadow, buildHandoutsHtml, buildInitialGuides, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildNotesHtml, buildNotesPdfBytes, buildOutlineHtml, buildPatternFillCss, buildPreviewAnimation, buildPrintDocument, buildPrintHtmlDocument, buildReflectionCss, buildShadowCssFromShapeStyle, buildSlidesHtml, buildSlidesPdfBytes, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildTextBody3DSceneStyle, buildTextFillCss, buildTextReflectionCss, buildTextRunFilterChain, buildTextShadowCss, buildThemeColorGrid, canvasToJpegData, chartPartToAttrs, clampCropValue, clampNotesFontSize, clampPercent, clampUnitInterval, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collectImagePaths, collectMediaElements, colorWithOpacity, comparePresentation, computeAllNotesPages, computeAutoFitTextStyle, computeColumnBoundaries, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeLayout, computeLayoutOptions, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSmartArtLayout, computeSnapToShape, computeSplitCell, computeValueRange, computeValueRangeForChart, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, countTextSegments, createBlankSlide, createDefaultChartElement, createSyncGate, createTouchGestureRecognizer, defaultCssVars, defaultRadius, defaultThemeColors, deleteSection, deleteTableColumn, deleteTableRow, derivePresenceList, detectOrientation, detectTouchDevice, distributeElements, downloadBlob, downloadDataUrl, dragAnchorViewY, dragValueForPart, encodeGif, expandTextBuildAnimations, extractPathPoints, filterCommands, findChartPartTarget, findSmartArtNodeText, formatAxisValue, formatAxisValueWithUnits, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateLogTicks, generateNoteLineCount, generatePressureCircles, generateTicks, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getChartStylePalette, getCommentMarkerPosition, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineOffsets, getCompoundLineWidths, getConnectionSites, getContentPartReplayStyles, getCssBorderDashStyle, getDisplayUnitLabel, getDuotoneCachedResult, getEffectDagFilter, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getImageEffectsFilter, getImageEffectsOpacity, getInkReplayStyles, getInlineEditorSelection, getKinsokuLineBreakStyles, getNotesPrintableArea, getOleBadgeLabel, getOleTypeColor, getOleTypeLabel, getPatternSvg, getPendingSelectionRestore, getPrintableArea, getResolvedShapeClipPath, getRoundRectRadiusPx, getSecondaryValueAxis, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, getSvgStrokeDasharray, getTextAlphaOpacity, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, hasCopyableFormat, hasDistinctScriptFonts, hasPressureVariation, insertTableColumn, insertTableRow, isBrowserOpenableMime, isCellInRect, isEditableTextElement, isExportAbortError, isFirstSlide, isKeyboardOpen, isLastSlide, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isTemplateElement, isTemplateElementId, isUrlSafe, makeCloneId, makeSlideId, mergeAdditiveSelection, mergeCells, mobileElapsedSince, mobileSlideCounter, mountModel3D, mountSurfaceChart3D, moveSectionDown, moveSectionUp, moveSlidesToSection, newTableElement, normalizeColorsForCapture, normalizeHexColor, normalizeStrokeDashType, normalizeValue, notesSegmentsToSpans, observeYDocSlides, ooxmlDashToCssBorderStyle, openPptxFile, openUrlInNewTab, paletteColor, parseDrawingColor, parseDrawingColorOpacity, parsePpactionUrl, pickSupportedMimeType, preprocessCssForCapture, pressuresToWidths, readSlidesFromYDoc, readViewportMetrics, rebuildDrawingShapesIfCleared, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, remapTextToSegments, renameSection, rerouteConnectorsForMovedElements, resolveCssTextAlign, resolveDrawingShapeNodeId, resolveFontForScript, resolveInkColor, resolveInkOpacity, resolveInkWidth, resolveLineHeight, resolveOleType, resolveParagraphAlign, resolveParagraphRtl, resolveRegionCode, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransportForServerUrl, resolveUnderlineDecorationStyle, restoreSegmentSelection, safeOpenUrl, sanitizeColor, sanitizeDownloadFilename, sanitizeMathMl, saveAutosaveSnapshot, secureRandomUuid, segmentByScript, segmentFrameCount, sendBackward, sendToBack, sequentialColorScale, seriesColor, setCachedResult, setDuotoneCachedResult, setPendingSelectionRestore, shadeColor2, shouldCommitSmartArtNodeText, shouldUseSvgWarp, slideProgressPercent, slideStatusLabel, snapBoxToGrid, splitCell, splitSeriesByAxis, substituteFieldText, svgLineCap, themeToCssVars, tintColor2, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, transformTextCase, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, withChartPointValue, withChartTitle };
Binary file
Binary file