@pie-lib/editable-html-tip-tap 1.0.20 → 1.0.21-next.6053

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 (101) hide show
  1. package/CHANGELOG.md +7 -73
  2. package/LICENSE.md +5 -0
  3. package/NEXT.CHANGELOG.json +1 -0
  4. package/lib/components/CharacterPicker.js +20 -60
  5. package/lib/components/CharacterPicker.js.map +1 -1
  6. package/lib/components/EditableHtml.js +50 -121
  7. package/lib/components/EditableHtml.js.map +1 -1
  8. package/lib/components/MenuBar.js +96 -128
  9. package/lib/components/MenuBar.js.map +1 -1
  10. package/lib/components/TiptapContainer.js +162 -45
  11. package/lib/components/TiptapContainer.js.map +1 -1
  12. package/lib/components/characters/characterUtils.js +4 -7
  13. package/lib/components/characters/characterUtils.js.map +1 -1
  14. package/lib/components/characters/custom-popper.js +22 -51
  15. package/lib/components/characters/custom-popper.js.map +1 -1
  16. package/lib/components/common/done-button.js +17 -36
  17. package/lib/components/common/done-button.js.map +1 -1
  18. package/lib/components/common/toolbar-buttons.js +57 -107
  19. package/lib/components/common/toolbar-buttons.js.map +1 -1
  20. package/lib/components/icons/CssIcon.js +14 -26
  21. package/lib/components/icons/CssIcon.js.map +1 -1
  22. package/lib/components/icons/RespArea.js +23 -46
  23. package/lib/components/icons/RespArea.js.map +1 -1
  24. package/lib/components/icons/TableIcons.js +20 -36
  25. package/lib/components/icons/TableIcons.js.map +1 -1
  26. package/lib/components/icons/TextAlign.js +16 -53
  27. package/lib/components/icons/TextAlign.js.map +1 -1
  28. package/lib/components/image/AltDialog.js +18 -49
  29. package/lib/components/image/AltDialog.js.map +1 -1
  30. package/lib/components/image/ImageToolbar.js +50 -90
  31. package/lib/components/image/ImageToolbar.js.map +1 -1
  32. package/lib/components/image/InsertImageHandler.js +17 -35
  33. package/lib/components/image/InsertImageHandler.js.map +1 -1
  34. package/lib/components/media/MediaDialog.js +195 -309
  35. package/lib/components/media/MediaDialog.js.map +1 -1
  36. package/lib/components/media/MediaToolbar.js +39 -66
  37. package/lib/components/media/MediaToolbar.js.map +1 -1
  38. package/lib/components/media/MediaWrapper.js +30 -56
  39. package/lib/components/media/MediaWrapper.js.map +1 -1
  40. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +21 -36
  41. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -1
  42. package/lib/components/respArea/DragInTheBlank/choice.js +215 -262
  43. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
  44. package/lib/components/respArea/ExplicitConstructedResponse.js +11 -33
  45. package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -1
  46. package/lib/components/respArea/InlineDropdown.js +19 -41
  47. package/lib/components/respArea/InlineDropdown.js.map +1 -1
  48. package/lib/components/respArea/ToolbarIcon.js +21 -45
  49. package/lib/components/respArea/ToolbarIcon.js.map +1 -1
  50. package/lib/constants.js +3 -5
  51. package/lib/constants.js.map +1 -1
  52. package/lib/extensions/component.js +94 -148
  53. package/lib/extensions/component.js.map +1 -1
  54. package/lib/extensions/css.js +9 -44
  55. package/lib/extensions/css.js.map +1 -1
  56. package/lib/extensions/custom-toolbar-wrapper.js +66 -94
  57. package/lib/extensions/custom-toolbar-wrapper.js.map +1 -1
  58. package/lib/extensions/extended-table.js +2 -6
  59. package/lib/extensions/extended-table.js.map +1 -1
  60. package/lib/extensions/image.js +4 -17
  61. package/lib/extensions/image.js.map +1 -1
  62. package/lib/extensions/index.js +11 -21
  63. package/lib/extensions/index.js.map +1 -1
  64. package/lib/extensions/math.js +45 -96
  65. package/lib/extensions/math.js.map +1 -1
  66. package/lib/extensions/media.js +21 -59
  67. package/lib/extensions/media.js.map +1 -1
  68. package/lib/extensions/responseArea.js +43 -89
  69. package/lib/extensions/responseArea.js.map +1 -1
  70. package/lib/index.js +3 -11
  71. package/lib/index.js.map +1 -1
  72. package/lib/styles/editorContainerStyles.js +2 -7
  73. package/lib/styles/editorContainerStyles.js.map +1 -1
  74. package/lib/theme.js +2 -3
  75. package/lib/theme.js.map +1 -1
  76. package/lib/utils/size.js +2 -10
  77. package/lib/utils/size.js.map +1 -1
  78. package/package.json +15 -13
  79. package/src/components/EditableHtml.jsx +21 -33
  80. package/src/components/MenuBar.jsx +66 -37
  81. package/src/components/TiptapContainer.jsx +133 -34
  82. package/src/components/characters/custom-popper.js +18 -28
  83. package/src/components/common/done-button.jsx +15 -26
  84. package/src/components/common/toolbar-buttons.jsx +28 -44
  85. package/src/components/icons/CssIcon.jsx +11 -13
  86. package/src/components/icons/RespArea.jsx +16 -16
  87. package/src/components/icons/TableIcons.jsx +15 -16
  88. package/src/components/icons/TextAlign.jsx +3 -3
  89. package/src/components/image/AltDialog.jsx +6 -6
  90. package/src/components/image/ImageToolbar.jsx +28 -29
  91. package/src/components/media/MediaDialog.js +61 -78
  92. package/src/components/media/MediaToolbar.jsx +30 -37
  93. package/src/components/media/MediaWrapper.jsx +12 -16
  94. package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +5 -4
  95. package/src/components/respArea/DragInTheBlank/choice.jsx +191 -185
  96. package/src/components/respArea/ToolbarIcon.jsx +13 -15
  97. package/src/extensions/component.jsx +61 -89
  98. package/src/extensions/css.js +6 -5
  99. package/src/extensions/custom-toolbar-wrapper.jsx +61 -81
  100. package/lib/__tests__/utils.js +0 -106
  101. package/src/__tests__/utils.js +0 -36
@@ -1,27 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.ImageUploadNode = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _core = require("@tiptap/core");
13
-
14
10
  var _react = require("@tiptap/react");
15
-
16
11
  var _react2 = _interopRequireDefault(require("react"));
17
-
18
12
  var _component = _interopRequireDefault(require("./component"));
