yapp 2.1.13 → 2.2.0

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 (100) hide show
  1. package/README.md +2 -2
  2. package/example.js +614 -392
  3. package/lib/colours.js +1 -1
  4. package/lib/constants.js +1 -1
  5. package/lib/defaults.js +4 -2
  6. package/lib/element/scrollable.js +309 -0
  7. package/lib/example/constants.js +1 -1
  8. package/lib/example/div/columns.js +1 -1
  9. package/lib/example/div/sizeable/left.js +1 -1
  10. package/lib/example/div/sizeable/middle.js +1 -1
  11. package/lib/example/div/sizeable/right.js +1 -1
  12. package/lib/example/div/sizeable/top.js +1 -1
  13. package/lib/example/div/splitter/horizontal.js +1 -1
  14. package/lib/example/div/splitter/vertical.js +1 -1
  15. package/lib/example/input.js +1 -1
  16. package/lib/example/subHeading.js +1 -1
  17. package/lib/example/textarea/bnf.js +1 -1
  18. package/lib/example/textarea/lexicalEntries.js +1 -1
  19. package/lib/example/textarea/parseTree.js +1 -1
  20. package/lib/example/textarea/tokens.js +3 -3
  21. package/lib/example/textarea.js +1 -1
  22. package/lib/example/view/javascript.js +1 -1
  23. package/lib/example/view/json.js +1 -1
  24. package/lib/example/view/xml.js +1 -1
  25. package/lib/example/view.js +2 -5
  26. package/lib/example/yapp.js +77 -3
  27. package/lib/example.js +1 -1
  28. package/lib/gutter.js +1 -1
  29. package/lib/index.js +1 -1
  30. package/lib/languages.js +1 -1
  31. package/lib/lexer/javascript.js +3 -3
  32. package/lib/lexer/json.js +3 -3
  33. package/lib/lexer/plainText.js +3 -3
  34. package/lib/lexer/xml.js +3 -3
  35. package/lib/lineNumbers.js +1 -1
  36. package/lib/mixins/style.js +68 -0
  37. package/lib/parser/javascript.js +1 -1
  38. package/lib/parser/json.js +1 -1
  39. package/lib/parser/plainText.js +1 -1
  40. package/lib/parser/xml.js +1 -1
  41. package/lib/plugin/javascript.js +1 -1
  42. package/lib/plugin/json.js +1 -1
  43. package/lib/plugin/plainText.js +1 -1
  44. package/lib/plugin/xml.js +1 -1
  45. package/lib/plugin.js +1 -1
  46. package/lib/prettyPrinter.js +46 -26
  47. package/lib/processor/javascript.js +1 -1
  48. package/lib/processor/json.js +1 -1
  49. package/lib/processor/plainText.js +1 -1
  50. package/lib/processor/xml.js +1 -1
  51. package/lib/processor.js +5 -5
  52. package/lib/renderYappStyles.js +1 -1
  53. package/lib/richTextarea.js +21 -21
  54. package/lib/scheme/colour.js +1 -1
  55. package/lib/scheme/syntax/default.js +1 -1
  56. package/lib/scheme/syntax/javaScript.js +1 -1
  57. package/lib/scheme/syntax/json.js +1 -1
  58. package/lib/scheme/syntax/xml.js +1 -1
  59. package/lib/style/firaCode.js +1 -1
  60. package/lib/style/syntax/default.js +1 -1
  61. package/lib/style/syntax/javaScript.js +1 -1
  62. package/lib/style/syntax/json.js +1 -1
  63. package/lib/style/syntax/xml.js +1 -1
  64. package/lib/style/syntax.js +1 -1
  65. package/lib/styles.js +1 -1
  66. package/lib/syntax.js +16 -7
  67. package/lib/token/nonSignificant/comment/multiLine/endOf.js +1 -1
  68. package/lib/token/nonSignificant/comment/multiLine/middleOf.js +1 -1
  69. package/lib/token/nonSignificant/comment/multiLine/startOf.js +1 -1
  70. package/lib/token/nonSignificant/comment/singleLine.js +1 -1
  71. package/lib/token/significant/argument.js +1 -1
  72. package/lib/token/significant/attribute.js +1 -1
  73. package/lib/token/significant/comment.js +1 -1
  74. package/lib/token/significant/error.js +1 -1
  75. package/lib/token/significant/jsx.js +1 -1
  76. package/lib/token/significant/name.js +1 -1
  77. package/lib/token/significant/string.js +1 -1
  78. package/lib/token/significant/variable.js +1 -1
  79. package/lib/tokenTypes.js +1 -1
  80. package/lib/utilities/content.js +1 -1
  81. package/lib/utilities/css.js +1 -1
  82. package/lib/utilities/plugin.js +1 -1
  83. package/lib/utilities/properties.js +1 -1
  84. package/lib/utilities/rules.js +3 -3
  85. package/lib/utilities/scrollbarThickness.js +1 -1
  86. package/lib/utilities/tokens.js +1 -1
  87. package/lib/yapp.js +41 -58
  88. package/package.json +7 -7
  89. package/src/defaults.js +1 -0
  90. package/src/element/{bounded/scrollable.js → scrollable.js} +1 -11
  91. package/src/example/view.js +1 -1
  92. package/src/example/yapp.js +7 -2
  93. package/src/mixins/style.js +97 -0
  94. package/src/prettyPrinter.js +54 -33
  95. package/src/richTextarea.js +28 -20
  96. package/src/syntax.js +14 -3
  97. package/src/yapp.js +58 -56
  98. package/lib/element/bounded/scrollable.js +0 -317
  99. package/lib/element/bounded.js +0 -164
  100. package/src/element/bounded.js +0 -32
@@ -84,4 +84,4 @@ var NameToken = /*#__PURE__*/ function(SignificantToken) {
84
84
  }(_occamLexers.SignificantToken);
85
85
  exports.default = NameToken;
86
86
 
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbi9zaWduaWZpY2FudC9uYW1lLmpzIl0sIm5hbWVzIjpbIlNpZ25pZmljYW50VG9rZW4iLCJOQU1FX1RPS0VOX1RZUEUiLCJ0eXBlIiwiTmFtZVRva2VuIiwiZnJvbUNvbnRlbnQiLCJjb250ZW50IiwiZnJvbUNvbnRlbnRBbmRUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVxQixHQUFjLENBQWQsWUFBYztBQUVmLEdBQWtCLENBQWxCLFdBQWtCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxELEdBQUssQ0FBQyxJQUFJLEdBRnNCLFdBQWtCLGlCQUVuQixDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFYixTQUFTLGlCQUFmLFFBQVE7Y0FBRixTQUFTO2FBQVQsU0FBUzs4QkFBVCxTQUFTO2dFQUFULFNBQVM7O2lCQUFULFNBQVM7O1lBQ3JCLEdBQVcsRUFBWCxDQUFXO21CQUFsQixRQUFRLENBQUQsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUFDLE1BQU0sQ0FQTCxZQUFjLGtCQU9TLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSTtZQUFHLENBQUM7OztXQURsRixTQUFTO0VBTkcsWUFBYztrQkFNMUIsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBTaWduaWZpY2FudFRva2VuIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgeyBOQU1FX1RPS0VOX1RZUEUgfSBmcm9tIFwiLi4vLi4vdG9rZW5UeXBlc1wiO1xuXG5jb25zdCB0eXBlID0gTkFNRV9UT0tFTl9UWVBFOyAgLy8vXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5hbWVUb2tlbiBleHRlbmRzIFNpZ25pZmljYW50VG9rZW4ge1xuICBzdGF0aWMgZnJvbUNvbnRlbnQoY29udGVudCkgeyByZXR1cm4gU2lnbmlmaWNhbnRUb2tlbi5mcm9tQ29udGVudEFuZFR5cGUoTmFtZVRva2VuLCBjb250ZW50LCB0eXBlKTsgfVxufVxuIl19
87
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbi9zaWduaWZpY2FudC9uYW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBTaWduaWZpY2FudFRva2VuIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgeyBOQU1FX1RPS0VOX1RZUEUgfSBmcm9tIFwiLi4vLi4vdG9rZW5UeXBlc1wiO1xuXG5jb25zdCB0eXBlID0gTkFNRV9UT0tFTl9UWVBFOyAgLy8vXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5hbWVUb2tlbiBleHRlbmRzIFNpZ25pZmljYW50VG9rZW4ge1xuICBzdGF0aWMgZnJvbUNvbnRlbnQoY29udGVudCkgeyByZXR1cm4gU2lnbmlmaWNhbnRUb2tlbi5mcm9tQ29udGVudEFuZFR5cGUoTmFtZVRva2VuLCBjb250ZW50LCB0eXBlKTsgfVxufVxuIl0sIm5hbWVzIjpbInR5cGUiLCJOYW1lVG9rZW4iLCJmcm9tQ29udGVudCIsImNvbnRlbnQiLCJmcm9tQ29udGVudEFuZFR5cGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRXFCLEdBQWMsQ0FBZCxZQUFjO0FBRWYsR0FBa0IsQ0FBbEIsV0FBa0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEQsR0FBSyxDQUFDQSxJQUFJLEdBRnNCLFdBQWtCLGlCQUVuQixDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFYkMsU0FBUyxpQkFBZixRQUFRO2NBQUZBLFNBQVM7YUFBVEEsU0FBUzs4QkFBVEEsU0FBUztnRUFBVEEsU0FBUzs7aUJBQVRBLFNBQVM7O1lBQ3JCQyxHQUFXLEVBQVhBLENBQVc7bUJBQWxCLFFBQVEsQ0FBREEsV0FBVyxDQUFDQyxPQUFPLEVBQUUsQ0FBQztnQkFBQyxNQUFNLENBUEwsWUFBYyxrQkFPU0Msa0JBQWtCLENBQUNILFNBQVMsRUFBRUUsT0FBTyxFQUFFSCxJQUFJO1lBQUcsQ0FBQzs7O1dBRGxGQyxTQUFTO0VBTkcsWUFBYztrQkFNMUJBLFNBQVMifQ==
@@ -84,4 +84,4 @@ var StringToken = /*#__PURE__*/ function(SignificantToken) {
84
84
  }(_occamLexers.SignificantToken);
85
85
  exports.default = StringToken;
86
86
 
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbi9zaWduaWZpY2FudC9zdHJpbmcuanMiXSwibmFtZXMiOlsiU2lnbmlmaWNhbnRUb2tlbiIsInR5cGVzIiwic3RyaW5nTGl0ZXJhbFR5cGUiLCJ0eXBlIiwiU3RyaW5nVG9rZW4iLCJmcm9tQ29udGVudCIsImNvbnRlbnQiLCJmcm9tQ29udGVudEFuZFR5cGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRTRCLEdBQWMsQ0FBZCxZQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRELEdBQUssQ0FBRyxpQkFBaUIsR0FGZSxZQUFjLE9BRTlDLGlCQUFpQjtBQUV6QixHQUFLLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztJQUVkLFdBQVcsaUJBQWpCLFFBQVE7Y0FBRixXQUFXO2FBQVgsV0FBVzs4QkFBWCxXQUFXO2dFQUFYLFdBQVc7O2lCQUFYLFdBQVc7O1lBQ3ZCLEdBQVcsRUFBWCxDQUFXO21CQUFsQixRQUFRLENBQUQsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUFDLE1BQU0sQ0FQRSxZQUFjLGtCQU9FLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSTtZQUFHLENBQUM7OztXQURwRixXQUFXO0VBTlEsWUFBYztrQkFNakMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBTaWduaWZpY2FudFRva2VuLCB0eXBlcyB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuY29uc3QgeyBzdHJpbmdMaXRlcmFsVHlwZSB9ID0gdHlwZXM7XG5cbmNvbnN0IHR5cGUgPSBzdHJpbmdMaXRlcmFsVHlwZTsgLy8vXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0cmluZ1Rva2VuIGV4dGVuZHMgU2lnbmlmaWNhbnRUb2tlbiB7XG4gIHN0YXRpYyBmcm9tQ29udGVudChjb250ZW50KSB7IHJldHVybiBTaWduaWZpY2FudFRva2VuLmZyb21Db250ZW50QW5kVHlwZShTdHJpbmdUb2tlbiwgY29udGVudCwgdHlwZSk7IH1cbn1cbiJdfQ==
87
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbi9zaWduaWZpY2FudC9zdHJpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFNpZ25pZmljYW50VG9rZW4sIHR5cGVzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5jb25zdCB7IHN0cmluZ0xpdGVyYWxUeXBlIH0gPSB0eXBlcztcblxuY29uc3QgdHlwZSA9IHN0cmluZ0xpdGVyYWxUeXBlOyAvLy9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RyaW5nVG9rZW4gZXh0ZW5kcyBTaWduaWZpY2FudFRva2VuIHtcbiAgc3RhdGljIGZyb21Db250ZW50KGNvbnRlbnQpIHsgcmV0dXJuIFNpZ25pZmljYW50VG9rZW4uZnJvbUNvbnRlbnRBbmRUeXBlKFN0cmluZ1Rva2VuLCBjb250ZW50LCB0eXBlKTsgfVxufVxuIl0sIm5hbWVzIjpbInN0cmluZ0xpdGVyYWxUeXBlIiwidHlwZSIsIlN0cmluZ1Rva2VuIiwiZnJvbUNvbnRlbnQiLCJjb250ZW50IiwiZnJvbUNvbnRlbnRBbmRUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUU0QixHQUFjLENBQWQsWUFBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV0RCxHQUFLLENBQUdBLGlCQUFpQixHQUZlLFlBQWMsT0FFOUNBLGlCQUFpQjtBQUV6QixHQUFLLENBQUNDLElBQUksR0FBR0QsaUJBQWlCLENBQUUsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBRWRFLFdBQVcsaUJBQWpCLFFBQVE7Y0FBRkEsV0FBVzthQUFYQSxXQUFXOzhCQUFYQSxXQUFXO2dFQUFYQSxXQUFXOztpQkFBWEEsV0FBVzs7WUFDdkJDLEdBQVcsRUFBWEEsQ0FBVzttQkFBbEIsUUFBUSxDQUFEQSxXQUFXLENBQUNDLE9BQU8sRUFBRSxDQUFDO2dCQUFDLE1BQU0sQ0FQRSxZQUFjLGtCQU9FQyxrQkFBa0IsQ0FBQ0gsV0FBVyxFQUFFRSxPQUFPLEVBQUVILElBQUk7WUFBRyxDQUFDOzs7V0FEcEZDLFdBQVc7RUFOUSxZQUFjO2tCQU1qQ0EsV0FBVyJ9
@@ -84,4 +84,4 @@ var VariableToken = /*#__PURE__*/ function(SignificantToken) {
84
84
  }(_occamLexers.SignificantToken);
85
85
  exports.default = VariableToken;
86
86
 
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbi9zaWduaWZpY2FudC92YXJpYWJsZS5qcyJdLCJuYW1lcyI6WyJTaWduaWZpY2FudFRva2VuIiwiVkFSSUFCTEVfVE9LRU5fVFlQRSIsInR5cGUiLCJWYXJpYWJsZVRva2VuIiwiZnJvbUNvbnRlbnQiLCJjb250ZW50IiwiZnJvbUNvbnRlbnRBbmRUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVxQixHQUFjLENBQWQsWUFBYztBQUVYLEdBQWtCLENBQWxCLFdBQWtCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRELEdBQUssQ0FBQyxJQUFJLEdBRjBCLFdBQWtCLHFCQUVuQixDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFakIsYUFBYSxpQkFBbkIsUUFBUTtjQUFGLGFBQWE7YUFBYixhQUFhOzhCQUFiLGFBQWE7Z0VBQWIsYUFBYTs7aUJBQWIsYUFBYTs7WUFDekIsR0FBVyxFQUFYLENBQVc7bUJBQWxCLFFBQVEsQ0FBRCxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQUMsTUFBTSxDQVBMLFlBQWMsa0JBT1Msa0JBQWtCLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJO1lBQUcsQ0FBQzs7O1dBRHRGLGFBQWE7RUFORCxZQUFjO2tCQU0xQixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFNpZ25pZmljYW50VG9rZW4gfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCB7IFZBUklBQkxFX1RPS0VOX1RZUEUgfSBmcm9tIFwiLi4vLi4vdG9rZW5UeXBlc1wiO1xuXG5jb25zdCB0eXBlID0gVkFSSUFCTEVfVE9LRU5fVFlQRTsgIC8vL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWYXJpYWJsZVRva2VuIGV4dGVuZHMgU2lnbmlmaWNhbnRUb2tlbiB7XG4gIHN0YXRpYyBmcm9tQ29udGVudChjb250ZW50KSB7IHJldHVybiBTaWduaWZpY2FudFRva2VuLmZyb21Db250ZW50QW5kVHlwZShWYXJpYWJsZVRva2VuLCBjb250ZW50LCB0eXBlKTsgfVxufVxuIl19
87
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbi9zaWduaWZpY2FudC92YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgU2lnbmlmaWNhbnRUb2tlbiB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IHsgVkFSSUFCTEVfVE9LRU5fVFlQRSB9IGZyb20gXCIuLi8uLi90b2tlblR5cGVzXCI7XG5cbmNvbnN0IHR5cGUgPSBWQVJJQUJMRV9UT0tFTl9UWVBFOyAgLy8vXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZhcmlhYmxlVG9rZW4gZXh0ZW5kcyBTaWduaWZpY2FudFRva2VuIHtcbiAgc3RhdGljIGZyb21Db250ZW50KGNvbnRlbnQpIHsgcmV0dXJuIFNpZ25pZmljYW50VG9rZW4uZnJvbUNvbnRlbnRBbmRUeXBlKFZhcmlhYmxlVG9rZW4sIGNvbnRlbnQsIHR5cGUpOyB9XG59XG4iXSwibmFtZXMiOlsidHlwZSIsIlZhcmlhYmxlVG9rZW4iLCJmcm9tQ29udGVudCIsImNvbnRlbnQiLCJmcm9tQ29udGVudEFuZFR5cGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRXFCLEdBQWMsQ0FBZCxZQUFjO0FBRVgsR0FBa0IsQ0FBbEIsV0FBa0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdEQsR0FBSyxDQUFDQSxJQUFJLEdBRjBCLFdBQWtCLHFCQUVuQixDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFakJDLGFBQWEsaUJBQW5CLFFBQVE7Y0FBRkEsYUFBYTthQUFiQSxhQUFhOzhCQUFiQSxhQUFhO2dFQUFiQSxhQUFhOztpQkFBYkEsYUFBYTs7WUFDekJDLEdBQVcsRUFBWEEsQ0FBVzttQkFBbEIsUUFBUSxDQUFEQSxXQUFXLENBQUNDLE9BQU8sRUFBRSxDQUFDO2dCQUFDLE1BQU0sQ0FQTCxZQUFjLGtCQU9TQyxrQkFBa0IsQ0FBQ0gsYUFBYSxFQUFFRSxPQUFPLEVBQUVILElBQUk7WUFBRyxDQUFDOzs7V0FEdEZDLGFBQWE7RUFORCxZQUFjO2tCQU0xQkEsYUFBYSJ9
package/lib/tokenTypes.js CHANGED
@@ -18,4 +18,4 @@ exports.VARIABLE_TOKEN_TYPE = VARIABLE_TOKEN_TYPE;
18
18
  var ATTRIBUTE_TOKEN_TYPE = "attribute";
