modern-idoc 0.10.18 → 0.10.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -426,6 +426,45 @@ class Reactivable extends Observable {
426
426
  isDirty(key) {
427
427
  return key ? Boolean(this._updatedProperties[key]) : Object.keys(this._updatedProperties).length > 0;
428
428
  }
429
+ offsetGetProperty(key) {
430
+ return this._properties[key];
431
+ }
432
+ offsetSetProperty(key, value) {
433
+ this._properties[key] = value;
434
+ }
435
+ offsetGetProperties(keys) {
436
+ const properties = this._properties;
437
+ const allKeys = Object.keys(properties);
438
+ const result = {};
439
+ for (let key, value, i = 0; i < allKeys.length; i++) {
440
+ key = allKeys[i];
441
+ value = properties[key];
442
+ if (value !== void 0 && (!keys || keys.includes(key))) {
443
+ if (value && typeof value === "object") {
444
+ if ("toJSON" in value) {
445
+ result[key] = value.toJSON();
446
+ } else if (Array.isArray(value)) {
447
+ result[key] = [...value];
448
+ } else {
449
+ result[key] = { ...value };
450
+ }
451
+ } else {
452
+ result[key] = value;
453
+ }
454
+ }
455
+ }
456
+ return result;
457
+ }
458
+ offsetSetProperties(properties) {
459
+ if (properties && typeof properties === "object") {
460
+ const allKeys = Object.keys(properties);
461
+ for (let key, i = 0; i < allKeys.length; i++) {
462
+ key = allKeys[i];
463
+ this.offsetSetProperty(key, properties[key]);
464
+ }
465
+ }
466
+ return this;
467
+ }
429
468
  getProperty(key) {
430
469
  const declaration = this.getPropertyDeclaration(key);
431
470
  if (declaration) {
@@ -437,7 +476,7 @@ class Reactivable extends Observable {
437
476
  if (accessor && accessor.getProperty) {
438
477
  result = accessor.getProperty(key);
439
478
  } else {
440
- result = this._properties[key];
479
+ result = this.offsetGetProperty(key);
441
480
  }
442
481
  return result ?? propertyOffsetFallback(this, key, declaration);
443
482
  }
@@ -452,7 +491,7 @@ class Reactivable extends Observable {
452
491
  } else {
453
492
  const oldValue = this.getProperty(key);
454
493
  this._propertyAccessor?.setProperty?.(key, newValue);
455
- this._properties[key] = newValue;
494
+ this.offsetSetProperty(key, newValue);
456
495
  this.onUpdateProperty?.(
457
496
  key,
458
497
  newValue ?? propertyOffsetFallback(this, key, declaration),
@@ -468,7 +507,10 @@ class Reactivable extends Observable {
468
507
  for (let i = 0, len = declarationKeys.length; i < len; i++) {
469
508
  const key = declarationKeys[i];
470
509
  const declaration = declarations[key];
471
- if (!declaration.internal && !declaration.alias && (!keys || keys.includes(key))) {
510
+ if (declaration.internal || declaration.alias) {
511
+ continue;
512
+ }
513
+ if (!keys || keys.includes(key)) {
472
514
  properties[key] = this.getProperty(key);
473
515
  }
474
516
  }
@@ -503,26 +545,28 @@ class Reactivable extends Observable {
503
545
  }
504
546
  setPropertyAccessor(accessor) {
505
547
  const declarations = this.getPropertyDeclarations();
506
- this._propertyAccessor = void 0;
507
- const oldValues = {};
508
- const declarationKeys = Object.keys(declarations);
509
- for (let i = 0, len = declarationKeys.length; i < len; i++) {
510
- const key = declarationKeys[i];
511
- oldValues[key] = this.getProperty(key);
512
- }
513
- this._propertyAccessor = accessor;
514
- for (let i = 0, len = declarationKeys.length; i < len; i++) {
515
- const key = declarationKeys[i];
516
- const declaration = declarations[key];
517
- const newValue = this.getProperty(key);
518
- const oldValue = oldValues[key];
519
- if (newValue !== void 0 && !Object.is(newValue, oldValue)) {
520
- this.setProperty(key, newValue);
521
- if (!declaration.internal && !declaration.alias) {
522
- this.requestUpdate(key, newValue, oldValue);
548
+ const items = [];
549
+ if (accessor && accessor.getProperty && accessor.setProperty) {
550
+ const declarationKeys = Object.keys(declarations);
551
+ for (let i = 0, len = declarationKeys.length; i < len; i++) {
552
+ const key = declarationKeys[i];
553
+ const declaration = declarations[key];
554
+ if (declaration.internal || declaration.alias) {
555
+ continue;
556
+ }
557
+ const oldValue = this.offsetGetProperty(key);
558
+ const newValue = accessor.getProperty(key);
559
+ if ((oldValue !== void 0 || newValue !== void 0) && !Object.is(oldValue, newValue)) {
560
+ accessor.setProperty(key, newValue);
561
+ items.push({ key, newValue, oldValue });
523
562
  }
524
563
  }
525
564
  }
565
+ this._propertyAccessor = accessor;
566
+ for (let i = 0, len = items.length; i < len; i++) {
567
+ const { key, newValue, oldValue } = items[i];
568
+ this.requestUpdate(key, newValue, oldValue);
569
+ }
526
570
  return this;
527
571
  }
528
572
  async _nextTick() {
@@ -571,28 +615,7 @@ class Reactivable extends Observable {
571
615
  _updateProperty(key, newValue, oldValue) {
572
616
  }
573
617
  toJSON() {
574
- const json = {};
575
- const properties = this._properties;
576
- const keys = Object.keys(properties);
577
- for (let i = 0, len = keys.length; i < len; i++) {
578
- const key = keys[i];
579
- const value = properties[key];
580
- if (value === void 0) {
581
- continue;
582
- }
583
- if (value && typeof value === "object") {
584
- if ("toJSON" in value && typeof value.toJSON === "function") {
585
- json[key] = value.toJSON();
586
- } else if (Array.isArray(value)) {
587
- json[key] = [...value];
588
- } else {
589
- json[key] = { ...value };
590
- }
591
- } else {
592
- json[key] = value;
593
- }
594
- }
595
- return json;
618
+ return this.offsetGetProperties();
596
619
  }
597
620
  clone() {
598
621
  return new this.constructor(this.toJSON());
package/dist/index.d.cts CHANGED
@@ -888,6 +888,10 @@ declare class Reactivable extends Observable implements PropertyAccessor {
888
888
  protected _updating: boolean;
889
889
  constructor(properties?: Record<string, any>);
890
890
  isDirty(key?: string): boolean;
891
+ offsetGetProperty(key: string): any;
892
+ offsetSetProperty(key: string, value: any): void;
893
+ offsetGetProperties(keys?: string[]): Record<string, any>;
894
+ offsetSetProperties(properties?: Record<string, any>): this;
891
895
  getProperty(key: string): any;
892
896
  setProperty(key: string, newValue: any): void;
893
897
  getProperties(keys?: string[]): Record<string, any>;
@@ -895,7 +899,7 @@ declare class Reactivable extends Observable implements PropertyAccessor {
895
899
  resetProperties(): this;
896
900
  getPropertyDeclarations(): Record<string, PropertyDeclaration>;
897
901
  getPropertyDeclaration(key: string): PropertyDeclaration | undefined;
898
- setPropertyAccessor(accessor: PropertyAccessor): this;
902
+ setPropertyAccessor(accessor?: PropertyAccessor): this;
899
903
  protected _nextTick(): Promise<void>;
900
904
  protected _enqueueUpdate(): Promise<void>;
901
905
  onUpdate(): void;
package/dist/index.d.mts CHANGED
@@ -888,6 +888,10 @@ declare class Reactivable extends Observable implements PropertyAccessor {
888
888
  protected _updating: boolean;
889
889
  constructor(properties?: Record<string, any>);
890
890
  isDirty(key?: string): boolean;
891
+ offsetGetProperty(key: string): any;
892
+ offsetSetProperty(key: string, value: any): void;
893
+ offsetGetProperties(keys?: string[]): Record<string, any>;
894
+ offsetSetProperties(properties?: Record<string, any>): this;
891
895
  getProperty(key: string): any;
892
896
  setProperty(key: string, newValue: any): void;
893
897
  getProperties(keys?: string[]): Record<string, any>;
@@ -895,7 +899,7 @@ declare class Reactivable extends Observable implements PropertyAccessor {
895
899
  resetProperties(): this;
896
900
  getPropertyDeclarations(): Record<string, PropertyDeclaration>;
897
901
  getPropertyDeclaration(key: string): PropertyDeclaration | undefined;
898
- setPropertyAccessor(accessor: PropertyAccessor): this;
902
+ setPropertyAccessor(accessor?: PropertyAccessor): this;
899
903
  protected _nextTick(): Promise<void>;
900
904
  protected _enqueueUpdate(): Promise<void>;
901
905
  onUpdate(): void;
package/dist/index.d.ts CHANGED
@@ -888,6 +888,10 @@ declare class Reactivable extends Observable implements PropertyAccessor {
888
888
  protected _updating: boolean;
889
889
  constructor(properties?: Record<string, any>);
890
890
  isDirty(key?: string): boolean;
891
+ offsetGetProperty(key: string): any;
892
+ offsetSetProperty(key: string, value: any): void;
893
+ offsetGetProperties(keys?: string[]): Record<string, any>;
894
+ offsetSetProperties(properties?: Record<string, any>): this;
891
895
  getProperty(key: string): any;
892
896
  setProperty(key: string, newValue: any): void;
893
897
  getProperties(keys?: string[]): Record<string, any>;
@@ -895,7 +899,7 @@ declare class Reactivable extends Observable implements PropertyAccessor {
895
899
  resetProperties(): this;
896
900
  getPropertyDeclarations(): Record<string, PropertyDeclaration>;
897
901
  getPropertyDeclaration(key: string): PropertyDeclaration | undefined;
898
- setPropertyAccessor(accessor: PropertyAccessor): this;
902
+ setPropertyAccessor(accessor?: PropertyAccessor): this;
899
903
  protected _nextTick(): Promise<void>;
900
904
  protected _enqueueUpdate(): Promise<void>;
901
905
  onUpdate(): void;
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(a,G){typeof exports=="object"&&typeof module<"u"?G(exports):typeof define=="function"&&define.amd?define(["exports"],G):(a=typeof globalThis<"u"?globalThis:a||self,G(a.modernIdoc={}))})(this,(function(a){"use strict";function G(t){return typeof t=="string"?{src:t}:t}var Oe={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,n){return e===void 0&&(e=0),n===void 0&&(n=Math.pow(10,e)),Math.round(n*t)/n+0},P=function(t,e,n){return e===void 0&&(e=0),n===void 0&&(n=1),t>n?n:t>e?t:e},wt=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},Pt=function(t){return{r:P(t.r,0,255),g:P(t.g,0,255),b:P(t.b,0,255),a:P(t.a)}},nt=function(t){return{r:y(t.r),g:y(t.g),b:y(t.b),a:y(t.a,3)}},Le=/^#([0-9a-f]{3,8})$/i,q=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},Ft=function(t){var e=t.r,n=t.g,r=t.b,i=t.a,o=Math.max(e,n,r),s=o-Math.min(e,n,r),l=s?o===e?(n-r)/s:o===n?2+(r-e)/s:4+(e-n)/s:0;return{h:60*(l<0?l+6:l),s:o?s/o*100:0,v:o/255*100,a:i}},Ot=function(t){var e=t.h,n=t.s,r=t.v,i=t.a;e=e/360*6,n/=100,r/=100;var o=Math.floor(e),s=r*(1-n),l=r*(1-(e-o)*n),f=r*(1-(1-e+o)*n),g=o%6;return{r:255*[r,l,s,s,f,r][g],g:255*[f,r,r,l,s,s][g],b:255*[s,s,f,r,r,l][g],a:i}},Lt=function(t){return{h:wt(t.h),s:P(t.s,0,100),l:P(t.l,0,100),a:P(t.a)}},zt=function(t){return{h:y(t.h),s:y(t.s),l:y(t.l),a:y(t.a,3)}},Et=function(t){return Ot((n=(e=t).s,{h:e.h,s:(n*=((r=e.l)<50?r:100-r)/100)>0?2*n/(r+n)*100:0,v:r+n,a:e.a}));var e,n,r},V=function(t){return{h:(e=Ft(t)).h,s:(i=(200-(n=e.s))*(r=e.v)/100)>0&&i<200?n*r/100/(i<=100?i:200-i)*100:0,l:i/2,a:e.a};var e,n,r,i},ze=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ee=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,De=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ae=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Dt={string:[[function(t){var e=Le.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=De.exec(t)||Ae.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:Pt({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=ze.exec(t)||Ee.exec(t);if(!e)return null;var n,r,i=Lt({h:(n=e[1],r=e[2],r===void 0&&(r="deg"),Number(n)*(Oe[r]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return Et(i)},"hsl"]],object:[[function(t){var e=t.r,n=t.g,r=t.b,i=t.a,o=i===void 0?1:i;return D(e)&&D(n)&&D(r)?Pt({r:Number(e),g:Number(n),b:Number(r),a:Number(o)}):null},"rgb"],[function(t){var e=t.h,n=t.s,r=t.l,i=t.a,o=i===void 0?1:i;if(!D(e)||!D(n)||!D(r))return null;var s=Lt({h:Number(e),s:Number(n),l:Number(r),a:Number(o)});return Et(s)},"hsl"],[function(t){var e=t.h,n=t.s,r=t.v,i=t.a,o=i===void 0?1:i;if(!D(e)||!D(n)||!D(r))return null;var s=(function(l){return{h:wt(l.h),s:P(l.s,0,100),v:P(l.v,0,100),a:P(l.a)}})({h:Number(e),s:Number(n),v:Number(r),a:Number(o)});return Ot(s)},"hsv"]]},At=function(t,e){for(var n=0;n<e.length;n++){var r=e[n][0](t);if(r)return[r,e[n][1]]}return[null,void 0]},Ne=function(t){return typeof t=="string"?At(t.trim(),Dt.string):typeof t=="object"&&t!==null?At(t,Dt.object):[null,void 0]},rt=function(t,e){var n=V(t);return{h:n.h,s:P(n.s+100*e,0,100),l:n.l,a:n.a}},it=function(t){return(299*t.r+587*t.g+114*t.b)/1e3/255},Nt=function(t,e){var n=V(t);return{h:n.h,s:n.s,l:P(n.l+100*e,0,100),a:n.a}},jt=(function(){function t(e){this.parsed=Ne(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(it(this.rgba),2)},t.prototype.isDark=function(){return it(this.rgba)<.5},t.prototype.isLight=function(){return it(this.rgba)>=.5},t.prototype.toHex=function(){return e=nt(this.rgba),n=e.r,r=e.g,i=e.b,s=(o=e.a)<1?q(y(255*o)):"","#"+q(n)+q(r)+q(i)+s;var e,n,r,i,o,s},t.prototype.toRgb=function(){return nt(this.rgba)},t.prototype.toRgbString=function(){return e=nt(this.rgba),n=e.r,r=e.g,i=e.b,(o=e.a)<1?"rgba("+n+", "+r+", "+i+", "+o+")":"rgb("+n+", "+r+", "+i+")";var e,n,r,i,o},t.prototype.toHsl=function(){return zt(V(this.rgba))},t.prototype.toHslString=function(){return e=zt(V(this.rgba)),n=e.h,r=e.s,i=e.l,(o=e.a)<1?"hsla("+n+", "+r+"%, "+i+"%, "+o+")":"hsl("+n+", "+r+"%, "+i+"%)";var e,n,r,i,o},t.prototype.toHsv=function(){return e=Ft(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 E({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),E(rt(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),E(rt(this.rgba,-e))},t.prototype.grayscale=function(){return E(rt(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),E(Nt(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),E(Nt(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"?E({r:(n=this.rgba).r,g:n.g,b:n.b,a:e}):y(this.rgba.a,3);var n},t.prototype.hue=function(e){var n=V(this.rgba);return typeof e=="number"?E({h:e,s:n.s,l:n.l,a:n.a}):y(n.h)},t.prototype.isEqual=function(e){return this.toHex()===E(e).toHex()},t})(),E=function(t){return t instanceof jt?t:new jt(t)};class je{eventListeners=new Map;addEventListener(e,n,r){const i={value:n,options:r},o=this.eventListeners.get(e);return o?Array.isArray(o)?o.push(i):this.eventListeners.set(e,[o,i]):this.eventListeners.set(e,i),this}removeEventListener(e,n,r){if(!n)return this.eventListeners.delete(e),this;const i=this.eventListeners.get(e);if(!i)return this;if(Array.isArray(i)){const o=[];for(let s=0,l=i.length;s<l;s++){const f=i[s];(f.value!==n||typeof r=="object"&&r?.once&&(typeof f.options=="boolean"||!f.options?.once))&&o.push(f)}o.length?this.eventListeners.set(e,o.length===1?o[0]:o):this.eventListeners.delete(e)}else i.value===n&&(typeof r=="boolean"||!r?.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,...n){const r=this.eventListeners.get(e);if(r){if(Array.isArray(r))for(let i=r.length,o=0;o<i;o++){const s=r[o];typeof s.options=="object"&&s.options?.once&&this.off(e,s.value,s.options),s.value.apply(this,n)}else typeof r.options=="object"&&r.options?.once&&this.off(e,r.value,r.options),r.value.apply(this,n);return!0}else return!1}on(e,n,r){return this.addEventListener(e,n,r)}once(e,n){return this.addEventListener(e,n,{once:!0})}off(e,n,r){return this.removeEventListener(e,n,r)}emit(e,...n){this.dispatchEvent(e,...n)}}function h(t){return t==null||t===""||t==="none"}function N(t,e=0,n=10**e){return Math.round(n*t)/n+0}function F(t,e=!1){if(typeof t!="object"||!t)return t;if(Array.isArray(t))return e?t.map(r=>F(r,e)):t;const n={};for(const r in t){const i=t[r];i!=null&&(e?n[r]=F(i,e):n[r]=i)}return n}function A(t,e){const n={};return e.forEach(r=>{r in t&&(n[r]=t[r])}),n}function x(t,e){if(t===e)return!0;if(t&&e&&typeof t=="object"&&typeof e=="object"){const n=Array.from(new Set([...Object.keys(t),...Object.keys(e)]));return!n.length||n.every(r=>t[r]===e[r])}return!1}function Rt(t,e,n){const r=e.length-1;if(r<0)return t===void 0?n:t;for(let i=0;i<r;i++){if(t==null)return n;t=t[e[i]]}return t==null||t[e[r]]===void 0?n:t[e[r]]}function kt(t,e,n){const r=e.length-1;for(let i=0;i<r;i++)typeof t[e[i]]!="object"&&(t[e[i]]={}),t=t[e[i]];t[e[r]]=n}function Gt(t,e,n){return t==null||!e||typeof e!="string"?n:t[e]!==void 0?t[e]:(e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),Rt(t,e.split("."),n))}function It(t,e,n){if(!(typeof t!="object"||!e))return e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),kt(t,e.split("."),n)}class Tt{_eventListeners={};on(e,n){let r=this._eventListeners[e];r===void 0&&(r=[],this._eventListeners[e]=r);const i=r.indexOf(n);return i>-1&&r.splice(i,1),r.push(n),this}once(e,n){const r=(...i)=>{this.off(e,r),n.apply(this,i)};return this.on(e,r),this}off(e,n){const r=this._eventListeners[e];if(r!==void 0){const i=r.indexOf(n);i>-1&&r.splice(i,1)}return this}emit(e,...n){const r=this._eventListeners[e];if(r!==void 0){const i=r.length;if(i>0)for(let o=0;o<i;o++)r[o].apply(this,n)}return this}removeAllListeners(){return this._eventListeners={},this}hasEventListener(e){return!!this._eventListeners[e]}destroy(){this.removeAllListeners()}}class Re{_map=new WeakMap;_toRaw(e){if(e&&typeof e=="object"){const n=e.__v_raw;n&&(e=this._toRaw(n))}return e}delete(e){return this._map.delete(this._toRaw(e))}get(e){return this._map.get(this._toRaw(e))}has(e){return this._map.has(this._toRaw(e))}set(e,n){return this._map.set(this._toRaw(e),this._toRaw(n)),this}}const ot=Symbol.for("declarations"),J=Symbol.for("inited");function M(t){let e;if(Object.hasOwn(t,ot))e=t[ot];else{const n=Object.getPrototypeOf(t);e={...n?M(n):{}},t[ot]=e}return e}function at(t,e,n,r){const{alias:i,internalKey:o}=r,s=t[e];i?It(t,i,n):t[o]=n,t.onUpdateProperty?.(e,n??$(t,e,r),s)}function st(t,e,n){const{alias:r,internalKey:i}=n;let o;return r?o=Gt(t,r):o=t[i],o=o??$(t,e,n),o}function $(t,e,n){const{default:r,fallback:i}=n;let o;if(r!==void 0&&!t[J]?.[e]){t[J]||(t[J]={}),t[J][e]=!0;const s=typeof r=="function"?r():r;s!==void 0&&(t[e]=s,o=s)}return o===void 0&&i!==void 0&&(o=typeof i=="function"?i():i),o}function lt(t,e){function n(){return this.getProperty?this.getProperty(t):st(this,t,e)}function r(i){this.setProperty?this.setProperty(t,i):at(this,t,i,e)}return{get:n,set:r}}function Vt(t,e,n={}){const r={...n,internalKey:Symbol.for(e)},i=M(t);i[e]=r;const{get:o,set:s}=lt(e,r);Object.defineProperty(t.prototype,e,{get(){return o.call(this)},set(l){s.call(this,l)},configurable:!0,enumerable:!0})}function ke(t){return function(e,n){if(typeof n!="string")throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");Vt(e.constructor,n,t)}}function Ge(t={}){return function(e,n){const r=n.name;if(typeof r!="string")throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");const i={...t,internalKey:Symbol.for(r)},o=lt(r,i);return{init(s){const l=M(this.constructor);return l[r]=i,o.set.call(this,s),s},get(){return o.get.call(this)},set(s){o.set.call(this,s)}}}}class Ie extends Tt{_propertyAccessor;_properties={};_updatedProperties={};_changedProperties=new Set;_updatingPromise=Promise.resolve();_updating=!1;constructor(e){super(),this.setProperties(e)}isDirty(e){return e?!!this._updatedProperties[e]:Object.keys(this._updatedProperties).length>0}getProperty(e){const n=this.getPropertyDeclaration(e);if(n){if(n.internal||n.alias)return st(this,e,n);{const r=this._propertyAccessor;let i;return r&&r.getProperty?i=r.getProperty(e):i=this._properties[e],i??$(this,e,n)}}}setProperty(e,n){const r=this.getPropertyDeclaration(e);if(r)if(r.internal||r.alias)at(this,e,n,r);else{const i=this.getProperty(e);this._propertyAccessor?.setProperty?.(e,n),this._properties[e]=n,this.onUpdateProperty?.(e,n??$(this,e,r),i)}}getProperties(e){const n={},r=this.getPropertyDeclarations(),i=Object.keys(r);for(let o=0,s=i.length;o<s;o++){const l=i[o],f=r[l];!f.internal&&!f.alias&&(!e||e.includes(l))&&(n[l]=this.getProperty(l))}return n}setProperties(e){if(e&&typeof e=="object")for(const n in e)this.setProperty(n,e[n]);return this}resetProperties(){const e=this.getPropertyDeclarations(),n=Object.keys(e);for(let r=0,i=n.length;r<i;r++){const o=n[r],s=e[o];this.setProperty(o,typeof s.default=="function"?s.default():s.default)}return this}getPropertyDeclarations(){return M(this.constructor)}getPropertyDeclaration(e){return this.getPropertyDeclarations()[e]}setPropertyAccessor(e){const n=this.getPropertyDeclarations();this._propertyAccessor=void 0;const r={},i=Object.keys(n);for(let o=0,s=i.length;o<s;o++){const l=i[o];r[l]=this.getProperty(l)}this._propertyAccessor=e;for(let o=0,s=i.length;o<s;o++){const l=i[o],f=n[l],g=this.getProperty(l),v=r[l];g!==void 0&&!Object.is(g,v)&&(this.setProperty(l,g),!f.internal&&!f.alias&&this.requestUpdate(l,g,v))}return 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={}}onUpdateProperty(e,n,r){Object.is(n,r)||this.requestUpdate(e,n,r)}requestUpdate(e,n,r){e!==void 0&&(this._updatedProperties[e]=r,this._changedProperties.add(e),this._updateProperty(e,n,r),this.emit("updateProperty",e,n,r)),this._updating||(this._updatingPromise=this._enqueueUpdate())}_update(e){}_updateProperty(e,n,r){}toJSON(){const e={},n=this._properties,r=Object.keys(n);for(let i=0,o=r.length;i<o;i++){const s=r[i],l=n[s];l!==void 0&&(l&&typeof l=="object"?"toJSON"in l&&typeof l.toJSON=="function"?e[s]=l.toJSON():Array.isArray(l)?e[s]=[...l]:e[s]={...l}:e[s]=l)}return e}clone(){return new this.constructor(this.toJSON())}destroy(){this.emit("destroy"),super.destroy()}}function ut(t){let e;return typeof t=="number"?e={r:t>>24&255,g:t>>16&255,b:t>>8&255,a:(t&255)/255}:e=t,E(e)}function Te(t){return{r:N(t.r),g:N(t.g),b:N(t.b),a:N(t.a,3)}}function X(t){const e=t.toString(16);return e.length<2?`0${e}`:e}const W="#000000FF";function ct(t){return ut(t).isValid()}function b(t,e=!1){const n=ut(t);if(!n.isValid()){if(typeof t=="string")return t;const l=`Failed to normalizeColor ${t}`;if(e)throw new Error(l);return console.warn(l),W}const{r,g:i,b:o,a:s}=Te(n.rgba);return`#${X(r)}${X(i)}${X(o)}${X(N(s*255))}`}var Y=Y||{};Y.parse=(function(){const t={linearGradient:/^(-(webkit|o|ms|moz)-)?(linear-gradient)/i,repeatingLinearGradient:/^(-(webkit|o|ms|moz)-)?(repeating-linear-gradient)/i,radialGradient:/^(-(webkit|o|ms|moz)-)?(radial-gradient)/i,repeatingRadialGradient:/^(-(webkit|o|ms|moz)-)?(repeating-radial-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?((\d*\.\d+)|(\d+\.?)))px/,percentageValue:/^(-?((\d*\.\d+)|(\d+\.?)))%/,emValue:/^(-?((\d*\.\d+)|(\d+\.?)))em/,angleValue:/^(-?((\d*\.\d+)|(\d+\.?)))deg/,radianValue:/^(-?((\d*\.\d+)|(\d+\.?)))rad/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^#([0-9a-f]+)/i,literalColor:/^([a-z]+)/i,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,varColor:/^var/i,calcValue:/^calc/i,variableName:/^(--[a-z0-9-,\s#]+)/i,number:/^((\d*\.\d+)|(\d+\.?))/,hslColor:/^hsl/i,hslaColor:/^hsla/i};let e="";function n(u){const c=new Error(`${e}: ${u}`);throw c.source=e,c}function r(){const u=i();return e.length>0&&n("Invalid input not EOF"),u}function i(){return T(o)}function o(){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(u,c,d){return l(c,S=>{const k=d();return k&&(m(t.comma)||n("Missing comma before color stops")),{type:u,orientation:k,colorStops:T(_t)}})}function l(u,c){const d=m(u);if(d){m(t.startCall)||n("Missing (");const S=c(d);return m(t.endCall)||n("Missing )"),S}}function f(){const u=g();if(u)return u;const c=w("position-keyword",t.positionKeywords,1);return c?{type:"directional",value:c.value}:v()}function g(){return w("directional",t.sideOrCorner,1)}function v(){return w("angular",t.angleValue,1)||w("angular",t.radianValue,1)}function p(){let u,c=_(),d;return c&&(u=[],u.push(c),d=e,m(t.comma)&&(c=_(),c?u.push(c):e=d)),u}function _(){let u=C()||j();if(u)u.at=z();else{const c=O();if(c){u=c;const d=z();d&&(u.at=d)}else{const d=z();if(d)u={type:"default-radial",at:d};else{const S=R();S&&(u={type:"default-radial",at:S})}}}return u}function C(){const u=w("shape",/^(circle)/i,0);return u&&(u.style=Fe()||O()),u}function j(){const u=w("shape",/^(ellipse)/i,0);return u&&(u.style=R()||et()||O()),u}function O(){return w("extent-keyword",t.extentKeywords,1)}function z(){if(w("position",/^at/,0)){const u=R();return u||n("Missing positioning value"),u}}function R(){const u=K();if(u.x||u.y)return{type:"position",value:u}}function K(){return{x:et(),y:et()}}function T(u){let c=u();const d=[];if(c)for(d.push(c);m(t.comma);)c=u(),c?d.push(c):n("One extra comma");return d}function _t(){const u=Ye();return u||n("Expected color definition"),u.length=et(),u}function Ye(){return Qe()||on()||rn()||en()||tn()||nn()||Ze()}function Ze(){return w("literal",t.literalColor,0)}function Qe(){return w("hex",t.hexColor,1)}function tn(){return l(t.rgbColor,()=>({type:"rgb",value:T(U)}))}function en(){return l(t.rgbaColor,()=>({type:"rgba",value:T(U)}))}function nn(){return l(t.varColor,()=>({type:"var",value:an()}))}function rn(){return l(t.hslColor,()=>{m(t.percentageValue)&&n("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 S=d?d[1]:null;m(t.comma),d=m(t.percentageValue);const k=d?d[1]:null;return(!S||!k)&&n("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[c,S,k]}})}function on(){return l(t.hslaColor,()=>{const u=U();m(t.comma);let c=m(t.percentageValue);const d=c?c[1]:null;m(t.comma),c=m(t.percentageValue);const S=c?c[1]:null;m(t.comma);const k=U();return(!d||!S)&&n("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[u,d,S,k]}})}function an(){return m(t.variableName)[1]}function U(){return m(t.number)[1]}function et(){return w("%",t.percentageValue,1)||sn()||ln()||Fe()}function sn(){return w("position-keyword",t.positionKeywords,1)}function ln(){return l(t.calcValue,()=>{let u=1,c=0;for(;u>0&&c<e.length;){const S=e.charAt(c);S==="("?u++:S===")"&&u--,c++}u>0&&n("Missing closing parenthesis in calc() expression");const d=e.substring(0,c-1);return Ct(c-1),{type:"calc",value:d}})}function Fe(){return w("px",t.pixelValue,1)||w("em",t.emValue,1)}function w(u,c,d){const S=m(c);if(S)return{type:u,value:S[d]}}function m(u){let c,d;return d=/^\s+/.exec(e),d&&Ct(d[0].length),c=u.exec(e),c&&Ct(c[0].length),c}function Ct(u){e=e.substr(u)}return function(u){return e=u.toString().trim(),e.endsWith(";")&&(e=e.slice(0,-1)),r()}})();const Mt=Y.parse.bind(Y);var Z=Z||{};Z.stringify=(function(){var t={"visit_linear-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-linear-gradient":function(e){return t.visit_gradient(e)},"visit_radial-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-radial-gradient":function(e){return t.visit_gradient(e)},visit_gradient:function(e){var n=t.visit(e.orientation);return n&&(n+=", "),e.type+"("+n+t.visit(e.colorStops)+")"},visit_shape:function(e){var n=e.value,r=t.visit(e.at),i=t.visit(e.style);return i&&(n+=" "+i),r&&(n+=" at "+r),n},"visit_default-radial":function(e){var n="",r=t.visit(e.at);return r&&(n+=r),n},"visit_extent-keyword":function(e){var n=e.value,r=t.visit(e.at);return r&&(n+=" at "+r),n},"visit_position-keyword":function(e){return e.value},visit_position:function(e){return t.visit(e.value.x)+" "+t.visit(e.value.y)},"visit_%":function(e){return e.value+"%"},visit_em:function(e){return e.value+"em"},visit_px:function(e){return e.value+"px"},visit_calc:function(e){return"calc("+e.value+")"},visit_literal:function(e){return t.visit_color(e.value,e)},visit_hex:function(e){return t.visit_color("#"+e.value,e)},visit_rgb:function(e){return t.visit_color("rgb("+e.value.join(", ")+")",e)},visit_rgba:function(e){return t.visit_color("rgba("+e.value.join(", ")+")",e)},visit_hsl:function(e){return t.visit_color("hsl("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%)",e)},visit_hsla:function(e){return t.visit_color("hsla("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%, "+e.value[3]+")",e)},visit_var:function(e){return t.visit_color("var("+e.value+")",e)},visit_color:function(e,n){var r=e,i=t.visit(n.length);return i&&(r+=" "+i),r},visit_angular:function(e){return e.value+"deg"},visit_directional:function(e){return"to "+e.value},visit_array:function(e){var n="",r=e.length;return e.forEach(function(i,o){n+=t.visit(i),o<r-1&&(n+=", ")}),n},visit_object:function(e){return e.width&&e.height?t.visit(e.width)+" "+t.visit(e.height):""},visit:function(e){if(!e)return"";if(e instanceof Array)return t.visit_array(e);if(typeof e=="object"&&!e.type)return t.visit_object(e);if(e.type){var n=t["visit_"+e.type];if(n)return n(e);throw Error("Missing visitor visit_"+e.type)}else throw Error("Invalid node.")}};return function(e){return t.visit(e)}})();const Ve=Z.stringify.bind(Z);function $t(t){const e=t.length-1;return t.map((n,r)=>{const i=n.value;let o=N(r/e,3),s="#00000000";switch(n.type){case"rgb":s=b({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0)});break;case"rgba":s=b({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0),a:Number(i[3]??0)});break;case"literal":s=b(n.value);break;case"hex":s=b(`#${n.value}`);break}return n.length?.type==="%"&&(o=Number(n.length.value)/100),{offset:o,color:s}})}function Wt(t){let e=0;return t.orientation?.type==="angular"&&(e=Number(t.orientation.value)),{type:"linear-gradient",angle:e,stops:$t(t.colorStops)}}function Ht(t){return t.orientation?.map(e=>{switch(e?.type){default:return null}}),{type:"radial-gradient",stops:$t(t.colorStops)}}function H(t){return t.startsWith("linear-gradient(")||t.startsWith("radial-gradient(")}function Bt(t){return Mt(t).map(e=>{switch(e?.type){case"linear-gradient":return Wt(e);case"repeating-linear-gradient":return{...Wt(e),repeat:!0};case"radial-gradient":return Ht(e);case"repeating-radial-gradient":return{...Ht(e),repeat:!0};default:return}}).filter(Boolean)}const ft=["color"];function Kt(t){let e;return typeof t=="string"?e={color:t}:e={...t},e.color&&(e.color=b(e.color)),A(e,ft)}const dt=["linearGradient","radialGradient","rotateWithShape"];function Ut(t){let e;if(typeof t=="string"?e={image:t}:e={...t},e.image){const{type:n,...r}=Bt(e.image)[0]??{};switch(n){case"radial-gradient":return{radialGradient:r};case"linear-gradient":return{linearGradient:r}}}return A(e,dt)}const ht=["image","cropRect","stretchRect","tile","dpi","opacity","rotateWithShape"];function qt(t){let e;return typeof t=="string"?e={image:t}:e={...t},A(e,ht)}const gt=["preset","foregroundColor","backgroundColor"];function xt(t){let e;return typeof t=="string"?e={preset:t}:e={...t},h(e.foregroundColor)?delete e.foregroundColor:e.foregroundColor=b(e.foregroundColor),h(e.backgroundColor)?delete e.backgroundColor:e.backgroundColor=b(e.backgroundColor),A(e,gt)}function Jt(t){return!h(t.color)}function Xt(t){return typeof t=="string"?ct(t):Jt(t)}function Yt(t){return!h(t.image)&&H(t.image)||!!t.linearGradient||!!t.radialGradient}function Zt(t){return typeof t=="string"?H(t):Yt(t)}function Qt(t){return!h(t.image)&&!H(t.image)}function te(t){return typeof t=="string"?!ct(t)&&!H(t):Qt(t)}function ee(t){return!h(t.preset)}function ne(t){return typeof t=="string"?!1:ee(t)}function L(t){const n={enabled:t&&typeof t=="object"?t.enabled:void 0};return Xt(t)&&Object.assign(n,Kt(t)),Zt(t)&&Object.assign(n,Ut(t)),te(t)&&Object.assign(n,qt(t)),ne(t)&&Object.assign(n,xt(t)),A(F(n),Array.from(new Set([...ft,...ht,...dt,...gt])))}function re(t){return typeof t=="string"?{...L(t)}:{...L(t),...A(t,["fillWithShape"])}}function pt(){return{color:W,offsetX:0,offsetY:0,blurRadius:1}}function vt(t){return{...pt(),...F({...t,color:h(t.color)?W:b(t.color)})}}function ie(){return{...pt(),scaleX:1,scaleY:1}}function oe(t){return{...ie(),...vt(t)}}function Me(t){return t}function ae(t){return F({...t,softEdge:h(t.softEdge)?void 0:t.softEdge,outerShadow:h(t.outerShadow)?void 0:oe(t.outerShadow),innerShadow:h(t.innerShadow)?void 0:vt(t.innerShadow)})}function se(t){return typeof t=="string"?{...L(t)}:{...L(t),...A(t,["fillWithShape"])}}const $e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let We=(t=21)=>{let e="",n=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=$e[n[t]&63];return e};const le=()=>We(10),ue=le;function B(t){return typeof t=="string"?{...L(t)}:{...L(t),...A(t,["width","style","lineCap","lineJoin","headEnd","tailEnd"])}}function ce(t){return typeof t=="string"?{color:b(t)}:{...t,color:h(t.color)?W:b(t.color)}}function fe(){return{boxShadow:"none"}}function de(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 he(){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 ge(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function pe(){return{...he(),...ge(),...fe(),backgroundImage:"none",backgroundSize:"auto, auto",backgroundColor:"none",backgroundColormap:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"none",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto",maskImage:"none"}}function ve(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function me(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function ye(){return{...ve(),color:"#000000",verticalAlign:"baseline",letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textTransform:"none",textOrientation:"mixed",textDecoration:"none"}}function be(){return{...me(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function Se(){return{...be(),...ye(),textStrokeWidth:0,textStrokeColor:"none"}}function I(t){return F({...t,color:h(t.color)?void 0:b(t.color),backgroundColor:h(t.backgroundColor)?void 0:b(t.backgroundColor),borderColor:h(t.borderColor)?void 0:b(t.borderColor),outlineColor:h(t.outlineColor)?void 0:b(t.outlineColor),shadowColor:h(t.shadowColor)?void 0:b(t.shadowColor),textStrokeColor:h(t.textStrokeColor)?void 0:b(t.textStrokeColor)})}function He(){return{...pe(),...Se()}}const mt=/\r\n|\n\r|\n|\r/,Be=new RegExp(`${mt.source}|<br\\/>`,"g"),Ke=new RegExp(`^(${mt.source})$`),yt=`
2
- `;function Ue(t){return mt.test(t)}function bt(t){return Ke.test(t)}function _e(t){return t.replace(Be,yt)}function Q(t){const e=[];function n(){return e[e.length-1]}function r(l,f,g){const v=l?I(l):{},p=f?L(f):void 0,_=g?B(g):void 0,C=F({...v,fill:p,outline:_,fragments:[]});return e[e.length-1]?.fragments.length===0?e[e.length-1]=C:e.push(C),C}function i(l="",f,g,v){const p=f?I(f):{},_=g?L(g):void 0,C=v?B(v):void 0;Array.from(l).forEach(j=>{if(bt(j)){const{fragments:O,fill:z,outline:R,...K}=n()||r();O.length||O.push(F({...p,fill:_,outline:C,content:yt})),r(K,z,R)}else{const O=n()||r(),z=O.fragments[O.fragments.length-1];if(z){const{content:R,fill:K,outline:T,..._t}=z;if(x(_,K)&&x(C,T)&&x(p,_t)){z.content=`${R}${j}`;return}}O.fragments.push(F({...p,fill:_,outline:C,content:j}))}})}(Array.isArray(t)?t:[t]).forEach(l=>{if(typeof l=="string")r(),i(l);else if(St(l)){const{content:f,fill:g,outline:v,...p}=l;r(p,g,v),i(f)}else if(Ce(l)){const{fragments:f,fill:g,outline:v,...p}=l;r(p,g,v),f.forEach(_=>{const{content:C,fill:j,outline:O,...z}=_;i(C,z,j,O)})}else Array.isArray(l)?(r(),l.forEach(f=>{if(typeof f=="string")i(f);else if(St(f)){const{content:g,fill:v,outline:p,..._}=f;i(g,_,v,p)}})):console.warn("Failed to parse text content",l)});const s=n();return s&&!s.fragments.length&&s.fragments.push({content:""}),e}function Ce(t){return t&&typeof t=="object"&&"fragments"in t&&Array.isArray(t.fragments)}function St(t){return t&&typeof t=="object"&&"content"in t&&typeof t.content=="string"}function we(t){return typeof t=="string"||Array.isArray(t)?{content:Q(t)}:F({...t,content:Q(t.content??""),style:t.style?I(t.style):void 0,effects:t.effects?t.effects.map(e=>I(e)):void 0,measureDom:t.measureDom,fonts:t.fonts,fill:t.fill?L(t.fill):void 0,outline:t.outline?B(t.outline):void 0})}function qe(t){return Q(t).map(e=>{const n=_e(e.fragments.flatMap(r=>r.content).join(""));return bt(n)?"":n}).join(yt)}function Pe(t){return typeof t=="string"?{src:t}:t}function tt(t){return F({...t,id:t.id??ue(),style:h(t.style)?void 0:I(t.style),text:h(t.text)?void 0:we(t.text),background:h(t.background)?void 0:re(t.background),shape:h(t.shape)?void 0:de(t.shape),fill:h(t.fill)?void 0:L(t.fill),outline:h(t.outline)?void 0:B(t.outline),foreground:h(t.foreground)?void 0:se(t.foreground),shadow:h(t.shadow)?void 0:ce(t.shadow),video:h(t.video)?void 0:Pe(t.video),audio:h(t.audio)?void 0:G(t.audio),effect:h(t.effect)?void 0:ae(t.effect),children:t.children?.map(e=>tt(e))})}function xe(t){return tt(t)}function Je(t){const e={};for(const n in t.children){const r=tt(t.children[n]);delete r.children,e[n]=r}return{...t,children:e}}function Xe(t){const{children:e,...n}=t;function r(f){const{parentId:g,childrenIds:v,...p}=f;return{...p,children:[]}}const i={},o=[],s={...n,children:o};function l(f){if(!e[f]||i[f])return;const g=e[f],v=r(g);i[f]=v;const p=g.parentId;if(p){l(p);const _=e[p],C=i[p];if(!C)return;_?.childrenIds&&C?.children&&(C.children[_.childrenIds.indexOf(f)]=v)}else o.push(v)}for(const f in e)l(f);return s}a.EventEmitter=je,a.Observable=Tt,a.RawWeakMap=Re,a.Reactivable=Ie,a.clearUndef=F,a.colorFillFields=ft,a.defaultColor=W,a.defineProperty=Vt,a.flatDocumentToDocument=Xe,a.getDeclarations=M,a.getDefaultElementStyle=pe,a.getDefaultHighlightStyle=ve,a.getDefaultInnerShadow=pt,a.getDefaultLayoutStyle=he,a.getDefaultListStyleStyle=me,a.getDefaultOuterShadow=ie,a.getDefaultShadowStyle=fe,a.getDefaultStyle=He,a.getDefaultTextInlineStyle=ye,a.getDefaultTextLineStyle=be,a.getDefaultTextStyle=Se,a.getDefaultTransformStyle=ge,a.getNestedValue=Rt,a.getObjectValueByPath=Gt,a.getPropertyDescriptor=lt,a.gradientFillFields=dt,a.hasCRLF=Ue,a.idGenerator=ue,a.imageFillFiedls=ht,a.isCRLF=bt,a.isColor=ct,a.isColorFill=Xt,a.isColorFillObject=Jt,a.isEqualObject=x,a.isFragmentObject=St,a.isGradient=H,a.isGradientFill=Zt,a.isGradientFillObject=Yt,a.isImageFill=te,a.isImageFillObject=Qt,a.isNone=h,a.isParagraphObject=Ce,a.isPresetFill=ne,a.isPresetFillObject=ee,a.nanoid=le,a.normalizeAudio=G,a.normalizeBackground=re,a.normalizeCRLF=_e,a.normalizeColor=b,a.normalizeColorFill=Kt,a.normalizeDocument=xe,a.normalizeEffect=ae,a.normalizeElement=tt,a.normalizeFill=L,a.normalizeFlatDocument=Je,a.normalizeForeground=se,a.normalizeGradient=Bt,a.normalizeGradientFill=Ut,a.normalizeImageFill=qt,a.normalizeInnerShadow=vt,a.normalizeOuterShadow=oe,a.normalizeOutline=B,a.normalizePresetFill=xt,a.normalizeShadow=ce,a.normalizeShape=de,a.normalizeSoftEdge=Me,a.normalizeStyle=I,a.normalizeText=we,a.normalizeTextContent=Q,a.normalizeVideo=Pe,a.parseColor=ut,a.parseGradient=Mt,a.pick=A,a.presetFillFiedls=gt,a.property=ke,a.property2=Ge,a.propertyOffsetFallback=$,a.propertyOffsetGet=st,a.propertyOffsetSet=at,a.round=N,a.setNestedValue=kt,a.setObjectValueByPath=It,a.stringifyGradient=Ve,a.textContentToString=qe,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(a,k){typeof exports=="object"&&typeof module<"u"?k(exports):typeof define=="function"&&define.amd?define(["exports"],k):(a=typeof globalThis<"u"?globalThis:a||self,k(a.modernIdoc={}))})(this,(function(a){"use strict";function k(t){return typeof t=="string"?{src:t}:t}var Oe={grad:.9,turn:360,rad:360/(2*Math.PI)},D=function(t){return typeof t=="string"?t.length>0:typeof t=="number"},m=function(t,e,n){return e===void 0&&(e=0),n===void 0&&(n=Math.pow(10,e)),Math.round(n*t)/n+0},w=function(t,e,n){return e===void 0&&(e=0),n===void 0&&(n=1),t>n?n:t>e?t:e},Pt=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},wt=function(t){return{r:w(t.r,0,255),g:w(t.g,0,255),b:w(t.b,0,255),a:w(t.a)}},nt=function(t){return{r:m(t.r),g:m(t.g),b:m(t.b),a:m(t.a,3)}},Le=/^#([0-9a-f]{3,8})$/i,q=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},Ft=function(t){var e=t.r,n=t.g,r=t.b,i=t.a,o=Math.max(e,n,r),s=o-Math.min(e,n,r),l=s?o===e?(n-r)/s:o===n?2+(r-e)/s:4+(e-n)/s:0;return{h:60*(l<0?l+6:l),s:o?s/o*100:0,v:o/255*100,a:i}},Ot=function(t){var e=t.h,n=t.s,r=t.v,i=t.a;e=e/360*6,n/=100,r/=100;var o=Math.floor(e),s=r*(1-n),l=r*(1-(e-o)*n),f=r*(1-(1-e+o)*n),g=o%6;return{r:255*[r,l,s,s,f,r][g],g:255*[f,r,r,l,s,s][g],b:255*[s,s,f,r,r,l][g],a:i}},Lt=function(t){return{h:Pt(t.h),s:w(t.s,0,100),l:w(t.l,0,100),a:w(t.a)}},zt=function(t){return{h:m(t.h),s:m(t.s),l:m(t.l),a:m(t.a,3)}},Et=function(t){return Ot((n=(e=t).s,{h:e.h,s:(n*=((r=e.l)<50?r:100-r)/100)>0?2*n/(r+n)*100:0,v:r+n,a:e.a}));var e,n,r},V=function(t){return{h:(e=Ft(t)).h,s:(i=(200-(n=e.s))*(r=e.v)/100)>0&&i<200?n*r/100/(i<=100?i:200-i)*100:0,l:i/2,a:e.a};var e,n,r,i},ze=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ee=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,De=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ae=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Dt={string:[[function(t){var e=Le.exec(t);return e?(t=e[1]).length<=4?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:t.length===4?m(parseInt(t[3]+t[3],16)/255,2):1}:t.length===6||t.length===8?{r:parseInt(t.substr(0,2),16),g:parseInt(t.substr(2,2),16),b:parseInt(t.substr(4,2),16),a:t.length===8?m(parseInt(t.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(t){var e=De.exec(t)||Ae.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:wt({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=ze.exec(t)||Ee.exec(t);if(!e)return null;var n,r,i=Lt({h:(n=e[1],r=e[2],r===void 0&&(r="deg"),Number(n)*(Oe[r]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return Et(i)},"hsl"]],object:[[function(t){var e=t.r,n=t.g,r=t.b,i=t.a,o=i===void 0?1:i;return D(e)&&D(n)&&D(r)?wt({r:Number(e),g:Number(n),b:Number(r),a:Number(o)}):null},"rgb"],[function(t){var e=t.h,n=t.s,r=t.l,i=t.a,o=i===void 0?1:i;if(!D(e)||!D(n)||!D(r))return null;var s=Lt({h:Number(e),s:Number(n),l:Number(r),a:Number(o)});return Et(s)},"hsl"],[function(t){var e=t.h,n=t.s,r=t.v,i=t.a,o=i===void 0?1:i;if(!D(e)||!D(n)||!D(r))return null;var s=(function(l){return{h:Pt(l.h),s:w(l.s,0,100),v:w(l.v,0,100),a:w(l.a)}})({h:Number(e),s:Number(n),v:Number(r),a:Number(o)});return Ot(s)},"hsv"]]},At=function(t,e){for(var n=0;n<e.length;n++){var r=e[n][0](t);if(r)return[r,e[n][1]]}return[null,void 0]},Ne=function(t){return typeof t=="string"?At(t.trim(),Dt.string):typeof t=="object"&&t!==null?At(t,Dt.object):[null,void 0]},rt=function(t,e){var n=V(t);return{h:n.h,s:w(n.s+100*e,0,100),l:n.l,a:n.a}},it=function(t){return(299*t.r+587*t.g+114*t.b)/1e3/255},Nt=function(t,e){var n=V(t);return{h:n.h,s:n.s,l:w(n.l+100*e,0,100),a:n.a}},jt=(function(){function t(e){this.parsed=Ne(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return t.prototype.isValid=function(){return this.parsed!==null},t.prototype.brightness=function(){return m(it(this.rgba),2)},t.prototype.isDark=function(){return it(this.rgba)<.5},t.prototype.isLight=function(){return it(this.rgba)>=.5},t.prototype.toHex=function(){return e=nt(this.rgba),n=e.r,r=e.g,i=e.b,s=(o=e.a)<1?q(m(255*o)):"","#"+q(n)+q(r)+q(i)+s;var e,n,r,i,o,s},t.prototype.toRgb=function(){return nt(this.rgba)},t.prototype.toRgbString=function(){return e=nt(this.rgba),n=e.r,r=e.g,i=e.b,(o=e.a)<1?"rgba("+n+", "+r+", "+i+", "+o+")":"rgb("+n+", "+r+", "+i+")";var e,n,r,i,o},t.prototype.toHsl=function(){return zt(V(this.rgba))},t.prototype.toHslString=function(){return e=zt(V(this.rgba)),n=e.h,r=e.s,i=e.l,(o=e.a)<1?"hsla("+n+", "+r+"%, "+i+"%, "+o+")":"hsl("+n+", "+r+"%, "+i+"%)";var e,n,r,i,o},t.prototype.toHsv=function(){return e=Ft(this.rgba),{h:m(e.h),s:m(e.s),v:m(e.v),a:m(e.a,3)};var e},t.prototype.invert=function(){return E({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),E(rt(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),E(rt(this.rgba,-e))},t.prototype.grayscale=function(){return E(rt(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),E(Nt(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),E(Nt(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"?E({r:(n=this.rgba).r,g:n.g,b:n.b,a:e}):m(this.rgba.a,3);var n},t.prototype.hue=function(e){var n=V(this.rgba);return typeof e=="number"?E({h:e,s:n.s,l:n.l,a:n.a}):m(n.h)},t.prototype.isEqual=function(e){return this.toHex()===E(e).toHex()},t})(),E=function(t){return t instanceof jt?t:new jt(t)};class je{eventListeners=new Map;addEventListener(e,n,r){const i={value:n,options:r},o=this.eventListeners.get(e);return o?Array.isArray(o)?o.push(i):this.eventListeners.set(e,[o,i]):this.eventListeners.set(e,i),this}removeEventListener(e,n,r){if(!n)return this.eventListeners.delete(e),this;const i=this.eventListeners.get(e);if(!i)return this;if(Array.isArray(i)){const o=[];for(let s=0,l=i.length;s<l;s++){const f=i[s];(f.value!==n||typeof r=="object"&&r?.once&&(typeof f.options=="boolean"||!f.options?.once))&&o.push(f)}o.length?this.eventListeners.set(e,o.length===1?o[0]:o):this.eventListeners.delete(e)}else i.value===n&&(typeof r=="boolean"||!r?.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,...n){const r=this.eventListeners.get(e);if(r){if(Array.isArray(r))for(let i=r.length,o=0;o<i;o++){const s=r[o];typeof s.options=="object"&&s.options?.once&&this.off(e,s.value,s.options),s.value.apply(this,n)}else typeof r.options=="object"&&r.options?.once&&this.off(e,r.value,r.options),r.value.apply(this,n);return!0}else return!1}on(e,n,r){return this.addEventListener(e,n,r)}once(e,n){return this.addEventListener(e,n,{once:!0})}off(e,n,r){return this.removeEventListener(e,n,r)}emit(e,...n){this.dispatchEvent(e,...n)}}function h(t){return t==null||t===""||t==="none"}function N(t,e=0,n=10**e){return Math.round(n*t)/n+0}function F(t,e=!1){if(typeof t!="object"||!t)return t;if(Array.isArray(t))return e?t.map(r=>F(r,e)):t;const n={};for(const r in t){const i=t[r];i!=null&&(e?n[r]=F(i,e):n[r]=i)}return n}function A(t,e){const n={};return e.forEach(r=>{r in t&&(n[r]=t[r])}),n}function x(t,e){if(t===e)return!0;if(t&&e&&typeof t=="object"&&typeof e=="object"){const n=Array.from(new Set([...Object.keys(t),...Object.keys(e)]));return!n.length||n.every(r=>t[r]===e[r])}return!1}function Rt(t,e,n){const r=e.length-1;if(r<0)return t===void 0?n:t;for(let i=0;i<r;i++){if(t==null)return n;t=t[e[i]]}return t==null||t[e[r]]===void 0?n:t[e[r]]}function Gt(t,e,n){const r=e.length-1;for(let i=0;i<r;i++)typeof t[e[i]]!="object"&&(t[e[i]]={}),t=t[e[i]];t[e[r]]=n}function kt(t,e,n){return t==null||!e||typeof e!="string"?n:t[e]!==void 0?t[e]:(e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),Rt(t,e.split("."),n))}function It(t,e,n){if(!(typeof t!="object"||!e))return e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),Gt(t,e.split("."),n)}class Tt{_eventListeners={};on(e,n){let r=this._eventListeners[e];r===void 0&&(r=[],this._eventListeners[e]=r);const i=r.indexOf(n);return i>-1&&r.splice(i,1),r.push(n),this}once(e,n){const r=(...i)=>{this.off(e,r),n.apply(this,i)};return this.on(e,r),this}off(e,n){const r=this._eventListeners[e];if(r!==void 0){const i=r.indexOf(n);i>-1&&r.splice(i,1)}return this}emit(e,...n){const r=this._eventListeners[e];if(r!==void 0){const i=r.length;if(i>0)for(let o=0;o<i;o++)r[o].apply(this,n)}return this}removeAllListeners(){return this._eventListeners={},this}hasEventListener(e){return!!this._eventListeners[e]}destroy(){this.removeAllListeners()}}class Re{_map=new WeakMap;_toRaw(e){if(e&&typeof e=="object"){const n=e.__v_raw;n&&(e=this._toRaw(n))}return e}delete(e){return this._map.delete(this._toRaw(e))}get(e){return this._map.get(this._toRaw(e))}has(e){return this._map.has(this._toRaw(e))}set(e,n){return this._map.set(this._toRaw(e),this._toRaw(n)),this}}const ot=Symbol.for("declarations"),J=Symbol.for("inited");function M(t){let e;if(Object.hasOwn(t,ot))e=t[ot];else{const n=Object.getPrototypeOf(t);e={...n?M(n):{}},t[ot]=e}return e}function at(t,e,n,r){const{alias:i,internalKey:o}=r,s=t[e];i?It(t,i,n):t[o]=n,t.onUpdateProperty?.(e,n??$(t,e,r),s)}function st(t,e,n){const{alias:r,internalKey:i}=n;let o;return r?o=kt(t,r):o=t[i],o=o??$(t,e,n),o}function $(t,e,n){const{default:r,fallback:i}=n;let o;if(r!==void 0&&!t[J]?.[e]){t[J]||(t[J]={}),t[J][e]=!0;const s=typeof r=="function"?r():r;s!==void 0&&(t[e]=s,o=s)}return o===void 0&&i!==void 0&&(o=typeof i=="function"?i():i),o}function lt(t,e){function n(){return this.getProperty?this.getProperty(t):st(this,t,e)}function r(i){this.setProperty?this.setProperty(t,i):at(this,t,i,e)}return{get:n,set:r}}function Vt(t,e,n={}){const r={...n,internalKey:Symbol.for(e)},i=M(t);i[e]=r;const{get:o,set:s}=lt(e,r);Object.defineProperty(t.prototype,e,{get(){return o.call(this)},set(l){s.call(this,l)},configurable:!0,enumerable:!0})}function Ge(t){return function(e,n){if(typeof n!="string")throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");Vt(e.constructor,n,t)}}function ke(t={}){return function(e,n){const r=n.name;if(typeof r!="string")throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");const i={...t,internalKey:Symbol.for(r)},o=lt(r,i);return{init(s){const l=M(this.constructor);return l[r]=i,o.set.call(this,s),s},get(){return o.get.call(this)},set(s){o.set.call(this,s)}}}}class Ie extends Tt{_propertyAccessor;_properties={};_updatedProperties={};_changedProperties=new Set;_updatingPromise=Promise.resolve();_updating=!1;constructor(e){super(),this.setProperties(e)}isDirty(e){return e?!!this._updatedProperties[e]:Object.keys(this._updatedProperties).length>0}offsetGetProperty(e){return this._properties[e]}offsetSetProperty(e,n){this._properties[e]=n}offsetGetProperties(e){const n=this._properties,r=Object.keys(n),i={};for(let o,s,l=0;l<r.length;l++)o=r[l],s=n[o],s!==void 0&&(!e||e.includes(o))&&(s&&typeof s=="object"?"toJSON"in s?i[o]=s.toJSON():Array.isArray(s)?i[o]=[...s]:i[o]={...s}:i[o]=s);return i}offsetSetProperties(e){if(e&&typeof e=="object"){const n=Object.keys(e);for(let r,i=0;i<n.length;i++)r=n[i],this.offsetSetProperty(r,e[r])}return this}getProperty(e){const n=this.getPropertyDeclaration(e);if(n){if(n.internal||n.alias)return st(this,e,n);{const r=this._propertyAccessor;let i;return r&&r.getProperty?i=r.getProperty(e):i=this.offsetGetProperty(e),i??$(this,e,n)}}}setProperty(e,n){const r=this.getPropertyDeclaration(e);if(r)if(r.internal||r.alias)at(this,e,n,r);else{const i=this.getProperty(e);this._propertyAccessor?.setProperty?.(e,n),this.offsetSetProperty(e,n),this.onUpdateProperty?.(e,n??$(this,e,r),i)}}getProperties(e){const n={},r=this.getPropertyDeclarations(),i=Object.keys(r);for(let o=0,s=i.length;o<s;o++){const l=i[o],f=r[l];f.internal||f.alias||(!e||e.includes(l))&&(n[l]=this.getProperty(l))}return n}setProperties(e){if(e&&typeof e=="object")for(const n in e)this.setProperty(n,e[n]);return this}resetProperties(){const e=this.getPropertyDeclarations(),n=Object.keys(e);for(let r=0,i=n.length;r<i;r++){const o=n[r],s=e[o];this.setProperty(o,typeof s.default=="function"?s.default():s.default)}return this}getPropertyDeclarations(){return M(this.constructor)}getPropertyDeclaration(e){return this.getPropertyDeclarations()[e]}setPropertyAccessor(e){const n=this.getPropertyDeclarations(),r=[];if(e&&e.getProperty&&e.setProperty){const i=Object.keys(n);for(let o=0,s=i.length;o<s;o++){const l=i[o],f=n[l];if(f.internal||f.alias)continue;const g=this.offsetGetProperty(l),p=e.getProperty(l);(g!==void 0||p!==void 0)&&!Object.is(g,p)&&(e.setProperty(l,p),r.push({key:l,newValue:p,oldValue:g}))}}this._propertyAccessor=e;for(let i=0,o=r.length;i<o;i++){const{key:s,newValue:l,oldValue:f}=r[i];this.requestUpdate(s,l,f)}return 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={}}onUpdateProperty(e,n,r){Object.is(n,r)||this.requestUpdate(e,n,r)}requestUpdate(e,n,r){e!==void 0&&(this._updatedProperties[e]=r,this._changedProperties.add(e),this._updateProperty(e,n,r),this.emit("updateProperty",e,n,r)),this._updating||(this._updatingPromise=this._enqueueUpdate())}_update(e){}_updateProperty(e,n,r){}toJSON(){return this.offsetGetProperties()}clone(){return new this.constructor(this.toJSON())}destroy(){this.emit("destroy"),super.destroy()}}function ut(t){let e;return typeof t=="number"?e={r:t>>24&255,g:t>>16&255,b:t>>8&255,a:(t&255)/255}:e=t,E(e)}function Te(t){return{r:N(t.r),g:N(t.g),b:N(t.b),a:N(t.a,3)}}function X(t){const e=t.toString(16);return e.length<2?`0${e}`:e}const W="#000000FF";function ct(t){return ut(t).isValid()}function b(t,e=!1){const n=ut(t);if(!n.isValid()){if(typeof t=="string")return t;const l=`Failed to normalizeColor ${t}`;if(e)throw new Error(l);return console.warn(l),W}const{r,g:i,b:o,a:s}=Te(n.rgba);return`#${X(r)}${X(i)}${X(o)}${X(N(s*255))}`}var Y=Y||{};Y.parse=(function(){const t={linearGradient:/^(-(webkit|o|ms|moz)-)?(linear-gradient)/i,repeatingLinearGradient:/^(-(webkit|o|ms|moz)-)?(repeating-linear-gradient)/i,radialGradient:/^(-(webkit|o|ms|moz)-)?(radial-gradient)/i,repeatingRadialGradient:/^(-(webkit|o|ms|moz)-)?(repeating-radial-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?((\d*\.\d+)|(\d+\.?)))px/,percentageValue:/^(-?((\d*\.\d+)|(\d+\.?)))%/,emValue:/^(-?((\d*\.\d+)|(\d+\.?)))em/,angleValue:/^(-?((\d*\.\d+)|(\d+\.?)))deg/,radianValue:/^(-?((\d*\.\d+)|(\d+\.?)))rad/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^#([0-9a-f]+)/i,literalColor:/^([a-z]+)/i,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,varColor:/^var/i,calcValue:/^calc/i,variableName:/^(--[a-z0-9-,\s#]+)/i,number:/^((\d*\.\d+)|(\d+\.?))/,hslColor:/^hsl/i,hslaColor:/^hsla/i};let e="";function n(u){const c=new Error(`${e}: ${u}`);throw c.source=e,c}function r(){const u=i();return e.length>0&&n("Invalid input not EOF"),u}function i(){return T(o)}function o(){return s("linear-gradient",t.linearGradient,f)||s("repeating-linear-gradient",t.repeatingLinearGradient,f)||s("radial-gradient",t.radialGradient,v)||s("repeating-radial-gradient",t.repeatingRadialGradient,v)}function s(u,c,d){return l(c,S=>{const G=d();return G&&(y(t.comma)||n("Missing comma before color stops")),{type:u,orientation:G,colorStops:T(Ct)}})}function l(u,c){const d=y(u);if(d){y(t.startCall)||n("Missing (");const S=c(d);return y(t.endCall)||n("Missing )"),S}}function f(){const u=g();if(u)return u;const c=P("position-keyword",t.positionKeywords,1);return c?{type:"directional",value:c.value}:p()}function g(){return P("directional",t.sideOrCorner,1)}function p(){return P("angular",t.angleValue,1)||P("angular",t.radianValue,1)}function v(){let u,c=C(),d;return c&&(u=[],u.push(c),d=e,y(t.comma)&&(c=C(),c?u.push(c):e=d)),u}function C(){let u=_()||j();if(u)u.at=z();else{const c=O();if(c){u=c;const d=z();d&&(u.at=d)}else{const d=z();if(d)u={type:"default-radial",at:d};else{const S=R();S&&(u={type:"default-radial",at:S})}}}return u}function _(){const u=P("shape",/^(circle)/i,0);return u&&(u.style=Fe()||O()),u}function j(){const u=P("shape",/^(ellipse)/i,0);return u&&(u.style=R()||et()||O()),u}function O(){return P("extent-keyword",t.extentKeywords,1)}function z(){if(P("position",/^at/,0)){const u=R();return u||n("Missing positioning value"),u}}function R(){const u=K();if(u.x||u.y)return{type:"position",value:u}}function K(){return{x:et(),y:et()}}function T(u){let c=u();const d=[];if(c)for(d.push(c);y(t.comma);)c=u(),c?d.push(c):n("One extra comma");return d}function Ct(){const u=Ye();return u||n("Expected color definition"),u.length=et(),u}function Ye(){return Qe()||on()||rn()||en()||tn()||nn()||Ze()}function Ze(){return P("literal",t.literalColor,0)}function Qe(){return P("hex",t.hexColor,1)}function tn(){return l(t.rgbColor,()=>({type:"rgb",value:T(U)}))}function en(){return l(t.rgbaColor,()=>({type:"rgba",value:T(U)}))}function nn(){return l(t.varColor,()=>({type:"var",value:an()}))}function rn(){return l(t.hslColor,()=>{y(t.percentageValue)&&n("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const c=U();y(t.comma);let d=y(t.percentageValue);const S=d?d[1]:null;y(t.comma),d=y(t.percentageValue);const G=d?d[1]:null;return(!S||!G)&&n("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[c,S,G]}})}function on(){return l(t.hslaColor,()=>{const u=U();y(t.comma);let c=y(t.percentageValue);const d=c?c[1]:null;y(t.comma),c=y(t.percentageValue);const S=c?c[1]:null;y(t.comma);const G=U();return(!d||!S)&&n("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[u,d,S,G]}})}function an(){return y(t.variableName)[1]}function U(){return y(t.number)[1]}function et(){return P("%",t.percentageValue,1)||sn()||ln()||Fe()}function sn(){return P("position-keyword",t.positionKeywords,1)}function ln(){return l(t.calcValue,()=>{let u=1,c=0;for(;u>0&&c<e.length;){const S=e.charAt(c);S==="("?u++:S===")"&&u--,c++}u>0&&n("Missing closing parenthesis in calc() expression");const d=e.substring(0,c-1);return _t(c-1),{type:"calc",value:d}})}function Fe(){return P("px",t.pixelValue,1)||P("em",t.emValue,1)}function P(u,c,d){const S=y(c);if(S)return{type:u,value:S[d]}}function y(u){let c,d;return d=/^\s+/.exec(e),d&&_t(d[0].length),c=u.exec(e),c&&_t(c[0].length),c}function _t(u){e=e.substr(u)}return function(u){return e=u.toString().trim(),e.endsWith(";")&&(e=e.slice(0,-1)),r()}})();const Mt=Y.parse.bind(Y);var Z=Z||{};Z.stringify=(function(){var t={"visit_linear-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-linear-gradient":function(e){return t.visit_gradient(e)},"visit_radial-gradient":function(e){return t.visit_gradient(e)},"visit_repeating-radial-gradient":function(e){return t.visit_gradient(e)},visit_gradient:function(e){var n=t.visit(e.orientation);return n&&(n+=", "),e.type+"("+n+t.visit(e.colorStops)+")"},visit_shape:function(e){var n=e.value,r=t.visit(e.at),i=t.visit(e.style);return i&&(n+=" "+i),r&&(n+=" at "+r),n},"visit_default-radial":function(e){var n="",r=t.visit(e.at);return r&&(n+=r),n},"visit_extent-keyword":function(e){var n=e.value,r=t.visit(e.at);return r&&(n+=" at "+r),n},"visit_position-keyword":function(e){return e.value},visit_position:function(e){return t.visit(e.value.x)+" "+t.visit(e.value.y)},"visit_%":function(e){return e.value+"%"},visit_em:function(e){return e.value+"em"},visit_px:function(e){return e.value+"px"},visit_calc:function(e){return"calc("+e.value+")"},visit_literal:function(e){return t.visit_color(e.value,e)},visit_hex:function(e){return t.visit_color("#"+e.value,e)},visit_rgb:function(e){return t.visit_color("rgb("+e.value.join(", ")+")",e)},visit_rgba:function(e){return t.visit_color("rgba("+e.value.join(", ")+")",e)},visit_hsl:function(e){return t.visit_color("hsl("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%)",e)},visit_hsla:function(e){return t.visit_color("hsla("+e.value[0]+", "+e.value[1]+"%, "+e.value[2]+"%, "+e.value[3]+")",e)},visit_var:function(e){return t.visit_color("var("+e.value+")",e)},visit_color:function(e,n){var r=e,i=t.visit(n.length);return i&&(r+=" "+i),r},visit_angular:function(e){return e.value+"deg"},visit_directional:function(e){return"to "+e.value},visit_array:function(e){var n="",r=e.length;return e.forEach(function(i,o){n+=t.visit(i),o<r-1&&(n+=", ")}),n},visit_object:function(e){return e.width&&e.height?t.visit(e.width)+" "+t.visit(e.height):""},visit:function(e){if(!e)return"";if(e instanceof Array)return t.visit_array(e);if(typeof e=="object"&&!e.type)return t.visit_object(e);if(e.type){var n=t["visit_"+e.type];if(n)return n(e);throw Error("Missing visitor visit_"+e.type)}else throw Error("Invalid node.")}};return function(e){return t.visit(e)}})();const Ve=Z.stringify.bind(Z);function $t(t){const e=t.length-1;return t.map((n,r)=>{const i=n.value;let o=N(r/e,3),s="#00000000";switch(n.type){case"rgb":s=b({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0)});break;case"rgba":s=b({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0),a:Number(i[3]??0)});break;case"literal":s=b(n.value);break;case"hex":s=b(`#${n.value}`);break}return n.length?.type==="%"&&(o=Number(n.length.value)/100),{offset:o,color:s}})}function Wt(t){let e=0;return t.orientation?.type==="angular"&&(e=Number(t.orientation.value)),{type:"linear-gradient",angle:e,stops:$t(t.colorStops)}}function Ht(t){return t.orientation?.map(e=>{switch(e?.type){default:return null}}),{type:"radial-gradient",stops:$t(t.colorStops)}}function H(t){return t.startsWith("linear-gradient(")||t.startsWith("radial-gradient(")}function Bt(t){return Mt(t).map(e=>{switch(e?.type){case"linear-gradient":return Wt(e);case"repeating-linear-gradient":return{...Wt(e),repeat:!0};case"radial-gradient":return Ht(e);case"repeating-radial-gradient":return{...Ht(e),repeat:!0};default:return}}).filter(Boolean)}const ft=["color"];function Kt(t){let e;return typeof t=="string"?e={color:t}:e={...t},e.color&&(e.color=b(e.color)),A(e,ft)}const dt=["linearGradient","radialGradient","rotateWithShape"];function Ut(t){let e;if(typeof t=="string"?e={image:t}:e={...t},e.image){const{type:n,...r}=Bt(e.image)[0]??{};switch(n){case"radial-gradient":return{radialGradient:r};case"linear-gradient":return{linearGradient:r}}}return A(e,dt)}const ht=["image","cropRect","stretchRect","tile","dpi","opacity","rotateWithShape"];function qt(t){let e;return typeof t=="string"?e={image:t}:e={...t},A(e,ht)}const gt=["preset","foregroundColor","backgroundColor"];function xt(t){let e;return typeof t=="string"?e={preset:t}:e={...t},h(e.foregroundColor)?delete e.foregroundColor:e.foregroundColor=b(e.foregroundColor),h(e.backgroundColor)?delete e.backgroundColor:e.backgroundColor=b(e.backgroundColor),A(e,gt)}function Jt(t){return!h(t.color)}function Xt(t){return typeof t=="string"?ct(t):Jt(t)}function Yt(t){return!h(t.image)&&H(t.image)||!!t.linearGradient||!!t.radialGradient}function Zt(t){return typeof t=="string"?H(t):Yt(t)}function Qt(t){return!h(t.image)&&!H(t.image)}function te(t){return typeof t=="string"?!ct(t)&&!H(t):Qt(t)}function ee(t){return!h(t.preset)}function ne(t){return typeof t=="string"?!1:ee(t)}function L(t){const n={enabled:t&&typeof t=="object"?t.enabled:void 0};return Xt(t)&&Object.assign(n,Kt(t)),Zt(t)&&Object.assign(n,Ut(t)),te(t)&&Object.assign(n,qt(t)),ne(t)&&Object.assign(n,xt(t)),A(F(n),Array.from(new Set([...ft,...ht,...dt,...gt])))}function re(t){return typeof t=="string"?{...L(t)}:{...L(t),...A(t,["fillWithShape"])}}function pt(){return{color:W,offsetX:0,offsetY:0,blurRadius:1}}function vt(t){return{...pt(),...F({...t,color:h(t.color)?W:b(t.color)})}}function ie(){return{...pt(),scaleX:1,scaleY:1}}function oe(t){return{...ie(),...vt(t)}}function Me(t){return t}function ae(t){return F({...t,softEdge:h(t.softEdge)?void 0:t.softEdge,outerShadow:h(t.outerShadow)?void 0:oe(t.outerShadow),innerShadow:h(t.innerShadow)?void 0:vt(t.innerShadow)})}function se(t){return typeof t=="string"?{...L(t)}:{...L(t),...A(t,["fillWithShape"])}}const $e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let We=(t=21)=>{let e="",n=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=$e[n[t]&63];return e};const le=()=>We(10),ue=le;function B(t){return typeof t=="string"?{...L(t)}:{...L(t),...A(t,["width","style","lineCap","lineJoin","headEnd","tailEnd"])}}function ce(t){return typeof t=="string"?{color:b(t)}:{...t,color:h(t.color)?W:b(t.color)}}function fe(){return{boxShadow:"none"}}function de(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 he(){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 ge(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function pe(){return{...he(),...ge(),...fe(),backgroundImage:"none",backgroundSize:"auto, auto",backgroundColor:"none",backgroundColormap:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"none",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto",maskImage:"none"}}function ve(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function ye(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function me(){return{...ve(),color:"#000000",verticalAlign:"baseline",letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textTransform:"none",textOrientation:"mixed",textDecoration:"none"}}function be(){return{...ye(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function Se(){return{...be(),...me(),textStrokeWidth:0,textStrokeColor:"none"}}function I(t){return F({...t,color:h(t.color)?void 0:b(t.color),backgroundColor:h(t.backgroundColor)?void 0:b(t.backgroundColor),borderColor:h(t.borderColor)?void 0:b(t.borderColor),outlineColor:h(t.outlineColor)?void 0:b(t.outlineColor),shadowColor:h(t.shadowColor)?void 0:b(t.shadowColor),textStrokeColor:h(t.textStrokeColor)?void 0:b(t.textStrokeColor)})}function He(){return{...pe(),...Se()}}const yt=/\r\n|\n\r|\n|\r/,Be=new RegExp(`${yt.source}|<br\\/>`,"g"),Ke=new RegExp(`^(${yt.source})$`),mt=`
2
+ `;function Ue(t){return yt.test(t)}function bt(t){return Ke.test(t)}function Ce(t){return t.replace(Be,mt)}function Q(t){const e=[];function n(){return e[e.length-1]}function r(l,f,g){const p=l?I(l):{},v=f?L(f):void 0,C=g?B(g):void 0,_=F({...p,fill:v,outline:C,fragments:[]});return e[e.length-1]?.fragments.length===0?e[e.length-1]=_:e.push(_),_}function i(l="",f,g,p){const v=f?I(f):{},C=g?L(g):void 0,_=p?B(p):void 0;Array.from(l).forEach(j=>{if(bt(j)){const{fragments:O,fill:z,outline:R,...K}=n()||r();O.length||O.push(F({...v,fill:C,outline:_,content:mt})),r(K,z,R)}else{const O=n()||r(),z=O.fragments[O.fragments.length-1];if(z){const{content:R,fill:K,outline:T,...Ct}=z;if(x(C,K)&&x(_,T)&&x(v,Ct)){z.content=`${R}${j}`;return}}O.fragments.push(F({...v,fill:C,outline:_,content:j}))}})}(Array.isArray(t)?t:[t]).forEach(l=>{if(typeof l=="string")r(),i(l);else if(St(l)){const{content:f,fill:g,outline:p,...v}=l;r(v,g,p),i(f)}else if(_e(l)){const{fragments:f,fill:g,outline:p,...v}=l;r(v,g,p),f.forEach(C=>{const{content:_,fill:j,outline:O,...z}=C;i(_,z,j,O)})}else Array.isArray(l)?(r(),l.forEach(f=>{if(typeof f=="string")i(f);else if(St(f)){const{content:g,fill:p,outline:v,...C}=f;i(g,C,p,v)}})):console.warn("Failed to parse text content",l)});const s=n();return s&&!s.fragments.length&&s.fragments.push({content:""}),e}function _e(t){return t&&typeof t=="object"&&"fragments"in t&&Array.isArray(t.fragments)}function St(t){return t&&typeof t=="object"&&"content"in t&&typeof t.content=="string"}function Pe(t){return typeof t=="string"||Array.isArray(t)?{content:Q(t)}:F({...t,content:Q(t.content??""),style:t.style?I(t.style):void 0,effects:t.effects?t.effects.map(e=>I(e)):void 0,measureDom:t.measureDom,fonts:t.fonts,fill:t.fill?L(t.fill):void 0,outline:t.outline?B(t.outline):void 0})}function qe(t){return Q(t).map(e=>{const n=Ce(e.fragments.flatMap(r=>r.content).join(""));return bt(n)?"":n}).join(mt)}function we(t){return typeof t=="string"?{src:t}:t}function tt(t){return F({...t,id:t.id??ue(),style:h(t.style)?void 0:I(t.style),text:h(t.text)?void 0:Pe(t.text),background:h(t.background)?void 0:re(t.background),shape:h(t.shape)?void 0:de(t.shape),fill:h(t.fill)?void 0:L(t.fill),outline:h(t.outline)?void 0:B(t.outline),foreground:h(t.foreground)?void 0:se(t.foreground),shadow:h(t.shadow)?void 0:ce(t.shadow),video:h(t.video)?void 0:we(t.video),audio:h(t.audio)?void 0:k(t.audio),effect:h(t.effect)?void 0:ae(t.effect),children:t.children?.map(e=>tt(e))})}function xe(t){return tt(t)}function Je(t){const e={};for(const n in t.children){const r=tt(t.children[n]);delete r.children,e[n]=r}return{...t,children:e}}function Xe(t){const{children:e,...n}=t;function r(f){const{parentId:g,childrenIds:p,...v}=f;return{...v,children:[]}}const i={},o=[],s={...n,children:o};function l(f){if(!e[f]||i[f])return;const g=e[f],p=r(g);i[f]=p;const v=g.parentId;if(v){l(v);const C=e[v],_=i[v];if(!_)return;C?.childrenIds&&_?.children&&(_.children[C.childrenIds.indexOf(f)]=p)}else o.push(p)}for(const f in e)l(f);return s}a.EventEmitter=je,a.Observable=Tt,a.RawWeakMap=Re,a.Reactivable=Ie,a.clearUndef=F,a.colorFillFields=ft,a.defaultColor=W,a.defineProperty=Vt,a.flatDocumentToDocument=Xe,a.getDeclarations=M,a.getDefaultElementStyle=pe,a.getDefaultHighlightStyle=ve,a.getDefaultInnerShadow=pt,a.getDefaultLayoutStyle=he,a.getDefaultListStyleStyle=ye,a.getDefaultOuterShadow=ie,a.getDefaultShadowStyle=fe,a.getDefaultStyle=He,a.getDefaultTextInlineStyle=me,a.getDefaultTextLineStyle=be,a.getDefaultTextStyle=Se,a.getDefaultTransformStyle=ge,a.getNestedValue=Rt,a.getObjectValueByPath=kt,a.getPropertyDescriptor=lt,a.gradientFillFields=dt,a.hasCRLF=Ue,a.idGenerator=ue,a.imageFillFiedls=ht,a.isCRLF=bt,a.isColor=ct,a.isColorFill=Xt,a.isColorFillObject=Jt,a.isEqualObject=x,a.isFragmentObject=St,a.isGradient=H,a.isGradientFill=Zt,a.isGradientFillObject=Yt,a.isImageFill=te,a.isImageFillObject=Qt,a.isNone=h,a.isParagraphObject=_e,a.isPresetFill=ne,a.isPresetFillObject=ee,a.nanoid=le,a.normalizeAudio=k,a.normalizeBackground=re,a.normalizeCRLF=Ce,a.normalizeColor=b,a.normalizeColorFill=Kt,a.normalizeDocument=xe,a.normalizeEffect=ae,a.normalizeElement=tt,a.normalizeFill=L,a.normalizeFlatDocument=Je,a.normalizeForeground=se,a.normalizeGradient=Bt,a.normalizeGradientFill=Ut,a.normalizeImageFill=qt,a.normalizeInnerShadow=vt,a.normalizeOuterShadow=oe,a.normalizeOutline=B,a.normalizePresetFill=xt,a.normalizeShadow=ce,a.normalizeShape=de,a.normalizeSoftEdge=Me,a.normalizeStyle=I,a.normalizeText=Pe,a.normalizeTextContent=Q,a.normalizeVideo=we,a.parseColor=ut,a.parseGradient=Mt,a.pick=A,a.presetFillFiedls=gt,a.property=Ge,a.property2=ke,a.propertyOffsetFallback=$,a.propertyOffsetGet=st,a.propertyOffsetSet=at,a.round=N,a.setNestedValue=Gt,a.setObjectValueByPath=It,a.stringifyGradient=Ve,a.textContentToString=qe,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})}));
package/dist/index.mjs CHANGED
@@ -424,6 +424,45 @@ class Reactivable extends Observable {
424
424
  isDirty(key) {
425
425
  return key ? Boolean(this._updatedProperties[key]) : Object.keys(this._updatedProperties).length > 0;
426
426
  }
427
+ offsetGetProperty(key) {
428
+ return this._properties[key];
429
+ }
430
+ offsetSetProperty(key, value) {
431
+ this._properties[key] = value;
432
+ }
433
+ offsetGetProperties(keys) {
434
+ const properties = this._properties;
435
+ const allKeys = Object.keys(properties);
436
+ const result = {};
437
+ for (let key, value, i = 0; i < allKeys.length; i++) {
438
+ key = allKeys[i];
439
+ value = properties[key];
440
+ if (value !== void 0 && (!keys || keys.includes(key))) {
441
+ if (value && typeof value === "object") {
442
+ if ("toJSON" in value) {
443
+ result[key] = value.toJSON();
444
+ } else if (Array.isArray(value)) {
445
+ result[key] = [...value];
446
+ } else {
447
+ result[key] = { ...value };
448
+ }
449
+ } else {
450
+ result[key] = value;
451
+ }
452
+ }
453
+ }
454
+ return result;
455
+ }
456
+ offsetSetProperties(properties) {
457
+ if (properties && typeof properties === "object") {
458
+ const allKeys = Object.keys(properties);
459
+ for (let key, i = 0; i < allKeys.length; i++) {
460
+ key = allKeys[i];
461
+ this.offsetSetProperty(key, properties[key]);
462
+ }
463
+ }
464
+ return this;
465
+ }
427
466
  getProperty(key) {
428
467
  const declaration = this.getPropertyDeclaration(key);
429
468
  if (declaration) {
@@ -435,7 +474,7 @@ class Reactivable extends Observable {
435
474
  if (accessor && accessor.getProperty) {
436
475
  result = accessor.getProperty(key);
437
476
  } else {
438
- result = this._properties[key];
477
+ result = this.offsetGetProperty(key);
439
478
  }
440
479
  return result ?? propertyOffsetFallback(this, key, declaration);
441
480
  }
@@ -450,7 +489,7 @@ class Reactivable extends Observable {
450
489
  } else {
451
490
  const oldValue = this.getProperty(key);
452
491
  this._propertyAccessor?.setProperty?.(key, newValue);
453
- this._properties[key] = newValue;
492
+ this.offsetSetProperty(key, newValue);
454
493
  this.onUpdateProperty?.(
455
494
  key,
456
495
  newValue ?? propertyOffsetFallback(this, key, declaration),
@@ -466,7 +505,10 @@ class Reactivable extends Observable {
466
505
  for (let i = 0, len = declarationKeys.length; i < len; i++) {
467
506
  const key = declarationKeys[i];
468
507
  const declaration = declarations[key];
469
- if (!declaration.internal && !declaration.alias && (!keys || keys.includes(key))) {
508
+ if (declaration.internal || declaration.alias) {
509
+ continue;
510
+ }
511
+ if (!keys || keys.includes(key)) {
470
512
  properties[key] = this.getProperty(key);
471
513
  }
472
514
  }
@@ -501,26 +543,28 @@ class Reactivable extends Observable {
501
543
  }
502
544
  setPropertyAccessor(accessor) {
503
545
  const declarations = this.getPropertyDeclarations();
504
- this._propertyAccessor = void 0;
505
- const oldValues = {};
506
- const declarationKeys = Object.keys(declarations);
507
- for (let i = 0, len = declarationKeys.length; i < len; i++) {
508
- const key = declarationKeys[i];
509
- oldValues[key] = this.getProperty(key);
510
- }
511
- this._propertyAccessor = accessor;
512
- for (let i = 0, len = declarationKeys.length; i < len; i++) {
513
- const key = declarationKeys[i];
514
- const declaration = declarations[key];
515
- const newValue = this.getProperty(key);
516
- const oldValue = oldValues[key];
517
- if (newValue !== void 0 && !Object.is(newValue, oldValue)) {
518
- this.setProperty(key, newValue);
519
- if (!declaration.internal && !declaration.alias) {
520
- this.requestUpdate(key, newValue, oldValue);
546
+ const items = [];
547
+ if (accessor && accessor.getProperty && accessor.setProperty) {
548
+ const declarationKeys = Object.keys(declarations);
549
+ for (let i = 0, len = declarationKeys.length; i < len; i++) {
550
+ const key = declarationKeys[i];
551
+ const declaration = declarations[key];
552
+ if (declaration.internal || declaration.alias) {
553
+ continue;
554
+ }
555
+ const oldValue = this.offsetGetProperty(key);
556
+ const newValue = accessor.getProperty(key);
557
+ if ((oldValue !== void 0 || newValue !== void 0) && !Object.is(oldValue, newValue)) {
558
+ accessor.setProperty(key, newValue);
559
+ items.push({ key, newValue, oldValue });
521
560
  }
522
561
  }
523
562
  }
563
+ this._propertyAccessor = accessor;
564
+ for (let i = 0, len = items.length; i < len; i++) {
565
+ const { key, newValue, oldValue } = items[i];
566
+ this.requestUpdate(key, newValue, oldValue);
567
+ }
524
568
  return this;
525
569
  }
526
570
  async _nextTick() {
@@ -569,28 +613,7 @@ class Reactivable extends Observable {
569
613
  _updateProperty(key, newValue, oldValue) {
570
614
  }
571
615
  toJSON() {
572
- const json = {};
573
- const properties = this._properties;
574
- const keys = Object.keys(properties);
575
- for (let i = 0, len = keys.length; i < len; i++) {
576
- const key = keys[i];
577
- const value = properties[key];
578
- if (value === void 0) {
579
- continue;
580
- }
581
- if (value && typeof value === "object") {
582
- if ("toJSON" in value && typeof value.toJSON === "function") {
583
- json[key] = value.toJSON();
584
- } else if (Array.isArray(value)) {
585
- json[key] = [...value];
586
- } else {
587
- json[key] = { ...value };
588
- }
589
- } else {
590
- json[key] = value;
591
- }
592
- }
593
- return json;
616
+ return this.offsetGetProperties();
594
617
  }
595
618
  clone() {
596
619
  return new this.constructor(this.toJSON());
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "modern-idoc",
3
3
  "type": "module",
4
- "version": "0.10.18",
4
+ "version": "0.10.20",
5
5
  "packageManager": "pnpm@10.18.1",
6
6
  "description": "Intermediate document for modern codec libs",
7
7
  "author": "wxm",
@@ -60,7 +60,7 @@
60
60
  },
61
61
  "devDependencies": {
62
62
  "@antfu/eslint-config": "^7.2.0",
63
- "@types/node": "^25.0.10",
63
+ "@types/node": "^25.2.0",
64
64
  "bumpp": "^10.4.0",
65
65
  "conventional-changelog-cli": "^5.0.0",
66
66
  "eslint": "^9.39.2",