19
-
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
-
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
-
24
- var ImageUploadNode = _core.Node.create({
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ var ImageUploadNode = exports.ImageUploadNode = _core.Node.create({
25
16
  name: 'imageUploadNode',
26
17
  group: 'block',
27
18
  atom: true,
@@ -71,7 +62,6 @@ var ImageUploadNode = _core.Node.create({
71
62
  },
72
63
  addNodeView: function addNodeView() {
73
64
  var _this = this;
74
-
75
65
  return (0, _react.ReactNodeViewRenderer)(function (props) {
76
66
  return /*#__PURE__*/_react2["default"].createElement(_component["default"], _objectSpread(_objectSpread({}, props), {}, {
77
67
  options: _this.options
@@ -80,7 +70,6 @@ var ImageUploadNode = _core.Node.create({
80
70
  },
81
71
  addCommands: function addCommands() {
82
72
  var _this2 = this;
83
-
84
73
  return {
85
74
  setImageUploadNode: function setImageUploadNode() {
86
75
  return function (_ref2) {
@@ -93,6 +82,4 @@ var ImageUploadNode = _core.Node.create({
93
82
  };
94
83
  }
95
84
  });
96
-
97
- exports.ImageUploadNode = ImageUploadNode;
98
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2ltYWdlLmpzIl0sIm5hbWVzIjpbIkltYWdlVXBsb2FkTm9kZSIsIk5vZGUiLCJjcmVhdGUiLCJuYW1lIiwiZ3JvdXAiLCJhdG9tIiwic2VsZWN0YWJsZSIsImRyYWdnYWJsZSIsImFkZEF0dHJpYnV0ZXMiLCJsb2FkZWQiLCJkZWxldGVTdGF0dXMiLCJhbGlnbm1lbnQiLCJwZXJjZW50Iiwid2lkdGgiLCJoZWlnaHQiLCJzcmMiLCJhbHQiLCJwYXJzZUhUTUwiLCJ0YWciLCJyZW5kZXJIVE1MIiwiSFRNTEF0dHJpYnV0ZXMiLCJhZGROb2RlVmlldyIsInByb3BzIiwib3B0aW9ucyIsImFkZENvbW1hbmRzIiwic2V0SW1hZ2VVcGxvYWROb2RlIiwiY29tbWFuZHMiLCJpbnNlcnRDb250ZW50IiwidHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRU8sSUFBTUEsZUFBZSxHQUFHQyxXQUFLQyxNQUFMLENBQVk7QUFDekNDLEVBQUFBLElBQUksRUFBRSxpQkFEbUM7QUFHekNDLEVBQUFBLEtBQUssRUFBRSxPQUhrQztBQUl6Q0MsRUFBQUEsSUFBSSxFQUFFLElBSm1DO0FBSTdCO0FBQ1pDLEVBQUFBLFVBQVUsRUFBRSxJQUw2QjtBQUt2QjtBQUNsQkMsRUFBQUEsU0FBUyxFQUFFLElBTjhCO0FBTXhCO0FBRWpCQyxFQUFBQSxhQVJ5QywyQkFRekI7QUFDZCxXQUFPO0FBQ0xDLE1BQUFBLE1BQU0sRUFBRTtBQUFFLG1CQUFTO0FBQVgsT0FESDtBQUVMQyxNQUFBQSxZQUFZLEVBQUU7QUFBRSxtQkFBUztBQUFYLE9BRlQ7QUFHTEMsTUFBQUEsU0FBUyxFQUFFO0FBQUUsbUJBQVM7QUFBWCxPQUhOO0FBSUxDLE1BQUFBLE9BQU8sRUFBRTtBQUFFLG1CQUFTO0FBQVgsT0FKSjtBQUtMQyxNQUFBQSxLQUFLLEVBQUU7QUFBRSxtQkFBUztBQUFYLE9BTEY7QUFNTEMsTUFBQUEsTUFBTSxFQUFFO0FBQUUsbUJBQVM7QUFBWCxPQU5IO0FBT0xDLE1BQUFBLEdBQUcsRUFBRTtBQUFFLG1CQUFTO0FBQVgsT0FQQTtBQVFMQyxNQUFBQSxHQUFHLEVBQUU7QUFBRSxtQkFBUztBQUFYO0FBUkEsS0FBUDtBQVVELEdBbkJ3QztBQXFCekNDLEVBQUFBLFNBckJ5Qyx1QkFxQjdCO0FBQ1YsV0FBTyxDQUNMO0FBQ0VDLE1BQUFBLEdBQUcsRUFBRTtBQURQLEtBREssQ0FBUDtBQUtELEdBM0J3QztBQTZCekNDLEVBQUFBLFVBN0J5Qyw0QkE2QlY7QUFBQSxRQUFsQkMsY0FBa0IsUUFBbEJBLGNBQWtCO0FBQzdCLFdBQU8sQ0FBQyxLQUFELEVBQVEsMkJBQWdCQSxjQUFoQixFQUFnQztBQUFFLG1CQUFhO0FBQWYsS0FBaEMsQ0FBUixDQUFQO0FBQ0QsR0EvQndDO0FBaUN6Q0MsRUFBQUEsV0FqQ3lDLHlCQWlDM0I7QUFBQTs7QUFDWixXQUFPLGtDQUFzQixVQUFDQyxLQUFEO0FBQUEsMEJBQVcsaUNBQUMscUJBQUQsa0NBQXlCQSxLQUF6QjtBQUFnQ0MsUUFBQUEsT0FBTyxFQUFFLEtBQUksQ0FBQ0E7QUFBOUMsU0FBWDtBQUFBLEtBQXRCLENBQVA7QUFDRCxHQW5Dd0M7QUFxQ3pDQyxFQUFBQSxXQXJDeUMseUJBcUMzQjtBQUFBOztBQUNaLFdBQU87QUFDTEMsTUFBQUEsa0JBQWtCLEVBQUU7QUFBQSxlQUFNLGlCQUFrQjtBQUFBLGNBQWZDLFFBQWUsU0FBZkEsUUFBZTtBQUMxQyxpQkFBT0EsUUFBUSxDQUFDQyxhQUFULENBQXVCO0FBQzVCQyxZQUFBQSxJQUFJLEVBQUUsTUFBSSxDQUFDekI7QUFEaUIsV0FBdkIsQ0FBUDtBQUdELFNBSm1CO0FBQUE7QUFEZixLQUFQO0FBT0Q7QUE3Q3dDLENBQVosQ0FBeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlLCBtZXJnZUF0dHJpYnV0ZXMgfSBmcm9tICdAdGlwdGFwL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3ROb2RlVmlld1JlbmRlcmVyIH0gZnJvbSAnQHRpcHRhcC9yZWFjdCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEltYWdlQ29tcG9uZW50IGZyb20gJy4vY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IEltYWdlVXBsb2FkTm9kZSA9IE5vZGUuY3JlYXRlKHtcbiAgbmFtZTogJ2ltYWdlVXBsb2FkTm9kZScsXG5cbiAgZ3JvdXA6ICdibG9jaycsXG4gIGF0b206IHRydWUsIC8vIOKchSBwcmV2ZW50cyBjb250ZW50IGhvbGVzXG4gIHNlbGVjdGFibGU6IHRydWUsIC8vIG9wdGlvbmFsXG4gIGRyYWdnYWJsZTogdHJ1ZSwgLy8gb3B0aW9uYWxcblxuICBhZGRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBsb2FkZWQ6IHsgZGVmYXVsdDogZmFsc2UgfSxcbiAgICAgIGRlbGV0ZVN0YXR1czogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICBhbGlnbm1lbnQ6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgcGVyY2VudDogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICB3aWR0aDogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICBoZWlnaHQ6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgc3JjOiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIGFsdDogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgfTtcbiAgfSxcblxuICBwYXJzZUhUTUwoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdGFnOiAnZGl2W2RhdGEtdHlwZT1cImltYWdlLXVwbG9hZC1ub2RlXCJdJyxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcblxuICByZW5kZXJIVE1MKHsgSFRNTEF0dHJpYnV0ZXMgfSkge1xuICAgIHJldHVybiBbJ2ltZycsIG1lcmdlQXR0cmlidXRlcyhIVE1MQXR0cmlidXRlcywgeyAnZGF0YS10eXBlJzogJ2ltYWdlLXVwbG9hZC1ub2RlJyB9KV07XG4gIH0sXG5cbiAgYWRkTm9kZVZpZXcoKSB7XG4gICAgcmV0dXJuIFJlYWN0Tm9kZVZpZXdSZW5kZXJlcigocHJvcHMpID0+IDxJbWFnZUNvbXBvbmVudCB7Li4ueyAuLi5wcm9wcywgb3B0aW9uczogdGhpcy5vcHRpb25zIH19IC8+KTtcbiAgfSxcblxuICBhZGRDb21tYW5kcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2V0SW1hZ2VVcGxvYWROb2RlOiAoKSA9PiAoeyBjb21tYW5kcyB9KSA9PiB7XG4gICAgICAgIHJldHVybiBjb21tYW5kcy5pbnNlcnRDb250ZW50KHtcbiAgICAgICAgICB0eXBlOiB0aGlzLm5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG4iXX0=
85
+ //# sourceMappingURL=image.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/extensions/image.js"],"names":["ImageUploadNode","Node","create","name","group","atom","selectable","draggable","addAttributes","loaded","deleteStatus","alignment","percent","width","height","src","alt","parseHTML","tag","renderHTML","HTMLAttributes","addNodeView","props","options","addCommands","setImageUploadNode","commands","insertContent","type"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEO,IAAMA,eAAe,GAAGC,WAAKC,MAAL,CAAY;AACzCC,EAAAA,IAAI,EAAE,iBADmC;AAGzCC,EAAAA,KAAK,EAAE,OAHkC;AAIzCC,EAAAA,IAAI,EAAE,IAJmC;AAI7B;AACZC,EAAAA,UAAU,EAAE,IAL6B;AAKvB;AAClBC,EAAAA,SAAS,EAAE,IAN8B;AAMxB;AAEjBC,EAAAA,aARyC,2BAQzB;AACd,WAAO;AACLC,MAAAA,MAAM,EAAE;AAAE,mBAAS;AAAX,OADH;AAELC,MAAAA,YAAY,EAAE;AAAE,mBAAS;AAAX,OAFT;AAGLC,MAAAA,SAAS,EAAE;AAAE,mBAAS;AAAX,OAHN;AAILC,MAAAA,OAAO,EAAE;AAAE,mBAAS;AAAX,OAJJ;AAKLC,MAAAA,KAAK,EAAE;AAAE,mBAAS;AAAX,OALF;AAMLC,MAAAA,MAAM,EAAE;AAAE,mBAAS;AAAX,OANH;AAOLC,MAAAA,GAAG,EAAE;AAAE,mBAAS;AAAX,OAPA;AAQLC,MAAAA,GAAG,EAAE;AAAE,mBAAS;AAAX;AARA,KAAP;AAUD,GAnBwC;AAqBzCC,EAAAA,SArByC,uBAqB7B;AACV,WAAO,CACL;AACEC,MAAAA,GAAG,EAAE;AADP,KADK,CAAP;AAKD,GA3BwC;AA6BzCC,EAAAA,UA7ByC,4BA6BV;AAAA,QAAlBC,cAAkB,QAAlBA,cAAkB;AAC7B,WAAO,CAAC,KAAD,EAAQ,2BAAgBA,cAAhB,EAAgC;AAAE,mBAAa;AAAf,KAAhC,CAAR,CAAP;AACD,GA/BwC;AAiCzCC,EAAAA,WAjCyC,yBAiC3B;AAAA;;AACZ,WAAO,kCAAsB,UAACC,KAAD;AAAA,0BAAW,iCAAC,qBAAD,kCAAyBA,KAAzB;AAAgCC,QAAAA,OAAO,EAAE,KAAI,CAACA;AAA9C,SAAX;AAAA,KAAtB,CAAP;AACD,GAnCwC;AAqCzCC,EAAAA,WArCyC,yBAqC3B;AAAA;;AACZ,WAAO;AACLC,MAAAA,kBAAkB,EAAE;AAAA,eAAM,iBAAkB;AAAA,cAAfC,QAAe,SAAfA,QAAe;AAC1C,iBAAOA,QAAQ,CAACC,aAAT,CAAuB;AAC5BC,YAAAA,IAAI,EAAE,MAAI,CAACzB;AADiB,WAAvB,CAAP;AAGD,SAJmB;AAAA;AADf,KAAP;AAOD;AA7CwC,CAAZ,CAAxB","sourcesContent":["import { Node, mergeAttributes } from '@tiptap/core';\nimport { ReactNodeViewRenderer } from '@tiptap/react';\nimport React from 'react';\nimport ImageComponent from './component';\n\nexport const ImageUploadNode = Node.create({\n name: 'imageUploadNode',\n\n group: 'block',\n atom: true, // ✅ prevents content holes\n selectable: true, // optional\n draggable: true, // optional\n\n addAttributes() {\n return {\n loaded: { default: false },\n deleteStatus: { default: null },\n alignment: { default: null },\n percent: { default: null },\n width: { default: null },\n height: { default: null },\n src: { default: null },\n alt: { default: null },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"image-upload-node\"]',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['img', mergeAttributes(HTMLAttributes, { 'data-type': 'image-upload-node' })];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <ImageComponent {...{ ...props, options: this.options }} />);\n },\n\n addCommands() {\n return {\n setImageUploadNode: () => ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n });\n },\n };\n },\n});\n"],"file":"image.js"}
1
+ {"version":3,"file":"image.js","names":["_core","require","_react","_react2","_interopRequireDefault","_component","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","ImageUploadNode","exports","Node","create","name","group","atom","selectable","draggable","addAttributes","loaded","deleteStatus","alignment","percent","width","height","src","alt","parseHTML","tag","renderHTML","_ref","HTMLAttributes","mergeAttributes","addNodeView","_this","ReactNodeViewRenderer","props","createElement","options","addCommands","_this2","setImageUploadNode","_ref2","commands","insertContent","type"],"sources":["../../src/extensions/image.js"],"sourcesContent":["import { Node, mergeAttributes } from '@tiptap/core';\nimport { ReactNodeViewRenderer } from '@tiptap/react';\nimport React from 'react';\nimport ImageComponent from './component';\n\nexport const ImageUploadNode = Node.create({\n name: 'imageUploadNode',\n\n group: 'block',\n atom: true, // ✅ prevents content holes\n selectable: true, // optional\n draggable: true, // optional\n\n addAttributes() {\n return {\n loaded: { default: false },\n deleteStatus: { default: null },\n alignment: { default: null },\n percent: { default: null },\n width: { default: null },\n height: { default: null },\n src: { default: null },\n alt: { default: null },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"image-upload-node\"]',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['img', mergeAttributes(HTMLAttributes, { 'data-type': 'image-upload-node' })];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <ImageComponent {...{ ...props, options: this.options }} />);\n },\n\n addCommands() {\n return {\n setImageUploadNode: () => ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n });\n },\n };\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,52 +1,42 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.buildExtensions = exports.DEFAULT_EXTENSIONS = exports.ALL_PLUGINS = void 0;
9
-
10
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
9
  var _react = _interopRequireDefault(require("react"));
13
-
14
10
  var _compact = _interopRequireDefault(require("lodash/compact"));
15
-
16
11
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
17
-
18
12
  var _debug = _interopRequireDefault(require("debug"));
19
-
20
13
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins');
21
- var ALL_PLUGINS = ['bold', // 'code',
14
+ var ALL_PLUGINS = exports.ALL_PLUGINS = ['bold',
15
+ // 'code',
22
16
  'html', 'extraCSSRules', 'italic', 'underline', 'strikethrough', 'bulleted-list', 'numbered-list', 'image', 'math', 'languageCharacters', 'text-align', 'blockquote', 'h3', 'table', 'video', 'audio', 'responseArea', 'redo', 'undo', 'superscript', 'subscript'];
23
- exports.ALL_PLUGINS = ALL_PLUGINS;
24
- var DEFAULT_EXTENSIONS = ALL_PLUGINS.filter(function (plug) {
17
+ var DEFAULT_EXTENSIONS = exports.DEFAULT_EXTENSIONS = ALL_PLUGINS.filter(function (plug) {
25
18
  return !['responseArea', 'h3', 'blockquote'].includes(plug);
26
19
  });
27
- exports.DEFAULT_EXTENSIONS = DEFAULT_EXTENSIONS;
28
-
29
- var buildExtensions = function buildExtensions(activeExtensions, customExtensions, opts) {
20
+ var buildExtensions = exports.buildExtensions = function buildExtensions(activeExtensions, customExtensions, opts) {
30
21
  log('[buildPlugins] opts: ', opts);
31
22
  activeExtensions = activeExtensions || DEFAULT_EXTENSIONS;
32
-
33
23
  var addIf = function addIf(key) {
34
24
  var shouldAdd = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
35
25
  return activeExtensions.includes(key) && shouldAdd && key;
36
26
  };
37
-
38
27
  var imagePlugin = opts.image && opts.image.onDelete;
39
28
  var mathPlugin = opts.math;
40
29
  var respAreaPlugin = opts.responseArea && opts.responseArea.type;
41
30
  var cssPlugin = !(0, _isEmpty["default"])(opts.extraCSSRules);
42
31
  var languageCharactersPlugins = (opts === null || opts === void 0 ? void 0 : opts.languageCharacters) || [];
43
- return (0, _compact["default"])([addIf('table'), addIf('bold'), // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),
44
- addIf('italic'), addIf('strikethrough'), addIf('underline'), // icon should be modifies accordingly
45
- addIf('superscript'), // icon should be modifies accordingly
32
+ return (0, _compact["default"])([addIf('table'), addIf('bold'),
33
+ // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),
34
+ addIf('italic'), addIf('strikethrough'), addIf('underline'),
35
+ // icon should be modifies accordingly
36
+ addIf('superscript'),
37
+ // icon should be modifies accordingly
46
38
  addIf('subscript'), addIf('image', !!imagePlugin), addIf('video'), addIf('audio'), addIf('math', !!mathPlugin)].concat((0, _toConsumableArray2["default"])(languageCharactersPlugins.map(function (plugin) {
47
39
  return addIf('languageCharacters', plugin);
48
40
  })), [addIf('text-align'), addIf('blockquote'), addIf('h3'), addIf('bulleted-list'), addIf('numbered-list'), addIf('undo'), addIf('redo'), addIf('responseArea', !!respAreaPlugin), addIf('css', !!cssPlugin), addIf('html', !!opts.html)]));
49
41
  };
50
-
51
- exports.buildExtensions = buildExtensions;
52
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2luZGV4LmpzIl0sIm5hbWVzIjpbImxvZyIsIkFMTF9QTFVHSU5TIiwiREVGQVVMVF9FWFRFTlNJT05TIiwiZmlsdGVyIiwicGx1ZyIsImluY2x1ZGVzIiwiYnVpbGRFeHRlbnNpb25zIiwiYWN0aXZlRXh0ZW5zaW9ucyIsImN1c3RvbUV4dGVuc2lvbnMiLCJvcHRzIiwiYWRkSWYiLCJrZXkiLCJzaG91bGRBZGQiLCJpbWFnZVBsdWdpbiIsImltYWdlIiwib25EZWxldGUiLCJtYXRoUGx1Z2luIiwibWF0aCIsInJlc3BBcmVhUGx1Z2luIiwicmVzcG9uc2VBcmVhIiwidHlwZSIsImNzc1BsdWdpbiIsImV4dHJhQ1NTUnVsZXMiLCJsYW5ndWFnZUNoYXJhY3RlcnNQbHVnaW5zIiwibGFuZ3VhZ2VDaGFyYWN0ZXJzIiwibWFwIiwicGx1Z2luIiwiaHRtbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsdUJBQU0sZ0NBQU4sQ0FBWjtBQUNPLElBQU1DLFdBQVcsR0FBRyxDQUN6QixNQUR5QixFQUV6QjtBQUNBLE1BSHlCLEVBSXpCLGVBSnlCLEVBS3pCLFFBTHlCLEVBTXpCLFdBTnlCLEVBT3pCLGVBUHlCLEVBUXpCLGVBUnlCLEVBU3pCLGVBVHlCLEVBVXpCLE9BVnlCLEVBV3pCLE1BWHlCLEVBWXpCLG9CQVp5QixFQWF6QixZQWJ5QixFQWN6QixZQWR5QixFQWV6QixJQWZ5QixFQWdCekIsT0FoQnlCLEVBaUJ6QixPQWpCeUIsRUFrQnpCLE9BbEJ5QixFQW1CekIsY0FuQnlCLEVBb0J6QixNQXBCeUIsRUFxQnpCLE1BckJ5QixFQXNCekIsYUF0QnlCLEVBdUJ6QixXQXZCeUIsQ0FBcEI7O0FBMEJBLElBQU1DLGtCQUFrQixHQUFHRCxXQUFXLENBQUNFLE1BQVosQ0FBbUIsVUFBQ0MsSUFBRDtBQUFBLFNBQVUsQ0FBQyxDQUFDLGNBQUQsRUFBaUIsSUFBakIsRUFBdUIsWUFBdkIsRUFBcUNDLFFBQXJDLENBQThDRCxJQUE5QyxDQUFYO0FBQUEsQ0FBbkIsQ0FBM0I7OztBQUVBLElBQU1FLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsZ0JBQUQsRUFBbUJDLGdCQUFuQixFQUFxQ0MsSUFBckMsRUFBOEM7QUFDM0VULEVBQUFBLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQlMsSUFBMUIsQ0FBSDtBQUVBRixFQUFBQSxnQkFBZ0IsR0FBR0EsZ0JBQWdCLElBQUlMLGtCQUF2Qzs7QUFFQSxNQUFNUSxLQUFLLEdBQUcsU0FBUkEsS0FBUSxDQUFDQyxHQUFEO0FBQUEsUUFBTUMsU0FBTix1RUFBa0IsSUFBbEI7QUFBQSxXQUEyQkwsZ0JBQWdCLENBQUNGLFFBQWpCLENBQTBCTSxHQUExQixLQUFrQ0MsU0FBbEMsSUFBK0NELEdBQTFFO0FBQUEsR0FBZDs7QUFFQSxNQUFNRSxXQUFXLEdBQUdKLElBQUksQ0FBQ0ssS0FBTCxJQUFjTCxJQUFJLENBQUNLLEtBQUwsQ0FBV0MsUUFBN0M7QUFDQSxNQUFNQyxVQUFVLEdBQUdQLElBQUksQ0FBQ1EsSUFBeEI7QUFDQSxNQUFNQyxjQUFjLEdBQUdULElBQUksQ0FBQ1UsWUFBTCxJQUFxQlYsSUFBSSxDQUFDVSxZQUFMLENBQWtCQyxJQUE5RDtBQUNBLE1BQU1DLFNBQVMsR0FBRyxDQUFDLHlCQUFRWixJQUFJLENBQUNhLGFBQWIsQ0FBbkI7QUFFQSxNQUFNQyx5QkFBeUIsR0FBRyxDQUFBZCxJQUFJLFNBQUosSUFBQUEsSUFBSSxXQUFKLFlBQUFBLElBQUksQ0FBRWUsa0JBQU4sS0FBNEIsRUFBOUQ7QUFFQSxTQUFPLDBCQUNMZCxLQUFLLENBQUMsT0FBRCxDQURBLEVBRUxBLEtBQUssQ0FBQyxNQUFELENBRkEsRUFHTDtBQUNBQSxFQUFBQSxLQUFLLENBQUMsUUFBRCxDQUpBLEVBS0xBLEtBQUssQ0FBQyxlQUFELENBTEEsRUFNTEEsS0FBSyxDQUFDLFdBQUQsQ0FOQSxFQU9MO0FBQ0FBLEVBQUFBLEtBQUssQ0FBQyxhQUFELENBUkEsRUFTTDtBQUNBQSxFQUFBQSxLQUFLLENBQUMsV0FBRCxDQVZBLEVBV0xBLEtBQUssQ0FBQyxPQUFELEVBQVUsQ0FBQyxDQUFDRyxXQUFaLENBWEEsRUFZTEgsS0FBSyxDQUFDLE9BQUQsQ0FaQSxFQWFMQSxLQUFLLENBQUMsT0FBRCxDQWJBLEVBY0xBLEtBQUssQ0FBQyxNQUFELEVBQVMsQ0FBQyxDQUFDTSxVQUFYLENBZEEsNkNBZUZPLHlCQUF5QixDQUFDRSxHQUExQixDQUE4QixVQUFDQyxNQUFEO0FBQUEsV0FBWWhCLEtBQUssQ0FBQyxvQkFBRCxFQUF1QmdCLE1BQXZCLENBQWpCO0FBQUEsR0FBOUIsQ0FmRSxJQWdCTGhCLEtBQUssQ0FBQyxZQUFELENBaEJBLEVBaUJMQSxLQUFLLENBQUMsWUFBRCxDQWpCQSxFQWtCTEEsS0FBSyxDQUFDLElBQUQsQ0FsQkEsRUFtQkxBLEtBQUssQ0FBQyxlQUFELENBbkJBLEVBb0JMQSxLQUFLLENBQUMsZUFBRCxDQXBCQSxFQXFCTEEsS0FBSyxDQUFDLE1BQUQsQ0FyQkEsRUFzQkxBLEtBQUssQ0FBQyxNQUFELENBdEJBLEVBdUJMQSxLQUFLLENBQUMsY0FBRCxFQUFpQixDQUFDLENBQUNRLGNBQW5CLENBdkJBLEVBd0JMUixLQUFLLENBQUMsS0FBRCxFQUFRLENBQUMsQ0FBQ1csU0FBVixDQXhCQSxFQXlCTFgsS0FBSyxDQUFDLE1BQUQsRUFBUyxDQUFDLENBQUNELElBQUksQ0FBQ2tCLElBQWhCLENBekJBLEdBQVA7QUEyQkQsQ0F6Q00iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNvbXBhY3QgZnJvbSAnbG9kYXNoL2NvbXBhY3QnO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2lucycpO1xuZXhwb3J0IGNvbnN0IEFMTF9QTFVHSU5TID0gW1xuICAnYm9sZCcsXG4gIC8vICdjb2RlJyxcbiAgJ2h0bWwnLFxuICAnZXh0cmFDU1NSdWxlcycsXG4gICdpdGFsaWMnLFxuICAndW5kZXJsaW5lJyxcbiAgJ3N0cmlrZXRocm91Z2gnLFxuICAnYnVsbGV0ZWQtbGlzdCcsXG4gICdudW1iZXJlZC1saXN0JyxcbiAgJ2ltYWdlJyxcbiAgJ21hdGgnLFxuICAnbGFuZ3VhZ2VDaGFyYWN0ZXJzJyxcbiAgJ3RleHQtYWxpZ24nLFxuICAnYmxvY2txdW90ZScsXG4gICdoMycsXG4gICd0YWJsZScsXG4gICd2aWRlbycsXG4gICdhdWRpbycsXG4gICdyZXNwb25zZUFyZWEnLFxuICAncmVkbycsXG4gICd1bmRvJyxcbiAgJ3N1cGVyc2NyaXB0JyxcbiAgJ3N1YnNjcmlwdCcsXG5dO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9FWFRFTlNJT05TID0gQUxMX1BMVUdJTlMuZmlsdGVyKChwbHVnKSA9PiAhWydyZXNwb25zZUFyZWEnLCAnaDMnLCAnYmxvY2txdW90ZSddLmluY2x1ZGVzKHBsdWcpKTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkRXh0ZW5zaW9ucyA9IChhY3RpdmVFeHRlbnNpb25zLCBjdXN0b21FeHRlbnNpb25zLCBvcHRzKSA9PiB7XG4gIGxvZygnW2J1aWxkUGx1Z2luc10gb3B0czogJywgb3B0cyk7XG5cbiAgYWN0aXZlRXh0ZW5zaW9ucyA9IGFjdGl2ZUV4dGVuc2lvbnMgfHwgREVGQVVMVF9FWFRFTlNJT05TO1xuXG4gIGNvbnN0IGFkZElmID0gKGtleSwgc2hvdWxkQWRkID0gdHJ1ZSkgPT4gYWN0aXZlRXh0ZW5zaW9ucy5pbmNsdWRlcyhrZXkpICYmIHNob3VsZEFkZCAmJiBrZXk7XG5cbiAgY29uc3QgaW1hZ2VQbHVnaW4gPSBvcHRzLmltYWdlICYmIG9wdHMuaW1hZ2Uub25EZWxldGU7XG4gIGNvbnN0IG1hdGhQbHVnaW4gPSBvcHRzLm1hdGg7XG4gIGNvbnN0IHJlc3BBcmVhUGx1Z2luID0gb3B0cy5yZXNwb25zZUFyZWEgJiYgb3B0cy5yZXNwb25zZUFyZWEudHlwZTtcbiAgY29uc3QgY3NzUGx1Z2luID0gIWlzRW1wdHkob3B0cy5leHRyYUNTU1J1bGVzKTtcblxuICBjb25zdCBsYW5ndWFnZUNoYXJhY3RlcnNQbHVnaW5zID0gb3B0cz8ubGFuZ3VhZ2VDaGFyYWN0ZXJzIHx8IFtdO1xuXG4gIHJldHVybiBjb21wYWN0KFtcbiAgICBhZGRJZigndGFibGUnKSxcbiAgICBhZGRJZignYm9sZCcpLFxuICAgIC8vIGFkZElmKCdjb2RlJywgTWFya0hvdGtleSh7IGtleTogJ2AnLCB0eXBlOiAnY29kZScsIGljb246IDxDb2RlIC8+IH0pKSxcbiAgICBhZGRJZignaXRhbGljJyksXG4gICAgYWRkSWYoJ3N0cmlrZXRocm91Z2gnKSxcbiAgICBhZGRJZigndW5kZXJsaW5lJyksXG4gICAgLy8gaWNvbiBzaG91bGQgYmUgbW9kaWZpZXMgYWNjb3JkaW5nbHlcbiAgICBhZGRJZignc3VwZXJzY3JpcHQnKSxcbiAgICAvLyBpY29uIHNob3VsZCBiZSBtb2RpZmllcyBhY2NvcmRpbmdseVxuICAgIGFkZElmKCdzdWJzY3JpcHQnKSxcbiAgICBhZGRJZignaW1hZ2UnLCAhIWltYWdlUGx1Z2luKSxcbiAgICBhZGRJZigndmlkZW8nKSxcbiAgICBhZGRJZignYXVkaW8nKSxcbiAgICBhZGRJZignbWF0aCcsICEhbWF0aFBsdWdpbiksXG4gICAgLi4ubGFuZ3VhZ2VDaGFyYWN0ZXJzUGx1Z2lucy5tYXAoKHBsdWdpbikgPT4gYWRkSWYoJ2xhbmd1YWdlQ2hhcmFjdGVycycsIHBsdWdpbikpLFxuICAgIGFkZElmKCd0ZXh0LWFsaWduJyksXG4gICAgYWRkSWYoJ2Jsb2NrcXVvdGUnKSxcbiAgICBhZGRJZignaDMnKSxcbiAgICBhZGRJZignYnVsbGV0ZWQtbGlzdCcpLFxuICAgIGFkZElmKCdudW1iZXJlZC1saXN0JyksXG4gICAgYWRkSWYoJ3VuZG8nKSxcbiAgICBhZGRJZigncmVkbycpLFxuICAgIGFkZElmKCdyZXNwb25zZUFyZWEnLCAhIXJlc3BBcmVhUGx1Z2luKSxcbiAgICBhZGRJZignY3NzJywgISFjc3NQbHVnaW4pLFxuICAgIGFkZElmKCdodG1sJywgISFvcHRzLmh0bWwpLFxuICBdKTtcbn07XG4iXX0=
42
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/extensions/index.js"],"names":["log","ALL_PLUGINS","DEFAULT_EXTENSIONS","filter","plug","includes","buildExtensions","activeExtensions","customExtensions","opts","addIf","key","shouldAdd","imagePlugin","image","onDelete","mathPlugin","math","respAreaPlugin","responseArea","type","cssPlugin","extraCSSRules","languageCharactersPlugins","languageCharacters","map","plugin","html"],"mappings":"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","sourcesContent":["import React from 'react';\nimport compact from 'lodash/compact';\nimport isEmpty from 'lodash/isEmpty';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins');\nexport const ALL_PLUGINS = [\n 'bold',\n // 'code',\n 'html',\n 'extraCSSRules',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'text-align',\n 'blockquote',\n 'h3',\n 'table',\n 'video',\n 'audio',\n 'responseArea',\n 'redo',\n 'undo',\n 'superscript',\n 'subscript',\n];\n\nexport const DEFAULT_EXTENSIONS = ALL_PLUGINS.filter((plug) => !['responseArea', 'h3', 'blockquote'].includes(plug));\n\nexport const buildExtensions = (activeExtensions, customExtensions, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activeExtensions = activeExtensions || DEFAULT_EXTENSIONS;\n\n const addIf = (key, shouldAdd = true) => activeExtensions.includes(key) && shouldAdd && key;\n\n const imagePlugin = opts.image && opts.image.onDelete;\n const mathPlugin = opts.math;\n const respAreaPlugin = opts.responseArea && opts.responseArea.type;\n const cssPlugin = !isEmpty(opts.extraCSSRules);\n\n const languageCharactersPlugins = opts?.languageCharacters || [];\n\n return compact([\n addIf('table'),\n addIf('bold'),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic'),\n addIf('strikethrough'),\n addIf('underline'),\n // icon should be modifies accordingly\n addIf('superscript'),\n // icon should be modifies accordingly\n addIf('subscript'),\n addIf('image', !!imagePlugin),\n addIf('video'),\n addIf('audio'),\n addIf('math', !!mathPlugin),\n ...languageCharactersPlugins.map((plugin) => addIf('languageCharacters', plugin)),\n addIf('text-align'),\n addIf('blockquote'),\n addIf('h3'),\n addIf('bulleted-list'),\n addIf('numbered-list'),\n addIf('undo'),\n addIf('redo'),\n addIf('responseArea', !!respAreaPlugin),\n addIf('css', !!cssPlugin),\n addIf('html', !!opts.html),\n ]);\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_compact","_isEmpty","_debug","log","debug","ALL_PLUGINS","exports","DEFAULT_EXTENSIONS","filter","plug","includes","buildExtensions","activeExtensions","customExtensions","opts","addIf","key","shouldAdd","arguments","length","undefined","imagePlugin","image","onDelete","mathPlugin","math","respAreaPlugin","responseArea","type","cssPlugin","isEmpty","extraCSSRules","languageCharactersPlugins","languageCharacters","compact","concat","_toConsumableArray2","map","plugin","html"],"sources":["../../src/extensions/index.js"],"sourcesContent":["import React from 'react';\nimport compact from 'lodash/compact';\nimport isEmpty from 'lodash/isEmpty';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins');\nexport const ALL_PLUGINS = [\n 'bold',\n // 'code',\n 'html',\n 'extraCSSRules',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'text-align',\n 'blockquote',\n 'h3',\n 'table',\n 'video',\n 'audio',\n 'responseArea',\n 'redo',\n 'undo',\n 'superscript',\n 'subscript',\n];\n\nexport const DEFAULT_EXTENSIONS = ALL_PLUGINS.filter((plug) => !['responseArea', 'h3', 'blockquote'].includes(plug));\n\nexport const buildExtensions = (activeExtensions, customExtensions, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activeExtensions = activeExtensions || DEFAULT_EXTENSIONS;\n\n const addIf = (key, shouldAdd = true) => activeExtensions.includes(key) && shouldAdd && key;\n\n const imagePlugin = opts.image && opts.image.onDelete;\n const mathPlugin = opts.math;\n const respAreaPlugin = opts.responseArea && opts.responseArea.type;\n const cssPlugin = !isEmpty(opts.extraCSSRules);\n\n const languageCharactersPlugins = opts?.languageCharacters || [];\n\n return compact([\n addIf('table'),\n addIf('bold'),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic'),\n addIf('strikethrough'),\n addIf('underline'),\n // icon should be modifies accordingly\n addIf('superscript'),\n // icon should be modifies accordingly\n addIf('subscript'),\n addIf('image', !!imagePlugin),\n addIf('video'),\n addIf('audio'),\n addIf('math', !!mathPlugin),\n ...languageCharactersPlugins.map((plugin) => addIf('languageCharacters', plugin)),\n addIf('text-align'),\n addIf('blockquote'),\n addIf('h3'),\n addIf('bulleted-list'),\n addIf('numbered-list'),\n addIf('undo'),\n addIf('redo'),\n addIf('responseArea', !!respAreaPlugin),\n addIf('css', !!cssPlugin),\n addIf('html', !!opts.html),\n ]);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,43 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.ZeroWidthSpaceHandlingPlugin = exports.MathNodeView = exports.MathNode = exports.EnsureTextAfterMathPlugin = void 0;
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _react = _interopRequireWildcard(require("react"));
17
-
18
12
  var _reactDom = _interopRequireDefault(require("react-dom"));
19
-
20
13
  var _core = require("@tiptap/core");
21
-
22
14
  var _react2 = require("@tiptap/react");
23
-
24
15
  var _prosemirrorState = require("prosemirror-state");
25
-
26
16
  var _mathToolbar = require("@pie-lib/math-toolbar");
27
-
28
17
  var _mathRendering = require("@pie-lib/math-rendering");
29
-
30
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
-
32
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
-
34
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
-
36
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
37
-
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
38
21
  var ensureTextAfterMathPluginKey = new _prosemirrorState.PluginKey('ensureTextAfterMath');
39
-
40
- var EnsureTextAfterMathPlugin = function EnsureTextAfterMathPlugin(mathNodeName) {
22
+ var EnsureTextAfterMathPlugin = exports.EnsureTextAfterMathPlugin = function EnsureTextAfterMathPlugin(mathNodeName) {
41
23
  return new _prosemirrorState.Plugin({
42
24
  key: ensureTextAfterMathPluginKey,
43
25
  appendTransaction: function appendTransaction(transactions, oldState, newState) {
@@ -50,8 +32,9 @@ var EnsureTextAfterMathPlugin = function EnsureTextAfterMathPlugin(mathNodeName)
50
32
  newState.doc.descendants(function (node, pos) {
51
33
  if (node.type.name === mathNodeName) {
52
34
  var nextPos = pos + node.nodeSize;
53
- var nextNode = newState.doc.nodeAt(nextPos); // If there's no node after, or the next node isn't text, insert a space
35
+ var nextNode = newState.doc.nodeAt(nextPos);
54
36
 
37
+ // If there's no node after, or the next node isn't text, insert a space
55
38
  if (!nextNode || nextNode.type.name !== 'text') {
56
39
  tr.insert(nextPos, newState.schema.text("\u200B"));
57
40
  changed = true;
@@ -62,64 +45,52 @@ var EnsureTextAfterMathPlugin = function EnsureTextAfterMathPlugin(mathNodeName)
62
45
  }
63
46
  });
64
47
  };
65
-
66
- exports.EnsureTextAfterMathPlugin = EnsureTextAfterMathPlugin;
67
- var ZeroWidthSpaceHandlingPlugin = new _prosemirrorState.Plugin({
48
+ var ZeroWidthSpaceHandlingPlugin = exports.ZeroWidthSpaceHandlingPlugin = new _prosemirrorState.Plugin({
68
49
  key: new _prosemirrorState.PluginKey('zeroWidthSpaceHandling'),
69
50
  props: {
70
51
  handleKeyDown: function handleKeyDown(view, event) {
71
52
  var state = view.state,
72
- dispatch = view.dispatch;
53
+ dispatch = view.dispatch;
73
54
  var selection = state.selection,
74
- doc = state.doc;
55
+ doc = state.doc;
75
56
  var from = selection.from,
76
- empty = selection.empty;
77
-
57
+ empty = selection.empty;
78
58
  if (empty && event.key === 'Backspace' && from > 0) {
79
59
  var prevChar = doc.textBetween(from - 1, from, "\uFFFC", "\uFFFC");
80
-
81
60
  if (prevChar === "\u200B") {
82
61
  var tr = state.tr["delete"](from - 2, from);
83
62
  dispatch(tr);
84
63
  return true; // handled
85
64
  }
86
65
  }
87
-
88
66
  if (empty && event.key === 'ArrowLeft' && from > 0) {
89
- var _prevChar = doc.textBetween(from - 1, from, "\uFFFC", "\uFFFC"); // If the previous character is the zero-width space...
90
-
91
-
67
+ var _prevChar = doc.textBetween(from - 1, from, "\uFFFC", "\uFFFC");
68
+ // If the previous character is the zero-width space...
92
69
  if (_prevChar === "\u200B") {
93
70
  var posBefore = from - 1;
94
71
  var resolved = state.doc.resolve(posBefore - 1); // look just before the zwsp
72
+ var maybeNode = resolved.nodeAfter || resolved.nodeBefore;
95
73
 
96
- var maybeNode = resolved.nodeAfter || resolved.nodeBefore; // Check if there's an inline selectable node (e.g., your math node)
97
-
74
+ // Check if there's an inline selectable node (e.g., your math node)
98
75
  if (maybeNode) {
99
76
  var nodePos = posBefore - maybeNode.nodeSize;
100
77
  var nodeResolved = state.doc.resolve(nodePos);
101
-
102
78
  var _tr = state.tr.setSelection(_prosemirrorState.NodeSelection.create(state.doc, nodeResolved.pos));
103
-
104
79
  dispatch(_tr);
105
80
  return true;
106
81
  } else {
107
82
  // Just move the text cursor before the zwsp
108
83
  var _tr2 = state.tr.setSelection(_prosemirrorState.TextSelection.create(state.doc, from - 2));
109
-
110
84
  dispatch(_tr2);
111
85
  return true;
112
86
  }
113
87
  }
114
88
  }
115
-
116
89
  return false;
117
90
  }
118
91
  }
119
92
  });
120
- exports.ZeroWidthSpaceHandlingPlugin = ZeroWidthSpaceHandlingPlugin;
121
-
122
- var MathNode = _core.Node.create({
93
+ var MathNode = exports.MathNode = _core.Node.create({
123
94
  name: 'math',
124
95
  group: 'inline',
125
96
  inline: true,
@@ -159,48 +130,44 @@ var MathNode = _core.Node.create({
159
130
  },
160
131
  addCommands: function addCommands() {
161
132
  var _this = this;
162
-
163
133
  return {
164
134
  insertMath: function insertMath() {
165
135
  var latex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
166
136
  return function (_ref) {
167
137
  var _node$type;
168
-
169
138
  var tr = _ref.tr,
170
- editor = _ref.editor,
171
- dispatch = _ref.dispatch;
139
+ editor = _ref.editor,
140
+ dispatch = _ref.dispatch;
172
141
  var state = editor.view.state;
173
142
  var node = state.schema.nodes.math.create({
174
143
  latex: latex
175
144
  });
176
- var selection = state.selection; // The inserted node is typically just before the cursor
145
+ var selection = state.selection;
177
146
 
147
+ // The inserted node is typically just before the cursor
178
148
  var pos = selection.$from.pos;
179
149
  tr.insert(pos, node);
180
-
181
- if ((node === null || node === void 0 ? void 0 : (_node$type = node.type) === null || _node$type === void 0 ? void 0 : _node$type.name) === _this.name) {
150
+ if ((node === null || node === void 0 || (_node$type = node.type) === null || _node$type === void 0 ? void 0 : _node$type.name) === _this.name) {
182
151
  // Create a NodeSelection from the current doc
183
- var sel = _prosemirrorState.NodeSelection.create(tr.doc, selection.$from.pos); // Build a fresh transaction from the current state and set the selection
184
-
152
+ var sel = _prosemirrorState.NodeSelection.create(tr.doc, selection.$from.pos);
185
153
 
154
+ // Build a fresh transaction from the current state and set the selection
186
155
  tr.setSelection(sel);
187
156
  }
188
-
189
157
  dispatch(tr);
190
158
  return true;
191
159
  };
192
- } // insertMath: (latex = '') => ({ commands }) => {
160
+ }
161
+ // insertMath: (latex = '') => ({ commands }) => {
193
162
  // return commands.insertContent({
194
163
  // type: this.name,
195
164
  // attrs: { latex },
196
165
  // });
197
166
  // },
198
-
199
167
  };
200
168
  },
201
169
  renderHTML: function renderHTML(_ref2) {
202
170
  var HTMLAttributes = _ref2.HTMLAttributes;
203
-
204
171
  if (HTMLAttributes.html) {
205
172
  return ['span', {
206
173
  'data-type': 'mathml',
@@ -209,7 +176,6 @@ var MathNode = _core.Node.create({
209
176
  }
210
177
  }];
211
178
  }
212
-
213
179
  return ['span', {
214
180
  'data-latex': '',
215
181
  'data-raw': HTMLAttributes.latex
@@ -217,7 +183,6 @@ var MathNode = _core.Node.create({
217
183
  },
218
184
  addNodeView: function addNodeView() {
219
185
  var _this2 = this;
220
-
221
186
  return (0, _react2.ReactNodeViewRenderer)(function (props) {
222
187
  return /*#__PURE__*/_react["default"].createElement(MathNodeView, _objectSpread(_objectSpread({}, props), {}, {
223
188
  options: _this2.options
@@ -225,31 +190,24 @@ var MathNode = _core.Node.create({
225
190
  });
226
191
  }
227
192
  });
228
-
229
- exports.MathNode = MathNode;
230
-
231
- var MathNodeView = function MathNodeView(props) {
193
+ var MathNodeView = exports.MathNodeView = function MathNodeView(props) {
232
194
  var node = props.node,
233
- updateAttributes = props.updateAttributes,
234
- editor = props.editor,
235
- selected = props.selected,
236
- options = props.options;
237
-
195
+ updateAttributes = props.updateAttributes,
196
+ editor = props.editor,
197
+ selected = props.selected,
198
+ options = props.options;
238
199
  var _useState = (0, _react.useState)(selected),
239
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
240
- showToolbar = _useState2[0],
241
- setShowToolbar = _useState2[1];
242
-
200
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
201
+ showToolbar = _useState2[0],
202
+ setShowToolbar = _useState2[1];
243
203
  var toolbarRef = (0, _react.useRef)(null);
244
-
245
204
  var _useState3 = (0, _react.useState)({
246
- top: 0,
247
- left: 0
248
- }),
249
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
250
- position = _useState4[0],
251
- setPosition = _useState4[1];
252
-
205
+ top: 0,
206
+ left: 0
207
+ }),
208
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
209
+ position = _useState4[0],
210
+ setPosition = _useState4[1];
253
211
  var latex = node.attrs.latex || '';
254
212
  (0, _react.useEffect)(function () {
255
213
  if (selected) {
@@ -269,30 +227,25 @@ var MathNodeView = function MathNodeView(props) {
269
227
  // shift above
270
228
  left: start.left
271
229
  });
272
-
273
230
  var handleClickOutside = function handleClickOutside(event) {
274
231
  if (toolbarRef.current && !toolbarRef.current.contains(event.target) && !event.target.closest('[data-inline-node]')) {
275
232
  setShowToolbar(false);
276
233
  }
277
234
  };
278
-
279
235
  if (showToolbar) {
280
236
  document.addEventListener('mousedown', handleClickOutside);
281
237
  } else {
282
238
  document.removeEventListener('mousedown', handleClickOutside);
283
239
  }
284
-
285
240
  return function () {
286
241
  return document.removeEventListener('mousedown', handleClickOutside);
287
242
  };
288
243
  }, [editor, showToolbar]);
289
-
290
244
  var handleChange = function handleChange(newLatex) {
291
245
  updateAttributes({
292
246
  latex: newLatex
293
247
  });
294
248
  };
295
-
296
249
  var handleDone = function handleDone(newLatex) {
297
250
  updateAttributes({
298
251
  latex: newLatex
@@ -300,18 +253,16 @@ var MathNodeView = function MathNodeView(props) {
300
253
  setShowToolbar(false);
301
254
  editor._toolbarOpened = false;
302
255
  var _editor$state = editor.state,
303
- selection = _editor$state.selection,
304
- tr = _editor$state.tr,
305
- doc = _editor$state.doc;
306
-
307
- var sel = _prosemirrorState.TextSelection.create(doc, selection.from + 1); // Build a fresh transaction from the current state and set the selection
308
-
256
+ selection = _editor$state.selection,
257
+ tr = _editor$state.tr,
258
+ doc = _editor$state.doc;
259
+ var sel = _prosemirrorState.TextSelection.create(doc, selection.from + 1);
309
260
 
261
+ // Build a fresh transaction from the current state and set the selection
310
262
  tr.setSelection(sel);
311
263
  editor.view.dispatch(tr);
312
264
  editor.commands.focus();
313
265
  };
314
-
315
266
  return /*#__PURE__*/_react["default"].createElement(_react2.NodeViewWrapper, {
316
267
  className: "math-node",
317
268
  style: {
@@ -327,7 +278,7 @@ var MathNodeView = function MathNodeView(props) {
327
278
  contentEditable: false
328
279
  }, /*#__PURE__*/_react["default"].createElement(_mathToolbar.MathPreview, {
329
280
  latex: latex
330
- })), showToolbar && /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement("div", {
281
+ })), showToolbar && /*#__PURE__*/_reactDom["default"].createPortal(/*#__PURE__*/_react["default"].createElement("div", {
331
282
  ref: toolbarRef,
332
283
  style: {
333
284
  position: 'absolute',
@@ -345,6 +296,4 @@ var MathNodeView = function MathNodeView(props) {
345
296
  keypadMode: "basic"
346
297
  })), document.body));
347
298
  };
348
-
349
- exports.MathNodeView = MathNodeView;
350
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL21hdGguanMiXSwibmFtZXMiOlsiZW5zdXJlVGV4dEFmdGVyTWF0aFBsdWdpbktleSIsIlBsdWdpbktleSIsIkVuc3VyZVRleHRBZnRlck1hdGhQbHVnaW4iLCJtYXRoTm9kZU5hbWUiLCJQbHVnaW4iLCJrZXkiLCJhcHBlbmRUcmFuc2FjdGlvbiIsInRyYW5zYWN0aW9ucyIsIm9sZFN0YXRlIiwibmV3U3RhdGUiLCJzb21lIiwidHIiLCJkb2NDaGFuZ2VkIiwiY2hhbmdlZCIsImRvYyIsImRlc2NlbmRhbnRzIiwibm9kZSIsInBvcyIsInR5cGUiLCJuYW1lIiwibmV4dFBvcyIsIm5vZGVTaXplIiwibmV4dE5vZGUiLCJub2RlQXQiLCJpbnNlcnQiLCJzY2hlbWEiLCJ0ZXh0IiwiWmVyb1dpZHRoU3BhY2VIYW5kbGluZ1BsdWdpbiIsInByb3BzIiwiaGFuZGxlS2V5RG93biIsInZpZXciLCJldmVudCIsInN0YXRlIiwiZGlzcGF0Y2giLCJzZWxlY3Rpb24iLCJmcm9tIiwiZW1wdHkiLCJwcmV2Q2hhciIsInRleHRCZXR3ZWVuIiwicG9zQmVmb3JlIiwicmVzb2x2ZWQiLCJyZXNvbHZlIiwibWF5YmVOb2RlIiwibm9kZUFmdGVyIiwibm9kZUJlZm9yZSIsIm5vZGVQb3MiLCJub2RlUmVzb2x2ZWQiLCJzZXRTZWxlY3Rpb24iLCJOb2RlU2VsZWN0aW9uIiwiY3JlYXRlIiwiVGV4dFNlbGVjdGlvbiIsIk1hdGhOb2RlIiwiTm9kZSIsImdyb3VwIiwiaW5saW5lIiwiYXRvbSIsImFkZEF0dHJpYnV0ZXMiLCJsYXRleCIsIndyYXBwZXIiLCJodG1sIiwiYWRkUHJvc2VNaXJyb3JQbHVnaW5zIiwicGFyc2VIVE1MIiwidGFnIiwiZ2V0QXR0cnMiLCJlbCIsImdldEF0dHJpYnV0ZSIsInRleHRDb250ZW50IiwiaW5uZXJIVE1MIiwiYWRkQ29tbWFuZHMiLCJpbnNlcnRNYXRoIiwiZWRpdG9yIiwibm9kZXMiLCJtYXRoIiwiJGZyb20iLCJzZWwiLCJyZW5kZXJIVE1MIiwiSFRNTEF0dHJpYnV0ZXMiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImFkZE5vZGVWaWV3Iiwib3B0aW9ucyIsIk1hdGhOb2RlVmlldyIsInVwZGF0ZUF0dHJpYnV0ZXMiLCJzZWxlY3RlZCIsInNob3dUb29sYmFyIiwic2V0U2hvd1Rvb2xiYXIiLCJ0b29sYmFyUmVmIiwidG9wIiwibGVmdCIsInBvc2l0aW9uIiwic2V0UG9zaXRpb24iLCJhdHRycyIsIl90b29sYmFyT3BlbmVkIiwiYm9keVJlY3QiLCJkb2N1bWVudCIsImJvZHkiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJzdGFydCIsImNvb3Jkc0F0UG9zIiwiTWF0aCIsImFicyIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImN1cnJlbnQiLCJjb250YWlucyIsInRhcmdldCIsImNsb3Nlc3QiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZUNoYW5nZSIsIm5ld0xhdGV4IiwiaGFuZGxlRG9uZSIsImNvbW1hbmRzIiwiZm9jdXMiLCJkaXNwbGF5IiwiY3Vyc29yIiwibWFyZ2luIiwiUmVhY3RET00iLCJjcmVhdGVQb3J0YWwiLCJ6SW5kZXgiLCJiYWNrZ3JvdW5kIiwiYm94U2hhZG93Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLDRCQUE0QixHQUFHLElBQUlDLDJCQUFKLENBQWMscUJBQWQsQ0FBckM7O0FBRU8sSUFBTUMseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUE0QixDQUFDQyxZQUFEO0FBQUEsU0FDdkMsSUFBSUMsd0JBQUosQ0FBVztBQUNUQyxJQUFBQSxHQUFHLEVBQUVMLDRCQURJO0FBRVRNLElBQUFBLGlCQUFpQixFQUFFLDJCQUFDQyxZQUFELEVBQWVDLFFBQWYsRUFBeUJDLFFBQXpCLEVBQXNDO0FBQ3ZEO0FBQ0Es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UUFBUSxDQUFDQyxJQWZYLENBYkosQ0FERjtBQWlDRCxDQW5HTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IEV4dGVuc2lvbiwgTm9kZSwgbWVyZ2VBdHRyaWJ1dGVzIH0gZnJvbSAnQHRpcHRhcC9jb3JlJztcbmltcG9ydCB7IE5vZGVWaWV3V3JhcHBlciwgUmVhY3RSZW5kZXJlciwgUmVhY3ROb2RlVmlld1JlbmRlcmVyIH0gZnJvbSAnQHRpcHRhcC9yZWFjdCc7XG5pbXBvcnQgeyBQbHVnaW4sIFBsdWdpbktleSwgTm9kZVNlbGVjdGlvbiwgVGV4dFNlbGVjdGlvbiB9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcbmltcG9ydCB7IE1hdGhQcmV2aWV3LCBNYXRoVG9vbGJhciB9IGZyb20gJ0BwaWUtbGliL21hdGgtdG9vbGJhcic7XG5pbXBvcnQgeyB3cmFwTWF0aCwgbW1sVG9MYXRleCwgcmVuZGVyTWF0aCB9IGZyb20gJ0BwaWUtbGliL21hdGgtcmVuZGVyaW5nJztcblxuY29uc3QgZW5zdXJlVGV4dEFmdGVyTWF0aFBsdWdpbktleSA9IG5ldyBQbHVnaW5LZXkoJ2Vuc3VyZVRleHRBZnRlck1hdGgnKTtcblxuZXhwb3J0IGNvbnN0IEVuc3VyZVRleHRBZnRlck1hdGhQbHVnaW4gPSAobWF0aE5vZGVOYW1lKSA9PlxuICBuZXcgUGx1Z2luKHtcbiAgICBrZXk6IGVuc3VyZVRleHRBZnRlck1hdGhQbHVnaW5LZXksXG4gICAgYXBwZW5kVHJhbnNhY3Rpb246ICh0cmFuc2FjdGlvbnMsIG9sZFN0YXRlLCBuZXdTdGF0ZSkgPT4ge1xuICAgICAgLy8gT25seSBhY3Qgd2hlbiB0aGUgZG9jIGFjdHVhbGx5IGNoYW5nZWRcbiAgICAgIGlmICghdHJhbnNhY3Rpb25zLnNvbWUoKHRyKSA9PiB0ci5kb2NDaGFuZ2VkKSkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGNvbnN0IHRyID0gbmV3U3RhdGUudHI7XG4gICAgICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgICBuZXdTdGF0ZS5kb2MuZGVzY2VuZGFudHMoKG5vZGUsIHBvcykgPT4ge1xuICAgICAgICBpZiAobm9kZS50eXBlLm5hbWUgPT09IG1hdGhOb2RlTmFtZSkge1xuICAgICAgICAgIGNvbnN0IG5leHRQb3MgPSBwb3MgKyBub2RlLm5vZGVTaXplO1xuICAgICAgICAgIGNvbnN0IG5leHROb2RlID0gbmV3U3RhdGUuZG9jLm5vZGVBdChuZXh0UG9zKTtcblxuICAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gbm9kZSBhZnRlciwgb3IgdGhlIG5leHQgbm9kZSBpc24ndCB0ZXh0LCBpbnNlcnQgYSBzcGFjZVxuICAgICAgICAgIGlmICghbmV4dE5vZGUgfHwgbmV4dE5vZGUudHlwZS5uYW1lICE9PSAndGV4dCcpIHtcbiAgICAgICAgICAgIHRyLmluc2VydChuZXh0UG9zLCBuZXdTdGF0ZS5zY2hlbWEudGV4dCgnXFx1MjAwYicpKTtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBjaGFuZ2VkID8gdHIgOiBudWxsO1xuICAgIH0sXG4gIH0pO1xuXG5leHBvcnQgY29uc3QgWmVyb1dpZHRoU3BhY2VIYW5kbGluZ1BsdWdpbiA9IG5ldyBQbHVnaW4oe1xuICBrZXk6IG5ldyBQbHVnaW5LZXkoJ3plcm9XaWR0aFNwYWNlSGFuZGxpbmcnKSxcbiAgcHJvcHM6IHtcbiAgICBoYW5kbGVLZXlEb3duKHZpZXcsIGV2ZW50KSB7XG4gICAgICBjb25zdCB7IHN0YXRlLCBkaXNwYXRjaCB9ID0gdmlldztcbiAgICAgIGNvbnN0IHsgc2VsZWN0aW9uLCBkb2MgfSA9IHN0YXRlO1xuICAgICAgY29uc3QgeyBmcm9tLCBlbXB0eSB9ID0gc2VsZWN0aW9uO1xuXG4gICAgICBpZiAoZW1wdHkgJiYgZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyAmJiBmcm9tID4gMCkge1xuICAgICAgICBjb25zdCBwcmV2Q2hhciA9IGRvYy50ZXh0QmV0d2Vlbihmcm9tIC0gMSwgZnJvbSwgJ1xcdUZGRkMnLCAnXFx1RkZGQycpO1xuICAgICAgICBpZiAocHJldkNoYXIgPT09ICdcXHUyMDBiJykge1xuICAgICAgICAgIGNvbnN0IHRyID0gc3RhdGUudHIuZGVsZXRlKGZyb20gLSAyLCBmcm9tKTtcbiAgICAgICAgICBkaXNwYXRjaCh0cik7XG4gICAgICAgICAgcmV0dXJuIHRydWU7IC8vIGhhbmRsZWRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZW1wdHkgJiYgZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0JyAmJiBmcm9tID4gMCkge1xuICAgICAgICBjb25zdCBwcmV2Q2hhciA9IGRvYy50ZXh0QmV0d2Vlbihmcm9tIC0gMSwgZnJvbSwgJ1xcdUZGRkMnLCAnXFx1RkZGQycpO1xuICAgICAgICAvLyBJZiB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGlzIHRoZSB6ZXJvLXdpZHRoIHNwYWNlLi4uXG4gICAgICAgIGlmIChwcmV2Q2hhciA9PT0gJ1xcdTIwMGInKSB7XG4gICAgICAgICAgY29uc3QgcG9zQmVmb3JlID0gZnJvbSAtIDE7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBzdGF0ZS5kb2MucmVzb2x2ZShwb3NCZWZvcmUgLSAxKTsgLy8gbG9vayBqdXN0IGJlZm9yZSB0aGUgendzcFxuICAgICAgICAgIGNvbnN0IG1heWJlTm9kZSA9IHJlc29sdmVkLm5vZGVBZnRlciB8fCByZXNvbHZlZC5ub2RlQmVmb3JlO1xuXG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBhbiBpbmxpbmUgc2VsZWN0YWJsZSBub2RlIChlLmcuLCB5b3VyIG1hdGggbm9kZSlcbiAgICAgICAgICBpZiAobWF5YmVOb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlUG9zID0gcG9zQmVmb3JlIC0gbWF5YmVOb2RlLm5vZGVTaXplO1xuICAgICAgICAgICAgY29uc3Qgbm9kZVJlc29sdmVkID0gc3RhdGUuZG9jLnJlc29sdmUobm9kZVBvcyk7XG4gICAgICAgICAgICBjb25zdCB0ciA9IHN0YXRlLnRyLnNldFNlbGVjdGlvbihOb2RlU2VsZWN0aW9uLmNyZWF0ZShzdGF0ZS5kb2MsIG5vZGVSZXNvbHZlZC5wb3MpKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKHRyKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBKdXN0IG1vdmUgdGhlIHRleHQgY3Vyc29yIGJlZm9yZSB0aGUgendzcFxuICAgICAgICAgICAgY29uc3QgdHIgPSBzdGF0ZS50ci5zZXRTZWxlY3Rpb24oVGV4dFNlbGVjdGlvbi5jcmVhdGUoc3RhdGUuZG9jLCBmcm9tIC0gMikpO1xuICAgICAgICAgICAgZGlzcGF0Y2godHIpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBNYXRoTm9kZSA9IE5vZGUuY3JlYXRlKHtcbiAgbmFtZTogJ21hdGgnLFxuICBncm91cDogJ2lubGluZScsXG4gIGlubGluZTogdHJ1ZSxcbiAgYXRvbTogdHJ1ZSxcblxuICBhZGRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBsYXRleDogeyBkZWZhdWx0OiAnJyB9LFxuICAgICAgd3JhcHBlcjogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICBodG1sOiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICB9O1xuICB9LFxuXG4gIGFkZFByb3NlTWlycm9yUGx1Z2lucygpIHtcbiAgICByZXR1cm4gW0Vuc3VyZVRleHRBZnRlck1hdGhQbHVnaW4odGhpcy5uYW1lKSwgWmVyb1dpZHRoU3BhY2VIYW5kbGluZ1BsdWdpbl07XG4gIH0sXG5cbiAgcGFyc2VIVE1MKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRhZzogJ3NwYW5bZGF0YS1sYXRleF0nLFxuICAgICAgICBnZXRBdHRyczogKGVsKSA9PiAoe1xuICAgICAgICAgIGxhdGV4OiBlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmF3JykgfHwgZWwudGV4dENvbnRlbnQsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGFnOiAnc3BhbltkYXRhLXR5cGU9XCJtYXRobWxcIl0nLFxuICAgICAgICBnZXRBdHRyczogKGVsKSA9PiAoe1xuICAgICAgICAgIGh0bWw6IGVsLmlubmVySFRNTCxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG5cbiAgYWRkQ29tbWFuZHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluc2VydE1hdGg6IChsYXRleCA9ICcnKSA9PiAoeyB0ciwgZWRpdG9yLCBkaXNwYXRjaCB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RhdGUgfSA9IGVkaXRvci52aWV3O1xuICAgICAgICBjb25zdCBub2RlID0gc3RhdGUuc2NoZW1hLm5vZGVzLm1hdGguY3JlYXRlKHtcbiAgICAgICAgICBsYXRleCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBzdGF0ZTtcblxuICAgICAgICAvLyBUaGUgaW5zZXJ0ZWQgbm9kZSBpcyB0eXBpY2FsbHkganVzdCBiZWZvcmUgdGhlIGN1cnNvclxuICAgICAgICBjb25zdCBwb3MgPSBzZWxlY3Rpb24uJGZyb20ucG9zO1xuXG4gICAgICAgIHRyLmluc2VydChwb3MsIG5vZGUpO1xuXG4gICAgICAgIGlmIChub2RlPy50eXBlPy5uYW1lID09PSB0aGlzLm5hbWUpIHtcbiAgICAgICAgICAvLyBDcmVhdGUgYSBOb2RlU2VsZWN0aW9uIGZyb20gdGhlIGN1cnJlbnQgZG9jXG4gICAgICAgICAgY29uc3Qgc2VsID0gTm9kZVNlbGVjdGlvbi5jcmVhdGUodHIuZG9jLCBzZWxlY3Rpb24uJGZyb20ucG9zKTtcblxuICAgICAgICAgIC8vIEJ1aWxkIGEgZnJlc2ggdHJhbnNhY3Rpb24gZnJvbSB0aGUgY3VycmVudCBzdGF0ZSBhbmQgc2V0IHRoZSBzZWxlY3Rpb25cbiAgICAgICAgICB0ci5zZXRTZWxlY3Rpb24oc2VsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpc3BhdGNoKHRyKTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICAvLyBpbnNlcnRNYXRoOiAobGF0ZXggPSAnJykgPT4gKHsgY29tbWFuZHMgfSkgPT4ge1xuICAgICAgLy8gICByZXR1cm4gY29tbWFuZHMuaW5zZXJ0Q29udGVudCh7XG4gICAgICAvLyAgICAgdHlwZTogdGhpcy5uYW1lLFxuICAgICAgLy8gICAgIGF0dHJzOiB7IGxhdGV4IH0sXG4gICAgICAvLyAgIH0pO1xuICAgICAgLy8gfSxcbiAgICB9O1xuICB9LFxuXG4gIHJlbmRlckhUTUwoeyBIVE1MQXR0cmlidXRlcyB9KSB7XG4gICAgaWYgKEhUTUxBdHRyaWJ1dGVzLmh0bWwpIHtcbiAgICAgIHJldHVybiBbJ3NwYW4nLCB7ICdkYXRhLXR5cGUnOiAnbWF0aG1sJywgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHsgX19odG1sOiBIVE1MQXR0cmlidXRlcy5odG1sIH0gfV07XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgICdzcGFuJyxcbiAgICAgIHsgJ2RhdGEtbGF0ZXgnOiAnJywgJ2RhdGEtcmF3JzogSFRNTEF0dHJpYnV0ZXMubGF0ZXggfSxcbiAgICAgIHdyYXBNYXRoKEhUTUxBdHRyaWJ1dGVzLmxhdGV4LCBIVE1MQXR0cmlidXRlcy53cmFwcGVyKSxcbiAgICBdO1xuICB9LFxuXG4gIGFkZE5vZGVWaWV3KCkge1xuICAgIHJldHVybiBSZWFjdE5vZGVWaWV3UmVuZGVyZXIoKHByb3BzKSA9PiA8TWF0aE5vZGVWaWV3IHsuLi57IC4uLnByb3BzLCBvcHRpb25zOiB0aGlzLm9wdGlvbnMgfX0gLz4pO1xuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBNYXRoTm9kZVZpZXcgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBub2RlLCB1cGRhdGVBdHRyaWJ1dGVzLCBlZGl0b3IsIHNlbGVjdGVkLCBvcHRpb25zIH0gPSBwcm9wcztcbiAgY29uc3QgW3Nob3dUb29sYmFyLCBzZXRTaG93VG9vbGJhcl0gPSB1c2VTdGF0ZShzZWxlY3RlZCk7XG4gIGNvbnN0IHRvb2xiYXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGUoeyB0b3A6IDAsIGxlZnQ6IDAgfSk7XG5cbiAgY29uc3QgbGF0ZXggPSBub2RlLmF0dHJzLmxhdGV4IHx8ICcnO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICBzZXRTaG93VG9vbGJhcih0cnVlKTtcbiAgICB9XG4gIH0sIFtzZWxlY3RlZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZWRpdG9yLl90b29sYmFyT3BlbmVkID0gISFzaG93VG9vbGJhcjtcbiAgfSwgW3Nob3dUb29sYmFyXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBDYWxjdWxhdGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gc2VsZWN0aW9uXG4gICAgY29uc3QgYm9keVJlY3QgPSBkb2N1bWVudC5ib2R5LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHsgZnJvbSB9ID0gZWRpdG9yLnN0YXRlLnNlbGVjdGlvbjtcbiAgICBjb25zdCBzdGFydCA9IGVkaXRvci52aWV3LmNvb3Jkc0F0UG9zKGZyb20pO1xuICAgIHNldFBvc2l0aW9uKHtcbiAgICAgIHRvcDogc3RhcnQudG9wICsgTWF0aC5hYnMoYm9keVJlY3QudG9wKSArIDQwLCAvLyBzaGlmdCBhYm92ZVxuICAgICAgbGVmdDogc3RhcnQubGVmdCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB0b29sYmFyUmVmLmN1cnJlbnQgJiZcbiAgICAgICAgIXRvb2xiYXJSZWYuY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQpICYmXG4gICAgICAgICFldmVudC50YXJnZXQuY2xvc2VzdCgnW2RhdGEtaW5saW5lLW5vZGVdJylcbiAgICAgICkge1xuICAgICAgICBzZXRTaG93VG9vbGJhcihmYWxzZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChzaG93VG9vbGJhcikge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgfSwgW2VkaXRvciwgc2hvd1Rvb2xiYXJdKTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAobmV3TGF0ZXgpID0+IHtcbiAgICB1cGRhdGVBdHRyaWJ1dGVzKHsgbGF0ZXg6IG5ld0xhdGV4IH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURvbmUgPSAobmV3TGF0ZXgpID0+IHtcbiAgICB1cGRhdGVBdHRyaWJ1dGVzKHsgbGF0ZXg6IG5ld0xhdGV4IH0pO1xuICAgIHNldFNob3dUb29sYmFyKGZhbHNlKTtcblxuICAgIGVkaXRvci5fdG9vbGJhck9wZW5lZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgeyBzZWxlY3Rpb24sIHRyLCBkb2MgfSA9IGVkaXRvci5zdGF0ZTtcbiAgICBjb25zdCBzZWwgPSBUZXh0U2VsZWN0aW9uLmNyZWF0ZShkb2MsIHNlbGVjdGlvbi5mcm9tICsgMSk7XG5cbiAgICAvLyBCdWlsZCBhIGZyZXNoIHRyYW5zYWN0aW9uIGZyb20gdGhlIGN1cnJlbnQgc3RhdGUgYW5kIHNldCB0aGUgc2VsZWN0aW9uXG4gICAgdHIuc2V0U2VsZWN0aW9uKHNlbCk7XG4gICAgZWRpdG9yLnZpZXcuZGlzcGF0Y2godHIpO1xuICAgIGVkaXRvci5jb21tYW5kcy5mb2N1cygpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPE5vZGVWaWV3V3JhcHBlclxuICAgICAgY2xhc3NOYW1lPVwibWF0aC1ub2RlXCJcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICBtYXJnaW46ICcwIDRweCcsXG4gICAgICB9fVxuICAgICAgZGF0YS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgPlxuICAgICAgPGRpdiBvbkNsaWNrPXsoKSA9PiBzZXRTaG93VG9vbGJhcih0cnVlKX0gY29udGVudEVkaXRhYmxlPXtmYWxzZX0+XG4gICAgICAgIDxNYXRoUHJldmlldyBsYXRleD17bGF0ZXh9IC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIHtzaG93VG9vbGJhciAmJlxuICAgICAgICBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgcmVmPXt0b29sYmFyUmVmfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgIHRvcDogYCR7cG9zaXRpb24udG9wfXB4YCxcbiAgICAgICAgICAgICAgbGVmdDogYCR7cG9zaXRpb24ubGVmdH1weGAsXG4gICAgICAgICAgICAgIHpJbmRleDogMjAsXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1lZGl0YWJsZS1odG1sLXRvb2xiYXItYmcsICNlZmVmZWYpJyxcbiAgICAgICAgICAgICAgYm94U2hhZG93OlxuICAgICAgICAgICAgICAgICcwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMTIpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPE1hdGhUb29sYmFyIGxhdGV4PXtsYXRleH0gYXV0b0ZvY3VzIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9IG9uRG9uZT17aGFuZGxlRG9uZX0ga2V5cGFkTW9kZT1cImJhc2ljXCIgLz5cbiAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgKX1cbiAgICA8L05vZGVWaWV3V3JhcHBlcj5cbiAgKTtcbn07XG4iXX0=
299
+ //# sourceMappingURL=math.js.map