@pie-lib/editable-html 11.18.6-esmbeta.0 → 11.19.0-mui-update.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 (136) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/lib/block-tags.js +2 -3
  3. package/lib/block-tags.js.map +1 -1
  4. package/lib/constants.js +3 -6
  5. package/lib/constants.js.map +1 -1
  6. package/lib/editor.js +302 -450
  7. package/lib/editor.js.map +1 -1
  8. package/lib/index.js +19 -77
  9. package/lib/index.js.map +1 -1
  10. package/lib/parse-html.js +7 -7
  11. package/lib/parse-html.js.map +1 -1
  12. package/lib/plugins/characters/custom-popper.js +24 -44
  13. package/lib/plugins/characters/custom-popper.js.map +1 -1
  14. package/lib/plugins/characters/index.js +9 -60
  15. package/lib/plugins/characters/index.js.map +1 -1
  16. package/lib/plugins/characters/utils.js +3 -6
  17. package/lib/plugins/characters/utils.js.map +1 -1
  18. package/lib/plugins/css/icons/index.js +13 -25
  19. package/lib/plugins/css/icons/index.js.map +1 -1
  20. package/lib/plugins/css/index.js +22 -88
  21. package/lib/plugins/css/index.js.map +1 -1
  22. package/lib/plugins/customPlugin/index.js +10 -26
  23. package/lib/plugins/customPlugin/index.js.map +1 -1
  24. package/lib/plugins/html/icons/index.js +14 -26
  25. package/lib/plugins/html/icons/index.js.map +1 -1
  26. package/lib/plugins/html/index.js +4 -13
  27. package/lib/plugins/html/index.js.map +1 -1
  28. package/lib/plugins/image/alt-dialog.js +20 -49
  29. package/lib/plugins/image/alt-dialog.js.map +1 -1
  30. package/lib/plugins/image/component.js +119 -190
  31. package/lib/plugins/image/component.js.map +1 -1
  32. package/lib/plugins/image/image-toolbar.js +44 -86
  33. package/lib/plugins/image/image-toolbar.js.map +1 -1
  34. package/lib/plugins/image/index.js +6 -46
  35. package/lib/plugins/image/index.js.map +1 -1
  36. package/lib/plugins/image/insert-image-handler.js +10 -31
  37. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  38. package/lib/plugins/index.js +44 -106
  39. package/lib/plugins/index.js.map +1 -1
  40. package/lib/plugins/list/index.js +27 -73
  41. package/lib/plugins/list/index.js.map +1 -1
  42. package/lib/plugins/math/index.js +64 -116
  43. package/lib/plugins/math/index.js.map +1 -1
  44. package/lib/plugins/media/index.js +23 -81
  45. package/lib/plugins/media/index.js.map +1 -1
  46. package/lib/plugins/media/media-dialog.js +192 -307
  47. package/lib/plugins/media/media-dialog.js.map +1 -1
  48. package/lib/plugins/media/media-toolbar.js +40 -65
  49. package/lib/plugins/media/media-toolbar.js.map +1 -1
  50. package/lib/plugins/media/media-wrapper.js +20 -49
  51. package/lib/plugins/media/media-wrapper.js.map +1 -1
  52. package/lib/plugins/rendering/index.js +5 -15
  53. package/lib/plugins/rendering/index.js.map +1 -1
  54. package/lib/plugins/respArea/drag-in-the-blank/choice.js +175 -249
  55. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  56. package/lib/plugins/respArea/drag-in-the-blank/index.js +39 -29
  57. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  58. package/lib/plugins/respArea/explicit-constructed-response/index.js +3 -10
  59. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  60. package/lib/plugins/respArea/icons/index.js +22 -45
  61. package/lib/plugins/respArea/icons/index.js.map +1 -1
  62. package/lib/plugins/respArea/index.js +5 -59
  63. package/lib/plugins/respArea/index.js.map +1 -1
  64. package/lib/plugins/respArea/inline-dropdown/index.js +2 -10
  65. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  66. package/lib/plugins/respArea/math-templated/index.js +92 -109
  67. package/lib/plugins/respArea/math-templated/index.js.map +1 -1
  68. package/lib/plugins/respArea/utils.js +8 -40
  69. package/lib/plugins/respArea/utils.js.map +1 -1
  70. package/lib/plugins/table/CustomTablePlugin.js +24 -41
  71. package/lib/plugins/table/CustomTablePlugin.js.map +1 -1
  72. package/lib/plugins/table/icons/index.js +19 -35
  73. package/lib/plugins/table/icons/index.js.map +1 -1
  74. package/lib/plugins/table/index.js +41 -118
  75. package/lib/plugins/table/index.js.map +1 -1
  76. package/lib/plugins/table/table-toolbar.js +37 -87
  77. package/lib/plugins/table/table-toolbar.js.map +1 -1
  78. package/lib/plugins/textAlign/icons/index.js +18 -64
  79. package/lib/plugins/textAlign/icons/index.js.map +1 -1
  80. package/lib/plugins/textAlign/index.js +1 -6
  81. package/lib/plugins/textAlign/index.js.map +1 -1
  82. package/lib/plugins/toolbar/default-toolbar.js +30 -79
  83. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  84. package/lib/plugins/toolbar/done-button.js +16 -34
  85. package/lib/plugins/toolbar/done-button.js.map +1 -1
  86. package/lib/plugins/toolbar/editor-and-toolbar.js +174 -201
  87. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  88. package/lib/plugins/toolbar/index.js +0 -5
  89. package/lib/plugins/toolbar/index.js.map +1 -1
  90. package/lib/plugins/toolbar/toolbar-buttons.js +57 -107
  91. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  92. package/lib/plugins/toolbar/toolbar.js +95 -161
  93. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  94. package/lib/plugins/utils.js +5 -25
  95. package/lib/plugins/utils.js.map +1 -1
  96. package/lib/serialization.js +44 -150
  97. package/lib/serialization.js.map +1 -1
  98. package/lib/shared/alert-dialog.js +23 -42
  99. package/lib/theme.js +1 -2
  100. package/lib/theme.js.map +1 -1
  101. package/package.json +15 -21
  102. package/src/__tests__/utils.js +1 -1
  103. package/src/editor.jsx +110 -108
  104. package/src/plugins/characters/custom-popper.js +20 -25
  105. package/src/plugins/css/icons/index.jsx +11 -13
  106. package/src/plugins/css/index.jsx +3 -5
  107. package/src/plugins/html/icons/index.jsx +12 -14
  108. package/src/plugins/image/alt-dialog.jsx +9 -8
  109. package/src/plugins/image/component.jsx +67 -87
  110. package/src/plugins/image/image-toolbar.jsx +26 -26
  111. package/src/plugins/image/index.jsx +1 -1
  112. package/src/plugins/index.jsx +10 -10
  113. package/src/plugins/math/index.jsx +1 -1
  114. package/src/plugins/media/index.jsx +2 -2
  115. package/src/plugins/media/media-dialog.js +65 -76
  116. package/src/plugins/media/media-toolbar.jsx +32 -33
  117. package/src/plugins/media/media-wrapper.jsx +10 -13
  118. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +193 -180
  119. package/src/plugins/respArea/drag-in-the-blank/index.jsx +58 -22
  120. package/src/plugins/respArea/icons/index.jsx +16 -16
  121. package/src/plugins/respArea/math-templated/index.jsx +88 -89
  122. package/src/plugins/respArea/utils.jsx +1 -1
  123. package/src/plugins/table/icons/index.jsx +14 -16
  124. package/src/plugins/table/index.jsx +27 -19
  125. package/src/plugins/table/table-toolbar.jsx +17 -19
  126. package/src/plugins/textAlign/icons/index.jsx +3 -3
  127. package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +1 -1
  128. package/src/plugins/toolbar/__tests__/toolbar.test.jsx +1 -1
  129. package/src/plugins/toolbar/default-toolbar.jsx +18 -21
  130. package/src/plugins/toolbar/done-button.jsx +16 -22
  131. package/src/plugins/toolbar/editor-and-toolbar.jsx +134 -157
  132. package/src/plugins/toolbar/toolbar-buttons.jsx +29 -46
  133. package/src/plugins/toolbar/toolbar.jsx +60 -78
  134. package/esm/index.js +0 -111560
  135. package/esm/index.js.map +0 -1
  136. package/esm/package.json +0 -1