19
19
  exports.ATTRIBUTE_TOKEN_TYPE = ATTRIBUTE_TOKEN_TYPE;
20
20
 
21
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90b2tlblR5cGVzLmpzIl0sIm5hbWVzIjpbIkpTWF9UT0tFTl9UWVBFIiwiTkFNRV9UT0tFTl9UWVBFIiwiRVJST1JfVE9LRU5fVFlQRSIsIkNPTU1FTlRfVE9LRU5fVFlQRSIsIkFSR1VNRU5UX1RPS0VOX1RZUEUiLCJWQVJJQUJMRV9UT0tFTl9UWVBFIiwiQVRUUklCVVRFX1RPS0VOX1RZUEUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRUwsR0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFLO1FBQXRCLGNBQWMsR0FBZCxjQUFjO0FBQ3BCLEdBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBTTtRQUF4QixlQUFlLEdBQWYsZUFBZTtBQUNyQixHQUFLLENBQUMsZ0JBQWdCLEdBQUcsQ0FBTztRQUExQixnQkFBZ0IsR0FBaEIsZ0JBQWdCO0FBQ3RCLEdBQUssQ0FBQyxrQkFBa0IsR0FBRyxDQUFTO1FBQTlCLGtCQUFrQixHQUFsQixrQkFBa0I7QUFDeEIsR0FBSyxDQUFDLG1CQUFtQixHQUFHLENBQVU7UUFBaEMsbUJBQW1CLEdBQW5CLG1CQUFtQjtBQUN6QixHQUFLLENBQUMsbUJBQW1CLEdBQUcsQ0FBVTtRQUFoQyxtQkFBbUIsR0FBbkIsbUJBQW1CO0FBQ3pCLEdBQUssQ0FBQyxvQkFBb0IsR0FBRyxDQUFXO1FBQWxDLG9CQUFvQixHQUFwQixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGNvbnN0IEpTWF9UT0tFTl9UWVBFID0gXCJqc3hcIjtcbmV4cG9ydCBjb25zdCBOQU1FX1RPS0VOX1RZUEUgPSBcIm5hbWVcIjtcbmV4cG9ydCBjb25zdCBFUlJPUl9UT0tFTl9UWVBFID0gXCJlcnJvclwiO1xuZXhwb3J0IGNvbnN0IENPTU1FTlRfVE9LRU5fVFlQRSA9IFwiY29tbWVudFwiO1xuZXhwb3J0IGNvbnN0IEFSR1VNRU5UX1RPS0VOX1RZUEUgPSBcImFyZ3VtZW50XCI7XG5leHBvcnQgY29uc3QgVkFSSUFCTEVfVE9LRU5fVFlQRSA9IFwidmFyaWFibGVcIjtcbmV4cG9ydCBjb25zdCBBVFRSSUJVVEVfVE9LRU5fVFlQRSA9IFwiYXR0cmlidXRlXCI7XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90b2tlblR5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgSlNYX1RPS0VOX1RZUEUgPSBcImpzeFwiO1xuZXhwb3J0IGNvbnN0IE5BTUVfVE9LRU5fVFlQRSA9IFwibmFtZVwiO1xuZXhwb3J0IGNvbnN0IEVSUk9SX1RPS0VOX1RZUEUgPSBcImVycm9yXCI7XG5leHBvcnQgY29uc3QgQ09NTUVOVF9UT0tFTl9UWVBFID0gXCJjb21tZW50XCI7XG5leHBvcnQgY29uc3QgQVJHVU1FTlRfVE9LRU5fVFlQRSA9IFwiYXJndW1lbnRcIjtcbmV4cG9ydCBjb25zdCBWQVJJQUJMRV9UT0tFTl9UWVBFID0gXCJ2YXJpYWJsZVwiO1xuZXhwb3J0IGNvbnN0IEFUVFJJQlVURV9UT0tFTl9UWVBFID0gXCJhdHRyaWJ1dGVcIjtcbiJdLCJuYW1lcyI6WyJKU1hfVE9LRU5fVFlQRSIsIk5BTUVfVE9LRU5fVFlQRSIsIkVSUk9SX1RPS0VOX1RZUEUiLCJDT01NRU5UX1RPS0VOX1RZUEUiLCJBUkdVTUVOVF9UT0tFTl9UWVBFIiwiVkFSSUFCTEVfVE9LRU5fVFlQRSIsIkFUVFJJQlVURV9UT0tFTl9UWVBFIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVMLEdBQUssQ0FBQ0EsY0FBYyxHQUFHLENBQUs7UUFBdEJBLGNBQWMsR0FBZEEsY0FBYztBQUNwQixHQUFLLENBQUNDLGVBQWUsR0FBRyxDQUFNO1FBQXhCQSxlQUFlLEdBQWZBLGVBQWU7QUFDckIsR0FBSyxDQUFDQyxnQkFBZ0IsR0FBRyxDQUFPO1FBQTFCQSxnQkFBZ0IsR0FBaEJBLGdCQUFnQjtBQUN0QixHQUFLLENBQUNDLGtCQUFrQixHQUFHLENBQVM7UUFBOUJBLGtCQUFrQixHQUFsQkEsa0JBQWtCO0FBQ3hCLEdBQUssQ0FBQ0MsbUJBQW1CLEdBQUcsQ0FBVTtRQUFoQ0EsbUJBQW1CLEdBQW5CQSxtQkFBbUI7QUFDekIsR0FBSyxDQUFDQyxtQkFBbUIsR0FBRyxDQUFVO1FBQWhDQSxtQkFBbUIsR0FBbkJBLG1CQUFtQjtBQUN6QixHQUFLLENBQUNDLG9CQUFvQixHQUFHLENBQVc7UUFBbENBLG9CQUFvQixHQUFwQkEsb0JBQW9CIn0=
@@ -28,4 +28,4 @@ function lineCountFromContent(content) {
28
28
  return lineCount;
29
29
  }
30
30
 
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGVudC5qcyJdLCJuYW1lcyI6WyJhcnJheVV0aWxpdGllcyIsIkVNUFRZX1NUUklORyIsImZpcnN0IiwiY29udGVudEZyb21DaGlsZEVsZW1lbnRzIiwiY2hpbGRFbGVtZW50cyIsImNvbnRlbnQiLCJjaGlsZEVsZW1lbnRzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RDaGlsZEVsZW1lbnQiLCJmaXJzdENoaWxkRWxlbWVudFRleHQiLCJnZXRUZXh0IiwibGluZUNvdW50RnJvbUNvbnRlbnQiLCJsaW5lQ291bnQiLCJtYXRjaGVzIiwibWF0Y2giLCJtYXRjaGVzTGVuZ3RoIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7O1FBUUksd0JBQXdCLEdBQXhCLHdCQUF3QjtRQWV4QixvQkFBb0IsR0FBcEIsb0JBQW9CO0FBckJMLEdBQVcsQ0FBWCxVQUFXO0FBRWIsR0FBYyxDQUFkLFVBQWM7QUFFM0MsR0FBSyxDQUFHLEtBQUssR0FKa0IsVUFBVyxnQkFJbEMsS0FBSztTQUVHLHdCQUF3QixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZELEdBQUcsQ0FBQyxPQUFPLEdBTGdCLFVBQWM7SUFPekMsR0FBSyxDQUFDLG1CQUFtQixHQUFHLGFBQWEsQ0FBQyxNQUFNO0lBRWhELEVBQUUsRUFBRSxtQkFBbUIsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QixHQUFLLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGFBQWEsR0FDdkMscUJBQXFCLEdBQUcsaUJBQWlCLENBQUMsT0FBTztRQUV2RCxPQUFPLEdBQUcscUJBQXFCLENBQUcsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTztBQUNoQixDQUFDO1NBRWUsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0MsR0FBRyxDQUFDLFNBQVM7SUFFYixHQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLO0lBRTdCLEVBQUUsRUFBRSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDckIsU0FBUyxHQUFHLENBQUM7SUFDZixDQUFDLE1BQU0sQ0FBQztRQUNOLEdBQUssQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU07UUFFcEMsU0FBUyxHQUFHLGFBQWEsR0FBRyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudEZyb21DaGlsZEVsZW1lbnRzKGNoaWxkRWxlbWVudHMpIHtcbiAgbGV0IGNvbnRlbnQgPSBFTVBUWV9TVFJJTkc7XG5cbiAgY29uc3QgY2hpbGRFbGVtZW50c0xlbmd0aCA9IGNoaWxkRWxlbWVudHMubGVuZ3RoO1xuXG4gIGlmIChjaGlsZEVsZW1lbnRzTGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGZpcnN0Q2hpbGRFbGVtZW50ID0gZmlyc3QoY2hpbGRFbGVtZW50cyksXG4gICAgICAgICAgZmlyc3RDaGlsZEVsZW1lbnRUZXh0ID0gZmlyc3RDaGlsZEVsZW1lbnQuZ2V0VGV4dCgpO1xuXG4gICAgY29udGVudCA9IGZpcnN0Q2hpbGRFbGVtZW50VGV4dDsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaW5lQ291bnRGcm9tQ29udGVudChjb250ZW50KSB7XG4gIGxldCBsaW5lQ291bnQ7XG5cbiAgY29uc3QgbWF0Y2hlcyA9IGNvbnRlbnQubWF0Y2goL1xcclxcbnxcXHJ8XFxuL2cpO1xuXG4gIGlmIChtYXRjaGVzID09PSBudWxsKSB7XG4gICAgbGluZUNvdW50ID0gMTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtYXRjaGVzTGVuZ3RoID0gbWF0Y2hlcy5sZW5ndGg7XG5cbiAgICBsaW5lQ291bnQgPSBtYXRjaGVzTGVuZ3RoICsgMTtcbiAgfVxuXG4gIHJldHVybiBsaW5lQ291bnQ7XG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBmaXJzdCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50RnJvbUNoaWxkRWxlbWVudHMoY2hpbGRFbGVtZW50cykge1xuICBsZXQgY29udGVudCA9IEVNUFRZX1NUUklORztcblxuICBjb25zdCBjaGlsZEVsZW1lbnRzTGVuZ3RoID0gY2hpbGRFbGVtZW50cy5sZW5ndGg7XG5cbiAgaWYgKGNoaWxkRWxlbWVudHNMZW5ndGggPiAwKSB7XG4gICAgY29uc3QgZmlyc3RDaGlsZEVsZW1lbnQgPSBmaXJzdChjaGlsZEVsZW1lbnRzKSxcbiAgICAgICAgICBmaXJzdENoaWxkRWxlbWVudFRleHQgPSBmaXJzdENoaWxkRWxlbWVudC5nZXRUZXh0KCk7XG5cbiAgICBjb250ZW50ID0gZmlyc3RDaGlsZEVsZW1lbnRUZXh0OyAgLy8vXG4gIH1cblxuICByZXR1cm4gY29udGVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmVDb3VudEZyb21Db250ZW50KGNvbnRlbnQpIHtcbiAgbGV0IGxpbmVDb3VudDtcblxuICBjb25zdCBtYXRjaGVzID0gY29udGVudC5tYXRjaCgvXFxyXFxufFxccnxcXG4vZyk7XG5cbiAgaWYgKG1hdGNoZXMgPT09IG51bGwpIHtcbiAgICBsaW5lQ291bnQgPSAxO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG1hdGNoZXNMZW5ndGggPSBtYXRjaGVzLmxlbmd0aDtcblxuICAgIGxpbmVDb3VudCA9IG1hdGNoZXNMZW5ndGggKyAxO1xuICB9XG5cbiAgcmV0dXJuIGxpbmVDb3VudDtcbn1cbiJdLCJuYW1lcyI6WyJjb250ZW50RnJvbUNoaWxkRWxlbWVudHMiLCJsaW5lQ291bnRGcm9tQ29udGVudCIsImZpcnN0IiwiY2hpbGRFbGVtZW50cyIsImNvbnRlbnQiLCJjaGlsZEVsZW1lbnRzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RDaGlsZEVsZW1lbnQiLCJmaXJzdENoaWxkRWxlbWVudFRleHQiLCJnZXRUZXh0IiwibGluZUNvdW50IiwibWF0Y2hlcyIsIm1hdGNoIiwibWF0Y2hlc0xlbmd0aCJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQVFJQSx3QkFBd0IsR0FBeEJBLHdCQUF3QjtRQWV4QkMsb0JBQW9CLEdBQXBCQSxvQkFBb0I7QUFyQkwsR0FBVyxDQUFYLFVBQVc7QUFFYixHQUFjLENBQWQsVUFBYztBQUUzQyxHQUFLLENBQUdDLEtBQUssR0FKa0IsVUFBVyxnQkFJbENBLEtBQUs7U0FFR0Ysd0JBQXdCLENBQUNHLGFBQWEsRUFBRSxDQUFDO0lBQ3ZELEdBQUcsQ0FBQ0MsT0FBTyxHQUxnQixVQUFjO0lBT3pDLEdBQUssQ0FBQ0MsbUJBQW1CLEdBQUdGLGFBQWEsQ0FBQ0csTUFBTTtJQUVoRCxFQUFFLEVBQUVELG1CQUFtQixHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzVCLEdBQUssQ0FBQ0UsaUJBQWlCLEdBQUdMLEtBQUssQ0FBQ0MsYUFBYSxHQUN2Q0sscUJBQXFCLEdBQUdELGlCQUFpQixDQUFDRSxPQUFPO1FBRXZETCxPQUFPLEdBQUdJLHFCQUFxQixDQUFHLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztJQUN2QyxDQUFDO0lBRUQsTUFBTSxDQUFDSixPQUFPO0FBQ2hCLENBQUM7U0FFZUgsb0JBQW9CLENBQUNHLE9BQU8sRUFBRSxDQUFDO0lBQzdDLEdBQUcsQ0FBQ00sU0FBUztJQUViLEdBQUssQ0FBQ0MsT0FBTyxHQUFHUCxPQUFPLENBQUNRLEtBQUs7SUFFN0IsRUFBRSxFQUFFRCxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDckJELFNBQVMsR0FBRyxDQUFDO0lBQ2YsQ0FBQyxNQUFNLENBQUM7UUFDTixHQUFLLENBQUNHLGFBQWEsR0FBR0YsT0FBTyxDQUFDTCxNQUFNO1FBRXBDSSxTQUFTLEdBQUdHLGFBQWEsR0FBRyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUNILFNBQVM7QUFDbEIsQ0FBQyJ9
@@ -16,4 +16,4 @@ function stripPixels(valueInPixels) {
16
16
  return value;
17
17
  }
