@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
@@ -104,6 +104,21 @@ function completeFromList(list) {
104
104
  return token || context.explicit ? { from: token ? token.from : context.pos, options, validFor } : null;
105
105
  };
106
106
  }
107
+ /**
108
+ Wrap the given completion source so that it will not fire when the
109
+ cursor is in a syntax node with one of the given names.
110
+ */
111
+ function ifNotIn(nodes, source) {
112
+ return (context) => {
113
+ for (let pos = index$2.syntaxTree(context.state).resolveInner(context.pos, -1); pos; pos = pos.parent) {
114
+ if (nodes.indexOf(pos.name) > -1)
115
+ return null;
116
+ if (pos.type.isTop)
117
+ break;
118
+ }
119
+ return source(context);
120
+ };
121
+ }
107
122
  class Option {
108
123
  constructor(completion, source, match, score) {
109
124
  this.completion = completion;
@@ -1318,6 +1333,260 @@ const baseTheme = /*@__PURE__*/index.EditorView.baseTheme({
1318
1333
  }
1319
1334
  });
1320
1335
 
1336
+ class FieldPos {
1337
+ constructor(field, line, from, to) {
1338
+ this.field = field;
1339
+ this.line = line;
1340
+ this.from = from;
1341
+ this.to = to;
1342
+ }
1343
+ }
1344
+ class FieldRange {
1345
+ constructor(field, from, to) {
1346
+ this.field = field;
1347
+ this.from = from;
1348
+ this.to = to;
1349
+ }
1350
+ map(changes) {
1351
+ let from = changes.mapPos(this.from, -1, index$1.MapMode.TrackDel);
1352
+ let to = changes.mapPos(this.to, 1, index$1.MapMode.TrackDel);
1353
+ return from == null || to == null ? null : new FieldRange(this.field, from, to);
1354
+ }
1355
+ }
1356
+ class Snippet {
1357
+ constructor(lines, fieldPositions) {
1358
+ this.lines = lines;
1359
+ this.fieldPositions = fieldPositions;
1360
+ }
1361
+ instantiate(state, pos) {
1362
+ let text = [], lineStart = [pos];
1363
+ let lineObj = state.doc.lineAt(pos), baseIndent = /^\s*/.exec(lineObj.text)[0];
1364
+ for (let line of this.lines) {
1365
+ if (text.length) {
1366
+ let indent = baseIndent, tabs = /^\t*/.exec(line)[0].length;
1367
+ for (let i = 0; i < tabs; i++)
1368
+ indent += state.facet(index$2.indentUnit);
1369
+ lineStart.push(pos + indent.length - tabs);
1370
+ line = indent + line.slice(tabs);
1371
+ }
1372
+ text.push(line);
1373
+ pos += line.length + 1;
1374
+ }
1375
+ let ranges = this.fieldPositions.map(pos => new FieldRange(pos.field, lineStart[pos.line] + pos.from, lineStart[pos.line] + pos.to));
1376
+ return { text, ranges };
1377
+ }
1378
+ static parse(template) {
1379
+ let fields = [];
1380
+ let lines = [], positions = [], m;
1381
+ for (let line of template.split(/\r\n?|\n/)) {
1382
+ while (m = /[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(line)) {
1383
+ let seq = m[1] ? +m[1] : null, name = m[2] || m[3] || "", found = -1;
1384
+ for (let i = 0; i < fields.length; i++) {
1385
+ if (seq != null ? fields[i].seq == seq : name ? fields[i].name == name : false)
1386
+ found = i;
1387
+ }
1388
+ if (found < 0) {
1389
+ let i = 0;
1390
+ while (i < fields.length && (seq == null || (fields[i].seq != null && fields[i].seq < seq)))
1391
+ i++;
1392
+ fields.splice(i, 0, { seq, name });
1393
+ found = i;
1394
+ for (let pos of positions)
1395
+ if (pos.field >= found)
1396
+ pos.field++;
1397
+ }
1398
+ positions.push(new FieldPos(found, lines.length, m.index, m.index + name.length));
1399
+ line = line.slice(0, m.index) + name + line.slice(m.index + m[0].length);
1400
+ }
1401
+ for (let esc; esc = /\\([{}])/.exec(line);) {
1402
+ line = line.slice(0, esc.index) + esc[1] + line.slice(esc.index + esc[0].length);
1403
+ for (let pos of positions)
1404
+ if (pos.line == lines.length && pos.from > esc.index) {
1405
+ pos.from--;
1406
+ pos.to--;
1407
+ }
1408
+ }
1409
+ lines.push(line);
1410
+ }
1411
+ return new Snippet(lines, positions);
1412
+ }
1413
+ }
1414
+ let fieldMarker = /*@__PURE__*/index.Decoration.widget({ widget: /*@__PURE__*/new class extends index.WidgetType {
1415
+ toDOM() {
1416
+ let span = document.createElement("span");
1417
+ span.className = "cm-snippetFieldPosition";
1418
+ return span;
1419
+ }
1420
+ ignoreEvent() { return false; }
1421
+ } });
1422
+ let fieldRange = /*@__PURE__*/index.Decoration.mark({ class: "cm-snippetField" });
1423
+ class ActiveSnippet {
1424
+ constructor(ranges, active) {
1425
+ this.ranges = ranges;
1426
+ this.active = active;
1427
+ this.deco = index.Decoration.set(ranges.map(r => (r.from == r.to ? fieldMarker : fieldRange).range(r.from, r.to)));
1428
+ }
1429
+ map(changes) {
1430
+ let ranges = [];
1431
+ for (let r of this.ranges) {
1432
+ let mapped = r.map(changes);
1433
+ if (!mapped)
1434
+ return null;
1435
+ ranges.push(mapped);
1436
+ }
1437
+ return new ActiveSnippet(ranges, this.active);
1438
+ }
1439
+ selectionInsideField(sel) {
1440
+ return sel.ranges.every(range => this.ranges.some(r => r.field == this.active && r.from <= range.from && r.to >= range.to));
1441
+ }
1442
+ }
1443
+ const setActive = /*@__PURE__*/index$1.StateEffect.define({
1444
+ map(value, changes) { return value && value.map(changes); }
1445
+ });
1446
+ const moveToField = /*@__PURE__*/index$1.StateEffect.define();
1447
+ const snippetState = /*@__PURE__*/index$1.StateField.define({
1448
+ create() { return null; },
1449
+ update(value, tr) {
1450
+ for (let effect of tr.effects) {
1451
+ if (effect.is(setActive))
1452
+ return effect.value;
1453
+ if (effect.is(moveToField) && value)
1454
+ return new ActiveSnippet(value.ranges, effect.value);
1455
+ }
1456
+ if (value && tr.docChanged)
1457
+ value = value.map(tr.changes);
1458
+ if (value && tr.selection && !value.selectionInsideField(tr.selection))
1459
+ value = null;
1460
+ return value;
1461
+ },
1462
+ provide: f => index.EditorView.decorations.from(f, val => val ? val.deco : index.Decoration.none)
1463
+ });
1464
+ function fieldSelection(ranges, field) {
1465
+ return index$1.EditorSelection.create(ranges.filter(r => r.field == field).map(r => index$1.EditorSelection.range(r.from, r.to)));
1466
+ }
1467
+ /**
1468
+ Convert a snippet template to a function that can
1469
+ [apply](https://codemirror.net/6/docs/ref/#autocomplete.Completion.apply) it. Snippets are written
1470
+ using syntax like this:
1471
+
1472
+ "for (let ${index} = 0; ${index} < ${end}; ${index}++) {\n\t${}\n}"
1473
+
1474
+ Each `${}` placeholder (you may also use `#{}`) indicates a field
1475
+ that the user can fill in. Its name, if any, will be the default
1476
+ content for the field.
1477
+
1478
+ When the snippet is activated by calling the returned function,
1479
+ the code is inserted at the given position. Newlines in the
1480
+ template are indented by the indentation of the start line, plus
1481
+ one [indent unit](https://codemirror.net/6/docs/ref/#language.indentUnit) per tab character after
1482
+ the newline.
1483
+
1484
+ On activation, (all instances of) the first field are selected.
1485
+ The user can move between fields with Tab and Shift-Tab as long as
1486
+ the fields are active. Moving to the last field or moving the
1487
+ cursor out of the current field deactivates the fields.
1488
+
1489
+ The order of fields defaults to textual order, but you can add
1490
+ numbers to placeholders (`${1}` or `${1:defaultText}`) to provide
1491
+ a custom order.
1492
+
1493
+ To include a literal `{` or `}` in your template, put a backslash
1494
+ in front of it. This will be removed and the brace will not be
1495
+ interpreted as indicating a placeholder.
1496
+ */
1497
+ function snippet(template) {
1498
+ let snippet = Snippet.parse(template);
1499
+ return (editor, completion, from, to) => {
1500
+ let { text, ranges } = snippet.instantiate(editor.state, from);
1501
+ let spec = {
1502
+ changes: { from, to, insert: index$1.Text.of(text) },
1503
+ scrollIntoView: true,
1504
+ annotations: completion ? [pickedCompletion.of(completion), index$1.Transaction.userEvent.of("input.complete")] : undefined
1505
+ };
1506
+ if (ranges.length)
1507
+ spec.selection = fieldSelection(ranges, 0);
1508
+ if (ranges.some(r => r.field > 0)) {
1509
+ let active = new ActiveSnippet(ranges, 0);
1510
+ let effects = spec.effects = [setActive.of(active)];
1511
+ if (editor.state.field(snippetState, false) === undefined)
1512
+ effects.push(index$1.StateEffect.appendConfig.of([snippetState, addSnippetKeymap, snippetPointerHandler, baseTheme]));
1513
+ }
1514
+ editor.dispatch(editor.state.update(spec));
1515
+ };
1516
+ }
1517
+ function moveField(dir) {
1518
+ return ({ state, dispatch }) => {
1519
+ let active = state.field(snippetState, false);
1520
+ if (!active || dir < 0 && active.active == 0)
1521
+ return false;
1522
+ let next = active.active + dir, last = dir > 0 && !active.ranges.some(r => r.field == next + dir);
1523
+ dispatch(state.update({
1524
+ selection: fieldSelection(active.ranges, next),
1525
+ effects: setActive.of(last ? null : new ActiveSnippet(active.ranges, next)),
1526
+ scrollIntoView: true
1527
+ }));
1528
+ return true;
1529
+ };
1530
+ }
1531
+ /**
1532
+ A command that clears the active snippet, if any.
1533
+ */
1534
+ const clearSnippet = ({ state, dispatch }) => {
1535
+ let active = state.field(snippetState, false);
1536
+ if (!active)
1537
+ return false;
1538
+ dispatch(state.update({ effects: setActive.of(null) }));
1539
+ return true;
1540
+ };
1541
+ /**
1542
+ Move to the next snippet field, if available.
1543
+ */
1544
+ const nextSnippetField = /*@__PURE__*/moveField(1);
1545
+ /**
1546
+ Move to the previous snippet field, if available.
1547
+ */
1548
+ const prevSnippetField = /*@__PURE__*/moveField(-1);
1549
+ const defaultSnippetKeymap = [
1550
+ { key: "Tab", run: nextSnippetField, shift: prevSnippetField },
1551
+ { key: "Escape", run: clearSnippet }
1552
+ ];
1553
+ /**
1554
+ A facet that can be used to configure the key bindings used by
1555
+ snippets. The default binds Tab to
1556
+ [`nextSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.nextSnippetField), Shift-Tab to
1557
+ [`prevSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.prevSnippetField), and Escape
1558
+ to [`clearSnippet`](https://codemirror.net/6/docs/ref/#autocomplete.clearSnippet).
1559
+ */
1560
+ const snippetKeymap = /*@__PURE__*/index$1.Facet.define({
1561
+ combine(maps) { return maps.length ? maps[0] : defaultSnippetKeymap; }
1562
+ });
1563
+ const addSnippetKeymap = /*@__PURE__*/index$1.Prec.highest(/*@__PURE__*/index.keymap.compute([snippetKeymap], state => state.facet(snippetKeymap)));
1564
+ /**
1565
+ Create a completion from a snippet. Returns an object with the
1566
+ properties from `completion`, plus an `apply` function that
1567
+ applies the snippet.
1568
+ */
1569
+ function snippetCompletion(template, completion) {
1570
+ return Object.assign(Object.assign({}, completion), { apply: snippet(template) });
1571
+ }
1572
+ const snippetPointerHandler = /*@__PURE__*/index.EditorView.domEventHandlers({
1573
+ mousedown(event, view) {
1574
+ let active = view.state.field(snippetState, false), pos;
1575
+ if (!active || (pos = view.posAtCoords({ x: event.clientX, y: event.clientY })) == null)
1576
+ return false;
1577
+ let match = active.ranges.find(r => r.from <= pos && r.to >= pos);
1578
+ if (!match || match.field == active.active)
1579
+ return false;
1580
+ view.dispatch({
1581
+ selection: fieldSelection(active.ranges, match.field),
1582
+ effects: setActive.of(active.ranges.some(r => r.field > match.field)
1583
+ ? new ActiveSnippet(active.ranges, match.field) : null),
1584
+ scrollIntoView: true
1585
+ });
1586
+ return true;
1587
+ }
1588
+ });
1589
+
1321
1590
  const defaults = {
1322
1591
  brackets: ["(", "[", "{", "'", '"'],
1323
1592
  before: ")]}:;>",
@@ -1601,15 +1870,22 @@ const completionKeymapExt = /*@__PURE__*/index$1.Prec.highest(/*@__PURE__*/index
1601
1870
  exports.CompletionContext = CompletionContext;
1602
1871
  exports.acceptCompletion = acceptCompletion;
1603
1872
  exports.autocompletion = autocompletion;
1873
+ exports.clearSnippet = clearSnippet;
1604
1874
  exports.closeBrackets = closeBrackets;
1605
1875
  exports.closeBracketsKeymap = closeBracketsKeymap;
1606
1876
  exports.closeCompletion = closeCompletion;
1607
1877
  exports.completeFromList = completeFromList;
1608
1878
  exports.completionKeymap = completionKeymap;
1609
1879
  exports.deleteBracketPair = deleteBracketPair;
1880
+ exports.ifNotIn = ifNotIn;
1610
1881
  exports.insertBracket = insertBracket;
1611
1882
  exports.insertCompletionText = insertCompletionText;
1612
1883
  exports.moveCompletionSelection = moveCompletionSelection;
1884
+ exports.nextSnippetField = nextSnippetField;
1613
1885
  exports.pickedCompletion = pickedCompletion;
1886
+ exports.prevSnippetField = prevSnippetField;
1887
+ exports.snippet = snippet;
1888
+ exports.snippetCompletion = snippetCompletion;
1889
+ exports.snippetKeymap = snippetKeymap;
1614
1890
  exports.startCompletion = startCompletion;
1615
1891
  //# sourceMappingURL=index.js.map