highmark-markdown 1.0.177 → 1.0.178

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 (76) hide show
  1. package/example.js +1673 -2462
  2. package/lib/example/view/div/preview.js +19 -19
  3. package/lib/example/view/div/sizeable/left.js +2 -2
  4. package/lib/example/view/textarea/plainText.js +3 -3
  5. package/lib/example/view/xmp.js +3 -3
  6. package/lib/example/view.js +7 -8
  7. package/lib/index.js +15 -7
  8. package/lib/map/className.js +4 -45
  9. package/lib/map/node/html.js +12 -5
  10. package/lib/map/node/markdown.js +2 -2
  11. package/lib/map/tagName.js +4 -45
  12. package/lib/node/html/topmost.js +21 -39
  13. package/lib/node/html.js +15 -1
  14. package/lib/node/markdown/directive/embee.js +8 -8
  15. package/lib/node/markdown/directive/include.js +7 -7
  16. package/lib/node/markdown/division.js +21 -220
  17. package/lib/node/markdown/subDivision.js +11 -14
  18. package/lib/node/markdown/topmost.js +3 -3
  19. package/lib/queries.js +4 -3
  20. package/lib/ruleNames.js +11 -6
  21. package/lib/transform/{subDivision/contentsDirective.js → contentsDirective.js} +2 -3
  22. package/lib/transform/contentsList.js +2 -3
  23. package/lib/transform/footnote.js +2 -3
  24. package/lib/transform/{subDivision/footnote.js → footnoteIdentifier.js} +3 -4
  25. package/lib/transform/{subDivision/footnotesDirective.js → footnotesDirective.js} +2 -3
  26. package/lib/transform/footnotesList.js +2 -3
  27. package/lib/transform/{subDivision/indexDirective.js → indexDirective.js} +2 -3
  28. package/lib/transform/{embedDirective.js → markdown/directive/embed.js} +12 -12
  29. package/lib/transform/{ignoreDirective.js → markdown/directive/ignore.js} +12 -12
  30. package/lib/transform/{includeDirective.js → markdown/directive/include.js} +12 -12
  31. package/lib/transform/{subDivision.js → markdown/subDivision.js} +12 -12
  32. package/lib/transform/{subDivision/pageNumberDirective.js → pageNumberDirective.js} +2 -3
  33. package/lib/utilities/dom.js +62 -0
  34. package/lib/utilities/footnotes.js +2 -3
  35. package/lib/utilities/html.js +135 -50
  36. package/lib/utilities/index.js +5 -5
  37. package/lib/utilities/markdown.js +89 -0
  38. package/lib/utilities/query.js +17 -129
  39. package/package.json +4 -4
  40. package/src/example/view/div/preview.js +16 -16
  41. package/src/example/view/div/sizeable/left.js +1 -1
  42. package/src/example/view/textarea/plainText.js +2 -2
  43. package/src/example/view/xmp.js +3 -2
  44. package/src/example/view.js +9 -10
  45. package/src/index.js +2 -0
  46. package/src/map/className.js +3 -6
  47. package/src/map/node/html.js +14 -2
  48. package/src/map/node/markdown.js +2 -2
  49. package/src/map/tagName.js +3 -6
  50. package/src/node/html/topmost.js +16 -47
  51. package/src/node/html.js +12 -0
  52. package/src/node/markdown/directive/embee.js +5 -5
  53. package/src/node/markdown/directive/include.js +5 -5
  54. package/src/node/markdown/division.js +128 -135
  55. package/src/node/markdown/subDivision.js +7 -10
  56. package/src/node/markdown/topmost.js +1 -1
  57. package/src/queries.js +5 -3
  58. package/src/ruleNames.js +4 -2
  59. package/src/transform/{subDivision/contentsDirective.js → contentsDirective.js} +0 -2
  60. package/src/transform/contentsList.js +0 -1
  61. package/src/transform/footnote.js +0 -2
  62. package/src/transform/{subDivision/footnote.js → footnoteIdentifier.js} +0 -2
  63. package/src/transform/{subDivision/footnotesDirective.js → footnotesDirective.js} +0 -2
  64. package/src/transform/footnotesList.js +0 -2
  65. package/src/transform/{subDivision/indexDirective.js → indexDirective.js} +0 -2
  66. package/src/transform/{embedDirective.js → markdown/directive/embed.js} +3 -3
  67. package/src/transform/{ignoreDirective.js → markdown/directive/ignore.js} +3 -3
  68. package/src/transform/{includeDirective.js → markdown/directive/include.js} +3 -3
  69. package/src/transform/{subDivision.js → markdown/subDivision.js} +3 -3
  70. package/src/transform/{subDivision/pageNumberDirective.js → pageNumberDirective.js} +0 -2
  71. package/src/utilities/dom.js +58 -0
  72. package/src/utilities/footnotes.js +0 -2
  73. package/src/utilities/html.js +122 -49
  74. package/src/utilities/index.js +4 -4
  75. package/src/utilities/markdown.js +72 -0
  76. package/src/utilities/query.js +12 -122
@@ -115,8 +115,8 @@ function adjustProperNouns(indexMap, context) {
115
115
  return lowerCaseProperNoun;
116
116
  });
