@pie-lib/editable-html-tip-tap 1.0.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 (167) hide show
  1. package/CHANGELOG.json +32 -0
  2. package/CHANGELOG.md +2280 -0
  3. package/lib/__tests__/editor.test.js +470 -0
  4. package/lib/__tests__/serialization.test.js +246 -0
  5. package/lib/__tests__/utils.js +106 -0
  6. package/lib/block-tags.js +25 -0
  7. package/lib/constants.js +16 -0
  8. package/lib/editor.js +1356 -0
  9. package/lib/extensions/MediaView.js +112 -0
  10. package/lib/extensions/characters.js +65 -0
  11. package/lib/extensions/component.js +325 -0
  12. package/lib/extensions/css.js +252 -0
  13. package/lib/extensions/custom-toolbar-wrapper.js +124 -0
  14. package/lib/extensions/image.js +106 -0
  15. package/lib/extensions/math.js +330 -0
  16. package/lib/extensions/media.js +276 -0
  17. package/lib/extensions/responseArea.js +278 -0
  18. package/lib/index.js +1213 -0
  19. package/lib/old-index.js +269 -0
  20. package/lib/parse-html.js +16 -0
  21. package/lib/plugins/characters/custom-popper.js +73 -0
  22. package/lib/plugins/characters/index.js +305 -0
  23. package/lib/plugins/characters/utils.js +381 -0
  24. package/lib/plugins/css/icons/index.js +37 -0
  25. package/lib/plugins/css/index.js +390 -0
  26. package/lib/plugins/customPlugin/index.js +114 -0
  27. package/lib/plugins/html/icons/index.js +38 -0
  28. package/lib/plugins/html/index.js +81 -0
  29. package/lib/plugins/image/__tests__/component.test.js +51 -0
  30. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +56 -0
  31. package/lib/plugins/image/__tests__/image-toolbar.test.js +26 -0
  32. package/lib/plugins/image/__tests__/index.test.js +98 -0
  33. package/lib/plugins/image/__tests__/insert-image-handler.test.js +125 -0
  34. package/lib/plugins/image/__tests__/mock-change.js +25 -0
  35. package/lib/plugins/image/alt-dialog.js +129 -0
  36. package/lib/plugins/image/component.js +419 -0
  37. package/lib/plugins/image/image-toolbar.js +177 -0
  38. package/lib/plugins/image/index.js +263 -0
  39. package/lib/plugins/image/insert-image-handler.js +117 -0
  40. package/lib/plugins/index.js +413 -0
  41. package/lib/plugins/list/__tests__/index.test.js +79 -0
  42. package/lib/plugins/list/index.js +334 -0
  43. package/lib/plugins/math/__tests__/index.test.js +300 -0
  44. package/lib/plugins/math/index.js +454 -0
  45. package/lib/plugins/media/__tests__/index.test.js +71 -0
  46. package/lib/plugins/media/index.js +387 -0
  47. package/lib/plugins/media/media-dialog.js +709 -0
  48. package/lib/plugins/media/media-toolbar.js +101 -0
  49. package/lib/plugins/media/media-wrapper.js +93 -0
  50. package/lib/plugins/rendering/index.js +46 -0
  51. package/lib/plugins/respArea/drag-in-the-blank/choice.js +289 -0
  52. package/lib/plugins/respArea/drag-in-the-blank/index.js +94 -0
  53. package/lib/plugins/respArea/explicit-constructed-response/index.js +120 -0
  54. package/lib/plugins/respArea/icons/index.js +95 -0
  55. package/lib/plugins/respArea/index.js +341 -0
  56. package/lib/plugins/respArea/inline-dropdown/index.js +126 -0
  57. package/lib/plugins/respArea/math-templated/index.js +130 -0
  58. package/lib/plugins/respArea/utils.js +125 -0
  59. package/lib/plugins/table/CustomTablePlugin.js +133 -0
  60. package/lib/plugins/table/__tests__/index.test.js +442 -0
  61. package/lib/plugins/table/__tests__/table-toolbar.test.js +54 -0
  62. package/lib/plugins/table/icons/index.js +69 -0
  63. package/lib/plugins/table/index.js +483 -0
  64. package/lib/plugins/table/table-toolbar.js +187 -0
  65. package/lib/plugins/textAlign/icons/index.js +194 -0
  66. package/lib/plugins/textAlign/index.js +34 -0
  67. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +128 -0
  68. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +51 -0
  69. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +54 -0
  70. package/lib/plugins/toolbar/__tests__/toolbar.test.js +120 -0
  71. package/lib/plugins/toolbar/default-toolbar.js +229 -0
  72. package/lib/plugins/toolbar/done-button.js +53 -0
  73. package/lib/plugins/toolbar/editor-and-toolbar.js +286 -0
  74. package/lib/plugins/toolbar/index.js +34 -0
  75. package/lib/plugins/toolbar/toolbar-buttons.js +194 -0
  76. package/lib/plugins/toolbar/toolbar.js +376 -0
  77. package/lib/plugins/utils.js +62 -0
  78. package/lib/serialization.js +677 -0
  79. package/lib/shared/alert-dialog.js +75 -0
  80. package/lib/theme.js +9 -0
  81. package/package.json +69 -0
  82. package/src/__tests__/editor.test.jsx +363 -0
  83. package/src/__tests__/serialization.test.js +291 -0
  84. package/src/__tests__/utils.js +36 -0
  85. package/src/block-tags.js +17 -0
  86. package/src/constants.js +7 -0
  87. package/src/editor.jsx +1197 -0
  88. package/src/extensions/characters.js +46 -0
  89. package/src/extensions/component.jsx +294 -0
  90. package/src/extensions/css.js +217 -0
  91. package/src/extensions/custom-toolbar-wrapper.jsx +100 -0
  92. package/src/extensions/image.js +55 -0
  93. package/src/extensions/math.js +259 -0
  94. package/src/extensions/media.js +182 -0
  95. package/src/extensions/responseArea.js +205 -0
  96. package/src/index.jsx +1462 -0
  97. package/src/old-index.jsx +162 -0
  98. package/src/parse-html.js +8 -0
  99. package/src/plugins/README.md +27 -0
  100. package/src/plugins/characters/custom-popper.js +48 -0
  101. package/src/plugins/characters/index.jsx +284 -0
  102. package/src/plugins/characters/utils.js +447 -0
  103. package/src/plugins/css/icons/index.jsx +17 -0
  104. package/src/plugins/css/index.jsx +340 -0
  105. package/src/plugins/customPlugin/index.jsx +85 -0
  106. package/src/plugins/html/icons/index.jsx +19 -0
  107. package/src/plugins/html/index.jsx +72 -0
  108. package/src/plugins/image/__tests__/__snapshots__/component.test.jsx.snap +51 -0
  109. package/src/plugins/image/__tests__/__snapshots__/image-toolbar-logic.test.jsx.snap +27 -0
  110. package/src/plugins/image/__tests__/__snapshots__/image-toolbar.test.jsx.snap +44 -0
  111. package/src/plugins/image/__tests__/component.test.jsx +41 -0
  112. package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +42 -0
  113. package/src/plugins/image/__tests__/image-toolbar.test.jsx +11 -0
  114. package/src/plugins/image/__tests__/index.test.js +95 -0
  115. package/src/plugins/image/__tests__/insert-image-handler.test.js +113 -0
  116. package/src/plugins/image/__tests__/mock-change.js +15 -0
  117. package/src/plugins/image/alt-dialog.jsx +82 -0
  118. package/src/plugins/image/component.jsx +343 -0
  119. package/src/plugins/image/image-toolbar.jsx +100 -0
  120. package/src/plugins/image/index.jsx +227 -0
  121. package/src/plugins/image/insert-image-handler.js +79 -0
  122. package/src/plugins/index.jsx +377 -0
  123. package/src/plugins/list/__tests__/index.test.js +54 -0
  124. package/src/plugins/list/index.jsx +305 -0
  125. package/src/plugins/math/__tests__/__snapshots__/index.test.jsx.snap +48 -0
  126. package/src/plugins/math/__tests__/index.test.jsx +245 -0
  127. package/src/plugins/math/index.jsx +379 -0
  128. package/src/plugins/media/__tests__/index.test.js +75 -0
  129. package/src/plugins/media/index.jsx +325 -0
  130. package/src/plugins/media/media-dialog.js +624 -0
  131. package/src/plugins/media/media-toolbar.jsx +56 -0
  132. package/src/plugins/media/media-wrapper.jsx +43 -0
  133. package/src/plugins/rendering/index.js +31 -0
  134. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +215 -0
  135. package/src/plugins/respArea/drag-in-the-blank/index.jsx +70 -0
  136. package/src/plugins/respArea/explicit-constructed-response/index.jsx +92 -0
  137. package/src/plugins/respArea/icons/index.jsx +71 -0
  138. package/src/plugins/respArea/index.jsx +299 -0
  139. package/src/plugins/respArea/inline-dropdown/index.jsx +108 -0
  140. package/src/plugins/respArea/math-templated/index.jsx +104 -0
  141. package/src/plugins/respArea/utils.jsx +90 -0
  142. package/src/plugins/table/CustomTablePlugin.js +113 -0
  143. package/src/plugins/table/__tests__/__snapshots__/table-toolbar.test.jsx.snap +44 -0
  144. package/src/plugins/table/__tests__/index.test.jsx +401 -0
  145. package/src/plugins/table/__tests__/table-toolbar.test.jsx +42 -0
  146. package/src/plugins/table/icons/index.jsx +53 -0
  147. package/src/plugins/table/index.jsx +427 -0
  148. package/src/plugins/table/table-toolbar.jsx +136 -0
  149. package/src/plugins/textAlign/icons/index.jsx +114 -0
  150. package/src/plugins/textAlign/index.jsx +23 -0
  151. package/src/plugins/toolbar/__tests__/__snapshots__/default-toolbar.test.jsx.snap +923 -0
  152. package/src/plugins/toolbar/__tests__/__snapshots__/editor-and-toolbar.test.jsx.snap +20 -0
  153. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar-buttons.test.jsx.snap +36 -0
  154. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar.test.jsx.snap +46 -0
  155. package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +94 -0
  156. package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +37 -0
  157. package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +51 -0
  158. package/src/plugins/toolbar/__tests__/toolbar.test.jsx +106 -0
  159. package/src/plugins/toolbar/default-toolbar.jsx +206 -0
  160. package/src/plugins/toolbar/done-button.jsx +38 -0
  161. package/src/plugins/toolbar/editor-and-toolbar.jsx +257 -0
  162. package/src/plugins/toolbar/index.jsx +23 -0
  163. package/src/plugins/toolbar/toolbar-buttons.jsx +138 -0
  164. package/src/plugins/toolbar/toolbar.jsx +338 -0
  165. package/src/plugins/utils.js +31 -0
  166. package/src/serialization.jsx +621 -0
  167. package/src/theme.js +1 -0
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _styles = require("@material-ui/core/styles");
17
+
18
+ var _mathInput = require("@pie-lib/math-input");
19
+
20
+ var MathTemplated = function MathTemplated(_ref) {
21
+ var attributes = _ref.attributes,
22
+ value = _ref.value,
23
+ classes = _ref.classes,
24
+ keyToDisplay = _ref.keyToDisplay;
25
+ return /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, attributes, {
26
+ className: classes.spanContainer
27
+ }), /*#__PURE__*/_react["default"].createElement("div", {
28
+ className: classes.responseBox
29
+ }, keyToDisplay), /*#__PURE__*/_react["default"].createElement("div", {
30
+ className: classes.mathBlock
31
+ }, /*#__PURE__*/_react["default"].createElement(_mathInput.mq.Static, {
32
+ latex: value
33
+ })));
34
+ };
35
+
36
+ MathTemplated.propTypes = {
37
+ attributes: _propTypes["default"].object,
38
+ classes: _propTypes["default"].object.isRequired,
39
+ value: _propTypes["default"].string,
40
+ keyToDisplay: _propTypes["default"].string
41
+ };
42
+
43
+ var styles = function styles(theme) {
44
+ return {
45
+ responseBox: {
46
+ background: theme.palette.grey['A100'],
47
+ color: theme.palette.grey['A700'],
48
+ display: 'inline-flex',
49
+ borderRight: '2px solid #C0C3CF',
50
+ boxSizing: 'border-box',
51
+ overflow: 'hidden',
52
+ fontSize: '12px',
53
+ minHeight: '36px',
54
+ height: '100%',
55
+ alignItems: 'center',
56
+ fontFamily: 'Symbola, Times New Roman, serif',
57
+ padding: '0 2px'
58
+ },
59
+ spanContainer: {
60
+ display: 'inline-flex',
61
+ border: '1px solid #C0C3CF',
62
+ margin: '1px 5px',
63
+ cursor: 'pointer',
64
+ alignItems: 'center',
65
+ justifyContent: 'center',
66
+ minWidth: '50px',
67
+ minHeight: '36px',
68
+ height: 'fit-content'
69
+ },
70
+ mathBlock: {
71
+ flex: 8,
72
+ color: 'var(--pie-text, black)',
73
+ padding: '4px !important',
74
+ display: 'flex',
75
+ alignItems: 'center',
76
+ justifyContent: 'center',
77
+ backgroundColor: 'var(--pie-background, rgba(255, 255, 255, 0))',
78
+ '& > .mq-math-mode sup.mq-nthroot': {
79
+ fontSize: '70% !important',
80
+ verticalAlign: '1em !important'
81
+ },
82
+ '& > .mq-math-mode .mq-sqrt-stem': {
83
+ borderTop: '0.07em solid',
84
+ marginLeft: '-1.5px',
85
+ marginTop: '-2px !important',
86
+ paddingTop: '5px !important'
87
+ },
88
+ '& .mq-overarrow-inner': {
89
+ paddingTop: '0 !important',
90
+ border: 'none !important'
91
+ },
92
+ '& .mq-overarrow.mq-arrow-both': {
93
+ marginTop: '0px',
94
+ minWidth: '1.23em',
95
+ '& *': {
96
+ lineHeight: '1 !important'
97
+ },
98
+ '&:before': {
99
+ top: '-0.4em',
100
+ left: '-1px'
101
+ },
102
+ '&:after': {
103
+ top: '0px !important',
104
+ position: 'absolute !important',
105
+ right: '-2px'
106
+ },
107
+ '&.mq-empty:after': {
108
+ top: '-0.45em'
109
+ }
110
+ },
111
+ '& .mq-overarrow.mq-arrow-right': {
112
+ '&:before': {
113
+ top: '-0.4em',
114
+ right: '-1px'
115
+ }
116
+ },
117
+ '& .mq-overarrow-inner-right': {
118
+ display: 'none !important'
119
+ },
120
+ '& .mq-overarrow-inner-left': {
121
+ display: 'none !important'
122
+ }
123
+ }
124
+ };
125
+ };
126
+
127
+ var _default = (0, _styles.withStyles)(styles)(MathTemplated);
128
+
129
+ exports["default"] = _default;
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL3Jlc3BBcmVhL21hdGgtdGVtcGxhdGVkL2luZGV4LmpzeCJdLCJuYW1lcyI6WyJNYXRoVGVtcGxhdGVkIiwiYXR0cmlidXRlcyIsInZhbHVlIiwiY2xhc3NlcyIsImtleVRvRGlzcGxheSIsInNwYW5Db250YWluZXIiLCJyZXNwb25zZUJveCIsIm1hdGhCbG9jayIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJzdHJpbmciLCJzdHlsZXMiLCJ0aGVtZSIsImJhY2tncm91bmQiLCJwYWxldHRlIiwiZ3JleSIsImNvbG9yIiwiZGlzcGxheSIsImJvcmRlclJpZ2h0IiwiYm94U2l6aW5nIiwib3ZlcmZsb3ciLCJmb250U2l6ZSIsIm1pbkhlaWdodCIsImhlaWdodCIsImFsaWduSXRlbXMiLCJmb250RmFtaWx5IiwicGFkZGluZyIsImJvcmRlciIsIm1hcmdpbiIsImN1cnNvciIsImp1c3RpZnlDb250ZW50IiwibWluV2lkdGgiLCJmbGV4IiwiYmFja2dyb3VuZENvbG9yIiwidmVydGljYWxBbGlnbiIsImJvcmRlclRvcCIsIm1hcmdpbkxlZnQiLCJtYXJnaW5Ub3AiLCJwYWRkaW5nVG9wIiwibGluZUhlaWdodCIsInRvcCIsImxlZnQiLCJwb3NpdGlvbiIsInJpZ2h0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQU1BLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0I7QUFBQSxNQUFHQyxVQUFILFFBQUdBLFVBQUg7QUFBQSxNQUFlQyxLQUFmLFFBQWVBLEtBQWY7QUFBQSxNQUFzQkMsT0FBdEIsUUFBc0JBLE9BQXRCO0FBQUEsTUFBK0JDLFlBQS9CLFFBQStCQSxZQUEvQjtBQUFBLHNCQUNwQixzRUFBVUgsVUFBVjtBQUFzQixJQUFBLFNBQVMsRUFBRUUsT0FBTyxDQUFDRTtBQUF6QyxtQkFDRTtBQUFLLElBQUEsU0FBUyxFQUFF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LFNBTm1CO0FBVS9CLG1CQUFXO0FBQ1RELFVBQUFBLEdBQUcsRUFBRSxnQkFESTtBQUVURSxVQUFBQSxRQUFRLEVBQUUscUJBRkQ7QUFHVEMsVUFBQUEsS0FBSyxFQUFFO0FBSEUsU0FWb0I7QUFlL0IsNEJBQW9CO0FBQ2xCSCxVQUFBQSxHQUFHLEVBQUU7QUFEYTtBQWZXLE9BdEJ4QjtBQXlDVCx3Q0FBa0M7QUFDaEMsb0JBQVk7QUFDVkEsVUFBQUEsR0FBRyxFQUFFLFFBREs7QUFFVkcsVUFBQUEsS0FBSyxFQUFFO0FBRkc7QUFEb0IsT0F6Q3pCO0FBK0NULHFDQUErQjtBQUM3QjFCLFFBQUFBLE9BQU8sRUFBRTtBQURvQixPQS9DdEI7QUFrRFQsb0NBQThCO0FBQzVCQSxRQUFBQSxPQUFPLEVBQUU7QUFEbUI7QUFsRHJCO0FBMUJjLEdBQVo7QUFBQSxDQUFmOztlQWtGZSx3QkFBV04sTUFBWCxFQUFtQmIsYUFBbkIsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgeyBtcSB9IGZyb20gJ0BwaWUtbGliL21hdGgtaW5wdXQnO1xuXG5jb25zdCBNYXRoVGVtcGxhdGVkID0gKHsgYXR0cmlidXRlcywgdmFsdWUsIGNsYXNzZXMsIGtleVRvRGlzcGxheSB9KSA9PiAoXG4gIDxzcGFuIHsuLi5hdHRyaWJ1dGVzfSBjbGFzc05hbWU9e2NsYXNzZXMuc3BhbkNvbnRhaW5lcn0+XG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMucmVzcG9uc2VCb3h9PntrZXlUb0Rpc3BsYXl9PC9kaXY+XG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMubWF0aEJsb2NrfT5cbiAgICAgIDxtcS5TdGF0aWMgbGF0ZXg9e3ZhbHVlfSAvPlxuICAgIDwvZGl2PlxuICA8L3NwYW4+XG4pO1xuXG5NYXRoVGVtcGxhdGVkLnByb3BUeXBlcyA9IHtcbiAgYXR0cmlidXRlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAga2V5VG9EaXNwbGF5OiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuY29uc3Qgc3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICByZXNwb25zZUJveDoge1xuICAgIGJhY2tncm91bmQ6IHRoZW1lLnBhbGV0dGUuZ3JleVsnQTEwMCddLFxuICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLmdyZXlbJ0E3MDAnXSxcbiAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgIGJvcmRlclJpZ2h0OiAnMnB4IHNvbGlkICNDMEMzQ0YnLFxuICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICBmb250U2l6ZTogJzEycHgnLFxuICAgIG1pbkhlaWdodDogJzM2cHgnLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGZvbnRGYW1pbHk6ICdTeW1ib2xhLCBUaW1lcyBOZXcgUm9tYW4sIHNlcmlmJyxcbiAgICBwYWRkaW5nOiAnMCAycHgnLFxuICB9LFxuICBzcGFuQ29udGFpbmVyOiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1mbGV4JyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgI0MwQzNDRicsXG4gICAgbWFyZ2luOiAnMXB4IDVweCcsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIG1pbldpZHRoOiAnNTBweCcsXG4gICAgbWluSGVpZ2h0OiAnMzZweCcsXG4gICAgaGVpZ2h0OiAnZml0LWNvbnRlbnQnLFxuICB9LFxuICBtYXRoQmxvY2s6IHtcbiAgICBmbGV4OiA4LFxuICAgIGNvbG9yOiAndmFyKC0tcGllLXRleHQsIGJsYWNrKScsXG4gICAgcGFkZGluZzogJzRweCAhaW1wb3J0YW50JyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXBpZS1iYWNrZ3JvdW5kLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApKScsXG4gICAgJyYgPiAubXEtbWF0aC1tb2RlIHN1cC5tcS1udGhyb290Jzoge1xuICAgICAgZm9udFNpemU6ICc3MCUgIWltcG9ydGFudCcsXG4gICAgICB2ZXJ0aWNhbEFsaWduOiAnMWVtICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gICAgJyYgPiAubXEtbWF0aC1tb2RlIC5tcS1zcXJ0LXN0ZW0nOiB7XG4gICAgICBib3JkZXJUb3A6ICcwLjA3ZW0gc29saWQnLFxuICAgICAgbWFyZ2luTGVmdDogJy0xLjVweCcsXG4gICAgICBtYXJnaW5Ub3A6ICctMnB4ICFpbXBvcnRhbnQnLFxuICAgICAgcGFkZGluZ1RvcDogJzVweCAhaW1wb3J0YW50JyxcbiAgICB9LFxuICAgICcmIC5tcS1vdmVyYXJyb3ctaW5uZXInOiB7XG4gICAgICBwYWRkaW5nVG9wOiAnMCAhaW1wb3J0YW50JyxcbiAgICAgIGJvcmRlcjogJ25vbmUgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgICAnJiAubXEtb3ZlcmFycm93Lm1xLWFycm93LWJvdGgnOiB7XG4gICAgICBtYXJnaW5Ub3A6ICcwcHgnLFxuICAgICAgbWluV2lkdGg6ICcxLjIzZW0nLFxuICAgICAgJyYgKic6IHtcbiAgICAgICAgbGluZUhlaWdodDogJzEgIWltcG9ydGFudCcsXG4gICAgICB9LFxuICAgICAgJyY6YmVmb3JlJzoge1xuICAgICAgICB0b3A6ICctMC40ZW0nLFxuICAgICAgICBsZWZ0OiAnLTFweCcsXG4gICAgICB9LFxuICAgICAgJyY6YWZ0ZXInOiB7XG4gICAgICAgIHRvcDogJzBweCAhaW1wb3J0YW50JyxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZSAhaW1wb3J0YW50JyxcbiAgICAgICAgcmlnaHQ6ICctMnB4JyxcbiAgICAgIH0sXG4gICAgICAnJi5tcS1lbXB0eTphZnRlcic6IHtcbiAgICAgICAgdG9wOiAnLTAuNDVlbScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgJyYgLm1xLW92ZXJhcnJvdy5tcS1hcnJvdy1yaWdodCc6IHtcbiAgICAgICcmOmJlZm9yZSc6IHtcbiAgICAgICAgdG9wOiAnLTAuNGVtJyxcbiAgICAgICAgcmlnaHQ6ICctMXB4JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICAnJiAubXEtb3ZlcmFycm93LWlubmVyLXJpZ2h0Jzoge1xuICAgICAgZGlzcGxheTogJ25vbmUgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgICAnJiAubXEtb3ZlcmFycm93LWlubmVyLWxlZnQnOiB7XG4gICAgICBkaXNwbGF5OiAnbm9uZSAhaW1wb3J0YW50JyxcbiAgICB9LFxuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzKShNYXRoVGVtcGxhdGVkKTtcbiJdfQ==
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.isNumber = exports.insertSnackBar = exports.getDefaultElement = exports.defaultMT = exports.defaultIDD = exports.defaultECR = exports.defaultDIB = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _reactDom = _interopRequireDefault(require("react-dom"));
13
+
14
+ var _slate = require("slate");
15
+
16
+ var _Snackbar = _interopRequireDefault(require("@material-ui/core/Snackbar"));
17
+
18
+ var isNumber = function isNumber(val) {
19
+ return !isNaN(parseFloat(val)) && isFinite(val);
20
+ };
21
+
22
+ exports.isNumber = isNumber;
23
+
24
+ var insertSnackBar = function insertSnackBar(message) {
25
+ var prevSnacks = document.querySelectorAll('.response-area-alert');
26
+ prevSnacks.forEach(function (s) {
27
+ return s.remove();
28
+ });
29
+ var newEl = document.createElement('div');
30
+ newEl.className = 'response-area-alert';
31
+
32
+ var el = /*#__PURE__*/_react["default"].createElement(_Snackbar["default"], {
33
+ anchorOrigin: {
34
+ vertical: 'top',
35
+ horizontal: 'center'
36
+ },
37
+ open: true,
38
+ ContentProps: {
39
+ 'aria-describedby': 'message-id'
40
+ },
41
+ message: /*#__PURE__*/_react["default"].createElement("span", {
42
+ id: "message-id"
43
+ }, message)
44
+ });
45
+
46
+ _reactDom["default"].render(el, newEl);
47
+
48
+ document.body.appendChild(newEl);
49
+ setTimeout(function () {
50
+ newEl.remove();
51
+ }, 2000);
52
+ };
53
+
54
+ exports.insertSnackBar = insertSnackBar;
55
+
56
+ var defaultECR = function defaultECR(index) {
57
+ return _slate.Inline.create({
58
+ type: 'explicit_constructed_response',
59
+ isVoid: true,
60
+ data: {
61
+ index: index
62
+ }
63
+ });
64
+ };
65
+
66
+ exports.defaultECR = defaultECR;
67
+
68
+ var defaultMT = function defaultMT(index) {
69
+ return _slate.Inline.create({
70
+ type: 'math_templated',
71
+ isVoid: true,
72
+ data: {
73
+ index: index
74
+ }
75
+ });
76
+ };
77
+
78
+ exports.defaultMT = defaultMT;
79
+
80
+ var defaultDIB = function defaultDIB(opts, index) {
81
+ return _slate.Inline.create({
82
+ type: 'drag_in_the_blank',
83
+ isVoid: true,
84
+ data: {
85
+ index: index,
86
+ duplicates: opts.options.duplicates,
87
+ value: null
88
+ }
89
+ });
90
+ };
91
+
92
+ exports.defaultDIB = defaultDIB;
93
+
94
+ var defaultIDD = function defaultIDD(index) {
95
+ return _slate.Inline.create({
96
+ object: 'inline',
97
+ type: 'inline_dropdown',
98
+ isVoid: true,
99
+ data: {
100
+ index: index
101
+ }
102
+ });
103
+ };
104
+
105
+ exports.defaultIDD = defaultIDD;
106
+
107
+ var getDefaultElement = function getDefaultElement(opts, index) {
108
+ switch (opts.type) {
109
+ case 'explicit-constructed-response':
110
+ return defaultECR(index);
111
+
112
+ case 'math-templated':
113
+ return defaultMT(index);
114
+
115
+ case 'drag-in-the-blank':
116
+ return defaultDIB(opts, index);
117
+
118
+ default:
119
+ // inline-dropdown
120
+ return defaultIDD(index);
121
+ }
122
+ };
123
+
124
+ exports.getDefaultElement = getDefaultElement;
125
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3Jlc3BBcmVhL3V0aWxzLmpzeCJdLCJuYW1lcyI6WyJpc051bWJlciIsInZhbCIsImlzTmFOIiwicGFyc2VGbG9hdCIsImlzRmluaXRlIiwiaW5zZXJ0U25hY2tCYXIiLCJtZXNzYWdlIiwicHJldlNuYWNrcyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJzIiwicmVtb3ZlIiwibmV3RWwiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiZWwiLCJ2ZXJ0aWNhbCIsImhvcml6b250YWwiLCJSZWFjdERPTSIsInJlbmRlciIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInNldFRpbWVvdXQiLCJkZWZhdWx0RUNSIiwiaW5kZXgiLCJJbmxpbmUiLCJjcmVhdGUiLCJ0eXBlIiwiaXNWb2lkIiwiZGF0YSIsImRlZmF1bHRNVCIsImRlZmF1bHRESUIiLCJvcHRzIiwiZHVwbGljYXRlcyIsIm9wdGlvbnMiLCJ2YWx1ZSIsImRlZmF1bHRJREQiLCJvYmplY3QiLCJnZXREZWZhdWx0RWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRU8sSUFBTUEsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0MsR0FBRDtBQUFBLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDQyxVQUFVLENBQUNGLEdBQUQsQ0FBWCxDQUFOLElBQTJCRyxRQUFRLENBQUNILEdBQUQsQ0FBNUM7QUFBQSxDQUFqQjs7OztBQUVBLElBQU1JLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0MsT0FBRCxFQUFhO0FBQ3pDLE1BQU1DLFVBQVUsR0FBR0MsUUFBUSxDQUFDQyxnQkFBVCxDQUEwQixzQkFBMUIsQ0FBbkI7QUFFQUYsRUFBQUEsVUFBVSxDQUFDRyxPQUFYLENBQW1CLFVBQUNDLENBQUQ7QUFBQSxXQUFPQSxDQUFDLENBQUNDLE1BQUYsRUFBUDtBQUFBLEdBQW5CO0FBRUEsTUFBTUMsS0FB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aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IFNuYWNrYmFyIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1NuYWNrYmFyJztcblxuZXhwb3J0IGNvbnN0IGlzTnVtYmVyID0gKHZhbCkgPT4gIWlzTmFOKHBhcnNlRmxvYXQodmFsKSkgJiYgaXNGaW5pdGUodmFsKTtcblxuZXhwb3J0IGNvbnN0IGluc2VydFNuYWNrQmFyID0gKG1lc3NhZ2UpID0+IHtcbiAgY29uc3QgcHJldlNuYWNrcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5yZXNwb25zZS1hcmVhLWFsZXJ0Jyk7XG5cbiAgcHJldlNuYWNrcy5mb3JFYWNoKChzKSA9PiBzLnJlbW92ZSgpKTtcblxuICBjb25zdCBuZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gIG5ld0VsLmNsYXNzTmFtZSA9ICdyZXNwb25zZS1hcmVhLWFsZXJ0JztcblxuICBjb25zdCBlbCA9IChcbiAgICA8U25hY2tiYXJcbiAgICAgIGFuY2hvck9yaWdpbj17eyB2ZXJ0aWNhbDogJ3RvcCcsIGhvcml6b250YWw6ICdjZW50ZXInIH19XG4gICAgICBvcGVuPXt0cnVlfVxuICAgICAgQ29udGVudFByb3BzPXt7XG4gICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogJ21lc3NhZ2UtaWQnLFxuICAgICAgfX1cbiAgICAgIG1lc3NhZ2U9ezxzcGFuIGlkPVwibWVzc2FnZS1pZFwiPnttZXNzYWdlfTwvc3Bhbj59XG4gICAgLz5cbiAgKTtcblxuICBSZWFjdERPTS5yZW5kZXIoZWwsIG5ld0VsKTtcblxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5ld0VsKTtcblxuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICBuZXdFbC5yZW1vdmUoKTtcbiAgfSwgMjAwMCk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEVDUiA9IChpbmRleCkgPT5cbiAgSW5saW5lLmNyZWF0ZSh7XG4gICAgdHlwZTogJ2V4cGxpY2l0X2NvbnN0cnVjdGVkX3Jlc3BvbnNlJyxcbiAgICBpc1ZvaWQ6IHRydWUsXG4gICAgZGF0YToge1xuICAgICAgaW5kZXgsXG4gICAgfSxcbiAgfSk7XG5leHBvcnQgY29uc3QgZGVmYXVsdE1UID0gKGluZGV4KSA9PlxuICBJbmxpbmUuY3JlYXRlKHtcbiAgICB0eXBlOiAnbWF0aF90ZW1wbGF0ZWQnLFxuICAgIGlzVm9pZDogdHJ1ZSxcbiAgICBkYXRhOiB7XG4gICAgICBpbmRleCxcbiAgICB9LFxuICB9KTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRESUIgPSAob3B0cywgaW5kZXgpID0+XG4gIElubGluZS5jcmVhdGUoe1xuICAgIHR5cGU6ICdkcmFnX2luX3RoZV9ibGFuaycsXG4gICAgaXNWb2lkOiB0cnVlLFxuICAgIGRhdGE6IHtcbiAgICAgIGluZGV4LFxuICAgICAgZHVwbGljYXRlczogb3B0cy5vcHRpb25zLmR1cGxpY2F0ZXMsXG4gICAgICB2YWx1ZTogbnVsbCxcbiAgICB9LFxuICB9KTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRJREQgPSAoaW5kZXgpID0+XG4gIElubGluZS5jcmVhdGUoe1xuICAgIG9iamVjdDogJ2lubGluZScsXG4gICAgdHlwZTogJ2lubGluZV9kcm9wZG93bicsXG4gICAgaXNWb2lkOiB0cnVlLFxuICAgIGRhdGE6IHtcbiAgICAgIGluZGV4LFxuICAgIH0sXG4gIH0pO1xuXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdEVsZW1lbnQgPSAob3B0cywgaW5kZXgpID0+IHtcbiAgc3dpdGNoIChvcHRzLnR5cGUpIHtcbiAgICBjYXNlICdleHBsaWNpdC1jb25zdHJ1Y3RlZC1yZXNwb25zZSc6XG4gICAgICByZXR1cm4gZGVmYXVsdEVDUihpbmRleCk7XG5cbiAgICBjYXNlICdtYXRoLXRlbXBsYXRlZCc6XG4gICAgICByZXR1cm4gZGVmYXVsdE1UKGluZGV4KTtcblxuICAgIGNhc2UgJ2RyYWctaW4tdGhlLWJsYW5rJzpcbiAgICAgIHJldHVybiBkZWZhdWx0RElCKG9wdHMsIGluZGV4KTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBpbmxpbmUtZHJvcGRvd25cbiAgICAgIHJldHVybiBkZWZhdWx0SUREKGluZGV4KTtcbiAgfVxufTtcbiJdfQ==
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _slateEditTable = _interopRequireDefault(require("slate-edit-table"));
11
+
12
+ var _utils = require("slate-edit-table/dist/utils");
13
+
14
+ var _handlers = require("slate-edit-table/dist/handlers");
15
+
16
+ var _options = _interopRequireDefault(require("slate-edit-table/dist/options"));
17
+
18
+ var _changes = require("slate-edit-table/dist/changes");
19
+
20
+ function onBackspace(event, change, editor, opts) {
21
+ var _startCell$nodes;
22
+
23
+ var value = change.value;
24
+ var startBlock = value.startBlock,
25
+ endBlock = value.endBlock,
26
+ selection = value.selection,
27
+ document = value.document;
28
+ var startCell = document.getClosest(startBlock.key, opts.isCell);
29
+ var endCell = document.getClosest(endBlock.key, opts.isCell);
30
+ var startBlockIndex = startCell === null || startCell === void 0 ? void 0 : (_startCell$nodes = startCell.nodes) === null || _startCell$nodes === void 0 ? void 0 : _startCell$nodes.findIndex(function (block) {
31
+ return block.key == startBlock.key;
32
+ }); // If a cursor is collapsed at the start of the first block, do nothing
33
+
34
+ if (startBlockIndex === 0 && selection.isAtStartOf(startBlock)) {
35
+ if (startBlock.isVoid) {
36
+ // Delete the block normally if it is a void block
37
+ return undefined;
38
+ }
39
+
40
+ event.preventDefault();
41
+ return change;
42
+ } // If "normal" deletion, we continue
43
+
44
+
45
+ if (startCell === endCell) {
46
+ return undefined;
47
+ } // If cursor is between multiple blocks,
48
+ // we clear the content of the cells.
49
+
50
+
51
+ event.preventDefault();
52
+ var blocks = value.blocks; // Get all cells that contains the selection
53
+
54
+ var cells = blocks.map(function (node) {
55
+ return node.type === opts.typeCell ? node : document.getClosest(node.key, function (a) {
56
+ return a.type === opts.typeCell;
57
+ });
58
+ }).toSet(); // If the cursor is at the very end of the first cell, ignore it.
59
+ // If the cursor is at the very start of the last cell, ignore it.
60
+ // This behavior is to compensate hanging selection behaviors:
61
+ // https://github.com/ianstormtaylor/slate/pull/1605
62
+
63
+ var ignoreFirstCell = value.selection.collapseToStart().isAtEndOf(cells.first());
64
+ var ignoreLastCell = value.selection.collapseToEnd().isAtStartOf(cells.last());
65
+ var cellsToClear = cells;
66
+
67
+ if (ignoreFirstCell) {
68
+ cellsToClear = cellsToClear.rest();
69
+ }
70
+
71
+ if (ignoreLastCell) {
72
+ cellsToClear = cellsToClear.butLast();
73
+ } // Clear all the selection
74
+
75
+
76
+ cellsToClear.forEach(function (cell) {
77
+ return (0, _changes.clearCell)(opts, change, cell);
78
+ }); // Update the selection properly, and avoid reset of selection
79
+
80
+ var updatedStartCell = change.value.document.getDescendant(cellsToClear.first().key);
81
+ return change.collapseToStartOf(updatedStartCell);
82
+ }
83
+
84
+ var KEY_ENTER = 'Enter';
85
+ var KEY_TAB = 'Tab';
86
+ var KEY_BACKSPACE = 'Backspace';
87
+ var KEY_DOWN = 'ArrowDown';
88
+ var KEY_UP = 'ArrowUp';
89
+ /**
90
+ * User is pressing a key in the editor
91
+ */
92
+
93
+ function onKeyDown(opts, event, change, editor) {
94
+ // Only handle events in cells
95
+ if (!(0, _utils.isSelectionInTable)(opts, change.value)) {
96
+ return undefined;
97
+ } // Build arguments list
98
+
99
+
100
+ var args = [event, change, editor, opts];
101
+
102
+ switch (event.key) {
103
+ case KEY_ENTER:
104
+ if (event.metaKey && opts.exitBlockType) {
105
+ return _handlers.onModEnter.apply(void 0, args);
106
+ }
107
+
108
+ return _handlers.onEnter.apply(void 0, args);
109
+
110
+ case KEY_TAB:
111
+ return _handlers.onTab.apply(void 0, args);
112
+
113
+ case KEY_BACKSPACE:
114
+ return onBackspace.apply(void 0, args);
115
+
116
+ case KEY_DOWN:
117
+ case KEY_UP:
118
+ return _handlers.onUpDown.apply(void 0, args);
119
+
120
+ default:
121
+ return undefined;
122
+ }
123
+ }
124
+
125
+ var _default = function _default(opts) {
126
+ var core = (0, _slateEditTable["default"])(opts);
127
+ var tableOpts = new _options["default"](opts);
128
+ core.onKeyDown = onKeyDown.bind(null, tableOpts);
129
+ return core;
130
+ };
131
+
132
+ exports["default"] = _default;
133
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3RhYmxlL0N1c3RvbVRhYmxlUGx1Z2luLmpzIl0sIm5hbWVzIjpbIm9uQmFja3NwYWNlIiwiZXZlbnQiLCJjaGFuZ2UiLCJlZGl0b3IiLCJvcHRzIiwidmFsdWUiLCJzdGFydEJsb2NrIiwiZW5kQmxvY2siLCJzZWxlY3Rpb24iLCJkb2N1bWVudCIsInN0YXJ0Q2VsbCIsImdldENsb3Nlc3QiLCJrZXkiLCJpc0NlbGwiLCJlbmRDZWxsIiwic3RhcnRCbG9ja0luZGV4Iiwibm9kZXMiLCJmaW5kSW5kZXgiLCJibG9jayIsImlzQXRTdGFydE9mIiwiaXNWb2lkIiwidW5kZWZpbmVkIiwicHJldmVudERlZmF1bHQiLCJibG9ja3MiLCJjZWxscyIsIm1hcCIsIm5vZGUiLCJ0eXBlIiwidHlwZUNlbGwiLCJhIiwidG9TZXQiLCJpZ25vcmVGaXJzdENlbGwiLCJjb2xsYXBzZVRvU3RhcnQiLCJpc0F0RW5kT2YiLCJmaXJzdCIsImlnbm9yZUxhc3RDZWxsIiwiY29sbGFwc2VUb0VuZCIsImxhc3QiLCJjZWxsc1RvQ2xlYXIiLCJyZXN0IiwiYnV0TGFzdCIsImZvckVhY2giLCJjZWxsIiwidXBkYXRlZFN0YXJ0Q2VsbCIsImdldERlc2NlbmRhbnQiLCJjb2xsYXBzZVRvU3RhcnRPZiIsIktFWV9FTlRFUiIsIktFWV9UQUIiLCJLRVlfQkFDS1NQQUNFIiwiS0VZX0RPV04iLCJLRVlfVVAiLCJvbktleURvd24iLCJhcmdzIiwibWV0YUtleSIsImV4aXRCbG9ja1R5cGUiLCJvbk1vZEVudGVyIiwib25FbnRlciIsIm9uVGFiIiwib25VcERvd24iLCJjb3JlIiwidGFibGVPcHRzIiwiVGFibGVPcHRpb25zIiwiYmluZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsU0FBU0EsV0FBVCxDQUFxQkMsS0FBckIsRUFBNEJDLE1BQTVCLEVBQW9DQyxNQUFwQyxFQUE0Q0MsSUFBNUMsRUFBa0Q7QUFBQTs7QUFDaEQsTUFBUUMsS0FBUixHQUFrQkgsTUFBbEIsQ0FBUUcsS0FBUjtBQUNBLE1BQVFDLFVBQVIsR0FBc0RELEtBQXRELENBQVFDLFVBQVI7QUFBQSxNQUFvQkMsUUFBcEIsR0FBc0RGLEtBQXRELENBQW9CRSxRQUFwQjtBQUFBLE1BQThCQyxTQUE5QixHQUFzREgsS0FBdEQsQ0FBOEJHLFNBQTlCO0FBQUEsTUFBeUNDLFFBQXpDLEdBQXNESixLQUF0RCxDQUF5Q0ksUUFBekM7QUFFQSxNQUFNQyxTQUFTLEdBQUdELFFBQVEsQ0FBQ0UsVUFBVCxDQUFvQkwsVUFBVSxDQUFDTSxHQUEvQixFQUFvQ1IsSUFBSSxDQUFDUyxNQUF6QyxDQUFsQjtBQUNBLE1BQU1DLE9BQU8sR0FBR0wsUUFBUSxDQUFDRSxVQUFULENBQW9CSixRQUFRLENBQUNLLEdBQTdCLEVBQWtDUixJQUFJLENBQUNTLE1BQXZDLENBQWhCO0FBRUEsTUFBTUUsZUFBZSxHQUFHTCxTQUFILGFBQUdBLFNBQUgsMkNBQUdBLFNBQVMsQ0FBRU0sS0FBZCxxREFBRyxpQkFBa0JDLFNBQWxCLENBQTRCLFVBQUNDLEtBQUQ7QUFBQSxXQUFXQSxLQUFLLENBQUNOLEdBQU4sSUFBYU4sVUFBVSxDQUFDTSxHQUFuQztBQUFBLEdBQTVCLENBQXhCLENBUGdELENBU2hEOztBQUNBLE1BQUlHLGVBQWUsS0FBSyxDQUFwQixJQUF5QlAsU0FBUyxDQUFDVyxXQUFWLENBQXNCYixVQUF0QixDQUE3QixFQUFnRTtBQUM5RCxRQUFJQSxVQUFVLENBQUNjLE1BQWYsRUFBdUI7QUFDckI7QUFDQSxhQUFPQyxTQUFQO0FBQ0Q7O0FBRURwQixJQUFBQSxLQUFLLENBQUNxQixjQUFOO0FBQ0EsV0FBT3BCLE1BQVA7QUFDRCxHQWxCK0MsQ0FvQmhEOzs7QUFDQSxNQUFJUSxTQUFTLEtBQUtJLE9BQWxCLEVBQTJCO0FBQ3pCLFdBQU9PLFNBQVA7QUFDRCxHQXZCK0MsQ0F5QmhEO0FBQ0E7OztBQUNBcEIsRUFBQUEsS0FBSyxDQUFDcUIsY0FBTjtBQUVBLE1BQVFDLE1BQVIsR0FBbUJsQixLQUFuQixDQUFRa0IsTUFBUixDQTdCZ0QsQ0ErQmhEOztBQUNBLE1BQU1DLEtBQUssR0FBR0QsTUFBTSxDQUNqQkUsR0FEVyxDQUNQLFVBQUNDLElBQUQ7QUFBQSxXQUNIQSxJQUFJLENBQUNDLElBQUwsS0FBY3ZCLElBQUksQ0FBQ3dCLFFBQW5CLEdBQThCRixJQUE5QixHQUFxQ2pCLFFBQVEsQ0FBQ0UsVUFBVCxDQUFvQmUsSUFBSSxDQUFDZCxHQUF6QixFQUE4QixVQUFDaUIsQ0FBRDtBQUFBLGFBQU9BLENBQUMsQ0FBQ0YsSUFBRixLQUFXdkIsSUFBSSxDQUFDd0IsUUFBdkI7QUFBQSxLQUE5QixDQURsQztBQUFBLEdBRE8sRUFJWEUsS0FKVyxFQUFkLENBaENnRCxDQXNDaEQ7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHMUIsS0FBSyxDQUFDRyxTQUFOLENBQWdCd0IsZUFBaEIsR0FBa0NDLFNBQWxDLENBQTRDVCxLQUFLLENBQUNVLEtBQU4sRUFBNUMsQ0FBeEI7QUFDQSxNQUFNQyxjQUFjLEdBQUc5QixLQUFLLENBQUNHLFNBQU4sQ0FBZ0I0QixhQUFoQixHQUFnQ2pCLFdBQWhDLENBQTRDSyxLQUFLLENBQUNhLElBQU4sRUFBNUMsQ0FBdkI7QUFFQSxNQUFJQyxZQUFZLEdBQUdkLEtBQW5COztBQUNBLE1BQUlPLGVBQUosRUFBcUI7QUFDbkJPLElBQUFBLFlBQVksR0FBR0EsWUFBWSxDQUFDQyxJQUFiLEVBQWY7QUFDRDs7QUFDRCxNQUFJSixjQUFKLEVBQW9CO0FBQ2xCRyxJQUFBQSxZQUFZLEdBQUdBLFlBQVksQ0FBQ0UsT0FBYixFQUFmO0FBQ0QsR0FuRCtDLENBcURoRDs7O0FBQ0FGLEVBQUFBLFlBQVksQ0FBQ0csT0FBYixDQUFxQixVQUFDQyxJQUFEO0FBQUEsV0FBVSx3QkFBVXRDLElBQVYsRUFBZ0JGLE1BQWhCLEVBQXdCd0MsSUFBeEIsQ0FBVjtBQUFBLEdBQXJCLEVBdERnRCxDQXdEaEQ7O0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUd6QyxNQUFNLENBQUNHLEtBQVAsQ0FBYUksUUFBYixDQUFzQm1DLGFBQXRCLENBQW9DTixZQUFZLENBQUNKLEtBQWIsR0FBcUJ0QixHQUF6RCxDQUF6QjtBQUNBLFNBQU9WLE1BQU0sQ0FBQzJDLGlCQUFQLENBQXlCRixnQkFBekIsQ0FBUDtBQUNEOztBQUVELElBQU1HLFNBQVMsR0FBRyxPQUFsQjtBQUNBLElBQU1DLE9BQU8sR0FBRyxLQUFoQjtBQUNBLElBQU1DLGFBQWEsR0FBRyxXQUF0QjtBQUNBLElBQU1DLFFBQVEsR0FBRyxXQUFqQjtBQUNBLElBQU1DLE1BQU0sR0FBRyxTQUFmO0FBRUE7QUFDQTtBQUNBOztBQUNBLFNBQVNDLFNBQVQsQ0FBbUIvQyxJQUFuQixFQUF5QkgsS0FBekIsRUFBZ0NDLE1BQWhDLEVBQXdDQyxNQUF4QyxFQUFnRDtBQUM5QztBQUNBLE1BQUksQ0FBQywrQkFBbUJDLElBQW5CLEVBQXlCRixNQUFNLENBQUNHLEtBQWhDLENBQUwsRUFBNkM7QUFDM0MsV0FBT2dCLFNBQVA7QUFDRCxHQUo2QyxDQU05Qzs7O0FBQ0EsTUFBTStCLElBQUksR0FBRyxDQUFDbkQsS0FBRCxFQUFRQyxNQUFSLEVBQWdCQyxNQUFoQixFQUF3QkMsSUFBeEIsQ0FBYjs7QUFFQSxVQUFRSCxLQUFLLENBQUNXLEdBQWQ7QUFDRSxTQUFLa0MsU0FBTDtBQUNFLFVBQUk3QyxLQUFLLENBQUNvRCxPQUFOLElBQWlCakQsSUFBSSxDQUFDa0QsYUFBMUIsRUFBeUM7QUFDdkMsZUFBT0MsbUNBQWNILElBQWQsQ0FBUDtBQUNEOztBQUNELGFBQU9JLGdDQUFXSixJQUFYLENBQVA7O0FBRUYsU0FBS0wsT0FBTDtBQUNFLGFBQU9VLDhCQUFTTCxJQUFULENBQVA7O0FBQ0YsU0FBS0osYUFBTDtBQUNFLGFBQU9oRCxXQUFXLE1BQVgsU0FBZW9ELElBQWYsQ0FBUDs7QUFDRixTQUFLSCxRQUFMO0FBQ0EsU0FBS0MsTUFBTDtBQUNFLGFBQU9RLGlDQUFZTixJQUFaLENBQVA7O0FBQ0Y7QUFDRSxhQUFPL0IsU0FBUDtBQWZKO0FBaUJEOztlQUVjLGtCQUFDakIsSUFBRCxFQUFVO0FBQ3ZCLE1BQU11RCxJQUFJLEdBQUcsZ0NBQVV2RCxJQUFWLENBQWI7QUFFQSxNQUFNd0QsU0FBUyxHQUFHLElBQUlDLG1CQUFKLENBQWlCekQsSUFBakIsQ0FBbEI7QUFFQXVELEVBQUFBLElBQUksQ0FBQ1IsU0FBTCxHQUFpQkEsU0FBUyxDQUFDVyxJQUFWLENBQWUsSUFBZixFQUFxQkYsU0FBckIsQ0FBakI7QUFFQSxTQUFPRCxJQUFQO0FBQ0QsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFZGl0VGFibGUgZnJvbSAnc2xhdGUtZWRpdC10YWJsZSc7XG5pbXBvcnQgeyBpc1NlbGVjdGlvbkluVGFibGUgfSBmcm9tICdzbGF0ZS1lZGl0LXRhYmxlL2Rpc3QvdXRpbHMnO1xuaW1wb3J0IHsgb25FbnRlciwgb25Nb2RFbnRlciwgb25UYWIsIG9uVXBEb3duIH0gZnJvbSAnc2xhdGUtZWRpdC10YWJsZS9kaXN0L2hhbmRsZXJzJztcbmltcG9ydCBUYWJsZU9wdGlvbnMgZnJvbSAnc2xhdGUtZWRpdC10YWJsZS9kaXN0L29wdGlvbnMnO1xuaW1wb3J0IHsgY2xlYXJDZWxsIH0gZnJvbSAnc2xhdGUtZWRpdC10YWJsZS9kaXN0L2NoYW5nZXMnO1xuXG5mdW5jdGlvbiBvbkJhY2tzcGFjZShldmVudCwgY2hhbmdlLCBlZGl0b3IsIG9wdHMpIHtcbiAgY29uc3QgeyB2YWx1ZSB9ID0gY2hhbmdlO1xuICBjb25zdCB7IHN0YXJ0QmxvY2ssIGVuZEJsb2NrLCBzZWxlY3Rpb24sIGRvY3VtZW50IH0gPSB2YWx1ZTtcblxuICBjb25zdCBzdGFydENlbGwgPSBkb2N1bWVudC5nZXRDbG9zZXN0KHN0YXJ0QmxvY2sua2V5LCBvcHRzLmlzQ2VsbCk7XG4gIGNvbnN0IGVuZENlbGwgPSBkb2N1bWVudC5nZXRDbG9zZXN0KGVuZEJsb2NrLmtleSwgb3B0cy5pc0NlbGwpO1xuXG4gIGNvbnN0IHN0YXJ0QmxvY2tJbmRleCA9IHN0YXJ0Q2VsbD8ubm9kZXM/LmZpbmRJbmRleCgoYmxvY2spID0+IGJsb2NrLmtleSA9PSBzdGFydEJsb2NrLmtleSk7XG5cbiAgLy8gSWYgYSBjdXJzb3IgaXMgY29sbGFwc2VkIGF0IHRoZSBzdGFydCBvZiB0aGUgZmlyc3QgYmxvY2ssIGRvIG5vdGhpbmdcbiAgaWYgKHN0YXJ0QmxvY2tJbmRleCA9PT0gMCAmJiBzZWxlY3Rpb24uaXNBdFN0YXJ0T2Yoc3RhcnRCbG9jaykpIHtcbiAgICBpZiAoc3RhcnRCbG9jay5pc1ZvaWQpIHtcbiAgICAgIC8vIERlbGV0ZSB0aGUgYmxvY2sgbm9ybWFsbHkgaWYgaXQgaXMgYSB2b2lkIGJsb2NrXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgcmV0dXJuIGNoYW5nZTtcbiAgfVxuXG4gIC8vIElmIFwibm9ybWFsXCIgZGVsZXRpb24sIHdlIGNvbnRpbnVlXG4gIGlmIChzdGFydENlbGwgPT09IGVuZENlbGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gSWYgY3Vyc29yIGlzIGJldHdlZW4gbXVsdGlwbGUgYmxvY2tzLFxuICAvLyB3ZSBjbGVhciB0aGUgY29udGVudCBvZiB0aGUgY2VsbHMuXG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgY29uc3QgeyBibG9ja3MgfSA9IHZhbHVlO1xuXG4gIC8vIEdldCBhbGwgY2VsbHMgdGhhdCBjb250YWlucyB0aGUgc2VsZWN0aW9uXG4gIGNvbnN0IGNlbGxzID0gYmxvY2tzXG4gICAgLm1hcCgobm9kZSkgPT5cbiAgICAgIG5vZGUudHlwZSA9PT0gb3B0cy50eXBlQ2VsbCA/IG5vZGUgOiBkb2N1bWVudC5nZXRDbG9zZXN0KG5vZGUua2V5LCAoYSkgPT4gYS50eXBlID09PSBvcHRzLnR5cGVDZWxsKSxcbiAgICApXG4gICAgLnRvU2V0KCk7XG5cbiAgLy8gSWYgdGhlIGN1cnNvciBpcyBhdCB0aGUgdmVyeSBlbmQgb2YgdGhlIGZpcnN0IGNlbGwsIGlnbm9yZSBpdC5cbiAgLy8gSWYgdGhlIGN1cnNvciBpcyBhdCB0aGUgdmVyeSBzdGFydCBvZiB0aGUgbGFzdCBjZWxsLCBpZ25vcmUgaXQuXG4gIC8vIFRoaXMgYmVoYXZpb3IgaXMgdG8gY29tcGVuc2F0ZSBoYW5naW5nIHNlbGVjdGlvbiBiZWhhdmlvcnM6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9pYW5zdG9ybXRheWxvci9zbGF0ZS9wdWxsLzE2MDVcbiAgY29uc3QgaWdub3JlRmlyc3RDZWxsID0gdmFsdWUuc2VsZWN0aW9uLmNvbGxhcHNlVG9TdGFydCgpLmlzQXRFbmRPZihjZWxscy5maXJzdCgpKTtcbiAgY29uc3QgaWdub3JlTGFzdENlbGwgPSB2YWx1ZS5zZWxlY3Rpb24uY29sbGFwc2VUb0VuZCgpLmlzQXRTdGFydE9mKGNlbGxzLmxhc3QoKSk7XG5cbiAgbGV0IGNlbGxzVG9DbGVhciA9IGNlbGxzO1xuICBpZiAoaWdub3JlRmlyc3RDZWxsKSB7XG4gICAgY2VsbHNUb0NsZWFyID0gY2VsbHNUb0NsZWFyLnJlc3QoKTtcbiAgfVxuICBpZiAoaWdub3JlTGFzdENlbGwpIHtcbiAgICBjZWxsc1RvQ2xlYXIgPSBjZWxsc1RvQ2xlYXIuYnV0TGFzdCgpO1xuICB9XG5cbiAgLy8gQ2xlYXIgYWxsIHRoZSBzZWxlY3Rpb25cbiAgY2VsbHNUb0NsZWFyLmZvckVhY2goKGNlbGwpID0+IGNsZWFyQ2VsbChvcHRzLCBjaGFuZ2UsIGNlbGwpKTtcblxuICAvLyBVcGRhdGUgdGhlIHNlbGVjdGlvbiBwcm9wZXJseSwgYW5kIGF2b2lkIHJlc2V0IG9mIHNlbGVjdGlvblxuICBjb25zdCB1cGRhdGVkU3RhcnRDZWxsID0gY2hhbmdlLnZhbHVlLmRvY3VtZW50LmdldERlc2NlbmRhbnQoY2VsbHNUb0NsZWFyLmZpcnN0KCkua2V5KTtcbiAgcmV0dXJuIGNoYW5nZS5jb2xsYXBzZVRvU3RhcnRPZih1cGRhdGVkU3RhcnRDZWxsKTtcbn1cblxuY29uc3QgS0VZX0VOVEVSID0gJ0VudGVyJztcbmNvbnN0IEtFWV9UQUIgPSAnVGFiJztcbmNvbnN0IEtFWV9CQUNLU1BBQ0UgPSAnQmFja3NwYWNlJztcbmNvbnN0IEtFWV9ET1dOID0gJ0Fycm93RG93bic7XG5jb25zdCBLRVlfVVAgPSAnQXJyb3dVcCc7XG5cbi8qKlxuICogVXNlciBpcyBwcmVzc2luZyBhIGtleSBpbiB0aGUgZWRpdG9yXG4gKi9cbmZ1bmN0aW9uIG9uS2V5RG93bihvcHRzLCBldmVudCwgY2hhbmdlLCBlZGl0b3IpIHtcbiAgLy8gT25seSBoYW5kbGUgZXZlbnRzIGluIGNlbGxzXG4gIGlmICghaXNTZWxlY3Rpb25JblRhYmxlKG9wdHMsIGNoYW5nZS52YWx1ZSkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gQnVpbGQgYXJndW1lbnRzIGxpc3RcbiAgY29uc3QgYXJncyA9IFtldmVudCwgY2hhbmdlLCBlZGl0b3IsIG9wdHNdO1xuXG4gIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgY2FzZSBLRVlfRU5URVI6XG4gICAgICBpZiAoZXZlbnQubWV0YUtleSAmJiBvcHRzLmV4aXRCbG9ja1R5cGUpIHtcbiAgICAgICAgcmV0dXJuIG9uTW9kRW50ZXIoLi4uYXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb25FbnRlciguLi5hcmdzKTtcblxuICAgIGNhc2UgS0VZX1RBQjpcbiAgICAgIHJldHVybiBvblRhYiguLi5hcmdzKTtcbiAgICBjYXNlIEtFWV9CQUNLU1BBQ0U6XG4gICAgICByZXR1cm4gb25CYWNrc3BhY2UoLi4uYXJncyk7XG4gICAgY2FzZSBLRVlfRE9XTjpcbiAgICBjYXNlIEtFWV9VUDpcbiAgICAgIHJldHVybiBvblVwRG93biguLi5hcmdzKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCAob3B0cykgPT4ge1xuICBjb25zdCBjb3JlID0gRWRpdFRhYmxlKG9wdHMpO1xuXG4gIGNvbnN0IHRhYmxlT3B0cyA9IG5ldyBUYWJsZU9wdGlvbnMob3B0cyk7XG5cbiAgY29yZS5vbktleURvd24gPSBvbktleURvd24uYmluZChudWxsLCB0YWJsZU9wdHMpO1xuXG4gIHJldHVybiBjb3JlO1xufTtcbiJdfQ==