@@ -1,21 +1,16 @@
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["default"] = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _slate = require("slate");
15
-
16
11
  var _debug = _interopRequireDefault(require("debug"));
17
-
18
12
  var log = (0, _debug["default"])('@pie-lib:editable-html:image:insert-image-handler');
13
+
19
14
  /**
20
15
  * Handles user selection, insertion (or cancellation) of an image into the editor.
21
16
  * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image
@@ -24,7 +19,6 @@ var log = (0, _debug["default"])('@pie-lib:editable-html:image:insert-image-hand
24
19
  * @param {Function} onChange - callback to notify changes applied by the handler
25
20
  * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted
26
21
  */
27
-
28
22
  var InsertImageHandler = /*#__PURE__*/function () {
29
23
  function InsertImageHandler(placeholderBlock, onFinish, getValue, onChange) {
30
24
  var isPasted = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
@@ -36,19 +30,15 @@ var InsertImageHandler = /*#__PURE__*/function () {
36
30
  this.isPasted = isPasted;
37
31
  this.chosenFile = null;
38
32
  }
39
-
40
- (0, _createClass2["default"])(InsertImageHandler, [{
33
+ return (0, _createClass2["default"])(InsertImageHandler, [{
41
34
  key: "getPlaceholderInDocument",
42
35
  value: function getPlaceholderInDocument(value) {
43
36
  var document = value.document;
44
37
  var directChild = document.getChild(this.placeholderBlock.key);
45
-
46
38
  if (directChild) {
47
39
  return directChild;
48
40
  }
49
-
50
41
  var child = document.getDescendant(this.placeholderBlock.key);
51
-
52
42
  if (child) {
53
43
  return child;
54
44
  } else {
@@ -60,24 +50,22 @@ var InsertImageHandler = /*#__PURE__*/function () {
60
50
  key: "cancel",
61
51
  value: function cancel() {
62
52
  log('insert cancelled');
63
-
64
53
  try {
65
54
  var value = this.getValue();
66
55
  var child = this.getPlaceholderInDocument(value);
67
-
68
56
  if (child) {
69
57
  var c = value.change().removeNodeByKey(child.key);
70
58
  this.onChange(c);
71
59
  this.onFinish(false);
72
60
  }
73
- } catch (err) {//
61
+ } catch (err) {
62
+ //
74
63
  }
75
64
  }
76
65
  }, {
77
66
  key: "done",
78
67
  value: function done(err, src) {
79
68
  log('done: err:', err);
80
-
81
69
  if (err) {
82
70
  //eslint-disable-next-line
83
71
  console.log(err);
@@ -97,41 +85,34 @@ var InsertImageHandler = /*#__PURE__*/function () {
97
85
  this.onFinish(true);
98
86
  }
99
87
  }
88
+
100
89
  /**
101
90
  * Notify handler that the user chose a file - will create a change with a preview in the editor.
102
91
  *
103
92
  * @param {File} file - the file that the user chose using a file input.
104
93
  */
105
-
106
94
  }, {
107
95
  key: "fileChosen",
108
96
  value: function fileChosen(file) {
109
97
  var _this = this;
110
-
111
98
  if (!file) {
112
99
  return;
113
- } // Save the chosen file to this.chosenFile
114
-
100
+ }
115
101
 
102
+ // Save the chosen file to this.chosenFile
116
103
  this.chosenFile = file;
117
104
  log('[fileChosen] file: ', file);
118
105
  var reader = new FileReader();
119
-
120
106
  reader.onload = function () {
121
107
  var value = _this.getValue();
122
-
123
108
  var dataURL = reader.result;
124
-
125
109
  var child = _this.getPlaceholderInDocument(value);
126
-
127
110
  var data = child.data.set('src', dataURL);
128
111
  var change = value.change().setNodeByKey(_this.placeholderBlock.key, {
129
112
  data: data
130
113
  });
131
-
132
114
  _this.onChange(change);
133
115
  };
134
-
135
116
  reader.readAsDataURL(file);
136
117
  }
137
118
  }, {
@@ -145,17 +126,15 @@ var InsertImageHandler = /*#__PURE__*/function () {
145
126
  data: data
146
127
  });
147
128
  this.onChange(change);
148
- } // Add a getter method to retrieve the chosen file
129
+ }
149
130
 
131
+ // Add a getter method to retrieve the chosen file
150
132
  }, {
151
133
  key: "getChosenFile",
152
134
  value: function getChosenFile() {
153
135
  return this.chosenFile;
154
136
  }
155
137
  }]);
156
- return InsertImageHandler;
157
138
  }();
158
-
159
- var _default = InsertImageHandler;
160
- exports["default"] = _default;
139
+ var _default = exports["default"] = InsertImageHandler;
161
140
  //# sourceMappingURL=insert-image-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/insert-image-handler.js"],"names":["log","InsertImageHandler","placeholderBlock","onFinish","getValue","onChange","isPasted","chosenFile","value","document","directChild","getChild","key","child","getDescendant","Error","getPlaceholderInDocument","c","change","removeNodeByKey","err","src","console","data","merge","Data","create","loaded","percent","setNodeByKey","file","reader","FileReader","onload","dataURL","result","set","readAsDataURL","bytes","total"],"mappings":"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","sourcesContent":["import { Data } from 'slate';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:image:insert-image-handler');\n\n/**\n * Handles user selection, insertion (or cancellation) of an image into the editor.\n * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image\n * @param {Function} onFinish - a function to call if uploading fails or succeeds\n * @param {Function} getValue - a function to return the value of the editor\n * @param {Function} onChange - callback to notify changes applied by the handler\n * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted\n */\nclass InsertImageHandler {\n constructor(placeholderBlock, onFinish, getValue, onChange, isPasted = false) {\n this.placeholderBlock = placeholderBlock;\n this.getValue = getValue;\n this.onFinish = onFinish;\n this.onChange = onChange;\n this.isPasted = isPasted;\n this.chosenFile = null;\n }\n\n getPlaceholderInDocument(value) {\n const { document } = value;\n const directChild = document.getChild(this.placeholderBlock.key);\n\n if (directChild) {\n return directChild;\n }\n\n const child = document.getDescendant(this.placeholderBlock.key);\n\n if (child) {\n return child;\n } else {\n // eslint-disable-next-line\n throw new Error(\"insert-image: Can't find placeholder!\");\n }\n }\n\n cancel() {\n log('insert cancelled');\n\n try {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n\n if (child) {\n const c = value.change().removeNodeByKey(child.key);\n this.onChange(c);\n this.onFinish(false);\n }\n } catch (err) {\n //\n }\n }\n\n done(err, src) {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n this.onFinish(false);\n } else {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.merge(Data.create({ loaded: true, src, percent: 100 }));\n\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n this.onFinish(true);\n }\n }\n\n /**\n * Notify handler that the user chose a file - will create a change with a preview in the editor.\n *\n * @param {File} file - the file that the user chose using a file input.\n */\n fileChosen(file) {\n if (!file) {\n return;\n }\n\n // Save the chosen file to this.chosenFile\n this.chosenFile = file;\n\n log('[fileChosen] file: ', file);\n const reader = new FileReader();\n reader.onload = () => {\n const value = this.getValue();\n const dataURL = reader.result;\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('src', dataURL);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n };\n reader.readAsDataURL(file);\n }\n\n progress(percent, bytes, total) {\n log('progress: ', percent, bytes, total);\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('percent', percent);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n\n // Add a getter method to retrieve the chosen file\n getChosenFile() {\n return this.chosenFile;\n }\n}\n\nexport default InsertImageHandler;\n"],"file":"insert-image-handler.js"}
1
+ {"version":3,"file":"insert-image-handler.js","names":["_slate","require","_debug","_interopRequireDefault","log","debug","InsertImageHandler","placeholderBlock","onFinish","getValue","onChange","isPasted","arguments","length","undefined","_classCallCheck2","chosenFile","_createClass2","key","value","getPlaceholderInDocument","document","directChild","getChild","child","getDescendant","Error","cancel","c","change","removeNodeByKey","err","done","src","console","data","merge","Data","create","loaded","percent","setNodeByKey","fileChosen","file","_this","reader","FileReader","onload","dataURL","result","set","readAsDataURL","progress","bytes","total","getChosenFile","_default","exports"],"sources":["../../../src/plugins/image/insert-image-handler.js"],"sourcesContent":["import { Data } from 'slate';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:image:insert-image-handler');\n\n/**\n * Handles user selection, insertion (or cancellation) of an image into the editor.\n * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image\n * @param {Function} onFinish - a function to call if uploading fails or succeeds\n * @param {Function} getValue - a function to return the value of the editor\n * @param {Function} onChange - callback to notify changes applied by the handler\n * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted\n */\nclass InsertImageHandler {\n constructor(placeholderBlock, onFinish, getValue, onChange, isPasted = false) {\n this.placeholderBlock = placeholderBlock;\n this.getValue = getValue;\n this.onFinish = onFinish;\n this.onChange = onChange;\n this.isPasted = isPasted;\n this.chosenFile = null;\n }\n\n getPlaceholderInDocument(value) {\n const { document } = value;\n const directChild = document.getChild(this.placeholderBlock.key);\n\n if (directChild) {\n return directChild;\n }\n\n const child = document.getDescendant(this.placeholderBlock.key);\n\n if (child) {\n return child;\n } else {\n // eslint-disable-next-line\n throw new Error(\"insert-image: Can't find placeholder!\");\n }\n }\n\n cancel() {\n log('insert cancelled');\n\n try {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n\n if (child) {\n const c = value.change().removeNodeByKey(child.key);\n this.onChange(c);\n this.onFinish(false);\n }\n } catch (err) {\n //\n }\n }\n\n done(err, src) {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n this.onFinish(false);\n } else {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.merge(Data.create({ loaded: true, src, percent: 100 }));\n\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n this.onFinish(true);\n }\n }\n\n /**\n * Notify handler that the user chose a file - will create a change with a preview in the editor.\n *\n * @param {File} file - the file that the user chose using a file input.\n */\n fileChosen(file) {\n if (!file) {\n return;\n }\n\n // Save the chosen file to this.chosenFile\n this.chosenFile = file;\n\n log('[fileChosen] file: ', file);\n const reader = new FileReader();\n reader.onload = () => {\n const value = this.getValue();\n const dataURL = reader.result;\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('src', dataURL);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n };\n reader.readAsDataURL(file);\n }\n\n progress(percent, bytes, total) {\n log('progress: ', percent, bytes, total);\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('percent', percent);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n\n // Add a getter method to retrieve the chosen file\n getChosenFile() {\n return this.chosenFile;\n }\n}\n\nexport default InsertImageHandler;\n"],"mappings":"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","ignoreList":[]}
@@ -1,82 +1,45 @@
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.buildPlugins = exports.DEFAULT_PLUGINS = exports.ALL_PLUGINS = void 0;
9
-
10
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
10
  var _slateHotkeys = _interopRequireDefault(require("slate-hotkeys"));
15
-
16
11
  var _slateDevEnvironment = require("slate-dev-environment");
17
-
18
12
  var _slate = require("slate");
19
-
20
- var _FormatBold = _interopRequireDefault(require("@material-ui/icons/FormatBold"));
21
-
22
- var _FormatQuote = _interopRequireDefault(require("@material-ui/icons/FormatQuote"));
23
-
24
- var _FormatListBulleted = _interopRequireDefault(require("@material-ui/icons/FormatListBulleted"));
25
-
26
- var _FormatListNumbered = _interopRequireDefault(require("@material-ui/icons/FormatListNumbered"));
27
-
28
- var _Redo = _interopRequireDefault(require("@material-ui/icons/Redo"));
29
-
30
- var _Undo = _interopRequireDefault(require("@material-ui/icons/Undo"));
31
-
13
+ var _FormatBold = _interopRequireDefault(require("@mui/icons-material/FormatBold"));
14
+ var _FormatQuote = _interopRequireDefault(require("@mui/icons-material/FormatQuote"));
15
+ var _FormatListBulleted = _interopRequireDefault(require("@mui/icons-material/FormatListBulleted"));
16
+ var _FormatListNumbered = _interopRequireDefault(require("@mui/icons-material/FormatListNumbered"));
17
+ var _Redo = _interopRequireDefault(require("@mui/icons-material/Redo"));
18
+ var _Undo = _interopRequireDefault(require("@mui/icons-material/Undo"));
32
19
  var _image = _interopRequireDefault(require("./image"));
33
-
34
20
  var _media = _interopRequireDefault(require("./media"));
35
-
36
21
  var _characters = _interopRequireDefault(require("./characters"));
37
-
38
- var _FormatItalic = _interopRequireDefault(require("@material-ui/icons/FormatItalic"));
39
-
22
+ var _FormatItalic = _interopRequireDefault(require("@mui/icons-material/FormatItalic"));
40
23
  var _math = _interopRequireDefault(require("./math"));
41
-
42
24
  var _react = _interopRequireDefault(require("react"));
43
-
44
- var _FormatStrikethrough = _interopRequireDefault(require("@material-ui/icons/FormatStrikethrough"));
45
-
25
+ var _FormatStrikethrough = _interopRequireDefault(require("@mui/icons-material/FormatStrikethrough"));
46
26
  var _toolbar = _interopRequireDefault(require("./toolbar"));
47
-
48
- var _FormatUnderlined = _interopRequireDefault(require("@material-ui/icons/FormatUnderlined"));
49
-
27
+ var _FormatUnderlined = _interopRequireDefault(require("@mui/icons-material/FormatUnderlined"));
50
28
  var _compact = _interopRequireDefault(require("lodash/compact"));
51
-
52
29
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
53
-
54
30
  var _slateSoftBreak = _interopRequireDefault(require("slate-soft-break"));
55
-
56
31
  var _debug = _interopRequireDefault(require("debug"));
57
-
58
32
  var _list = _interopRequireDefault(require("./list"));
59
-
60
33
  var _table = _interopRequireDefault(require("./table"));
61
-
62
34
  var _respArea = _interopRequireDefault(require("./respArea"));
63
-
64
35
  var _html = _interopRequireDefault(require("./html"));
65
-
66
36
  var _css = _interopRequireDefault(require("./css"));
67
-
68
37
  var _customPlugin = _interopRequireDefault(require("./customPlugin"));
69
-
70
38
  var _rendering = _interopRequireDefault(require("./rendering"));
71
-
72
39
  var _textAlign = _interopRequireDefault(require("./textAlign"));
73
-
74
- 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; }
75
-
76
- 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; }
77
-
40
+ 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; }
41
+ 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; } //import Code from '@mui/icons-material/Code';
78
42
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins');
79
-
80
43
  var SuperscriptIcon = function SuperscriptIcon() {
81
44
  return /*#__PURE__*/_react["default"].createElement("svg", {
82
45
  xmlns: "http://www.w3.org/2000/svg",
@@ -89,7 +52,6 @@ var SuperscriptIcon = function SuperscriptIcon() {
89
52
  fill: "currentColor"
90
53
  }));
91
54
  };
