highmark-markdown 0.0.413 → 0.0.414
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.
- package/lib/node/markdown/blockLine.js +2 -3
- package/lib/replacement.js +3 -4
- package/lib/utilities/content.js +8 -7
- package/lib/utilities/replacement.js +5 -6
- package/package.json +3 -3
- package/src/node/markdown/blockLine.js +2 -3
- package/src/replacement.js +6 -7
- package/src/utilities/content.js +14 -12
- package/src/utilities/replacement.js +12 -14
- package/lib/utilities/node.js +0 -99
- package/src/utilities/node.js +0 -114
|
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _markdown = /*#__PURE__*/ _interop_require_default(require("../../node/markdown"));
|
|
12
12
|
var _content = require("../../utilities/content");
|
|
13
|
-
var _node = require("../../utilities/node");
|
|
14
13
|
function _assert_this_initialized(self) {
|
|
15
14
|
if (self === void 0) {
|
|
16
15
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -128,7 +127,7 @@ var BlockLineMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
|
|
|
128
127
|
var content;
|
|
129
128
|
var tokens = context.tokens, node = this; ///
|
|
130
129
|
content = (0, _content.contentFromNode)(node, context);
|
|
131
|
-
var
|
|
130
|
+
var firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens), previousTokenIndex = firstSignificantTokenIndex - 1, previousToken = tokens[previousTokenIndex], previousTokenWhitespaceToken = previousToken.isWhitespaceToken();
|
|
132
131
|
if (previousTokenWhitespaceToken) {
|
|
133
132
|
var whitespaceToken = previousToken, whitespaceTokenContent = whitespaceToken.getContent();
|
|
134
133
|
content = "".concat(whitespaceTokenContent).concat(content);
|
|
@@ -185,4 +184,4 @@ var BlockLineMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
|
|
|
185
184
|
}(_markdown.default);
|
|
186
185
|
_define_property(BlockLineMarkdownNode, "lines", 1);
|
|
187
186
|
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2Jsb2NrTGluZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuXG5pbXBvcnQgeyBjb250ZW50RnJvbU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRlbnRcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmxvY2tMaW5lTWFya2Rvd25Ob2RlIGV4dGVuZHMgTWFya2Rvd25Ob2RlIHtcbiAgY29udGVudChjb250ZXh0KSB7XG4gICAgbGV0IGNvbnRlbnQ7XG5cbiAgICBjb25zdCB7IHRva2VucyB9ID0gY29udGV4dCxcbiAgICAgICAgICBub2RlID0gdGhpczsgIC8vL1xuXG4gICAgY29udGVudCA9IGNvbnRlbnRGcm9tTm9kZShub2RlLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpLFxuICAgICAgICAgIHByZXZpb3VzVG9rZW5JbmRleCA9IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IC0gMSxcbiAgICAgICAgICBwcmV2aW91c1Rva2VuID0gdG9rZW5zW3ByZXZpb3VzVG9rZW5JbmRleF0sXG4gICAgICAgICAgcHJldmlvdXNUb2tlbldoaXRlc3BhY2VUb2tlbiA9IHByZXZpb3VzVG9rZW4uaXNXaGl0ZXNwYWNlVG9rZW4oKTtcblxuICAgIGlmIChwcmV2aW91c1Rva2VuV2hpdGVzcGFjZVRva2VuKSB7XG4gICAgICBjb25zdCB3aGl0ZXNwYWNlVG9rZW4gPSBwcmV2aW91c1Rva2VuLCAgLy8vXG4gICAgICAgICAgICB3aGl0ZXNwYWNlVG9rZW5Db250ZW50ID0gd2hpdGVzcGFjZVRva2VuLmdldENvbnRlbnQoKTtcblxuICAgICAgY29udGVudCA9IGAke3doaXRlc3BhY2VUb2tlbkNvbnRlbnR9JHtjb250ZW50fWA7XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGROb2Rlc0hUTUwgPSBjb250ZW50OyAvLy9cblxuICAgIHJldHVybiBjaGlsZE5vZGVzSFRNTDtcbiAgfVxuXG4gIGFzSFRNTChpbmRlbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzSFRNTCA9IHRoaXMuY2hpbGROb2Rlc0FzSFRNTChpbmRlbnQsIGNvbnRleHQpLFxuICAgICAgICAgIHN0YXJ0aW5nVGFnID0gdGhpcy5zdGFydGluZ1RhZyhjb250ZXh0KSxcbiAgICAgICAgICBjbG9zaW5nVGFnID0gdGhpcy5jbG9zaW5nVGFnKGNvbnRleHQpLFxuICAgICAgICAgIGh0bWwgPSBgJHtzdGFydGluZ1RhZ30ke2NoaWxkTm9kZXNIVE1MfSR7Y2xvc2luZ1RhZ31gO1xuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICBjcmVhdGVET01FbGVtZW50KGNvbnRleHQpIHtcbiAgICBjb25zdCB0YWdOYW1lID0gdGhpcy50YWdOYW1lKGNvbnRleHQpLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lKGNvbnRleHQpLFxuICAgICAgICAgIGRvbUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpO1xuXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XG4gICAgICBjbGFzc05hbWVcbiAgICB9KTtcblxuICAgIHRoaXMuc2V0RE9NRWxlbWVudChkb21FbGVtZW50KTtcblxuICAgIHRoaXMuY3JlYXRlQ2hpbGROb2RlRE9NRWxlbWVudHMoY29udGV4dCk7XG5cbiAgICByZXR1cm4gZG9tRWxlbWVudDtcbiAgfVxuXG4gIGNoaWxkTm9kZXNBc0hUTUwoaW5kZW50LCBjb250ZXh0KSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuY29udGVudChjb250ZXh0KSxcbiAgICAgICAgICBjaGlsZE5vZGVzSFRNTCA9IGNvbnRlbnQ7IC8vL1xuXG4gICAgcmV0dXJuIGNoaWxkTm9kZXNIVE1MO1xuICB9XG5cbiAgY3JlYXRlQ2hpbGROb2RlRE9NRWxlbWVudHMoY29udGV4dCkge1xuICAgIGxldCBkb21FbGVtZW50O1xuXG4gICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xuXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuY29udGVudChjb250ZXh0KSxcbiAgICAgICAgICB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbnRlbnQpLFxuICAgICAgICAgIHBhcmVudERPTUVsZW1lbnQgPSBkb21FbGVtZW50OyAgLy8vXG5cbiAgICBkb21FbGVtZW50ID0gdGV4dE5vZGU7IC8vL1xuXG4gICAgcGFyZW50RE9NRWxlbWVudC5hcHBlbmRDaGlsZChkb21FbGVtZW50KTtcbiAgfVxuXG4gIHN0YXRpYyBsaW5lcyA9IDE7XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KSB7IHJldHVybiBNYXJrZG93bk5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkoQmxvY2tMaW5lTWFya2Rvd25Ob2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJCbG9ja0xpbmVNYXJrZG93bk5vZGUiLCJjb250ZW50IiwiY29udGV4dCIsInRva2VucyIsIm5vZGUiLCJjb250ZW50RnJvbU5vZGUiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwicHJldmlvdXNUb2tlbkluZGV4IiwicHJldmlvdXNUb2tlbiIsInByZXZpb3VzVG9rZW5XaGl0ZXNwYWNlVG9rZW4iLCJpc1doaXRlc3BhY2VUb2tlbiIsIndoaXRlc3BhY2VUb2tlbiIsIndoaXRlc3BhY2VUb2tlbkNvbnRlbnQiLCJnZXRDb250ZW50IiwiY2hpbGROb2Rlc0hUTUwiLCJhc0hUTUwiLCJpbmRlbnQiLCJjaGlsZE5vZGVzQXNIVE1MIiwic3RhcnRpbmdUYWciLCJjbG9zaW5nVGFnIiwiaHRtbCIsImNyZWF0ZURPTUVsZW1lbnQiLCJ0YWdOYW1lIiwiY2xhc3NOYW1lIiwiZG9tRWxlbWVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsInNldERPTUVsZW1lbnQiLCJjcmVhdGVDaGlsZE5vZGVET01FbGVtZW50cyIsImdldERPTUVsZW1lbnQiLCJ0ZXh0Tm9kZSIsImNyZWF0ZVRleHROb2RlIiwicGFyZW50RE9NRWxlbWVudCIsImFwcGVuZENoaWxkIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkiLCJydWxlTmFtZSIsImNoaWxkTm9kZXMiLCJvcGFjaXR5IiwiTWFya2Rvd25Ob2RlIiwibGluZXMiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFNcUJBOzs7K0RBSkk7dUJBRU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWpCLElBQUEsQUFBTUEsc0NBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNuQkMsS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVFDLE9BQU87Z0JBQ2IsSUFBSUQ7Z0JBRUosSUFBTSxBQUFFRSxTQUFXRCxRQUFYQyxRQUNGQyxPQUFPLElBQUksRUFBRyxHQUFHO2dCQUV2QkgsVUFBVUksSUFBQUEsd0JBQWUsRUFBQ0QsTUFBTUY7Z0JBRWhDLElBQU1JLDZCQUE2QkYsS0FBS0csNkJBQTZCLENBQUNKLFNBQ2hFSyxxQkFBcUJGLDZCQUE2QixHQUNsREcsZ0JBQWdCTixNQUFNLENBQUNLLG1CQUFtQixFQUMxQ0UsK0JBQStCRCxjQUFjRSxpQkFBaUI7Z0JBRXBFLElBQUlELDhCQUE4QjtvQkFDaEMsSUFBTUUsa0JBQWtCSCxlQUNsQkkseUJBQXlCRCxnQkFBZ0JFLFVBQVU7b0JBRXpEYixVQUFVLEFBQUMsR0FBMkJBLE9BQXpCWSx3QkFBaUMsT0FBUlo7Z0JBQ3hDO2dCQUVBLElBQU1jLGlCQUFpQmQsU0FBUyxHQUFHO2dCQUVuQyxPQUFPYztZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLE9BQU9DLE1BQU0sRUFBRWYsT0FBTztnQkFDcEIsSUFBTWEsaUJBQWlCLElBQUksQ0FBQ0csZ0JBQWdCLENBQUNELFFBQVFmLFVBQy9DaUIsY0FBYyxJQUFJLENBQUNBLFdBQVcsQ0FBQ2pCLFVBQy9Ca0IsYUFBYSxJQUFJLENBQUNBLFVBQVUsQ0FBQ2xCLFVBQzdCbUIsT0FBTyxBQUFDLEdBQWdCTixPQUFkSSxhQUErQkMsT0FBakJMLGdCQUE0QixPQUFYSztnQkFFL0MsT0FBT0M7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBaUJwQixPQUFPO2dCQUN0QixJQUFNcUIsVUFBVSxJQUFJLENBQUNBLE9BQU8sQ0FBQ3JCLFVBQ3ZCc0IsWUFBWSxJQUFJLENBQUNBLFNBQVMsQ0FBQ3RCLFVBQzNCdUIsYUFBYUMsU0FBU0MsYUFBYSxDQUFDSjtnQkFFMUNLLE9BQU9DLE1BQU0sQ0FBQ0osWUFBWTtvQkFDeEJELFdBQUFBO2dCQUNGO2dCQUVBLElBQUksQ0FBQ00sYUFBYSxDQUFDTDtnQkFFbkIsSUFBSSxDQUFDTSwwQkFBMEIsQ0FBQzdCO2dCQUVoQyxPQUFPdUI7WUFDVDs7O1lBRUFQLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBaUJELE1BQU0sRUFBRWYsT0FBTztnQkFDOUIsSUFBTUQsVUFBVSxJQUFJLENBQUNBLE9BQU8sQ0FBQ0MsVUFDdkJhLGlCQUFpQmQsU0FBUyxHQUFHO2dCQUVuQyxPQUFPYztZQUNUOzs7WUFFQWdCLEtBQUFBO21CQUFBQSxTQUFBQSwyQkFBMkI3QixPQUFPO2dCQUNoQyxJQUFJdUI7Z0JBRUpBLGFBQWEsSUFBSSxDQUFDTyxhQUFhO2dCQUUvQixJQUFNL0IsVUFBVSxJQUFJLENBQUNBLE9BQU8sQ0FBQ0MsVUFDdkIrQixXQUFXUCxTQUFTUSxjQUFjLENBQUNqQyxVQUNuQ2tDLG1CQUFtQlYsWUFBYSxHQUFHO2dCQUV6Q0EsYUFBYVEsVUFBVSxHQUFHO2dCQUUxQkUsaUJBQWlCQyxXQUFXLENBQUNYO1lBQy9COzs7O1lBSU9ZLEtBQUFBO21CQUFQLFNBQU9BLGlDQUFpQ0MsUUFBUSxFQUFFQyxVQUFVLEVBQUVDLE9BQU87Z0JBQUksT0FBT0MsaUJBQVksQ0FBQ0osZ0NBQWdDLENBMUUxR3JDLHVCQTBFa0lzQyxVQUFVQyxZQUFZQztZQUFVOzs7V0ExRWxLeEM7RUFBOEJ5QyxpQkFBWTtBQXdFN0QsaUJBeEVtQnpDLHVCQXdFWjBDLFNBQVEifQ==
|
package/lib/replacement.js
CHANGED
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _necessary = require("necessary");
|
|
12
|
-
var _node = require("./utilities/node");
|
|
13
12
|
var _replacement = require("./utilities/replacement");
|
|
14
13
|
function _array_like_to_array(arr, len) {
|
|
15
14
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -229,7 +228,7 @@ var Replacement = /*#__PURE__*/ function() {
|
|
|
229
228
|
Class = Replacement; ///
|
|
230
229
|
}
|
|
231
230
|
var tokens = context.tokens;
|
|
232
|
-
var clonedTokens = clonedTokensFromNodeAndTokens(node, tokens),
|
|
231
|
+
var clonedTokens = clonedTokensFromNodeAndTokens(node, tokens), firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens), offset = firstSignificantTokenIndex; ///
|
|
233
232
|
node = node.clone(); ///
|
|
234
233
|
overwriteNodeTokens(node, clonedTokens, tokens, offset);
|
|
235
234
|
tokens = clonedTokens; ///
|
|
@@ -291,7 +290,7 @@ function overwriteNonTerminalNodeTokens(nonTerminalNode, clonedTokens, tokens, o
|
|
|
291
290
|
});
|
|
292
291
|
}
|
|
293
292
|
function clonedTokensFromNodeAndTokens(node, tokens) {
|
|
294
|
-
var
|
|
293
|
+
var firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens), lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens), start = firstSignificantTokenIndex, end = lastSignificantTokenIndex + 1;
|
|
295
294
|
tokens = tokens.slice(start, end); ///
|
|
296
295
|
var clonedTokens = tokens.map(function(token) {
|
|
297
296
|
var clonedToken = token.clone();
|
|
@@ -300,4 +299,4 @@ function clonedTokensFromNodeAndTokens(node, tokens) {
|
|
|
300
299
|
return clonedTokens;
|
|
301
300
|
}
|
|
302
301
|
|
|
303
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXBsYWNlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IGxlYWRpbmdJbmRleEZyb21Ob2RlQW5kVG9rZW5zLCB0cmFpbGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuaW1wb3J0IHsgcmVtb3ZlTm9kZSwgYXBwZW5kTm9kZSwgcmVtb3ZlVG9rZW5zLCBhcHBlbmRUb2tlbnMsIHJlcGxhY2VOb2RlLCByZXBsYWNlTm9kZXMsIHJlcGxhY2VUb2tlbnMsIGFkZE5vZGVzQWZ0ZXIsIGFkZFRva2Vuc0FmdGVyIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3JlcGxhY2VtZW50XCI7XG5cbmNvbnN0IHsgcHVzaCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlcGxhY2VtZW50IHtcbiAgY29uc3RydWN0b3Iobm9kZSwgdG9rZW5zKSB7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldFRva2Vucyh0b2tlbnMgPSBbXSkge1xuICAgIHB1c2godG9rZW5zLCB0aGlzLnRva2Vucyk7XG5cbiAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gIH1cblxuICBnZXRDaGlsZE5vZGVzKCkgeyByZXR1cm4gdGhpcy5ub2RlLmdldENoaWxkTm9kZXMoKTsgfVxuXG4gIGNvbnRyYWN0KENsYXNzLCBkZXNjZW5kZW50Tm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKGRlc2NlbmRlbnROb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlc2NlbmRlbnROb2RlID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IFJlcGxhY2VtZW50OyAgLy8vXG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZSA9IGRlc2NlbmRlbnROb2RlLCAgLy8vXG4gICAgICAgICAgdG9rZW5zID0gdGhpcy50b2tlbnMsIC8vL1xuICAgICAgICAgIGNvbnRleHQgPSB7IC8vL1xuICAgICAgICAgICAgdG9rZW5zXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXBsYWNlbWVudCA9IENsYXNzLmZyb21Ob2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gcmVwbGFjZW1lbnQ7XG4gIH1cblxuICBleHBhbmQoQ2xhc3MsIGFzY2VuZGFudE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChhc2NlbmRhbnROb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGFzY2VuZGFudE5vZGUgPSBDbGFzcztcblxuICAgICAgQ2xhc3MgPSBSZXBsYWNlbWVudDsgIC8vL1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSBhc2NlbmRhbnROb2RlLCAvLy9cbiAgICAgICAgICB0b2tlbnMgPSB0aGlzLnRva2VucywgLy8vXG4gICAgICAgICAgY29udGV4dCA9IHtcbiAgICAgICAgICAgIHRva2Vuc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVwbGFjZW1lbnQgPSBDbGFzcy5mcm9tTm9kZShub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHJlcGxhY2VtZW50O1xuICB9XG5cbiAgYXBwZW5kVG8ocGFyZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGFwcGVuZGVkTm9kZSA9IHRoaXMubm9kZSwgIC8vL1xuICAgICAgICAgIGFwcGVuZGVkVG9rZW5zID0gdGhpcy50b2tlbnM7ICAvLy9cblxuICAgIGFwcGVuZE5vZGUoYXBwZW5kZWROb2RlLCBwYXJlbnROb2RlKTtcblxuICAgIGFwcGVuZFRva2VucyhhcHBlbmRlZFRva2VucywgcGFyZW50Tm9kZSwgdG9rZW5zKTtcbiAgfVxuXG4gIGFkZEFmdGVyKGV4aXN0aW5nTm9kZSwgcGFyZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGFkZGVkTm9kZXMgPSB0aGlzLmdldENoaWxkTm9kZXMoKSwgLy8vXG4gICAgICAgICAgYWRkZWRUb2tlbnMgPSB0aGlzLnRva2VuczsgIC8vL1xuXG4gICAgYWRkTm9kZXNBZnRlcihleGlzdGluZ05vZGUsIGFkZGVkTm9kZXMsIHBhcmVudE5vZGUpO1xuXG4gICAgYWRkVG9rZW5zQWZ0ZXIoZXhpc3RpbmdOb2RlLCBhZGRlZFRva2VucywgdG9rZW5zKTtcbiAgfVxuXG4gIHJlcGxhY2UocmVwbGFjZWROb2RlLCBwYXJlbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyB0b2tlbnMgfSA9IGNvbnRleHQsXG4gICAgICAgICAgcmVwbGFjZW1lbnROb2RlID0gdGhpcy5ub2RlLCAvLy9cbiAgICAgICAgICByZXBsYWNlbWVudFRva2VucyA9IHRoaXMudG9rZW5zOyAvLy9cblxuICAgIHJlcGxhY2VOb2RlKHJlcGxhY2VtZW50Tm9kZSwgcmVwbGFjZWROb2RlLCBwYXJlbnROb2RlKTtcblxuICAgIHJlcGxhY2VUb2tlbnMocmVwbGFjZW1lbnRUb2tlbnMsIHJlcGxhY2VkTm9kZSwgdG9rZW5zKTtcbiAgfVxuXG4gIHJlcGxhY2VFeChyZXBsYWNlZE5vZGUsIHBhcmVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHRva2VucyB9ID0gY29udGV4dCxcbiAgICAgICAgICByZXBsYWNlbWVudENoaWxkTm9kZXMgPSB0aGlzLmdldENoaWxkTm9kZXMoKSwgLy8vXG4gICAgICAgICAgcmVwbGFjZW1lbnRUb2tlbnMgPSB0aGlzLnRva2VucywgIC8vL1xuICAgICAgICAgIHJlcGxhY2VtZW50Tm9kZXMgPSByZXBsYWNlbWVudENoaWxkTm9kZXM7IC8vL1xuXG4gICAgcmVwbGFjZU5vZGVzKHJlcGxhY2VtZW50Tm9kZXMsIHJlcGxhY2VkTm9kZSwgcGFyZW50Tm9kZSk7XG5cbiAgICByZXBsYWNlVG9rZW5zKHJlcGxhY2VtZW50VG9rZW5zLCByZXBsYWNlZE5vZGUsIHRva2Vucyk7XG4gIH1cblxuICByZW1vdmVGcm9tKHJlbW92ZWROb2RlLCBwYXJlbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyB0b2tlbnMgfSA9IGNvbnRleHQ7XG5cbiAgICByZW1vdmVUb2tlbnMocmVtb3ZlZE5vZGUsIHRva2Vucyk7XG5cbiAgICByZW1vdmVOb2RlKHJlbW92ZWROb2RlLCBwYXJlbnROb2RlKTtcbiAgfVxuXG4gIGNsb25lKC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGUuY2xvbmUoKSxcbiAgICAgICAgICBjbG9uZWRUb2tlbnMgPSBjbG9uZWRUb2tlbnNGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0aGlzLnRva2Vucyk7XG5cbiAgICBvdmVyd3JpdGVOb2RlVG9rZW5zKG5vZGUsIGNsb25lZFRva2VucywgdGhpcy50b2tlbnMpO1xuXG4gICAgY29uc3QgQ2xhc3MgPSB0aGlzLmNvbnN0cnVjdG9yLCAvLy9cbiAgICAgICAgICB0b2tlbnMgPSBjbG9uZWRUb2tlbnMsIC8vL1xuICAgICAgICAgIHJlcGxhY2VtZW50ID0gbmV3IENsYXNzKG5vZGUsIHRva2VucywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiByZXBsYWNlbWVudFxuICB9XG5cbiAgc3RhdGljIGZyb21Ob2RlKENsYXNzLCBub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIGlmIChjb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnRleHQgPSBub2RlOyAvLy9cblxuICAgICAgbm9kZSA9IENsYXNzOyAvLy9cblxuICAgICAgQ2xhc3MgPSBSZXBsYWNlbWVudDsgIC8vL1xuICAgIH1cblxuICAgIGxldCB7IHRva2VucyB9ID0gY29udGV4dDtcblxuICAgIGNvbnN0IGNsb25lZFRva2VucyA9IGNsb25lZFRva2Vuc0Zyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2VucyksXG4gICAgICAgICAgbGVhZGluZ0luZGV4ID0gbGVhZGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICBvZmZzZXQgPSBsZWFkaW5nSW5kZXg7ICAvLy9cblxuICAgIG5vZGUgPSBub2RlLmNsb25lKCk7ICAvLy9cblxuICAgIG92ZXJ3cml0ZU5vZGVUb2tlbnMobm9kZSwgY2xvbmVkVG9rZW5zLCB0b2tlbnMsIG9mZnNldCk7XG5cbiAgICB0b2tlbnMgPSBjbG9uZWRUb2tlbnM7IC8vL1xuXG4gICAgY29uc3QgcmVwbGFjZW1lbnQgPSBuZXcgQ2xhc3Mobm9kZSwgdG9rZW5zLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIHJlcGxhY2VtZW50O1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2RlQW5kVG9rZW5zKENsYXNzLCBub2RlLCB0b2tlbnMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmICh0b2tlbnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdG9rZW5zID0gbm9kZTsgIC8vL1xuXG4gICAgICBub2RlID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IFJlcGxhY2VtZW50OyAgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcmVwbGFjZW1lbnQgPSBuZXcgQ2xhc3Mobm9kZSwgdG9rZW5zLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIHJlcGxhY2VtZW50O1xuICB9XG59XG5cbmZ1bmN0aW9uIG92ZXJ3cml0ZU5vZGVUb2tlbnMobm9kZSwgY2xvbmVkVG9rZW5zLCB0b2tlbnMsIG9mZnNldCA9IDApIHtcbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIG92ZXJ3cml0ZVRlcm1pbmFsTm9kZVRva2Vucyh0ZXJtaW5hbE5vZGUsIGNsb25lZFRva2VucywgdG9rZW5zLCBvZmZzZXQpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIG92ZXJ3cml0ZU5vblRlcm1pbmFsTm9kZVRva2Vucyhub25UZXJtaW5hbE5vZGUsIGNsb25lZFRva2VucywgdG9rZW5zLCBvZmZzZXQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG92ZXJ3cml0ZVRlcm1pbmFsTm9kZVRva2Vucyh0ZXJtaW5hbE5vZGUsIGNsb25lZFRva2VucywgdG9rZW5zLCBvZmZzZXQpIHtcbiAgbGV0IGluZGV4LFxuICAgICAgc2lnbmlmaWNhbnRUb2tlbjtcblxuICBzaWduaWZpY2FudFRva2VuID0gdGVybWluYWxOb2RlLmdldFNpZ25pZmljYW50VG9rZW4oKTtcblxuICBpZiAoc2lnbmlmaWNhbnRUb2tlbiAhPT0gbnVsbCkge1xuICAgIGluZGV4ID0gdG9rZW5zLmluZGV4T2Yoc2lnbmlmaWNhbnRUb2tlbik7XG5cbiAgICBpbmRleCAtPSBvZmZzZXQ7XG5cbiAgICBjb25zdCBjbG9uZWRUb2tlbiA9IGNsb25lZFRva2Vuc1tpbmRleF07XG5cbiAgICBzaWduaWZpY2FudFRva2VuID0gY2xvbmVkVG9rZW47ICAvLy9cblxuICAgIHRlcm1pbmFsTm9kZS5zZXRTaWduaWZpY2FudFRva2VuKHNpZ25pZmljYW50VG9rZW4pO1xuICB9XG59XG5cbmZ1bmN0aW9uIG92ZXJ3cml0ZU5vblRlcm1pbmFsTm9kZVRva2Vucyhub25UZXJtaW5hbE5vZGUsIGNsb25lZFRva2VucywgdG9rZW5zLCBvZmZzZXQpIHtcbiAgY29uc3QgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCk7XG5cbiAgY2hpbGROb2Rlcy5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICBjb25zdCBub2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgIG92ZXJ3cml0ZU5vZGVUb2tlbnMobm9kZSwgY2xvbmVkVG9rZW5zLCB0b2tlbnMsIG9mZnNldCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjbG9uZWRUb2tlbnNGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0b2tlbnMpIHtcbiAgY29uc3QgbGVhZGluZ0luZGV4ID0gbGVhZGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSxcbiAgICAgICAgdHJhaWxpbmdJbmRleCA9IHRyYWlsaW5nSW5kZXhGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0b2tlbnMpLFxuICAgICAgICBzdGFydCA9IGxlYWRpbmdJbmRleCwgIC8vL1xuICAgICAgICBlbmQgPSB0cmFpbGluZ0luZGV4ICsgMTtcblxuICB0b2tlbnMgPSB0b2tlbnMuc2xpY2Uoc3RhcnQsIGVuZCk7ICAvLy9cblxuICBjb25zdCBjbG9uZWRUb2tlbnMgPSB0b2tlbnMubWFwKCh0b2tlbikgPT4geyAgLy8vXG4gICAgY29uc3QgY2xvbmVkVG9rZW4gPSB0b2tlbi5jbG9uZSgpO1xuXG4gICAgcmV0dXJuIGNsb25lZFRva2VuO1xuICB9KTtcblxuICByZXR1cm4gY2xvbmVkVG9rZW5zO1xufVxuIl0sIm5hbWVzIjpbIlJlcGxhY2VtZW50IiwicHVzaCIsImFycmF5VXRpbGl0aWVzIiwibm9kZSIsInRva2VucyIsImdldE5vZGUiLCJnZXRUb2tlbnMiLCJnZXRDaGlsZE5vZGVzIiwiY29udHJhY3QiLCJDbGFzcyIsImRlc2NlbmRlbnROb2RlIiwicmVtYWluaW5nQXJndW1lbnRzIiwidW5kZWZpbmVkIiwiY29udGV4dCIsInJlcGxhY2VtZW50IiwiZnJvbU5vZGUiLCJleHBhbmQiLCJhc2NlbmRhbnROb2RlIiwiYXBwZW5kVG8iLCJwYXJlbnROb2RlIiwiYXBwZW5kZWROb2RlIiwiYXBwZW5kZWRUb2tlbnMiLCJhcHBlbmROb2RlIiwiYXBwZW5kVG9rZW5zIiwiYWRkQWZ0ZXIiLCJleGlzdGluZ05vZGUiLCJhZGRlZE5vZGVzIiwiYWRkZWRUb2tlbnMiLCJhZGROb2Rlc0FmdGVyIiwiYWRkVG9rZW5zQWZ0ZXIiLCJyZXBsYWNlIiwicmVwbGFjZWROb2RlIiwicmVwbGFjZW1lbnROb2RlIiwicmVwbGFjZW1lbnRUb2tlbnMiLCJyZXBsYWNlTm9kZSIsInJlcGxhY2VUb2tlbnMiLCJyZXBsYWNlRXgiLCJyZXBsYWNlbWVudENoaWxkTm9kZXMiLCJyZXBsYWNlbWVudE5vZGVzIiwicmVwbGFjZU5vZGVzIiwicmVtb3ZlRnJvbSIsInJlbW92ZWROb2RlIiwicmVtb3ZlVG9rZW5zIiwicmVtb3ZlTm9kZSIsImNsb25lIiwiY2xvbmVkVG9rZW5zIiwiY2xvbmVkVG9rZW5zRnJvbU5vZGVBbmRUb2tlbnMiLCJvdmVyd3JpdGVOb2RlVG9rZW5zIiwiY29uc3RydWN0b3IiLCJwb3AiLCJsZWFkaW5nSW5kZXgiLCJsZWFkaW5nSW5kZXhGcm9tTm9kZUFuZFRva2VucyIsIm9mZnNldCIsImZyb21Ob2RlQW5kVG9rZW5zIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwib3ZlcndyaXRlVGVybWluYWxOb2RlVG9rZW5zIiwibm9uVGVybWluYWxOb2RlIiwib3ZlcndyaXRlTm9uVGVybWluYWxOb2RlVG9rZW5zIiwiaW5kZXgiLCJzaWduaWZpY2FudFRva2VuIiwiZ2V0U2lnbmlmaWNhbnRUb2tlbiIsImluZGV4T2YiLCJjbG9uZWRUb2tlbiIsInNldFNpZ25pZmljYW50VG9rZW4iLCJjaGlsZE5vZGVzIiwiZm9yRWFjaCIsImNoaWxkTm9kZSIsInRyYWlsaW5nSW5kZXgiLCJ0cmFpbGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMiLCJzdGFydCIsImVuZCIsInNsaWNlIiwibWFwIiwidG9rZW4iXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVNxQkE7Ozt5QkFQVTtvQkFFK0M7MkJBQzhEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1SSxJQUFNLEFBQUVDLE9BQVNDLHlCQUFjLENBQXZCRDtBQUVPLElBQUEsQUFBTUQsNEJBQUQsQUFBTDthQUFNQSxZQUNQRyxJQUFJLEVBQUVDLE1BQU07Z0NBRExKO1FBRWpCLElBQUksQ0FBQ0csSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTs7a0JBSEdKOztZQU1uQkssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixJQUFJO1lBQ2xCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO29CQUFVRixTQUFBQSxpRUFBUyxFQUFFO2dCQUNuQkgsS0FBS0csUUFBUSxJQUFJLENBQUNBLE1BQU07Z0JBRXhCLE9BQU8sSUFBSSxDQUFDQSxNQUFNO1lBQ3BCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUFrQixPQUFPLElBQUksQ0FBQ0osSUFBSSxDQUFDSSxhQUFhO1lBQUk7OztZQUVwREMsS0FBQUE7bUJB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
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXBsYWNlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IHJlbW92ZU5vZGUsIGFwcGVuZE5vZGUsIHJlbW92ZVRva2VucywgYXBwZW5kVG9rZW5zLCByZXBsYWNlTm9kZSwgcmVwbGFjZU5vZGVzLCByZXBsYWNlVG9rZW5zLCBhZGROb2Rlc0FmdGVyLCBhZGRUb2tlbnNBZnRlciB9IGZyb20gXCIuL3V0aWxpdGllcy9yZXBsYWNlbWVudFwiO1xuXG5jb25zdCB7IHB1c2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXBsYWNlbWVudCB7XG4gIGNvbnN0cnVjdG9yKG5vZGUsIHRva2Vucykge1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRUb2tlbnModG9rZW5zID0gW10pIHtcbiAgICBwdXNoKHRva2VucywgdGhpcy50b2tlbnMpO1xuXG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgZ2V0Q2hpbGROb2RlcygpIHsgcmV0dXJuIHRoaXMubm9kZS5nZXRDaGlsZE5vZGVzKCk7IH1cblxuICBjb250cmFjdChDbGFzcywgZGVzY2VuZGVudE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChkZXNjZW5kZW50Tm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZXNjZW5kZW50Tm9kZSA9IENsYXNzOyAvLy9cblxuICAgICAgQ2xhc3MgPSBSZXBsYWNlbWVudDsgIC8vL1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSBkZXNjZW5kZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIHRva2VucyA9IHRoaXMudG9rZW5zLCAvLy9cbiAgICAgICAgICBjb250ZXh0ID0geyAvLy9cbiAgICAgICAgICAgIHRva2Vuc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVwbGFjZW1lbnQgPSBDbGFzcy5mcm9tTm9kZShub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHJlcGxhY2VtZW50O1xuICB9XG5cbiAgZXhwYW5kKENsYXNzLCBhc2NlbmRhbnROb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAoYXNjZW5kYW50Tm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBhc2NlbmRhbnROb2RlID0gQ2xhc3M7XG5cbiAgICAgIENsYXNzID0gUmVwbGFjZW1lbnQ7ICAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gYXNjZW5kYW50Tm9kZSwgLy8vXG4gICAgICAgICAgdG9rZW5zID0gdGhpcy50b2tlbnMsIC8vL1xuICAgICAgICAgIGNvbnRleHQgPSB7XG4gICAgICAgICAgICB0b2tlbnNcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcGxhY2VtZW50ID0gQ2xhc3MuZnJvbU5vZGUobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0KTtcblxuICAgIHJldHVybiByZXBsYWNlbWVudDtcbiAgfVxuXG4gIGFwcGVuZFRvKHBhcmVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHRva2VucyB9ID0gY29udGV4dCxcbiAgICAgICAgICBhcHBlbmRlZE5vZGUgPSB0aGlzLm5vZGUsICAvLy9cbiAgICAgICAgICBhcHBlbmRlZFRva2VucyA9IHRoaXMudG9rZW5zOyAgLy8vXG5cbiAgICBhcHBlbmROb2RlKGFwcGVuZGVkTm9kZSwgcGFyZW50Tm9kZSk7XG5cbiAgICBhcHBlbmRUb2tlbnMoYXBwZW5kZWRUb2tlbnMsIHBhcmVudE5vZGUsIHRva2Vucyk7XG4gIH1cblxuICBhZGRBZnRlcihleGlzdGluZ05vZGUsIHBhcmVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHRva2VucyB9ID0gY29udGV4dCxcbiAgICAgICAgICBhZGRlZE5vZGVzID0gdGhpcy5nZXRDaGlsZE5vZGVzKCksIC8vL1xuICAgICAgICAgIGFkZGVkVG9rZW5zID0gdGhpcy50b2tlbnM7ICAvLy9cblxuICAgIGFkZE5vZGVzQWZ0ZXIoZXhpc3RpbmdOb2RlLCBhZGRlZE5vZGVzLCBwYXJlbnROb2RlKTtcblxuICAgIGFkZFRva2Vuc0FmdGVyKGV4aXN0aW5nTm9kZSwgYWRkZWRUb2tlbnMsIHRva2Vucyk7XG4gIH1cblxuICByZXBsYWNlKHJlcGxhY2VkTm9kZSwgcGFyZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBjb250ZXh0LFxuICAgICAgICAgIHJlcGxhY2VtZW50Tm9kZSA9IHRoaXMubm9kZSwgLy8vXG4gICAgICAgICAgcmVwbGFjZW1lbnRUb2tlbnMgPSB0aGlzLnRva2VuczsgLy8vXG5cbiAgICByZXBsYWNlTm9kZShyZXBsYWNlbWVudE5vZGUsIHJlcGxhY2VkTm9kZSwgcGFyZW50Tm9kZSk7XG5cbiAgICByZXBsYWNlVG9rZW5zKHJlcGxhY2VtZW50VG9rZW5zLCByZXBsYWNlZE5vZGUsIHRva2Vucyk7XG4gIH1cblxuICByZXBsYWNlRXgocmVwbGFjZWROb2RlLCBwYXJlbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyB0b2tlbnMgfSA9IGNvbnRleHQsXG4gICAgICAgICAgcmVwbGFjZW1lbnRDaGlsZE5vZGVzID0gdGhpcy5nZXRDaGlsZE5vZGVzKCksIC8vL1xuICAgICAgICAgIHJlcGxhY2VtZW50VG9rZW5zID0gdGhpcy50b2tlbnMsICAvLy9cbiAgICAgICAgICByZXBsYWNlbWVudE5vZGVzID0gcmVwbGFjZW1lbnRDaGlsZE5vZGVzOyAvLy9cblxuICAgIHJlcGxhY2VOb2RlcyhyZXBsYWNlbWVudE5vZGVzLCByZXBsYWNlZE5vZGUsIHBhcmVudE5vZGUpO1xuXG4gICAgcmVwbGFjZVRva2VucyhyZXBsYWNlbWVudFRva2VucywgcmVwbGFjZWROb2RlLCB0b2tlbnMpO1xuICB9XG5cbiAgcmVtb3ZlRnJvbShyZW1vdmVkTm9kZSwgcGFyZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBjb250ZXh0O1xuXG4gICAgcmVtb3ZlVG9rZW5zKHJlbW92ZWROb2RlLCB0b2tlbnMpO1xuXG4gICAgcmVtb3ZlTm9kZShyZW1vdmVkTm9kZSwgcGFyZW50Tm9kZSk7XG4gIH1cblxuICBjbG9uZSguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5ub2RlLmNsb25lKCksXG4gICAgICAgICAgY2xvbmVkVG9rZW5zID0gY2xvbmVkVG9rZW5zRnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdGhpcy50b2tlbnMpO1xuXG4gICAgb3ZlcndyaXRlTm9kZVRva2Vucyhub2RlLCBjbG9uZWRUb2tlbnMsIHRoaXMudG9rZW5zKTtcblxuICAgIGNvbnN0IENsYXNzID0gdGhpcy5jb25zdHJ1Y3RvciwgLy8vXG4gICAgICAgICAgdG9rZW5zID0gY2xvbmVkVG9rZW5zLCAvLy9cbiAgICAgICAgICByZXBsYWNlbWVudCA9IG5ldyBDbGFzcyhub2RlLCB0b2tlbnMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gcmVwbGFjZW1lbnRcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm9kZShDbGFzcywgbm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb250ZXh0ID0gbm9kZTsgLy8vXG5cbiAgICAgIG5vZGUgPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gUmVwbGFjZW1lbnQ7ICAvLy9cbiAgICB9XG5cbiAgICBsZXQgeyB0b2tlbnMgfSA9IGNvbnRleHQ7XG5cbiAgICBjb25zdCBjbG9uZWRUb2tlbnMgPSBjbG9uZWRUb2tlbnNGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0b2tlbnMpLFxuICAgICAgICAgIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpLFxuICAgICAgICAgIG9mZnNldCA9IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4OyAgLy8vXG5cbiAgICBub2RlID0gbm9kZS5jbG9uZSgpOyAgLy8vXG5cbiAgICBvdmVyd3JpdGVOb2RlVG9rZW5zKG5vZGUsIGNsb25lZFRva2VucywgdG9rZW5zLCBvZmZzZXQpO1xuXG4gICAgdG9rZW5zID0gY2xvbmVkVG9rZW5zOyAvLy9cblxuICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gbmV3IENsYXNzKG5vZGUsIHRva2VucywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiByZXBsYWNlbWVudDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm9kZUFuZFRva2VucyhDbGFzcywgbm9kZSwgdG9rZW5zLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAodG9rZW5zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRva2VucyA9IG5vZGU7ICAvLy9cblxuICAgICAgbm9kZSA9IENsYXNzOyAvLy9cblxuICAgICAgQ2xhc3MgPSBSZXBsYWNlbWVudDsgIC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gbmV3IENsYXNzKG5vZGUsIHRva2VucywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiByZXBsYWNlbWVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiBvdmVyd3JpdGVOb2RlVG9rZW5zKG5vZGUsIGNsb25lZFRva2VucywgdG9rZW5zLCBvZmZzZXQgPSAwKSB7XG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICBvdmVyd3JpdGVUZXJtaW5hbE5vZGVUb2tlbnModGVybWluYWxOb2RlLCBjbG9uZWRUb2tlbnMsIHRva2Vucywgb2Zmc2V0KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICBvdmVyd3JpdGVOb25UZXJtaW5hbE5vZGVUb2tlbnMobm9uVGVybWluYWxOb2RlLCBjbG9uZWRUb2tlbnMsIHRva2Vucywgb2Zmc2V0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvdmVyd3JpdGVUZXJtaW5hbE5vZGVUb2tlbnModGVybWluYWxOb2RlLCBjbG9uZWRUb2tlbnMsIHRva2Vucywgb2Zmc2V0KSB7XG4gIGxldCBpbmRleCxcbiAgICAgIHNpZ25pZmljYW50VG9rZW47XG5cbiAgc2lnbmlmaWNhbnRUb2tlbiA9IHRlcm1pbmFsTm9kZS5nZXRTaWduaWZpY2FudFRva2VuKCk7XG5cbiAgaWYgKHNpZ25pZmljYW50VG9rZW4gIT09IG51bGwpIHtcbiAgICBpbmRleCA9IHRva2Vucy5pbmRleE9mKHNpZ25pZmljYW50VG9rZW4pO1xuXG4gICAgaW5kZXggLT0gb2Zmc2V0O1xuXG4gICAgY29uc3QgY2xvbmVkVG9rZW4gPSBjbG9uZWRUb2tlbnNbaW5kZXhdO1xuXG4gICAgc2lnbmlmaWNhbnRUb2tlbiA9IGNsb25lZFRva2VuOyAgLy8vXG5cbiAgICB0ZXJtaW5hbE5vZGUuc2V0U2lnbmlmaWNhbnRUb2tlbihzaWduaWZpY2FudFRva2VuKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvdmVyd3JpdGVOb25UZXJtaW5hbE5vZGVUb2tlbnMobm9uVGVybWluYWxOb2RlLCBjbG9uZWRUb2tlbnMsIHRva2Vucywgb2Zmc2V0KSB7XG4gIGNvbnN0IGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpO1xuXG4gIGNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICBvdmVyd3JpdGVOb2RlVG9rZW5zKG5vZGUsIGNsb25lZFRva2VucywgdG9rZW5zLCBvZmZzZXQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY2xvbmVkVG9rZW5zRnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSB7XG4gIGNvbnN0IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpLFxuICAgICAgICBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgIHN0YXJ0ID0gZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgsICAvLy9cbiAgICAgICAgZW5kID0gbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCArIDE7XG5cbiAgdG9rZW5zID0gdG9rZW5zLnNsaWNlKHN0YXJ0LCBlbmQpOyAgLy8vXG5cbiAgY29uc3QgY2xvbmVkVG9rZW5zID0gdG9rZW5zLm1hcCgodG9rZW4pID0+IHsgIC8vL1xuICAgIGNvbnN0IGNsb25lZFRva2VuID0gdG9rZW4uY2xvbmUoKTtcblxuICAgIHJldHVybiBjbG9uZWRUb2tlbjtcbiAgfSk7XG5cbiAgcmV0dXJuIGNsb25lZFRva2Vucztcbn1cbiJdLCJuYW1lcyI6WyJSZXBsYWNlbWVudCIsInB1c2giLCJhcnJheVV0aWxpdGllcyIsIm5vZGUiLCJ0b2tlbnMiLCJnZXROb2RlIiwiZ2V0VG9rZW5zIiwiZ2V0Q2hpbGROb2RlcyIsImNvbnRyYWN0IiwiQ2xhc3MiLCJkZXNjZW5kZW50Tm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInVuZGVmaW5lZCIsImNvbnRleHQiLCJyZXBsYWNlbWVudCIsImZyb21Ob2RlIiwiZXhwYW5kIiwiYXNjZW5kYW50Tm9kZSIsImFwcGVuZFRvIiwicGFyZW50Tm9kZSIsImFwcGVuZGVkTm9kZSIsImFwcGVuZGVkVG9rZW5zIiwiYXBwZW5kTm9kZSIsImFwcGVuZFRva2VucyIsImFkZEFmdGVyIiwiZXhpc3RpbmdOb2RlIiwiYWRkZWROb2RlcyIsImFkZGVkVG9rZW5zIiwiYWRkTm9kZXNBZnRlciIsImFkZFRva2Vuc0FmdGVyIiwicmVwbGFjZSIsInJlcGxhY2VkTm9kZSIsInJlcGxhY2VtZW50Tm9kZSIsInJlcGxhY2VtZW50VG9rZW5zIiwicmVwbGFjZU5vZGUiLCJyZXBsYWNlVG9rZW5zIiwicmVwbGFjZUV4IiwicmVwbGFjZW1lbnRDaGlsZE5vZGVzIiwicmVwbGFjZW1lbnROb2RlcyIsInJlcGxhY2VOb2RlcyIsInJlbW92ZUZyb20iLCJyZW1vdmVkTm9kZSIsInJlbW92ZVRva2VucyIsInJlbW92ZU5vZGUiLCJjbG9uZSIsImNsb25lZFRva2VucyIsImNsb25lZFRva2Vuc0Zyb21Ob2RlQW5kVG9rZW5zIiwib3ZlcndyaXRlTm9kZVRva2VucyIsImNvbnN0cnVjdG9yIiwicG9wIiwiZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJnZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsIm9mZnNldCIsImZyb21Ob2RlQW5kVG9rZW5zIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwib3ZlcndyaXRlVGVybWluYWxOb2RlVG9rZW5zIiwibm9uVGVybWluYWxOb2RlIiwib3ZlcndyaXRlTm9uVGVybWluYWxOb2RlVG9rZW5zIiwiaW5kZXgiLCJzaWduaWZpY2FudFRva2VuIiwiZ2V0U2lnbmlmaWNhbnRUb2tlbiIsImluZGV4T2YiLCJjbG9uZWRUb2tlbiIsInNldFNpZ25pZmljYW50VG9rZW4iLCJjaGlsZE5vZGVzIiwiZm9yRWFjaCIsImNoaWxkTm9kZSIsImxhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJnZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4Iiwic3RhcnQiLCJlbmQiLCJzbGljZSIsIm1hcCIsInRva2VuIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVFxQkE7Ozt5QkFOVTsyQkFFNkc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVJLElBQU0sQUFBRUMsT0FBU0MseUJBQWMsQ0FBdkJEO0FBRU8sSUFBQSxBQUFNRCw0QkFBRCxBQUFMO2FBQU1BLFlBQ1BHLElBQUksRUFBRUMsTUFBTTtnQ0FETEo7UUFFakIsSUFBSSxDQUFDRyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxNQUFNLEdBQUdBOztrQkFIR0o7O1lBTW5CSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLElBQUk7WUFDbEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7b0JBQVVGLFNBQUFBLGlFQUFTLEVBQUU7Z0JBQ25CSCxLQUFLRyxRQUFRLElBQUksQ0FBQ0EsTUFBTTtnQkFFeEIsT0FBTyxJQUFJLENBQUNBLE1BQU07WUFDcEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQWtCLE9BQU8sSUFBSSxDQUFDSixJQUFJLENBQUNJLGFBQWE7WUFBSTs7O1lBRXBEQyxLQUFBQTttQkFBQUEsU0FBQUEs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
|
package/lib/utilities/content.js
CHANGED
|
@@ -25,12 +25,11 @@ _export(exports, {
|
|
|
25
25
|
var _necessary = require("necessary");
|
|
26
26
|
var _constants = require("../constants");
|
|
27
27
|
var _tokenTypes = require("../tokenTypes");
|
|
28
|
-
var _node = require("../utilities/node");
|
|
29
28
|
var first = _necessary.arrayUtilities.first, last = _necessary.arrayUtilities.last;
|
|
30
29
|
function contentFromNode(node, context) {
|
|
31
30
|
var content = _constants.EMPTY_STRING;
|
|
32
31
|
var tokens = context.tokens;
|
|
33
|
-
var
|
|
32
|
+
var firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens), lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens), start = firstSignificantTokenIndex, end = lastSignificantTokenIndex + 1;
|
|
34
33
|
tokens = tokens.slice(start, end);
|
|
35
34
|
tokens.forEach(function(token) {
|
|
36
35
|
var tokenContent = tokenContentFromToken(token);
|
|
@@ -41,8 +40,8 @@ function contentFromNode(node, context) {
|
|
|
41
40
|
function contentFromNodes(nodes, augmentLeft, augmentRight, context) {
|
|
42
41
|
var content = _constants.EMPTY_STRING;
|
|
43
42
|
var tokens = context.tokens;
|
|
44
|
-
var lastNode = last(nodes), firstNode = first(nodes),
|
|
45
|
-
var firstTokenIndex =
|
|
43
|
+
var lastNode = last(nodes), firstNode = first(nodes), firstSignificantTokenIndex = firstNode.getFirstSignificantTokenIndex(tokens), lastSignificantTokenIndex = lastNode.getLastSignificantTokenIndex(tokens);
|
|
44
|
+
var firstTokenIndex = firstSignificantTokenIndex, lastTokenIndex = lastSignificantTokenIndex; ///
|
|
46
45
|
if (augmentLeft) {
|
|
47
46
|
var previousTokenIndex = firstTokenIndex - 1;
|
|
48
47
|
if (previousTokenIndex > -1) {
|
|
@@ -72,8 +71,10 @@ function contentFromNodes(nodes, augmentLeft, augmentRight, context) {
|
|
|
72
71
|
function contentFromNodeAndTokens(node, tokens) {
|
|
73
72
|
var offset = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
|
|
74
73
|
var content = _constants.EMPTY_STRING;
|
|
75
|
-
var
|
|
76
|
-
|
|
74
|
+
var firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens);
|
|
75
|
+
var lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens);
|
|
76
|
+
firstSignificantTokenIndex += offset;
|
|
77
|
+
for(var index = firstSignificantTokenIndex; index <= lastSignificantTokenIndex; index++){
|
|
77
78
|
var token = tokens[index], tokenContent = token.getContent();
|
|
78
79
|
content += tokenContent;
|
|
79
80
|
}
|
|
@@ -93,4 +94,4 @@ function tokenContentFromToken(token) {
|
|
|
93
94
|
return tokenContent;
|
|
94
95
|
}
|
|
95
96
|
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEVTQ0FQRURfVE9LRU5fVFlQRSB9IGZyb20gXCIuLi90b2tlblR5cGVzXCI7XG5cbmNvbnN0IHsgZmlyc3QsIGxhc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudEZyb21Ob2RlKG5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IGNvbnRlbnQgPSBFTVBUWV9TVFJJTkc7XG5cbiAgbGV0IHsgdG9rZW5zIH0gPSBjb250ZXh0O1xuXG4gIGNvbnN0IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpLFxuICAgICAgICBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgIHN0YXJ0ID0gZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgsICAvLy9cbiAgICAgICAgZW5kID0gbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCArIDE7XG5cbiAgdG9rZW5zID0gdG9rZW5zLnNsaWNlKHN0YXJ0LCBlbmQpO1xuXG4gIHRva2Vucy5mb3JFYWNoKCh0b2tlbikgPT4ge1xuICAgIGNvbnN0IHRva2VuQ29udGVudCA9IHRva2VuQ29udGVudEZyb21Ub2tlbih0b2tlbik7XG5cbiAgICBjb250ZW50ICs9IHRva2VuQ29udGVudDtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50RnJvbU5vZGVzKG5vZGVzLCBhdWdtZW50TGVmdCwgYXVnbWVudFJpZ2h0LCBjb250ZXh0KSB7XG4gIGxldCBjb250ZW50ID0gRU1QVFlfU1RSSU5HO1xuXG4gIGxldCB7IHRva2VucyB9ID0gY29udGV4dDtcblxuICBjb25zdCBsYXN0Tm9kZSA9IGxhc3Qobm9kZXMpLFxuICAgICAgICBmaXJzdE5vZGUgPSBmaXJzdChub2RlcyksXG4gICAgICAgIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gZmlyc3ROb2RlLmdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBsYXN0Tm9kZS5nZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucyk7XG5cbiAgbGV0IGZpcnN0VG9rZW5JbmRleCA9IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4LCAgLy8vXG4gICAgICBsYXN0VG9rZW5JbmRleCA9IGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXg7IC8vL1xuXG4gIGlmIChhdWdtZW50TGVmdCkge1xuICAgIGNvbnN0IHByZXZpb3VzVG9rZW5JbmRleCA9IGZpcnN0VG9rZW5JbmRleCAtIDE7XG5cbiAgICBpZiAocHJldmlvdXNUb2tlbkluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzVG9rZW4gPSB0b2tlbnNbcHJldmlvdXNUb2tlbkluZGV4XSxcbiAgICAgICAgICAgIHByZXZpb3VzVG9rZW5TaWduaWZpY2FudCA9IHByZXZpb3VzVG9rZW4uaXNTaWduaWZpY2FudCgpO1xuXG4gICAgICBpZiAoIXByZXZpb3VzVG9rZW5TaWduaWZpY2FudCkge1xuICAgICAgICBmaXJzdFRva2VuSW5kZXgtLTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoYXVnbWVudFJpZ2h0KSB7XG4gICAgY29uc3QgdG9rZW5zTGVuZ3RoID0gdG9rZW5zLmxlbmd0aCxcbiAgICAgICAgICBuZXh0VG9rZW5JbmRleCA9IGxhc3RUb2tlbkluZGV4ICsgMTtcblxuICAgIGlmIChuZXh0VG9rZW5JbmRleCA8IHRva2Vuc0xlbmd0aCkge1xuICAgICAgY29uc3QgbmV4dFRva2VuID0gdG9rZW5zW25leHRUb2tlbkluZGV4XSxcbiAgICAgICAgICAgIG5leHRUb2tlblNpZ25pZmljYW50ID0gbmV4dFRva2VuLmlzU2lnbmlmaWNhbnQoKSxcbiAgICAgICAgICAgIG5leHRUb2tlbkVuZE9mTGluZVRva2VuID0gbmV4dFRva2VuLmlzRW5kT2ZMaW5lVG9rZW4oKTtcblxuICAgICAgaWYgKG5leHRUb2tlbkVuZE9mTGluZVRva2VuIHx8ICFuZXh0VG9rZW5TaWduaWZpY2FudCkge1xuICAgICAgICBsYXN0VG9rZW5JbmRleCsrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN0YXJ0ID0gZmlyc3RUb2tlbkluZGV4LCAgLy8vXG4gICAgICAgIGVuZCA9IGxhc3RUb2tlbkluZGV4ICsgMTtcblxuICB0b2tlbnMgPSB0b2tlbnMuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgdG9rZW5zLmZvckVhY2goKHRva2VuKSA9PiB7XG4gICAgY29uc3QgdG9rZW5Db250ZW50ID0gdG9rZW5Db250ZW50RnJvbVRva2VuKHRva2VuKTtcblxuICAgIGNvbnRlbnQgKz0gdG9rZW5Db250ZW50O1xuICB9KTtcblxuICByZXR1cm4gY29udGVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRlbnRGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0b2tlbnMsIG9mZnNldCA9IDApIHtcbiAgbGV0IGNvbnRlbnQgPSBFTVBUWV9TVFJJTkc7XG5cbiAgbGV0IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpO1xuXG4gIGNvbnN0IGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBub2RlLmdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKTtcblxuICBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCArPSBvZmZzZXQ7XG5cbiAgZm9yIChsZXQgaW5kZXggPSBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleDsgaW5kZXggPD0gbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleDsgaW5kZXgrKykge1xuICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2luZGV4XSxcbiAgICAgICAgICB0b2tlbkNvbnRlbnQgPSB0b2tlbi5nZXRDb250ZW50KCk7XG5cbiAgICBjb250ZW50ICs9IHRva2VuQ29udGVudDtcbiAgfVxuXG4gIHJldHVybiBjb250ZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtYWluaW5nQ29udGVudEZyb21Ob2RlVG9rZW5zQW5kT2Zmc2V0KG5vZGUsIHRva2Vucywgb2Zmc2V0KSB7XG4gIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zLCBvZmZzZXQpLFxuICAgICAgICByZW1haW5pbmdDb250ZW50ID0gY29udGVudDsgLy8vXG5cbiAgcmV0dXJuIHJlbWFpbmluZ0NvbnRlbnQ7XG59XG5cbmZ1bmN0aW9uIHRva2VuQ29udGVudEZyb21Ub2tlbih0b2tlbikge1xuICBsZXQgdG9rZW5Db250ZW50ID0gdG9rZW4uZ2V0Q29udGVudCgpO1xuXG4gIGNvbnN0IHR5cGUgPSB0b2tlbi5nZXRUeXBlKCk7XG5cbiAgaWYgKHR5cGUgPT09IEVTQ0FQRURfVE9LRU5fVFlQRSkge1xuICAgIGNvbnN0IHN0YXJ0ID0gMTtcblxuICAgIHRva2VuQ29udGVudCA9IHRva2VuQ29udGVudC5zdWJzdHJpbmcoc3RhcnQpO1xuICB9XG5cbiAgcmV0dXJuIHRva2VuQ29udGVudDtcbn1cbiJdLCJuYW1lcyI6WyJjb250ZW50RnJvbU5vZGUiLCJjb250ZW50RnJvbU5vZGVBbmRUb2tlbnMiLCJjb250ZW50RnJvbU5vZGVzIiwicmVtYWluaW5nQ29udGVudEZyb21Ob2RlVG9rZW5zQW5kT2Zmc2V0IiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImxhc3QiLCJub2RlIiwiY29udGV4dCIsImNvbnRlbnQiLCJFTVBUWV9TVFJJTkciLCJ0b2tlbnMiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwibGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJzdGFydCIsImVuZCIsInNsaWNlIiwiZm9yRWFjaCIsInRva2VuIiwidG9rZW5Db250ZW50IiwidG9rZW5Db250ZW50RnJvbVRva2VuIiwibm9kZXMiLCJhdWdtZW50TGVmdCIsImF1Z21lbnRSaWdodCIsImxhc3ROb2RlIiwiZmlyc3ROb2RlIiwiZmlyc3RUb2tlbkluZGV4IiwibGFzdFRva2VuSW5kZXgiLCJwcmV2aW91c1Rva2VuSW5kZXgiLCJwcmV2aW91c1Rva2VuIiwicHJldmlvdXNUb2tlblNpZ25pZmljYW50IiwiaXNTaWduaWZpY2FudCIsInRva2Vuc0xlbmd0aCIsImxlbmd0aCIsIm5leHRUb2tlbkluZGV4IiwibmV4dFRva2VuIiwibmV4dFRva2VuU2lnbmlmaWNhbnQiLCJuZXh0VG9rZW5FbmRPZkxpbmVUb2tlbiIsImlzRW5kT2ZMaW5lVG9rZW4iLCJvZmZzZXQiLCJpbmRleCIsImdldENvbnRlbnQiLCJyZW1haW5pbmdDb250ZW50IiwidHlwZSIsImdldFR5cGUiLCJFU0NBUEVEX1RPS0VOX1RZUEUiLCJzdWJzdHJpbmciXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBU2dCQSxlQUFlO2VBQWZBOztJQTRFQUMsd0JBQXdCO2VBQXhCQTs7SUF2REFDLGdCQUFnQjtlQUFoQkE7O0lBMEVBQyx1Q0FBdUM7ZUFBdkNBOzs7eUJBdEdlO3lCQUVGOzBCQUNNO0FBRW5DLElB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
|
|
@@ -43,7 +43,6 @@ _export(exports, {
|
|
|
43
43
|
return replaceTokens;
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
|
-
var _node = require("../utilities/node");
|
|
47
46
|
function _array_like_to_array(arr, len) {
|
|
48
47
|
if (len == null || len > arr.length) len = arr.length;
|
|
49
48
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
@@ -95,19 +94,19 @@ function addNodesAfter(existingNode, addedNodes, parentNode) {
|
|
|
95
94
|
}
|
|
96
95
|
function appendTokens(appendedTokens, parentNode, tokens) {
|
|
97
96
|
var _tokens;
|
|
98
|
-
var node = parentNode,
|
|
97
|
+
var node = parentNode, lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens), start = lastSignificantTokenIndex + 1, deleteCount = 0;
|
|
99
98
|
(_tokens = tokens).splice.apply(_tokens, [
|
|
100
99
|
start,
|
|
101
100
|
deleteCount
|
|
102
101
|
].concat(_to_consumable_array(appendedTokens)));
|
|
103
102
|
}
|
|
104
103
|
function removeTokens(removedNode, tokens) {
|
|
105
|
-
var node = removedNode,
|
|
104
|
+
var node = removedNode, firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens), lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens), start = firstSignificantTokenIndex, end = lastSignificantTokenIndex + 1, deleteCount = end - start;
|
|
106
105
|
tokens.splice(start, deleteCount);
|
|
107
106
|
}
|
|
108
107
|
function replaceTokens(replacementTokens, replacedNode, tokens) {
|
|
109
108
|
var _tokens;
|
|
110
|
-
var node = replacedNode,
|
|
109
|
+
var node = replacedNode, firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens), lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens), start = firstSignificantTokenIndex, end = lastSignificantTokenIndex + 1, deleteCount = end - start;
|
|
111
110
|
(_tokens = tokens).splice.apply(_tokens, [
|
|
112
111
|
start,
|
|
113
112
|
deleteCount
|
|
@@ -119,11 +118,11 @@ function addNodeAfter(existingNode, addedNode, parentNode) {
|
|
|
119
118
|
}
|
|
120
119
|
function addTokensAfter(existingNode, addedTokens, tokens) {
|
|
121
120
|
var _tokens;
|
|
122
|
-
var node = existingNode,
|
|
121
|
+
var node = existingNode, lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens), start = lastSignificantTokenIndex + 1, deleteCount = 0;
|
|
123
122
|
(_tokens = tokens).splice.apply(_tokens, [
|
|
124
123
|
start,
|
|
125
124
|
deleteCount
|
|
126
125
|
].concat(_to_consumable_array(addedTokens)));
|
|
127
126
|
}
|
|
128
127
|
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVwbGFjZW1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmROb2RlKGFwcGVuZGVkTm9kZSwgcGFyZW50Tm9kZSkge1xuICBjb25zdCBhcHBlbmRlZENoaWxkTm9kZSA9IGFwcGVuZGVkTm9kZTsgIC8vL1xuXG4gIHBhcmVudE5vZGUuYXBwZW5kQ2hpbGROb2RlKGFwcGVuZGVkQ2hpbGROb2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZU5vZGUocmVtb3ZlZE5vZGUsIHBhcmVudE5vZGUpIHtcbiAgY29uc3QgcmVtb3ZlZENoaWxkTm9kZSA9IHJlbW92ZWROb2RlOyAvLy9cblxuICBwYXJlbnROb2RlLnJlbW92ZUNoaWxkTm9kZShyZW1vdmVkQ2hpbGROb2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZU5vZGVzKHJlbW92ZWROb2RlcywgcGFyZW50Tm9kZSkge1xuICBjb25zdCByZW1vdmVkQ2hpbGROb2RlcyA9IHJlbW92ZWROb2RlczsgLy8vXG5cbiAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZE5vZGVzKHJlbW92ZWRDaGlsZE5vZGVzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VOb2RlKHJlcGxhY2VtZW50Tm9kZSwgcmVwbGFjZWROb2RlLCBwYXJlbnROb2RlKSB7XG4gIGNvbnN0IHJlcGxhY2VkQ2hpbGROb2RlID0gcmVwbGFjZWROb2RlLCAgLy8vXG4gICAgICAgIHJlcGxhY2VtZW50Q2hpbGROb2RlID0gcmVwbGFjZW1lbnROb2RlOyAvLy9cblxuICBwYXJlbnROb2RlLnJlcGxhY2VDaGlsZE5vZGUocmVwbGFjZWRDaGlsZE5vZGUsIHJlcGxhY2VtZW50Q2hpbGROb2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VOb2RlcyhyZXBsYWNlbWVudE5vZGVzLCByZXBsYWNlZE5vZGUsIHBhcmVudE5vZGUpIHtcbiAgY29uc3QgcmVwbGFjZWRDaGlsZE5vZGUgPSByZXBsYWNlZE5vZGUsICAvLy9cbiAgICAgICAgcmVwbGFjZW1lbnRDaGlsZE5vZGVzID0gcmVwbGFjZW1lbnROb2RlczsgLy8vXG5cbiAgcGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGROb2RlcyhyZXBsYWNlZENoaWxkTm9kZSwgcmVwbGFjZW1lbnRDaGlsZE5vZGVzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZE5vZGVzQWZ0ZXIoZXhpc3RpbmdOb2RlLCBhZGRlZE5vZGVzLCBwYXJlbnROb2RlKSB7XG4gIGNvbnN0IGV4aXN0aW5nQ2hpbGROb2RlID0gZXhpc3RpbmdOb2RlLCAvLy9cbiAgICAgICAgYWRkZWRDaGlsZE5vZGVzID0gYWRkZWROb2RlczsgLy8vXG5cbiAgcGFyZW50Tm9kZS5hZGRDaGlsZE5vZGVzQWZ0ZXIoZXhpc3RpbmdDaGlsZE5vZGUsIGFkZGVkQ2hpbGROb2Rlcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRUb2tlbnMoYXBwZW5kZWRUb2tlbnMsIHBhcmVudE5vZGUsIHRva2Vucykge1xuICBjb25zdCBub2RlID0gcGFyZW50Tm9kZSwgLy8vXG4gICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBub2RlLmdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSxcbiAgICAgICAgc3RhcnQgPSBsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ICsgMSxcbiAgICAgICAgZGVsZXRlQ291bnQgPSAwO1xuXG4gIHRva2Vucy5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50LCAuLi5hcHBlbmRlZFRva2Vucyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUb2tlbnMocmVtb3ZlZE5vZGUsIHRva2Vucykge1xuICBjb25zdCBub2RlID0gcmVtb3ZlZE5vZGUsICAvLy9cbiAgICAgICAgZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBub2RlLmdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBub2RlLmdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSxcbiAgICAgICAgc3RhcnQgPSBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCwgLy8vXG4gICAgICAgIGVuZCA9IGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggKyAxLFxuICAgICAgICBkZWxldGVDb3VudCA9IGVuZCAtIHN0YXJ0O1xuXG4gIHRva2Vucy5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VUb2tlbnMocmVwbGFjZW1lbnRUb2tlbnMsIHJlcGxhY2VkTm9kZSwgdG9rZW5zKSB7XG4gIGNvbnN0IG5vZGUgPSByZXBsYWNlZE5vZGUsICAvLy9cbiAgICAgICAgZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBub2RlLmdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBub2RlLmdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSxcbiAgICAgICAgc3RhcnQgPSBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCwgLy8vXG4gICAgICAgIGVuZCA9IGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggKyAxLFxuICAgICAgICBkZWxldGVDb3VudCA9IGVuZCAtIHN0YXJ0O1xuXG4gIHRva2Vucy5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50LCAuLi5yZXBsYWNlbWVudFRva2Vucyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGROb2RlQWZ0ZXIoZXhpc3RpbmdOb2RlLCBhZGRlZE5vZGUsIHBhcmVudE5vZGUpIHtcbiAgY29uc3QgZXhpc3RpbmdDaGlsZE5vZGUgPSBleGlzdGluZ05vZGUsIC8vL1xuICAgICAgICBhZGRlZENoaWxkTm9kZSA9IGFkZGVkTm9kZTsgLy8vXG5cbiAgcGFyZW50Tm9kZS5hcHBlbmRDaGlsZE5vZGVBZnRlcihleGlzdGluZ0NoaWxkTm9kZSwgYWRkZWRDaGlsZE5vZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkVG9rZW5zQWZ0ZXIoZXhpc3RpbmdOb2RlLCBhZGRlZFRva2VucywgdG9rZW5zKSB7XG4gIGNvbnN0IG5vZGUgPSBleGlzdGluZ05vZGUsICAvLy9cbiAgICAgICAgbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IG5vZGUuZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpLFxuICAgICAgICBzdGFydCA9IGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggKyAxLFxuICAgICAgICBkZWxldGVDb3VudCA9IDA7XG5cbiAgdG9rZW5zLnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQsIC4uLmFkZGVkVG9rZW5zKTtcbn1cbiJdLCJuYW1lcyI6WyJhZGROb2RlQWZ0ZXIiLCJhZGROb2Rlc0FmdGVyIiwiYWRkVG9rZW5zQWZ0ZXIiLCJhcHBlbmROb2RlIiwiYXBwZW5kVG9rZW5zIiwicmVtb3ZlTm9kZSIsInJlbW92ZU5vZGVzIiwicmVtb3ZlVG9rZW5zIiwicmVwbGFjZU5vZGUiLCJyZXBsYWNlTm9kZXMiLCJyZXBsYWNlVG9rZW5zIiwiYXBwZW5kZWROb2RlIiwicGFyZW50Tm9kZSIsImFwcGVuZGVkQ2hpbGROb2RlIiwiYXBwZW5kQ2hpbGROb2RlIiwicmVtb3ZlZE5vZGUiLCJyZW1vdmVkQ2hpbGROb2RlIiwicmVtb3ZlQ2hpbGROb2RlIiwicmVtb3ZlZE5vZGVzIiwicmVtb3ZlZENoaWxkTm9kZXMiLCJyZW1vdmVDaGlsZE5vZGVzIiwicmVwbGFjZW1lbnROb2RlIiwicmVwbGFjZWROb2RlIiwicmVwbGFjZWRDaGlsZE5vZGUiLCJyZXBsYWNlbWVudENoaWxkTm9kZSIsInJlcGxhY2VDaGlsZE5vZGUiLCJyZXBsYWNlbWVudE5vZGVzIiwicmVwbGFjZW1lbnRDaGlsZE5vZGVzIiwicmVwbGFjZUNoaWxkTm9kZXMiLCJleGlzdGluZ05vZGUiLCJhZGRlZE5vZGVzIiwiZXhpc3RpbmdDaGlsZE5vZGUiLCJhZGRlZENoaWxkTm9kZXMiLCJhZGRDaGlsZE5vZGVzQWZ0ZXIiLCJhcHBlbmRlZFRva2VucyIsInRva2VucyIsIm5vZGUiLCJsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsInN0YXJ0IiwiZGVsZXRlQ291bnQiLCJzcGxpY2UiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZW5kIiwicmVwbGFjZW1lbnRUb2tlbnMiLCJhZGRlZE5vZGUiLCJhZGRlZENoaWxkTm9kZSIsImFwcGVuZENoaWxkTm9kZUFmdGVyIiwiYWRkZWRUb2tlbnMiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXdFZ0JBLFlBQVk7ZUFBWkE7O0lBdENBQyxhQUFhO2VBQWJBOztJQTZDQUMsY0FBYztlQUFkQTs7SUE3RUFDLFVBQVU7ZUFBVkE7O0lBdUNBQyxZQUFZO2VBQVpBOztJQWpDQUMsVUFBVTtlQUFWQTs7SUFNQUMsV0FBVztlQUFYQTs7SUFvQ0FDLFlBQVk7ZUFBWkE7O0lBOUJBQyxXQUFXO2VBQVhBOztJQU9BQyxZQUFZO2VBQVpBOztJQWtDQUMsYUFBYTtlQUFiQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTNEVCxTQUFTUCxXQUFXUSxZQUFZLEVBQUVDLFVBQVU7SUFDakQsSUFBTUMsb0JBQW9CRixjQUFlLEdBQUc7SUFFNUNDLFdBQVdFLGVBQWUsQ0FBQ0Q7QUFDN0I7QUFFTyxTQUFTUixXQUFXVSxXQUFXLEVBQUVILFVBQVU7SUFD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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "highmark-markdown",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.414",
|
|
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,9 +11,9 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"necessary": "^14.0.1",
|
|
14
|
-
"occam-grammars": "^1.0.
|
|
14
|
+
"occam-grammars": "^1.0.651",
|
|
15
15
|
"occam-lexers": "^22.0.44",
|
|
16
|
-
"occam-parsers": "^22.0.
|
|
16
|
+
"occam-parsers": "^22.0.63",
|
|
17
17
|
"occam-query": "^3.1.174"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import MarkdownNode from "../../node/markdown";
|
|
4
4
|
|
|
5
5
|
import { contentFromNode } from "../../utilities/content";
|
|
6
|
-
import { leadingIndexFromNodeAndTokens } from "../../utilities/node";
|
|
7
6
|
|
|
8
7
|
export default class BlockLineMarkdownNode extends MarkdownNode {
|
|
9
8
|
content(context) {
|
|
@@ -14,8 +13,8 @@ export default class BlockLineMarkdownNode extends MarkdownNode {
|
|
|
14
13
|
|
|
15
14
|
content = contentFromNode(node, context);
|
|
16
15
|
|
|
17
|
-
const
|
|
18
|
-
previousTokenIndex =
|
|
16
|
+
const firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens),
|
|
17
|
+
previousTokenIndex = firstSignificantTokenIndex - 1,
|
|
19
18
|
previousToken = tokens[previousTokenIndex],
|
|
20
19
|
previousTokenWhitespaceToken = previousToken.isWhitespaceToken();
|
|
21
20
|
|
package/src/replacement.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
import { leadingIndexFromNodeAndTokens, trailingIndexFromNodeAndTokens } from "./utilities/node";
|
|
6
5
|
import { removeNode, appendNode, removeTokens, appendTokens, replaceNode, replaceNodes, replaceTokens, addNodesAfter, addTokensAfter } from "./utilities/replacement";
|
|
7
6
|
|
|
8
7
|
const { push } = arrayUtilities;
|
|
@@ -135,8 +134,8 @@ export default class Replacement {
|
|
|
135
134
|
let { tokens } = context;
|
|
136
135
|
|
|
137
136
|
const clonedTokens = clonedTokensFromNodeAndTokens(node, tokens),
|
|
138
|
-
|
|
139
|
-
offset =
|
|
137
|
+
firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens),
|
|
138
|
+
offset = firstSignificantTokenIndex; ///
|
|
140
139
|
|
|
141
140
|
node = node.clone(); ///
|
|
142
141
|
|
|
@@ -208,10 +207,10 @@ function overwriteNonTerminalNodeTokens(nonTerminalNode, clonedTokens, tokens, o
|
|
|
208
207
|
}
|
|
209
208
|
|
|
210
209
|
function clonedTokensFromNodeAndTokens(node, tokens) {
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
start =
|
|
214
|
-
end =
|
|
210
|
+
const firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens),
|
|
211
|
+
lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens),
|
|
212
|
+
start = firstSignificantTokenIndex, ///
|
|
213
|
+
end = lastSignificantTokenIndex + 1;
|
|
215
214
|
|
|
216
215
|
tokens = tokens.slice(start, end); ///
|
|
217
216
|
|
package/src/utilities/content.js
CHANGED
|
@@ -4,7 +4,6 @@ import { arrayUtilities } from "necessary";
|
|
|
4
4
|
|
|
5
5
|
import { EMPTY_STRING } from "../constants";
|
|
6
6
|
import { ESCAPED_TOKEN_TYPE } from "../tokenTypes";
|
|
7
|
-
import { leadingIndexFromNodeAndTokens, trailingIndexFromNodeAndTokens } from "../utilities/node";
|
|
8
7
|
|
|
9
8
|
const { first, last } = arrayUtilities;
|
|
10
9
|
|
|
@@ -13,10 +12,10 @@ export function contentFromNode(node, context) {
|
|
|
13
12
|
|
|
14
13
|
let { tokens } = context;
|
|
15
14
|
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
start =
|
|
19
|
-
end =
|
|
15
|
+
const firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens),
|
|
16
|
+
lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens),
|
|
17
|
+
start = firstSignificantTokenIndex, ///
|
|
18
|
+
end = lastSignificantTokenIndex + 1;
|
|
20
19
|
|
|
21
20
|
tokens = tokens.slice(start, end);
|
|
22
21
|
|
|
@@ -36,11 +35,11 @@ export function contentFromNodes(nodes, augmentLeft, augmentRight, context) {
|
|
|
36
35
|
|
|
37
36
|
const lastNode = last(nodes),
|
|
38
37
|
firstNode = first(nodes),
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
firstSignificantTokenIndex = firstNode.getFirstSignificantTokenIndex(tokens),
|
|
39
|
+
lastSignificantTokenIndex = lastNode.getLastSignificantTokenIndex(tokens);
|
|
41
40
|
|
|
42
|
-
let firstTokenIndex =
|
|
43
|
-
lastTokenIndex =
|
|
41
|
+
let firstTokenIndex = firstSignificantTokenIndex, ///
|
|
42
|
+
lastTokenIndex = lastSignificantTokenIndex; ///
|
|
44
43
|
|
|
45
44
|
if (augmentLeft) {
|
|
46
45
|
const previousTokenIndex = firstTokenIndex - 1;
|
|
@@ -87,10 +86,13 @@ export function contentFromNodes(nodes, augmentLeft, augmentRight, context) {
|
|
|
87
86
|
export function contentFromNodeAndTokens(node, tokens, offset = 0) {
|
|
88
87
|
let content = EMPTY_STRING;
|
|
89
88
|
|
|
90
|
-
|
|
91
|
-
trailingIndex = trailingIndexFromNodeAndTokens(node, tokens);
|
|
89
|
+
let firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens);
|
|
92
90
|
|
|
93
|
-
|
|
91
|
+
const lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens);
|
|
92
|
+
|
|
93
|
+
firstSignificantTokenIndex += offset;
|
|
94
|
+
|
|
95
|
+
for (let index = firstSignificantTokenIndex; index <= lastSignificantTokenIndex; index++) {
|
|
94
96
|
const token = tokens[index],
|
|
95
97
|
tokenContent = token.getContent();
|
|
96
98
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { leadingIndexFromNodeAndTokens, trailingIndexFromNodeAndTokens } from "../utilities/node";
|
|
4
|
-
|
|
5
3
|
export function appendNode(appendedNode, parentNode) {
|
|
6
4
|
const appendedChildNode = appendedNode; ///
|
|
7
5
|
|
|
@@ -43,8 +41,8 @@ export function addNodesAfter(existingNode, addedNodes, parentNode) {
|
|
|
43
41
|
|
|
44
42
|
export function appendTokens(appendedTokens, parentNode, tokens) {
|
|
45
43
|
const node = parentNode, ///
|
|
46
|
-
|
|
47
|
-
start =
|
|
44
|
+
lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens),
|
|
45
|
+
start = lastSignificantTokenIndex + 1,
|
|
48
46
|
deleteCount = 0;
|
|
49
47
|
|
|
50
48
|
tokens.splice(start, deleteCount, ...appendedTokens);
|
|
@@ -52,10 +50,10 @@ export function appendTokens(appendedTokens, parentNode, tokens) {
|
|
|
52
50
|
|
|
53
51
|
export function removeTokens(removedNode, tokens) {
|
|
54
52
|
const node = removedNode, ///
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
start =
|
|
58
|
-
end =
|
|
53
|
+
firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens),
|
|
54
|
+
lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens),
|
|
55
|
+
start = firstSignificantTokenIndex, ///
|
|
56
|
+
end = lastSignificantTokenIndex + 1,
|
|
59
57
|
deleteCount = end - start;
|
|
60
58
|
|
|
61
59
|
tokens.splice(start, deleteCount);
|
|
@@ -63,10 +61,10 @@ export function removeTokens(removedNode, tokens) {
|
|
|
63
61
|
|
|
64
62
|
export function replaceTokens(replacementTokens, replacedNode, tokens) {
|
|
65
63
|
const node = replacedNode, ///
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
start =
|
|
69
|
-
end =
|
|
64
|
+
firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens),
|
|
65
|
+
lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens),
|
|
66
|
+
start = firstSignificantTokenIndex, ///
|
|
67
|
+
end = lastSignificantTokenIndex + 1,
|
|
70
68
|
deleteCount = end - start;
|
|
71
69
|
|
|
72
70
|
tokens.splice(start, deleteCount, ...replacementTokens);
|
|
@@ -81,8 +79,8 @@ export function addNodeAfter(existingNode, addedNode, parentNode) {
|
|
|
81
79
|
|
|
82
80
|
export function addTokensAfter(existingNode, addedTokens, tokens) {
|
|
83
81
|
const node = existingNode, ///
|
|
84
|
-
|
|
85
|
-
start =
|
|
82
|
+
lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens),
|
|
83
|
+
start = lastSignificantTokenIndex + 1,
|
|
86
84
|
deleteCount = 0;
|
|
87
85
|
|
|
88
86
|
tokens.splice(start, deleteCount, ...addedTokens);
|
package/lib/utilities/node.js
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
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
|
-
leadingIndexFromNodeAndTokens: function() {
|
|
16
|
-
return leadingIndexFromNodeAndTokens;
|
|
17
|
-
},
|
|
18
|
-
trailingIndexFromNodeAndTokens: function() {
|
|
19
|
-
return trailingIndexFromNodeAndTokens;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
var _necessary = require("necessary");
|
|
23
|
-
var forwardsSome = _necessary.arrayUtilities.forwardsSome, backwardsSome = _necessary.arrayUtilities.backwardsSome;
|
|
24
|
-
function leadingIndexFromNodeAndTokens(node, tokens) {
|
|
25
|
-
var leadingIndex;
|
|
26
|
-
var nodeTerminalNode = node.isTerminalNode();
|
|
27
|
-
if (nodeTerminalNode) {
|
|
28
|
-
var terminalNode = node; ///
|
|
29
|
-
leadingIndex = leadingIndexFromTerminalNodeAndTokens(terminalNode, tokens);
|
|
30
|
-
} else {
|
|
31
|
-
var nonTerminalNode = node; ///
|
|
32
|
-
leadingIndex = leadingIndexFromNonTerminalNodeAndTokens(nonTerminalNode, tokens);
|
|
33
|
-
}
|
|
34
|
-
return leadingIndex;
|
|
35
|
-
}
|
|
36
|
-
function trailingIndexFromNodeAndTokens(node, tokens) {
|
|
37
|
-
var trailingIndex;
|
|
38
|
-
var nodeTerminalNode = node.isTerminalNode();
|
|
39
|
-
if (nodeTerminalNode) {
|
|
40
|
-
var terminalNode = node; ///
|
|
41
|
-
trailingIndex = trailingIndexFromTerminalNodeAndTokens(terminalNode, tokens);
|
|
42
|
-
} else {
|
|
43
|
-
var nonTerminalNode = node; ///
|
|
44
|
-
trailingIndex = trailingIndexFromNonTerminalNodeAndTokens(nonTerminalNode, tokens);
|
|
45
|
-
}
|
|
46
|
-
return trailingIndex;
|
|
47
|
-
}
|
|
48
|
-
var _default = {
|
|
49
|
-
leadingIndexFromNodeAndTokens: leadingIndexFromNodeAndTokens,
|
|
50
|
-
trailingIndexFromNodeAndTokens: trailingIndexFromNodeAndTokens
|
|
51
|
-
};
|
|
52
|
-
function leadingIndexFromTerminalNodeAndTokens(terminalNode, tokens) {
|
|
53
|
-
var leadingIndex;
|
|
54
|
-
var significantToken = terminalNode.getSignificantToken();
|
|
55
|
-
if (significantToken === null) {
|
|
56
|
-
leadingIndex = -1;
|
|
57
|
-
} else {
|
|
58
|
-
var significantTokenIndex = tokens.indexOf(significantToken);
|
|
59
|
-
leadingIndex = significantTokenIndex; ///
|
|
60
|
-
}
|
|
61
|
-
return leadingIndex;
|
|
62
|
-
}
|
|
63
|
-
function trailingIndexFromTerminalNodeAndTokens(terminalNode, tokens) {
|
|
64
|
-
var trailingIndex;
|
|
65
|
-
var significantToken = terminalNode.getSignificantToken();
|
|
66
|
-
if (significantToken === null) {
|
|
67
|
-
trailingIndex = -1;
|
|
68
|
-
} else {
|
|
69
|
-
var significantTokenIndex = tokens.indexOf(significantToken);
|
|
70
|
-
trailingIndex = significantTokenIndex; ///
|
|
71
|
-
}
|
|
72
|
-
return trailingIndex;
|
|
73
|
-
}
|
|
74
|
-
function leadingIndexFromNonTerminalNodeAndTokens(nonTerminalNode, tokens) {
|
|
75
|
-
var leadingIndex;
|
|
76
|
-
var childNodes = nonTerminalNode.getChildNodes();
|
|
77
|
-
forwardsSome(childNodes, function(childNode) {
|
|
78
|
-
var node = childNode;
|
|
79
|
-
leadingIndex = leadingIndexFromNodeAndTokens(node, tokens);
|
|
80
|
-
if (leadingIndex !== -1) {
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
return leadingIndex;
|
|
85
|
-
}
|
|
86
|
-
function trailingIndexFromNonTerminalNodeAndTokens(nonTerminalNode, tokens) {
|
|
87
|
-
var trailingIndex;
|
|
88
|
-
var childNodes = nonTerminalNode.getChildNodes();
|
|
89
|
-
backwardsSome(childNodes, function(childNode) {
|
|
90
|
-
var node = childNode;
|
|
91
|
-
trailingIndex = trailingIndexFromNodeAndTokens(node, tokens);
|
|
92
|
-
if (trailingIndex !== -1) {
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
return trailingIndex;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgZm9yd2FyZHNTb21lLCBiYWNrd2FyZHNTb21lIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIGxlYWRpbmdJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2Vucykge1xuICBsZXQgbGVhZGluZ0luZGV4O1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICBsZWFkaW5nSW5kZXggPSBsZWFkaW5nSW5kZXhGcm9tVGVybWluYWxOb2RlQW5kVG9rZW5zKHRlcm1pbmFsTm9kZSwgdG9rZW5zKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICBsZWFkaW5nSW5kZXggPSBsZWFkaW5nSW5kZXhGcm9tTm9uVGVybWluYWxOb2RlQW5kVG9rZW5zKG5vblRlcm1pbmFsTm9kZSwgdG9rZW5zKTtcbiAgfVxuXG4gIHJldHVybiBsZWFkaW5nSW5kZXg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFpbGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKSB7XG4gIGxldCB0cmFpbGluZ0luZGV4O1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICB0cmFpbGluZ0luZGV4ID0gdHJhaWxpbmdJbmRleEZyb21UZXJtaW5hbE5vZGVBbmRUb2tlbnModGVybWluYWxOb2RlLCB0b2tlbnMpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHRyYWlsaW5nSW5kZXggPSB0cmFpbGluZ0luZGV4RnJvbU5vblRlcm1pbmFsTm9kZUFuZFRva2Vucyhub25UZXJtaW5hbE5vZGUsIHRva2Vucyk7XG4gIH1cblxuICByZXR1cm4gdHJhaWxpbmdJbmRleDtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBsZWFkaW5nSW5kZXhGcm9tTm9kZUFuZFRva2VucyxcbiAgdHJhaWxpbmdJbmRleEZyb21Ob2RlQW5kVG9rZW5zXG59O1xuXG5mdW5jdGlvbiBsZWFkaW5nSW5kZXhGcm9tVGVybWluYWxOb2RlQW5kVG9rZW5zKHRlcm1pbmFsTm9kZSwgdG9rZW5zKSB7XG4gIGxldCBsZWFkaW5nSW5kZXg7XG5cbiAgY29uc3Qgc2lnbmlmaWNhbnRUb2tlbiA9IHRlcm1pbmFsTm9kZS5nZXRTaWduaWZpY2FudFRva2VuKCk7XG5cbiAgaWYgKHNpZ25pZmljYW50VG9rZW4gPT09IG51bGwpIHtcbiAgICBsZWFkaW5nSW5kZXggPSAtMTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0b2tlbnMuaW5kZXhPZihzaWduaWZpY2FudFRva2VuKTtcblxuICAgIGxlYWRpbmdJbmRleCA9IHNpZ25pZmljYW50VG9rZW5JbmRleDsgLy8vXG4gIH1cblxuICByZXR1cm4gbGVhZGluZ0luZGV4O1xufVxuXG5mdW5jdGlvbiB0cmFpbGluZ0luZGV4RnJvbVRlcm1pbmFsTm9kZUFuZFRva2Vucyh0ZXJtaW5hbE5vZGUsIHRva2Vucykge1xuICBsZXQgdHJhaWxpbmdJbmRleDtcblxuICBjb25zdCBzaWduaWZpY2FudFRva2VuID0gdGVybWluYWxOb2RlLmdldFNpZ25pZmljYW50VG9rZW4oKTtcblxuICBpZiAoc2lnbmlmaWNhbnRUb2tlbiA9PT0gbnVsbCkge1xuICAgIHRyYWlsaW5nSW5kZXggPSAtMTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0b2tlbnMuaW5kZXhPZihzaWduaWZpY2FudFRva2VuKTtcblxuICAgIHRyYWlsaW5nSW5kZXggPSBzaWduaWZpY2FudFRva2VuSW5kZXg7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHRyYWlsaW5nSW5kZXg7XG59XG5cbmZ1bmN0aW9uIGxlYWRpbmdJbmRleEZyb21Ob25UZXJtaW5hbE5vZGVBbmRUb2tlbnMobm9uVGVybWluYWxOb2RlLCB0b2tlbnMpIHtcbiAgbGV0IGxlYWRpbmdJbmRleDtcblxuICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKTtcblxuICBmb3J3YXJkc1NvbWUoY2hpbGROb2RlcywgKGNoaWxkTm9kZSkgPT4ge1xuICAgIGNvbnN0IG5vZGUgPSBjaGlsZE5vZGU7XG5cbiAgICBsZWFkaW5nSW5kZXggPSBsZWFkaW5nSW5kZXhGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0b2tlbnMpO1xuXG4gICAgaWYgKGxlYWRpbmdJbmRleCAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGxlYWRpbmdJbmRleDtcbn1cblxuZnVuY3Rpb24gdHJhaWxpbmdJbmRleEZyb21Ob25UZXJtaW5hbE5vZGVBbmRUb2tlbnMobm9uVGVybWluYWxOb2RlLCB0b2tlbnMpIHtcbiAgbGV0IHRyYWlsaW5nSW5kZXg7XG5cbiAgY29uc3QgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCk7XG5cbiAgYmFja3dhcmRzU29tZShjaGlsZE5vZGVzLCAoY2hpbGROb2RlKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IGNoaWxkTm9kZTtcblxuICAgIHRyYWlsaW5nSW5kZXggPSB0cmFpbGluZ0luZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdG9rZW5zKTtcblxuICAgIGlmICh0cmFpbGluZ0luZGV4ICE9PSAtMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdHJhaWxpbmdJbmRleDtcbn1cbiJdLCJuYW1lcyI6WyJsZWFkaW5nSW5kZXhGcm9tTm9kZUFuZFRva2VucyIsInRyYWlsaW5nSW5kZXhGcm9tTm9kZUFuZFRva2VucyIsImZvcndhcmRzU29tZSIsImFycmF5VXRpbGl0aWVzIiwiYmFja3dhcmRzU29tZSIsIm5vZGUiLCJ0b2tlbnMiLCJsZWFkaW5nSW5kZXgiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJsZWFkaW5nSW5kZXhGcm9tVGVybWluYWxOb2RlQW5kVG9rZW5zIiwibm9uVGVybWluYWxOb2RlIiwibGVhZGluZ0luZGV4RnJvbU5vblRlcm1pbmFsTm9kZUFuZFRva2VucyIsInRyYWlsaW5nSW5kZXgiLCJ0cmFpbGluZ0luZGV4RnJvbVRlcm1pbmFsTm9kZUFuZFRva2VucyIsInRyYWlsaW5nSW5kZXhGcm9tTm9uVGVybWluYWxOb2RlQW5kVG9rZW5zIiwic2lnbmlmaWNhbnRUb2tlbiIsImdldFNpZ25pZmljYW50VG9rZW4iLCJzaWduaWZpY2FudFRva2VuSW5kZXgiLCJpbmRleE9mIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjaGlsZE5vZGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUEwQ0EsT0FHRTtlQUhGOztJQXBDZ0JBLDZCQUE2QjtlQUE3QkE7O0lBa0JBQyw4QkFBOEI7ZUFBOUJBOzs7eUJBdEJlO0FBRS9CLElBQVFDLGVBQWdDQyx5QkFBYyxDQUE5Q0QsY0FBY0UsZ0JBQWtCRCx5QkFBYyxDQUFoQ0M7QUFFZixTQUFTSiw4QkFBOEJLLElBQUksRUFBRUMsTUFBTTtJQUN4RCxJQUFJQztJQUVKLElBQU1DLG1CQUFtQkgsS0FBS0ksY0FBYztJQUU1QyxJQUFJRCxrQkFBa0I7UUFDcEIsSUFBTUUsZUFBZUwsTUFBTyxHQUFHO1FBRS9CRSxlQUFlSSxzQ0FBc0NELGNBQWNKO0lBQ3JFLE9BQU87UUFDTCxJQUFNTSxrQkFBa0JQLE1BQU8sR0FBRztRQUVsQ0UsZUFBZU0seUNBQXlDRCxpQkFBaUJOO0lBQzNFO0lBRUEsT0FBT0M7QUFDVDtBQUVPLFNBQVNOLCtCQUErQkksSUFBSSxFQUFFQyxNQUFNO0lBQ3pELElBQUlRO0lBRUosSUFBTU4sbUJBQW1CSCxLQUFLSSxjQUFjO0lBRTVDLElBQUlELGtCQUFrQjtRQUNwQixJQUFNRSxlQUFlTCxNQUFPLEdBQUc7UUFFL0JTLGdCQUFnQkMsdUNBQXVDTCxjQUFjSjtJQUN2RSxPQUFPO1FBQ0wsSUFBTU0sa0JBQWtCUCxNQUFPLEdBQUc7UUFFbENTLGdCQUFnQkUsMENBQTBDSixpQkFBaUJOO0lBQzdFO0lBRUEsT0FBT1E7QUFDVDtJQUVBLFdBQWU7SUFDYmQsK0JBQUFBO0lBQ0FDLGdDQUFBQTtBQUNGO0FBRUEsU0FBU1Usc0NBQXNDRCxZQUFZLEVBQUVKLE1BQU07SUFDakUsSUFBSUM7SUFFSixJQUFNVSxtQkFBbUJQLGFBQWFRLG1CQUFtQjtJQUV6RCxJQUFJRCxxQkFBcUIsTUFBTTtRQUM3QlYsZUFBZSxDQUFDO0lBQ2xCLE9BQU87UUFDTCxJQUFNWSx3QkFBd0JiLE9BQU9jLE9BQU8sQ0FBQ0g7UUFFN0NWLGVBQWVZLHVCQUF1QixHQUFHO0lBQzNDO0lBRUEsT0FBT1o7QUFDVDtBQUVBLFNBQVNRLHVDQUF1Q0wsWUFBWSxFQUFFSixNQUFNO0lBQ2xFLElBQUlRO0lBRUosSUFBTUcsbUJBQW1CUCxhQUFhUSxtQkFBbUI7SUFFekQsSUFBSUQscUJBQXFCLE1BQU07UUFDN0JILGdCQUFnQixDQUFDO0lBQ25CLE9BQU87UUFDTCxJQUFNSyx3QkFBd0JiLE9BQU9jLE9BQU8sQ0FBQ0g7UUFFN0NILGdCQUFnQkssdUJBQXVCLEdBQUc7SUFDNUM7SUFFQSxPQUFPTDtBQUNUO0FBRUEsU0FBU0QseUNBQXlDRCxlQUFlLEVBQUVOLE1BQU07SUFDdkUsSUFBSUM7SUFFSixJQUFNYyxhQUFhVCxnQkFBZ0JVLGFBQWE7SUFFaERwQixhQUFhbUIsWUFBWSxTQUFDRTtRQUN4QixJQUFNbEIsT0FBT2tCO1FBRWJoQixlQUFlUCw4QkFBOEJLLE1BQU1DO1FBRW5ELElBQUlDLGlCQUFpQixDQUFDLEdBQUc7WUFDdkIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPQTtBQUNUO0FBRUEsU0FBU1MsMENBQTBDSixlQUFlLEVBQUVOLE1BQU07SUFDeEUsSUFBSVE7SUFFSixJQUFNTyxhQUFhVCxnQkFBZ0JVLGFBQWE7SUFFaERsQixjQUFjaUIsWUFBWSxTQUFDRTtRQUN6QixJQUFNbEIsT0FBT2tCO1FBRWJULGdCQUFnQmIsK0JBQStCSSxNQUFNQztRQUVyRCxJQUFJUSxrQkFBa0IsQ0FBQyxHQUFHO1lBQ3hCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0E7QUFDVCJ9
|
package/src/utilities/node.js
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { arrayUtilities } from "necessary";
|
|
4
|
-
|
|
5
|
-
const { forwardsSome, backwardsSome } = arrayUtilities;
|
|
6
|
-
|
|
7
|
-
export function leadingIndexFromNodeAndTokens(node, tokens) {
|
|
8
|
-
let leadingIndex;
|
|
9
|
-
|
|
10
|
-
const nodeTerminalNode = node.isTerminalNode();
|
|
11
|
-
|
|
12
|
-
if (nodeTerminalNode) {
|
|
13
|
-
const terminalNode = node; ///
|
|
14
|
-
|
|
15
|
-
leadingIndex = leadingIndexFromTerminalNodeAndTokens(terminalNode, tokens);
|
|
16
|
-
} else {
|
|
17
|
-
const nonTerminalNode = node; ///
|
|
18
|
-
|
|
19
|
-
leadingIndex = leadingIndexFromNonTerminalNodeAndTokens(nonTerminalNode, tokens);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return leadingIndex;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export function trailingIndexFromNodeAndTokens(node, tokens) {
|
|
26
|
-
let trailingIndex;
|
|
27
|
-
|
|
28
|
-
const nodeTerminalNode = node.isTerminalNode();
|
|
29
|
-
|
|
30
|
-
if (nodeTerminalNode) {
|
|
31
|
-
const terminalNode = node; ///
|
|
32
|
-
|
|
33
|
-
trailingIndex = trailingIndexFromTerminalNodeAndTokens(terminalNode, tokens);
|
|
34
|
-
} else {
|
|
35
|
-
const nonTerminalNode = node; ///
|
|
36
|
-
|
|
37
|
-
trailingIndex = trailingIndexFromNonTerminalNodeAndTokens(nonTerminalNode, tokens);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return trailingIndex;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export default {
|
|
44
|
-
leadingIndexFromNodeAndTokens,
|
|
45
|
-
trailingIndexFromNodeAndTokens
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
function leadingIndexFromTerminalNodeAndTokens(terminalNode, tokens) {
|
|
49
|
-
let leadingIndex;
|
|
50
|
-
|
|
51
|
-
const significantToken = terminalNode.getSignificantToken();
|
|
52
|
-
|
|
53
|
-
if (significantToken === null) {
|
|
54
|
-
leadingIndex = -1;
|
|
55
|
-
} else {
|
|
56
|
-
const significantTokenIndex = tokens.indexOf(significantToken);
|
|
57
|
-
|
|
58
|
-
leadingIndex = significantTokenIndex; ///
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return leadingIndex;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function trailingIndexFromTerminalNodeAndTokens(terminalNode, tokens) {
|
|
65
|
-
let trailingIndex;
|
|
66
|
-
|
|
67
|
-
const significantToken = terminalNode.getSignificantToken();
|
|
68
|
-
|
|
69
|
-
if (significantToken === null) {
|
|
70
|
-
trailingIndex = -1;
|
|
71
|
-
} else {
|
|
72
|
-
const significantTokenIndex = tokens.indexOf(significantToken);
|
|
73
|
-
|
|
74
|
-
trailingIndex = significantTokenIndex; ///
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return trailingIndex;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function leadingIndexFromNonTerminalNodeAndTokens(nonTerminalNode, tokens) {
|
|
81
|
-
let leadingIndex;
|
|
82
|
-
|
|
83
|
-
const childNodes = nonTerminalNode.getChildNodes();
|
|
84
|
-
|
|
85
|
-
forwardsSome(childNodes, (childNode) => {
|
|
86
|
-
const node = childNode;
|
|
87
|
-
|
|
88
|
-
leadingIndex = leadingIndexFromNodeAndTokens(node, tokens);
|
|
89
|
-
|
|
90
|
-
if (leadingIndex !== -1) {
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
return leadingIndex;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function trailingIndexFromNonTerminalNodeAndTokens(nonTerminalNode, tokens) {
|
|
99
|
-
let trailingIndex;
|
|
100
|
-
|
|
101
|
-
const childNodes = nonTerminalNode.getChildNodes();
|
|
102
|
-
|
|
103
|
-
backwardsSome(childNodes, (childNode) => {
|
|
104
|
-
const node = childNode;
|
|
105
|
-
|
|
106
|
-
trailingIndex = trailingIndexFromNodeAndTokens(node, tokens);
|
|
107
|
-
|
|
108
|
-
if (trailingIndex !== -1) {
|
|
109
|
-
return true;
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
return trailingIndex;
|
|
114
|
-
}
|