117
117
  (0, _object.mapKeys)(indexMap, function(wordOrPhrase) {
118
- var index = lowerCaseProperNouns.findIndex(function(lowerCaseProperNmae) {
119
- if (lowerCaseProperNmae === wordOrPhrase) {
118
+ var index = lowerCaseProperNouns.findIndex(function(lowerCaseProperName) {
119
+ if (lowerCaseProperName === wordOrPhrase) {
120
120
  return true;
121
121
  }
122
122
  });
@@ -141,8 +141,8 @@ function adjustAcronyms(indexMap, context) {
141
141
  return lowerCaseAcronym;
142
142
  });
143
143
  (0, _object.mapKeys)(indexMap, function(wordOrPhrase) {
144
- var index = lowerCaseAcronyms.findIndex(function(lowerCaseProperNmae) {
145
- if (lowerCaseProperNmae === wordOrPhrase) {
144
+ var index = lowerCaseAcronyms.findIndex(function(lowerCaseProperName) {
145
+ if (lowerCaseProperName === wordOrPhrase) {
146
146
  return true;
147
147
  }
148
148
  });
@@ -255,4 +255,4 @@ function pluralToSingular(text) {
255
255
  return text;
256
256
  }
257
257
 
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgSW5kZXhNYXRjaCBmcm9tIFwiLi4vaW5kZXgvbWF0Y2hcIjtcblxuaW1wb3J0IHsgZm9yRWFjaCwgbWFwS2V5cywgbWFwVmFsdWVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9vYmplY3RcIjtcbmltcG9ydCB7IFlfU1RSSU5HLCBTX1NUUklORywgSUVTX1NUUklORywgRU1QVFlfU1RSSU5HLCBTSU5HTEVfU1BBQ0UsIFBBUkVOVEhFU0lTRURfU19TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhNYXBGcm9tRGl2aXNpb25NYXJrZG93bk5vZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBpbmRleE1hcCA9IGNyZWF0ZUluZGV4TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFBsdXJhbFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFNpbmd1bGFyUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCk7XG5cbiAgYWRqdXN0UHJvcGVyTm91bnMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdEFjcm9ueW1zKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUluZGV4TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBpbmRleE1hcCA9IHt9O1xuXG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHBocmFzZXMgfSA9IGluZGV4T3B0aW9ucyxcbiAgICAgICAgaW5kZXhNYXRjaGVzID0gcGhyYXNlcy5tYXAoKHBocmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGluZGV4TWF0Y2ggPSBJbmRleE1hdGNoLmZyb21QaHJhc2UocGhyYXNlKTtcblxuICAgICAgICAgIHJldHVybiBpbmRleE1hdGNoO1xuICAgICAgICB9KTtcblxuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBjb25zdCBwYWdlTnVtYmVyID0gZGl2aXNpb25NYXJrZG93bk5vZGUuZ2V0UGFnZU51bWJlcigpO1xuXG4gICAgaWYgKHBhZ2VOdW1iZXIgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHBsYWluVGV4dCA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlLmFzUGxhaW5UZXh0KGNvbnRleHQpLFxuICAgICAgICAgICAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpO1xuXG4gICAgICB3b3Jkc09yUGhyYXNlcy5mb3JFYWNoKCh3b3JkT3JQaHJhc2UpID0+IHtcbiAgICAgICAgY29uc3QgcGFnZU51bWJlcnMgPSBpbmRleE1hcC5oYXNPd25Qcm9wZXJ0eSh3b3JkT3JQaHJhc2UpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4TWFwW3dvcmRPclBocmFzZV0gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXTtcblxuICAgICAgICBpbmRleE1hcFt3b3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG5cbiAgICAgICAgcGFnZU51bWJlcnMucHVzaChwYWdlTnVtYmVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGluZGV4TWFwO1xufVxuXG5mdW5jdGlvbiB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpIHtcbiAgbGV0IHdvcmRzT3JQaHJhc2VzO1xuXG4gIHBsYWluVGV4dCA9IHByZXBhcmVQbGFpblRleHQocGxhaW5UZXh0KTsgIC8vL1xuXG4gIGluZGV4TWF0Y2hlcy5mb3JFYWNoKChpbmRleE1hdGNoKSA9PiB7XG4gICAgcGxhaW5UZXh0ID0gaW5kZXhNYXRjaC5yZXBsYWNlKHBsYWluVGV4dCk7XG4gIH0pO1xuXG4gIHdvcmRzT3JQaHJhc2VzID0gcGxhaW5UZXh0LnNwbGl0KFNJTkdMRV9TUEFDRSk7XG5cbiAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlcy5tYXAoKHdvcmRPclBocmFzZSkgPT4ge1xuICAgIHdvcmRPclBocmFzZSA9IEluZGV4TWF0Y2gucmV2ZXJ0KHdvcmRPclBocmFzZSk7ICAvLy9cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xuXG4gIHJldHVybiB3b3Jkc09yUGhyYXNlcztcbn1cblxuZnVuY3Rpb24gY29tcHJlc3NQYWdlTnVtYmVycyhpbmRleE1hcCkge1xuICBtYXBWYWx1ZXMoaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UsIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgY29tcHJlc3MocGFnZU51bWJlcnMsIChwYWdlTnVtYmVyQSwgcGFnZU51bWJlckIpID0+IHtcbiAgICAgIGlmIChwYWdlTnVtYmVyQSA9PT0gcGFnZU51bWJlckIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBwYWdlTnVtYmVycy5zb3J0KChwYWdlTnVtYmVyQiwgcGFnZU51bWJlckEpID0+IHtcbiAgICAgIHBhZ2VOdW1iZXJBID0gTnVtYmVyKHBhZ2VOdW1iZXJBKTsgIC8vL1xuXG4gICAgICBwYWdlTnVtYmVyQiA9IE51bWJlcihwYWdlTnVtYmVyQik7ICAvLy9cblxuICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IHBhZ2VOdW1iZXJCIC0gcGFnZU51bWJlckE7XG5cbiAgICAgIHJldHVybiBkaWZmZXJlbmNlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhZ2VOdW1iZXJzO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IGlnbm9yZWRXb3JkcyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGlnbm9yZWRXb3Jkcy5mb3JFYWNoKChpZ25vcmVkV29yZCkgPT4ge1xuICAgIGRlbGV0ZSBpbmRleE1hcFtpZ25vcmVkV29yZF07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RQcm9wZXJOb3VucyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBwcm9wZXJOb3VucyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGNvbnN0IGxvd2VyQ2FzZVByb3Blck5vdW5zID0gcHJvcGVyTm91bnMubWFwKChwcm9wZXJOb3VuKSA9PiB7XG4gICAgY29uc3QgbG93ZXJDYXNlUHJvcGVyTm91biA9IHByb3Blck5vdW4udG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBsb3dlckNhc2VQcm9wZXJOb3VuO1xuICB9KTtcblxuICBtYXBLZXlzKGluZGV4TWFwLCAod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBsb3dlckNhc2VQcm9wZXJOb3Vucy5maW5kSW5kZXgoKGxvd2VyQ2FzZVByb3Blck5tYWUpID0+IHtcbiAgICAgIGlmIChsb3dlckNhc2VQcm9wZXJObWFlID09PSB3b3JkT3JQaHJhc2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgcHJvcGVyTm91biA9IHByb3Blck5vdW5zW2luZGV4XTtcblxuICAgICAgd29yZE9yUGhyYXNlID0gcHJvcGVyTm91bjsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlUGxhaW5UZXh0KHBsYWluVGV4dCkge1xuICBwbGFpblRleHQgPSBwbGFpblRleHQudG9Mb3dlckNhc2UoKTsgIC8vL1xuXG4gIHBsYWluVGV4dCA9IHBsYWluVGV4dC5yZXBsYWNlKC9bXmEtejAtOVxcLSBdL2csIFNJTkdMRV9TUEFDRSk7XG5cbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnJlcGxhY2UoL1xccysvZywgU0lOR0xFX1NQQUNFKTtcblxuICBwbGFpblRleHQgPSBwbGFpblRleHQucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gcGxhaW5UZXh0O1xufVxuXG5mdW5jdGlvbiBhZGp1c3RBY3JvbnltcyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBhY3JvbnltcyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGNvbnN0IGxvd2VyQ2FzZUFjcm9ueW1zID0gYWNyb255bXMubWFwKChhY3JvbnltKSA9PiB7XG4gICAgY29uc3QgbG93ZXJDYXNlQWNyb255bSA9IGFjcm9ueW0udG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBsb3dlckNhc2VBY3JvbnltO1xuICB9KTtcblxuICBtYXBLZXlzKGluZGV4TWFwLCAod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBsb3dlckNhc2VBY3Jvbnltcy5maW5kSW5kZXgoKGxvd2VyQ2FzZVByb3Blck5tYWUpID0+IHtcbiAgICAgIGlmIChsb3dlckNhc2VQcm9wZXJObWFlID09PSB3b3JkT3JQaHJhc2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgYWNyb255bSA9IGFjcm9ueW1zW2luZGV4XTtcblxuICAgICAgd29yZE9yUGhyYXNlID0gYWNyb255bTsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpbmRleE9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgcGx1cmFscyB9ID0gaW5kZXhPcHRpb25zLFxuICAgICAgICBtaXhlZFBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzTWl4ZWQpLFxuICAgICAgICBwbHVyYWxQbHVyYWxzID0gbWFwUGx1cmFscyhtaXhlZFBsdXJhbHMsIG1peGVkVG9QbHVyYWwpLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSBtYXBQbHVyYWxzKG1peGVkUGx1cmFscywgbWl4ZWRUb1Npbmd1bGFyKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAoc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gc2luZ3VsYXJUb01peGVkKHNpbmd1bGFyV29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgIG1peGVkUGFnZU51bWJlcnMgPSBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gfHwgW107XG5cbiAgICAgIHBhZ2VOdW1iZXJzID0gW1xuICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG5cbiAgICBjb25zdCBwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBwbHVyYWxQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAocGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlKSB7XG4gICAgICBjb25zdCBwbHVyYWxXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gcGx1cmFsVG9NaXhlZChwbHVyYWxXb3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgbWl4ZWRQYWdlTnVtYmVycyA9IGluZGV4TWFwW21peGVkV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXTtcblxuICAgICAgaW5kZXhNYXBbbWl4ZWRXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0UGx1cmFsUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBwbHVyYWxzIH0gPSBpbmRleE9wdGlvbnMsXG4gICAgICAgIHBsdXJhbFBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzUGx1cmFsKSxcbiAgICAgICAgc2luZ3VsYXJQbHVyYWxzID0gbWFwUGx1cmFscyhwbHVyYWxQbHVyYWxzLCBwbHVyYWxUb1Npbmd1bGFyKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAoc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIHBsdXJhbFdvcmRPclBocmFzZSA9IHNpbmd1bGFyVG9QbHVyYWwod29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnNpbmd1bGFyUGFnZU51bWJlcnMsXG4gICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFtwbHVyYWxXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0U2luZ3VsYXJQbHVyYWxzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHBsdXJhbHMgfSA9IGluZGV4T3B0aW9ucyxcbiAgICAgICAgc2luZ3VsYXJQbHVyYWxzID0gcmVkdWNlUGx1cmFscyhwbHVyYWxzLCBpc1Npbmd1bGFyKSxcbiAgICAgICAgcGx1cmFsUGx1cmFscyA9IG1hcFBsdXJhbHMoc2luZ3VsYXJQbHVyYWxzLCBzaW5ndWxhclRvUGx1cmFsKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgICAgY29uc3QgcGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gcGx1cmFsUGx1cmFscy5pbmNsdWRlcyh3b3JkT3JQaHJhc2UpO1xuXG4gICAgICBpZiAocGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlKSB7XG4gICAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gcGx1cmFsVG9TaW5ndWxhcih3b3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdIHx8IFtdLFxuICAgICAgICAgICAgICBwbHVyYWxXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgICAgcGx1cmFsUGFnZU51bWJlcnMgPSBwYWdlTnVtYmVyczsgIC8vL1xuXG4gICAgICAgIHBhZ2VOdW1iZXJzID0gW1xuICAgICAgICAgIC4uLnNpbmd1bGFyUGFnZU51bWJlcnMsXG4gICAgICAgICAgLi4ucGx1cmFsUGFnZU51bWJlcnNcbiAgICAgICAgXTtcblxuICAgICAgICBkZWxldGUgaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXTtcblxuICAgICAgICBpbmRleE1hcFtzaW5ndWxhcldvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlZHVjZVBsdXJhbHMocGx1cmFscywgY2FsbGJhY2spIHtcbiAgcGx1cmFscyA9IHBsdXJhbHMucmVkdWNlKChwbHVyYWxzLCBwbHVyYWwpID0+IHsgLy8vXG4gICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2socGx1cmFsKTtcblxuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHBsdXJhbHMucHVzaChwbHVyYWwpO1xuICAgIH1cblxuICAgIHJldHVybiBwbHVyYWxzO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHBsdXJhbHM7XG59XG5cbmZ1bmN0aW9uIG1hcFBsdXJhbHMocGx1cmFscywgY2FsbGJhY2spIHtcbiAgcGx1cmFscyA9IHBsdXJhbHMubWFwKChwbHVyYWwpID0+IHsgLy8vXG4gICAgcGx1cmFsID0gY2FsbGJhY2socGx1cmFsKTtcblxuICAgIHJldHVybiBwbHVyYWw7XG4gIH0pO1xuXG4gIHJldHVybiBwbHVyYWxzO1xufVxuXG5mdW5jdGlvbiBpc1Npbmd1bGFyKHRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXRjaGVzID0gL1tecyldJC8udGVzdCh0ZXh0KSxcbiAgICAgICAgc2luZ3VsYXIgPSBpbmRleE1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBzaW5ndWxhcjtcbn1cblxuZnVuY3Rpb24gaXNQbHVyYWwodGV4dCkge1xuICBjb25zdCBpbmRleE1hdGNoZXMgPSAvKGllc3xzKSQvLnRlc3QodGV4dCksXG4gICAgICAgIHBsdXJhbCA9IGluZGV4TWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIHBsdXJhbDtcbn1cblxuZnVuY3Rpb24gaXNNaXhlZCh0ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWF0Y2hlcyA9IC9cXChzXFwpJC8udGVzdCh0ZXh0KSxcbiAgICAgICAgbWl4ZWQgPSBpbmRleE1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBtaXhlZDtcbn1cblxuZnVuY3Rpb24gbWl4ZWRUb1BsdXJhbCh0ZXh0KSB7XG4gIHRleHQgPSB0ZXh0IC8vL1xuICAgICAgICAgICAucmVwbGFjZSgvXFwoc1xcKSQvLCBTX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHBsdXJhbFRvTWl4ZWQodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL3MkLywgUEFSRU5USEVTSVNFRF9TX1NUUklORylcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gbWl4ZWRUb1Npbmd1bGFyKHRleHQpIHtcbiAgdGV4dCA9IHRleHQgLy8vXG4gICAgICAgICAgLnJlcGxhY2UoL1xcKHNcXCkkLywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gc2luZ3VsYXJUb01peGVkKHRleHQpIHtcbiAgdGV4dCA9IGAke3RleHR9KHMpYDtcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gc2luZ3VsYXJUb1BsdXJhbCh0ZXh0KSB7XG4gIHRleHQgPSBgJHt0ZXh0fXNgIC8vL1xuICAgICAgICAgICAucmVwbGFjZSgveXMkLywgSUVTX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHBsdXJhbFRvU2luZ3VsYXIodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL2llcyQvLCBZX1NUUklORylcbiAgICAgICAgICAgLnJlcGxhY2UoL3MkLywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gdGV4dDtcbn1cbiJdLCJuYW1lcyI6WyJpbmRleE1hcEZyb21EaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJjb21wcmVzcyIsImFycmF5VXRpbGl0aWVzIiwiZGl2aXNpb25NYXJrZG93bk5vZGVzIiwiY29udGV4dCIsImluZGV4TWFwIiwiY3JlYXRlSW5kZXhNYXAiLCJyZW1vdmVJZ25vcmVkV29yZHMiLCJhZGp1c3RNaXhlZFBsdXJhbHMiLCJhZGp1c3RQbHVyYWxQbHVyYWxzIiwiYWRqdXN0U2luZ3VsYXJQbHVyYWxzIiwiYWRqdXN0UHJvcGVyTm91bnMiLCJhZGp1c3RBY3JvbnltcyIsImNvbXByZXNzUGFnZU51bWJlcnMiLCJpbmRleE9wdGlvbnMiLCJwaHJhc2VzIiwiaW5kZXhNYXRjaGVzIiwibWFwIiwicGhyYXNlIiwiaW5kZXhNYXRjaCIsIkluZGV4TWF0Y2giLCJmcm9tUGhyYXNlIiwiZm9yRWFjaCIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwicGFnZU51bWJlciIsImdldFBhZ2VOdW1iZXIiLCJwbGFpblRleHQiLCJhc1BsYWluVGV4dCIsIndvcmRzT3JQaHJhc2VzIiwid29yZHNPclBocmFzZXNGcm9tUGxhaW5UZXh0QW5kSW5kZXhNYXRjaGVzIiwid29yZE9yUGhyYXNlIiwicGFnZU51bWJlcnMiLCJoYXNPd25Qcm9wZXJ0eSIsInB1c2giLCJwcmVwYXJlUGxhaW5UZXh0IiwicmVwbGFjZSIsInNwbGl0IiwiU0lOR0xFX1NQQUNFIiwicmV2ZXJ0IiwibWFwVmFsdWVzIiwicGFnZU51bWJlckEiLCJwYWdlTnVtYmVyQiIsInNvcnQiLCJOdW1iZXIiLCJkaWZmZXJlbmNlIiwiaWdub3JlZFdvcmRzIiwiaWdub3JlZFdvcmQiLCJwcm9wZXJOb3VucyIsImxvd2VyQ2FzZVByb3Blck5vdW5zIiwicHJvcGVyTm91biIsImxvd2VyQ2FzZVByb3Blck5vdW4iLCJ0b0xvd2VyQ2FzZSIsIm1hcEtleXMiLCJpbmRleCIsImZpbmRJbmRleCIsImxvd2VyQ2FzZVByb3Blck5tYWUiLCJFTVBUWV9TVFJJTkciLCJhY3JvbnltcyIsImxvd2VyQ2FzZUFjcm9ueW1zIiwiYWNyb255bSIsImxvd2VyQ2FzZUFjcm9ueW0iLCJwbHVyYWxzIiwibWl4ZWRQbHVyYWxzIiwicmVkdWNlUGx1cmFscyIsImlzTWl4ZWQiLCJwbHVyYWxQbHVyYWxzIiwibWFwUGx1cmFscyIsIm1peGVkVG9QbHVyYWwiLCJzaW5ndWxhclBsdXJhbHMiLCJtaXhlZFRvU2luZ3VsYXIiLCJzaW5ndWxhclBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSIsImluY2x1ZGVzIiwic2luZ3VsYXJXb3JkT3JQaHJhc2UiLCJzaW5ndWxhclBhZ2VOdW1iZXJzIiwibWl4ZWRXb3JkT3JQaHJhc2UiLCJzaW5ndWxhclRvTWl4ZWQiLCJtaXhlZFBhZ2VOdW1iZXJzIiwicGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlIiwicGx1cmFsV29yZE9yUGhyYXNlIiwicGx1cmFsUGFnZU51bWJlcnMiLCJwbHVyYWxUb01peGVkIiwiaXNQbHVyYWwiLCJwbHVyYWxUb1Npbmd1bGFyIiwic2luZ3VsYXJUb1BsdXJhbCIsImlzU2luZ3VsYXIiLCJjYWxsYmFjayIsInJlZHVjZSIsInBsdXJhbCIsInJlc3VsdCIsInRleHQiLCJ0ZXN0Iiwic2luZ3VsYXIiLCJtaXhlZCIsIlNfU1RSSU5HIiwiUEFSRU5USEVTSVNFRF9TX1NUUklORyIsIklFU19TVFJJTkciLCJZX1NUUklORyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV2dCQTs7O2VBQUFBOzs7eUJBVGU7NERBRVI7c0JBRXFCO3lCQUN1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuRyxJQUFNLEFBQUVDLFdBQWFDLHlCQUFjLENBQTNCRDtBQUVELFNBQVNELGtDQUFrQ0cscUJBQXFCLEVBQUVDLE9BQU87SUFDOUUsSUFBTUMsV0FBV0MsZUFBZUgsdUJBQXVCQztJQUV2REcsbUJBQW1CRixVQUFVRDtJQUU3QkksbUJBQW1CSCxVQUFVRDtJQUU3Qkssb0JBQW9CSixVQUFVRDtJQUU5Qk0sc0JBQXNCTCxVQUFVRDtJQUVoQ08sa0JBQWtCTixVQUFVRDtJQUU1QlEsZUFBZVAsVUFBVUQ7SUFFekJTLG9CQUFvQlI7SUFFcEIsT0FBT0E7QUFDVDtBQUVBLFNBQVNDLGVBQWVILHFCQUFxQixFQUFFQyxPQUFPO0lBQ3BELElBQU1DLFdBQVcsQ0FBQztJQUVsQixJQUFNLEFBQUVTLGVBQWlCVixRQUFqQlUsY0FDRixBQUFFQyxVQUFZRCxhQUFaQyxTQUNGQyxlQUFlRCxRQUFR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
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgSW5kZXhNYXRjaCBmcm9tIFwiLi4vaW5kZXgvbWF0Y2hcIjtcblxuaW1wb3J0IHsgZm9yRWFjaCwgbWFwS2V5cywgbWFwVmFsdWVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9vYmplY3RcIjtcbmltcG9ydCB7IFlfU1RSSU5HLCBTX1NUUklORywgSUVTX1NUUklORywgRU1QVFlfU1RSSU5HLCBTSU5HTEVfU1BBQ0UsIFBBUkVOVEhFU0lTRURfU19TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhNYXBGcm9tRGl2aXNpb25NYXJrZG93bk5vZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBpbmRleE1hcCA9IGNyZWF0ZUluZGV4TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFBsdXJhbFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFNpbmd1bGFyUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCk7XG5cbiAgYWRqdXN0UHJvcGVyTm91bnMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdEFjcm9ueW1zKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUluZGV4TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBpbmRleE1hcCA9IHt9O1xuXG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHBocmFzZXMgfSA9IGluZGV4T3B0aW9ucyxcbiAgICAgICAgaW5kZXhNYXRjaGVzID0gcGhyYXNlcy5tYXAoKHBocmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGluZGV4TWF0Y2ggPSBJbmRleE1hdGNoLmZyb21QaHJhc2UocGhyYXNlKTtcblxuICAgICAgICAgIHJldHVybiBpbmRleE1hdGNoO1xuICAgICAgICB9KTtcblxuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBjb25zdCBwYWdlTnVtYmVyID0gZGl2aXNpb25NYXJrZG93bk5vZGUuZ2V0UGFnZU51bWJlcigpO1xuXG4gICAgaWYgKHBhZ2VOdW1iZXIgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHBsYWluVGV4dCA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlLmFzUGxhaW5UZXh0KGNvbnRleHQpLFxuICAgICAgICAgICAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpO1xuXG4gICAgICB3b3Jkc09yUGhyYXNlcy5mb3JFYWNoKCh3b3JkT3JQaHJhc2UpID0+IHtcbiAgICAgICAgY29uc3QgcGFnZU51bWJlcnMgPSBpbmRleE1hcC5oYXNPd25Qcm9wZXJ0eSh3b3JkT3JQaHJhc2UpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4TWFwW3dvcmRPclBocmFzZV0gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXTtcblxuICAgICAgICBpbmRleE1hcFt3b3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG5cbiAgICAgICAgcGFnZU51bWJlcnMucHVzaChwYWdlTnVtYmVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGluZGV4TWFwO1xufVxuXG5mdW5jdGlvbiB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpIHtcbiAgbGV0IHdvcmRzT3JQaHJhc2VzO1xuXG4gIHBsYWluVGV4dCA9IHByZXBhcmVQbGFpblRleHQocGxhaW5UZXh0KTsgIC8vL1xuXG4gIGluZGV4TWF0Y2hlcy5mb3JFYWNoKChpbmRleE1hdGNoKSA9PiB7XG4gICAgcGxhaW5UZXh0ID0gaW5kZXhNYXRjaC5yZXBsYWNlKHBsYWluVGV4dCk7XG4gIH0pO1xuXG4gIHdvcmRzT3JQaHJhc2VzID0gcGxhaW5UZXh0LnNwbGl0KFNJTkdMRV9TUEFDRSk7XG5cbiAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlcy5tYXAoKHdvcmRPclBocmFzZSkgPT4ge1xuICAgIHdvcmRPclBocmFzZSA9IEluZGV4TWF0Y2gucmV2ZXJ0KHdvcmRPclBocmFzZSk7ICAvLy9cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xuXG4gIHJldHVybiB3b3Jkc09yUGhyYXNlcztcbn1cblxuZnVuY3Rpb24gY29tcHJlc3NQYWdlTnVtYmVycyhpbmRleE1hcCkge1xuICBtYXBWYWx1ZXMoaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UsIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgY29tcHJlc3MocGFnZU51bWJlcnMsIChwYWdlTnVtYmVyQSwgcGFnZU51bWJlckIpID0+IHtcbiAgICAgIGlmIChwYWdlTnVtYmVyQSA9PT0gcGFnZU51bWJlckIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBwYWdlTnVtYmVycy5zb3J0KChwYWdlTnVtYmVyQiwgcGFnZU51bWJlckEpID0+IHtcbiAgICAgIHBhZ2VOdW1iZXJBID0gTnVtYmVyKHBhZ2VOdW1iZXJBKTsgIC8vL1xuXG4gICAgICBwYWdlTnVtYmVyQiA9IE51bWJlcihwYWdlTnVtYmVyQik7ICAvLy9cblxuICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IHBhZ2VOdW1iZXJCIC0gcGFnZU51bWJlckE7XG5cbiAgICAgIHJldHVybiBkaWZmZXJlbmNlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhZ2VOdW1iZXJzO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IGlnbm9yZWRXb3JkcyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGlnbm9yZWRXb3Jkcy5mb3JFYWNoKChpZ25vcmVkV29yZCkgPT4ge1xuICAgIGRlbGV0ZSBpbmRleE1hcFtpZ25vcmVkV29yZF07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RQcm9wZXJOb3VucyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBwcm9wZXJOb3VucyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGNvbnN0IGxvd2VyQ2FzZVByb3Blck5vdW5zID0gcHJvcGVyTm91bnMubWFwKChwcm9wZXJOb3VuKSA9PiB7XG4gICAgY29uc3QgbG93ZXJDYXNlUHJvcGVyTm91biA9IHByb3Blck5vdW4udG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBsb3dlckNhc2VQcm9wZXJOb3VuO1xuICB9KTtcblxuICBtYXBLZXlzKGluZGV4TWFwLCAod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBsb3dlckNhc2VQcm9wZXJOb3Vucy5maW5kSW5kZXgoKGxvd2VyQ2FzZVByb3Blck5hbWUpID0+IHtcbiAgICAgIGlmIChsb3dlckNhc2VQcm9wZXJOYW1lID09PSB3b3JkT3JQaHJhc2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgcHJvcGVyTm91biA9IHByb3Blck5vdW5zW2luZGV4XTtcblxuICAgICAgd29yZE9yUGhyYXNlID0gcHJvcGVyTm91bjsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlUGxhaW5UZXh0KHBsYWluVGV4dCkge1xuICBwbGFpblRleHQgPSBwbGFpblRleHQudG9Mb3dlckNhc2UoKTsgIC8vL1xuXG4gIHBsYWluVGV4dCA9IHBsYWluVGV4dC5yZXBsYWNlKC9bXmEtejAtOVxcLSBdL2csIFNJTkdMRV9TUEFDRSk7XG5cbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnJlcGxhY2UoL1xccysvZywgU0lOR0xFX1NQQUNFKTtcblxuICBwbGFpblRleHQgPSBwbGFpblRleHQucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gcGxhaW5UZXh0O1xufVxuXG5mdW5jdGlvbiBhZGp1c3RBY3JvbnltcyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBhY3JvbnltcyB9ID0gaW5kZXhPcHRpb25zO1xuXG4gIGNvbnN0IGxvd2VyQ2FzZUFjcm9ueW1zID0gYWNyb255bXMubWFwKChhY3JvbnltKSA9PiB7XG4gICAgY29uc3QgbG93ZXJDYXNlQWNyb255bSA9IGFjcm9ueW0udG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBsb3dlckNhc2VBY3JvbnltO1xuICB9KTtcblxuICBtYXBLZXlzKGluZGV4TWFwLCAod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBsb3dlckNhc2VBY3Jvbnltcy5maW5kSW5kZXgoKGxvd2VyQ2FzZVByb3Blck5hbWUpID0+IHtcbiAgICAgIGlmIChsb3dlckNhc2VQcm9wZXJOYW1lID09PSB3b3JkT3JQaHJhc2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgYWNyb255bSA9IGFjcm9ueW1zW2luZGV4XTtcblxuICAgICAgd29yZE9yUGhyYXNlID0gYWNyb255bTsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiB3b3JkT3JQaHJhc2U7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpbmRleE9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgcGx1cmFscyB9ID0gaW5kZXhPcHRpb25zLFxuICAgICAgICBtaXhlZFBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzTWl4ZWQpLFxuICAgICAgICBwbHVyYWxQbHVyYWxzID0gbWFwUGx1cmFscyhtaXhlZFBsdXJhbHMsIG1peGVkVG9QbHVyYWwpLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSBtYXBQbHVyYWxzKG1peGVkUGx1cmFscywgbWl4ZWRUb1Npbmd1bGFyKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAoc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gc2luZ3VsYXJUb01peGVkKHNpbmd1bGFyV29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgIG1peGVkUGFnZU51bWJlcnMgPSBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gfHwgW107XG5cbiAgICAgIHBhZ2VOdW1iZXJzID0gW1xuICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG5cbiAgICBjb25zdCBwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBwbHVyYWxQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAocGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlKSB7XG4gICAgICBjb25zdCBwbHVyYWxXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gcGx1cmFsVG9NaXhlZChwbHVyYWxXb3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgbWl4ZWRQYWdlTnVtYmVycyA9IGluZGV4TWFwW21peGVkV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXTtcblxuICAgICAgaW5kZXhNYXBbbWl4ZWRXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0UGx1cmFsUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBwbHVyYWxzIH0gPSBpbmRleE9wdGlvbnMsXG4gICAgICAgIHBsdXJhbFBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzUGx1cmFsKSxcbiAgICAgICAgc2luZ3VsYXJQbHVyYWxzID0gbWFwUGx1cmFscyhwbHVyYWxQbHVyYWxzLCBwbHVyYWxUb1Npbmd1bGFyKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAoc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIHBsdXJhbFdvcmRPclBocmFzZSA9IHNpbmd1bGFyVG9QbHVyYWwod29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnNpbmd1bGFyUGFnZU51bWJlcnMsXG4gICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFtwbHVyYWxXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0U2luZ3VsYXJQbHVyYWxzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHBsdXJhbHMgfSA9IGluZGV4T3B0aW9ucyxcbiAgICAgICAgc2luZ3VsYXJQbHVyYWxzID0gcmVkdWNlUGx1cmFscyhwbHVyYWxzLCBpc1Npbmd1bGFyKSxcbiAgICAgICAgcGx1cmFsUGx1cmFscyA9IG1hcFBsdXJhbHMoc2luZ3VsYXJQbHVyYWxzLCBzaW5ndWxhclRvUGx1cmFsKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgICAgY29uc3QgcGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gcGx1cmFsUGx1cmFscy5pbmNsdWRlcyh3b3JkT3JQaHJhc2UpO1xuXG4gICAgICBpZiAocGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlKSB7XG4gICAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gcGx1cmFsVG9TaW5ndWxhcih3b3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdIHx8IFtdLFxuICAgICAgICAgICAgICBwbHVyYWxXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgICAgcGx1cmFsUGFnZU51bWJlcnMgPSBwYWdlTnVtYmVyczsgIC8vL1xuXG4gICAgICAgIHBhZ2VOdW1iZXJzID0gW1xuICAgICAgICAgIC4uLnNpbmd1bGFyUGFnZU51bWJlcnMsXG4gICAgICAgICAgLi4ucGx1cmFsUGFnZU51bWJlcnNcbiAgICAgICAgXTtcblxuICAgICAgICBkZWxldGUgaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXTtcblxuICAgICAgICBpbmRleE1hcFtzaW5ndWxhcldvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlZHVjZVBsdXJhbHMocGx1cmFscywgY2FsbGJhY2spIHtcbiAgcGx1cmFscyA9IHBsdXJhbHMucmVkdWNlKChwbHVyYWxzLCBwbHVyYWwpID0+IHsgLy8vXG4gICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2socGx1cmFsKTtcblxuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHBsdXJhbHMucHVzaChwbHVyYWwpO1xuICAgIH1cblxuICAgIHJldHVybiBwbHVyYWxzO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHBsdXJhbHM7XG59XG5cbmZ1bmN0aW9uIG1hcFBsdXJhbHMocGx1cmFscywgY2FsbGJhY2spIHtcbiAgcGx1cmFscyA9IHBsdXJhbHMubWFwKChwbHVyYWwpID0+IHsgLy8vXG4gICAgcGx1cmFsID0gY2FsbGJhY2socGx1cmFsKTtcblxuICAgIHJldHVybiBwbHVyYWw7XG4gIH0pO1xuXG4gIHJldHVybiBwbHVyYWxzO1xufVxuXG5mdW5jdGlvbiBpc1Npbmd1bGFyKHRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXRjaGVzID0gL1tecyldJC8udGVzdCh0ZXh0KSxcbiAgICAgICAgc2luZ3VsYXIgPSBpbmRleE1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBzaW5ndWxhcjtcbn1cblxuZnVuY3Rpb24gaXNQbHVyYWwodGV4dCkge1xuICBjb25zdCBpbmRleE1hdGNoZXMgPSAvKGllc3xzKSQvLnRlc3QodGV4dCksXG4gICAgICAgIHBsdXJhbCA9IGluZGV4TWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIHBsdXJhbDtcbn1cblxuZnVuY3Rpb24gaXNNaXhlZCh0ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWF0Y2hlcyA9IC9cXChzXFwpJC8udGVzdCh0ZXh0KSxcbiAgICAgICAgbWl4ZWQgPSBpbmRleE1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBtaXhlZDtcbn1cblxuZnVuY3Rpb24gbWl4ZWRUb1BsdXJhbCh0ZXh0KSB7XG4gIHRleHQgPSB0ZXh0IC8vL1xuICAgICAgICAgICAucmVwbGFjZSgvXFwoc1xcKSQvLCBTX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHBsdXJhbFRvTWl4ZWQodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL3MkLywgUEFSRU5USEVTSVNFRF9TX1NUUklORylcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gbWl4ZWRUb1Npbmd1bGFyKHRleHQpIHtcbiAgdGV4dCA9IHRleHQgLy8vXG4gICAgICAgICAgLnJlcGxhY2UoL1xcKHNcXCkkLywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gc2luZ3VsYXJUb01peGVkKHRleHQpIHtcbiAgdGV4dCA9IGAke3RleHR9KHMpYDtcblxuICByZXR1cm4gdGV4dDtcbn1cblxuZnVuY3Rpb24gc2luZ3VsYXJUb1BsdXJhbCh0ZXh0KSB7XG4gIHRleHQgPSBgJHt0ZXh0fXNgIC8vL1xuICAgICAgICAgICAucmVwbGFjZSgveXMkLywgSUVTX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHBsdXJhbFRvU2luZ3VsYXIodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL2llcyQvLCBZX1NUUklORylcbiAgICAgICAgICAgLnJlcGxhY2UoL3MkLywgRU1QVFlfU1RSSU5HKTtcblxuICByZXR1cm4gdGV4dDtcbn1cbiJdLCJuYW1lcyI6WyJpbmRleE1hcEZyb21EaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJjb21wcmVzcyIsImFycmF5VXRpbGl0aWVzIiwiZGl2aXNpb25NYXJrZG93bk5vZGVzIiwiY29udGV4dCIsImluZGV4TWFwIiwiY3JlYXRlSW5kZXhNYXAiLCJyZW1vdmVJZ25vcmVkV29yZHMiLCJhZGp1c3RNaXhlZFBsdXJhbHMiLCJhZGp1c3RQbHVyYWxQbHVyYWxzIiwiYWRqdXN0U2luZ3VsYXJQbHVyYWxzIiwiYWRqdXN0UHJvcGVyTm91bnMiLCJhZGp1c3RBY3JvbnltcyIsImNvbXByZXNzUGFnZU51bWJlcnMiLCJpbmRleE9wdGlvbnMiLCJwaHJhc2VzIiwiaW5kZXhNYXRjaGVzIiwibWFwIiwicGhyYXNlIiwiaW5kZXhNYXRjaCIsIkluZGV4TWF0Y2giLCJmcm9tUGhyYXNlIiwiZm9yRWFjaCIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwicGFnZU51bWJlciIsImdldFBhZ2VOdW1iZXIiLCJwbGFpblRleHQiLCJhc1BsYWluVGV4dCIsIndvcmRzT3JQaHJhc2VzIiwid29yZHNPclBocmFzZXNGcm9tUGxhaW5UZXh0QW5kSW5kZXhNYXRjaGVzIiwid29yZE9yUGhyYXNlIiwicGFnZU51bWJlcnMiLCJoYXNPd25Qcm9wZXJ0eSIsInB1c2giLCJwcmVwYXJlUGxhaW5UZXh0IiwicmVwbGFjZSIsInNwbGl0IiwiU0lOR0xFX1NQQUNFIiwicmV2ZXJ0IiwibWFwVmFsdWVzIiwicGFnZU51bWJlckEiLCJwYWdlTnVtYmVyQiIsInNvcnQiLCJOdW1iZXIiLCJkaWZmZXJlbmNlIiwiaWdub3JlZFdvcmRzIiwiaWdub3JlZFdvcmQiLCJwcm9wZXJOb3VucyIsImxvd2VyQ2FzZVByb3Blck5vdW5zIiwicHJvcGVyTm91biIsImxvd2VyQ2FzZVByb3Blck5vdW4iLCJ0b0xvd2VyQ2FzZSIsIm1hcEtleXMiLCJpbmRleCIsImZpbmRJbmRleCIsImxvd2VyQ2FzZVByb3Blck5hbWUiLCJFTVBUWV9TVFJJTkciLCJhY3JvbnltcyIsImxvd2VyQ2FzZUFjcm9ueW1zIiwiYWNyb255bSIsImxvd2VyQ2FzZUFjcm9ueW0iLCJwbHVyYWxzIiwibWl4ZWRQbHVyYWxzIiwicmVkdWNlUGx1cmFscyIsImlzTWl4ZWQiLCJwbHVyYWxQbHVyYWxzIiwibWFwUGx1cmFscyIsIm1peGVkVG9QbHVyYWwiLCJzaW5ndWxhclBsdXJhbHMiLCJtaXhlZFRvU2luZ3VsYXIiLCJzaW5ndWxhclBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSIsImluY2x1ZGVzIiwic2luZ3VsYXJXb3JkT3JQaHJhc2UiLCJzaW5ndWxhclBhZ2VOdW1iZXJzIiwibWl4ZWRXb3JkT3JQaHJhc2UiLCJzaW5ndWxhclRvTWl4ZWQiLCJtaXhlZFBhZ2VOdW1iZXJzIiwicGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlIiwicGx1cmFsV29yZE9yUGhyYXNlIiwicGx1cmFsUGFnZU51bWJlcnMiLCJwbHVyYWxUb01peGVkIiwiaXNQbHVyYWwiLCJwbHVyYWxUb1Npbmd1bGFyIiwic2luZ3VsYXJUb1BsdXJhbCIsImlzU2luZ3VsYXIiLCJjYWxsYmFjayIsInJlZHVjZSIsInBsdXJhbCIsInJlc3VsdCIsInRleHQiLCJ0ZXN0Iiwic2luZ3VsYXIiLCJtaXhlZCIsIlNfU1RSSU5HIiwiUEFSRU5USEVTSVNFRF9TX1NUUklORyIsIklFU19TVFJJTkciLCJZX1NUUklORyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV2dCQTs7O2VBQUFBOzs7eUJBVGU7NERBRVI7c0JBRXFCO3lCQUN1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuRyxJQUFNLEFBQUVDLFdBQWFDLHlCQUFjLENBQTNCRDtBQUVELFNBQVNELGtDQUFrQ0cscUJBQXFCLEVBQUVDLE9BQU87SUFDOUUsSUFBTUMsV0FBV0MsZUFBZUgsdUJBQXVCQztJQUV2REcsbUJBQW1CRixVQUFVRDtJQUU3QkksbUJBQW1CSCxVQUFVRDtJQUU3Qkssb0JBQW9CSixVQUFVRDtJQUU5Qk0sc0JBQXNCTCxVQUFVRDtJQUVoQ08sa0JBQWtCTixVQUFVRDtJQUU1QlEsZUFBZVAsVUFBVUQ7SUFFekJTLG9CQUFvQlI7SUFFcEIsT0FBT0E7QUFDVDtBQUVBLFNBQVNDLGVBQWVILHFCQUFxQixFQUFFQyxPQUFPO0lBQ3BELElBQU1DLFdBQVcsQ0FBQztJQUVsQixJQUFNLEFBQUVTLGVBQWlCVixRQUFqQlUsY0FDRixBQUFFQyxVQUFZRCxhQUFaQyxTQUNGQyxlQUFlRCxRQUFR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
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ default: function() {
13
+ return _default;
14
+ },
15
+ divisionMarkdownNodeFromNode: function() {
16
+ return divisionMarkdownNodeFromNode;
17
+ },
18
+ divisionMarkdownNodesFromNode: function() {
19
+ return divisionMarkdownNodesFromNode;
20
+ },
21
+ embedDirectiveMarkdownNodesFromNode: function() {
22
+ return embedDirectiveMarkdownNodesFromNode;
23
+ },
24
+ ignoreDirectiveMarkdownNodeFromNode: function() {
25
+ return ignoreDirectiveMarkdownNodeFromNode;
26
+ },
27
+ includeDirectiveMarkdownNodesFromNode: function() {
28
+ return includeDirectiveMarkdownNodesFromNode;
29
+ },
30
+ indexDirectiveMarkdownNodeFromNode: function() {
31
+ return indexDirectiveMarkdownNodeFromNode;
32
+ },
33
+ subDivisionMarkdownNodeFromNode: function() {
34
+ return subDivisionMarkdownNodeFromNode;
35
+ },
36
+ subDivisionMarkdownNodesFromNode: function() {
37
+ return subDivisionMarkdownNodesFromNode;
38
+ }
39
+ });
40
+ var _occamquery = require("occam-query");
41
+ var _query = require("../utilities/query");
42
+ var divisionMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/markdown/division"), subDivisionMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision"), indexDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/indexDirective"), ignoreDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/ignoreDirective"), divisionMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/markdown/division"), subDivisionMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/division/subDivision"), embedDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/subDivision/directives/embedDirective"), includeDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/includeDirective");
43
+ function divisionMarkdownNodeFromNode(node) {
44
+ var divisionMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, divisionMarkdownNodeQuery);
45
+ return divisionMarkdownNode;
46
+ }
47
+ function subDivisionMarkdownNodeFromNode(node) {
48
+ var subDivisionMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, subDivisionMarkdownNodeQuery);
49
+ return subDivisionMarkdownNode;
50
+ }
51
+ function indexDirectiveMarkdownNodeFromNode(node) {
52
+ var indexDirectiveMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, indexDirectiveMarkdownNodeQuery);
53
+ return indexDirectiveMarkdownNode;
54
+ }
55
+ function ignoreDirectiveMarkdownNodeFromNode(node) {
56
+ var ignoreDirectiveMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, ignoreDirectiveMarkdownNodeQuery);
57
+ return ignoreDirectiveMarkdownNode;
58
+ }
59
+ function divisionMarkdownNodesFromNode(node) {
60
+ var divisionMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
61
+ (0, _query.nodesFromNodeAndQuery)(node, divisionMarkdownNodesQuery, divisionMarkdownNodes);
62
+ return divisionMarkdownNodes;
63
+ }
64
+ function subDivisionMarkdownNodesFromNode(node) {
65
+ var subDivisionMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
66
+ (0, _query.nodesFromNodeAndQuery)(node, subDivisionMarkdownNodesQuery, subDivisionMarkdownNodes);
67
+ return subDivisionMarkdownNodes;
68
+ }
69
+ function embedDirectiveMarkdownNodesFromNode(node) {
70
+ var embedDirectiveMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
71
+ (0, _query.nodesFromNodeAndQuery)(node, embedDirectiveMarkdownNodesQuery, embedDirectiveMarkdownNodes);
72
+ return embedDirectiveMarkdownNodes;
73
+ }
74
+ function includeDirectiveMarkdownNodesFromNode(node) {
75
+ var includeDirectiveMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
76
+ (0, _query.nodesFromNodeAndQuery)(node, includeDirectiveMarkdownNodesQuery, includeDirectiveMarkdownNodes);
77
+ return includeDirectiveMarkdownNodes;
78
+ }
79
+ var _default = {
80
+ divisionMarkdownNodeFromNode: divisionMarkdownNodeFromNode,
81
+ subDivisionMarkdownNodeFromNode: subDivisionMarkdownNodeFromNode,
82
+ indexDirectiveMarkdownNodeFromNode: indexDirectiveMarkdownNodeFromNode,
83
+ ignoreDirectiveMarkdownNodeFromNode: ignoreDirectiveMarkdownNodeFromNode,
84
+ divisionMarkdownNodesFromNode: divisionMarkdownNodesFromNode,
85
+ embedDirectiveMarkdownNodesFromNode: embedDirectiveMarkdownNodesFromNode,
86
+ includeDirectiveMarkdownNodesFromNode: includeDirectiveMarkdownNodesFromNode
87
+ };
88
+
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWFya2Rvd24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5LCBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9tYXJrZG93bi9kaXZpc2lvblwiKSxcbiAgICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi9zdWJEaXZpc2lvblwiKSxcbiAgICAgIGluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2luZGV4RGlyZWN0aXZlXCIpLFxuICAgICAgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2lnbm9yZURpcmVjdGl2ZVwiKSxcbiAgICAgIGRpdmlzaW9uTWFya2Rvd25Ob2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvbWFya2Rvd24vZGl2aXNpb25cIiksXG4gICAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uXCIpLFxuICAgICAgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2VtYmVkRGlyZWN0aXZlXCIpLFxuICAgICAgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvaW5jbHVkZURpcmVjdGl2ZVwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpdmlzaW9uTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBkaXZpc2lvbk1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBpbmRleERpcmVjdGl2ZU1hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBpbmRleERpcmVjdGl2ZU1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBkaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgZGl2aXNpb25NYXJrZG93bk5vZGVzUXVlcnksIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSwgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnksIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZGl2aXNpb25NYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgaW5kZXhEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZVxufTtcbiJdLCJuYW1lcyI6WyJkaXZpc2lvbk1hcmtkb3duTm9kZUZyb21Ob2RlIiwiZGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZUZyb21Ob2RlIiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJkaXZpc2lvbk1hcmtkb3duTm9kZVF1ZXJ5IiwiUXVlcnkiLCJmcm9tRXhwcmVzc2lvblN0cmluZyIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkiLCJpbmRleERpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5IiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkiLCJkaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnkiLCJpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5Iiwibm9kZSIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwibm9kZUZyb21Ob2RlQW5kUXVlcnkiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSIsImluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwiZGl2aXNpb25NYXJrZG93bk5vZGVzIiwibm9kZXNGcm9tTm9kZUFuZFF1ZXJ5Iiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzIiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzIiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQStEQSxPQVFFO2VBUkY7O0lBaERnQkEsNEJBQTRCO2VBQTVCQTs7SUF3QkFDLDZCQUE2QjtlQUE3QkE7O0lBWUFDLG1DQUFtQztlQUFuQ0E7O0lBbEJBQyxtQ0FBbUM7ZUFBbkNBOztJQXdCQUMscUNBQXFDO2VBQXJDQTs7SUE5QkFDLGtDQUFrQztlQUFsQ0E7O0lBTkFDLCtCQUErQjtlQUEvQkE7O0lBd0JBQyxnQ0FBZ0M7ZUFBaENBOzs7MEJBM0NNO3FCQUVzQztBQUU1RCxJQUFNQyw0QkFBNEJDLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLHVCQUN2REMsK0JBQStCRixpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQywwQkFDMURFLGtDQUFrQ0gsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsb0RBQzdERyxtQ0FBbUNKLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLHFEQUM5REksNkJBQTZCTCxpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQyx1QkFDeERLLGdDQUFnQ04saUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsMEJBQzNETSxtQ0FBbUNQLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLDJDQUM5RE8scUNBQXFDUixpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQztBQUUvRCxTQUFTViw2QkFBNkJrQixJQUFJO0lBQy9DLElBQU1DLHVCQUF1QkMsSUFBQUEsMkJBQW9CLEVBQUNGLE1BQU1WO0lBRXhELE9BQU9XO0FBQ1Q7QUFFTyxTQUFTYixnQ0FBZ0NZLElBQUk7SUFDbEQsSUFBTUcsMEJBQTBCRCxJQUFBQSwyQkFBb0IsRUFBQ0YsTUFBTVA7SUFFM0QsT0FBT1U7QUFDVDtBQUVPLFNBQVNoQixtQ0FBbUNhLElBQUk7SUFDckQsSUFBTUksNkJBQTZCRixJQUFBQSwyQkFBb0IsRUFBQ0YsTUFBTU47SUFFOUQsT0FBT1U7QUFDVDtBQUVPLFNBQVNuQixvQ0FBb0NlLElBQUk7SUFDdEQsSUFBTUssOEJBQThCSCxJQUFBQSwyQkFBb0IsRUFBQ0YsTUFBTUw7SUFFL0QsT0FBT1U7QUFDVDtBQUVPLFNBQVN0Qiw4QkFBOEJpQixJQUFJO1FBQUVNLHdCQUFBQSxpRUFBd0IsRUFBRTtJQUM1RUMsSUFBQUEsNEJBQXFCLEVBQUNQLE1BQU1KLDRCQUE0QlU7SUFFeEQsT0FBT0E7QUFDVDtBQUVPLFNBQVNqQixpQ0FBaUNXLElBQUk7UUFBRVEsMkJBQUFBLGlFQUEyQixFQUFFO0lBQ2xGRCxJQUFBQSw0QkFBcUIsRUFBQ1AsTUFBTUgsK0JBQStCVztJQUUzRCxPQUFPQTtBQUNUO0FBRU8sU0FBU3hCLG9DQUFvQ2dCLElBQUk7UUFBRVMsOEJBQUFBLGlFQUE4QixFQUFFO0lBQ3hGRixJQUFBQSw0QkFBcUIsRUFBQ1AsTUFBTUYsa0NBQWtDVztJQUU5RCxPQUFPQTtBQUNUO0FBRU8sU0FBU3ZCLHNDQUFzQ2MsSUFBSTtRQUFFVSxnQ0FBQUEsaUVBQWdDLEVBQUU7SUFDNUZILElBQUFBLDRCQUFxQixFQUFDUCxNQUFNRCxvQ0FBb0NXO0lBRWhFLE9BQU9BO0FBQ1Q7SUFFQSxXQUFlO0lBQ2I1Qiw4QkFBQUE7SUFDQU0saUNBQUFBO0lBQ0FELG9DQUFBQTtJQUNBRixxQ0FBQUE7SUFDQUYsK0JBQUFBO0lBQ0FDLHFDQUFBQTtJQUNBRSx1Q0FBQUE7QUFDRiJ9
@@ -9,65 +9,25 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- contentsDirectiveMarkdownNodeFromNode: function() {
13
- return contentsDirectiveMarkdownNodeFromNode;
14
- },
15
- default: function() {
16
- return _default;
17
- },
18
- divisionMarkdownNodeFromNode: function() {
19
- return divisionMarkdownNodeFromNode;
20
- },
21
- divisionMarkdownNodesFromNode: function() {
22
- return divisionMarkdownNodesFromNode;
23
- },
24
- embedDirectiveMarkdownNodesFromNode: function() {
25
- return embedDirectiveMarkdownNodesFromNode;
26
- },
27
- footnoteLinkMarkdownNodesFromNode: function() {
28
- return footnoteLinkMarkdownNodesFromNode;
29
- },
30
- footnoteMarkdownNodeFromNode: function() {
31
- return footnoteMarkdownNodeFromNode;
32
- },
33
- footnotesDirectiveMarkdownNodeFromNode: function() {
34
- return footnotesDirectiveMarkdownNodeFromNode;
35
- },
36
- footnotesMarkdownNodesFromNode: function() {
37
- return footnotesMarkdownNodesFromNode;
38
- },
39
- headingMarkdownNodesFromNode: function() {
40
- return headingMarkdownNodesFromNode;
41
- },
42
- ignoreDirectiveMarkdownNodeFromNode: function() {
43
- return ignoreDirectiveMarkdownNodeFromNode;
44
- },
45
- includeDirectiveMarkdownNodesFromNode: function() {
46
- return includeDirectiveMarkdownNodesFromNode;
47
- },
48
- indexDirectiveMarkdownNodeFromNode: function() {
49
- return indexDirectiveMarkdownNodeFromNode;
12
+ nodeFromNodeAndQuery: function() {
13
+ return nodeFromNodeAndQuery;
50
14
  },
51
15
  nodeQuery: function() {
52
16
  return nodeQuery;
53
17
  },
54
- nodesQuery: function() {
55
- return nodesQuery;
18
+ nodesFromNodeAndQueries: function() {
19
+ return nodesFromNodeAndQueries;
56
20
  },
57
- pageNumberDirectiveMarkdownNodeFromNode: function() {
58
- return pageNumberDirectiveMarkdownNodeFromNode;
21
+ nodesFromNodeAndQuery: function() {
22
+ return nodesFromNodeAndQuery;
59
23
  },
60
- subDivisionMarkdownNodeFromNode: function() {
61
- return subDivisionMarkdownNodeFromNode;
62
- },
63
- subDivisionMarkdownNodesFromNode: function() {
64
- return subDivisionMarkdownNodesFromNode;
24
+ nodesQuery: function() {
25
+ return nodesQuery;
65
26
  }
66
27
  });
67
28
  var _occamquery = require("occam-query");
68
29
  var _necessary = require("necessary");
69
30
  var push = _necessary.arrayUtilities.push;
70
- var footnoteMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/footnote"), divisionMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/markdown/division"), subDivisionMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision"), indexDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/indexDirective"), ignoreDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/ignoreDirective"), contentsDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/contentsDirective"), footnotesDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/footnotesDirective"), pageNumberDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpressionString("//directives/pageNumber"), headingMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/division/primaryHeading|secondaryHeading|tertiaryHeading|quaternaryHeading"), divisionMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/markdown/division"), footnotesMarkdownNodesQuery = _occamquery.Query.fromExpressionString("//footnote|footnoteLink|footnotesDirective"), subDivisionMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/division/subDivision"), footnoteLinkMarkdownNodesQuery = _occamquery.Query.fromExpressionString("//footnoteLink"), embedDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/subDivision/directives/embedDirective"), includeDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/includeDirective");
71
31
  function nodeQuery(expression) {
72
32
  var query = _occamquery.Query.fromExpressionString(expression);
73
33
  return function(node) {
@@ -83,86 +43,6 @@ function nodesQuery(expression) {
83
43
  return nodes;
84
44
  };
85
45
  }
86
- function footnoteMarkdownNodeFromNode(node) {
87
- var footnoteMarkdownNode = nodeFromNodeAndQuery(node, footnoteMarkdownNodeQuery);
88
- return footnoteMarkdownNode;
89
- }
90
- function divisionMarkdownNodeFromNode(node) {
91
- var divisionMarkdownNode = nodeFromNodeAndQuery(node, divisionMarkdownNodeQuery);
92
- return divisionMarkdownNode;
93
- }
94
- function subDivisionMarkdownNodeFromNode(node) {
95
- var subDivisionMarkdownNode = nodeFromNodeAndQuery(node, subDivisionMarkdownNodeQuery);
96
- return subDivisionMarkdownNode;
97
- }
98
- function indexDirectiveMarkdownNodeFromNode(node) {
99
- var indexDirectiveMarkdownNode = nodeFromNodeAndQuery(node, indexDirectiveMarkdownNodeQuery);
100
- return indexDirectiveMarkdownNode;
101
- }
102
- function ignoreDirectiveMarkdownNodeFromNode(node) {
103
- var ignoreDirectiveMarkdownNode = nodeFromNodeAndQuery(node, ignoreDirectiveMarkdownNodeQuery);
104
- return ignoreDirectiveMarkdownNode;
105
- }
106
- function contentsDirectiveMarkdownNodeFromNode(node) {
107
- var contentsDirectiveMarkdownNode = nodeFromNodeAndQuery(node, contentsDirectiveMarkdownNodeQuery);
108
- return contentsDirectiveMarkdownNode;
109
- }
110
- function footnotesDirectiveMarkdownNodeFromNode(node) {
111
- var footnotesDirectiveMarkdownNode = nodeFromNodeAndQuery(node, footnotesDirectiveMarkdownNodeQuery);
112
- return footnotesDirectiveMarkdownNode;
113
- }
114
- function pageNumberDirectiveMarkdownNodeFromNode(node) {
115
- var pageNumberDirectiveMarkdownNode = nodeFromNodeAndQuery(node, pageNumberDirectiveMarkdownNodeQuery);
116
- return pageNumberDirectiveMarkdownNode;
117
- }
118
- function headingMarkdownNodesFromNode(node) {
119
- var headingMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
120
- nodesFromNodeAndQuery(node, headingMarkdownNodesQuery, headingMarkdownNodes);
121
- return headingMarkdownNodes;
122
- }
123
- function divisionMarkdownNodesFromNode(node) {
124
- var divisionMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
125
- nodesFromNodeAndQuery(node, divisionMarkdownNodesQuery, divisionMarkdownNodes);
126
- return divisionMarkdownNodes;
127
- }
128
- function footnotesMarkdownNodesFromNode(node) {
129
- var footnotesMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
130
- nodesFromNodeAndQuery(node, footnotesMarkdownNodesQuery, footnotesMarkdownNodes);
131
- return footnotesMarkdownNodes;
132
- }
133
- function subDivisionMarkdownNodesFromNode(node) {
134
- var subDivisionMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
135
- nodesFromNodeAndQuery(node, subDivisionMarkdownNodesQuery, subDivisionMarkdownNodes);
136
- return subDivisionMarkdownNodes;
137
- }
138
- function footnoteLinkMarkdownNodesFromNode(node) {
139
- var linkMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
140
- nodesFromNodeAndQuery(node, footnoteLinkMarkdownNodesQuery, linkMarkdownNodes);
141
- return linkMarkdownNodes;
142
- }
143
- function embedDirectiveMarkdownNodesFromNode(node) {
144
- var embedDirectiveMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
145
- nodesFromNodeAndQuery(node, embedDirectiveMarkdownNodesQuery, embedDirectiveMarkdownNodes);
146
- return embedDirectiveMarkdownNodes;
147
- }
148
- function includeDirectiveMarkdownNodesFromNode(node) {
149
- var includeDirectiveMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
150
- nodesFromNodeAndQuery(node, includeDirectiveMarkdownNodesQuery, includeDirectiveMarkdownNodes);
151
- return includeDirectiveMarkdownNodes;
152
- }
153
- var _default = {
154
- footnoteMarkdownNodeFromNode: footnoteMarkdownNodeFromNode,
155
- indexDirectiveMarkdownNodeFromNode: indexDirectiveMarkdownNodeFromNode,
156
- ignoreDirectiveMarkdownNodeFromNode: ignoreDirectiveMarkdownNodeFromNode,
157
- contentsDirectiveMarkdownNodeFromNode: contentsDirectiveMarkdownNodeFromNode,
158
- footnotesDirectiveMarkdownNodeFromNode: footnotesDirectiveMarkdownNodeFromNode,
159
- pageNumberDirectiveMarkdownNodeFromNode: pageNumberDirectiveMarkdownNodeFromNode,
160
- headingMarkdownNodesFromNode: headingMarkdownNodesFromNode,
161
- footnotesMarkdownNodesFromNode: footnotesMarkdownNodesFromNode,
162
- footnoteLinkMarkdownNodesFromNode: footnoteLinkMarkdownNodesFromNode,
163
- embedDirectiveMarkdownNodesFromNode: embedDirectiveMarkdownNodesFromNode,
164
- includeDirectiveMarkdownNodesFromNode: includeDirectiveMarkdownNodesFromNode
165
- };
166
46
  function nodeFromNodeAndQuery(node, query) {
167
47
  var queryNodes = query.execute(node), queryNode = queryNodes.shift() || null;
168
48
  node = queryNode; ///
@@ -173,5 +53,13 @@ function nodesFromNodeAndQuery(node, query, nodes) {
173
53
  push(nodes, queryNodes);
174
54
  return nodes;
175
55
  }
56
+ function nodesFromNodeAndQueries(node, queries) {
57
+ var nodes = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
58
+ queries.forEach(function(query) {
59
+ var queryNodes = query.execute(node);
60
+ push(nodes, queryNodes);
61
+ });
62
+ return nodes;
63
+ }
176
64
 
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBwdXNoIH0gPSBhcnJheVV0aWxpdGllcztcblxuY29uc3QgZm9vdG5vdGVNYXJrZG93bk5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL2Zvb3Rub3RlXCIpLFxuICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL21hcmtkb3duL2RpdmlzaW9uXCIpLFxuICAgICAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uXCIpLFxuICAgICAgaW5kZXhEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvaW5kZXhEaXJlY3RpdmVcIiksXG4gICAgICBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvaWdub3JlRGlyZWN0aXZlXCIpLFxuICAgICAgY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvY29udGVudHNEaXJlY3RpdmVcIiksXG4gICAgICBmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvZm9vdG5vdGVzRGlyZWN0aXZlXCIpLFxuICAgICAgcGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvL2RpcmVjdGl2ZXMvcGFnZU51bWJlclwiKSwgIC8vL1xuICAgICAgaGVhZGluZ01hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3ByaW1hcnlIZWFkaW5nfHNlY29uZGFyeUhlYWRpbmd8dGVydGlhcnlIZWFkaW5nfHF1YXRlcm5hcnlIZWFkaW5nXCIpLCAgLy8vXG4gICAgICBkaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL21hcmtkb3duL2RpdmlzaW9uXCIpLFxuICAgICAgZm9vdG5vdGVzTWFya2Rvd25Ob2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvL2Zvb3Rub3RlfGZvb3Rub3RlTGlua3xmb290bm90ZXNEaXJlY3RpdmVcIiksIC8vL1xuICAgICAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi9zdWJEaXZpc2lvblwiKSxcbiAgICAgIGZvb3Rub3RlTGlua01hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiLy9mb290bm90ZUxpbmtcIiksXG4gICAgICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvZW1iZWREaXJlY3RpdmVcIiksXG4gICAgICBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvZGl2aXNpb24vc3ViRGl2aXNpb24vZGlyZWN0aXZlcy9pbmNsdWRlRGlyZWN0aXZlXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9kZVF1ZXJ5KGV4cHJlc3Npb24pIHtcbiAgY29uc3QgcXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhleHByZXNzaW9uKTtcblxuICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgIGNvbnN0IG5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKTtcblxuICAgIG5vZGUgPSBub2Rlcy5zaGlmdCgpIHx8IG51bGw7IC8vL1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVzUXVlcnkoZXhwcmVzc2lvbikge1xuICBjb25zdCBxdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKGV4cHJlc3Npb24pO1xuXG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgcmV0dXJuIG5vZGVzO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb290bm90ZU1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgZm9vdG5vdGVNYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBmb290bm90ZU1hcmtkb3duTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gZm9vdG5vdGVNYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXZpc2lvbk1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBkaXZpc2lvbk1hcmtkb3duTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3Qgc3ViRGl2aXNpb25NYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gc3ViRGl2aXNpb25NYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleERpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgaW5kZXhEaXJlY3RpdmVNYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBpbmRleERpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gaW5kZXhEaXJlY3RpdmVNYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSk7XG5cbiAgcmV0dXJuIGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSk7XG5cbiAgcmV0dXJuIGZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBoZWFkaW5nTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBoZWFkaW5nTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBoZWFkaW5nTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGhlYWRpbmdNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGRpdmlzaW9uTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBkaXZpc2lvbk1hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBkaXZpc2lvbk1hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb290bm90ZXNNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgZm9vdG5vdGVzTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBmb290bm90ZXNNYXJrZG93bk5vZGVzUXVlcnksIGZvb3Rub3Rlc01hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBmb290bm90ZXNNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb290bm90ZUxpbmtNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgbGlua01hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBsaW5rTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGxpbmtNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnksIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZm9vdG5vdGVNYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgaW5kZXhEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLFxuICBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGhlYWRpbmdNYXJrZG93bk5vZGVzRnJvbU5vZGUsXG4gIGZvb3Rub3Rlc01hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZVxufTtcblxuZnVuY3Rpb24gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgcXVlcnkpIHtcbiAgY29uc3QgcXVlcnlOb2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSksXG4gICAgICAgIHF1ZXJ5Tm9kZSA9IHF1ZXJ5Tm9kZXMuc2hpZnQoKSB8fCBudWxsO1xuXG4gIG5vZGUgPSBxdWVyeU5vZGU7ICAvLy9cblxuICByZXR1cm4gbm9kZTtcbn1cblxuZnVuY3Rpb24gbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIHF1ZXJ5LCBub2Rlcykge1xuICBjb25zdCBxdWVyeU5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKTtcblxuICBwdXNoKG5vZGVzLCBxdWVyeU5vZGVzKTtcblxuICByZXR1cm4gbm9kZXM7XG59XG4iXSwibmFtZXMiOlsiY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSIsImRpdmlzaW9uTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJkaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwiZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwiZm9vdG5vdGVNYXJrZG93bk5vZGVGcm9tTm9kZSIsImZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiZm9vdG5vdGVzTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwiaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tTm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJub2RlUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVGcm9tTm9kZSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwicHVzaCIsImFycmF5VXRpbGl0aWVzIiwiZm9vdG5vdGVNYXJrZG93bk5vZGVRdWVyeSIsIlF1ZXJ5IiwiZnJvbUV4cHJlc3Npb25TdHJpbmciLCJkaXZpc2lvbk1hcmtkb3duTm9kZVF1ZXJ5Iiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVRdWVyeSIsImluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkiLCJpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSIsImNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkiLCJmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSIsInBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSIsImhlYWRpbmdNYXJrZG93bk5vZGVzUXVlcnkiLCJkaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSIsImZvb3Rub3Rlc01hcmtkb3duTm9kZXNRdWVyeSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnkiLCJpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiZXhwcmVzc2lvbiIsInF1ZXJ5Iiwibm9kZSIsIm5vZGVzIiwiZXhlY3V0ZSIsInNoaWZ0IiwiZm9vdG5vdGVNYXJrZG93bk5vZGUiLCJub2RlRnJvbU5vZGVBbmRRdWVyeSIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGUiLCJpbmRleERpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwiZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwicGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGVzIiwibm9kZXNGcm9tTm9kZUFuZFF1ZXJ5IiwiZGl2aXNpb25NYXJrZG93bk5vZGVzIiwiZm9vdG5vdGVzTWFya2Rvd25Ob2RlcyIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyIsImxpbmtNYXJrZG93bk5vZGVzIiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzIiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXMiLCJxdWVyeU5vZGVzIiwicXVlcnlOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUEyRWdCQSxxQ0FBcUM7ZUFBckNBOztJQTREaEIsT0FZRTtlQVpGOztJQXBGZ0JDLDRCQUE0QjtlQUE1QkE7O0lBZ0RBQyw2QkFBNkI7ZUFBN0JBOztJQXdCQUMsbUNBQW1DO2VBQW5DQTs7SUFOQUMsaUNBQWlDO2VBQWpDQTs7SUF4RUFDLDRCQUE0QjtlQUE1QkE7O0lBb0NBQyxz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
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBwdXNoIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVRdWVyeShleHByZXNzaW9uKSB7XG4gIGNvbnN0IHF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoZXhwcmVzc2lvbik7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKG5vZGUpIHtcbiAgICBjb25zdCBub2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSk7XG5cbiAgICBub2RlID0gbm9kZXMuc2hpZnQoKSB8fCBudWxsOyAvLy9cblxuICAgIHJldHVybiBub2RlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2Rlc1F1ZXJ5KGV4cHJlc3Npb24pIHtcbiAgY29uc3QgcXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhleHByZXNzaW9uKTtcblxuICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgIGNvbnN0IG5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKTtcblxuICAgIHJldHVybiBub2RlcztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgcXVlcnkpIHtcbiAgY29uc3QgcXVlcnlOb2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSksXG4gICAgICAgIHF1ZXJ5Tm9kZSA9IHF1ZXJ5Tm9kZXMuc2hpZnQoKSB8fCBudWxsO1xuXG4gIG5vZGUgPSBxdWVyeU5vZGU7ICAvLy9cblxuICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBxdWVyeSwgbm9kZXMpIHtcbiAgY29uc3QgcXVlcnlOb2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSk7XG5cbiAgcHVzaChub2RlcywgcXVlcnlOb2Rlcyk7XG5cbiAgcmV0dXJuIG5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9kZXNGcm9tTm9kZUFuZFF1ZXJpZXMobm9kZSwgcXVlcmllcywgbm9kZXMgPSBbXSkge1xuICBxdWVyaWVzLmZvckVhY2goKHF1ZXJ5KSA9PiB7XG4gICAgY29uc3QgcXVlcnlOb2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSk7XG5cbiAgICBwdXNoKG5vZGVzLCBxdWVyeU5vZGVzKTtcbiAgfSk7XG5cbiAgcmV0dXJuIG5vZGVzO1xufVxuIl0sIm5hbWVzIjpbIm5vZGVGcm9tTm9kZUFuZFF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwibm9kZXNGcm9tTm9kZUFuZFF1ZXJpZXMiLCJub2Rlc0Zyb21Ob2RlQW5kUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicHVzaCIsImFycmF5VXRpbGl0aWVzIiwiZXhwcmVzc2lvbiIsInF1ZXJ5IiwiUXVlcnkiLCJmcm9tRXhwcmVzc2lvblN0cmluZyIsIm5vZGUiLCJub2RlcyIsImV4ZWN1dGUiLCJzaGlmdCIsInF1ZXJ5Tm9kZXMiLCJxdWVyeU5vZGUiLCJxdWVyaWVzIiwiZm9yRWFjaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBNkJnQkEsb0JBQW9CO2VBQXBCQTs7SUF0QkFDLFNBQVM7ZUFBVEE7O0lBdUNBQyx1QkFBdUI7ZUFBdkJBOztJQVJBQyxxQkFBcUI7ZUFBckJBOztJQW5CQUMsVUFBVTtlQUFWQTs7OzBCQWpCTTt5QkFDUztBQUUvQixJQUFNLEFBQUVDLE9BQVNDLHlCQUFjLENBQXZCRDtBQUVELFNBQVNKLFVBQVVNLFVBQVU7SUFDbEMsSUFBTUMsUUFBUUMsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUNIO0lBRXpDLE9BQU8sU0FBU0ksSUFBSTtRQUNsQixJQUFNQyxRQUFRSixNQUFNSyxPQUFPLENBQUNGO1FBRTVCQSxPQUFPQyxNQUFNRSxLQUFLLE1BQU0sTUFBTSxHQUFHO1FBRWpDLE9BQU9IO0lBQ1Q7QUFDRjtBQUVPLFNBQVNQLFdBQVdHLFVBQVU7SUFDbkMsSUFBTUMsUUFBUUMsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUNIO0lBRXpDLE9BQU8sU0FBU0ksSUFBSTtRQUNsQixJQUFNQyxRQUFRSixNQUFNSyxPQUFPLENBQUNGO1FBRTVCLE9BQU9DO0lBQ1Q7QUFDRjtBQUVPLFNBQVNaLHFCQUFxQlcsSUFBSSxFQUFFSCxLQUFLO0lBQzlDLElBQU1PLGFBQWFQLE1BQU1LLE9BQU8sQ0FBQ0YsT0FDM0JLLFlBQVlELFdBQVdELEtBQUssTUFBTTtJQUV4Q0gsT0FBT0ssV0FBWSxHQUFHO0lBRXRCLE9BQU9MO0FBQ1Q7QUFFTyxTQUFTUixzQkFBc0JRLElBQUksRUFBRUgsS0FBSyxFQUFFSSxLQUFLO0lBQ3RELElBQU1HLGFBQWFQLE1BQU1LLE9BQU8sQ0FBQ0Y7SUFFakNOLEtBQUtPLE9BQU9HO0lBRVosT0FBT0g7QUFDVDtBQUVPLFNBQVNWLHdCQUF3QlMsSUFBSSxFQUFFTSxPQUFPO1FBQUVMLFFBQUFBLGlFQUFRLEVBQUU7SUFDL0RLLFFBQVFDLE9BQU8sQ0FBQyxTQUFDVjtRQUNmLElBQU1PLGFBQWFQLE1BQU1LLE9BQU8sQ0FBQ0Y7UUFFakNOLEtBQUtPLE9BQU9HO0lBQ2Q7SUFFQSxPQUFPSDtBQUNUIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "highmark-markdown",
3
3
  "author": "James Smith",
4
- "version": "1.0.177",
4
+ "version": "1.0.178",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/highmark-markdown",
7
7
  "description": "Highmark's Markdown and Markdown Style languages.",
@@ -11,10 +11,10 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^14.3.2",
14
- "occam-dom": "^5.2.7",
14
+ "occam-dom": "^5.2.9",
15
15
  "occam-lexers": "^23.0.47",
16
- "occam-parsers": "^23.0.120",
17
- "occam-query": "^4.1.77"
16
+ "occam-parsers": "^23.0.123",
17
+ "occam-query": "^4.1.79"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@swc/core": "^1.5.6",
@@ -13,22 +13,22 @@ class PreviewDiv extends Element {
13
13
  }
14
14
 
15
15
  clear() {
16
- let markdownNode;
16
+ let divisionHTMLNode;
17
17
 
18
- markdownNode = this.getMarkdownNode();
18
+ divisionHTMLNode = this.getDivisionHTMLNode();
19
19
 
20
- if (markdownNode !== null) {
20
+ if (divisionHTMLNode !== null) {
21
21
  const parentDOMElement = this.getParentDOMElement();
22
22
 
23
- markdownNode.unmount(parentDOMElement);
23
+ divisionHTMLNode.unmount(parentDOMElement);
24
24
 
25
- markdownNode = null;
25
+ divisionHTMLNode = null;
26
26
 
27
- this.setMarkdownNode(markdownNode);
27
+ this.setDivisionHTMLNode(divisionHTMLNode);
28
28
  }
29
29
  }
30
30
 
31
- update(markdownNode, context) {
31
+ update(divisionHTMLNode, context) {
32
32
  this.clear();
33
33
 
34
34
  const whitespaceTokenIndex = -1;
@@ -40,28 +40,28 @@ class PreviewDiv extends Element {
40
40
  const parentDOMElement = this.getParentDOMElement(),
41
41
  siblingDOMElement = null;
42
42
 
43
- markdownNode.mount(parentDOMElement, siblingDOMElement, context);
43
+ divisionHTMLNode.mount(parentDOMElement, siblingDOMElement, context);
44
44
 
45
- this.setMarkdownNode(markdownNode);
45
+ this.setDivisionHTMLNode(divisionHTMLNode);
46
46
  }
47
47
 
48
- getMarkdownNode() {
49
- const { markdownNode } = this.getState();
48
+ getDivisionHTMLNode() {
49
+ const { divisionHTMLNode } = this.getState();
50
50
 
51
- return markdownNode;
51
+ return divisionHTMLNode;
52
52
  }
53
53
 
54
- setMarkdownNode(markdownNode) {
54
+ setDivisionHTMLNode(divisionHTMLNode) {
55
55
  this.updateState({
56
- markdownNode
56
+ divisionHTMLNode
57
57
  });
58
58
  }
59
59
 
60
60
  setInitialState() {
61
- const markdownNode = null;
61
+ const divisionHTMLNode = null;
62
62
 
63
63
  this.setState({
64
- markdownNode
64
+ divisionHTMLNode
65
65
  });
66
66
  }
67
67
 
@@ -12,7 +12,7 @@ class LeftSizeableDiv extends SizeableDiv {
12
12
 
13
13
  export default withStyle(LeftSizeableDiv)`
14
14
 
15
- width: 128rem;
15
+ width: 80rem;
16
16
  min-width: 12rem;
17
17
  flex-direction: column;
18
18
 
@@ -19,14 +19,14 @@ class PlainTextTextarea extends Textarea {
19
19
  this.setPlainText(plainText);
20
20
  }
21
21
 
22
- update(topmostHTMLNode, context) {
22
+ update(divisionHTMLNode, context) {
23
23
  const whitespaceTokenIndex = -1;
24
24
 
25
25
  Object.assign(context, {
26
26
  whitespaceTokenIndex
27
27
  });
28
28
 
29
- const plainText = topmostHTMLNode.asPlainText(context);
29
+ const plainText = divisionHTMLNode.asPlainText(context);
30
30
 
31
31
  this.setPlainText(plainText);
32
32
  }
@@ -7,14 +7,15 @@ import { Element } from "easy";
7
7
  import { EMPTY_STRING } from "../constants";
8
8
 
9
9
  class XMP extends Element {
10
- update(topmostHTMLNode, context) {
10
+ update(divisionHTMLNode, context) {
11
11
  const whitespaceTokenIndex = -1;
12
12
 
13
13
  Object.assign(context, {
14
14
  whitespaceTokenIndex
15
15
  });
16
16
 
17
- const html = topmostHTMLNode.asHTML(context);
17
+ const indent = null,
18
+ html = divisionHTMLNode.asHTML(indent, context);
18
19
 
19
20
  this.html(html);
20
21
  }
@@ -9,7 +9,6 @@ import { MarkdownLexer, MarkdownParser, MarkdownStyleLexer, MarkdownStyleParser
9
9
  import PageButtonsDiv from "./view/div/pageButtons";
10
10
  import LeftSizeableDiv from "./view/div/sizeable/left";
11
11
  import CSSContainerDiv from "./view/div/container/css";
12
- import TopmostHTMLNode from "../node/html/topmost";
13
12
  import HTMLContainerDiv from "./view/div/container/html";
14
13
  import LeftTabButtonsDiv from "./view/div/tabButtons/left";
15
14
  import RightTabButtonsDiv from "./view/div/tabButtons/right";
@@ -19,6 +18,7 @@ import PlainTextContainerDiv from "./view/div/container/plainText";
19
18
  import HTMLParseTreeTextarea from "./view/textarea/parseTree/html";
20
19
  import MarkdownStyleContainerDiv from "./view/div/container/markdownStyle";
21
20
 
21
+ import { htmlNodeFromMarkdownNode } from "../utilities/dom";
22
22
  import { importer, initialMarkdown } from "./importer";
23
23
 
24
24
  const markdownLexer = MarkdownLexer.fromNothing(),
@@ -74,25 +74,24 @@ class View extends Element {
74
74
  }
75
75
 
76
76
  updatePage(index = 0) {
77
- return;
78
-
79
77
  const tokens = this.getTokens(),
80
78
  topmostMarkdownNode = this.getTopmostMarkdownNode(),
81
- divisionMarkdownNode = topmostMarkdownNode.getDivisionMarkdownNodeAt(index),
82
- topmostHTMLNode = TopmostHTMLNode.fromDivisionMarkdownNode(divisionMarkdownNode),
79
+ topmostHTMLNode = htmlNodeFromMarkdownNode(topmostMarkdownNode),
80
+ divisionHTMLNOde = topmostHTMLNode.getDivisionHTMLNodeAt(index),
83
81
  context = {
84
82
  tokens,
85
83
  pathToURL
86
84
  };
87
85
 
88
- this.updateXMP(topmostHTMLNode, context);
86
+ this.updateXMP(divisionHTMLNOde, context);
89
87
 
90
- this.updatePreviewDiv(topmostHTMLNode, context);
88
+ this.updatePreviewDiv(divisionHTMLNOde, context);
91
89
 
92
- this.updatePlainTextTextarea(topmostHTMLNode, context);
90
+ this.updatePlainTextTextarea(divisionHTMLNOde, context);
93
91
 
94
- const length = null,
95
- parseTree = topmostHTMLNode.asParseTree(),
92
+ const multiplicity = topmostHTMLNode.getMultiplicity(),
93
+ length = multiplicity, ///
94
+ parseTree = divisionHTMLNOde.asParseTree(),
96
95
  htmlParseTree = parseTree; ///
97
96
 
98
97
  this.updatePageButtonsDiv(length, index);