92
-
93
55
  var SubscriptIcon = function SubscriptIcon() {
94
56
  return /*#__PURE__*/_react["default"].createElement("svg", {
95
57
  xmlns: "http://www.w3.org/2000/svg",
@@ -102,7 +64,6 @@ var SubscriptIcon = function SubscriptIcon() {
102
64
  fill: "currentColor"
103
65
  }));
104
66
  };
105
-
106
67
  var HeadingIcon = function HeadingIcon() {
107
68
  return /*#__PURE__*/_react["default"].createElement("svg", {
108
69
  width: "30",
@@ -119,7 +80,6 @@ var HeadingIcon = function HeadingIcon() {
119
80
  fill: "currentColor"
120
81
  }));
121
82
  };
122
-
123
83
  var STYLES_MAP = {
124
84
  h3: {
125
85
  fontSize: 'inherit',
@@ -132,13 +92,13 @@ var STYLES_MAP = {
132
92
  padding: '.5em 10px'
133
93
  }
134
94
  };
135
-
136
95
  function MarkHotkey(options) {
137
96
  var type = options.type,
138
- key = options.key,
139
- icon = options.icon,
140
- tag = options.tag; // Return our "plugin" object, containing the `onKeyDown` handler.
97
+ key = options.key,
98
+ icon = options.icon,
99
+ tag = options.tag;
141
100
 
101
+ // Return our "plugin" object, containing the `onKeyDown` handler.
142
102
  return {
143
103
  name: type,
144
104
  toolbar: {
@@ -148,7 +108,6 @@ function MarkHotkey(options) {
148
108
  onToggle: function onToggle(change) {
149
109
  log('[onToggleMark] type: ', type);
150
110
  var selection = change.value.selection;
151
-
152
111
  if (['blockquote', 'h3'].includes(type)) {
153
112
  var texts = change.value.document.getTextsAtRangeAsArray(selection);
154
113
  var onlyOneText = texts.length === 1;
@@ -159,7 +118,6 @@ function MarkHotkey(options) {
159
118
  var markIsThere = marks.find(function (m) {
160
119
  return m.type === type;
161
120
  });
162
-
163
121
  if (!markIsThere) {
164
122
  // not all texts have this mark
165
123
  sameMark = false;
@@ -169,80 +127,72 @@ function MarkHotkey(options) {
169
127
  }
170
128
  });
171
129
  var shouldContinue = onlyOneText || sameMark || !hasMark;
172
-
173
130
  if (!shouldContinue) {
174
131
  return change;
175
132
  }
176
-
177
133
  if (selection.startKey === selection.endKey && selection.anchorOffset === selection.focusOffset) {
178
- var textNode = change.value.document.getNode(selection.startKey); // select the whole line if there is no selection
134
+ var textNode = change.value.document.getNode(selection.startKey);
179
135
 
180
- change.moveFocusTo(textNode.key, 0).moveAnchorTo(textNode.key, textNode.text.length); // remove toggle
136
+ // select the whole line if there is no selection
137
+ change.moveFocusTo(textNode.key, 0).moveAnchorTo(textNode.key, textNode.text.length);
181
138
 
139
+ // remove toggle
182
140
  var _hasMark = change.value.activeMarks.find(function (entry) {
183
141
  return entry.type === type;
184
142
  });
185
-
186
143
  if (_hasMark) {
187
144
  change.removeMark(_hasMark);
188
145
  } else {
189
146
  var newMark = _slate.Mark.create(type);
190
-
191
147
  change.addMark(newMark);
192
- } // move focus to end of text
193
-
148
+ }
194
149
 
150
+ // move focus to end of text
195
151
  return change.moveFocusTo(textNode.key, textNode.text.length).moveAnchorTo(textNode.key, textNode.text.length);
196
152
  }
197
153
  }
198
-
199
154
  return change.toggleMark(type);
200
155
  }
201
156
  },
202
157
  renderMark: function renderMark(props) {
203
158
  if (props.mark.type === type) {
204
159
  var _ref = props.node || {},
205
- data = _ref.data;
206
-
160
+ data = _ref.data;
207
161
  var jsonData = (data === null || data === void 0 ? void 0 : data.toJSON()) || {};
208
162
  var K = tag || type;
209
163
  var additionalStyles = STYLES_MAP[K];
210
-
211
164
  if (additionalStyles) {
212
165
  if (!jsonData.attributes) {
213
166
  jsonData.attributes = {};
214
167
  }
215
-
216
168
  jsonData.attributes.style = _objectSpread(_objectSpread({}, jsonData.attributes.style), additionalStyles);
217
169
  }
218
-
219
170
  return /*#__PURE__*/_react["default"].createElement(K, jsonData.attributes, props.children);
220
171
  }
221
172
  },
222
173
  onKeyDown: function onKeyDown(event, change) {
223
174
  // Check that the key pressed matches our `key` option.
224
- if (!event.metaKey || event.key != key) return; // Prevent the default characters from being inserted.
175
+ if (!event.metaKey || event.key != key) return;
225
176
 
226
- event.preventDefault(); // Toggle the mark `type`.
177
+ // Prevent the default characters from being inserted.
178
+ event.preventDefault();
227
179
 
180
+ // Toggle the mark `type`.
228
181
  change.toggleMark(type);
229
182
  return true;
230
183
  }
231
184
  };
232
185
  }
233
-
234
- var ALL_PLUGINS = ['bold', // 'code',
186
+ var ALL_PLUGINS = exports.ALL_PLUGINS = ['bold',
187
+ // 'code',
235
188
  'html', 'extraCSSRules', 'italic', 'underline', 'strikethrough', 'bulleted-list', 'numbered-list', 'image', 'math', 'languageCharacters', 'text-align', 'blockquote', 'h3', 'table', 'video', 'audio', 'responseArea', 'redo', 'undo', 'superscript', 'subscript'];
236
- exports.ALL_PLUGINS = ALL_PLUGINS;
237
- var DEFAULT_PLUGINS = ALL_PLUGINS.filter(function (plug) {
189
+ var DEFAULT_PLUGINS = exports.DEFAULT_PLUGINS = ALL_PLUGINS.filter(function (plug) {
238
190
  return !['responseArea', 'h3', 'blockquote'].includes(plug);
239
191
  });
240
- exports.DEFAULT_PLUGINS = DEFAULT_PLUGINS;
241
192
  var ICON_MAP = {
242
193
  undo: _Undo["default"],
243
194
  redo: _Redo["default"]
244
195
  };
245
-
246
196
  function UndoRedo(type) {
247
197
  var IconToUse = ICON_MAP[type];
248
198
  return {
@@ -258,7 +208,6 @@ function UndoRedo(type) {
258
208
  }
259
209
  };
260
210
  }
261
-
262
211
  function EnterHandlingPlugin() {
263
212
  return {
264
213
  name: 'enterHandling',
@@ -267,33 +216,26 @@ function EnterHandlingPlugin() {
267
216
  if (change.value.isInVoid) {
268
217
  return change.collapseToStartOfNextText();
269
218
  }
270
-
271
219
  change.splitBlock();
272
220
  var range = change.value.selection;
273
221
  var newBlock = change.value.document.getClosestBlock(range.startKey);
274
-
275
222
  if (newBlock.type !== 'paragraph') {
276
223
  change.setNodeByKey(newBlock.key, {
277
224
  type: 'paragraph'
278
225
  });
279
226
  }
280
-
281
227
  return change;
282
228
  }
283
-
284
229
  return undefined;
285
230
  }
286
231
  };
287
232
  }
288
-
289
- var buildPlugins = function buildPlugins(activePlugins, customPlugins, opts) {
233
+ var buildPlugins = exports.buildPlugins = function buildPlugins(activePlugins, customPlugins, opts) {
290
234
  log('[buildPlugins] opts: ', opts);
291
235
  activePlugins = activePlugins || DEFAULT_PLUGINS;
292
-
293
236
  var addIf = function addIf(key, p) {
294
237
  return activePlugins.includes(key) && p;
295
238
  };
296
-
297
239
  var imagePlugin = opts.image && opts.image.onDelete && (0, _image["default"])(opts.image);
298
240
  var mathPlugin = (0, _math["default"])(opts.math);
299
241
  var respAreaPlugin = opts.responseArea && opts.responseArea.type && (0, _respArea["default"])(opts.responseArea, (0, _compact["default"])([mathPlugin]));
@@ -305,41 +247,36 @@ var buildPlugins = function buildPlugins(activePlugins, customPlugins, opts) {
305
247
  }));
306
248
  });
307
249
  var tablePlugins = [imagePlugin, mathPlugin, respAreaPlugin].concat((0, _toConsumableArray2["default"])(languageCharactersPlugins));
308
-
309
250
  if (opts.responseArea && opts.responseArea.type === 'math-templated') {
310
251
  tablePlugins.push(respAreaPlugin);
311
252
  }
312
-
313
253
  var builtCustomPlugins = [];
314
254
  customPlugins.forEach(function (customPlugin) {
315
255
  var _ref2 = customPlugin || {},
316
- event = _ref2.event,
317
- icon = _ref2.icon,
318
- iconType = _ref2.iconType,
319
- iconAlt = _ref2.iconAlt;
320
-
256
+ event = _ref2.event,
257
+ icon = _ref2.icon,
258
+ iconType = _ref2.iconType,
259
+ iconAlt = _ref2.iconAlt;
321
260
  function isValidEventName(eventName) {
322
261
  // Check if eventName is a non-empty string
323
262
  if (typeof eventName !== 'string' || eventName.length === 0) {
324
263
  return false;
325
- } // Regular expression to match valid event names (only alphanumeric characters and underscore)
326
-
264
+ }
327
265
 
328
- var regex = /^[a-zA-Z0-9_]+$/; // Check if the eventName matches the regular expression
266
+ // Regular expression to match valid event names (only alphanumeric characters and underscore)
267
+ var regex = /^[a-zA-Z0-9_]+$/;
329
268
 
269
+ // Check if the eventName matches the regular expression
330
270
  return regex.test(eventName);
331
271
  }
332
-
333
272
  if (!isValidEventName(event)) {
334
273
  console.error("The event name: ".concat(event, " is not a valid event name!"));
335
274
  return;
336
275
  }
337
-
338
276
  if (!icon && !iconType && !iconAlt) {
339
277
  console.error('Your custom button requires icon, iconType and iconAlt');
340
278
  return;
341
279
  }
342
-
343
280
  builtCustomPlugins.push((0, _customPlugin["default"])('custom-plugin', customPlugin));
344
281
  });
