@maketribe/ms-app 3.1.1 → 3.1.3

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.
Files changed (133) hide show
  1. package/dist/cjs/assets/iconfonts/iconfont.js +38 -0
  2. package/dist/cjs/assets/iconfonts/iconfont.js.map +1 -0
  3. package/dist/cjs/components/basic/icon-select/icon-select.js +1 -1
  4. package/dist/cjs/components/basic/icon-select/icon-select.js.map +1 -1
  5. package/dist/cjs/components/basic/svg-icon/svg-icon.js.map +1 -1
  6. package/dist/cjs/components/business/verify-dialog/verify-dialog.js.map +1 -1
  7. package/dist/cjs/components/data-model/data-table/components/column-action/column-action-options.d.ts +3 -2
  8. package/dist/cjs/components/data-model/data-table/components/column-action/column-action-options.js +2 -1
  9. package/dist/cjs/components/data-model/data-table/components/column-action/column-action-options.js.map +1 -1
  10. package/dist/cjs/components/data-model/data-table/components/column-action/column-action.d.ts +7 -3
  11. package/dist/cjs/components/data-model/data-table/components/column-action/column-action.js +5 -1
  12. package/dist/cjs/components/data-model/data-table/components/column-action/column-action.js.map +1 -1
  13. package/dist/cjs/components/data-model/data-table/components/column-action/index.d.ts +7 -3
  14. package/dist/cjs/core/MSAppClient.js +2 -2
  15. package/dist/cjs/core/MSAppClient.js.map +1 -1
  16. package/dist/cjs/index.d.ts +2 -1
  17. package/dist/cjs/index.js +1 -0
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js +3 -3
  20. package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
  21. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartForm.js +32 -6
  22. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartForm.js.map +1 -1
  23. package/dist/cjs/modules/cms/dataviews/cms-parts/CmsPartTree.js.map +1 -1
  24. package/dist/cjs/modules/cms/index.js +5 -0
  25. package/dist/cjs/modules/cms/index.js.map +1 -1
  26. package/dist/cjs/modules/cms/pages/cms-resource/components/resource-item/index.vue.d.ts +12 -0
  27. package/dist/cjs/modules/cms/pages/cms-resource/components/resource-item/index.vue.js +9 -0
  28. package/dist/cjs/modules/cms/pages/cms-resource/components/resource-item/index.vue.js.map +1 -0
  29. package/dist/cjs/modules/cms/pages/cms-resource/components/resource-item/index.vue2.js +91 -0
  30. package/dist/cjs/modules/cms/pages/cms-resource/components/resource-item/index.vue2.js.map +1 -0
  31. package/dist/cjs/modules/cms/pages/cms-resource/core/ResourceManager.d.ts +23 -0
  32. package/dist/cjs/modules/cms/pages/cms-resource/core/ResourceManager.js +133 -0
  33. package/dist/cjs/modules/cms/pages/cms-resource/core/ResourceManager.js.map +1 -0
  34. package/dist/cjs/modules/cms/pages/cms-resource/index.vue.d.ts +2 -0
  35. package/dist/cjs/modules/cms/pages/cms-resource/index.vue.js +9 -0
  36. package/dist/cjs/modules/cms/pages/cms-resource/index.vue.js.map +1 -0
  37. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js +217 -0
  38. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js.map +1 -0
  39. package/dist/cjs/modules/ms/pages/local-log/index.vue2.js.map +1 -1
  40. package/dist/cjs/node_modules/.pnpm/@codemirror_autocomplete@6.15.0_@codemirror_language@6.10.1_@codemirror_state@6.4.1_@codemirr_djjyqdn7bhwopzrz2h2s2bwhzm/node_modules/@codemirror/autocomplete/dist/index.js +276 -0
  41. package/dist/cjs/node_modules/.pnpm/@codemirror_autocomplete@6.15.0_@codemirror_language@6.10.1_@codemirror_state@6.4.1_@codemirr_djjyqdn7bhwopzrz2h2s2bwhzm/node_modules/@codemirror/autocomplete/dist/index.js.map +1 -1
  42. package/dist/cjs/node_modules/.pnpm/@codemirror_lang-css@6.2.1_@codemirror_view@6.26.1/node_modules/@codemirror/lang-css/dist/index.js +263 -0
  43. package/dist/cjs/node_modules/.pnpm/@codemirror_lang-css@6.2.1_@codemirror_view@6.26.1/node_modules/@codemirror/lang-css/dist/index.js.map +1 -0
  44. package/dist/cjs/node_modules/.pnpm/@codemirror_lang-html@6.4.9/node_modules/@codemirror/lang-html/dist/index.js +667 -0
  45. package/dist/cjs/node_modules/.pnpm/@codemirror_lang-html@6.4.9/node_modules/@codemirror/lang-html/dist/index.js.map +1 -0
  46. package/dist/cjs/node_modules/.pnpm/@codemirror_lang-javascript@6.2.2/node_modules/@codemirror/lang-javascript/dist/index.js +342 -0
  47. package/dist/cjs/node_modules/.pnpm/@codemirror_lang-javascript@6.2.2/node_modules/@codemirror/lang-javascript/dist/index.js.map +1 -0
  48. package/dist/cjs/node_modules/.pnpm/@codemirror_language@6.10.1/node_modules/@codemirror/language/dist/index.js +21 -0
  49. package/dist/cjs/node_modules/.pnpm/@codemirror_language@6.10.1/node_modules/@codemirror/language/dist/index.js.map +1 -1
  50. package/dist/cjs/node_modules/.pnpm/@lezer_common@1.2.1/node_modules/@lezer/common/dist/index.js +510 -1
  51. package/dist/cjs/node_modules/.pnpm/@lezer_common@1.2.1/node_modules/@lezer/common/dist/index.js.map +1 -1
  52. package/dist/cjs/node_modules/.pnpm/@lezer_css@1.1.8/node_modules/@lezer/css/dist/index.js +127 -0
  53. package/dist/cjs/node_modules/.pnpm/@lezer_css@1.1.8/node_modules/@lezer/css/dist/index.js.map +1 -0
  54. package/dist/cjs/node_modules/.pnpm/@lezer_html@1.3.10/node_modules/@lezer/html/dist/index.js +360 -0
  55. package/dist/cjs/node_modules/.pnpm/@lezer_html@1.3.10/node_modules/@lezer/html/dist/index.js.map +1 -0
  56. package/dist/cjs/node_modules/.pnpm/@lezer_javascript@1.4.17/node_modules/@lezer/javascript/dist/index.js +189 -0
  57. package/dist/cjs/node_modules/.pnpm/@lezer_javascript@1.4.17/node_modules/@lezer/javascript/dist/index.js.map +1 -0
  58. package/dist/cjs/node_modules/.pnpm/@lezer_lr@1.4.0/node_modules/@lezer/lr/dist/index.js +1879 -0
  59. package/dist/cjs/node_modules/.pnpm/@lezer_lr@1.4.0/node_modules/@lezer/lr/dist/index.js.map +1 -0
  60. package/dist/cjs/page/signup/index.vue2.js +1 -1
  61. package/dist/cjs/page/signup/index.vue2.js.map +1 -1
  62. package/dist/cjs/router-middleware/auth.js +1 -1
  63. package/dist/cjs/router-middleware/auth.js.map +1 -1
  64. package/dist/esm/assets/iconfonts/iconfont.js +36 -0
  65. package/dist/esm/assets/iconfonts/iconfont.js.map +1 -0
  66. package/dist/esm/components/basic/icon-select/icon-select.js +1 -1
  67. package/dist/esm/components/basic/icon-select/icon-select.js.map +1 -1
  68. package/dist/esm/components/basic/svg-icon/svg-icon.js.map +1 -1
  69. package/dist/esm/components/business/verify-dialog/verify-dialog.js.map +1 -1
  70. package/dist/esm/components/data-model/data-table/components/column-action/column-action-options.d.ts +3 -2
  71. package/dist/esm/components/data-model/data-table/components/column-action/column-action-options.js +3 -2
  72. package/dist/esm/components/data-model/data-table/components/column-action/column-action-options.js.map +1 -1
  73. package/dist/esm/components/data-model/data-table/components/column-action/column-action.d.ts +7 -3
  74. package/dist/esm/components/data-model/data-table/components/column-action/column-action.js +5 -1
  75. package/dist/esm/components/data-model/data-table/components/column-action/column-action.js.map +1 -1
  76. package/dist/esm/components/data-model/data-table/components/column-action/index.d.ts +7 -3
  77. package/dist/esm/core/MSAppClient.js +2 -2
  78. package/dist/esm/core/MSAppClient.js.map +1 -1
  79. package/dist/esm/index.d.ts +2 -1
  80. package/dist/esm/index.js +1 -0
  81. package/dist/esm/index.js.map +1 -1
  82. package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js +3 -3
  83. package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
  84. package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartForm.js +32 -6
  85. package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartForm.js.map +1 -1
  86. package/dist/esm/modules/cms/dataviews/cms-parts/CmsPartTree.js.map +1 -1
  87. package/dist/esm/modules/cms/index.js +5 -0
  88. package/dist/esm/modules/cms/index.js.map +1 -1
  89. package/dist/esm/modules/cms/pages/cms-resource/components/resource-item/index.vue.d.ts +12 -0
  90. package/dist/esm/modules/cms/pages/cms-resource/components/resource-item/index.vue.js +7 -0
  91. package/dist/esm/modules/cms/pages/cms-resource/components/resource-item/index.vue.js.map +1 -0
  92. package/dist/esm/modules/cms/pages/cms-resource/components/resource-item/index.vue2.js +89 -0
  93. package/dist/esm/modules/cms/pages/cms-resource/components/resource-item/index.vue2.js.map +1 -0
  94. package/dist/esm/modules/cms/pages/cms-resource/core/ResourceManager.d.ts +23 -0
  95. package/dist/esm/modules/cms/pages/cms-resource/core/ResourceManager.js +131 -0
  96. package/dist/esm/modules/cms/pages/cms-resource/core/ResourceManager.js.map +1 -0
  97. package/dist/esm/modules/cms/pages/cms-resource/index.vue.d.ts +2 -0
  98. package/dist/esm/modules/cms/pages/cms-resource/index.vue.js +7 -0
  99. package/dist/esm/modules/cms/pages/cms-resource/index.vue.js.map +1 -0
  100. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js +215 -0
  101. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js.map +1 -0
  102. package/dist/esm/modules/ms/pages/local-log/index.vue2.js.map +1 -1
  103. package/dist/esm/node_modules/.pnpm/@codemirror_autocomplete@6.15.0_@codemirror_language@6.10.1_@codemirror_state@6.4.1_@codemirr_djjyqdn7bhwopzrz2h2s2bwhzm/node_modules/@codemirror/autocomplete/dist/index.js +273 -4
  104. package/dist/esm/node_modules/.pnpm/@codemirror_autocomplete@6.15.0_@codemirror_language@6.10.1_@codemirror_state@6.4.1_@codemirr_djjyqdn7bhwopzrz2h2s2bwhzm/node_modules/@codemirror/autocomplete/dist/index.js.map +1 -1
  105. package/dist/esm/node_modules/.pnpm/@codemirror_lang-css@6.2.1_@codemirror_view@6.26.1/node_modules/@codemirror/lang-css/dist/index.js +258 -0
  106. package/dist/esm/node_modules/.pnpm/@codemirror_lang-css@6.2.1_@codemirror_view@6.26.1/node_modules/@codemirror/lang-css/dist/index.js.map +1 -0
  107. package/dist/esm/node_modules/.pnpm/@codemirror_lang-html@6.4.9/node_modules/@codemirror/lang-html/dist/index.js +661 -0
  108. package/dist/esm/node_modules/.pnpm/@codemirror_lang-html@6.4.9/node_modules/@codemirror/lang-html/dist/index.js.map +1 -0
  109. package/dist/esm/node_modules/.pnpm/@codemirror_lang-javascript@6.2.2/node_modules/@codemirror/lang-javascript/dist/index.js +332 -0
  110. package/dist/esm/node_modules/.pnpm/@codemirror_lang-javascript@6.2.2/node_modules/@codemirror/lang-javascript/dist/index.js.map +1 -0
  111. package/dist/esm/node_modules/.pnpm/@codemirror_language@6.10.1/node_modules/@codemirror/language/dist/index.js +20 -1
  112. package/dist/esm/node_modules/.pnpm/@codemirror_language@6.10.1/node_modules/@codemirror/language/dist/index.js.map +1 -1
  113. package/dist/esm/node_modules/.pnpm/@lezer_common@1.2.1/node_modules/@lezer/common/dist/index.js +508 -2
  114. package/dist/esm/node_modules/.pnpm/@lezer_common@1.2.1/node_modules/@lezer/common/dist/index.js.map +1 -1
  115. package/dist/esm/node_modules/.pnpm/@lezer_css@1.1.8/node_modules/@lezer/css/dist/index.js +125 -0
  116. package/dist/esm/node_modules/.pnpm/@lezer_css@1.1.8/node_modules/@lezer/css/dist/index.js.map +1 -0
  117. package/dist/esm/node_modules/.pnpm/@lezer_html@1.3.10/node_modules/@lezer/html/dist/index.js +357 -0
  118. package/dist/esm/node_modules/.pnpm/@lezer_html@1.3.10/node_modules/@lezer/html/dist/index.js.map +1 -0
  119. package/dist/esm/node_modules/.pnpm/@lezer_javascript@1.4.17/node_modules/@lezer/javascript/dist/index.js +187 -0
  120. package/dist/esm/node_modules/.pnpm/@lezer_javascript@1.4.17/node_modules/@lezer/javascript/dist/index.js.map +1 -0
  121. package/dist/esm/node_modules/.pnpm/@lezer_lr@1.4.0/node_modules/@lezer/lr/dist/index.js +1872 -0
  122. package/dist/esm/node_modules/.pnpm/@lezer_lr@1.4.0/node_modules/@lezer/lr/dist/index.js.map +1 -0
  123. package/dist/esm/page/signup/index.vue2.js +1 -1
  124. package/dist/esm/page/signup/index.vue2.js.map +1 -1
  125. package/dist/esm/router-middleware/auth.js +1 -1
  126. package/dist/esm/router-middleware/auth.js.map +1 -1
  127. package/dist/style/index.css +1 -1
  128. package/dist/style/modules/cms/index.css +1 -0
  129. package/dist/style/modules/cms/resource-manager.css +1 -0
  130. package/dist/style/src/index.scss +16 -15
  131. package/dist/style/src/modules/cms/index.scss +1 -0
  132. package/dist/style/src/modules/cms/resource-manager.scss +71 -0
  133. package/package.json +4 -6