18
18
 
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY3NzLmpzIl0sIm5hbWVzIjpbImFycmF5VXRpbGl0aWVzIiwic2Vjb25kIiwic3RyaXBQaXhlbHMiLCJ2YWx1ZUluUGl4ZWxzIiwidmFsdWUiLCJtYXRjaGVzIiwibWF0Y2giLCJzZWNvbmRNYXRjaCIsIk51bWJlciJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQU1JLFdBQVcsR0FBWCxXQUFXO0FBSkksR0FBVyxDQUFYLFVBQVc7QUFFMUMsR0FBSyxDQUFHLE1BQU0sR0FGaUIsVUFBVyxnQkFFbEMsTUFBTTtTQUVFLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQyxHQUFHLENBQUMsS0FBSztJQUVULEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUNuQixLQUFLLEdBQUcsQ0FBQztJQUNYLENBQUMsTUFBTSxDQUFDO1FBQ04sR0FBSyxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUMsS0FBSyxjQUM3QixXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU87UUFFbEMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUcsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgc2Vjb25kIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwUGl4ZWxzKHZhbHVlSW5QaXhlbHMpIHtcbiAgbGV0IHZhbHVlO1xuXG4gIGlmICghdmFsdWVJblBpeGVscykge1xuICAgIHZhbHVlID0gMDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtYXRjaGVzID0gdmFsdWVJblBpeGVscy5tYXRjaCgvXiguKylweCQvKSxcbiAgICAgICAgICBzZWNvbmRNYXRjaCA9IHNlY29uZChtYXRjaGVzKTtcblxuICAgIHZhbHVlID0gTnVtYmVyKHNlY29uZE1hdGNoKTsgLy8vXG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY3NzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBzZWNvbmQgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBQaXhlbHModmFsdWVJblBpeGVscykge1xuICBsZXQgdmFsdWU7XG5cbiAgaWYgKCF2YWx1ZUluUGl4ZWxzKSB7XG4gICAgdmFsdWUgPSAwO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG1hdGNoZXMgPSB2YWx1ZUluUGl4ZWxzLm1hdGNoKC9eKC4rKXB4JC8pLFxuICAgICAgICAgIHNlY29uZE1hdGNoID0gc2Vjb25kKG1hdGNoZXMpO1xuXG4gICAgdmFsdWUgPSBOdW1iZXIoc2Vjb25kTWF0Y2gpOyAvLy9cbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cbiJdLCJuYW1lcyI6WyJzdHJpcFBpeGVscyIsInNlY29uZCIsInZhbHVlSW5QaXhlbHMiLCJ2YWx1ZSIsIm1hdGNoZXMiLCJtYXRjaCIsInNlY29uZE1hdGNoIiwiTnVtYmVyIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7O1FBTUlBLFdBQVcsR0FBWEEsV0FBVztBQUpJLEdBQVcsQ0FBWCxVQUFXO0FBRTFDLEdBQUssQ0FBR0MsTUFBTSxHQUZpQixVQUFXLGdCQUVsQ0EsTUFBTTtTQUVFRCxXQUFXLENBQUNFLGFBQWEsRUFBRSxDQUFDO0lBQzFDLEdBQUcsQ0FBQ0MsS0FBSztJQUVULEVBQUUsR0FBR0QsYUFBYSxFQUFFLENBQUM7UUFDbkJDLEtBQUssR0FBRyxDQUFDO0lBQ1gsQ0FBQyxNQUFNLENBQUM7UUFDTixHQUFLLENBQUNDLE9BQU8sR0FBR0YsYUFBYSxDQUFDRyxLQUFLLGNBQzdCQyxXQUFXLEdBQUdMLE1BQU0sQ0FBQ0csT0FBTztRQUVsQ0QsS0FBSyxHQUFHSSxNQUFNLENBQUNELFdBQVcsRUFBRyxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQ0gsS0FBSztBQUNkLENBQUMifQ==
@@ -34,4 +34,4 @@ function pluginFromLanguageAndPlugin(language, Plugin) {
34
34
  return plugin;
35
35
  }
36
36
 
37
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcGx1Z2luLmpzIl0sIm5hbWVzIjpbIlhNTFBsdWdpbiIsIkpTT05QbHVnaW4iLCJQbGFpblRleHRQbHVnaW4iLCJKYXZhU2NyaXB0UGx1Z2luIiwiWE1MX0xBTkdVQUdFIiwiSlNPTl9MQU5HVUFHRSIsIlBMQUlOX1RFWFRfTEFOR1VBR0UiLCJwbHVnaW5Gcm9tTGFuZ3VhZ2VBbmRQbHVnaW4iLCJsYW5ndWFnZSIsIlBsdWdpbiIsInBsdWdpbiIsImZyb21Ob3RoaW5nIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7O1FBU0ksMkJBQTJCLEdBQTNCLDJCQUEyQjtBQVByQixHQUFlLENBQWYsSUFBZTtBQUNkLEdBQWdCLENBQWhCLEtBQWdCO0FBQ1gsR0FBcUIsQ0FBckIsVUFBcUI7QUFDcEIsR0FBc0IsQ0FBdEIsV0FBc0I7QUFFYyxHQUFjLENBQWQsVUFBYzs7Ozs7O1NBRS9ELDJCQUEyQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM3RCxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDWixNQUFNLENBQUUsUUFBUTtZQUNkLElBQUksQ0FMdUQsVUFBYztnQkFLdEQsTUFBTSxHQVZULElBQWU7Z0JBVVEsS0FBSztZQUM1QyxJQUFJLENBTnVELFVBQWM7Z0JBTXJELE1BQU0sR0FWVCxLQUFnQjtnQkFVUSxLQUFLO1lBQzlDLElBQUksQ0FQdUQsVUFBYztnQkFPL0MsTUFBTSxHQVZWLFVBQXFCO2dCQVVTLEtBQUs7O2dCQUd2RCxNQUFNLEdBWmUsV0FBc0I7Z0JBYzNDLEtBQUs7O0lBRVgsQ0FBQztJQUVELEdBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVc7SUFFakMsTUFBTSxDQUFDLE1BQU07QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBYTUxQbHVnaW4gZnJvbSBcIi4uL3BsdWdpbi94bWxcIjtcbmltcG9ydCBKU09OUGx1Z2luIGZyb20gXCIuLi9wbHVnaW4vanNvblwiO1xuaW1wb3J0IFBsYWluVGV4dFBsdWdpbiBmcm9tIFwiLi4vcGx1Z2luL3BsYWluVGV4dFwiO1xuaW1wb3J0IEphdmFTY3JpcHRQbHVnaW4gZnJvbSBcIi4uL3BsdWdpbi9qYXZhc2NyaXB0XCI7XG5cbmltcG9ydCB7IFhNTF9MQU5HVUFHRSwgSlNPTl9MQU5HVUFHRSwgUExBSU5fVEVYVF9MQU5HVUFHRSB9IGZyb20gXCIuLi9sYW5ndWFnZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBsdWdpbkZyb21MYW5ndWFnZUFuZFBsdWdpbihsYW5ndWFnZSwgUGx1Z2luKSB7XG4gIGlmICghUGx1Z2luKSB7XG4gICAgc3dpdGNoIChsYW5ndWFnZSkge1xuICAgICAgY2FzZSBYTUxfTEFOR1VBR0U6IFBsdWdpbiA9IFhNTFBsdWdpbjsgYnJlYWs7XG4gICAgICBjYXNlIEpTT05fTEFOR1VBR0U6IFBsdWdpbiA9IEpTT05QbHVnaW47IGJyZWFrO1xuICAgICAgY2FzZSBQTEFJTl9URVhUX0xBTkdVQUdFOiBQbHVnaW4gPSBQbGFpblRleHRQbHVnaW47IGJyZWFrO1xuXG4gICAgICBkZWZhdWx0IDpcbiAgICAgICAgUGx1Z2luID0gSmF2YVNjcmlwdFBsdWdpbjtcblxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjb25zdCBwbHVnaW4gPSBQbHVnaW4uZnJvbU5vdGhpbmcoKTtcblxuICByZXR1cm4gcGx1Z2luO1xufVxuIl19
37
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcGx1Z2luLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgWE1MUGx1Z2luIGZyb20gXCIuLi9wbHVnaW4veG1sXCI7XG5pbXBvcnQgSlNPTlBsdWdpbiBmcm9tIFwiLi4vcGx1Z2luL2pzb25cIjtcbmltcG9ydCBQbGFpblRleHRQbHVnaW4gZnJvbSBcIi4uL3BsdWdpbi9wbGFpblRleHRcIjtcbmltcG9ydCBKYXZhU2NyaXB0UGx1Z2luIGZyb20gXCIuLi9wbHVnaW4vamF2YXNjcmlwdFwiO1xuXG5pbXBvcnQgeyBYTUxfTEFOR1VBR0UsIEpTT05fTEFOR1VBR0UsIFBMQUlOX1RFWFRfTEFOR1VBR0UgfSBmcm9tIFwiLi4vbGFuZ3VhZ2VzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwbHVnaW5Gcm9tTGFuZ3VhZ2VBbmRQbHVnaW4obGFuZ3VhZ2UsIFBsdWdpbikge1xuICBpZiAoIVBsdWdpbikge1xuICAgIHN3aXRjaCAobGFuZ3VhZ2UpIHtcbiAgICAgIGNhc2UgWE1MX0xBTkdVQUdFOiBQbHVnaW4gPSBYTUxQbHVnaW47IGJyZWFrO1xuICAgICAgY2FzZSBKU09OX0xBTkdVQUdFOiBQbHVnaW4gPSBKU09OUGx1Z2luOyBicmVhaztcbiAgICAgIGNhc2UgUExBSU5fVEVYVF9MQU5HVUFHRTogUGx1Z2luID0gUGxhaW5UZXh0UGx1Z2luOyBicmVhaztcblxuICAgICAgZGVmYXVsdCA6XG4gICAgICAgIFBsdWdpbiA9IEphdmFTY3JpcHRQbHVnaW47XG5cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcGx1Z2luID0gUGx1Z2luLmZyb21Ob3RoaW5nKCk7XG5cbiAgcmV0dXJuIHBsdWdpbjtcbn1cbiJdLCJuYW1lcyI6WyJwbHVnaW5Gcm9tTGFuZ3VhZ2VBbmRQbHVnaW4iLCJsYW5ndWFnZSIsIlBsdWdpbiIsInBsdWdpbiIsImZyb21Ob3RoaW5nIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7O1FBU0lBLDJCQUEyQixHQUEzQkEsMkJBQTJCO0FBUHJCLEdBQWUsQ0FBZixJQUFlO0FBQ2QsR0FBZ0IsQ0FBaEIsS0FBZ0I7QUFDWCxHQUFxQixDQUFyQixVQUFxQjtBQUNwQixHQUFzQixDQUF0QixXQUFzQjtBQUVjLEdBQWMsQ0FBZCxVQUFjOzs7Ozs7U0FFL0RBLDJCQUEyQixDQUFDQyxRQUFRLEVBQUVDLE1BQU0sRUFBRSxDQUFDO0lBQzdELEVBQUUsR0FBR0EsTUFBTSxFQUFFLENBQUM7UUFDWixNQUFNLENBQUVELFFBQVE7WUFDZCxJQUFJLENBTHVELFVBQWM7Z0JBS3REQyxNQUFNLEdBVlQsSUFBZTtnQkFVUSxLQUFLO1lBQzVDLElBQUksQ0FOdUQsVUFBYztnQkFNckRBLE1BQU0sR0FWVCxLQUFnQjtnQkFVUSxLQUFLO1lBQzlDLElBQUksQ0FQdUQsVUFBYztnQkFPL0NBLE1BQU0sR0FWVixVQUFxQjtnQkFVUyxLQUFLOztnQkFHdkRBLE1BQU0sR0FaZSxXQUFzQjtnQkFjM0MsS0FBSzs7SUFFWCxDQUFDO0lBRUQsR0FBSyxDQUFDQyxNQUFNLEdBQUdELE1BQU0sQ0FBQ0UsV0FBVztJQUVqQyxNQUFNLENBQUNELE1BQU07QUFDZixDQUFDIn0=
@@ -18,4 +18,4 @@ function propertiesFromContentLanguagePluginAndOptions(content, language, Plugin
18
18
  return properties;
19
19
  }
20
20
 
21
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJvcGVydGllcy5qcyJdLCJuYW1lcyI6WyJwcm9wZXJ0aWVzRnJvbUNvbnRlbnRMYW5ndWFnZVBsdWdpbkFuZE9wdGlvbnMiLCJjb250ZW50IiwibGFuZ3VhZ2UiLCJQbHVnaW4iLCJvcHRpb25zIiwidGV4dCIsImNoaWxkRWxlbWVudHMiLCJnZXRUZXh0IiwicHJvcGVydGllcyIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQUVJLDZDQUE2QyxHQUE3Qyw2Q0FBNkM7U0FBN0MsNkNBQTZDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDakcsR0FBSyxDQUFDLElBQUksR0FBRyxPQUFPLEVBQ2QsYUFBYSxHQUFHLENBQUM7UUFBQSxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxRQUFRO2dCQUFGLE1BQ3pCLENBRHlCLElBQUk7O1FBQ3JCLENBQUM7SUFBQSxDQUFDLEVBQ0YsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixhQUFhLEVBQWIsYUFBYTtRQUNiLFFBQVEsRUFBUixRQUFRO1FBQ1IsTUFBTSxFQUFOLE1BQU07SUFDUixDQUFDLEVBQUUsT0FBTztJQUVoQixNQUFNLENBQUMsVUFBVTtBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0aWVzRnJvbUNvbnRlbnRMYW5ndWFnZVBsdWdpbkFuZE9wdGlvbnMoY29udGVudCwgbGFuZ3VhZ2UsIFBsdWdpbiwgb3B0aW9ucykge1xuICBjb25zdCB0ZXh0ID0gY29udGVudCwgLy8vXG4gICAgICAgIGNoaWxkRWxlbWVudHMgPSBbe1xuICAgICAgICAgIGdldFRleHQ6ICgpID0+IHRleHQsXG4gICAgICAgIH1dLFxuICAgICAgICBwcm9wZXJ0aWVzID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgY2hpbGRFbGVtZW50cyxcbiAgICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgICBQbHVnaW5cbiAgICAgICAgfSwgb3B0aW9ucyk7XG5cbiAgcmV0dXJuIHByb3BlcnRpZXM7XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJvcGVydGllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnRpZXNGcm9tQ29udGVudExhbmd1YWdlUGx1Z2luQW5kT3B0aW9ucyhjb250ZW50LCBsYW5ndWFnZSwgUGx1Z2luLCBvcHRpb25zKSB7XG4gIGNvbnN0IHRleHQgPSBjb250ZW50LCAvLy9cbiAgICAgICAgY2hpbGRFbGVtZW50cyA9IFt7XG4gICAgICAgICAgZ2V0VGV4dDogKCkgPT4gdGV4dCxcbiAgICAgICAgfV0sXG4gICAgICAgIHByb3BlcnRpZXMgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICBjaGlsZEVsZW1lbnRzLFxuICAgICAgICAgIGxhbmd1YWdlLFxuICAgICAgICAgIFBsdWdpblxuICAgICAgICB9LCBvcHRpb25zKTtcblxuICByZXR1cm4gcHJvcGVydGllcztcbn1cbiJdLCJuYW1lcyI6WyJwcm9wZXJ0aWVzRnJvbUNvbnRlbnRMYW5ndWFnZVBsdWdpbkFuZE9wdGlvbnMiLCJjb250ZW50IiwibGFuZ3VhZ2UiLCJQbHVnaW4iLCJvcHRpb25zIiwidGV4dCIsImNoaWxkRWxlbWVudHMiLCJnZXRUZXh0IiwicHJvcGVydGllcyIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQUVJQSw2Q0FBNkMsR0FBN0NBLDZDQUE2QztTQUE3Q0EsNkNBQTZDLENBQUNDLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRSxDQUFDO0lBQ2pHLEdBQUssQ0FBQ0MsSUFBSSxHQUFHSixPQUFPLEVBQ2RLLGFBQWEsR0FBRyxDQUFDO1FBQUEsQ0FBQztZQUNoQkMsT0FBTyxFQUFFLFFBQVE7Z0JBQUZGLE1BQ3pCLENBRHlCQSxJQUFJOztRQUNyQixDQUFDO0lBQUEsQ0FBQyxFQUNGRyxVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLENBQUM7UUFDMUJKLGFBQWEsRUFBYkEsYUFBYTtRQUNiSixRQUFRLEVBQVJBLFFBQVE7UUFDUkMsTUFBTSxFQUFOQSxNQUFNO0lBQ1IsQ0FBQyxFQUFFQyxPQUFPO0lBRWhCLE1BQU0sQ0FBQ0ksVUFBVTtBQUNuQixDQUFDIn0=
@@ -11,13 +11,13 @@ function startRuleFromRules(rules) {
11
11
  return startRule;
12
12
  }
