modern-idoc 0.6.14 → 0.6.16
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 +104 -49
- package/dist/index.d.cts +30 -25
- package/dist/index.d.mts +30 -25
- package/dist/index.d.ts +30 -25
- package/dist/index.js +2 -2
- package/dist/index.mjs +101 -50
- package/package.json +1 -1
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
|
-
|
|
912
|
+
if (typeof alias === "string") {
|
|
913
|
+
return getObjectValueByPath(this, alias);
|
|
914
|
+
} else {
|
|
915
|
+
return this[alias];
|
|
916
|
+
}
|
|
873
917
|
},
|
|
874
918
|
set(v) {
|
|
875
|
-
|
|
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, {
|
|
@@ -1217,8 +1265,8 @@ function isEqualStyle(style1, style2) {
|
|
|
1217
1265
|
}
|
|
1218
1266
|
function normalizeTextContent(value) {
|
|
1219
1267
|
const paragraphs = [];
|
|
1220
|
-
function
|
|
1221
|
-
return paragraphs[paragraphs.length - 1]
|
|
1268
|
+
function lastParagraph() {
|
|
1269
|
+
return paragraphs[paragraphs.length - 1];
|
|
1222
1270
|
}
|
|
1223
1271
|
function addParagraph(style = {}) {
|
|
1224
1272
|
let paragraph = paragraphs[paragraphs.length - 1];
|
|
@@ -1234,7 +1282,7 @@ function normalizeTextContent(value) {
|
|
|
1234
1282
|
function addFragment(content = "", style = {}) {
|
|
1235
1283
|
Array.from(content).forEach((c) => {
|
|
1236
1284
|
if (isCRLF(c)) {
|
|
1237
|
-
const { fragments, ...pStyle } =
|
|
1285
|
+
const { fragments, ...pStyle } = lastParagraph() || addParagraph();
|
|
1238
1286
|
if (!fragments.length) {
|
|
1239
1287
|
fragments.push({
|
|
1240
1288
|
...style,
|
|
@@ -1243,7 +1291,7 @@ function normalizeTextContent(value) {
|
|
|
1243
1291
|
}
|
|
1244
1292
|
addParagraph(pStyle);
|
|
1245
1293
|
} else {
|
|
1246
|
-
const paragraph =
|
|
1294
|
+
const paragraph = lastParagraph() || addParagraph();
|
|
1247
1295
|
const fragment = paragraph.fragments[paragraph.fragments.length - 1];
|
|
1248
1296
|
if (fragment) {
|
|
1249
1297
|
const { content: content2, ...fStyle } = fragment;
|
|
@@ -1289,8 +1337,11 @@ function normalizeTextContent(value) {
|
|
|
1289
1337
|
console.warn("Failed to parse text content", p);
|
|
1290
1338
|
}
|
|
1291
1339
|
});
|
|
1292
|
-
|
|
1293
|
-
|
|
1340
|
+
const lastP = lastParagraph();
|
|
1341
|
+
if (lastP && !lastP.fragments.length) {
|
|
1342
|
+
lastP.fragments.push({
|
|
1343
|
+
content: NORMALIZED_CRLF
|
|
1344
|
+
});
|
|
1294
1345
|
}
|
|
1295
1346
|
return paragraphs;
|
|
1296
1347
|
}
|
|
@@ -1369,6 +1420,8 @@ exports.getDefaultTextInlineStyle = getDefaultTextInlineStyle;
|
|
|
1369
1420
|
exports.getDefaultTextLineStyle = getDefaultTextLineStyle;
|
|
1370
1421
|
exports.getDefaultTextStyle = getDefaultTextStyle;
|
|
1371
1422
|
exports.getDefaultTransformStyle = getDefaultTransformStyle;
|
|
1423
|
+
exports.getNestedValue = getNestedValue;
|
|
1424
|
+
exports.getObjectValueByPath = getObjectValueByPath;
|
|
1372
1425
|
exports.hasCRLF = hasCRLF;
|
|
1373
1426
|
exports.isCRLF = isCRLF;
|
|
1374
1427
|
exports.isColor = isColor;
|
|
@@ -1412,5 +1465,7 @@ exports.parseGradient = parseGradient;
|
|
|
1412
1465
|
exports.pick = pick;
|
|
1413
1466
|
exports.property = property;
|
|
1414
1467
|
exports.round = round;
|
|
1468
|
+
exports.setNestedValue = setNestedValue;
|
|
1469
|
+
exports.setObjectValueByPath = setObjectValueByPath;
|
|
1415
1470
|
exports.stringifyGradient = stringifyGradient;
|
|
1416
1471
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
1
|
+
(function(o,S){typeof exports=="object"&&typeof module<"u"?S(exports):typeof define=="function"&&define.amd?define(["exports"],S):(o=typeof globalThis<"u"?globalThis:o||self,S(o.modernIdoc={}))})(this,function(o){"use strict";var We=Object.defineProperty;var Be=(o,S,E)=>S in o?We(o,S,{enumerable:!0,configurable:!0,writable:!0,value:E}):o[S]=E;var fe=(o,S,E)=>Be(o,typeof S!="symbol"?S+"":S,E);function S(t){return typeof t=="string"?{src:t}:t}var E={grad:.9,turn:360,rad:360/(2*Math.PI)},F=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},z=function(t,e,n){return e===void 0&&(e=0),n===void 0&&(n=1),t>n?n:t>e?t:e},ut=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},lt=function(t){return{r:z(t.r,0,255),g:z(t.g,0,255),b:z(t.b,0,255),a:z(t.a)}},K=function(t){return{r:m(t.r),g:m(t.g),b:m(t.b),a:m(t.a,3)}},de=/^#([0-9a-f]{3,8})$/i,M=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},st=function(t){var e=t.r,n=t.g,r=t.b,i=t.a,c=Math.max(e,n,r),s=c-Math.min(e,n,r),u=s?c===e?(n-r)/s:c===n?2+(r-e)/s:4+(e-n)/s:0;return{h:60*(u<0?u+6:u),s:c?s/c*100:0,v:c/255*100,a:i}},ct=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),s=r*(1-n),u=r*(1-(e-c)*n),f=r*(1-(1-e+c)*n),h=c%6;return{r:255*[r,u,s,s,f,r][h],g:255*[f,r,r,u,s,s][h],b:255*[s,s,f,r,r,u][h],a:i}},ft=function(t){return{h:ut(t.h),s:z(t.s,0,100),l:z(t.l,0,100),a:z(t.a)}},dt=function(t){return{h:m(t.h),s:m(t.s),l:m(t.l),a:m(t.a,3)}},gt=function(t){return ct((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},G=function(t){return{h:(e=st(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},ge=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,he=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,ve=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,me=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,ht={string:[[function(t){var e=de.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=ve.exec(t)||me.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:lt({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=ge.exec(t)||he.exec(t);if(!e)return null;var n,r,i=ft({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 gt(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 F(e)&&F(n)&&F(r)?lt({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(!F(e)||!F(n)||!F(r))return null;var s=ft({h:Number(e),s:Number(n),l:Number(r),a:Number(c)});return gt(s)},"hsl"],[function(t){var e=t.h,n=t.s,r=t.v,i=t.a,c=i===void 0?1:i;if(!F(e)||!F(n)||!F(r))return null;var s=function(u){return{h:ut(u.h),s:z(u.s,0,100),v:z(u.v,0,100),a:z(u.a)}}({h:Number(e),s:Number(n),v:Number(r),a:Number(c)});return ct(s)},"hsv"]]},vt=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]},pe=function(t){return typeof t=="string"?vt(t.trim(),ht.string):typeof t=="object"&&t!==null?vt(t,ht.object):[null,void 0]},X=function(t,e){var n=G(t);return{h:n.h,s:z(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},mt=function(t,e){var n=G(t);return{h:n.h,s:n.s,l:z(n.l+100*e,0,100),a:n.a}},pt=function(){function t(e){this.parsed=pe(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,s=(c=e.a)<1?M(m(255*c)):"","#"+M(n)+M(r)+M(i)+s;var e,n,r,i,c,s},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 dt(G(this.rgba))},t.prototype.toHslString=function(){return e=dt(G(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=st(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 _({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),_(X(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),_(X(this.rgba,-e))},t.prototype.grayscale=function(){return _(X(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),_(mt(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),_(mt(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"?_({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=G(this.rgba);return typeof e=="number"?_({h:e,s:n.s,l:n.l,a:n.a}):m(n.h)},t.prototype.isEqual=function(e){return this.toHex()===_(e).toHex()},t}(),_=function(t){return t instanceof pt?t:new pt(t)};function g(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 T(t,e){const n={};return e.forEach(r=>{r in t&&(n[r]=t[r])}),n}function bt(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 yt(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 St(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(/^\./,""),bt(t,e.split("."),n))}function Ct(t,e,n){if(!(typeof t!="object"||!e))return e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),yt(t,e.split("."),n)}class wt{constructor(){fe(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,_(e)}function be(t){return{r:O(t.r),g:O(t.g),b:O(t.b),a:O(t.a,3)}}function $(t){const e=t.toString(16);return e.length<2?`0${e}`:e}const I="#000000FF";function zt(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),I}const{r,g:i,b:c,a:s}=be(n.rgba);return`#${$(r)}${$(i)}${$(c)}${$(O(s*255))}`}var H=H||{};H.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 l=new Error(`${e}: ${a}`);throw l.source=e,l}function r(){const a=i();return e.length>0&&n("Invalid input not EOF"),a}function i(){return j(c)}function c(){return s("linear-gradient",t.linearGradient,f)||s("repeating-linear-gradient",t.repeatingLinearGradient,f)||s("radial-gradient",t.radialGradient,w)||s("repeating-radial-gradient",t.repeatingRadialGradient,w)}function s(a,l,d){return u(l,p=>{const k=d();return k&&(v(t.comma)||n("Missing comma before color stops")),{type:a,orientation:k,colorStops:j(Ee)}})}function u(a,l){const d=v(a);if(d){v(t.startCall)||n("Missing (");const p=l(d);return v(t.endCall)||n("Missing )"),p}}function f(){const a=h();if(a)return a;const l=C("position-keyword",t.positionKeywords,1);return l?{type:"directional",value:l.value}:y()}function h(){return C("directional",t.sideOrCorner,1)}function y(){return C("angular",t.angleValue,1)||C("angular",t.radianValue,1)}function w(){let a,l=L(),d;return l&&(a=[],a.push(l),d=e,v(t.comma)&&(l=L(),l?a.push(l):e=d)),a}function L(){let a=nt()||Re();if(a)a.at=it();else{const l=rt();if(l){a=l;const d=it();d&&(a.at=d)}else{const d=it();if(d)a={type:"default-radial",at:d};else{const p=ot();p&&(a={type:"default-radial",at:p})}}}return a}function nt(){const a=C("shape",/^(circle)/i,0);return a&&(a.style=ce()||rt()),a}function Re(){const a=C("shape",/^(ellipse)/i,0);return a&&(a.style=ot()||x()||rt()),a}function rt(){return C("extent-keyword",t.extentKeywords,1)}function it(){if(C("position",/^at/,0)){const a=ot();return a||n("Missing positioning value"),a}}function ot(){const a=ke();if(a.x||a.y)return{type:"position",value:a}}function ke(){return{x:x(),y:x()}}function j(a){let l=a();const d=[];if(l)for(d.push(l);v(t.comma);)l=a(),l?d.push(l):n("One extra comma");return d}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 C("literal",t.literalColor,0)}function Ge(){return C("hex",t.hexColor,1)}function Ie(){return u(t.rgbColor,()=>({type:"rgb",value:j(A)}))}function Ve(){return u(t.rgbaColor,()=>({type:"rgba",value:j(A)}))}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 l=A();v(t.comma);let d=v(t.percentageValue);const p=d?d[1]:null;v(t.comma),d=v(t.percentageValue);const k=d?d[1]:null;return(!p||!k)&&n("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[l,p,k]}})}function Me(){return u(t.hslaColor,()=>{const a=A();v(t.comma);let l=v(t.percentageValue);const d=l?l[1]:null;v(t.comma),l=v(t.percentageValue);const p=l?l[1]:null;v(t.comma);const k=A();return(!d||!p)&&n("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[a,d,p,k]}})}function Te(){return v(t.variableName)[1]}function A(){return v(t.number)[1]}function x(){return C("%",t.percentageValue,1)||$e()||He()||ce()}function $e(){return C("position-keyword",t.positionKeywords,1)}function He(){return u(t.calcValue,()=>{let a=1,l=0;for(;a>0&&l<e.length;){const p=e.charAt(l);p==="("?a++:p===")"&&a--,l++}a>0&&n("Missing closing parenthesis in calc() expression");const d=e.substring(0,l-1);return at(l-1),{type:"calc",value:d}})}function ce(){return C("px",t.pixelValue,1)||C("em",t.emValue,1)}function C(a,l,d){const p=v(l);if(p)return{type:a,value:p[d]}}function v(a){let l,d;return d=/^\s+/.exec(e),d&&at(d[0].length),l=a.exec(e),l&&at(l[0].length),l}function at(a){e=e.substr(a)}return function(a){return e=a.toString().trim(),e.endsWith(";")&&(e=e.slice(0,-1)),r()}}();const _t=H.parse.bind(H);var W=W||{};W.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 ye=W.stringify.bind(W);function Ft(t){const e=t.length-1;return t.map((n,r)=>{var u;const i=n.value;let c=O(r/e,3),s="#00000000";switch(n.type){case"rgb":s=b({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0)});break;case"rgba":s=b({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0),a:Number(i[3]??0)});break;case"literal":s=b(n.value);break;case"hex":s=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:s}})}function Nt(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:Ft(t.colorStops)}}function Ot(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:Ft(t.colorStops)}}function V(t){return t.startsWith("linear-gradient(")||t.startsWith("radial-gradient(")}function Rt(t){return _t(t).map(e=>{switch(e==null?void 0:e.type){case"linear-gradient":return Nt(e);case"repeating-linear-gradient":return{...Nt(e),repeat:!0};case"radial-gradient":return Ot(e);case"repeating-radial-gradient":return{...Ot(e),repeat:!0};default:return}}).filter(Boolean)}function kt(t){let e;return typeof t=="string"?e={color:t}:e=t,{color:b(e.color)}}function Et(t){let e;if(typeof t=="string"?e={image:t}:e=t,e.image){const{type:n,...r}=Rt(e.image)[0]??{};switch(n){case"radial-gradient":return{radialGradient:r};case"linear-gradient":return{linearGradient:r}}}return e}function Dt(t){let e;return typeof t=="string"?e={image:t}:e=t,e}function Lt(t){let e;return typeof t=="string"?e={preset:t}:e=t,{preset:e.preset,foregroundColor:g(e.foregroundColor)?void 0:b(e.foregroundColor),backgroundColor:g(e.backgroundColor)?void 0:b(e.backgroundColor)}}function Gt(t){return!g(t.color)}function It(t){return typeof t=="string"?zt(t):Gt(t)}function Vt(t){return!g(t.image)&&V(t.image)||!!t.linearGradient||!!t.radialGradient}function Pt(t){return typeof t=="string"?V(t):Vt(t)}function At(t){return!g(t.image)&&!V(t.image)}function Mt(t){return typeof t=="string"?!V(t):At(t)}function Tt(t){return!g(t.preset)}function $t(t){return typeof t=="string"?!1:Tt(t)}function N(t){return It(t)?kt(t):Pt(t)?Et(t):Mt(t)?Dt(t):$t(t)?Lt(t):{}}function Ht(t){return typeof t=="string"?{...N(t)}:{...N(t),...T(t,["fillWithShape"])}}const Wt=new wt;function U(t){let e=Wt.get(t);if(!e){const n=Object.getPrototypeOf(t);e=new Map(n?U(n):void 0),Wt.set(t,e)}return e}function Bt(t,e,n={}){U(t).set(e,n);const{default:r,alias:i=Symbol.for(String(e))}=n,c=()=>typeof r=="function"?r():r,s=Object.getOwnPropertyDescriptor(t.prototype,e)||{get(){return typeof i=="string"?St(this,i):this[i]},set(u){typeof i=="string"?Ct(this,i,u):this[i]=u}};Object.defineProperty(t.prototype,e,{get(){var f,h;let u=(f=s.get)==null?void 0:f.call(this);return u===void 0&&(u=c(),u!==void 0&&((h=s.set)==null||h.call(this,u))),u},set(u){var h,y,w;let f=(h=s.get)==null?void 0:h.call(this);f===void 0&&(f=c()),(y=s.set)==null||y.call(this,u),(w=this.requestUpdate)==null||w.call(this,e,u,f,n)},configurable:!0,enumerable:!0})}function Se(t){return function(e,n){Bt(e.constructor,n,t)}}function Z(){return{color:I,offsetX:0,offsetY:0,blurRadius:1}}function J(t){return{...Z(),...R({...t,color:g(t.color)?I:b(t.color)})}}function jt(){return{...Z(),scaleX:1,scaleY:1}}function xt(t){return{...jt(),...J(t)}}function Ce(t){return t}function Kt(t){return R({...t,softEdge:g(t.softEdge)?void 0:t.softEdge,outerShadow:g(t.outerShadow)?void 0:xt(t.outerShadow),innerShadow:g(t.innerShadow)?void 0:J(t.innerShadow)})}function Xt(t){return typeof t=="string"?{...N(t)}:{...N(t),...T(t,["fillWithShape"])}}function Yt(t){return typeof t=="string"?{...N(t)}:{...N(t),...T(t,["width","style","headEnd","tailEnd"])}}function qt(t){return typeof t=="string"?{color:b(t)}:{...t,color:g(t.color)?I:b(t.color)}}function Ut(){return{boxShadow:"none"}}function Zt(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 Jt(){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 Qt(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function te(){return{...Jt(),...Qt(),...Ut(),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 ee(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function ne(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function re(){return{...ee(),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 ie(){return{...ne(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function oe(){return{...ie(),...re(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function D(t){return R({...t,color:g(t.color)?void 0:b(t.color),backgroundColor:g(t.backgroundColor)?void 0:b(t.backgroundColor),borderColor:g(t.borderColor)?void 0:b(t.borderColor),outlineColor:g(t.outlineColor)?void 0:b(t.outlineColor),shadowColor:g(t.shadowColor)?void 0:b(t.shadowColor)})}function we(){return{...te(),...oe()}}const Q=/\r\n|\n\r|\n|\r/,ze=new RegExp(`${Q.source}|<br\\/>`,"g"),_e=new RegExp(`^(${Q.source})$`),B=`
|
|
2
|
+
`;function Fe(t){return Q.test(t)}function tt(t){return _e.test(t)}function ae(t){return t.replace(ze,B)}function ue(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 P(t){const e=[];function n(){return e[e.length-1]}function r(u={}){let f=e[e.length-1];return(f==null?void 0:f.fragments.length)===0?(f={...u,fragments:[]},e[e.length-1]=f):(f={...u,fragments:[]},e.push(f)),f}function i(u="",f={}){Array.from(u).forEach(h=>{if(tt(h)){const{fragments:y,...w}=n()||r();y.length||y.push({...f,content:B}),r(w)}else{const y=n()||r(),w=y.fragments[y.fragments.length-1];if(w){const{content:L,...nt}=w;if(ue(f,nt)){w.content=`${L}${h}`;return}}y.fragments.push({...f,content:h})}})}(Array.isArray(t)?t:[t]).forEach(u=>{if(typeof u=="string")r(),i(u);else if("content"in u){const{content:f,...h}=u;r(D(h)),i(f)}else if("fragments"in u){const{fragments:f,...h}=u;r(D(h)),f.forEach(y=>{const{content:w,...L}=y;i(w,D(L))})}else Array.isArray(u)?(r(),u.forEach(f=>{if(typeof f=="string")i(f);else{const{content:h,...y}=f;i(h,D(y))}})):console.warn("Failed to parse text content",u)});const s=n();return s&&!s.fragments.length&&s.fragments.push({content:B}),e}function le(t){return typeof t=="string"?{content:P(t)}:"content"in t?{...t,content:P(t.content)}:{content:P(t)}}function Ne(t){return P(t).map(e=>{const n=ae(e.fragments.flatMap(r=>r.content).join(""));return tt(n)?"":n}).join(B)}function se(t){return typeof t=="string"?{src:t}:t}function et(t){var e;return R({...t,style:g(t.style)?void 0:D(t.style),text:g(t.text)?void 0:le(t.text),background:g(t.background)?void 0:Ht(t.background),shape:g(t.shape)?void 0:Zt(t.shape),fill:g(t.fill)?void 0:N(t.fill),outline:g(t.outline)?void 0:Yt(t.outline),foreground:g(t.foreground)?void 0:Xt(t.foreground),shadow:g(t.shadow)?void 0:qt(t.shadow),video:g(t.video)?void 0:se(t.video),audio:g(t.audio)?void 0:S(t.audio),effect:g(t.effect)?void 0:Kt(t.effect),children:(e=t.children)==null?void 0:e.map(n=>et(n))})}function Oe(t){return et(t)}o.RawWeakMap=wt,o.clearUndef=R,o.defaultColor=I,o.defineProperty=Bt,o.getDeclarations=U,o.getDefaultElementStyle=te,o.getDefaultHighlightStyle=ee,o.getDefaultInnerShadow=Z,o.getDefaultLayoutStyle=Jt,o.getDefaultListStyleStyle=ne,o.getDefaultOuterShadow=jt,o.getDefaultShadowStyle=Ut,o.getDefaultStyle=we,o.getDefaultTextInlineStyle=re,o.getDefaultTextLineStyle=ie,o.getDefaultTextStyle=oe,o.getDefaultTransformStyle=Qt,o.getNestedValue=bt,o.getObjectValueByPath=St,o.hasCRLF=Fe,o.isCRLF=tt,o.isColor=zt,o.isColorFill=It,o.isColorFillObject=Gt,o.isEqualStyle=ue,o.isGradient=V,o.isGradientFill=Pt,o.isGradientFillObject=Vt,o.isImageFill=Mt,o.isImageFillObject=At,o.isNone=g,o.isPresetFill=$t,o.isPresetFillObject=Tt,o.normalizeAudio=S,o.normalizeBackground=Ht,o.normalizeCRLF=ae,o.normalizeColor=b,o.normalizeColorFill=kt,o.normalizeDocument=Oe,o.normalizeEffect=Kt,o.normalizeElement=et,o.normalizeFill=N,o.normalizeForeground=Xt,o.normalizeGradient=Rt,o.normalizeGradientFill=Et,o.normalizeImageFill=Dt,o.normalizeInnerShadow=J,o.normalizeOuterShadow=xt,o.normalizeOutline=Yt,o.normalizePresetFill=Lt,o.normalizeShadow=qt,o.normalizeShape=Zt,o.normalizeSoftEdge=Ce,o.normalizeStyle=D,o.normalizeText=le,o.normalizeTextContent=P,o.normalizeVideo=se,o.parseColor=q,o.parseGradient=_t,o.pick=T,o.property=Se,o.round=O,o.setNestedValue=yt,o.setObjectValueByPath=Ct,o.stringifyGradient=ye,o.textContentToString=Ne,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
|
-
|
|
910
|
+
if (typeof alias === "string") {
|
|
911
|
+
return getObjectValueByPath(this, alias);
|
|
912
|
+
} else {
|
|
913
|
+
return this[alias];
|
|
914
|
+
}
|
|
871
915
|
},
|
|
872
916
|
set(v) {
|
|
873
|
-
|
|
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, {
|
|
@@ -1215,8 +1263,8 @@ function isEqualStyle(style1, style2) {
|
|
|
1215
1263
|
}
|
|
1216
1264
|
function normalizeTextContent(value) {
|
|
1217
1265
|
const paragraphs = [];
|
|
1218
|
-
function
|
|
1219
|
-
return paragraphs[paragraphs.length - 1]
|
|
1266
|
+
function lastParagraph() {
|
|
1267
|
+
return paragraphs[paragraphs.length - 1];
|
|
1220
1268
|
}
|
|
1221
1269
|
function addParagraph(style = {}) {
|
|
1222
1270
|
let paragraph = paragraphs[paragraphs.length - 1];
|
|
@@ -1232,7 +1280,7 @@ function normalizeTextContent(value) {
|
|
|
1232
1280
|
function addFragment(content = "", style = {}) {
|
|
1233
1281
|
Array.from(content).forEach((c) => {
|
|
1234
1282
|
if (isCRLF(c)) {
|
|
1235
|
-
const { fragments, ...pStyle } =
|
|
1283
|
+
const { fragments, ...pStyle } = lastParagraph() || addParagraph();
|
|
1236
1284
|
if (!fragments.length) {
|
|
1237
1285
|
fragments.push({
|
|
1238
1286
|
...style,
|
|
@@ -1241,7 +1289,7 @@ function normalizeTextContent(value) {
|
|
|
1241
1289
|
}
|
|
1242
1290
|
addParagraph(pStyle);
|
|
1243
1291
|
} else {
|
|
1244
|
-
const paragraph =
|
|
1292
|
+
const paragraph = lastParagraph() || addParagraph();
|
|
1245
1293
|
const fragment = paragraph.fragments[paragraph.fragments.length - 1];
|
|
1246
1294
|
if (fragment) {
|
|
1247
1295
|
const { content: content2, ...fStyle } = fragment;
|
|
@@ -1287,8 +1335,11 @@ function normalizeTextContent(value) {
|
|
|
1287
1335
|
console.warn("Failed to parse text content", p);
|
|
1288
1336
|
}
|
|
1289
1337
|
});
|
|
1290
|
-
|
|
1291
|
-
|
|
1338
|
+
const lastP = lastParagraph();
|
|
1339
|
+
if (lastP && !lastP.fragments.length) {
|
|
1340
|
+
lastP.fragments.push({
|
|
1341
|
+
content: NORMALIZED_CRLF
|
|
1342
|
+
});
|
|
1292
1343
|
}
|
|
1293
1344
|
return paragraphs;
|
|
1294
1345
|
}
|
|
@@ -1350,4 +1401,4 @@ function normalizeDocument(doc) {
|
|
|
1350
1401
|
return normalizeElement(doc);
|
|
1351
1402
|
}
|
|
1352
1403
|
|
|
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 };
|
|
1404
|
+
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 };
|