highmark-markdown 1.2.128 → 1.2.130

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 (261) hide show
  1. package/package.json +3 -3
  2. package/lib/attributeNames.js +0 -38
  3. package/lib/constants.js +0 -86
  4. package/lib/example/constants.js +0 -38
  5. package/lib/example/customEventTypes.js +0 -46
  6. package/lib/example/importer.js +0 -100
  7. package/lib/example/indexOptions.js +0 -45
  8. package/lib/example/view/button/page.js +0 -54
  9. package/lib/example/view/button/tab/css.js +0 -33
  10. package/lib/example/view/button/tab/html.js +0 -33
  11. package/lib/example/view/button/tab/markdown.js +0 -33
  12. package/lib/example/view/button/tab/markdownStyle.js +0 -33
  13. package/lib/example/view/button/tab/plainText.js +0 -33
  14. package/lib/example/view/button/tab/preview.js +0 -33
  15. package/lib/example/view/button/tab.js +0 -56
  16. package/lib/example/view/div/container/css.js +0 -35
  17. package/lib/example/view/div/container/html.js +0 -37
  18. package/lib/example/view/div/container/markdown.js +0 -56
  19. package/lib/example/view/div/container/markdownStyle.js +0 -57
  20. package/lib/example/view/div/container/plainText.js +0 -35
  21. package/lib/example/view/div/container/preview.js +0 -41
  22. package/lib/example/view/div/container.js +0 -39
  23. package/lib/example/view/div/html.js +0 -37
  24. package/lib/example/view/div/pageButtons.js +0 -86
  25. package/lib/example/view/div/preview.js +0 -83
  26. package/lib/example/view/div/sizeable/left.js +0 -31
  27. package/lib/example/view/div/tabButtons/left.js +0 -61
  28. package/lib/example/view/div/tabButtons/right.js +0 -95
  29. package/lib/example/view/div/tabButtons.js +0 -34
  30. package/lib/example/view/textarea/css.js +0 -47
  31. package/lib/example/view/textarea/markdown.js +0 -47
  32. package/lib/example/view/textarea/markdownStyle.js +0 -47
  33. package/lib/example/view/textarea/parseTree/css.js +0 -39
  34. package/lib/example/view/textarea/parseTree/html.js +0 -39
  35. package/lib/example/view/textarea/parseTree/markdown.js +0 -36
  36. package/lib/example/view/textarea/parseTree/markdownStyle.js +0 -36
  37. package/lib/example/view/textarea/parseTree.js +0 -40
  38. package/lib/example/view/textarea/plainText.js +0 -50
  39. package/lib/example/view/textarea.js +0 -33
  40. package/lib/example/view/xmp.js +0 -49
  41. package/lib/example/view.js +0 -309
  42. package/lib/example.js +0 -26
  43. package/lib/index/item.js +0 -40
  44. package/lib/index/list.js +0 -55
  45. package/lib/index/match.js +0 -37
  46. package/lib/index.js +0 -147
  47. package/lib/letters.js +0 -41
  48. package/lib/map/className.js +0 -19
  49. package/lib/map/node/css.js +0 -76
  50. package/lib/map/node/html.js +0 -142
  51. package/lib/map/nonTerminalNode/markdown.js +0 -89
  52. package/lib/map/nonTerminalNode/markdownStyle.js +0 -63
  53. package/lib/map/tagName.js +0 -19
  54. package/lib/markdown/bnf.js +0 -362
  55. package/lib/markdown/entries.js +0 -81
  56. package/lib/markdown/lexer.js +0 -41
  57. package/lib/markdown/parser.js +0 -36
  58. package/lib/markdownStyle/bnf.js +0 -89
  59. package/lib/markdownStyle/entries.js +0 -53
  60. package/lib/markdownStyle/lexer.js +0 -41
  61. package/lib/markdownStyle/parser.js +0 -36
  62. package/lib/mixins/node.js +0 -145
  63. package/lib/mixins/token.js +0 -43
  64. package/lib/node/css/amount.js +0 -34
  65. package/lib/node/css/argument.js +0 -26
  66. package/lib/node/css/arguments.js +0 -32
  67. package/lib/node/css/class.js +0 -32
  68. package/lib/node/css/colour.js +0 -34
  69. package/lib/node/css/content.js +0 -30
  70. package/lib/node/css/declaration.js +0 -37
  71. package/lib/node/css/identifier.js +0 -34
  72. package/lib/node/css/name.js +0 -32
  73. package/lib/node/css/pseudoClass.js +0 -32
  74. package/lib/node/css/ruleName.js +0 -65
  75. package/lib/node/css/ruleSet.js +0 -65
  76. package/lib/node/css/selector.js +0 -26
  77. package/lib/node/css/selectors.js +0 -37
  78. package/lib/node/css/selectorsList.js +0 -40
  79. package/lib/node/css/string.js +0 -34
  80. package/lib/node/css/target.js +0 -26
  81. package/lib/node/css/topmost.js +0 -93
  82. package/lib/node/css/value.js +0 -31
  83. package/lib/node/css/values.js +0 -34
  84. package/lib/node/css/verbatim.js +0 -38
  85. package/lib/node/css.js +0 -89
  86. package/lib/node/html/anchor/contents.js +0 -26
  87. package/lib/node/html/anchor/footnote.js +0 -26
  88. package/lib/node/html/anchor/index.js +0 -26
  89. package/lib/node/html/anchor.js +0 -56
  90. package/lib/node/html/container.js +0 -43
  91. package/lib/node/html/directive/contents.js +0 -26
  92. package/lib/node/html/directive/footnotes.js +0 -26
  93. package/lib/node/html/directive/index.js +0 -26
  94. package/lib/node/html/directive/pageNumber.js +0 -26
  95. package/lib/node/html/directive.js +0 -41
  96. package/lib/node/html/division.js +0 -149
  97. package/lib/node/html/error.js +0 -59
  98. package/lib/node/html/footnote.js +0 -58
  99. package/lib/node/html/heading/index.js +0 -81
  100. package/lib/node/html/heading/primary.js +0 -30
  101. package/lib/node/html/heading/quaternary.js +0 -30
  102. package/lib/node/html/heading/secondary.js +0 -30
  103. package/lib/node/html/heading/tertiary.js +0 -30
  104. package/lib/node/html/heading.js +0 -56
  105. package/lib/node/html/image.js +0 -95
  106. package/lib/node/html/item/contents.js +0 -38
  107. package/lib/node/html/item/footnote.js +0 -39
  108. package/lib/node/html/item/index.js +0 -57
  109. package/lib/node/html/item/ordered.js +0 -41
  110. package/lib/node/html/item/unordered.js +0 -28
  111. package/lib/node/html/line/block.js +0 -33
  112. package/lib/node/html/line.js +0 -113
  113. package/lib/node/html/link/contents.js +0 -54
  114. package/lib/node/html/link/email.js +0 -111
  115. package/lib/node/html/link/footnote.js +0 -114
  116. package/lib/node/html/link/hyper.js +0 -111
  117. package/lib/node/html/link/index.js +0 -88
  118. package/lib/node/html/list/contents.js +0 -38
  119. package/lib/node/html/list/footnotes.js +0 -58
  120. package/lib/node/html/list/index.js +0 -38
  121. package/lib/node/html/list/ordered.js +0 -28
  122. package/lib/node/html/list/unordered.js +0 -28
  123. package/lib/node/html/listing/block.js +0 -55
  124. package/lib/node/html/listing/inline.js +0 -55
  125. package/lib/node/html/pageNumber.js +0 -86
  126. package/lib/node/html/paragraph.js +0 -28
  127. package/lib/node/html/reference.js +0 -28
  128. package/lib/node/html/table.js +0 -28
  129. package/lib/node/html/tableBody.js +0 -28
  130. package/lib/node/html/tableBodyCell.js +0 -28
  131. package/lib/node/html/tableBodyRow.js +0 -28
  132. package/lib/node/html/tableHead.js +0 -28
  133. package/lib/node/html/tableHeadCell.js +0 -28
  134. package/lib/node/html/tableHeadRow.js +0 -28
  135. package/lib/node/html/text/block.js +0 -28
  136. package/lib/node/html/text/comma.js +0 -39
  137. package/lib/node/html/text/emphasised.js +0 -32
  138. package/lib/node/html/text/index.js +0 -46
  139. package/lib/node/html/text/inline.js +0 -52
  140. package/lib/node/html/text/plain.js +0 -28
  141. package/lib/node/html/text/strong.js +0 -32
  142. package/lib/node/html/text/stronglyEmphasised.js +0 -87
  143. package/lib/node/html/text/xml.js +0 -34
  144. package/lib/node/html/text.js +0 -42
  145. package/lib/node/html/topmost.js +0 -125
  146. package/lib/node/html/xmlElement/complex.js +0 -35
  147. package/lib/node/html/xmlElement/simple.js +0 -34
  148. package/lib/node/html/xmlElement.js +0 -125
  149. package/lib/node/html.js +0 -282
  150. package/lib/node/markdown/blockEnd.js +0 -23
  151. package/lib/node/markdown/blockStart.js +0 -49
  152. package/lib/node/markdown/className.js +0 -30
  153. package/lib/node/markdown/container.js +0 -36
  154. package/lib/node/markdown/directive/embed.js +0 -60
  155. package/lib/node/markdown/directive/include.js +0 -59
  156. package/lib/node/markdown/division.js +0 -91
  157. package/lib/node/markdown/document.js +0 -62
  158. package/lib/node/markdown/error.js +0 -30
  159. package/lib/node/markdown/footnote.js +0 -30
  160. package/lib/node/markdown/hyperlink.js +0 -58
  161. package/lib/node/markdown/image.js +0 -30
  162. package/lib/node/markdown/item/ordered.js +0 -36
  163. package/lib/node/markdown/languageName.js +0 -30
  164. package/lib/node/markdown/link/email.js +0 -58
  165. package/lib/node/markdown/link/footnote.js +0 -32
  166. package/lib/node/markdown/listng/block.js +0 -37
  167. package/lib/node/markdown/listng/inline.js +0 -36
  168. package/lib/node/markdown/path.js +0 -30
  169. package/lib/node/markdown/reference.js +0 -36
  170. package/lib/node/markdown/releaseName.js +0 -30
  171. package/lib/node/markdown/subDivision.js +0 -53
  172. package/lib/node/markdown/text/block.js +0 -23
  173. package/lib/node/markdown/text/plain.js +0 -23
  174. package/lib/node/markdown/text/xml.js +0 -23
  175. package/lib/node/markdown/text.js +0 -66
  176. package/lib/node/markdown/xmlAttribute.js +0 -45
  177. package/lib/node/markdown/xmlAttributeName.js +0 -32
  178. package/lib/node/markdown/xmlAttributeValue.js +0 -31
  179. package/lib/node/markdown/xmlElement/complex.js +0 -23
  180. package/lib/node/markdown/xmlElement/simple.js +0 -23
  181. package/lib/node/markdown/xmlElement.js +0 -51
  182. package/lib/node/markdown/xmlTag/complete.js +0 -23
  183. package/lib/node/markdown/xmlTag/end.js +0 -35
  184. package/lib/node/markdown/xmlTag/start.js +0 -23
  185. package/lib/node/markdown/xmlTag.js +0 -57
  186. package/lib/node/markdown/xmlTagName.js +0 -32
  187. package/lib/node/markdown.js +0 -67
  188. package/lib/node/markdownStyle/amount.js +0 -31
  189. package/lib/node/markdownStyle/argument.js +0 -23
  190. package/lib/node/markdownStyle/arguments.js +0 -23
  191. package/lib/node/markdownStyle/colour.js +0 -30
  192. package/lib/node/markdownStyle/content.js +0 -39
  193. package/lib/node/markdownStyle/declaration.js +0 -23
  194. package/lib/node/markdownStyle/document.js +0 -23
  195. package/lib/node/markdownStyle/error.js +0 -23
  196. package/lib/node/markdownStyle/identifier.js +0 -31
  197. package/lib/node/markdownStyle/name.js +0 -23
  198. package/lib/node/markdownStyle/nonsense.js +0 -23
  199. package/lib/node/markdownStyle/pseudoClass.js +0 -23
  200. package/lib/node/markdownStyle/ruleName.js +0 -30
  201. package/lib/node/markdownStyle/ruleSet.js +0 -23
  202. package/lib/node/markdownStyle/selector.js +0 -23
  203. package/lib/node/markdownStyle/selectors.js +0 -23
  204. package/lib/node/markdownStyle/selectorsList.js +0 -23
  205. package/lib/node/markdownStyle/string.js +0 -30
  206. package/lib/node/markdownStyle/value.js +0 -23
  207. package/lib/node/markdownStyle/values.js +0 -23
  208. package/lib/node/markdownStyle/verbatim.js +0 -23
  209. package/lib/node/markdownStyle.js +0 -36
  210. package/lib/prepends.js +0 -26
  211. package/lib/queries/markdown.js +0 -20
  212. package/lib/queries/markdownStyle.js +0 -20
  213. package/lib/ruleNames/markdown.js +0 -435
  214. package/lib/ruleNames/markdownStyle.js +0 -135
  215. package/lib/style/defaultMarkdown.js +0 -258
  216. package/lib/style/font.js +0 -65
  217. package/lib/styleElement/markdown/default.js +0 -36
  218. package/lib/styleElement/markdown.js +0 -86
  219. package/lib/styleElement.js +0 -56
  220. package/lib/tokenTypes.js +0 -110
  221. package/lib/transform/css/ruleSet.js +0 -33
  222. package/lib/transform/css/selectors.js +0 -35
  223. package/lib/transform/css/selectorsList.js +0 -51
  224. package/lib/transform/css.js +0 -57
  225. package/lib/transform/html/anchor/index.js +0 -29
  226. package/lib/transform/html/division.js +0 -36
  227. package/lib/transform/html/footnote.js +0 -43
  228. package/lib/transform/html/heading/index.js +0 -25
  229. package/lib/transform/html/index.js +0 -64
  230. package/lib/transform/html/item/contents.js +0 -42
  231. package/lib/transform/html/item/footnote.js +0 -29
  232. package/lib/transform/html/item/index.js +0 -29
  233. package/lib/transform/html/line.js +0 -28
  234. package/lib/transform/html/link/contents.js +0 -39
  235. package/lib/transform/html/link/footnote.js +0 -54
  236. package/lib/transform/html/list/contents.js +0 -66
  237. package/lib/transform/html/list/footnotes.js +0 -38
  238. package/lib/transform/html/list/index.js +0 -34
  239. package/lib/transform/html/pageNumber.js +0 -33
  240. package/lib/transform/html.js +0 -44
  241. package/lib/transform/markdown/directive/embed.js +0 -28
  242. package/lib/transform/markdown/directive/ignore.js +0 -24
  243. package/lib/transform/markdown/directive/include.js +0 -34
  244. package/lib/transform/markdown/subDivision.js +0 -24
  245. package/lib/transform/markdown.js +0 -21
  246. package/lib/utilities/contents.js +0 -101
  247. package/lib/utilities/css.js +0 -53
  248. package/lib/utilities/dom.js +0 -58
  249. package/lib/utilities/element.js +0 -26
  250. package/lib/utilities/entities.js +0 -17
  251. package/lib/utilities/entries.js +0 -24
  252. package/lib/utilities/grammar.js +0 -160
  253. package/lib/utilities/html.js +0 -86
  254. package/lib/utilities/index.js +0 -250
  255. package/lib/utilities/jsx.js +0 -59
  256. package/lib/utilities/markdown.js +0 -61
  257. package/lib/utilities/markdownStyle.js +0 -13
  258. package/lib/utilities/object.js +0 -65
  259. package/lib/utilities/query.js +0 -64
  260. package/lib/utilities/string.js +0 -51
  261. package/lib/utilities/stringLiteral.js +0 -16
