@pie-lib/editable-html-tip-tap 1.0.2 → 1.0.3

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 (129) hide show
  1. package/lib/components/CharacterPicker.js +221 -0
  2. package/lib/components/EditableHtml.js +323 -0
  3. package/lib/components/MenuBar.js +693 -0
  4. package/lib/components/TiptapContainer.js +90 -0
  5. package/lib/components/buttons/done-button.js +53 -0
  6. package/lib/components/characters/characterUtils.js +112 -0
  7. package/lib/components/characters/custom-popper.js +73 -0
  8. package/lib/components/common/done-button.js +53 -0
  9. package/lib/components/icons/CssIcon.js +37 -0
  10. package/lib/components/icons/RespArea.js +95 -0
  11. package/lib/components/icons/TableIcons.js +69 -0
  12. package/lib/components/icons/TextAlign.js +194 -0
  13. package/lib/components/icons/index.js +194 -0
  14. package/lib/components/image/ImageToolbar.js +16 -0
  15. package/lib/components/image/InsertImageHandler.js +16 -0
  16. package/lib/components/media/MediaDialog.js +16 -0
  17. package/lib/components/media/MediaToolbar.js +16 -0
  18. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +94 -0
  19. package/lib/components/respArea/DragInTheBlank/choice.js +289 -0
  20. package/lib/components/respArea/DragInTheBlank.js +94 -0
  21. package/lib/components/respArea/ExplicitConstructedResponse.js +120 -0
  22. package/lib/components/respArea/InlineDropdown.js +126 -0
  23. package/lib/components/respArea/ToolbarIcon.js +105 -0
  24. package/lib/components/respArea/choice.js +2 -0
  25. package/lib/extensions/component.js +5 -5
  26. package/lib/extensions/custom-toolbar-wrapper.js +2 -4
  27. package/lib/extensions/extended-table.js +30 -0
  28. package/lib/extensions/index.js +52 -0
  29. package/lib/extensions/media.js +5 -5
  30. package/lib/extensions/responseArea.js +7 -7
  31. package/lib/index.js +16 -1481
  32. package/lib/plugins/index.js +8 -80
  33. package/lib/styles/editorContainerStyles.js +200 -0
  34. package/lib/utils/size.js +34 -0
  35. package/package.json +1 -1
  36. package/src/components/CharacterPicker.jsx +185 -0
  37. package/src/components/EditableHtml.jsx +306 -0
  38. package/src/components/MenuBar.jsx +630 -0
  39. package/src/components/TiptapContainer.jsx +96 -0
  40. package/src/components/characters/characterUtils.js +127 -0
  41. package/src/components/image/ImageToolbar.jsx +1 -0
  42. package/src/components/image/InsertImageHandler.js +1 -0
  43. package/src/components/media/MediaDialog.js +1 -0
  44. package/src/components/media/MediaToolbar.jsx +1 -0
  45. package/src/{plugins/respArea/drag-in-the-blank → components/respArea/DragInTheBlank}/choice.jsx +1 -1
  46. package/src/{plugins/respArea/inline-dropdown/index.jsx → components/respArea/InlineDropdown.jsx} +1 -1
  47. package/src/components/respArea/ToolbarIcon.jsx +68 -0
  48. package/src/extensions/component.jsx +2 -2
  49. package/src/extensions/custom-toolbar-wrapper.jsx +6 -7
  50. package/src/extensions/extended-table.js +27 -0
  51. package/src/extensions/index.js +76 -0
  52. package/src/extensions/media.js +10 -4
  53. package/src/extensions/responseArea.js +7 -7
  54. package/src/index.jsx +3 -1440
  55. package/src/styles/editorContainerStyles.js +203 -0
  56. package/src/utils/size.js +32 -0
  57. package/src/__tests__/editor.test.jsx +0 -363
  58. package/src/__tests__/serialization.test.js +0 -291
  59. package/src/block-tags.js +0 -17
  60. package/src/editor.jsx +0 -1197
  61. package/src/extensions/characters.js +0 -46
  62. package/src/old-index.jsx +0 -162
  63. package/src/parse-html.js +0 -8
  64. package/src/plugins/README.md +0 -27
  65. package/src/plugins/characters/index.jsx +0 -284
  66. package/src/plugins/characters/utils.js +0 -447
  67. package/src/plugins/css/index.jsx +0 -340
  68. package/src/plugins/customPlugin/index.jsx +0 -85
  69. package/src/plugins/html/icons/index.jsx +0 -19
  70. package/src/plugins/html/index.jsx +0 -72
  71. package/src/plugins/image/__tests__/__snapshots__/component.test.jsx.snap +0 -51
  72. package/src/plugins/image/__tests__/__snapshots__/image-toolbar-logic.test.jsx.snap +0 -27
  73. package/src/plugins/image/__tests__/__snapshots__/image-toolbar.test.jsx.snap +0 -44
  74. package/src/plugins/image/__tests__/component.test.jsx +0 -41
  75. package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +0 -42
  76. package/src/plugins/image/__tests__/image-toolbar.test.jsx +0 -11
  77. package/src/plugins/image/__tests__/index.test.js +0 -95
  78. package/src/plugins/image/__tests__/insert-image-handler.test.js +0 -113
  79. package/src/plugins/image/__tests__/mock-change.js +0 -15
  80. package/src/plugins/image/alt-dialog.jsx +0 -82
  81. package/src/plugins/image/component.jsx +0 -343
  82. package/src/plugins/image/image-toolbar.jsx +0 -100
  83. package/src/plugins/image/index.jsx +0 -227
  84. package/src/plugins/image/insert-image-handler.js +0 -79
  85. package/src/plugins/index.jsx +0 -377
  86. package/src/plugins/list/__tests__/index.test.js +0 -54
  87. package/src/plugins/list/index.jsx +0 -305
  88. package/src/plugins/math/__tests__/__snapshots__/index.test.jsx.snap +0 -48
  89. package/src/plugins/math/__tests__/index.test.jsx +0 -245
  90. package/src/plugins/math/index.jsx +0 -379
  91. package/src/plugins/media/__tests__/index.test.js +0 -75
  92. package/src/plugins/media/index.jsx +0 -325
  93. package/src/plugins/media/media-dialog.js +0 -624
  94. package/src/plugins/media/media-toolbar.jsx +0 -56
  95. package/src/plugins/media/media-wrapper.jsx +0 -43
  96. package/src/plugins/rendering/index.js +0 -31
  97. package/src/plugins/respArea/index.jsx +0 -299
  98. package/src/plugins/respArea/math-templated/index.jsx +0 -104
  99. package/src/plugins/respArea/utils.jsx +0 -90
  100. package/src/plugins/table/CustomTablePlugin.js +0 -113
  101. package/src/plugins/table/__tests__/__snapshots__/table-toolbar.test.jsx.snap +0 -44
  102. package/src/plugins/table/__tests__/index.test.jsx +0 -401
  103. package/src/plugins/table/__tests__/table-toolbar.test.jsx +0 -42
  104. package/src/plugins/table/index.jsx +0 -427
  105. package/src/plugins/table/table-toolbar.jsx +0 -136
  106. package/src/plugins/textAlign/index.jsx +0 -23
  107. package/src/plugins/toolbar/__tests__/__snapshots__/default-toolbar.test.jsx.snap +0 -923
  108. package/src/plugins/toolbar/__tests__/__snapshots__/editor-and-toolbar.test.jsx.snap +0 -20
  109. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar-buttons.test.jsx.snap +0 -36
  110. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar.test.jsx.snap +0 -46
  111. package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +0 -94
  112. package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +0 -37
  113. package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +0 -51
  114. package/src/plugins/toolbar/__tests__/toolbar.test.jsx +0 -106
  115. package/src/plugins/toolbar/default-toolbar.jsx +0 -206
  116. package/src/plugins/toolbar/editor-and-toolbar.jsx +0 -257
  117. package/src/plugins/toolbar/index.jsx +0 -23
  118. package/src/plugins/toolbar/toolbar-buttons.jsx +0 -138
  119. package/src/plugins/toolbar/toolbar.jsx +0 -338
  120. package/src/plugins/utils.js +0 -31
  121. package/src/serialization.jsx +0 -621
  122. /package/src/{plugins → components}/characters/custom-popper.js +0 -0
  123. /package/src/{plugins/toolbar → components/common}/done-button.jsx +0 -0
  124. /package/src/{plugins/css/icons/index.jsx → components/icons/CssIcon.jsx} +0 -0
  125. /package/src/{plugins/respArea/icons/index.jsx → components/icons/RespArea.jsx} +0 -0
  126. /package/src/{plugins/table/icons/index.jsx → components/icons/TableIcons.jsx} +0 -0
  127. /package/src/{plugins/textAlign/icons/index.jsx → components/icons/TextAlign.jsx} +0 -0
  128. /package/src/{plugins/respArea/drag-in-the-blank/index.jsx → components/respArea/DragInTheBlank/DragInTheBlank.jsx} +0 -0
  129. /package/src/{plugins/respArea/explicit-constructed-response/index.jsx → components/respArea/ExplicitConstructedResponse.jsx} +0 -0
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = exports.AlignRight = exports.AlignLeft = exports.AlignJustify = exports.AlignCenter = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _Collapse = _interopRequireDefault(require("@material-ui/core/Collapse"));
17
+
18
+ var _List = _interopRequireDefault(require("@material-ui/core/List"));
19
+
20
+ var _ListItem = _interopRequireDefault(require("@material-ui/core/ListItem"));
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ var AlignLeft = function AlignLeft() {
27
+ return /*#__PURE__*/_react["default"].createElement("svg", {
28
+ width: "20",
29
+ height: "20",
30
+ viewBox: "0 0 66 66",
31
+ fill: "none",
32
+ xmlns: "http://www.w3.org/2000/svg"
33
+ }, /*#__PURE__*/_react["default"].createElement("path", {
34
+ d: "M42.1875 4.75C42.1875 7.38672 39.9902 9.4375 37.5 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H37.5C39.9902 0.0625 42.1875 2.25977 42.1875 4.75ZM42.1875 42.25C42.1875 44.8867 39.9902 46.9375 37.5 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H37.5C39.9902 37.5625 42.1875 39.7598 42.1875 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z",
35
+ fill: "currentColor"
36
+ }));
37
+ };
38
+
39
+ exports.AlignLeft = AlignLeft;
40
+
41
+ var AlignRight = function AlignRight() {
42
+ return /*#__PURE__*/_react["default"].createElement("svg", {
43
+ width: "20",
44
+ height: "20",
45
+ viewBox: "0 0 66 66",
46
+ fill: "none",
47
+ xmlns: "http://www.w3.org/2000/svg"
48
+ }, /*#__PURE__*/_react["default"].createElement("path", {
49
+ d: "M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H28.125C25.4883 9.4375 23.4375 7.38672 23.4375 4.75C23.4375 2.25977 25.4883 0.0625 28.125 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H28.125C25.4883 46.9375 23.4375 44.8867 23.4375 42.25C23.4375 39.7598 25.4883 37.5625 28.125 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z",
50
+ fill: "currentColor"
51
+ }));
52
+ };
53
+
54
+ exports.AlignRight = AlignRight;
55
+
56
+ var AlignCenter = function AlignCenter() {
57
+ return /*#__PURE__*/_react["default"].createElement("svg", {
58
+ width: "20",
59
+ height: "20",
60
+ viewBox: "0 0 66 66",
61
+ fill: "none",
62
+ xmlns: "http://www.w3.org/2000/svg"
63
+ }, /*#__PURE__*/_react["default"].createElement("path", {
64
+ d: "M51.5625 4.75C51.5625 7.38672 49.3652 9.4375 46.875 9.4375H18.75C16.1133 9.4375 14.0625 7.38672 14.0625 4.75C14.0625 2.25977 16.1133 0.0625 18.75 0.0625H46.875C49.3652 0.0625 51.5625 2.25977 51.5625 4.75ZM65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5ZM0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61ZM51.5625 42.25C51.5625 44.8867 49.3652 46.9375 46.875 46.9375H18.75C16.1133 46.9375 14.0625 44.8867 14.0625 42.25C14.0625 39.7598 16.1133 37.5625 18.75 37.5625H46.875C49.3652 37.5625 51.5625 39.7598 51.5625 42.25Z",
65
+ fill: "currentColor"
66
+ }));
67
+ };
68
+
69
+ exports.AlignCenter = AlignCenter;
70
+
71
+ var AlignJustify = function AlignJustify() {
72
+ return /*#__PURE__*/_react["default"].createElement("svg", {
73
+ width: "20",
74
+ height: "20",
75
+ viewBox: "0 0 66 66",
76
+ fill: "none",
77
+ xmlns: "http://www.w3.org/2000/svg"
78
+ }, /*#__PURE__*/_react["default"].createElement("path", {
79
+ d: "M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z",
80
+ fill: "currentColor"
81
+ }));
82
+ };
83
+
84
+ exports.AlignJustify = AlignJustify;
85
+
86
+ var _default = function _default(_ref) {
87
+ var editor = _ref.editor,
88
+ onChange = _ref.onChange;
89
+
90
+ var _useState = (0, _react.useState)(false),
91
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
92
+ open = _useState2[0],
93
+ setOpen = _useState2[1];
94
+
95
+ var icon;
96
+
97
+ switch (true) {
98
+ case editor.isActive({
99
+ textAlign: 'right'
100
+ }):
101
+ icon = /*#__PURE__*/_react["default"].createElement(AlignRight, null);
102
+ break;
103
+
104
+ case editor.isActive({
105
+ textAlign: 'center'
106
+ }):
107
+ icon = /*#__PURE__*/_react["default"].createElement(AlignCenter, null);
108
+ break;
109
+
110
+ case editor.isActive({
111
+ textAlign: 'justify'
112
+ }):
113
+ icon = /*#__PURE__*/_react["default"].createElement(AlignJustify, null);
114
+ break;
115
+
116
+ default:
117
+ icon = /*#__PURE__*/_react["default"].createElement(AlignLeft, null);
118
+ break;
119
+ }
120
+
121
+ var applyAlignment = function applyAlignment(event) {
122
+ var _event$target, _event$target$closest;
123
+
124
+ var alignType = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : (_event$target$closest = _event$target.closest('div')) === null || _event$target$closest === void 0 ? void 0 : _event$target$closest.getAttribute('value');
125
+
126
+ if (alignType) {
127
+ editor.commands.setTextAlign(alignType);
128
+ }
129
+
130
+ setOpen(false);
131
+ };
132
+
133
+ var onMouseDown = function onMouseDown(event) {
134
+ event.preventDefault();
135
+ event.stopPropagation();
136
+ setOpen(!open);
137
+ };
138
+
139
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
140
+ style: {
141
+ display: 'flex',
142
+ alignItems: 'center'
143
+ },
144
+ onClick: onMouseDown
145
+ }, icon, /*#__PURE__*/_react["default"].createElement("span", {
146
+ style: {
147
+ marginLeft: '5px',
148
+ fontSize: '8px'
149
+ }
150
+ }, "\u25BC")), /*#__PURE__*/_react["default"].createElement(_Collapse["default"], {
151
+ "in": open,
152
+ timeout: "auto",
153
+ unmountOnExit: true,
154
+ style: {
155
+ position: 'absolute'
156
+ }
157
+ }, /*#__PURE__*/_react["default"].createElement(_List["default"], {
158
+ component: "div",
159
+ disablePadding: true,
160
+ style: {
161
+ background: '#fff',
162
+ display: 'flex',
163
+ flexDirection: 'row',
164
+ padding: 0
165
+ }
166
+ }, /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
167
+ button: true,
168
+ type: "submit",
169
+ value: "left",
170
+ "aria-label": "Align text left",
171
+ onClick: applyAlignment
172
+ }, /*#__PURE__*/_react["default"].createElement(AlignLeft, null)), /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
173
+ button: true,
174
+ type: "submit",
175
+ value: "center",
176
+ "aria-label": "Align text center",
177
+ onClick: applyAlignment
178
+ }, /*#__PURE__*/_react["default"].createElement(AlignCenter, null)), /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
179
+ button: true,
180
+ type: "submit",
181
+ value: "right",
182
+ "aria-label": "Align text right",
183
+ onClick: applyAlignment
184
+ }, /*#__PURE__*/_react["default"].createElement(AlignRight, null)), /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
185
+ button: true,
186
+ type: "submit",
187
+ value: "justify",
188
+ "aria-label": "Justify text",
189
+ onClick: applyAlignment
190
+ }, /*#__PURE__*/_react["default"].createElement(AlignJustify, null)))));
191
+ };
192
+
193
+ exports["default"] = _default;
194
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ljb25zL1RleHRBbGlnbi5qc3giXSwibmFtZXMiOlsiQWxpZ25MZWZ0IiwiQWxpZ25SaWdodCIsIkFsaWduQ2VudGVyIiwiQWxpZ25KdXN0aWZ5IiwiZWRpdG9yIiwib25DaGFuZ2UiLCJvcGVuIiwic2V0T3BlbiIsImljb24iLCJpc0FjdGl2ZSIsInRleHRBbGlnbiIsImFwcGx5QWxpZ25tZW50IiwiZXZlbnQiLCJhbGlnblR5cGUiLCJ0YXJnZXQiLCJjbG9zZXN0IiwiZ2V0QXR0cmlidXRlIiwiY29tbWFuZHMiLCJzZXRUZXh0QWxpZ24iLCJvbk1vdXNlRG93biIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJtYXJnaW5MZWZ0IiwiZm9udFNpemUiLCJwb3NpdGlvbiIsImJhY2tncm91bmQiLCJmbGV4RGlyZWN0aW9uIiwicGFkZGluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFTyxJQUFNQSxTQUFTLEdBQUcsU0FBWkEsU0FBWTtBQUFBLHNCQUN2QjtBQUFLLElBQUEsS0FBSyxFQUFDLElBQVg7QUFBZ0IsSUFBQSxNQUFNLEVBQUMsSUFBdkI7QUFBNEIsSUFBQSxPQUFPLEVBQUMsV0FBcEM7QUFBZ0QsSUFBQSxJQUFJLEVBQUMsTUFBckQ7QUFBNEQsSUFBQSxLQUFLLEVBQUM7QUFBbEUsa0JBQ0U7QUFDRSxJQUFBLENBQUMsRUFBQyxndkJBREo7QUFFRSxJQUFBLElBQUksRUFBQztBQUZQLElBREYsQ0FEdUI7QUFBQSxDQUFsQjs7OztBQVNBLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFhO0FBQUEsc0JBQ3hCO0FBQUssSUFBQSxLQUFLLEVBQUMsSUFBWDtBQUFnQixJQUFBLE1BQU0sRUFBQyxJQUF2QjtBQUE0QixJQUFBLE9BQU8sRUFBQyxXQUFwQztBQUFnRCxJQUFBLElBQUksRUFB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cEYsa0JBQ0UsZ0NBQUMsVUFBRCxPQURGLENBbEJGLGVBc0JFLGdDQUFDLG9CQUFEO0FBQVUsSUFBQSxNQUFNLE1BQWhCO0FBQWlCLElBQUEsSUFBSSxFQUFDLFFBQXRCO0FBQStCLElBQUEsS0FBSyxFQUFDLFNBQXJDO0FBQStDLGtCQUFXLGNBQTFEO0FBQXlFLElBQUEsT0FBTyxFQUFFQTtBQUFsRixrQkFDRSxnQ0FBQyxZQUFELE9BREYsQ0F0QkYsQ0FERixDQUxGLENBREY7QUFvQ0QsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBDb2xsYXBzZSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9Db2xsYXBzZSc7XG5pbXBvcnQgTGlzdCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9MaXN0JztcbmltcG9ydCBMaXN0SXRlbSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9MaXN0SXRlbSc7XG5cbmV4cG9ydCBjb25zdCBBbGlnbkxlZnQgPSAoKSA9PiAoXG4gIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCA2NiA2NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTQyLjE4NzUgNC43NUM0Mi4xODc1IDcuMzg2NzIgMzkuOTkwMiA5LjQzNzUgMzcuNSA5LjQzNzVINC42ODc1QzIuMDUwNzggOS40Mzc1IDAgNy4zODY3MiAwIDQuNzVDMCAyLjI1OTc3IDIuMDUwNzggMC4wNjI1IDQuNjg3NSAwLjA2MjVIMzcuNUMzOS45OTAyIDAuMDYyNSA0Mi4xODc1IDIuMjU5NzcgNDIuMTg3NSA0Ljc1Wk00Mi4xODc1IDQyLjI1QzQyLjE4NzUgNDQuODg2NyAzOS45OTAyIDQ2LjkzNzUgMzcuNSA0Ni45Mzc1SDQuNjg3NUMyLjA1MDc4IDQ2LjkzNzUgMCA0NC44ODY3IDAgNDIuMjVDMCAzOS43NTk4IDIuMDUwNzggMzcuNTYyNSA0LjY4NzUgMzcuNTYyNUgzNy41QzM5Ljk5MDIgMzcuNTYyNSA0Mi4xODc1IDM5Ljc1OTggNDIuMTg3NSA0Mi4yNVpNMCAyMy41QzAgMjEuMDA5OCAyLjA1MDc4IDE4LjgxMjUgNC42ODc1IDE4LjgxMjVINjAuOTM3NUM2My40Mjc3IDE4LjgxMjUgNjUuNjI1IDIxLjAwOTggNjUuNjI1IDIzLjVDNjUuNjI1IDI2LjEzNjcgNjMuNDI3NyAyOC4xODc1IDYwLjkzNzUgMjguMTg3NUg0LjY4NzVDMi4wNTA3OCAyOC4xODc1IDAgMjYuMTM2NyAwIDIzLjVaTTY1LjYyNSA2MUM2NS42MjUgNjMuNjM2NyA2My40Mjc3IDY1LjY4NzUgNjAuOTM3NSA2NS42ODc1SDQuNjg3NUMyLjA1MDc4IDY1LjY4NzUgMCA2My42MzY3IDAgNjFDMCA1OC41MDk4IDIuMDUwNzggNTYuMzEyNSA0LjY4NzUgNTYuMzEyNUg2MC45Mzc1QzYzLjQyNzcgNTYuMzEyNSA2NS42MjUgNTguNTA5OCA2NS42MjUgNjFaXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuZXhwb3J0IGNvbnN0IEFsaWduUmlnaHQgPSAoKSA9PiAoXG4gIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCA2NiA2NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTY1LjYyNSA0Ljc1QzY1LjYyNSA3LjM4NjcyIDYzLjQyNzcgOS40Mzc1IDYwLjkzNzUgOS40Mzc1SDI4LjEyNUMyNS40ODgzIDkuNDM3NSAyMy40Mzc1IDcuMzg2NzIgMjMuNDM3NSA0Ljc1QzIzLjQzNzUgMi4yNTk3NyAyNS40ODgzIDAuMDYyNSAyOC4xMjUgMC4wNjI1SDYwLjkzNzVDNjMuNDI3NyAwLjA2MjUgNjUuNjI1IDIuMjU5NzcgNjUuNjI1IDQuNzVaTTY1LjYyNSA0Mi4yNUM2NS42MjUgNDQuODg2NyA2My40Mjc3IDQ2LjkzNzUgNjAuOTM3NSA0Ni45Mzc1SDI4LjEyNUMyNS40ODgzIDQ2LjkzNzUgMjMuNDM3NSA0NC44ODY3IDIzLjQzNzUgNDIuMjVDMjMuNDM3NSAzOS43NTk4IDI1LjQ4ODMgMzcuNTYyNSAyOC4xMjUgMzcuNTYyNUg2MC45Mzc1QzYzLjQyNzcgMzcuNTYyNSA2NS42MjUgMzkuNzU5OCA2NS42MjUgNDIuMjVaTTAgMjMuNUMwIDIxLjAwOTggMi4wNTA3OCAxOC44MTI1IDQuNjg3NSAxOC44MTI1SDYwLjkzNzVDNjMuNDI3NyAxOC44MTI1IDY1LjYyNSAyMS4wMDk4IDY1LjYyNSAyMy41QzY1LjYyNSAyNi4xMzY3IDYzLjQyNzcgMjguMTg3NSA2MC45Mzc1IDI4LjE4NzVINC42ODc1QzIuMDUwNzggMjguMTg3NSAwIDI2LjEzNjcgMCAyMy41Wk02NS42MjUgNjFDNjUuNjI1IDYzLjYzNjcgNjMuNDI3NyA2NS42ODc1IDYwLjkzNzUgNjUuNjg3NUg0LjY4NzVDMi4wNTA3OCA2NS42ODc1IDAgNjMuNjM2NyAwIDYxQzAgNTguNTA5OCAyLjA1MDc4IDU2LjMxMjUgNC42ODc1IDU2LjMxMjVINjAuOTM3NUM2My40Mjc3IDU2LjMxMjUgNjUuNjI1IDU4LjUwOTggNjUuNjI1IDYxWlwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAvPlxuICA8L3N2Zz5cbik7XG5cbmV4cG9ydCBjb25zdCBBbGlnbkNlbnRlciA9ICgpID0+IChcbiAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDY2IDY2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNNTEuNTYyNSA0Ljc1QzUxLjU2MjUgNy4zODY3MiA0OS4zNjUyIDkuNDM3NSA0Ni44NzUgOS40Mzc1SDE4Ljc1QzE2LjExMzMgOS40Mzc1IDE0LjA2MjUgNy4zODY3MiAxNC4wNjI1IDQuNzVDMTQuMDYyNSAyLjI1OTc3IDE2LjExMzMgMC4wNjI1IDE4Ljc1IDAuMDYyNUg0Ni44NzVDNDkuMzY1MiAwLjA2MjUgNTEuNTYyNSAyLjI1OTc3IDUxLjU2MjUgNC43NVpNNjUuNjI1IDIzLjVDNjUuNjI1IDI2LjEzNjcgNjMuNDI3NyAyOC4xODc1IDYwLjkzNzUgMjguMTg3NUg0LjY4NzVDMi4wNTA3OCAyOC4xODc1IDAgMjYuMTM2NyAwIDIzLjVDMCAyMS4wMDk4IDIuMDUwNzggMTguODEyNSA0LjY4NzUgMTguODEyNUg2MC45Mzc1QzYzLjQyNzcgMTguODEyNSA2NS42MjUgMjEuMDA5OCA2NS42MjUgMjMuNVpNMCA2MUMwIDU4LjUwOTggMi4wNTA3OCA1Ni4zMTI1IDQuNjg3NSA1Ni4zMTI1SDYwLjkzNzVDNjMuNDI3NyA1Ni4zMTI1IDY1LjYyNSA1OC41MDk4IDY1LjYyNSA2MUM2NS42MjUgNjMuNjM2NyA2My40Mjc3IDY1LjY4NzUgNjAuOTM3NSA2NS42ODc1SDQuNjg3NUMyLjA1MDc4IDY1LjY4NzUgMCA2My42MzY3IDAgNjFaTTUxLjU2MjUgNDIuMjVDNTEuNTYyNSA0NC44ODY3IDQ5LjM2NTIgNDYuOTM3NSA0Ni44NzUgNDYuOTM3NUgxOC43NUMxNi4xMTMzIDQ2LjkzNzUgMTQuMDYyNSA0NC44ODY3IDE0LjA2MjUgNDIuMjVDMTQuMDYyNSAzOS43NTk4IDE2LjExMzMgMzcuNTYyNSAxOC43NSAzNy41NjI1SDQ2Ljg3NUM0OS4zNjUyIDM3LjU2MjUgNTEuNTYyNSAzOS43NTk4IDUxLjU2MjUgNDIuMjVaXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuZXhwb3J0IGNvbnN0IEFsaWduSnVzdGlmeSA9ICgpID0+IChcbiAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDY2IDY2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNNjUuNjI1IDQuNzVDNjUuNjI1IDcuMzg2NzIgNjMuNDI3NyA5LjQzNzUgNjAuOTM3NSA5LjQzNzVINC42ODc1QzIuMDUwNzggOS40Mzc1IDAgNy4zODY3MiAwIDQuNzVDMCAyLjI1OTc3IDIuMDUwNzggMC4wNjI1IDQuNjg3NSAwLjA2MjVINjAuOTM3NUM2My40Mjc3IDAuMDYyNSA2NS42MjUgMi4yNTk3NyA2NS42MjUgNC43NVpNNjUuNjI1IDQyLjI1QzY1LjYyNSA0NC44ODY3IDYzLjQyNzcgNDYuOTM3NSA2MC45Mzc1IDQ2LjkzNzVINC42ODc1QzIuMDUwNzggNDYuOTM3NSAwIDQ0Ljg4NjcgMCA0Mi4yNUMwIDM5Ljc1OTggMi4wNTA3OCAzNy41NjI1IDQuNjg3NSAzNy41NjI1SDYwLjkzNzVDNjMuNDI3NyAzNy41NjI1IDY1LjYyNSAzOS43NTk4IDY1LjYyNSA0Mi4yNVpNMCAyMy41QzAgMjEuMDA5OCAyLjA1MDc4IDE4LjgxMjUgNC42ODc1IDE4LjgxMjVINjAuOTM3NUM2My40Mjc3IDE4LjgxMjUgNjUuNjI1IDIxLjAwOTggNjUuNjI1IDIzLjVDNjUuNjI1IDI2LjEzNjcgNjMuNDI3NyAyOC4xODc1IDYwLjkzNzUgMjguMTg3NUg0LjY4NzVDMi4wNTA3OCAyOC4xODc1IDAgMjYuMTM2NyAwIDIzLjVaTTY1LjYyNSA2MUM2NS42MjUgNjMuNjM2NyA2My40Mjc3IDY1LjY4NzUgNjAuOTM3NSA2NS42ODc1SDQuNjg3NUMyLjA1MDc4IDY1LjY4NzUgMCA2My42MzY3IDAgNjFDMCA1OC41MDk4IDIuMDUwNzggNTYuMzEyNSA0LjY4NzUgNTYuMzEyNUg2MC45Mzc1QzYzLjQyNzcgNTYuMzEyNSA2NS42MjUgNTguNTA5OCA2NS42MjUgNjFaXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgKHsgZWRpdG9yLCBvbkNoYW5nZSB9KSA9PiB7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBsZXQgaWNvbjtcblxuICBzd2l0Y2ggKHRydWUpIHtcbiAgICBjYXNlIGVkaXRvci5pc0FjdGl2ZSh7IHRleHRBbGlnbjogJ3JpZ2h0JyB9KTpcbiAgICAgIGljb24gPSA8QWxpZ25SaWdodCAvPjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgZWRpdG9yLmlzQWN0aXZlKHsgdGV4dEFsaWduOiAnY2VudGVyJyB9KTpcbiAgICAgIGljb24gPSA8QWxpZ25DZW50ZXIgLz47XG4gICAgICBicmVhaztcbiAgICBjYXNlIGVkaXRvci5pc0FjdGl2ZSh7IHRleHRBbGlnbjogJ2p1c3RpZnknIH0pOlxuICAgICAgaWNvbiA9IDxBbGlnbkp1c3RpZnkgLz47XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaWNvbiA9IDxBbGlnbkxlZnQgLz47XG4gICAgICBicmVhaztcbiAgfVxuXG4gIGNvbnN0IGFwcGx5QWxpZ25tZW50ID0gKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgYWxpZ25UeXBlID0gZXZlbnQudGFyZ2V0Py5jbG9zZXN0KCdkaXYnKT8uZ2V0QXR0cmlidXRlKCd2YWx1ZScpO1xuXG4gICAgaWYgKGFsaWduVHlwZSkge1xuICAgICAgZWRpdG9yLmNvbW1hbmRzLnNldFRleHRBbGlnbihhbGlnblR5cGUpO1xuICAgIH1cblxuICAgIHNldE9wZW4oZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IG9uTW91c2VEb3duID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBzZXRPcGVuKCFvcGVuKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicgfX0gb25DbGljaz17b25Nb3VzZURvd259PlxuICAgICAgICB7aWNvbn1cbiAgICAgICAgPHNwYW4gc3R5bGU9e3sgbWFyZ2luTGVmdDogJzVweCcsIGZvbnRTaXplOiAnOHB4JyB9fT4mIzk2NjA7PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8Q29sbGFwc2UgaW49e29wZW59IHRpbWVvdXQ9XCJhdXRvXCIgdW5tb3VudE9uRXhpdCBzdHlsZT17eyBwb3NpdGlvbjogJ2Fic29sdXRlJyB9fT5cbiAgICAgICAgPExpc3RcbiAgICAgICAgICBjb21wb25lbnQ9XCJkaXZcIlxuICAgICAgICAgIGRpc2FibGVQYWRkaW5nXG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICcjZmZmJyxcbiAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPExpc3RJdGVtIGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJsZWZ0XCIgYXJpYS1sYWJlbD1cIkFsaWduIHRleHQgbGVmdFwiIG9uQ2xpY2s9e2FwcGx5QWxpZ25tZW50fT5cbiAgICAgICAgICAgIDxBbGlnbkxlZnQgLz5cbiAgICAgICAgICA8L0xpc3RJdGVtPlxuXG4gICAgICAgICAgPExpc3RJdGVtIGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJjZW50ZXJcIiBhcmlhLWxhYmVsPVwiQWxpZ24gdGV4dCBjZW50ZXJcIiBvbkNsaWNrPXthcHBseUFsaWdubWVudH0+XG4gICAgICAgICAgICA8QWxpZ25DZW50ZXIgLz5cbiAgICAgICAgICA8L0xpc3RJdGVtPlxuXG4gICAgICAgICAgPExpc3RJdGVtIGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJyaWdodFwiIGFyaWEtbGFiZWw9XCJBbGlnbiB0ZXh0IHJpZ2h0XCIgb25DbGljaz17YXBwbHlBbGlnbm1lbnR9PlxuICAgICAgICAgICAgPEFsaWduUmlnaHQgLz5cbiAgICAgICAgICA8L0xpc3RJdGVtPlxuXG4gICAgICAgICAgPExpc3RJdGVtIGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJqdXN0aWZ5XCIgYXJpYS1sYWJlbD1cIkp1c3RpZnkgdGV4dFwiIG9uQ2xpY2s9e2FwcGx5QWxpZ25tZW50fT5cbiAgICAgICAgICAgIDxBbGlnbkp1c3RpZnkgLz5cbiAgICAgICAgICA8L0xpc3RJdGVtPlxuICAgICAgICA8L0xpc3Q+XG4gICAgICA8L0NvbGxhcHNlPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdfQ==
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = exports.AlignRight = exports.AlignLeft = exports.AlignJustify = exports.AlignCenter = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _Collapse = _interopRequireDefault(require("@material-ui/core/Collapse"));
17
+
18
+ var _List = _interopRequireDefault(require("@material-ui/core/List"));
19
+
20
+ var _ListItem = _interopRequireDefault(require("@material-ui/core/ListItem"));
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ var AlignLeft = function AlignLeft() {
27
+ return /*#__PURE__*/_react["default"].createElement("svg", {
28
+ width: "20",
29
+ height: "20",
30
+ viewBox: "0 0 66 66",
31
+ fill: "none",
32
+ xmlns: "http://www.w3.org/2000/svg"
33
+ }, /*#__PURE__*/_react["default"].createElement("path", {
34
+ d: "M42.1875 4.75C42.1875 7.38672 39.9902 9.4375 37.5 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H37.5C39.9902 0.0625 42.1875 2.25977 42.1875 4.75ZM42.1875 42.25C42.1875 44.8867 39.9902 46.9375 37.5 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H37.5C39.9902 37.5625 42.1875 39.7598 42.1875 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z",
35
+ fill: "currentColor"
36
+ }));
37
+ };
38
+
39
+ exports.AlignLeft = AlignLeft;
40
+
41
+ var AlignRight = function AlignRight() {
42
+ return /*#__PURE__*/_react["default"].createElement("svg", {
43
+ width: "20",
44
+ height: "20",
45
+ viewBox: "0 0 66 66",
46
+ fill: "none",
47
+ xmlns: "http://www.w3.org/2000/svg"
48
+ }, /*#__PURE__*/_react["default"].createElement("path", {
49
+ d: "M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H28.125C25.4883 9.4375 23.4375 7.38672 23.4375 4.75C23.4375 2.25977 25.4883 0.0625 28.125 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H28.125C25.4883 46.9375 23.4375 44.8867 23.4375 42.25C23.4375 39.7598 25.4883 37.5625 28.125 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z",
50
+ fill: "currentColor"
51
+ }));
52
+ };
53
+
54
+ exports.AlignRight = AlignRight;
55
+
56
+ var AlignCenter = function AlignCenter() {
57
+ return /*#__PURE__*/_react["default"].createElement("svg", {
58
+ width: "20",
59
+ height: "20",
60
+ viewBox: "0 0 66 66",
61
+ fill: "none",
62
+ xmlns: "http://www.w3.org/2000/svg"
63
+ }, /*#__PURE__*/_react["default"].createElement("path", {
64
+ d: "M51.5625 4.75C51.5625 7.38672 49.3652 9.4375 46.875 9.4375H18.75C16.1133 9.4375 14.0625 7.38672 14.0625 4.75C14.0625 2.25977 16.1133 0.0625 18.75 0.0625H46.875C49.3652 0.0625 51.5625 2.25977 51.5625 4.75ZM65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5ZM0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61ZM51.5625 42.25C51.5625 44.8867 49.3652 46.9375 46.875 46.9375H18.75C16.1133 46.9375 14.0625 44.8867 14.0625 42.25C14.0625 39.7598 16.1133 37.5625 18.75 37.5625H46.875C49.3652 37.5625 51.5625 39.7598 51.5625 42.25Z",
65
+ fill: "currentColor"
66
+ }));
67
+ };
68
+
69
+ exports.AlignCenter = AlignCenter;
70
+
71
+ var AlignJustify = function AlignJustify() {
72
+ return /*#__PURE__*/_react["default"].createElement("svg", {
73
+ width: "20",
74
+ height: "20",
75
+ viewBox: "0 0 66 66",
76
+ fill: "none",
77
+ xmlns: "http://www.w3.org/2000/svg"
78
+ }, /*#__PURE__*/_react["default"].createElement("path", {
79
+ d: "M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z",
80
+ fill: "currentColor"
81
+ }));
82
+ };
83
+
84
+ exports.AlignJustify = AlignJustify;
85
+
86
+ var _default = function _default(_ref) {
87
+ var editor = _ref.editor,
88
+ onChange = _ref.onChange;
89
+
90
+ var _useState = (0, _react.useState)(false),
91
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
92
+ open = _useState2[0],
93
+ setOpen = _useState2[1];
94
+
95
+ var icon;
96
+
97
+ switch (true) {
98
+ case editor.isActive({
99
+ textAlign: 'right'
100
+ }):
101
+ icon = /*#__PURE__*/_react["default"].createElement(AlignRight, null);
102
+ break;
103
+
104
+ case editor.isActive({
105
+ textAlign: 'center'
106
+ }):
107
+ icon = /*#__PURE__*/_react["default"].createElement(AlignCenter, null);
108
+ break;
109
+
110
+ case editor.isActive({
111
+ textAlign: 'justify'
112
+ }):
113
+ icon = /*#__PURE__*/_react["default"].createElement(AlignJustify, null);
114
+ break;
115
+
116
+ default:
117
+ icon = /*#__PURE__*/_react["default"].createElement(AlignLeft, null);
118
+ break;
119
+ }
120
+
121
+ var applyAlignment = function applyAlignment(event) {
122
+ var _event$target, _event$target$closest;
123
+
124
+ var alignType = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : (_event$target$closest = _event$target.closest('div')) === null || _event$target$closest === void 0 ? void 0 : _event$target$closest.getAttribute('value');
125
+
126
+ if (alignType) {
127
+ editor.commands.setTextAlign(alignType);
128
+ }
129
+
130
+ setOpen(false);
131
+ };
132
+
133
+ var onMouseDown = function onMouseDown(event) {
134
+ event.preventDefault();
135
+ event.stopPropagation();
136
+ setOpen(!open);
137
+ };
138
+
139
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
140
+ style: {
141
+ display: 'flex',
142
+ alignItems: 'center'
143
+ },
144
+ onClick: onMouseDown
145
+ }, icon, /*#__PURE__*/_react["default"].createElement("span", {
146
+ style: {
147
+ marginLeft: '5px',
148
+ fontSize: '8px'
149
+ }
150
+ }, "\u25BC")), /*#__PURE__*/_react["default"].createElement(_Collapse["default"], {
151
+ "in": open,
152
+ timeout: "auto",
153
+ unmountOnExit: true,
154
+ style: {
155
+ position: 'absolute'
156
+ }
157
+ }, /*#__PURE__*/_react["default"].createElement(_List["default"], {
158
+ component: "div",
159
+ disablePadding: true,
160
+ style: {
161
+ background: '#fff',
162
+ display: 'flex',
163
+ flexDirection: 'row',
164
+ padding: 0
165
+ }
166
+ }, /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
167
+ button: true,
168
+ type: "submit",
169
+ value: "left",
170
+ "aria-label": "Align text left",
171
+ onClick: applyAlignment
172
+ }, /*#__PURE__*/_react["default"].createElement(AlignLeft, null)), /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
173
+ button: true,
174
+ type: "submit",
175
+ value: "center",
176
+ "aria-label": "Align text center",
177
+ onClick: applyAlignment
178
+ }, /*#__PURE__*/_react["default"].createElement(AlignCenter, null)), /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
179
+ button: true,
180
+ type: "submit",
181
+ value: "right",
182
+ "aria-label": "Align text right",
183
+ onClick: applyAlignment
184
+ }, /*#__PURE__*/_react["default"].createElement(AlignRight, null)), /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
185
+ button: true,
186
+ type: "submit",
187
+ value: "justify",
188
+ "aria-label": "Justify text",
189
+ onClick: applyAlignment
190
+ }, /*#__PURE__*/_react["default"].createElement(AlignJustify, null)))));
191
+ };
192
+
193
+ exports["default"] = _default;
194
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LmpzeCJdLCJuYW1lcyI6WyJBbGlnbkxlZnQiLCJBbGlnblJpZ2h0IiwiQWxpZ25DZW50ZXIiLCJBbGlnbkp1c3RpZnkiLCJlZGl0b3IiLCJvbkNoYW5nZSIsIm9wZW4iLCJzZXRPcGVuIiwiaWNvbiIsImlzQWN0aXZlIiwidGV4dEFsaWduIiwiYXBwbHlBbGlnbm1lbnQiLCJldmVudCIsImFsaWduVHlwZSIsInRhcmdldCIsImNsb3Nlc3QiLCJnZXRBdHRyaWJ1dGUiLCJjb21tYW5kcyIsInNldFRleHRBbGlnbiIsIm9uTW91c2VEb3duIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsIm1hcmdpbkxlZnQiLCJmb250U2l6ZSIsInBvc2l0aW9uIiwiYmFja2dyb3VuZCIsImZsZXhEaXJlY3Rpb24iLCJwYWRkaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVPLElBQU1BLFNBQVMsR0FBRyxTQUFaQSxTQUFZO0FBQUEsc0JBQ3ZCO0FBQUssSUFBQSxLQUFLLEVBQUMsSUFBWDtBQUFnQixJQUFBLE1BQU0sRUFBQyxJQUF2QjtBQUE0QixJQUFBLE9BQU8sRUFBQyxXQUFwQztBQUFnRCxJQUFBLElBQUksRUFBQyxNQUFyRDtBQUE0RCxJQUFBLEtBQUssRUFBQztBQUFsRSxrQkFDRTtBQUNFLElBQUEsQ0FBQyxFQUFDLGd2QkFESjtBQUVFLElBQUEsSUFBSSxFQUFDO0FBRlAsSUFERixDQUR1QjtBQUFBLENBQWxCOzs7O0FBU0EsSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQWE7QUFBQSxzQkFDeEI7QUFBSyxJQUFBLEtBQUssRUFBQyxJQUFYO0FBQWdCLElBQUEsTUFBTSxFQUFDLElBQXZCO0FBQTRCLElBQUEsT0FBTyxFQUFDLFdBQXBDO0FBQWdELElBQUEsSUFBSSxFQUFDLE1B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QkFDRSxnQ0FBQyxVQUFELE9BREYsQ0FsQkYsZUFzQkUsZ0NBQUMsb0JBQUQ7QUFBVSxJQUFBLE1BQU0sTUFBaEI7QUFBaUIsSUFBQSxJQUFJLEVBQUMsUUFBdEI7QUFBK0IsSUFBQSxLQUFLLEVBQUMsU0FBckM7QUFBK0Msa0JBQVcsY0FBMUQ7QUFBeUUsSUFBQSxPQUFPLEVBQUVBO0FBQWxGLGtCQUNFLGdDQUFDLFlBQUQsT0FERixDQXRCRixDQURGLENBTEYsQ0FERjtBQW9DRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IENvbGxhcHNlIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0NvbGxhcHNlJztcbmltcG9ydCBMaXN0IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0xpc3QnO1xuaW1wb3J0IExpc3RJdGVtIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0xpc3RJdGVtJztcblxuZXhwb3J0IGNvbnN0IEFsaWduTGVmdCA9ICgpID0+IChcbiAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDY2IDY2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNNDIuMTg3NSA0Ljc1QzQyLjE4NzUgNy4zODY3MiAzOS45OTAyIDkuNDM3NSAzNy41IDkuNDM3NUg0LjY4NzVDMi4wNTA3OCA5LjQzNzUgMCA3LjM4NjcyIDAgNC43NUMwIDIuMjU5NzcgMi4wNTA3OCAwLjA2MjUgNC42ODc1IDAuMDYyNUgzNy41QzM5Ljk5MDIgMC4wNjI1IDQyLjE4NzUgMi4yNTk3NyA0Mi4xODc1IDQuNzVaTTQyLjE4NzUgNDIuMjVDNDIuMTg3NSA0NC44ODY3IDM5Ljk5MDIgNDYuOTM3NSAzNy41IDQ2LjkzNzVINC42ODc1QzIuMDUwNzggNDYuOTM3NSAwIDQ0Ljg4NjcgMCA0Mi4yNUMwIDM5Ljc1OTggMi4wNTA3OCAzNy41NjI1IDQuNjg3NSAzNy41NjI1SDM3LjVDMzkuOTkwMiAzNy41NjI1IDQyLjE4NzUgMzkuNzU5OCA0Mi4xODc1IDQyLjI1Wk0wIDIzLjVDMCAyMS4wMDk4IDIuMDUwNzggMTguODEyNSA0LjY4NzUgMTguODEyNUg2MC45Mzc1QzYzLjQyNzcgMTguODEyNSA2NS42MjUgMjEuMDA5OCA2NS42MjUgMjMuNUM2NS42MjUgMjYuMTM2NyA2My40Mjc3IDI4LjE4NzUgNjAuOTM3NSAyOC4xODc1SDQuNjg3NUMyLjA1MDc4IDI4LjE4NzUgMCAyNi4xMzY3IDAgMjMuNVpNNjUuNjI1IDYxQzY1LjYyNSA2My42MzY3IDYzLjQyNzcgNjUuNjg3NSA2MC45Mzc1IDY1LjY4NzVINC42ODc1QzIuMDUwNzggNjUuNjg3NSAwIDYzLjYzNjcgMCA2MUMwIDU4LjUwOTggMi4wNTA3OCA1Ni4zMTI1IDQuNjg3NSA1Ni4zMTI1SDYwLjkzNzVDNjMuNDI3NyA1Ni4zMTI1IDY1LjYyNSA1OC41MDk4IDY1LjYyNSA2MVpcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuXG5leHBvcnQgY29uc3QgQWxpZ25SaWdodCA9ICgpID0+IChcbiAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDY2IDY2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNNjUuNjI1IDQuNzVDNjUuNjI1IDcuMzg2NzIgNjMuNDI3NyA5LjQzNzUgNjAuOTM3NSA5LjQzNzVIMjguMTI1QzI1LjQ4ODMgOS40Mzc1IDIzLjQzNzUgNy4zODY3MiAyMy40Mzc1IDQuNzVDMjMuNDM3NSAyLjI1OTc3IDI1LjQ4ODMgMC4wNjI1IDI4LjEyNSAwLjA2MjVINjAuOTM3NUM2My40Mjc3IDAuMDYyNSA2NS42MjUgMi4yNTk3NyA2NS42MjUgNC43NVpNNjUuNjI1IDQyLjI1QzY1LjYyNSA0NC44ODY3IDYzLjQyNzcgNDYuOTM3NSA2MC45Mzc1IDQ2LjkzNzVIMjguMTI1QzI1LjQ4ODMgNDYuOTM3NSAyMy40Mzc1IDQ0Ljg4NjcgMjMuNDM3NSA0Mi4yNUMyMy40Mzc1IDM5Ljc1OTggMjUuNDg4MyAzNy41NjI1IDI4LjEyNSAzNy41NjI1SDYwLjkzNzVDNjMuNDI3NyAzNy41NjI1IDY1LjYyNSAzOS43NTk4IDY1LjYyNSA0Mi4yNVpNMCAyMy41QzAgMjEuMDA5OCAyLjA1MDc4IDE4LjgxMjUgNC42ODc1IDE4LjgxMjVINjAuOTM3NUM2My40Mjc3IDE4LjgxMjUgNjUuNjI1IDIxLjAwOTggNjUuNjI1IDIzLjVDNjUuNjI1IDI2LjEzNjcgNjMuNDI3NyAyOC4xODc1IDYwLjkzNzUgMjguMTg3NUg0LjY4NzVDMi4wNTA3OCAyOC4xODc1IDAgMjYuMTM2NyAwIDIzLjVaTTY1LjYyNSA2MUM2NS42MjUgNjMuNjM2NyA2My40Mjc3IDY1LjY4NzUgNjAuOTM3NSA2NS42ODc1SDQuNjg3NUMyLjA1MDc4IDY1LjY4NzUgMCA2My42MzY3IDAgNjFDMCA1OC41MDk4IDIuMDUwNzggNTYuMzEyNSA0LjY4NzUgNTYuMzEyNUg2MC45Mzc1QzYzLjQyNzcgNTYuMzEyNSA2NS42MjUgNTguNTA5OCA2NS42MjUgNjFaXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuZXhwb3J0IGNvbnN0IEFsaWduQ2VudGVyID0gKCkgPT4gKFxuICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgNjYgNjZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICA8cGF0aFxuICAgICAgZD1cIk01MS41NjI1IDQuNzVDNTEuNTYyNSA3LjM4NjcyIDQ5LjM2NTIgOS40Mzc1IDQ2Ljg3NSA5LjQzNzVIMTguNzVDMTYuMTEzMyA5LjQzNzUgMTQuMDYyNSA3LjM4NjcyIDE0LjA2MjUgNC43NUMxNC4wNjI1IDIuMjU5NzcgMTYuMTEzMyAwLjA2MjUgMTguNzUgMC4wNjI1SDQ2Ljg3NUM0OS4zNjUyIDAuMDYyNSA1MS41NjI1IDIuMjU5NzcgNTEuNTYyNSA0Ljc1Wk02NS42MjUgMjMuNUM2NS42MjUgMjYuMTM2NyA2My40Mjc3IDI4LjE4NzUgNjAuOTM3NSAyOC4xODc1SDQuNjg3NUMyLjA1MDc4IDI4LjE4NzUgMCAyNi4xMzY3IDAgMjMuNUMwIDIxLjAwOTggMi4wNTA3OCAxOC44MTI1IDQuNjg3NSAxOC44MTI1SDYwLjkzNzVDNjMuNDI3NyAxOC44MTI1IDY1LjYyNSAyMS4wMDk4IDY1LjYyNSAyMy41Wk0wIDYxQzAgNTguNTA5OCAyLjA1MDc4IDU2LjMxMjUgNC42ODc1IDU2LjMxMjVINjAuOTM3NUM2My40Mjc3IDU2LjMxMjUgNjUuNjI1IDU4LjUwOTggNjUuNjI1IDYxQzY1LjYyNSA2My42MzY3IDYzLjQyNzcgNjUuNjg3NSA2MC45Mzc1IDY1LjY4NzVINC42ODc1QzIuMDUwNzggNjUuNjg3NSAwIDYzLjYzNjcgMCA2MVpNNTEuNTYyNSA0Mi4yNUM1MS41NjI1IDQ0Ljg4NjcgNDkuMzY1MiA0Ni45Mzc1IDQ2Ljg3NSA0Ni45Mzc1SDE4Ljc1QzE2LjExMzMgNDYuOTM3NSAxNC4wNjI1IDQ0Ljg4NjcgMTQuMDYyNSA0Mi4yNUMxNC4wNjI1IDM5Ljc1OTggMTYuMTEzMyAzNy41NjI1IDE4Ljc1IDM3LjU2MjVINDYuODc1QzQ5LjM2NTIgMzcuNTYyNSA1MS41NjI1IDM5Ljc1OTggNTEuNTYyNSA0Mi4yNVpcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuXG5leHBvcnQgY29uc3QgQWxpZ25KdXN0aWZ5ID0gKCkgPT4gKFxuICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgNjYgNjZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICA8cGF0aFxuICAgICAgZD1cIk02NS42MjUgNC43NUM2NS42MjUgNy4zODY3MiA2My40Mjc3IDkuNDM3NSA2MC45Mzc1IDkuNDM3NUg0LjY4NzVDMi4wNTA3OCA5LjQzNzUgMCA3LjM4NjcyIDAgNC43NUMwIDIuMjU5NzcgMi4wNTA3OCAwLjA2MjUgNC42ODc1IDAuMDYyNUg2MC45Mzc1QzYzLjQyNzcgMC4wNjI1IDY1LjYyNSAyLjI1OTc3IDY1LjYyNSA0Ljc1Wk02NS42MjUgNDIuMjVDNjUuNjI1IDQ0Ljg4NjcgNjMuNDI3NyA0Ni45Mzc1IDYwLjkzNzUgNDYuOTM3NUg0LjY4NzVDMi4wNTA3OCA0Ni45Mzc1IDAgNDQuODg2NyAwIDQyLjI1QzAgMzkuNzU5OCAyLjA1MDc4IDM3LjU2MjUgNC42ODc1IDM3LjU2MjVINjAuOTM3NUM2My40Mjc3IDM3LjU2MjUgNjUuNjI1IDM5Ljc1OTggNjUuNjI1IDQyLjI1Wk0wIDIzLjVDMCAyMS4wMDk4IDIuMDUwNzggMTguODEyNSA0LjY4NzUgMTguODEyNUg2MC45Mzc1QzYzLjQyNzcgMTguODEyNSA2NS42MjUgMjEuMDA5OCA2NS42MjUgMjMuNUM2NS42MjUgMjYuMTM2NyA2My40Mjc3IDI4LjE4NzUgNjAuOTM3NSAyOC4xODc1SDQuNjg3NUMyLjA1MDc4IDI4LjE4NzUgMCAyNi4xMzY3IDAgMjMuNVpNNjUuNjI1IDYxQzY1LjYyNSA2My42MzY3IDYzLjQyNzcgNjUuNjg3NSA2MC45Mzc1IDY1LjY4NzVINC42ODc1QzIuMDUwNzggNjUuNjg3NSAwIDYzLjYzNjcgMCA2MUMwIDU4LjUwOTggMi4wNTA3OCA1Ni4zMTI1IDQuNjg3NSA1Ni4zMTI1SDYwLjkzNzVDNjMuNDI3NyA1Ni4zMTI1IDY1LjYyNSA1OC41MDk4IDY1LjYyNSA2MVpcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCAoeyBlZGl0b3IsIG9uQ2hhbmdlIH0pID0+IHtcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGxldCBpY29uO1xuXG4gIHN3aXRjaCAodHJ1ZSkge1xuICAgIGNhc2UgZWRpdG9yLmlzQWN0aXZlKHsgdGV4dEFsaWduOiAncmlnaHQnIH0pOlxuICAgICAgaWNvbiA9IDxBbGlnblJpZ2h0IC8+O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBlZGl0b3IuaXNBY3RpdmUoeyB0ZXh0QWxpZ246ICdjZW50ZXInIH0pOlxuICAgICAgaWNvbiA9IDxBbGlnbkNlbnRlciAvPjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgZWRpdG9yLmlzQWN0aXZlKHsgdGV4dEFsaWduOiAnanVzdGlmeScgfSk6XG4gICAgICBpY29uID0gPEFsaWduSnVzdGlmeSAvPjtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBpY29uID0gPEFsaWduTGVmdCAvPjtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgY29uc3QgYXBwbHlBbGlnbm1lbnQgPSAoZXZlbnQpID0+IHtcbiAgICBjb25zdCBhbGlnblR5cGUgPSBldmVudC50YXJnZXQ/LmNsb3Nlc3QoJ2RpdicpPy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJyk7XG5cbiAgICBpZiAoYWxpZ25UeXBlKSB7XG4gICAgICBlZGl0b3IuY29tbWFuZHMuc2V0VGV4dEFsaWduKGFsaWduVHlwZSk7XG4gICAgfVxuXG4gICAgc2V0T3BlbihmYWxzZSk7XG4gIH07XG5cbiAgY29uc3Qgb25Nb3VzZURvd24gPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHNldE9wZW4oIW9wZW4pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9fSBvbkNsaWNrPXtvbk1vdXNlRG93bn0+XG4gICAgICAgIHtpY29ufVxuICAgICAgICA8c3BhbiBzdHlsZT17eyBtYXJnaW5MZWZ0OiAnNXB4JywgZm9udFNpemU6ICc4cHgnIH19PiYjOTY2MDs8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxDb2xsYXBzZSBpbj17b3Blbn0gdGltZW91dD1cImF1dG9cIiB1bm1vdW50T25FeGl0IHN0eWxlPXt7IHBvc2l0aW9uOiAnYWJzb2x1dGUnIH19PlxuICAgICAgICA8TGlzdFxuICAgICAgICAgIGNvbXBvbmVudD1cImRpdlwiXG4gICAgICAgICAgZGlzYWJsZVBhZGRpbmdcbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJyNmZmYnLFxuICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8TGlzdEl0ZW0gYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cImxlZnRcIiBhcmlhLWxhYmVsPVwiQWxpZ24gdGV4dCBsZWZ0XCIgb25DbGljaz17YXBwbHlBbGlnbm1lbnR9PlxuICAgICAgICAgICAgPEFsaWduTGVmdCAvPlxuICAgICAgICAgIDwvTGlzdEl0ZW0+XG5cbiAgICAgICAgICA8TGlzdEl0ZW0gYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cImNlbnRlclwiIGFyaWEtbGFiZWw9XCJBbGlnbiB0ZXh0IGNlbnRlclwiIG9uQ2xpY2s9e2FwcGx5QWxpZ25tZW50fT5cbiAgICAgICAgICAgIDxBbGlnbkNlbnRlciAvPlxuICAgICAgICAgIDwvTGlzdEl0ZW0+XG5cbiAgICAgICAgICA8TGlzdEl0ZW0gYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cInJpZ2h0XCIgYXJpYS1sYWJlbD1cIkFsaWduIHRleHQgcmlnaHRcIiBvbkNsaWNrPXthcHBseUFsaWdubWVudH0+XG4gICAgICAgICAgICA8QWxpZ25SaWdodCAvPlxuICAgICAgICAgIDwvTGlzdEl0ZW0+XG5cbiAgICAgICAgICA8TGlzdEl0ZW0gYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cImp1c3RpZnlcIiBhcmlhLWxhYmVsPVwiSnVzdGlmeSB0ZXh0XCIgb25DbGljaz17YXBwbHlBbGlnbm1lbnR9PlxuICAgICAgICAgICAgPEFsaWduSnVzdGlmeSAvPlxuICAgICAgICAgIDwvTGlzdEl0ZW0+XG4gICAgICAgIDwvTGlzdD5cbiAgICAgIDwvQ29sbGFwc2U+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _imageToolbar["default"];
12
+ }
13
+ });
14
+
15
+ var _imageToolbar = _interopRequireDefault(require("../../plugins/image/image-toolbar"));
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ltYWdlL0ltYWdlVG9vbGJhci5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuLi8uLi9wbHVnaW5zL2ltYWdlL2ltYWdlLXRvb2xiYXInO1xuIl19
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _insertImageHandler["default"];
12
+ }
13
+ });
14
+
15
+ var _insertImageHandler = _interopRequireDefault(require("../../plugins/image/insert-image-handler"));
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ltYWdlL0luc2VydEltYWdlSGFuZGxlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvaW1hZ2UvaW5zZXJ0LWltYWdlLWhhbmRsZXInO1xuIl19
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _mediaDialog["default"];
12
+ }
13
+ });
14
+
15
+ var _mediaDialog = _interopRequireDefault(require("../../plugins/media/media-dialog"));
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21lZGlhL01lZGlhRGlhbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnLi4vLi4vcGx1Z2lucy9tZWRpYS9tZWRpYS1kaWFsb2cnO1xuIl19
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _mediaToolbar["default"];
12
+ }
13
+ });
14
+
15
+ var _mediaToolbar = _interopRequireDefault(require("../../plugins/media/media-toolbar"));
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21lZGlhL01lZGlhVG9vbGJhci5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuLi8uLi9wbHVnaW5zL21lZGlhL21lZGlhLXRvb2xiYXInO1xuIl19
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.onValueChange = exports.onRemoveResponse = exports["default"] = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var _react2 = require("@tiptap/react");
19
+
20
+ var _choice = _interopRequireDefault(require("./choice"));
21
+
22
+ var _omit = _interopRequireDefault(require("lodash/omit"));
23
+
24
+ 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; }
25
+
26
+ 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; }
27
+
28
+ var onValueChange = function onValueChange(editor, node, pos, choice) {
29
+ var tr = editor.state.tr; // Merge old and new attributes
30
+
31
+ tr.setNodeMarkup(pos, undefined, _objectSpread(_objectSpread({}, node.attrs), choice));
32
+ tr.isDone = true;
33
+ editor.view.dispatch(tr);
34
+ };
35
+
36
+ exports.onValueChange = onValueChange;
37
+
38
+ var onRemoveResponse = function onRemoveResponse(editor, node, pos) {
39
+ var tr = editor.state.tr; // Merge old and new attributes
40
+
41
+ tr.setNodeMarkup(pos, undefined, (0, _omit["default"])(node.attrs, ['value', 'id']));
42
+ tr.isDone = true;
43
+ editor.view.dispatch(tr);
44
+ };
45
+
46
+ exports.onRemoveResponse = onRemoveResponse;
47
+
48
+ var DragDrop = function DragDrop(props) {
49
+ var editor = props.editor,
50
+ node = props.node,
51
+ getPos = props.getPos,
52
+ options = props.options,
53
+ selected = props.selected;
54
+ var attributes = node.attrs;
55
+ var inTable = attributes.inTable;
56
+ var pos = getPos(); // console.log({nodeProps.children})
57
+
58
+ return /*#__PURE__*/_react["default"].createElement(_react2.NodeViewWrapper, {
59
+ className: "drag-in-the-blank",
60
+ "data-selected": selected
61
+ }, /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, attributes, {
62
+ style: {
63
+ display: 'inline-flex',
64
+ minHeight: '50px',
65
+ minWidth: '178px',
66
+ position: 'relative',
67
+ margin: inTable ? '10px' : '0 10px',
68
+ cursor: 'pointer'
69
+ }
70
+ }), /*#__PURE__*/_react["default"].createElement(_choice["default"], {
71
+ n: attributes,
72
+ dragKey: attributes.id,
73
+ targetId: "0",
74
+ value: attributes,
75
+ duplicates: options.duplicates,
76
+ onChange: function onChange(choice) {
77
+ return onValueChange(editor, node, pos, choice);
78
+ },
79
+ removeResponse: function removeResponse() {
80
+ return onRemoveResponse(editor, node, pos);
81
+ }
82
+ })));
83
+ };
84
+
85
+ DragDrop.propTypes = {
86
+ attributes: _propTypes["default"].object,
87
+ data: _propTypes["default"].object,
88
+ n: _propTypes["default"].object,
89
+ nodeProps: _propTypes["default"].object,
90
+ opts: _propTypes["default"].object
91
+ };
92
+ var _default = DragDrop;
93
+ exports["default"] = _default;
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3Jlc3BBcmVhL0RyYWdJblRoZUJsYW5rL0RyYWdJblRoZUJsYW5rLmpzeCJdLCJuYW1lcyI6WyJvblZhbHVlQ2hhbmdlIiwiZWRpdG9yIiwibm9kZSIsInBvcyIsImNob2ljZSIsInRyIiwic3RhdGUiLCJzZXROb2RlTWFya3VwIiwidW5kZWZpbmVkIiwiYXR0cnMiLCJpc0RvbmUiLCJ2aWV3IiwiZGlzcGF0Y2giLCJvblJlbW92ZVJlc3BvbnNlIiwiRHJhZ0Ryb3AiLCJwcm9wcyIsImdldFBvcyIsIm9wdGlvbnMiLCJzZWxlY3RlZCIsImF0dHJpYnV0ZXMiLCJpblRhYmxlIiwiZGlzcGxheSIsIm1pbkhlaWdodCIsIm1pbldpZHRoIiwicG9zaXRpb24iLCJtYXJnaW4iLCJjdXJzb3IiLCJpZCIsImR1cGxpY2F0ZXMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJkYXRhIiwibiIsIm5vZGVQcm9wcyIsIm9wdHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRU8sSUFBTUEsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDQyxNQUFELEVBQVNDLElBQVQsRUFBZUMsR0FBZixFQUFvQkMsTUFBcEIsRUFBK0I7QUFDMUQsTUFBUUMsRUFBUixHQUFlSixNQUFNLENBQUNLLEtBQXRCLENBQVFELEVBQVIsQ0FEMEQsQ0FHMUQ7O0FBQ0FBLEVBQUFBLEVBQUUsQ0FBQ0UsYUFBSCxDQUFpQkosR0FBakIsRUFBc0JLLFNBQXRCLGtDQUNLTixJQUFJLENBQUNPLEtBRFYsR0FFS0wsTUFGTDtBQUlBQyxFQUFBQSxFQUFFLENBQUNLLE1BQUgsR0FBWSxJQUFaO0FBQ0FULEVBQUFBLE1BQU0sQ0FBQ1UsSUFBUCxDQUFZQyxRQUFaLENBQXFCUCxFQUFyQjtBQUNELENBVk07Ozs7QUFZQSxJQUFNUSxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQUNaLE1BQUQsRUFBU0MsSUFBVCxFQUFlQyxHQUFmLEVBQXVCO0FBQ3JELE1BQVFFLEVBQVIsR0FBZUosTUFBTSxDQUFDSyxLQUF0QixDQUFRRCxFQUFSLENBRHFELENBR3JEOztBQUNBQSxFQUFBQSxFQUFFLENBQUNFLGFBQUgsQ0FBaUJKLEdBQWpCLEVBQXNCSyxTQUF0QixFQUFpQyxzQkFBS04sSUFBSSxDQUFDTyxLQUFWLEVBQWlCLENBQUMsT0FBRCxFQUFVLElBQVYsQ0FBakIsQ0FBakM7QUFDQUosRUFBQUEsRUFBRSxDQUFDSyxNQUFILEdBQVksSUFBWjtBQUNBVCxFQUFBQSxNQUFNLENBQUNVLElBQVAsQ0FBWUMsUUFBWixDQUFxQlAsRUFBckI7QUFDRCxDQVBNOzs7O0FBU1AsSUFBTVMsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0MsS0FBRCxFQUFXO0FBQzFCLE1BQVFkLE1BQVIsR0FBb0RjLEtBQXBELENBQVFkLE1BQVI7QUFBQSxNQUFnQkMsSUFBaEIsR0FBb0RhLEtBQXBELENBQWdCYixJQUFoQjtBQUFBLE1BQXNCYyxNQUF0QixHQUFvREQsS0FBcEQsQ0FBc0JDLE1BQXRCO0FBQUEsTUFBOEJDLE9BQTlCLEdBQW9ERixLQUFwRCxDQUE4QkUsT0FBOUI7QUFBQSxNQUF1Q0MsUUFBdkMsR0FBb0RILEtBQXBELENBQXVDRyxRQUF2QztBQUNBLE1BQWVDLFVBQWYsR0FBOEJqQixJQUE5QixDQUFRTyxLQUFSO0FBQ0EsTUFBUVcsT0FBUixHQUFvQkQsVUFBcEIsQ0FBUUMsT0FBUjtBQUNBLE1BQU1qQixHQUFHLEdBQUdhLE1BQU0sRUFBbEIsQ0FKMEIsQ0FNMUI7O0FBQ0Esc0JBQ0UsZ0NBQUMsdUJBQUQ7QUFBaUIsSUFBQSxTQUFTLEVBQUMsbUJBQTNCO0FBQStDLHFCQUFlRTtBQUE5RCxrQkFDRSxzRUFDTUMsVUFETjtBQUVFLElBQUEsS0FBSyxFQUFFO0FBQ0xFLE1BQUFBLE9BQU8sRUFBRSxhQURKO0FBRUxDLE1BQUFBLFNBQVMsRUFBRSxNQUZOO0FBR0xDLE1BQUFBLFFBQVEsRUFBRSxPQUhMO0FBSUxDLE1BQUFBLFFBQVEsRUFBRSxVQUpMO0FBS0xDLE1BQUFBLE1BQU0sRUFBRUwsT0FBTyxHQUFHLE1BQUgsR0FBWSxRQUx0QjtBQU1MTSxNQUFBQSxNQUFNLEVBQUU7QUFOSDtBQUZULG1CQVdFLGdDQUFDLGtCQUFEO0FBQ0UsSUFBQSxDQUFDLEVBQUVQLFVBREw7QUFFRSxJQUFBLE9BQU8sRUFBRUEsVUFBVSxDQUFDUSxFQUZ0QjtBQUdFLElBQUEsUUFBUSxFQUFDLEdBSFg7QUFJRSxJQUFBLEtBQUssRUFBRVIsVUFKVDtBQUtFLElBQUEsVUFBVSxFQUFFRixPQUFPLENBQUNXLFVBTHRCO0FBTUUsSUFBQSxRQUFRLEVBQUUsa0JBQUN4QixNQUFEO0FBQUEsYUFBWUosYUFBYSxDQUFDQyxNQUFELEVBQVNDLElBQVQsRUFBZUMsR0FBZixFQUFvQkMsTUFBcEIsQ0FBekI7QUFBQSxLQU5aO0FBT0UsSUFBQSxjQUFjLEVBQUU7QUFBQSxhQUFNUyxnQkFBZ0IsQ0FBQ1osTUFBRCxFQUFTQyxJQUFULEVBQWVDLEdBQWYsQ0FBdEI7QUFBQTtBQVBsQixJQVhGLENBREYsQ0FERjtBQXlCRCxDQWhDRDs7QUFrQ0FXLFFBQVEsQ0FBQ2UsU0FBVCxHQUFxQjtBQUNuQlYsRUFBQUEsVUFBVSxFQUFFVyxzQkFBVUMsTUFESDtBQUVuQkMsRUFBQUEsSUFBSSxFQUFFRixzQkFBVUMsTUFGRztBQUduQkUsRUFBQUEsQ0FBQyxFQUFFSCxzQkFBVUMsTUFITTtBQUluQkcsRUFBQUEsU0FBUyxFQUFFSixzQkFBVUMsTUFKRjtBQUtuQkksRUFBQUEsSUFBSSxFQUFFTCxzQkFBVUM7QUFMRyxDQUFyQjtlQVFlakIsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgTm9kZVZpZXdXcmFwcGVyIH0gZnJvbSAnQHRpcHRhcC9yZWFjdCc7XG5pbXBvcnQgRHJhZ0Ryb3BUaWxlIGZyb20gJy4vY2hvaWNlJztcbmltcG9ydCBvbWl0IGZyb20gJ2xvZGFzaC9vbWl0JztcblxuZXhwb3J0IGNvbnN0IG9uVmFsdWVDaGFuZ2UgPSAoZWRpdG9yLCBub2RlLCBwb3MsIGNob2ljZSkgPT4ge1xuICBjb25zdCB7IHRyIH0gPSBlZGl0b3Iuc3RhdGU7XG5cbiAgLy8gTWVyZ2Ugb2xkIGFuZCBuZXcgYXR0cmlidXRlc1xuICB0ci5zZXROb2RlTWFya3VwKHBvcywgdW5kZWZpbmVkLCB7XG4gICAgLi4ubm9kZS5hdHRycyxcbiAgICAuLi5jaG9pY2UsXG4gIH0pO1xuICB0ci5pc0RvbmUgPSB0cnVlO1xuICBlZGl0b3Iudmlldy5kaXNwYXRjaCh0cik7XG59O1xuXG5leHBvcnQgY29uc3Qgb25SZW1vdmVSZXNwb25zZSA9IChlZGl0b3IsIG5vZGUsIHBvcykgPT4ge1xuICBjb25zdCB7IHRyIH0gPSBlZGl0b3Iuc3RhdGU7XG5cbiAgLy8gTWVyZ2Ugb2xkIGFuZCBuZXcgYXR0cmlidXRlc1xuICB0ci5zZXROb2RlTWFya3VwKHBvcywgdW5kZWZpbmVkLCBvbWl0KG5vZGUuYXR0cnMsIFsndmFsdWUnLCAnaWQnXSkpO1xuICB0ci5pc0RvbmUgPSB0cnVlO1xuICBlZGl0b3Iudmlldy5kaXNwYXRjaCh0cik7XG59O1xuXG5jb25zdCBEcmFnRHJvcCA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGVkaXRvciwgbm9kZSwgZ2V0UG9zLCBvcHRpb25zLCBzZWxlY3RlZCB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgYXR0cnM6IGF0dHJpYnV0ZXMgfSA9IG5vZGU7XG4gIGNvbnN0IHsgaW5UYWJsZSB9ID0gYXR0cmlidXRlcztcbiAgY29uc3QgcG9zID0gZ2V0UG9zKCk7XG5cbiAgLy8gY29uc29sZS5sb2coe25vZGVQcm9wcy5jaGlsZHJlbn0pXG4gIHJldHVybiAoXG4gICAgPE5vZGVWaWV3V3JhcHBlciBjbGFzc05hbWU9XCJkcmFnLWluLXRoZS1ibGFua1wiIGRhdGEtc2VsZWN0ZWQ9e3NlbGVjdGVkfT5cbiAgICAgIDxzcGFuXG4gICAgICAgIHsuLi5hdHRyaWJ1dGVzfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgICAgbWluSGVpZ2h0OiAnNTBweCcsXG4gICAgICAgICAgbWluV2lkdGg6ICcxNzhweCcsXG4gICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgICAgbWFyZ2luOiBpblRhYmxlID8gJzEwcHgnIDogJzAgMTBweCcsXG4gICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxEcmFnRHJvcFRpbGVcbiAgICAgICAgICBuPXthdHRyaWJ1dGVzfVxuICAgICAgICAgIGRyYWdLZXk9e2F0dHJpYnV0ZXMuaWR9XG4gICAgICAgICAgdGFyZ2V0SWQ9XCIwXCJcbiAgICAgICAgICB2YWx1ZT17YXR0cmlidXRlc31cbiAgICAgICAgICBkdXBsaWNhdGVzPXtvcHRpb25zLmR1cGxpY2F0ZXN9XG4gICAgICAgICAgb25DaGFuZ2U9eyhjaG9pY2UpID0+IG9uVmFsdWVDaGFuZ2UoZWRpdG9yLCBub2RlLCBwb3MsIGNob2ljZSl9XG4gICAgICAgICAgcmVtb3ZlUmVzcG9uc2U9eygpID0+IG9uUmVtb3ZlUmVzcG9uc2UoZWRpdG9yLCBub2RlLCBwb3MpfVxuICAgICAgICA+PC9EcmFnRHJvcFRpbGU+XG4gICAgICA8L3NwYW4+XG4gICAgPC9Ob2RlVmlld1dyYXBwZXI+XG4gICk7XG59O1xuXG5EcmFnRHJvcC5wcm9wVHlwZXMgPSB7XG4gIGF0dHJpYnV0ZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGRhdGE6IFByb3BUeXBlcy5vYmplY3QsXG4gIG46IFByb3BUeXBlcy5vYmplY3QsXG4gIG5vZGVQcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbiAgb3B0czogUHJvcFR5cGVzLm9iamVjdCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERyYWdEcm9wO1xuIl19