modern-idoc 0.11.6 → 0.11.8

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
@@ -1443,6 +1443,39 @@ function getDefaultBackgroundStyle() {
1443
1443
  };
1444
1444
  }
1445
1445
 
1446
+ function normalizeValues(values) {
1447
+ return (values ?? []).map((v) => normalizeNumber(v) ?? 0);
1448
+ }
1449
+ function normalizeChartSeries(series) {
1450
+ return clearUndef({
1451
+ name: series.name,
1452
+ values: normalizeValues(series.values),
1453
+ xValues: series.xValues ? normalizeValues(series.xValues) : void 0,
1454
+ color: series.color
1455
+ });
1456
+ }
1457
+ function normalizeChartAxis(axis) {
1458
+ return clearUndef({
1459
+ title: axis.title,
1460
+ min: normalizeNumber(axis.min),
1461
+ max: normalizeNumber(axis.max),
1462
+ visible: axis.visible
1463
+ });
1464
+ }
1465
+ function normalizeChart(chart) {
1466
+ return clearUndef({
1467
+ enabled: chart.enabled ?? true,
1468
+ type: chart.type ?? "column",
1469
+ grouping: chart.grouping,
1470
+ categories: chart.categories ?? [],
1471
+ series: (chart.series ?? []).map(normalizeChartSeries),
1472
+ title: chart.title,
1473
+ legend: chart.legend,
1474
+ categoryAxis: chart.categoryAxis ? normalizeChartAxis(chart.categoryAxis) : void 0,
1475
+ valueAxis: chart.valueAxis ? normalizeChartAxis(chart.valueAxis) : void 0
1476
+ });
1477
+ }
1478
+
1446
1479
  function normalizeConnection(connection) {
1447
1480
  return clearUndef({
1448
1481
  start: connection.start,
@@ -1802,6 +1835,36 @@ function getDefaultStyle() {
1802
1835
  };
1803
1836
  }
1804
1837
 
1838
+ function normalizeTableColumn(column) {
1839
+ return clearUndef({
1840
+ width: normalizeNumber(column.width)
1841
+ });
1842
+ }
1843
+ function normalizeTableRow(row) {
1844
+ return clearUndef({
1845
+ height: normalizeNumber(row.height)
1846
+ });
1847
+ }
1848
+ function normalizeTableCell(cell) {
1849
+ return clearUndef({
1850
+ row: normalizeNumber(cell.row) ?? 0,
1851
+ col: normalizeNumber(cell.col) ?? 0,
1852
+ rowSpan: normalizeNumber(cell.rowSpan),
1853
+ colSpan: normalizeNumber(cell.colSpan),
1854
+ children: (cell.children ?? []).map((child) => normalizeElement(child)),
1855
+ background: isNone(cell.background) ? void 0 : normalizeBackground(cell.background),
1856
+ style: isNone(cell.style) ? void 0 : normalizeStyle(cell.style)
1857
+ });
1858
+ }
1859
+ function normalizeTable(table) {
1860
+ return clearUndef({
1861
+ enabled: table.enabled ?? true,
1862
+ columns: (table.columns ?? []).map(normalizeTableColumn),
1863
+ rows: (table.rows ?? []).map(normalizeTableRow),
1864
+ cells: (table.cells ?? []).map(normalizeTableCell)
1865
+ });
1866
+ }
1867
+
1805
1868
  const CRLF_RE = /\r\n|\n\r|\n|\r/;
1806
1869
  const NORMALIZE_CRLF_RE = new RegExp(`${CRLF_RE.source}|<br\\/>`, "g");
1807
1870
  const IS_CRLF_RE = new RegExp(`^(${CRLF_RE.source})$`);
@@ -1973,6 +2036,8 @@ function normalizeElement(element) {
1973
2036
  video: isNone(element.video) ? void 0 : normalizeVideo(element.video),
1974
2037
  audio: isNone(element.audio) ? void 0 : normalizeAudio(element.audio),
1975
2038
  connection: isNone(element.connection) ? void 0 : normalizeConnection(element.connection),
2039
+ table: isNone(element.table) ? void 0 : normalizeTable(element.table),
2040
+ chart: isNone(element.chart) ? void 0 : normalizeChart(element.chart),
1976
2041
  ...normalizeEffect(element),
1977
2042
  children: element.children?.map((child) => normalizeElement(child))
1978
2043
  });
@@ -2083,6 +2148,7 @@ exports.nanoid = nanoid;
2083
2148
  exports.normalizeAudio = normalizeAudio;
2084
2149
  exports.normalizeBackground = normalizeBackground;
2085
2150
  exports.normalizeCRLF = normalizeCRLF;
2151
+ exports.normalizeChart = normalizeChart;
2086
2152
  exports.normalizeColor = normalizeColor;
2087
2153
  exports.normalizeColorFill = normalizeColorFill;
2088
2154
  exports.normalizeConnection = normalizeConnection;
@@ -2101,6 +2167,7 @@ exports.normalizePresetFill = normalizePresetFill;
2101
2167
  exports.normalizeShadow = normalizeShadow;
2102
2168
  exports.normalizeShape = normalizeShape;
2103
2169
  exports.normalizeStyle = normalizeStyle;
2170
+ exports.normalizeTable = normalizeTable;
2104
2171
  exports.normalizeText = normalizeText;
2105
2172
  exports.normalizeTextContent = normalizeTextContent;
2106
2173
  exports.normalizeTextDeformation = normalizeTextDeformation;
package/dist/index.d.cts CHANGED
@@ -334,6 +334,55 @@ interface NormalizedBackgroundStyle {
334
334
  }
335
335
  declare function getDefaultBackgroundStyle(): NormalizedBackgroundStyle;
336
336
 
337
+ type ChartType = 'column' | 'bar' | 'line' | 'area' | 'pie' | 'doughnut' | 'scatter' | 'radar' | (string & {});
338
+ /** 分组方式(柱/条/面/线) */
339
+ type ChartGrouping = 'clustered' | 'stacked' | 'percentStacked' | 'standard';
340
+ type ChartLegend = false | 'top' | 'bottom' | 'left' | 'right';
341
+ interface ChartSeriesObject {
342
+ name?: string;
343
+ /** 数值序列(与 chart.categories 对齐) */
344
+ values: number[];
345
+ /** scatter 用:与 values 配对的 x 值 */
346
+ xValues?: number[];
347
+ color?: string;
348
+ }
349
+ interface ChartAxis {
350
+ title?: string;
351
+ min?: number;
352
+ max?: number;
353
+ /** 是否显示 */
354
+ visible?: boolean;
355
+ }
356
+ interface ChartObject extends Partial<Toggleable> {
357
+ type?: ChartType;
358
+ grouping?: ChartGrouping;
359
+ /** 分类标签(共享),如 ["一月","二月"] */
360
+ categories?: string[];
361
+ series?: ChartSeriesObject[];
362
+ title?: string;
363
+ legend?: ChartLegend;
364
+ categoryAxis?: ChartAxis;
365
+ valueAxis?: ChartAxis;
366
+ }
367
+ type Chart = ChartObject;
368
+ interface NormalizedChartSeries {
369
+ name?: string;
370
+ values: number[];
371
+ xValues?: number[];
372
+ color?: string;
373
+ }
374
+ interface NormalizedChart extends Toggleable {
375
+ type: ChartType;
376
+ grouping?: ChartGrouping;
377
+ categories: string[];
378
+ series: NormalizedChartSeries[];
379
+ title?: string;
380
+ legend?: ChartLegend;
381
+ categoryAxis?: ChartAxis;
382
+ valueAxis?: ChartAxis;
383
+ }
384
+ declare function normalizeChart(chart: Chart): NormalizedChart;
385
+
337
386
  type ConnectionMode = 'straight' | 'orthogonal' | 'curved';
338
387
  interface ConnectionAnchor {
339
388
  id: string;
@@ -552,7 +601,7 @@ type Position = 'static' | 'relative' | 'absolute';
552
601
  type BorderStyle = WithStyleNone<'dashed' | 'solid'>;
553
602
  type BoxSizing = 'border-box' | 'content-box';
554
603
  type PointerEvents = 'auto' | 'none';
555
- type ListStyleType = WithStyleNone<'disc'>;
604
+ type ListStyleType = WithStyleNone<'disc' | 'circle' | 'square' | 'decimal' | 'decimal-leading-zero' | 'lower-alpha' | 'upper-alpha' | 'lower-roman' | 'upper-roman' | 'lower-greek' | 'cjk-decimal' | 'trad-chinese-informal' | 'simp-chinese-informal' | 'japanese-informal' | 'hiragana' | 'katakana' | (string & {})>;
556
605
  type ListStyleImage = WithStyleNone<string>;
557
606
  type ListStyleColormap = WithStyleNone<Record<string, string>>;
558
607
  type ListStyleSize = StyleUnit | `${number}rem` | 'cover';
@@ -716,6 +765,49 @@ type Style = StyleObject;
716
765
  declare function normalizeStyle(style: Style): NormalizedStyle;
717
766
  declare function getDefaultStyle(): FullStyle;
718
767
 
768
+ interface TableColumnObject {
769
+ width?: number;
770
+ }
771
+ interface TableRowObject {
772
+ height?: number;
773
+ }
774
+ interface NormalizedTableColumn {
775
+ width?: number;
776
+ }
777
+ interface NormalizedTableRow {
778
+ height?: number;
779
+ }
780
+ interface TableCellObject {
781
+ row: number;
782
+ col: number;
783
+ rowSpan?: number;
784
+ colSpan?: number;
785
+ children?: Element[];
786
+ background?: Background;
787
+ style?: Style;
788
+ }
789
+ interface NormalizedTableCell {
790
+ row: number;
791
+ col: number;
792
+ rowSpan?: number;
793
+ colSpan?: number;
794
+ children: NormalizedElement[];
795
+ background?: NormalizedBackground;
796
+ style?: NormalizedStyle;
797
+ }
798
+ interface TableObject extends Partial<Toggleable> {
799
+ columns?: TableColumnObject[];
800
+ rows?: TableRowObject[];
801
+ cells?: TableCellObject[];
802
+ }
803
+ type Table = TableObject;
804
+ interface NormalizedTable extends Toggleable {
805
+ columns: NormalizedTableColumn[];
806
+ rows: NormalizedTableRow[];
807
+ cells: NormalizedTableCell[];
808
+ }
809
+ declare function normalizeTable(table: Table): NormalizedTable;
810
+
719
811
  type Text = string | FlatTextContent[] | TextObject;
720
812
  interface FragmentObject extends StyleObject {
721
813
  content: string;
@@ -792,6 +884,8 @@ interface Element<T = Meta> extends Effect, Omit<Node<T>, 'children'> {
792
884
  video?: WithNone<Video>;
793
885
  audio?: WithNone<Audio>;
794
886
  connection?: WithNone<Connection>;
887
+ table?: WithNone<Table>;
888
+ chart?: WithNone<Chart>;
795
889
  children?: Element[];
796
890
  }
797
891
  interface NormalizedElement<T = Meta> extends NormalizedEffect, Omit<Node<T>, 'children'> {
@@ -804,6 +898,8 @@ interface NormalizedElement<T = Meta> extends NormalizedEffect, Omit<Node<T>, 'c
804
898
  video?: NormalizedVideo;
805
899
  audio?: NormalizedAudio;
806
900
  connection?: NormalizedConnection;
901
+ table?: NormalizedTable;
902
+ chart?: NormalizedChart;
807
903
  children?: NormalizedElement[];
808
904
  }
809
905
  declare function normalizeElement<T = Meta>(element: Element<T>): NormalizedElement<T>;
@@ -944,5 +1040,5 @@ declare class Reactivable extends Observable implements PropertyAccessor {
944
1040
  destroy(): void;
945
1041
  }
946
1042
 
947
- export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, colorFillFields, defaultColor, defineProperty, effectFields, flatDocumentToDocument, getDeclarations, getDefaultBackgroundStyle, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOutlineStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, gradientFillFields, hasCRLF, idGenerator, imageFillFiedls, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeConnection, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeNumber, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeStyle, normalizeText, normalizeTextContent, normalizeTextDeformation, normalizeVideo, parseColor, parseGradient, pick, presetFillFiedls, property, property2, propertyOffsetFallback, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
948
- export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, Connection, ConnectionAnchor, ConnectionMode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, Element, EmNode, EventListener, 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, Justify, LabColor, LabaColor, LchColor, LchaColor, LineCap, LineEndSize, LineEndType, LineJoin, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBackgroundStyle, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOutline, NormalizedColor, NormalizedColorFill, NormalizedConnection, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedFlatDocument, NormalizedFlatElement, NormalizedForeground, NormalizedFragment, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOutline, NormalizedOutlineStyle, NormalizedParagraph, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDeformation, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, ObservableEvents, 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, ShapeConnectionPoint, ShapeNode, ShapePath, ShapePathStyle, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextDeformation, TextObject, TextOrientation, TextTransform, TextWrap, Toggleable, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor, _EffectV0 };
1043
+ export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, colorFillFields, defaultColor, defineProperty, effectFields, flatDocumentToDocument, getDeclarations, getDefaultBackgroundStyle, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOutlineStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, gradientFillFields, hasCRLF, idGenerator, imageFillFiedls, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeChart, normalizeColor, normalizeColorFill, normalizeConnection, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeNumber, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeStyle, normalizeTable, normalizeText, normalizeTextContent, normalizeTextDeformation, normalizeVideo, parseColor, parseGradient, pick, presetFillFiedls, property, property2, propertyOffsetFallback, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
1044
+ export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, Chart, ChartAxis, ChartGrouping, ChartLegend, ChartObject, ChartSeriesObject, ChartType, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, Connection, ConnectionAnchor, ConnectionMode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, Element, EmNode, EventListener, 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, Justify, LabColor, LabaColor, LchColor, LchaColor, LineCap, LineEndSize, LineEndType, LineJoin, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBackgroundStyle, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOutline, NormalizedChart, NormalizedChartSeries, NormalizedColor, NormalizedColorFill, NormalizedConnection, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedFlatDocument, NormalizedFlatElement, NormalizedForeground, NormalizedFragment, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOutline, NormalizedOutlineStyle, NormalizedParagraph, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedStyle, NormalizedTable, NormalizedTableCell, NormalizedTableColumn, NormalizedTableRow, NormalizedText, NormalizedTextContent, NormalizedTextDeformation, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, ObservableEvents, 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, ShapeConnectionPoint, ShapeNode, ShapePath, ShapePathStyle, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, Table, TableCellObject, TableColumnObject, TableObject, TableRowObject, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextDeformation, TextObject, TextOrientation, TextTransform, TextWrap, Toggleable, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor, _EffectV0 };
package/dist/index.d.mts CHANGED
@@ -334,6 +334,55 @@ interface NormalizedBackgroundStyle {
334
334
  }
335
335
  declare function getDefaultBackgroundStyle(): NormalizedBackgroundStyle;
336
336
 
337
+ type ChartType = 'column' | 'bar' | 'line' | 'area' | 'pie' | 'doughnut' | 'scatter' | 'radar' | (string & {});
338
+ /** 分组方式(柱/条/面/线) */
339
+ type ChartGrouping = 'clustered' | 'stacked' | 'percentStacked' | 'standard';
340
+ type ChartLegend = false | 'top' | 'bottom' | 'left' | 'right';
341
+ interface ChartSeriesObject {
342
+ name?: string;
343
+ /** 数值序列(与 chart.categories 对齐) */
344
+ values: number[];
345
+ /** scatter 用:与 values 配对的 x 值 */
346
+ xValues?: number[];
347
+ color?: string;
348
+ }
349
+ interface ChartAxis {
350
+ title?: string;
351
+ min?: number;
352
+ max?: number;
353
+ /** 是否显示 */
354
+ visible?: boolean;
355
+ }
356
+ interface ChartObject extends Partial<Toggleable> {
357
+ type?: ChartType;
358
+ grouping?: ChartGrouping;
359
+ /** 分类标签(共享),如 ["一月","二月"] */
360
+ categories?: string[];
361
+ series?: ChartSeriesObject[];
362
+ title?: string;
363
+ legend?: ChartLegend;
364
+ categoryAxis?: ChartAxis;
365
+ valueAxis?: ChartAxis;
366
+ }
367
+ type Chart = ChartObject;
368
+ interface NormalizedChartSeries {
369
+ name?: string;
370
+ values: number[];
371
+ xValues?: number[];
372
+ color?: string;
373
+ }
374
+ interface NormalizedChart extends Toggleable {
375
+ type: ChartType;
376
+ grouping?: ChartGrouping;
377
+ categories: string[];
378
+ series: NormalizedChartSeries[];
379
+ title?: string;
380
+ legend?: ChartLegend;
381
+ categoryAxis?: ChartAxis;
382
+ valueAxis?: ChartAxis;
383
+ }
384
+ declare function normalizeChart(chart: Chart): NormalizedChart;
385
+
337
386
  type ConnectionMode = 'straight' | 'orthogonal' | 'curved';
338
387
  interface ConnectionAnchor {
339
388
  id: string;
@@ -552,7 +601,7 @@ type Position = 'static' | 'relative' | 'absolute';
552
601
  type BorderStyle = WithStyleNone<'dashed' | 'solid'>;
553
602
  type BoxSizing = 'border-box' | 'content-box';
554
603
  type PointerEvents = 'auto' | 'none';
555
- type ListStyleType = WithStyleNone<'disc'>;
604
+ type ListStyleType = WithStyleNone<'disc' | 'circle' | 'square' | 'decimal' | 'decimal-leading-zero' | 'lower-alpha' | 'upper-alpha' | 'lower-roman' | 'upper-roman' | 'lower-greek' | 'cjk-decimal' | 'trad-chinese-informal' | 'simp-chinese-informal' | 'japanese-informal' | 'hiragana' | 'katakana' | (string & {})>;
556
605
  type ListStyleImage = WithStyleNone<string>;
557
606
  type ListStyleColormap = WithStyleNone<Record<string, string>>;
558
607
  type ListStyleSize = StyleUnit | `${number}rem` | 'cover';
@@ -716,6 +765,49 @@ type Style = StyleObject;
716
765
  declare function normalizeStyle(style: Style): NormalizedStyle;
717
766
  declare function getDefaultStyle(): FullStyle;
718
767
 
768
+ interface TableColumnObject {
769
+ width?: number;
770
+ }
771
+ interface TableRowObject {
772
+ height?: number;
773
+ }
774
+ interface NormalizedTableColumn {
775
+ width?: number;
776
+ }
777
+ interface NormalizedTableRow {
778
+ height?: number;
779
+ }
780
+ interface TableCellObject {
781
+ row: number;
782
+ col: number;
783
+ rowSpan?: number;
784
+ colSpan?: number;
785
+ children?: Element[];
786
+ background?: Background;
787
+ style?: Style;
788
+ }
789
+ interface NormalizedTableCell {
790
+ row: number;
791
+ col: number;
792
+ rowSpan?: number;
793
+ colSpan?: number;
794
+ children: NormalizedElement[];
795
+ background?: NormalizedBackground;
796
+ style?: NormalizedStyle;
797
+ }
798
+ interface TableObject extends Partial<Toggleable> {
799
+ columns?: TableColumnObject[];
800
+ rows?: TableRowObject[];
801
+ cells?: TableCellObject[];
802
+ }
803
+ type Table = TableObject;
804
+ interface NormalizedTable extends Toggleable {
805
+ columns: NormalizedTableColumn[];
806
+ rows: NormalizedTableRow[];
807
+ cells: NormalizedTableCell[];
808
+ }
809
+ declare function normalizeTable(table: Table): NormalizedTable;
810
+
719
811
  type Text = string | FlatTextContent[] | TextObject;
720
812
  interface FragmentObject extends StyleObject {
721
813
  content: string;
@@ -792,6 +884,8 @@ interface Element<T = Meta> extends Effect, Omit<Node<T>, 'children'> {
792
884
  video?: WithNone<Video>;
793
885
  audio?: WithNone<Audio>;
794
886
  connection?: WithNone<Connection>;
887
+ table?: WithNone<Table>;
888
+ chart?: WithNone<Chart>;
795
889
  children?: Element[];
796
890
  }
797
891
  interface NormalizedElement<T = Meta> extends NormalizedEffect, Omit<Node<T>, 'children'> {
@@ -804,6 +898,8 @@ interface NormalizedElement<T = Meta> extends NormalizedEffect, Omit<Node<T>, 'c
804
898
  video?: NormalizedVideo;
805
899
  audio?: NormalizedAudio;
806
900
  connection?: NormalizedConnection;
901
+ table?: NormalizedTable;
902
+ chart?: NormalizedChart;
807
903
  children?: NormalizedElement[];
808
904
  }
809
905
  declare function normalizeElement<T = Meta>(element: Element<T>): NormalizedElement<T>;
@@ -944,5 +1040,5 @@ declare class Reactivable extends Observable implements PropertyAccessor {
944
1040
  destroy(): void;
945
1041
  }
946
1042
 
947
- export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, colorFillFields, defaultColor, defineProperty, effectFields, flatDocumentToDocument, getDeclarations, getDefaultBackgroundStyle, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOutlineStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, gradientFillFields, hasCRLF, idGenerator, imageFillFiedls, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeConnection, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeNumber, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeStyle, normalizeText, normalizeTextContent, normalizeTextDeformation, normalizeVideo, parseColor, parseGradient, pick, presetFillFiedls, property, property2, propertyOffsetFallback, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
948
- export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, Connection, ConnectionAnchor, ConnectionMode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, Element, EmNode, EventListener, 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, Justify, LabColor, LabaColor, LchColor, LchaColor, LineCap, LineEndSize, LineEndType, LineJoin, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBackgroundStyle, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOutline, NormalizedColor, NormalizedColorFill, NormalizedConnection, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedFlatDocument, NormalizedFlatElement, NormalizedForeground, NormalizedFragment, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOutline, NormalizedOutlineStyle, NormalizedParagraph, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDeformation, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, ObservableEvents, 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, ShapeConnectionPoint, ShapeNode, ShapePath, ShapePathStyle, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextDeformation, TextObject, TextOrientation, TextTransform, TextWrap, Toggleable, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor, _EffectV0 };
1043
+ export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, colorFillFields, defaultColor, defineProperty, effectFields, flatDocumentToDocument, getDeclarations, getDefaultBackgroundStyle, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOutlineStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, gradientFillFields, hasCRLF, idGenerator, imageFillFiedls, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeChart, normalizeColor, normalizeColorFill, normalizeConnection, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeNumber, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeStyle, normalizeTable, normalizeText, normalizeTextContent, normalizeTextDeformation, normalizeVideo, parseColor, parseGradient, pick, presetFillFiedls, property, property2, propertyOffsetFallback, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
1044
+ export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, Chart, ChartAxis, ChartGrouping, ChartLegend, ChartObject, ChartSeriesObject, ChartType, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, Connection, ConnectionAnchor, ConnectionMode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, Element, EmNode, EventListener, 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, Justify, LabColor, LabaColor, LchColor, LchaColor, LineCap, LineEndSize, LineEndType, LineJoin, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBackgroundStyle, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOutline, NormalizedChart, NormalizedChartSeries, NormalizedColor, NormalizedColorFill, NormalizedConnection, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedFlatDocument, NormalizedFlatElement, NormalizedForeground, NormalizedFragment, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOutline, NormalizedOutlineStyle, NormalizedParagraph, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedStyle, NormalizedTable, NormalizedTableCell, NormalizedTableColumn, NormalizedTableRow, NormalizedText, NormalizedTextContent, NormalizedTextDeformation, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, ObservableEvents, 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, ShapeConnectionPoint, ShapeNode, ShapePath, ShapePathStyle, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, Table, TableCellObject, TableColumnObject, TableObject, TableRowObject, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextDeformation, TextObject, TextOrientation, TextTransform, TextWrap, Toggleable, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor, _EffectV0 };
package/dist/index.d.ts CHANGED
@@ -334,6 +334,55 @@ interface NormalizedBackgroundStyle {
334
334
  }
335
335
  declare function getDefaultBackgroundStyle(): NormalizedBackgroundStyle;
336
336
 
337
+ type ChartType = 'column' | 'bar' | 'line' | 'area' | 'pie' | 'doughnut' | 'scatter' | 'radar' | (string & {});
338
+ /** 分组方式(柱/条/面/线) */
339
+ type ChartGrouping = 'clustered' | 'stacked' | 'percentStacked' | 'standard';
340
+ type ChartLegend = false | 'top' | 'bottom' | 'left' | 'right';
341
+ interface ChartSeriesObject {
342
+ name?: string;
343
+ /** 数值序列(与 chart.categories 对齐) */
344
+ values: number[];
345
+ /** scatter 用:与 values 配对的 x 值 */
346
+ xValues?: number[];
347
+ color?: string;
348
+ }
349
+ interface ChartAxis {
350
+ title?: string;
351
+ min?: number;
352
+ max?: number;
353
+ /** 是否显示 */
354
+ visible?: boolean;
355
+ }
356
+ interface ChartObject extends Partial<Toggleable> {
357
+ type?: ChartType;
358
+ grouping?: ChartGrouping;
359
+ /** 分类标签(共享),如 ["一月","二月"] */
360
+ categories?: string[];
361
+ series?: ChartSeriesObject[];
362
+ title?: string;
363
+ legend?: ChartLegend;
364
+ categoryAxis?: ChartAxis;
365
+ valueAxis?: ChartAxis;
366
+ }
367
+ type Chart = ChartObject;
368
+ interface NormalizedChartSeries {
369
+ name?: string;
370
+ values: number[];
371
+ xValues?: number[];
372
+ color?: string;
373
+ }
374
+ interface NormalizedChart extends Toggleable {
375
+ type: ChartType;
376
+ grouping?: ChartGrouping;
377
+ categories: string[];
378
+ series: NormalizedChartSeries[];
379
+ title?: string;
380
+ legend?: ChartLegend;
381
+ categoryAxis?: ChartAxis;
382
+ valueAxis?: ChartAxis;
383
+ }
384
+ declare function normalizeChart(chart: Chart): NormalizedChart;
385
+
337
386
  type ConnectionMode = 'straight' | 'orthogonal' | 'curved';
338
387
  interface ConnectionAnchor {
339
388
  id: string;
@@ -552,7 +601,7 @@ type Position = 'static' | 'relative' | 'absolute';
552
601
  type BorderStyle = WithStyleNone<'dashed' | 'solid'>;
553
602
  type BoxSizing = 'border-box' | 'content-box';
554
603
  type PointerEvents = 'auto' | 'none';
555
- type ListStyleType = WithStyleNone<'disc'>;
604
+ type ListStyleType = WithStyleNone<'disc' | 'circle' | 'square' | 'decimal' | 'decimal-leading-zero' | 'lower-alpha' | 'upper-alpha' | 'lower-roman' | 'upper-roman' | 'lower-greek' | 'cjk-decimal' | 'trad-chinese-informal' | 'simp-chinese-informal' | 'japanese-informal' | 'hiragana' | 'katakana' | (string & {})>;
556
605
  type ListStyleImage = WithStyleNone<string>;
557
606
  type ListStyleColormap = WithStyleNone<Record<string, string>>;
558
607
  type ListStyleSize = StyleUnit | `${number}rem` | 'cover';
@@ -716,6 +765,49 @@ type Style = StyleObject;
716
765
  declare function normalizeStyle(style: Style): NormalizedStyle;
717
766
  declare function getDefaultStyle(): FullStyle;
718
767
 
768
+ interface TableColumnObject {
769
+ width?: number;
770
+ }
771
+ interface TableRowObject {
772
+ height?: number;
773
+ }
774
+ interface NormalizedTableColumn {
775
+ width?: number;
776
+ }
777
+ interface NormalizedTableRow {
778
+ height?: number;
779
+ }
780
+ interface TableCellObject {
781
+ row: number;
782
+ col: number;
783
+ rowSpan?: number;
784
+ colSpan?: number;
785
+ children?: Element[];
786
+ background?: Background;
787
+ style?: Style;
788
+ }
789
+ interface NormalizedTableCell {
790
+ row: number;
791
+ col: number;
792
+ rowSpan?: number;
793
+ colSpan?: number;
794
+ children: NormalizedElement[];
795
+ background?: NormalizedBackground;
796
+ style?: NormalizedStyle;
797
+ }
798
+ interface TableObject extends Partial<Toggleable> {
799
+ columns?: TableColumnObject[];
800
+ rows?: TableRowObject[];
801
+ cells?: TableCellObject[];
802
+ }
803
+ type Table = TableObject;
804
+ interface NormalizedTable extends Toggleable {
805
+ columns: NormalizedTableColumn[];
806
+ rows: NormalizedTableRow[];
807
+ cells: NormalizedTableCell[];
808
+ }
809
+ declare function normalizeTable(table: Table): NormalizedTable;
810
+
719
811
  type Text = string | FlatTextContent[] | TextObject;
720
812
  interface FragmentObject extends StyleObject {
721
813
  content: string;
@@ -792,6 +884,8 @@ interface Element<T = Meta> extends Effect, Omit<Node<T>, 'children'> {
792
884
  video?: WithNone<Video>;
793
885
  audio?: WithNone<Audio>;
794
886
  connection?: WithNone<Connection>;
887
+ table?: WithNone<Table>;
888
+ chart?: WithNone<Chart>;
795
889
  children?: Element[];
796
890
  }
797
891
  interface NormalizedElement<T = Meta> extends NormalizedEffect, Omit<Node<T>, 'children'> {
@@ -804,6 +898,8 @@ interface NormalizedElement<T = Meta> extends NormalizedEffect, Omit<Node<T>, 'c
804
898
  video?: NormalizedVideo;
805
899
  audio?: NormalizedAudio;
806
900
  connection?: NormalizedConnection;
901
+ table?: NormalizedTable;
902
+ chart?: NormalizedChart;
807
903
  children?: NormalizedElement[];
808
904
  }
809
905
  declare function normalizeElement<T = Meta>(element: Element<T>): NormalizedElement<T>;
@@ -944,5 +1040,5 @@ declare class Reactivable extends Observable implements PropertyAccessor {
944
1040
  destroy(): void;
945
1041
  }
946
1042
 
947
- export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, colorFillFields, defaultColor, defineProperty, effectFields, flatDocumentToDocument, getDeclarations, getDefaultBackgroundStyle, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOutlineStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, gradientFillFields, hasCRLF, idGenerator, imageFillFiedls, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeConnection, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeNumber, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeStyle, normalizeText, normalizeTextContent, normalizeTextDeformation, normalizeVideo, parseColor, parseGradient, pick, presetFillFiedls, property, property2, propertyOffsetFallback, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
948
- export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, Connection, ConnectionAnchor, ConnectionMode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, Element, EmNode, EventListener, 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, Justify, LabColor, LabaColor, LchColor, LchaColor, LineCap, LineEndSize, LineEndType, LineJoin, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBackgroundStyle, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOutline, NormalizedColor, NormalizedColorFill, NormalizedConnection, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedFlatDocument, NormalizedFlatElement, NormalizedForeground, NormalizedFragment, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOutline, NormalizedOutlineStyle, NormalizedParagraph, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedStyle, NormalizedText, NormalizedTextContent, NormalizedTextDeformation, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, ObservableEvents, 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, ShapeConnectionPoint, ShapeNode, ShapePath, ShapePathStyle, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextDeformation, TextObject, TextOrientation, TextTransform, TextWrap, Toggleable, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor, _EffectV0 };
1043
+ export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, colorFillFields, defaultColor, defineProperty, effectFields, flatDocumentToDocument, getDeclarations, getDefaultBackgroundStyle, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOutlineStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, gradientFillFields, hasCRLF, idGenerator, imageFillFiedls, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeChart, normalizeColor, normalizeColorFill, normalizeConnection, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeNumber, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeStyle, normalizeTable, normalizeText, normalizeTextContent, normalizeTextDeformation, normalizeVideo, parseColor, parseGradient, pick, presetFillFiedls, property, property2, propertyOffsetFallback, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
1044
+ export type { Align, AngularNode, Audio, Background, BackgroundObject, BackgroundSize, BorderStyle, BoxShadow, BoxSizing, Chart, ChartAxis, ChartGrouping, ChartLegend, ChartObject, ChartSeriesObject, ChartType, CmykColor, CmykaColor, Color, ColorFill, ColorFillObject, ColorStop, ColorStopNode, Connection, ConnectionAnchor, ConnectionMode, DefaultRadialNode, Direction, DirectionalNode, Display, Document, Effect, Element, EmNode, EventListener, 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, Justify, LabColor, LabaColor, LchColor, LchaColor, LineCap, LineEndSize, LineEndType, LineJoin, LinearGradient, LinearGradientNode, LinearGradientWithType, ListStyleColormap, ListStyleImage, ListStylePosition, ListStyleSize, ListStyleType, LiteralNode, Meta, Node, None, NormalizedAudio, NormalizedBackground, NormalizedBackgroundStyle, NormalizedBaseBackground, NormalizedBaseForeground, NormalizedBaseOutline, NormalizedChart, NormalizedChartSeries, NormalizedColor, NormalizedColorFill, NormalizedConnection, NormalizedDocument, NormalizedEffect, NormalizedElement, NormalizedElementStyle, NormalizedFill, NormalizedFlatDocument, NormalizedFlatElement, NormalizedForeground, NormalizedFragment, NormalizedGradientFill, NormalizedHighlight, NormalizedHighlightStyle, NormalizedImageFill, NormalizedLayoutStyle, NormalizedListStyle, NormalizedListStyleStyle, NormalizedOutline, NormalizedOutlineStyle, NormalizedParagraph, NormalizedPresetFill, NormalizedShadow, NormalizedShadowStyle, NormalizedShape, NormalizedStyle, NormalizedTable, NormalizedTableCell, NormalizedTableColumn, NormalizedTableRow, NormalizedText, NormalizedTextContent, NormalizedTextDeformation, NormalizedTextDrawStyle, NormalizedTextInlineStyle, NormalizedTextLineStyle, NormalizedTextStyle, NormalizedTransformStyle, NormalizedVideo, ObjectColor, ObservableEvents, 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, ShapeConnectionPoint, ShapeNode, ShapePath, ShapePathStyle, StrokeLinecap, StrokeLinejoin, Style, StyleObject, StyleUnit, Table, TableCellObject, TableColumnObject, TableObject, TableRowObject, TailEnd, Text, TextAlign, TextContent, TextDecoration, TextDeformation, TextObject, TextOrientation, TextTransform, TextWrap, Toggleable, Uint32Color, VerticalAlign, Video, Visibility, WithNone, WithStyleNone, WritingMode, XyzColor, XyzaColor, _EffectV0 };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.modernIdoc={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return typeof e==`string`?{src:e}:e}var n={grad:.9,turn:360,rad:360/(2*Math.PI)},r=function(e){return typeof e==`string`?e.length>0:typeof e==`number`},i=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=10**t),Math.round(n*e)/n+0},a=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e>t?e:t},o=function(e){return(e=isFinite(e)?e%360:0)>0?e:e+360},s=function(e){return{r:a(e.r,0,255),g:a(e.g,0,255),b:a(e.b,0,255),a:a(e.a)}},c=function(e){return{r:i(e.r),g:i(e.g),b:i(e.b),a:i(e.a,3)}},l=/^#([0-9a-f]{3,8})$/i,u=function(e){var t=e.toString(16);return t.length<2?`0`+t:t},d=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=Math.max(t,n,r),o=a-Math.min(t,n,r),s=o?a===t?(n-r)/o:a===n?2+(r-t)/o:4+(t-n)/o:0;return{h:60*(s<0?s+6:s),s:a?o/a*100:0,v:a/255*100,a:i}},f=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var a=Math.floor(t),o=r*(1-n),s=r*(1-(t-a)*n),c=r*(1-(1-t+a)*n),l=a%6;return{r:255*[r,s,o,o,c,r][l],g:255*[c,r,r,s,o,o][l],b:255*[o,o,c,r,r,s][l],a:i}},ee=function(e){return{h:o(e.h),s:a(e.s,0,100),l:a(e.l,0,100),a:a(e.a)}},p=function(e){return{h:i(e.h),s:i(e.s),l:i(e.l),a:i(e.a,3)}},m=function(e){return f((n=(t=e).s,{h:t.h,s:(n*=((r=t.l)<50?r:100-r)/100)>0?2*n/(r+n)*100:0,v:r+n,a:t.a}));var t,n,r},h=function(e){return{h:(t=d(e)).h,s:(i=(200-(n=t.s))*(r=t.v)/100)>0&&i<200?n*r/100/(i<=100?i:200-i)*100:0,l:i/2,a:t.a};var t,n,r,i},g=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,te=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,_=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,ne=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v={string:[[function(e){var t=l.exec(e);return t?(e=t[1]).length<=4?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?i(parseInt(e[3]+e[3],16)/255,2):1}:e.length===6||e.length===8?{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:e.length===8?i(parseInt(e.substr(6,2),16)/255,2):1}:null:null},`hex`],[function(e){var t=_.exec(e)||ne.exec(e);return t?t[2]!==t[4]||t[4]!==t[6]?null:s({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},`rgb`],[function(e){var t=g.exec(e)||te.exec(e);if(!t)return null;var r,i;return m(ee({h:(r=t[1],i=t[2],i===void 0&&(i=`deg`),Number(r)*(n[i]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)}))},`hsl`]],object:[[function(e){var t=e.r,n=e.g,i=e.b,a=e.a,o=a===void 0?1:a;return r(t)&&r(n)&&r(i)?s({r:Number(t),g:Number(n),b:Number(i),a:Number(o)}):null},`rgb`],[function(e){var t=e.h,n=e.s,i=e.l,a=e.a,o=a===void 0?1:a;return!r(t)||!r(n)||!r(i)?null:m(ee({h:Number(t),s:Number(n),l:Number(i),a:Number(o)}))},`hsl`],[function(e){var t=e.h,n=e.s,i=e.v,s=e.a,c=s===void 0?1:s;return!r(t)||!r(n)||!r(i)?null:f(function(e){return{h:o(e.h),s:a(e.s,0,100),v:a(e.v,0,100),a:a(e.a)}}({h:Number(t),s:Number(n),v:Number(i),a:Number(c)}))},`hsv`]]},y=function(e,t){for(var n=0;n<t.length;n++){var r=t[n][0](e);if(r)return[r,t[n][1]]}return[null,void 0]},re=function(e){return typeof e==`string`?y(e.trim(),v.string):typeof e==`object`&&e?y(e,v.object):[null,void 0]},b=function(e,t){var n=h(e);return{h:n.h,s:a(n.s+100*t,0,100),l:n.l,a:n.a}},x=function(e){return(299*e.r+587*e.g+114*e.b)/1e3/255},ie=function(e,t){var n=h(e);return{h:n.h,s:n.s,l:a(n.l+100*t,0,100),a:n.a}},S=function(){function e(e){this.parsed=re(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return e.prototype.isValid=function(){return this.parsed!==null},e.prototype.brightness=function(){return i(x(this.rgba),2)},e.prototype.isDark=function(){return x(this.rgba)<.5},e.prototype.isLight=function(){return x(this.rgba)>=.5},e.prototype.toHex=function(){return e=c(this.rgba),t=e.r,n=e.g,r=e.b,o=(a=e.a)<1?u(i(255*a)):``,`#`+u(t)+u(n)+u(r)+o;var e,t,n,r,a,o},e.prototype.toRgb=function(){return c(this.rgba)},e.prototype.toRgbString=function(){return e=c(this.rgba),t=e.r,n=e.g,r=e.b,(i=e.a)<1?`rgba(`+t+`, `+n+`, `+r+`, `+i+`)`:`rgb(`+t+`, `+n+`, `+r+`)`;var e,t,n,r,i},e.prototype.toHsl=function(){return p(h(this.rgba))},e.prototype.toHslString=function(){return e=p(h(this.rgba)),t=e.h,n=e.s,r=e.l,(i=e.a)<1?`hsla(`+t+`, `+n+`%, `+r+`%, `+i+`)`:`hsl(`+t+`, `+n+`%, `+r+`%)`;var e,t,n,r,i},e.prototype.toHsv=function(){return e=d(this.rgba),{h:i(e.h),s:i(e.s),v:i(e.v),a:i(e.a,3)};var e},e.prototype.invert=function(){return C({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},e.prototype.saturate=function(e){return e===void 0&&(e=.1),C(b(this.rgba,e))},e.prototype.desaturate=function(e){return e===void 0&&(e=.1),C(b(this.rgba,-e))},e.prototype.grayscale=function(){return C(b(this.rgba,-1))},e.prototype.lighten=function(e){return e===void 0&&(e=.1),C(ie(this.rgba,e))},e.prototype.darken=function(e){return e===void 0&&(e=.1),C(ie(this.rgba,-e))},e.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},e.prototype.alpha=function(e){return typeof e==`number`?C({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):i(this.rgba.a,3);var t},e.prototype.hue=function(e){var t=h(this.rgba);return typeof e==`number`?C({h:e,s:t.s,l:t.l,a:t.a}):i(t.h)},e.prototype.isEqual=function(e){return this.toHex()===C(e).toHex()},e}(),C=function(e){return e instanceof S?e:new S(e)},ae=class{eventListeners=new Map;addEventListener(e,t,n){let r={value:t,options:n},i=this.eventListeners.get(e);return i?Array.isArray(i)?i.push(r):this.eventListeners.set(e,[i,r]):this.eventListeners.set(e,r),this}removeEventListener(e,t,n){if(!t)return this.eventListeners.delete(e),this;let r=this.eventListeners.get(e);if(!r)return this;if(Array.isArray(r)){let i=[];for(let e=0,a=r.length;e<a;e++){let a=r[e];(a.value!==t||typeof n==`object`&&n?.once&&(typeof a.options==`boolean`||!a.options?.once))&&i.push(a)}i.length?this.eventListeners.set(e,i.length===1?i[0]:i):this.eventListeners.delete(e)}else r.value===t&&(typeof n==`boolean`||!n?.once||typeof r.options==`boolean`||r.options?.once)&&this.eventListeners.delete(e);return this}removeAllListeners(){return this.eventListeners.clear(),this}hasEventListener(e){return this.eventListeners.has(e)}dispatchEvent(e,...t){let n=this.eventListeners.get(e);if(n){if(Array.isArray(n))for(let r=n.length,i=0;i<r;i++){let r=n[i];typeof r.options==`object`&&r.options?.once&&this.off(e,r.value,r.options),r.value.apply(this,t)}else typeof n.options==`object`&&n.options?.once&&this.off(e,n.value,n.options),n.value.apply(this,t);return!0}else return!1}on(e,t,n){return this.addEventListener(e,t,n)}once(e,t){return this.addEventListener(e,t,{once:!0})}off(e,t,n){return this.removeEventListener(e,t,n)}emit(e,...t){this.dispatchEvent(e,...t)}};function w(e){return e==null||e===``||e===`none`}function T(e,t=0,n=10**t){return Math.round(n*e)/n+0}function E(e,t){if(typeof e==`number`)return Number.isFinite(e)?e:t;if(typeof e==`string`){let n=Number.parseFloat(e);return Number.isFinite(n)?n:t}return t}function D(e,t=!1){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return t?e.map(e=>D(e,t)):e;let n={};for(let r in e){let i=e[r];i!=null&&(t?n[r]=D(i,t):n[r]=i)}return n}function O(e,t){let n={};return t.forEach(t=>{t in e&&(n[t]=e[t])}),n}function k(e,t){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){let n=Array.from(new Set([...Object.keys(e),...Object.keys(t)]));return!n.length||n.every(n=>e[n]===t[n])}return!1}function A(e,t,n){let r=t.length-1;if(r<0)return e===void 0?n:e;for(let i=0;i<r;i++){if(e==null)return n;e=e[t[i]]}return e==null||e[t[r]]===void 0?n:e[t[r]]}function j(e,t,n){let r=t.length-1;for(let n=0;n<r;n++)typeof e[t[n]]!=`object`&&(e[t[n]]={}),e=e[t[n]];e[t[r]]=n}function oe(e,t,n){return e==null||!t||typeof t!=`string`?n:e[t]===void 0?(t=t.replace(/\[(\w+)\]/g,`.$1`),t=t.replace(/^\./,``),A(e,t.split(`.`),n)):e[t]}function se(e,t,n){if(!(typeof e!=`object`||!t))return t=t.replace(/\[(\w+)\]/g,`.$1`),t=t.replace(/^\./,``),j(e,t.split(`.`),n)}var ce=class{_eventListeners={};on(e,t){let n=this._eventListeners[e];n===void 0&&(n=[],this._eventListeners[e]=n);let r=n.indexOf(t);return r>-1&&n.splice(r,1),n.push(t),this}once(e,t){let n=(...r)=>{this.off(e,n),t.apply(this,r)};return this.on(e,n),this}off(e,t){let n=this._eventListeners[e];if(n!==void 0){let e=n.indexOf(t);e>-1&&n.splice(e,1)}return this}emit(e,...t){let n=this._eventListeners[e];if(n!==void 0){let e=n.length;if(e>0)for(let r=0;r<e;r++)n[r].apply(this,t)}return this}removeAllListeners(){return this._eventListeners={},this}hasEventListener(e){return!!this._eventListeners[e]}destroy(){this.removeAllListeners()}},le=class{_map=new WeakMap;_toRaw(e){if(e&&typeof e==`object`){let t=e.__v_raw;t&&(e=this._toRaw(t))}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,t){return this._map.set(this._toRaw(e),this._toRaw(t)),this}},ue=Symbol.for(`declarations`),M=Symbol.for(`inited`);function N(e){let t;if(Object.hasOwn(e,ue))t=e[ue];else{let n=Object.getPrototypeOf(e);t={...n?N(n):{}},e[ue]=t}return t}function P(e,t,n,r){let{alias:i,internalKey:a}=r,o=e[t];i?se(e,i,n):e[a]=n,e.onUpdateProperty?.(t,n??I(e,t,r),o)}function F(e,t,n){let{alias:r,internalKey:i}=n,a;return a=r?oe(e,r):e[i],a??=I(e,t,n),a}function I(e,t,n){let{default:r,fallback:i}=n,a;if(r!==void 0&&!e[M]?.[t]){e[M]||(e[M]={}),e[M][t]=!0;let n=typeof r==`function`?r():r;n!==void 0&&(e[t]=n,a=n)}return a===void 0&&i!==void 0&&(a=typeof i==`function`?i():i),a}function L(e,t){function n(){return this.getProperty?this.getProperty(e):F(this,e,t)}function r(n){this.setProperty?this.setProperty(e,n):P(this,e,n,t)}return{get:n,set:r}}function de(e,t,n={}){let r={...n,internalKey:Symbol.for(t)},i=N(e);i[t]=r;let{get:a,set:o}=L(t,r);Object.defineProperty(e.prototype,t,{get(){return a.call(this)},set(e){o.call(this,e)},configurable:!0,enumerable:!0})}function fe(e){return function(t,n){if(typeof n!=`string`)throw TypeError(`Failed to @property decorator, prop name cannot be a symbol`);de(t.constructor,n,e)}}function pe(e={}){return function(t,n){let r=n.name;if(typeof r!=`string`)throw TypeError(`Failed to @property decorator, prop name cannot be a symbol`);let i={...e,internalKey:Symbol.for(r)},a=L(r,i);return{init(e){let t=N(this.constructor);return t[r]=i,a.set.call(this,e),e},get(){return a.get.call(this)},set(e){a.set.call(this,e)}}}}var me=class extends ce{_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,t){this._properties[e]=t}offsetGetProperties(e){let t=this._properties,n=Object.keys(t),r={};for(let i,a,o=0;o<n.length;o++)i=n[o],a=t[i],a!==void 0&&(!e||e.includes(i))&&(a&&typeof a==`object`?`toJSON`in a?r[i]=a.toJSON():Array.isArray(a)?r[i]=[...a]:r[i]={...a}:r[i]=a);return r}offsetSetProperties(e){if(e&&typeof e==`object`){let t=Object.keys(e);for(let n,r=0;r<t.length;r++)n=t[r],this.offsetSetProperty(n,e[n])}return this}getProperty(e){let t=this.getPropertyDeclaration(e);if(t){if(t.internal||t.alias)return F(this,e,t);{let n=this._propertyAccessor,r;return r=n&&n.getProperty?n.getProperty(e):this.offsetGetProperty(e),r??I(this,e,t)}}}setProperty(e,t){let n=this.getPropertyDeclaration(e);if(n)if(n.internal||n.alias)P(this,e,t,n);else{let r=this.getProperty(e);this._propertyAccessor?.setProperty?.(e,t),this.offsetSetProperty(e,t),this.onUpdateProperty?.(e,t??I(this,e,n),r)}}getProperties(e){let t={},n=this.getPropertyDeclarations(),r=Object.keys(n);for(let i=0,a=r.length;i<a;i++){let a=r[i],o=n[a];o.internal||o.alias||(!e||e.includes(a))&&(t[a]=this.getProperty(a))}return t}setProperties(e){if(e&&typeof e==`object`)for(let t in e)this.setProperty(t,e[t]);return this}resetProperties(){let e=this.getPropertyDeclarations(),t=Object.keys(e);for(let n=0,r=t.length;n<r;n++){let r=t[n],i=e[r];this.setProperty(r,typeof i.default==`function`?i.default():i.default)}return this}getPropertyDeclarations(){return N(this.constructor)}getPropertyDeclaration(e){return this.getPropertyDeclarations()[e]}setPropertyAccessor(e){let t=this.getPropertyDeclarations(),n=[];if(e&&e.getProperty&&e.setProperty){let r=Object.keys(t);for(let i=0,a=r.length;i<a;i++){let a=r[i],o=t[a];if(o.internal||o.alias)continue;let s=this.offsetGetProperty(a),c=e.getProperty(a);c!==void 0&&!Object.is(s,c)&&(this.offsetSetProperty(a,c),n.push({key:a,newValue:c,oldValue:s}))}}this._propertyAccessor=e;for(let e=0,t=n.length;e<t;e++){let{key:t,newValue:r,oldValue:i}=n[e];this.requestUpdate(t,r,i)}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(),!1)}onUpdate(){this._update(this._updatedProperties),this._updatedProperties={}}onUpdateProperty(e,t,n){Object.is(t,n)||this.requestUpdate(e,t,n)}requestUpdate(e,t,n){e!==void 0&&(this._updatedProperties[e]=n,this._changedProperties.add(e),this._updateProperty(e,t,n),this.emit(`updateProperty`,e,t,n)),this._updating||(this._updatingPromise=this._enqueueUpdate())}_update(e){}_updateProperty(e,t,n){}toJSON(){return this.offsetGetProperties()}clone(){return new this.constructor(this.toJSON())}destroy(){this.emit(`destroy`),super.destroy()}};function R(e){let t;return t=typeof e==`number`?{r:e>>24&255,g:e>>16&255,b:e>>8&255,a:(e&255)/255}:e,C(t)}function he(e){return{r:T(e.r),g:T(e.g),b:T(e.b),a:T(e.a,3)}}function z(e){let t=e.toString(16);return t.length<2?`0${t}`:t}var B=`#000000FF`;function V(e){return R(e).isValid()}function H(e,t=!1){let n=R(e);if(!n.isValid()){if(typeof e==`string`)return e;let n=`Failed to normalizeColor ${e}`;if(t)throw Error(n);return console.warn(n),B}let{r,g:i,b:a,a:o}=he(n.rgba);return`#${z(r)}${z(i)}${z(a)}${z(T(o*255))}`}var U=U||{};U.parse=(function(){let e={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},t=``;function n(e){let n=Error(`${t}: ${e}`);throw n.source=t,n}function r(){let e=i();return t.length>0&&n(`Invalid input not EOF`),e}function i(){return _(a)}function a(){return o(`linear-gradient`,e.linearGradient,c)||o(`repeating-linear-gradient`,e.repeatingLinearGradient,c)||o(`radial-gradient`,e.radialGradient,d)||o(`repeating-radial-gradient`,e.repeatingRadialGradient,d)}function o(t,r,i){return s(r,r=>{let a=i();return a&&(A(e.comma)||n(`Missing comma before color stops`)),{type:t,orientation:a,colorStops:_(ne)}})}function s(t,r){let i=A(t);if(i){A(e.startCall)||n(`Missing (`);let t=r(i);return A(e.endCall)||n(`Missing )`),t}}function c(){let t=l();if(t)return t;let n=k(`position-keyword`,e.positionKeywords,1);return n?{type:`directional`,value:n.value}:u()}function l(){return k(`directional`,e.sideOrCorner,1)}function u(){return k(`angular`,e.angleValue,1)||k(`angular`,e.radianValue,1)}function d(){let n,r=f(),i;return r&&(n=[],n.push(r),i=t,A(e.comma)&&(r=f(),r?n.push(r):t=i)),n}function f(){let e=ee()||p();if(e)e.at=h();else{let t=m();if(t){e=t;let n=h();n&&(e.at=n)}else{let t=h();if(t)e={type:`default-radial`,at:t};else{let t=g();t&&(e={type:`default-radial`,at:t})}}}return e}function ee(){let e=k(`shape`,/^(circle)/i,0);return e&&(e.style=O()||m()),e}function p(){let e=k(`shape`,/^(ellipse)/i,0);return e&&(e.style=g()||T()||m()),e}function m(){return k(`extent-keyword`,e.extentKeywords,1)}function h(){if(k(`position`,/^at/,0)){let e=g();return e||n(`Missing positioning value`),e}}function g(){let e=te();if(e.x||e.y)return{type:`position`,value:e}}function te(){return{x:T(),y:T()}}function _(t){let r=t(),i=[];if(r)for(i.push(r);A(e.comma);)r=t(),r?i.push(r):n(`One extra comma`);return i}function ne(){let e=v();return e||n(`Expected color definition`),e.length=T(),e}function v(){return re()||C()||S()||x()||b()||ie()||y()}function y(){return k(`literal`,e.literalColor,0)}function re(){return k(`hex`,e.hexColor,1)}function b(){return s(e.rgbColor,()=>({type:`rgb`,value:_(w)}))}function x(){return s(e.rgbaColor,()=>({type:`rgba`,value:_(w)}))}function ie(){return s(e.varColor,()=>({type:`var`,value:ae()}))}function S(){return s(e.hslColor,()=>{A(e.percentageValue)&&n(`HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage`);let t=w();A(e.comma);let r=A(e.percentageValue),i=r?r[1]:null;A(e.comma),r=A(e.percentageValue);let a=r?r[1]:null;return(!i||!a)&&n(`Expected percentage value for saturation and lightness in HSL`),{type:`hsl`,value:[t,i,a]}})}function C(){return s(e.hslaColor,()=>{let t=w();A(e.comma);let r=A(e.percentageValue),i=r?r[1]:null;A(e.comma),r=A(e.percentageValue);let a=r?r[1]:null;A(e.comma);let o=w();return(!i||!a)&&n(`Expected percentage value for saturation and lightness in HSLA`),{type:`hsla`,value:[t,i,a,o]}})}function ae(){return A(e.variableName)[1]}function w(){return A(e.number)[1]}function T(){return k(`%`,e.percentageValue,1)||E()||D()||O()}function E(){return k(`position-keyword`,e.positionKeywords,1)}function D(){return s(e.calcValue,()=>{let e=1,r=0;for(;e>0&&r<t.length;){let n=t.charAt(r);n===`(`?e++:n===`)`&&e--,r++}e>0&&n(`Missing closing parenthesis in calc() expression`);let i=t.substring(0,r-1);return j(r-1),{type:`calc`,value:i}})}function O(){return k(`px`,e.pixelValue,1)||k(`em`,e.emValue,1)}function k(e,t,n){let r=A(t);if(r)return{type:e,value:r[n]}}function A(e){let n,r;return r=/^\s+/.exec(t),r&&j(r[0].length),n=e.exec(t),n&&j(n[0].length),n}function j(e){t=t.substr(e)}return function(e){return t=e.toString().trim(),t.endsWith(`;`)&&(t=t.slice(0,-1)),r()}})();var ge=U.parse.bind(U),W=W||{};W.stringify=(function(){var e={"visit_linear-gradient":function(t){return e.visit_gradient(t)},"visit_repeating-linear-gradient":function(t){return e.visit_gradient(t)},"visit_radial-gradient":function(t){return e.visit_gradient(t)},"visit_repeating-radial-gradient":function(t){return e.visit_gradient(t)},visit_gradient:function(t){var n=e.visit(t.orientation);return n&&(n+=`, `),t.type+`(`+n+e.visit(t.colorStops)+`)`},visit_shape:function(t){var n=t.value,r=e.visit(t.at),i=e.visit(t.style);return i&&(n+=` `+i),r&&(n+=` at `+r),n},"visit_default-radial":function(t){var n=``,r=e.visit(t.at);return r&&(n+=r),n},"visit_extent-keyword":function(t){var n=t.value,r=e.visit(t.at);return r&&(n+=` at `+r),n},"visit_position-keyword":function(e){return e.value},visit_position:function(t){return e.visit(t.value.x)+` `+e.visit(t.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(t){return e.visit_color(t.value,t)},visit_hex:function(t){return e.visit_color(`#`+t.value,t)},visit_rgb:function(t){return e.visit_color(`rgb(`+t.value.join(`, `)+`)`,t)},visit_rgba:function(t){return e.visit_color(`rgba(`+t.value.join(`, `)+`)`,t)},visit_hsl:function(t){return e.visit_color(`hsl(`+t.value[0]+`, `+t.value[1]+`%, `+t.value[2]+`%)`,t)},visit_hsla:function(t){return e.visit_color(`hsla(`+t.value[0]+`, `+t.value[1]+`%, `+t.value[2]+`%, `+t.value[3]+`)`,t)},visit_var:function(t){return e.visit_color(`var(`+t.value+`)`,t)},visit_color:function(t,n){var r=t,i=e.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(t){var n=``,r=t.length;return t.forEach(function(t,i){n+=e.visit(t),i<r-1&&(n+=`, `)}),n},visit_object:function(t){return t.width&&t.height?e.visit(t.width)+` `+e.visit(t.height):``},visit:function(t){if(!t)return``;if(t instanceof Array)return e.visit_array(t);if(typeof t==`object`&&!t.type)return e.visit_object(t);if(t.type){var n=e[`visit_`+t.type];if(n)return n(t);throw Error(`Missing visitor visit_`+t.type)}else throw Error(`Invalid node.`)}};return function(t){return e.visit(t)}})();var _e=W.stringify.bind(W);function ve(e){let t=e.length-1;return e.map((e,n)=>{let r=e.value,i=T(n/t,3),a=`#00000000`;switch(e.type){case`rgb`:a=H({r:Number(r[0]??0),g:Number(r[1]??0),b:Number(r[2]??0)});break;case`rgba`:a=H({r:Number(r[0]??0),g:Number(r[1]??0),b:Number(r[2]??0),a:Number(r[3]??0)});break;case`literal`:a=H(e.value);break;case`hex`:a=H(`#${e.value}`);break}switch(e.length?.type){case`%`:i=Number(e.length.value)/100;break;case`px`:break;case`em`:break}return{offset:i,color:a}})}function ye(e){let t=0;switch(e.orientation?.type){case`angular`:t=Number(e.orientation.value);break;case`directional`:break}return{type:`linear-gradient`,angle:t,stops:ve(e.colorStops)}}function be(e){return e.orientation?.map(e=>{switch(e?.type){default:return null}}),{type:`radial-gradient`,stops:ve(e.colorStops)}}function G(e){return e.startsWith(`linear-gradient(`)||e.startsWith(`radial-gradient(`)}function xe(e){return ge(e).map(e=>{switch(e?.type){case`linear-gradient`:return ye(e);case`repeating-linear-gradient`:return{...ye(e),repeat:!0};case`radial-gradient`:return be(e);case`repeating-radial-gradient`:return{...be(e),repeat:!0};default:return}}).filter(Boolean)}var K=[`color`];function Se(e){let t;return t=typeof e==`string`?{color:e}:{...e},t.color&&=H(t.color),O(t,K)}var Ce=[`linearGradient`,`radialGradient`,`rotateWithShape`];function we(e){let t;if(t=typeof e==`string`?{image:e}:{...e},t.image){let{type:e,...n}=xe(t.image)[0]??{};switch(e){case`radial-gradient`:return{radialGradient:n};case`linear-gradient`:return{linearGradient:n}}}return O(t,Ce)}var Te=[`image`,`cropRect`,`stretchRect`,`tile`,`dpi`,`opacity`,`rotateWithShape`];function Ee(e){let t;return t=typeof e==`string`?{image:e}:{...e},O(t,Te)}var De=[`preset`,`foregroundColor`,`backgroundColor`];function Oe(e){let t;return t=typeof e==`string`?{preset:e}:{...e},w(t.foregroundColor)?delete t.foregroundColor:t.foregroundColor=H(t.foregroundColor),w(t.backgroundColor)?delete t.backgroundColor:t.backgroundColor=H(t.backgroundColor),O(t,De)}function ke(e){return!w(e.color)}function Ae(e){return typeof e==`string`?V(e):ke(e)}function je(e){return!w(e.image)&&G(e.image)||!!e.linearGradient||!!e.radialGradient}function Me(e){return typeof e==`string`?G(e):je(e)}function Ne(e){return!w(e.image)&&!G(e.image)}function Pe(e){return typeof e==`string`?!V(e)&&!G(e):Ne(e)}function Fe(e){return!w(e.preset)}function Ie(e){return typeof e==`string`?!1:Fe(e)}function q(e){let t={enabled:e&&typeof e==`object`?e.enabled??!0:!0};return Ae(e)&&Object.assign(t,Se(e)),Me(e)&&Object.assign(t,we(e)),Pe(e)&&Object.assign(t,Ee(e)),Ie(e)&&Object.assign(t,Oe(e)),O(D(t),Array.from(new Set([`enabled`,...K,...Te,...Ce,...De])))}function Le(e){return typeof e==`string`?{...q(e)}:{...q(e),...O(e,[`fillWithShape`])}}function Re(){return{backgroundImage:`none`,backgroundSize:`auto, auto`,backgroundColor:`none`,backgroundColormap:`none`}}function ze(e){return D({start:e.start,end:e.end,mode:e.mode??`straight`})}function J(e){return typeof e==`string`?{...q(e)}:{...q(e),...O(e,[`width`,`style`,`lineCap`,`lineJoin`,`headEnd`,`tailEnd`])}}function Be(){return{outlineWidth:0,outlineOffset:0,outlineColor:`none`,outlineStyle:`none`}}function Ve(e){return typeof e==`string`?{enabled:!0,color:H(e)}:{...e,enabled:e.enabled??!0,color:w(e.color)?B:H(e.color)}}function He(){return{boxShadow:`none`}}var Ue=[`fill`,`outline`,`shadow`,`transform`,`transformOrigin`];function We(e){let t=O(e,Ue),{rotate:n,scaleX:r,scaleY:i,skewX:a,skewY:o,translateX:s,translateY:c}=e,l=[];return(s||c)&&l.push(`translate(${s||0}, ${c||0})`),n&&l.push(`rotate(${n}deg)`),(r||i)&&l.push(`scale(${r??1}, ${i??1})`),a&&l.push(`skewX(${a}deg)`),o&&l.push(`skewY(${o}deg)`),l.length>0&&(t.transform=l.join(` `)),(e.textStrokeWidth||e.textStrokeColor)&&(t.outline={color:e.textStrokeColor,width:e.textStrokeWidth}),e.color&&(t.fill={color:e.color}),(e.shadowOffsetX||e.shadowOffsetY||e.shadowBlur||e.shadowColor)&&(t.shadow={offsetX:e.shadowOffsetX,offsetY:e.shadowOffsetY,blur:e.shadowBlur,color:e.shadowColor}),t}function Y(e){let t=We(e);return D({fill:w(t.fill)?void 0:q(t.fill),outline:w(t.outline)?void 0:J(t.outline),shadow:w(t.shadow)?void 0:Ve(t.shadow),transform:w(t.transform)?void 0:t.transform,transformOrigin:t.transformOrigin})}function Ge(e){return typeof e==`string`?{...q(e)}:{...q(e),...O(e,[`fillWithShape`])}}var Ke=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,qe=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=Ke[n[e]&63];return t},Je=()=>qe(10),Ye=Je;function Xe(e){return typeof e==`string`?e.startsWith(`<svg`)?{enabled:!0,svg:e}:{enabled:!0,paths:[{data:e}]}:Array.isArray(e)?{enabled:!0,paths:e.map(e=>typeof e==`string`?{data:e}:e)}:e}function Ze(){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 Qe(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:`none`,transformOrigin:`center`}}function $e(){return{...Ze(),...Qe(),...He(),...Re(),...Be(),borderRadius:0,borderColor:`none`,borderStyle:`solid`,visibility:`visible`,filter:`none`,opacity:1,pointerEvents:`auto`,maskImage:`none`}}function et(){return{highlight:{},highlightImage:`none`,highlightReferImage:`none`,highlightColormap:`none`,highlightLine:`none`,highlightSize:`cover`,highlightThickness:`100%`}}function tt(){return{listStyle:{},listStyleType:`none`,listStyleImage:`none`,listStyleColormap:`none`,listStyleSize:`cover`,listStylePosition:`outside`}}function nt(){return{...et(),color:`#000000`,verticalAlign:`baseline`,letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:`normal`,fontFamily:``,fontStyle:`normal`,fontKerning:`normal`,textTransform:`none`,textOrientation:`mixed`,textDecoration:`none`}}function rt(){return{...tt(),writingMode:`horizontal-tb`,textWrap:`wrap`,textAlign:`start`,textIndent:0,lineHeight:1.2}}function it(){return{...rt(),...nt(),textStrokeWidth:0,textStrokeColor:`none`}}var at=[`textIndent`,`lineHeight`,`letterSpacing`,`wordSpacing`,`fontSize`,`textStrokeWidth`,`borderRadius`,`opacity`,`rotate`,`scaleX`,`scaleY`,`skewX`,`skewY`,`translateX`,`translateY`,`borderWidth`,`flex`,`flexGrow`,`flexShrink`];function X(e){let t=D({...e,color:w(e.color)?void 0:H(e.color),backgroundColor:w(e.backgroundColor)?void 0:H(e.backgroundColor),borderColor:w(e.borderColor)?void 0:H(e.borderColor),outlineColor:w(e.outlineColor)?void 0:H(e.outlineColor),shadowColor:w(e.shadowColor)?void 0:H(e.shadowColor),textStrokeColor:w(e.textStrokeColor)?void 0:H(e.textStrokeColor)});for(let e of at)if(e in t){let n=E(t[e]);n===void 0?delete t[e]:t[e]=n}return t}function ot(){return{...$e(),...it()}}var Z=/\r\n|\n\r|\n|\r/,st=RegExp(`${Z.source}|<br\\/>`,`g`),ct=RegExp(`^(${Z.source})$`),lt=`
2
- `;function ut(e){return Z.test(e)}function dt(e){return ct.test(e)}function ft(e){return e.replace(st,lt)}function Q(e){let t=[];function n(){return t[t.length-1]}function r(e,n,r){let i=e?X(e):{},a=n?q(n):void 0,o=r?J(r):void 0,s=D({...i,fill:a,outline:o,fragments:[]});return t[t.length-1]?.fragments.length===0?t[t.length-1]=s:t.push(s),s}function i(e=``,t,i,a){let o=t?X(t):{},s=i?q(i):void 0,c=a?J(a):void 0;Array.from(e).forEach(e=>{if(dt(e)){let{fragments:e,fill:t,outline:i,...a}=n()||r();e.length||e.push(D({...o,fill:s,outline:c,content:lt})),r(a,t,i)}else{let t=n()||r(),i=t.fragments[t.fragments.length-1];if(i){let{content:t,fill:n,outline:r,...a}=i;if(k(s,n)&&k(c,r)&&k(o,a)){i.content=`${t}${e}`;return}}t.fragments.push(D({...o,fill:s,outline:c,content:e}))}})}(Array.isArray(e)?e:[e]).forEach(e=>{if(typeof e==`string`)r(),i(e);else if(mt(e)){let{content:t,fill:n,outline:a,...o}=e;r(o,n,a),i(t)}else if(pt(e)){let{fragments:t,fill:n,outline:a,...o}=e;r(o,n,a),t.forEach(e=>{let{content:t,fill:n,outline:r,...a}=e;i(t,a,n,r)})}else Array.isArray(e)?(r(),e.forEach(e=>{if(typeof e==`string`)i(e);else if(mt(e)){let{content:t,fill:n,outline:r,...a}=e;i(t,a,n,r)}})):console.warn(`Failed to parse text content`,e)});let a=n();return a&&!a.fragments.length&&a.fragments.push({content:``}),t}function pt(e){return e&&typeof e==`object`&&`fragments`in e&&Array.isArray(e.fragments)}function mt(e){return e&&typeof e==`object`&&`content`in e&&typeof e.content==`string`}function ht(e){return D({type:e.type,intensities:e.intensities,maxFontSize:e.maxFontSize??100})}function gt(e){return typeof e==`string`||Array.isArray(e)?{enabled:!0,content:Q(e)}:D({enabled:e.enabled??!0,content:Q(e.content??``),style:e.style?X(e.style):void 0,deformation:e.deformation?ht(e.deformation):void 0,measureDom:e.measureDom,fonts:e.fonts,...Y(e),effects:e.effects?e.effects.map(e=>Y(e)):void 0})}function _t(e){return Q(e).map(e=>{let t=ft(e.fragments.flatMap(e=>e.content).join(``));return dt(t)?``:t}).join(lt)}function vt(e){return typeof e==`string`?{src:e}:e}function $(e){return D({id:e.id??Ye(),style:w(e.style)?void 0:X(e.style),text:w(e.text)?void 0:gt(e.text),background:w(e.background)?void 0:Le(e.background),shape:w(e.shape)?void 0:Xe(e.shape),foreground:w(e.foreground)?void 0:Ge(e.foreground),video:w(e.video)?void 0:vt(e.video),audio:w(e.audio)?void 0:t(e.audio),connection:w(e.connection)?void 0:ze(e.connection),...Y(e),children:e.children?.map(e=>$(e))})}function yt(e){return $(e)}function bt(e){let t={};for(let n in e.children){let r=$(e.children[n]);delete r.children,t[n]=r}return{...e,children:t}}function xt(e){let{children:t,...n}=e;function r(e){let{parentId:t,childrenIds:n,...r}=e;return{...r,children:[]}}let i={},a=[],o={...n,children:a};function s(e){if(!t[e]||i[e])return;let n=t[e],o=r(n);i[e]=o;let c=n.parentId;if(c){s(c);let n=t[c],r=i[c];if(!r)return;n?.childrenIds&&r?.children&&(r.children[n.childrenIds.indexOf(e)]=o)}else a.push(o)}for(let e in t)s(e);return o}e.EventEmitter=ae,e.Observable=ce,e.RawWeakMap=le,e.Reactivable=me,e.clearUndef=D,e.colorFillFields=K,e.defaultColor=B,e.defineProperty=de,e.effectFields=Ue,e.flatDocumentToDocument=xt,e.getDeclarations=N,e.getDefaultBackgroundStyle=Re,e.getDefaultElementStyle=$e,e.getDefaultHighlightStyle=et,e.getDefaultLayoutStyle=Ze,e.getDefaultListStyleStyle=tt,e.getDefaultOutlineStyle=Be,e.getDefaultShadowStyle=He,e.getDefaultStyle=ot,e.getDefaultTextInlineStyle=nt,e.getDefaultTextLineStyle=rt,e.getDefaultTextStyle=it,e.getDefaultTransformStyle=Qe,e.getNestedValue=A,e.getObjectValueByPath=oe,e.getPropertyDescriptor=L,e.gradientFillFields=Ce,e.hasCRLF=ut,e.idGenerator=Ye,e.imageFillFiedls=Te,e.isCRLF=dt,e.isColor=V,e.isColorFill=Ae,e.isColorFillObject=ke,e.isEqualObject=k,e.isFragmentObject=mt,e.isGradient=G,e.isGradientFill=Me,e.isGradientFillObject=je,e.isImageFill=Pe,e.isImageFillObject=Ne,e.isNone=w,e.isParagraphObject=pt,e.isPresetFill=Ie,e.isPresetFillObject=Fe,e.nanoid=Je,e.normalizeAudio=t,e.normalizeBackground=Le,e.normalizeCRLF=ft,e.normalizeColor=H,e.normalizeColorFill=Se,e.normalizeConnection=ze,e.normalizeDocument=yt,e.normalizeEffect=Y,e.normalizeElement=$,e.normalizeFill=q,e.normalizeFlatDocument=bt,e.normalizeForeground=Ge,e.normalizeGradient=xe,e.normalizeGradientFill=we,e.normalizeImageFill=Ee,e.normalizeNumber=E,e.normalizeOutline=J,e.normalizePresetFill=Oe,e.normalizeShadow=Ve,e.normalizeShape=Xe,e.normalizeStyle=X,e.normalizeText=gt,e.normalizeTextContent=Q,e.normalizeTextDeformation=ht,e.normalizeVideo=vt,e.parseColor=R,e.parseGradient=ge,e.pick=O,e.presetFillFiedls=De,e.property=fe,e.property2=pe,e.propertyOffsetFallback=I,e.propertyOffsetGet=F,e.propertyOffsetSet=P,e.round=T,e.setNestedValue=j,e.setObjectValueByPath=se,e.stringifyGradient=_e,e.textContentToString=_t});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.modernIdoc={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return typeof e==`string`?{src:e}:e}var n={grad:.9,turn:360,rad:360/(2*Math.PI)},r=function(e){return typeof e==`string`?e.length>0:typeof e==`number`},i=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=10**t),Math.round(n*e)/n+0},a=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e>t?e:t},o=function(e){return(e=isFinite(e)?e%360:0)>0?e:e+360},s=function(e){return{r:a(e.r,0,255),g:a(e.g,0,255),b:a(e.b,0,255),a:a(e.a)}},c=function(e){return{r:i(e.r),g:i(e.g),b:i(e.b),a:i(e.a,3)}},l=/^#([0-9a-f]{3,8})$/i,u=function(e){var t=e.toString(16);return t.length<2?`0`+t:t},d=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=Math.max(t,n,r),o=a-Math.min(t,n,r),s=o?a===t?(n-r)/o:a===n?2+(r-t)/o:4+(t-n)/o:0;return{h:60*(s<0?s+6:s),s:a?o/a*100:0,v:a/255*100,a:i}},f=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var a=Math.floor(t),o=r*(1-n),s=r*(1-(t-a)*n),c=r*(1-(1-t+a)*n),l=a%6;return{r:255*[r,s,o,o,c,r][l],g:255*[c,r,r,s,o,o][l],b:255*[o,o,c,r,r,s][l],a:i}},p=function(e){return{h:o(e.h),s:a(e.s,0,100),l:a(e.l,0,100),a:a(e.a)}},ee=function(e){return{h:i(e.h),s:i(e.s),l:i(e.l),a:i(e.a,3)}},m=function(e){return f((n=(t=e).s,{h:t.h,s:(n*=((r=t.l)<50?r:100-r)/100)>0?2*n/(r+n)*100:0,v:r+n,a:t.a}));var t,n,r},h=function(e){return{h:(t=d(e)).h,s:(i=(200-(n=t.s))*(r=t.v)/100)>0&&i<200?n*r/100/(i<=100?i:200-i)*100:0,l:i/2,a:t.a};var t,n,r,i},g=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,te=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,_=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,ne=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v={string:[[function(e){var t=l.exec(e);return t?(e=t[1]).length<=4?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?i(parseInt(e[3]+e[3],16)/255,2):1}:e.length===6||e.length===8?{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:e.length===8?i(parseInt(e.substr(6,2),16)/255,2):1}:null:null},`hex`],[function(e){var t=_.exec(e)||ne.exec(e);return t?t[2]!==t[4]||t[4]!==t[6]?null:s({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},`rgb`],[function(e){var t=g.exec(e)||te.exec(e);if(!t)return null;var r,i;return m(p({h:(r=t[1],i=t[2],i===void 0&&(i=`deg`),Number(r)*(n[i]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)}))},`hsl`]],object:[[function(e){var t=e.r,n=e.g,i=e.b,a=e.a,o=a===void 0?1:a;return r(t)&&r(n)&&r(i)?s({r:Number(t),g:Number(n),b:Number(i),a:Number(o)}):null},`rgb`],[function(e){var t=e.h,n=e.s,i=e.l,a=e.a,o=a===void 0?1:a;return!r(t)||!r(n)||!r(i)?null:m(p({h:Number(t),s:Number(n),l:Number(i),a:Number(o)}))},`hsl`],[function(e){var t=e.h,n=e.s,i=e.v,s=e.a,c=s===void 0?1:s;return!r(t)||!r(n)||!r(i)?null:f(function(e){return{h:o(e.h),s:a(e.s,0,100),v:a(e.v,0,100),a:a(e.a)}}({h:Number(t),s:Number(n),v:Number(i),a:Number(c)}))},`hsv`]]},y=function(e,t){for(var n=0;n<t.length;n++){var r=t[n][0](e);if(r)return[r,t[n][1]]}return[null,void 0]},re=function(e){return typeof e==`string`?y(e.trim(),v.string):typeof e==`object`&&e?y(e,v.object):[null,void 0]},b=function(e,t){var n=h(e);return{h:n.h,s:a(n.s+100*t,0,100),l:n.l,a:n.a}},x=function(e){return(299*e.r+587*e.g+114*e.b)/1e3/255},ie=function(e,t){var n=h(e);return{h:n.h,s:n.s,l:a(n.l+100*t,0,100),a:n.a}},S=function(){function e(e){this.parsed=re(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return e.prototype.isValid=function(){return this.parsed!==null},e.prototype.brightness=function(){return i(x(this.rgba),2)},e.prototype.isDark=function(){return x(this.rgba)<.5},e.prototype.isLight=function(){return x(this.rgba)>=.5},e.prototype.toHex=function(){return e=c(this.rgba),t=e.r,n=e.g,r=e.b,o=(a=e.a)<1?u(i(255*a)):``,`#`+u(t)+u(n)+u(r)+o;var e,t,n,r,a,o},e.prototype.toRgb=function(){return c(this.rgba)},e.prototype.toRgbString=function(){return e=c(this.rgba),t=e.r,n=e.g,r=e.b,(i=e.a)<1?`rgba(`+t+`, `+n+`, `+r+`, `+i+`)`:`rgb(`+t+`, `+n+`, `+r+`)`;var e,t,n,r,i},e.prototype.toHsl=function(){return ee(h(this.rgba))},e.prototype.toHslString=function(){return e=ee(h(this.rgba)),t=e.h,n=e.s,r=e.l,(i=e.a)<1?`hsla(`+t+`, `+n+`%, `+r+`%, `+i+`)`:`hsl(`+t+`, `+n+`%, `+r+`%)`;var e,t,n,r,i},e.prototype.toHsv=function(){return e=d(this.rgba),{h:i(e.h),s:i(e.s),v:i(e.v),a:i(e.a,3)};var e},e.prototype.invert=function(){return C({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},e.prototype.saturate=function(e){return e===void 0&&(e=.1),C(b(this.rgba,e))},e.prototype.desaturate=function(e){return e===void 0&&(e=.1),C(b(this.rgba,-e))},e.prototype.grayscale=function(){return C(b(this.rgba,-1))},e.prototype.lighten=function(e){return e===void 0&&(e=.1),C(ie(this.rgba,e))},e.prototype.darken=function(e){return e===void 0&&(e=.1),C(ie(this.rgba,-e))},e.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},e.prototype.alpha=function(e){return typeof e==`number`?C({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):i(this.rgba.a,3);var t},e.prototype.hue=function(e){var t=h(this.rgba);return typeof e==`number`?C({h:e,s:t.s,l:t.l,a:t.a}):i(t.h)},e.prototype.isEqual=function(e){return this.toHex()===C(e).toHex()},e}(),C=function(e){return e instanceof S?e:new S(e)},ae=class{eventListeners=new Map;addEventListener(e,t,n){let r={value:t,options:n},i=this.eventListeners.get(e);return i?Array.isArray(i)?i.push(r):this.eventListeners.set(e,[i,r]):this.eventListeners.set(e,r),this}removeEventListener(e,t,n){if(!t)return this.eventListeners.delete(e),this;let r=this.eventListeners.get(e);if(!r)return this;if(Array.isArray(r)){let i=[];for(let e=0,a=r.length;e<a;e++){let a=r[e];(a.value!==t||typeof n==`object`&&n?.once&&(typeof a.options==`boolean`||!a.options?.once))&&i.push(a)}i.length?this.eventListeners.set(e,i.length===1?i[0]:i):this.eventListeners.delete(e)}else r.value===t&&(typeof n==`boolean`||!n?.once||typeof r.options==`boolean`||r.options?.once)&&this.eventListeners.delete(e);return this}removeAllListeners(){return this.eventListeners.clear(),this}hasEventListener(e){return this.eventListeners.has(e)}dispatchEvent(e,...t){let n=this.eventListeners.get(e);if(n){if(Array.isArray(n))for(let r=n.length,i=0;i<r;i++){let r=n[i];typeof r.options==`object`&&r.options?.once&&this.off(e,r.value,r.options),r.value.apply(this,t)}else typeof n.options==`object`&&n.options?.once&&this.off(e,n.value,n.options),n.value.apply(this,t);return!0}else return!1}on(e,t,n){return this.addEventListener(e,t,n)}once(e,t){return this.addEventListener(e,t,{once:!0})}off(e,t,n){return this.removeEventListener(e,t,n)}emit(e,...t){this.dispatchEvent(e,...t)}};function w(e){return e==null||e===``||e===`none`}function T(e,t=0,n=10**t){return Math.round(n*e)/n+0}function E(e,t){if(typeof e==`number`)return Number.isFinite(e)?e:t;if(typeof e==`string`){let n=Number.parseFloat(e);return Number.isFinite(n)?n:t}return t}function D(e,t=!1){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return t?e.map(e=>D(e,t)):e;let n={};for(let r in e){let i=e[r];i!=null&&(t?n[r]=D(i,t):n[r]=i)}return n}function O(e,t){let n={};return t.forEach(t=>{t in e&&(n[t]=e[t])}),n}function k(e,t){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){let n=Array.from(new Set([...Object.keys(e),...Object.keys(t)]));return!n.length||n.every(n=>e[n]===t[n])}return!1}function A(e,t,n){let r=t.length-1;if(r<0)return e===void 0?n:e;for(let i=0;i<r;i++){if(e==null)return n;e=e[t[i]]}return e==null||e[t[r]]===void 0?n:e[t[r]]}function j(e,t,n){let r=t.length-1;for(let n=0;n<r;n++)typeof e[t[n]]!=`object`&&(e[t[n]]={}),e=e[t[n]];e[t[r]]=n}function oe(e,t,n){return e==null||!t||typeof t!=`string`?n:e[t]===void 0?(t=t.replace(/\[(\w+)\]/g,`.$1`),t=t.replace(/^\./,``),A(e,t.split(`.`),n)):e[t]}function se(e,t,n){if(!(typeof e!=`object`||!t))return t=t.replace(/\[(\w+)\]/g,`.$1`),t=t.replace(/^\./,``),j(e,t.split(`.`),n)}var ce=class{_eventListeners={};on(e,t){let n=this._eventListeners[e];n===void 0&&(n=[],this._eventListeners[e]=n);let r=n.indexOf(t);return r>-1&&n.splice(r,1),n.push(t),this}once(e,t){let n=(...r)=>{this.off(e,n),t.apply(this,r)};return this.on(e,n),this}off(e,t){let n=this._eventListeners[e];if(n!==void 0){let e=n.indexOf(t);e>-1&&n.splice(e,1)}return this}emit(e,...t){let n=this._eventListeners[e];if(n!==void 0){let e=n.length;if(e>0)for(let r=0;r<e;r++)n[r].apply(this,t)}return this}removeAllListeners(){return this._eventListeners={},this}hasEventListener(e){return!!this._eventListeners[e]}destroy(){this.removeAllListeners()}},le=class{_map=new WeakMap;_toRaw(e){if(e&&typeof e==`object`){let t=e.__v_raw;t&&(e=this._toRaw(t))}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,t){return this._map.set(this._toRaw(e),this._toRaw(t)),this}},ue=Symbol.for(`declarations`),M=Symbol.for(`inited`);function N(e){let t;if(Object.hasOwn(e,ue))t=e[ue];else{let n=Object.getPrototypeOf(e);t={...n?N(n):{}},e[ue]=t}return t}function P(e,t,n,r){let{alias:i,internalKey:a}=r,o=e[t];i?se(e,i,n):e[a]=n,e.onUpdateProperty?.(t,n??I(e,t,r),o)}function F(e,t,n){let{alias:r,internalKey:i}=n,a;return a=r?oe(e,r):e[i],a??=I(e,t,n),a}function I(e,t,n){let{default:r,fallback:i}=n,a;if(r!==void 0&&!e[M]?.[t]){e[M]||(e[M]={}),e[M][t]=!0;let n=typeof r==`function`?r():r;n!==void 0&&(e[t]=n,a=n)}return a===void 0&&i!==void 0&&(a=typeof i==`function`?i():i),a}function de(e,t){function n(){return this.getProperty?this.getProperty(e):F(this,e,t)}function r(n){this.setProperty?this.setProperty(e,n):P(this,e,n,t)}return{get:n,set:r}}function fe(e,t,n={}){let r={...n,internalKey:Symbol.for(t)},i=N(e);i[t]=r;let{get:a,set:o}=de(t,r);Object.defineProperty(e.prototype,t,{get(){return a.call(this)},set(e){o.call(this,e)},configurable:!0,enumerable:!0})}function pe(e){return function(t,n){if(typeof n!=`string`)throw TypeError(`Failed to @property decorator, prop name cannot be a symbol`);fe(t.constructor,n,e)}}function me(e={}){return function(t,n){let r=n.name;if(typeof r!=`string`)throw TypeError(`Failed to @property decorator, prop name cannot be a symbol`);let i={...e,internalKey:Symbol.for(r)},a=de(r,i);return{init(e){let t=N(this.constructor);return t[r]=i,a.set.call(this,e),e},get(){return a.get.call(this)},set(e){a.set.call(this,e)}}}}var he=class extends ce{_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,t){this._properties[e]=t}offsetGetProperties(e){let t=this._properties,n=Object.keys(t),r={};for(let i,a,o=0;o<n.length;o++)i=n[o],a=t[i],a!==void 0&&(!e||e.includes(i))&&(a&&typeof a==`object`?`toJSON`in a?r[i]=a.toJSON():Array.isArray(a)?r[i]=[...a]:r[i]={...a}:r[i]=a);return r}offsetSetProperties(e){if(e&&typeof e==`object`){let t=Object.keys(e);for(let n,r=0;r<t.length;r++)n=t[r],this.offsetSetProperty(n,e[n])}return this}getProperty(e){let t=this.getPropertyDeclaration(e);if(t){if(t.internal||t.alias)return F(this,e,t);{let n=this._propertyAccessor,r;return r=n&&n.getProperty?n.getProperty(e):this.offsetGetProperty(e),r??I(this,e,t)}}}setProperty(e,t){let n=this.getPropertyDeclaration(e);if(n)if(n.internal||n.alias)P(this,e,t,n);else{let r=this.getProperty(e);this._propertyAccessor?.setProperty?.(e,t),this.offsetSetProperty(e,t),this.onUpdateProperty?.(e,t??I(this,e,n),r)}}getProperties(e){let t={},n=this.getPropertyDeclarations(),r=Object.keys(n);for(let i=0,a=r.length;i<a;i++){let a=r[i],o=n[a];o.internal||o.alias||(!e||e.includes(a))&&(t[a]=this.getProperty(a))}return t}setProperties(e){if(e&&typeof e==`object`)for(let t in e)this.setProperty(t,e[t]);return this}resetProperties(){let e=this.getPropertyDeclarations(),t=Object.keys(e);for(let n=0,r=t.length;n<r;n++){let r=t[n],i=e[r];this.setProperty(r,typeof i.default==`function`?i.default():i.default)}return this}getPropertyDeclarations(){return N(this.constructor)}getPropertyDeclaration(e){return this.getPropertyDeclarations()[e]}setPropertyAccessor(e){let t=this.getPropertyDeclarations(),n=[];if(e&&e.getProperty&&e.setProperty){let r=Object.keys(t);for(let i=0,a=r.length;i<a;i++){let a=r[i],o=t[a];if(o.internal||o.alias)continue;let s=this.offsetGetProperty(a),c=e.getProperty(a);c!==void 0&&!Object.is(s,c)&&(this.offsetSetProperty(a,c),n.push({key:a,newValue:c,oldValue:s}))}}this._propertyAccessor=e;for(let e=0,t=n.length;e<t;e++){let{key:t,newValue:r,oldValue:i}=n[e];this.requestUpdate(t,r,i)}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(),!1)}onUpdate(){this._update(this._updatedProperties),this._updatedProperties={}}onUpdateProperty(e,t,n){Object.is(t,n)||this.requestUpdate(e,t,n)}requestUpdate(e,t,n){e!==void 0&&(this._updatedProperties[e]=n,this._changedProperties.add(e),this._updateProperty(e,t,n),this.emit(`updateProperty`,e,t,n)),this._updating||(this._updatingPromise=this._enqueueUpdate())}_update(e){}_updateProperty(e,t,n){}toJSON(){return this.offsetGetProperties()}clone(){return new this.constructor(this.toJSON())}destroy(){this.emit(`destroy`),super.destroy()}};function ge(e){let t;return t=typeof e==`number`?{r:e>>24&255,g:e>>16&255,b:e>>8&255,a:(e&255)/255}:e,C(t)}function _e(e){return{r:T(e.r),g:T(e.g),b:T(e.b),a:T(e.a,3)}}function L(e){let t=e.toString(16);return t.length<2?`0${t}`:t}var ve=`#000000FF`;function R(e){return ge(e).isValid()}function z(e,t=!1){let n=ge(e);if(!n.isValid()){if(typeof e==`string`)return e;let n=`Failed to normalizeColor ${e}`;if(t)throw Error(n);return console.warn(n),ve}let{r,g:i,b:a,a:o}=_e(n.rgba);return`#${L(r)}${L(i)}${L(a)}${L(T(o*255))}`}var B=B||{};B.parse=(function(){let e={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},t=``;function n(e){let n=Error(`${t}: ${e}`);throw n.source=t,n}function r(){let e=i();return t.length>0&&n(`Invalid input not EOF`),e}function i(){return _(a)}function a(){return o(`linear-gradient`,e.linearGradient,c)||o(`repeating-linear-gradient`,e.repeatingLinearGradient,c)||o(`radial-gradient`,e.radialGradient,d)||o(`repeating-radial-gradient`,e.repeatingRadialGradient,d)}function o(t,r,i){return s(r,r=>{let a=i();return a&&(A(e.comma)||n(`Missing comma before color stops`)),{type:t,orientation:a,colorStops:_(ne)}})}function s(t,r){let i=A(t);if(i){A(e.startCall)||n(`Missing (`);let t=r(i);return A(e.endCall)||n(`Missing )`),t}}function c(){let t=l();if(t)return t;let n=k(`position-keyword`,e.positionKeywords,1);return n?{type:`directional`,value:n.value}:u()}function l(){return k(`directional`,e.sideOrCorner,1)}function u(){return k(`angular`,e.angleValue,1)||k(`angular`,e.radianValue,1)}function d(){let n,r=f(),i;return r&&(n=[],n.push(r),i=t,A(e.comma)&&(r=f(),r?n.push(r):t=i)),n}function f(){let e=p()||ee();if(e)e.at=h();else{let t=m();if(t){e=t;let n=h();n&&(e.at=n)}else{let t=h();if(t)e={type:`default-radial`,at:t};else{let t=g();t&&(e={type:`default-radial`,at:t})}}}return e}function p(){let e=k(`shape`,/^(circle)/i,0);return e&&(e.style=O()||m()),e}function ee(){let e=k(`shape`,/^(ellipse)/i,0);return e&&(e.style=g()||T()||m()),e}function m(){return k(`extent-keyword`,e.extentKeywords,1)}function h(){if(k(`position`,/^at/,0)){let e=g();return e||n(`Missing positioning value`),e}}function g(){let e=te();if(e.x||e.y)return{type:`position`,value:e}}function te(){return{x:T(),y:T()}}function _(t){let r=t(),i=[];if(r)for(i.push(r);A(e.comma);)r=t(),r?i.push(r):n(`One extra comma`);return i}function ne(){let e=v();return e||n(`Expected color definition`),e.length=T(),e}function v(){return re()||C()||S()||x()||b()||ie()||y()}function y(){return k(`literal`,e.literalColor,0)}function re(){return k(`hex`,e.hexColor,1)}function b(){return s(e.rgbColor,()=>({type:`rgb`,value:_(w)}))}function x(){return s(e.rgbaColor,()=>({type:`rgba`,value:_(w)}))}function ie(){return s(e.varColor,()=>({type:`var`,value:ae()}))}function S(){return s(e.hslColor,()=>{A(e.percentageValue)&&n(`HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage`);let t=w();A(e.comma);let r=A(e.percentageValue),i=r?r[1]:null;A(e.comma),r=A(e.percentageValue);let a=r?r[1]:null;return(!i||!a)&&n(`Expected percentage value for saturation and lightness in HSL`),{type:`hsl`,value:[t,i,a]}})}function C(){return s(e.hslaColor,()=>{let t=w();A(e.comma);let r=A(e.percentageValue),i=r?r[1]:null;A(e.comma),r=A(e.percentageValue);let a=r?r[1]:null;A(e.comma);let o=w();return(!i||!a)&&n(`Expected percentage value for saturation and lightness in HSLA`),{type:`hsla`,value:[t,i,a,o]}})}function ae(){return A(e.variableName)[1]}function w(){return A(e.number)[1]}function T(){return k(`%`,e.percentageValue,1)||E()||D()||O()}function E(){return k(`position-keyword`,e.positionKeywords,1)}function D(){return s(e.calcValue,()=>{let e=1,r=0;for(;e>0&&r<t.length;){let n=t.charAt(r);n===`(`?e++:n===`)`&&e--,r++}e>0&&n(`Missing closing parenthesis in calc() expression`);let i=t.substring(0,r-1);return j(r-1),{type:`calc`,value:i}})}function O(){return k(`px`,e.pixelValue,1)||k(`em`,e.emValue,1)}function k(e,t,n){let r=A(t);if(r)return{type:e,value:r[n]}}function A(e){let n,r;return r=/^\s+/.exec(t),r&&j(r[0].length),n=e.exec(t),n&&j(n[0].length),n}function j(e){t=t.substr(e)}return function(e){return t=e.toString().trim(),t.endsWith(`;`)&&(t=t.slice(0,-1)),r()}})();var ye=B.parse.bind(B),V=V||{};V.stringify=(function(){var e={"visit_linear-gradient":function(t){return e.visit_gradient(t)},"visit_repeating-linear-gradient":function(t){return e.visit_gradient(t)},"visit_radial-gradient":function(t){return e.visit_gradient(t)},"visit_repeating-radial-gradient":function(t){return e.visit_gradient(t)},visit_gradient:function(t){var n=e.visit(t.orientation);return n&&(n+=`, `),t.type+`(`+n+e.visit(t.colorStops)+`)`},visit_shape:function(t){var n=t.value,r=e.visit(t.at),i=e.visit(t.style);return i&&(n+=` `+i),r&&(n+=` at `+r),n},"visit_default-radial":function(t){var n=``,r=e.visit(t.at);return r&&(n+=r),n},"visit_extent-keyword":function(t){var n=t.value,r=e.visit(t.at);return r&&(n+=` at `+r),n},"visit_position-keyword":function(e){return e.value},visit_position:function(t){return e.visit(t.value.x)+` `+e.visit(t.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(t){return e.visit_color(t.value,t)},visit_hex:function(t){return e.visit_color(`#`+t.value,t)},visit_rgb:function(t){return e.visit_color(`rgb(`+t.value.join(`, `)+`)`,t)},visit_rgba:function(t){return e.visit_color(`rgba(`+t.value.join(`, `)+`)`,t)},visit_hsl:function(t){return e.visit_color(`hsl(`+t.value[0]+`, `+t.value[1]+`%, `+t.value[2]+`%)`,t)},visit_hsla:function(t){return e.visit_color(`hsla(`+t.value[0]+`, `+t.value[1]+`%, `+t.value[2]+`%, `+t.value[3]+`)`,t)},visit_var:function(t){return e.visit_color(`var(`+t.value+`)`,t)},visit_color:function(t,n){var r=t,i=e.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(t){var n=``,r=t.length;return t.forEach(function(t,i){n+=e.visit(t),i<r-1&&(n+=`, `)}),n},visit_object:function(t){return t.width&&t.height?e.visit(t.width)+` `+e.visit(t.height):``},visit:function(t){if(!t)return``;if(t instanceof Array)return e.visit_array(t);if(typeof t==`object`&&!t.type)return e.visit_object(t);if(t.type){var n=e[`visit_`+t.type];if(n)return n(t);throw Error(`Missing visitor visit_`+t.type)}else throw Error(`Invalid node.`)}};return function(t){return e.visit(t)}})();var be=V.stringify.bind(V);function xe(e){let t=e.length-1;return e.map((e,n)=>{let r=e.value,i=T(n/t,3),a=`#00000000`;switch(e.type){case`rgb`:a=z({r:Number(r[0]??0),g:Number(r[1]??0),b:Number(r[2]??0)});break;case`rgba`:a=z({r:Number(r[0]??0),g:Number(r[1]??0),b:Number(r[2]??0),a:Number(r[3]??0)});break;case`literal`:a=z(e.value);break;case`hex`:a=z(`#${e.value}`);break}switch(e.length?.type){case`%`:i=Number(e.length.value)/100;break;case`px`:break;case`em`:break}return{offset:i,color:a}})}function Se(e){let t=0;switch(e.orientation?.type){case`angular`:t=Number(e.orientation.value);break;case`directional`:break}return{type:`linear-gradient`,angle:t,stops:xe(e.colorStops)}}function Ce(e){return e.orientation?.map(e=>{switch(e?.type){default:return null}}),{type:`radial-gradient`,stops:xe(e.colorStops)}}function H(e){return e.startsWith(`linear-gradient(`)||e.startsWith(`radial-gradient(`)}function we(e){return ye(e).map(e=>{switch(e?.type){case`linear-gradient`:return Se(e);case`repeating-linear-gradient`:return{...Se(e),repeat:!0};case`radial-gradient`:return Ce(e);case`repeating-radial-gradient`:return{...Ce(e),repeat:!0};default:return}}).filter(Boolean)}var U=[`color`];function Te(e){let t;return t=typeof e==`string`?{color:e}:{...e},t.color&&=z(t.color),O(t,U)}var W=[`linearGradient`,`radialGradient`,`rotateWithShape`];function Ee(e){let t;if(t=typeof e==`string`?{image:e}:{...e},t.image){let{type:e,...n}=we(t.image)[0]??{};switch(e){case`radial-gradient`:return{radialGradient:n};case`linear-gradient`:return{linearGradient:n}}}return O(t,W)}var G=[`image`,`cropRect`,`stretchRect`,`tile`,`dpi`,`opacity`,`rotateWithShape`];function De(e){let t;return t=typeof e==`string`?{image:e}:{...e},O(t,G)}var K=[`preset`,`foregroundColor`,`backgroundColor`];function Oe(e){let t;return t=typeof e==`string`?{preset:e}:{...e},w(t.foregroundColor)?delete t.foregroundColor:t.foregroundColor=z(t.foregroundColor),w(t.backgroundColor)?delete t.backgroundColor:t.backgroundColor=z(t.backgroundColor),O(t,K)}function ke(e){return!w(e.color)}function Ae(e){return typeof e==`string`?R(e):ke(e)}function je(e){return!w(e.image)&&H(e.image)||!!e.linearGradient||!!e.radialGradient}function Me(e){return typeof e==`string`?H(e):je(e)}function Ne(e){return!w(e.image)&&!H(e.image)}function Pe(e){return typeof e==`string`?!R(e)&&!H(e):Ne(e)}function Fe(e){return!w(e.preset)}function Ie(e){return typeof e==`string`?!1:Fe(e)}function q(e){let t={enabled:e&&typeof e==`object`?e.enabled??!0:!0};return Ae(e)&&Object.assign(t,Te(e)),Me(e)&&Object.assign(t,Ee(e)),Pe(e)&&Object.assign(t,De(e)),Ie(e)&&Object.assign(t,Oe(e)),O(D(t),Array.from(new Set([`enabled`,...U,...G,...W,...K])))}function J(e){return typeof e==`string`?{...q(e)}:{...q(e),...O(e,[`fillWithShape`])}}function Le(){return{backgroundImage:`none`,backgroundSize:`auto, auto`,backgroundColor:`none`,backgroundColormap:`none`}}function Re(e){return(e??[]).map(e=>E(e)??0)}function ze(e){return D({name:e.name,values:Re(e.values),xValues:e.xValues?Re(e.xValues):void 0,color:e.color})}function Be(e){return D({title:e.title,min:E(e.min),max:E(e.max),visible:e.visible})}function Ve(e){return D({enabled:e.enabled??!0,type:e.type??`column`,grouping:e.grouping,categories:e.categories??[],series:(e.series??[]).map(ze),title:e.title,legend:e.legend,categoryAxis:e.categoryAxis?Be(e.categoryAxis):void 0,valueAxis:e.valueAxis?Be(e.valueAxis):void 0})}function He(e){return D({start:e.start,end:e.end,mode:e.mode??`straight`})}function Y(e){return typeof e==`string`?{...q(e)}:{...q(e),...O(e,[`width`,`style`,`lineCap`,`lineJoin`,`headEnd`,`tailEnd`])}}function Ue(){return{outlineWidth:0,outlineOffset:0,outlineColor:`none`,outlineStyle:`none`}}function We(e){return typeof e==`string`?{enabled:!0,color:z(e)}:{...e,enabled:e.enabled??!0,color:w(e.color)?ve:z(e.color)}}function Ge(){return{boxShadow:`none`}}var Ke=[`fill`,`outline`,`shadow`,`transform`,`transformOrigin`];function qe(e){let t=O(e,Ke),{rotate:n,scaleX:r,scaleY:i,skewX:a,skewY:o,translateX:s,translateY:c}=e,l=[];return(s||c)&&l.push(`translate(${s||0}, ${c||0})`),n&&l.push(`rotate(${n}deg)`),(r||i)&&l.push(`scale(${r??1}, ${i??1})`),a&&l.push(`skewX(${a}deg)`),o&&l.push(`skewY(${o}deg)`),l.length>0&&(t.transform=l.join(` `)),(e.textStrokeWidth||e.textStrokeColor)&&(t.outline={color:e.textStrokeColor,width:e.textStrokeWidth}),e.color&&(t.fill={color:e.color}),(e.shadowOffsetX||e.shadowOffsetY||e.shadowBlur||e.shadowColor)&&(t.shadow={offsetX:e.shadowOffsetX,offsetY:e.shadowOffsetY,blur:e.shadowBlur,color:e.shadowColor}),t}function X(e){let t=qe(e);return D({fill:w(t.fill)?void 0:q(t.fill),outline:w(t.outline)?void 0:Y(t.outline),shadow:w(t.shadow)?void 0:We(t.shadow),transform:w(t.transform)?void 0:t.transform,transformOrigin:t.transformOrigin})}function Je(e){return typeof e==`string`?{...q(e)}:{...q(e),...O(e,[`fillWithShape`])}}var Ye=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,Xe=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=Ye[n[e]&63];return t},Ze=()=>Xe(10),Qe=Ze;function $e(e){return typeof e==`string`?e.startsWith(`<svg`)?{enabled:!0,svg:e}:{enabled:!0,paths:[{data:e}]}:Array.isArray(e)?{enabled:!0,paths:e.map(e=>typeof e==`string`?{data:e}:e)}:e}function et(){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 tt(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:`none`,transformOrigin:`center`}}function nt(){return{...et(),...tt(),...Ge(),...Le(),...Ue(),borderRadius:0,borderColor:`none`,borderStyle:`solid`,visibility:`visible`,filter:`none`,opacity:1,pointerEvents:`auto`,maskImage:`none`}}function rt(){return{highlight:{},highlightImage:`none`,highlightReferImage:`none`,highlightColormap:`none`,highlightLine:`none`,highlightSize:`cover`,highlightThickness:`100%`}}function it(){return{listStyle:{},listStyleType:`none`,listStyleImage:`none`,listStyleColormap:`none`,listStyleSize:`cover`,listStylePosition:`outside`}}function at(){return{...rt(),color:`#000000`,verticalAlign:`baseline`,letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:`normal`,fontFamily:``,fontStyle:`normal`,fontKerning:`normal`,textTransform:`none`,textOrientation:`mixed`,textDecoration:`none`}}function ot(){return{...it(),writingMode:`horizontal-tb`,textWrap:`wrap`,textAlign:`start`,textIndent:0,lineHeight:1.2}}function st(){return{...ot(),...at(),textStrokeWidth:0,textStrokeColor:`none`}}var ct=[`textIndent`,`lineHeight`,`letterSpacing`,`wordSpacing`,`fontSize`,`textStrokeWidth`,`borderRadius`,`opacity`,`rotate`,`scaleX`,`scaleY`,`skewX`,`skewY`,`translateX`,`translateY`,`borderWidth`,`flex`,`flexGrow`,`flexShrink`];function Z(e){let t=D({...e,color:w(e.color)?void 0:z(e.color),backgroundColor:w(e.backgroundColor)?void 0:z(e.backgroundColor),borderColor:w(e.borderColor)?void 0:z(e.borderColor),outlineColor:w(e.outlineColor)?void 0:z(e.outlineColor),shadowColor:w(e.shadowColor)?void 0:z(e.shadowColor),textStrokeColor:w(e.textStrokeColor)?void 0:z(e.textStrokeColor)});for(let e of ct)if(e in t){let n=E(t[e]);n===void 0?delete t[e]:t[e]=n}return t}function lt(){return{...nt(),...st()}}function ut(e){return D({width:E(e.width)})}function dt(e){return D({height:E(e.height)})}function ft(e){return D({row:E(e.row)??0,col:E(e.col)??0,rowSpan:E(e.rowSpan),colSpan:E(e.colSpan),children:(e.children??[]).map(e=>$(e)),background:w(e.background)?void 0:J(e.background),style:w(e.style)?void 0:Z(e.style)})}function pt(e){return D({enabled:e.enabled??!0,columns:(e.columns??[]).map(ut),rows:(e.rows??[]).map(dt),cells:(e.cells??[]).map(ft)})}var mt=/\r\n|\n\r|\n|\r/,ht=RegExp(`${mt.source}|<br\\/>`,`g`),gt=RegExp(`^(${mt.source})$`),_t=`
2
+ `;function vt(e){return mt.test(e)}function yt(e){return gt.test(e)}function bt(e){return e.replace(ht,_t)}function Q(e){let t=[];function n(){return t[t.length-1]}function r(e,n,r){let i=e?Z(e):{},a=n?q(n):void 0,o=r?Y(r):void 0,s=D({...i,fill:a,outline:o,fragments:[]});return t[t.length-1]?.fragments.length===0?t[t.length-1]=s:t.push(s),s}function i(e=``,t,i,a){let o=t?Z(t):{},s=i?q(i):void 0,c=a?Y(a):void 0;Array.from(e).forEach(e=>{if(yt(e)){let{fragments:e,fill:t,outline:i,...a}=n()||r();e.length||e.push(D({...o,fill:s,outline:c,content:_t})),r(a,t,i)}else{let t=n()||r(),i=t.fragments[t.fragments.length-1];if(i){let{content:t,fill:n,outline:r,...a}=i;if(k(s,n)&&k(c,r)&&k(o,a)){i.content=`${t}${e}`;return}}t.fragments.push(D({...o,fill:s,outline:c,content:e}))}})}(Array.isArray(e)?e:[e]).forEach(e=>{if(typeof e==`string`)r(),i(e);else if(St(e)){let{content:t,fill:n,outline:a,...o}=e;r(o,n,a),i(t)}else if(xt(e)){let{fragments:t,fill:n,outline:a,...o}=e;r(o,n,a),t.forEach(e=>{let{content:t,fill:n,outline:r,...a}=e;i(t,a,n,r)})}else Array.isArray(e)?(r(),e.forEach(e=>{if(typeof e==`string`)i(e);else if(St(e)){let{content:t,fill:n,outline:r,...a}=e;i(t,a,n,r)}})):console.warn(`Failed to parse text content`,e)});let a=n();return a&&!a.fragments.length&&a.fragments.push({content:``}),t}function xt(e){return e&&typeof e==`object`&&`fragments`in e&&Array.isArray(e.fragments)}function St(e){return e&&typeof e==`object`&&`content`in e&&typeof e.content==`string`}function Ct(e){return D({type:e.type,intensities:e.intensities,maxFontSize:e.maxFontSize??100})}function wt(e){return typeof e==`string`||Array.isArray(e)?{enabled:!0,content:Q(e)}:D({enabled:e.enabled??!0,content:Q(e.content??``),style:e.style?Z(e.style):void 0,deformation:e.deformation?Ct(e.deformation):void 0,measureDom:e.measureDom,fonts:e.fonts,...X(e),effects:e.effects?e.effects.map(e=>X(e)):void 0})}function Tt(e){return Q(e).map(e=>{let t=bt(e.fragments.flatMap(e=>e.content).join(``));return yt(t)?``:t}).join(_t)}function Et(e){return typeof e==`string`?{src:e}:e}function $(e){return D({id:e.id??Qe(),style:w(e.style)?void 0:Z(e.style),text:w(e.text)?void 0:wt(e.text),background:w(e.background)?void 0:J(e.background),shape:w(e.shape)?void 0:$e(e.shape),foreground:w(e.foreground)?void 0:Je(e.foreground),video:w(e.video)?void 0:Et(e.video),audio:w(e.audio)?void 0:t(e.audio),connection:w(e.connection)?void 0:He(e.connection),table:w(e.table)?void 0:pt(e.table),chart:w(e.chart)?void 0:Ve(e.chart),...X(e),children:e.children?.map(e=>$(e))})}function Dt(e){return $(e)}function Ot(e){let t={};for(let n in e.children){let r=$(e.children[n]);delete r.children,t[n]=r}return{...e,children:t}}function kt(e){let{children:t,...n}=e;function r(e){let{parentId:t,childrenIds:n,...r}=e;return{...r,children:[]}}let i={},a=[],o={...n,children:a};function s(e){if(!t[e]||i[e])return;let n=t[e],o=r(n);i[e]=o;let c=n.parentId;if(c){s(c);let n=t[c],r=i[c];if(!r)return;n?.childrenIds&&r?.children&&(r.children[n.childrenIds.indexOf(e)]=o)}else a.push(o)}for(let e in t)s(e);return o}e.EventEmitter=ae,e.Observable=ce,e.RawWeakMap=le,e.Reactivable=he,e.clearUndef=D,e.colorFillFields=U,e.defaultColor=ve,e.defineProperty=fe,e.effectFields=Ke,e.flatDocumentToDocument=kt,e.getDeclarations=N,e.getDefaultBackgroundStyle=Le,e.getDefaultElementStyle=nt,e.getDefaultHighlightStyle=rt,e.getDefaultLayoutStyle=et,e.getDefaultListStyleStyle=it,e.getDefaultOutlineStyle=Ue,e.getDefaultShadowStyle=Ge,e.getDefaultStyle=lt,e.getDefaultTextInlineStyle=at,e.getDefaultTextLineStyle=ot,e.getDefaultTextStyle=st,e.getDefaultTransformStyle=tt,e.getNestedValue=A,e.getObjectValueByPath=oe,e.getPropertyDescriptor=de,e.gradientFillFields=W,e.hasCRLF=vt,e.idGenerator=Qe,e.imageFillFiedls=G,e.isCRLF=yt,e.isColor=R,e.isColorFill=Ae,e.isColorFillObject=ke,e.isEqualObject=k,e.isFragmentObject=St,e.isGradient=H,e.isGradientFill=Me,e.isGradientFillObject=je,e.isImageFill=Pe,e.isImageFillObject=Ne,e.isNone=w,e.isParagraphObject=xt,e.isPresetFill=Ie,e.isPresetFillObject=Fe,e.nanoid=Ze,e.normalizeAudio=t,e.normalizeBackground=J,e.normalizeCRLF=bt,e.normalizeChart=Ve,e.normalizeColor=z,e.normalizeColorFill=Te,e.normalizeConnection=He,e.normalizeDocument=Dt,e.normalizeEffect=X,e.normalizeElement=$,e.normalizeFill=q,e.normalizeFlatDocument=Ot,e.normalizeForeground=Je,e.normalizeGradient=we,e.normalizeGradientFill=Ee,e.normalizeImageFill=De,e.normalizeNumber=E,e.normalizeOutline=Y,e.normalizePresetFill=Oe,e.normalizeShadow=We,e.normalizeShape=$e,e.normalizeStyle=Z,e.normalizeTable=pt,e.normalizeText=wt,e.normalizeTextContent=Q,e.normalizeTextDeformation=Ct,e.normalizeVideo=Et,e.parseColor=ge,e.parseGradient=ye,e.pick=O,e.presetFillFiedls=K,e.property=pe,e.property2=me,e.propertyOffsetFallback=I,e.propertyOffsetGet=F,e.propertyOffsetSet=P,e.round=T,e.setNestedValue=j,e.setObjectValueByPath=se,e.stringifyGradient=be,e.textContentToString=Tt});
package/dist/index.mjs CHANGED
@@ -1441,6 +1441,39 @@ function getDefaultBackgroundStyle() {
1441
1441
  };
1442
1442
  }
1443
1443
 
1444
+ function normalizeValues(values) {
1445
+ return (values ?? []).map((v) => normalizeNumber(v) ?? 0);
1446
+ }
1447
+ function normalizeChartSeries(series) {
1448
+ return clearUndef({
1449
+ name: series.name,
1450
+ values: normalizeValues(series.values),
1451
+ xValues: series.xValues ? normalizeValues(series.xValues) : void 0,
1452
+ color: series.color
1453
+ });
1454
+ }
1455
+ function normalizeChartAxis(axis) {
1456
+ return clearUndef({
1457
+ title: axis.title,
1458
+ min: normalizeNumber(axis.min),
1459
+ max: normalizeNumber(axis.max),
1460
+ visible: axis.visible
1461
+ });
1462
+ }
1463
+ function normalizeChart(chart) {
1464
+ return clearUndef({
1465
+ enabled: chart.enabled ?? true,
1466
+ type: chart.type ?? "column",
1467
+ grouping: chart.grouping,
1468
+ categories: chart.categories ?? [],
1469
+ series: (chart.series ?? []).map(normalizeChartSeries),
1470
+ title: chart.title,
1471
+ legend: chart.legend,
1472
+ categoryAxis: chart.categoryAxis ? normalizeChartAxis(chart.categoryAxis) : void 0,
1473
+ valueAxis: chart.valueAxis ? normalizeChartAxis(chart.valueAxis) : void 0
1474
+ });
1475
+ }
1476
+
1444
1477
  function normalizeConnection(connection) {
1445
1478
  return clearUndef({
1446
1479
  start: connection.start,
@@ -1800,6 +1833,36 @@ function getDefaultStyle() {
1800
1833
  };
1801
1834
  }
1802
1835
 
1836
+ function normalizeTableColumn(column) {
1837
+ return clearUndef({
1838
+ width: normalizeNumber(column.width)
1839
+ });
1840
+ }
1841
+ function normalizeTableRow(row) {
1842
+ return clearUndef({
1843
+ height: normalizeNumber(row.height)
1844
+ });
1845
+ }
1846
+ function normalizeTableCell(cell) {
1847
+ return clearUndef({
1848
+ row: normalizeNumber(cell.row) ?? 0,
1849
+ col: normalizeNumber(cell.col) ?? 0,
1850
+ rowSpan: normalizeNumber(cell.rowSpan),
1851
+ colSpan: normalizeNumber(cell.colSpan),
1852
+ children: (cell.children ?? []).map((child) => normalizeElement(child)),
1853
+ background: isNone(cell.background) ? void 0 : normalizeBackground(cell.background),
1854
+ style: isNone(cell.style) ? void 0 : normalizeStyle(cell.style)
1855
+ });
1856
+ }
1857
+ function normalizeTable(table) {
1858
+ return clearUndef({
1859
+ enabled: table.enabled ?? true,
1860
+ columns: (table.columns ?? []).map(normalizeTableColumn),
1861
+ rows: (table.rows ?? []).map(normalizeTableRow),
1862
+ cells: (table.cells ?? []).map(normalizeTableCell)
1863
+ });
1864
+ }
1865
+
1803
1866
  const CRLF_RE = /\r\n|\n\r|\n|\r/;
1804
1867
  const NORMALIZE_CRLF_RE = new RegExp(`${CRLF_RE.source}|<br\\/>`, "g");
1805
1868
  const IS_CRLF_RE = new RegExp(`^(${CRLF_RE.source})$`);
@@ -1971,6 +2034,8 @@ function normalizeElement(element) {
1971
2034
  video: isNone(element.video) ? void 0 : normalizeVideo(element.video),
1972
2035
  audio: isNone(element.audio) ? void 0 : normalizeAudio(element.audio),
1973
2036
  connection: isNone(element.connection) ? void 0 : normalizeConnection(element.connection),
2037
+ table: isNone(element.table) ? void 0 : normalizeTable(element.table),
2038
+ chart: isNone(element.chart) ? void 0 : normalizeChart(element.chart),
1974
2039
  ...normalizeEffect(element),
1975
2040
  children: element.children?.map((child) => normalizeElement(child))
1976
2041
  });
@@ -2032,4 +2097,4 @@ function flatDocumentToDocument(flatDoc) {
2032
2097
  return doc;
2033
2098
  }
2034
2099
 
2035
- export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, colorFillFields, defaultColor, defineProperty, effectFields, flatDocumentToDocument, getDeclarations, getDefaultBackgroundStyle, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOutlineStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, gradientFillFields, hasCRLF, idGenerator, imageFillFiedls, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeColor, normalizeColorFill, normalizeConnection, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeNumber, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeStyle, normalizeText, normalizeTextContent, normalizeTextDeformation, normalizeVideo, parseColor, parseGradient, pick, presetFillFiedls, property, property2, propertyOffsetFallback, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
2100
+ export { EventEmitter, Observable, RawWeakMap, Reactivable, clearUndef, colorFillFields, defaultColor, defineProperty, effectFields, flatDocumentToDocument, getDeclarations, getDefaultBackgroundStyle, getDefaultElementStyle, getDefaultHighlightStyle, getDefaultLayoutStyle, getDefaultListStyleStyle, getDefaultOutlineStyle, getDefaultShadowStyle, getDefaultStyle, getDefaultTextInlineStyle, getDefaultTextLineStyle, getDefaultTextStyle, getDefaultTransformStyle, getNestedValue, getObjectValueByPath, getPropertyDescriptor, gradientFillFields, hasCRLF, idGenerator, imageFillFiedls, isCRLF, isColor, isColorFill, isColorFillObject, isEqualObject, isFragmentObject, isGradient, isGradientFill, isGradientFillObject, isImageFill, isImageFillObject, isNone, isParagraphObject, isPresetFill, isPresetFillObject, nanoid, normalizeAudio, normalizeBackground, normalizeCRLF, normalizeChart, normalizeColor, normalizeColorFill, normalizeConnection, normalizeDocument, normalizeEffect, normalizeElement, normalizeFill, normalizeFlatDocument, normalizeForeground, normalizeGradient, normalizeGradientFill, normalizeImageFill, normalizeNumber, normalizeOutline, normalizePresetFill, normalizeShadow, normalizeShape, normalizeStyle, normalizeTable, normalizeText, normalizeTextContent, normalizeTextDeformation, normalizeVideo, parseColor, parseGradient, pick, presetFillFiedls, property, property2, propertyOffsetFallback, propertyOffsetGet, propertyOffsetSet, round, setNestedValue, setObjectValueByPath, stringifyGradient, textContentToString };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "modern-idoc",
3
3
  "type": "module",
4
- "version": "0.11.6",
4
+ "version": "0.11.8",
5
5
  "packageManager": "pnpm@10.18.1",
6
6
  "description": "Intermediate document for modern codec libs",
7
7
  "author": "wxm",