345
282
  return (0, _compact["default"])([addIf('table', (0, _table["default"])(opts.table, (0, _compact["default"])(tablePlugins))), addIf('bold', MarkHotkey({
@@ -347,7 +284,8 @@ var buildPlugins = function buildPlugins(activePlugins, customPlugins, opts) {
347
284
  type: 'bold',
348
285
  icon: /*#__PURE__*/_react["default"].createElement(_FormatBold["default"], null),
349
286
  tag: 'strong'
350
- })), // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),
287
+ })),
288
+ // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),
351
289
  addIf('italic', MarkHotkey({
352
290
  key: 'i',
353
291
  type: 'italic',
@@ -363,12 +301,14 @@ var buildPlugins = function buildPlugins(activePlugins, customPlugins, opts) {
363
301
  type: 'underline',
364
302
  icon: /*#__PURE__*/_react["default"].createElement(_FormatUnderlined["default"], null),
365
303
  tag: 'u'
366
- })), // icon should be modifies accordingly
304
+ })),
305
+ // icon should be modifies accordingly
367
306
  addIf('superscript', MarkHotkey({
368
307
  type: 'sup',
369
308
  icon: /*#__PURE__*/_react["default"].createElement(SuperscriptIcon, null),
370
309
  tag: 'sup'
371
- })), // icon should be modifies accordingly
310
+ })),
311
+ // icon should be modifies accordingly
372
312
  addIf('subscript', MarkHotkey({
373
313
  type: 'sub',
374
314
  icon: /*#__PURE__*/_react["default"].createElement(SubscriptIcon, null),
@@ -397,6 +337,4 @@ var buildPlugins = function buildPlugins(activePlugins, customPlugins, opts) {
397
337
  shift: true
398
338
  })], builtCustomPlugins, [addIf('responseArea', respAreaPlugin), cssPlugin, addIf('html', (0, _html["default"])(opts.html)), EnterHandlingPlugin(), (0, _rendering["default"])()]));
399
339
  };
400
-
401
- exports.buildPlugins = buildPlugins;
402
340
  //# sourceMappingURL=index.js.map