@@ -252,6 +252,52 @@ class NodeType {
252
252
  An empty dummy node type to use when no actual type is available.
253
253
  */
254
254
  NodeType.none = new NodeType("", Object.create(null), 0, 8 /* NodeFlag.Anonymous */);
255
+ /**
256
+ A node set holds a collection of node types. It is used to
257
+ compactly represent trees by storing their type ids, rather than a
258
+ full pointer to the type object, in a numeric array. Each parser
259
+ [has](#lr.LRParser.nodeSet) a node set, and [tree
260
+ buffers](#common.TreeBuffer) can only store collections of nodes
261
+ from the same set. A set can have a maximum of 2**16 (65536) node
262
+ types in it, so that the ids fit into 16-bit typed array slots.
263
+ */
264
+ class NodeSet {
265
+ /**
266
+ Create a set with the given types. The `id` property of each
267
+ type should correspond to its position within the array.
268
+ */
269
+ constructor(
270
+ /**
271
+ The node types in this set, by id.
272
+ */
273
+ types) {
274
+ this.types = types;
275
+ for (let i = 0; i < types.length; i++)
276
+ if (types[i].id != i)
277
+ throw new RangeError("Node type ids should correspond to array positions when creating a node set");
278
+ }
279
+ /**
280
+ Create a copy of this set with some node properties added. The
281
+ arguments to this method can be created with
282
+ [`NodeProp.add`](#common.NodeProp.add).
283
+ */
284
+ extend(...props) {
285
+ let newTypes = [];
286
+ for (let type of this.types) {
287
+ let newProps = null;
288
+ for (let source of props) {
289
+ let add = source(type);
290
+ if (add) {
291
+ if (!newProps)
292
+ newProps = Object.assign({}, type.props);
293
+ newProps[add[0].id] = add[1];
294
+ }
295
+ }
296
+ newTypes.push(newProps ? new NodeType(type.name, newProps, type.id, type.flags) : type);
297
+ }
298
+ return new NodeSet(newTypes);
299
+ }
300
+ }
255
301
  const CachedNode = new WeakMap(), CachedInnerNode = new WeakMap();
256
302
  /**
257
303
  Options that control iteration. Can be combined with the `|`
@@ -1507,6 +1553,58 @@ mkTree) {
1507
1553
  divide(children, positions, from, to, 0);
1508
1554
  return (mkTop || mkTree)(localChildren, localPositions, length);
1509
1555
  }
1556
+ /**
1557
+ Provides a way to associate values with pieces of trees. As long
1558
+ as that part of the tree is reused, the associated values can be
1559
+ retrieved from an updated tree.
1560
+ */
1561
+ class NodeWeakMap {
1562
+ constructor() {
1563
+ this.map = new WeakMap();
1564
+ }
1565
+ setBuffer(buffer, index, value) {
1566
+ let inner = this.map.get(buffer);
1567
+ if (!inner)
1568
+ this.map.set(buffer, inner = new Map);
1569
+ inner.set(index, value);
1570
+ }
1571
+ getBuffer(buffer, index) {
1572
+ let inner = this.map.get(buffer);
1573
+ return inner && inner.get(index);
1574
+ }
1575
+ /**
1576
+ Set the value for this syntax node.
1577
+ */
1578
+ set(node, value) {
1579
+ if (node instanceof BufferNode)
1580
+ this.setBuffer(node.context.buffer, node.index, value);
1581
+ else if (node instanceof TreeNode)
1582
+ this.map.set(node.tree, value);
1583
+ }
1584
+ /**
1585
+ Retrieve value for this syntax node, if it exists in the map.
1586
+ */
1587
+ get(node) {
1588
+ return node instanceof BufferNode ? this.getBuffer(node.context.buffer, node.index)
1589
+ : node instanceof TreeNode ? this.map.get(node.tree) : undefined;
1590
+ }
1591
+ /**
1592
+ Set the value for the node that a cursor currently points to.
1593
+ */
1594
+ cursorSet(cursor, value) {
1595
+ if (cursor.buffer)
1596
+ this.setBuffer(cursor.buffer.buffer, cursor.index, value);
1597
+ else
1598
+ this.map.set(cursor.tree, value);
1599
+ }
1600
+ /**
1601
+ Retrieve the value for the node that a cursor currently points
1602
+ to.
1603
+ */
1604
+ cursorGet(cursor) {
1605
+ return cursor.buffer ? this.getBuffer(cursor.buffer.buffer, cursor.index) : this.map.get(cursor.tree);
1606
+ }
1607
+ }
1510
1608
 
1511
1609
  /**
1512
1610
  Tree fragments are used during [incremental
@@ -1654,15 +1752,426 @@ class StringInput {
1654
1752
  get lineChunks() { return false; }
1655
1753
  read(from, to) { return this.string.slice(from, to); }
1656
1754
  }
1657
- new NodeProp({ perNode: true });
1755
+
1756
+ /**
1757
+ Create a parse wrapper that, after the inner parse completes,
1758
+ scans its tree for mixed language regions with the `nest`
1759
+ function, runs the resulting [inner parses](#common.NestedParse),
1760
+ and then [mounts](#common.NodeProp^mounted) their results onto the
1761
+ tree.
1762
+ */
1763
+ function parseMixed(nest) {
1764
+ return (parse, input, fragments, ranges) => new MixedParse(parse, nest, input, fragments, ranges);
1765
+ }
1766
+ class InnerParse {
1767
+ constructor(parser, parse, overlay, target, from) {
1768
+ this.parser = parser;
1769
+ this.parse = parse;
1770
+ this.overlay = overlay;
1771
+ this.target = target;
1772
+ this.from = from;
1773
+ }
1774
+ }
1775
+ function checkRanges(ranges) {
1776
+ if (!ranges.length || ranges.some(r => r.from >= r.to))
1777
+ throw new RangeError("Invalid inner parse ranges given: " + JSON.stringify(ranges));
1778
+ }
1779
+ class ActiveOverlay {
1780
+ constructor(parser, predicate, mounts, index, start, target, prev) {
1781
+ this.parser = parser;
1782
+ this.predicate = predicate;
1783
+ this.mounts = mounts;
1784
+ this.index = index;
1785
+ this.start = start;
1786
+ this.target = target;
1787
+ this.prev = prev;
1788
+ this.depth = 0;
1789
+ this.ranges = [];
1790
+ }
1791
+ }
1792
+ const stoppedInner = new NodeProp({ perNode: true });
1793
+ class MixedParse {
1794
+ constructor(base, nest, input, fragments, ranges) {
1795
+ this.nest = nest;
1796
+ this.input = input;
1797
+ this.fragments = fragments;
1798
+ this.ranges = ranges;
1799
+ this.inner = [];
1800
+ this.innerDone = 0;
1801
+ this.baseTree = null;
1802
+ this.stoppedAt = null;
1803
+ this.baseParse = base;
1804
+ }
1805
+ advance() {
1806
+ if (this.baseParse) {
1807
+ let done = this.baseParse.advance();
1808
+ if (!done)
1809
+ return null;
1810
+ this.baseParse = null;
1811
+ this.baseTree = done;
1812
+ this.startInner();
1813
+ if (this.stoppedAt != null)
1814
+ for (let inner of this.inner)
1815
+ inner.parse.stopAt(this.stoppedAt);
1816
+ }
1817
+ if (this.innerDone == this.inner.length) {
1818
+ let result = this.baseTree;
1819
+ if (this.stoppedAt != null)
1820
+ result = new Tree(result.type, result.children, result.positions, result.length, result.propValues.concat([[stoppedInner, this.stoppedAt]]));
1821
+ return result;
1822
+ }
1823
+ let inner = this.inner[this.innerDone], done = inner.parse.advance();
1824
+ if (done) {
1825
+ this.innerDone++;
1826
+ // This is a somewhat dodgy but super helpful hack where we
1827
+ // patch up nodes created by the inner parse (and thus
1828
+ // presumably not aliased anywhere else) to hold the information
1829
+ // about the inner parse.
1830
+ let props = Object.assign(Object.create(null), inner.target.props);
1831
+ props[NodeProp.mounted.id] = new MountedTree(done, inner.overlay, inner.parser);
1832
+ inner.target.props = props;
1833
+ }
1834
+ return null;
1835
+ }
1836
+ get parsedPos() {
1837
+ if (this.baseParse)
1838
+ return 0;
1839
+ let pos = this.input.length;
1840
+ for (let i = this.innerDone; i < this.inner.length; i++) {
1841
+ if (this.inner[i].from < pos)
1842
+ pos = Math.min(pos, this.inner[i].parse.parsedPos);
1843
+ }
1844
+ return pos;
1845
+ }
1846
+ stopAt(pos) {
1847
+ this.stoppedAt = pos;
1848
+ if (this.baseParse)
1849
+ this.baseParse.stopAt(pos);
1850
+ else
1851
+ for (let i = this.innerDone; i < this.inner.length; i++)
1852
+ this.inner[i].parse.stopAt(pos);
1853
+ }
1854
+ startInner() {
1855
+ let fragmentCursor = new FragmentCursor(this.fragments);
1856
+ let overlay = null;
1857
+ let covered = null;
1858
+ let cursor = new TreeCursor(new TreeNode(this.baseTree, this.ranges[0].from, 0, null), exports.IterMode.IncludeAnonymous | exports.IterMode.IgnoreMounts);
1859
+ scan: for (let nest, isCovered;;) {
1860
+ let enter = true, range;
1861
+ if (this.stoppedAt != null && cursor.from >= this.stoppedAt) {
1862
+ enter = false;
1863
+ }
1864
+ else if (fragmentCursor.hasNode(cursor)) {
1865
+ if (overlay) {
1866
+ let match = overlay.mounts.find(m => m.frag.from <= cursor.from && m.frag.to >= cursor.to && m.mount.overlay);
1867
+ if (match)
1868
+ for (let r of match.mount.overlay) {
1869
+ let from = r.from + match.pos, to = r.to + match.pos;
1870
+ if (from >= cursor.from && to <= cursor.to && !overlay.ranges.some(r => r.from < to && r.to > from))
1871
+ overlay.ranges.push({ from, to });
1872
+ }
1873
+ }
1874
+ enter = false;
1875
+ }
1876
+ else if (covered && (isCovered = checkCover(covered.ranges, cursor.from, cursor.to))) {
1877
+ enter = isCovered != 2 /* Cover.Full */;
1878
+ }
1879
+ else if (!cursor.type.isAnonymous && (nest = this.nest(cursor, this.input)) &&
1880
+ (cursor.from < cursor.to || !nest.overlay)) {
1881
+ if (!cursor.tree)
1882
+ materialize(cursor);
1883
+ let oldMounts = fragmentCursor.findMounts(cursor.from, nest.parser);
1884
+ if (typeof nest.overlay == "function") {
1885
+ overlay = new ActiveOverlay(nest.parser, nest.overlay, oldMounts, this.inner.length, cursor.from, cursor.tree, overlay);
1886
+ }
1887
+ else {
1888
+ let ranges = punchRanges(this.ranges, nest.overlay ||
1889
+ (cursor.from < cursor.to ? [new Range(cursor.from, cursor.to)] : []));
1890
+ if (ranges.length)
1891
+ checkRanges(ranges);
1892
+ if (ranges.length || !nest.overlay)
1893
+ this.inner.push(new InnerParse(nest.parser, ranges.length ? nest.parser.startParse(this.input, enterFragments(oldMounts, ranges), ranges)
1894
+ : nest.parser.startParse(""), nest.overlay ? nest.overlay.map(r => new Range(r.from - cursor.from, r.to - cursor.from)) : null, cursor.tree, ranges.length ? ranges[0].from : cursor.from));
1895
+ if (!nest.overlay)
1896
+ enter = false;
1897
+ else if (ranges.length)
1898
+ covered = { ranges, depth: 0, prev: covered };
1899
+ }
1900
+ }
1901
+ else if (overlay && (range = overlay.predicate(cursor))) {
1902
+ if (range === true)
1903
+ range = new Range(cursor.from, cursor.to);
1904
+ if (range.from < range.to)
1905
+ overlay.ranges.push(range);
1906
+ }
1907
+ if (enter && cursor.firstChild()) {
1908
+ if (overlay)
1909
+ overlay.depth++;
1910
+ if (covered)
1911
+ covered.depth++;
1912
+ }
1913
+ else {
1914
+ for (;;) {
1915
+ if (cursor.nextSibling())
1916
+ break;
1917
+ if (!cursor.parent())
1918
+ break scan;
1919
+ if (overlay && !--overlay.depth) {
1920
+ let ranges = punchRanges(this.ranges, overlay.ranges);
1921
+ if (ranges.length) {
1922
+ checkRanges(ranges);
1923
+ this.inner.splice(overlay.index, 0, new InnerParse(overlay.parser, overlay.parser.startParse(this.input, enterFragments(overlay.mounts, ranges), ranges), overlay.ranges.map(r => new Range(r.from - overlay.start, r.to - overlay.start)), overlay.target, ranges[0].from));
1924
+ }
1925
+ overlay = overlay.prev;
1926
+ }
1927
+ if (covered && !--covered.depth)
1928
+ covered = covered.prev;
1929
+ }
1930
+ }
1931
+ }
1932
+ }
1933
+ }
1934
+ function checkCover(covered, from, to) {
1935
+ for (let range of covered) {
1936
+ if (range.from >= to)
1937
+ break;
1938
+ if (range.to > from)
1939
+ return range.from <= from && range.to >= to ? 2 /* Cover.Full */ : 1 /* Cover.Partial */;
1940
+ }
1941
+ return 0 /* Cover.None */;
1942
+ }
1943
+ // Take a piece of buffer and convert it into a stand-alone
1944
+ // TreeBuffer.
1945
+ function sliceBuf(buf, startI, endI, nodes, positions, off) {
1946
+ if (startI < endI) {
1947
+ let from = buf.buffer[startI + 1];
1948
+ nodes.push(buf.slice(startI, endI, from));
1949
+ positions.push(from - off);
1950
+ }
1951
+ }
1952
+ // This function takes a node that's in a buffer, and converts it, and
1953
+ // its parent buffer nodes, into a Tree. This is again acting on the
1954
+ // assumption that the trees and buffers have been constructed by the
1955
+ // parse that was ran via the mix parser, and thus aren't shared with
1956
+ // any other code, making violations of the immutability safe.
1957
+ function materialize(cursor) {
1958
+ let { node } = cursor, stack = [];
1959
+ let buffer = node.context.buffer;
1960
+ // Scan up to the nearest tree
1961
+ do {
1962
+ stack.push(cursor.index);
1963
+ cursor.parent();
1964
+ } while (!cursor.tree);
1965
+ // Find the index of the buffer in that tree
1966
+ let base = cursor.tree, i = base.children.indexOf(buffer);
1967
+ let buf = base.children[i], b = buf.buffer, newStack = [i];
1968
+ // Split a level in the buffer, putting the nodes before and after
1969
+ // the child that contains `node` into new buffers.
1970
+ function split(startI, endI, type, innerOffset, length, stackPos) {
1971
+ let targetI = stack[stackPos];
1972
+ let children = [], positions = [];
1973
+ sliceBuf(buf, startI, targetI, children, positions, innerOffset);
1974
+ let from = b[targetI + 1], to = b[targetI + 2];
1975
+ newStack.push(children.length);
1976
+ let child = stackPos
1977
+ ? split(targetI + 4, b[targetI + 3], buf.set.types[b[targetI]], from, to - from, stackPos - 1)
1978
+ : node.toTree();
1979
+ children.push(child);
1980
+ positions.push(from - innerOffset);
1981
+ sliceBuf(buf, b[targetI + 3], endI, children, positions, innerOffset);
1982
+ return new Tree(type, children, positions, length);
1983
+ }
1984
+ base.children[i] = split(0, b.length, NodeType.none, 0, buf.length, stack.length - 1);
1985
+ // Move the cursor back to the target node
1986
+ for (let index of newStack) {
1987
+ let tree = cursor.tree.children[index], pos = cursor.tree.positions[index];
1988
+ cursor.yield(new TreeNode(tree, pos + cursor.from, index, cursor._tree));
1989
+ }
1990
+ }
1991
+ class StructureCursor {
1992
+ constructor(root, offset) {
1993
+ this.offset = offset;
1994
+ this.done = false;
1995
+ this.cursor = root.cursor(exports.IterMode.IncludeAnonymous | exports.IterMode.IgnoreMounts);
1996
+ }
1997
+ // Move to the first node (in pre-order) that starts at or after `pos`.
1998
+ moveTo(pos) {
1999
+ let { cursor } = this, p = pos - this.offset;
2000
+ while (!this.done && cursor.from < p) {
2001
+ if (cursor.to >= pos && cursor.enter(p, 1, exports.IterMode.IgnoreOverlays | exports.IterMode.ExcludeBuffers)) ;
2002
+ else if (!cursor.next(false))
2003
+ this.done = true;
2004
+ }
2005
+ }
2006
+ hasNode(cursor) {
2007
+ this.moveTo(cursor.from);
2008
+ if (!this.done && this.cursor.from + this.offset == cursor.from && this.cursor.tree) {
2009
+ for (let tree = this.cursor.tree;;) {
2010
+ if (tree == cursor.tree)
2011
+ return true;
2012
+ if (tree.children.length && tree.positions[0] == 0 && tree.children[0] instanceof Tree)
2013
+ tree = tree.children[0];
2014
+ else
2015
+ break;
2016
+ }
2017
+ }
2018
+ return false;
2019
+ }
2020
+ }
2021
+ class FragmentCursor {
2022
+ constructor(fragments) {
2023
+ var _a;
2024
+ this.fragments = fragments;
2025
+ this.curTo = 0;
2026
+ this.fragI = 0;
2027
+ if (fragments.length) {
2028
+ let first = this.curFrag = fragments[0];
2029
+ this.curTo = (_a = first.tree.prop(stoppedInner)) !== null && _a !== void 0 ? _a : first.to;
2030
+ this.inner = new StructureCursor(first.tree, -first.offset);
2031
+ }
2032
+ else {
2033
+ this.curFrag = this.inner = null;
2034
+ }
2035
+ }
2036
+ hasNode(node) {
2037
+ while (this.curFrag && node.from >= this.curTo)
2038
+ this.nextFrag();
2039
+ return this.curFrag && this.curFrag.from <= node.from && this.curTo >= node.to && this.inner.hasNode(node);
2040
+ }
2041
+ nextFrag() {
2042
+ var _a;
2043
+ this.fragI++;
2044
+ if (this.fragI == this.fragments.length) {
2045
+ this.curFrag = this.inner = null;
2046
+ }
2047
+ else {
2048
+ let frag = this.curFrag = this.fragments[this.fragI];
2049
+ this.curTo = (_a = frag.tree.prop(stoppedInner)) !== null && _a !== void 0 ? _a : frag.to;
2050
+ this.inner = new StructureCursor(frag.tree, -frag.offset);
2051
+ }
2052
+ }
2053
+ findMounts(pos, parser) {
2054
+ var _a;
2055
+ let result = [];
2056
+ if (this.inner) {
2057
+ this.inner.cursor.moveTo(pos, 1);
2058
+ for (let pos = this.inner.cursor.node; pos; pos = pos.parent) {
2059
+ let mount = (_a = pos.tree) === null || _a === void 0 ? void 0 : _a.prop(NodeProp.mounted);
2060
+ if (mount && mount.parser == parser) {
2061
+ for (let i = this.fragI; i < this.fragments.length; i++) {
2062
+ let frag = this.fragments[i];
2063
+ if (frag.from >= pos.to)
2064
+ break;
2065
+ if (frag.tree == this.curFrag.tree)
2066
+ result.push({
2067
+ frag,
2068
+ pos: pos.from - frag.offset,
2069
+ mount
2070
+ });
2071
+ }
2072
+ }
2073
+ }
2074
+ }
2075
+ return result;
2076
+ }
2077
+ }
2078
+ function punchRanges(outer, ranges) {
2079
+ let copy = null, current = ranges;
2080
+ for (let i = 1, j = 0; i < outer.length; i++) {
2081
+ let gapFrom = outer[i - 1].to, gapTo = outer[i].from;
2082
+ for (; j < current.length; j++) {
2083
+ let r = current[j];
2084
+ if (r.from >= gapTo)
2085
+ break;
2086
+ if (r.to <= gapFrom)
2087
+ continue;
2088
+ if (!copy)
2089
+ current = copy = ranges.slice();
2090
+ if (r.from < gapFrom) {
2091
+ copy[j] = new Range(r.from, gapFrom);
2092
+ if (r.to > gapTo)
2093
+ copy.splice(j + 1, 0, new Range(gapTo, r.to));
2094
+ }
2095
+ else if (r.to > gapTo) {
2096
+ copy[j--] = new Range(gapTo, r.to);
2097
+ }
2098
+ else {
2099
+ copy.splice(j--, 1);
2100
+ }
2101
+ }
2102
+ }
2103
+ return current;
2104
+ }
2105
+ function findCoverChanges(a, b, from, to) {
2106
+ let iA = 0, iB = 0, inA = false, inB = false, pos = -1e9;
2107
+ let result = [];
2108
+ for (;;) {
2109
+ let nextA = iA == a.length ? 1e9 : inA ? a[iA].to : a[iA].from;
2110
+ let nextB = iB == b.length ? 1e9 : inB ? b[iB].to : b[iB].from;
2111
+ if (inA != inB) {
2112
+ let start = Math.max(pos, from), end = Math.min(nextA, nextB, to);
2113
+ if (start < end)
2114
+ result.push(new Range(start, end));
2115
+ }
2116
+ pos = Math.min(nextA, nextB);
2117
+ if (pos == 1e9)
2118
+ break;
2119
+ if (nextA == pos) {
2120
+ if (!inA)
2121
+ inA = true;
2122
+ else {
2123
+ inA = false;
2124
+ iA++;
2125
+ }
2126
+ }
2127
+ if (nextB == pos) {
2128
+ if (!inB)
2129
+ inB = true;
2130
+ else {
2131
+ inB = false;
2132
+ iB++;
2133
+ }
2134
+ }
2135
+ }
2136
+ return result;
2137
+ }
2138
+ // Given a number of fragments for the outer tree, and a set of ranges
2139
+ // to parse, find fragments for inner trees mounted around those
2140
+ // ranges, if any.
2141
+ function enterFragments(mounts, ranges) {
2142
+ let result = [];
2143
+ for (let { pos, mount, frag } of mounts) {
2144
+ let startPos = pos + (mount.overlay ? mount.overlay[0].from : 0), endPos = startPos + mount.tree.length;
2145
+ let from = Math.max(frag.from, startPos), to = Math.min(frag.to, endPos);
2146
+ if (mount.overlay) {
2147
+ let overlay = mount.overlay.map(r => new Range(r.from + pos, r.to + pos));
2148
+ let changes = findCoverChanges(ranges, overlay, from, to);
2149
+ for (let i = 0, pos = from;; i++) {
2150
+ let last = i == changes.length, end = last ? to : changes[i].from;
2151
+ if (end > pos)
2152
+ result.push(new TreeFragment(pos, end, mount.tree, -startPos, frag.from >= pos || frag.openStart, frag.to <= end || frag.openEnd));
2153
+ if (last)
2154
+ break;
2155
+ pos = changes[i].to;
2156
+ }
2157
+ }
2158
+ else {
2159
+ result.push(new TreeFragment(from, to, mount.tree, -startPos, frag.from >= startPos || frag.openStart, frag.to <= endPos || frag.openEnd));
2160
+ }
2161
+ }
2162
+ return result;
2163
+ }
1658
2164
 
1659
2165
  exports.DefaultBufferLength = DefaultBufferLength;
1660
2166
  exports.MountedTree = MountedTree;
1661
2167
  exports.NodeProp = NodeProp;
2168
+ exports.NodeSet = NodeSet;
1662
2169
  exports.NodeType = NodeType;
2170
+ exports.NodeWeakMap = NodeWeakMap;
1663
2171
  exports.Parser = Parser;
1664
2172
  exports.Tree = Tree;
1665
2173
  exports.TreeBuffer = TreeBuffer;
1666
2174
  exports.TreeCursor = TreeCursor;
1667
2175
  exports.TreeFragment = TreeFragment;
2176
+ exports.parseMixed = parseMixed;
1668
2177
  //# sourceMappingURL=index.js.map