modern-idoc 0.9.8 → 0.9.10
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 +91 -79
- package/dist/index.d.cts +7 -7
- package/dist/index.d.mts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +2 -2
- package/dist/index.mjs +90 -79
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -251,7 +251,6 @@ class RawWeakMap {
|
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
-
const internalSymbol = Symbol("internal");
|
|
255
254
|
const propertiesSymbol = Symbol("properties");
|
|
256
255
|
const initedSymbol = Symbol("inited");
|
|
257
256
|
function getDeclarations(constructor) {
|
|
@@ -265,60 +264,57 @@ function getDeclarations(constructor) {
|
|
|
265
264
|
}
|
|
266
265
|
return declarations;
|
|
267
266
|
}
|
|
268
|
-
function
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
267
|
+
function propertyOffsetSet(target, key, newValue, declaration) {
|
|
268
|
+
const {
|
|
269
|
+
alias,
|
|
270
|
+
internalKey
|
|
271
|
+
} = declaration;
|
|
272
|
+
const oldValue = target[key];
|
|
273
|
+
if (alias) {
|
|
274
|
+
setObjectValueByPath(target, alias, newValue);
|
|
275
|
+
} else {
|
|
276
|
+
target[internalKey] = newValue;
|
|
276
277
|
}
|
|
277
|
-
|
|
278
|
+
target.onUpdateProperty?.(key, newValue, oldValue);
|
|
278
279
|
}
|
|
279
|
-
function
|
|
280
|
+
function propertyOffsetGet(target, key, declaration) {
|
|
280
281
|
const {
|
|
281
282
|
default: _default,
|
|
282
283
|
fallback,
|
|
283
284
|
alias,
|
|
284
|
-
|
|
285
|
+
internalKey
|
|
285
286
|
} = declaration;
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
}
|
|
287
|
+
let result;
|
|
288
|
+
if (alias) {
|
|
289
|
+
result = getObjectValueByPath(target, alias);
|
|
290
|
+
} else {
|
|
291
|
+
result = target[internalKey];
|
|
292
|
+
}
|
|
293
|
+
result = result ?? (typeof fallback === "function" ? fallback() : fallback);
|
|
294
|
+
if (result === void 0 && _default !== void 0 && !target[initedSymbol]) {
|
|
295
|
+
target[initedSymbol] = true;
|
|
296
|
+
const defaultValue = typeof _default === "function" ? _default() : _default;
|
|
297
|
+
if (defaultValue !== void 0) {
|
|
298
|
+
target[key] = defaultValue;
|
|
299
|
+
result = defaultValue;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return result;
|
|
303
|
+
}
|
|
304
|
+
function getPropertyDescriptor(key, declaration) {
|
|
292
305
|
function get() {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
result = getObjectValueByPath(this, alias);
|
|
296
|
-
} else if (!internal && typeof this.getProperty !== "undefined") {
|
|
297
|
-
result = this.getProperty(key);
|
|
306
|
+
if (typeof this.getProperty !== "undefined") {
|
|
307
|
+
return this.getProperty(key);
|
|
298
308
|
} else {
|
|
299
|
-
|
|
309
|
+
return propertyOffsetGet(this, key, declaration);
|
|
300
310
|
}
|
|
301
|
-
result = result ?? getFallbackValue();
|
|
302
|
-
if (result === void 0 && _default !== void 0 && !this[initedSymbol]) {
|
|
303
|
-
this[initedSymbol] = true;
|
|
304
|
-
const defaultValue = getDefaultValue();
|
|
305
|
-
if (defaultValue !== void 0) {
|
|
306
|
-
set.call(this, defaultValue);
|
|
307
|
-
result = defaultValue;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
return result;
|
|
311
311
|
}
|
|
312
312
|
function set(newValue) {
|
|
313
|
-
|
|
314
|
-
if (alias && alias !== key) {
|
|
315
|
-
setObjectValueByPath(this, alias, newValue);
|
|
316
|
-
} else if (!internal && typeof this.setProperty !== "undefined") {
|
|
313
|
+
if (typeof this.setProperty !== "undefined") {
|
|
317
314
|
this.setProperty(key, newValue);
|
|
318
315
|
} else {
|
|
319
|
-
|
|
316
|
+
propertyOffsetSet(this, key, newValue, declaration);
|
|
320
317
|
}
|
|
321
|
-
this.onUpdateProperty?.(key, newValue, oldValue);
|
|
322
318
|
}
|
|
323
319
|
return {
|
|
324
320
|
get,
|
|
@@ -326,8 +322,12 @@ function getPropertyDescriptor(key, declaration = {}) {
|
|
|
326
322
|
};
|
|
327
323
|
}
|
|
328
324
|
function defineProperty(constructor, key, declaration = {}) {
|
|
329
|
-
|
|
330
|
-
|
|
325
|
+
const _declaration = {
|
|
326
|
+
...declaration,
|
|
327
|
+
internalKey: Symbol(key)
|
|
328
|
+
};
|
|
329
|
+
getDeclarations(constructor).set(key, _declaration);
|
|
330
|
+
const descriptor = getPropertyDescriptor(key, _declaration);
|
|
331
331
|
Object.defineProperty(constructor.prototype, key, {
|
|
332
332
|
get() {
|
|
333
333
|
return descriptor.get.call(this);
|
|
@@ -353,10 +353,14 @@ function property2(declaration = {}) {
|
|
|
353
353
|
if (typeof key !== "string") {
|
|
354
354
|
throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");
|
|
355
355
|
}
|
|
356
|
-
const
|
|
356
|
+
const _declaration = {
|
|
357
|
+
...declaration,
|
|
358
|
+
internalKey: Symbol(key)
|
|
359
|
+
};
|
|
360
|
+
const descriptor = getPropertyDescriptor(key, _declaration);
|
|
357
361
|
return {
|
|
358
362
|
init(v) {
|
|
359
|
-
getDeclarations(this.constructor).set(key,
|
|
363
|
+
getDeclarations(this.constructor).set(key, _declaration);
|
|
360
364
|
descriptor.set.call(this, v);
|
|
361
365
|
return v;
|
|
362
366
|
},
|
|
@@ -384,27 +388,38 @@ class Reactivable extends Observable {
|
|
|
384
388
|
isDirty(key) {
|
|
385
389
|
return key ? this._updatedProperties.has(key) : this._updatedProperties.size > 0;
|
|
386
390
|
}
|
|
387
|
-
offsetGet(key) {
|
|
388
|
-
return this[key];
|
|
389
|
-
}
|
|
390
|
-
offsetSet(key, newValue) {
|
|
391
|
-
this[key] = newValue;
|
|
392
|
-
}
|
|
393
391
|
getProperty(key, defaultValue) {
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
392
|
+
const declaration = this.getPropertyDeclaration(key);
|
|
393
|
+
if (declaration) {
|
|
394
|
+
if (declaration.internal || declaration.alias) {
|
|
395
|
+
return propertyOffsetGet(this, key, declaration);
|
|
396
|
+
} else {
|
|
397
|
+
if (this._propertyAccessor?.getProperty) {
|
|
398
|
+
return this._propertyAccessor.getProperty(key, defaultValue);
|
|
399
|
+
} else {
|
|
400
|
+
return this._properties.get(key) ?? defaultValue;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
398
403
|
}
|
|
404
|
+
return void 0;
|
|
399
405
|
}
|
|
400
406
|
setProperty(key, newValue) {
|
|
401
|
-
this.
|
|
402
|
-
|
|
407
|
+
const declaration = this.getPropertyDeclaration(key);
|
|
408
|
+
if (declaration) {
|
|
409
|
+
if (declaration.internal || declaration.alias) {
|
|
410
|
+
propertyOffsetSet(this, key, newValue, declaration);
|
|
411
|
+
} else {
|
|
412
|
+
const oldValue = this.getProperty(key);
|
|
413
|
+
this._propertyAccessor?.setProperty?.(key, newValue);
|
|
414
|
+
this._properties.set(key, newValue);
|
|
415
|
+
this.onUpdateProperty?.(key, newValue, oldValue);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
403
418
|
}
|
|
404
419
|
getProperties(keys) {
|
|
405
420
|
const properties = {};
|
|
406
|
-
for (const [name,
|
|
407
|
-
if (!
|
|
421
|
+
for (const [name, declaration] of this.getPropertyDeclarations()) {
|
|
422
|
+
if (!declaration.internal && !declaration.alias && (!keys || keys.includes(name))) {
|
|
408
423
|
properties[name] = this.getProperty(name);
|
|
409
424
|
}
|
|
410
425
|
}
|
|
@@ -412,19 +427,17 @@ class Reactivable extends Observable {
|
|
|
412
427
|
}
|
|
413
428
|
setProperties(properties) {
|
|
414
429
|
if (properties && typeof properties === "object") {
|
|
415
|
-
for (const
|
|
416
|
-
|
|
417
|
-
this.offsetSet(name, properties[name]);
|
|
418
|
-
}
|
|
430
|
+
for (const name in properties) {
|
|
431
|
+
this.setProperty(name, properties[name]);
|
|
419
432
|
}
|
|
420
433
|
}
|
|
421
434
|
return this;
|
|
422
435
|
}
|
|
423
436
|
resetProperties() {
|
|
424
|
-
for (const [name,
|
|
425
|
-
this.
|
|
437
|
+
for (const [name, declaration] of this.getPropertyDeclarations()) {
|
|
438
|
+
this.setProperty(
|
|
426
439
|
name,
|
|
427
|
-
typeof
|
|
440
|
+
typeof declaration.default === "function" ? declaration.default() : declaration.default
|
|
428
441
|
);
|
|
429
442
|
}
|
|
430
443
|
return this;
|
|
@@ -436,21 +449,19 @@ class Reactivable extends Observable {
|
|
|
436
449
|
return this.getPropertyDeclarations().get(key);
|
|
437
450
|
}
|
|
438
451
|
setPropertyAccessor(accessor) {
|
|
452
|
+
const declarations = this.getPropertyDeclarations();
|
|
453
|
+
this._propertyAccessor = void 0;
|
|
454
|
+
const oldValues = {};
|
|
455
|
+
declarations.forEach((_declaration, key) => {
|
|
456
|
+
oldValues[key] = this.getProperty(key);
|
|
457
|
+
});
|
|
439
458
|
this._propertyAccessor = accessor;
|
|
440
|
-
|
|
441
|
-
const
|
|
442
|
-
const
|
|
443
|
-
let oldValue;
|
|
444
|
-
if (proxyed) {
|
|
445
|
-
oldValue = this.offsetGet(key);
|
|
446
|
-
} else {
|
|
447
|
-
oldValue = this._properties.get(key);
|
|
448
|
-
}
|
|
459
|
+
declarations.forEach((declaration, key) => {
|
|
460
|
+
const newValue = this.getProperty(key);
|
|
461
|
+
const oldValue = oldValues[key];
|
|
449
462
|
if (newValue !== void 0 && !Object.is(newValue, oldValue)) {
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
} else {
|
|
453
|
-
this._properties.set(key, newValue);
|
|
463
|
+
this.setProperty(key, newValue);
|
|
464
|
+
if (!declaration.internal && !declaration.alias) {
|
|
454
465
|
this.requestUpdate(key, newValue, oldValue);
|
|
455
466
|
}
|
|
456
467
|
}
|
|
@@ -1865,7 +1876,6 @@ exports.getDefaultTransformStyle = getDefaultTransformStyle;
|
|
|
1865
1876
|
exports.getNestedValue = getNestedValue;
|
|
1866
1877
|
exports.getObjectValueByPath = getObjectValueByPath;
|
|
1867
1878
|
exports.getPropertyDescriptor = getPropertyDescriptor;
|
|
1868
|
-
exports.getPropertyInternalKey = getPropertyInternalKey;
|
|
1869
1879
|
exports.hasCRLF = hasCRLF;
|
|
1870
1880
|
exports.idGenerator = idGenerator;
|
|
1871
1881
|
exports.isCRLF = isCRLF;
|
|
@@ -1914,6 +1924,8 @@ exports.parseGradient = parseGradient;
|
|
|
1914
1924
|
exports.pick = pick;
|
|
1915
1925
|
exports.property = property;
|
|
1916
1926
|
exports.property2 = property2;
|
|
1927
|
+
exports.propertyOffsetGet = propertyOffsetGet;
|
|
1928
|
+
exports.propertyOffsetSet = propertyOffsetSet;
|
|
1917
1929
|
exports.round = round;
|
|
1918
1930
|
exports.setNestedValue = setNestedValue;
|
|
1919
1931
|
exports.setObjectValueByPath = setObjectValueByPath;
|
package/dist/index.d.cts
CHANGED
|
@@ -327,6 +327,7 @@ interface PropertyDeclaration {
|
|
|
327
327
|
fallback?: unknown | (() => unknown);
|
|
328
328
|
alias?: string;
|
|
329
329
|
internal?: boolean;
|
|
330
|
+
internalKey: symbol;
|
|
330
331
|
}
|
|
331
332
|
interface PropertyAccessor {
|
|
332
333
|
getProperty?: (key: string, defaultValue?: any) => any;
|
|
@@ -334,14 +335,15 @@ interface PropertyAccessor {
|
|
|
334
335
|
onUpdateProperty?: (key: string, newValue: any, oldValue: any) => void;
|
|
335
336
|
}
|
|
336
337
|
declare function getDeclarations(constructor: any): Map<string, PropertyDeclaration>;
|
|
337
|
-
declare function
|
|
338
|
-
declare function
|
|
338
|
+
declare function propertyOffsetSet(target: any & PropertyAccessor, key: string, newValue: any, declaration: PropertyDeclaration): void;
|
|
339
|
+
declare function propertyOffsetGet(target: any & PropertyAccessor, key: string, declaration: PropertyDeclaration): any;
|
|
340
|
+
declare function getPropertyDescriptor<V, T extends PropertyAccessor>(key: string, declaration: PropertyDeclaration): {
|
|
339
341
|
get: () => any;
|
|
340
342
|
set: (v: any) => void;
|
|
341
343
|
};
|
|
342
|
-
declare function defineProperty<V, T extends PropertyAccessor>(constructor: any, key: string, declaration?: PropertyDeclaration): void;
|
|
344
|
+
declare function defineProperty<V, T extends PropertyAccessor>(constructor: any, key: string, declaration?: Partial<PropertyDeclaration>): void;
|
|
343
345
|
declare function property<V, T extends PropertyAccessor>(declaration?: PropertyDeclaration): PropertyDecorator;
|
|
344
|
-
declare function property2<V, T extends PropertyAccessor>(declaration?: PropertyDeclaration): (_: ClassAccessorDecoratorTarget<T, V>, context: ClassAccessorDecoratorContext) => ClassAccessorDecoratorResult<T, V>;
|
|
346
|
+
declare function property2<V, T extends PropertyAccessor>(declaration?: Partial<PropertyDeclaration>): (_: ClassAccessorDecoratorTarget<T, V>, context: ClassAccessorDecoratorContext) => ClassAccessorDecoratorResult<T, V>;
|
|
345
347
|
|
|
346
348
|
interface NormalizedInnerShadow {
|
|
347
349
|
color: NormalizedColor;
|
|
@@ -879,8 +881,6 @@ declare class Reactivable extends Observable implements PropertyAccessor {
|
|
|
879
881
|
protected _updating: boolean;
|
|
880
882
|
constructor(properties?: Record<string, any>);
|
|
881
883
|
isDirty(key?: string): boolean;
|
|
882
|
-
offsetGet(key: string): any;
|
|
883
|
-
offsetSet(key: string, newValue: any): void;
|
|
884
884
|
getProperty(key: string, defaultValue?: any): any;
|
|
885
885
|
setProperty(key: string, newValue: any): void;
|
|
886
886
|
getProperties(keys?: string[]): Record<string, any>;
|
|
@@ -900,5 +900,5 @@ declare class Reactivable extends Observable implements PropertyAccessor {
|
|
|
900
900
|
clone(): this;
|
|
901
901
|
}
|
|
902
902
|
|
|
903
|
-
export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, defaultColor, defineProperty, flatDocumentToDocument, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor,
|
|
903
|
+
export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, defaultColor, defineProperty, flatDocumentToDocument, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, hasCRLF, idGenerator, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, property2, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
|
|
904
904
|
export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, EventListenerOptions, EventListenerValue, ExtentKeywordNode, Fill, FillObject, FillRule, FlatDocument, FlatElement, FlatTextContent, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentObject, FullStyle, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, IdGenerator, ImageFill, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineCap, LineEndSize, LineEndType, LineJoin, 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, NormalizedFlatDocument, NormalizedFlatElement, NormalizedForeground, NormalizedFragment, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedParagraph, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, ObservableEvents, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphObject, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PropertyAccessor, PropertyDeclaration, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, ReactivableEvents, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextObject, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor };
|
package/dist/index.d.mts
CHANGED
|
@@ -327,6 +327,7 @@ interface PropertyDeclaration {
|
|
|
327
327
|
fallback?: unknown | (() => unknown);
|
|
328
328
|
alias?: string;
|
|
329
329
|
internal?: boolean;
|
|
330
|
+
internalKey: symbol;
|
|
330
331
|
}
|
|
331
332
|
interface PropertyAccessor {
|
|
332
333
|
getProperty?: (key: string, defaultValue?: any) => any;
|
|
@@ -334,14 +335,15 @@ interface PropertyAccessor {
|
|
|
334
335
|
onUpdateProperty?: (key: string, newValue: any, oldValue: any) => void;
|
|
335
336
|
}
|
|
336
337
|
declare function getDeclarations(constructor: any): Map<string, PropertyDeclaration>;
|
|
337
|
-
declare function
|
|
338
|
-
declare function
|
|
338
|
+
declare function propertyOffsetSet(target: any & PropertyAccessor, key: string, newValue: any, declaration: PropertyDeclaration): void;
|
|
339
|
+
declare function propertyOffsetGet(target: any & PropertyAccessor, key: string, declaration: PropertyDeclaration): any;
|
|
340
|
+
declare function getPropertyDescriptor<V, T extends PropertyAccessor>(key: string, declaration: PropertyDeclaration): {
|
|
339
341
|
get: () => any;
|
|
340
342
|
set: (v: any) => void;
|
|
341
343
|
};
|
|
342
|
-
declare function defineProperty<V, T extends PropertyAccessor>(constructor: any, key: string, declaration?: PropertyDeclaration): void;
|
|
344
|
+
declare function defineProperty<V, T extends PropertyAccessor>(constructor: any, key: string, declaration?: Partial<PropertyDeclaration>): void;
|
|
343
345
|
declare function property<V, T extends PropertyAccessor>(declaration?: PropertyDeclaration): PropertyDecorator;
|
|
344
|
-
declare function property2<V, T extends PropertyAccessor>(declaration?: PropertyDeclaration): (_: ClassAccessorDecoratorTarget<T, V>, context: ClassAccessorDecoratorContext) => ClassAccessorDecoratorResult<T, V>;
|
|
346
|
+
declare function property2<V, T extends PropertyAccessor>(declaration?: Partial<PropertyDeclaration>): (_: ClassAccessorDecoratorTarget<T, V>, context: ClassAccessorDecoratorContext) => ClassAccessorDecoratorResult<T, V>;
|
|
345
347
|
|
|
346
348
|
interface NormalizedInnerShadow {
|
|
347
349
|
color: NormalizedColor;
|
|
@@ -879,8 +881,6 @@ declare class Reactivable extends Observable implements PropertyAccessor {
|
|
|
879
881
|
protected _updating: boolean;
|
|
880
882
|
constructor(properties?: Record<string, any>);
|
|
881
883
|
isDirty(key?: string): boolean;
|
|
882
|
-
offsetGet(key: string): any;
|
|
883
|
-
offsetSet(key: string, newValue: any): void;
|
|
884
884
|
getProperty(key: string, defaultValue?: any): any;
|
|
885
885
|
setProperty(key: string, newValue: any): void;
|
|
886
886
|
getProperties(keys?: string[]): Record<string, any>;
|
|
@@ -900,5 +900,5 @@ declare class Reactivable extends Observable implements PropertyAccessor {
|
|
|
900
900
|
clone(): this;
|
|
901
901
|
}
|
|
902
902
|
|
|
903
|
-
export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, defaultColor, defineProperty, flatDocumentToDocument, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor,
|
|
903
|
+
export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, defaultColor, defineProperty, flatDocumentToDocument, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, hasCRLF, idGenerator, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, property2, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
|
|
904
904
|
export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, EventListenerOptions, EventListenerValue, ExtentKeywordNode, Fill, FillObject, FillRule, FlatDocument, FlatElement, FlatTextContent, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentObject, FullStyle, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, IdGenerator, ImageFill, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineCap, LineEndSize, LineEndType, LineJoin, 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, NormalizedFlatDocument, NormalizedFlatElement, NormalizedForeground, NormalizedFragment, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedParagraph, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, ObservableEvents, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphObject, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PropertyAccessor, PropertyDeclaration, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, ReactivableEvents, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextObject, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor };
|
package/dist/index.d.ts
CHANGED
|
@@ -327,6 +327,7 @@ interface PropertyDeclaration {
|
|
|
327
327
|
fallback?: unknown | (() => unknown);
|
|
328
328
|
alias?: string;
|
|
329
329
|
internal?: boolean;
|
|
330
|
+
internalKey: symbol;
|
|
330
331
|
}
|
|
331
332
|
interface PropertyAccessor {
|
|
332
333
|
getProperty?: (key: string, defaultValue?: any) => any;
|
|
@@ -334,14 +335,15 @@ interface PropertyAccessor {
|
|
|
334
335
|
onUpdateProperty?: (key: string, newValue: any, oldValue: any) => void;
|
|
335
336
|
}
|
|
336
337
|
declare function getDeclarations(constructor: any): Map<string, PropertyDeclaration>;
|
|
337
|
-
declare function
|
|
338
|
-
declare function
|
|
338
|
+
declare function propertyOffsetSet(target: any & PropertyAccessor, key: string, newValue: any, declaration: PropertyDeclaration): void;
|
|
339
|
+
declare function propertyOffsetGet(target: any & PropertyAccessor, key: string, declaration: PropertyDeclaration): any;
|
|
340
|
+
declare function getPropertyDescriptor<V, T extends PropertyAccessor>(key: string, declaration: PropertyDeclaration): {
|
|
339
341
|
get: () => any;
|
|
340
342
|
set: (v: any) => void;
|
|
341
343
|
};
|
|
342
|
-
declare function defineProperty<V, T extends PropertyAccessor>(constructor: any, key: string, declaration?: PropertyDeclaration): void;
|
|
344
|
+
declare function defineProperty<V, T extends PropertyAccessor>(constructor: any, key: string, declaration?: Partial<PropertyDeclaration>): void;
|
|
343
345
|
declare function property<V, T extends PropertyAccessor>(declaration?: PropertyDeclaration): PropertyDecorator;
|
|
344
|
-
declare function property2<V, T extends PropertyAccessor>(declaration?: PropertyDeclaration): (_: ClassAccessorDecoratorTarget<T, V>, context: ClassAccessorDecoratorContext) => ClassAccessorDecoratorResult<T, V>;
|
|
346
|
+
declare function property2<V, T extends PropertyAccessor>(declaration?: Partial<PropertyDeclaration>): (_: ClassAccessorDecoratorTarget<T, V>, context: ClassAccessorDecoratorContext) => ClassAccessorDecoratorResult<T, V>;
|
|
345
347
|
|
|
346
348
|
interface NormalizedInnerShadow {
|
|
347
349
|
color: NormalizedColor;
|
|
@@ -879,8 +881,6 @@ declare class Reactivable extends Observable implements PropertyAccessor {
|
|
|
879
881
|
protected _updating: boolean;
|
|
880
882
|
constructor(properties?: Record<string, any>);
|
|
881
883
|
isDirty(key?: string): boolean;
|
|
882
|
-
offsetGet(key: string): any;
|
|
883
|
-
offsetSet(key: string, newValue: any): void;
|
|
884
884
|
getProperty(key: string, defaultValue?: any): any;
|
|
885
885
|
setProperty(key: string, newValue: any): void;
|
|
886
886
|
getProperties(keys?: string[]): Record<string, any>;
|
|
@@ -900,5 +900,5 @@ declare class Reactivable extends Observable implements PropertyAccessor {
|
|
|
900
900
|
clone(): this;
|
|
901
901
|
}
|
|
902
902
|
|
|
903
|
-
export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, defaultColor, defineProperty, flatDocumentToDocument, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor,
|
|
903
|
+
export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, defaultColor, defineProperty, flatDocumentToDocument, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, hasCRLF, idGenerator, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, property2, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
|
|
904
904
|
export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, EffectObject, Element, EmNode, EventListenerOptions, EventListenerValue, ExtentKeywordNode, Fill, FillObject, FillRule, FlatDocument, FlatElement, FlatTextContent, FlexDirection, FlexWrap, FontKerning, FontStyle, FontWeight, Foreground, ForegroundObject, FragmentObject, FullStyle, GradientFill, GradientFillObject, GradientNode, HeadEnd, Hex8Color, HexNode, HighlightColormap, HighlightImage, HighlightLine, HighlightReferImage, HighlightSize, HighlightThickness, HslColor, HslaColor, HsvColor, HsvaColor, HwbColor, HwbaColor, IdGenerator, ImageFill, ImageFillCropRect, ImageFillObject, ImageFillStretchRect, ImageFillTile, InnerShadow, InnerShadowObject, Justify, LabColor, LabaColor, LchColor, LchaColor, LineCap, LineEndSize, LineEndType, LineJoin, 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, NormalizedFlatDocument, NormalizedFlatElement, NormalizedForeground, NormalizedFragment, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedInnerShadow, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOuterShadow, NormalizedOutline, NormalizedParagraph, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedSoftEdge, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, ObservableEvents, OuterShadow, OuterShadowObject, Outline, OutlineObject, OutlineStyle, Overflow, ParagraphObject, PercentNode, PointerEvents, Position, PositionKeywordNode, PositionNode, PresetFill, PresetFillObject, PropertyAccessor, PropertyDeclaration, PxNode, RadialGradient, RadialGradientNode, RadialGradientWithType, ReactivableEvents, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RgbColor, RgbNode, RgbaColor, RgbaNode, SVGPathData, Shadow, ShadowObject, Shape, ShapeNode, ShapePath, ShapePathStyle, SoftEdge, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextObject, TextOrientation, TextTransform, TextWrap, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(o,j){typeof exports=="object"&&typeof module<"u"?j(exports):typeof define=="function"&&define.amd?define(["exports"],j):(o=typeof globalThis<"u"?globalThis:o||self,j(o.modernIdoc={}))})(this,(function(o){"use strict";function j(t){return typeof t=="string"?{src:t}:t}var _e={grad:.9,turn:360,rad:360/(2*Math.PI)},D=function(t){return typeof t=="string"?t.length>0:typeof t=="number"},y=function(t,e,r){return e===void 0&&(e=0),r===void 0&&(r=Math.pow(10,e)),Math.round(r*t)/r+0},z=function(t,e,r){return e===void 0&&(e=0),r===void 0&&(r=1),t>r?r:t>e?t:e},mt=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},vt=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)}},et=function(t){return{r:y(t.r),g:y(t.g),b:y(t.b),a:y(t.a,3)}},we=/^#([0-9a-f]{3,8})$/i,K=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},yt=function(t){var e=t.r,r=t.g,n=t.b,i=t.a,a=Math.max(e,r,n),u=a-Math.min(e,r,n),l=u?a===e?(r-n)/u:a===r?2+(n-e)/u:4+(e-r)/u:0;return{h:60*(l<0?l+6:l),s:a?u/a*100:0,v:a/255*100,a:i}},bt=function(t){var e=t.h,r=t.s,n=t.v,i=t.a;e=e/360*6,r/=100,n/=100;var a=Math.floor(e),u=n*(1-r),l=n*(1-(e-a)*r),f=n*(1-(1-e+a)*r),m=a%6;return{r:255*[n,l,u,u,f,n][m],g:255*[f,n,n,l,u,u][m],b:255*[u,u,f,n,n,l][m],a:i}},St=function(t){return{h:mt(t.h),s:z(t.s,0,100),l:z(t.l,0,100),a:z(t.a)}},_t=function(t){return{h:y(t.h),s:y(t.s),l:y(t.l),a:y(t.a,3)}},wt=function(t){return bt((r=(e=t).s,{h:e.h,s:(r*=((n=e.l)<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:e.a}));var e,r,n},V=function(t){return{h:(e=yt(t)).h,s:(i=(200-(r=e.s))*(n=e.v)/100)>0&&i<200?r*n/100/(i<=100?i:200-i)*100:0,l:i/2,a:e.a};var e,r,n,i},Ce=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Pe=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,ze=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ee=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ct={string:[[function(t){var e=we.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?y(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?y(parseInt(t.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(t){var e=ze.exec(t)||Ee.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:vt({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=Ce.exec(t)||Pe.exec(t);if(!e)return null;var r,n,i=St({h:(r=e[1],n=e[2],n===void 0&&(n="deg"),Number(r)*(_e[n]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return wt(i)},"hsl"]],object:[[function(t){var e=t.r,r=t.g,n=t.b,i=t.a,a=i===void 0?1:i;return D(e)&&D(r)&&D(n)?vt({r:Number(e),g:Number(r),b:Number(n),a:Number(a)}):null},"rgb"],[function(t){var e=t.h,r=t.s,n=t.l,i=t.a,a=i===void 0?1:i;if(!D(e)||!D(r)||!D(n))return null;var u=St({h:Number(e),s:Number(r),l:Number(n),a:Number(a)});return wt(u)},"hsl"],[function(t){var e=t.h,r=t.s,n=t.v,i=t.a,a=i===void 0?1:i;if(!D(e)||!D(r)||!D(n))return null;var u=(function(l){return{h:mt(l.h),s:z(l.s,0,100),v:z(l.v,0,100),a:z(l.a)}})({h:Number(e),s:Number(r),v:Number(n),a:Number(a)});return bt(u)},"hsv"]]},Pt=function(t,e){for(var r=0;r<e.length;r++){var n=e[r][0](t);if(n)return[n,e[r][1]]}return[null,void 0]},Fe=function(t){return typeof t=="string"?Pt(t.trim(),Ct.string):typeof t=="object"&&t!==null?Pt(t,Ct.object):[null,void 0]},rt=function(t,e){var r=V(t);return{h:r.h,s:z(r.s+100*e,0,100),l:r.l,a:r.a}},nt=function(t){return(299*t.r+587*t.g+114*t.b)/1e3/255},zt=function(t,e){var r=V(t);return{h:r.h,s:r.s,l:z(r.l+100*e,0,100),a:r.a}},Et=(function(){function t(e){this.parsed=Fe(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 y(nt(this.rgba),2)},t.prototype.isDark=function(){return nt(this.rgba)<.5},t.prototype.isLight=function(){return nt(this.rgba)>=.5},t.prototype.toHex=function(){return e=et(this.rgba),r=e.r,n=e.g,i=e.b,u=(a=e.a)<1?K(y(255*a)):"","#"+K(r)+K(n)+K(i)+u;var e,r,n,i,a,u},t.prototype.toRgb=function(){return et(this.rgba)},t.prototype.toRgbString=function(){return e=et(this.rgba),r=e.r,n=e.g,i=e.b,(a=e.a)<1?"rgba("+r+", "+n+", "+i+", "+a+")":"rgb("+r+", "+n+", "+i+")";var e,r,n,i,a},t.prototype.toHsl=function(){return _t(V(this.rgba))},t.prototype.toHslString=function(){return e=_t(V(this.rgba)),r=e.h,n=e.s,i=e.l,(a=e.a)<1?"hsla("+r+", "+n+"%, "+i+"%, "+a+")":"hsl("+r+", "+n+"%, "+i+"%)";var e,r,n,i,a},t.prototype.toHsv=function(){return e=yt(this.rgba),{h:y(e.h),s:y(e.s),v:y(e.v),a:y(e.a,3)};var e},t.prototype.invert=function(){return L({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),L(rt(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),L(rt(this.rgba,-e))},t.prototype.grayscale=function(){return L(rt(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),L(zt(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),L(zt(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"?L({r:(r=this.rgba).r,g:r.g,b:r.b,a:e}):y(this.rgba.a,3);var r},t.prototype.hue=function(e){var r=V(this.rgba);return typeof e=="number"?L({h:e,s:r.s,l:r.l,a:r.a}):y(r.h)},t.prototype.isEqual=function(e){return this.toHex()===L(e).toHex()},t})(),L=function(t){return t instanceof Et?t:new Et(t)};class Oe{eventListeners=new Map;addEventListener(e,r,n){const i={value:r,options:n},a=this.eventListeners.get(e);return a?Array.isArray(a)?a.push(i):this.eventListeners.set(e,[a,i]):this.eventListeners.set(e,i),this}removeEventListener(e,r,n){if(!r)return this.eventListeners.delete(e),this;const i=this.eventListeners.get(e);if(!i)return this;if(Array.isArray(i)){const a=[];for(let u=0,l=i.length;u<l;u++){const f=i[u];(f.value!==r||typeof n=="object"&&n?.once&&(typeof f.options=="boolean"||!f.options?.once))&&a.push(f)}a.length?this.eventListeners.set(e,a.length===1?a[0]:a):this.eventListeners.delete(e)}else i.value===r&&(typeof n=="boolean"||!n?.once||typeof i.options=="boolean"||i.options?.once)&&this.eventListeners.delete(e);return this}removeAllListeners(){return this.eventListeners.clear(),this}hasEventListener(e){return this.eventListeners.has(e)}dispatchEvent(e,...r){const n=this.eventListeners.get(e);if(n){if(Array.isArray(n))for(let i=n.length,a=0;a<i;a++){const u=n[a];typeof u.options=="object"&&u.options?.once&&this.off(e,u.value,u.options),u.value.apply(this,r)}else typeof n.options=="object"&&n.options?.once&&this.off(e,n.value,n.options),n.value.apply(this,r);return!0}else return!1}on(e,r,n){return this.addEventListener(e,r,n)}once(e,r){return this.addEventListener(e,r,{once:!0})}off(e,r,n){return this.removeEventListener(e,r,n)}emit(e,...r){this.dispatchEvent(e,...r)}}function h(t){return t==null||t==="none"}function N(t,e=0,r=10**e){return Math.round(r*t)/r+0}function _(t,e=!1){if(typeof t!="object"||!t)return t;if(Array.isArray(t))return e?t.map(n=>_(n,e)):t;const r={};for(const n in t){const i=t[n];i!=null&&(e?r[n]=_(i,e):r[n]=i)}return r}function A(t,e){const r={};return e.forEach(n=>{n in t&&(r[n]=t[n])}),r}function q(t,e){if(t===e)return!0;if(t&&e&&typeof t=="object"&&typeof e=="object"){const r=Array.from(new Set([...Object.keys(t),...Object.keys(e)]));return!r.length||r.every(n=>t[n]===e[n])}return!1}function Ft(t,e,r){const n=e.length-1;if(n<0)return t===void 0?r:t;for(let i=0;i<n;i++){if(t==null)return r;t=t[e[i]]}return t==null||t[e[n]]===void 0?r:t[e[n]]}function Ot(t,e,r){const n=e.length-1;for(let i=0;i<n;i++)typeof t[e[i]]!="object"&&(t[e[i]]={}),t=t[e[i]];t[e[n]]=r}function Lt(t,e,r){return t==null||!e||typeof e!="string"?r:t[e]!==void 0?t[e]:(e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),Ft(t,e.split("."),r))}function Dt(t,e,r){if(!(typeof t!="object"||!e))return e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),Ot(t,e.split("."),r)}class Nt{_observers=new Map;on(e,r){let n=this._observers.get(e);return n===void 0&&this._observers.set(e,n=new Set),n.add(r),this}once(e,r){const n=(...i)=>{this.off(e,n),r(...i)};return this.on(e,n),this}off(e,r){const n=this._observers.get(e);return n!==void 0&&(n.delete(r),n.size===0&&this._observers.delete(e)),this}emit(e,...r){return Array.from((this._observers.get(e)||new Map).values()).forEach(n=>n(...r)),this}destroy(){this._observers=new Map}}class Le{_map=new WeakMap;_toRaw(e){if(e&&typeof e=="object"){const r=e.__v_raw;r&&(e=this._toRaw(r))}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,r){return this._map.set(this._toRaw(e),this._toRaw(r)),this}}const x=Symbol("internal"),it=Symbol("properties"),At=Symbol("inited");function k(t){let e;if(Object.hasOwn(t,it))e=t[it];else{const r=Object.getPrototypeOf(t);e=new Map(r?k(r):void 0),t[it]=e}return e}function ot(t,e){Object.hasOwn(t,x)||(t[x]=new Map);let r=t[x].get(e);return r||(r=Symbol(e),t[x].set(e,r)),r}function at(t,e={}){const{default:r,fallback:n,alias:i,internal:a}=e,u=()=>typeof r=="function"?r():r,l=()=>typeof n=="function"?n():n;function f(){let g;if(i&&i!==t?g=Lt(this,i):!a&&typeof this.getProperty<"u"?g=this.getProperty(t):g=this[ot(this,t)],g=g??l(),g===void 0&&r!==void 0&&!this[At]){this[At]=!0;const p=u();p!==void 0&&(m.call(this,p),g=p)}return g}function m(g){const p=f.call(this);i&&i!==t?Dt(this,i,g):!a&&typeof this.setProperty<"u"?this.setProperty(t,g):this[ot(this,t)]=g,this.onUpdateProperty?.(t,g,p)}return{get:f,set:m}}function Rt(t,e,r={}){k(t).set(e,r);const n=at(e,r);Object.defineProperty(t.prototype,e,{get(){return n.get.call(this)},set(i){n.set.call(this,i)},configurable:!0,enumerable:!0})}function De(t){return function(e,r){if(typeof r!="string")throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");Rt(e.constructor,r,t)}}function Ne(t={}){return function(e,r){const n=r.name;if(typeof n!="string")throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");const i=at(n,t);return{init(a){return k(this.constructor).set(n,t),i.set.call(this,a),a},get(){return i.get.call(this)},set(a){i.set.call(this,a)}}}}class Ae extends Nt{_propertyAccessor;_properties=new Map;_updatedProperties=new Map;_changedProperties=new Set;_updatingPromise=Promise.resolve();_updating=!1;constructor(e){super(),this.setProperties(e)}isDirty(e){return e?this._updatedProperties.has(e):this._updatedProperties.size>0}offsetGet(e){return this[e]}offsetSet(e,r){this[e]=r}getProperty(e,r){return this._propertyAccessor?.getProperty?this._propertyAccessor.getProperty(e,r):this._properties.get(e)??r}setProperty(e,r){this._propertyAccessor?.setProperty?.(e,r),this._properties.set(e,r)}getProperties(e){const r={};for(const[n,i]of this.getPropertyDeclarations())!i.internal&&!i.alias&&(!e||e.includes(n))&&(r[n]=this.getProperty(n));return r}setProperties(e){if(e&&typeof e=="object")for(const[r]of this.getPropertyDeclarations())r in e&&this.offsetSet(r,e[r]);return this}resetProperties(){for(const[e,r]of this.getPropertyDeclarations())this.offsetSet(e,typeof r.default=="function"?r.default():r.default);return this}getPropertyDeclarations(){return k(this.constructor)}getPropertyDeclaration(e){return this.getPropertyDeclarations().get(e)}setPropertyAccessor(e){return this._propertyAccessor=e,this.getPropertyDeclarations().forEach((r,n)=>{const i=r.internal||r.alias&&r.alias!==n,a=e.getProperty?.(n);let u;i?u=this.offsetGet(n):u=this._properties.get(n),a!==void 0&&!Object.is(a,u)&&(i?this.offsetSet(n,a):(this._properties.set(n,a),this.requestUpdate(n,a,u)))}),this}async _nextTick(){return"requestAnimationFrame"in globalThis?new Promise(e=>globalThis.requestAnimationFrame(e)):Promise.resolve()}async _enqueueUpdate(){this._updating=!0;try{await this._updatingPromise}catch(e){Promise.reject(e)}await this._nextTick(),this._updating&&(this.onUpdate(),this._updating=!1)}onUpdate(){this._update(this._updatedProperties),this._updatedProperties=new Map}onUpdateProperty(e,r,n){Object.is(r,n)||this.requestUpdate(e,r,n)}requestUpdate(e,r,n){e!==void 0&&(this._updatedProperties.set(e,n),this._changedProperties.add(e),this._updateProperty(e,r,n),this.emit("updateProperty",e,r,n)),this._updating||(this._updatingPromise=this._enqueueUpdate())}_update(e){}_updateProperty(e,r,n){}toJSON(){const e={};return this._properties.forEach((r,n)=>{r!==void 0&&(r&&typeof r=="object"?"toJSON"in r&&typeof r.toJSON=="function"?e[n]=r.toJSON():Array.isArray(r)?e[n]=[...r]:e[n]={...r}:e[n]=r)}),e}clone(){return new this.constructor(this.toJSON())}}function st(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,L(e)}function Re(t){return{r:N(t.r),g:N(t.g),b:N(t.b),a:N(t.a,3)}}function J(t){const e=t.toString(16);return e.length<2?`0${e}`:e}const $="#000000FF";function It(t){return st(t).isValid()}function S(t,e=!1){const r=st(t);if(!r.isValid()){if(typeof t=="string")return t;const l=`Failed to normalizeColor ${t}`;if(e)throw new Error(l);return console.warn(l),$}const{r:n,g:i,b:a,a:u}=Re(r.rgba);return`#${J(n)}${J(i)}${J(a)}${J(N(u*255))}`}var X=X||{};X.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 r(s){const c=new Error(`${e}: ${s}`);throw c.source=e,c}function n(){const s=i();return e.length>0&&r("Invalid input not EOF"),s}function i(){return T(a)}function a(){return u("linear-gradient",t.linearGradient,f)||u("repeating-linear-gradient",t.repeatingLinearGradient,f)||u("radial-gradient",t.radialGradient,p)||u("repeating-radial-gradient",t.repeatingRadialGradient,p)}function u(s,c,d){return l(c,b=>{const G=d();return G&&(v(t.comma)||r("Missing comma before color stops")),{type:s,orientation:G,colorStops:T(ht)}})}function l(s,c){const d=v(s);if(d){v(t.startCall)||r("Missing (");const b=c(d);return v(t.endCall)||r("Missing )"),b}}function f(){const s=m();if(s)return s;const c=P("position-keyword",t.positionKeywords,1);return c?{type:"directional",value:c.value}:g()}function m(){return P("directional",t.sideOrCorner,1)}function g(){return P("angular",t.angleValue,1)||P("angular",t.radianValue,1)}function p(){let s,c=w(),d;return c&&(s=[],s.push(c),d=e,v(t.comma)&&(c=w(),c?s.push(c):e=d)),s}function w(){let s=C()||R();if(s)s.at=O();else{const c=E();if(c){s=c;const d=O();d&&(s.at=d)}else{const d=O();if(d)s={type:"default-radial",at:d};else{const b=I();b&&(s={type:"default-radial",at:b})}}}return s}function C(){const s=P("shape",/^(circle)/i,0);return s&&(s.style=Se()||E()),s}function R(){const s=P("shape",/^(ellipse)/i,0);return s&&(s.style=I()||tt()||E()),s}function E(){return P("extent-keyword",t.extentKeywords,1)}function O(){if(P("position",/^at/,0)){const s=I();return s||r("Missing positioning value"),s}}function I(){const s=B();if(s.x||s.y)return{type:"position",value:s}}function B(){return{x:tt(),y:tt()}}function T(s){let c=s();const d=[];if(c)for(d.push(c);v(t.comma);)c=s(),c?d.push(c):r("One extra comma");return d}function ht(){const s=Ke();return s||r("Expected color definition"),s.length=tt(),s}function Ke(){return xe()||Qe()||Ze()||Xe()||Je()||Ye()||qe()}function qe(){return P("literal",t.literalColor,0)}function xe(){return P("hex",t.hexColor,1)}function Je(){return l(t.rgbColor,()=>({type:"rgb",value:T(U)}))}function Xe(){return l(t.rgbaColor,()=>({type:"rgba",value:T(U)}))}function Ye(){return l(t.varColor,()=>({type:"var",value:tr()}))}function Ze(){return l(t.hslColor,()=>{v(t.percentageValue)&&r("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const c=U();v(t.comma);let d=v(t.percentageValue);const b=d?d[1]:null;v(t.comma),d=v(t.percentageValue);const G=d?d[1]:null;return(!b||!G)&&r("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[c,b,G]}})}function Qe(){return l(t.hslaColor,()=>{const s=U();v(t.comma);let c=v(t.percentageValue);const d=c?c[1]:null;v(t.comma),c=v(t.percentageValue);const b=c?c[1]:null;v(t.comma);const G=U();return(!d||!b)&&r("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[s,d,b,G]}})}function tr(){return v(t.variableName)[1]}function U(){return v(t.number)[1]}function tt(){return P("%",t.percentageValue,1)||er()||rr()||Se()}function er(){return P("position-keyword",t.positionKeywords,1)}function rr(){return l(t.calcValue,()=>{let s=1,c=0;for(;s>0&&c<e.length;){const b=e.charAt(c);b==="("?s++:b===")"&&s--,c++}s>0&&r("Missing closing parenthesis in calc() expression");const d=e.substring(0,c-1);return pt(c-1),{type:"calc",value:d}})}function Se(){return P("px",t.pixelValue,1)||P("em",t.emValue,1)}function P(s,c,d){const b=v(c);if(b)return{type:s,value:b[d]}}function v(s){let c,d;return d=/^\s+/.exec(e),d&&pt(d[0].length),c=s.exec(e),c&&pt(c[0].length),c}function pt(s){e=e.substr(s)}return function(s){return e=s.toString().trim(),e.endsWith(";")&&(e=e.slice(0,-1)),n()}})();const Gt=X.parse.bind(X);var Y=Y||{};Y.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 r=t.visit(e.orientation);return r&&(r+=", "),e.type+"("+r+t.visit(e.colorStops)+")"},visit_shape:function(e){var r=e.value,n=t.visit(e.at),i=t.visit(e.style);return i&&(r+=" "+i),n&&(r+=" at "+n),r},"visit_default-radial":function(e){var r="",n=t.visit(e.at);return n&&(r+=n),r},"visit_extent-keyword":function(e){var r=e.value,n=t.visit(e.at);return n&&(r+=" at "+n),r},"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,r){var n=e,i=t.visit(r.length);return i&&(n+=" "+i),n},visit_angular:function(e){return e.value+"deg"},visit_directional:function(e){return"to "+e.value},visit_array:function(e){var r="",n=e.length;return e.forEach(function(i,a){r+=t.visit(i),a<n-1&&(r+=", ")}),r},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 r=t["visit_"+e.type];if(r)return r(e);throw Error("Missing visitor visit_"+e.type)}else throw Error("Invalid node.")}};return function(e){return t.visit(e)}})();const Ie=Y.stringify.bind(Y);function jt(t){const e=t.length-1;return t.map((r,n)=>{const i=r.value;let a=N(n/e,3),u="#00000000";switch(r.type){case"rgb":u=S({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0)});break;case"rgba":u=S({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0),a:Number(i[3]??0)});break;case"literal":u=S(r.value);break;case"hex":u=S(`#${r.value}`);break}switch(r.length?.type){case"%":a=Number(r.length.value)/100;break}return{offset:a,color:u}})}function Mt(t){let e=0;switch(t.orientation?.type){case"angular":e=Number(t.orientation.value);break}return{type:"linear-gradient",angle:e,stops:jt(t.colorStops)}}function Tt(t){return t.orientation?.map(e=>{switch(e?.type){case"shape":case"default-radial":case"extent-keyword":default:return null}}),{type:"radial-gradient",stops:jt(t.colorStops)}}function W(t){return t.startsWith("linear-gradient(")||t.startsWith("radial-gradient(")}function Vt(t){return Gt(t).map(e=>{switch(e?.type){case"linear-gradient":return Mt(e);case"repeating-linear-gradient":return{...Mt(e),repeat:!0};case"radial-gradient":return Tt(e);case"repeating-radial-gradient":return{...Tt(e),repeat:!0};default:return}}).filter(Boolean)}function kt(t){let e;return typeof t=="string"?e={color:t}:e={...t},{color:S(e.color)}}function $t(t){let e;if(typeof t=="string"?e={image:t}:e={...t},e.image){const{type:r,...n}=Vt(e.image)[0]??{};switch(r){case"radial-gradient":return{radialGradient:n};case"linear-gradient":return{linearGradient:n}}}return A(e,["linearGradient","radialGradient","rotateWithShape"])}function Wt(t){let e;return typeof t=="string"?e={image:t}:e={...t},A(e,["image","cropRect","stretchRect","tile","dpi","opacity","rotateWithShape"])}function Ht(t){let e;return typeof t=="string"?e={preset:t}:e={...t},h(e.foregroundColor)?delete e.foregroundColor:e.foregroundColor=S(e.foregroundColor),h(e.backgroundColor)?delete e.backgroundColor:e.backgroundColor=S(e.backgroundColor),A(e,["preset","foregroundColor","backgroundColor"])}function Bt(t){return!h(t.color)}function Ut(t){return typeof t=="string"?It(t):Bt(t)}function Kt(t){return!h(t.image)&&W(t.image)||!!t.linearGradient||!!t.radialGradient}function qt(t){return typeof t=="string"?W(t):Kt(t)}function xt(t){return!h(t.image)&&!W(t.image)}function Jt(t){return typeof t=="string"?!W(t):xt(t)}function Xt(t){return!h(t.preset)}function Yt(t){return typeof t=="string"?!1:Xt(t)}function F(t){const e=t&&typeof t=="object"?t.enabled:void 0;return Ut(t)?_({enabled:e,...kt(t)}):qt(t)?_({enabled:e,...$t(t)}):Jt(t)?_({enabled:e,...Wt(t)}):Yt(t)?_({enabled:e,...Ht(t)}):{}}function Zt(t){return typeof t=="string"?{...F(t)}:{...F(t),...A(t,["fillWithShape"])}}function ut(){return{color:$,offsetX:0,offsetY:0,blurRadius:1}}function lt(t){return{...ut(),..._({...t,color:h(t.color)?$:S(t.color)})}}function Qt(){return{...ut(),scaleX:1,scaleY:1}}function te(t){return{...Qt(),...lt(t)}}function Ge(t){return t}function ee(t){return _({...t,softEdge:h(t.softEdge)?void 0:t.softEdge,outerShadow:h(t.outerShadow)?void 0:te(t.outerShadow),innerShadow:h(t.innerShadow)?void 0:lt(t.innerShadow)})}function re(t){return typeof t=="string"?{...F(t)}:{...F(t),...A(t,["fillWithShape"])}}const je="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let Me=(t=21)=>{let e="",r=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=je[r[t]&63];return e};const ne=()=>Me(10),ie=ne;function H(t){return typeof t=="string"?{...F(t)}:{...F(t),...A(t,["width","style","lineCap","lineJoin","headEnd","tailEnd"])}}function oe(t){return typeof t=="string"?{color:S(t)}:{...t,color:h(t.color)?$:S(t.color)}}function ae(){return{boxShadow:"none"}}function se(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 ue(){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 le(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function ce(){return{...ue(),...le(),...ae(),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 fe(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function de(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function ge(){return{...fe(),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 he(){return{...de(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function pe(){return{...he(),...ge(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function M(t){return _({...t,color:h(t.color)?void 0:S(t.color),backgroundColor:h(t.backgroundColor)?void 0:S(t.backgroundColor),borderColor:h(t.borderColor)?void 0:S(t.borderColor),outlineColor:h(t.outlineColor)?void 0:S(t.outlineColor),shadowColor:h(t.shadowColor)?void 0:S(t.shadowColor)})}function Te(){return{...ce(),...pe()}}const ct=/\r\n|\n\r|\n|\r/,Ve=new RegExp(`${ct.source}|<br\\/>`,"g"),ke=new RegExp(`^(${ct.source})$`),ft=`
|
|
2
|
-
`;function $e(t){return ct.test(t)}function dt(t){return ke.test(t)}function me(t){return t.replace(Ve,ft)}function
|
|
1
|
+
(function(o,j){typeof exports=="object"&&typeof module<"u"?j(exports):typeof define=="function"&&define.amd?define(["exports"],j):(o=typeof globalThis<"u"?globalThis:o||self,j(o.modernIdoc={}))})(this,(function(o){"use strict";function j(t){return typeof t=="string"?{src:t}:t}var _e={grad:.9,turn:360,rad:360/(2*Math.PI)},D=function(t){return typeof t=="string"?t.length>0:typeof t=="number"},v=function(t,e,r){return e===void 0&&(e=0),r===void 0&&(r=Math.pow(10,e)),Math.round(r*t)/r+0},z=function(t,e,r){return e===void 0&&(e=0),r===void 0&&(r=1),t>r?r:t>e?t:e},mt=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},vt=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)}},tt=function(t){return{r:v(t.r),g:v(t.g),b:v(t.b),a:v(t.a,3)}},Ce=/^#([0-9a-f]{3,8})$/i,K=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},yt=function(t){var e=t.r,r=t.g,n=t.b,i=t.a,a=Math.max(e,r,n),s=a-Math.min(e,r,n),u=s?a===e?(r-n)/s:a===r?2+(n-e)/s:4+(e-r)/s:0;return{h:60*(u<0?u+6:u),s:a?s/a*100:0,v:a/255*100,a:i}},bt=function(t){var e=t.h,r=t.s,n=t.v,i=t.a;e=e/360*6,r/=100,n/=100;var a=Math.floor(e),s=n*(1-r),u=n*(1-(e-a)*r),f=n*(1-(1-e+a)*r),g=a%6;return{r:255*[n,u,s,s,f,n][g],g:255*[f,n,n,u,s,s][g],b:255*[s,s,f,n,n,u][g],a:i}},St=function(t){return{h:mt(t.h),s:z(t.s,0,100),l:z(t.l,0,100),a:z(t.a)}},_t=function(t){return{h:v(t.h),s:v(t.s),l:v(t.l),a:v(t.a,3)}},Ct=function(t){return bt((r=(e=t).s,{h:e.h,s:(r*=((n=e.l)<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:e.a}));var e,r,n},V=function(t){return{h:(e=yt(t)).h,s:(i=(200-(r=e.s))*(n=e.v)/100)>0&&i<200?r*n/100/(i<=100?i:200-i)*100:0,l:i/2,a:e.a};var e,r,n,i},we=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Pe=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,ze=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Oe=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,wt={string:[[function(t){var e=Ce.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?v(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?v(parseInt(t.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(t){var e=ze.exec(t)||Oe.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:vt({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=we.exec(t)||Pe.exec(t);if(!e)return null;var r,n,i=St({h:(r=e[1],n=e[2],n===void 0&&(n="deg"),Number(r)*(_e[n]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return Ct(i)},"hsl"]],object:[[function(t){var e=t.r,r=t.g,n=t.b,i=t.a,a=i===void 0?1:i;return D(e)&&D(r)&&D(n)?vt({r:Number(e),g:Number(r),b:Number(n),a:Number(a)}):null},"rgb"],[function(t){var e=t.h,r=t.s,n=t.l,i=t.a,a=i===void 0?1:i;if(!D(e)||!D(r)||!D(n))return null;var s=St({h:Number(e),s:Number(r),l:Number(n),a:Number(a)});return Ct(s)},"hsl"],[function(t){var e=t.h,r=t.s,n=t.v,i=t.a,a=i===void 0?1:i;if(!D(e)||!D(r)||!D(n))return null;var s=(function(u){return{h:mt(u.h),s:z(u.s,0,100),v:z(u.v,0,100),a:z(u.a)}})({h:Number(e),s:Number(r),v:Number(n),a:Number(a)});return bt(s)},"hsv"]]},Pt=function(t,e){for(var r=0;r<e.length;r++){var n=e[r][0](t);if(n)return[n,e[r][1]]}return[null,void 0]},Ee=function(t){return typeof t=="string"?Pt(t.trim(),wt.string):typeof t=="object"&&t!==null?Pt(t,wt.object):[null,void 0]},et=function(t,e){var r=V(t);return{h:r.h,s:z(r.s+100*e,0,100),l:r.l,a:r.a}},rt=function(t){return(299*t.r+587*t.g+114*t.b)/1e3/255},zt=function(t,e){var r=V(t);return{h:r.h,s:r.s,l:z(r.l+100*e,0,100),a:r.a}},Ot=(function(){function t(e){this.parsed=Ee(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 v(rt(this.rgba),2)},t.prototype.isDark=function(){return rt(this.rgba)<.5},t.prototype.isLight=function(){return rt(this.rgba)>=.5},t.prototype.toHex=function(){return e=tt(this.rgba),r=e.r,n=e.g,i=e.b,s=(a=e.a)<1?K(v(255*a)):"","#"+K(r)+K(n)+K(i)+s;var e,r,n,i,a,s},t.prototype.toRgb=function(){return tt(this.rgba)},t.prototype.toRgbString=function(){return e=tt(this.rgba),r=e.r,n=e.g,i=e.b,(a=e.a)<1?"rgba("+r+", "+n+", "+i+", "+a+")":"rgb("+r+", "+n+", "+i+")";var e,r,n,i,a},t.prototype.toHsl=function(){return _t(V(this.rgba))},t.prototype.toHslString=function(){return e=_t(V(this.rgba)),r=e.h,n=e.s,i=e.l,(a=e.a)<1?"hsla("+r+", "+n+"%, "+i+"%, "+a+")":"hsl("+r+", "+n+"%, "+i+"%)";var e,r,n,i,a},t.prototype.toHsv=function(){return e=yt(this.rgba),{h:v(e.h),s:v(e.s),v:v(e.v),a:v(e.a,3)};var e},t.prototype.invert=function(){return L({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),L(et(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),L(et(this.rgba,-e))},t.prototype.grayscale=function(){return L(et(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),L(zt(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),L(zt(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"?L({r:(r=this.rgba).r,g:r.g,b:r.b,a:e}):v(this.rgba.a,3);var r},t.prototype.hue=function(e){var r=V(this.rgba);return typeof e=="number"?L({h:e,s:r.s,l:r.l,a:r.a}):v(r.h)},t.prototype.isEqual=function(e){return this.toHex()===L(e).toHex()},t})(),L=function(t){return t instanceof Ot?t:new Ot(t)};class Fe{eventListeners=new Map;addEventListener(e,r,n){const i={value:r,options:n},a=this.eventListeners.get(e);return a?Array.isArray(a)?a.push(i):this.eventListeners.set(e,[a,i]):this.eventListeners.set(e,i),this}removeEventListener(e,r,n){if(!r)return this.eventListeners.delete(e),this;const i=this.eventListeners.get(e);if(!i)return this;if(Array.isArray(i)){const a=[];for(let s=0,u=i.length;s<u;s++){const f=i[s];(f.value!==r||typeof n=="object"&&n?.once&&(typeof f.options=="boolean"||!f.options?.once))&&a.push(f)}a.length?this.eventListeners.set(e,a.length===1?a[0]:a):this.eventListeners.delete(e)}else i.value===r&&(typeof n=="boolean"||!n?.once||typeof i.options=="boolean"||i.options?.once)&&this.eventListeners.delete(e);return this}removeAllListeners(){return this.eventListeners.clear(),this}hasEventListener(e){return this.eventListeners.has(e)}dispatchEvent(e,...r){const n=this.eventListeners.get(e);if(n){if(Array.isArray(n))for(let i=n.length,a=0;a<i;a++){const s=n[a];typeof s.options=="object"&&s.options?.once&&this.off(e,s.value,s.options),s.value.apply(this,r)}else typeof n.options=="object"&&n.options?.once&&this.off(e,n.value,n.options),n.value.apply(this,r);return!0}else return!1}on(e,r,n){return this.addEventListener(e,r,n)}once(e,r){return this.addEventListener(e,r,{once:!0})}off(e,r,n){return this.removeEventListener(e,r,n)}emit(e,...r){this.dispatchEvent(e,...r)}}function h(t){return t==null||t==="none"}function A(t,e=0,r=10**e){return Math.round(r*t)/r+0}function _(t,e=!1){if(typeof t!="object"||!t)return t;if(Array.isArray(t))return e?t.map(n=>_(n,e)):t;const r={};for(const n in t){const i=t[n];i!=null&&(e?r[n]=_(i,e):r[n]=i)}return r}function N(t,e){const r={};return e.forEach(n=>{n in t&&(r[n]=t[n])}),r}function q(t,e){if(t===e)return!0;if(t&&e&&typeof t=="object"&&typeof e=="object"){const r=Array.from(new Set([...Object.keys(t),...Object.keys(e)]));return!r.length||r.every(n=>t[n]===e[n])}return!1}function Et(t,e,r){const n=e.length-1;if(n<0)return t===void 0?r:t;for(let i=0;i<n;i++){if(t==null)return r;t=t[e[i]]}return t==null||t[e[n]]===void 0?r:t[e[n]]}function Ft(t,e,r){const n=e.length-1;for(let i=0;i<n;i++)typeof t[e[i]]!="object"&&(t[e[i]]={}),t=t[e[i]];t[e[n]]=r}function Lt(t,e,r){return t==null||!e||typeof e!="string"?r:t[e]!==void 0?t[e]:(e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),Et(t,e.split("."),r))}function Dt(t,e,r){if(!(typeof t!="object"||!e))return e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),Ft(t,e.split("."),r)}class At{_observers=new Map;on(e,r){let n=this._observers.get(e);return n===void 0&&this._observers.set(e,n=new Set),n.add(r),this}once(e,r){const n=(...i)=>{this.off(e,n),r(...i)};return this.on(e,n),this}off(e,r){const n=this._observers.get(e);return n!==void 0&&(n.delete(r),n.size===0&&this._observers.delete(e)),this}emit(e,...r){return Array.from((this._observers.get(e)||new Map).values()).forEach(n=>n(...r)),this}destroy(){this._observers=new Map}}class Le{_map=new WeakMap;_toRaw(e){if(e&&typeof e=="object"){const r=e.__v_raw;r&&(e=this._toRaw(r))}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,r){return this._map.set(this._toRaw(e),this._toRaw(r)),this}}const nt=Symbol("properties"),Nt=Symbol("inited");function k(t){let e;if(Object.hasOwn(t,nt))e=t[nt];else{const r=Object.getPrototypeOf(t);e=new Map(r?k(r):void 0),t[nt]=e}return e}function it(t,e,r,n){const{alias:i,internalKey:a}=n,s=t[e];i?Dt(t,i,r):t[a]=r,t.onUpdateProperty?.(e,r,s)}function ot(t,e,r){const{default:n,fallback:i,alias:a,internalKey:s}=r;let u;if(a?u=Lt(t,a):u=t[s],u=u??(typeof i=="function"?i():i),u===void 0&&n!==void 0&&!t[Nt]){t[Nt]=!0;const f=typeof n=="function"?n():n;f!==void 0&&(t[e]=f,u=f)}return u}function at(t,e){function r(){return typeof this.getProperty<"u"?this.getProperty(t):ot(this,t,e)}function n(i){typeof this.setProperty<"u"?this.setProperty(t,i):it(this,t,i,e)}return{get:r,set:n}}function Rt(t,e,r={}){const n={...r,internalKey:Symbol(e)};k(t).set(e,n);const i=at(e,n);Object.defineProperty(t.prototype,e,{get(){return i.get.call(this)},set(a){i.set.call(this,a)},configurable:!0,enumerable:!0})}function De(t){return function(e,r){if(typeof r!="string")throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");Rt(e.constructor,r,t)}}function Ae(t={}){return function(e,r){const n=r.name;if(typeof n!="string")throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");const i={...t,internalKey:Symbol(n)},a=at(n,i);return{init(s){return k(this.constructor).set(n,i),a.set.call(this,s),s},get(){return a.get.call(this)},set(s){a.set.call(this,s)}}}}class Ne extends At{_propertyAccessor;_properties=new Map;_updatedProperties=new Map;_changedProperties=new Set;_updatingPromise=Promise.resolve();_updating=!1;constructor(e){super(),this.setProperties(e)}isDirty(e){return e?this._updatedProperties.has(e):this._updatedProperties.size>0}getProperty(e,r){const n=this.getPropertyDeclaration(e);if(n)return n.internal||n.alias?ot(this,e,n):this._propertyAccessor?.getProperty?this._propertyAccessor.getProperty(e,r):this._properties.get(e)??r}setProperty(e,r){const n=this.getPropertyDeclaration(e);if(n)if(n.internal||n.alias)it(this,e,r,n);else{const i=this.getProperty(e);this._propertyAccessor?.setProperty?.(e,r),this._properties.set(e,r),this.onUpdateProperty?.(e,r,i)}}getProperties(e){const r={};for(const[n,i]of this.getPropertyDeclarations())!i.internal&&!i.alias&&(!e||e.includes(n))&&(r[n]=this.getProperty(n));return r}setProperties(e){if(e&&typeof e=="object")for(const r in e)this.setProperty(r,e[r]);return this}resetProperties(){for(const[e,r]of this.getPropertyDeclarations())this.setProperty(e,typeof r.default=="function"?r.default():r.default);return this}getPropertyDeclarations(){return k(this.constructor)}getPropertyDeclaration(e){return this.getPropertyDeclarations().get(e)}setPropertyAccessor(e){const r=this.getPropertyDeclarations();this._propertyAccessor=void 0;const n={};return r.forEach((i,a)=>{n[a]=this.getProperty(a)}),this._propertyAccessor=e,r.forEach((i,a)=>{const s=this.getProperty(a),u=n[a];s!==void 0&&!Object.is(s,u)&&(this.setProperty(a,s),!i.internal&&!i.alias&&this.requestUpdate(a,s,u))}),this}async _nextTick(){return"requestAnimationFrame"in globalThis?new Promise(e=>globalThis.requestAnimationFrame(e)):Promise.resolve()}async _enqueueUpdate(){this._updating=!0;try{await this._updatingPromise}catch(e){Promise.reject(e)}await this._nextTick(),this._updating&&(this.onUpdate(),this._updating=!1)}onUpdate(){this._update(this._updatedProperties),this._updatedProperties=new Map}onUpdateProperty(e,r,n){Object.is(r,n)||this.requestUpdate(e,r,n)}requestUpdate(e,r,n){e!==void 0&&(this._updatedProperties.set(e,n),this._changedProperties.add(e),this._updateProperty(e,r,n),this.emit("updateProperty",e,r,n)),this._updating||(this._updatingPromise=this._enqueueUpdate())}_update(e){}_updateProperty(e,r,n){}toJSON(){const e={};return this._properties.forEach((r,n)=>{r!==void 0&&(r&&typeof r=="object"?"toJSON"in r&&typeof r.toJSON=="function"?e[n]=r.toJSON():Array.isArray(r)?e[n]=[...r]:e[n]={...r}:e[n]=r)}),e}clone(){return new this.constructor(this.toJSON())}}function st(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,L(e)}function Re(t){return{r:A(t.r),g:A(t.g),b:A(t.b),a:A(t.a,3)}}function J(t){const e=t.toString(16);return e.length<2?`0${e}`:e}const $="#000000FF";function Gt(t){return st(t).isValid()}function S(t,e=!1){const r=st(t);if(!r.isValid()){if(typeof t=="string")return t;const u=`Failed to normalizeColor ${t}`;if(e)throw new Error(u);return console.warn(u),$}const{r:n,g:i,b:a,a:s}=Re(r.rgba);return`#${J(n)}${J(i)}${J(a)}${J(A(s*255))}`}var x=x||{};x.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 r(l){const c=new Error(`${e}: ${l}`);throw c.source=e,c}function n(){const l=i();return e.length>0&&r("Invalid input not EOF"),l}function i(){return M(a)}function a(){return s("linear-gradient",t.linearGradient,f)||s("repeating-linear-gradient",t.repeatingLinearGradient,f)||s("radial-gradient",t.radialGradient,p)||s("repeating-radial-gradient",t.repeatingRadialGradient,p)}function s(l,c,d){return u(c,b=>{const I=d();return I&&(m(t.comma)||r("Missing comma before color stops")),{type:l,orientation:I,colorStops:M(gt)}})}function u(l,c){const d=m(l);if(d){m(t.startCall)||r("Missing (");const b=c(d);return m(t.endCall)||r("Missing )"),b}}function f(){const l=g();if(l)return l;const c=P("position-keyword",t.positionKeywords,1);return c?{type:"directional",value:c.value}:y()}function g(){return P("directional",t.sideOrCorner,1)}function y(){return P("angular",t.angleValue,1)||P("angular",t.radianValue,1)}function p(){let l,c=C(),d;return c&&(l=[],l.push(c),d=e,m(t.comma)&&(c=C(),c?l.push(c):e=d)),l}function C(){let l=w()||R();if(l)l.at=F();else{const c=O();if(c){l=c;const d=F();d&&(l.at=d)}else{const d=F();if(d)l={type:"default-radial",at:d};else{const b=G();b&&(l={type:"default-radial",at:b})}}}return l}function w(){const l=P("shape",/^(circle)/i,0);return l&&(l.style=Se()||O()),l}function R(){const l=P("shape",/^(ellipse)/i,0);return l&&(l.style=G()||Q()||O()),l}function O(){return P("extent-keyword",t.extentKeywords,1)}function F(){if(P("position",/^at/,0)){const l=G();return l||r("Missing positioning value"),l}}function G(){const l=B();if(l.x||l.y)return{type:"position",value:l}}function B(){return{x:Q(),y:Q()}}function M(l){let c=l();const d=[];if(c)for(d.push(c);m(t.comma);)c=l(),c?d.push(c):r("One extra comma");return d}function gt(){const l=Ke();return l||r("Expected color definition"),l.length=Q(),l}function Ke(){return Je()||Qe()||Ze()||Xe()||xe()||Ye()||qe()}function qe(){return P("literal",t.literalColor,0)}function Je(){return P("hex",t.hexColor,1)}function xe(){return u(t.rgbColor,()=>({type:"rgb",value:M(U)}))}function Xe(){return u(t.rgbaColor,()=>({type:"rgba",value:M(U)}))}function Ye(){return u(t.varColor,()=>({type:"var",value:tr()}))}function Ze(){return u(t.hslColor,()=>{m(t.percentageValue)&&r("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const c=U();m(t.comma);let d=m(t.percentageValue);const b=d?d[1]:null;m(t.comma),d=m(t.percentageValue);const I=d?d[1]:null;return(!b||!I)&&r("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[c,b,I]}})}function Qe(){return u(t.hslaColor,()=>{const l=U();m(t.comma);let c=m(t.percentageValue);const d=c?c[1]:null;m(t.comma),c=m(t.percentageValue);const b=c?c[1]:null;m(t.comma);const I=U();return(!d||!b)&&r("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[l,d,b,I]}})}function tr(){return m(t.variableName)[1]}function U(){return m(t.number)[1]}function Q(){return P("%",t.percentageValue,1)||er()||rr()||Se()}function er(){return P("position-keyword",t.positionKeywords,1)}function rr(){return u(t.calcValue,()=>{let l=1,c=0;for(;l>0&&c<e.length;){const b=e.charAt(c);b==="("?l++:b===")"&&l--,c++}l>0&&r("Missing closing parenthesis in calc() expression");const d=e.substring(0,c-1);return pt(c-1),{type:"calc",value:d}})}function Se(){return P("px",t.pixelValue,1)||P("em",t.emValue,1)}function P(l,c,d){const b=m(c);if(b)return{type:l,value:b[d]}}function m(l){let c,d;return d=/^\s+/.exec(e),d&&pt(d[0].length),c=l.exec(e),c&&pt(c[0].length),c}function pt(l){e=e.substr(l)}return function(l){return e=l.toString().trim(),e.endsWith(";")&&(e=e.slice(0,-1)),n()}})();const It=x.parse.bind(x);var X=X||{};X.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 r=t.visit(e.orientation);return r&&(r+=", "),e.type+"("+r+t.visit(e.colorStops)+")"},visit_shape:function(e){var r=e.value,n=t.visit(e.at),i=t.visit(e.style);return i&&(r+=" "+i),n&&(r+=" at "+n),r},"visit_default-radial":function(e){var r="",n=t.visit(e.at);return n&&(r+=n),r},"visit_extent-keyword":function(e){var r=e.value,n=t.visit(e.at);return n&&(r+=" at "+n),r},"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,r){var n=e,i=t.visit(r.length);return i&&(n+=" "+i),n},visit_angular:function(e){return e.value+"deg"},visit_directional:function(e){return"to "+e.value},visit_array:function(e){var r="",n=e.length;return e.forEach(function(i,a){r+=t.visit(i),a<n-1&&(r+=", ")}),r},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 r=t["visit_"+e.type];if(r)return r(e);throw Error("Missing visitor visit_"+e.type)}else throw Error("Invalid node.")}};return function(e){return t.visit(e)}})();const Ge=X.stringify.bind(X);function jt(t){const e=t.length-1;return t.map((r,n)=>{const i=r.value;let a=A(n/e,3),s="#00000000";switch(r.type){case"rgb":s=S({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0)});break;case"rgba":s=S({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0),a:Number(i[3]??0)});break;case"literal":s=S(r.value);break;case"hex":s=S(`#${r.value}`);break}switch(r.length?.type){case"%":a=Number(r.length.value)/100;break}return{offset:a,color:s}})}function Tt(t){let e=0;switch(t.orientation?.type){case"angular":e=Number(t.orientation.value);break}return{type:"linear-gradient",angle:e,stops:jt(t.colorStops)}}function Mt(t){return t.orientation?.map(e=>{switch(e?.type){case"shape":case"default-radial":case"extent-keyword":default:return null}}),{type:"radial-gradient",stops:jt(t.colorStops)}}function W(t){return t.startsWith("linear-gradient(")||t.startsWith("radial-gradient(")}function Vt(t){return It(t).map(e=>{switch(e?.type){case"linear-gradient":return Tt(e);case"repeating-linear-gradient":return{...Tt(e),repeat:!0};case"radial-gradient":return Mt(e);case"repeating-radial-gradient":return{...Mt(e),repeat:!0};default:return}}).filter(Boolean)}function kt(t){let e;return typeof t=="string"?e={color:t}:e={...t},{color:S(e.color)}}function $t(t){let e;if(typeof t=="string"?e={image:t}:e={...t},e.image){const{type:r,...n}=Vt(e.image)[0]??{};switch(r){case"radial-gradient":return{radialGradient:n};case"linear-gradient":return{linearGradient:n}}}return N(e,["linearGradient","radialGradient","rotateWithShape"])}function Wt(t){let e;return typeof t=="string"?e={image:t}:e={...t},N(e,["image","cropRect","stretchRect","tile","dpi","opacity","rotateWithShape"])}function Ht(t){let e;return typeof t=="string"?e={preset:t}:e={...t},h(e.foregroundColor)?delete e.foregroundColor:e.foregroundColor=S(e.foregroundColor),h(e.backgroundColor)?delete e.backgroundColor:e.backgroundColor=S(e.backgroundColor),N(e,["preset","foregroundColor","backgroundColor"])}function Bt(t){return!h(t.color)}function Ut(t){return typeof t=="string"?Gt(t):Bt(t)}function Kt(t){return!h(t.image)&&W(t.image)||!!t.linearGradient||!!t.radialGradient}function qt(t){return typeof t=="string"?W(t):Kt(t)}function Jt(t){return!h(t.image)&&!W(t.image)}function xt(t){return typeof t=="string"?!W(t):Jt(t)}function Xt(t){return!h(t.preset)}function Yt(t){return typeof t=="string"?!1:Xt(t)}function E(t){const e=t&&typeof t=="object"?t.enabled:void 0;return Ut(t)?_({enabled:e,...kt(t)}):qt(t)?_({enabled:e,...$t(t)}):xt(t)?_({enabled:e,...Wt(t)}):Yt(t)?_({enabled:e,...Ht(t)}):{}}function Zt(t){return typeof t=="string"?{...E(t)}:{...E(t),...N(t,["fillWithShape"])}}function lt(){return{color:$,offsetX:0,offsetY:0,blurRadius:1}}function ut(t){return{...lt(),..._({...t,color:h(t.color)?$:S(t.color)})}}function Qt(){return{...lt(),scaleX:1,scaleY:1}}function te(t){return{...Qt(),...ut(t)}}function Ie(t){return t}function ee(t){return _({...t,softEdge:h(t.softEdge)?void 0:t.softEdge,outerShadow:h(t.outerShadow)?void 0:te(t.outerShadow),innerShadow:h(t.innerShadow)?void 0:ut(t.innerShadow)})}function re(t){return typeof t=="string"?{...E(t)}:{...E(t),...N(t,["fillWithShape"])}}const je="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let Te=(t=21)=>{let e="",r=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=je[r[t]&63];return e};const ne=()=>Te(10),ie=ne;function H(t){return typeof t=="string"?{...E(t)}:{...E(t),...N(t,["width","style","lineCap","lineJoin","headEnd","tailEnd"])}}function oe(t){return typeof t=="string"?{color:S(t)}:{...t,color:h(t.color)?$:S(t.color)}}function ae(){return{boxShadow:"none"}}function se(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 le(){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 ue(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function ce(){return{...le(),...ue(),...ae(),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 fe(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function de(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function he(){return{...fe(),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 ge(){return{...de(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function pe(){return{...ge(),...he(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function T(t){return _({...t,color:h(t.color)?void 0:S(t.color),backgroundColor:h(t.backgroundColor)?void 0:S(t.backgroundColor),borderColor:h(t.borderColor)?void 0:S(t.borderColor),outlineColor:h(t.outlineColor)?void 0:S(t.outlineColor),shadowColor:h(t.shadowColor)?void 0:S(t.shadowColor)})}function Me(){return{...ce(),...pe()}}const ct=/\r\n|\n\r|\n|\r/,Ve=new RegExp(`${ct.source}|<br\\/>`,"g"),ke=new RegExp(`^(${ct.source})$`),ft=`
|
|
2
|
+
`;function $e(t){return ct.test(t)}function dt(t){return ke.test(t)}function me(t){return t.replace(Ve,ft)}function Y(t){const e=[];function r(){return e[e.length-1]}function n(u,f,g){const y=u?T(u):{},p=f?E(f):void 0,C=g?H(g):void 0,w=_({...y,fill:p,outline:C,fragments:[]});return e[e.length-1]?.fragments.length===0?e[e.length-1]=w:e.push(w),w}function i(u="",f,g,y){const p=f?T(f):{},C=g?E(g):void 0,w=y?H(y):void 0;Array.from(u).forEach(R=>{if(dt(R)){const{fragments:O,fill:F,outline:G,...B}=r()||n();O.length||O.push(_({...p,fill:C,outline:w,content:ft})),n(B,F,G)}else{const O=r()||n(),F=O.fragments[O.fragments.length-1];if(F){const{content:G,fill:B,outline:M,...gt}=F;if(q(C,B)&&q(w,M)&&q(p,gt)){F.content=`${G}${R}`;return}}O.fragments.push(_({...p,fill:C,outline:w,content:R}))}})}(Array.isArray(t)?t:[t]).forEach(u=>{if(typeof u=="string")n(),i(u);else if(ht(u)){const{content:f,fill:g,outline:y,...p}=u;n(p,g,y),i(f)}else if(ve(u)){const{fragments:f,fill:g,outline:y,...p}=u;n(p,g,y),f.forEach(C=>{const{content:w,fill:R,outline:O,...F}=C;i(w,F,R,O)})}else Array.isArray(u)?(n(),u.forEach(f=>{if(typeof f=="string")i(f);else if(ht(f)){const{content:g,fill:y,outline:p,...C}=f;i(g,C,y,p)}})):console.warn("Failed to parse text content",u)});const s=r();return s&&!s.fragments.length&&s.fragments.push({content:""}),e}function ve(t){return t&&typeof t=="object"&&"fragments"in t&&Array.isArray(t.fragments)}function ht(t){return t&&typeof t=="object"&&"content"in t&&typeof t.content=="string"}function ye(t){return typeof t=="string"||Array.isArray(t)?{content:Y(t)}:_({...t,content:Y(t.content??""),style:t.style?T(t.style):void 0,effects:t.effects?t.effects.map(e=>T(e)):void 0,measureDom:t.measureDom,fonts:t.fonts,fill:t.fill?E(t.fill):void 0,outline:t.outline?H(t.outline):void 0})}function We(t){return Y(t).map(e=>{const r=me(e.fragments.flatMap(n=>n.content).join(""));return dt(r)?"":r}).join(ft)}function be(t){return typeof t=="string"?{src:t}:t}function Z(t){return _({...t,id:t.id??ie(),style:h(t.style)?void 0:T(t.style),text:h(t.text)?void 0:ye(t.text),background:h(t.background)?void 0:Zt(t.background),shape:h(t.shape)?void 0:se(t.shape),fill:h(t.fill)?void 0:E(t.fill),outline:h(t.outline)?void 0:H(t.outline),foreground:h(t.foreground)?void 0:re(t.foreground),shadow:h(t.shadow)?void 0:oe(t.shadow),video:h(t.video)?void 0:be(t.video),audio:h(t.audio)?void 0:j(t.audio),effect:h(t.effect)?void 0:ee(t.effect),children:t.children?.map(e=>Z(e))})}function He(t){return Z(t)}function Be(t){const e={};for(const r in t.children){const n=Z(t.children[r]);delete n.children,e[r]=n}return{...t,children:e}}function Ue(t){const{children:e,...r}=t;function n(f){const{parentId:g,childrenIds:y,...p}=f;return{...p,children:[]}}const i={},a=[],s={...r,children:a};function u(f){if(!e[f]||i[f])return;const g=e[f],y=n(g);i[f]=y;const p=g.parentId;if(p){u(p);const C=e[p],w=i[p];if(!w)return;C?.childrenIds&&w?.children&&(w.children[C.childrenIds.indexOf(f)]=y)}else a.push(y)}for(const f in e)u(f);return s}o.EventEmitter=Fe,o.Observable=At,o.RawWeakMap=Le,o.Reactivable=Ne,o.clearUndef=_,o.defaultColor=$,o.defineProperty=Rt,o.flatDocumentToDocument=Ue,o.getDeclarations=k,o.getDefaultElementStyle=ce,o.getDefaultHighlightStyle=fe,o.getDefaultInnerShadow=lt,o.getDefaultLayoutStyle=le,o.getDefaultListStyleStyle=de,o.getDefaultOuterShadow=Qt,o.getDefaultShadowStyle=ae,o.getDefaultStyle=Me,o.getDefaultTextInlineStyle=he,o.getDefaultTextLineStyle=ge,o.getDefaultTextStyle=pe,o.getDefaultTransformStyle=ue,o.getNestedValue=Et,o.getObjectValueByPath=Lt,o.getPropertyDescriptor=at,o.hasCRLF=$e,o.idGenerator=ie,o.isCRLF=dt,o.isColor=Gt,o.isColorFill=Ut,o.isColorFillObject=Bt,o.isEqualObject=q,o.isFragmentObject=ht,o.isGradient=W,o.isGradientFill=qt,o.isGradientFillObject=Kt,o.isImageFill=xt,o.isImageFillObject=Jt,o.isNone=h,o.isParagraphObject=ve,o.isPresetFill=Yt,o.isPresetFillObject=Xt,o.nanoid=ne,o.normalizeAudio=j,o.normalizeBackground=Zt,o.normalizeCRLF=me,o.normalizeColor=S,o.normalizeColorFill=kt,o.normalizeDocument=He,o.normalizeEffect=ee,o.normalizeElement=Z,o.normalizeFill=E,o.normalizeFlatDocument=Be,o.normalizeForeground=re,o.normalizeGradient=Vt,o.normalizeGradientFill=$t,o.normalizeImageFill=Wt,o.normalizeInnerShadow=ut,o.normalizeOuterShadow=te,o.normalizeOutline=H,o.normalizePresetFill=Ht,o.normalizeShadow=oe,o.normalizeShape=se,o.normalizeSoftEdge=Ie,o.normalizeStyle=T,o.normalizeText=ye,o.normalizeTextContent=Y,o.normalizeVideo=be,o.parseColor=st,o.parseGradient=It,o.pick=N,o.property=De,o.property2=Ae,o.propertyOffsetGet=ot,o.propertyOffsetSet=it,o.round=A,o.setNestedValue=Ft,o.setObjectValueByPath=Dt,o.stringifyGradient=Ge,o.textContentToString=We,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})}));
|
package/dist/index.mjs
CHANGED
|
@@ -249,7 +249,6 @@ class RawWeakMap {
|
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
const internalSymbol = Symbol("internal");
|
|
253
252
|
const propertiesSymbol = Symbol("properties");
|
|
254
253
|
const initedSymbol = Symbol("inited");
|
|
255
254
|
function getDeclarations(constructor) {
|
|
@@ -263,60 +262,57 @@ function getDeclarations(constructor) {
|
|
|
263
262
|
}
|
|
264
263
|
return declarations;
|
|
265
264
|
}
|
|
266
|
-
function
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
265
|
+
function propertyOffsetSet(target, key, newValue, declaration) {
|
|
266
|
+
const {
|
|
267
|
+
alias,
|
|
268
|
+
internalKey
|
|
269
|
+
} = declaration;
|
|
270
|
+
const oldValue = target[key];
|
|
271
|
+
if (alias) {
|
|
272
|
+
setObjectValueByPath(target, alias, newValue);
|
|
273
|
+
} else {
|
|
274
|
+
target[internalKey] = newValue;
|
|
274
275
|
}
|
|
275
|
-
|
|
276
|
+
target.onUpdateProperty?.(key, newValue, oldValue);
|
|
276
277
|
}
|
|
277
|
-
function
|
|
278
|
+
function propertyOffsetGet(target, key, declaration) {
|
|
278
279
|
const {
|
|
279
280
|
default: _default,
|
|
280
281
|
fallback,
|
|
281
282
|
alias,
|
|
282
|
-
|
|
283
|
+
internalKey
|
|
283
284
|
} = declaration;
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
}
|
|
285
|
+
let result;
|
|
286
|
+
if (alias) {
|
|
287
|
+
result = getObjectValueByPath(target, alias);
|
|
288
|
+
} else {
|
|
289
|
+
result = target[internalKey];
|
|
290
|
+
}
|
|
291
|
+
result = result ?? (typeof fallback === "function" ? fallback() : fallback);
|
|
292
|
+
if (result === void 0 && _default !== void 0 && !target[initedSymbol]) {
|
|
293
|
+
target[initedSymbol] = true;
|
|
294
|
+
const defaultValue = typeof _default === "function" ? _default() : _default;
|
|
295
|
+
if (defaultValue !== void 0) {
|
|
296
|
+
target[key] = defaultValue;
|
|
297
|
+
result = defaultValue;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
return result;
|
|
301
|
+
}
|
|
302
|
+
function getPropertyDescriptor(key, declaration) {
|
|
290
303
|
function get() {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
result = getObjectValueByPath(this, alias);
|
|
294
|
-
} else if (!internal && typeof this.getProperty !== "undefined") {
|
|
295
|
-
result = this.getProperty(key);
|
|
304
|
+
if (typeof this.getProperty !== "undefined") {
|
|
305
|
+
return this.getProperty(key);
|
|
296
306
|
} else {
|
|
297
|
-
|
|
307
|
+
return propertyOffsetGet(this, key, declaration);
|
|
298
308
|
}
|
|
299
|
-
result = result ?? getFallbackValue();
|
|
300
|
-
if (result === void 0 && _default !== void 0 && !this[initedSymbol]) {
|
|
301
|
-
this[initedSymbol] = true;
|
|
302
|
-
const defaultValue = getDefaultValue();
|
|
303
|
-
if (defaultValue !== void 0) {
|
|
304
|
-
set.call(this, defaultValue);
|
|
305
|
-
result = defaultValue;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
return result;
|
|
309
309
|
}
|
|
310
310
|
function set(newValue) {
|
|
311
|
-
|
|
312
|
-
if (alias && alias !== key) {
|
|
313
|
-
setObjectValueByPath(this, alias, newValue);
|
|
314
|
-
} else if (!internal && typeof this.setProperty !== "undefined") {
|
|
311
|
+
if (typeof this.setProperty !== "undefined") {
|
|
315
312
|
this.setProperty(key, newValue);
|
|
316
313
|
} else {
|
|
317
|
-
|
|
314
|
+
propertyOffsetSet(this, key, newValue, declaration);
|
|
318
315
|
}
|
|
319
|
-
this.onUpdateProperty?.(key, newValue, oldValue);
|
|
320
316
|
}
|
|
321
317
|
return {
|
|
322
318
|
get,
|
|
@@ -324,8 +320,12 @@ function getPropertyDescriptor(key, declaration = {}) {
|
|
|
324
320
|
};
|
|
325
321
|
}
|
|
326
322
|
function defineProperty(constructor, key, declaration = {}) {
|
|
327
|
-
|
|
328
|
-
|
|
323
|
+
const _declaration = {
|
|
324
|
+
...declaration,
|
|
325
|
+
internalKey: Symbol(key)
|
|
326
|
+
};
|
|
327
|
+
getDeclarations(constructor).set(key, _declaration);
|
|
328
|
+
const descriptor = getPropertyDescriptor(key, _declaration);
|
|
329
329
|
Object.defineProperty(constructor.prototype, key, {
|
|
330
330
|
get() {
|
|
331
331
|
return descriptor.get.call(this);
|
|
@@ -351,10 +351,14 @@ function property2(declaration = {}) {
|
|
|
351
351
|
if (typeof key !== "string") {
|
|
352
352
|
throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");
|
|
353
353
|
}
|
|
354
|
-
const
|
|
354
|
+
const _declaration = {
|
|
355
|
+
...declaration,
|
|
356
|
+
internalKey: Symbol(key)
|
|
357
|
+
};
|
|
358
|
+
const descriptor = getPropertyDescriptor(key, _declaration);
|
|
355
359
|
return {
|
|
356
360
|
init(v) {
|
|
357
|
-
getDeclarations(this.constructor).set(key,
|
|
361
|
+
getDeclarations(this.constructor).set(key, _declaration);
|
|
358
362
|
descriptor.set.call(this, v);
|
|
359
363
|
return v;
|
|
360
364
|
},
|
|
@@ -382,27 +386,38 @@ class Reactivable extends Observable {
|
|
|
382
386
|
isDirty(key) {
|
|
383
387
|
return key ? this._updatedProperties.has(key) : this._updatedProperties.size > 0;
|
|
384
388
|
}
|
|
385
|
-
offsetGet(key) {
|
|
386
|
-
return this[key];
|
|
387
|
-
}
|
|
388
|
-
offsetSet(key, newValue) {
|
|
389
|
-
this[key] = newValue;
|
|
390
|
-
}
|
|
391
389
|
getProperty(key, defaultValue) {
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
390
|
+
const declaration = this.getPropertyDeclaration(key);
|
|
391
|
+
if (declaration) {
|
|
392
|
+
if (declaration.internal || declaration.alias) {
|
|
393
|
+
return propertyOffsetGet(this, key, declaration);
|
|
394
|
+
} else {
|
|
395
|
+
if (this._propertyAccessor?.getProperty) {
|
|
396
|
+
return this._propertyAccessor.getProperty(key, defaultValue);
|
|
397
|
+
} else {
|
|
398
|
+
return this._properties.get(key) ?? defaultValue;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
396
401
|
}
|
|
402
|
+
return void 0;
|
|
397
403
|
}
|
|
398
404
|
setProperty(key, newValue) {
|
|
399
|
-
this.
|
|
400
|
-
|
|
405
|
+
const declaration = this.getPropertyDeclaration(key);
|
|
406
|
+
if (declaration) {
|
|
407
|
+
if (declaration.internal || declaration.alias) {
|
|
408
|
+
propertyOffsetSet(this, key, newValue, declaration);
|
|
409
|
+
} else {
|
|
410
|
+
const oldValue = this.getProperty(key);
|
|
411
|
+
this._propertyAccessor?.setProperty?.(key, newValue);
|
|
412
|
+
this._properties.set(key, newValue);
|
|
413
|
+
this.onUpdateProperty?.(key, newValue, oldValue);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
401
416
|
}
|
|
402
417
|
getProperties(keys) {
|
|
403
418
|
const properties = {};
|
|
404
|
-
for (const [name,
|
|
405
|
-
if (!
|
|
419
|
+
for (const [name, declaration] of this.getPropertyDeclarations()) {
|
|
420
|
+
if (!declaration.internal && !declaration.alias && (!keys || keys.includes(name))) {
|
|
406
421
|
properties[name] = this.getProperty(name);
|
|
407
422
|
}
|
|
408
423
|
}
|
|
@@ -410,19 +425,17 @@ class Reactivable extends Observable {
|
|
|
410
425
|
}
|
|
411
426
|
setProperties(properties) {
|
|
412
427
|
if (properties && typeof properties === "object") {
|
|
413
|
-
for (const
|
|
414
|
-
|
|
415
|
-
this.offsetSet(name, properties[name]);
|
|
416
|
-
}
|
|
428
|
+
for (const name in properties) {
|
|
429
|
+
this.setProperty(name, properties[name]);
|
|
417
430
|
}
|
|
418
431
|
}
|
|
419
432
|
return this;
|
|
420
433
|
}
|
|
421
434
|
resetProperties() {
|
|
422
|
-
for (const [name,
|
|
423
|
-
this.
|
|
435
|
+
for (const [name, declaration] of this.getPropertyDeclarations()) {
|
|
436
|
+
this.setProperty(
|
|
424
437
|
name,
|
|
425
|
-
typeof
|
|
438
|
+
typeof declaration.default === "function" ? declaration.default() : declaration.default
|
|
426
439
|
);
|
|
427
440
|
}
|
|
428
441
|
return this;
|
|
@@ -434,21 +447,19 @@ class Reactivable extends Observable {
|
|
|
434
447
|
return this.getPropertyDeclarations().get(key);
|
|
435
448
|
}
|
|
436
449
|
setPropertyAccessor(accessor) {
|
|
450
|
+
const declarations = this.getPropertyDeclarations();
|
|
451
|
+
this._propertyAccessor = void 0;
|
|
452
|
+
const oldValues = {};
|
|
453
|
+
declarations.forEach((_declaration, key) => {
|
|
454
|
+
oldValues[key] = this.getProperty(key);
|
|
455
|
+
});
|
|
437
456
|
this._propertyAccessor = accessor;
|
|
438
|
-
|
|
439
|
-
const
|
|
440
|
-
const
|
|
441
|
-
let oldValue;
|
|
442
|
-
if (proxyed) {
|
|
443
|
-
oldValue = this.offsetGet(key);
|
|
444
|
-
} else {
|
|
445
|
-
oldValue = this._properties.get(key);
|
|
446
|
-
}
|
|
457
|
+
declarations.forEach((declaration, key) => {
|
|
458
|
+
const newValue = this.getProperty(key);
|
|
459
|
+
const oldValue = oldValues[key];
|
|
447
460
|
if (newValue !== void 0 && !Object.is(newValue, oldValue)) {
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
} else {
|
|
451
|
-
this._properties.set(key, newValue);
|
|
461
|
+
this.setProperty(key, newValue);
|
|
462
|
+
if (!declaration.internal && !declaration.alias) {
|
|
452
463
|
this.requestUpdate(key, newValue, oldValue);
|
|
453
464
|
}
|
|
454
465
|
}
|
|
@@ -1839,4 +1850,4 @@ function flatDocumentToDocument(flatDoc) {
|
|
|
1839
1850
|
return doc;
|
|
1840
1851
|
}
|
|
1841
1852
|
|
|
1842
|
-
export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, defaultColor, defineProperty, flatDocumentToDocument, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor,
|
|
1853
|
+
export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, defaultColor, defineProperty, flatDocumentToDocument, getDeclarations, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultInnerShadow, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOuterShadow, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, hasCRLF, idGenerator, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeInnerShadow, normalizeOuterShadow, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeSoftEdge, normalizeStyle, normalizeText, normalizeTextContent, normalizeVideo, parseColor, parseGradient, pick, property, property2, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
|