modern-idoc 0.6.14 → 0.6.15

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/dist/index.cjs CHANGED
@@ -51,6 +51,87 @@ function pick(obj, keys) {
51
51
  return result;
52
52
  }
53
53
 
54
+ function getNestedValue(obj, path, fallback) {
55
+ const last = path.length - 1;
56
+ if (last < 0)
57
+ return obj === void 0 ? fallback : obj;
58
+ for (let i = 0; i < last; i++) {
59
+ if (obj == null) {
60
+ return fallback;
61
+ }
62
+ obj = obj[path[i]];
63
+ }
64
+ if (obj == null)
65
+ return fallback;
66
+ return obj[path[last]] === void 0 ? fallback : obj[path[last]];
67
+ }
68
+ function setNestedValue(obj, path, value) {
69
+ const last = path.length - 1;
70
+ for (let i = 0; i < last; i++) {
71
+ if (typeof obj[path[i]] !== "object")
72
+ obj[path[i]] = {};
73
+ obj = obj[path[i]];
74
+ }
75
+ obj[path[last]] = value;
76
+ }
77
+ function getObjectValueByPath(obj, path, fallback) {
78
+ if (obj == null || !path || typeof path !== "string")
79
+ return fallback;
80
+ if (obj[path] !== void 0)
81
+ return obj[path];
82
+ path = path.replace(/\[(\w+)\]/g, ".$1");
83
+ path = path.replace(/^\./, "");
84
+ return getNestedValue(obj, path.split("."), fallback);
85
+ }
86
+ function setObjectValueByPath(obj, path, value) {
87
+ if (typeof obj !== "object" || !path)
88
+ return;
89
+ path = path.replace(/\[(\w+)\]/g, ".$1");
90
+ path = path.replace(/^\./, "");
91
+ return setNestedValue(obj, path.split("."), value);
92
+ }
93
+
94
+ class RawWeakMap {
95
+ _map = /* @__PURE__ */ new WeakMap();
96
+ // fix: vue reactive object
97
+ _toRaw(value) {
98
+ if (value && typeof value === "object") {
99
+ const raw = value.__v_raw;
100
+ if (raw) {
101
+ value = this._toRaw(raw);
102
+ }
103
+ }
104
+ return value;
105
+ }
106
+ /**
107
+ * Removes the specified element from the WeakMap.
108
+ * @returns true if the element was successfully removed, or false if it was not present.
109
+ */
110
+ delete(key) {
111
+ return this._map.delete(this._toRaw(key));
112
+ }
113
+ /**
114
+ * @returns a specified element.
115
+ */
116
+ get(key) {
117
+ return this._map.get(this._toRaw(key));
118
+ }
119
+ /**
120
+ * @returns a boolean indicating whether an element with the specified key exists or not.
121
+ */
122
+ has(key) {
123
+ return this._map.has(this._toRaw(key));
124
+ }
125
+ /**
126
+ * Adds a new element with a specified key and value.
127
+ * @param key Must be an object or symbol.
128
+ */
129
+ set(key, value) {
130
+ this._map.set(this._toRaw(key), this._toRaw(value));
131
+ return this;
132
+ }
133
+ }
134
+
54
135
  function parseColor(color) {
55
136
  let input;
56
137
  if (typeof color === "number") {
@@ -809,47 +890,6 @@ function normalizeBackground(background) {
809
890
  }
810
891
  }
811
892
 
812
- class RawWeakMap {
813
- _map = /* @__PURE__ */ new WeakMap();
814
- // fix: vue reactive object
815
- _toRaw(value) {
816
- if (value && typeof value === "object") {
817
- const raw = value.__v_raw;
818
- if (raw) {
819
- value = this._toRaw(raw);
820
- }
821
- }
822
- return value;
823
- }
824
- /**
825
- * Removes the specified element from the WeakMap.
826
- * @returns true if the element was successfully removed, or false if it was not present.
827
- */
828
- delete(key) {
829
- return this._map.delete(this._toRaw(key));
830
- }
831
- /**
832
- * @returns a specified element.
833
- */
834
- get(key) {
835
- return this._map.get(this._toRaw(key));
836
- }
837
- /**
838
- * @returns a boolean indicating whether an element with the specified key exists or not.
839
- */
840
- has(key) {
841
- return this._map.has(this._toRaw(key));
842
- }
843
- /**
844
- * Adds a new element with a specified key and value.
845
- * @param key Must be an object or symbol.
846
- */
847
- set(key, value) {
848
- this._map.set(this._toRaw(key), this._toRaw(value));
849
- return this;
850
- }
851
- }
852
-
853
893
  const declarationMap = new RawWeakMap();
854
894
  function getDeclarations(constructor) {
855
895
  let declarations = declarationMap.get(constructor);
@@ -869,10 +909,18 @@ function defineProperty(constructor, key, declaration = {}) {
869
909
  const getDefaultValue = () => typeof defaultValue === "function" ? defaultValue() : defaultValue;
870
910
  const descriptor = Object.getOwnPropertyDescriptor(constructor.prototype, key) || {
871
911
  get() {
872
- return this[alias];
912
+ if (typeof alias === "string") {
913
+ return getObjectValueByPath(this, alias);
914
+ } else {
915
+ return this[alias];
916
+ }
873
917
  },
874
918
  set(v) {
875
- this[alias] = v;
919
+ if (typeof alias === "string") {
920
+ setObjectValueByPath(this, alias, v);
921
+ } else {
922
+ this[alias] = v;
923
+ }
876
924
  }
877
925
  };
878
926
  Object.defineProperty(constructor.prototype, key, {
@@ -1369,6 +1417,8 @@ exports.getDefaultTextInlineStyle = getDefaultTextInlineStyle;
1369
1417
  exports.getDefaultTextLineStyle = getDefaultTextLineStyle;
1370
1418
  exports.getDefaultTextStyle = getDefaultTextStyle;
1371
1419
  exports.getDefaultTransformStyle = getDefaultTransformStyle;
1420
+ exports.getNestedValue = getNestedValue;
1421
+ exports.getObjectValueByPath = getObjectValueByPath;
1372
1422
  exports.hasCRLF = hasCRLF;
1373
1423
  exports.isCRLF = isCRLF;
1374
1424
  exports.isColor = isColor;
@@ -1412,5 +1462,7 @@ exports.parseGradient = parseGradient;
1412
1462
  exports.pick = pick;
1413
1463
  exports.property = property;
1414
1464
  exports.round = round;
1465
+ exports.setNestedValue = setNestedValue;
1466
+ exports.setObjectValueByPath = setObjectValueByPath;
1415
1467
  exports.stringifyGradient = stringifyGradient;
1416
1468
  exports.textContentToString = textContentToString;
package/dist/index.d.cts CHANGED
@@ -321,35 +321,12 @@ interface Definable {
321
321
  interface PropertyDeclaration {
322
322
  readonly [key: string]: any;
323
323
  readonly default?: any | (() => any);
324
- readonly alias?: string;
324
+ readonly alias?: string | symbol;
325
325
  }
326
326
  declare function getDeclarations(constructor: any): Map<PropertyKey, PropertyDeclaration>;
327
327
  declare function defineProperty(constructor: any, key: PropertyKey, declaration?: PropertyDeclaration): void;
328
328
  declare function property(options?: PropertyDeclaration): PropertyDecorator;
329
329
 
330
- declare class RawWeakMap<K extends WeakKey = WeakKey, V = any> {
331
- protected _map: WeakMap<K, V>;
332
- protected _toRaw(value: any): any;
333
- /**
334
- * Removes the specified element from the WeakMap.
335
- * @returns true if the element was successfully removed, or false if it was not present.
336
- */
337
- delete(key: K): boolean;
338
- /**
339
- * @returns a specified element.
340
- */
341
- get(key: K): V | undefined;
342
- /**
343
- * @returns a boolean indicating whether an element with the specified key exists or not.
344
- */
345
- has(key: K): boolean;
346
- /**
347
- * Adds a new element with a specified key and value.
348
- * @param key Must be an object or symbol.
349
- */
350
- set(key: K, value: V): this;
351
- }
352
-
353
330
  interface NormalizedInnerShadow {
354
331
  color: NormalizedColor;
355
332
  offsetX: number;
@@ -770,5 +747,33 @@ declare function round(number: number, digits?: number, base?: number): number;
770
747
  declare function clearUndef<T>(obj: T, deep?: boolean): T;
771
748
  declare function pick<T extends object, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>;
772
749
 
773
- export { RawWeakMap, clearUndef, defaultColor, defineProperty, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, hasCRLF, isCRLF, isColor, isColorFill, isColorFillObject, isEqualStyle, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, round, stringifyGradient, textContentToString };
750
+ declare function getNestedValue(obj: any, path: (string | number)[], fallback?: any): any;
751
+ declare function setNestedValue(obj: any, path: (string | number)[], value: any): void;
752
+ declare function getObjectValueByPath(obj: any, path: string, fallback?: any): any;
753
+ declare function setObjectValueByPath(obj: any, path: string, value: any): void;
754
+
755
+ declare class RawWeakMap<K extends WeakKey = WeakKey, V = any> {
756
+ protected _map: WeakMap<K, V>;
757
+ protected _toRaw(value: any): any;
758
+ /**
759
+ * Removes the specified element from the WeakMap.
760
+ * @returns true if the element was successfully removed, or false if it was not present.
761
+ */
762
+ delete(key: K): boolean;
763
+ /**
764
+ * @returns a specified element.
765
+ */
766
+ get(key: K): V | undefined;
767
+ /**
768
+ * @returns a boolean indicating whether an element with the specified key exists or not.
769
+ */
770
+ has(key: K): boolean;
771
+ /**
772
+ * Adds a new element with a specified key and value.
773
+ * @param key Must be an object or symbol.
774
+ */
775
+ set(key: K, value: V): this;
776
+ }
777
+
778
+ export { RawWeakMap, clearUndef, defaultColor, defineProperty, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, hasCRLF, isCRLF, isColor, isColorFill, isColorFillObject, isEqualStyle, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
774
779
  export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Definable, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, ExtentKeywordNode, Fill, FillObject, FillRule, FlatTextContent, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentObject, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, ImageFill, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineEndSize, LineEndType, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOuterShadow, NormalizedBaseOutline, NormalizedColor, NormalizedColorFill, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedForeground, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphObject, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PropertyDeclaration, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor };
package/dist/index.d.mts CHANGED
@@ -321,35 +321,12 @@ interface Definable {
321
321
  interface PropertyDeclaration {
322
322
  readonly [key: string]: any;
323
323
  readonly default?: any | (() => any);
324
- readonly alias?: string;
324
+ readonly alias?: string | symbol;
325
325
  }
326
326
  declare function getDeclarations(constructor: any): Map<PropertyKey, PropertyDeclaration>;
327
327
  declare function defineProperty(constructor: any, key: PropertyKey, declaration?: PropertyDeclaration): void;
328
328
  declare function property(options?: PropertyDeclaration): PropertyDecorator;
329
329
 
330
- declare class RawWeakMap<K extends WeakKey = WeakKey, V = any> {
331
- protected _map: WeakMap<K, V>;
332
- protected _toRaw(value: any): any;
333
- /**
334
- * Removes the specified element from the WeakMap.
335
- * @returns true if the element was successfully removed, or false if it was not present.
336
- */
337
- delete(key: K): boolean;
338
- /**
339
- * @returns a specified element.
340
- */
341
- get(key: K): V | undefined;
342
- /**
343
- * @returns a boolean indicating whether an element with the specified key exists or not.
344
- */
345
- has(key: K): boolean;
346
- /**
347
- * Adds a new element with a specified key and value.
348
- * @param key Must be an object or symbol.
349
- */
350
- set(key: K, value: V): this;
351
- }
352
-
353
330
  interface NormalizedInnerShadow {
354
331
  color: NormalizedColor;
355
332
  offsetX: number;
@@ -770,5 +747,33 @@ declare function round(number: number, digits?: number, base?: number): number;
770
747
  declare function clearUndef<T>(obj: T, deep?: boolean): T;
771
748
  declare function pick<T extends object, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>;
772
749
 
773
- export { RawWeakMap, clearUndef, defaultColor, defineProperty, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, hasCRLF, isCRLF, isColor, isColorFill, isColorFillObject, isEqualStyle, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, round, stringifyGradient, textContentToString };
750
+ declare function getNestedValue(obj: any, path: (string | number)[], fallback?: any): any;
751
+ declare function setNestedValue(obj: any, path: (string | number)[], value: any): void;
752
+ declare function getObjectValueByPath(obj: any, path: string, fallback?: any): any;
753
+ declare function setObjectValueByPath(obj: any, path: string, value: any): void;
754
+
755
+ declare class RawWeakMap<K extends WeakKey = WeakKey, V = any> {
756
+ protected _map: WeakMap<K, V>;
757
+ protected _toRaw(value: any): any;
758
+ /**
759
+ * Removes the specified element from the WeakMap.
760
+ * @returns true if the element was successfully removed, or false if it was not present.
761
+ */
762
+ delete(key: K): boolean;
763
+ /**
764
+ * @returns a specified element.
765
+ */
766
+ get(key: K): V | undefined;
767
+ /**
768
+ * @returns a boolean indicating whether an element with the specified key exists or not.
769
+ */
770
+ has(key: K): boolean;
771
+ /**
772
+ * Adds a new element with a specified key and value.
773
+ * @param key Must be an object or symbol.
774
+ */
775
+ set(key: K, value: V): this;
776
+ }
777
+
778
+ export { RawWeakMap, clearUndef, defaultColor, defineProperty, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, hasCRLF, isCRLF, isColor, isColorFill, isColorFillObject, isEqualStyle, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
774
779
  export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Definable, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, ExtentKeywordNode, Fill, FillObject, FillRule, FlatTextContent, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentObject, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, ImageFill, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineEndSize, LineEndType, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOuterShadow, NormalizedBaseOutline, NormalizedColor, NormalizedColorFill, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedForeground, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphObject, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PropertyDeclaration, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor };
package/dist/index.d.ts CHANGED
@@ -321,35 +321,12 @@ interface Definable {
321
321
  interface PropertyDeclaration {
322
322
  readonly [key: string]: any;
323
323
  readonly default?: any | (() => any);
324
- readonly alias?: string;
324
+ readonly alias?: string | symbol;
325
325
  }
326
326
  declare function getDeclarations(constructor: any): Map<PropertyKey, PropertyDeclaration>;
327
327
  declare function defineProperty(constructor: any, key: PropertyKey, declaration?: PropertyDeclaration): void;
328
328
  declare function property(options?: PropertyDeclaration): PropertyDecorator;
329
329
 
330
- declare class RawWeakMap<K extends WeakKey = WeakKey, V = any> {
331
- protected _map: WeakMap<K, V>;
332
- protected _toRaw(value: any): any;
333
- /**
334
- * Removes the specified element from the WeakMap.
335
- * @returns true if the element was successfully removed, or false if it was not present.
336
- */
337
- delete(key: K): boolean;
338
- /**
339
- * @returns a specified element.
340
- */
341
- get(key: K): V | undefined;
342
- /**
343
- * @returns a boolean indicating whether an element with the specified key exists or not.
344
- */
345
- has(key: K): boolean;
346
- /**
347
- * Adds a new element with a specified key and value.
348
- * @param key Must be an object or symbol.
349
- */
350
- set(key: K, value: V): this;
351
- }
352
-
353
330
  interface NormalizedInnerShadow {
354
331
  color: NormalizedColor;
355
332
  offsetX: number;
@@ -770,5 +747,33 @@ declare function round(number: number, digits?: number, base?: number): number;
770
747
  declare function clearUndef<T>(obj: T, deep?: boolean): T;
771
748
  declare function pick<T extends object, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>;
772
749
 
773
- export { RawWeakMap, clearUndef, defaultColor, defineProperty, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, hasCRLF, isCRLF, isColor, isColorFill, isColorFillObject, isEqualStyle, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, round, stringifyGradient, textContentToString };
750
+ declare function getNestedValue(obj: any, path: (string | number)[], fallback?: any): any;
751
+ declare function setNestedValue(obj: any, path: (string | number)[], value: any): void;
752
+ declare function getObjectValueByPath(obj: any, path: string, fallback?: any): any;
753
+ declare function setObjectValueByPath(obj: any, path: string, value: any): void;
754
+
755
+ declare class RawWeakMap<K extends WeakKey = WeakKey, V = any> {
756
+ protected _map: WeakMap<K, V>;
757
+ protected _toRaw(value: any): any;
758
+ /**
759
+ * Removes the specified element from the WeakMap.
760
+ * @returns true if the element was successfully removed, or false if it was not present.
761
+ */
762
+ delete(key: K): boolean;
763
+ /**
764
+ * @returns a specified element.
765
+ */
766
+ get(key: K): V | undefined;
767
+ /**
768
+ * @returns a boolean indicating whether an element with the specified key exists or not.
769
+ */
770
+ has(key: K): boolean;
771
+ /**
772
+ * Adds a new element with a specified key and value.
773
+ * @param key Must be an object or symbol.
774
+ */
775
+ set(key: K, value: V): this;
776
+ }
777
+
778
+ export { RawWeakMap, clearUndef, defaultColor, defineProperty, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, hasCRLF, isCRLF, isColor, isColorFill, isColorFillObject, isEqualStyle, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
774
779
  export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Definable, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, ExtentKeywordNode, Fill, FillObject, FillRule, FlatTextContent, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentObject, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, ImageFill, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineEndSize, LineEndType, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOuterShadow, NormalizedBaseOutline, NormalizedColor, NormalizedColorFill, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedForeground, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphObject, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PropertyDeclaration, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(i,y){typeof exports=="object"&&typeof module<"u"?y(exports):typeof define=="function"&&define.amd?define(["exports"],y):(i=typeof globalThis<"u"?globalThis:i||self,y(i.modernIdoc={}))})(this,function(i){"use strict";var Pe=Object.defineProperty;var Te=(i,y,O)=>y in i?Pe(i,y,{enumerable:!0,configurable:!0,writable:!0,value:O}):i[y]=O;var ae=(i,y,O)=>Te(i,typeof y!="symbol"?y+"":y,O);function y(t){return typeof t=="string"?{src:t}:t}var O={grad:.9,turn:360,rad:360/(2*Math.PI)},_=function(t){return typeof t=="string"?t.length>0:typeof t=="number"},m=function(t,e,n){return e===void 0&&(e=0),n===void 0&&(n=Math.pow(10,e)),Math.round(n*t)/n+0},C=function(t,e,n){return e===void 0&&(e=0),n===void 0&&(n=1),t>n?n:t>e?t:e},at=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},ut=function(t){return{r:C(t.r,0,255),g:C(t.g,0,255),b:C(t.b,0,255),a:C(t.a)}},K=function(t){return{r:m(t.r),g:m(t.g),b:m(t.b),a:m(t.a,3)}},ue=/^#([0-9a-f]{3,8})$/i,M=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},lt=function(t){var e=t.r,n=t.g,r=t.b,o=t.a,c=Math.max(e,n,r),l=c-Math.min(e,n,r),u=l?c===e?(n-r)/l:c===n?2+(r-e)/l:4+(e-n)/l:0;return{h:60*(u<0?u+6:u),s:c?l/c*100:0,v:c/255*100,a:o}},st=function(t){var e=t.h,n=t.s,r=t.v,o=t.a;e=e/360*6,n/=100,r/=100;var c=Math.floor(e),l=r*(1-n),u=r*(1-(e-c)*n),g=r*(1-(1-e+c)*n),h=c%6;return{r:255*[r,u,l,l,g,r][h],g:255*[g,r,r,u,l,l][h],b:255*[l,l,g,r,r,u][h],a:o}},ct=function(t){return{h:at(t.h),s:C(t.s,0,100),l:C(t.l,0,100),a:C(t.a)}},ft=function(t){return{h:m(t.h),s:m(t.s),l:m(t.l),a:m(t.a,3)}},dt=function(t){return st((n=(e=t).s,{h:e.h,s:(n*=((r=e.l)<50?r:100-r)/100)>0?2*n/(r+n)*100:0,v:r+n,a:e.a}));var e,n,r},L=function(t){return{h:(e=lt(t)).h,s:(o=(200-(n=e.s))*(r=e.v)/100)>0&&o<200?n*r/100/(o<=100?o:200-o)*100:0,l:o/2,a:e.a};var e,n,r,o},le=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,se=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,ce=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,fe=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,gt={string:[[function(t){var e=ue.exec(t);return e?(t=e[1]).length<=4?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:t.length===4?m(parseInt(t[3]+t[3],16)/255,2):1}:t.length===6||t.length===8?{r:parseInt(t.substr(0,2),16),g:parseInt(t.substr(2,2),16),b:parseInt(t.substr(4,2),16),a:t.length===8?m(parseInt(t.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(t){var e=ce.exec(t)||fe.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:ut({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(t){var e=le.exec(t)||se.exec(t);if(!e)return null;var n,r,o=ct({h:(n=e[1],r=e[2],r===void 0&&(r="deg"),Number(n)*(O[r]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return dt(o)},"hsl"]],object:[[function(t){var e=t.r,n=t.g,r=t.b,o=t.a,c=o===void 0?1:o;return _(e)&&_(n)&&_(r)?ut({r:Number(e),g:Number(n),b:Number(r),a:Number(c)}):null},"rgb"],[function(t){var e=t.h,n=t.s,r=t.l,o=t.a,c=o===void 0?1:o;if(!_(e)||!_(n)||!_(r))return null;var l=ct({h:Number(e),s:Number(n),l:Number(r),a:Number(c)});return dt(l)},"hsl"],[function(t){var e=t.h,n=t.s,r=t.v,o=t.a,c=o===void 0?1:o;if(!_(e)||!_(n)||!_(r))return null;var l=function(u){return{h:at(u.h),s:C(u.s,0,100),v:C(u.v,0,100),a:C(u.a)}}({h:Number(e),s:Number(n),v:Number(r),a:Number(c)});return st(l)},"hsv"]]},ht=function(t,e){for(var n=0;n<e.length;n++){var r=e[n][0](t);if(r)return[r,e[n][1]]}return[null,void 0]},de=function(t){return typeof t=="string"?ht(t.trim(),gt.string):typeof t=="object"&&t!==null?ht(t,gt.object):[null,void 0]},X=function(t,e){var n=L(t);return{h:n.h,s:C(n.s+100*e,0,100),l:n.l,a:n.a}},Y=function(t){return(299*t.r+587*t.g+114*t.b)/1e3/255},vt=function(t,e){var n=L(t);return{h:n.h,s:n.s,l:C(n.l+100*e,0,100),a:n.a}},mt=function(){function t(e){this.parsed=de(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return t.prototype.isValid=function(){return this.parsed!==null},t.prototype.brightness=function(){return m(Y(this.rgba),2)},t.prototype.isDark=function(){return Y(this.rgba)<.5},t.prototype.isLight=function(){return Y(this.rgba)>=.5},t.prototype.toHex=function(){return e=K(this.rgba),n=e.r,r=e.g,o=e.b,l=(c=e.a)<1?M(m(255*c)):"","#"+M(n)+M(r)+M(o)+l;var e,n,r,o,c,l},t.prototype.toRgb=function(){return K(this.rgba)},t.prototype.toRgbString=function(){return e=K(this.rgba),n=e.r,r=e.g,o=e.b,(c=e.a)<1?"rgba("+n+", "+r+", "+o+", "+c+")":"rgb("+n+", "+r+", "+o+")";var e,n,r,o,c},t.prototype.toHsl=function(){return ft(L(this.rgba))},t.prototype.toHslString=function(){return e=ft(L(this.rgba)),n=e.h,r=e.s,o=e.l,(c=e.a)<1?"hsla("+n+", "+r+"%, "+o+"%, "+c+")":"hsl("+n+", "+r+"%, "+o+"%)";var e,n,r,o,c},t.prototype.toHsv=function(){return e=lt(this.rgba),{h:m(e.h),s:m(e.s),v:m(e.v),a:m(e.a,3)};var e},t.prototype.invert=function(){return z({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},t.prototype.saturate=function(e){return e===void 0&&(e=.1),z(X(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),z(X(this.rgba,-e))},t.prototype.grayscale=function(){return z(X(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),z(vt(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),z(vt(this.rgba,-e))},t.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},t.prototype.alpha=function(e){return typeof e=="number"?z({r:(n=this.rgba).r,g:n.g,b:n.b,a:e}):m(this.rgba.a,3);var n},t.prototype.hue=function(e){var n=L(this.rgba);return typeof e=="number"?z({h:e,s:n.s,l:n.l,a:n.a}):m(n.h)},t.prototype.isEqual=function(e){return this.toHex()===z(e).toHex()},t}(),z=function(t){return t instanceof mt?t:new mt(t)};function d(t){return t==null||t==="none"}function R(t,e=0,n=10**e){return Math.round(n*t)/n+0}function N(t,e=!1){if(typeof t!="object"||!t)return t;if(Array.isArray(t))return e?t.map(r=>N(r,e)):t;const n={};for(const r in t){const o=t[r];o!=null&&(e?n[r]=N(o,e):n[r]=o)}return n}function P(t,e){const n={};return e.forEach(r=>{r in t&&(n[r]=t[r])}),n}function q(t){let e;return typeof t=="number"?e={r:t>>24&255,g:t>>16&255,b:t>>8&255,a:(t&255)/255}:e=t,z(e)}function ge(t){return{r:R(t.r),g:R(t.g),b:R(t.b),a:R(t.a,3)}}function T(t){const e=t.toString(16);return e.length<2?`0${e}`:e}const G="#000000FF";function pt(t){return q(t).isValid()}function b(t,e=!1){const n=q(t);if(!n.isValid()){if(typeof t=="string")return t;const u=`Failed to normalizeColor ${t}`;if(e)throw new Error(u);return console.warn(u),G}const{r,g:o,b:c,a:l}=ge(n.rgba);return`#${T(r)}${T(o)}${T(c)}${T(R(l*255))}`}var j=j||{};j.parse=function(){const t={linearGradient:/^(-(webkit|o|ms|moz)-)?(linear-gradient)/i,repeatingLinearGradient:/^(-(webkit|o|ms|moz)-)?(repeating-linear-gradient)/i,radialGradient:/^(-(webkit|o|ms|moz)-)?(radial-gradient)/i,repeatingRadialGradient:/^(-(webkit|o|ms|moz)-)?(repeating-radial-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?((\d*\.\d+)|(\d+\.?)))px/,percentageValue:/^(-?((\d*\.\d+)|(\d+\.?)))%/,emValue:/^(-?((\d*\.\d+)|(\d+\.?)))em/,angleValue:/^(-?((\d*\.\d+)|(\d+\.?)))deg/,radianValue:/^(-?((\d*\.\d+)|(\d+\.?)))rad/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^#([0-9a-f]+)/i,literalColor:/^([a-z]+)/i,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,varColor:/^var/i,calcValue:/^calc/i,variableName:/^(--[a-z0-9-,\s#]+)/i,number:/^((\d*\.\d+)|(\d+\.?))/,hslColor:/^hsl/i,hslaColor:/^hsla/i};let e="";function n(a){const s=new Error(`${e}: ${a}`);throw s.source=e,s}function r(){const a=o();return e.length>0&&n("Invalid input not EOF"),a}function o(){return W(c)}function c(){return l("linear-gradient",t.linearGradient,g)||l("repeating-linear-gradient",t.repeatingLinearGradient,g)||l("radial-gradient",t.radialGradient,F)||l("repeating-radial-gradient",t.repeatingRadialGradient,F)}function l(a,s,f){return u(s,p=>{const E=f();return E&&(v(t.comma)||n("Missing comma before color stops")),{type:a,orientation:E,colorStops:W(ke)}})}function u(a,s){const f=v(a);if(f){v(t.startCall)||n("Missing (");const p=s(f);return v(t.endCall)||n("Missing )"),p}}function g(){const a=h();if(a)return a;const s=S("position-keyword",t.positionKeywords,1);return s?{type:"directional",value:s.value}:w()}function h(){return S("directional",t.sideOrCorner,1)}function w(){return S("angular",t.angleValue,1)||S("angular",t.radianValue,1)}function F(){let a,s=H(),f;return s&&(a=[],a.push(s),f=e,v(t.comma)&&(s=H(),s?a.push(s):e=f)),a}function H(){let a=ze()||_e();if(a)a.at=rt();else{const s=nt();if(s){a=s;const f=rt();f&&(a.at=f)}else{const f=rt();if(f)a={type:"default-radial",at:f};else{const p=it();p&&(a={type:"default-radial",at:p})}}}return a}function ze(){const a=S("shape",/^(circle)/i,0);return a&&(a.style=oe()||nt()),a}function _e(){const a=S("shape",/^(ellipse)/i,0);return a&&(a.style=it()||B()||nt()),a}function nt(){return S("extent-keyword",t.extentKeywords,1)}function rt(){if(S("position",/^at/,0)){const a=it();return a||n("Missing positioning value"),a}}function it(){const a=Fe();if(a.x||a.y)return{type:"position",value:a}}function Fe(){return{x:B(),y:B()}}function W(a){let s=a();const f=[];if(s)for(f.push(s);v(t.comma);)s=a(),s?f.push(s):n("One extra comma");return f}function ke(){const a=Re();return a||n("Expected color definition"),a.length=B(),a}function Re(){return Ee()||Ie()||Ge()||De()||Oe()||Le()||Ne()}function Ne(){return S("literal",t.literalColor,0)}function Ee(){return S("hex",t.hexColor,1)}function Oe(){return u(t.rgbColor,()=>({type:"rgb",value:W(V)}))}function De(){return u(t.rgbaColor,()=>({type:"rgba",value:W(V)}))}function Le(){return u(t.varColor,()=>({type:"var",value:Ae()}))}function Ge(){return u(t.hslColor,()=>{v(t.percentageValue)&&n("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const s=V();v(t.comma);let f=v(t.percentageValue);const p=f?f[1]:null;v(t.comma),f=v(t.percentageValue);const E=f?f[1]:null;return(!p||!E)&&n("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[s,p,E]}})}function Ie(){return u(t.hslaColor,()=>{const a=V();v(t.comma);let s=v(t.percentageValue);const f=s?s[1]:null;v(t.comma),s=v(t.percentageValue);const p=s?s[1]:null;v(t.comma);const E=V();return(!f||!p)&&n("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[a,f,p,E]}})}function Ae(){return v(t.variableName)[1]}function V(){return v(t.number)[1]}function B(){return S("%",t.percentageValue,1)||Ve()||Me()||oe()}function Ve(){return S("position-keyword",t.positionKeywords,1)}function Me(){return u(t.calcValue,()=>{let a=1,s=0;for(;a>0&&s<e.length;){const p=e.charAt(s);p==="("?a++:p===")"&&a--,s++}a>0&&n("Missing closing parenthesis in calc() expression");const f=e.substring(0,s-1);return ot(s-1),{type:"calc",value:f}})}function oe(){return S("px",t.pixelValue,1)||S("em",t.emValue,1)}function S(a,s,f){const p=v(s);if(p)return{type:a,value:p[f]}}function v(a){let s,f;return f=/^\s+/.exec(e),f&&ot(f[0].length),s=a.exec(e),s&&ot(s[0].length),s}function ot(a){e=e.substr(a)}return function(a){return e=a.toString().trim(),e.endsWith(";")&&(e=e.slice(0,-1)),r()}}();const bt=j.parse.bind(j);var $=$||{};$.stringify=function(){var t={"visit_linear-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-linear-gradient":function(e){return t.visit_gradient(e)},"visit_radial-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-radial-gradient":function(e){return t.visit_gradient(e)},visit_gradient:function(e){var n=t.visit(e.orientation);return n&&(n+=", "),e.type+"("+n+t.visit(e.colorStops)+")"},visit_shape:function(e){var n=e.value,r=t.visit(e.at),o=t.visit(e.style);return o&&(n+=" "+o),r&&(n+=" at "+r),n},"visit_default-radial":function(e){var n="",r=t.visit(e.at);return r&&(n+=r),n},"visit_extent-keyword":function(e){var n=e.value,r=t.visit(e.at);return r&&(n+=" at "+r),n},"visit_position-keyword":function(e){return e.value},visit_position:function(e){return t.visit(e.value.x)+" "+t.visit(e.value.y)},"visit_%":function(e){return e.value+"%"},visit_em:function(e){return e.value+"em"},visit_px:function(e){return e.value+"px"},visit_calc:function(e){return"calc("+e.value+")"},visit_literal:function(e){return t.visit_color(e.value,e)},visit_hex:function(e){return t.visit_color("#"+e.value,e)},visit_rgb:function(e){return t.visit_color("rgb("+e.value.join(", ")+")",e)},visit_rgba:function(e){return t.visit_color("rgba("+e.value.join(", ")+")",e)},visit_hsl:function(e){return t.visit_color("hsl("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%)",e)},visit_hsla:function(e){return t.visit_color("hsla("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%, "+e.value[3]+")",e)},visit_var:function(e){return t.visit_color("var("+e.value+")",e)},visit_color:function(e,n){var r=e,o=t.visit(n.length);return o&&(r+=" "+o),r},visit_angular:function(e){return e.value+"deg"},visit_directional:function(e){return"to "+e.value},visit_array:function(e){var n="",r=e.length;return e.forEach(function(o,c){n+=t.visit(o),c<r-1&&(n+=", ")}),n},visit_object:function(e){return e.width&&e.height?t.visit(e.width)+" "+t.visit(e.height):""},visit:function(e){if(!e)return"";if(e instanceof Array)return t.visit_array(e);if(typeof e=="object"&&!e.type)return t.visit_object(e);if(e.type){var n=t["visit_"+e.type];if(n)return n(e);throw Error("Missing visitor visit_"+e.type)}else throw Error("Invalid node.")}};return function(e){return t.visit(e)}}();const he=$.stringify.bind($);function yt(t){const e=t.length-1;return t.map((n,r)=>{var u;const o=n.value;let c=R(r/e,3),l="#00000000";switch(n.type){case"rgb":l=b({r:Number(o[0]??0),g:Number(o[1]??0),b:Number(o[2]??0)});break;case"rgba":l=b({r:Number(o[0]??0),g:Number(o[1]??0),b:Number(o[2]??0),a:Number(o[3]??0)});break;case"literal":l=b(n.value);break;case"hex":l=b(`#${n.value}`);break}switch((u=n.length)==null?void 0:u.type){case"%":c=Number(n.length.value)/100;break}return{offset:c,color:l}})}function St(t){var n;let e=0;switch((n=t.orientation)==null?void 0:n.type){case"angular":e=Number(t.orientation.value);break}return{type:"linear-gradient",angle:e,stops:yt(t.colorStops)}}function Ct(t){var e;return(e=t.orientation)==null||e.map(n=>{switch(n==null?void 0:n.type){case"shape":case"default-radial":case"extent-keyword":default:return null}}),{type:"radial-gradient",stops:yt(t.colorStops)}}function I(t){return t.startsWith("linear-gradient(")||t.startsWith("radial-gradient(")}function wt(t){return bt(t).map(e=>{switch(e==null?void 0:e.type){case"linear-gradient":return St(e);case"repeating-linear-gradient":return{...St(e),repeat:!0};case"radial-gradient":return Ct(e);case"repeating-radial-gradient":return{...Ct(e),repeat:!0};default:return}}).filter(Boolean)}function zt(t){let e;return typeof t=="string"?e={color:t}:e=t,{color:b(e.color)}}function _t(t){let e;if(typeof t=="string"?e={image:t}:e=t,e.image){const{type:n,...r}=wt(e.image)[0]??{};switch(n){case"radial-gradient":return{radialGradient:r};case"linear-gradient":return{linearGradient:r}}}return e}function Ft(t){let e;return typeof t=="string"?e={image:t}:e=t,e}function kt(t){let e;return typeof t=="string"?e={preset:t}:e=t,{preset:e.preset,foregroundColor:d(e.foregroundColor)?void 0:b(e.foregroundColor),backgroundColor:d(e.backgroundColor)?void 0:b(e.backgroundColor)}}function Rt(t){return!d(t.color)}function Nt(t){return typeof t=="string"?pt(t):Rt(t)}function Et(t){return!d(t.image)&&I(t.image)||!!t.linearGradient||!!t.radialGradient}function Ot(t){return typeof t=="string"?I(t):Et(t)}function Dt(t){return!d(t.image)&&!I(t.image)}function Lt(t){return typeof t=="string"?!I(t):Dt(t)}function Gt(t){return!d(t.preset)}function It(t){return typeof t=="string"?!1:Gt(t)}function k(t){return Nt(t)?zt(t):Ot(t)?_t(t):Lt(t)?Ft(t):It(t)?kt(t):{}}function At(t){return typeof t=="string"?{...k(t)}:{...k(t),...P(t,["fillWithShape"])}}class Vt{constructor(){ae(this,"_map",new WeakMap)}_toRaw(e){if(e&&typeof e=="object"){const n=e.__v_raw;n&&(e=this._toRaw(n))}return e}delete(e){return this._map.delete(this._toRaw(e))}get(e){return this._map.get(this._toRaw(e))}has(e){return this._map.has(this._toRaw(e))}set(e,n){return this._map.set(this._toRaw(e),this._toRaw(n)),this}}const Mt=new Vt;function U(t){let e=Mt.get(t);if(!e){const n=Object.getPrototypeOf(t);e=new Map(n?U(n):void 0),Mt.set(t,e)}return e}function Pt(t,e,n={}){U(t).set(e,n);const{default:r,alias:o=Symbol.for(String(e))}=n,c=()=>typeof r=="function"?r():r,l=Object.getOwnPropertyDescriptor(t.prototype,e)||{get(){return this[o]},set(u){this[o]=u}};Object.defineProperty(t.prototype,e,{get(){var g,h;let u=(g=l.get)==null?void 0:g.call(this);return u===void 0&&(u=c(),u!==void 0&&((h=l.set)==null||h.call(this,u))),u},set(u){var h,w,F;let g=(h=l.get)==null?void 0:h.call(this);g===void 0&&(g=c()),(w=l.set)==null||w.call(this,u),(F=this.requestUpdate)==null||F.call(this,e,u,g,n)},configurable:!0,enumerable:!0})}function ve(t){return function(e,n){Pt(e.constructor,n,t)}}function Z(){return{color:G,offsetX:0,offsetY:0,blurRadius:1}}function J(t){return{...Z(),...N({...t,color:d(t.color)?G:b(t.color)})}}function Tt(){return{...Z(),scaleX:1,scaleY:1}}function jt(t){return{...Tt(),...J(t)}}function me(t){return t}function $t(t){return N({...t,softEdge:d(t.softEdge)?void 0:t.softEdge,outerShadow:d(t.outerShadow)?void 0:jt(t.outerShadow),innerShadow:d(t.innerShadow)?void 0:J(t.innerShadow)})}function xt(t){return typeof t=="string"?{...k(t)}:{...k(t),...P(t,["fillWithShape"])}}function Ht(t){return typeof t=="string"?{...k(t)}:{...k(t),...P(t,["width","style","headEnd","tailEnd"])}}function Wt(t){return typeof t=="string"?{color:b(t)}:{...t,color:d(t.color)?G:b(t.color)}}function Bt(){return{boxShadow:"none"}}function Kt(t){return typeof t=="string"?t.startsWith("<svg")?{svg:t}:{paths:[{data:t}]}:Array.isArray(t)?{paths:t.map(e=>typeof e=="string"?{data:e}:e)}:t}function Xt(){return{overflow:"visible",direction:void 0,display:void 0,boxSizing:void 0,width:void 0,height:void 0,maxHeight:void 0,maxWidth:void 0,minHeight:void 0,minWidth:void 0,position:void 0,left:0,top:0,right:void 0,bottom:void 0,borderTop:void 0,borderLeft:void 0,borderRight:void 0,borderBottom:void 0,borderWidth:0,border:void 0,flex:void 0,flexBasis:void 0,flexDirection:void 0,flexGrow:void 0,flexShrink:void 0,flexWrap:void 0,justifyContent:void 0,gap:void 0,alignContent:void 0,alignItems:void 0,alignSelf:void 0,marginTop:void 0,marginLeft:void 0,marginRight:void 0,marginBottom:void 0,margin:void 0,paddingTop:void 0,paddingLeft:void 0,paddingRight:void 0,paddingBottom:void 0,padding:void 0}}function Yt(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function qt(){return{...Xt(),...Yt(),...Bt(),backgroundImage:"none",backgroundSize:"auto, auto",backgroundColor:"none",backgroundColormap:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"rgb(0, 0, 0)",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto",maskImage:"none"}}function Ut(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function Zt(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function Jt(){return{...Ut(),color:"rgb(0, 0, 0)",verticalAlign:"baseline",letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textTransform:"none",textOrientation:"mixed",textDecoration:"none"}}function Qt(){return{...Zt(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function te(){return{...Qt(),...Jt(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function D(t){return N({...t,color:d(t.color)?void 0:b(t.color),backgroundColor:d(t.backgroundColor)?void 0:b(t.backgroundColor),borderColor:d(t.borderColor)?void 0:b(t.borderColor),outlineColor:d(t.outlineColor)?void 0:b(t.outlineColor),shadowColor:d(t.shadowColor)?void 0:b(t.shadowColor)})}function pe(){return{...qt(),...te()}}const Q=/\r\n|\n\r|\n|\r/,be=new RegExp(`${Q.source}|<br\\/>`,"g"),ye=new RegExp(`^(${Q.source})$`),x=`
2
- `;function Se(t){return Q.test(t)}function tt(t){return ye.test(t)}function ee(t){return t.replace(be,x)}function ne(t,e){const n=Array.from(new Set([...Object.keys(t),...Object.keys(e)]));return!n.length||n.every(r=>t[r]===e[r])}function A(t){const e=[];function n(){return e[e.length-1]||r()}function r(l={}){let u=e[e.length-1];return(u==null?void 0:u.fragments.length)===0?(u={...l,fragments:[]},e[e.length-1]=u):(u={...l,fragments:[]},e.push(u)),u}function o(l="",u={}){Array.from(l).forEach(g=>{if(tt(g)){const{fragments:h,...w}=n();h.length||h.push({...u,content:x}),r(w)}else{const h=n(),w=h.fragments[h.fragments.length-1];if(w){const{content:F,...H}=w;if(ne(u,H)){w.content=`${F}${g}`;return}}h.fragments.push({...u,content:g})}})}return(Array.isArray(t)?t:[t]).forEach(l=>{if(typeof l=="string")r(),o(l);else if("content"in l){const{content:u,...g}=l;r(D(g)),o(u)}else if("fragments"in l){const{fragments:u,...g}=l;r(D(g)),u.forEach(h=>{const{content:w,...F}=h;o(w,D(F))})}else Array.isArray(l)?(r(),l.forEach(u=>{if(typeof u=="string")o(u);else{const{content:g,...h}=u;o(g,D(h))}})):console.warn("Failed to parse text content",l)}),n().fragments.length||o(x),e}function re(t){return typeof t=="string"?{content:A(t)}:"content"in t?{...t,content:A(t.content)}:{content:A(t)}}function Ce(t){return A(t).map(e=>{const n=ee(e.fragments.flatMap(r=>r.content).join(""));return tt(n)?"":n}).join(x)}function ie(t){return typeof t=="string"?{src:t}:t}function et(t){var e;return N({...t,style:d(t.style)?void 0:D(t.style),text:d(t.text)?void 0:re(t.text),background:d(t.background)?void 0:At(t.background),shape:d(t.shape)?void 0:Kt(t.shape),fill:d(t.fill)?void 0:k(t.fill),outline:d(t.outline)?void 0:Ht(t.outline),foreground:d(t.foreground)?void 0:xt(t.foreground),shadow:d(t.shadow)?void 0:Wt(t.shadow),video:d(t.video)?void 0:ie(t.video),audio:d(t.audio)?void 0:y(t.audio),effect:d(t.effect)?void 0:$t(t.effect),children:(e=t.children)==null?void 0:e.map(n=>et(n))})}function we(t){return et(t)}i.RawWeakMap=Vt,i.clearUndef=N,i.defaultColor=G,i.defineProperty=Pt,i.getDeclarations=U,i.getDefaultElementStyle=qt,i.getDefaultHighlightStyle=Ut,i.getDefaultInnerShadow=Z,i.getDefaultLayoutStyle=Xt,i.getDefaultListStyleStyle=Zt,i.getDefaultOuterShadow=Tt,i.getDefaultShadowStyle=Bt,i.getDefaultStyle=pe,i.getDefaultTextInlineStyle=Jt,i.getDefaultTextLineStyle=Qt,i.getDefaultTextStyle=te,i.getDefaultTransformStyle=Yt,i.hasCRLF=Se,i.isCRLF=tt,i.isColor=pt,i.isColorFill=Nt,i.isColorFillObject=Rt,i.isEqualStyle=ne,i.isGradient=I,i.isGradientFill=Ot,i.isGradientFillObject=Et,i.isImageFill=Lt,i.isImageFillObject=Dt,i.isNone=d,i.isPresetFill=It,i.isPresetFillObject=Gt,i.normalizeAudio=y,i.normalizeBackground=At,i.normalizeCRLF=ee,i.normalizeColor=b,i.normalizeColorFill=zt,i.normalizeDocument=we,i.normalizeEffect=$t,i.normalizeElement=et,i.normalizeFill=k,i.normalizeForeground=xt,i.normalizeGradient=wt,i.normalizeGradientFill=_t,i.normalizeImageFill=Ft,i.normalizeInnerShadow=J,i.normalizeOuterShadow=jt,i.normalizeOutline=Ht,i.normalizePresetFill=kt,i.normalizeShadow=Wt,i.normalizeShape=Kt,i.normalizeSoftEdge=me,i.normalizeStyle=D,i.normalizeText=re,i.normalizeTextContent=A,i.normalizeVideo=ie,i.parseColor=q,i.parseGradient=bt,i.pick=P,i.property=ve,i.round=R,i.stringifyGradient=he,i.textContentToString=Ce,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
1
+ (function(o,y){typeof exports=="object"&&typeof module<"u"?y(exports):typeof define=="function"&&define.amd?define(["exports"],y):(o=typeof globalThis<"u"?globalThis:o||self,y(o.modernIdoc={}))})(this,function(o){"use strict";var We=Object.defineProperty;var Be=(o,y,E)=>y in o?We(o,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):o[y]=E;var ce=(o,y,E)=>Be(o,typeof y!="symbol"?y+"":y,E);function y(t){return typeof t=="string"?{src:t}:t}var E={grad:.9,turn:360,rad:360/(2*Math.PI)},_=function(t){return typeof t=="string"?t.length>0:typeof t=="number"},m=function(t,e,n){return e===void 0&&(e=0),n===void 0&&(n=Math.pow(10,e)),Math.round(n*t)/n+0},C=function(t,e,n){return e===void 0&&(e=0),n===void 0&&(n=1),t>n?n:t>e?t:e},at=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},ut=function(t){return{r:C(t.r,0,255),g:C(t.g,0,255),b:C(t.b,0,255),a:C(t.a)}},K=function(t){return{r:m(t.r),g:m(t.g),b:m(t.b),a:m(t.a,3)}},fe=/^#([0-9a-f]{3,8})$/i,A=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},lt=function(t){var e=t.r,n=t.g,r=t.b,i=t.a,c=Math.max(e,n,r),l=c-Math.min(e,n,r),u=l?c===e?(n-r)/l:c===n?2+(r-e)/l:4+(e-n)/l:0;return{h:60*(u<0?u+6:u),s:c?l/c*100:0,v:c/255*100,a:i}},st=function(t){var e=t.h,n=t.s,r=t.v,i=t.a;e=e/360*6,n/=100,r/=100;var c=Math.floor(e),l=r*(1-n),u=r*(1-(e-c)*n),g=r*(1-(1-e+c)*n),h=c%6;return{r:255*[r,u,l,l,g,r][h],g:255*[g,r,r,u,l,l][h],b:255*[l,l,g,r,r,u][h],a:i}},ct=function(t){return{h:at(t.h),s:C(t.s,0,100),l:C(t.l,0,100),a:C(t.a)}},ft=function(t){return{h:m(t.h),s:m(t.s),l:m(t.l),a:m(t.a,3)}},dt=function(t){return st((n=(e=t).s,{h:e.h,s:(n*=((r=e.l)<50?r:100-r)/100)>0?2*n/(r+n)*100:0,v:r+n,a:e.a}));var e,n,r},L=function(t){return{h:(e=lt(t)).h,s:(i=(200-(n=e.s))*(r=e.v)/100)>0&&i<200?n*r/100/(i<=100?i:200-i)*100:0,l:i/2,a:e.a};var e,n,r,i},de=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,ge=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,he=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,ve=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,gt={string:[[function(t){var e=fe.exec(t);return e?(t=e[1]).length<=4?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:t.length===4?m(parseInt(t[3]+t[3],16)/255,2):1}:t.length===6||t.length===8?{r:parseInt(t.substr(0,2),16),g:parseInt(t.substr(2,2),16),b:parseInt(t.substr(4,2),16),a:t.length===8?m(parseInt(t.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(t){var e=he.exec(t)||ve.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:ut({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(t){var e=de.exec(t)||ge.exec(t);if(!e)return null;var n,r,i=ct({h:(n=e[1],r=e[2],r===void 0&&(r="deg"),Number(n)*(E[r]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return dt(i)},"hsl"]],object:[[function(t){var e=t.r,n=t.g,r=t.b,i=t.a,c=i===void 0?1:i;return _(e)&&_(n)&&_(r)?ut({r:Number(e),g:Number(n),b:Number(r),a:Number(c)}):null},"rgb"],[function(t){var e=t.h,n=t.s,r=t.l,i=t.a,c=i===void 0?1:i;if(!_(e)||!_(n)||!_(r))return null;var l=ct({h:Number(e),s:Number(n),l:Number(r),a:Number(c)});return dt(l)},"hsl"],[function(t){var e=t.h,n=t.s,r=t.v,i=t.a,c=i===void 0?1:i;if(!_(e)||!_(n)||!_(r))return null;var l=function(u){return{h:at(u.h),s:C(u.s,0,100),v:C(u.v,0,100),a:C(u.a)}}({h:Number(e),s:Number(n),v:Number(r),a:Number(c)});return st(l)},"hsv"]]},ht=function(t,e){for(var n=0;n<e.length;n++){var r=e[n][0](t);if(r)return[r,e[n][1]]}return[null,void 0]},me=function(t){return typeof t=="string"?ht(t.trim(),gt.string):typeof t=="object"&&t!==null?ht(t,gt.object):[null,void 0]},X=function(t,e){var n=L(t);return{h:n.h,s:C(n.s+100*e,0,100),l:n.l,a:n.a}},Y=function(t){return(299*t.r+587*t.g+114*t.b)/1e3/255},vt=function(t,e){var n=L(t);return{h:n.h,s:n.s,l:C(n.l+100*e,0,100),a:n.a}},mt=function(){function t(e){this.parsed=me(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return t.prototype.isValid=function(){return this.parsed!==null},t.prototype.brightness=function(){return m(Y(this.rgba),2)},t.prototype.isDark=function(){return Y(this.rgba)<.5},t.prototype.isLight=function(){return Y(this.rgba)>=.5},t.prototype.toHex=function(){return e=K(this.rgba),n=e.r,r=e.g,i=e.b,l=(c=e.a)<1?A(m(255*c)):"","#"+A(n)+A(r)+A(i)+l;var e,n,r,i,c,l},t.prototype.toRgb=function(){return K(this.rgba)},t.prototype.toRgbString=function(){return e=K(this.rgba),n=e.r,r=e.g,i=e.b,(c=e.a)<1?"rgba("+n+", "+r+", "+i+", "+c+")":"rgb("+n+", "+r+", "+i+")";var e,n,r,i,c},t.prototype.toHsl=function(){return ft(L(this.rgba))},t.prototype.toHslString=function(){return e=ft(L(this.rgba)),n=e.h,r=e.s,i=e.l,(c=e.a)<1?"hsla("+n+", "+r+"%, "+i+"%, "+c+")":"hsl("+n+", "+r+"%, "+i+"%)";var e,n,r,i,c},t.prototype.toHsv=function(){return e=lt(this.rgba),{h:m(e.h),s:m(e.s),v:m(e.v),a:m(e.a,3)};var e},t.prototype.invert=function(){return z({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},t.prototype.saturate=function(e){return e===void 0&&(e=.1),z(X(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),z(X(this.rgba,-e))},t.prototype.grayscale=function(){return z(X(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),z(vt(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),z(vt(this.rgba,-e))},t.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},t.prototype.alpha=function(e){return typeof e=="number"?z({r:(n=this.rgba).r,g:n.g,b:n.b,a:e}):m(this.rgba.a,3);var n},t.prototype.hue=function(e){var n=L(this.rgba);return typeof e=="number"?z({h:e,s:n.s,l:n.l,a:n.a}):m(n.h)},t.prototype.isEqual=function(e){return this.toHex()===z(e).toHex()},t}(),z=function(t){return t instanceof mt?t:new mt(t)};function d(t){return t==null||t==="none"}function O(t,e=0,n=10**e){return Math.round(n*t)/n+0}function R(t,e=!1){if(typeof t!="object"||!t)return t;if(Array.isArray(t))return e?t.map(r=>R(r,e)):t;const n={};for(const r in t){const i=t[r];i!=null&&(e?n[r]=R(i,e):n[r]=i)}return n}function M(t,e){const n={};return e.forEach(r=>{r in t&&(n[r]=t[r])}),n}function pt(t,e,n){const r=e.length-1;if(r<0)return t===void 0?n:t;for(let i=0;i<r;i++){if(t==null)return n;t=t[e[i]]}return t==null||t[e[r]]===void 0?n:t[e[r]]}function bt(t,e,n){const r=e.length-1;for(let i=0;i<r;i++)typeof t[e[i]]!="object"&&(t[e[i]]={}),t=t[e[i]];t[e[r]]=n}function yt(t,e,n){return t==null||!e||typeof e!="string"?n:t[e]!==void 0?t[e]:(e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),pt(t,e.split("."),n))}function St(t,e,n){if(!(typeof t!="object"||!e))return e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),bt(t,e.split("."),n)}class Ct{constructor(){ce(this,"_map",new WeakMap)}_toRaw(e){if(e&&typeof e=="object"){const n=e.__v_raw;n&&(e=this._toRaw(n))}return e}delete(e){return this._map.delete(this._toRaw(e))}get(e){return this._map.get(this._toRaw(e))}has(e){return this._map.has(this._toRaw(e))}set(e,n){return this._map.set(this._toRaw(e),this._toRaw(n)),this}}function q(t){let e;return typeof t=="number"?e={r:t>>24&255,g:t>>16&255,b:t>>8&255,a:(t&255)/255}:e=t,z(e)}function pe(t){return{r:O(t.r),g:O(t.g),b:O(t.b),a:O(t.a,3)}}function T(t){const e=t.toString(16);return e.length<2?`0${e}`:e}const G="#000000FF";function wt(t){return q(t).isValid()}function b(t,e=!1){const n=q(t);if(!n.isValid()){if(typeof t=="string")return t;const u=`Failed to normalizeColor ${t}`;if(e)throw new Error(u);return console.warn(u),G}const{r,g:i,b:c,a:l}=pe(n.rgba);return`#${T(r)}${T(i)}${T(c)}${T(O(l*255))}`}var $=$||{};$.parse=function(){const t={linearGradient:/^(-(webkit|o|ms|moz)-)?(linear-gradient)/i,repeatingLinearGradient:/^(-(webkit|o|ms|moz)-)?(repeating-linear-gradient)/i,radialGradient:/^(-(webkit|o|ms|moz)-)?(radial-gradient)/i,repeatingRadialGradient:/^(-(webkit|o|ms|moz)-)?(repeating-radial-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?((\d*\.\d+)|(\d+\.?)))px/,percentageValue:/^(-?((\d*\.\d+)|(\d+\.?)))%/,emValue:/^(-?((\d*\.\d+)|(\d+\.?)))em/,angleValue:/^(-?((\d*\.\d+)|(\d+\.?)))deg/,radianValue:/^(-?((\d*\.\d+)|(\d+\.?)))rad/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^#([0-9a-f]+)/i,literalColor:/^([a-z]+)/i,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,varColor:/^var/i,calcValue:/^calc/i,variableName:/^(--[a-z0-9-,\s#]+)/i,number:/^((\d*\.\d+)|(\d+\.?))/,hslColor:/^hsl/i,hslaColor:/^hsla/i};let e="";function n(a){const s=new Error(`${e}: ${a}`);throw s.source=e,s}function r(){const a=i();return e.length>0&&n("Invalid input not EOF"),a}function i(){return j(c)}function c(){return l("linear-gradient",t.linearGradient,g)||l("repeating-linear-gradient",t.repeatingLinearGradient,g)||l("radial-gradient",t.radialGradient,F)||l("repeating-radial-gradient",t.repeatingRadialGradient,F)}function l(a,s,f){return u(s,p=>{const k=f();return k&&(v(t.comma)||n("Missing comma before color stops")),{type:a,orientation:k,colorStops:j(Ee)}})}function u(a,s){const f=v(a);if(f){v(t.startCall)||n("Missing (");const p=s(f);return v(t.endCall)||n("Missing )"),p}}function g(){const a=h();if(a)return a;const s=S("position-keyword",t.positionKeywords,1);return s?{type:"directional",value:s.value}:w()}function h(){return S("directional",t.sideOrCorner,1)}function w(){return S("angular",t.angleValue,1)||S("angular",t.radianValue,1)}function F(){let a,s=B(),f;return s&&(a=[],a.push(s),f=e,v(t.comma)&&(s=B(),s?a.push(s):e=f)),a}function B(){let a=Oe()||Re();if(a)a.at=rt();else{const s=nt();if(s){a=s;const f=rt();f&&(a.at=f)}else{const f=rt();if(f)a={type:"default-radial",at:f};else{const p=it();p&&(a={type:"default-radial",at:p})}}}return a}function Oe(){const a=S("shape",/^(circle)/i,0);return a&&(a.style=se()||nt()),a}function Re(){const a=S("shape",/^(ellipse)/i,0);return a&&(a.style=it()||x()||nt()),a}function nt(){return S("extent-keyword",t.extentKeywords,1)}function rt(){if(S("position",/^at/,0)){const a=it();return a||n("Missing positioning value"),a}}function it(){const a=ke();if(a.x||a.y)return{type:"position",value:a}}function ke(){return{x:x(),y:x()}}function j(a){let s=a();const f=[];if(s)for(f.push(s);v(t.comma);)s=a(),s?f.push(s):n("One extra comma");return f}function Ee(){const a=De();return a||n("Expected color definition"),a.length=x(),a}function De(){return Ge()||Me()||Ae()||Ve()||Ie()||Pe()||Le()}function Le(){return S("literal",t.literalColor,0)}function Ge(){return S("hex",t.hexColor,1)}function Ie(){return u(t.rgbColor,()=>({type:"rgb",value:j(P)}))}function Ve(){return u(t.rgbaColor,()=>({type:"rgba",value:j(P)}))}function Pe(){return u(t.varColor,()=>({type:"var",value:Te()}))}function Ae(){return u(t.hslColor,()=>{v(t.percentageValue)&&n("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const s=P();v(t.comma);let f=v(t.percentageValue);const p=f?f[1]:null;v(t.comma),f=v(t.percentageValue);const k=f?f[1]:null;return(!p||!k)&&n("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[s,p,k]}})}function Me(){return u(t.hslaColor,()=>{const a=P();v(t.comma);let s=v(t.percentageValue);const f=s?s[1]:null;v(t.comma),s=v(t.percentageValue);const p=s?s[1]:null;v(t.comma);const k=P();return(!f||!p)&&n("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[a,f,p,k]}})}function Te(){return v(t.variableName)[1]}function P(){return v(t.number)[1]}function x(){return S("%",t.percentageValue,1)||$e()||He()||se()}function $e(){return S("position-keyword",t.positionKeywords,1)}function He(){return u(t.calcValue,()=>{let a=1,s=0;for(;a>0&&s<e.length;){const p=e.charAt(s);p==="("?a++:p===")"&&a--,s++}a>0&&n("Missing closing parenthesis in calc() expression");const f=e.substring(0,s-1);return ot(s-1),{type:"calc",value:f}})}function se(){return S("px",t.pixelValue,1)||S("em",t.emValue,1)}function S(a,s,f){const p=v(s);if(p)return{type:a,value:p[f]}}function v(a){let s,f;return f=/^\s+/.exec(e),f&&ot(f[0].length),s=a.exec(e),s&&ot(s[0].length),s}function ot(a){e=e.substr(a)}return function(a){return e=a.toString().trim(),e.endsWith(";")&&(e=e.slice(0,-1)),r()}}();const zt=$.parse.bind($);var H=H||{};H.stringify=function(){var t={"visit_linear-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-linear-gradient":function(e){return t.visit_gradient(e)},"visit_radial-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-radial-gradient":function(e){return t.visit_gradient(e)},visit_gradient:function(e){var n=t.visit(e.orientation);return n&&(n+=", "),e.type+"("+n+t.visit(e.colorStops)+")"},visit_shape:function(e){var n=e.value,r=t.visit(e.at),i=t.visit(e.style);return i&&(n+=" "+i),r&&(n+=" at "+r),n},"visit_default-radial":function(e){var n="",r=t.visit(e.at);return r&&(n+=r),n},"visit_extent-keyword":function(e){var n=e.value,r=t.visit(e.at);return r&&(n+=" at "+r),n},"visit_position-keyword":function(e){return e.value},visit_position:function(e){return t.visit(e.value.x)+" "+t.visit(e.value.y)},"visit_%":function(e){return e.value+"%"},visit_em:function(e){return e.value+"em"},visit_px:function(e){return e.value+"px"},visit_calc:function(e){return"calc("+e.value+")"},visit_literal:function(e){return t.visit_color(e.value,e)},visit_hex:function(e){return t.visit_color("#"+e.value,e)},visit_rgb:function(e){return t.visit_color("rgb("+e.value.join(", ")+")",e)},visit_rgba:function(e){return t.visit_color("rgba("+e.value.join(", ")+")",e)},visit_hsl:function(e){return t.visit_color("hsl("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%)",e)},visit_hsla:function(e){return t.visit_color("hsla("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%, "+e.value[3]+")",e)},visit_var:function(e){return t.visit_color("var("+e.value+")",e)},visit_color:function(e,n){var r=e,i=t.visit(n.length);return i&&(r+=" "+i),r},visit_angular:function(e){return e.value+"deg"},visit_directional:function(e){return"to "+e.value},visit_array:function(e){var n="",r=e.length;return e.forEach(function(i,c){n+=t.visit(i),c<r-1&&(n+=", ")}),n},visit_object:function(e){return e.width&&e.height?t.visit(e.width)+" "+t.visit(e.height):""},visit:function(e){if(!e)return"";if(e instanceof Array)return t.visit_array(e);if(typeof e=="object"&&!e.type)return t.visit_object(e);if(e.type){var n=t["visit_"+e.type];if(n)return n(e);throw Error("Missing visitor visit_"+e.type)}else throw Error("Invalid node.")}};return function(e){return t.visit(e)}}();const be=H.stringify.bind(H);function _t(t){const e=t.length-1;return t.map((n,r)=>{var u;const i=n.value;let c=O(r/e,3),l="#00000000";switch(n.type){case"rgb":l=b({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0)});break;case"rgba":l=b({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0),a:Number(i[3]??0)});break;case"literal":l=b(n.value);break;case"hex":l=b(`#${n.value}`);break}switch((u=n.length)==null?void 0:u.type){case"%":c=Number(n.length.value)/100;break}return{offset:c,color:l}})}function Ft(t){var n;let e=0;switch((n=t.orientation)==null?void 0:n.type){case"angular":e=Number(t.orientation.value);break}return{type:"linear-gradient",angle:e,stops:_t(t.colorStops)}}function Nt(t){var e;return(e=t.orientation)==null||e.map(n=>{switch(n==null?void 0:n.type){case"shape":case"default-radial":case"extent-keyword":default:return null}}),{type:"radial-gradient",stops:_t(t.colorStops)}}function I(t){return t.startsWith("linear-gradient(")||t.startsWith("radial-gradient(")}function Ot(t){return zt(t).map(e=>{switch(e==null?void 0:e.type){case"linear-gradient":return Ft(e);case"repeating-linear-gradient":return{...Ft(e),repeat:!0};case"radial-gradient":return Nt(e);case"repeating-radial-gradient":return{...Nt(e),repeat:!0};default:return}}).filter(Boolean)}function Rt(t){let e;return typeof t=="string"?e={color:t}:e=t,{color:b(e.color)}}function kt(t){let e;if(typeof t=="string"?e={image:t}:e=t,e.image){const{type:n,...r}=Ot(e.image)[0]??{};switch(n){case"radial-gradient":return{radialGradient:r};case"linear-gradient":return{linearGradient:r}}}return e}function Et(t){let e;return typeof t=="string"?e={image:t}:e=t,e}function Dt(t){let e;return typeof t=="string"?e={preset:t}:e=t,{preset:e.preset,foregroundColor:d(e.foregroundColor)?void 0:b(e.foregroundColor),backgroundColor:d(e.backgroundColor)?void 0:b(e.backgroundColor)}}function Lt(t){return!d(t.color)}function Gt(t){return typeof t=="string"?wt(t):Lt(t)}function It(t){return!d(t.image)&&I(t.image)||!!t.linearGradient||!!t.radialGradient}function Vt(t){return typeof t=="string"?I(t):It(t)}function Pt(t){return!d(t.image)&&!I(t.image)}function At(t){return typeof t=="string"?!I(t):Pt(t)}function Mt(t){return!d(t.preset)}function Tt(t){return typeof t=="string"?!1:Mt(t)}function N(t){return Gt(t)?Rt(t):Vt(t)?kt(t):At(t)?Et(t):Tt(t)?Dt(t):{}}function $t(t){return typeof t=="string"?{...N(t)}:{...N(t),...M(t,["fillWithShape"])}}const Ht=new Ct;function U(t){let e=Ht.get(t);if(!e){const n=Object.getPrototypeOf(t);e=new Map(n?U(n):void 0),Ht.set(t,e)}return e}function Wt(t,e,n={}){U(t).set(e,n);const{default:r,alias:i=Symbol.for(String(e))}=n,c=()=>typeof r=="function"?r():r,l=Object.getOwnPropertyDescriptor(t.prototype,e)||{get(){return typeof i=="string"?yt(this,i):this[i]},set(u){typeof i=="string"?St(this,i,u):this[i]=u}};Object.defineProperty(t.prototype,e,{get(){var g,h;let u=(g=l.get)==null?void 0:g.call(this);return u===void 0&&(u=c(),u!==void 0&&((h=l.set)==null||h.call(this,u))),u},set(u){var h,w,F;let g=(h=l.get)==null?void 0:h.call(this);g===void 0&&(g=c()),(w=l.set)==null||w.call(this,u),(F=this.requestUpdate)==null||F.call(this,e,u,g,n)},configurable:!0,enumerable:!0})}function ye(t){return function(e,n){Wt(e.constructor,n,t)}}function Z(){return{color:G,offsetX:0,offsetY:0,blurRadius:1}}function J(t){return{...Z(),...R({...t,color:d(t.color)?G:b(t.color)})}}function Bt(){return{...Z(),scaleX:1,scaleY:1}}function jt(t){return{...Bt(),...J(t)}}function Se(t){return t}function xt(t){return R({...t,softEdge:d(t.softEdge)?void 0:t.softEdge,outerShadow:d(t.outerShadow)?void 0:jt(t.outerShadow),innerShadow:d(t.innerShadow)?void 0:J(t.innerShadow)})}function Kt(t){return typeof t=="string"?{...N(t)}:{...N(t),...M(t,["fillWithShape"])}}function Xt(t){return typeof t=="string"?{...N(t)}:{...N(t),...M(t,["width","style","headEnd","tailEnd"])}}function Yt(t){return typeof t=="string"?{color:b(t)}:{...t,color:d(t.color)?G:b(t.color)}}function qt(){return{boxShadow:"none"}}function Ut(t){return typeof t=="string"?t.startsWith("<svg")?{svg:t}:{paths:[{data:t}]}:Array.isArray(t)?{paths:t.map(e=>typeof e=="string"?{data:e}:e)}:t}function Zt(){return{overflow:"visible",direction:void 0,display:void 0,boxSizing:void 0,width:void 0,height:void 0,maxHeight:void 0,maxWidth:void 0,minHeight:void 0,minWidth:void 0,position:void 0,left:0,top:0,right:void 0,bottom:void 0,borderTop:void 0,borderLeft:void 0,borderRight:void 0,borderBottom:void 0,borderWidth:0,border:void 0,flex:void 0,flexBasis:void 0,flexDirection:void 0,flexGrow:void 0,flexShrink:void 0,flexWrap:void 0,justifyContent:void 0,gap:void 0,alignContent:void 0,alignItems:void 0,alignSelf:void 0,marginTop:void 0,marginLeft:void 0,marginRight:void 0,marginBottom:void 0,margin:void 0,paddingTop:void 0,paddingLeft:void 0,paddingRight:void 0,paddingBottom:void 0,padding:void 0}}function Jt(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function Qt(){return{...Zt(),...Jt(),...qt(),backgroundImage:"none",backgroundSize:"auto, auto",backgroundColor:"none",backgroundColormap:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"rgb(0, 0, 0)",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto",maskImage:"none"}}function te(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function ee(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function ne(){return{...te(),color:"rgb(0, 0, 0)",verticalAlign:"baseline",letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textTransform:"none",textOrientation:"mixed",textDecoration:"none"}}function re(){return{...ee(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function ie(){return{...re(),...ne(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function D(t){return R({...t,color:d(t.color)?void 0:b(t.color),backgroundColor:d(t.backgroundColor)?void 0:b(t.backgroundColor),borderColor:d(t.borderColor)?void 0:b(t.borderColor),outlineColor:d(t.outlineColor)?void 0:b(t.outlineColor),shadowColor:d(t.shadowColor)?void 0:b(t.shadowColor)})}function Ce(){return{...Qt(),...ie()}}const Q=/\r\n|\n\r|\n|\r/,we=new RegExp(`${Q.source}|<br\\/>`,"g"),ze=new RegExp(`^(${Q.source})$`),W=`
2
+ `;function _e(t){return Q.test(t)}function tt(t){return ze.test(t)}function oe(t){return t.replace(we,W)}function ae(t,e){const n=Array.from(new Set([...Object.keys(t),...Object.keys(e)]));return!n.length||n.every(r=>t[r]===e[r])}function V(t){const e=[];function n(){return e[e.length-1]||r()}function r(l={}){let u=e[e.length-1];return(u==null?void 0:u.fragments.length)===0?(u={...l,fragments:[]},e[e.length-1]=u):(u={...l,fragments:[]},e.push(u)),u}function i(l="",u={}){Array.from(l).forEach(g=>{if(tt(g)){const{fragments:h,...w}=n();h.length||h.push({...u,content:W}),r(w)}else{const h=n(),w=h.fragments[h.fragments.length-1];if(w){const{content:F,...B}=w;if(ae(u,B)){w.content=`${F}${g}`;return}}h.fragments.push({...u,content:g})}})}return(Array.isArray(t)?t:[t]).forEach(l=>{if(typeof l=="string")r(),i(l);else if("content"in l){const{content:u,...g}=l;r(D(g)),i(u)}else if("fragments"in l){const{fragments:u,...g}=l;r(D(g)),u.forEach(h=>{const{content:w,...F}=h;i(w,D(F))})}else Array.isArray(l)?(r(),l.forEach(u=>{if(typeof u=="string")i(u);else{const{content:g,...h}=u;i(g,D(h))}})):console.warn("Failed to parse text content",l)}),n().fragments.length||i(W),e}function ue(t){return typeof t=="string"?{content:V(t)}:"content"in t?{...t,content:V(t.content)}:{content:V(t)}}function Fe(t){return V(t).map(e=>{const n=oe(e.fragments.flatMap(r=>r.content).join(""));return tt(n)?"":n}).join(W)}function le(t){return typeof t=="string"?{src:t}:t}function et(t){var e;return R({...t,style:d(t.style)?void 0:D(t.style),text:d(t.text)?void 0:ue(t.text),background:d(t.background)?void 0:$t(t.background),shape:d(t.shape)?void 0:Ut(t.shape),fill:d(t.fill)?void 0:N(t.fill),outline:d(t.outline)?void 0:Xt(t.outline),foreground:d(t.foreground)?void 0:Kt(t.foreground),shadow:d(t.shadow)?void 0:Yt(t.shadow),video:d(t.video)?void 0:le(t.video),audio:d(t.audio)?void 0:y(t.audio),effect:d(t.effect)?void 0:xt(t.effect),children:(e=t.children)==null?void 0:e.map(n=>et(n))})}function Ne(t){return et(t)}o.RawWeakMap=Ct,o.clearUndef=R,o.defaultColor=G,o.defineProperty=Wt,o.getDeclarations=U,o.getDefaultElementStyle=Qt,o.getDefaultHighlightStyle=te,o.getDefaultInnerShadow=Z,o.getDefaultLayoutStyle=Zt,o.getDefaultListStyleStyle=ee,o.getDefaultOuterShadow=Bt,o.getDefaultShadowStyle=qt,o.getDefaultStyle=Ce,o.getDefaultTextInlineStyle=ne,o.getDefaultTextLineStyle=re,o.getDefaultTextStyle=ie,o.getDefaultTransformStyle=Jt,o.getNestedValue=pt,o.getObjectValueByPath=yt,o.hasCRLF=_e,o.isCRLF=tt,o.isColor=wt,o.isColorFill=Gt,o.isColorFillObject=Lt,o.isEqualStyle=ae,o.isGradient=I,o.isGradientFill=Vt,o.isGradientFillObject=It,o.isImageFill=At,o.isImageFillObject=Pt,o.isNone=d,o.isPresetFill=Tt,o.isPresetFillObject=Mt,o.normalizeAudio=y,o.normalizeBackground=$t,o.normalizeCRLF=oe,o.normalizeColor=b,o.normalizeColorFill=Rt,o.normalizeDocument=Ne,o.normalizeEffect=xt,o.normalizeElement=et,o.normalizeFill=N,o.normalizeForeground=Kt,o.normalizeGradient=Ot,o.normalizeGradientFill=kt,o.normalizeImageFill=Et,o.normalizeInnerShadow=J,o.normalizeOuterShadow=jt,o.normalizeOutline=Xt,o.normalizePresetFill=Dt,o.normalizeShadow=Yt,o.normalizeShape=Ut,o.normalizeSoftEdge=Se,o.normalizeStyle=D,o.normalizeText=ue,o.normalizeTextContent=V,o.normalizeVideo=le,o.parseColor=q,o.parseGradient=zt,o.pick=M,o.property=ye,o.round=O,o.setNestedValue=bt,o.setObjectValueByPath=St,o.stringifyGradient=be,o.textContentToString=Fe,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
package/dist/index.mjs CHANGED
@@ -49,6 +49,87 @@ function pick(obj, keys) {
49
49
  return result;
50
50
  }
51
51
 
52
+ function getNestedValue(obj, path, fallback) {
53
+ const last = path.length - 1;
54
+ if (last < 0)
55
+ return obj === void 0 ? fallback : obj;
56
+ for (let i = 0; i < last; i++) {
57
+ if (obj == null) {
58
+ return fallback;
59
+ }
60
+ obj = obj[path[i]];
61
+ }
62
+ if (obj == null)
63
+ return fallback;
64
+ return obj[path[last]] === void 0 ? fallback : obj[path[last]];
65
+ }
66
+ function setNestedValue(obj, path, value) {
67
+ const last = path.length - 1;
68
+ for (let i = 0; i < last; i++) {
69
+ if (typeof obj[path[i]] !== "object")
70
+ obj[path[i]] = {};
71
+ obj = obj[path[i]];
72
+ }
73
+ obj[path[last]] = value;
74
+ }
75
+ function getObjectValueByPath(obj, path, fallback) {
76
+ if (obj == null || !path || typeof path !== "string")
77
+ return fallback;
78
+ if (obj[path] !== void 0)
79
+ return obj[path];
80
+ path = path.replace(/\[(\w+)\]/g, ".$1");
81
+ path = path.replace(/^\./, "");
82
+ return getNestedValue(obj, path.split("."), fallback);
83
+ }
84
+ function setObjectValueByPath(obj, path, value) {
85
+ if (typeof obj !== "object" || !path)
86
+ return;
87
+ path = path.replace(/\[(\w+)\]/g, ".$1");
88
+ path = path.replace(/^\./, "");
89
+ return setNestedValue(obj, path.split("."), value);
90
+ }
91
+
92
+ class RawWeakMap {
93
+ _map = /* @__PURE__ */ new WeakMap();
94
+ // fix: vue reactive object
95
+ _toRaw(value) {
96
+ if (value && typeof value === "object") {
97
+ const raw = value.__v_raw;
98
+ if (raw) {
99
+ value = this._toRaw(raw);
100
+ }
101
+ }
102
+ return value;
103
+ }
104
+ /**
105
+ * Removes the specified element from the WeakMap.
106
+ * @returns true if the element was successfully removed, or false if it was not present.
107
+ */
108
+ delete(key) {
109
+ return this._map.delete(this._toRaw(key));
110
+ }
111
+ /**
112
+ * @returns a specified element.
113
+ */
114
+ get(key) {
115
+ return this._map.get(this._toRaw(key));
116
+ }
117
+ /**
118
+ * @returns a boolean indicating whether an element with the specified key exists or not.
119
+ */
120
+ has(key) {
121
+ return this._map.has(this._toRaw(key));
122
+ }
123
+ /**
124
+ * Adds a new element with a specified key and value.
125
+ * @param key Must be an object or symbol.
126
+ */
127
+ set(key, value) {
128
+ this._map.set(this._toRaw(key), this._toRaw(value));
129
+ return this;
130
+ }
131
+ }
132
+
52
133
  function parseColor(color) {
53
134
  let input;
54
135
  if (typeof color === "number") {
@@ -807,47 +888,6 @@ function normalizeBackground(background) {
807
888
  }
808
889
  }
809
890
 
810
- class RawWeakMap {
811
- _map = /* @__PURE__ */ new WeakMap();
812
- // fix: vue reactive object
813
- _toRaw(value) {
814
- if (value && typeof value === "object") {
815
- const raw = value.__v_raw;
816
- if (raw) {
817
- value = this._toRaw(raw);
818
- }
819
- }
820
- return value;
821
- }
822
- /**
823
- * Removes the specified element from the WeakMap.
824
- * @returns true if the element was successfully removed, or false if it was not present.
825
- */
826
- delete(key) {
827
- return this._map.delete(this._toRaw(key));
828
- }
829
- /**
830
- * @returns a specified element.
831
- */
832
- get(key) {
833
- return this._map.get(this._toRaw(key));
834
- }
835
- /**
836
- * @returns a boolean indicating whether an element with the specified key exists or not.
837
- */
838
- has(key) {
839
- return this._map.has(this._toRaw(key));
840
- }
841
- /**
842
- * Adds a new element with a specified key and value.
843
- * @param key Must be an object or symbol.
844
- */
845
- set(key, value) {
846
- this._map.set(this._toRaw(key), this._toRaw(value));
847
- return this;
848
- }
849
- }
850
-
851
891
  const declarationMap = new RawWeakMap();
852
892
  function getDeclarations(constructor) {
853
893
  let declarations = declarationMap.get(constructor);
@@ -867,10 +907,18 @@ function defineProperty(constructor, key, declaration = {}) {
867
907
  const getDefaultValue = () => typeof defaultValue === "function" ? defaultValue() : defaultValue;
868
908
  const descriptor = Object.getOwnPropertyDescriptor(constructor.prototype, key) || {
869
909
  get() {
870
- return this[alias];
910
+ if (typeof alias === "string") {
911
+ return getObjectValueByPath(this, alias);
912
+ } else {
913
+ return this[alias];
914
+ }
871
915
  },
872
916
  set(v) {
873
- this[alias] = v;
917
+ if (typeof alias === "string") {
918
+ setObjectValueByPath(this, alias, v);
919
+ } else {
920
+ this[alias] = v;
921
+ }
874
922
  }
875
923
  };
876
924
  Object.defineProperty(constructor.prototype, key, {
@@ -1350,4 +1398,4 @@ function normalizeDocument(doc) {
1350
1398
  return normalizeElement(doc);
1351
1399
  }
1352
1400
 
1353
- export { RawWeakMap, clearUndef, defaultColor, defineProperty, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, hasCRLF, isCRLF, isColor, isColorFill, isColorFillObject, isEqualStyle, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, round, stringifyGradient, textContentToString };
1401
+ export { RawWeakMap, clearUndef, defaultColor, defineProperty, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, hasCRLF, isCRLF, isColor, isColorFill, isColorFillObject, isEqualStyle, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isPresetFill, isPresetFillObject, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "modern-idoc",
3
3
  "type": "module",
4
- "version": "0.6.14",
4
+ "version": "0.6.15",
5
5
  "packageManager": "pnpm@9.15.1",
6
6
  "description": "Intermediate document for modern codec libs",
7
7
  "author": "wxm",