@@ -1,50 +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 _default;
9
- }
10
- });
11
- const _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
12
- const _textarea = /*#__PURE__*/ _interop_require_default(require("../textarea"));
13
- const _constants = require("../../constants");
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- class PlainTextTextarea extends _textarea.default {
20
- setPlainText(plainText) {
21
- const value = plainText; ///
22
- this.setValue(value);
23
- }
24
- clear() {
25
- const plainText = _constants.EMPTY_STRING;
26
- this.setPlainText(plainText);
27
- }
28
- update(divisionHTMLNode, context) {
29
- const plainText = divisionHTMLNode.asPlainText(context);
30
- this.setPlainText(plainText);
31
- }
32
- parentContext() {
33
- const clearPlainTextTextarea = this.clear.bind(this), updatePlainTextTextarea = this.update.bind(this);
34
- return {
35
- clearPlainTextTextarea,
36
- updatePlainTextTextarea
37
- };
38
- }
39
- static defaultProperties = {
40
- readOnly: true,
41
- className: "plain-text"
42
- };
43
- }
44
- const _default = (0, _easywithstyle.default)(PlainTextTextarea)`
45
-
46
- height: 100%;
47
-
48
- `;
49
-
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvdGV4dGFyZWEvcGxhaW5UZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgVGV4dGFyZWEgZnJvbSBcIi4uL3RleHRhcmVhXCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcblxuY2xhc3MgUGxhaW5UZXh0VGV4dGFyZWEgZXh0ZW5kcyBUZXh0YXJlYSB7XG4gIHNldFBsYWluVGV4dChwbGFpblRleHQpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBsYWluVGV4dDsgIC8vL1xuXG4gICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBjb25zdCBwbGFpblRleHQgPSBFTVBUWV9TVFJJTkc7XG5cbiAgICB0aGlzLnNldFBsYWluVGV4dChwbGFpblRleHQpO1xuICB9XG5cbiAgdXBkYXRlKGRpdmlzaW9uSFRNTE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBwbGFpblRleHQgPSBkaXZpc2lvbkhUTUxOb2RlLmFzUGxhaW5UZXh0KGNvbnRleHQpO1xuXG4gICAgdGhpcy5zZXRQbGFpblRleHQocGxhaW5UZXh0KTtcbiAgfVxuXG4gIHBhcmVudENvbnRleHQoKSB7XG4gICAgY29uc3QgY2xlYXJQbGFpblRleHRUZXh0YXJlYSA9IHRoaXMuY2xlYXIuYmluZCh0aGlzKSwgLy8vXG4gICAgICAgICAgdXBkYXRlUGxhaW5UZXh0VGV4dGFyZWEgPSB0aGlzLnVwZGF0ZS5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuICh7XG4gICAgICBjbGVhclBsYWluVGV4dFRleHRhcmVhLFxuICAgICAgdXBkYXRlUGxhaW5UZXh0VGV4dGFyZWFcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICByZWFkT25seTogdHJ1ZSxcbiAgICBjbGFzc05hbWU6IFwicGxhaW4tdGV4dFwiXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShQbGFpblRleHRUZXh0YXJlYSlgXG5cbiAgaGVpZ2h0OiAxMDAlO1xuICBcbmA7XG4iXSwibmFtZXMiOlsiUGxhaW5UZXh0VGV4dGFyZWEiLCJUZXh0YXJlYSIsInNldFBsYWluVGV4dCIsInBsYWluVGV4dCIsInZhbHVlIiwic2V0VmFsdWUiLCJjbGVhciIsIkVNUFRZX1NUUklORyIsInVwZGF0ZSIsImRpdmlzaW9uSFRNTE5vZGUiLCJjb250ZXh0IiwiYXNQbGFpblRleHQiLCJwYXJlbnRDb250ZXh0IiwiY2xlYXJQbGFpblRleHRUZXh0YXJlYSIsImJpbmQiLCJ1cGRhdGVQbGFpblRleHRUZXh0YXJlYSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwicmVhZE9ubHkiLCJjbGFzc05hbWUiLCJ3aXRoU3R5bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQTJDQTs7O2VBQUE7OztzRUF6Q3NCO2lFQUVEOzJCQUVROzs7Ozs7QUFFN0IsTUFBTUEsMEJBQTBCQyxpQkFBUTtJQUN0Q0MsYUFBYUMsU0FBUyxFQUFFO1FBQ3RCLE1BQU1DLFFBQVFELFdBQVksR0FBRztRQUU3QixJQUFJLENBQUNFLFFBQVEsQ0FBQ0Q7SUFDaEI7SUFFQUUsUUFBUTtRQUNOLE1BQU1ILFlBQVlJLHVCQUFZO1FBRTlCLElBQUksQ0FBQ0wsWUFBWSxDQUFDQztJQUNwQjtJQUVBSyxPQUFPQyxnQkFBZ0IsRUFBRUMsT0FBTyxFQUFFO1FBQ2hDLE1BQU1QLFlBQVlNLGlCQUFpQkUsV0FBVyxDQUFDRDtRQUUvQyxJQUFJLENBQUNSLFlBQVksQ0FBQ0M7SUFDcEI7SUFFQVMsZ0JBQWdCO1FBQ2QsTUFBTUMseUJBQXlCLElBQUksQ0FBQ1AsS0FBSyxDQUFDUSxJQUFJLENBQUMsSUFBSSxHQUM3Q0MsMEJBQTBCLElBQUksQ0FBQ1AsTUFBTSxDQUFDTSxJQUFJLENBQUMsSUFBSTtRQUVyRCxPQUFRO1lBQ05EO1lBQ0FFO1FBQ0Y7SUFDRjtJQUVBLE9BQU9DLG9CQUFvQjtRQUN6QkMsVUFBVTtRQUNWQyxXQUFXO0lBQ2IsRUFBRTtBQUNKO01BRUEsV0FBZUMsSUFBQUEsc0JBQVMsRUFBQ25CLGtCQUFrQixDQUFDOzs7O0FBSTVDLENBQUMifQ==
@@ -1,33 +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 _default;
9
- }
10
- });
11
- const _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
12
- const _easy = require("easy");
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- const _default = (0, _easywithstyle.default)(_easy.Textarea)`
19
-
20
- width: 100%;
21
- border: 1px solid darkgrey;
22
- resize: none;
23
- outline: none;
24
- padding: 0.25rem;
25
- font-size: 1.2rem;
26
- min-height: 24rem;
27
- line-height: 1.5rem;
28
- white-space: pre;
29
- font-family: monospace;
30
-
31
- `;
32
-
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvdGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IFRleHRhcmVhIH0gZnJvbSBcImVhc3lcIjtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKFRleHRhcmVhKWBcblxuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgZGFya2dyZXk7XG4gIHJlc2l6ZTogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIG1pbi1oZWlnaHQ6IDI0cmVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXG5gO1xuIl0sIm5hbWVzIjpbIndpdGhTdHlsZSIsIlRleHRhcmVhIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OztzRUFKc0I7c0JBRUc7Ozs7OztNQUV6QixXQUFlQSxJQUFBQSxzQkFBUyxFQUFDQyxjQUFRLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWFuQyxDQUFDIn0=
@@ -1,49 +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 _default;
9
- }
10
- });
11
- const _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
12
- const _easy = require("easy");
13
- const _constants = require("../constants");
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- class XMP extends _easy.Element {
20
- update(html) {
21
- this.html(html);
22
- }
23
- clear() {
24
- const html = _constants.EMPTY_STRING;
25
- this.html(html);
26
- }
27
- parentContext() {
28
- const clearXMP = this.clear.bind(this), updateXMP = this.update.bind(this); ///
29
- return {
30
- clearXMP,
31
- updateXMP
32
- };
33
- }
34
- static tagName = "xmp";
35
- }
36
- const _default = (0, _easywithstyle.default)(XMP)`
37
-
38
- top: 0;
39
- left: 0;
40
- width: 100%;
41
- height: 100%;
42
- position: absolute;
43
- font-size: 1.2rem;
44
- line-height: 1.5rem;
45
- font-family: monospace;
46
-
47
- `;
48
-
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcveG1wLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jbGFzcyBYTVAgZXh0ZW5kcyBFbGVtZW50IHtcbiAgdXBkYXRlKGh0bWwpIHtcbiAgICB0aGlzLmh0bWwoaHRtbCk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBjb25zdCBodG1sID0gRU1QVFlfU1RSSU5HO1xuXG4gICAgdGhpcy5odG1sKGh0bWwpO1xuICB9XG5cbiAgcGFyZW50Q29udGV4dCgpIHtcbiAgICBjb25zdCBjbGVhclhNUCA9IHRoaXMuY2xlYXIuYmluZCh0aGlzKSwgLy8vXG4gICAgICAgICAgdXBkYXRlWE1QID0gdGhpcy51cGRhdGUuYmluZCh0aGlzKTsgIC8vL1xuXG4gICAgcmV0dXJuICh7XG4gICAgICBjbGVhclhNUCxcbiAgICAgIHVwZGF0ZVhNUFxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcInhtcFwiO1xufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoWE1QKWBcblxuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gIFxuYDtcbiJdLCJuYW1lcyI6WyJYTVAiLCJFbGVtZW50IiwidXBkYXRlIiwiaHRtbCIsImNsZWFyIiwiRU1QVFlfU1RSSU5HIiwicGFyZW50Q29udGV4dCIsImNsZWFyWE1QIiwiYmluZCIsInVwZGF0ZVhNUCIsInRhZ05hbWUiLCJ3aXRoU3R5bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWdDQTs7O2VBQUE7OztzRUE5QnNCO3NCQUVFOzJCQUVLOzs7Ozs7QUFFN0IsTUFBTUEsWUFBWUMsYUFBTztJQUN2QkMsT0FBT0MsSUFBSSxFQUFFO1FBQ1gsSUFBSSxDQUFDQSxJQUFJLENBQUNBO0lBQ1o7SUFFQUMsUUFBUTtRQUNOLE1BQU1ELE9BQU9FLHVCQUFZO1FBRXpCLElBQUksQ0FBQ0YsSUFBSSxDQUFDQTtJQUNaO0lBRUFHLGdCQUFnQjtRQUNkLE1BQU1DLFdBQVcsSUFBSSxDQUFDSCxLQUFLLENBQUNJLElBQUksQ0FBQyxJQUFJLEdBQy9CQyxZQUFZLElBQUksQ0FBQ1AsTUFBTSxDQUFDTSxJQUFJLENBQUMsSUFBSSxHQUFJLEdBQUc7UUFFOUMsT0FBUTtZQUNORDtZQUNBRTtRQUNGO0lBQ0Y7SUFFQSxPQUFPQyxVQUFVLE1BQU07QUFDekI7TUFFQSxXQUFlQyxJQUFBQSxzQkFBUyxFQUFDWCxJQUFJLENBQUM7Ozs7Ozs7Ozs7O0FBVzlCLENBQUMifQ==
@@ -1,309 +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 _default;
9
- }
10
- });
11
- const _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
12
- const _easy = require("easy");
13
- const _index = require("../index");
14
- const _easylayout = require("easy-layout");
15
- const _indexOptions = /*#__PURE__*/ _interop_require_default(require("./indexOptions"));
16
- const _pageButtons = /*#__PURE__*/ _interop_require_default(require("./view/div/pageButtons"));
17
- const _left = /*#__PURE__*/ _interop_require_default(require("./view/div/sizeable/left"));
18
- const _css = /*#__PURE__*/ _interop_require_default(require("./view/div/container/css"));
19
- const _html = /*#__PURE__*/ _interop_require_default(require("./view/div/container/html"));
20
- const _left1 = /*#__PURE__*/ _interop_require_default(require("./view/div/tabButtons/left"));
21
- const _right = /*#__PURE__*/ _interop_require_default(require("./view/div/tabButtons/right"));
22
- const _preview = /*#__PURE__*/ _interop_require_default(require("./view/div/container/preview"));
23
- const _markdown = /*#__PURE__*/ _interop_require_default(require("./view/div/container/markdown"));
24
- const _css1 = /*#__PURE__*/ _interop_require_default(require("./view/textarea/parseTree/css"));
25
- const _html1 = /*#__PURE__*/ _interop_require_default(require("./view/textarea/parseTree/html"));
26
- const _plainText = /*#__PURE__*/ _interop_require_default(require("./view/div/container/plainText"));
27
- const _markdownStyle = /*#__PURE__*/ _interop_require_default(require("./view/div/container/markdownStyle"));
28
- const _importer = require("./importer");
29
- const _constants = require("./constants");
30
- function _interop_require_default(obj) {
31
- return obj && obj.__esModule ? obj : {
32
- default: obj
33
- };
34
- }
35
- const { tokensFromMarkdown, tokensFromMarkdownStyle, documentMarkdownNodeFromTokens, htmlFromMarkdownOptionsAndImporter, documentMarkdownStyleNodeFromTokens, topmostHTMLNodeFromDocumentMarkdownNode, cssFromMarkdownStyleAndCSSSelectorsString, topmostCSSNodeFromDocumentMarkdownStyleNode } = _index.grammarUtilities;
36
- class View extends _easy.Element {
37
- pageUpdateCustomHandler = (event, element, index)=>{
38
- this.updateHTML(index);
39
- };
40
- markdownStyleCustomHandler = (event, element)=>{
41
- this.markdownStyle();
42
- };
43
- markdownCustomHandler = (event, element)=>{
44
- this.markdown();
45
- };
46
- plainTextCustomHandler = (event, element)=>{
47
- this.plainText();
48
- };
49
- previewCustomHandler = (event, element)=>{
50
- this.preview();
51
- };
52
- keyUpCustomHandler = (event, element)=>{
53
- this.update();
54
- };
55
- htmlCustomHandler = (event, element)=>{
56
- this.html();
57
- };
58
- cssCustomHandler = (event, element)=>{
59
- this.css();
60
- };
61
- update() {
62
- this.updateMarkdownStyle();
63
- this.updateMarkdown();
64
- this.updateHTML();
65
- this.updateCSS();
66
- }
67
- updateMarkdownStyle() {
68
- const markdownStyle = this.getMarkdownStyle(), tokens = tokensFromMarkdownStyle(markdownStyle), documentMarkdownStyleNode = documentMarkdownStyleNodeFromTokens(tokens);
69
- if (documentMarkdownStyleNode === null) {
70
- this.resetMarkdownStyleTokens();
71
- this.resetDocumentMarkdownStyleNode();
72
- this.clearMarkdownStyleParseTreeTextarea();
73
- return;
74
- }
75
- const node = documentMarkdownStyleNode, parseTree = node.asParseTree(tokens), markdownStyleTokens = tokens; ///
76
- this.setMarkdownStyleTokens(markdownStyleTokens);
77
- this.setDocumentMarkdownStyleNode(documentMarkdownStyleNode);
78
- this.updateMarkdownStyleParseTreeTextarea(parseTree);
79
- }
80
- updateMarkdown() {
81
- const markdown = this.getMarkdown(), tokens = tokensFromMarkdown(markdown), documentMarkdownNode = documentMarkdownNodeFromTokens(tokens);
82
- if (documentMarkdownNode === null) {
83
- this.resetMarkdownTokens();
84
- this.resetDocumentMarkdownNode();
85
- this.clearMarkdownParseTreeTextarea();
86
- return;
87
- }
88
- let context;
89
- context = {
90
- tokens,
91
- importer: _importer.importer
92
- };
93
- documentMarkdownNode.resolve(context);
94
- const documentMarkdownNodeParseTree = documentMarkdownNode.asParseTree(tokens), markdownParseTree = documentMarkdownNodeParseTree, markdownTokens = tokens; ///
95
- this.setMarkdownTokens(markdownTokens);
96
- this.setDocumentMarkdownNode(documentMarkdownNode);
97
- this.updateMarkdownParseTreeTextarea(markdownParseTree);
98
- }
99
- updateHTML(index = 0) {
100
- this.clearXMP();
101
- this.clearPreviewDiv();
102
- this.clearPlainTextTextarea();
103
- this.clearHTMLParseTreeTextarea();
104
- this.clearPageButtonsDiv();
105
- const documentMarkdownNode = this.getDocumentMarkdownNode(), topmostHTMLNode = topmostHTMLNodeFromDocumentMarkdownNode(documentMarkdownNode);
106
- if (topmostHTMLNode === null) {
107
- return;
108
- }
109
- let context;
110
- const markdownTokens = this.getMarkdownTokens(), tokens = markdownTokens; ///
111
- context = {
112
- tokens
113
- };
114
- topmostHTMLNode.resolve(context);
115
- const divisionHTMLNode = topmostHTMLNode.getDivisionHTMLNodeAt(index);
116
- if (divisionHTMLNode === null) {
117
- return;
118
- }
119
- const divisionHTMLNOdeParseTree = divisionHTMLNode.asParseTree(), htmlParseTree = divisionHTMLNOdeParseTree, divisionHTMLNodes = topmostHTMLNode.getDivisionHTMLNodes(), length = divisionHTMLNodes.length; ///
120
- context = {
121
- tokens,
122
- pathToURL
123
- };
124
- this.updatePreviewDiv(divisionHTMLNode, context);
125
- this.updatePlainTextTextarea(divisionHTMLNode, context);
126
- this.updateHTMLParseTreeTextarea(htmlParseTree);
127
- this.updatePageButtonsDiv(length, index);
128
- const markdown = this.getMarkdown(), options = _indexOptions.default, html = htmlFromMarkdownOptionsAndImporter(markdown, options, _importer.importer);
129
- this.updateXMP(html, context);
130
- }
131
- updateCSS() {
132
- const markdownStyleTokens = this.getMarkdownStyleTokens(), markdownStyleElement = this.getMarkdownStyleElement(), documentMarkdownStyleNode = this.getDocumentMarkdownStyleNode();
133
- if (documentMarkdownStyleNode === null) {
134
- const css = _constants.EMPTY_STRING;
135
- markdownStyleElement.setCSS(css);
136
- this.clearCSSParseTreeTextarea();
137
- this.clearCSS();
138
- return;
139
- }
140
- const topmostCSSNode = topmostCSSNodeFromDocumentMarkdownStyleNode(documentMarkdownStyleNode), tokens = markdownStyleTokens, context = {
141
- tokens
142
- };
143
- topmostCSSNode.resolve(context);
144
- const topmostCSSNodeParseTree = topmostCSSNode.asParseTree(tokens), cssParseTree = topmostCSSNodeParseTree; ///
145
- this.updateCSSParseTreeTextarea(cssParseTree);
146
- const cssSelectorsString = _constants.CSS_SELECTORS_STRING, markdownStyle = this.getMarkdownStyle(), css = cssFromMarkdownStyleAndCSSSelectorsString(markdownStyle, cssSelectorsString);
147
- markdownStyleElement.setCSS(css);
148
- this.setCSS(css);
149
- }
150
- markdownStyle() {
151
- this.hideMarkdownContainerDiv();
152
- this.showMarkdownStyleContainerDiv();
153
- }
154
- markdown() {
155
- this.showMarkdownContainerDiv();
156
- this.hideMarkdownStyleContainerDiv();
157
- }
158
- plainText() {
159
- this.hideCSSContainerDiv();
160
- this.hideHTMLContainerDiv();
161
- this.hidePreviewContainerDiv();
162
- this.showPlainTextContainerDiv();
163
- this.hideCSSParseTreeTextarea();
164
- this.showHTMLParseTreeTextarea();
165
- }
166
- preview() {
167
- this.hideCSSContainerDiv();
168
- this.hideHTMLContainerDiv();
169
- this.showPreviewContainerDiv();
170
- this.hidePlainTextContainerDiv();
171
- this.hideCSSParseTreeTextarea();
172
- this.showHTMLParseTreeTextarea();
173
- }
174
- html() {
175
- this.hideCSSContainerDiv();
176
- this.showHTMLContainerDiv();
177
- this.hidePreviewContainerDiv();
178
- this.hidePlainTextContainerDiv();
179
- this.hideCSSParseTreeTextarea();
180
- this.showHTMLParseTreeTextarea();
181
- }
182
- css() {
183
- this.showCSSContainerDiv();
184
- this.hideHTMLContainerDiv();
185
- this.hidePreviewContainerDiv();
186
- this.hidePlainTextContainerDiv();
187
- this.showCSSParseTreeTextarea();
188
- this.hideHTMLParseTreeTextarea();
189
- }
190
- resetMarkdownTokens() {
191
- const markdownTokens = null;
192
- this.setMarkdownTokens(markdownTokens);
193
- }
194
- resetMarkdownStyleTokens() {
195
- const markdownStyleTokens = null;
196
- this.setMarkdownStyleTokens(markdownStyleTokens);
197
- }
198
- resetDocumentMarkdownNode() {
199
- const documentMarkdownNode = null;
200
- this.setDocumentMarkdownNode(documentMarkdownNode);
201
- }
202
- resetDocumentMarkdownStyleNode() {
203
- const documentMarkdownStyleNode = null;
204
- this.setDocumentMarkdownStyleNode(documentMarkdownStyleNode);
205
- }
206
- getMarkdownStyleElement() {
207
- const { markdownStyleElement } = this.properties;
208
- return markdownStyleElement;
209
- }
210
- getMarkdownTokens() {
211
- const { markdownTokens } = this.getState();
212
- return markdownTokens;
213
- }
214
- getMarkdownStyleTokens() {
215
- const { markdownStyleTokens } = this.getState();
216
- return markdownStyleTokens;
217
- }
218
- getDocumentMarkdownNode() {
219
- const { topmostMMarkdownNode } = this.getState();
220
- return topmostMMarkdownNode;
221
- }
222
- getDocumentMarkdownStyleNode() {
223
- const { topmostMMarkdownStyleNode } = this.getState();
224
- return topmostMMarkdownStyleNode;
225
- }
226
- setMarkdownTokens(markdownTokens) {
227
- this.updateState({
228
- markdownTokens
229
- });
230
- }
231
- setMarkdownStyleTokens(markdownStyleTokens) {
232
- this.updateState({
233
- markdownStyleTokens
234
- });
235
- }
236
- setDocumentMarkdownNode(topmostMMarkdownNode) {
237
- this.updateState({
238
- topmostMMarkdownNode
239
- });
240
- }
241
- setDocumentMarkdownStyleNode(topmostMMarkdownStyleNode) {
242
- this.updateState({
243
- topmostMMarkdownStyleNode
244
- });
245
- }
246
- setInitialState() {
247
- const markdownTokens = null, markdownStyleTokens = null, documentMarkdownNode = null, documentMarkdownStyleNode = null;
248
- this.setState({
249
- markdownTokens,
250
- markdownStyleTokens,
251
- documentMarkdownNode,
252
- documentMarkdownStyleNode
253
- });
254
- }
255
- didMount() {
256
- this.markdown();
257
- this.html();
258
- this.update();
259
- }
260
- willUnmount() {
261
- ///
262
- }
263
- childElements() {
264
- return /*#__PURE__*/ React.createElement(_easylayout.ColumnsDiv, null, /*#__PURE__*/ React.createElement(_left.default, null, /*#__PURE__*/ React.createElement(_left1.default, {
265
- onCustomMarkdown: this.markdownCustomHandler,
266
- onCustomMarkdownStyle: this.markdownStyleCustomHandler
267
- }), /*#__PURE__*/ React.createElement(_markdown.default, {
268
- onCustomKeyUp: this.keyUpCustomHandler
269
- }), /*#__PURE__*/ React.createElement(_markdownStyle.default, {
270
- onCustomKeyUp: this.keyUpCustomHandler
271
- })), /*#__PURE__*/ React.createElement(_easylayout.VerticalSplitterDiv, null), /*#__PURE__*/ React.createElement(_easylayout.ColumnDiv, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_right.default, {
272
- onCustomCSS: this.cssCustomHandler,
273
- onCustomHTML: this.htmlCustomHandler,
274
- onCustomPreview: this.previewCustomHandler,
275
- onCustomPlainText: this.plainTextCustomHandler
276
- }), /*#__PURE__*/ React.createElement(_pageButtons.default, {
277
- onCustomPageUpdate: this.pageUpdateCustomHandler
278
- }), /*#__PURE__*/ React.createElement(_css.default, null), /*#__PURE__*/ React.createElement(_html.default, null), /*#__PURE__*/ React.createElement(_preview.default, null), /*#__PURE__*/ React.createElement(_plainText.default, null), /*#__PURE__*/ React.createElement(_html1.default, null), /*#__PURE__*/ React.createElement(_css1.default, null))));
279
- }
280
- initialise() {
281
- this.assignContext();
282
- this.setInitialState();
283
- const { initialMarkdown, initialMarkdownStyle } = this.constructor, markdownStyle = initialMarkdownStyle, markdown = initialMarkdown; ///
284
- this.setMarkdownStyle(markdownStyle);
285
- this.setMarkdown(markdown);
286
- }
287
- static initialMarkdown = `
288
- Licensed under the Apache License, Version 2.0 and Anti-996 License
289
- `;
290
- static initialMarkdownStyle = "";
291
- static tagName = "div";
292
- static ignoredProperties = [
293
- "markdownStyleElement"
294
- ];
295
- static defaultProperties = {
296
- className: "view"
297
- };
298
- }
299
- const _default = (0, _easywithstyle.default)(View)`
300
-
301
- padding: 1rem;
302
-
303
- `;
304
- function pathToURL(path) {
305
- const url = `https://djalbat.com/${path}`;
306
- return url;
307
- }
308
-
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgZ3JhbW1hclV0aWxpdGllcyB9IGZyb20gXCIuLi9pbmRleFwiOyAgLy8vXG5pbXBvcnQgeyBSb3dzRGl2LCBDb2x1bW5EaXYsIENvbHVtbnNEaXYsIFZlcnRpY2FsU3BsaXR0ZXJEaXYgfSBmcm9tIFwiZWFzeS1sYXlvdXRcIjtcblxuaW1wb3J0IGluZGV4T3B0aW9ucyBmcm9tIFwiLi9pbmRleE9wdGlvbnNcIjtcbmltcG9ydCBQYWdlQnV0dG9uc0RpdiBmcm9tIFwiLi92aWV3L2Rpdi9wYWdlQnV0dG9uc1wiO1xuaW1wb3J0IExlZnRTaXplYWJsZURpdiBmcm9tIFwiLi92aWV3L2Rpdi9zaXplYWJsZS9sZWZ0XCI7XG5pbXBvcnQgQ1NTQ29udGFpbmVyRGl2IGZyb20gXCIuL3ZpZXcvZGl2L2NvbnRhaW5lci9jc3NcIjtcbmltcG9ydCBIVE1MQ29udGFpbmVyRGl2IGZyb20gXCIuL3ZpZXcvZGl2L2NvbnRhaW5lci9odG1sXCI7XG5pbXBvcnQgTGVmdFRhYkJ1dHRvbnNEaXYgZnJvbSBcIi4vdmlldy9kaXYvdGFiQnV0dG9ucy9sZWZ0XCI7XG5pbXBvcnQgUmlnaHRUYWJCdXR0b25zRGl2IGZyb20gXCIuL3ZpZXcvZGl2L3RhYkJ1dHRvbnMvcmlnaHRcIjtcbmltcG9ydCBQcmV2aWV3Q29udGFpbmVyRGl2IGZyb20gXCIuL3ZpZXcvZGl2L2NvbnRhaW5lci9wcmV2aWV3XCI7XG5pbXBvcnQgTWFya2Rvd25Db250YWluZXJEaXYgZnJvbSBcIi4vdmlldy9kaXYvY29udGFpbmVyL21hcmtkb3duXCI7XG5pbXBvcnQgQ1NTUGFyc2VUcmVlVGV4dGFyZWEgZnJvbSBcIi4vdmlldy90ZXh0YXJlYS9wYXJzZVRyZWUvY3NzXCI7XG5pbXBvcnQgSFRNTFBhcnNlVHJlZVRleHRhcmVhIGZyb20gXCIuL3ZpZXcvdGV4dGFyZWEvcGFyc2VUcmVlL2h0bWxcIjtcbmltcG9ydCBQbGFpblRleHRDb250YWluZXJEaXYgZnJvbSBcIi4vdmlldy9kaXYvY29udGFpbmVyL3BsYWluVGV4dFwiO1xuaW1wb3J0IE1hcmtkb3duU3R5bGVDb250YWluZXJEaXYgZnJvbSBcIi4vdmlldy9kaXYvY29udGFpbmVyL21hcmtkb3duU3R5bGVcIjtcblxuaW1wb3J0IHsgaW5pdGlhbE1hcmtkb3duLCBpbXBvcnRlciB9IGZyb20gXCIuL2ltcG9ydGVyXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIENTU19TRUxFQ1RPUlNfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgdG9rZW5zRnJvbU1hcmtkb3duLFxuICAgICAgICB0b2tlbnNGcm9tTWFya2Rvd25TdHlsZSxcbiAgICAgICAgZG9jdW1lbnRNYXJrZG93bk5vZGVGcm9tVG9rZW5zLFxuICAgICAgICBodG1sRnJvbU1hcmtkb3duT3B0aW9uc0FuZEltcG9ydGVyLFxuICAgICAgICBkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlRnJvbVRva2VucyxcbiAgICAgICAgdG9wbW9zdEhUTUxOb2RlRnJvbURvY3VtZW50TWFya2Rvd25Ob2RlLFxuICAgICAgICBjc3NGcm9tTWFya2Rvd25TdHlsZUFuZENTU1NlbGVjdG9yc1N0cmluZyxcbiAgICAgICAgdG9wbW9zdENTU05vZGVGcm9tRG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSB9ID0gZ3JhbW1hclV0aWxpdGllcztcblxuY2xhc3MgVmlldyBleHRlbmRzIEVsZW1lbnQge1xuICBwYWdlVXBkYXRlQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICB0aGlzLnVwZGF0ZUhUTUwoaW5kZXgpO1xuICB9XG5cbiAgbWFya2Rvd25TdHlsZUN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICB0aGlzLm1hcmtkb3duU3R5bGUoKTtcbiAgfVxuXG4gIG1hcmtkb3duQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMubWFya2Rvd24oKTtcbiAgfVxuXG4gIHBsYWluVGV4dEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICB0aGlzLnBsYWluVGV4dCgpO1xuICB9XG5cbiAgcHJldmlld0N1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICB0aGlzLnByZXZpZXcoKTtcbiAgfVxuXG4gIGtleVVwQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBodG1sQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMuaHRtbCgpO1xuICB9XG5cbiAgY3NzQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMuY3NzKCk7XG4gIH1cblxuICB1cGRhdGUoKSB7XG4gICAgdGhpcy51cGRhdGVNYXJrZG93blN0eWxlKCk7XG5cbiAgICB0aGlzLnVwZGF0ZU1hcmtkb3duKCk7XG5cbiAgICB0aGlzLnVwZGF0ZUhUTUwoKTtcblxuICAgIHRoaXMudXBkYXRlQ1NTKCk7XG4gIH1cblxuICB1cGRhdGVNYXJrZG93blN0eWxlKCkge1xuICAgIGNvbnN0IG1hcmtkb3duU3R5bGUgPSB0aGlzLmdldE1hcmtkb3duU3R5bGUoKSxcbiAgICAgICAgICB0b2tlbnMgPSB0b2tlbnNGcm9tTWFya2Rvd25TdHlsZShtYXJrZG93blN0eWxlKSxcbiAgICAgICAgICBkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlID0gZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZUZyb21Ub2tlbnModG9rZW5zKTtcblxuICAgIGlmIChkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlID09PSBudWxsKSB7XG4gICAgICB0aGlzLnJlc2V0TWFya2Rvd25TdHlsZVRva2VucygpO1xuXG4gICAgICB0aGlzLnJlc2V0RG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSgpO1xuXG4gICAgICB0aGlzLmNsZWFyTWFya2Rvd25TdHlsZVBhcnNlVHJlZVRleHRhcmVhKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSwgLy8vXG4gICAgICAgICAgcGFyc2VUcmVlID0gbm9kZS5hc1BhcnNlVHJlZSh0b2tlbnMpLFxuICAgICAgICAgIG1hcmtkb3duU3R5bGVUb2tlbnMgPSB0b2tlbnM7IC8vL1xuXG4gICAgdGhpcy5zZXRNYXJrZG93blN0eWxlVG9rZW5zKG1hcmtkb3duU3R5bGVUb2tlbnMpO1xuXG4gICAgdGhpcy5zZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUpO1xuXG4gICAgdGhpcy51cGRhdGVNYXJrZG93blN0eWxlUGFyc2VUcmVlVGV4dGFyZWEocGFyc2VUcmVlKTtcbiAgfVxuXG4gIHVwZGF0ZU1hcmtkb3duKCkge1xuICAgIGNvbnN0IG1hcmtkb3duID0gdGhpcy5nZXRNYXJrZG93bigpLFxuICAgICAgICAgIHRva2VucyA9IHRva2Vuc0Zyb21NYXJrZG93bihtYXJrZG93biksXG4gICAgICAgICAgZG9jdW1lbnRNYXJrZG93bk5vZGUgPSBkb2N1bWVudE1hcmtkb3duTm9kZUZyb21Ub2tlbnModG9rZW5zKTtcblxuICAgIGlmIChkb2N1bWVudE1hcmtkb3duTm9kZSA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5yZXNldE1hcmtkb3duVG9rZW5zKCk7XG5cbiAgICAgIHRoaXMucmVzZXREb2N1bWVudE1hcmtkb3duTm9kZSgpO1xuXG4gICAgICB0aGlzLmNsZWFyTWFya2Rvd25QYXJzZVRyZWVUZXh0YXJlYSgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNvbnRleHQ7XG5cbiAgICBjb250ZXh0ID0ge1xuICAgICAgdG9rZW5zLFxuICAgICAgaW1wb3J0ZXJcbiAgICB9O1xuXG4gICAgZG9jdW1lbnRNYXJrZG93bk5vZGUucmVzb2x2ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IGRvY3VtZW50TWFya2Rvd25Ob2RlUGFyc2VUcmVlID0gZG9jdW1lbnRNYXJrZG93bk5vZGUuYXNQYXJzZVRyZWUodG9rZW5zKSxcbiAgICAgICAgICBtYXJrZG93blBhcnNlVHJlZSA9IGRvY3VtZW50TWFya2Rvd25Ob2RlUGFyc2VUcmVlLCAvLy9cbiAgICAgICAgICBtYXJrZG93blRva2VucyA9IHRva2VuczsgIC8vL1xuXG4gICAgdGhpcy5zZXRNYXJrZG93blRva2VucyhtYXJrZG93blRva2Vucyk7XG5cbiAgICB0aGlzLnNldERvY3VtZW50TWFya2Rvd25Ob2RlKGRvY3VtZW50TWFya2Rvd25Ob2RlKTtcblxuICAgIHRoaXMudXBkYXRlTWFya2Rvd25QYXJzZVRyZWVUZXh0YXJlYShtYXJrZG93blBhcnNlVHJlZSk7XG4gIH1cblxuICB1cGRhdGVIVE1MKGluZGV4ID0gMCkge1xuICAgIHRoaXMuY2xlYXJYTVAoKTtcblxuICAgIHRoaXMuY2xlYXJQcmV2aWV3RGl2KCk7XG5cbiAgICB0aGlzLmNsZWFyUGxhaW5UZXh0VGV4dGFyZWEoKTtcblxuICAgIHRoaXMuY2xlYXJIVE1MUGFyc2VUcmVlVGV4dGFyZWEoKTtcblxuICAgIHRoaXMuY2xlYXJQYWdlQnV0dG9uc0RpdigpO1xuXG4gICAgY29uc3QgZG9jdW1lbnRNYXJrZG93bk5vZGUgPSB0aGlzLmdldERvY3VtZW50TWFya2Rvd25Ob2RlKCksXG4gICAgICAgICAgdG9wbW9zdEhUTUxOb2RlID0gdG9wbW9zdEhUTUxOb2RlRnJvbURvY3VtZW50TWFya2Rvd25Ob2RlKGRvY3VtZW50TWFya2Rvd25Ob2RlKTtcblxuICAgIGlmICh0b3Btb3N0SFRNTE5vZGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29udGV4dDtcblxuICAgIGNvbnN0IG1hcmtkb3duVG9rZW5zID0gdGhpcy5nZXRNYXJrZG93blRva2VucygpLFxuICAgICAgICAgIHRva2VucyA9IG1hcmtkb3duVG9rZW5zOyAgLy8vXG5cbiAgICBjb250ZXh0ID0ge1xuICAgICAgdG9rZW5zXG4gICAgfTtcblxuICAgIHRvcG1vc3RIVE1MTm9kZS5yZXNvbHZlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgZGl2aXNpb25IVE1MTm9kZSA9IHRvcG1vc3RIVE1MTm9kZS5nZXREaXZpc2lvbkhUTUxOb2RlQXQoaW5kZXgpO1xuXG4gICAgaWYgKGRpdmlzaW9uSFRNTE5vZGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkaXZpc2lvbkhUTUxOT2RlUGFyc2VUcmVlID0gZGl2aXNpb25IVE1MTm9kZS5hc1BhcnNlVHJlZSgpLFxuICAgICAgICAgIGh0bWxQYXJzZVRyZWUgPSBkaXZpc2lvbkhUTUxOT2RlUGFyc2VUcmVlLCAgLy8vXG4gICAgICAgICAgZGl2aXNpb25IVE1MTm9kZXMgPSB0b3Btb3N0SFRNTE5vZGUuZ2V0RGl2aXNpb25IVE1MTm9kZXMoKSxcbiAgICAgICAgICBsZW5ndGggPSBkaXZpc2lvbkhUTUxOb2Rlcy5sZW5ndGg7ICAvLy9cblxuICAgIGNvbnRleHQgPSB7XG4gICAgICB0b2tlbnMsXG4gICAgICBwYXRoVG9VUkxcbiAgICB9O1xuXG4gICAgdGhpcy51cGRhdGVQcmV2aWV3RGl2KGRpdmlzaW9uSFRNTE5vZGUsIGNvbnRleHQpO1xuXG4gICAgdGhpcy51cGRhdGVQbGFpblRleHRUZXh0YXJlYShkaXZpc2lvbkhUTUxOb2RlLCBjb250ZXh0KTtcblxuICAgIHRoaXMudXBkYXRlSFRNTFBhcnNlVHJlZVRleHRhcmVhKGh0bWxQYXJzZVRyZWUpO1xuXG4gICAgdGhpcy51cGRhdGVQYWdlQnV0dG9uc0RpdihsZW5ndGgsIGluZGV4KTtcblxuICAgIGNvbnN0IG1hcmtkb3duID0gdGhpcy5nZXRNYXJrZG93bigpLFxuICAgICAgICAgIG9wdGlvbnMgPSBpbmRleE9wdGlvbnMsIC8vL1xuICAgICAgICAgIGh0bWwgPSBodG1sRnJvbU1hcmtkb3duT3B0aW9uc0FuZEltcG9ydGVyKG1hcmtkb3duLCBvcHRpb25zLCBpbXBvcnRlcik7XG5cbiAgICB0aGlzLnVwZGF0ZVhNUChodG1sLCBjb250ZXh0KTtcbiAgfVxuXG4gIHVwZGF0ZUNTUygpIHtcbiAgICBjb25zdCBtYXJrZG93blN0eWxlVG9rZW5zID0gdGhpcy5nZXRNYXJrZG93blN0eWxlVG9rZW5zKCksXG4gICAgICAgICAgbWFya2Rvd25TdHlsZUVsZW1lbnQgPSB0aGlzLmdldE1hcmtkb3duU3R5bGVFbGVtZW50KCksXG4gICAgICAgICAgZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSA9IHRoaXMuZ2V0RG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSgpO1xuXG4gICAgaWYgKGRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGNzcyA9IEVNUFRZX1NUUklORztcblxuICAgICAgbWFya2Rvd25TdHlsZUVsZW1lbnQuc2V0Q1NTKGNzcyk7XG5cbiAgICAgIHRoaXMuY2xlYXJDU1NQYXJzZVRyZWVUZXh0YXJlYSgpO1xuXG4gICAgICB0aGlzLmNsZWFyQ1NTKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0b3Btb3N0Q1NTTm9kZSA9IHRvcG1vc3RDU1NOb2RlRnJvbURvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUoZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSksXG4gICAgICAgICAgdG9rZW5zID0gbWFya2Rvd25TdHlsZVRva2VucywgLy8vXG4gICAgICAgICAgY29udGV4dCA9IHtcbiAgICAgICAgICAgIHRva2Vuc1xuICAgICAgICAgIH07XG5cbiAgICB0b3Btb3N0Q1NTTm9kZS5yZXNvbHZlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgdG9wbW9zdENTU05vZGVQYXJzZVRyZWUgPSB0b3Btb3N0Q1NTTm9kZS5hc1BhcnNlVHJlZSh0b2tlbnMpLFxuICAgICAgICAgIGNzc1BhcnNlVHJlZSA9IHRvcG1vc3RDU1NOb2RlUGFyc2VUcmVlOyAvLy9cblxuICAgIHRoaXMudXBkYXRlQ1NTUGFyc2VUcmVlVGV4dGFyZWEoY3NzUGFyc2VUcmVlKTtcblxuICAgIGNvbnN0IGNzc1NlbGVjdG9yc1N0cmluZyA9IENTU19TRUxFQ1RPUlNfU1RSSU5HLFxuICAgICAgICAgIG1hcmtkb3duU3R5bGUgPSB0aGlzLmdldE1hcmtkb3duU3R5bGUoKSxcbiAgICAgICAgICBjc3MgPSBjc3NGcm9tTWFya2Rvd25TdHlsZUFuZENTU1NlbGVjdG9yc1N0cmluZyhtYXJrZG93blN0eWxlLCBjc3NTZWxlY3RvcnNTdHJpbmcpO1xuXG4gICAgbWFya2Rvd25TdHlsZUVsZW1lbnQuc2V0Q1NTKGNzcyk7XG5cbiAgICB0aGlzLnNldENTUyhjc3MpO1xuICB9XG5cbiAgbWFya2Rvd25TdHlsZSgpIHtcbiAgICB0aGlzLmhpZGVNYXJrZG93bkNvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuc2hvd01hcmtkb3duU3R5bGVDb250YWluZXJEaXYoKTtcbiAgfVxuXG4gIG1hcmtkb3duKCkge1xuICAgIHRoaXMuc2hvd01hcmtkb3duQ29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5oaWRlTWFya2Rvd25TdHlsZUNvbnRhaW5lckRpdigpO1xuICB9XG5cbiAgcGxhaW5UZXh0KCkge1xuICAgIHRoaXMuaGlkZUNTU0NvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuaGlkZUhUTUxDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVQcmV2aWV3Q29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5zaG93UGxhaW5UZXh0Q29udGFpbmVyRGl2KCk7XG5cbiAgICB0aGlzLmhpZGVDU1NQYXJzZVRyZWVUZXh0YXJlYSgpO1xuICAgIHRoaXMuc2hvd0hUTUxQYXJzZVRyZWVUZXh0YXJlYSgpO1xuICB9XG5cbiAgcHJldmlldygpIHtcbiAgICB0aGlzLmhpZGVDU1NDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVIVE1MQ29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5zaG93UHJldmlld0NvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuaGlkZVBsYWluVGV4dENvbnRhaW5lckRpdigpO1xuXG4gICAgdGhpcy5oaWRlQ1NTUGFyc2VUcmVlVGV4dGFyZWEoKTtcbiAgICB0aGlzLnNob3dIVE1MUGFyc2VUcmVlVGV4dGFyZWEoKTtcbiAgfVxuXG4gIGh0bWwoKSB7XG4gICAgdGhpcy5oaWRlQ1NTQ29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5zaG93SFRNTENvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuaGlkZVByZXZpZXdDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVQbGFpblRleHRDb250YWluZXJEaXYoKTtcblxuICAgIHRoaXMuaGlkZUNTU1BhcnNlVHJlZVRleHRhcmVhKCk7XG4gICAgdGhpcy5zaG93SFRNTFBhcnNlVHJlZVRleHRhcmVhKCk7XG4gIH1cblxuICBjc3MoKSB7XG4gICAgdGhpcy5zaG93Q1NTQ29udGFpbmVyRGl2KCk7XG4gICAgdGhpcy5oaWRlSFRNTENvbnRhaW5lckRpdigpO1xuICAgIHRoaXMuaGlkZVByZXZpZXdDb250YWluZXJEaXYoKTtcbiAgICB0aGlzLmhpZGVQbGFpblRleHRDb250YWluZXJEaXYoKTtcblxuICAgIHRoaXMuc2hvd0NTU1BhcnNlVHJlZVRleHRhcmVhKCk7XG4gICAgdGhpcy5oaWRlSFRNTFBhcnNlVHJlZVRleHRhcmVhKCk7XG4gIH1cblxuICByZXNldE1hcmtkb3duVG9rZW5zKCkge1xuICAgIGNvbnN0IG1hcmtkb3duVG9rZW5zID0gbnVsbDtcblxuICAgIHRoaXMuc2V0TWFya2Rvd25Ub2tlbnMobWFya2Rvd25Ub2tlbnMpO1xuICB9XG5cbiAgcmVzZXRNYXJrZG93blN0eWxlVG9rZW5zKCkge1xuICAgIGNvbnN0IG1hcmtkb3duU3R5bGVUb2tlbnMgPSBudWxsO1xuXG4gICAgdGhpcy5zZXRNYXJrZG93blN0eWxlVG9rZW5zKG1hcmtkb3duU3R5bGVUb2tlbnMpO1xuICB9XG5cbiAgcmVzZXREb2N1bWVudE1hcmtkb3duTm9kZSgpIHtcbiAgICBjb25zdCBkb2N1bWVudE1hcmtkb3duTm9kZSA9IG51bGw7XG5cbiAgICB0aGlzLnNldERvY3VtZW50TWFya2Rvd25Ob2RlKGRvY3VtZW50TWFya2Rvd25Ob2RlKTtcbiAgfVxuXG4gIHJlc2V0RG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSgpIHtcbiAgICBjb25zdCBkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlID0gbnVsbDtcblxuICAgIHRoaXMuc2V0RG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZShkb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlKTtcbiAgfVxuXG4gIGdldE1hcmtkb3duU3R5bGVFbGVtZW50KCkge1xuICAgIGNvbnN0IHsgbWFya2Rvd25TdHlsZUVsZW1lbnQgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIHJldHVybiBtYXJrZG93blN0eWxlRWxlbWVudDtcbiAgfVxuXG4gIGdldE1hcmtkb3duVG9rZW5zKCkge1xuICAgIGNvbnN0IHsgbWFya2Rvd25Ub2tlbnMgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICAgIHJldHVybiBtYXJrZG93blRva2VucztcbiAgfVxuXG4gIGdldE1hcmtkb3duU3R5bGVUb2tlbnMoKSB7XG4gICAgY29uc3QgeyBtYXJrZG93blN0eWxlVG9rZW5zIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgICByZXR1cm4gbWFya2Rvd25TdHlsZVRva2VucztcbiAgfVxuXG4gIGdldERvY3VtZW50TWFya2Rvd25Ob2RlKCkge1xuICAgIGNvbnN0IHsgdG9wbW9zdE1NYXJrZG93bk5vZGUgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICAgIHJldHVybiB0b3Btb3N0TU1hcmtkb3duTm9kZTtcbiAgfVxuXG4gIGdldERvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUoKSB7XG4gICAgY29uc3QgeyB0b3Btb3N0TU1hcmtkb3duU3R5bGVOb2RlIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgICByZXR1cm4gdG9wbW9zdE1NYXJrZG93blN0eWxlTm9kZTtcbiAgfVxuXG4gIHNldE1hcmtkb3duVG9rZW5zKG1hcmtkb3duVG9rZW5zKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBtYXJrZG93blRva2Vuc1xuICAgIH0pO1xuICB9XG5cbiAgc2V0TWFya2Rvd25TdHlsZVRva2VucyhtYXJrZG93blN0eWxlVG9rZW5zKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBtYXJrZG93blN0eWxlVG9rZW5zXG4gICAgfSk7XG4gIH1cblxuICBzZXREb2N1bWVudE1hcmtkb3duTm9kZSh0b3Btb3N0TU1hcmtkb3duTm9kZSkge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgICAgdG9wbW9zdE1NYXJrZG93bk5vZGVcbiAgICB9KTtcbiAgfVxuXG4gIHNldERvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUodG9wbW9zdE1NYXJrZG93blN0eWxlTm9kZSkge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgICAgdG9wbW9zdE1NYXJrZG93blN0eWxlTm9kZVxuICAgIH0pO1xuICB9XG5cbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIGNvbnN0IG1hcmtkb3duVG9rZW5zID0gbnVsbCxcbiAgICAgICAgICBtYXJrZG93blN0eWxlVG9rZW5zID0gbnVsbCxcbiAgICAgICAgICBkb2N1bWVudE1hcmtkb3duTm9kZSA9IG51bGwsXG4gICAgICAgICAgZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSA9IG51bGw7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIG1hcmtkb3duVG9rZW5zLFxuICAgICAgbWFya2Rvd25TdHlsZVRva2VucyxcbiAgICAgIGRvY3VtZW50TWFya2Rvd25Ob2RlLFxuICAgICAgZG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZVxuICAgIH0pO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgdGhpcy5tYXJrZG93bigpO1xuXG4gICAgdGhpcy5odG1sKCk7XG5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgd2lsbFVubW91bnQoKSB7XG4gICAgLy8vXG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIHJldHVybiAoXG5cbiAgICAgIDxDb2x1bW5zRGl2PlxuICAgICAgICA8TGVmdFNpemVhYmxlRGl2PlxuICAgICAgICAgIDxMZWZ0VGFiQnV0dG9uc0RpdiBvbkN1c3RvbU1hcmtkb3duPXt0aGlzLm1hcmtkb3duQ3VzdG9tSGFuZGxlcn0gb25DdXN0b21NYXJrZG93blN0eWxlPXt0aGlzLm1hcmtkb3duU3R5bGVDdXN0b21IYW5kbGVyfSAvPlxuICAgICAgICAgIDxNYXJrZG93bkNvbnRhaW5lckRpdiBvbkN1c3RvbUtleVVwPXt0aGlzLmtleVVwQ3VzdG9tSGFuZGxlcn0gLz5cbiAgICAgICAgICA8TWFya2Rvd25TdHlsZUNvbnRhaW5lckRpdiBvbkN1c3RvbUtleVVwPXt0aGlzLmtleVVwQ3VzdG9tSGFuZGxlcn0gLz5cbiAgICAgICAgPC9MZWZ0U2l6ZWFibGVEaXY+XG4gICAgICAgIDxWZXJ0aWNhbFNwbGl0dGVyRGl2Lz5cbiAgICAgICAgPENvbHVtbkRpdj5cbiAgICAgICAgICA8Um93c0Rpdj5cbiAgICAgICAgICAgIDxSaWdodFRhYkJ1dHRvbnNEaXYgb25DdXN0b21DU1M9e3RoaXMuY3NzQ3VzdG9tSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DdXN0b21IVE1MPXt0aGlzLmh0bWxDdXN0b21IYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkN1c3RvbVByZXZpZXc9e3RoaXMucHJldmlld0N1c3RvbUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ3VzdG9tUGxhaW5UZXh0PXt0aGlzLnBsYWluVGV4dEN1c3RvbUhhbmRsZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFBhZ2VCdXR0b25zRGl2IG9uQ3VzdG9tUGFnZVVwZGF0ZT17dGhpcy5wYWdlVXBkYXRlQ3VzdG9tSGFuZGxlcn0gLz5cbiAgICAgICAgICAgIDxDU1NDb250YWluZXJEaXYvPlxuICAgICAgICAgICAgPEhUTUxDb250YWluZXJEaXYvPlxuICAgICAgICAgICAgPFByZXZpZXdDb250YWluZXJEaXYvPlxuICAgICAgICAgICAgPFBsYWluVGV4dENvbnRhaW5lckRpdi8+XG4gICAgICAgICAgICA8SFRNTFBhcnNlVHJlZVRleHRhcmVhLz5cbiAgICAgICAgICAgIDxDU1NQYXJzZVRyZWVUZXh0YXJlYS8+XG4gICAgICAgICAgPC9Sb3dzRGl2PlxuICAgICAgICA8L0NvbHVtbkRpdj5cbiAgICAgIDwvQ29sdW1uc0Rpdj5cblxuICAgICk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgdGhpcy5zZXRJbml0aWFsU3RhdGUoKTtcblxuICAgIGNvbnN0IHsgaW5pdGlhbE1hcmtkb3duLCBpbml0aWFsTWFya2Rvd25TdHlsZSB9ID0gdGhpcy5jb25zdHJ1Y3RvcixcbiAgICAgICAgICBtYXJrZG93blN0eWxlID0gaW5pdGlhbE1hcmtkb3duU3R5bGUsIC8vL1xuICAgICAgICAgIG1hcmtkb3duID0gaW5pdGlhbE1hcmtkb3duOyAvLy9cblxuICAgIHRoaXMuc2V0TWFya2Rvd25TdHlsZShtYXJrZG93blN0eWxlKTtcblxuICAgIHRoaXMuc2V0TWFya2Rvd24obWFya2Rvd24pO1xuICB9XG5cbiAgc3RhdGljIGluaXRpYWxNYXJrZG93biA9IGBcbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgYW5kIEFudGktOTk2IExpY2Vuc2UgXG5gO1xuXG4gIHN0YXRpYyBpbml0aWFsTWFya2Rvd25TdHlsZSA9IFwiXCI7XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcImRpdlwiO1xuXG4gIHN0YXRpYyBpZ25vcmVkUHJvcGVydGllcyA9IFtcbiAgICBcIm1hcmtkb3duU3R5bGVFbGVtZW50XCJcbiAgXTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInZpZXdcIlxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoVmlldylgXG5cbiAgcGFkZGluZzogMXJlbTtcbiAgXG5gO1xuXG5mdW5jdGlvbiBwYXRoVG9VUkwocGF0aCkge1xuICBjb25zdCB1cmwgPSBgaHR0cHM6Ly9kamFsYmF0LmNvbS8ke3BhdGh9YDtcblxuICByZXR1cm4gdXJsO1xufVxuIl0sIm5hbWVzIjpbInRva2Vuc0Zyb21NYXJrZG93biIsInRva2Vuc0Zyb21NYXJrZG93blN0eWxlIiwiZG9jdW1lbnRNYXJrZG93bk5vZGVGcm9tVG9rZW5zIiwiaHRtbEZyb21NYXJrZG93bk9wdGlvbnNBbmRJbXBvcnRlciIsImRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGVGcm9tVG9rZW5zIiwidG9wbW9zdEhUTUxOb2RlRnJvbURvY3VtZW50TWFya2Rvd25Ob2RlIiwiY3NzRnJvbU1hcmtkb3duU3R5bGVBbmRDU1NTZWxlY3RvcnNTdHJpbmciLCJ0b3Btb3N0Q1NTTm9kZUZyb21Eb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlIiwiZ3JhbW1hclV0aWxpdGllcyIsIlZpZXciLCJFbGVtZW50IiwicGFnZVVwZGF0ZUN1c3RvbUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJpbmRleCIsInVwZGF0ZUhUTUwiLCJtYXJrZG93blN0eWxlQ3VzdG9tSGFuZGxlciIsIm1hcmtkb3duU3R5bGUiLCJtYXJrZG93bkN1c3RvbUhhbmRsZXIiLCJtYXJrZG93biIsInBsYWluVGV4dEN1c3RvbUhhbmRsZXIiLCJwbGFpblRleHQiLCJwcmV2aWV3Q3VzdG9tSGFuZGxlciIsInByZXZpZXciLCJrZXlVcEN1c3RvbUhhbmRsZXIiLCJ1cGRhdGUiLCJodG1sQ3VzdG9tSGFuZGxlciIsImh0bWwiLCJjc3NDdXN0b21IYW5kbGVyIiwiY3NzIiwidXBkYXRlTWFya2Rvd25TdHlsZSIsInVwZGF0ZU1hcmtkb3duIiwidXBkYXRlQ1NTIiwiZ2V0TWFya2Rvd25TdHlsZSIsInRva2VucyIsImRvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUiLCJyZXNldE1hcmtkb3duU3R5bGVUb2tlbnMiLCJyZXNldERvY3VtZW50TWFya2Rvd25TdHlsZU5vZGUiLCJjbGVhck1hcmtkb3duU3R5bGVQYXJzZVRyZWVUZXh0YXJlYSIsIm5vZGUiLCJwYXJzZVRyZWUiLCJhc1BhcnNlVHJlZSIsIm1hcmtkb3duU3R5bGVUb2tlbnMiLCJzZXRNYXJrZG93blN0eWxlVG9rZW5zIiwic2V0RG9jdW1lbnRNYXJrZG93blN0eWxlTm9kZSIsInVwZGF0ZU1hcmtkb3duU3R5bGVQYXJzZVRyZWVUZXh0YXJlYSIsImdldE1hcmtkb3duIiwiZG9jdW1lbnRNYXJrZG93bk5vZGUiLCJyZXNldE1hcmtkb3duVG9rZW5zIiwicmVzZXREb2N1bWVudE1hcmtkb3duTm9kZSIsImNsZWFyTWFya2Rvd25QYXJzZVRyZWVUZXh0YXJlYSIsImNvbnRleHQiLCJpbXBvcnRlciIsInJlc29sdmUiLCJkb2N1bWVudE1hcmtkb3duTm9kZVBhcnNlVHJlZSIsIm1hcmtkb3duUGFyc2VUcmVlIiwibWFya2Rvd25Ub2tlbnMiLCJzZXRNYXJrZG93blRva2VucyIsInNldERvY3VtZW50TWFya2Rvd25Ob2RlIiwidXBkYXRlTWFya2Rvd25QYXJzZVRyZWVUZXh0YXJlYSIsImNsZWFyWE1QIiwiY2xlYXJQcmV2aWV3RGl2IiwiY2xlYXJQbGFpblRleHRUZXh0YXJlYSIsImNsZWFySFRNTFBhcnNlVHJlZVRleHRhcmVhIiwiY2xlYXJQYWdlQnV0dG9uc0RpdiIsImdldERvY3VtZW50TWFya2Rvd25Ob2RlIiwidG9wbW9zdEhUTUxOb2RlIiwiZ2V0TWFya2Rvd25Ub2tlbnMiLCJkaXZpc2lvbkhUTUxOb2RlIiwiZ2V0RGl2aXNpb25IVE1MTm9kZUF0IiwiZGl2aXNpb25IVE1MTk9kZVBhcnNlVHJlZSIsImh0bWxQYXJzZVRyZWUiLCJkaXZpc2lvbkhUTUxOb2RlcyIsImdldERpdmlzaW9uSFRNTE5vZGVzIiwibGVuZ3RoIiwicGF0aFRvVVJMIiwidXBkYXRlUHJldmlld0RpdiIsInVwZGF0ZVBsYWluVGV4dFRleHRhcmVhIiwidXBkYXRlSFRNTFBhcnNlVHJlZVRleHRhcmVhIiwidXBkYXRlUGFnZUJ1dHRvbnNEaXYiLCJvcHRpb25zIiwiaW5kZXhPcHRpb25zIiwidXBkYXRlWE1QIiwiZ2V0TWFya2Rvd25TdHlsZVRva2VucyIsIm1hcmtkb3duU3R5bGVFbGVtZW50IiwiZ2V0TWFya2Rvd25TdHlsZUVsZW1lbnQiLCJnZXREb2N1bWVudE1hcmtkb3duU3R5bGVOb2RlIiwiRU1QVFlfU1RSSU5HIiwic2V0Q1NTIiwiY2xlYXJDU1NQYXJzZVRyZWVUZXh0YXJlYSIsImNsZWFyQ1NTIiwidG9wbW9zdENTU05vZGUiLCJ0b3Btb3N0Q1NTTm9kZVBhcnNlVHJlZSIsImNzc1BhcnNlVHJlZSIsInVwZGF0ZUNTU1BhcnNlVHJlZVRleHRhcmVhIiwiY3NzU2VsZWN0b3JzU3RyaW5nIiwiQ1NTX1NFTEVDVE9SU19TVFJJTkciLCJoaWRlTWFya2Rvd25Db250YWluZXJEaXYiLCJzaG93TWFya2Rvd25TdHlsZUNvbnRhaW5lckRpdiIsInNob3dNYXJrZG93bkNvbnRhaW5lckRpdiIsImhpZGVNYXJrZG93blN0eWxlQ29udGFpbmVyRGl2IiwiaGlkZUNTU0NvbnRhaW5lckRpdiIsImhpZGVIVE1MQ29udGFpbmVyRGl2IiwiaGlkZVByZXZpZXdDb250YWluZXJEaXYiLCJzaG93UGxhaW5UZXh0Q29udGFpbmVyRGl2IiwiaGlkZUNTU1BhcnNlVHJlZVRleHRhcmVhIiwic2hvd0hUTUxQYXJzZVRyZWVUZXh0YXJlYSIsInNob3dQcmV2aWV3Q29udGFpbmVyRGl2IiwiaGlkZVBsYWluVGV4dENvbnRhaW5lckRpdiIsInNob3dIVE1MQ29udGFpbmVyRGl2Iiwic2hvd0NTU0NvbnRhaW5lckRpdiIsInNob3dDU1NQYXJzZVRyZWVUZXh0YXJlYSIsImhpZGVIVE1MUGFyc2VUcmVlVGV4dGFyZWEiLCJwcm9wZXJ0aWVzIiwiZ2V0U3RhdGUiLCJ0b3Btb3N0TU1hcmtkb3duTm9kZSIsInRvcG1vc3RNTWFya2Rvd25TdHlsZU5vZGUiLCJ1cGRhdGVTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiZGlkTW91bnQiLCJ3aWxsVW5tb3VudCIsImNoaWxkRWxlbWVudHMiLCJDb2x1bW5zRGl2IiwiTGVmdFNpemVhYmxlRGl2IiwiTGVmdFRhYkJ1dHRvbnNEaXYiLCJvbkN1c3RvbU1hcmtkb3duIiwib25DdXN0b21NYXJrZG93blN0eWxlIiwiTWFya2Rvd25Db250YWluZXJEaXYiLCJvbkN1c3RvbUtleVVwIiwiTWFya2Rvd25TdHlsZUNvbnRhaW5lckRpdiIsIlZlcnRpY2FsU3BsaXR0ZXJEaXYiLCJDb2x1bW5EaXYiLCJSb3dzRGl2IiwiUmlnaHRUYWJCdXR0b25zRGl2Iiwib25DdXN0b21DU1MiLCJvbkN1c3RvbUhUTUwiLCJvbkN1c3RvbVByZXZpZXciLCJvbkN1c3RvbVBsYWluVGV4dCIsIlBhZ2VCdXR0b25zRGl2Iiwib25DdXN0b21QYWdlVXBkYXRlIiwiQ1NTQ29udGFpbmVyRGl2IiwiSFRNTENvbnRhaW5lckRpdiIsIlByZXZpZXdDb250YWluZXJEaXYiLCJQbGFpblRleHRDb250YWluZXJEaXYiLCJIVE1MUGFyc2VUcmVlVGV4dGFyZWEiLCJDU1NQYXJzZVRyZWVUZXh0YXJlYSIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0IiwiaW5pdGlhbE1hcmtkb3duIiwiaW5pdGlhbE1hcmtkb3duU3R5bGUiLCJzZXRNYXJrZG93blN0eWxlIiwic2V0TWFya2Rvd24iLCJ0YWdOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsIndpdGhTdHlsZSIsInBhdGgiLCJ1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
package/lib/example.js DELETED
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- require("juxtapose");
6
- const _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
7
- const _easy = require("easy");
8
- const _index = require("./index");
9
- const _view = /*#__PURE__*/ _interop_require_default(require("./example/view"));
10
- const _constants = require("./example/constants");
11
- function _interop_require_default(obj) {
12
- return obj && obj.__esModule ? obj : {
13
- default: obj
14
- };
15
- }
16
- const { renderStyles } = _easywithstyle.default;
17
- const cssSelectorsString = _constants.CSS_SELECTORS_STRING;
18
- _index.DefaultMarkdownStyleElement.fromCSSSelectorsString(cssSelectorsString);
19
- const markdownStyleElement = _index.MarkdownStyleElement.fromCSSSelectorsString(cssSelectorsString);
20
- renderStyles();
21
- const body = new _easy.Body();
22
- body.mount(/*#__PURE__*/ React.createElement(_view.default, {
23
- markdownStyleElement: markdownStyleElement
24
- }));
25
-
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leGFtcGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgXCJqdXh0YXBvc2VcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7ICAvLy9cblxuaW1wb3J0IHsgQm9keSB9IGZyb20gXCJlYXN5XCI7XG5pbXBvcnQgeyBNYXJrZG93blN0eWxlRWxlbWVudCwgRGVmYXVsdE1hcmtkb3duU3R5bGVFbGVtZW50IH0gZnJvbSBcIi4vaW5kZXhcIjsgIC8vL1xuXG5pbXBvcnQgVmlldyBmcm9tIFwiLi9leGFtcGxlL3ZpZXdcIjtcblxuaW1wb3J0IHsgQ1NTX1NFTEVDVE9SU19TVFJJTkcgfSBmcm9tIFwiLi9leGFtcGxlL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IHJlbmRlclN0eWxlcyB9ID0gd2l0aFN0eWxlO1xuXG5jb25zdCBjc3NTZWxlY3RvcnNTdHJpbmcgPSBDU1NfU0VMRUNUT1JTX1NUUklORztcblxuRGVmYXVsdE1hcmtkb3duU3R5bGVFbGVtZW50LmZyb21DU1NTZWxlY3RvcnNTdHJpbmcoY3NzU2VsZWN0b3JzU3RyaW5nKTtcblxuY29uc3QgbWFya2Rvd25TdHlsZUVsZW1lbnQgPSBNYXJrZG93blN0eWxlRWxlbWVudC5mcm9tQ1NTU2VsZWN0b3JzU3RyaW5nKGNzc1NlbGVjdG9yc1N0cmluZyk7XG5cbnJlbmRlclN0eWxlcygpO1xuXG5jb25zdCBib2R5ID0gbmV3IEJvZHkoKTtcblxuYm9keS5tb3VudChcblxuICA8VmlldyBtYXJrZG93blN0eWxlRWxlbWVudD17bWFya2Rvd25TdHlsZUVsZW1lbnR9IC8+XG5cbik7XG4iXSwibmFtZXMiOlsicmVuZGVyU3R5bGVzIiwid2l0aFN0eWxlIiwiY3NzU2VsZWN0b3JzU3RyaW5nIiwiQ1NTX1NFTEVDVE9SU19TVFJJTkciLCJEZWZhdWx0TWFya2Rvd25TdHlsZUVsZW1lbnQiLCJmcm9tQ1NTU2VsZWN0b3JzU3RyaW5nIiwibWFya2Rvd25TdHlsZUVsZW1lbnQiLCJNYXJrZG93blN0eWxlRWxlbWVudCIsImJvZHkiLCJCb2R5IiwibW91bnQiLCJWaWV3Il0sIm1hcHBpbmdzIjoiQUFBQTs7OztRQUVPO3NFQUVlO3NCQUVEO3VCQUM2Qzs2REFFakQ7MkJBRW9COzs7Ozs7QUFFckMsTUFBTSxFQUFFQSxZQUFZLEVBQUUsR0FBR0Msc0JBQVM7QUFFbEMsTUFBTUMscUJBQXFCQywrQkFBb0I7QUFFL0NDLGtDQUEyQixDQUFDQyxzQkFBc0IsQ0FBQ0g7QUFFbkQsTUFBTUksdUJBQXVCQywyQkFBb0IsQ0FBQ0Ysc0JBQXNCLENBQUNIO0FBRXpFRjtBQUVBLE1BQU1RLE9BQU8sSUFBSUMsVUFBSTtBQUVyQkQsS0FBS0UsS0FBSyxlQUVSLG9CQUFDQyxhQUFJO0lBQUNMLHNCQUFzQkEifQ==
package/lib/index/item.js DELETED
@@ -1,40 +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 IndexItem;
9
- }
10
- });
11
- const _necessary = require("necessary");
12
- const { first } = _necessary.arrayUtilities;
13
- class IndexItem {
14
- constructor(lowerCaseLetter, wordOrPhrase, pageNumbers){
15
- this.lowerCaseLetter = lowerCaseLetter;
16
- this.wordOrPhrase = wordOrPhrase;
17
- this.pageNumbers = pageNumbers;
18
- }
19
- getLowerCaseLetter() {
20
- return this.lowerCaseLetter;
21
- }
22
- getWordOrPhrase() {
23
- return this.wordOrPhrase;
24
- }
25
- getPageNumbers() {
26
- return this.pageNumbers;
27
- }
28
- matchLetter(letter) {
29
- const matchesLetter = this.lowerCaseLetter === letter;
30
- return matchesLetter;
31
- }
32
- static fromWordOrPhraseAndPageNumbers(wordOrPhrase, pageNumbers) {
33
- const lowerCaseWordOrPhrase = wordOrPhrase.toLowerCase(), lowerCaseLetters = [
34
- ...lowerCaseWordOrPhrase
35
- ], firstLowerCaseLetter = first(lowerCaseLetters), lowerCaseLetter = firstLowerCaseLetter, indexItem = new IndexItem(lowerCaseLetter, wordOrPhrase, pageNumbers);
36
- return indexItem;
37
- }
38
- }
39
-
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC9pdGVtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaXJzdCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEluZGV4SXRlbSB7XG4gIGNvbnN0cnVjdG9yKGxvd2VyQ2FzZUxldHRlciwgd29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykge1xuICAgIHRoaXMubG93ZXJDYXNlTGV0dGVyID0gbG93ZXJDYXNlTGV0dGVyO1xuICAgIHRoaXMud29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlO1xuICAgIHRoaXMucGFnZU51bWJlcnMgPSBwYWdlTnVtYmVycztcbiAgfVxuXG4gIGdldExvd2VyQ2FzZUxldHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5sb3dlckNhc2VMZXR0ZXI7XG4gIH1cblxuICBnZXRXb3JkT3JQaHJhc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMud29yZE9yUGhyYXNlO1xuICB9XG5cbiAgZ2V0UGFnZU51bWJlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFnZU51bWJlcnM7XG4gIH1cblxuICBtYXRjaExldHRlcihsZXR0ZXIpIHtcbiAgICBjb25zdCBtYXRjaGVzTGV0dGVyID0gKHRoaXMubG93ZXJDYXNlTGV0dGVyID09PSBsZXR0ZXIpO1xuXG4gICAgcmV0dXJuIG1hdGNoZXNMZXR0ZXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbVdvcmRPclBocmFzZUFuZFBhZ2VOdW1iZXJzKHdvcmRPclBocmFzZSwgcGFnZU51bWJlcnMpIHtcbiAgICBjb25zdCBsb3dlckNhc2VXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICBsb3dlckNhc2VMZXR0ZXJzID0gW1xuICAgICAgICAgICAgLi4ubG93ZXJDYXNlV29yZE9yUGhyYXNlXG4gICAgICAgICAgXSxcbiAgICAgICAgICBmaXJzdExvd2VyQ2FzZUxldHRlciA9IGZpcnN0KGxvd2VyQ2FzZUxldHRlcnMpLFxuICAgICAgICAgIGxvd2VyQ2FzZUxldHRlciA9IGZpcnN0TG93ZXJDYXNlTGV0dGVyLCAvLy9cbiAgICAgICAgICBpbmRleEl0ZW0gPSBuZXcgSW5kZXhJdGVtKGxvd2VyQ2FzZUxldHRlciwgd29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycyk7XG5cbiAgICByZXR1cm4gaW5kZXhJdGVtO1xuICB9XG59XG4iXSwibmFtZXMiOlsiSW5kZXhJdGVtIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImxvd2VyQ2FzZUxldHRlciIsIndvcmRPclBocmFzZSIsInBhZ2VOdW1iZXJzIiwiZ2V0TG93ZXJDYXNlTGV0dGVyIiwiZ2V0V29yZE9yUGhyYXNlIiwiZ2V0UGFnZU51bWJlcnMiLCJtYXRjaExldHRlciIsImxldHRlciIsIm1hdGNoZXNMZXR0ZXIiLCJmcm9tV29yZE9yUGhyYXNlQW5kUGFnZU51bWJlcnMiLCJsb3dlckNhc2VXb3JkT3JQaHJhc2UiLCJ0b0xvd2VyQ2FzZSIsImxvd2VyQ2FzZUxldHRlcnMiLCJmaXJzdExvd2VyQ2FzZUxldHRlciIsImluZGV4SXRlbSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFxQkE7OzsyQkFKVTtBQUUvQixNQUFNLEVBQUVDLEtBQUssRUFBRSxHQUFHQyx5QkFBYztBQUVqQixNQUFNRjtJQUNuQixZQUFZRyxlQUFlLEVBQUVDLFlBQVksRUFBRUMsV0FBVyxDQUFFO1FBQ3RELElBQUksQ0FBQ0YsZUFBZSxHQUFHQTtRQUN2QixJQUFJLENBQUNDLFlBQVksR0FBR0E7UUFDcEIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO0lBQ3JCO0lBRUFDLHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQ0gsZUFBZTtJQUM3QjtJQUVBSSxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUNILFlBQVk7SUFDMUI7SUFFQUksaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUNILFdBQVc7SUFDekI7SUFFQUksWUFBWUMsTUFBTSxFQUFFO1FBQ2xCLE1BQU1DLGdCQUFpQixJQUFJLENBQUNSLGVBQWUsS0FBS087UUFFaEQsT0FBT0M7SUFDVDtJQUVBLE9BQU9DLCtCQUErQlIsWUFBWSxFQUFFQyxXQUFXLEVBQUU7UUFDL0QsTUFBTVEsd0JBQXdCVCxhQUFhVSxXQUFXLElBQ2hEQyxtQkFBbUI7ZUFDZEY7U0FDSixFQUNERyx1QkFBdUJmLE1BQU1jLG1CQUM3Qlosa0JBQWtCYSxzQkFDbEJDLFlBQVksSUFBSWpCLFVBQVVHLGlCQUFpQkMsY0FBY0M7UUFFL0QsT0FBT1k7SUFDVDtBQUNGIn0=
package/lib/index/list.js DELETED
@@ -1,55 +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 IndexList;
9
- }
10
- });
11
- const _necessary = require("necessary");
12
- const _item = /*#__PURE__*/ _interop_require_default(require("../index/item"));
13
- const _index = require("../utilities/index");
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- const { strcmp } = _necessary.stringUtilities;
20
- class IndexList {
21
- constructor(indexItems){
22
- this.indexItems = indexItems;
23
- }
24
- getIndexItems() {
25
- return this.indexItems;
26
- }
27
- reduceIndexItemByLetter(letter, callback) {
28
- const indexItems = this.indexItems.filter((indexItem)=>{
29
- const indexItemMatchesLetter = indexItem.matchLetter(letter);
30
- if (indexItemMatchesLetter) {
31
- return true;
32
- }
33
- });
34
- const result = indexItems.map(callback);
35
- return result;
36
- }
37
- static fromIndexDirectiveHTMLNodeAndDivisionHTMLNodes(indexDirectiveHTMLNode, divisionHTMLNodes, context) {
38
- const indexMap = (0, _index.indexMapFromIndexDirectiveHTMLNodeAndDivisionHTMLNodes)(indexDirectiveHTMLNode, divisionHTMLNodes, context), indexItems = indexItemsFromIndexMap(indexMap), indexList = new IndexList(indexItems);
39
- return indexList;
40
- }
41
- }
42
- function indexItemsFromIndexMap(indexMap) {
43
- const wordsOrPhrases = Object.keys(indexMap); ///
44
- wordsOrPhrases.sort((wordOrPhraseA, wordOrPhraseB)=>{
45
- const lowerCaseWordOrPhraseA = wordOrPhraseA.toLowerCase(), lowerCaseWordOrPhraseB = wordOrPhraseB.toLowerCase(), difference = strcmp(lowerCaseWordOrPhraseA, lowerCaseWordOrPhraseB);
46
- return difference;
47
- });
48
- const indexItems = wordsOrPhrases.map((wordOrPhrase, index)=>{
49
- const pageNumbers = indexMap[wordOrPhrase], indexItem = _item.default.fromWordOrPhraseAndPageNumbers(wordOrPhrase, pageNumbers);
50
- return indexItem;
51
- });
52
- return indexItems;
53
- }
54
-
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC9saXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzdHJpbmdVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBJbmRleEl0ZW0gZnJvbSBcIi4uL2luZGV4L2l0ZW1cIjtcblxuaW1wb3J0IHsgaW5kZXhNYXBGcm9tSW5kZXhEaXJlY3RpdmVIVE1MTm9kZUFuZERpdmlzaW9uSFRNTE5vZGVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9pbmRleFwiO1xuXG5jb25zdCB7IHN0cmNtcCB9ID0gc3RyaW5nVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbmRleExpc3Qge1xuICBjb25zdHJ1Y3RvcihpbmRleEl0ZW1zKSB7XG4gICAgdGhpcy5pbmRleEl0ZW1zID0gaW5kZXhJdGVtcztcbiAgfVxuXG4gIGdldEluZGV4SXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5kZXhJdGVtcztcbiAgfVxuXG4gIHJlZHVjZUluZGV4SXRlbUJ5TGV0dGVyKGxldHRlciwgY2FsbGJhY2spIHtcbiAgICBjb25zdCBpbmRleEl0ZW1zID0gdGhpcy5pbmRleEl0ZW1zLmZpbHRlcigoaW5kZXhJdGVtKSA9PiB7XG4gICAgICBjb25zdCBpbmRleEl0ZW1NYXRjaGVzTGV0dGVyID0gaW5kZXhJdGVtLm1hdGNoTGV0dGVyKGxldHRlcik7XG5cbiAgICAgIGlmIChpbmRleEl0ZW1NYXRjaGVzTGV0dGVyKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gaW5kZXhJdGVtcy5tYXAoY2FsbGJhY2spO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSW5kZXhEaXJlY3RpdmVIVE1MTm9kZUFuZERpdmlzaW9uSFRNTE5vZGVzKGluZGV4RGlyZWN0aXZlSFRNTE5vZGUsIGRpdmlzaW9uSFRNTE5vZGVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgaW5kZXhNYXAgPSBpbmRleE1hcEZyb21JbmRleERpcmVjdGl2ZUhUTUxOb2RlQW5kRGl2aXNpb25IVE1MTm9kZXMoaW5kZXhEaXJlY3RpdmVIVE1MTm9kZSwgZGl2aXNpb25IVE1MTm9kZXMsIGNvbnRleHQpLFxuICAgICAgICAgIGluZGV4SXRlbXMgPSBpbmRleEl0ZW1zRnJvbUluZGV4TWFwKGluZGV4TWFwKSxcbiAgICAgICAgICBpbmRleExpc3QgPSBuZXcgSW5kZXhMaXN0KGluZGV4SXRlbXMpO1xuXG4gICAgcmV0dXJuIGluZGV4TGlzdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbmRleEl0ZW1zRnJvbUluZGV4TWFwKGluZGV4TWFwKSB7XG4gIGNvbnN0IHdvcmRzT3JQaHJhc2VzID0gT2JqZWN0LmtleXMoaW5kZXhNYXApOyAvLy9cblxuICB3b3Jkc09yUGhyYXNlcy5zb3J0KCh3b3JkT3JQaHJhc2VBLCB3b3JkT3JQaHJhc2VCKSA9PiB7XG4gICAgY29uc3QgbG93ZXJDYXNlV29yZE9yUGhyYXNlQSA9IHdvcmRPclBocmFzZUEudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICBsb3dlckNhc2VXb3JkT3JQaHJhc2VCID0gd29yZE9yUGhyYXNlQi50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgIGRpZmZlcmVuY2UgPSBzdHJjbXAobG93ZXJDYXNlV29yZE9yUGhyYXNlQSwgbG93ZXJDYXNlV29yZE9yUGhyYXNlQik7XG5cbiAgICByZXR1cm4gZGlmZmVyZW5jZTtcbiAgfSk7XG5cbiAgY29uc3QgaW5kZXhJdGVtcyA9IHdvcmRzT3JQaHJhc2VzLm1hcCgod29yZE9yUGhyYXNlLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHBhZ2VOdW1iZXJzID0gaW5kZXhNYXBbd29yZE9yUGhyYXNlXSxcbiAgICAgICAgICBpbmRleEl0ZW0gPSBJbmRleEl0ZW0uZnJvbVdvcmRPclBocmFzZUFuZFBhZ2VOdW1iZXJzKHdvcmRPclBocmFzZSwgcGFnZU51bWJlcnMpO1xuXG4gICAgcmV0dXJuIGluZGV4SXRlbTtcbiAgfSlcblxuICByZXR1cm4gaW5kZXhJdGVtcztcbn1cbiJdLCJuYW1lcyI6WyJJbmRleExpc3QiLCJzdHJjbXAiLCJzdHJpbmdVdGlsaXRpZXMiLCJpbmRleEl0ZW1zIiwiZ2V0SW5kZXhJdGVtcyIsInJlZHVjZUluZGV4SXRlbUJ5TGV0dGVyIiwibGV0dGVyIiwiY2FsbGJhY2siLCJmaWx0ZXIiLCJpbmRleEl0ZW0iLCJpbmRleEl0ZW1NYXRjaGVzTGV0dGVyIiwibWF0Y2hMZXR0ZXIiLCJyZXN1bHQiLCJtYXAiLCJmcm9tSW5kZXhEaXJlY3RpdmVIVE1MTm9kZUFuZERpdmlzaW9uSFRNTE5vZGVzIiwiaW5kZXhEaXJlY3RpdmVIVE1MTm9kZSIsImRpdmlzaW9uSFRNTE5vZGVzIiwiY29udGV4dCIsImluZGV4TWFwIiwiaW5kZXhNYXBGcm9tSW5kZXhEaXJlY3RpdmVIVE1MTm9kZUFuZERpdmlzaW9uSFRNTE5vZGVzIiwiaW5kZXhJdGVtc0Zyb21JbmRleE1hcCIsImluZGV4TGlzdCIsIndvcmRzT3JQaHJhc2VzIiwiT2JqZWN0Iiwia2V5cyIsInNvcnQiLCJ3b3JkT3JQaHJhc2VBIiwid29yZE9yUGhyYXNlQiIsImxvd2VyQ2FzZVdvcmRPclBocmFzZUEiLCJ0b0xvd2VyQ2FzZSIsImxvd2VyQ2FzZVdvcmRPclBocmFzZUIiLCJkaWZmZXJlbmNlIiwid29yZE9yUGhyYXNlIiwiaW5kZXgiLCJwYWdlTnVtYmVycyIsIkluZGV4SXRlbSIsImZyb21Xb3JkT3JQaHJhc2VBbmRQYWdlTnVtYmVycyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7OzsyQkFSVzs2REFFVjt1QkFFaUQ7Ozs7OztBQUV2RSxNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHQywwQkFBZTtBQUVuQixNQUFNRjtJQUNuQixZQUFZRyxVQUFVLENBQUU7UUFDdEIsSUFBSSxDQUFDQSxVQUFVLEdBQUdBO0lBQ3BCO0lBRUFDLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDRCxVQUFVO0lBQ3hCO0lBRUFFLHdCQUF3QkMsTUFBTSxFQUFFQyxRQUFRLEVBQUU7UUFDeEMsTUFBTUosYUFBYSxJQUFJLENBQUNBLFVBQVUsQ0FBQ0ssTUFBTSxDQUFDLENBQUNDO1lBQ3pDLE1BQU1DLHlCQUF5QkQsVUFBVUUsV0FBVyxDQUFDTDtZQUVyRCxJQUFJSSx3QkFBd0I7Z0JBQzFCLE9BQU87WUFDVDtRQUNGO1FBRUEsTUFBTUUsU0FBU1QsV0FBV1UsR0FBRyxDQUFDTjtRQUU5QixPQUFPSztJQUNUO0lBRUEsT0FBT0UsK0NBQStDQyxzQkFBc0IsRUFBRUMsaUJBQWlCLEVBQUVDLE9BQU8sRUFBRTtRQUN4RyxNQUFNQyxXQUFXQyxJQUFBQSw2REFBc0QsRUFBQ0osd0JBQXdCQyxtQkFBbUJDLFVBQzdHZCxhQUFhaUIsdUJBQXVCRixXQUNwQ0csWUFBWSxJQUFJckIsVUFBVUc7UUFFaEMsT0FBT2tCO0lBQ1Q7QUFDRjtBQUVBLFNBQVNELHVCQUF1QkYsUUFBUTtJQUN0QyxNQUFNSSxpQkFBaUJDLE9BQU9DLElBQUksQ0FBQ04sV0FBVyxHQUFHO0lBRWpESSxlQUFlRyxJQUFJLENBQUMsQ0FBQ0MsZUFBZUM7UUFDbEMsTUFBTUMseUJBQXlCRixjQUFjRyxXQUFXLElBQ2xEQyx5QkFBeUJILGNBQWNFLFdBQVcsSUFDbERFLGFBQWE5QixPQUFPMkIsd0JBQXdCRTtRQUVsRCxPQUFPQztJQUNUO0lBRUEsTUFBTTVCLGFBQWFtQixlQUFlVCxHQUFHLENBQUMsQ0FBQ21CLGNBQWNDO1FBQ25ELE1BQU1DLGNBQWNoQixRQUFRLENBQUNjLGFBQWEsRUFDcEN2QixZQUFZMEIsYUFBUyxDQUFDQyw4QkFBOEIsQ0FBQ0osY0FBY0U7UUFFekUsT0FBT3pCO0lBQ1Q7SUFFQSxPQUFPTjtBQUNUIn0=