highmark-markdown 1.2.71 → 1.2.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/.aiignore +7 -9
  2. package/.swcrc +4 -3
  3. package/example.js +11655 -33035
  4. package/lib/attributeNames.js +7 -7
  5. package/lib/constants.js +19 -19
  6. package/lib/example/constants.js +7 -7
  7. package/lib/example/customEventTypes.js +9 -9
  8. package/lib/example/importer.js +72 -28
  9. package/lib/example/indexOptions.js +3 -3
  10. package/lib/example/view/button/page.js +34 -135
  11. package/lib/example/view/button/tab/css.js +14 -114
  12. package/lib/example/view/button/tab/html.js +14 -114
  13. package/lib/example/view/button/tab/markdown.js +14 -114
  14. package/lib/example/view/button/tab/markdownStyle.js +14 -114
  15. package/lib/example/view/button/tab/plainText.js +14 -114
  16. package/lib/example/view/button/tab/preview.js +14 -114
  17. package/lib/example/view/button/tab.js +36 -136
  18. package/lib/example/view/div/container/css.js +15 -153
  19. package/lib/example/view/div/container/html.js +19 -157
  20. package/lib/example/view/div/container/markdown.js +38 -190
  21. package/lib/example/view/div/container/markdownStyle.js +39 -191
  22. package/lib/example/view/div/container/plainText.js +15 -153
  23. package/lib/example/view/div/container/preview.js +25 -177
  24. package/lib/example/view/div/container.js +20 -156
  25. package/lib/example/view/div/html.js +18 -173
  26. package/lib/example/view/div/pageButtons.js +63 -236
  27. package/lib/example/view/div/preview.js +58 -268
  28. package/lib/example/view/div/sizeable/left.js +13 -104
  29. package/lib/example/view/div/tabButtons/left.js +42 -161
  30. package/lib/example/view/div/tabButtons/right.js +75 -198
  31. package/lib/example/view/div/tabButtons.js +15 -172
  32. package/lib/example/view/textarea/css.js +29 -147
  33. package/lib/example/view/textarea/markdown.js +29 -145
  34. package/lib/example/view/textarea/markdownStyle.js +29 -145
  35. package/lib/example/view/textarea/parseTree/css.js +21 -132
  36. package/lib/example/view/textarea/parseTree/html.js +21 -132
  37. package/lib/example/view/textarea/parseTree/markdown.js +17 -129
  38. package/lib/example/view/textarea/parseTree/markdownStyle.js +17 -129
  39. package/lib/example/view/textarea/parseTree.js +20 -135
  40. package/lib/example/view/textarea/plainText.js +32 -153
  41. package/lib/example/view/textarea.js +16 -23
  42. package/lib/example/view/xmp.js +30 -187
  43. package/lib/example/view.js +281 -518
  44. package/lib/example.js +10 -10
  45. package/lib/index/item.js +25 -87
  46. package/lib/index/list.js +29 -62
  47. package/lib/index/match.js +23 -62
  48. package/lib/index.js +34 -34
  49. package/lib/letters.js +3 -3
  50. package/lib/map/className.js +6 -6
  51. package/lib/map/node/css.js +50 -42
  52. package/lib/map/node/html.js +108 -71
  53. package/lib/map/nonTerminalNode/markdown.js +49 -40
  54. package/lib/map/nonTerminalNode/markdownStyle.js +49 -40
  55. package/lib/map/tagName.js +6 -6
  56. package/lib/markdown/bnf.js +300 -3
  57. package/lib/markdown/entries.js +3 -3
  58. package/lib/markdown/lexer.js +23 -126
  59. package/lib/markdown/parser.js +18 -121
  60. package/lib/markdownStyle/bnf.js +80 -3
  61. package/lib/markdownStyle/entries.js +8 -8
  62. package/lib/markdownStyle/lexer.js +23 -126
  63. package/lib/markdownStyle/parser.js +18 -121
  64. package/lib/mixins/node.js +53 -53
  65. package/lib/mixins/token.js +13 -13
  66. package/lib/node/css/amount.js +16 -110
  67. package/lib/node/css/argument.js +8 -95
  68. package/lib/node/css/arguments.js +13 -127
  69. package/lib/node/css/class.js +13 -127
  70. package/lib/node/css/colour.js +16 -110
  71. package/lib/node/css/content.js +12 -103
  72. package/lib/node/css/declaration.js +19 -109
  73. package/lib/node/css/identifier.js +16 -110
  74. package/lib/node/css/name.js +13 -127
  75. package/lib/node/css/pseudoClass.js +13 -127
  76. package/lib/node/css/ruleName.js +43 -137
  77. package/lib/node/css/ruleSet.js +45 -139
  78. package/lib/node/css/selector.js +8 -95
  79. package/lib/node/css/selectors.js +19 -110
  80. package/lib/node/css/selectorsList.js +22 -115
  81. package/lib/node/css/string.js +16 -110
  82. package/lib/node/css/target.js +12 -103
  83. package/lib/node/css/topmost.js +70 -182
  84. package/lib/node/css/value.js +12 -126
  85. package/lib/node/css/values.js +16 -107
  86. package/lib/node/css/verbatim.js +35 -132
  87. package/lib/node/css.js +66 -275
  88. package/lib/node/html/anchor/contents.js +8 -92
  89. package/lib/node/html/anchor/footnote.js +8 -92
  90. package/lib/node/html/anchor/index.js +8 -92
  91. package/lib/node/html/anchor.js +38 -157
  92. package/lib/node/html/container.js +24 -154
  93. package/lib/node/html/directive/contents.js +8 -95
  94. package/lib/node/html/directive/footnotes.js +8 -95
  95. package/lib/node/html/directive/index.js +8 -95
  96. package/lib/node/html/directive/pageNumber.js +8 -95
  97. package/lib/node/html/directive.js +23 -123
  98. package/lib/node/html/division.js +127 -273
  99. package/lib/node/html/error.js +41 -179
  100. package/lib/node/html/footnote.js +40 -149
  101. package/lib/node/html/heading/index.js +61 -183
  102. package/lib/node/html/heading/primary.js +12 -112
  103. package/lib/node/html/heading/quaternary.js +12 -112
  104. package/lib/node/html/heading/secondary.js +12 -112
  105. package/lib/node/html/heading/tertiary.js +12 -112
  106. package/lib/node/html/heading.js +30 -147
  107. package/lib/node/html/image.js +76 -207
  108. package/lib/node/html/item/contents.js +20 -124
  109. package/lib/node/html/item/footnote.js +21 -125
  110. package/lib/node/html/item/index.js +39 -145
  111. package/lib/node/html/item/ordered.js +23 -133
  112. package/lib/node/html/item/unordered.js +10 -110
  113. package/lib/node/html/line/block.js +15 -119
  114. package/lib/node/html/line.js +89 -242
  115. package/lib/node/html/link/contents.js +36 -153
  116. package/lib/node/html/link/email.js +89 -243
  117. package/lib/node/html/link/footnote.js +94 -238
  118. package/lib/node/html/link/hyper.js +89 -243
  119. package/lib/node/html/link/index.js +67 -222
  120. package/lib/node/html/list/contents.js +20 -124
  121. package/lib/node/html/list/footnotes.js +40 -160
  122. package/lib/node/html/list/index.js +20 -124
  123. package/lib/node/html/list/ordered.js +10 -110
  124. package/lib/node/html/list/unordered.js +10 -110
  125. package/lib/node/html/listing/block.js +33 -177
  126. package/lib/node/html/listing/inline.js +35 -174
  127. package/lib/node/html/pageNumber.js +65 -216
  128. package/lib/node/html/paragraph.js +10 -110
  129. package/lib/node/html/reference.js +10 -110
  130. package/lib/node/html/table.js +10 -110
  131. package/lib/node/html/tableBody.js +10 -110
  132. package/lib/node/html/tableBodyCell.js +10 -110
  133. package/lib/node/html/tableBodyRow.js +10 -110
  134. package/lib/node/html/tableHead.js +10 -110
  135. package/lib/node/html/tableHeadCell.js +10 -110
  136. package/lib/node/html/tableHeadRow.js +10 -110
  137. package/lib/node/html/text/block.js +10 -110
  138. package/lib/node/html/text/comma.js +21 -128
  139. package/lib/node/html/text/emphasised.js +14 -118
  140. package/lib/node/html/text/index.js +28 -143
  141. package/lib/node/html/text/inline.js +34 -147
  142. package/lib/node/html/text/plain.js +10 -110
  143. package/lib/node/html/text/strong.js +14 -118
  144. package/lib/node/html/text/stronglyEmphasised.js +66 -208
  145. package/lib/node/html/text.js +24 -162
  146. package/lib/node/html/topmost.js +100 -240
  147. package/lib/node/html.js +256 -554
  148. package/lib/node/markdown/blockEnd.js +5 -89
  149. package/lib/node/markdown/blockStart.js +18 -113
  150. package/lib/node/markdown/className.js +12 -100
  151. package/lib/node/markdown/container.js +18 -113
  152. package/lib/node/markdown/directive/embed.js +39 -137
  153. package/lib/node/markdown/directive/include.js +39 -137
  154. package/lib/node/markdown/division.js +70 -216
  155. package/lib/node/markdown/document.js +44 -147
  156. package/lib/node/markdown/error.js +12 -100
  157. package/lib/node/markdown/footnote.js +12 -100
  158. package/lib/node/markdown/hyperlink.js +34 -131
  159. package/lib/node/markdown/image.js +12 -100
  160. package/lib/node/markdown/item/ordered.js +15 -103
  161. package/lib/node/markdown/link/email.js +34 -131
  162. package/lib/node/markdown/link/footnote.js +14 -102
  163. package/lib/node/markdown/listng/block.js +12 -100
  164. package/lib/node/markdown/listng/inline.js +18 -106
  165. package/lib/node/markdown/path.js +12 -100
  166. package/lib/node/markdown/reference.js +15 -103
  167. package/lib/node/markdown/subDivision.js +35 -126
  168. package/lib/node/markdown/text/block.js +5 -89
  169. package/lib/node/markdown/text/plain.js +5 -89
  170. package/lib/node/markdown/text.js +46 -134
  171. package/lib/node/markdown.js +34 -169
  172. package/lib/node/markdownStyle/amount.js +13 -101
  173. package/lib/node/markdownStyle/argument.js +5 -89
  174. package/lib/node/markdownStyle/arguments.js +5 -89
  175. package/lib/node/markdownStyle/colour.js +12 -100
  176. package/lib/node/markdownStyle/content.js +21 -109
  177. package/lib/node/markdownStyle/declaration.js +5 -89
  178. package/lib/node/markdownStyle/document.js +5 -89
  179. package/lib/node/markdownStyle/error.js +5 -89
  180. package/lib/node/markdownStyle/identifier.js +13 -101
  181. package/lib/node/markdownStyle/name.js +5 -89
  182. package/lib/node/markdownStyle/nonsense.js +5 -89
  183. package/lib/node/markdownStyle/pseudoClass.js +5 -89
  184. package/lib/node/markdownStyle/ruleName.js +12 -100
  185. package/lib/node/markdownStyle/ruleSet.js +5 -89
  186. package/lib/node/markdownStyle/selector.js +5 -89
  187. package/lib/node/markdownStyle/selectors.js +5 -89
  188. package/lib/node/markdownStyle/selectorsList.js +5 -89
  189. package/lib/node/markdownStyle/string.js +12 -100
  190. package/lib/node/markdownStyle/target.js +12 -100
  191. package/lib/node/markdownStyle/value.js +5 -89
  192. package/lib/node/markdownStyle/values.js +5 -89
  193. package/lib/node/markdownStyle/verbatim.js +5 -89
  194. package/lib/node/markdownStyle.js +16 -135
  195. package/lib/prepends.js +4 -4
  196. package/lib/queries/markdown.js +7 -7
  197. package/lib/queries/markdownStyle.js +7 -7
  198. package/lib/ruleNames/markdown.js +145 -145
  199. package/lib/ruleNames/markdownStyle.js +51 -51
  200. package/lib/style/defaultMarkdown.js +247 -3
  201. package/lib/style/font.js +54 -3
  202. package/lib/styleElement/markdown/default.js +17 -131
  203. package/lib/styleElement/markdown.js +30 -151
  204. package/lib/styleElement.js +30 -69
  205. package/lib/targets.js +3 -3
  206. package/lib/tokenTypes.js +39 -39
  207. package/lib/transform/css/ruleSet.js +15 -106
  208. package/lib/transform/css/selectors.js +17 -108
  209. package/lib/transform/css/selectorsList.js +28 -121
  210. package/lib/transform/css.js +35 -139
  211. package/lib/transform/html/anchor/index.js +11 -99
  212. package/lib/transform/html/division.js +18 -112
  213. package/lib/transform/html/footnote.js +25 -122
  214. package/lib/transform/html/heading/index.js +7 -91
  215. package/lib/transform/html/index.js +44 -139
  216. package/lib/transform/html/item/contents.js +23 -111
  217. package/lib/transform/html/item/footnote.js +11 -99
  218. package/lib/transform/html/item/index.js +11 -99
  219. package/lib/transform/html/line.js +10 -98
  220. package/lib/transform/html/link/contents.js +20 -111
  221. package/lib/transform/html/link/footnote.js +36 -140
  222. package/lib/transform/html/list/contents.js +37 -151
  223. package/lib/transform/html/list/footnotes.js +19 -110
  224. package/lib/transform/html/list/index.js +16 -100
  225. package/lib/transform/html/pageNumber.js +15 -106
  226. package/lib/transform/html.js +28 -132
  227. package/lib/transform/markdown/directive/embed.js +9 -120
  228. package/lib/transform/markdown/directive/ignore.js +6 -90
  229. package/lib/transform/markdown/directive/include.js +15 -129
  230. package/lib/transform/markdown/subDivision.js +6 -90
  231. package/lib/transform/markdown.js +7 -134
  232. package/lib/utilities/contents.js +74 -145
  233. package/lib/utilities/css.js +12 -16
  234. package/lib/utilities/dom.js +11 -11
  235. package/lib/utilities/entities.js +2 -2
  236. package/lib/utilities/entries.js +5 -5
  237. package/lib/utilities/grammar.js +57 -86
  238. package/lib/utilities/html.js +21 -25
  239. package/lib/utilities/index.js +76 -89
  240. package/lib/utilities/markdown.js +14 -17
  241. package/lib/utilities/markdownStyle.js +2 -2
  242. package/lib/utilities/object.js +16 -16
  243. package/lib/utilities/query.js +13 -14
  244. package/lib/utilities/string.js +2 -2
  245. package/package.json +1 -1
