highmark-markdown 0.0.153 → 0.0.155
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/example.js +2212 -1446
- package/lib/example/view.js +19 -15
- package/lib/index.js +4 -8
- package/lib/markdown/bnf.js +2 -2
- package/lib/markdown/parser.js +5 -5
- package/lib/node/markdown/anchor.js +7 -1
- package/lib/node/markdown/contents.js +149 -0
- package/lib/node/markdown/contentsItem.js +141 -0
- package/lib/node/markdown/contentsList.js +135 -0
- package/lib/node/markdown/division.js +80 -62
- package/lib/node/markdown/heading/primary.js +134 -0
- package/lib/node/markdown/{quaternaryHeading.js → heading/quaternary.js} +20 -6
- package/lib/node/markdown/{secondaryHeading.js → heading/secondary.js} +20 -6
- package/lib/node/markdown/{tertiaryHeading.js → heading/tertiary.js} +20 -6
- package/lib/node/markdown/{header.js → heading.js} +15 -15
- package/lib/node/markdown/import.js +16 -9
- package/lib/node/markdown/line.js +4 -4
- package/lib/node/markdown/markedText.js +5 -3
- package/lib/node/markdown.js +35 -14
- package/lib/nodeMap.js +7 -7
- package/lib/ruleNameToHTMLMap.js +10 -4
- package/lib/ruleNames.js +16 -6
- package/lib/utilities/childNodes.js +48 -46
- package/lib/utilities/footnotes.js +71 -0
- package/lib/utilities/nodes.js +21 -0
- package/lib/utilities/query.js +30 -3
- package/lib/utilities/string.js +2 -2
- package/lib/utilities/tokens.js +45 -0
- package/lib/utilities/tree.js +172 -0
- package/package.json +6 -6
- package/src/example/view.js +35 -21
- package/src/index.js +1 -2
- package/src/markdown/bnf.js +6 -4
- package/src/markdown/parser.js +1 -1
- package/src/node/markdown/anchor.js +4 -0
- package/src/node/markdown/contents.js +40 -0
- package/src/node/markdown/contentsItem.js +49 -0
- package/src/node/markdown/contentsList.js +35 -0
- package/src/node/markdown/division.js +94 -39
- package/src/node/markdown/heading/primary.js +9 -0
- package/src/node/markdown/heading/quaternary.js +9 -0
- package/src/node/markdown/heading/secondary.js +9 -0
- package/src/node/markdown/heading/tertiary.js +9 -0
- package/src/node/markdown/heading.js +13 -0
- package/src/node/markdown/import.js +22 -7
- package/src/node/markdown/line.js +6 -4
- package/src/node/markdown/markedText.js +4 -4
- package/src/node/markdown.js +48 -18
- package/src/nodeMap.js +7 -7
- package/src/ruleNameToHTMLMap.js +15 -5
- package/src/ruleNames.js +6 -2
- package/src/utilities/childNodes.js +57 -49
- package/src/utilities/{link.js → footnotes.js} +8 -0
- package/src/utilities/{node.js → nodes.js} +0 -4
- package/src/utilities/query.js +32 -1
- package/src/utilities/string.js +1 -2
- package/src/utilities/tokens.js +14 -0
- package/src/utilities/tree.js +139 -0
- package/lib/node/markdown/primaryHeading.js +0 -167
- package/lib/utilities/link.js +0 -63
- package/lib/utilities/node.js +0 -32
- package/src/node/markdown/header.js +0 -14
- package/src/node/markdown/primaryHeading.js +0 -38
- package/src/node/markdown/quaternaryHeading.js +0 -7
- package/src/node/markdown/secondaryHeading.js +0 -7
- package/src/node/markdown/tertiaryHeading.js +0 -7
|
@@ -9,124 +9,132 @@ import { contentFromMarkdownNodes } from "./content";
|
|
|
9
9
|
|
|
10
10
|
const { clear } = arrayUtilities;
|
|
11
11
|
|
|
12
|
-
export function
|
|
13
|
-
|
|
12
|
+
export function htmlFromChildNodes(childNodes, context, trimmed) {
|
|
13
|
+
let html;
|
|
14
|
+
|
|
15
|
+
const htmls = [],
|
|
14
16
|
plainTextMarkdownNodes = [];
|
|
15
17
|
|
|
16
18
|
childNodes.forEach((childNode) => {
|
|
17
19
|
const childNodeNonTerminalNode = childNode.isNonTerminalNode();
|
|
18
20
|
|
|
19
21
|
if (childNodeNonTerminalNode) {
|
|
20
|
-
const
|
|
22
|
+
const nonTerminalNode = childNode, ///
|
|
23
|
+
markdownNode = nonTerminalNode, ///
|
|
24
|
+
markdownNodePlainTextMarkdownNode = (markdownNode instanceof PlainTextMarkdownNode);
|
|
21
25
|
|
|
22
|
-
if (
|
|
23
|
-
const plainTextMarkdownNode =
|
|
26
|
+
if (markdownNodePlainTextMarkdownNode) {
|
|
27
|
+
const plainTextMarkdownNode = markdownNode; ///
|
|
24
28
|
|
|
25
29
|
plainTextMarkdownNodes.push(plainTextMarkdownNode);
|
|
26
30
|
} else {
|
|
27
|
-
|
|
31
|
+
html = htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed)
|
|
28
32
|
|
|
29
|
-
if (
|
|
30
|
-
|
|
33
|
+
if (html !== null) {
|
|
34
|
+
htmls.push(html);
|
|
31
35
|
|
|
32
|
-
|
|
36
|
+
trimmed = false;
|
|
33
37
|
}
|
|
34
38
|
|
|
35
|
-
const
|
|
39
|
+
const indent = null;
|
|
36
40
|
|
|
37
|
-
|
|
38
|
-
|
|
41
|
+
html = markdownNode.asHTML(indent, context);
|
|
42
|
+
|
|
43
|
+
if (html !== null) {
|
|
44
|
+
htmls.push(html);
|
|
39
45
|
}
|
|
40
46
|
}
|
|
41
47
|
}
|
|
42
48
|
});
|
|
43
49
|
|
|
44
|
-
|
|
50
|
+
html = htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed)
|
|
45
51
|
|
|
46
|
-
if (
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
domElements.push(domElement);
|
|
52
|
+
if (html !== null) {
|
|
53
|
+
htmls.push(html);
|
|
50
54
|
}
|
|
51
55
|
|
|
52
|
-
|
|
53
|
-
}
|
|
56
|
+
html = htmls.join(EMPTY_STRING);
|
|
54
57
|
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
return html;
|
|
59
|
+
}
|
|
57
60
|
|
|
58
|
-
|
|
61
|
+
export function domElementsFromChildNodes(childNodes, context, trimmed) {
|
|
62
|
+
const domElements = [],
|
|
59
63
|
plainTextMarkdownNodes = [];
|
|
60
64
|
|
|
61
65
|
childNodes.forEach((childNode) => {
|
|
62
66
|
const childNodeNonTerminalNode = childNode.isNonTerminalNode();
|
|
63
67
|
|
|
64
68
|
if (childNodeNonTerminalNode) {
|
|
65
|
-
const
|
|
69
|
+
const nonTerminalNode = childNode, ///
|
|
70
|
+
markdownNode = nonTerminalNode, ///
|
|
71
|
+
markdownNodePlainTextMarkdownNode = (markdownNode instanceof PlainTextMarkdownNode);
|
|
66
72
|
|
|
67
|
-
if (
|
|
68
|
-
const plainTextMarkdownNode =
|
|
73
|
+
if (markdownNodePlainTextMarkdownNode) {
|
|
74
|
+
const plainTextMarkdownNode = markdownNode; ///
|
|
69
75
|
|
|
70
76
|
plainTextMarkdownNodes.push(plainTextMarkdownNode);
|
|
71
77
|
} else {
|
|
72
|
-
|
|
78
|
+
const textDOMElement = textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed)
|
|
73
79
|
|
|
74
|
-
if (
|
|
75
|
-
|
|
76
|
-
}
|
|
80
|
+
if (textDOMElement !== null) {
|
|
81
|
+
const domElement = textDOMElement; ///
|
|
77
82
|
|
|
78
|
-
|
|
83
|
+
domElements.push(domElement);
|
|
79
84
|
|
|
80
|
-
|
|
85
|
+
trimmed = false;
|
|
86
|
+
}
|
|
81
87
|
|
|
82
|
-
|
|
83
|
-
|
|
88
|
+
const domElement = markdownNode.createDOMElement(context);
|
|
89
|
+
|
|
90
|
+
if (domElement !== null) {
|
|
91
|
+
domElements.push(domElement);
|
|
84
92
|
}
|
|
85
93
|
}
|
|
86
94
|
}
|
|
87
95
|
});
|
|
88
96
|
|
|
89
|
-
|
|
97
|
+
const textDOMElement = textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed)
|
|
90
98
|
|
|
91
|
-
if (
|
|
92
|
-
|
|
93
|
-
}
|
|
99
|
+
if (textDOMElement !== null) {
|
|
100
|
+
const domElement = textDOMElement; ///
|
|
94
101
|
|
|
95
|
-
|
|
102
|
+
domElements.push(domElement);
|
|
103
|
+
}
|
|
96
104
|
|
|
97
|
-
return
|
|
105
|
+
return domElements;
|
|
98
106
|
}
|
|
99
107
|
|
|
100
|
-
function
|
|
101
|
-
let
|
|
108
|
+
function htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed) {
|
|
109
|
+
let html = null;
|
|
102
110
|
|
|
103
111
|
const plainTextMarkdownNodesLength = plainTextMarkdownNodes.length;
|
|
104
112
|
|
|
105
113
|
if (plainTextMarkdownNodesLength > 0) {
|
|
106
114
|
const markdownNodes = plainTextMarkdownNodes, ///
|
|
107
|
-
content = contentFromMarkdownNodes(markdownNodes, context);
|
|
115
|
+
content = contentFromMarkdownNodes(markdownNodes, context, trimmed);
|
|
108
116
|
|
|
109
|
-
|
|
117
|
+
html = content; ///
|
|
110
118
|
|
|
111
119
|
clear(plainTextMarkdownNodes);
|
|
112
120
|
}
|
|
113
121
|
|
|
114
|
-
return
|
|
122
|
+
return html;
|
|
115
123
|
}
|
|
116
124
|
|
|
117
|
-
function
|
|
118
|
-
let
|
|
125
|
+
function textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed) {
|
|
126
|
+
let textDOMElement = null;
|
|
119
127
|
|
|
120
128
|
const plainTextMarkdownNodesLength = plainTextMarkdownNodes.length;
|
|
121
129
|
|
|
122
130
|
if (plainTextMarkdownNodesLength > 0) {
|
|
123
131
|
const markdownNodes = plainTextMarkdownNodes, ///
|
|
124
|
-
content = contentFromMarkdownNodes(markdownNodes, context);
|
|
132
|
+
content = contentFromMarkdownNodes(markdownNodes, context, trimmed);
|
|
125
133
|
|
|
126
|
-
|
|
134
|
+
textDOMElement = document.createTextNode(content);
|
|
127
135
|
|
|
128
136
|
clear(plainTextMarkdownNodes);
|
|
129
137
|
}
|
|
130
138
|
|
|
131
|
-
return
|
|
139
|
+
return textDOMElement;
|
|
132
140
|
}
|
|
@@ -8,6 +8,14 @@ import { linkMarkdownNodesFromNode } from "../utilities/query";
|
|
|
8
8
|
|
|
9
9
|
const { strlen, indexOf } = stringUtilities;
|
|
10
10
|
|
|
11
|
+
export function appendFootnotesListMarkdownNodeHTML(childNodesHTML, footnotesListMarkdownNode, indent, context) {
|
|
12
|
+
const footnotesListMarkdownNodeHTML = footnotesListMarkdownNode.asHTML(indent, context);
|
|
13
|
+
|
|
14
|
+
childNodesHTML = `${childNodesHTML}${footnotesListMarkdownNodeHTML}`;
|
|
15
|
+
|
|
16
|
+
return childNodesHTML;
|
|
17
|
+
}
|
|
18
|
+
|
|
11
19
|
export function renumberLinkMarkdownNodesHTML(childNodesHTML, divisionMarkdownNode, footnotesListMarkdownNode, context) {
|
|
12
20
|
let number = 1;
|
|
13
21
|
|
package/src/utilities/query.js
CHANGED
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
import { Query } from "occam-query";
|
|
4
4
|
import { arrayUtilities } from "necessary";
|
|
5
5
|
|
|
6
|
-
const { push } = arrayUtilities;
|
|
6
|
+
const { first, push } = arrayUtilities;
|
|
7
7
|
|
|
8
8
|
const linkMarkdownNodesQuery = Query.fromExpression(`//link`),
|
|
9
|
+
contentMarkdownNodeQuery = Query.fromExpression(`//contents`),
|
|
10
|
+
headingMarkdownNodesQuery = Query.fromExpression(`//primaryHeading|secondaryHeading|tertiaryHeading|quaternaryHeading`),
|
|
9
11
|
footnoteMarkdownNodesQuery = Query.fromExpression(`//footnote`),
|
|
10
12
|
referenceMarkdownNodesQuery = Query.fromExpression(`//reference`);
|
|
11
13
|
|
|
@@ -15,6 +17,18 @@ export function linkMarkdownNodesFromNode(node, linkMarkdownNodes = []) {
|
|
|
15
17
|
return linkMarkdownNodes;
|
|
16
18
|
}
|
|
17
19
|
|
|
20
|
+
export function contentsMarkdownNodeFromNode(node) {
|
|
21
|
+
const contentsMarkdownNode = nodeFromNodeAndQuery(node, contentMarkdownNodeQuery);
|
|
22
|
+
|
|
23
|
+
return contentsMarkdownNode;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function headingMarkdownNodesFromNode(node, headingMarkdownNodes = []) {
|
|
27
|
+
nodesFromNodeAndQuery(node, headingMarkdownNodesQuery, headingMarkdownNodes);
|
|
28
|
+
|
|
29
|
+
return headingMarkdownNodes;
|
|
30
|
+
}
|
|
31
|
+
|
|
18
32
|
export function footnoteMarkdownNodesFromNode(node, footnoteMarkdownNodes = []) {
|
|
19
33
|
nodesFromNodeAndQuery(node, footnoteMarkdownNodesQuery, footnoteMarkdownNodes);
|
|
20
34
|
|
|
@@ -29,10 +43,27 @@ export function referenceMarkdownNodesFromNode(node, referenceMarkdownNodes = []
|
|
|
29
43
|
|
|
30
44
|
export default {
|
|
31
45
|
linkMarkdownNodesFromNode,
|
|
46
|
+
contentsMarkdownNodeFromNode,
|
|
47
|
+
headingMarkdownNodesFromNode,
|
|
32
48
|
footnoteMarkdownNodesFromNode,
|
|
33
49
|
referenceMarkdownNodesFromNode
|
|
34
50
|
};
|
|
35
51
|
|
|
52
|
+
function nodeFromNodeAndQuery(node, query) {
|
|
53
|
+
const queryNodes = query.execute(node),
|
|
54
|
+
queryNodesLength = queryNodes.length;
|
|
55
|
+
|
|
56
|
+
if (queryNodesLength === 0) {
|
|
57
|
+
node = null;
|
|
58
|
+
} else {
|
|
59
|
+
const firstQueryNode = first(queryNodes);
|
|
60
|
+
|
|
61
|
+
node = firstQueryNode; ///
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return node;
|
|
65
|
+
}
|
|
66
|
+
|
|
36
67
|
function nodesFromNodeAndQuery(node, query, nodes) {
|
|
37
68
|
const queryNodes = query.execute(node);
|
|
38
69
|
|
package/src/utilities/string.js
CHANGED
|
@@ -7,7 +7,7 @@ import { EMPTY_STRING } from "../constants";
|
|
|
7
7
|
const { substring } = stringUtilities;
|
|
8
8
|
|
|
9
9
|
export function trim(string) {
|
|
10
|
-
const shavenString = string.replace(
|
|
10
|
+
const shavenString = string.replace(/^["`'\s]+|["`'\s]+$/g, EMPTY_STRING);
|
|
11
11
|
|
|
12
12
|
return shavenString;
|
|
13
13
|
}
|
|
@@ -53,4 +53,3 @@ export function splice(string, start, deleteCount, middleString) {
|
|
|
53
53
|
|
|
54
54
|
return string;
|
|
55
55
|
}
|
|
56
|
-
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export function replaceTokens(replacedChildNode, replacementTokens, context) {
|
|
4
|
+
const { tokens } = context,
|
|
5
|
+
nonTerminalNode = replacedChildNode, ///
|
|
6
|
+
lastSignificantToken = nonTerminalNode.getLastSignificantToken(),
|
|
7
|
+
firstSignificantToken = nonTerminalNode.getFirstSignificantToken(),
|
|
8
|
+
lastSignificantTokenIndex = tokens.indexOf(lastSignificantToken),
|
|
9
|
+
firstSignificantTokenIndex = tokens.indexOf(firstSignificantToken),
|
|
10
|
+
start = firstSignificantTokenIndex, ///
|
|
11
|
+
deleteCount = lastSignificantTokenIndex - firstSignificantTokenIndex; ///
|
|
12
|
+
|
|
13
|
+
tokens.splice(start, deleteCount, ...replacementTokens);
|
|
14
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { arrayUtilities } from "necessary";
|
|
4
|
+
|
|
5
|
+
const { first, last } = arrayUtilities;
|
|
6
|
+
|
|
7
|
+
export function nestNodes(nodes) {
|
|
8
|
+
const nestedNodesStack = NestedNodeStack.fromNothing();
|
|
9
|
+
|
|
10
|
+
nodes.forEach((node) => {
|
|
11
|
+
const level = node.getLevel();
|
|
12
|
+
|
|
13
|
+
let nestedNodesStackLevel = nestedNodesStack.getLevel()
|
|
14
|
+
|
|
15
|
+
while (nestedNodesStackLevel < level) {
|
|
16
|
+
nestedNodesStackLevel = nestedNodesStack.increment();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
while (nestedNodesStackLevel > level) {
|
|
20
|
+
nestedNodesStackLevel = nestedNodesStack.decrement();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const nestedNode = NestedNode.fromNode(node);
|
|
24
|
+
|
|
25
|
+
nestedNodesStack.addNestedNode(nestedNode);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
const nestedNode = nestedNodesStack.getNestedNode();
|
|
29
|
+
|
|
30
|
+
return nestedNode;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
class NestedNode {
|
|
34
|
+
constructor(node, childNestedNodes) {
|
|
35
|
+
this.node = node;
|
|
36
|
+
this.childNestedNodes = childNestedNodes;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
getNode() {
|
|
40
|
+
return this.node;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
getChildNestedNodes() {
|
|
44
|
+
return this.childNestedNodes;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
addNestedNode(nestedNode) {
|
|
48
|
+
const childNestedNode = nestedNode; ///
|
|
49
|
+
|
|
50
|
+
this.childNestedNodes.push(childNestedNode);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
static fromNode(node) {
|
|
54
|
+
const childNestedNodes = [],
|
|
55
|
+
nestedNode = new NestedNode(node, childNestedNodes);
|
|
56
|
+
|
|
57
|
+
return nestedNode;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
static fromNothing() {
|
|
61
|
+
const node = null,
|
|
62
|
+
childNestedNodes = [],
|
|
63
|
+
nestedNode = new NestedNode(node, childNestedNodes);
|
|
64
|
+
|
|
65
|
+
return nestedNode;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
class NestedNodeStack {
|
|
70
|
+
constructor(nestedNodes) {
|
|
71
|
+
this.nestedNodes = nestedNodes;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
getNestedNodes() {
|
|
75
|
+
return this.nestedNodes;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
getLastNestedNode() {
|
|
79
|
+
const lastNestedNode = last(this.nestedNodes);
|
|
80
|
+
|
|
81
|
+
return lastNestedNode;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
getNestedNode() {
|
|
85
|
+
const firstNestedNode = first(this.nestedNodes),
|
|
86
|
+
nestedNode = firstNestedNode; ///
|
|
87
|
+
|
|
88
|
+
return nestedNode;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
getLevel() {
|
|
92
|
+
const nestedNodesLength = this.nestedNodes.length,
|
|
93
|
+
level = nestedNodesLength; ///
|
|
94
|
+
|
|
95
|
+
return level;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
increment() {
|
|
99
|
+
const nestedNode = NestedNode.fromNothing();
|
|
100
|
+
|
|
101
|
+
this.addNestedNode(nestedNode);
|
|
102
|
+
|
|
103
|
+
const level = this.getLevel();
|
|
104
|
+
|
|
105
|
+
return level;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
decrement() {
|
|
109
|
+
this.removeNestedNode();
|
|
110
|
+
|
|
111
|
+
const level = this.getLevel();
|
|
112
|
+
|
|
113
|
+
return level;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
addNestedNode(nestedNode) {
|
|
117
|
+
const lastNestedNode = this.getLastNestedNode();
|
|
118
|
+
|
|
119
|
+
lastNestedNode.addNestedNode(nestedNode);
|
|
120
|
+
|
|
121
|
+
this.nestedNodes.push(nestedNode);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
removeNestedNode() {
|
|
125
|
+
const nestedNode = this.nestedNodes.pop();
|
|
126
|
+
|
|
127
|
+
return nestedNode;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
static fromNothing() {
|
|
131
|
+
const nestedNode = NestedNode.fromNothing(),
|
|
132
|
+
nestedNodes = [
|
|
133
|
+
nestedNode
|
|
134
|
+
],
|
|
135
|
+
nestedNodesStack = new NestedNodeStack(nestedNodes);
|
|
136
|
+
|
|
137
|
+
return nestedNodesStack;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return PrimaryHeadingMarkdownNode;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _necessary = require("necessary");
|
|
12
|
-
var _markdown = /*#__PURE__*/ _interop_require_default(require("../../node/markdown"));
|
|
13
|
-
function _assert_this_initialized(self) {
|
|
14
|
-
if (self === void 0) {
|
|
15
|
-
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
16
|
-
}
|
|
17
|
-
return self;
|
|
18
|
-
}
|
|
19
|
-
function _class_call_check(instance, Constructor) {
|
|
20
|
-
if (!(instance instanceof Constructor)) {
|
|
21
|
-
throw new TypeError("Cannot call a class as a function");
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
function _defineProperties(target, props) {
|
|
25
|
-
for(var i = 0; i < props.length; i++){
|
|
26
|
-
var descriptor = props[i];
|
|
27
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
28
|
-
descriptor.configurable = true;
|
|
29
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
30
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
34
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
35
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
36
|
-
return Constructor;
|
|
37
|
-
}
|
|
38
|
-
function _get(target, property, receiver) {
|
|
39
|
-
if (typeof Reflect !== "undefined" && Reflect.get) {
|
|
40
|
-
_get = Reflect.get;
|
|
41
|
-
} else {
|
|
42
|
-
_get = function get(target, property, receiver) {
|
|
43
|
-
var base = _super_prop_base(target, property);
|
|
44
|
-
if (!base) return;
|
|
45
|
-
var desc = Object.getOwnPropertyDescriptor(base, property);
|
|
46
|
-
if (desc.get) {
|
|
47
|
-
return desc.get.call(receiver || target);
|
|
48
|
-
}
|
|
49
|
-
return desc.value;
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return _get(target, property, receiver || target);
|
|
53
|
-
}
|
|
54
|
-
function _get_prototype_of(o) {
|
|
55
|
-
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
56
|
-
return o.__proto__ || Object.getPrototypeOf(o);
|
|
57
|
-
};
|
|
58
|
-
return _get_prototype_of(o);
|
|
59
|
-
}
|
|
60
|
-
function _inherits(subClass, superClass) {
|
|
61
|
-
if (typeof superClass !== "function" && superClass !== null) {
|
|
62
|
-
throw new TypeError("Super expression must either be null or a function");
|
|
63
|
-
}
|
|
64
|
-
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
65
|
-
constructor: {
|
|
66
|
-
value: subClass,
|
|
67
|
-
writable: true,
|
|
68
|
-
configurable: true
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
if (superClass) _set_prototype_of(subClass, superClass);
|
|
72
|
-
}
|
|
73
|
-
function _interop_require_default(obj) {
|
|
74
|
-
return obj && obj.__esModule ? obj : {
|
|
75
|
-
default: obj
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
function _possible_constructor_return(self, call) {
|
|
79
|
-
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
80
|
-
return call;
|
|
81
|
-
}
|
|
82
|
-
return _assert_this_initialized(self);
|
|
83
|
-
}
|
|
84
|
-
function _set_prototype_of(o, p) {
|
|
85
|
-
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
86
|
-
o.__proto__ = p;
|
|
87
|
-
return o;
|
|
88
|
-
};
|
|
89
|
-
return _set_prototype_of(o, p);
|
|
90
|
-
}
|
|
91
|
-
function _super_prop_base(object, property) {
|
|
92
|
-
while(!Object.prototype.hasOwnProperty.call(object, property)){
|
|
93
|
-
object = _get_prototype_of(object);
|
|
94
|
-
if (object === null) break;
|
|
95
|
-
}
|
|
96
|
-
return object;
|
|
97
|
-
}
|
|
98
|
-
function _type_of(obj) {
|
|
99
|
-
"@swc/helpers - typeof";
|
|
100
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
101
|
-
}
|
|
102
|
-
function _is_native_reflect_construct() {
|
|
103
|
-
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
104
|
-
if (Reflect.construct.sham) return false;
|
|
105
|
-
if (typeof Proxy === "function") return true;
|
|
106
|
-
try {
|
|
107
|
-
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
108
|
-
return true;
|
|
109
|
-
} catch (e) {
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
function _create_super(Derived) {
|
|
114
|
-
var hasNativeReflectConstruct = _is_native_reflect_construct();
|
|
115
|
-
return function _createSuperInternal() {
|
|
116
|
-
var Super = _get_prototype_of(Derived), result;
|
|
117
|
-
if (hasNativeReflectConstruct) {
|
|
118
|
-
var NewTarget = _get_prototype_of(this).constructor;
|
|
119
|
-
result = Reflect.construct(Super, arguments, NewTarget);
|
|
120
|
-
} else {
|
|
121
|
-
result = Super.apply(this, arguments);
|
|
122
|
-
}
|
|
123
|
-
return _possible_constructor_return(this, result);
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
var second = _necessary.arrayUtilities.second;
|
|
127
|
-
var PrimaryHeadingMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
|
|
128
|
-
_inherits(PrimaryHeadingMarkdownNode, MarkdownNode);
|
|
129
|
-
var _super = _create_super(PrimaryHeadingMarkdownNode);
|
|
130
|
-
function PrimaryHeadingMarkdownNode() {
|
|
131
|
-
_class_call_check(this, PrimaryHeadingMarkdownNode);
|
|
132
|
-
return _super.apply(this, arguments);
|
|
133
|
-
}
|
|
134
|
-
_create_class(PrimaryHeadingMarkdownNode, [
|
|
135
|
-
{
|
|
136
|
-
key: "asHTML",
|
|
137
|
-
value: function asHTML(indent, context) {
|
|
138
|
-
var title = context.title;
|
|
139
|
-
if (title === null) {
|
|
140
|
-
title = this.title(context);
|
|
141
|
-
Object.assign(context, {
|
|
142
|
-
title: title
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
var html = _get(_get_prototype_of(PrimaryHeadingMarkdownNode.prototype), "asHTML", this).call(this, indent, context);
|
|
146
|
-
return html;
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
key: "title",
|
|
151
|
-
value: function title(context) {
|
|
152
|
-
var indent = null, childNodes = this.getChildNodes(), secondChildNode = second(childNodes), lineMarkdownNode = secondChildNode, lineMarkdownNodeChildNodesHTML = lineMarkdownNode.childNodesAsHTML(indent, context), title = lineMarkdownNodeChildNodesHTML;
|
|
153
|
-
return title;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
], [
|
|
157
|
-
{
|
|
158
|
-
key: "fromRuleNameChildNodesAndOpacity",
|
|
159
|
-
value: function fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) {
|
|
160
|
-
return _markdown.default.fromRuleNameChildNodesAndOpacity(PrimaryHeadingMarkdownNode, ruleName, childNodes, opacity);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
]);
|
|
164
|
-
return PrimaryHeadingMarkdownNode;
|
|
165
|
-
}(_markdown.default);
|
|
166
|
-
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL3ByaW1hcnlIZWFkaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuXG5jb25zdCB7IHNlY29uZCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFByaW1hcnlIZWFkaW5nTWFya2Rvd25Ob2RlIGV4dGVuZHMgTWFya2Rvd25Ob2RlIHtcbiAgYXNIVE1MKGluZGVudCwgY29udGV4dCkge1xuICAgIGxldCB7IHRpdGxlIH0gPSBjb250ZXh0O1xuXG4gICAgaWYgKHRpdGxlID09PSBudWxsKSB7XG4gICAgICB0aXRsZSA9IHRoaXMudGl0bGUoY29udGV4dCk7XG5cbiAgICAgIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuICAgICAgICB0aXRsZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgaHRtbCA9IHN1cGVyLmFzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICB0aXRsZShjb250ZXh0KSB7XG4gICAgY29uc3QgaW5kZW50ID0gbnVsbCxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gdGhpcy5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgc2Vjb25kQ2hpbGROb2RlID0gc2Vjb25kKGNoaWxkTm9kZXMpLFxuICAgICAgICAgIGxpbmVNYXJrZG93bk5vZGUgPSBzZWNvbmRDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgIGxpbmVNYXJrZG93bk5vZGVDaGlsZE5vZGVzSFRNTCA9IGxpbmVNYXJrZG93bk5vZGUuY2hpbGROb2Rlc0FzSFRNTChpbmRlbnQsIGNvbnRleHQpLFxuICAgICAgICAgIHRpdGxlID0gbGluZU1hcmtkb3duTm9kZUNoaWxkTm9kZXNIVE1MO1xuXG4gICAgcmV0dXJuIHRpdGxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KSB7IHJldHVybiBNYXJrZG93bk5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkoUHJpbWFyeUhlYWRpbmdNYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KTsgfVxufVxuIl0sIm5hbWVzIjpbIlByaW1hcnlIZWFkaW5nTWFya2Rvd25Ob2RlIiwic2Vjb25kIiwiYXJyYXlVdGlsaXRpZXMiLCJhc0hUTUwiLCJpbmRlbnQiLCJjb250ZXh0IiwidGl0bGUiLCJPYmplY3QiLCJhc3NpZ24iLCJodG1sIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzZWNvbmRDaGlsZE5vZGUiLCJsaW5lTWFya2Rvd25Ob2RlIiwibGluZU1hcmtkb3duTm9kZUNoaWxkTm9kZXNIVE1MIiwiY2hpbGROb2Rlc0FzSFRNTCIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5IiwicnVsZU5hbWUiLCJvcGFjaXR5IiwiTWFya2Rvd25Ob2RlIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVFxQkE7Ozt5QkFOVTsrREFFTjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpCLElBQU0sQUFBRUMsU0FBV0MseUJBQWMsQ0FBekJEO0FBRU8sSUFBQSxBQUFNRCwyQ0FBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztrQkFBQUE7O1lBQ25CRyxLQUFBQTttQkFBQUEsU0FBQUEsT0FBT0MsTUFBTSxFQUFFQyxPQUFPO2dCQUNwQixJQUFJLEFBQUVDLFFBQVVELFFBQVZDO2dCQUVOLElBQUlBLFVBQVUsTUFBTTtvQkFDbEJBLFFBQVEsSUFBSSxDQUFDQSxLQUFLLENBQUNEO29CQUVuQkUsT0FBT0MsTUFBTSxDQUFDSCxTQUFTO3dCQUNyQkMsT0FBQUE7b0JBQ0Y7Z0JBQ0Y7Z0JBRUEsSUFBTUcsT0FBTyx1QkFaSVQsdUNBWUVHLFVBQU4sSUFBSyxhQUFRQyxRQUFRQztnQkFFbEMsT0FBT0k7WUFDVDs7O1lBRUFILEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNRCxPQUFPO2dCQUNYLElBQU1ELFNBQVMsTUFDVE0sYUFBYSxJQUFJLENBQUNDLGFBQWEsSUFDL0JDLGtCQUFrQlgsT0FBT1MsYUFDekJHLG1CQUFtQkQsaUJBQ25CRSxpQ0FBaUNELGlCQUFpQkUsZ0JBQWdCLENBQUNYLFFBQVFDLFVBQzNFQyxRQUFRUTtnQkFFZCxPQUFPUjtZQUNUOzs7O1lBRU9VLEtBQUFBO21CQUFQLFNBQU9BLGlDQUFpQ0MsUUFBUSxFQUFFUCxVQUFVLEVBQUVRLE9BQU87Z0JBQUksT0FBT0MsaUJBQVksQ0FBQ0gsZ0NBQWdDLENBNUIxR2hCLDRCQTRCdUlpQixVQUFVUCxZQUFZUTtZQUFVOzs7V0E1QnZLbEI7RUFBbUNtQixpQkFBWSJ9
|
package/lib/utilities/link.js
DELETED
|
@@ -1,63 +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
|
-
renumberLinkMarkdownNodes: function() {
|
|
16
|
-
return renumberLinkMarkdownNodes;
|
|
17
|
-
},
|
|
18
|
-
renumberLinkMarkdownNodesHTML: function() {
|
|
19
|
-
return renumberLinkMarkdownNodesHTML;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
var _necessary = require("necessary");
|
|
23
|
-
var _constants = require("../constants");
|
|
24
|
-
var _string = require("../utilities/string");
|
|
25
|
-
var _query = require("../utilities/query");
|
|
26
|
-
var strlen = _necessary.stringUtilities.strlen, indexOf = _necessary.stringUtilities.indexOf;
|
|
27
|
-
function renumberLinkMarkdownNodesHTML(childNodesHTML, divisionMarkdownNode, footnotesListMarkdownNode, context) {
|
|
28
|
-
var number = 1;
|
|
29
|
-
var identifiers = footnotesListMarkdownNode.identifiers(), linkMarkdownNodes = (0, _query.linkMarkdownNodesFromNode)(divisionMarkdownNode);
|
|
30
|
-
linkMarkdownNodes.forEach(function(linkMarkdownNode) {
|
|
31
|
-
var indent = null, identifier = linkMarkdownNode.identifier(context), identifiersIncludesIdentifier = identifiers.includes(identifier), linkMarkdownNodeHTML = linkMarkdownNode.asHTML(indent, context), index = indexOf(childNodesHTML, linkMarkdownNodeHTML), length = strlen(linkMarkdownNodeHTML), start = index, deleteCount = length; ///
|
|
32
|
-
if (identifiersIncludesIdentifier) {
|
|
33
|
-
var linkMarkdownNodeHTML1 = linkMarkdownNode.asHTML(indent, context, number);
|
|
34
|
-
childNodesHTML = (0, _string.splice)(childNodesHTML, start, deleteCount, linkMarkdownNodeHTML1);
|
|
35
|
-
number++;
|
|
36
|
-
} else {
|
|
37
|
-
childNodesHTML = (0, _string.chop)(childNodesHTML, start, deleteCount);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
return childNodesHTML;
|
|
41
|
-
}
|
|
42
|
-
function renumberLinkMarkdownNodes(divisionMarkdownNode, footnotesListMarkdownNode, context) {
|
|
43
|
-
var number = 1;
|
|
44
|
-
var identifiers = footnotesListMarkdownNode.identifiers(), linkMarkdownNodes = (0, _query.linkMarkdownNodesFromNode)(divisionMarkdownNode);
|
|
45
|
-
linkMarkdownNodes.forEach(function(linkMarkdownNode) {
|
|
46
|
-
var identifier = linkMarkdownNode.identifier(context), linkMarkdownNodeDOMElement = linkMarkdownNode.getDOMElement(), identifiersIncludesIdentifier = identifiers.includes(identifier);
|
|
47
|
-
var innerHTML;
|
|
48
|
-
if (identifiersIncludesIdentifier) {
|
|
49
|
-
innerHTML = "".concat(number);
|
|
50
|
-
number++;
|
|
51
|
-
} else {
|
|
52
|
-
innerHTML = _constants.EMPTY_STRING;
|
|
53
|
-
}
|
|
54
|
-
Object.assign(linkMarkdownNodeDOMElement, {
|
|
55
|
-
innerHTML: innerHTML
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
var _default = {
|
|
60
|
-
renumberLinkMarkdownNodes: renumberLinkMarkdownNodes
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbGluay5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3RyaW5nVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBjaG9wLCBzcGxpY2UgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbGlua01hcmtkb3duTm9kZXNGcm9tTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgeyBzdHJsZW4sIGluZGV4T2YgfSA9IHN0cmluZ1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbnVtYmVyTGlua01hcmtkb3duTm9kZXNIVE1MKGNoaWxkTm9kZXNIVE1MLCBkaXZpc2lvbk1hcmtkb3duTm9kZSwgZm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZSwgY29udGV4dCkge1xuICBsZXQgbnVtYmVyID0gMTtcblxuICBjb25zdCBpZGVudGlmaWVycyA9IGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUuaWRlbnRpZmllcnMoKSxcbiAgICAgICAgbGlua01hcmtkb3duTm9kZXMgPSBsaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKGRpdmlzaW9uTWFya2Rvd25Ob2RlKTtcblxuICBsaW5rTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChsaW5rTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgY29uc3QgaW5kZW50ID0gbnVsbCxcbiAgICAgICAgICBpZGVudGlmaWVyID0gbGlua01hcmtkb3duTm9kZS5pZGVudGlmaWVyKGNvbnRleHQpLFxuICAgICAgICAgIGlkZW50aWZpZXJzSW5jbHVkZXNJZGVudGlmaWVyID0gaWRlbnRpZmllcnMuaW5jbHVkZXMoaWRlbnRpZmllciksXG4gICAgICAgICAgbGlua01hcmtkb3duTm9kZUhUTUwgPSBsaW5rTWFya2Rvd25Ob2RlLmFzSFRNTChpbmRlbnQsIGNvbnRleHQpLFxuICAgICAgICAgIGluZGV4ID0gaW5kZXhPZihjaGlsZE5vZGVzSFRNTCwgbGlua01hcmtkb3duTm9kZUhUTUwpLFxuICAgICAgICAgIGxlbmd0aCA9IHN0cmxlbihsaW5rTWFya2Rvd25Ob2RlSFRNTCksXG4gICAgICAgICAgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgIGRlbGV0ZUNvdW50ID0gbGVuZ3RoOyAvLy9cblxuICAgIGlmIChpZGVudGlmaWVyc0luY2x1ZGVzSWRlbnRpZmllcikge1xuICAgICAgY29uc3QgbGlua01hcmtkb3duTm9kZUhUTUwgPSBsaW5rTWFya2Rvd25Ob2RlLmFzSFRNTChpbmRlbnQsIGNvbnRleHQsIG51bWJlcik7XG5cbiAgICAgIGNoaWxkTm9kZXNIVE1MID0gc3BsaWNlKGNoaWxkTm9kZXNIVE1MLCBzdGFydCwgZGVsZXRlQ291bnQsIGxpbmtNYXJrZG93bk5vZGVIVE1MKTtcblxuICAgICAgbnVtYmVyKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoaWxkTm9kZXNIVE1MID0gY2hvcChjaGlsZE5vZGVzSFRNTCwgc3RhcnQsIGRlbGV0ZUNvdW50KTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBjaGlsZE5vZGVzSFRNTDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbnVtYmVyTGlua01hcmtkb3duTm9kZXMoZGl2aXNpb25NYXJrZG93bk5vZGUsIGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IG51bWJlciA9IDE7XG5cbiAgY29uc3QgaWRlbnRpZmllcnMgPSBmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlLmlkZW50aWZpZXJzKCksXG4gICAgICAgIGxpbmtNYXJrZG93bk5vZGVzID0gbGlua01hcmtkb3duTm9kZXNGcm9tTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZSk7XG5cbiAgbGlua01hcmtkb3duTm9kZXMuZm9yRWFjaCgobGlua01hcmtkb3duTm9kZSkgPT4ge1xuICAgIGNvbnN0IGlkZW50aWZpZXIgPSBsaW5rTWFya2Rvd25Ob2RlLmlkZW50aWZpZXIoY29udGV4dCksXG4gICAgICAgICAgbGlua01hcmtkb3duTm9kZURPTUVsZW1lbnQgPSBsaW5rTWFya2Rvd25Ob2RlLmdldERPTUVsZW1lbnQoKSxcbiAgICAgICAgICBpZGVudGlmaWVyc0luY2x1ZGVzSWRlbnRpZmllciA9IGlkZW50aWZpZXJzLmluY2x1ZGVzKGlkZW50aWZpZXIpO1xuXG4gICAgbGV0IGlubmVySFRNTDtcblxuICAgIGlmIChpZGVudGlmaWVyc0luY2x1ZGVzSWRlbnRpZmllcikge1xuICAgICAgaW5uZXJIVE1MID0gYCR7bnVtYmVyfWA7XG5cbiAgICAgIG51bWJlcisrO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbm5lckhUTUwgPSBFTVBUWV9TVFJJTkc7XG4gICAgfVxuXG4gICAgT2JqZWN0LmFzc2lnbihsaW5rTWFya2Rvd25Ob2RlRE9NRWxlbWVudCwge1xuICAgICAgaW5uZXJIVE1MXG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHJlbnVtYmVyTGlua01hcmtkb3duTm9kZXNcbn07XG4iXSwibmFtZXMiOlsicmVudW1iZXJMaW5rTWFya2Rvd25Ob2RlcyIsInJlbnVtYmVyTGlua01hcmtkb3duTm9kZXNIVE1MIiwic3RybGVuIiwic3RyaW5nVXRpbGl0aWVzIiwiaW5kZXhPZiIsImNoaWxkTm9kZXNIVE1MIiwiZGl2aXNpb25NYXJrZG93bk5vZGUiLCJmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIiwiY29udGV4dCIsIm51bWJlciIsImlkZW50aWZpZXJzIiwibGlua01hcmtkb3duTm9kZXMiLCJsaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwiZm9yRWFjaCIsImxpbmtNYXJrZG93bk5vZGUiLCJpbmRlbnQiLCJpZGVudGlmaWVyIiwiaWRlbnRpZmllcnNJbmNsdWRlc0lkZW50aWZpZXIiLCJpbmNsdWRlcyIsImxpbmtNYXJrZG93bk5vZGVIVE1MIiwiYXNIVE1MIiwiaW5kZXgiLCJsZW5ndGgiLCJzdGFydCIsImRlbGV0ZUNvdW50Iiwic3BsaWNlIiwiY2hvcCIsImxpbmtNYXJrZG93bk5vZGVET01FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsImlubmVySFRNTCIsIkVNUFRZX1NUUklORyIsIk9iamVjdCIsImFzc2lnbiJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQW1FQSxPQUVFO2VBRkY7O0lBM0JnQkEseUJBQXlCO2VBQXpCQTs7SUE5QkFDLDZCQUE2QjtlQUE3QkE7Ozt5QkFSZ0I7eUJBRUg7c0JBQ0E7cUJBQ2E7QUFFMUMsSUFBUUMsU0FBb0JDLDBCQUFlLENBQW5DRCxRQUFRRSxVQUFZRCwwQkFBZSxDQUEzQkM7QUFFVCxTQUFTSCw4QkFBOEJJLGNBQWMsRUFBRUMsb0JBQW9CLEVBQUVDLHlCQUF5QixFQUFFQyxPQUFPO0lBQ3BILElBQUlDLFNBQVM7SUFFYixJQUFNQyxjQUFjSCwwQkFBMEJHLFdBQVcsSUFDbkRDLG9CQUFvQkMsSUFBQUEsZ0NBQXlCLEVBQUNOO0lBRXBESyxrQkFBa0JFLE9BQU8sQ0FBQyxTQUFDQztRQUN6QixJQUFNQyxTQUFTLE1BQ1RDLGFBQWFGLGlCQUFpQkUsVUFBVSxDQUFDUixVQUN6Q1MsZ0NBQWdDUCxZQUFZUSxRQUFRLENBQUNGLGFBQ3JERyx1QkFBdUJMLGlCQUFpQk0sTUFBTSxDQUFDTCxRQUFRUCxVQUN2RGEsUUFBUWpCLFFBQVFDLGdCQUFnQmMsdUJBQ2hDRyxTQUFTcEIsT0FBT2lCLHVCQUNoQkksUUFBUUYsT0FDUkcsY0FBY0YsUUFBUSxHQUFHO1FBRS9CLElBQUlMLCtCQUErQjtZQUNqQyxJQUFNRSx3QkFBdUJMLGlCQUFpQk0sTUFBTSxDQUFDTCxRQUFRUCxTQUFTQztZQUV0RUosaUJBQWlCb0IsSUFBQUEsY0FBTSxFQUFDcEIsZ0JBQWdCa0IsT0FBT0MsYUFBYUw7WUFFNURWO1FBQ0YsT0FBTztZQUNMSixpQkFBaUJxQixJQUFBQSxZQUFJLEVBQUNyQixnQkFBZ0JrQixPQUFPQztRQUMvQztJQUNGO0lBRUEsT0FBT25CO0FBQ1Q7QUFFTyxTQUFTTCwwQkFBMEJNLG9CQUFvQixFQUFFQyx5QkFBeUIsRUFBRUMsT0FBTztJQUNoRyxJQUFJQyxTQUFTO0lBRWIsSUFBTUMsY0FBY0gsMEJBQTBCRyxXQUFXLElBQ25EQyxvQkFBb0JDLElBQUFBLGdDQUF5QixFQUFDTjtJQUVwREssa0JBQWtCRSxPQUFPLENBQUMsU0FBQ0M7UUFDekIsSUFBTUUsYUFBYUYsaUJBQWlCRSxVQUFVLENBQUNSLFVBQ3pDbUIsNkJBQTZCYixpQkFBaUJjLGFBQWEsSUFDM0RYLGdDQUFnQ1AsWUFBWVEsUUFBUSxDQUFDRjtRQUUzRCxJQUFJYTtRQUVKLElBQUlaLCtCQUErQjtZQUNqQ1ksWUFBWSxBQUFDLEdBQVMsT0FBUHBCO1lBRWZBO1FBQ0YsT0FBTztZQUNMb0IsWUFBWUMsdUJBQVk7UUFDMUI7UUFFQUMsT0FBT0MsTUFBTSxDQUFDTCw0QkFBNEI7WUFDeENFLFdBQUFBO1FBQ0Y7SUFDRjtBQUNGO0lBRUEsV0FBZTtJQUNiN0IsMkJBQUFBO0FBQ0YifQ==
|