yapp 5.1.322 → 5.1.324

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 (84) hide show
  1. package/lib/colours.js +114 -0
  2. package/lib/constants.js +46 -0
  3. package/lib/customEventTypes.js +13 -0
  4. package/lib/defaults.js +42 -0
  5. package/lib/div/gutter.js +73 -0
  6. package/lib/div/lineNumbers.js +62 -0
  7. package/lib/div/pretty.js +78 -0
  8. package/lib/div/syntax.js +101 -0
  9. package/lib/example/constants.js +13 -0
  10. package/lib/example/view/div/sizeable/left.js +30 -0
  11. package/lib/example/view/div/sizeable/middle.js +30 -0
  12. package/lib/example/view/div/sizeable/right.js +30 -0
  13. package/lib/example/view/div/sizeable/top.js +30 -0
  14. package/lib/example/view/input.js +27 -0
  15. package/lib/example/view/javascript.js +51 -0
  16. package/lib/example/view/json.js +38 -0
  17. package/lib/example/view/plainText.js +27 -0
  18. package/lib/example/view/subHeading.js +29 -0
  19. package/lib/example/view/textarea/bnf.js +39 -0
  20. package/lib/example/view/textarea/lexicalEntries.js +39 -0
  21. package/lib/example/view/textarea/parseTree.js +46 -0
  22. package/lib/example/view/textarea/tokens.js +59 -0
  23. package/lib/example/view/textarea.js +31 -0
  24. package/lib/example/view/xml.js +42 -0
  25. package/lib/example/view.js +107 -0
  26. package/lib/example/yapp.js +25 -0
  27. package/lib/example.js +39 -0
  28. package/lib/index.js +55 -0
  29. package/lib/languages.js +30 -0
  30. package/lib/lexer/javascript.js +55 -0
  31. package/lib/lexer/json.js +46 -0
  32. package/lib/lexer/plainText.js +37 -0
  33. package/lib/lexer/xml.js +43 -0
  34. package/lib/mixins/style.js +72 -0
  35. package/lib/parser/javascript.js +289 -0
  36. package/lib/parser/json.js +44 -0
  37. package/lib/parser/plainText.js +28 -0
  38. package/lib/parser/xml.js +68 -0
  39. package/lib/plugin/javascript.js +31 -0
  40. package/lib/plugin/json.js +31 -0
  41. package/lib/plugin/plainText.js +31 -0
  42. package/lib/plugin/xml.js +31 -0
  43. package/lib/plugin.js +58 -0
  44. package/lib/prettyPrinter.js +102 -0
  45. package/lib/processor/javascript.js +82 -0
  46. package/lib/processor/json.js +35 -0
  47. package/lib/processor/plainText.js +26 -0
  48. package/lib/processor/xml.js +50 -0
  49. package/lib/processor.js +67 -0
  50. package/lib/renderYappStyles.js +27 -0
  51. package/lib/richTextarea.js +86 -0
  52. package/lib/scheme/colour.js +55 -0
  53. package/lib/scheme/syntax/default.js +31 -0
  54. package/lib/scheme/syntax/javaScript.js +31 -0
  55. package/lib/scheme/syntax/json.js +14 -0
  56. package/lib/scheme/syntax/xml.js +23 -0
  57. package/lib/style/firaCode.js +29 -0
  58. package/lib/style/syntax/default.js +44 -0
  59. package/lib/style/syntax/javaScript.js +25 -0
  60. package/lib/style/syntax/json.js +19 -0
  61. package/lib/style/syntax/xml.js +21 -0
  62. package/lib/style/syntax.js +33 -0
  63. package/lib/style/yapp.js +81 -0
  64. package/lib/styles.js +22 -0
  65. package/lib/token/significant/argument.js +20 -0
  66. package/lib/token/significant/attribute.js +20 -0
  67. package/lib/token/significant/comment.js +20 -0
  68. package/lib/token/significant/error.js +20 -0
  69. package/lib/token/significant/jsx/attributeName.js +20 -0
  70. package/lib/token/significant/jsx/tagName.js +20 -0
  71. package/lib/token/significant/name.js +20 -0
  72. package/lib/token/significant/string.js +20 -0
  73. package/lib/token/significant/variable.js +20 -0
  74. package/lib/tokenTypes.js +46 -0
  75. package/lib/utilities/configuration.js +22 -0
  76. package/lib/utilities/content.js +43 -0
  77. package/lib/utilities/css.js +24 -0
  78. package/lib/utilities/element.js +33 -0
  79. package/lib/utilities/plugin.js +48 -0
  80. package/lib/utilities/rules.js +34 -0
  81. package/lib/utilities/scrollbar.js +35 -0
  82. package/lib/utilities/tokens.js +22 -0
  83. package/lib/yapp.js +142 -0
  84. package/package.json +6 -6