@@ -8,258 +8,104 @@ Object.defineProperty(exports, "default", {
8
8
  return HyperlinkHTMLNode;
9
9
  }
10
10
  });
11
- var _html = /*#__PURE__*/ _interop_require_default(require("../../../node/html"));
12
- var _attributeNames = require("../../../attributeNames");
13
- var _dom = require("../../../utilities/dom");
14
- function _assert_this_initialized(self) {
15
- if (self === void 0) {
16
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
17
- }
18
- return self;
19
- }
20
- function _call_super(_this, derived, args) {
21
- derived = _get_prototype_of(derived);
22
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
23
- }
24
- function _class_call_check(instance, Constructor) {
25
- if (!(instance instanceof Constructor)) {
26
- throw new TypeError("Cannot call a class as a function");
27
- }
28
- }
29
- function _defineProperties(target, props) {
30
- for(var i = 0; i < props.length; i++){
31
- var descriptor = props[i];
32
- descriptor.enumerable = descriptor.enumerable || false;
33
- descriptor.configurable = true;
34
- if ("value" in descriptor) descriptor.writable = true;
35
- Object.defineProperty(target, descriptor.key, descriptor);
36
- }
37
- }
38
- function _create_class(Constructor, protoProps, staticProps) {
39
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
40
- if (staticProps) _defineProperties(Constructor, staticProps);
41
- return Constructor;
42
- }
43
- function _define_property(obj, key, value) {
44
- if (key in obj) {
45
- Object.defineProperty(obj, key, {
46
- value: value,
47
- enumerable: true,
48
- configurable: true,
49
- writable: true
50
- });
51
- } else {
52
- obj[key] = value;
53
- }
54
- return obj;
55
- }
56
- function _get(target, property, receiver) {
57
- if (typeof Reflect !== "undefined" && Reflect.get) {
58
- _get = Reflect.get;
59
- } else {
60
- _get = function get(target, property, receiver) {
61
- var base = _super_prop_base(target, property);
62
- if (!base) return;
63
- var desc = Object.getOwnPropertyDescriptor(base, property);
64
- if (desc.get) {
65
- return desc.get.call(receiver || target);
66
- }
67
- return desc.value;
68
- };
69
- }
70
- return _get(target, property, receiver || target);
71
- }
72
- function _get_prototype_of(o) {
73
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
74
- return o.__proto__ || Object.getPrototypeOf(o);
75
- };
76
- return _get_prototype_of(o);
77
- }
78
- function _inherits(subClass, superClass) {
79
- if (typeof superClass !== "function" && superClass !== null) {
80
- throw new TypeError("Super expression must either be null or a function");
81
- }
82
- subClass.prototype = Object.create(superClass && superClass.prototype, {
83
- constructor: {
84
- value: subClass,
85
- writable: true,
86
- configurable: true
87
- }
88
- });
89
- if (superClass) _set_prototype_of(subClass, superClass);
90
- }
11
+ const _html = /*#__PURE__*/ _interop_require_default(require("../../../node/html"));
12
+ const _attributeNames = require("../../../attributeNames");
13
+ const _dom = require("../../../utilities/dom");
91
14
  function _interop_require_default(obj) {
92
15
  return obj && obj.__esModule ? obj : {
93
16
  default: obj
94
17
  };
95
18
  }