13
13
  function ruleMapFromRules(rules) {
14
- var ruleMap = rules.reduce(function(ruleMap, rule) {
14
+ var ruleMap1 = rules.reduce(function(ruleMap, rule) {
15
15
  var ruleName = rule.getName();
16
16
  ruleMap[ruleName] = rule;
17
17
  return ruleMap;
18
18
  }, {
19
19
  });
20
- return ruleMap;
20
+ return ruleMap1;
21
21
  }
22
22
 
23
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcnVsZXMuanMiXSwibmFtZXMiOlsiYXJyYXlVdGlsaXRpZXMiLCJmaXJzdCIsInN0YXJ0UnVsZUZyb21SdWxlcyIsInJ1bGVzIiwiZmlyc3RSdWxlIiwic3RhcnRSdWxlIiwicnVsZU1hcEZyb21SdWxlcyIsInJ1bGVNYXAiLCJyZWR1Y2UiLCJydWxlIiwicnVsZU5hbWUiLCJnZXROYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7O1FBTUksa0JBQWtCLEdBQWxCLGtCQUFrQjtRQU9sQixnQkFBZ0IsR0FBaEIsZ0JBQWdCO0FBWEQsR0FBVyxDQUFYLFVBQVc7QUFFMUMsR0FBSyxDQUFHLEtBQUssR0FGa0IsVUFBVyxnQkFFbEMsS0FBSztTQUVHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pDLEdBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FDdkIsU0FBUyxHQUFHLFNBQVMsQ0FBRyxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFakMsTUFBTSxDQUFDLFNBQVM7QUFDbEIsQ0FBQztTQUVlLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZDLEdBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQVAsT0FBTyxFQUFFLElBQUksRUFBSyxDQUFDO1FBQy9DLEdBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU87UUFFN0IsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJO1FBRXhCLE1BQU0sQ0FBQyxPQUFPO0lBQ2hCLENBQUMsRUFBRSxDQUFDO0lBQUEsQ0FBQztJQUVMLE1BQU0sQ0FBQyxPQUFPO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gc3RhcnRSdWxlRnJvbVJ1bGVzKHJ1bGVzKSB7XG4gIGNvbnN0IGZpcnN0UnVsZSA9IGZpcnN0KHJ1bGVzKSxcbiAgICAgICAgc3RhcnRSdWxlID0gZmlyc3RSdWxlOyAgLy8vXG5cbiAgcmV0dXJuIHN0YXJ0UnVsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bGVNYXBGcm9tUnVsZXMocnVsZXMpIHtcbiAgY29uc3QgcnVsZU1hcCA9IHJ1bGVzLnJlZHVjZSgocnVsZU1hcCwgcnVsZSkgPT4ge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gcnVsZS5nZXROYW1lKCk7XG5cbiAgICBydWxlTWFwW3J1bGVOYW1lXSA9IHJ1bGU7XG5cbiAgICByZXR1cm4gcnVsZU1hcDtcbiAgfSwge30pO1xuXG4gIHJldHVybiBydWxlTWFwO1xufVxuIl19
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcnVsZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0UnVsZUZyb21SdWxlcyhydWxlcykge1xuICBjb25zdCBmaXJzdFJ1bGUgPSBmaXJzdChydWxlcyksXG4gICAgICAgIHN0YXJ0UnVsZSA9IGZpcnN0UnVsZTsgIC8vL1xuXG4gIHJldHVybiBzdGFydFJ1bGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydWxlTWFwRnJvbVJ1bGVzKHJ1bGVzKSB7XG4gIGNvbnN0IHJ1bGVNYXAgPSBydWxlcy5yZWR1Y2UoKHJ1bGVNYXAsIHJ1bGUpID0+IHtcbiAgICBjb25zdCBydWxlTmFtZSA9IHJ1bGUuZ2V0TmFtZSgpO1xuXG4gICAgcnVsZU1hcFtydWxlTmFtZV0gPSBydWxlO1xuXG4gICAgcmV0dXJuIHJ1bGVNYXA7XG4gIH0sIHt9KTtcblxuICByZXR1cm4gcnVsZU1hcDtcbn1cbiJdLCJuYW1lcyI6WyJzdGFydFJ1bGVGcm9tUnVsZXMiLCJydWxlTWFwRnJvbVJ1bGVzIiwiZmlyc3QiLCJydWxlcyIsImZpcnN0UnVsZSIsInN0YXJ0UnVsZSIsInJ1bGVNYXAiLCJyZWR1Y2UiLCJydWxlIiwicnVsZU5hbWUiLCJnZXROYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7O1FBTUlBLGtCQUFrQixHQUFsQkEsa0JBQWtCO1FBT2xCQyxnQkFBZ0IsR0FBaEJBLGdCQUFnQjtBQVhELEdBQVcsQ0FBWCxVQUFXO0FBRTFDLEdBQUssQ0FBR0MsS0FBSyxHQUZrQixVQUFXLGdCQUVsQ0EsS0FBSztTQUVHRixrQkFBa0IsQ0FBQ0csS0FBSyxFQUFFLENBQUM7SUFDekMsR0FBSyxDQUFDQyxTQUFTLEdBQUdGLEtBQUssQ0FBQ0MsS0FBSyxHQUN2QkUsU0FBUyxHQUFHRCxTQUFTLENBQUcsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBRWpDLE1BQU0sQ0FBQ0MsU0FBUztBQUNsQixDQUFDO1NBRWVKLGdCQUFnQixDQUFDRSxLQUFLLEVBQUUsQ0FBQztJQUN2QyxHQUFLLENBQUNHLFFBQU8sR0FBR0gsS0FBSyxDQUFDSSxNQUFNLENBQUMsUUFBUSxDQUFQRCxPQUFPLEVBQUVFLElBQUksRUFBSyxDQUFDO1FBQy9DLEdBQUssQ0FBQ0MsUUFBUSxHQUFHRCxJQUFJLENBQUNFLE9BQU87UUFFN0JKLE9BQU8sQ0FBQ0csUUFBUSxJQUFJRCxJQUFJO1FBRXhCLE1BQU0sQ0FBQ0YsT0FBTztJQUNoQixDQUFDLEVBQUUsQ0FBQztJQUFBLENBQUM7SUFFTCxNQUFNLENBQUNBLFFBQU87QUFDaEIsQ0FBQyJ9
@@ -22,4 +22,4 @@ function getScrollbarThickness(fancyScrollbars) {
22
22
  return scrollbarThickness;
23
23
  }
24
24
 
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc2Nyb2xsYmFyVGhpY2tuZXNzLmpzIl0sIm5hbWVzIjpbIlJlYWN0IiwiQm9keSIsInN0cmlwUGl4ZWxzIiwic3R5bGVzU2Nyb2xsYmFyVGhpY2tuZXNzIiwic2Nyb2xsYmFyVGhpY2tuZXNzIiwiYm9keSIsInN0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJvdmVyZmxvdyIsIm91dGVyRGl2IiwiZGl2IiwiaW5uZXJEaXYiLCJhcHBlbmQiLCJvdXRlckRpdldpZHRoIiwiZ2V0V2lkdGgiLCJpbm5lckRpdldpZHRoIiwicmVtb3ZlIiwiZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzIiwiZmFuY3lTY3JvbGxiYXJzIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7O1FBaUNJLHFCQUFxQixHQUFyQixxQkFBcUI7QUEvQlQsR0FBTSxDQUFOLEtBQU07QUFFTixHQUFrQixDQUFsQixJQUFrQjtBQUNpQixHQUFXLENBQVgsT0FBVztBQUUxRSxHQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FMWSxLQUFNLFNBTTVCLEtBQUssR0FBRyxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQU07SUFDYixNQUFNLEVBQUUsQ0FBTTtJQUNkLFFBQVEsRUFBRSxDQUFRO0FBQ3BCLENBQUMsRUFDRCxRQUFRLGlCQVhjLEtBQU0scUJBYXpCLENBQUc7SUFBQyxLQUFLLEVBQUUsS0FBSztJQUduQixRQUFRLGlCQWhCYyxLQUFNLHFCQWtCekIsQ0FBRztBQUlaLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUTtBQUV4QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7QUFFcEIsR0FBSyxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsUUFBUSxJQUNqQyxhQUFhLEdBQUcsUUFBUSxDQUFDLFFBQVE7QUFFdkMsUUFBUSxDQUFDLE1BQU07U0FFQyxxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN0RCxHQUFLLENBQUMsa0JBQWtCLEdBQUcsZUFBZSxPQTlCaEIsSUFBa0IsY0FDaUIsT0FBVyx1QkErQnpDLGFBQWEsR0FBRyxhQUFhLENBQUUsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBRWpFLE1BQU0sQ0FBQyxrQkFBa0I7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBSZWFjdCwgQm9keSB9IGZyb20gXCJlYXN5XCI7XG5cbmltcG9ydCB7IHN0cmlwUGl4ZWxzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jc3NcIjtcbmltcG9ydCB7IHNjcm9sbGJhclRoaWNrbmVzcyBhcyBzdHlsZXNTY3JvbGxiYXJUaGlja25lc3MgfSBmcm9tIFwiLi4vc3R5bGVzXCI7XG5cbmNvbnN0IGJvZHkgPSBuZXcgQm9keSgpLFxuICAgICAgc3R5bGUgPSB7XG4gICAgICAgIHdpZHRoOiBcIjUwcHhcIixcbiAgICAgICAgaGVpZ2h0OiBcIjUwcHhcIixcbiAgICAgICAgb3ZlcmZsb3c6IFwic2Nyb2xsXCJcbiAgICAgIH0sXG4gICAgICBvdXRlckRpdiA9XG5cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGV9IC8+XG5cbiAgICAgICxcbiAgICAgIGlubmVyRGl2ID1cblxuICAgICAgICA8ZGl2IC8+XG5cbiAgICAgIDtcblxub3V0ZXJEaXYuYXBwZW5kKGlubmVyRGl2KTtcblxuYm9keS5hcHBlbmQob3V0ZXJEaXYpO1xuXG5jb25zdCBvdXRlckRpdldpZHRoID0gb3V0ZXJEaXYuZ2V0V2lkdGgoKSxcbiAgICAgIGlubmVyRGl2V2lkdGggPSBpbm5lckRpdi5nZXRXaWR0aCgpO1xuXG5vdXRlckRpdi5yZW1vdmUoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbGJhclRoaWNrbmVzcyhmYW5jeVNjcm9sbGJhcnMpIHtcbiAgY29uc3Qgc2Nyb2xsYmFyVGhpY2tuZXNzID0gZmFuY3lTY3JvbGxiYXJzID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpcFBpeGVscyhzdHlsZXNTY3JvbGxiYXJUaGlja25lc3MpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGVyRGl2V2lkdGggLSBpbm5lckRpdldpZHRoOyAvLy9cblxuICByZXR1cm4gc2Nyb2xsYmFyVGhpY2tuZXNzO1xufVxuIl19
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc2Nyb2xsYmFyVGhpY2tuZXNzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBSZWFjdCwgQm9keSB9IGZyb20gXCJlYXN5XCI7XG5cbmltcG9ydCB7IHN0cmlwUGl4ZWxzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jc3NcIjtcbmltcG9ydCB7IHNjcm9sbGJhclRoaWNrbmVzcyBhcyBzdHlsZXNTY3JvbGxiYXJUaGlja25lc3MgfSBmcm9tIFwiLi4vc3R5bGVzXCI7XG5cbmNvbnN0IGJvZHkgPSBuZXcgQm9keSgpLFxuICAgICAgc3R5bGUgPSB7XG4gICAgICAgIHdpZHRoOiBcIjUwcHhcIixcbiAgICAgICAgaGVpZ2h0OiBcIjUwcHhcIixcbiAgICAgICAgb3ZlcmZsb3c6IFwic2Nyb2xsXCJcbiAgICAgIH0sXG4gICAgICBvdXRlckRpdiA9XG5cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGV9IC8+XG5cbiAgICAgICxcbiAgICAgIGlubmVyRGl2ID1cblxuICAgICAgICA8ZGl2IC8+XG5cbiAgICAgIDtcblxub3V0ZXJEaXYuYXBwZW5kKGlubmVyRGl2KTtcblxuYm9keS5hcHBlbmQob3V0ZXJEaXYpO1xuXG5jb25zdCBvdXRlckRpdldpZHRoID0gb3V0ZXJEaXYuZ2V0V2lkdGgoKSxcbiAgICAgIGlubmVyRGl2V2lkdGggPSBpbm5lckRpdi5nZXRXaWR0aCgpO1xuXG5vdXRlckRpdi5yZW1vdmUoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbGJhclRoaWNrbmVzcyhmYW5jeVNjcm9sbGJhcnMpIHtcbiAgY29uc3Qgc2Nyb2xsYmFyVGhpY2tuZXNzID0gZmFuY3lTY3JvbGxiYXJzID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpcFBpeGVscyhzdHlsZXNTY3JvbGxiYXJUaGlja25lc3MpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGVyRGl2V2lkdGggLSBpbm5lckRpdldpZHRoOyAvLy9cblxuICByZXR1cm4gc2Nyb2xsYmFyVGhpY2tuZXNzO1xufVxuIl0sIm5hbWVzIjpbImdldFNjcm9sbGJhclRoaWNrbmVzcyIsImJvZHkiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0Iiwib3ZlcmZsb3ciLCJvdXRlckRpdiIsImRpdiIsImlubmVyRGl2IiwiYXBwZW5kIiwib3V0ZXJEaXZXaWR0aCIsImdldFdpZHRoIiwiaW5uZXJEaXZXaWR0aCIsInJlbW92ZSIsImZhbmN5U2Nyb2xsYmFycyIsInNjcm9sbGJhclRoaWNrbmVzcyJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQWlDSUEscUJBQXFCLEdBQXJCQSxxQkFBcUI7QUEvQlQsR0FBTSxDQUFOLEtBQU07QUFFTixHQUFrQixDQUFsQixJQUFrQjtBQUNpQixHQUFXLENBQVgsT0FBVztBQUUxRSxHQUFLLENBQUNDLElBQUksR0FBRyxHQUFHLENBTFksS0FBTSxTQU01QkMsS0FBSyxHQUFHLENBQUM7SUFDUEMsS0FBSyxFQUFFLENBQU07SUFDYkMsTUFBTSxFQUFFLENBQU07SUFDZEMsUUFBUSxFQUFFLENBQVE7QUFDcEIsQ0FBQyxFQUNEQyxRQUFRLGlCQVhjLEtBQU0scUJBYXpCQyxDQUFHO0lBQUNMLEtBQUssRUFBRUEsS0FBSztJQUduQk0sUUFBUSxpQkFoQmMsS0FBTSxxQkFrQnpCRCxDQUFHO0FBSVpELFFBQVEsQ0FBQ0csTUFBTSxDQUFDRCxRQUFRO0FBRXhCUCxJQUFJLENBQUNRLE1BQU0sQ0FBQ0gsUUFBUTtBQUVwQixHQUFLLENBQUNJLGFBQWEsR0FBR0osUUFBUSxDQUFDSyxRQUFRLElBQ2pDQyxhQUFhLEdBQUdKLFFBQVEsQ0FBQ0csUUFBUTtBQUV2Q0wsUUFBUSxDQUFDTyxNQUFNO1NBRUNiLHFCQUFxQixDQUFDYyxlQUFlLEVBQUUsQ0FBQztJQUN0RCxHQUFLLENBQUNDLGtCQUFrQixHQUFHRCxlQUFlLE9BOUJoQixJQUFrQixjQUNpQixPQUFXLHVCQStCekNKLGFBQWEsR0FBR0UsYUFBYSxDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztJQUVqRSxNQUFNLENBQUNHLGtCQUFrQjtBQUMzQixDQUFDIn0=
@@ -14,4 +14,4 @@ function lineCountFromTokens(tokens) {
14
14
  return lineCount;
15
15
  }
16
16
 
17
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdG9rZW5zLmpzIl0sIm5hbWVzIjpbImxpbmVDb3VudEZyb21Ub2tlbnMiLCJ0b2tlbnMiLCJsaW5lQ291bnQiLCJmb3JFYWNoIiwidG9rZW4iLCJ0b2tlbkVuZE9mTGluZVRva2VuIiwiaXNFbmRPZkxpbmVUb2tlbiJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQUVJLG1CQUFtQixHQUFuQixtQkFBbUI7U0FBbkIsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0MsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUcsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBRXZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFQLEtBQUssRUFBSyxDQUFDO1FBQ3pCLEdBQUssQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsZ0JBQWdCO1FBRWxELEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hCLFNBQVM7UUFDWCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmVDb3VudEZyb21Ub2tlbnModG9rZW5zKSB7XG4gIGxldCBsaW5lQ291bnQgPSAxOyAgLy8vXG5cbiAgdG9rZW5zLmZvckVhY2goKHRva2VuKSA9PiB7XG4gICAgY29uc3QgdG9rZW5FbmRPZkxpbmVUb2tlbiA9IHRva2VuLmlzRW5kT2ZMaW5lVG9rZW4oKTtcblxuICAgIGlmICh0b2tlbkVuZE9mTGluZVRva2VuKSB7XG4gICAgICBsaW5lQ291bnQrKztcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBsaW5lQ291bnQ7XG59XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdG9rZW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gbGluZUNvdW50RnJvbVRva2Vucyh0b2tlbnMpIHtcbiAgbGV0IGxpbmVDb3VudCA9IDE7ICAvLy9cblxuICB0b2tlbnMuZm9yRWFjaCgodG9rZW4pID0+IHtcbiAgICBjb25zdCB0b2tlbkVuZE9mTGluZVRva2VuID0gdG9rZW4uaXNFbmRPZkxpbmVUb2tlbigpO1xuXG4gICAgaWYgKHRva2VuRW5kT2ZMaW5lVG9rZW4pIHtcbiAgICAgIGxpbmVDb3VudCsrO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGxpbmVDb3VudDtcbn1cbiJdLCJuYW1lcyI6WyJsaW5lQ291bnRGcm9tVG9rZW5zIiwidG9rZW5zIiwibGluZUNvdW50IiwiZm9yRWFjaCIsInRva2VuIiwidG9rZW5FbmRPZkxpbmVUb2tlbiIsImlzRW5kT2ZMaW5lVG9rZW4iXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7UUFFSUEsbUJBQW1CLEdBQW5CQSxtQkFBbUI7U0FBbkJBLG1CQUFtQixDQUFDQyxNQUFNLEVBQUUsQ0FBQztJQUMzQyxHQUFHLENBQUNDLFNBQVMsR0FBRyxDQUFDLENBQUcsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBRXZCRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxRQUFRLENBQVBDLEtBQUssRUFBSyxDQUFDO1FBQ3pCLEdBQUssQ0FBQ0MsbUJBQW1CLEdBQUdELEtBQUssQ0FBQ0UsZ0JBQWdCO1FBRWxELEVBQUUsRUFBRUQsbUJBQW1CLEVBQUUsQ0FBQztZQUN4QkgsU0FBUztRQUNYLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDQSxTQUFTO0FBQ2xCLENBQUMifQ==
package/lib/yapp.js CHANGED
@@ -5,13 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.default = void 0;
6
6
  var _easyWithStyle = _interopRequireDefault(require("easy-with-style"));
7
7
  var _easy = require("easy");
8
+ var _style = _interopRequireDefault(require("./mixins/style"));
8
9
  var _richTextarea = _interopRequireDefault(require("./richTextarea"));
9
10
  var _prettyPrinter = _interopRequireDefault(require("./prettyPrinter"));
10
- var _css = require("./utilities/css");
11
11
  var _scrollbarThickness = require("./utilities/scrollbarThickness");
12
12
  var _plugin = require("./utilities/plugin");
13
- var _constants = require("./constants");
14
- var _properties = require("./utilities/properties");
13
+ var _properties2 = require("./utilities/properties");
15
14
  var _content = require("./utilities/content");
16
15
  var _colour = require("./scheme/colour");
17
16
  var _defaults = require("./defaults");
@@ -198,31 +197,20 @@ var Yapp = /*#__PURE__*/ function(Element) {
198
197
  }
199
198
  },
200
199
  {
201
- key: "getLineHeight",
202
- value: function getLineHeight() {
203
- var lineHeightInPixels = this.css(_constants.LINE_HEIGHT), lineHeight = (0, _css).stripPixels(lineHeightInPixels);
204
- return lineHeight;
205
- }
206
- },
207
- {
208
- key: "getBorderWidth",
209
- value: function getBorderWidth(side) {
210
- var borderWidthInPixels = this.css("border-".concat(side, "-width")), borderWidth = (0, _css).stripPixels(borderWidthInPixels);
211
- return borderWidth;
212
- }
213
- },
214
- {
215
- key: "getBorderTopWidth",
216
- value: function getBorderTopWidth() {
217
- var side = _constants.TOP, borderTopWidth = this.getBorderWidth(side);
218
- return borderTopWidth;
219
- }
220
- },
221
- {
222
- key: "getBorderLeftWidth",
223
- value: function getBorderLeftWidth() {
224
- var side = _constants.LEFT, borderLeftWidth = this.getBorderWidth(side);
225
- return borderLeftWidth;
200
+ key: "getInnerBounds",
201
+ value: function getInnerBounds(gutterWidth) {
202
+ var top, left, width = this.getWidth(), height = this.getHeight();
203
+ var paddingTop = this.getPaddingTop(), paddingLeft = this.getPaddingLeft(), paddingRight = this.getPaddingRight(), paddingBottom = this.getPaddingBottom(), borderTopWidth = this.getBorderTopWidth(), borderLeftWidth = this.getBorderLeftWidth(), borderRightWidth = this.getBorderRightWidth(), borderBottomWidth = this.getBorderBottomWidth();
204
+ top = borderTopWidth + paddingTop;
205
+ left = borderLeftWidth + paddingLeft;
206
+ width -= borderLeftWidth + paddingLeft + paddingRight + borderRightWidth;
207
+ height -= borderTopWidth + paddingTop + paddingBottom + borderBottomWidth;
208
+ if (gutterWidth !== null) {
209
+ left += gutterWidth;
210
+ width -= gutterWidth;
211
+ }
212
+ var bounds = _easy.Bounds.fromTopLeftWidthAndHeight(top, left, width, height), innerBounds = bounds; ///
213
+ return innerBounds;
226
214
  }
227
215
  },
228
216
  {
@@ -232,24 +220,15 @@ var Yapp = /*#__PURE__*/ function(Element) {
232
220
  return initialLineCount;
233
221
  }
234
222
  },
235
- {
236
- key: "getBorderRightWidth",
237
- value: function getBorderRightWidth() {
238
- var side = _constants.RIGHT, borderRightWidth = this.getBorderWidth(side);
239
- return borderRightWidth;
240
- }
241
- },
242
- {
243
- key: "getBorderBottomWidth",
244
- value: function getBorderBottomWidth() {
245
- var side = _constants.BOTTOM, borderBottomWidth = this.getBorderWidth(side);
246
- return borderBottomWidth;
247
- }
248
- },
249
223
  {
250
224
  key: "getScrollbarThickness",
251
225
  value: function getScrollbarThickness() {
252
- var _properties = this.properties, _fancyScrollbars = _properties.fancyScrollbars, fancyScrollbars = _fancyScrollbars === void 0 ? _defaults.DEFAULT_FANCY_SCROLLBARS : _fancyScrollbars, scrollbarThickness = (0, _scrollbarThickness).getScrollbarThickness(fancyScrollbars);
226
+ var scrollbarThickness = 0;
227
+ var _properties = this.properties, _hiddenScrollbars = _properties.hiddenScrollbars, hiddenScrollbars = _hiddenScrollbars === void 0 ? _defaults.DEFAULT_HIDDEN_SCROLLBARS : _hiddenScrollbars;
228
+ if (!hiddenScrollbars) {
229
+ var _properties1 = this.properties, _fancyScrollbars = _properties1.fancyScrollbars, fancyScrollbars = _fancyScrollbars === void 0 ? _defaults.DEFAULT_FANCY_SCROLLBARS : _fancyScrollbars;
230
+ scrollbarThickness = (0, _scrollbarThickness).getScrollbarThickness(fancyScrollbars);
231
+ }
253
232
  return scrollbarThickness;
254
233
  }
255
234
  },
@@ -270,7 +249,7 @@ var Yapp = /*#__PURE__*/ function(Element) {
270
249
  value: function changeHandler(event, element) {
271
250
  var richTextarea = element, contentChanged = richTextarea.hasContentChanged();
272
251
  if (contentChanged) {
273
- var _properties = this.properties, onContentChange = _properties.onContentChange, contentChangeHandler = onContentChange; ///
252
+ var onContentChange = this.properties.onContentChange, contentChangeHandler = onContentChange; ///
274
253
  this.update();
275
254
  element = this; ///
276
255
  contentChangeHandler && contentChangeHandler(event, element); ///
@@ -289,9 +268,9 @@ var Yapp = /*#__PURE__*/ function(Element) {
289
268
  value: function update() {
290
269
  var content = this.getContent();
291
270
  this.plugin.update(content);
292
- var tokens = this.plugin.getTokens(), innerBounds = this.updatePrettyPrinter(tokens);
293
- if (innerBounds !== null) {
294
- var richTextareaBounds = innerBounds; ///
271
+ var tokens = this.plugin.getTokens(), gutterWidth = this.updatePrettyPrinter(tokens);
272
+ if (gutterWidth !== null) {
273
+ var innerBounds = this.getInnerBounds(gutterWidth), richTextareaBounds = innerBounds; ///
295
274
  this.setRichTextareaBounds(richTextareaBounds);
296
275
  }
297
276
  }
@@ -299,20 +278,21 @@ var Yapp = /*#__PURE__*/ function(Element) {
299
278
  {
300
279
  key: "resize",
301
280
  value: function resize() {
302
- var width = this.getWidth(), height = this.getHeight();
303
- var borderTopWidth = this.getBorderTopWidth(), borderLeftWidth = this.getBorderLeftWidth(), borderRightWidth = this.getBorderRightWidth(), borderBottomWidth = this.getBorderBottomWidth();
304
- height -= borderTopWidth + borderBottomWidth;
305
- width -= borderLeftWidth + borderRightWidth;
306
- this.setPrettyPrinterWidth(width);
307
- this.setPrettyPrinterHeight(height);
308
- var innerBounds = this.resizePrettyPrinter(), richTextareaBounds = innerBounds; ///
281
+ var innerBounds, gutterWidth;
282
+ gutterWidth = null;
283
+ innerBounds = this.getInnerBounds(gutterWidth);
284
+ var prettyPrinterBounds = innerBounds; ///
285
+ this.setPrettyPrinterBounds(prettyPrinterBounds);
286
+ gutterWidth = this.resizePrettyPrinter();
287
+ innerBounds = this.getInnerBounds(gutterWidth);
288
+ var richTextareaBounds = innerBounds; ///
309
289
  this.setRichTextareaBounds(richTextareaBounds);
310
290
  }
311
291
  },
312
292
  {
313
293
  key: "render",
314
294
  value: function render() {
315
- var lineHeight = this.getLineHeight(), borderTopWidth = this.getBorderTopWidth(), initialLineCount = this.getInitialLineCount(), borderBottomWidth = this.getBorderBottomWidth(), scrollbarThickness = this.getScrollbarThickness(), height = initialLineCount * lineHeight + borderTopWidth + borderBottomWidth + scrollbarThickness;
295
+ var lineHeight = this.getLineHeight(), paddingTop = this.getPaddingTop(), paddingBottom = this.getPaddingBottom(), borderTopWidth = this.getBorderTopWidth(), initialLineCount = this.getInitialLineCount(), borderBottomWidth = this.getBorderBottomWidth(), scrollbarThickness = this.getScrollbarThickness(), height = borderTopWidth + paddingTop + initialLineCount * lineHeight + paddingBottom + borderBottomWidth + scrollbarThickness;
316
296
  this.setHeight(height);
317
297
  this.resize();
318
298
  this.update();
@@ -343,7 +323,7 @@ var Yapp = /*#__PURE__*/ function(Element) {
343
323
  {
344
324
  key: "childElements",
345
325
  value: function childElements() {
346
- var _properties = this.properties, _hiddenGutter = _properties.hiddenGutter, hiddenGutter = _hiddenGutter === void 0 ? _defaults.DEFAULT_HIDDEN_GUTTER : _hiddenGutter, _fancyScrollbars = _properties.fancyScrollbars, fancyScrollbars = _fancyScrollbars === void 0 ? _defaults.DEFAULT_FANCY_SCROLLBARS : _fancyScrollbars, changeHandler = this.changeHandler.bind(this), scrollHandler = this.scrollHandler.bind(this), scrollbarThickness = this.getScrollbarThickness();
326
+ var _properties = this.properties, _hiddenGutter = _properties.hiddenGutter, hiddenGutter = _hiddenGutter === void 0 ? _defaults.DEFAULT_HIDDEN_GUTTER : _hiddenGutter, _hiddenScrollbars = _properties.hiddenScrollbars, hiddenScrollbars = _hiddenScrollbars === void 0 ? _defaults.DEFAULT_HIDDEN_SCROLLBARS : _hiddenScrollbars, _fancyScrollbars = _properties.fancyScrollbars, fancyScrollbars = _fancyScrollbars === void 0 ? _defaults.DEFAULT_FANCY_SCROLLBARS : _fancyScrollbars, changeHandler = this.changeHandler.bind(this), scrollHandler = this.scrollHandler.bind(this), scrollbarThickness = this.getScrollbarThickness();
347
327
  return [
348
328
  /*#__PURE__*/ _easy.React.createElement(_prettyPrinter.default, {
349
329
  hiddenGutter: hiddenGutter,
@@ -352,6 +332,7 @@ var Yapp = /*#__PURE__*/ function(Element) {
352
332
  /*#__PURE__*/ _easy.React.createElement(_richTextarea.default, {
353
333
  onChange: changeHandler,
354
334
  onScroll: scrollHandler,
335
+ hiddenScrollbars: hiddenScrollbars,
355
336
  fancyScrollbars: fancyScrollbars,
356
337
  active: true
357
338
  })
@@ -392,7 +373,7 @@ var Yapp = /*#__PURE__*/ function(Element) {
392
373
  {
393
374
  key: "fromContent",
394
375
  value: function fromContent(content, language, Plugin, options) {
395
- var Class = Yapp, properties = (0, _properties).propertiesFromContentLanguagePluginAndOptions(content, language, Plugin, options), plugin = (0, _plugin).pluginFromLanguageAndPlugin(language, Plugin), yapp = _easy.Element.fromClass(Class, properties, plugin);
376
+ var Class = Yapp, properties = (0, _properties2).propertiesFromContentLanguagePluginAndOptions(content, language, Plugin, options), plugin = (0, _plugin).pluginFromLanguageAndPlugin(language, Plugin), yapp = _easy.Element.fromClass(Class, properties, plugin);
396
377
  return yapp;
397
378
  }
398
379
  },
@@ -417,9 +398,11 @@ _defineProperty(Yapp, "ignoredProperties", [
417
398
  "editable",
418
399
  "deferRender",
419
400
  "hiddenGutter",
401
+ "noScrollbars",
420
402
  "fancyScrollbars"
421
403
  ]);
404
+ Object.assign(Yapp.prototype, _style.default);
422
405
  var _default = (0, _easyWithStyle).default(Yapp)(_templateObject(), _colour.colour, _colour.caretColour, _colour.borderColour, _colour.backgroundColour);
423
406
  exports.default = _default;
424
407
 
425
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy95YXBwLmpzIl0sIm5hbWVzIjpbIndpdGhTdHlsZSIsIlJlYWN0IiwiRWxlbWVudCIsIlJpY2hUZXh0YXJlYSIsIlByZXR0eVByaW50ZXIiLCJzdHJpcFBpeGVscyIsImdldFNjcm9sbGJhclRoaWNrbmVzcyIsInBsdWdpbkZyb21MYW5ndWFnZUFuZFBsdWdpbiIsIlRPUCIsIkxFRlQiLCJSSUdIVCIsIkxJTkVfSEVJR0hUIiwiQk9UVE9NIiwicHJvcGVydGllc0Zyb21Db250ZW50TGFuZ3VhZ2VQbHVnaW5BbmRPcHRpb25zIiwibGluZUNvdW50RnJvbUNvbnRlbnQiLCJjb250ZW50RnJvbUNoaWxkRWxlbWVudHMiLCJjb2xvdXIiLCJjYXJldENvbG91ciIsImJvcmRlckNvbG91ciIsImJhY2tncm91bmRDb2xvdXIiLCJERUZBVUxUX0VESVRBQkxFIiwiREVGQVVMVF9GSVJBX0NPREUiLCJERUZBVUxUX0RFRkVSX1JFTkRFUiIsIkRFRkFVTFRfSElEREVOX0dVVFRFUiIsIkRFRkFVTFRfRkFOQ1lfU0NST0xMQkFSUyIsIllhcHAiLCJjb25zdHJ1Y3RvciIsInNlbGVjdG9yIiwicGx1Z2luIiwiZ2V0UGx1Z2luIiwiZ2V0Q29udGVudCIsInJpY2hUZXh0YXJlYUNvbnRlbnQiLCJnZXRSaWNoVGV4dGFyZWFDb250ZW50IiwiY29udGVudCIsImdldExpbmVIZWlnaHQiLCJsaW5lSGVpZ2h0SW5QaXhlbHMiLCJjc3MiLCJsaW5lSGVpZ2h0IiwiZ2V0Qm9yZGVyV2lkdGgiLCJzaWRlIiwiYm9yZGVyV2lkdGhJblBpeGVscyIsImJvcmRlcldpZHRoIiwiZ2V0Qm9yZGVyVG9wV2lkdGgiLCJib3JkZXJUb3BXaWR0aCIsImdldEJvcmRlckxlZnRXaWR0aCIsImJvcmRlckxlZnRXaWR0aCIsImdldEluaXRpYWxMaW5lQ291bnQiLCJsaW5lQ291bnQiLCJpbml0aWFsTGluZUNvdW50IiwiZ2V0Qm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJnZXRCb3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwiZmFuY3lTY3JvbGxiYXJzIiwicHJvcGVydGllcyIsInNjcm9sbGJhclRoaWNrbmVzcyIsInNldExleGVyIiwibGV4ZXIiLCJzZXRQYXJzZXIiLCJwYXJzZXIiLCJjaGFuZ2VIYW5kbGVyIiwiZXZlbnQiLCJlbGVtZW50IiwicmljaFRleHRhcmVhIiwiY29udGVudENoYW5nZWQiLCJoYXNDb250ZW50Q2hhbmdlZCIsIm9uQ29udGVudENoYW5nZSIsImNvbnRlbnRDaGFuZ2VIYW5kbGVyIiwidXBkYXRlIiwic2Nyb2xsSGFuZGxlciIsInNjcm9sbFRvcCIsImdldFNjcm9sbFRvcCIsInNjcm9sbExlZnQiLCJnZXRTY3JvbGxMZWZ0Iiwic2Nyb2xsUHJldHR5UHJpbnRlciIsInRva2VucyIsImdldFRva2VucyIsImlubmVyQm91bmRzIiwidXBkYXRlUHJldHR5UHJpbnRlciIsInJpY2hUZXh0YXJlYUJvdW5kcyIsInNldFJpY2hUZXh0YXJlYUJvdW5kcyIsInJlc2l6ZSIsIndpZHRoIiwiZ2V0V2lkdGgiLCJoZWlnaHQiLCJnZXRIZWlnaHQiLCJzZXRQcmV0dHlQcmludGVyV2lkdGgiLCJzZXRQcmV0dHlQcmludGVySGVpZ2h0IiwicmVzaXplUHJldHR5UHJpbnRlciIsInJlbmRlciIsInNldEhlaWdodCIsImRpZE1vdW50IiwiZmlyYUNvZGUiLCJkZWZlclJlbmRlciIsImFkZENsYXNzIiwid2lsbFVubW91bnQiLCJyZW1vdmVDbGFzcyIsImNoaWxkRWxlbWVudHMiLCJoaWRkZW5HdXR0ZXIiLCJiaW5kIiwib25DaGFuZ2UiLCJvblNjcm9sbCIsImFjdGl2ZSIsInBhcmVudENvbnRleHQiLCJ1cGRhdGVZYXBwIiwic2V0WWFwcFdpZHRoIiwic2V0V2lkdGgiLCJzZXRZYXBwSGVpZ2h0Iiwic2V0WWFwcExleGVyIiwic2V0WWFwcFBhcnNlciIsInJlc2l6ZVlhcHAiLCJpbml0aWFsaXNlIiwiYXNzaWduQ29udGV4dCIsImVkaXRhYmxlIiwibGFuZ3VhZ2UiLCJnZXRMYW5ndWFnZSIsInJlYWRPbmx5Iiwic2V0TGFuZ3VhZ2UiLCJzZXRSaWNoVGV4dGFyZWFDb250ZW50Iiwic2V0UmljaFRleHRhcmVhUmVhZE9ubHkiLCJvblJlc2l6ZSIsInRhZ05hbWUiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsImlnbm9yZWRQcm9wZXJ0aWVzIiwiZnJvbUNvbnRlbnQiLCJQbHVnaW4iLCJvcHRpb25zIiwiQ2xhc3MiLCJ5YXBwIiwiZnJvbUNsYXNzIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVVLEdBQWlCLENBQWpCLGNBQWlCO0FBRVIsR0FBTSxDQUFOLEtBQU07QUFFWixHQUFnQixDQUFoQixhQUFnQjtBQUNmLEdBQWlCLENBQWpCLGNBQWlCO0FBRWYsR0FBaUIsQ0FBakIsSUFBaUI7QUFDUCxHQUFnQyxDQUFoQyxtQkFBZ0M7QUFDMUIsR0FBb0IsQ0FBcEIsT0FBb0I7QUFDVixHQUFhLENBQWIsVUFBYTtBQUNMLEdBQXdCLENBQXhCLFdBQXdCO0FBQ3ZCLEdBQXFCLENBQXJCLFFBQXFCO0FBQ2hCLEdBQWlCLENBQWpCLE9BQWlCO0FBQ3NDLEdBQVksQ0FBWixTQUFZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQTJReEcsQ0FPdEI7UUFBUyxDQUNIO1FBQWMsQ0FDYjtRQUFlLENBQ1g7UUFBbUIsQ0FrQnZDOzs7Ozs7O0lBclNNLElBQUksaUJBQVYsUUFBUTtjQUFGLElBQUk7YUFBSixJQUFJLENBQ0ksUUFBUSxFQUFFLE1BQU07OEJBRHhCLElBQUk7O2lFQUFKLElBQUksYUFFQSxRQUFRO2NBRVQsTUFBTSxHQUFHLE1BQU07OztpQkFKbEIsSUFBSTs7WUFPUixHQUFTLEVBQVQsQ0FB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Q1IsQ0FBVTtJQUNWLENBQVU7SUFDVixDQUFVO0lBQ1YsQ0FBYTtJQUNiLENBQWM7SUFDZCxDQUFpQjtBQUNuQixDQUFDO21CQXJRbUIsY0FBaUIsVUF5UmQsSUFBSSxxQkE1UXVDLE9BQWlCLFNBQWpCLE9BQWlCLGNBQWpCLE9BQWlCLGVBQWpCLE9BQWlCIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IFJlYWN0LCBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcblxuaW1wb3J0IFJpY2hUZXh0YXJlYSBmcm9tIFwiLi9yaWNoVGV4dGFyZWFcIjtcbmltcG9ydCBQcmV0dHlQcmludGVyIGZyb20gXCIuL3ByZXR0eVByaW50ZXJcIjtcblxuaW1wb3J0IHsgc3RyaXBQaXhlbHMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY3NzXCI7XG5pbXBvcnQgeyBnZXRTY3JvbGxiYXJUaGlja25lc3MgfSBmcm9tIFwiLi91dGlsaXRpZXMvc2Nyb2xsYmFyVGhpY2tuZXNzXCI7XG5pbXBvcnQgeyBwbHVnaW5Gcm9tTGFuZ3VhZ2VBbmRQbHVnaW4gfSBmcm9tIFwiLi91dGlsaXRpZXMvcGx1Z2luXCI7XG5pbXBvcnQgeyBUT1AsIExFRlQsIFJJR0hULCBMSU5FX0hFSUdIVCwgQk9UVE9NIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBwcm9wZXJ0aWVzRnJvbUNvbnRlbnRMYW5ndWFnZVBsdWdpbkFuZE9wdGlvbnMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcHJvcGVydGllc1wiO1xuaW1wb3J0IHsgbGluZUNvdW50RnJvbUNvbnRlbnQsIGNvbnRlbnRGcm9tQ2hpbGRFbGVtZW50cyB9IGZyb20gXCIuL3V0aWxpdGllcy9jb250ZW50XCI7XG5pbXBvcnQgeyBjb2xvdXIsIGNhcmV0Q29sb3VyLCBib3JkZXJDb2xvdXIsIGJhY2tncm91bmRDb2xvdXIgfSBmcm9tIFwiLi9zY2hlbWUvY29sb3VyXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VESVRBQkxFLCBERUZBVUxUX0ZJUkFfQ09ERSwgREVGQVVMVF9ERUZFUl9SRU5ERVIsIERFRkFVTFRfSElEREVOX0dVVFRFUiwgREVGQVVMVF9GQU5DWV9TQ1JPTExCQVJTIH0gZnJvbSBcIi4vZGVmYXVsdHNcIjtcblxuY2xhc3MgWWFwcCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3RvcihzZWxlY3RvciwgcGx1Z2luKSB7XG4gICAgc3VwZXIoc2VsZWN0b3IpO1xuXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XG4gIH1cblxuICBnZXRQbHVnaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMucGx1Z2luO1xuICB9XG5cbiAgZ2V0Q29udGVudCgpIHtcbiAgICBjb25zdCByaWNoVGV4dGFyZWFDb250ZW50ID0gdGhpcy5nZXRSaWNoVGV4dGFyZWFDb250ZW50KCksXG4gICAgICAgICAgY29udGVudCA9IHJpY2hUZXh0YXJlYUNvbnRlbnQ7ICAvLy9cblxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgZ2V0TGluZUhlaWdodCgpIHtcbiAgICBjb25zdCBsaW5lSGVpZ2h0SW5QaXhlbHMgPSB0aGlzLmNzcyhMSU5FX0hFSUdIVCksXG4gICAgICAgICAgbGluZUhlaWdodCA9IHN0cmlwUGl4ZWxzKGxpbmVIZWlnaHRJblBpeGVscyk7XG5cbiAgICByZXR1cm4gbGluZUhlaWdodDtcbiAgfVxuXG4gIGdldEJvcmRlcldpZHRoKHNpZGUpIHtcbiAgICBjb25zdCBib3JkZXJXaWR0aEluUGl4ZWxzID0gdGhpcy5jc3MoYGJvcmRlci0ke3NpZGV9LXdpZHRoYCksXG4gICAgICAgICAgYm9yZGVyV2lkdGggPSBzdHJpcFBpeGVscyhib3JkZXJXaWR0aEluUGl4ZWxzKTtcblxuICAgIHJldHVybiBib3JkZXJXaWR0aDtcbiAgfVxuXG4gIGdldEJvcmRlclRvcFdpZHRoKCkge1xuICAgIGNvbnN0IHNpZGUgPSBUT1AsXG4gICAgICAgICAgYm9yZGVyVG9wV2lkdGggPSB0aGlzLmdldEJvcmRlcldpZHRoKHNpZGUpO1xuXG4gICAgcmV0dXJuIGJvcmRlclRvcFdpZHRoO1xuICB9XG5cbiAgZ2V0Qm9yZGVyTGVmdFdpZHRoKCkge1xuICAgIGNvbnN0IHNpZGUgPSBMRUZULFxuICAgICAgICAgIGJvcmRlckxlZnRXaWR0aCA9IHRoaXMuZ2V0Qm9yZGVyV2lkdGgoc2lkZSk7XG5cbiAgICByZXR1cm4gYm9yZGVyTGVmdFdpZHRoO1xuICB9XG5cbiAgZ2V0SW5pdGlhbExpbmVDb3VudCgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgbGluZUNvdW50ID0gbGluZUNvdW50RnJvbUNvbnRlbnQoY29udGVudCksXG4gICAgICAgICAgaW5pdGlhbExpbmVDb3VudCA9IGxpbmVDb3VudDsgLy8vXG5cbiAgICByZXR1cm4gaW5pdGlhbExpbmVDb3VudDtcbiAgfVxuXG4gIGdldEJvcmRlclJpZ2h0V2lkdGgoKSB7XG4gICAgY29uc3Qgc2lkZSA9IFJJR0hULFxuICAgICAgICAgIGJvcmRlclJpZ2h0V2lkdGggPSB0aGlzLmdldEJvcmRlcldpZHRoKHNpZGUpO1xuXG4gICAgcmV0dXJuIGJvcmRlclJpZ2h0V2lkdGg7XG4gIH1cblxuICBnZXRCb3JkZXJCb3R0b21XaWR0aCgpIHtcbiAgICBjb25zdCBzaWRlID0gQk9UVE9NLFxuICAgICAgICAgIGJvcmRlckJvdHRvbVdpZHRoID0gdGhpcy5nZXRCb3JkZXJXaWR0aChzaWRlKTtcblxuICAgIHJldHVybiBib3JkZXJCb3R0b21XaWR0aDtcbiAgfVxuXG4gIGdldFNjcm9sbGJhclRoaWNrbmVzcygpIHtcbiAgICBjb25zdCB7IGZhbmN5U2Nyb2xsYmFycyA9IERFRkFVTFRfRkFOQ1lfU0NST0xMQkFSUyB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgIHNjcm9sbGJhclRoaWNrbmVzcyA9IGdldFNjcm9sbGJhclRoaWNrbmVzcyhmYW5jeVNjcm9sbGJhcnMpO1xuXG4gICAgcmV0dXJuIHNjcm9sbGJhclRoaWNrbmVzcztcbiAgfVxuXG4gIHNldExleGVyKGxleGVyKSB7IHRoaXMucGx1Z2luLnNldExleGVyKGxleGVyKTsgfVxuXG4gIHNldFBhcnNlcihwYXJzZXIpIHsgdGhpcy5wbHVnaW4uc2V0UGFyc2VyKHBhcnNlcik7IH1cblxuICBjaGFuZ2VIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gICAgY29uc3QgcmljaFRleHRhcmVhID0gZWxlbWVudCwgLy8vXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSByaWNoVGV4dGFyZWEuaGFzQ29udGVudENoYW5nZWQoKTtcblxuICAgIGlmIChjb250ZW50Q2hhbmdlZCkge1xuICAgICAgY29uc3QgeyBvbkNvbnRlbnRDaGFuZ2UgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICAgIGNvbnRlbnRDaGFuZ2VIYW5kbGVyID0gb25Db250ZW50Q2hhbmdlOyAvLy9cblxuICAgICAgdGhpcy51cGRhdGUoKTtcblxuICAgICAgZWxlbWVudCA9IHRoaXM7IC8vL1xuXG4gICAgICBjb250ZW50Q2hhbmdlSGFuZGxlciAmJiBjb250ZW50Q2hhbmdlSGFuZGxlcihldmVudCwgZWxlbWVudCk7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgICBjb25zdCByaWNoVGV4dGFyZWEgPSBlbGVtZW50LCAvLy9cbiAgICAgICAgICBzY3JvbGxUb3AgPSByaWNoVGV4dGFyZWEuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgICAgc2Nyb2xsTGVmdCA9IHJpY2hUZXh0YXJlYS5nZXRTY3JvbGxMZWZ0KCk7XG5cbiAgICB0aGlzLnNjcm9sbFByZXR0eVByaW50ZXIoc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0KTtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCk7XG5cbiAgICB0aGlzLnBsdWdpbi51cGRhdGUoY29udGVudCk7XG5cbiAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnBsdWdpbi5nZXRUb2tlbnMoKSxcbiAgICAgICAgICBpbm5lckJvdW5kcyA9IHRoaXMudXBkYXRlUHJldHR5UHJpbnRlcih0b2tlbnMpO1xuXG4gICAgaWYgKGlubmVyQm91bmRzICE9PSBudWxsKSB7XG4gICAgICBjb25zdCByaWNoVGV4dGFyZWFCb3VuZHMgPSBpbm5lckJvdW5kczsgLy8vXG5cbiAgICAgIHRoaXMuc2V0UmljaFRleHRhcmVhQm91bmRzKHJpY2hUZXh0YXJlYUJvdW5kcyk7XG4gICAgfVxuICB9XG5cbiAgcmVzaXplKCkge1xuICAgIGxldCB3aWR0aCA9IHRoaXMuZ2V0V2lkdGgoKSxcbiAgICAgICAgaGVpZ2h0ID0gdGhpcy5nZXRIZWlnaHQoKTtcblxuICAgIGNvbnN0IGJvcmRlclRvcFdpZHRoID0gdGhpcy5nZXRCb3JkZXJUb3BXaWR0aCgpLFxuICAgICAgICAgIGJvcmRlckxlZnRXaWR0aCA9IHRoaXMuZ2V0Qm9yZGVyTGVmdFdpZHRoKCksXG4gICAgICAgICAgYm9yZGVyUmlnaHRXaWR0aCA9IHRoaXMuZ2V0Qm9yZGVyUmlnaHRXaWR0aCgpLFxuICAgICAgICAgIGJvcmRlckJvdHRvbVdpZHRoID0gdGhpcy5nZXRCb3JkZXJCb3R0b21XaWR0aCgpO1xuXG4gICAgaGVpZ2h0IC09ICggYm9yZGVyVG9wV2lkdGggKyBib3JkZXJCb3R0b21XaWR0aCApO1xuICAgIHdpZHRoIC09ICggYm9yZGVyTGVmdFdpZHRoICsgYm9yZGVyUmlnaHRXaWR0aCApO1xuXG4gICAgdGhpcy5zZXRQcmV0dHlQcmludGVyV2lkdGgod2lkdGgpO1xuICAgIHRoaXMuc2V0UHJldHR5UHJpbnRlckhlaWdodChoZWlnaHQpO1xuXG4gICAgY29uc3QgaW5uZXJCb3VuZHMgPSB0aGlzLnJlc2l6ZVByZXR0eVByaW50ZXIoKSxcbiAgICAgICAgICByaWNoVGV4dGFyZWFCb3VuZHMgPSBpbm5lckJvdW5kczsgLy8vXG5cbiAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUJvdW5kcyhyaWNoVGV4dGFyZWFCb3VuZHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGxpbmVIZWlnaHQgPSB0aGlzLmdldExpbmVIZWlnaHQoKSxcbiAgICAgICAgICBib3JkZXJUb3BXaWR0aCA9IHRoaXMuZ2V0Qm9yZGVyVG9wV2lkdGgoKSxcbiAgICAgICAgICBpbml0aWFsTGluZUNvdW50ID0gdGhpcy5nZXRJbml0aWFsTGluZUNvdW50KCksXG4gICAgICAgICAgYm9yZGVyQm90dG9tV2lkdGggPSB0aGlzLmdldEJvcmRlckJvdHRvbVdpZHRoKCksXG4gICAgICAgICAgc2Nyb2xsYmFyVGhpY2tuZXNzID0gdGhpcy5nZXRTY3JvbGxiYXJUaGlja25lc3MoKSxcbiAgICAgICAgICBoZWlnaHQgPSBpbml0aWFsTGluZUNvdW50ICogbGluZUhlaWdodCArIGJvcmRlclRvcFdpZHRoICsgYm9yZGVyQm90dG9tV2lkdGggKyBzY3JvbGxiYXJUaGlja25lc3M7XG5cbiAgICB0aGlzLnNldEhlaWdodChoZWlnaHQpO1xuXG4gICAgdGhpcy5yZXNpemUoKTtcblxuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBkaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGZpcmFDb2RlID0gREVGQVVMVF9GSVJBX0NPREUsIGRlZmVyUmVuZGVyID0gREVGQVVMVF9ERUZFUl9SRU5ERVIgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIGlmIChmaXJhQ29kZSkge1xuICAgICAgdGhpcy5hZGRDbGFzcyhcImZpcmEtY29kZVwiKTtcbiAgICB9XG5cbiAgICBpZiAoZGVmZXJSZW5kZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgd2lsbFVubW91bnQoKSB7XG4gICAgY29uc3QgeyBmaXJhQ29kZSA9IERFRkFVTFRfRklSQV9DT0RFIH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cbiAgICBpZiAoZmlyYUNvZGUpIHtcbiAgICAgIHRoaXMucmVtb3ZlQ2xhc3MoXCJmaXJhLWNvZGVcIik7XG4gICAgfVxuICB9XG5cbiAgY2hpbGRFbGVtZW50cygpIHtcbiAgICBjb25zdCB7IGhpZGRlbkd1dHRlciA9IERFRkFVTFRfSElEREVOX0dVVFRFUiwgZmFuY3lTY3JvbGxiYXJzID0gREVGQVVMVF9GQU5DWV9TQ1JPTExCQVJTIH0gPSB0aGlzLnByb3BlcnRpZXMsXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IHRoaXMuY2hhbmdlSGFuZGxlci5iaW5kKHRoaXMpLFxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSB0aGlzLnNjcm9sbEhhbmRsZXIuYmluZCh0aGlzKSxcbiAgICAgICAgICBzY3JvbGxiYXJUaGlja25lc3MgPSB0aGlzLmdldFNjcm9sbGJhclRoaWNrbmVzcygpO1xuXG4gICAgcmV0dXJuIChbXG5cbiAgICAgIDxQcmV0dHlQcmludGVyIGhpZGRlbkd1dHRlcj17aGlkZGVuR3V0dGVyfSBzY3JvbGxiYXJUaGlja25lc3M9e3Njcm9sbGJhclRoaWNrbmVzc30gLz4sXG4gICAgICA8UmljaFRleHRhcmVhIG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfSBvblNjcm9sbD17c2Nyb2xsSGFuZGxlcn0gZmFuY3lTY3JvbGxiYXJzPXtmYW5jeVNjcm9sbGJhcnN9IGFjdGl2ZSAvPlxuXG4gICAgXSk7XG4gIH1cblxuICBwYXJlbnRDb250ZXh0KCkge1xuICAgIGNvbnN0IGdldFBsdWdpbiA9IHRoaXMuZ2V0UGx1Z2luLmJpbmQodGhpcyksXG4gICAgICAgICAgdXBkYXRlWWFwcCA9IHRoaXMudXBkYXRlLmJpbmQodGhpcyksICAvLy9cbiAgICAgICAgICBzZXRZYXBwV2lkdGggPSB0aGlzLnNldFdpZHRoLmJpbmQodGhpcyksICAvLy9cbiAgICAgICAgICBzZXRZYXBwSGVpZ2h0ID0gdGhpcy5zZXRIZWlnaHQuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFlhcHBMZXhlciA9IHRoaXMuc2V0TGV4ZXIuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFlhcHBQYXJzZXIgPSB0aGlzLnNldFBhcnNlci5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgcmVzaXplWWFwcCA9IHRoaXMucmVzaXplLmJpbmQodGhpcyk7ICAvLy9cblxuICAgIHJldHVybiAoe1xuICAgICAgZ2V0UGx1Z2luLFxuICAgICAgdXBkYXRlWWFwcCxcbiAgICAgIHNldFlhcHBXaWR0aCxcbiAgICAgIHNldFlhcHBIZWlnaHQsXG4gICAgICBzZXRZYXBwTGV4ZXIsXG4gICAgICBzZXRZYXBwUGFyc2VyLFxuICAgICAgcmVzaXplWWFwcFxuICAgIH0pO1xuICB9XG5cbiAgaW5pdGlhbGlzZSgpIHtcbiAgICB0aGlzLmFzc2lnbkNvbnRleHQoKTtcblxuICAgIGNvbnN0IHsgY2hpbGRFbGVtZW50cywgZWRpdGFibGUgPSBERUZBVUxUX0VESVRBQkxFIH0gPSB0aGlzLnByb3BlcnRpZXMsXG4gICAgICAgICAgbGFuZ3VhZ2UgPSB0aGlzLnBsdWdpbi5nZXRMYW5ndWFnZSgpLFxuICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50RnJvbUNoaWxkRWxlbWVudHMoY2hpbGRFbGVtZW50cyksXG4gICAgICAgICAgcmVhZE9ubHkgPSAhZWRpdGFibGUsXG4gICAgICAgICAgc2Nyb2xsVG9wID0gMCwgIC8vL1xuICAgICAgICAgIHNjcm9sbExlZnQgPSAwOyAvLy9cblxuICAgIHRoaXMuc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuXG4gICAgdGhpcy5zY3JvbGxQcmV0dHlQcmludGVyKHNjcm9sbFRvcCwgc2Nyb2xsTGVmdCk7XG5cbiAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUNvbnRlbnQoY29udGVudCk7XG5cbiAgICB0aGlzLnNldFJpY2hUZXh0YXJlYVJlYWRPbmx5KHJlYWRPbmx5KTtcblxuICAgIHRoaXMub25SZXNpemUoKGV2ZW50LCBlbGVtZW50KSA9PiB0aGlzLnJlc2l6ZSgpKTtcbiAgfVxuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJkaXZcIjtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInlhcHBcIlxuICB9O1xuXG4gIHN0YXRpYyBpZ25vcmVkUHJvcGVydGllcyA9IFtcbiAgICBcIlBsdWdpblwiLFxuICAgIFwibGFuZ3VhZ2VcIixcbiAgICBcImZpcmFDb2RlXCIsXG4gICAgXCJlZGl0YWJsZVwiLFxuICAgIFwiZGVmZXJSZW5kZXJcIixcbiAgICBcImhpZGRlbkd1dHRlclwiLFxuICAgIFwiZmFuY3lTY3JvbGxiYXJzXCJcbiAgXTtcblxuICBzdGF0aWMgZnJvbUNvbnRlbnQoY29udGVudCwgbGFuZ3VhZ2UsIFBsdWdpbiwgb3B0aW9ucykge1xuICAgIGNvbnN0IENsYXNzID0gWWFwcCxcbiAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc0Zyb21Db250ZW50TGFuZ3VhZ2VQbHVnaW5BbmRPcHRpb25zKGNvbnRlbnQsIGxhbmd1YWdlLCBQbHVnaW4sIG9wdGlvbnMpLFxuICAgICAgICAgIHBsdWdpbiA9IHBsdWdpbkZyb21MYW5ndWFnZUFuZFBsdWdpbihsYW5ndWFnZSwgUGx1Z2luKSxcbiAgICAgICAgICB5YXBwID0gRWxlbWVudC5mcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMsIHBsdWdpbik7XG5cbiAgICByZXR1cm4geWFwcDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMpIHtcbiAgICBjb25zdCB7IGxhbmd1YWdlLCBQbHVnaW4gfSA9IHByb3BlcnRpZXMsXG4gICAgICAgICAgcGx1Z2luID0gcGx1Z2luRnJvbUxhbmd1YWdlQW5kUGx1Z2luKGxhbmd1YWdlLCBQbHVnaW4pLFxuICAgICAgICAgIHlhcHAgPSBFbGVtZW50LmZyb21DbGFzcyhDbGFzcywgcHJvcGVydGllcywgcGx1Z2luKTtcblxuICAgIHJldHVybiB5YXBwO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShZYXBwKWBcblxuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBcbiAgY29sb3I6ICR7Y29sb3VyfTtcbiAgY2FyZXQtY29sb3I6ICR7Y2FyZXRDb2xvdXJ9O1xuICBib3JkZXItY29sb3I6ICR7Ym9yZGVyQ29sb3VyfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtiYWNrZ3JvdW5kQ29sb3VyfTtcblxuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LWZhbWlseTogXCJNZW5sb1wiLCBcIkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXJcIiwgbW9ub3NwYWNlO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDtcblxuICAuZmlyYS1jb2RlIHtcblxuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBmb250LWZhbWlseTogXCJGaXJhIENvZGVcIjtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJjYWx0XCIgMTtcbiAgICBcbiAgfVxuXG5gO1xuIl19
408
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy95YXBwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBSZWFjdCwgQm91bmRzLCBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcblxuaW1wb3J0IHN0eWxlTWl4aW5zIGZyb20gXCIuL21peGlucy9zdHlsZVwiO1xuaW1wb3J0IFJpY2hUZXh0YXJlYSBmcm9tIFwiLi9yaWNoVGV4dGFyZWFcIjtcbmltcG9ydCBQcmV0dHlQcmludGVyIGZyb20gXCIuL3ByZXR0eVByaW50ZXJcIjtcblxuaW1wb3J0IHsgZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Njcm9sbGJhclRoaWNrbmVzc1wiO1xuaW1wb3J0IHsgcGx1Z2luRnJvbUxhbmd1YWdlQW5kUGx1Z2luIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BsdWdpblwiO1xuaW1wb3J0IHsgcHJvcGVydGllc0Zyb21Db250ZW50TGFuZ3VhZ2VQbHVnaW5BbmRPcHRpb25zIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Byb3BlcnRpZXNcIjtcbmltcG9ydCB7IGxpbmVDb3VudEZyb21Db250ZW50LCBjb250ZW50RnJvbUNoaWxkRWxlbWVudHMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY29udGVudFwiO1xuaW1wb3J0IHsgY29sb3VyLCBjYXJldENvbG91ciwgYm9yZGVyQ29sb3VyLCBiYWNrZ3JvdW5kQ29sb3VyIH0gZnJvbSBcIi4vc2NoZW1lL2NvbG91clwiO1xuaW1wb3J0IHsgREVGQVVMVF9FRElUQUJMRSwgREVGQVVMVF9GSVJBX0NPREUsIERFRkFVTFRfREVGRVJfUkVOREVSLCBERUZBVUxUX0hJRERFTl9HVVRURVIsIERFRkFVTFRfSElEREVOX1NDUk9MTEJBUlMsIERFRkFVTFRfRkFOQ1lfU0NST0xMQkFSUyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmNsYXNzIFlhcHAgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3IsIHBsdWdpbikge1xuICAgIHN1cGVyKHNlbGVjdG9yKTtcblxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xuICB9XG5cbiAgZ2V0UGx1Z2luKCkge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbjtcbiAgfVxuXG4gIGdldENvbnRlbnQoKSB7XG4gICAgY29uc3QgcmljaFRleHRhcmVhQ29udGVudCA9IHRoaXMuZ2V0UmljaFRleHRhcmVhQ29udGVudCgpLFxuICAgICAgICAgIGNvbnRlbnQgPSByaWNoVGV4dGFyZWFDb250ZW50OyAgLy8vXG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGdldElubmVyQm91bmRzKGd1dHRlcldpZHRoKSB7XG4gICAgbGV0IHRvcCxcbiAgICAgICAgbGVmdCxcbiAgICAgICAgd2lkdGggPSB0aGlzLmdldFdpZHRoKCksXG4gICAgICAgIGhlaWdodCA9IHRoaXMuZ2V0SGVpZ2h0KCk7XG5cbiAgICBjb25zdCBwYWRkaW5nVG9wID0gdGhpcy5nZXRQYWRkaW5nVG9wKCksXG4gICAgICAgICAgcGFkZGluZ0xlZnQgPSB0aGlzLmdldFBhZGRpbmdMZWZ0KCksXG4gICAgICAgICAgcGFkZGluZ1JpZ2h0ID0gdGhpcy5nZXRQYWRkaW5nUmlnaHQoKSxcbiAgICAgICAgICBwYWRkaW5nQm90dG9tID0gdGhpcy5nZXRQYWRkaW5nQm90dG9tKCksXG4gICAgICAgICAgYm9yZGVyVG9wV2lkdGggPSB0aGlzLmdldEJvcmRlclRvcFdpZHRoKCksXG4gICAgICAgICAgYm9yZGVyTGVmdFdpZHRoID0gdGhpcy5nZXRCb3JkZXJMZWZ0V2lkdGgoKSxcbiAgICAgICAgICBib3JkZXJSaWdodFdpZHRoID0gdGhpcy5nZXRCb3JkZXJSaWdodFdpZHRoKCksXG4gICAgICAgICAgYm9yZGVyQm90dG9tV2lkdGggPSB0aGlzLmdldEJvcmRlckJvdHRvbVdpZHRoKCk7XG5cbiAgICB0b3AgPSBib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3A7XG4gICAgbGVmdCA9IGJvcmRlckxlZnRXaWR0aCArIHBhZGRpbmdMZWZ0O1xuXG4gICAgd2lkdGggLT0gKCBib3JkZXJMZWZ0V2lkdGggKyBwYWRkaW5nTGVmdCArIHBhZGRpbmdSaWdodCArIGJvcmRlclJpZ2h0V2lkdGggKTtcbiAgICBoZWlnaHQgLT0gKCBib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3AgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyQm90dG9tV2lkdGggKTtcblxuICAgIGlmIChndXR0ZXJXaWR0aCAhPT0gbnVsbCkge1xuICAgICAgbGVmdCArPSBndXR0ZXJXaWR0aDtcbiAgICAgIHdpZHRoIC09IGd1dHRlcldpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IGJvdW5kcyA9IEJvdW5kcy5mcm9tVG9wTGVmdFdpZHRoQW5kSGVpZ2h0KHRvcCwgbGVmdCwgd2lkdGgsIGhlaWdodCksXG4gICAgICAgICAgaW5uZXJCb3VuZHMgPSBib3VuZHM7IC8vL1xuXG4gICAgcmV0dXJuIGlubmVyQm91bmRzO1xuICB9XG5cbiAgZ2V0SW5pdGlhbExpbmVDb3VudCgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgbGluZUNvdW50ID0gbGluZUNvdW50RnJvbUNvbnRlbnQoY29udGVudCksXG4gICAgICAgICAgaW5pdGlhbExpbmVDb3VudCA9IGxpbmVDb3VudDsgLy8vXG5cbiAgICByZXR1cm4gaW5pdGlhbExpbmVDb3VudDtcbiAgfVxuXG4gIGdldFNjcm9sbGJhclRoaWNrbmVzcygpIHtcbiAgICBsZXQgc2Nyb2xsYmFyVGhpY2tuZXNzID0gMDtcblxuICAgIGNvbnN0IHsgaGlkZGVuU2Nyb2xsYmFycyA9IERFRkFVTFRfSElEREVOX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIGlmICghaGlkZGVuU2Nyb2xsYmFycykge1xuICAgICAgY29uc3QgeyBmYW5jeVNjcm9sbGJhcnMgPSBERUZBVUxUX0ZBTkNZX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgICAgc2Nyb2xsYmFyVGhpY2tuZXNzID0gZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzKGZhbmN5U2Nyb2xsYmFycyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNjcm9sbGJhclRoaWNrbmVzcztcbiAgfVxuXG4gIHNldExleGVyKGxleGVyKSB7IHRoaXMucGx1Z2luLnNldExleGVyKGxleGVyKTsgfVxuXG4gIHNldFBhcnNlcihwYXJzZXIpIHsgdGhpcy5wbHVnaW4uc2V0UGFyc2VyKHBhcnNlcik7IH1cblxuICBjaGFuZ2VIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gICAgY29uc3QgcmljaFRleHRhcmVhID0gZWxlbWVudCwgLy8vXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSByaWNoVGV4dGFyZWEuaGFzQ29udGVudENoYW5nZWQoKTtcblxuICAgIGlmIChjb250ZW50Q2hhbmdlZCkge1xuICAgICAgY29uc3QgeyBvbkNvbnRlbnRDaGFuZ2UgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICAgIGNvbnRlbnRDaGFuZ2VIYW5kbGVyID0gb25Db250ZW50Q2hhbmdlOyAvLy9cblxuICAgICAgdGhpcy51cGRhdGUoKTtcblxuICAgICAgZWxlbWVudCA9IHRoaXM7IC8vL1xuXG4gICAgICBjb250ZW50Q2hhbmdlSGFuZGxlciAmJiBjb250ZW50Q2hhbmdlSGFuZGxlcihldmVudCwgZWxlbWVudCk7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgICBjb25zdCByaWNoVGV4dGFyZWEgPSBlbGVtZW50LCAvLy9cbiAgICAgICAgICBzY3JvbGxUb3AgPSByaWNoVGV4dGFyZWEuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgICAgc2Nyb2xsTGVmdCA9IHJpY2hUZXh0YXJlYS5nZXRTY3JvbGxMZWZ0KCk7XG5cbiAgICB0aGlzLnNjcm9sbFByZXR0eVByaW50ZXIoc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0KTtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCk7XG5cbiAgICB0aGlzLnBsdWdpbi51cGRhdGUoY29udGVudCk7XG5cbiAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnBsdWdpbi5nZXRUb2tlbnMoKSxcbiAgICAgICAgICBndXR0ZXJXaWR0aCA9IHRoaXMudXBkYXRlUHJldHR5UHJpbnRlcih0b2tlbnMpO1xuXG4gICAgaWYgKGd1dHRlcldpZHRoICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBpbm5lckJvdW5kcyA9IHRoaXMuZ2V0SW5uZXJCb3VuZHMoZ3V0dGVyV2lkdGgpLFxuICAgICAgICAgICAgcmljaFRleHRhcmVhQm91bmRzID0gaW5uZXJCb3VuZHM7IC8vL1xuXG4gICAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUJvdW5kcyhyaWNoVGV4dGFyZWFCb3VuZHMpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2l6ZSgpIHtcbiAgICBsZXQgaW5uZXJCb3VuZHMsXG4gICAgICAgIGd1dHRlcldpZHRoO1xuXG4gICAgZ3V0dGVyV2lkdGggPSBudWxsO1xuXG4gICAgaW5uZXJCb3VuZHMgPSB0aGlzLmdldElubmVyQm91bmRzKGd1dHRlcldpZHRoKTtcblxuICAgIGNvbnN0IHByZXR0eVByaW50ZXJCb3VuZHMgPSBpbm5lckJvdW5kczsgIC8vL1xuXG4gICAgdGhpcy5zZXRQcmV0dHlQcmludGVyQm91bmRzKHByZXR0eVByaW50ZXJCb3VuZHMpO1xuXG4gICAgZ3V0dGVyV2lkdGggPSB0aGlzLnJlc2l6ZVByZXR0eVByaW50ZXIoKTtcblxuICAgIGlubmVyQm91bmRzID0gdGhpcy5nZXRJbm5lckJvdW5kcyhndXR0ZXJXaWR0aCk7XG5cbiAgICBjb25zdCByaWNoVGV4dGFyZWFCb3VuZHMgPSBpbm5lckJvdW5kczsgLy8vXG5cbiAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUJvdW5kcyhyaWNoVGV4dGFyZWFCb3VuZHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGxpbmVIZWlnaHQgPSB0aGlzLmdldExpbmVIZWlnaHQoKSxcbiAgICAgICAgICBwYWRkaW5nVG9wID0gdGhpcy5nZXRQYWRkaW5nVG9wKCksXG4gICAgICAgICAgcGFkZGluZ0JvdHRvbSA9IHRoaXMuZ2V0UGFkZGluZ0JvdHRvbSgpLFxuICAgICAgICAgIGJvcmRlclRvcFdpZHRoID0gdGhpcy5nZXRCb3JkZXJUb3BXaWR0aCgpLFxuICAgICAgICAgIGluaXRpYWxMaW5lQ291bnQgPSB0aGlzLmdldEluaXRpYWxMaW5lQ291bnQoKSxcbiAgICAgICAgICBib3JkZXJCb3R0b21XaWR0aCA9IHRoaXMuZ2V0Qm9yZGVyQm90dG9tV2lkdGgoKSxcbiAgICAgICAgICBzY3JvbGxiYXJUaGlja25lc3MgPSB0aGlzLmdldFNjcm9sbGJhclRoaWNrbmVzcygpLFxuICAgICAgICAgIGhlaWdodCA9IGJvcmRlclRvcFdpZHRoICsgcGFkZGluZ1RvcCArIGluaXRpYWxMaW5lQ291bnQgKiBsaW5lSGVpZ2h0ICsgcGFkZGluZ0JvdHRvbSArIGJvcmRlckJvdHRvbVdpZHRoICsgc2Nyb2xsYmFyVGhpY2tuZXNzO1xuXG4gICAgdGhpcy5zZXRIZWlnaHQoaGVpZ2h0KTtcblxuICAgIHRoaXMucmVzaXplKCk7XG5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBmaXJhQ29kZSA9IERFRkFVTFRfRklSQV9DT0RFLCBkZWZlclJlbmRlciA9IERFRkFVTFRfREVGRVJfUkVOREVSIH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cbiAgICBpZiAoZmlyYUNvZGUpIHtcbiAgICAgIHRoaXMuYWRkQ2xhc3MoXCJmaXJhLWNvZGVcIik7XG4gICAgfVxuXG4gICAgaWYgKGRlZmVyUmVuZGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IHsgZmlyYUNvZGUgPSBERUZBVUxUX0ZJUkFfQ09ERSB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgaWYgKGZpcmFDb2RlKSB7XG4gICAgICB0aGlzLnJlbW92ZUNsYXNzKFwiZmlyYS1jb2RlXCIpO1xuICAgIH1cbiAgfVxuXG4gIGNoaWxkRWxlbWVudHMoKSB7XG4gICAgY29uc3QgeyBoaWRkZW5HdXR0ZXIgPSBERUZBVUxUX0hJRERFTl9HVVRURVIsIGhpZGRlblNjcm9sbGJhcnMgPSBERUZBVUxUX0hJRERFTl9TQ1JPTExCQVJTLCBmYW5jeVNjcm9sbGJhcnMgPSBERUZBVUxUX0ZBTkNZX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gdGhpcy5jaGFuZ2VIYW5kbGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgc2Nyb2xsSGFuZGxlciA9IHRoaXMuc2Nyb2xsSGFuZGxlci5iaW5kKHRoaXMpLFxuICAgICAgICAgIHNjcm9sbGJhclRoaWNrbmVzcyA9IHRoaXMuZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzKCk7XG5cbiAgICByZXR1cm4gKFtcblxuICAgICAgPFByZXR0eVByaW50ZXIgaGlkZGVuR3V0dGVyPXtoaWRkZW5HdXR0ZXJ9IHNjcm9sbGJhclRoaWNrbmVzcz17c2Nyb2xsYmFyVGhpY2tuZXNzfSAvPixcbiAgICAgIDxSaWNoVGV4dGFyZWEgb25DaGFuZ2U9e2NoYW5nZUhhbmRsZXJ9IG9uU2Nyb2xsPXtzY3JvbGxIYW5kbGVyfSBoaWRkZW5TY3JvbGxiYXJzPXtoaWRkZW5TY3JvbGxiYXJzfSBmYW5jeVNjcm9sbGJhcnM9e2ZhbmN5U2Nyb2xsYmFyc30gYWN0aXZlIC8+XG5cbiAgICBdKTtcbiAgfVxuXG4gIHBhcmVudENvbnRleHQoKSB7XG4gICAgY29uc3QgZ2V0UGx1Z2luID0gdGhpcy5nZXRQbHVnaW4uYmluZCh0aGlzKSxcbiAgICAgICAgICB1cGRhdGVZYXBwID0gdGhpcy51cGRhdGUuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFlhcHBXaWR0aCA9IHRoaXMuc2V0V2lkdGguYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFlhcHBIZWlnaHQgPSB0aGlzLnNldEhlaWdodC5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0WWFwcExleGVyID0gdGhpcy5zZXRMZXhlci5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0WWFwcFBhcnNlciA9IHRoaXMuc2V0UGFyc2VyLmJpbmQodGhpcyksICAvLy9cbiAgICAgICAgICByZXNpemVZYXBwID0gdGhpcy5yZXNpemUuYmluZCh0aGlzKTsgIC8vL1xuXG4gICAgcmV0dXJuICh7XG4gICAgICBnZXRQbHVnaW4sXG4gICAgICB1cGRhdGVZYXBwLFxuICAgICAgc2V0WWFwcFdpZHRoLFxuICAgICAgc2V0WWFwcEhlaWdodCxcbiAgICAgIHNldFlhcHBMZXhlcixcbiAgICAgIHNldFlhcHBQYXJzZXIsXG4gICAgICByZXNpemVZYXBwXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgY29uc3QgeyBjaGlsZEVsZW1lbnRzLCBlZGl0YWJsZSA9IERFRkFVTFRfRURJVEFCTEUgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICBsYW5ndWFnZSA9IHRoaXMucGx1Z2luLmdldExhbmd1YWdlKCksXG4gICAgICAgICAgY29udGVudCA9IGNvbnRlbnRGcm9tQ2hpbGRFbGVtZW50cyhjaGlsZEVsZW1lbnRzKSxcbiAgICAgICAgICByZWFkT25seSA9ICFlZGl0YWJsZSxcbiAgICAgICAgICBzY3JvbGxUb3AgPSAwLCAgLy8vXG4gICAgICAgICAgc2Nyb2xsTGVmdCA9IDA7IC8vL1xuXG4gICAgdGhpcy5zZXRMYW5ndWFnZShsYW5ndWFnZSk7XG5cbiAgICB0aGlzLnNjcm9sbFByZXR0eVByaW50ZXIoc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0KTtcblxuICAgIHRoaXMuc2V0UmljaFRleHRhcmVhQ29udGVudChjb250ZW50KTtcblxuICAgIHRoaXMuc2V0UmljaFRleHRhcmVhUmVhZE9ubHkocmVhZE9ubHkpO1xuXG4gICAgdGhpcy5vblJlc2l6ZSgoZXZlbnQsIGVsZW1lbnQpID0+IHRoaXMucmVzaXplKCkpO1xuICB9XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcImRpdlwiO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwieWFwcFwiXG4gIH07XG5cbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuICAgIFwiUGx1Z2luXCIsXG4gICAgXCJsYW5ndWFnZVwiLFxuICAgIFwiZmlyYUNvZGVcIixcbiAgICBcImVkaXRhYmxlXCIsXG4gICAgXCJkZWZlclJlbmRlclwiLFxuICAgIFwiaGlkZGVuR3V0dGVyXCIsXG4gICAgXCJub1Njcm9sbGJhcnNcIixcbiAgICBcImZhbmN5U2Nyb2xsYmFyc1wiXG4gIF07XG5cbiAgc3RhdGljIGZyb21Db250ZW50KGNvbnRlbnQsIGxhbmd1YWdlLCBQbHVnaW4sIG9wdGlvbnMpIHtcbiAgICBjb25zdCBDbGFzcyA9IFlhcHAsXG4gICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNGcm9tQ29udGVudExhbmd1YWdlUGx1Z2luQW5kT3B0aW9ucyhjb250ZW50LCBsYW5ndWFnZSwgUGx1Z2luLCBvcHRpb25zKSxcbiAgICAgICAgICBwbHVnaW4gPSBwbHVnaW5Gcm9tTGFuZ3VhZ2VBbmRQbHVnaW4obGFuZ3VhZ2UsIFBsdWdpbiksXG4gICAgICAgICAgeWFwcCA9IEVsZW1lbnQuZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCBwbHVnaW4pO1xuXG4gICAgcmV0dXJuIHlhcHA7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgeyBsYW5ndWFnZSwgUGx1Z2luIH0gPSBwcm9wZXJ0aWVzLFxuICAgICAgICAgIHBsdWdpbiA9IHBsdWdpbkZyb21MYW5ndWFnZUFuZFBsdWdpbihsYW5ndWFnZSwgUGx1Z2luKSxcbiAgICAgICAgICB5YXBwID0gRWxlbWVudC5mcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMsIHBsdWdpbik7XG5cbiAgICByZXR1cm4geWFwcDtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKFlhcHAucHJvdG90eXBlLCBzdHlsZU1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShZYXBwKWBcblxuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBcbiAgY29sb3I6ICR7Y29sb3VyfTtcbiAgY2FyZXQtY29sb3I6ICR7Y2FyZXRDb2xvdXJ9O1xuICBib3JkZXItY29sb3I6ICR7Ym9yZGVyQ29sb3VyfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtiYWNrZ3JvdW5kQ29sb3VyfTtcblxuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LWZhbWlseTogXCJNZW5sb1wiLCBcIkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXJcIiwgbW9ub3NwYWNlO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDtcblxuICAuZmlyYS1jb2RlIHtcblxuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBmb250LWZhbWlseTogXCJGaXJhIENvZGVcIjtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJjYWx0XCIgMTtcbiAgICBcbiAgfVxuXG5gO1xuIl0sIm5hbWVzIjpbIllhcHAiLCJzZWxlY3RvciIsInBsdWdpbiIsImdldFBsdWdpbiIsImdldENvbnRlbnQiLCJyaWNoVGV4dGFyZWFDb250ZW50IiwiZ2V0UmljaFRleHRhcmVhQ29udGVudCIsImNvbnRlbnQiLCJnZXRJbm5lckJvdW5kcyIsImd1dHRlcldpZHRoIiwidG9wIiwibGVmdCIsIndpZHRoIiwiZ2V0V2lkdGgiLCJoZWlnaHQiLCJnZXRIZWlnaHQiLCJwYWRkaW5nVG9wIiwiZ2V0UGFkZGluZ1RvcCIsInBhZGRpbmdMZWZ0IiwiZ2V0UGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJnZXRQYWRkaW5nUmlnaHQiLCJwYWRkaW5nQm90dG9tIiwiZ2V0UGFkZGluZ0JvdHRvbSIsImJvcmRlclRvcFdpZHRoIiwiZ2V0Qm9yZGVyVG9wV2lkdGgiLCJib3JkZXJMZWZ0V2lkdGgiLCJnZXRCb3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodFdpZHRoIiwiZ2V0Qm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwiZ2V0Qm9yZGVyQm90dG9tV2lkdGgiLCJib3VuZHMiLCJmcm9tVG9wTGVmdFdpZHRoQW5kSGVpZ2h0IiwiaW5uZXJCb3VuZHMiLCJnZXRJbml0aWFsTGluZUNvdW50IiwibGluZUNvdW50IiwiaW5pdGlhbExpbmVDb3VudCIsImdldFNjcm9sbGJhclRoaWNrbmVzcyIsInNjcm9sbGJhclRoaWNrbmVzcyIsInByb3BlcnRpZXMiLCJoaWRkZW5TY3JvbGxiYXJzIiwiZmFuY3lTY3JvbGxiYXJzIiwic2V0TGV4ZXIiLCJsZXhlciIsInNldFBhcnNlciIsInBhcnNlciIsImNoYW5nZUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJyaWNoVGV4dGFyZWEiLCJjb250ZW50Q2hhbmdlZCIsImhhc0NvbnRlbnRDaGFuZ2VkIiwib25Db250ZW50Q2hhbmdlIiwiY29udGVudENoYW5nZUhhbmRsZXIiLCJ1cGRhdGUiLCJzY3JvbGxIYW5kbGVyIiwic2Nyb2xsVG9wIiwiZ2V0U2Nyb2xsVG9wIiwic2Nyb2xsTGVmdCIsImdldFNjcm9sbExlZnQiLCJzY3JvbGxQcmV0dHlQcmludGVyIiwidG9rZW5zIiwiZ2V0VG9rZW5zIiwidXBkYXRlUHJldHR5UHJpbnRlciIsInJpY2hUZXh0YXJlYUJvdW5kcyIsInNldFJpY2hUZXh0YXJlYUJvdW5kcyIsInJlc2l6ZSIsInByZXR0eVByaW50ZXJCb3VuZHMiLCJzZXRQcmV0dHlQcmludGVyQm91bmRzIiwicmVzaXplUHJldHR5UHJpbnRlciIsInJlbmRlciIsImxpbmVIZWlnaHQiLCJnZXRMaW5lSGVpZ2h0Iiwic2V0SGVpZ2h0IiwiZGlkTW91bnQiLCJmaXJhQ29kZSIsImRlZmVyUmVuZGVyIiwiYWRkQ2xhc3MiLCJ3aWxsVW5tb3VudCIsInJlbW92ZUNsYXNzIiwiY2hpbGRFbGVtZW50cyIsImhpZGRlbkd1dHRlciIsImJpbmQiLCJvbkNoYW5nZSIsIm9uU2Nyb2xsIiwiYWN0aXZlIiwicGFyZW50Q29udGV4dCIsInVwZGF0ZVlhcHAiLCJzZXRZYXBwV2lkdGgiLCJzZXRXaWR0aCIsInNldFlhcHBIZWlnaHQiLCJzZXRZYXBwTGV4ZXIiLCJzZXRZYXBwUGFyc2VyIiwicmVzaXplWWFwcCIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0IiwiZWRpdGFibGUiLCJsYW5ndWFnZSIsImdldExhbmd1YWdlIiwicmVhZE9ubHkiLCJzZXRMYW5ndWFnZSIsInNldFJpY2hUZXh0YXJlYUNvbnRlbnQiLCJzZXRSaWNoVGV4dGFyZWFSZWFkT25seSIsIm9uUmVzaXplIiwiZnJvbUNvbnRlbnQiLCJQbHVnaW4iLCJvcHRpb25zIiwiQ2xhc3MiLCJ5YXBwIiwiZnJvbUNsYXNzIiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRVUsR0FBaUIsQ0FBakIsY0FBaUI7QUFFQSxHQUFNLENBQU4sS0FBTTtBQUVyQixHQUFnQixDQUFoQixNQUFnQjtBQUNmLEdBQWdCLENBQWhCLGFBQWdCO0FBQ2YsR0FBaUIsQ0FBakIsY0FB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "yapp",
3
3
  "author": "James Smith",
4
- "version": "2.1.13",
4
+ "version": "2.2.0",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/yapp",
7
7
  "description": "Yet Another Pretty Printer.",
@@ -10,9 +10,9 @@
10
10
  "url": "https://github.com/djalbat/yapp"
11
11
  },
12
12
  "dependencies": {
13
- "easy": "^12.1.13",
14
- "easy-richtextarea": "^3.0.51",
15
- "easy-with-style": "^3.0.60",
13
+ "easy": "^13.0.4",
14
+ "easy-richtextarea": "^3.0.52",
15
+ "easy-with-style": "^3.0.63",
16
16
  "necessary": "^7.1.10",
17
17
  "occam-dom": "^3.0.20",
18
18
  "occam-grammar-utilities": "^5.0.51",
@@ -20,11 +20,11 @@
20
20
  "occam-parsers": "^14.0.35"
21
21
  },
22
22
  "devDependencies": {
23
- "@swc/core": "^1.2.96",
24
- "easy-layout": "^5.0.56",
23
+ "@swc/core": "^1.2.106",
24
+ "easy-layout": "^5.0.57",
25
25
  "esbuild": "^0.11.7",
26
26
  "express": "^4.17.1",
27
- "juxtapose": "^4.0.20",
27
+ "juxtapose": "^4.0.24",
28
28
  "lively-cli": "^2.0.14",
29
29
  "watchful-cli": "^1.7.10"
30
30
  },
package/src/defaults.js CHANGED
@@ -6,3 +6,4 @@ export const DEFAULT_FIRA_CODE = false;
6
6
  export const DEFAULT_DEFER_RENDER = false;
7
7
  export const DEFAULT_HIDDEN_GUTTER = false;
8
8
  export const DEFAULT_FANCY_SCROLLBARS = false;
9
+ export const DEFAULT_HIDDEN_SCROLLBARS = false;
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { Element } from "easy";
4
4
 
5
- export default class ScrollableBoundedElement extends Element {
5
+ export default class ScrollableElement extends Element {
6
6
  scroll(scrollTop, scrollLeft) {
7
7
  this.setScrollTop(scrollTop);
8
8
  this.setScrollLeft(scrollLeft);
@@ -13,16 +13,6 @@ export default class ScrollableBoundedElement extends Element {
13
13
  this.position(top, left);
14
14
  }
15
15
 
16
- setBounds(bounds) {
17
- const top = bounds.getTop(),
18
- left = bounds.getLeft(),
19
- width = bounds.getWidth(),
20
- height = bounds.getHeight();
21
-
22
- this.resize(width, height);
23
- this.position(top, left);
24
- }
25
-
26
16
  resize(width, height) {
27
17
  const { scrollbarThickness } = this.properties;
28
18
 
@@ -124,7 +124,7 @@ class View extends Element {
124
124
  <LeftSizeableDiv>
125
125
  <RowsDiv>
126
126
  <TopSizeableDiv>
127
- <Yapp Plugin={this.Plugin} onContentChange={contentChangeHandler} editable firaCode fancyScrollbars >
127
+ <Yapp Plugin={this.Plugin} onContentChange={contentChangeHandler} >
128
128
  {this.initialContent}
129
129
  </Yapp>
130
130
  </TopSizeableDiv>
@@ -4,10 +4,15 @@ import withStyle from "easy-with-style"; ///
4
4
 
5
5
  import Yapp from "../index"; ///
6
6
 
7
- export default withStyle(Yapp)`
7
+ export default withStyle(class extends Yapp {
8
+ static defaultProperties = {
9
+ editable: true,
10
+ firaCode: true,
11
+ hiddenScrollbars: true
12
+ };
13
+ })`
8
14
 
9
15
  border: 1px solid;
10
-
11
16
  border-color: #666;
12
17
 
13
18
  `;