@pie-lib/editable-html-tip-tap 2.1.2-next.30 → 2.1.2-next.34

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 (276) hide show
  1. package/CHANGELOG.json +32 -0
  2. package/CHANGELOG.md +2532 -0
  3. package/LICENSE.md +5 -0
  4. package/lib/components/CharacterPicker.js +201 -0
  5. package/lib/components/CharacterPicker.js.map +1 -0
  6. package/lib/components/EditableHtml.js +376 -0
  7. package/lib/components/EditableHtml.js.map +1 -0
  8. package/lib/components/MenuBar.js +696 -0
  9. package/lib/components/MenuBar.js.map +1 -0
  10. package/lib/components/TiptapContainer.js +234 -0
  11. package/lib/components/TiptapContainer.js.map +1 -0
  12. package/lib/components/characters/characterUtils.js +378 -0
  13. package/lib/components/characters/characterUtils.js.map +1 -0
  14. package/lib/components/characters/custom-popper.js +44 -0
  15. package/lib/components/characters/custom-popper.js.map +1 -0
  16. package/lib/components/common/done-button.js +34 -0
  17. package/lib/components/common/done-button.js.map +1 -0
  18. package/lib/components/common/toolbar-buttons.js +144 -0
  19. package/lib/components/common/toolbar-buttons.js.map +1 -0
  20. package/lib/components/icons/CssIcon.js +25 -0
  21. package/lib/components/icons/CssIcon.js.map +1 -0
  22. package/lib/components/icons/RespArea.js +72 -0
  23. package/lib/components/icons/RespArea.js.map +1 -0
  24. package/lib/components/icons/TableIcons.js +53 -0
  25. package/lib/components/icons/TableIcons.js.map +1 -0
  26. package/lib/components/icons/TextAlign.js +157 -0
  27. package/lib/components/icons/TextAlign.js.map +1 -0
  28. package/lib/components/image/AltDialog.js +98 -0
  29. package/lib/components/image/AltDialog.js.map +1 -0
  30. package/lib/components/image/ImageToolbar.js +137 -0
  31. package/lib/components/image/ImageToolbar.js.map +1 -0
  32. package/lib/components/image/InsertImageHandler.js +135 -0
  33. package/lib/components/image/InsertImageHandler.js.map +1 -0
  34. package/lib/components/media/MediaDialog.js +594 -0
  35. package/lib/components/media/MediaDialog.js.map +1 -0
  36. package/lib/components/media/MediaToolbar.js +74 -0
  37. package/lib/components/media/MediaToolbar.js.map +1 -0
  38. package/lib/components/media/MediaWrapper.js +67 -0
  39. package/lib/components/media/MediaWrapper.js.map +1 -0
  40. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +84 -0
  41. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -0
  42. package/lib/components/respArea/DragInTheBlank/choice.js +250 -0
  43. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -0
  44. package/lib/components/respArea/ExplicitConstructedResponse.js +136 -0
  45. package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -0
  46. package/lib/components/respArea/InlineDropdown.js +209 -0
  47. package/lib/components/respArea/InlineDropdown.js.map +1 -0
  48. package/lib/components/respArea/MathTemplated.js +130 -0
  49. package/lib/components/respArea/MathTemplated.js.map +1 -0
  50. package/lib/components/respArea/ToolbarIcon.js +81 -0
  51. package/lib/components/respArea/ToolbarIcon.js.map +1 -0
  52. package/lib/components/respArea/inlineDropdownUtils.js +67 -0
  53. package/lib/components/respArea/inlineDropdownUtils.js.map +1 -0
  54. package/lib/constants.js +11 -0
  55. package/lib/constants.js.map +1 -0
  56. package/lib/extensions/css.js +217 -0
  57. package/lib/extensions/css.js.map +1 -0
  58. package/lib/extensions/custom-toolbar-wrapper.js +92 -0
  59. package/lib/extensions/custom-toolbar-wrapper.js.map +1 -0
  60. package/lib/extensions/div-node.js +83 -0
  61. package/lib/extensions/div-node.js.map +1 -0
  62. package/lib/extensions/ensure-empty-root-div.js +48 -0
  63. package/lib/extensions/ensure-empty-root-div.js.map +1 -0
  64. package/lib/extensions/ensure-list-item-content-is-div.js +64 -0
  65. package/lib/extensions/ensure-list-item-content-is-div.js.map +1 -0
  66. package/lib/extensions/extended-list-item.js +15 -0
  67. package/lib/extensions/extended-list-item.js.map +1 -0
  68. package/lib/extensions/extended-table-cell.js +22 -0
  69. package/lib/extensions/extended-table-cell.js.map +1 -0
  70. package/lib/extensions/extended-table.js +75 -0
  71. package/lib/extensions/extended-table.js.map +1 -0
  72. package/lib/extensions/heading-paragraph.js +61 -0
  73. package/lib/extensions/heading-paragraph.js.map +1 -0
  74. package/lib/extensions/image-component.js +348 -0
  75. package/lib/extensions/image-component.js.map +1 -0
  76. package/lib/extensions/image.js +134 -0
  77. package/lib/extensions/image.js.map +1 -0
  78. package/lib/extensions/index.js +46 -0
  79. package/lib/extensions/index.js.map +1 -0
  80. package/lib/extensions/math.js +342 -0
  81. package/lib/extensions/math.js.map +1 -0
  82. package/lib/extensions/media.js +243 -0
  83. package/lib/extensions/media.js.map +1 -0
  84. package/lib/extensions/responseArea.js +446 -0
  85. package/lib/extensions/responseArea.js.map +1 -0
  86. package/lib/index.js +37 -0
  87. package/lib/index.js.map +1 -0
  88. package/lib/styles/editorContainerStyles.js +137 -0
  89. package/lib/styles/editorContainerStyles.js.map +1 -0
  90. package/lib/theme.js +8 -0
  91. package/lib/theme.js.map +1 -0
  92. package/lib/utils/helper.js +73 -0
  93. package/lib/utils/helper.js.map +1 -0
  94. package/lib/utils/size.js +26 -0
  95. package/lib/utils/size.js.map +1 -0
  96. package/package.json +24 -40
  97. package/src/__tests__/EditableHtml.test.jsx +554 -0
  98. package/src/__tests__/constants.test.js +19 -0
  99. package/src/__tests__/div-to-paragraph-conversion.test.jsx +125 -0
  100. package/src/__tests__/extensions.test.js +208 -0
  101. package/src/__tests__/index.test.jsx +154 -0
  102. package/src/__tests__/size-utils.test.js +64 -0
  103. package/src/__tests__/theme.test.js +17 -0
  104. package/src/components/CharacterPicker.jsx +207 -0
  105. package/src/components/EditableHtml.jsx +440 -0
  106. package/src/components/MenuBar.jsx +554 -0
  107. package/src/components/TiptapContainer.jsx +219 -0
  108. package/src/components/__tests__/AltDialog.test.jsx +147 -0
  109. package/src/components/__tests__/CharacterPicker.test.jsx +261 -0
  110. package/src/components/__tests__/CssIcon.test.jsx +46 -0
  111. package/src/components/__tests__/DragInTheBlank.test.jsx +255 -0
  112. package/src/components/__tests__/ExplicitConstructedResponse.test.jsx +204 -0
  113. package/src/components/__tests__/ImageToolbar.test.jsx +128 -0
  114. package/src/components/__tests__/InlineDropdown.test.jsx +388 -0
  115. package/src/components/__tests__/InsertImageHandler.test.js +161 -0
  116. package/src/components/__tests__/MediaDialog.test.jsx +293 -0
  117. package/src/components/__tests__/MediaToolbar.test.jsx +74 -0
  118. package/src/components/__tests__/MediaWrapper.test.jsx +81 -0
  119. package/src/components/__tests__/MenuBar.test.jsx +250 -0
  120. package/src/components/__tests__/RespArea.test.jsx +122 -0
  121. package/src/components/__tests__/TableIcons.test.jsx +149 -0
  122. package/src/components/__tests__/TextAlign.test.jsx +167 -0
  123. package/src/components/__tests__/TiptapContainer.test.jsx +138 -0
  124. package/src/components/__tests__/characterUtils.test.js +166 -0
  125. package/src/components/__tests__/choice.test.jsx +171 -0
  126. package/src/components/__tests__/custom-popper.test.jsx +82 -0
  127. package/src/components/__tests__/done-button.test.jsx +54 -0
  128. package/src/components/__tests__/toolbar-buttons.test.jsx +234 -0
  129. package/src/components/characters/characterUtils.js +447 -0
  130. package/src/components/characters/custom-popper.js +38 -0
  131. package/src/components/common/done-button.jsx +27 -0
  132. package/src/components/common/toolbar-buttons.jsx +122 -0
  133. package/src/components/icons/CssIcon.jsx +15 -0
  134. package/src/components/icons/RespArea.jsx +71 -0
  135. package/src/components/icons/TableIcons.jsx +52 -0
  136. package/src/components/icons/TextAlign.jsx +114 -0
  137. package/src/components/image/AltDialog.jsx +82 -0
  138. package/src/components/image/ImageToolbar.jsx +99 -0
  139. package/src/components/image/InsertImageHandler.js +107 -0
  140. package/src/components/media/MediaDialog.jsx +596 -0
  141. package/src/components/media/MediaToolbar.jsx +49 -0
  142. package/src/components/media/MediaWrapper.jsx +39 -0
  143. package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +76 -0
  144. package/src/components/respArea/DragInTheBlank/choice.jsx +256 -0
  145. package/src/components/respArea/ExplicitConstructedResponse.jsx +135 -0
  146. package/src/components/respArea/InlineDropdown.jsx +220 -0
  147. package/src/components/respArea/MathTemplated.jsx +124 -0
  148. package/src/components/respArea/ToolbarIcon.jsx +66 -0
  149. package/src/components/respArea/__tests__/MathTemplated.test.jsx +210 -0
  150. package/src/components/respArea/inlineDropdownUtils.js +79 -0
  151. package/src/constants.js +5 -0
  152. package/src/extensions/__tests__/css.test.js +196 -0
  153. package/src/extensions/__tests__/custom-toolbar-wrapper.test.jsx +180 -0
  154. package/src/extensions/__tests__/divNode.test.js +87 -0
  155. package/src/extensions/__tests__/ensure-empty-root-div.test.js +57 -0
  156. package/src/extensions/__tests__/ensure-list-item-content-is-div.test.js +44 -0
  157. package/src/extensions/__tests__/extended-list-item.test.js +13 -0
  158. package/src/extensions/__tests__/extended-table-cell.test.js +22 -0
  159. package/src/extensions/__tests__/extended-table.test.js +183 -0
  160. package/src/extensions/__tests__/image-component.test.jsx +345 -0
  161. package/src/extensions/__tests__/image.test.js +237 -0
  162. package/src/extensions/__tests__/math.test.js +603 -0
  163. package/src/extensions/__tests__/media-node-view.test.jsx +298 -0
  164. package/src/extensions/__tests__/media.test.js +271 -0
  165. package/src/extensions/__tests__/responseArea.test.js +601 -0
  166. package/src/extensions/css.js +220 -0
  167. package/src/extensions/custom-toolbar-wrapper.jsx +78 -0
  168. package/src/extensions/div-node.js +86 -0
  169. package/src/extensions/ensure-empty-root-div.js +47 -0
  170. package/src/extensions/ensure-list-item-content-is-div.js +62 -0
  171. package/src/extensions/extended-list-item.js +10 -0
  172. package/src/extensions/extended-table-cell.js +19 -0
  173. package/src/extensions/extended-table.js +60 -0
  174. package/src/extensions/heading-paragraph.js +53 -0
  175. package/src/extensions/image-component.jsx +338 -0
  176. package/src/extensions/image.js +109 -0
  177. package/src/extensions/index.js +81 -0
  178. package/src/extensions/math.js +326 -0
  179. package/src/extensions/media.js +188 -0
  180. package/src/extensions/responseArea.js +401 -0
  181. package/src/index.jsx +5 -0
  182. package/src/styles/editorContainerStyles.js +145 -0
  183. package/src/theme.js +1 -0
  184. package/src/utils/__tests__/helper.test.js +126 -0
  185. package/src/utils/helper.js +69 -0
  186. package/src/utils/size.js +32 -0
  187. package/dist/components/CharacterPicker.d.ts +0 -31
  188. package/dist/components/CharacterPicker.js +0 -131
  189. package/dist/components/EditableHtml.d.ts +0 -11
  190. package/dist/components/EditableHtml.js +0 -291
  191. package/dist/components/MenuBar.d.ts +0 -11
  192. package/dist/components/MenuBar.js +0 -462
  193. package/dist/components/TiptapContainer.d.ts +0 -11
  194. package/dist/components/TiptapContainer.js +0 -154
  195. package/dist/components/characters/characterUtils.d.ts +0 -35
  196. package/dist/components/characters/characterUtils.js +0 -465
  197. package/dist/components/characters/custom-popper.d.ts +0 -14
  198. package/dist/components/characters/custom-popper.js +0 -32
  199. package/dist/components/common/done-button.d.ts +0 -30
  200. package/dist/components/common/done-button.js +0 -26
  201. package/dist/components/common/toolbar-buttons.d.ts +0 -38
  202. package/dist/components/common/toolbar-buttons.js +0 -91
  203. package/dist/components/icons/CssIcon.d.ts +0 -11
  204. package/dist/components/icons/CssIcon.js +0 -14
  205. package/dist/components/icons/RespArea.d.ts +0 -26
  206. package/dist/components/icons/RespArea.js +0 -42
  207. package/dist/components/icons/TableIcons.d.ts +0 -14
  208. package/dist/components/icons/TableIcons.js +0 -32
  209. package/dist/components/icons/TextAlign.d.ts +0 -18
  210. package/dist/components/icons/TextAlign.js +0 -134
  211. package/dist/components/image/AltDialog.d.ts +0 -22
  212. package/dist/components/image/AltDialog.js +0 -61
  213. package/dist/components/image/ImageToolbar.d.ts +0 -24
  214. package/dist/components/image/ImageToolbar.js +0 -80
  215. package/dist/components/image/InsertImageHandler.d.ts +0 -32
  216. package/dist/components/image/InsertImageHandler.js +0 -53
  217. package/dist/components/media/MediaDialog.d.ts +0 -43
  218. package/dist/components/media/MediaDialog.js +0 -389
  219. package/dist/components/media/MediaToolbar.d.ts +0 -19
  220. package/dist/components/media/MediaToolbar.js +0 -41
  221. package/dist/components/media/MediaWrapper.d.ts +0 -19
  222. package/dist/components/respArea/DragInTheBlank/DragInTheBlank.d.ts +0 -23
  223. package/dist/components/respArea/DragInTheBlank/DragInTheBlank.js +0 -58
  224. package/dist/components/respArea/DragInTheBlank/choice.d.ts +0 -56
  225. package/dist/components/respArea/DragInTheBlank/choice.js +0 -156
  226. package/dist/components/respArea/ExplicitConstructedResponse.d.ts +0 -20
  227. package/dist/components/respArea/ExplicitConstructedResponse.js +0 -83
  228. package/dist/components/respArea/InlineDropdown.d.ts +0 -18
  229. package/dist/components/respArea/InlineDropdown.js +0 -119
  230. package/dist/components/respArea/MathTemplated.d.ts +0 -19
  231. package/dist/components/respArea/MathTemplated.js +0 -97
  232. package/dist/components/respArea/ToolbarIcon.d.ts +0 -14
  233. package/dist/components/respArea/ToolbarIcon.js +0 -17
  234. package/dist/components/respArea/inlineDropdownUtils.d.ts +0 -15
  235. package/dist/components/respArea/inlineDropdownUtils.js +0 -15
  236. package/dist/constants.d.ts +0 -13
  237. package/dist/constants.js +0 -4
  238. package/dist/extensions/css.d.ts +0 -11
  239. package/dist/extensions/css.js +0 -115
  240. package/dist/extensions/custom-toolbar-wrapper.d.ts +0 -11
  241. package/dist/extensions/custom-toolbar-wrapper.js +0 -61
  242. package/dist/extensions/div-node.d.ts +0 -10
  243. package/dist/extensions/div-node.js +0 -42
  244. package/dist/extensions/ensure-empty-root-div.d.ts +0 -14
  245. package/dist/extensions/ensure-empty-root-div.js +0 -24
  246. package/dist/extensions/ensure-list-item-content-is-div.d.ts +0 -15
  247. package/dist/extensions/ensure-list-item-content-is-div.js +0 -31
  248. package/dist/extensions/extended-list-item.d.ts +0 -13
  249. package/dist/extensions/extended-list-item.js +0 -5
  250. package/dist/extensions/extended-table-cell.d.ts +0 -10
  251. package/dist/extensions/extended-table-cell.js +0 -6
  252. package/dist/extensions/extended-table.d.ts +0 -17
  253. package/dist/extensions/extended-table.js +0 -34
  254. package/dist/extensions/heading-paragraph.d.ts +0 -17
  255. package/dist/extensions/heading-paragraph.js +0 -30
  256. package/dist/extensions/image-component.d.ts +0 -22
  257. package/dist/extensions/image-component.js +0 -220
  258. package/dist/extensions/image.d.ts +0 -10
  259. package/dist/extensions/image.js +0 -68
  260. package/dist/extensions/index.d.ts +0 -16
  261. package/dist/extensions/index.js +0 -64
  262. package/dist/extensions/math.d.ts +0 -15
  263. package/dist/extensions/math.js +0 -158
  264. package/dist/extensions/media.d.ts +0 -19
  265. package/dist/extensions/media.js +0 -149
  266. package/dist/extensions/responseArea.d.ts +0 -27
  267. package/dist/extensions/responseArea.js +0 -259
  268. package/dist/index.d.ts +0 -13
  269. package/dist/index.js +0 -7
  270. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +0 -16
  271. package/dist/styles/editorContainerStyles.d.ts +0 -134
  272. package/dist/theme.d.ts +0 -9
  273. package/dist/utils/helper.d.ts +0 -9
  274. package/dist/utils/helper.js +0 -27
  275. package/dist/utils/size.d.ts +0 -9
  276. package/dist/utils/size.js +0 -14
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.ImageToolbar = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+ var _react = _interopRequireDefault(require("react"));
16
+ var _debug = _interopRequireDefault(require("debug"));
17
+ var _reactDom = _interopRequireDefault(require("react-dom"));
18
+ var _styles = require("@mui/material/styles");
19
+ var _AltDialog = _interopRequireDefault(require("./AltDialog"));
20
+ var _toolbarButtons = require("../common/toolbar-buttons");
21
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
22
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
23
+ 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; }
24
+ 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; }
25
+ var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image:image-toolbar');
26
+ var StyledHolder = (0, _styles.styled)('div')(function (_ref) {
27
+ var theme = _ref.theme;
28
+ return {
29
+ paddingLeft: theme.spacing.unit,
30
+ display: 'flex',
31
+ alignItems: 'center'
32
+ };
33
+ });
34
+ var StyledAltText = (0, _styles.styled)('span', {
35
+ shouldForwardProp: function shouldForwardProp(prop) {
36
+ return !['disabled', 'hasAlignmentButtons'].includes(prop);
37
+ }
38
+ })(function (_ref2) {
39
+ var disabled = _ref2.disabled,
40
+ hasAlignmentButtons = _ref2.hasAlignmentButtons;
41
+ return _objectSpread(_objectSpread({}, disabled && {
42
+ opacity: 0.5
43
+ }), hasAlignmentButtons && {
44
+ borderLeft: '1px solid grey',
45
+ paddingLeft: 8,
46
+ marginLeft: 4
47
+ });
48
+ });
49
+ var AlignmentButton = function AlignmentButton(_ref3) {
50
+ var alignment = _ref3.alignment,
51
+ active = _ref3.active,
52
+ onClick = _ref3.onClick;
53
+ return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.MarkButton, {
54
+ active: active,
55
+ onToggle: function onToggle() {
56
+ return onClick(alignment);
57
+ },
58
+ label: alignment
59
+ }, alignment);
60
+ };
61
+ AlignmentButton.propTypes = {
62
+ alignment: _propTypes["default"].string.isRequired,
63
+ active: _propTypes["default"].bool.isRequired,
64
+ onClick: _propTypes["default"].func.isRequired
65
+ };
66
+ var ImageToolbar = exports.ImageToolbar = /*#__PURE__*/function (_React$Component) {
67
+ function ImageToolbar() {
68
+ var _this;
69
+ (0, _classCallCheck2["default"])(this, ImageToolbar);
70
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
71
+ args[_key] = arguments[_key];
72
+ }
73
+ _this = _callSuper(this, ImageToolbar, [].concat(args));
74
+ (0, _defineProperty2["default"])(_this, "onAltTextDone", function (newAlt) {
75
+ log('[onAltTextDone]: alt:', newAlt);
76
+ _this.props.onChange({
77
+ alt: newAlt
78
+ }, true);
79
+ });
80
+ (0, _defineProperty2["default"])(_this, "onAlignmentClick", function (alignment) {
81
+ log('[onAlignmentClick]: alignment:', alignment);
82
+ _this.props.onChange({
83
+ alignment: alignment
84
+ });
85
+ });
86
+ (0, _defineProperty2["default"])(_this, "renderDialog", function () {
87
+ var alt = _this.props.alt;
88
+ var popoverEl = document.createElement('div');
89
+ var el = /*#__PURE__*/_react["default"].createElement(_AltDialog["default"], {
90
+ alt: alt,
91
+ onDone: _this.onAltTextDone
92
+ });
93
+ _reactDom["default"].render(el, popoverEl);
94
+ document.body.appendChild(popoverEl);
95
+ });
96
+ return _this;
97
+ }
98
+ (0, _inherits2["default"])(ImageToolbar, _React$Component);
99
+ return (0, _createClass2["default"])(ImageToolbar, [{
100
+ key: "render",
101
+ value: function render() {
102
+ var _this2 = this;
103
+ var _this$props = this.props,
104
+ alignment = _this$props.alignment,
105
+ imageLoaded = _this$props.imageLoaded,
106
+ disableImageAlignmentButtons = _this$props.disableImageAlignmentButtons;
107
+ return /*#__PURE__*/_react["default"].createElement(StyledHolder, null, !disableImageAlignmentButtons && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
108
+ alignment: 'left',
109
+ active: alignment === 'left',
110
+ onClick: this.onAlignmentClick
111
+ }), /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
112
+ alignment: 'center',
113
+ active: alignment === 'center',
114
+ onClick: this.onAlignmentClick
115
+ }), /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
116
+ alignment: 'right',
117
+ active: alignment === 'right',
118
+ onClick: this.onAlignmentClick
119
+ })), /*#__PURE__*/_react["default"].createElement(StyledAltText, {
120
+ disabled: !imageLoaded,
121
+ hasAlignmentButtons: !disableImageAlignmentButtons,
122
+ onMouseDown: function onMouseDown(event) {
123
+ return imageLoaded && _this2.renderDialog(event);
124
+ }
125
+ }, "Alt text"));
126
+ }
127
+ }]);
128
+ }(_react["default"].Component);
129
+ (0, _defineProperty2["default"])(ImageToolbar, "propTypes", {
130
+ onChange: _propTypes["default"].func.isRequired,
131
+ alignment: _propTypes["default"].string,
132
+ alt: _propTypes["default"].string,
133
+ imageLoaded: _propTypes["default"].bool,
134
+ disableImageAlignmentButtons: _propTypes["default"].bool
135
+ });
136
+ var _default = exports["default"] = ImageToolbar;
137
+ //# sourceMappingURL=ImageToolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageToolbar.js","names":["_propTypes","_interopRequireDefault","require","_react","_debug","_reactDom","_styles","_AltDialog","_toolbarButtons","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","StyledHolder","styled","_ref","theme","paddingLeft","spacing","unit","display","alignItems","StyledAltText","shouldForwardProp","prop","includes","_ref2","disabled","hasAlignmentButtons","opacity","borderLeft","marginLeft","AlignmentButton","_ref3","alignment","active","onClick","createElement","MarkButton","onToggle","label","propTypes","PropTypes","string","isRequired","bool","func","ImageToolbar","exports","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","concat","newAlt","props","onChange","alt","popoverEl","document","el","onDone","onAltTextDone","ReactDOM","render","body","appendChild","_inherits2","_createClass2","key","value","_this2","_this$props","imageLoaded","disableImageAlignmentButtons","Fragment","onAlignmentClick","onMouseDown","event","renderDialog","React","Component","_default"],"sources":["../../../src/components/image/ImageToolbar.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport ReactDOM from 'react-dom';\nimport { styled } from '@mui/material/styles';\n\nimport AltDialog from './AltDialog';\nimport { MarkButton } from '../common/toolbar-buttons';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:image-toolbar');\n\nconst StyledHolder = styled('div')(({ theme }) => ({\n paddingLeft: theme.spacing.unit,\n display: 'flex',\n alignItems: 'center',\n}));\n\nconst StyledAltText = styled('span', {\n shouldForwardProp: (prop) => !['disabled', 'hasAlignmentButtons'].includes(prop),\n})(({ disabled, hasAlignmentButtons }) => ({\n ...(disabled && {\n opacity: 0.5,\n }),\n ...(hasAlignmentButtons && {\n borderLeft: '1px solid grey',\n paddingLeft: 8,\n marginLeft: 4,\n }),\n}));\n\nconst AlignmentButton = ({ alignment, active, onClick }) => {\n return (\n <MarkButton active={active} onToggle={() => onClick(alignment)} label={alignment}>\n {alignment}\n </MarkButton>\n );\n};\n\nAlignmentButton.propTypes = {\n alignment: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nexport class ImageToolbar extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n alignment: PropTypes.string,\n alt: PropTypes.string,\n imageLoaded: PropTypes.bool,\n disableImageAlignmentButtons: PropTypes.bool,\n };\n\n onAltTextDone = (newAlt) => {\n log('[onAltTextDone]: alt:', newAlt);\n\n this.props.onChange({ alt: newAlt }, true);\n };\n\n onAlignmentClick = (alignment) => {\n log('[onAlignmentClick]: alignment:', alignment);\n this.props.onChange({ alignment });\n };\n\n renderDialog = () => {\n const { alt } = this.props;\n const popoverEl = document.createElement('div');\n\n const el = <AltDialog alt={alt} onDone={this.onAltTextDone} />;\n\n ReactDOM.render(el, popoverEl);\n\n document.body.appendChild(popoverEl);\n };\n\n render() {\n const { alignment, imageLoaded, disableImageAlignmentButtons } = this.props;\n return (\n <StyledHolder>\n {!disableImageAlignmentButtons && (\n <>\n <AlignmentButton alignment={'left'} active={alignment === 'left'} onClick={this.onAlignmentClick} />\n <AlignmentButton alignment={'center'} active={alignment === 'center'} onClick={this.onAlignmentClick} />\n <AlignmentButton alignment={'right'} active={alignment === 'right'} onClick={this.onAlignmentClick} />\n </>\n )}\n <StyledAltText\n disabled={!imageLoaded}\n hasAlignmentButtons={!disableImageAlignmentButtons}\n onMouseDown={(event) => imageLoaded && this.renderDialog(event)}\n >\n Alt text\n </StyledAltText>\n </StyledHolder>\n );\n }\n}\n\nexport default ImageToolbar;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _debug = _interopRequireDefault(require("debug"));
12
+ 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; }
13
+ 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; }
14
+ var log = (0, _debug["default"])('@pie-lib:editable-html:image:insert-image-handler');
15
+
16
+ /**
17
+ * Handles user selection, insertion (or cancellation) of an image into the editor.
18
+ * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image
19
+ * @param {Function} onFinish - a function to call if uploading fails or succeeds
20
+ * @param {Function} getValue - a function to return the value of the editor
21
+ * @param {Function} onChange - callback to notify changes applied by the handler
22
+ * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted
23
+ */
24
+ var InsertImageHandler = /*#__PURE__*/function () {
25
+ function InsertImageHandler(editor, nodeInfo, onFinish) {
26
+ var isPasted = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
27
+ (0, _classCallCheck2["default"])(this, InsertImageHandler);
28
+ this.editor = editor;
29
+ this.nodeInfo = nodeInfo;
30
+ this.node = nodeInfo[0];
31
+ this.nodePos = nodeInfo[1];
32
+ this.onFinish = onFinish;
33
+ this.isPasted = isPasted;
34
+ this.chosenFile = null;
35
+ }
36
+ return (0, _createClass2["default"])(InsertImageHandler, [{
37
+ key: "cancel",
38
+ value: function cancel() {
39
+ log('insert cancelled');
40
+ try {
41
+ this.deleteNode();
42
+ this.onFinish(false);
43
+ } catch (err) {
44
+ //
45
+ } finally {
46
+ this.editor._insertingImage = false;
47
+ }
48
+ }
49
+ }, {
50
+ key: "updateNode",
51
+ value: function updateNode(newAttrs) {
52
+ var _this$editor = this.editor,
53
+ state = _this$editor.state,
54
+ view = _this$editor.view;
55
+ var tr = state.tr;
56
+ var node = state.doc.nodeAt(this.nodePos);
57
+ if (node) {
58
+ var transaction = tr.setNodeMarkup(this.nodePos, undefined, _objectSpread(_objectSpread({}, node.attrs), newAttrs));
59
+ view.dispatch(transaction);
60
+ }
61
+ }
62
+ }, {
63
+ key: "deleteNode",
64
+ value: function deleteNode() {
65
+ var _this$editor2 = this.editor,
66
+ state = _this$editor2.state,
67
+ view = _this$editor2.view;
68
+ var tr = state.tr;
69
+ var transaction = tr["delete"](this.nodePos, this.nodePos + this.node.nodeSize);
70
+ view.dispatch(transaction);
71
+ }
72
+ }, {
73
+ key: "done",
74
+ value: function done(err, src) {
75
+ log('done: err:', err);
76
+ if (err) {
77
+ //eslint-disable-next-line
78
+ console.log(err);
79
+ this.onFinish(false);
80
+ } else {
81
+ this.updateNode({
82
+ loaded: true,
83
+ src: src,
84
+ percent: 100
85
+ });
86
+ this.onFinish(true);
87
+ }
88
+ this.editor._insertingImage = false;
89
+ }
90
+
91
+ /**
92
+ * Notify handler that the user chose a file - will create a change with a preview in the editor.
93
+ *
94
+ * @param {File} file - the file that the user chose using a file input.
95
+ */
96
+ }, {
97
+ key: "fileChosen",
98
+ value: function fileChosen(file) {
99
+ var _this = this;
100
+ if (!file) {
101
+ return;
102
+ }
103
+
104
+ // Save the chosen file to this.chosenFile
105
+ this.chosenFile = file;
106
+ this.editor._insertingImage = false;
107
+ log('[fileChosen] file: ', file);
108
+ var reader = new FileReader();
109
+ reader.onload = function () {
110
+ var dataURL = reader.result;
111
+ _this.updateNode({
112
+ src: dataURL
113
+ });
114
+ };
115
+ reader.readAsDataURL(file);
116
+ }
117
+ }, {
118
+ key: "progress",
119
+ value: function progress(percent, bytes, total) {
120
+ log('progress: ', percent, bytes, total);
121
+ this.updateNode({
122
+ percent: percent
123
+ });
124
+ }
125
+
126
+ // Add a getter method to retrieve the chosen file
127
+ }, {
128
+ key: "getChosenFile",
129
+ value: function getChosenFile() {
130
+ return this.chosenFile;
131
+ }
132
+ }]);
133
+ }();
134
+ var _default = exports["default"] = InsertImageHandler;
135
+ //# sourceMappingURL=InsertImageHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsertImageHandler.js","names":["_debug","_interopRequireDefault","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","InsertImageHandler","editor","nodeInfo","onFinish","isPasted","undefined","_classCallCheck2","node","nodePos","chosenFile","_createClass2","key","value","cancel","deleteNode","err","_insertingImage","updateNode","newAttrs","_this$editor","state","view","tr","doc","nodeAt","transaction","setNodeMarkup","attrs","dispatch","_this$editor2","nodeSize","done","src","console","loaded","percent","fileChosen","file","_this","reader","FileReader","onload","dataURL","result","readAsDataURL","progress","bytes","total","getChosenFile","_default","exports"],"sources":["../../../src/components/image/InsertImageHandler.js"],"sourcesContent":["import 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(editor, nodeInfo, onFinish, isPasted = false) {\n this.editor = editor;\n this.nodeInfo = nodeInfo;\n this.node = nodeInfo[0];\n this.nodePos = nodeInfo[1];\n this.onFinish = onFinish;\n this.isPasted = isPasted;\n this.chosenFile = null;\n }\n\n cancel() {\n log('insert cancelled');\n\n try {\n this.deleteNode();\n this.onFinish(false);\n } catch (err) {\n //\n } finally {\n this.editor._insertingImage = false;\n }\n }\n\n updateNode(newAttrs) {\n const { state, view } = this.editor;\n const { tr } = state;\n const node = state.doc.nodeAt(this.nodePos);\n\n if (node) {\n const transaction = tr.setNodeMarkup(this.nodePos, undefined, { ...node.attrs, ...newAttrs });\n\n view.dispatch(transaction);\n }\n }\n\n deleteNode() {\n const { state, view } = this.editor;\n const { tr } = state;\n\n const transaction = tr.delete(this.nodePos, this.nodePos + this.node.nodeSize);\n\n view.dispatch(transaction);\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 this.updateNode({ loaded: true, src, percent: 100 });\n this.onFinish(true);\n }\n\n this.editor._insertingImage = false;\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 this.editor._insertingImage = false;\n\n log('[fileChosen] file: ', file);\n const reader = new FileReader();\n reader.onload = () => {\n const dataURL = reader.result;\n\n this.updateNode({ src: dataURL });\n };\n reader.readAsDataURL(file);\n }\n\n progress(percent, bytes, total) {\n log('progress: ', percent, bytes, total);\n this.updateNode({ percent });\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":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,SAAAC,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAE1B,IAAMoB,GAAG,GAAG,IAAAC,iBAAK,EAAC,mDAAmD,CAAC;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,IAQMC,kBAAkB;EACtB,SAAAA,mBAAYC,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAoB;IAAA,IAAlBC,QAAQ,GAAAb,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAc,SAAA,GAAAd,SAAA,MAAG,KAAK;IAAA,IAAAe,gBAAA,mBAAAN,kBAAA;IACtD,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACK,IAAI,GAAGL,QAAQ,CAAC,CAAC,CAAC;IACvB,IAAI,CAACM,OAAO,GAAGN,QAAQ,CAAC,CAAC,CAAC;IAC1B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACK,UAAU,GAAG,IAAI;EACxB;EAAC,WAAAC,aAAA,aAAAV,kBAAA;IAAAW,GAAA;IAAAC,KAAA,EAED,SAAAC,MAAMA,CAAA,EAAG;MACPf,GAAG,CAAC,kBAAkB,CAAC;MAEvB,IAAI;QACF,IAAI,CAACgB,UAAU,CAAC,CAAC;QACjB,IAAI,CAACX,QAAQ,CAAC,KAAK,CAAC;MACtB,CAAC,CAAC,OAAOY,GAAG,EAAE;QACZ;MAAA,CACD,SAAS;QACR,IAAI,CAACd,MAAM,CAACe,eAAe,GAAG,KAAK;MACrC;IACF;EAAC;IAAAL,GAAA;IAAAC,KAAA,EAED,SAAAK,UAAUA,CAACC,QAAQ,EAAE;MACnB,IAAAC,YAAA,GAAwB,IAAI,CAAClB,MAAM;QAA3BmB,KAAK,GAAAD,YAAA,CAALC,KAAK;QAAEC,IAAI,GAAAF,YAAA,CAAJE,IAAI;MACnB,IAAQC,EAAE,GAAKF,KAAK,CAAZE,EAAE;MACV,IAAMf,IAAI,GAAGa,KAAK,CAACG,GAAG,CAACC,MAAM,CAAC,IAAI,CAAChB,OAAO,CAAC;MAE3C,IAAID,IAAI,EAAE;QACR,IAAMkB,WAAW,GAAGH,EAAE,CAACI,aAAa,CAAC,IAAI,CAAClB,OAAO,EAAEH,SAAS,EAAAf,aAAA,CAAAA,aAAA,KAAOiB,IAAI,CAACoB,KAAK,GAAKT,QAAQ,CAAE,CAAC;QAE7FG,IAAI,CAACO,QAAQ,CAACH,WAAW,CAAC;MAC5B;IACF;EAAC;IAAAd,GAAA;IAAAC,KAAA,EAED,SAAAE,UAAUA,CAAA,EAAG;MACX,IAAAe,aAAA,GAAwB,IAAI,CAAC5B,MAAM;QAA3BmB,KAAK,GAAAS,aAAA,CAALT,KAAK;QAAEC,IAAI,GAAAQ,aAAA,CAAJR,IAAI;MACnB,IAAQC,EAAE,GAAKF,KAAK,CAAZE,EAAE;MAEV,IAAMG,WAAW,GAAGH,EAAE,UAAO,CAAC,IAAI,CAACd,OAAO,EAAE,IAAI,CAACA,OAAO,GAAG,IAAI,CAACD,IAAI,CAACuB,QAAQ,CAAC;MAE9ET,IAAI,CAACO,QAAQ,CAACH,WAAW,CAAC;IAC5B;EAAC;IAAAd,GAAA;IAAAC,KAAA,EAED,SAAAmB,IAAIA,CAAChB,GAAG,EAAEiB,GAAG,EAAE;MACblC,GAAG,CAAC,YAAY,EAAEiB,GAAG,CAAC;MACtB,IAAIA,GAAG,EAAE;QACP;QACAkB,OAAO,CAACnC,GAAG,CAACiB,GAAG,CAAC;QAChB,IAAI,CAACZ,QAAQ,CAAC,KAAK,CAAC;MACtB,CAAC,MAAM;QACL,IAAI,CAACc,UAAU,CAAC;UAAEiB,MAAM,EAAE,IAAI;UAAEF,GAAG,EAAHA,GAAG;UAAEG,OAAO,EAAE;QAAI,CAAC,CAAC;QACpD,IAAI,CAAChC,QAAQ,CAAC,IAAI,CAAC;MACrB;MAEA,IAAI,CAACF,MAAM,CAACe,eAAe,GAAG,KAAK;IACrC;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAL,GAAA;IAAAC,KAAA,EAKA,SAAAwB,UAAUA,CAACC,IAAI,EAAE;MAAA,IAAAC,KAAA;MACf,IAAI,CAACD,IAAI,EAAE;QACT;MACF;;MAEA;MACA,IAAI,CAAC5B,UAAU,GAAG4B,IAAI;MACtB,IAAI,CAACpC,MAAM,CAACe,eAAe,GAAG,KAAK;MAEnClB,GAAG,CAAC,qBAAqB,EAAEuC,IAAI,CAAC;MAChC,IAAME,MAAM,GAAG,IAAIC,UAAU,CAAC,CAAC;MAC/BD,MAAM,CAACE,MAAM,GAAG,YAAM;QACpB,IAAMC,OAAO,GAAGH,MAAM,CAACI,MAAM;QAE7BL,KAAI,CAACrB,UAAU,CAAC;UAAEe,GAAG,EAAEU;QAAQ,CAAC,CAAC;MACnC,CAAC;MACDH,MAAM,CAACK,aAAa,CAACP,IAAI,CAAC;IAC5B;EAAC;IAAA1B,GAAA;IAAAC,KAAA,EAED,SAAAiC,QAAQA,CAACV,OAAO,EAAEW,KAAK,EAAEC,KAAK,EAAE;MAC9BjD,GAAG,CAAC,YAAY,EAAEqC,OAAO,EAAEW,KAAK,EAAEC,KAAK,CAAC;MACxC,IAAI,CAAC9B,UAAU,CAAC;QAAEkB,OAAO,EAAPA;MAAQ,CAAC,CAAC;IAC9B;;IAEA;EAAA;IAAAxB,GAAA;IAAAC,KAAA,EACA,SAAAoC,aAAaA,CAAA,EAAG;MACd,OAAO,IAAI,CAACvC,UAAU;IACxB;EAAC;AAAA;AAAA,IAAAwC,QAAA,GAAAC,OAAA,cAGYlD,kBAAkB","ignoreList":[]}