96
- function _possible_constructor_return(self, call) {
97
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
98
- return call;
19
+ class HyperlinkHTMLNode extends _html.default {
20
+ isSimple() {
21
+ const markdownNode = this.getMarkdownNode(), simple = markdownNode.isSimple();
22
+ return simple;
99
23
  }
100
- return _assert_this_initialized(self);
101
- }
102
- function _set_prototype_of(o, p) {
103
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
104
- o.__proto__ = p;
105
- return o;
106
- };
107
- return _set_prototype_of(o, p);
108
- }
109
- function _super_prop_base(object, property) {
110
- while(!Object.prototype.hasOwnProperty.call(object, property)){
111
- object = _get_prototype_of(object);
112
- if (object === null) break;
24
+ url(context) {
25
+ const markdownNode = this.getMarkdownNode(), url = markdownNode.url(context);
26
+ return url;
113
27
  }
114
- return object;
115
- }
116
- function _type_of(obj) {
117
- "@swc/helpers - typeof";
118
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
119
- }
120
- function _is_native_reflect_construct() {
121
- try {
122
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
123
- } catch (_) {}
124
- return (_is_native_reflect_construct = function() {
125
- return !!result;
126
- })();
127
- }
128
- var HyperlinkHTMLNode = /*#__PURE__*/ function(HTMLNode) {
129
- _inherits(HyperlinkHTMLNode, HTMLNode);
130
- function HyperlinkHTMLNode() {
131
- _class_call_check(this, HyperlinkHTMLNode);
132
- return _call_super(this, HyperlinkHTMLNode, arguments);
28
+ content(context) {
29
+ const url = this.url(context), content = url; ///
30
+ return content;
133
31
  }
134
- _create_class(HyperlinkHTMLNode, [
135
- {
136
- key: "isSimple",
137
- value: function isSimple() {
138
- var markdownNode = this.getMarkdownNode(), simple = markdownNode.isSimple();
139
- return simple;
140
- }
141
- },
142
- {
143
- key: "url",
144
- value: function url(context) {
145
- var markdownNode = this.getMarkdownNode(), url = markdownNode.url(context);
146
- return url;
147
- }
148
- },
149
- {
150
- key: "content",
151
- value: function content(context) {
152
- var url = this.url(context), content = url; ///
153
- return content;
154
- }
155
- },
156
- {
157
- key: "attributeName",
158
- value: function attributeName(context) {
159
- var attributeName = _attributeNames.HREF_ATTRIBUTE_NAME;
160
- return attributeName;
161
- }
162
- },
163
- {
164
- key: "attributeValue",
165
- value: function attributeValue(context) {
166
- var url = this.url(context), attributeValue = url; ///
167
- return attributeValue;
168
- }
169
- },
170
- {
171
- key: "adjustIndent",
172
- value: function adjustIndent(indent) {
173
- indent = null;
174
- return indent;
175
- }
176
- },
177
- {
178
- key: "mount",
179
- value: function mount(parentDOMElement, siblingDOMElement, context) {
180
- var domElement;
181
- var simple = this.isSimple();
182
- if (!simple) {
183
- _get(_get_prototype_of(HyperlinkHTMLNode.prototype), "mount", this).call(this, parentDOMElement, siblingDOMElement, context);
184
- } else {
185
- domElement = this.createDOMElement(context);
186
- this.setDOMElement(domElement);
187
- siblingDOMElement !== null ? (0, _dom.insertAfter)(domElement, parentDOMElement, siblingDOMElement) : (0, _dom.insertBeforehand)(domElement, parentDOMElement);
188
- parentDOMElement = domElement; ///
189
- var content = this.content(context), textNode = document.createTextNode(content);
190
- domElement = textNode; ///
191
- (0, _dom.insertAfterwards)(domElement, parentDOMElement);
192
- }
193
- domElement = this.getDOMElement();
194
- siblingDOMElement = domElement; ///
195
- return siblingDOMElement;
196
- }
197
- },
198
- {
199
- key: "unmount",
200
- value: function unmount(parentDOMElement) {
201
- var simple = this.isSimple();
202
- if (!simple) {
203
- _get(_get_prototype_of(HyperlinkHTMLNode.prototype), "unmount", this).call(this, parentDOMElement);
204
- return;
205
- }
206
- var domElement;
207
- {
208
- domElement = this.getDOMElement();
209
- var _$parentDOMElement = domElement, firstChild = domElement.firstChild;
210
- domElement = firstChild; ///
211
- (0, _dom.remove)(domElement, _$parentDOMElement);
212
- }
213
- domElement = this.getDOMElement();
214
- (0, _dom.remove)(domElement, parentDOMElement);
215
- this.resetDOMElement();
216
- }
217
- },
218
- {
219
- key: "asPlainText",
220
- value: function asPlainText(context) {
221
- var plainText;
222
- var simple = this.isSimple();
223
- if (simple) {
224
- var url = this.url(context);
225
- plainText = url; ///
226
- } else {
227
- plainText = _get(_get_prototype_of(HyperlinkHTMLNode.prototype), "asPlainText", this).call(this, context);
228
- }
229
- return plainText;
230
- }
231
- },
232
- {
233
- key: "childNodesAsHTML",
234
- value: function childNodesAsHTML(indent, context) {
235
- var childNodesHTML;
236
- var simple = this.isSimple();
237
- if (simple) {
238
- var url = this.url(context);
239
- childNodesHTML = "".concat(url);
240
- } else {
241
- childNodesHTML = _get(_get_prototype_of(HyperlinkHTMLNode.prototype), "childNodesAsHTML", this).call(this, indent, context);
242
- }
243
- return childNodesHTML;
244
- }
32
+ attributeName(context) {
33
+ const attributeName = _attributeNames.HREF_ATTRIBUTE_NAME;
34
+ return attributeName;
35
+ }
36
+ attributeValue(context) {
37
+ const url = this.url(context), attributeValue = url; ///
38
+ return attributeValue;
39
+ }
40
+ adjustIndent(indent) {
41
+ indent = null;
42
+ return indent;
43
+ }
44
+ mount(parentDOMElement, siblingDOMElement, context) {
45
+ let domElement;
46
+ const simple = this.isSimple();
47
+ if (!simple) {
48
+ super.mount(parentDOMElement, siblingDOMElement, context);
49
+ } else {
50
+ domElement = this.createDOMElement(context);
51
+ this.setDOMElement(domElement);
52
+ siblingDOMElement !== null ? (0, _dom.insertAfter)(domElement, parentDOMElement, siblingDOMElement) : (0, _dom.insertBeforehand)(domElement, parentDOMElement);
53
+ parentDOMElement = domElement; ///
54
+ const content = this.content(context), textNode = document.createTextNode(content);
55
+ domElement = textNode; ///
56
+ (0, _dom.insertAfterwards)(domElement, parentDOMElement);
245
57
  }
246
- ], [
247
- {
248
- key: "fromNothing",
249
- value: function fromNothing() {
250
- return _html.default.fromNothing(HyperlinkHTMLNode);
251
- }
252
- },
58
+ domElement = this.getDOMElement();
59
+ siblingDOMElement = domElement; ///
60
+ return siblingDOMElement;
61
+ }
62
+ unmount(parentDOMElement) {
63
+ const simple = this.isSimple();
64
+ if (!simple) {
65
+ super.unmount(parentDOMElement);
66
+ return;
67
+ }
68
+ let domElement;
253
69
  {
254
- key: "fromOuterNode",
255
- value: function fromOuterNode(outerNode) {
256
- return _html.default.fromOuterNode(HyperlinkHTMLNode, outerNode);
257
- }
70
+ domElement = this.getDOMElement();
71
+ const parentDOMElement = domElement, firstChild = domElement.firstChild;
72
+ domElement = firstChild; ///
73
+ (0, _dom.remove)(domElement, parentDOMElement);
258
74
  }
259
- ]);
260
- return HyperlinkHTMLNode;
261
- }(_html.default);
262
- _define_property(HyperlinkHTMLNode, "tagName", "a");
263
- _define_property(HyperlinkHTMLNode, "className", "hyperlink");
75
+ domElement = this.getDOMElement();
76
+ (0, _dom.remove)(domElement, parentDOMElement);
77
+ this.resetDOMElement();
78
+ }
79
+ asPlainText(context) {
80
+ let plainText;
81
+ const simple = this.isSimple();
82
+ if (simple) {
83
+ const url = this.url(context);
84
+ plainText = url; ///
85
+ } else {
86
+ plainText = super.asPlainText(context);
87
+ }
88
+ return plainText;
89
+ }
90
+ childNodesAsHTML(indent, context) {
91
+ let childNodesHTML;
92
+ const simple = this.isSimple();
93
+ if (simple) {
94
+ const url = this.url(context);
95
+ childNodesHTML = `${url}`;
96
+ } else {
97
+ childNodesHTML = super.childNodesAsHTML(indent, context);
98
+ }
99
+ return childNodesHTML;
100
+ }
101
+ static tagName = "a";
102
+ static className = "hyperlink";
103
+ static fromNothing() {
104
+ return _html.default.fromNothing(HyperlinkHTMLNode);
105
+ }
106
+ static fromOuterNode(outerNode) {
107
+ return _html.default.fromOuterNode(HyperlinkHTMLNode, outerNode);
108
+ }
109
+ }
264
110
 
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ub2RlL2h0bWwvbGluay9oeXBlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEhUTUxOb2RlIGZyb20gXCIuLi8uLi8uLi9ub2RlL2h0bWxcIjtcblxuaW1wb3J0IHsgSFJFRl9BVFRSSUJVVEVfTkFNRSB9IGZyb20gXCIuLi8uLi8uLi9hdHRyaWJ1dGVOYW1lc1wiO1xuaW1wb3J0IHsgcmVtb3ZlLCBpbnNlcnRBZnRlciwgaW5zZXJ0QWZ0ZXJ3YXJkcywgaW5zZXJ0QmVmb3JlaGFuZCB9IGZyb20gXCIuLi8uLi8uLi91dGlsaXRpZXMvZG9tXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEh5cGVybGlua0hUTUxOb2RlIGV4dGVuZHMgSFRNTE5vZGUge1xuICBpc1NpbXBsZSgpIHtcbiAgICBjb25zdCBtYXJrZG93bk5vZGUgPSB0aGlzLmdldE1hcmtkb3duTm9kZSgpLFxuICAgICAgICAgIHNpbXBsZSA9IG1hcmtkb3duTm9kZS5pc1NpbXBsZSgpO1xuXG4gICAgcmV0dXJuIHNpbXBsZTtcbiAgfVxuXG4gIHVybChjb250ZXh0KSB7XG4gICAgY29uc3QgbWFya2Rvd25Ob2RlID0gdGhpcy5nZXRNYXJrZG93bk5vZGUoKSxcbiAgICAgICAgICB1cmwgPSBtYXJrZG93bk5vZGUudXJsKGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIGNvbnRlbnQoY29udGV4dCkge1xuICAgIGNvbnN0IHVybCA9IHRoaXMudXJsKGNvbnRleHQpLFxuICAgICAgICAgIGNvbnRlbnQgPSB1cmw7ICAvLy9cblxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgYXR0cmlidXRlTmFtZShjb250ZXh0KSB7XG4gICAgY29uc3QgYXR0cmlidXRlTmFtZSA9IEhSRUZfQVRUUklCVVRFX05BTUU7XG5cbiAgICByZXR1cm4gYXR0cmlidXRlTmFtZTtcbiAgfVxuXG4gIGF0dHJpYnV0ZVZhbHVlKGNvbnRleHQpIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnVybChjb250ZXh0KSxcbiAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9IHVybDsgLy8vXG5cbiAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU7XG4gIH1cblxuICBhZGp1c3RJbmRlbnQoaW5kZW50KSB7XG4gICAgaW5kZW50ID0gbnVsbDtcblxuICAgIHJldHVybiBpbmRlbnQ7XG4gIH1cblxuICBtb3VudChwYXJlbnRET01FbGVtZW50LCBzaWJsaW5nRE9NRWxlbWVudCwgY29udGV4dCkge1xuICAgIGxldCBkb21FbGVtZW50O1xuXG4gICAgY29uc3Qgc2ltcGxlID0gdGhpcy5pc1NpbXBsZSgpO1xuXG4gICAgaWYgKCFzaW1wbGUpIHtcbiAgICAgIHN1cGVyLm1vdW50KHBhcmVudERPTUVsZW1lbnQsIHNpYmxpbmdET01FbGVtZW50LCBjb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9tRWxlbWVudCA9IHRoaXMuY3JlYXRlRE9NRWxlbWVudChjb250ZXh0KTtcblxuICAgICAgdGhpcy5zZXRET01FbGVtZW50KGRvbUVsZW1lbnQpO1xuXG4gICAgICAoc2libGluZ0RPTUVsZW1lbnQgIT09IG51bGwpID9cbiAgICAgICAgaW5zZXJ0QWZ0ZXIoZG9tRWxlbWVudCwgcGFyZW50RE9NRWxlbWVudCwgc2libGluZ0RPTUVsZW1lbnQpIDpcbiAgICAgICAgICBpbnNlcnRCZWZvcmVoYW5kKGRvbUVsZW1lbnQsIHBhcmVudERPTUVsZW1lbnQpO1xuXG4gICAgICBwYXJlbnRET01FbGVtZW50ID0gZG9tRWxlbWVudDsgLy8vXG5cbiAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnQoY29udGV4dCksXG4gICAgICAgICAgICB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbnRlbnQpO1xuXG4gICAgICBkb21FbGVtZW50ID0gdGV4dE5vZGU7ICAvLy9cblxuICAgICAgaW5zZXJ0QWZ0ZXJ3YXJkcyhkb21FbGVtZW50LCBwYXJlbnRET01FbGVtZW50KTtcbiAgICB9XG5cbiAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XG5cbiAgICBzaWJsaW5nRE9NRWxlbWVudCA9IGRvbUVsZW1lbnQ7IC8vL1xuXG4gICAgcmV0dXJuIHNpYmxpbmdET01FbGVtZW50O1xuICB9XG5cbiAgdW5tb3VudChwYXJlbnRET01FbGVtZW50KSB7XG4gICAgY29uc3Qgc2ltcGxlID0gdGhpcy5pc1NpbXBsZSgpO1xuXG4gICAgaWYgKCFzaW1wbGUpIHtcbiAgICAgIHN1cGVyLnVubW91bnQocGFyZW50RE9NRWxlbWVudCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZG9tRWxlbWVudDtcblxuICAgIHtcbiAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcblxuICAgICAgY29uc3QgcGFyZW50RE9NRWxlbWVudCA9IGRvbUVsZW1lbnQsICAvLy9cbiAgICAgICAgICAgIGZpcnN0Q2hpbGQgPSBkb21FbGVtZW50LmZpcnN0Q2hpbGQ7XG5cbiAgICAgIGRvbUVsZW1lbnQgPSBmaXJzdENoaWxkOyAgLy8vXG5cbiAgICAgIHJlbW92ZShkb21FbGVtZW50LCBwYXJlbnRET01FbGVtZW50KTtcbiAgICB9XG5cbiAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XG5cbiAgICByZW1vdmUoZG9tRWxlbWVudCwgcGFyZW50RE9NRWxlbWVudCk7XG5cbiAgICB0aGlzLnJlc2V0RE9NRWxlbWVudCgpO1xuICB9XG5cbiAgYXNQbGFpblRleHQoY29udGV4dCkge1xuICAgIGxldCBwbGFpblRleHQ7XG5cbiAgICBjb25zdCBzaW1wbGUgPSB0aGlzLmlzU2ltcGxlKCk7XG5cbiAgICBpZiAoc2ltcGxlKSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnVybChjb250ZXh0KTtcblxuICAgICAgcGxhaW5UZXh0ID0gdXJsOyAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgcGxhaW5UZXh0ID0gc3VwZXIuYXNQbGFpblRleHQoY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBsYWluVGV4dDtcbiAgfVxuXG4gIGNoaWxkTm9kZXNBc0hUTUwoaW5kZW50LCBjb250ZXh0KSB7XG4gICAgbGV0IGNoaWxkTm9kZXNIVE1MO1xuXG4gICAgY29uc3Qgc2ltcGxlID0gdGhpcy5pc1NpbXBsZSgpO1xuXG4gICAgaWYgKHNpbXBsZSkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy51cmwoY29udGV4dCk7XG5cbiAgICAgIGNoaWxkTm9kZXNIVE1MID0gYCR7dXJsfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoaWxkTm9kZXNIVE1MID0gc3VwZXIuY2hpbGROb2Rlc0FzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBjaGlsZE5vZGVzSFRNTDtcbiAgfVxuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJhXCI7XG5cbiAgc3RhdGljIGNsYXNzTmFtZSA9IFwiaHlwZXJsaW5rXCI7XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkgeyByZXR1cm4gSFRNTE5vZGUuZnJvbU5vdGhpbmcoSHlwZXJsaW5rSFRNTE5vZGUpOyB9XG5cbiAgc3RhdGljIGZyb21PdXRlck5vZGUob3V0ZXJOb2RlKSB7IHJldHVybiBIVE1MTm9kZS5mcm9tT3V0ZXJOb2RlKEh5cGVybGlua0hUTUxOb2RlLCBvdXRlck5vZGUpOyB9XG59XG4iXSwibmFtZXMiOlsiSHlwZXJsaW5rSFRNTE5vZGUiLCJpc1NpbXBsZSIsIm1hcmtkb3duTm9kZSIsImdldE1hcmtkb3duTm9kZSIsInNpbXBsZSIsInVybCIsImNvbnRleHQiLCJjb250ZW50IiwiYXR0cmlidXRlTmFtZSIsIkhSRUZfQVRUUklCVVRFX05BTUUiLCJhdHRyaWJ1dGVWYWx1ZSIsImFkanVzdEluZGVudCIsImluZGVudCIsIm1vdW50IiwicGFyZW50RE9NRWxlbWVudCIsInNpYmxpbmdET01FbGVtZW50IiwiZG9tRWxlbWVudCIsImNyZWF0ZURPTUVsZW1lbnQiLCJzZXRET01FbGVtZW50IiwiaW5zZXJ0QWZ0ZXIiLCJpbnNlcnRCZWZvcmVoYW5kIiwidGV4dE5vZGUiLCJkb2N1bWVudCIsImNyZWF0ZVRleHROb2RlIiwiaW5zZXJ0QWZ0ZXJ3YXJkcyIsImdldERPTUVsZW1lbnQiLCJ1bm1vdW50IiwiZmlyc3RDaGlsZCIsInJlbW92ZSIsInJlc2V0RE9NRWxlbWVudCIsImFzUGxhaW5UZXh0IiwicGxhaW5UZXh0IiwiY2hpbGROb2Rlc0FzSFRNTCIsImNoaWxkTm9kZXNIVE1MIiwiZnJvbU5vdGhpbmciLCJIVE1MTm9kZSIsImZyb21PdXRlck5vZGUiLCJvdXRlck5vZGUiLCJ0YWdOYW1lIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU9xQkE7OzsyREFMQTs4QkFFZTttQkFDb0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFekQsSUFBQSxBQUFNQSxrQ0FBTjtjQUFNQTthQUFBQTtnQ0FBQUE7UUFBTixPQUFBLGtCQUFNQTs7a0JBQUFBOztZQUNuQkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGVBQWUsSUFBSSxDQUFDQyxlQUFlLElBQ25DQyxTQUFTRixhQUFhRCxRQUFRO2dCQUVwQyxPQUFPRztZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLElBQUlDLE9BQU87Z0JBQ1QsSUFBTUosZUFBZSxJQUFJLENBQUNDLGVBQWUsSUFDbkNFLE1BQU1ILGFBQWFHLEdBQUcsQ0FBQ0M7Z0JBRTdCLE9BQU9EO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsUUFBUUQsT0FBTztnQkFDYixJQUFNRCxNQUFNLElBQUksQ0FBQ0EsR0FBRyxDQUFDQyxVQUNmQyxVQUFVRixLQUFNLEdBQUc7Z0JBRXpCLE9BQU9FO1lB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
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ub2RlL2h0bWwvbGluay9oeXBlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEhUTUxOb2RlIGZyb20gXCIuLi8uLi8uLi9ub2RlL2h0bWxcIjtcblxuaW1wb3J0IHsgSFJFRl9BVFRSSUJVVEVfTkFNRSB9IGZyb20gXCIuLi8uLi8uLi9hdHRyaWJ1dGVOYW1lc1wiO1xuaW1wb3J0IHsgcmVtb3ZlLCBpbnNlcnRBZnRlciwgaW5zZXJ0QWZ0ZXJ3YXJkcywgaW5zZXJ0QmVmb3JlaGFuZCB9IGZyb20gXCIuLi8uLi8uLi91dGlsaXRpZXMvZG9tXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEh5cGVybGlua0hUTUxOb2RlIGV4dGVuZHMgSFRNTE5vZGUge1xuICBpc1NpbXBsZSgpIHtcbiAgICBjb25zdCBtYXJrZG93bk5vZGUgPSB0aGlzLmdldE1hcmtkb3duTm9kZSgpLFxuICAgICAgICAgIHNpbXBsZSA9IG1hcmtkb3duTm9kZS5pc1NpbXBsZSgpO1xuXG4gICAgcmV0dXJuIHNpbXBsZTtcbiAgfVxuXG4gIHVybChjb250ZXh0KSB7XG4gICAgY29uc3QgbWFya2Rvd25Ob2RlID0gdGhpcy5nZXRNYXJrZG93bk5vZGUoKSxcbiAgICAgICAgICB1cmwgPSBtYXJrZG93bk5vZGUudXJsKGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIGNvbnRlbnQoY29udGV4dCkge1xuICAgIGNvbnN0IHVybCA9IHRoaXMudXJsKGNvbnRleHQpLFxuICAgICAgICAgIGNvbnRlbnQgPSB1cmw7ICAvLy9cblxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgYXR0cmlidXRlTmFtZShjb250ZXh0KSB7XG4gICAgY29uc3QgYXR0cmlidXRlTmFtZSA9IEhSRUZfQVRUUklCVVRFX05BTUU7XG5cbiAgICByZXR1cm4gYXR0cmlidXRlTmFtZTtcbiAgfVxuXG4gIGF0dHJpYnV0ZVZhbHVlKGNvbnRleHQpIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnVybChjb250ZXh0KSxcbiAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9IHVybDsgLy8vXG5cbiAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU7XG4gIH1cblxuICBhZGp1c3RJbmRlbnQoaW5kZW50KSB7XG4gICAgaW5kZW50ID0gbnVsbDtcblxuICAgIHJldHVybiBpbmRlbnQ7XG4gIH1cblxuICBtb3VudChwYXJlbnRET01FbGVtZW50LCBzaWJsaW5nRE9NRWxlbWVudCwgY29udGV4dCkge1xuICAgIGxldCBkb21FbGVtZW50O1xuXG4gICAgY29uc3Qgc2ltcGxlID0gdGhpcy5pc1NpbXBsZSgpO1xuXG4gICAgaWYgKCFzaW1wbGUpIHtcbiAgICAgIHN1cGVyLm1vdW50KHBhcmVudERPTUVsZW1lbnQsIHNpYmxpbmdET01FbGVtZW50LCBjb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9tRWxlbWVudCA9IHRoaXMuY3JlYXRlRE9NRWxlbWVudChjb250ZXh0KTtcblxuICAgICAgdGhpcy5zZXRET01FbGVtZW50KGRvbUVsZW1lbnQpO1xuXG4gICAgICAoc2libGluZ0RPTUVsZW1lbnQgIT09IG51bGwpID9cbiAgICAgICAgaW5zZXJ0QWZ0ZXIoZG9tRWxlbWVudCwgcGFyZW50RE9NRWxlbWVudCwgc2libGluZ0RPTUVsZW1lbnQpIDpcbiAgICAgICAgICBpbnNlcnRCZWZvcmVoYW5kKGRvbUVsZW1lbnQsIHBhcmVudERPTUVsZW1lbnQpO1xuXG4gICAgICBwYXJlbnRET01FbGVtZW50ID0gZG9tRWxlbWVudDsgLy8vXG5cbiAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnQoY29udGV4dCksXG4gICAgICAgICAgICB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbnRlbnQpO1xuXG4gICAgICBkb21FbGVtZW50ID0gdGV4dE5vZGU7ICAvLy9cblxuICAgICAgaW5zZXJ0QWZ0ZXJ3YXJkcyhkb21FbGVtZW50LCBwYXJlbnRET01FbGVtZW50KTtcbiAgICB9XG5cbiAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XG5cbiAgICBzaWJsaW5nRE9NRWxlbWVudCA9IGRvbUVsZW1lbnQ7IC8vL1xuXG4gICAgcmV0dXJuIHNpYmxpbmdET01FbGVtZW50O1xuICB9XG5cbiAgdW5tb3VudChwYXJlbnRET01FbGVtZW50KSB7XG4gICAgY29uc3Qgc2ltcGxlID0gdGhpcy5pc1NpbXBsZSgpO1xuXG4gICAgaWYgKCFzaW1wbGUpIHtcbiAgICAgIHN1cGVyLnVubW91bnQocGFyZW50RE9NRWxlbWVudCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZG9tRWxlbWVudDtcblxuICAgIHtcbiAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcblxuICAgICAgY29uc3QgcGFyZW50RE9NRWxlbWVudCA9IGRvbUVsZW1lbnQsICAvLy9cbiAgICAgICAgICAgIGZpcnN0Q2hpbGQgPSBkb21FbGVtZW50LmZpcnN0Q2hpbGQ7XG5cbiAgICAgIGRvbUVsZW1lbnQgPSBmaXJzdENoaWxkOyAgLy8vXG5cbiAgICAgIHJlbW92ZShkb21FbGVtZW50LCBwYXJlbnRET01FbGVtZW50KTtcbiAgICB9XG5cbiAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XG5cbiAgICByZW1vdmUoZG9tRWxlbWVudCwgcGFyZW50RE9NRWxlbWVudCk7XG5cbiAgICB0aGlzLnJlc2V0RE9NRWxlbWVudCgpO1xuICB9XG5cbiAgYXNQbGFpblRleHQoY29udGV4dCkge1xuICAgIGxldCBwbGFpblRleHQ7XG5cbiAgICBjb25zdCBzaW1wbGUgPSB0aGlzLmlzU2ltcGxlKCk7XG5cbiAgICBpZiAoc2ltcGxlKSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnVybChjb250ZXh0KTtcblxuICAgICAgcGxhaW5UZXh0ID0gdXJsOyAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgcGxhaW5UZXh0ID0gc3VwZXIuYXNQbGFpblRleHQoY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBsYWluVGV4dDtcbiAgfVxuXG4gIGNoaWxkTm9kZXNBc0hUTUwoaW5kZW50LCBjb250ZXh0KSB7XG4gICAgbGV0IGNoaWxkTm9kZXNIVE1MO1xuXG4gICAgY29uc3Qgc2ltcGxlID0gdGhpcy5pc1NpbXBsZSgpO1xuXG4gICAgaWYgKHNpbXBsZSkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy51cmwoY29udGV4dCk7XG5cbiAgICAgIGNoaWxkTm9kZXNIVE1MID0gYCR7dXJsfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoaWxkTm9kZXNIVE1MID0gc3VwZXIuY2hpbGROb2Rlc0FzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBjaGlsZE5vZGVzSFRNTDtcbiAgfVxuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJhXCI7XG5cbiAgc3RhdGljIGNsYXNzTmFtZSA9IFwiaHlwZXJsaW5rXCI7XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkgeyByZXR1cm4gSFRNTE5vZGUuZnJvbU5vdGhpbmcoSHlwZXJsaW5rSFRNTE5vZGUpOyB9XG5cbiAgc3RhdGljIGZyb21PdXRlck5vZGUob3V0ZXJOb2RlKSB7IHJldHVybiBIVE1MTm9kZS5mcm9tT3V0ZXJOb2RlKEh5cGVybGlua0hUTUxOb2RlLCBvdXRlck5vZGUpOyB9XG59XG4iXSwibmFtZXMiOlsiSHlwZXJsaW5rSFRNTE5vZGUiLCJIVE1MTm9kZSIsImlzU2ltcGxlIiwibWFya2Rvd25Ob2RlIiwiZ2V0TWFya2Rvd25Ob2RlIiwic2ltcGxlIiwidXJsIiwiY29udGV4dCIsImNvbnRlbnQiLCJhdHRyaWJ1dGVOYW1lIiwiSFJFRl9BVFRSSUJVVEVfTkFNRSIsImF0dHJpYnV0ZVZhbHVlIiwiYWRqdXN0SW5kZW50IiwiaW5kZW50IiwibW91bnQiLCJwYXJlbnRET01FbGVtZW50Iiwic2libGluZ0RPTUVsZW1lbnQiLCJkb21FbGVtZW50IiwiY3JlYXRlRE9NRWxlbWVudCIsInNldERPTUVsZW1lbnQiLCJpbnNlcnRBZnRlciIsImluc2VydEJlZm9yZWhhbmQiLCJ0ZXh0Tm9kZSIsImRvY3VtZW50IiwiY3JlYXRlVGV4dE5vZGUiLCJpbnNlcnRBZnRlcndhcmRzIiwiZ2V0RE9NRWxlbWVudCIsInVubW91bnQiLCJmaXJzdENoaWxkIiwicmVtb3ZlIiwicmVzZXRET01FbGVtZW50IiwiYXNQbGFpblRleHQiLCJwbGFpblRleHQiLCJjaGlsZE5vZGVzQXNIVE1MIiwiY2hpbGROb2Rlc0hUTUwiLCJ0YWdOYW1lIiwiY2xhc3NOYW1lIiwiZnJvbU5vdGhpbmciLCJmcm9tT3V0ZXJOb2RlIiwib3V0ZXJOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQXFCQTs7OzZEQUxBO2dDQUVlO3FCQUNvQzs7Ozs7O0FBRXpELE1BQU1BLDBCQUEwQkMsYUFBUTtJQUNyREMsV0FBVztRQUNULE1BQU1DLGVBQWUsSUFBSSxDQUFDQyxlQUFlLElBQ25DQyxTQUFTRixhQUFhRCxRQUFRO1FBRXBDLE9BQU9HO0lBQ1Q7SUFFQUMsSUFBSUMsT0FBTyxFQUFFO1FBQ1gsTUFBTUosZUFBZSxJQUFJLENBQUNDLGVBQWUsSUFDbkNFLE1BQU1ILGFBQWFHLEdBQUcsQ0FBQ0M7UUFFN0IsT0FBT0Q7SUFDVDtJQUVBRSxRQUFRRCxPQUFPLEVBQUU7UUFDZixNQUFNRCxNQUFNLElBQUksQ0FBQ0EsR0FBRyxDQUFDQyxVQUNmQyxVQUFVRixLQUFNLEdBQUc7UUFFekIsT0FBT0U7SUFDVDtJQUVBQyxjQUFjRixPQUFPLEVBQUU7UUFDckIsTUFBTUUsZ0JBQWdCQyxtQ0FBbUI7UUFFekMsT0FBT0Q7SUFDVDtJQUVBRSxlQUFlSixPQUFPLEVBQUU7UUFDdEIsTUFBTUQsTUFBTSxJQUFJLENBQUNBLEdBQUcsQ0FBQ0MsVUFDZkksaUJBQWlCTCxLQUFLLEdBQUc7UUFFL0IsT0FBT0s7SUFDVDtJQUVBQyxhQUFhQyxNQUFNLEVBQUU7UUFDbkJBLFNBQVM7UUFFVCxPQUFPQTtJQUNUO0lBRUFDLE1BQU1DLGdCQUFnQixFQUFFQyxpQkFBaUIsRUFBRVQsT0FBTyxFQUFFO1FBQ2xELElBQUlVO1FBRUosTUFBTVosU0FBUyxJQUFJLENBQUNILFFBQVE7UUFFNUIsSUFBSSxDQUFDRyxRQUFRO1lBQ1gsS0FBSyxDQUFDUyxNQUFNQyxrQkFBa0JDLG1CQUFtQlQ7UUFDbkQsT0FBTztZQUNMVSxhQUFhLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUNYO1lBRW5DLElBQUksQ0FBQ1ksYUFBYSxDQUFDRjtZQUVsQkQsc0JBQXNCLE9BQ3JCSSxJQUFBQSxnQkFBVyxFQUFDSCxZQUFZRixrQkFBa0JDLHFCQUN4Q0ssSUFBQUEscUJBQWdCLEVBQUNKLFlBQVlGO1lBRWpDQSxtQkFBbUJFLFlBQVksR0FBRztZQUVsQyxNQUFNVCxVQUFVLElBQUksQ0FBQ0EsT0FBTyxDQUFDRCxVQUN2QmUsV0FBV0MsU0FBU0MsY0FBYyxDQUFDaEI7WUFFekNTLGFBQWFLLFVBQVcsR0FBRztZQUUzQkcsSUFBQUEscUJBQWdCLEVBQUNSLFlBQVlGO1FBQy9CO1FBRUFFLGFBQWEsSUFBSSxDQUFDUyxhQUFhO1FBRS9CVixvQkFBb0JDLFlBQVksR0FBRztRQUVuQyxPQUFPRDtJQUNUO0lBRUFXLFFBQVFaLGdCQUFnQixFQUFFO1FBQ3hCLE1BQU1WLFNBQVMsSUFBSSxDQUFDSCxRQUFRO1FBRTVCLElBQUksQ0FBQ0csUUFBUTtZQUNYLEtBQUssQ0FBQ3NCLFFBQVFaO1lBRWQ7UUFDRjtRQUVBLElBQUlFO1FBRUo7WUFDRUEsYUFBYSxJQUFJLENBQUNTLGFBQWE7WUFFL0IsTUFBTVgsbUJBQW1CRSxZQUNuQlcsYUFBYVgsV0FBV1csVUFBVTtZQUV4Q1gsYUFBYVcsWUFBYSxHQUFHO1lBRTdCQyxJQUFBQSxXQUFNLEVBQUNaLFlBQVlGO1FBQ3JCO1FBRUFFLGFBQWEsSUFBSSxDQUFDUyxhQUFhO1FBRS9CRyxJQUFBQSxXQUFNLEVBQUNaLFlBQVlGO1FBRW5CLElBQUksQ0FBQ2UsZUFBZTtJQUN0QjtJQUVBQyxZQUFZeEIsT0FBTyxFQUFFO1FBQ25CLElBQUl5QjtRQUVKLE1BQU0zQixTQUFTLElBQUksQ0FBQ0gsUUFBUTtRQUU1QixJQUFJRyxRQUFRO1lBQ1YsTUFBTUMsTUFBTSxJQUFJLENBQUNBLEdBQUcsQ0FBQ0M7WUFFckJ5QixZQUFZMUIsS0FBSyxHQUFHO1FBQ3RCLE9BQU87WUFDTDBCLFlBQVksS0FBSyxDQUFDRCxZQUFZeEI7UUFDaEM7UUFFQSxPQUFPeUI7SUFDVDtJQUVBQyxpQkFBaUJwQixNQUFNLEVBQUVOLE9BQU8sRUFBRTtRQUNoQyxJQUFJMkI7UUFFSixNQUFNN0IsU0FBUyxJQUFJLENBQUNILFFBQVE7UUFFNUIsSUFBSUcsUUFBUTtZQUNWLE1BQU1DLE1BQU0sSUFBSSxDQUFDQSxHQUFHLENBQUNDO1lBRXJCMkIsaUJBQWlCLEdBQUc1QixLQUFLO1FBQzNCLE9BQU87WUFDTDRCLGlCQUFpQixLQUFLLENBQUNELGlCQUFpQnBCLFFBQVFOO1FBQ2xEO1FBRUEsT0FBTzJCO0lBQ1Q7SUFFQSxPQUFPQyxVQUFVLElBQUk7SUFFckIsT0FBT0MsWUFBWSxZQUFZO0lBRS9CLE9BQU9DLGNBQWM7UUFBRSxPQUFPcEMsYUFBUSxDQUFDb0MsV0FBVyxDQUFDckM7SUFBb0I7SUFFdkUsT0FBT3NDLGNBQWNDLFNBQVMsRUFBRTtRQUFFLE9BQU90QyxhQUFRLENBQUNxQyxhQUFhLENBQUN0QyxtQkFBbUJ1QztJQUFZO0FBQ2pHIn0=