@kerebron/extension-odt 0.0.8 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,7 +17,7 @@ interface Style {
17
17
  export declare class OdtParser {
18
18
  private readonly schema;
19
19
  constructor(schema: Schema);
20
- parse(files: any): Node | null;
20
+ parse(files: any): Node;
21
21
  }
22
22
  export {};
23
23
  //# sourceMappingURL=OdtParser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OdtParser.d.ts","sourceRoot":"","sources":["../../../src/extension-odt/src/OdtParser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAGL,IAAI,EAEJ,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,UAAU,UAAU;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;IAE9C,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC;IAEpC,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,CAAC;IAEhD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAErB,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,KACT,KAAK,GAAG,IAAI,CAAC;IAElB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAaD,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AA4UD,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAI3C,KAAK,CAAC,KAAK,EAAE,GAAG;CAkBjB"}
1
+ {"version":3,"file":"OdtParser.d.ts","sourceRoot":"","sources":["../../../src/extension-odt/src/OdtParser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAGL,IAAI,EAEJ,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,UAAU,UAAU;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;IAE9C,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC;IAEpC,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,CAAC;IAEhD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAErB,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,KACT,KAAK,GAAG,IAAI,CAAC;IAElB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAaD,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AA6UD,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAI3C,KAAK,CAAC,KAAK,EAAE,GAAG;CAuBjB"}
@@ -62,12 +62,8 @@ class OdtParseState {
62
62
  writable: true,
63
63
  value: void 0
64
64
  });
65
- this.stack = [{
66
- type: schema.topNodeType,
67
- attrs: null,
68
- content: [],
69
- marks: Mark.none,
70
- }];
65
+ this.stack = [];
66
+ this.openNode(schema.topNodeType, null);
71
67
  }
72
68
  top() {
73
69
  return this.stack[this.stack.length - 1];
@@ -86,7 +82,7 @@ class OdtParseState {
86
82
  // if (last && (merged = maybeMerge(last, node))) {
87
83
  // nodes[nodes.length - 1] = merged;
88
84
  // } else
89
- // console.log('addtext', node);
85
+ // console.log('addtext', top.type.name, "'" + text + "'");
90
86
  nodes.push(node);
91
87
  }
92
88
  // Adds the given mark to the set of active marks.
@@ -110,6 +106,7 @@ class OdtParseState {
110
106
  }
111
107
  // Wrap subsequent content in a node of the given type.
112
108
  openNode(type, attrs) {
109
+ // console.log('openNode', type.name, attrs);
113
110
  this.stack.push({
114
111
  type: type,
115
112
  attrs: attrs,
@@ -164,7 +161,6 @@ class OdtParseState {
164
161
  this.closeMark(markType);
165
162
  }
166
163
  else if (spec.text) {
167
- // console.log('aaaaaaaaaaaaaaaaaaaa', element);
168
164
  this.addText(spec.text(element));
169
165
  }
170
166
  else {
@@ -188,7 +184,7 @@ function iterateChildren(nodes, callback) {
188
184
  value = child;
189
185
  }
190
186
  else {
191
- const keys = Object.keys(child);
187
+ const keys = Object.keys(child).filter(key => key !== 'annotation');
192
188
  key = keys[0];
193
189
  value = child[key];
194
190
  }
@@ -261,12 +257,13 @@ const tokens = {
261
257
  href: tok['@href'],
262
258
  // title: tok.attrGet('title') || null,
263
259
  }),
264
- children: (odtElement) => odtElement['span'],
260
+ children: (odtElement) => odtElement['span'].map(item => ({ 'span': item }))
265
261
  },
266
262
  '$value': {
267
263
  children: (odtElement) => iterateEnum(odtElement),
268
264
  },
269
265
  '$text': {
266
+ // TODO: fix trimming: https://github.com/tafia/quick-xml/issues/285
270
267
  text: (odtElement) => String(odtElement || ''),
271
268
  },
272
269
  's': {
@@ -279,6 +276,7 @@ const tokens = {
279
276
  text: (odtElement) => '\t',
280
277
  },
281
278
  'table-of-content': {
279
+ block: 'paragraph',
282
280
  children: (odtElement) => odtElement['index-body']['p'] || [],
283
281
  },
284
282
  'frame': {
@@ -287,6 +285,9 @@ const tokens = {
287
285
  'rect': {
288
286
  ignore: true,
289
287
  },
288
+ 'bookmark': {
289
+ ignore: true,
290
+ },
290
291
  'annotation': {
291
292
  ignore: true,
292
293
  },
@@ -310,6 +311,9 @@ export class OdtParser {
310
311
  do {
311
312
  doc = state.closeNode();
312
313
  } while (state.stack.length);
314
+ if (!doc) {
315
+ throw new Error('Incorrect stack handling');
316
+ }
313
317
  return doc || null; //this.schema.topNodeType.createAndFill()!;
314
318
  }
315
319
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kerebron/extension-odt",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "license": "MIT",
5
5
  "module": "./esm/extension-odt/src/ExtensionOdt.js",
6
6
  "exports": {