@@ -0,0 +1,30 @@
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 _easylayout = require("easy-layout");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ class RightSizeableDiv extends _easylayout.SizeableDiv {
19
+ static defaultProperties = {
20
+ className: "right"
21
+ };
22
+ }
23
+ const _default = (0, _easywithstyle.default)(RightSizeableDiv)`
24
+
25
+ height: 24rem;
26
+ min-height: 12rem;
27
+
28
+ `;
29
+
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvZGl2L3NpemVhYmxlL3JpZ2h0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBTaXplYWJsZURpdiB9IGZyb20gXCJlYXN5LWxheW91dFwiO1xuXG5jbGFzcyBSaWdodFNpemVhYmxlRGl2IGV4dGVuZHMgU2l6ZWFibGVEaXYge1xuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInJpZ2h0XCJcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKFJpZ2h0U2l6ZWFibGVEaXYpYFxuXG4gIGhlaWdodDogMjRyZW07XG4gIG1pbi1oZWlnaHQ6IDEycmVtO1xuICBcbmA7XG4iXSwibmFtZXMiOlsiUmlnaHRTaXplYWJsZURpdiIsIlNpemVhYmxlRGl2IiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiLCJ3aXRoU3R5bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7O3NFQVZzQjs0QkFFTTs7Ozs7O0FBRTVCLE1BQU1BLHlCQUF5QkMsdUJBQVc7SUFDeEMsT0FBT0Msb0JBQW9CO1FBQ3pCQyxXQUFXO0lBQ2IsRUFBRTtBQUNKO01BRUEsV0FBZUMsSUFBQUEsc0JBQVMsRUFBQ0osaUJBQWlCLENBQUM7Ozs7O0FBSzNDLENBQUMifQ==
@@ -0,0 +1,30 @@
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 _easylayout = require("easy-layout");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ class TopSizeableDiv extends _easylayout.SizeableDiv {
19
+ static defaultProperties = {
20
+ className: "top"
21
+ };
22
+ }
23
+ const _default = (0, _easywithstyle.default)(TopSizeableDiv)`
24
+
25
+ height: 64rem;
26
+ min-height: 12rem;
27
+
28
+ `;
29
+
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvZGl2L3NpemVhYmxlL3RvcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7ICAvLy9cblxuaW1wb3J0IHsgU2l6ZWFibGVEaXYgfSBmcm9tIFwiZWFzeS1sYXlvdXRcIjtcblxuY2xhc3MgVG9wU2l6ZWFibGVEaXYgZXh0ZW5kcyBTaXplYWJsZURpdiB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwidG9wXCJcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKFRvcFNpemVhYmxlRGl2KWBcblxuICBoZWlnaHQ6IDY0cmVtO1xuICBtaW4taGVpZ2h0OiAxMnJlbTtcbiAgXG5gO1xuIl0sIm5hbWVzIjpbIlRvcFNpemVhYmxlRGl2IiwiU2l6ZWFibGVEaXYiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsIndpdGhTdHlsZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUFBOzs7c0VBVnNCOzRCQUVNOzs7Ozs7QUFFNUIsTUFBTUEsdUJBQXVCQyx1QkFBVztJQUN0QyxPQUFPQyxvQkFBb0I7UUFDekJDLFdBQVc7SUFDYixFQUFFO0FBQ0o7TUFFQSxXQUFlQyxJQUFBQSxzQkFBUyxFQUFDSixlQUFlLENBQUM7Ozs7O0FBS3pDLENBQUMifQ==
@@ -0,0 +1,27 @@
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.Input)`
19
+
20
+ border: 1px solid darkgrey;
21
+ padding: 0.25rem;
22
+ font-size: 1.2rem;
23
+ font-family: monospace;
24
+
25
+ `;
26
+
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvaW5wdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IElucHV0IH0gZnJvbSBcImVhc3lcIjtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKElucHV0KWBcblxuICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZ3JleTtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cbmA7XG4iXSwibmFtZXMiOlsid2l0aFN0eWxlIiwiSW5wdXQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBQTs7O3NFQUpzQjtzQkFFQTs7Ozs7O01BRXRCLFdBQWVBLElBQUFBLHNCQUFTLEVBQUNDLFdBQUssQ0FBQyxDQUFDOzs7Ozs7O0FBT2hDLENBQUMifQ==
@@ -0,0 +1,51 @@
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 JavaScriptView;
9
+ }
10
+ });
11
+ const _view = /*#__PURE__*/ _interop_require_default(require("../view"));
12
+ const _javascript = /*#__PURE__*/ _interop_require_default(require("../../plugin/javascript"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ class JavaScriptView extends _view.default {
19
+ static Plugin = _javascript.default;
20
+ static firaCode = true;
21
+ static initialContent = `"use strict";
22
+
23
+ import "juxtapose";
24
+
25
+ import withStyle from "easy-with-style"; ///
26
+
27
+ import { Body } from "easy";
28
+
29
+ function simpleApplication(selector) {
30
+ const body = new Body(selector);
31
+
32
+ body.mount(
33
+
34
+ <p>
35
+ A simple application.
36
+ </p>
37
+
38
+ );
39
+ }
40
+
41
+ export default withStyle(simpleApplication)\`
42
+
43
+ color: #333;
44
+
45
+ \`;`;
46
+ static defaultProperties = {
47
+ className: "javascript"
48
+ };
49
+ }
50
+
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvamF2YXNjcmlwdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFZpZXcgZnJvbSBcIi4uL3ZpZXdcIjtcblxuaW1wb3J0IEphdmFTY3JpcHRQbHVnaW4gZnJvbSBcIi4uLy4uL3BsdWdpbi9qYXZhc2NyaXB0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEphdmFTY3JpcHRWaWV3IGV4dGVuZHMgVmlldyB7XG4gIHN0YXRpYyBQbHVnaW4gPSBKYXZhU2NyaXB0UGx1Z2luO1xuXG4gIHN0YXRpYyBmaXJhQ29kZSA9IHRydWU7XG5cbiAgc3RhdGljIGluaXRpYWxDb250ZW50ID0gYFwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgXCJqdXh0YXBvc2VcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7IC8vL1xuXG5pbXBvcnQgeyBCb2R5IH0gZnJvbSBcImVhc3lcIjtcblxuZnVuY3Rpb24gc2ltcGxlQXBwbGljYXRpb24oc2VsZWN0b3IpIHtcbiAgY29uc3QgYm9keSA9IG5ldyBCb2R5KHNlbGVjdG9yKTtcblxuICBib2R5Lm1vdW50KFxuXG4gICAgPHA+XG4gICAgICBBIHNpbXBsZSBhcHBsaWNhdGlvbi5cbiAgICA8L3A+XG5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKHNpbXBsZUFwcGxpY2F0aW9uKVxcYFxuXG4gIGNvbG9yOiAjMzMzO1xuXG5cXGA7YDtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImphdmFzY3JpcHRcIlxuICB9O1xufTtcbiJdLCJuYW1lcyI6WyJKYXZhU2NyaXB0VmlldyIsIlZpZXciLCJQbHVnaW4iLCJKYXZhU2NyaXB0UGx1Z2luIiwiZmlyYUNvZGUiLCJpbml0aWFsQ29udGVudCIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7OzZEQUpKO21FQUVZOzs7Ozs7QUFFZCxNQUFNQSx1QkFBdUJDLGFBQUk7SUFDOUMsT0FBT0MsU0FBU0MsbUJBQWdCLENBQUM7SUFFakMsT0FBT0MsV0FBVyxLQUFLO0lBRXZCLE9BQU9DLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3QnhCLENBQUMsQ0FBQztJQUVILE9BQU9DLG9CQUFvQjtRQUN6QkMsV0FBVztJQUNiLEVBQUU7QUFDSiJ9
@@ -0,0 +1,38 @@
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 JSONView;
9
+ }
10
+ });
11
+ const _view = /*#__PURE__*/ _interop_require_default(require("../view"));
12
+ const _json = /*#__PURE__*/ _interop_require_default(require("../../plugin/json"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ class JSONView extends _view.default {
19
+ static Plugin = _json.default;
20
+ static firaCode = true;
21
+ static initialContent = `{
22
+ "type": "book",
23
+ "title": "Look to Windward",
24
+ "author": "Look to Windward",
25
+ "stores" : [{
26
+ "identifier": 123
27
+ }],
28
+ "details" : {
29
+ "in-print": true,
30
+ "stock-count": 123
31
+ }
32
+ }`;
33
+ static defaultProperties = {
34
+ className: "json"
35
+ };
36
+ }
37
+
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvanNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFZpZXcgZnJvbSBcIi4uL3ZpZXdcIjtcblxuaW1wb3J0IEpTT05QbHVnaW4gZnJvbSBcIi4uLy4uL3BsdWdpbi9qc29uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEpTT05WaWV3IGV4dGVuZHMgVmlldyB7XG4gIHN0YXRpYyBQbHVnaW4gPSBKU09OUGx1Z2luO1xuXG4gIHN0YXRpYyBmaXJhQ29kZSA9IHRydWU7XG5cbiAgc3RhdGljIGluaXRpYWxDb250ZW50ID0gYHsgIFxuICBcInR5cGVcIjogXCJib29rXCIsXG4gIFwidGl0bGVcIjogXCJMb29rIHRvIFdpbmR3YXJkXCIsXG4gIFwiYXV0aG9yXCI6IFwiTG9vayB0byBXaW5kd2FyZFwiLFxuICBcInN0b3Jlc1wiIDogW3tcbiAgICBcImlkZW50aWZpZXJcIjogMTIzXG4gIH1dLFxuICBcImRldGFpbHNcIiA6IHtcbiAgICBcImluLXByaW50XCI6IHRydWUsXG4gICAgXCJzdG9jay1jb3VudFwiOiAxMjNcbiAgfVxufWA7XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIGNsYXNzTmFtZTogXCJqc29uXCJcbiAgfTtcbn07XG4iXSwibmFtZXMiOlsiSlNPTlZpZXciLCJWaWV3IiwiUGx1Z2luIiwiSlNPTlBsdWdpbiIsImZpcmFDb2RlIiwiaW5pdGlhbENvbnRlbnQiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFxQkE7Ozs2REFKSjs2REFFTTs7Ozs7O0FBRVIsTUFBTUEsaUJBQWlCQyxhQUFJO0lBQ3hDLE9BQU9DLFNBQVNDLGFBQVUsQ0FBQztJQUUzQixPQUFPQyxXQUFXLEtBQUs7SUFFdkIsT0FBT0MsaUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0NBVzFCLENBQUMsQ0FBQztJQUVELE9BQU9DLG9CQUFvQjtRQUN6QkMsV0FBVztJQUNiLEVBQUU7QUFDSiJ9
@@ -0,0 +1,27 @@
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 PlainTextView;
9
+ }
10
+ });
11
+ const _view = /*#__PURE__*/ _interop_require_default(require("../view"));
12
+ const _plainText = /*#__PURE__*/ _interop_require_default(require("../../plugin/plainText"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ class PlainTextView extends _view.default {
19
+ static Plugin = _plainText.default;
20
+ static firaCode = true;
21
+ static initialContent = `Some plain text...`;
22
+ static defaultProperties = {
23
+ className: "plain-text"
24
+ };
25
+ }
26
+
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvcGxhaW5UZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVmlldyBmcm9tIFwiLi4vdmlld1wiO1xuXG5pbXBvcnQgUGxhaW5UZXh0UGx1Z2luIGZyb20gXCIuLi8uLi9wbHVnaW4vcGxhaW5UZXh0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsYWluVGV4dFZpZXcgZXh0ZW5kcyBWaWV3IHtcbiAgc3RhdGljIFBsdWdpbiA9IFBsYWluVGV4dFBsdWdpbjtcblxuICBzdGF0aWMgZmlyYUNvZGUgPSB0cnVlO1xuXG4gIHN0YXRpYyBpbml0aWFsQ29udGVudCA9IGBTb21lIHBsYWluIHRleHQuLi5gO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwicGxhaW4tdGV4dFwiXG4gIH07XG59O1xuIl0sIm5hbWVzIjpbIlBsYWluVGV4dFZpZXciLCJWaWV3IiwiUGx1Z2luIiwiUGxhaW5UZXh0UGx1Z2luIiwiZmlyYUNvZGUiLCJpbml0aWFsQ29udGVudCIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7OzZEQUpKO2tFQUVXOzs7Ozs7QUFFYixNQUFNQSxzQkFBc0JDLGFBQUk7SUFDN0MsT0FBT0MsU0FBU0Msa0JBQWUsQ0FBQztJQUVoQyxPQUFPQyxXQUFXLEtBQUs7SUFFdkIsT0FBT0MsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUU3QyxPQUFPQyxvQkFBb0I7UUFDekJDLFdBQVc7SUFDYixFQUFFO0FBQ0oifQ==
@@ -0,0 +1,29 @@
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
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ const SubHeading = _easywithstyle.default.h2`
18
+
19
+ margin: 1rem 0 0.5rem 0;
20
+ font-size: 2rem;
21
+
22
+ :first-of-type {
23
+ margin-top: 0;
24
+ }
25
+
26
+ `;
27
+ const _default = SubHeading;
28
+
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvc3ViSGVhZGluZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7ICAvLy9cblxuY29uc3QgU3ViSGVhZGluZyA9IHdpdGhTdHlsZS5oMmBcblxuICBtYXJnaW46IDFyZW0gMCAwLjVyZW0gMDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBcbiAgOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuYDtcblxuZXhwb3J0IGRlZmF1bHQgU3ViSGVhZGluZztcbiJdLCJuYW1lcyI6WyJTdWJIZWFkaW5nIiwid2l0aFN0eWxlIiwiaDIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWVBOzs7ZUFBQTs7O3NFQWJzQjs7Ozs7O0FBRXRCLE1BQU1BLGFBQWFDLHNCQUFTLENBQUNDLEVBQUUsQ0FBQzs7Ozs7Ozs7O0FBU2hDLENBQUM7TUFFRCxXQUFlRiJ9
@@ -0,0 +1,39 @@
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 BNFTextarea;
9
+ }
10
+ });
11
+ const _textarea = /*#__PURE__*/ _interop_require_default(require("../textarea"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ class BNFTextarea extends _textarea.default {
18
+ getBNF() {
19
+ const value = this.getValue(), bnf = value; ///
20
+ return bnf;
21
+ }
22
+ setBNF(bnf) {
23
+ const value = bnf;
24
+ this.setValue(value);
25
+ }
26
+ parentContext() {
27
+ const getBNF = this.getBNF.bind(this), setBNF = this.setBNF.bind(this);
28
+ return {
29
+ getBNF,
30
+ setBNF
31
+ };
32
+ }
33
+ static defaultProperties = {
34
+ className: "bnf",
35
+ spellCheck: "false"
36
+ };
37
+ }
38
+
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvdGV4dGFyZWEvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGV4dGFyZWEgZnJvbSBcIi4uL3RleHRhcmVhXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJORlRleHRhcmVhIGV4dGVuZHMgVGV4dGFyZWEge1xuICBnZXRCTkYoKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCksXG4gICAgICAgICAgYm5mID0gdmFsdWU7IC8vL1xuXG4gICAgcmV0dXJuIGJuZjtcbiAgfVxuXG4gIHNldEJORihibmYpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGJuZjtcblxuICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcGFyZW50Q29udGV4dCgpIHtcbiAgICBjb25zdCBnZXRCTkYgPSB0aGlzLmdldEJORi5iaW5kKHRoaXMpLFxuICAgICAgICAgIHNldEJORiA9IHRoaXMuc2V0Qk5GLmJpbmQodGhpcyk7XG5cbiAgICByZXR1cm4gKHtcbiAgICAgIGdldEJORixcbiAgICAgIHNldEJORlxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIGNsYXNzTmFtZTogXCJibmZcIixcbiAgICBzcGVsbENoZWNrOiBcImZhbHNlXCJcbiAgfTtcbn1cbiJdLCJuYW1lcyI6WyJCTkZUZXh0YXJlYSIsIlRleHRhcmVhIiwiZ2V0Qk5GIiwidmFsdWUiLCJnZXRWYWx1ZSIsImJuZiIsInNldEJORiIsInNldFZhbHVlIiwicGFyZW50Q29udGV4dCIsImJpbmQiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsInNwZWxsQ2hlY2siXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBcUJBOzs7aUVBRkE7Ozs7OztBQUVOLE1BQU1BLG9CQUFvQkMsaUJBQVE7SUFDL0NDLFNBQVM7UUFDUCxNQUFNQyxRQUFRLElBQUksQ0FBQ0MsUUFBUSxJQUNyQkMsTUFBTUYsT0FBTyxHQUFHO1FBRXRCLE9BQU9FO0lBQ1Q7SUFFQUMsT0FBT0QsR0FBRyxFQUFFO1FBQ1YsTUFBTUYsUUFBUUU7UUFFZCxJQUFJLENBQUNFLFFBQVEsQ0FBQ0o7SUFDaEI7SUFFQUssZ0JBQWdCO1FBQ2QsTUFBTU4sU0FBUyxJQUFJLENBQUNBLE1BQU0sQ0FBQ08sSUFBSSxDQUFDLElBQUksR0FDOUJILFNBQVMsSUFBSSxDQUFDQSxNQUFNLENBQUNHLElBQUksQ0FBQyxJQUFJO1FBRXBDLE9BQVE7WUFDTlA7WUFDQUk7UUFDRjtJQUNGO0lBRUEsT0FBT0ksb0JBQW9CO1FBQ3pCQyxXQUFXO1FBQ1hDLFlBQVk7SUFDZCxFQUFFO0FBQ0oifQ==
@@ -0,0 +1,39 @@
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 LexicalEntriesTextarea;
9
+ }
10
+ });
11
+ const _textarea = /*#__PURE__*/ _interop_require_default(require("../textarea"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ class LexicalEntriesTextarea extends _textarea.default {
18
+ getLexicalEntries() {
19
+ const value = this.getValue(), jsonString = value, json = JSON.parse(jsonString), lexicalEntries = json; ///
20
+ return lexicalEntries;
21
+ }
22
+ setLexicalEntries(lexicalEntries) {
23
+ const json = lexicalEntries, jsonString = JSON.stringify(json, null, 2), value = jsonString; ///
24
+ this.setValue(value);
25
+ }
26
+ parentContext() {
27
+ const getLexicalEntries = this.getLexicalEntries.bind(this), setLexicalEntries = this.setLexicalEntries.bind(this);
28
+ return {
29
+ getLexicalEntries,
30
+ setLexicalEntries
31
+ };
32
+ }
33
+ static defaultProperties = {
34
+ className: "lexical-entries",
35
+ spellCheck: "false"
36
+ };
37
+ }
38
+
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvdGV4dGFyZWEvbGV4aWNhbEVudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBUZXh0YXJlYSBmcm9tIFwiLi4vdGV4dGFyZWFcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGV4aWNhbEVudHJpZXNUZXh0YXJlYSBleHRlbmRzIFRleHRhcmVhIHtcbiAgZ2V0TGV4aWNhbEVudHJpZXMoKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCksXG4gICAgICAgICAganNvblN0cmluZyA9IHZhbHVlLCAvLy9cbiAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShqc29uU3RyaW5nKSxcbiAgICAgICAgICBsZXhpY2FsRW50cmllcyA9IGpzb247ICAvLy9cblxuICAgIHJldHVybiBsZXhpY2FsRW50cmllcztcbiAgfVxuXG4gIHNldExleGljYWxFbnRyaWVzKGxleGljYWxFbnRyaWVzKSB7XG4gICAgY29uc3QganNvbiA9IGxleGljYWxFbnRyaWVzLCAgLy8vXG4gICAgICAgICAganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpLFxuICAgICAgICAgIHZhbHVlID0ganNvblN0cmluZzsgLy8vXG5cbiAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHBhcmVudENvbnRleHQoKSB7XG4gICAgY29uc3QgZ2V0TGV4aWNhbEVudHJpZXMgPSB0aGlzLmdldExleGljYWxFbnRyaWVzLmJpbmQodGhpcyksXG4gICAgICAgICAgc2V0TGV4aWNhbEVudHJpZXMgPSB0aGlzLnNldExleGljYWxFbnRyaWVzLmJpbmQodGhpcyk7XG5cbiAgICByZXR1cm4gKHtcbiAgICAgIGdldExleGljYWxFbnRyaWVzLFxuICAgICAgc2V0TGV4aWNhbEVudHJpZXNcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwibGV4aWNhbC1lbnRyaWVzXCIsXG4gICAgc3BlbGxDaGVjazogXCJmYWxzZVwiXG4gIH07XG59XG4iXSwibmFtZXMiOlsiTGV4aWNhbEVudHJpZXNUZXh0YXJlYSIsIlRleHRhcmVhIiwiZ2V0TGV4aWNhbEVudHJpZXMiLCJ2YWx1ZSIsImdldFZhbHVlIiwianNvblN0cmluZyIsImpzb24iLCJKU09OIiwicGFyc2UiLCJsZXhpY2FsRW50cmllcyIsInNldExleGljYWxFbnRyaWVzIiwic3RyaW5naWZ5Iiwic2V0VmFsdWUiLCJwYXJlbnRDb250ZXh0IiwiYmluZCIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwic3BlbGxDaGVjayJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUFxQkE7OztpRUFGQTs7Ozs7O0FBRU4sTUFBTUEsK0JBQStCQyxpQkFBUTtJQUMxREMsb0JBQW9CO1FBQ2xCLE1BQU1DLFFBQVEsSUFBSSxDQUFDQyxRQUFRLElBQ3JCQyxhQUFhRixPQUNiRyxPQUFPQyxLQUFLQyxLQUFLLENBQUNILGFBQ2xCSSxpQkFBaUJILE1BQU8sR0FBRztRQUVqQyxPQUFPRztJQUNUO0lBRUFDLGtCQUFrQkQsY0FBYyxFQUFFO1FBQ2hDLE1BQU1ILE9BQU9HLGdCQUNQSixhQUFhRSxLQUFLSSxTQUFTLENBQUNMLE1BQU0sTUFBTSxJQUN4Q0gsUUFBUUUsWUFBWSxHQUFHO1FBRTdCLElBQUksQ0FBQ08sUUFBUSxDQUFDVDtJQUNoQjtJQUVBVSxnQkFBZ0I7UUFDZCxNQUFNWCxvQkFBb0IsSUFBSSxDQUFDQSxpQkFBaUIsQ0FBQ1ksSUFBSSxDQUFDLElBQUksR0FDcERKLG9CQUFvQixJQUFJLENBQUNBLGlCQUFpQixDQUFDSSxJQUFJLENBQUMsSUFBSTtRQUUxRCxPQUFRO1lBQ05aO1lBQ0FRO1FBQ0Y7SUFDRjtJQUVBLE9BQU9LLG9CQUFvQjtRQUN6QkMsV0FBVztRQUNYQyxZQUFZO0lBQ2QsRUFBRTtBQUNKIn0=
@@ -0,0 +1,46 @@
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 ParseTreeTextarea;
9
+ }
10
+ });
11
+ const _textarea = /*#__PURE__*/ _interop_require_default(require("../textarea"));
12
+ const _constants = require("../../constants");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ class ParseTreeTextarea extends _textarea.default {
19
+ setParseTree(parseTree) {
20
+ if (parseTree !== null) {
21
+ parseTree.shiftLine(); //
22
+ const parseTreeString = parseTree.asString(), value = parseTreeString; ///
23
+ this.setValue(value);
24
+ } else {
25
+ this.clearParseTree();
26
+ }
27
+ }
28
+ clearParseTree() {
29
+ const value = _constants.EMPTY_STRING;
30
+ this.setValue(value);
31
+ }
32
+ parentContext() {
33
+ const setParseTree = this.setParseTree.bind(this), clearParseTree = this.clearParseTree.bind(this);
34
+ return {
35
+ setParseTree,
36
+ clearParseTree
37
+ };
38
+ }
39
+ static defaultProperties = {
40
+ className: "tokens",
41
+ spellCheck: "false",
42
+ readOnly: true
43
+ };
44
+ }
45
+
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvdGV4dGFyZWEvcGFyc2VUcmVlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGV4dGFyZWEgZnJvbSBcIi4uL3RleHRhcmVhXCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFyc2VUcmVlVGV4dGFyZWEgZXh0ZW5kcyBUZXh0YXJlYSB7XG4gIHNldFBhcnNlVHJlZShwYXJzZVRyZWUpIHtcbiAgICBpZiAocGFyc2VUcmVlICE9PSBudWxsKSB7XG4gICAgICBwYXJzZVRyZWUuc2hpZnRMaW5lKCk7ICAvL1xuXG4gICAgICBjb25zdCBwYXJzZVRyZWVTdHJpbmcgPSBwYXJzZVRyZWUuYXNTdHJpbmcoKSxcbiAgICAgICAgICAgIHZhbHVlID0gcGFyc2VUcmVlU3RyaW5nOyAgLy8vXG5cbiAgICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyUGFyc2VUcmVlKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJQYXJzZVRyZWUoKSB7XG4gICAgY29uc3QgdmFsdWUgPSBFTVBUWV9TVFJJTkc7XG5cbiAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHBhcmVudENvbnRleHQoKSB7XG4gICAgY29uc3Qgc2V0UGFyc2VUcmVlID0gdGhpcy5zZXRQYXJzZVRyZWUuYmluZCh0aGlzKSxcbiAgICAgICAgICBjbGVhclBhcnNlVHJlZSA9IHRoaXMuY2xlYXJQYXJzZVRyZWUuYmluZCh0aGlzKTtcblxuICAgIHJldHVybiAoe1xuICAgICAgc2V0UGFyc2VUcmVlLFxuICAgICAgY2xlYXJQYXJzZVRyZWVcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwidG9rZW5zXCIsXG4gICAgc3BlbGxDaGVjazogXCJmYWxzZVwiLFxuICAgIHJlYWRPbmx5OiB0cnVlXG4gIH07XG59XG4iXSwibmFtZXMiOlsiUGFyc2VUcmVlVGV4dGFyZWEiLCJUZXh0YXJlYSIsInNldFBhcnNlVHJlZSIsInBhcnNlVHJlZSIsInNoaWZ0TGluZSIsInBhcnNlVHJlZVN0cmluZyIsImFzU3RyaW5nIiwidmFsdWUiLCJzZXRWYWx1ZSIsImNsZWFyUGFyc2VUcmVlIiwiRU1QVFlfU1RSSU5HIiwicGFyZW50Q29udGV4dCIsImJpbmQiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsInNwZWxsQ2hlY2siLCJyZWFkT25seSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFxQkE7OztpRUFKQTsyQkFFUTs7Ozs7O0FBRWQsTUFBTUEsMEJBQTBCQyxpQkFBUTtJQUNyREMsYUFBYUMsU0FBUyxFQUFFO1FBQ3RCLElBQUlBLGNBQWMsTUFBTTtZQUN0QkEsVUFBVUMsU0FBUyxJQUFLLEVBQUU7WUFFMUIsTUFBTUMsa0JBQWtCRixVQUFVRyxRQUFRLElBQ3BDQyxRQUFRRixpQkFBa0IsR0FBRztZQUVuQyxJQUFJLENBQUNHLFFBQVEsQ0FBQ0Q7UUFDaEIsT0FBTztZQUNMLElBQUksQ0FBQ0UsY0FBYztRQUNyQjtJQUNGO0lBRUFBLGlCQUFpQjtRQUNmLE1BQU1GLFFBQVFHLHVCQUFZO1FBRTFCLElBQUksQ0FBQ0YsUUFBUSxDQUFDRDtJQUNoQjtJQUVBSSxnQkFBZ0I7UUFDZCxNQUFNVCxlQUFlLElBQUksQ0FBQ0EsWUFBWSxDQUFDVSxJQUFJLENBQUMsSUFBSSxHQUMxQ0gsaUJBQWlCLElBQUksQ0FBQ0EsY0FBYyxDQUFDRyxJQUFJLENBQUMsSUFBSTtRQUVwRCxPQUFRO1lBQ05WO1lBQ0FPO1FBQ0Y7SUFDRjtJQUVBLE9BQU9JLG9CQUFvQjtRQUN6QkMsV0FBVztRQUNYQyxZQUFZO1FBQ1pDLFVBQVU7SUFDWixFQUFFO0FBQ0oifQ==
@@ -0,0 +1,59 @@
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 TokensTextarea;
9
+ }
10
+ });
11
+ const _textarea = /*#__PURE__*/ _interop_require_default(require("../textarea"));
12
+ const _constants = require("../../constants");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ class TokensTextarea extends _textarea.default {
19
+ setTokens(tokens) {
20
+ if (tokens !== null) {
21
+ let lineNumber = 1, previousToken = null;
22
+ const html = tokens.reduce((html, token)=>{
23
+ const tokenHTML = token.asHTML();
24
+ if (previousToken === null) {
25
+ html += `${lineNumber++}: `;
26
+ } else {
27
+ const previousTokenEndOfLineToken = previousToken.isEndOfLineToken();
28
+ if (previousTokenEndOfLineToken) {
29
+ html += `${lineNumber++}: `;
30
+ }
31
+ }
32
+ html += tokenHTML;
33
+ previousToken = token;
34
+ return html;
35
+ }, _constants.EMPTY_STRING);
36
+ this.html(html);
37
+ } else {
38
+ this.clearTokens();
39
+ }
40
+ }
41
+ clearTokens() {
42
+ const html = _constants.EMPTY_STRING;
43
+ this.html(html);
44
+ }
45
+ parentContext() {
46
+ const setTokens = this.setTokens.bind(this), clearTokens = this.clearTokens.bind(this);
47
+ return {
48
+ setTokens,
49
+ clearTokens
50
+ };
51
+ }
52
+ static defaultProperties = {
53
+ className: "tokens",
54
+ spellCheck: "false",
55
+ readOnly: true
56
+ };
57
+ }
58
+
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvdGV4dGFyZWEvdG9rZW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGV4dGFyZWEgZnJvbSBcIi4uL3RleHRhcmVhXCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVG9rZW5zVGV4dGFyZWEgZXh0ZW5kcyBUZXh0YXJlYSB7XG4gIHNldFRva2Vucyh0b2tlbnMpIHtcbiAgICBpZiAodG9rZW5zICE9PSBudWxsKSB7XG4gICAgICBsZXQgbGluZU51bWJlciA9IDEsXG4gICAgICAgICAgcHJldmlvdXNUb2tlbiA9IG51bGw7XG5cbiAgICAgIGNvbnN0IGh0bWwgPSB0b2tlbnMucmVkdWNlKChodG1sLCB0b2tlbikgPT4ge1xuICAgICAgICBjb25zdCB0b2tlbkhUTUwgPSB0b2tlbi5hc0hUTUwoKTtcblxuICAgICAgICBpZiAocHJldmlvdXNUb2tlbiA9PT0gbnVsbCkge1xuICAgICAgICAgIGh0bWwgKz0gYCR7bGluZU51bWJlcisrfTogYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBwcmV2aW91c1Rva2VuRW5kT2ZMaW5lVG9rZW4gPSBwcmV2aW91c1Rva2VuLmlzRW5kT2ZMaW5lVG9rZW4oKTtcblxuICAgICAgICAgIGlmIChwcmV2aW91c1Rva2VuRW5kT2ZMaW5lVG9rZW4pIHtcbiAgICAgICAgICAgIGh0bWwgKz0gYCR7bGluZU51bWJlcisrfTogYDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBodG1sICs9IHRva2VuSFRNTDtcblxuICAgICAgICBwcmV2aW91c1Rva2VuID0gdG9rZW47XG5cbiAgICAgICAgcmV0dXJuIGh0bWw7XG4gICAgICB9LCBFTVBUWV9TVFJJTkcpO1xuXG4gICAgICB0aGlzLmh0bWwoaHRtbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xlYXJUb2tlbnMoKTtcbiAgICB9XG4gIH1cblxuICBjbGVhclRva2VucygpIHtcbiAgICBjb25zdCBodG1sID0gRU1QVFlfU1RSSU5HO1xuXG4gICAgdGhpcy5odG1sKGh0bWwpO1xuICB9XG5cbiAgcGFyZW50Q29udGV4dCgpIHtcbiAgICBjb25zdCBzZXRUb2tlbnMgPSB0aGlzLnNldFRva2Vucy5iaW5kKHRoaXMpLFxuICAgICAgICAgIGNsZWFyVG9rZW5zID0gdGhpcy5jbGVhclRva2Vucy5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuICh7XG4gICAgICBzZXRUb2tlbnMsXG4gICAgICBjbGVhclRva2Vuc1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIGNsYXNzTmFtZTogXCJ0b2tlbnNcIixcbiAgICBzcGVsbENoZWNrOiBcImZhbHNlXCIsXG4gICAgcmVhZE9ubHk6IHRydWVcbiAgfTtcbn1cbiJdLCJuYW1lcyI6WyJUb2tlbnNUZXh0YXJlYSIsIlRleHRhcmVhIiwic2V0VG9rZW5zIiwidG9rZW5zIiwibGluZU51bWJlciIsInByZXZpb3VzVG9rZW4iLCJodG1sIiwicmVkdWNlIiwidG9rZW4iLCJ0b2tlbkhUTUwiLCJhc0hUTUwiLCJwcmV2aW91c1Rva2VuRW5kT2ZMaW5lVG9rZW4iLCJpc0VuZE9mTGluZVRva2VuIiwiRU1QVFlfU1RSSU5HIiwiY2xlYXJUb2tlbnMiLCJwYXJlbnRDb250ZXh0IiwiYmluZCIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwic3BlbGxDaGVjayIsInJlYWRPbmx5Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7O2lFQUpBOzJCQUVROzs7Ozs7QUFFZCxNQUFNQSx1QkFBdUJDLGlCQUFRO0lBQ2xEQyxVQUFVQyxNQUFNLEVBQUU7UUFDaEIsSUFBSUEsV0FBVyxNQUFNO1lBQ25CLElBQUlDLGFBQWEsR0FDYkMsZ0JBQWdCO1lBRXBCLE1BQU1DLE9BQU9ILE9BQU9JLE1BQU0sQ0FBQyxDQUFDRCxNQUFNRTtnQkFDaEMsTUFBTUMsWUFBWUQsTUFBTUUsTUFBTTtnQkFFOUIsSUFBSUwsa0JBQWtCLE1BQU07b0JBQzFCQyxRQUFRLEdBQUdGLGFBQWEsRUFBRSxDQUFDO2dCQUM3QixPQUFPO29CQUNMLE1BQU1PLDhCQUE4Qk4sY0FBY08sZ0JBQWdCO29CQUVsRSxJQUFJRCw2QkFBNkI7d0JBQy9CTCxRQUFRLEdBQUdGLGFBQWEsRUFBRSxDQUFDO29CQUM3QjtnQkFDRjtnQkFFQUUsUUFBUUc7Z0JBRVJKLGdCQUFnQkc7Z0JBRWhCLE9BQU9GO1lBQ1QsR0FBR08sdUJBQVk7WUFFZixJQUFJLENBQUNQLElBQUksQ0FBQ0E7UUFDWixPQUFPO1lBQ0wsSUFBSSxDQUFDUSxXQUFXO1FBQ2xCO0lBQ0Y7SUFFQUEsY0FBYztRQUNaLE1BQU1SLE9BQU9PLHVCQUFZO1FBRXpCLElBQUksQ0FBQ1AsSUFBSSxDQUFDQTtJQUNaO0lBRUFTLGdCQUFnQjtRQUNkLE1BQU1iLFlBQVksSUFBSSxDQUFDQSxTQUFTLENBQUNjLElBQUksQ0FBQyxJQUFJLEdBQ3BDRixjQUFjLElBQUksQ0FBQ0EsV0FBVyxDQUFDRSxJQUFJLENBQUMsSUFBSTtRQUU5QyxPQUFRO1lBQ05kO1lBQ0FZO1FBQ0Y7SUFDRjtJQUVBLE9BQU9HLG9CQUFvQjtRQUN6QkMsV0FBVztRQUNYQyxZQUFZO1FBQ1pDLFVBQVU7SUFDWixFQUFFO0FBQ0oifQ==
@@ -0,0 +1,31 @@
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
+ border: 1px solid darkgrey;
21
+ resize: none;
22
+ padding: 0.25rem;
23
+ flex-grow: 1;
24
+ font-size: 1.2rem;
25
+ line-height: 1.5rem;
26
+ white-space: pre;
27
+ font-family: monospace;
28
+
29
+ `;
30
+
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvdGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IFRleHRhcmVhIH0gZnJvbSBcImVhc3lcIjtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKFRleHRhcmVhKWBcblxuICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZ3JleTtcbiAgcmVzaXplOiBub25lO1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBmbGV4LWdyb3c6IDE7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXG5gO1xuIl0sIm5hbWVzIjpbIndpdGhTdHlsZSIsIlRleHRhcmVhIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OztzRUFKc0I7c0JBRUc7Ozs7OztNQUV6QixXQUFlQSxJQUFBQSxzQkFBUyxFQUFDQyxjQUFRLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFXbkMsQ0FBQyJ9
@@ -0,0 +1,42 @@
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 XMLView;
9
+ }
10
+ });
11
+ const _view = /*#__PURE__*/ _interop_require_default(require("../view"));
12
+ const _xml = /*#__PURE__*/ _interop_require_default(require("../../plugin/xml"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ class XMLView extends _view.default {
19
+ static Plugin = _xml.default;
20
+ static firaCode = false;
21
+ static initialContent = `<?xml version="1.0" encoding="UTF-8"?>
22
+ <!-- Look to Windward by Iain M. Banks -->
23
+ <book>
24
+ <name>
25
+ Look to Windward
26
+ </name>
27
+ <author>
28
+ Iain M. Banks
29
+ </author>
30
+ <language>
31
+ English
32
+ </language>
33
+ <genre>
34
+ Science fiction
35
+ </genre>
36
+ </book>`;
37
+ static defaultProperties = {
38
+ className: "xml"
39
+ };
40
+ }
41
+
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcveG1sLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVmlldyBmcm9tIFwiLi4vdmlld1wiO1xuXG5pbXBvcnQgWE1MUGx1Z2luIGZyb20gXCIuLi8uLi9wbHVnaW4veG1sXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFhNTFZpZXcgZXh0ZW5kcyBWaWV3IHtcbiAgc3RhdGljIFBsdWdpbiA9IFhNTFBsdWdpbjtcblxuICBzdGF0aWMgZmlyYUNvZGUgPSBmYWxzZTtcblxuICBzdGF0aWMgaW5pdGlhbENvbnRlbnQgPSBgPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+XG48IS0tIExvb2sgdG8gV2luZHdhcmQgYnkgSWFpbiBNLiBCYW5rcyAtLT5cbjxib29rPlxuICA8bmFtZT5cbiAgICBMb29rIHRvIFdpbmR3YXJkXG4gIDwvbmFtZT5cbiAgPGF1dGhvcj5cbiAgICBJYWluIE0uIEJhbmtzXG4gIDwvYXV0aG9yPlxuICA8bGFuZ3VhZ2U+XG4gICAgRW5nbGlzaFxuICA8L2xhbmd1YWdlPlxuICA8Z2VucmU+XG4gICAgU2NpZW5jZSBmaWN0aW9uXG4gIDwvZ2VucmU+XG48L2Jvb2s+YDtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInhtbFwiXG4gIH07XG59O1xuIl0sIm5hbWVzIjpbIlhNTFZpZXciLCJWaWV3IiwiUGx1Z2luIiwiWE1MUGx1Z2luIiwiZmlyYUNvZGUiLCJpbml0aWFsQ29udGVudCIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7OzZEQUpKOzREQUVLOzs7Ozs7QUFFUCxNQUFNQSxnQkFBZ0JDLGFBQUk7SUFDdkMsT0FBT0MsU0FBU0MsWUFBUyxDQUFDO0lBRTFCLE9BQU9DLFdBQVcsTUFBTTtJQUV4QixPQUFPQyxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O09BZXBCLENBQUMsQ0FBQztJQUVQLE9BQU9DLG9CQUFvQjtRQUN6QkMsV0FBVztJQUNiLEVBQUU7QUFDSiJ9
@@ -0,0 +1,107 @@
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 _occamparsers = require("occam-parsers");
14
+ const _easylayout = require("easy-layout");
15
+ const _yapp = /*#__PURE__*/ _interop_require_default(require("./yapp"));
16
+ const _subHeading = /*#__PURE__*/ _interop_require_default(require("./view/subHeading"));
17
+ const _bnf = /*#__PURE__*/ _interop_require_default(require("./view/textarea/bnf"));
18
+ const _tokens = /*#__PURE__*/ _interop_require_default(require("./view/textarea/tokens"));
19
+ const _top = /*#__PURE__*/ _interop_require_default(require("./view/div/sizeable/top"));
20
+ const _left = /*#__PURE__*/ _interop_require_default(require("./view/div/sizeable/left"));
21
+ const _right = /*#__PURE__*/ _interop_require_default(require("./view/div/sizeable/right"));
22
+ const _middle = /*#__PURE__*/ _interop_require_default(require("./view/div/sizeable/middle"));
23
+ const _parseTree = /*#__PURE__*/ _interop_require_default(require("./view/textarea/parseTree"));
24
+ const _lexicalEntries = /*#__PURE__*/ _interop_require_default(require("./view/textarea/lexicalEntries"));
25
+ function _interop_require_default(obj) {
26
+ return obj && obj.__esModule ? obj : {
27
+ default: obj
28
+ };
29
+ }
30
+ const { rulesFromBNF } = _occamparsers.parserUtilities;
31
+ class View extends _easy.Element {
32
+ contentChangeCustomHandler = (event, element)=>{
33
+ this.update();
34
+ };
35
+ lexerFromEntries(entries) {
36
+ const { Plugin } = this.constructor, { Lexer } = Plugin, lexer = Lexer.fromEntries(entries);
37
+ return lexer;
38
+ }
39
+ parserFromBNF(bnf) {
40
+ const { Plugin } = this.constructor, { Parser } = Plugin, rules = rulesFromBNF(bnf), parser = Parser.fromRules(rules);
41
+ return parser;
42
+ }
43
+ keyUpHandler = (event, element)=>{
44
+ try {
45
+ const lexicalEntries = this.getLexicalEntries(), entries = lexicalEntries, bnf = this.getBNF(), lexer = this.lexerFromEntries(entries), parser = this.parserFromBNF(bnf), yappLexer = lexer, yappParser = parser; ///
46
+ this.setYappLexer(yappLexer);
47
+ this.setYappParser(yappParser);
48
+ this.updateYapp();
49
+ this.update();
50
+ } catch (error) {
51
+ console.log(error);
52
+ }
53
+ };
54
+ update() {
55
+ try {
56
+ let parseTree = null;
57
+ const plugin = this.getPlugin(), tokens = plugin.getTokens(), node = plugin.getNode();
58
+ if (node !== null) {
59
+ parseTree = node.asParseTree(tokens);
60
+ }
61
+ this.setTokens(tokens);
62
+ this.setParseTree(parseTree);
63
+ } catch (error) {
64
+ console.log(error);
65
+ this.clearTokens();
66
+ this.clearParseTree();
67
+ }
68
+ }
69
+ didMount() {
70
+ this.update();
71
+ }
72
+ willUnmount() {
73
+ ///
74
+ }
75
+ childElements() {
76
+ const { Plugin, firaCode, initialContent } = this.constructor;
77
+ return /*#__PURE__*/ React.createElement(_easylayout.ColumnsDiv, null, /*#__PURE__*/ React.createElement(_left.default, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_top.default, null, /*#__PURE__*/ React.createElement(_yapp.default, {
78
+ Plugin: Plugin,
79
+ firaCode: firaCode,
80
+ onCustomContentChange: this.contentChangeCustomHandler
81
+ }, initialContent)), /*#__PURE__*/ React.createElement(_easylayout.HorizontalSplitterDiv, null), /*#__PURE__*/ React.createElement(_easylayout.RowDiv, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_middle.default, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_subHeading.default, null, "Tokens"), /*#__PURE__*/ React.createElement(_tokens.default, null))), /*#__PURE__*/ React.createElement(_easylayout.HorizontalSplitterDiv, null), /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_subHeading.default, null, "Parse tree"), /*#__PURE__*/ React.createElement(_parseTree.default, null)))))), /*#__PURE__*/ React.createElement(_easylayout.VerticalSplitterDiv, null), /*#__PURE__*/ React.createElement(_easylayout.ColumnDiv, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_right.default, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_subHeading.default, null, "Lexical entries"), /*#__PURE__*/ React.createElement(_lexicalEntries.default, {
82
+ onKeyUp: this.keyUpHandler
83
+ }))), /*#__PURE__*/ React.createElement(_easylayout.HorizontalSplitterDiv, null), /*#__PURE__*/ React.createElement(_easylayout.RowDiv, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_subHeading.default, null, "BNF"), /*#__PURE__*/ React.createElement(_bnf.default, {
84
+ onKeyUp: this.keyUpHandler
85
+ }))))));
86
+ }
87
+ initialise() {
88
+ this.assignContext();
89
+ const { Plugin } = this.constructor, { Lexer, Parser } = Plugin, { bnf } = Parser, { entries } = Lexer, lexicalEntries = entries; ///
90
+ this.setBNF(bnf);
91
+ this.setLexicalEntries(lexicalEntries);
92
+ }
93
+ static tagName = "div";
94
+ static defaultProperties = {
95
+ className: "view"
96
+ };
97
+ }
98
+ const _default = (0, _easywithstyle.default)(View)`
99
+
100
+ width: 100%;
101
+ height: 100vh;
102
+ display: flex;
103
+ padding: 1rem;
104
+
105
+ `;
106
+
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgcGFyc2VyVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcbmltcG9ydCB7IFJvd0RpdiwgUm93c0RpdiwgQ29sdW1uRGl2LCBDb2x1bW5zRGl2LCBWZXJ0aWNhbFNwbGl0dGVyRGl2LCBIb3Jpem9udGFsU3BsaXR0ZXJEaXYgfSBmcm9tIFwiZWFzeS1sYXlvdXRcIjtcblxuaW1wb3J0IFlhcHAgZnJvbSBcIi4veWFwcFwiO1xuaW1wb3J0IFN1YkhlYWRpbmcgZnJvbSBcIi4vdmlldy9zdWJIZWFkaW5nXCI7XG5pbXBvcnQgQk5GVGV4dGFyZWEgZnJvbSBcIi4vdmlldy90ZXh0YXJlYS9ibmZcIjtcbmltcG9ydCBUb2tlbnNUZXh0YXJlYSBmcm9tIFwiLi92aWV3L3RleHRhcmVhL3Rva2Vuc1wiO1xuaW1wb3J0IFRvcFNpemVhYmxlRGl2IGZyb20gXCIuL3ZpZXcvZGl2L3NpemVhYmxlL3RvcFwiO1xuaW1wb3J0IExlZnRTaXplYWJsZURpdiBmcm9tIFwiLi92aWV3L2Rpdi9zaXplYWJsZS9sZWZ0XCI7XG5pbXBvcnQgUmlnaHRTaXplYWJsZURpdiBmcm9tIFwiLi92aWV3L2Rpdi9zaXplYWJsZS9yaWdodFwiO1xuaW1wb3J0IE1pZGRsZVNpemVhYmxlRGl2IGZyb20gXCIuL3ZpZXcvZGl2L3NpemVhYmxlL21pZGRsZVwiO1xuaW1wb3J0IFBhcnNlVHJlZVRleHRhcmVhIGZyb20gXCIuL3ZpZXcvdGV4dGFyZWEvcGFyc2VUcmVlXCI7XG5pbXBvcnQgTGV4aWNhbEVudHJpZXNUZXh0YXJlYSBmcm9tIFwiLi92aWV3L3RleHRhcmVhL2xleGljYWxFbnRyaWVzXCI7XG5cbmNvbnN0IHsgcnVsZXNGcm9tQk5GIH0gPSBwYXJzZXJVdGlsaXRpZXM7XG5cbmNsYXNzIFZpZXcgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29udGVudENoYW5nZUN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgbGV4ZXJGcm9tRW50cmllcyhlbnRyaWVzKSB7XG4gICAgY29uc3QgeyBQbHVnaW4gfSA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgeyBMZXhlciB9ID0gUGx1Z2luLFxuICAgICAgICAgIGxleGVyID0gTGV4ZXIuZnJvbUVudHJpZXMoZW50cmllcyk7XG5cbiAgICByZXR1cm4gbGV4ZXI7XG4gIH1cblxuICBwYXJzZXJGcm9tQk5GKGJuZikge1xuICAgIGNvbnN0IHsgUGx1Z2luIH0gPSB0aGlzLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIHsgUGFyc2VyIH0gPSBQbHVnaW4sXG4gICAgICAgICAgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKSxcbiAgICAgICAgICBwYXJzZXIgPSBQYXJzZXIuZnJvbVJ1bGVzKHJ1bGVzKTtcblxuICAgIHJldHVybiBwYXJzZXI7XG4gIH1cblxuICBrZXlVcEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbGV4aWNhbEVudHJpZXMgPSB0aGlzLmdldExleGljYWxFbnRyaWVzKCksXG4gICAgICAgICAgICBlbnRyaWVzID0gbGV4aWNhbEVudHJpZXMsIC8vL1xuICAgICAgICAgICAgYm5mID0gdGhpcy5nZXRCTkYoKSxcbiAgICAgICAgICAgIGxleGVyID0gdGhpcy5sZXhlckZyb21FbnRyaWVzKGVudHJpZXMpLFxuICAgICAgICAgICAgcGFyc2VyID0gdGhpcy5wYXJzZXJGcm9tQk5GKGJuZiksXG4gICAgICAgICAgICB5YXBwTGV4ZXIgPSBsZXhlciwgIC8vL1xuICAgICAgICAgICAgeWFwcFBhcnNlciA9IHBhcnNlcjsgIC8vL1xuXG4gICAgICB0aGlzLnNldFlhcHBMZXhlcih5YXBwTGV4ZXIpO1xuXG4gICAgICB0aGlzLnNldFlhcHBQYXJzZXIoeWFwcFBhcnNlcik7XG5cbiAgICAgIHRoaXMudXBkYXRlWWFwcCgpO1xuXG4gICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKCkge1xuICAgIHRyeSB7XG4gICAgICBsZXQgcGFyc2VUcmVlID0gbnVsbDtcblxuICAgICAgY29uc3QgcGx1Z2luID0gdGhpcy5nZXRQbHVnaW4oKSxcbiAgICAgICAgICAgIHRva2VucyA9IHBsdWdpbi5nZXRUb2tlbnMoKSxcbiAgICAgICAgICAgIG5vZGUgPSBwbHVnaW4uZ2V0Tm9kZSgpO1xuXG4gICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBwYXJzZVRyZWUgPSBub2RlLmFzUGFyc2VUcmVlKHRva2Vucyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0VG9rZW5zKHRva2Vucyk7XG5cbiAgICAgIHRoaXMuc2V0UGFyc2VUcmVlKHBhcnNlVHJlZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcblxuICAgICAgdGhpcy5jbGVhclRva2VucygpO1xuXG4gICAgICB0aGlzLmNsZWFyUGFyc2VUcmVlKCk7XG4gICAgfVxuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIC8vL1xuICB9XG5cbiAgY2hpbGRFbGVtZW50cygpIHtcbiAgICBjb25zdCB7IFBsdWdpbiwgZmlyYUNvZGUsIGluaXRpYWxDb250ZW50IH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgcmV0dXJuIChcblxuICAgICAgPENvbHVtbnNEaXY+XG4gICAgICAgIDxMZWZ0U2l6ZWFibGVEaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8VG9wU2l6ZWFibGVEaXY+XG4gICAgICAgICAgICAgIDxZYXBwIFBsdWdpbj17UGx1Z2lufSBmaXJhQ29kZT17ZmlyYUNvZGV9IG9uQ3VzdG9tQ29udGVudENoYW5nZT17dGhpcy5jb250ZW50Q2hhbmdlQ3VzdG9tSGFuZGxlcn0gPlxuICAgICAgICAgICAgICAgIHtpbml0aWFsQ29udGVudH1cbiAgICAgICAgICAgICAgPC9ZYXBwPlxuICAgICAgICAgICAgPC9Ub3BTaXplYWJsZURpdj5cbiAgICAgICAgICAgIDxIb3Jpem9udGFsU3BsaXR0ZXJEaXYvPlxuICAgICAgICAgICAgPFJvd0Rpdj5cbiAgICAgICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICAgICAgPE1pZGRsZVNpemVhYmxlRGl2PlxuICAgICAgICAgICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICAgIFRva2Vuc1xuICAgICAgICAgICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICAgICAgICAgIDxUb2tlbnNUZXh0YXJlYS8+XG4gICAgICAgICAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgICAgICAgICAgPC9NaWRkbGVTaXplYWJsZURpdj5cbiAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbFNwbGl0dGVyRGl2Lz5cbiAgICAgICAgICAgICAgICA8Um93c0Rpdj5cbiAgICAgICAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICBQYXJzZSB0cmVlXG4gICAgICAgICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICAgICAgICA8UGFyc2VUcmVlVGV4dGFyZWEgLz5cbiAgICAgICAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgICAgICAgIDwvUm93c0Rpdj5cbiAgICAgICAgICAgIDwvUm93RGl2PlxuICAgICAgICAgIDwvUm93c0Rpdj5cbiAgICAgICAgPC9MZWZ0U2l6ZWFibGVEaXY+XG4gICAgICAgIDxWZXJ0aWNhbFNwbGl0dGVyRGl2Lz5cbiAgICAgICAgPENvbHVtbkRpdj5cbiAgICAgICAgICA8Um93c0Rpdj5cbiAgICAgICAgICAgIDxSaWdodFNpemVhYmxlRGl2PlxuICAgICAgICAgICAgICA8Um93c0Rpdj5cbiAgICAgICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgICAgIExleGljYWwgZW50cmllc1xuICAgICAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgICA8TGV4aWNhbEVudHJpZXNUZXh0YXJlYSBvbktleVVwPXt0aGlzLmtleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICAgICAgPC9Sb3dzRGl2PlxuICAgICAgICAgICAgPC9SaWdodFNpemVhYmxlRGl2PlxuICAgICAgICAgICAgPEhvcml6b250YWxTcGxpdHRlckRpdi8+XG4gICAgICAgICAgICA8Um93RGl2PlxuICAgICAgICAgICAgICA8Um93c0Rpdj5cbiAgICAgICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgICAgIEJORlxuICAgICAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgICA8Qk5GVGV4dGFyZWEgb25LZXlVcD17dGhpcy5rZXlVcEhhbmRsZXJ9IC8+XG4gICAgICAgICAgICAgIDwvUm93c0Rpdj5cbiAgICAgICAgICAgIDwvUm93RGl2PlxuICAgICAgICAgIDwvUm93c0Rpdj5cbiAgICAgICAgPC9Db2x1bW5EaXY+XG4gICAgICA8L0NvbHVtbnNEaXY+XG5cbiAgICApO1xuICB9XG5cbiAgaW5pdGlhbGlzZSgpIHtcbiAgICB0aGlzLmFzc2lnbkNvbnRleHQoKTtcblxuICAgIGNvbnN0IHsgUGx1Z2luIH0gPSB0aGlzLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIHsgTGV4ZXIsIFBhcnNlciB9ID0gUGx1Z2luLFxuICAgICAgICAgIHsgYm5mIH0gPSBQYXJzZXIsXG4gICAgICAgICAgeyBlbnRyaWVzIH0gPSBMZXhlcixcbiAgICAgICAgICBsZXhpY2FsRW50cmllcyA9IGVudHJpZXM7IC8vL1xuXG4gICAgdGhpcy5zZXRCTkYoYm5mKTtcblxuICAgIHRoaXMuc2V0TGV4aWNhbEVudHJpZXMobGV4aWNhbEVudHJpZXMpO1xuICB9XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcImRpdlwiO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwidmlld1wiXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShWaWV3KWBcblxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMXJlbTtcbiAgXG5gO1xuIl0sIm5hbWVzIjpbInJ1bGVzRnJvbUJORiIsInBhcnNlclV0aWxpdGllcyIsIlZpZXciLCJFbGVtZW50IiwiY29udGVudENoYW5nZUN1c3RvbUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJ1cGRhdGUiLCJsZXhlckZyb21FbnRyaWVzIiwiZW50cmllcyIsIlBsdWdpbiIsIkxleGVyIiwibGV4ZXIiLCJmcm9tRW50cmllcyIsInBhcnNlckZyb21CTkYiLCJibmYiLCJQYXJzZXIiLCJydWxlcyIsInBhcnNlciIsImZyb21SdWxlcyIsImtleVVwSGFuZGxlciIsImxleGljYWxFbnRyaWVzIiwiZ2V0TGV4aWNhbEVudHJpZXMiLCJnZXRCTkYiLCJ5YXBwTGV4ZXIiLCJ5YXBwUGFyc2VyIiwic2V0WWFwcExleGVyIiwic2V0WWFwcFBhcnNlciIsInVwZGF0ZVlhcHAiLCJlcnJvciIsImNvbnNvbGUiLCJsb2ciLCJwYXJzZVRyZWUiLCJwbHVnaW4iLCJnZXRQbHVnaW4iLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJub2RlIiwiZ2V0Tm9kZSIsImFzUGFyc2VUcmVlIiwic2V0VG9rZW5zIiwic2V0UGFyc2VUcmVlIiwiY2xlYXJUb2tlbnMiLCJjbGVhclBhcnNlVHJlZSIsImRpZE1vdW50Iiwid2lsbFVubW91bnQiLCJjaGlsZEVsZW1lbnRzIiwiZmlyYUNvZGUiLCJpbml0aWFsQ29udGVudCIsIkNvbHVtbnNEaXYiLCJMZWZ0U2l6ZWFibGVEaXYiLCJSb3dzRGl2IiwiVG9wU2l6ZWFibGVEaXYiLCJZYXBwIiwib25DdXN0b21Db250ZW50Q2hhbmdlIiwiSG9yaXpvbnRhbFNwbGl0dGVyRGl2IiwiUm93RGl2IiwiTWlkZGxlU2l6ZWFibGVEaXYiLCJTdWJIZWFkaW5nIiwiVG9rZW5zVGV4dGFyZWEiLCJQYXJzZVRyZWVUZXh0YXJlYSIsIlZlcnRpY2FsU3BsaXR0ZXJEaXYiLCJDb2x1bW5EaXYiLCJSaWdodFNpemVhYmxlRGl2IiwiTGV4aWNhbEVudHJpZXNUZXh0YXJlYSIsIm9uS2V5VXAiLCJCTkZUZXh0YXJlYSIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0Iiwic2V0Qk5GIiwic2V0TGV4aWNhbEVudHJpZXMiLCJ0YWdOYW1lIiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiLCJ3aXRoU3R5bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW9MQTs7O2VBQUE7OztzRUFsTHNCO3NCQUVFOzhCQUNROzRCQUNtRTs2REFFbEY7bUVBQ007NERBQ0M7K0RBQ0c7NERBQ0E7NkRBQ0M7OERBQ0M7K0RBQ0M7a0VBQ0E7dUVBQ0s7Ozs7OztBQUVuQyxNQUFNLEVBQUVBLFlBQVksRUFBRSxHQUFHQyw2QkFBZTtBQUV4QyxNQUFNQyxhQUFhQyxhQUFPO0lBQ3hCQyw2QkFBNkIsQ0FBQ0MsT0FBT0M7UUFDbkMsSUFBSSxDQUFDQyxNQUFNO0lBQ2IsRUFBQztJQUVEQyxpQkFBaUJDLE9BQU8sRUFBRTtRQUN4QixNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQzdCLEVBQUVDLEtBQUssRUFBRSxHQUFHRCxRQUNaRSxRQUFRRCxNQUFNRSxXQUFXLENBQUNKO1FBRWhDLE9BQU9HO0lBQ1Q7SUFF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