y-mxgraph 0.5.6 → 0.5.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.
@@ -0,0 +1,256 @@
1
+ import { xml2js, js2xml } from "xml-js";
2
+ import * as Y from "yjs";
3
+ function deepProcess(node) {
4
+ if (node == null) return;
5
+ if (Array.isArray(node)) {
6
+ for (const item of node) {
7
+ deepProcess(item);
8
+ }
9
+ return;
10
+ }
11
+ if (typeof node !== "object") return;
12
+ const obj = node;
13
+ const keys = Object.keys(obj);
14
+ for (const key2 of keys) {
15
+ if (key2 === "_attributes") continue;
16
+ let value = obj[key2];
17
+ const keyLower = key2.toLowerCase();
18
+ if ((keyLower === "diagram" || keyLower === "mxcell") && value !== void 0 && !Array.isArray(value)) {
19
+ obj[key2] = [value];
20
+ value = obj[key2];
21
+ }
22
+ if (Array.isArray(value)) {
23
+ for (const v of value) deepProcess(v);
24
+ } else if (value && typeof value === "object") {
25
+ deepProcess(value);
26
+ }
27
+ }
28
+ }
29
+ function parse$4(xml) {
30
+ const result = xml2js(xml, { compact: true });
31
+ deepProcess(result);
32
+ return result;
33
+ }
34
+ function serializer$1(obj, spaces = 2) {
35
+ return js2xml(obj, {
36
+ compact: true,
37
+ spaces
38
+ });
39
+ }
40
+ var __defProp = Object.defineProperty;
41
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
42
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
43
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
44
+ var __defNormalProp = (obj, key2, value) => key2 in obj ? __defProp(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value;
45
+ var __spreadValues = (a, b) => {
46
+ for (var prop in b || (b = {}))
47
+ if (__hasOwnProp.call(b, prop))
48
+ __defNormalProp(a, prop, b[prop]);
49
+ if (__getOwnPropSymbols)
50
+ for (var prop of __getOwnPropSymbols(b)) {
51
+ if (__propIsEnum.call(b, prop))
52
+ __defNormalProp(a, prop, b[prop]);
53
+ }
54
+ return a;
55
+ };
56
+ const key$3 = "mxCell";
57
+ const mxGeometryKey = "mxGeometry";
58
+ const mxGeometryAttributeKey = "geometry";
59
+ function parse$3(object) {
60
+ var _a;
61
+ const xmlElement = new Y.XmlElement("mxCell");
62
+ for (const attribute of Object.keys(object._attributes || {})) {
63
+ xmlElement.setAttribute(
64
+ attribute,
65
+ `${((_a = object._attributes) == null ? void 0 : _a[attribute]) || ""}`
66
+ );
67
+ }
68
+ if (object[mxGeometryKey]) {
69
+ const geometry = object[mxGeometryKey];
70
+ const geometryString = js2xml(geometry, {
71
+ compact: true
72
+ });
73
+ xmlElement.setAttribute(mxGeometryAttributeKey, geometryString);
74
+ delete object[mxGeometryKey];
75
+ }
76
+ return xmlElement;
77
+ }
78
+ function serialize$2(xmlElement) {
79
+ var _a;
80
+ const rawAttributes = __spreadValues({}, xmlElement.getAttributes());
81
+ let mxGeometry = null;
82
+ let mxGeometryString;
83
+ if (mxGeometryAttributeKey in rawAttributes) {
84
+ mxGeometryString = rawAttributes[mxGeometryAttributeKey];
85
+ delete rawAttributes[mxGeometryAttributeKey];
86
+ }
87
+ const attributes = {};
88
+ for (const [key2, value] of Object.entries(rawAttributes)) {
89
+ if (typeof value === "string") {
90
+ attributes[key2] = value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
91
+ } else if (value != null) {
92
+ attributes[key2] = String(value);
93
+ }
94
+ }
95
+ if (mxGeometryString) {
96
+ try {
97
+ const parsed = xml2js(mxGeometryString, { compact: true });
98
+ mxGeometry = (_a = parsed[mxGeometryKey]) != null ? _a : null;
99
+ if (mxGeometry && mxGeometry._attributes) {
100
+ mxGeometry._attributes["as"] = "geometry";
101
+ }
102
+ } catch (e) {
103
+ console.warn("[y-mxgraph] Failed to parse mxGeometry:", e);
104
+ }
105
+ }
106
+ const obj = {
107
+ _attributes: attributes
108
+ };
109
+ if (mxGeometry) {
110
+ obj[mxGeometryKey] = mxGeometry;
111
+ }
112
+ return obj;
113
+ }
114
+ const key$2 = "mxGraphModel";
115
+ const mxCellOrderKey = key$3 + "Order";
116
+ function parse$2(object, doc) {
117
+ const mxCells = (object.root[key$3] || []).map((cell) => {
118
+ var _a;
119
+ return {
120
+ value: parse$3(cell),
121
+ id: ((_a = cell._attributes) == null ? void 0 : _a.id) || ""
122
+ };
123
+ });
124
+ const mxGraphElement = (doc == null ? void 0 : doc.getMap(key$2)) || new Y.Map();
125
+ const cells = new Y.Map();
126
+ const cellsOrder = new Y.Array();
127
+ mxCells.forEach((cell) => {
128
+ cells.set(cell.id, cell.value);
129
+ });
130
+ cellsOrder.push(mxCells.map((cell) => cell.id));
131
+ mxGraphElement.set(key$3, cells);
132
+ mxGraphElement.set(mxCellOrderKey, cellsOrder);
133
+ return mxGraphElement;
134
+ }
135
+ function serialize$1(map) {
136
+ const cells = map.get(key$3);
137
+ const cellsOrder = map.get(mxCellOrderKey);
138
+ return {
139
+ _attributes: {},
140
+ root: {
141
+ [key$3]: cellsOrder.toArray().map((id) => serialize$2(cells.get(id)))
142
+ }
143
+ };
144
+ }
145
+ const key$1 = "diagram";
146
+ function parse$1(object) {
147
+ var _a, _b;
148
+ const yDiagramElement = new Y.Map();
149
+ yDiagramElement.set("name", `${((_a = object._attributes) == null ? void 0 : _a.name) || ""}`);
150
+ yDiagramElement.set("id", `${((_b = object._attributes) == null ? void 0 : _b.id) || ""}`);
151
+ const mxGraphModel = parse$2(object[key$2]);
152
+ yDiagramElement.set(key$2, mxGraphModel);
153
+ return yDiagramElement;
154
+ }
155
+ function serialize(yDiagram) {
156
+ const mxGraphModel = yDiagram.get(key$2);
157
+ return {
158
+ _attributes: {
159
+ name: yDiagram.get("name"),
160
+ id: yDiagram.get("id")
161
+ },
162
+ [key$2]: mxGraphModel ? serialize$1(mxGraphModel) : void 0
163
+ };
164
+ }
165
+ const key = "mxfile";
166
+ const diagramOrderKey = key$1 + "Order";
167
+ function parse(object, doc) {
168
+ var _a;
169
+ const mxfile = doc.getMap(key);
170
+ mxfile.set("pages", (((_a = object._attributes) == null ? void 0 : _a.pages) || "1") + "");
171
+ const diagramList = object.diagram.map((diagram) => {
172
+ var _a2;
173
+ return {
174
+ value: parse$1(diagram),
175
+ id: ((_a2 = diagram._attributes) == null ? void 0 : _a2.id) || ""
176
+ };
177
+ });
178
+ const diagramMap = new Y.Map();
179
+ const diagramOrder = new Y.Array();
180
+ diagramList.forEach((diagram) => {
181
+ diagramMap.set(diagram.id, diagram.value);
182
+ });
183
+ diagramOrder.push(diagramList.map((diagram) => diagram.id));
184
+ mxfile.set(key$1, diagramMap);
185
+ mxfile.set(diagramOrderKey, diagramOrder);
186
+ return mxfile;
187
+ }
188
+ function serializer(yMxFile) {
189
+ const diagrams = yMxFile.get(key$1);
190
+ const diagramOrder = yMxFile.get(
191
+ diagramOrderKey
192
+ );
193
+ const orderIds = diagramOrder ? diagramOrder.toArray() : [];
194
+ const ids = orderIds.length > 0 ? orderIds : diagrams ? Array.from(diagrams.keys()) : [];
195
+ const obj = {
196
+ _attributes: {
197
+ pages: yMxFile.get("pages") || "1"
198
+ },
199
+ [key$1]: ids.map((id) => diagrams.get(id)).filter((d) => !!d).map((diagramElement) => serialize(diagramElement))
200
+ };
201
+ return obj;
202
+ }
203
+ function xml2ydoc(xml, doc) {
204
+ const object = parse$4(xml);
205
+ const mxfile = object.mxfile;
206
+ const mxGraphModel = object.mxGraphModel;
207
+ if (mxfile) {
208
+ doc.transact(() => {
209
+ parse(mxfile, doc);
210
+ });
211
+ } else if (mxGraphModel) {
212
+ doc.transact(() => {
213
+ parse$2(mxGraphModel, doc);
214
+ });
215
+ } else {
216
+ throw new Error("不支持的文件格式");
217
+ }
218
+ return doc;
219
+ }
220
+ function ydoc2xml(doc, spaces = 0) {
221
+ if (doc.share.has(key)) {
222
+ return serializer$1(
223
+ {
224
+ [key]: serializer(
225
+ doc.share.get(key)
226
+ )
227
+ },
228
+ spaces
229
+ );
230
+ } else if (doc.share.has(key$2)) {
231
+ return serializer$1(
232
+ {
233
+ [key$2]: serialize$1(
234
+ doc.share.get(key$2)
235
+ )
236
+ },
237
+ spaces
238
+ );
239
+ }
240
+ return "";
241
+ }
242
+ export {
243
+ key$1 as a,
244
+ key$2 as b,
245
+ key$3 as c,
246
+ diagramOrderKey as d,
247
+ parse$1 as e,
248
+ serializer$1 as f,
249
+ key as k,
250
+ mxCellOrderKey as m,
251
+ parse$4 as p,
252
+ serialize as s,
253
+ xml2ydoc as x,
254
+ ydoc2xml as y
255
+ };
256
+ //# sourceMappingURL=index-DBU79c0g.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DBU79c0g.js","sources":["../src/helper/xml.ts","../src/models/mxCell.ts","../src/models/mxGraphModel.ts","../src/models/diagram.ts","../src/models/mxfile.ts","../src/transformer/index.ts"],"sourcesContent":["import { xml2js, js2xml, type ElementCompact } from \"xml-js\";\n\nfunction deepProcess(node: unknown): void {\n if (node == null) return;\n\n if (Array.isArray(node)) {\n for (const item of node) {\n deepProcess(item);\n }\n return;\n }\n\n if (typeof node !== \"object\") return;\n\n const obj = node as Record<string, unknown>;\n const keys = Object.keys(obj);\n for (const key of keys) {\n if (key === \"_attributes\") continue;\n\n let value = obj[key];\n const keyLower = key.toLowerCase();\n\n if (\n (keyLower === \"diagram\" || keyLower === \"mxcell\") &&\n value !== undefined &&\n !Array.isArray(value)\n ) {\n obj[key] = [value];\n value = obj[key];\n }\n\n if (Array.isArray(value)) {\n for (const v of value) deepProcess(v);\n } else if (value && typeof value === \"object\") {\n deepProcess(value);\n }\n }\n}\n\nexport function parse(xml: string) {\n const result = xml2js(xml, { compact: true }) as Record<string, unknown>;\n deepProcess(result);\n return result;\n}\n\nexport function serializer(obj: ElementCompact, spaces = 2) {\n return js2xml(obj, {\n compact: true,\n spaces,\n });\n}\n","import * as Y from \"yjs\";\nimport { xml2js, js2xml } from \"xml-js\";\nimport type { ElementCompact } from \"xml-js\";\n\nexport const key = \"mxCell\";\n\nconst mxGeometryKey = \"mxGeometry\";\nconst mxGeometryAttributeKey = \"geometry\";\n\nexport interface MxCellModel extends ElementCompact {\n [mxGeometryKey]?: ElementCompact;\n}\n\nexport function parse(object: MxCellModel): Y.XmlElement {\n const xmlElement = new Y.XmlElement(\"mxCell\");\n\n for (const attribute of Object.keys(object._attributes || {})) {\n xmlElement.setAttribute(\n attribute,\n `${object._attributes?.[attribute] || \"\"}`\n );\n }\n\n if (object[mxGeometryKey]) {\n const geometry = object[mxGeometryKey];\n const geometryString = js2xml(geometry, {\n compact: true,\n });\n xmlElement.setAttribute(mxGeometryAttributeKey, geometryString);\n delete object[mxGeometryKey];\n }\n\n return xmlElement;\n}\n\nexport function serialize(xmlElement: Y.XmlElement) {\n const rawAttributes = {\n ...xmlElement.getAttributes(),\n };\n\n // 提取 mxGeometry(不需要转义,它本身就是 XML 字符串)\n let mxGeometry: ElementCompact | null = null;\n let mxGeometryString: string | undefined;\n\n if (mxGeometryAttributeKey in rawAttributes) {\n mxGeometryString = rawAttributes[mxGeometryAttributeKey];\n delete rawAttributes[mxGeometryAttributeKey];\n }\n\n // 转义其他属性值中的特殊字符\n const attributes: Record<string, string> = {};\n for (const [key, value] of Object.entries(rawAttributes)) {\n if (typeof value === 'string') {\n attributes[key] = value\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&apos;');\n } else if (value != null) {\n attributes[key] = String(value);\n }\n }\n\n // 解析 mxGeometry\n if (mxGeometryString) {\n try {\n const parsed = xml2js(mxGeometryString, { compact: true }) as Record<string, ElementCompact>;\n mxGeometry = parsed[mxGeometryKey] ?? null;\n if (mxGeometry && mxGeometry._attributes) {\n mxGeometry._attributes[\"as\"] = \"geometry\";\n }\n } catch (e) {\n console.warn(\"[y-mxgraph] Failed to parse mxGeometry:\", e);\n }\n }\n\n const obj: Record<string, unknown> = {\n _attributes: attributes,\n };\n\n if (mxGeometry) {\n obj[mxGeometryKey] = mxGeometry;\n }\n\n return obj;\n}\n","import * as Y from \"yjs\";\n\nimport {\n key as mxCellKey,\n parse as parseMxCell,\n serialize as serializeMxCell,\n type MxCellModel,\n} from \"./mxCell\";\nimport type { ElementCompact } from \"xml-js\";\n\nexport const key = \"mxGraphModel\";\nexport const mxCellOrderKey = mxCellKey + \"Order\";\n\nexport interface MxGraphModel extends ElementCompact {\n root: {\n mxCell: MxCellModel[];\n };\n}\n\nexport type YMxGraphModel = Y.Map<unknown>;\n\nexport function parse(object: MxGraphModel, doc?: Y.Doc) {\n const mxCells = (object.root[mxCellKey] || []).map((cell: MxCellModel) => {\n return {\n value: parseMxCell(cell),\n id: (cell._attributes?.id || \"\") as string,\n };\n });\n\n const mxGraphElement = doc?.getMap(key) || new Y.Map();\n\n const cells = new Y.Map<Y.XmlElement>();\n const cellsOrder = new Y.Array<string>();\n\n mxCells.forEach((cell) => {\n cells.set(cell.id, cell.value);\n });\n\n cellsOrder.push(mxCells.map((cell) => cell.id));\n\n mxGraphElement.set(mxCellKey, cells);\n mxGraphElement.set(mxCellOrderKey, cellsOrder);\n\n return mxGraphElement as YMxGraphModel;\n}\n\nexport function serialize(map: YMxGraphModel) {\n const cells = map.get(mxCellKey) as unknown as Y.Map<Y.XmlElement>;\n const cellsOrder = map.get(mxCellOrderKey) as unknown as Y.Array<string>;\n return {\n _attributes: {},\n root: {\n [mxCellKey]: cellsOrder\n .toArray()\n .map((id) => serializeMxCell(cells.get(id) as Y.XmlElement)),\n },\n };\n}\n","import * as Y from \"yjs\";\nimport {\n parse as parseMxGraphModel,\n serialize as serializeMxGraphModel,\n key as mxGraphModelKey,\n type MxGraphModel,\n type YMxGraphModel,\n} from \"./mxGraphModel\";\nimport type { ElementCompact } from \"xml-js\";\n\nexport const key = \"diagram\";\n\nexport interface Diagram extends ElementCompact {\n mxGraphModel: MxGraphModel;\n}\n\nexport type YDiagram = Y.Map<unknown>;\n\nexport function parse(object: Diagram): YDiagram {\n const yDiagramElement = new Y.Map();\n yDiagramElement.set(\"name\", `${object._attributes?.name || \"\"}`);\n yDiagramElement.set(\"id\", `${object._attributes?.id || \"\"}`);\n\n const mxGraphModel = parseMxGraphModel(object[mxGraphModelKey]);\n\n yDiagramElement.set(mxGraphModelKey, mxGraphModel);\n return yDiagramElement as YDiagram;\n}\n\nexport function serialize(yDiagram: YDiagram) {\n const mxGraphModel = yDiagram.get(mxGraphModelKey) as unknown as\n | YMxGraphModel\n | undefined;\n\n return {\n _attributes: {\n name: yDiagram.get(\"name\") as unknown as string,\n id: yDiagram.get(\"id\") as unknown as string,\n },\n [mxGraphModelKey]: mxGraphModel\n ? serializeMxGraphModel(mxGraphModel)\n : undefined,\n };\n}\n","import * as Y from \"yjs\";\nimport {\n parse as parseDiagram,\n key as diagramKey,\n serialize as serializeDiagram,\n} from \"./diagram\";\nimport type { Diagram, YDiagram } from \"./diagram\";\nimport type { ElementCompact } from \"xml-js\";\n\nexport const key = \"mxfile\";\nexport const diagramOrderKey = diagramKey + \"Order\";\n\nexport type YMxFile = Y.Map<unknown>;\n\nexport interface MxFile extends ElementCompact {\n diagram: Diagram[];\n}\n\nexport function parse(object: MxFile, doc: Y.Doc) {\n const mxfile = doc.getMap(key);\n mxfile.set(\"pages\", (object._attributes?.pages || \"1\") + \"\");\n\n const diagramList = object.diagram.map((diagram) => ({\n value: parseDiagram(diagram),\n id: (diagram._attributes?.id || \"\") as string,\n }));\n const diagramMap = new Y.Map<YDiagram>();\n const diagramOrder = new Y.Array<string>();\n diagramList.forEach((diagram) => {\n diagramMap.set(diagram.id, diagram.value);\n });\n diagramOrder.push(diagramList.map((diagram) => diagram.id));\n\n mxfile.set(diagramKey, diagramMap);\n mxfile.set(diagramOrderKey, diagramOrder);\n return mxfile;\n}\n\nexport function serializer(yMxFile: YMxFile): ElementCompact {\n const diagrams = yMxFile.get(diagramKey) as unknown as Y.Map<YDiagram>;\n const diagramOrder = yMxFile.get(\n diagramOrderKey,\n ) as unknown as Y.Array<string>;\n\n const orderIds = diagramOrder ? diagramOrder.toArray() : [];\n // 如果 diagramOrder 为空但 diagram map 不为空,使用 diagram map 中的所有 ID\n const ids = orderIds.length > 0 ? orderIds : (diagrams ? Array.from(diagrams.keys()) : []);\n\n const obj: Record<string, unknown> = {\n _attributes: {\n pages: (yMxFile.get(\"pages\") as string) || \"1\",\n },\n [diagramKey]: ids\n .map((id) => diagrams.get(id) as unknown as YDiagram)\n .filter((d): d is YDiagram => !!d)\n .map((diagramElement) => serializeDiagram(diagramElement)),\n };\n\n return obj as ElementCompact;\n}\n","import * as Y from \"yjs\";\nimport { parse, serializer } from \"../helper/xml\";\nimport {\n parse as parseMxFile,\n key as mxfileKey,\n serializer as serializerMxFile,\n type YMxFile,\n} from \"../models/mxfile\";\nimport {\n parse as parseMxGraphModel,\n key as mxGraphModelKey,\n serialize as serializerMxGraphModel,\n type YMxGraphModel,\n} from \"../models/mxGraphModel\";\n\nexport function xml2ydoc(xml: string, doc: Y.Doc): Y.Doc {\n const object = parse(xml);\n\n const mxfile = (object as Record<string, unknown>).mxfile;\n const mxGraphModel = (object as Record<string, unknown>).mxGraphModel;\n if (mxfile) {\n doc.transact(() => {\n parseMxFile(mxfile as import(\"../models/mxfile\").MxFile, doc);\n });\n } else if (mxGraphModel) {\n doc.transact(() => {\n parseMxGraphModel(mxGraphModel as import(\"../models/mxGraphModel\").MxGraphModel, doc);\n });\n } else {\n throw new Error(\"不支持的文件格式\");\n }\n\n return doc;\n}\n\nexport function ydoc2xml(doc: Y.Doc, spaces = 0): string {\n if (doc.share.has(mxfileKey)) {\n return serializer(\n {\n [mxfileKey]: serializerMxFile(\n doc.share.get(mxfileKey) as unknown as YMxFile,\n ),\n },\n spaces,\n );\n } else if (doc.share.has(mxGraphModelKey)) {\n return serializer(\n {\n [mxGraphModelKey]: serializerMxGraphModel(\n doc.share.get(mxGraphModelKey) as unknown as YMxGraphModel,\n ),\n },\n spaces,\n );\n }\n\n return \"\";\n}\n"],"names":["key","parse","serializer","serialize","mxCellKey","parseMxCell","serializeMxCell","parseMxGraphModel","mxGraphModelKey","serializeMxGraphModel","diagramKey","_a","parseDiagram","serializeDiagram","parseMxFile","mxfileKey","serializerMxFile","serializerMxGraphModel"],"mappings":";;AAEA,SAAS,YAAY,MAAqB;AACxC,MAAI,QAAQ,KAAM;AAElB,MAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,eAAW,QAAQ,MAAM;AACvB,kBAAY,IAAI;AAAA,IAClB;AACA;AAAA,EACF;AAEA,MAAI,OAAO,SAAS,SAAU;AAE9B,QAAM,MAAM;AACZ,QAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,aAAWA,QAAO,MAAM;AACtB,QAAIA,SAAQ,cAAe;AAE3B,QAAI,QAAQ,IAAIA,IAAG;AACnB,UAAM,WAAWA,KAAI,YAAA;AAErB,SACG,aAAa,aAAa,aAAa,aACxC,UAAU,UACV,CAAC,MAAM,QAAQ,KAAK,GACpB;AACA,UAAIA,IAAG,IAAI,CAAC,KAAK;AACjB,cAAQ,IAAIA,IAAG;AAAA,IACjB;AAEA,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAW,KAAK,MAAO,aAAY,CAAC;AAAA,IACtC,WAAW,SAAS,OAAO,UAAU,UAAU;AAC7C,kBAAY,KAAK;AAAA,IACnB;AAAA,EACF;AACF;AAEO,SAASC,QAAM,KAAa;AACjC,QAAM,SAAS,OAAO,KAAK,EAAE,SAAS,MAAM;AAC5C,cAAY,MAAM;AAClB,SAAO;AACT;AAEO,SAASC,aAAW,KAAqB,SAAS,GAAG;AAC1D,SAAO,OAAO,KAAK;AAAA,IACjB,SAAS;AAAA,IACT;AAAA,EAAA,CACD;AACH;;;;;;;;;;;;;;;;;AC9CO,MAAMF,QAAM;AAEnB,MAAM,gBAAgB;AACtB,MAAM,yBAAyB;AAMxB,SAASC,QAAM,QAAmC;AAbzD,MAAA;AAcE,QAAM,aAAa,IAAI,EAAE,WAAW,QAAQ;AAE5C,aAAW,aAAa,OAAO,KAAK,OAAO,eAAe,CAAA,CAAE,GAAG;AAC7D,eAAW;AAAA,MACT;AAAA,MACA,KAAG,KAAA,OAAO,gBAAP,OAAA,SAAA,GAAqB,eAAc,EAAE;AAAA,IAAA;AAAA,EAE5C;AAEA,MAAI,OAAO,aAAa,GAAG;AACzB,UAAM,WAAW,OAAO,aAAa;AACrC,UAAM,iBAAiB,OAAO,UAAU;AAAA,MACtC,SAAS;AAAA,IAAA,CACV;AACD,eAAW,aAAa,wBAAwB,cAAc;AAC9D,WAAO,OAAO,aAAa;AAAA,EAC7B;AAEA,SAAO;AACT;AAEO,SAASE,YAAU,YAA0B;AAnCpD,MAAA;AAoCE,QAAM,gBAAgB,eAAA,CAAA,GACjB,WAAW,cAAA,CAAc;AAI9B,MAAI,aAAoC;AACxC,MAAI;AAEJ,MAAI,0BAA0B,eAAe;AAC3C,uBAAmB,cAAc,sBAAsB;AACvD,WAAO,cAAc,sBAAsB;AAAA,EAC7C;AAGA,QAAM,aAAqC,CAAA;AAC3C,aAAW,CAACH,MAAK,KAAK,KAAK,OAAO,QAAQ,aAAa,GAAG;AACxD,QAAI,OAAO,UAAU,UAAU;AAC7B,iBAAWA,IAAG,IAAI,MACf,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,QAAQ;AAAA,IAC3B,WAAW,SAAS,MAAM;AACxB,iBAAWA,IAAG,IAAI,OAAO,KAAK;AAAA,IAChC;AAAA,EACF;AAGA,MAAI,kBAAkB;AACpB,QAAI;AACF,YAAM,SAAS,OAAO,kBAAkB,EAAE,SAAS,MAAM;AACzD,oBAAa,KAAA,OAAO,aAAa,MAApB,OAAA,KAAyB;AACtC,UAAI,cAAc,WAAW,aAAa;AACxC,mBAAW,YAAY,IAAI,IAAI;AAAA,MACjC;AAAA,IACF,SAAS,GAAG;AACV,cAAQ,KAAK,2CAA2C,CAAC;AAAA,IAC3D;AAAA,EACF;AAEA,QAAM,MAA+B;AAAA,IACnC,aAAa;AAAA,EAAA;AAGf,MAAI,YAAY;AACd,QAAI,aAAa,IAAI;AAAA,EACvB;AAEA,SAAO;AACT;AC5EO,MAAMA,QAAM;AACZ,MAAM,iBAAiBI,QAAY;AAUnC,SAASH,QAAM,QAAsB,KAAa;AACvD,QAAM,WAAW,OAAO,KAAKG,KAAS,KAAK,CAAA,GAAI,IAAI,CAAC,SAAsB;AAtB5E,QAAA;AAuBI,WAAO;AAAA,MACL,OAAOC,QAAY,IAAI;AAAA,MACvB,MAAK,KAAA,KAAK,gBAAL,OAAA,SAAA,GAAkB,OAAM;AAAA,IAAA;AAAA,EAEjC,CAAC;AAED,QAAM,kBAAiB,OAAA,OAAA,SAAA,IAAK,OAAOL,KAAA,MAAQ,IAAI,EAAE,IAAA;AAEjD,QAAM,QAAQ,IAAI,EAAE,IAAA;AACpB,QAAM,aAAa,IAAI,EAAE,MAAA;AAEzB,UAAQ,QAAQ,CAAC,SAAS;AACxB,UAAM,IAAI,KAAK,IAAI,KAAK,KAAK;AAAA,EAC/B,CAAC;AAED,aAAW,KAAK,QAAQ,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC;AAE9C,iBAAe,IAAII,OAAW,KAAK;AACnC,iBAAe,IAAI,gBAAgB,UAAU;AAE7C,SAAO;AACT;AAEO,SAASD,YAAU,KAAoB;AAC5C,QAAM,QAAQ,IAAI,IAAIC,KAAS;AAC/B,QAAM,aAAa,IAAI,IAAI,cAAc;AACzC,SAAO;AAAA,IACL,aAAa,CAAA;AAAA,IACb,MAAM;AAAA,MACJ,CAACA,KAAS,GAAG,WACV,UACA,IAAI,CAAC,OAAOE,YAAgB,MAAM,IAAI,EAAE,CAAiB,CAAC;AAAA,IAAA;AAAA,EAC/D;AAEJ;AC/CO,MAAMN,QAAM;AAQZ,SAASC,QAAM,QAA2B;AAlBjD,MAAA,IAAA;AAmBE,QAAM,kBAAkB,IAAI,EAAE,IAAA;AAC9B,kBAAgB,IAAI,QAAQ,KAAG,KAAA,OAAO,gBAAP,OAAA,SAAA,GAAoB,SAAQ,EAAE,EAAE;AAC/D,kBAAgB,IAAI,MAAM,KAAG,KAAA,OAAO,gBAAP,OAAA,SAAA,GAAoB,OAAM,EAAE,EAAE;AAE3D,QAAM,eAAeM,QAAkB,OAAOC,KAAe,CAAC;AAE9D,kBAAgB,IAAIA,OAAiB,YAAY;AACjD,SAAO;AACT;AAEO,SAAS,UAAU,UAAoB;AAC5C,QAAM,eAAe,SAAS,IAAIA,KAAe;AAIjD,SAAO;AAAA,IACL,aAAa;AAAA,MACX,MAAM,SAAS,IAAI,MAAM;AAAA,MACzB,IAAI,SAAS,IAAI,IAAI;AAAA,IAAA;AAAA,IAEvB,CAACA,KAAe,GAAG,eACfC,YAAsB,YAAY,IAClC;AAAA,EAAA;AAER;AClCO,MAAM,MAAM;AACZ,MAAM,kBAAkBC,QAAa;AAQrC,SAAS,MAAM,QAAgB,KAAY;AAlBlD,MAAA;AAmBE,QAAM,SAAS,IAAI,OAAO,GAAG;AAC7B,SAAO,IAAI,YAAU,KAAA,OAAO,gBAAP,OAAA,SAAA,GAAoB,UAAS,OAAO,EAAE;AAE3D,QAAM,cAAc,OAAO,QAAQ,IAAI,CAAC,YAAS;AAtBnD,QAAAC;AAsBuD,WAAA;AAAA,MACnD,OAAOC,QAAa,OAAO;AAAA,MAC3B,MAAKD,MAAA,QAAQ,gBAAR,OAAA,SAAAA,IAAqB,OAAM;AAAA,IAAA;AAAA,EAClC,CAAE;AACF,QAAM,aAAa,IAAI,EAAE,IAAA;AACzB,QAAM,eAAe,IAAI,EAAE,MAAA;AAC3B,cAAY,QAAQ,CAAC,YAAY;AAC/B,eAAW,IAAI,QAAQ,IAAI,QAAQ,KAAK;AAAA,EAC1C,CAAC;AACD,eAAa,KAAK,YAAY,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;AAE1D,SAAO,IAAID,OAAY,UAAU;AACjC,SAAO,IAAI,iBAAiB,YAAY;AACxC,SAAO;AACT;AAEO,SAAS,WAAW,SAAkC;AAC3D,QAAM,WAAW,QAAQ,IAAIA,KAAU;AACvC,QAAM,eAAe,QAAQ;AAAA,IAC3B;AAAA,EAAA;AAGF,QAAM,WAAW,eAAe,aAAa,QAAA,IAAY,CAAA;AAEzD,QAAM,MAAM,SAAS,SAAS,IAAI,WAAY,WAAW,MAAM,KAAK,SAAS,KAAA,CAAM,IAAI,CAAA;AAEvF,QAAM,MAA+B;AAAA,IACnC,aAAa;AAAA,MACX,OAAQ,QAAQ,IAAI,OAAO,KAAgB;AAAA,IAAA;AAAA,IAE7C,CAACA,KAAU,GAAG,IACX,IAAI,CAAC,OAAO,SAAS,IAAI,EAAE,CAAwB,EACnD,OAAO,CAAC,MAAqB,CAAC,CAAC,CAAC,EAChC,IAAI,CAAC,mBAAmBG,UAAiB,cAAc,CAAC;AAAA,EAAA;AAG7D,SAAO;AACT;AC5CO,SAAS,SAAS,KAAa,KAAmB;AACvD,QAAM,SAASZ,QAAM,GAAG;AAExB,QAAM,SAAU,OAAmC;AACnD,QAAM,eAAgB,OAAmC;AACzD,MAAI,QAAQ;AACV,QAAI,SAAS,MAAM;AACjBa,YAAY,QAA6C,GAAG;AAAA,IAC9D,CAAC;AAAA,EACH,WAAW,cAAc;AACvB,QAAI,SAAS,MAAM;AACjBP,cAAkB,cAA+D,GAAG;AAAA,IACtF,CAAC;AAAA,EACH,OAAO;AACL,UAAM,IAAI,MAAM,UAAU;AAAA,EAC5B;AAEA,SAAO;AACT;AAEO,SAAS,SAAS,KAAY,SAAS,GAAW;AACvD,MAAI,IAAI,MAAM,IAAIQ,GAAS,GAAG;AAC5B,WAAOb;AAAAA,MACL;AAAA,QACE,CAACa,GAAS,GAAGC;AAAAA,UACX,IAAI,MAAM,IAAID,GAAS;AAAA,QAAA;AAAA,MACzB;AAAA,MAEF;AAAA,IAAA;AAAA,EAEJ,WAAW,IAAI,MAAM,IAAIP,KAAe,GAAG;AACzC,WAAON;AAAAA,MACL;AAAA,QACE,CAACM,KAAe,GAAGS;AAAAA,UACjB,IAAI,MAAM,IAAIT,KAAe;AAAA,QAAA;AAAA,MAC/B;AAAA,MAEF;AAAA,IAAA;AAAA,EAEJ;AAEA,SAAO;AACT;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "y-mxgraph",
3
- "version": "0.5.6",
3
+ "version": "0.5.8",
4
4
  "description": "Yjs binding for draw.io (mxGraph) documents",
5
5
  "keywords": [
6
6
  "yjs",
@@ -15,24 +15,29 @@
15
15
  "graph",
16
16
  "sync"
17
17
  ],
18
- "main": "./y-mxgraph.cjs.js",
19
- "module": "./y-mxgraph.es.js",
18
+ "main": "./y-mxgraph.cjs",
19
+ "module": "./y-mxgraph.js",
20
20
  "types": "./index.d.ts",
21
21
  "exports": {
22
22
  ".": {
23
- "import": "./y-mxgraph.es.js",
24
- "require": "./y-mxgraph.cjs.js",
23
+ "import": "./y-mxgraph.js",
24
+ "require": "./y-mxgraph.cjs",
25
25
  "types": "./index.d.ts"
26
26
  },
27
27
  "./iframe-bridge/server": {
28
- "import": "./iframe-bridge/server.es.js",
29
- "require": "./iframe-bridge/server.cjs.js",
28
+ "import": "./iframe-bridge/server.js",
29
+ "require": "./iframe-bridge/server.cjs",
30
30
  "types": "./iframe-bridge/server.d.ts"
31
31
  },
32
32
  "./iframe-bridge/provider": {
33
- "import": "./iframe-bridge/provider.es.js",
34
- "require": "./iframe-bridge/provider.cjs.js",
33
+ "import": "./iframe-bridge/provider.js",
34
+ "require": "./iframe-bridge/provider.cjs",
35
35
  "types": "./iframe-bridge/provider.d.ts"
36
+ },
37
+ "./transformer": {
38
+ "import": "./transformer.js",
39
+ "require": "./transformer.cjs",
40
+ "types": "./transformer.d.ts"
36
41
  }
37
42
  },
38
43
  "dependencies": {
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const transformer = require("./index-CcOHH2TY.cjs");
4
+ exports.xml2ydoc = transformer.xml2ydoc;
5
+ exports.ydoc2xml = transformer.ydoc2xml;
6
+ //# sourceMappingURL=transformer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
package/transformer.js ADDED
@@ -0,0 +1,6 @@
1
+ import { x, y } from "./index-DBU79c0g.js";
2
+ export {
3
+ x as xml2ydoc,
4
+ y as ydoc2xml
5
+ };
6
+ //# sourceMappingURL=transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}