@pie-lib/editable-html-tip-tap 1.0.2 → 1.0.4
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.
- package/lib/components/CharacterPicker.js +221 -0
- package/lib/components/CharacterPicker.js.map +1 -0
- package/lib/components/EditableHtml.js +323 -0
- package/lib/components/EditableHtml.js.map +1 -0
- package/lib/components/MenuBar.js +694 -0
- package/lib/components/MenuBar.js.map +1 -0
- package/lib/components/TiptapContainer.js +90 -0
- package/lib/components/TiptapContainer.js.map +1 -0
- package/lib/components/buttons/done-button.js +53 -0
- package/lib/components/characters/characterUtils.js +112 -0
- package/lib/components/characters/characterUtils.js.map +1 -0
- package/lib/components/characters/custom-popper.js +73 -0
- package/lib/components/characters/custom-popper.js.map +1 -0
- package/lib/components/common/done-button.js +53 -0
- package/lib/components/common/done-button.js.map +1 -0
- package/lib/components/common/toolbar-buttons.js +194 -0
- package/lib/components/icons/CssIcon.js +37 -0
- package/lib/components/icons/CssIcon.js.map +1 -0
- package/lib/components/icons/RespArea.js +95 -0
- package/lib/components/icons/RespArea.js.map +1 -0
- package/lib/components/icons/TableIcons.js +69 -0
- package/lib/components/icons/TableIcons.js.map +1 -0
- package/lib/components/icons/TextAlign.js +194 -0
- package/lib/components/icons/TextAlign.js.map +1 -0
- package/lib/components/icons/index.js +194 -0
- package/lib/components/image/AltDialog.js +129 -0
- package/lib/components/image/ImageToolbar.js +177 -0
- package/lib/components/image/ImageToolbar.js.map +1 -0
- package/lib/components/image/InsertImageHandler.js +115 -0
- package/lib/components/image/InsertImageHandler.js.map +1 -0
- package/lib/components/image/alt-dialog.js +2 -0
- package/lib/components/media/MediaDialog.js +709 -0
- package/lib/components/media/MediaDialog.js.map +1 -0
- package/lib/components/media/MediaToolbar.js +101 -0
- package/lib/components/media/MediaToolbar.js.map +1 -0
- package/lib/components/media/MediaWrapper.js +93 -0
- package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +94 -0
- package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -0
- package/lib/components/respArea/DragInTheBlank/choice.js +289 -0
- package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -0
- package/lib/components/respArea/DragInTheBlank.js +94 -0
- package/lib/components/respArea/ExplicitConstructedResponse.js +120 -0
- package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -0
- package/lib/components/respArea/InlineDropdown.js +126 -0
- package/lib/components/respArea/InlineDropdown.js.map +1 -0
- package/lib/components/respArea/ToolbarIcon.js +105 -0
- package/lib/components/respArea/ToolbarIcon.js.map +1 -0
- package/lib/components/respArea/choice.js +2 -0
- package/lib/constants.js.map +1 -0
- package/lib/extensions/component.js +5 -5
- package/lib/extensions/component.js.map +1 -0
- package/lib/extensions/css.js.map +1 -0
- package/lib/extensions/custom-toolbar-wrapper.js +2 -4
- package/lib/extensions/custom-toolbar-wrapper.js.map +1 -0
- package/lib/extensions/extended-table.js +30 -0
- package/lib/extensions/extended-table.js.map +1 -0
- package/lib/extensions/image.js +2 -8
- package/lib/extensions/image.js.map +1 -0
- package/lib/extensions/index.js +52 -0
- package/lib/extensions/index.js.map +1 -0
- package/lib/extensions/math.js.map +1 -0
- package/lib/extensions/media.js +7 -7
- package/lib/extensions/media.js.map +1 -0
- package/lib/extensions/responseArea.js +7 -7
- package/lib/extensions/responseArea.js.map +1 -0
- package/lib/index.js +16 -1481
- package/lib/index.js.map +1 -0
- package/lib/plugins/index.js +8 -80
- package/lib/styles/editorContainerStyles.js +200 -0
- package/lib/styles/editorContainerStyles.js.map +1 -0
- package/lib/theme.js.map +1 -0
- package/lib/utils/size.js +34 -0
- package/lib/utils/size.js.map +1 -0
- package/package.json +1 -1
- package/src/components/CharacterPicker.jsx +185 -0
- package/src/components/EditableHtml.jsx +306 -0
- package/src/components/MenuBar.jsx +630 -0
- package/src/components/TiptapContainer.jsx +96 -0
- package/src/components/characters/characterUtils.js +127 -0
- package/src/{plugins/image/image-toolbar.jsx → components/image/ImageToolbar.jsx} +2 -2
- package/src/{plugins/image/insert-image-handler.js → components/image/InsertImageHandler.js} +0 -1
- package/src/{plugins/media/media-dialog.js → components/media/MediaDialog.js} +2 -2
- package/src/{plugins/respArea/drag-in-the-blank → components/respArea/DragInTheBlank}/choice.jsx +1 -1
- package/src/{plugins/respArea/inline-dropdown/index.jsx → components/respArea/InlineDropdown.jsx} +1 -1
- package/src/components/respArea/ToolbarIcon.jsx +68 -0
- package/src/extensions/component.jsx +2 -2
- package/src/extensions/custom-toolbar-wrapper.jsx +6 -7
- package/src/extensions/extended-table.js +27 -0
- package/src/extensions/image.js +2 -2
- package/src/extensions/index.js +76 -0
- package/src/extensions/media.js +12 -7
- package/src/extensions/responseArea.js +7 -7
- package/src/index.jsx +3 -1440
- package/src/styles/editorContainerStyles.js +203 -0
- package/src/utils/size.js +32 -0
- package/src/__tests__/editor.test.jsx +0 -363
- package/src/__tests__/serialization.test.js +0 -291
- package/src/block-tags.js +0 -17
- package/src/editor.jsx +0 -1197
- package/src/extensions/characters.js +0 -46
- package/src/old-index.jsx +0 -162
- package/src/parse-html.js +0 -8
- package/src/plugins/README.md +0 -27
- package/src/plugins/characters/index.jsx +0 -284
- package/src/plugins/characters/utils.js +0 -447
- package/src/plugins/css/index.jsx +0 -340
- package/src/plugins/customPlugin/index.jsx +0 -85
- package/src/plugins/html/icons/index.jsx +0 -19
- package/src/plugins/html/index.jsx +0 -72
- package/src/plugins/image/__tests__/__snapshots__/component.test.jsx.snap +0 -51
- package/src/plugins/image/__tests__/__snapshots__/image-toolbar-logic.test.jsx.snap +0 -27
- package/src/plugins/image/__tests__/__snapshots__/image-toolbar.test.jsx.snap +0 -44
- package/src/plugins/image/__tests__/component.test.jsx +0 -41
- package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +0 -42
- package/src/plugins/image/__tests__/image-toolbar.test.jsx +0 -11
- package/src/plugins/image/__tests__/index.test.js +0 -95
- package/src/plugins/image/__tests__/insert-image-handler.test.js +0 -113
- package/src/plugins/image/__tests__/mock-change.js +0 -15
- package/src/plugins/image/component.jsx +0 -343
- package/src/plugins/image/index.jsx +0 -227
- package/src/plugins/index.jsx +0 -377
- package/src/plugins/list/__tests__/index.test.js +0 -54
- package/src/plugins/list/index.jsx +0 -305
- package/src/plugins/math/__tests__/__snapshots__/index.test.jsx.snap +0 -48
- package/src/plugins/math/__tests__/index.test.jsx +0 -245
- package/src/plugins/math/index.jsx +0 -379
- package/src/plugins/media/__tests__/index.test.js +0 -75
- package/src/plugins/media/index.jsx +0 -325
- package/src/plugins/rendering/index.js +0 -31
- package/src/plugins/respArea/index.jsx +0 -299
- package/src/plugins/respArea/math-templated/index.jsx +0 -104
- package/src/plugins/respArea/utils.jsx +0 -90
- package/src/plugins/table/CustomTablePlugin.js +0 -113
- package/src/plugins/table/__tests__/__snapshots__/table-toolbar.test.jsx.snap +0 -44
- package/src/plugins/table/__tests__/index.test.jsx +0 -401
- package/src/plugins/table/__tests__/table-toolbar.test.jsx +0 -42
- package/src/plugins/table/index.jsx +0 -427
- package/src/plugins/table/table-toolbar.jsx +0 -136
- package/src/plugins/textAlign/index.jsx +0 -23
- package/src/plugins/toolbar/__tests__/__snapshots__/default-toolbar.test.jsx.snap +0 -923
- package/src/plugins/toolbar/__tests__/__snapshots__/editor-and-toolbar.test.jsx.snap +0 -20
- package/src/plugins/toolbar/__tests__/__snapshots__/toolbar-buttons.test.jsx.snap +0 -36
- package/src/plugins/toolbar/__tests__/__snapshots__/toolbar.test.jsx.snap +0 -46
- package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +0 -94
- package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +0 -37
- package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +0 -51
- package/src/plugins/toolbar/__tests__/toolbar.test.jsx +0 -106
- package/src/plugins/toolbar/default-toolbar.jsx +0 -206
- package/src/plugins/toolbar/editor-and-toolbar.jsx +0 -257
- package/src/plugins/toolbar/index.jsx +0 -23
- package/src/plugins/toolbar/toolbar.jsx +0 -338
- package/src/plugins/utils.js +0 -31
- package/src/serialization.jsx +0 -621
- /package/src/{plugins → components}/characters/custom-popper.js +0 -0
- /package/src/{plugins/toolbar → components/common}/done-button.jsx +0 -0
- /package/src/{plugins/toolbar → components/common}/toolbar-buttons.jsx +0 -0
- /package/src/{plugins/css/icons/index.jsx → components/icons/CssIcon.jsx} +0 -0
- /package/src/{plugins/respArea/icons/index.jsx → components/icons/RespArea.jsx} +0 -0
- /package/src/{plugins/table/icons/index.jsx → components/icons/TableIcons.jsx} +0 -0
- /package/src/{plugins/textAlign/icons/index.jsx → components/icons/TextAlign.jsx} +0 -0
- /package/src/{plugins/image/alt-dialog.jsx → components/image/AltDialog.jsx} +0 -0
- /package/src/{plugins/media/media-toolbar.jsx → components/media/MediaToolbar.jsx} +0 -0
- /package/src/{plugins/media/media-wrapper.jsx → components/media/MediaWrapper.jsx} +0 -0
- /package/src/{plugins/respArea/drag-in-the-blank/index.jsx → components/respArea/DragInTheBlank/DragInTheBlank.jsx} +0 -0
- /package/src/{plugins/respArea/explicit-constructed-response/index.jsx → components/respArea/ExplicitConstructedResponse.jsx} +0 -0
|
@@ -31,9 +31,9 @@ var _styles = require("@material-ui/core/styles");
|
|
|
31
31
|
|
|
32
32
|
var _react2 = require("@tiptap/react");
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var _InsertImageHandler = _interopRequireDefault(require("../components/image/InsertImageHandler"));
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _ImageToolbar = _interopRequireDefault(require("../components/image/ImageToolbar"));
|
|
37
37
|
|
|
38
38
|
var _customToolbarWrapper = _interopRequireDefault(require("./custom-toolbar-wrapper"));
|
|
39
39
|
|
|
@@ -96,7 +96,7 @@ function ImageComponent(props) {
|
|
|
96
96
|
}, [selected]);
|
|
97
97
|
(0, _react.useEffect)(function () {
|
|
98
98
|
options.imageHandling.insertImageRequested(node, function (finish) {
|
|
99
|
-
return new
|
|
99
|
+
return new _InsertImageHandler["default"](editor, finish);
|
|
100
100
|
});
|
|
101
101
|
applySizeData();
|
|
102
102
|
var resizeHandle = resizeRef.current;
|
|
@@ -241,7 +241,7 @@ function ImageComponent(props) {
|
|
|
241
241
|
(_props$imageHandling = props.imageHandling) === null || _props$imageHandling === void 0 ? void 0 : _props$imageHandling.onDone();
|
|
242
242
|
props.editor.commands.focus('end');
|
|
243
243
|
}
|
|
244
|
-
}), /*#__PURE__*/_react["default"].createElement(
|
|
244
|
+
}), /*#__PURE__*/_react["default"].createElement(_ImageToolbar["default"], {
|
|
245
245
|
disableImageAlignmentButtons: options.disableImageAlignmentButtons,
|
|
246
246
|
alt: node.attrs.alt,
|
|
247
247
|
imageLoaded: node.attrs.loaded,
|
|
@@ -330,4 +330,4 @@ var _default = (0, _styles.withStyles)(function (theme) {
|
|
|
330
330
|
})(ImageComponent);
|
|
331
331
|
|
|
332
332
|
exports["default"] = _default;
|
|
333
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2NvbXBvbmVudC5qc3giXSwibmFtZXMiOlsibG9nIiwic2l6ZVB4IiwicyIsIkltYWdlQ29tcG9uZW50IiwicHJvcHMiLCJub2RlIiwiZWRpdG9yIiwiY2xhc3NlcyIsImF0dHJpYnV0ZXMiLCJvbkZvY3VzIiwic2VsZWN0ZWQiLCJvcHRpb25zIiwibWF4SW1hZ2VXaWR0aCIsIm1heEltYWdlSGVpZ2h0IiwibGF0ZXgiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVEb25lIiwiYWx0IiwiYXR0cnMiLCJzaG93VG9vbGJhciIsInNldFNob3dUb29sYmFyIiwiaW1nUmVmIiwicmVzaXplUmVmIiwidG9vbGJhclJlZiIsImdldFBlcmNlbnRGcm9tV2lkdGgiLCJ3aWR0aCIsImZsb29yZWQiLCJjdXJyZW50IiwibmF0dXJhbFdpZHRoIiwicGFyc2VJbnQiLCJ0b0ZpeGVkIiwiYXBwbHlTaXplRGF0YSIsInVwZGF0ZSIsInJlc2l6ZVBlcmNlbnQiLCJjb21tYW5kcyIsInVwZGF0ZUF0dHJpYnV0ZXMiLCJpbWFnZUhhbmRsaW5nIiwiaW5zZXJ0SW1hZ2VSZXF1ZXN0ZWQiLCJmaW5pc2giLCJJbnNlcnRJbWFnZUhhbmRsZXIiLCJyZXNpemVIYW5kbGUiLCJhZGRFdmVudExpc3RlbmVyIiwiaW5pdFJlc2l6ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJsb2FkSW1hZ2UiLCJib3giLCJzdHlsZSIsInciLCJNYXRoIiwibWluIiwiaCIsIm5hdHVyYWxIZWlnaHQiLCJoZWlnaHQiLCJ1cGRhdGVBc3BlY3QiLCJpbml0aWFsIiwibmV4dCIsImtlZXBBc3BlY3QiLCJyZXNpemVUeXBlIiwicmF0aW8iLCJzdGFydFJlc2l6ZSIsImUiLCJib3VuZHMiLCJ0YXJnZXQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJjbGllbnRYIiwibGVmdCIsImNsaWVudFkiLCJ0b3AiLCJvbkNoYW5nZSIsIm5ld1ZhbHVlcyIsInN0b3BSZXNpemUiLCJ3aW5kb3ciLCJvYmplY3RGaXQiLCJmbGV4QWxpZ24iLCJjZW50ZXIiLCJyaWdodCIsImFsaWdubWVudCIsInJvb3QiLCJsb2FkZWQiLCJsb2FkaW5nIiwiZGVsZXRlU3RhdHVzIiwicGVuZGluZ0RlbGV0ZSIsImp1c3RpZnlDb250ZW50IiwicGVyY2VudCIsInByb2dyZXNzIiwiaGlkZVByb2dyZXNzIiwiaW1hZ2VDb250YWluZXIiLCJzcmMiLCJpbWFnZSIsImFjdGl2ZSIsInJlc2l6ZSIsInBvc2l0aW9uIiwiekluZGV4IiwiYmFja2dyb3VuZCIsImJveFNoYWRvdyIsIm9uRG9uZSIsImZvY3VzIiwiZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwibnVtYmVyIiwidGhlbWUiLCJwb3J0YWwiLCJvcGFjaXR5IiwidHJhbnNpdGlvbiIsImZsb2F0aW5nQnV0dG9uUm93IiwiYmFja2dyb3VuZENvbG9yIiwicGFsZXR0ZSIsInBhcGVyIiwiYm9yZGVyUmFkaXVzIiwiZGlzcGxheSIsInBhZGRpbmciLCJib3JkZXIiLCJncmV5IiwiY29tbW9uIiwid2hpdGUiLCJhbGlnbkl0ZW1zIiwicHJpbWFyeSIsIm1haW4iLCJjdXJzb3IiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJkcmF3YWJsZUhlaWdodCIsIm1pbkhlaWdodCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSxnREFBTixDQUFaOztBQUVBLElBQU1DLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLENBQUQ7QUFBQSxTQUFRQSxDQUFDLGFBQU1BLENBQU4sVUFBYyxZQUF2QjtBQUFBLENBQWY7O0FBRUEsU0FBU0MsY0FBVCxDQUF3QkMsS0FBeEIsRUFBK0I7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ZVJlZiwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgTGluZWFyUHJvZ3Jlc3MgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvTGluZWFyUHJvZ3Jlc3MnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgeyBOb2RlVmlld1dyYXBwZXIgfSBmcm9tICdAdGlwdGFwL3JlYWN0JztcbmltcG9ydCBJbnNlcnRJbWFnZUhhbmRsZXIgZnJvbSAnLi4vcGx1Z2lucy9pbWFnZS9pbnNlcnQtaW1hZ2UtaGFuZGxlcic7XG5pbXBvcnQgSW1hZ2VUb29sYmFyIGZyb20gJy4uL3BsdWdpbnMvaW1hZ2UvaW1hZ2UtdG9vbGJhcic7XG5pbXBvcnQgQ3VzdG9tVG9vbGJhcldyYXBwZXIgZnJvbSAnLi9jdXN0b20tdG9vbGJhci13cmFwcGVyJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2luczppbWFnZTpjb21wb25lbnQnKTtcblxuY29uc3Qgc2l6ZVB4ID0gKHMpID0+IChzID8gYCR7c31weGAgOiAnY2FsYygyMHB4KScpO1xuXG5mdW5jdGlvbiBJbWFnZUNvbXBvbmVudChwcm9wcykge1xuICBjb25zdCB7XG4gICAgbm9kZSxcbiAgICBlZGl0b3IsXG4gICAgY2xhc3NlcyxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIG9uRm9jdXMsXG4gICAgc2VsZWN0ZWQsXG4gICAgb3B0aW9ucyxcbiAgICBtYXhJbWFnZVdpZHRoID0gNzAwLFxuICAgIG1heEltYWdlSGVpZ2h0ID0gOTAwLFxuICAgIGxhdGV4LFxuICAgIGhhbmRsZUNoYW5nZSxcbiAgICBoYW5kbGVEb25lLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgYWx0IH0gPSBub2RlLmF0dHJzO1xuXG4gIGNvbnN0IFtzaG93VG9vbGJhciwgc2V0U2hvd1Rvb2xiYXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGltZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgcmVzaXplUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCB0b29sYmFyUmVmID0gdXNlUmVmKG51bGwpO1xuXG4gIGNvbnN0IGdldFBlcmNlbnRGcm9tV2lkdGggPSB1c2VDYWxsYmFjaygod2lkdGgpID0+IHtcbiAgICBjb25zdCBmbG9vcmVkID0gKHdpZHRoIC8gaW1nUmVmLmN1cnJlbnQubmF0dXJhbFdpZHRoKSAqIDQ7XG4gICAgcmV0dXJuIHBhcnNlSW50KGZsb29yZWQudG9GaXhlZCgwKSAqIDI1LCAxMCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBhcHBseVNpemVEYXRhID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghbm9kZS5hdHRycy53aWR0aCB8fCAhaW1nUmVmLmN1cnJlbnQpIHJldHVybjtcblxuICAgIGNvbnN0IHVwZGF0ZSA9IHtcbiAgICAgIC4uLm5vZGUuYXR0cnMsXG4gICAgICByZXNpemVQZXJjZW50OiBnZXRQZXJjZW50RnJvbVdpZHRoKG5vZGUuYXR0cnMud2lkdGgpLFxuICAgIH07XG5cbiAgICBpZiAoIWlzRXF1YWwodXBkYXRlLCBub2RlLmF0dHJzKSkge1xuICAgICAgZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMoJ2ltYWdlVXBsb2FkTm9kZScsIHVwZGF0ZSk7XG4gICAgfVxuICB9LCBbZWRpdG9yLCBub2RlLmF0dHJzLCBnZXRQZXJjZW50RnJvbVdpZHRoXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTaG93VG9vbGJhcihzZWxlY3RlZCk7XG4gIH0sIFtzZWxlY3RlZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgb3B0aW9ucy5pbWFnZUhhbmRsaW5nLmluc2VydEltYWdlUmVxdWVzdGVkKG5vZGUsIChmaW5pc2gpID0+IG5ldyBJbnNlcnRJbWFnZUhhbmRsZXIoZWRpdG9yLCBmaW5pc2gpKTtcbiAgICBhcHBseVNpemVEYXRhKCk7XG5cbiAgICBjb25zdCByZXNpemVIYW5kbGUgPSByZXNpemVSZWYuY3VycmVudDtcbiAgICBpZiAocmVzaXplSGFuZGxlKSB7XG4gICAgICByZXNpemVIYW5kbGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaW5pdFJlc2l6ZSwgZmFsc2UpO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZUhhbmRsZSkgcmVzaXplSGFuZGxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGluaXRSZXNpemUsIGZhbHNlKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBhcHBseVNpemVEYXRhKCk7XG4gIH0pO1xuXG4gIGNvbnN0IGxvYWRJbWFnZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBib3ggPSBpbWdSZWYuY3VycmVudDtcbiAgICBpZiAoIWJveCkgcmV0dXJuO1xuXG4gICAgaWYgKCFib3guc3R5bGUud2lkdGggfHwgYm94LnN0eWxlLndpZHRoID09PSAnY2FsYygyMHB4KScpIHtcbiAgICAgIGNvbnN0IHcgPSBNYXRoLm1pbihib3gubmF0dXJhbFdpZHRoLCBtYXhJbWFnZVdpZHRoKTtcbiAgICAgIGNvbnN0IGggPSBNYXRoLm1pbihib3gubmF0dXJhbEhlaWdodCwgbWF4SW1hZ2VIZWlnaHQpO1xuXG4gICAgICBib3guc3R5bGUud2lkdGggPSBgJHt3fXB4YDtcbiAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgJHtofXB4YDtcblxuICAgICAgY29uc3QgdXBkYXRlID0geyB3aWR0aDogdywgaGVpZ2h0OiBoIH07XG4gICAgICBpZiAoIWlzRXF1YWwodXBkYXRlLCBub2RlLmF0dHJzKSkge1xuICAgICAgICBlZGl0b3IuY29tbWFuZHMudXBkYXRlQXR0cmlidXRlcygnaW1hZ2VVcGxvYWROb2RlJywgdXBkYXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtlZGl0b3IsIG5vZGUuYXR0cnMsIG1heEltYWdlV2lkdGgsIG1heEltYWdlSGVpZ2h0XSk7XG5cbiAgY29uc3QgdXBkYXRlQXNwZWN0ID0gKGluaXRpYWwsIG5leHQsIGtlZXBBc3BlY3QgPSB0cnVlLCByZXNpemVUeXBlKSA9PiB7XG4gICAgaWYgKGtlZXBBc3BlY3QpIHtcbiAgICAgIGNvbnN0IHJhdGlvID0gaW5pdGlhbC53aWR0aCAvIGluaXRpYWwuaGVpZ2h0O1xuICAgICAgaWYgKHJlc2l6ZVR5cGUgPT09ICdoZWlnaHQnKSByZXR1cm4geyB3aWR0aDogbmV4dC5oZWlnaHQgKiByYXRpbywgaGVpZ2h0OiBuZXh0LmhlaWdodCB9O1xuICAgICAgcmV0dXJuIHsgd2lkdGg6IG5leHQud2lkdGgsIGhlaWdodDogbmV4dC53aWR0aCAvIHJhdGlvIH07XG4gICAgfVxuICAgIHJldHVybiBuZXh0O1xuICB9O1xuXG4gIGNvbnN0IHN0YXJ0UmVzaXplID0gdXNlQ2FsbGJhY2soXG4gICAgKGUpID0+IHtcbiAgICAgIGNvbnN0IGJveCA9IGltZ1JlZi5jdXJyZW50O1xuICAgICAgaWYgKCFib3gpIHJldHVybjtcblxuICAgICAgY29uc3QgYm91bmRzID0gZS50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBpbml0aWFsID0geyB3aWR0aDogYm94Lm5hdHVyYWxXaWR0aCwgaGVpZ2h0OiBib3gubmF0dXJhbEhlaWdodCB9O1xuXG4gICAgICBjb25zdCBuZXh0ID0gdXBkYXRlQXNwZWN0KGluaXRpYWwsIHtcbiAgICAgICAgd2lkdGg6IGUuY2xpZW50WCAtIGJvdW5kcy5sZWZ0LFxuICAgICAgICBoZWlnaHQ6IGUuY2xpZW50WSAtIGJvdW5kcy50b3AsXG4gICAgICB9KTtcblxuICAgICAgaWYgKG5leHQud2lkdGggPiA1MCAmJiBuZXh0LmhlaWdodCA+IDUwICYmIG5leHQud2lkdGggPD0gNzAwICYmIG5leHQuaGVpZ2h0IDw9IDkwMCkge1xuICAgICAgICBib3guc3R5bGUud2lkdGggPSBgJHtuZXh0LndpZHRofXB4YDtcbiAgICAgICAgYm94LnN0eWxlLmhlaWdodCA9IGAke25leHQuaGVpZ2h0fXB4YDtcblxuICAgICAgICBjb25zdCB1cGRhdGUgPSB7IHdpZHRoOiBuZXh0LndpZHRoLCBoZWlnaHQ6IG5leHQuaGVpZ2h0IH07XG4gICAgICAgIGlmICghaXNFcXVhbCh1cGRhdGUsIG5vZGUuYXR0cnMpKSB7XG4gICAgICAgICAgZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMoJ2ltYWdlVXBsb2FkTm9kZScsIHVwZGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtlZGl0b3IsIG5vZGUuYXR0cnNdLFxuICApO1xuXG4gIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKG5ld1ZhbHVlcykgPT4ge1xuICAgICAgZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMoJ2ltYWdlVXBsb2FkTm9kZScsIG5ld1ZhbHVlcyk7XG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKTtcblxuICBjb25zdCBzdG9wUmVzaXplID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBzdGFydFJlc2l6ZSk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBzdG9wUmVzaXplKTtcbiAgfSwgW3N0YXJ0UmVzaXplXSk7XG5cbiAgY29uc3QgaW5pdFJlc2l6ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgc3RhcnRSZXNpemUpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6ZSk7XG4gIH0sIFtzdGFydFJlc2l6ZSwgc3RvcFJlc2l6ZV0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHdpZHRoOiBzaXplUHgobm9kZS5hdHRycy53aWR0aCksXG4gICAgaGVpZ2h0OiBzaXplUHgobm9kZS5hdHRycy5oZWlnaHQpLFxuICAgIG9iamVjdEZpdDogJ2NvbnRhaW4nLFxuICB9O1xuXG4gIGNvbnN0IGZsZXhBbGlnbiA9IHsgbGVmdDogJ2ZsZXgtc3RhcnQnLCBjZW50ZXI6ICdjZW50ZXInLCByaWdodDogJ2ZsZXgtZW5kJyB9W25vZGUuYXR0cnMuYWxpZ25tZW50XSB8fCAnZmxleC1zdGFydCc7XG5cbiAgcmV0dXJuIChcbiAgICA8Tm9kZVZpZXdXcmFwcGVyPlxuICAgICAgPGRpdlxuICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgY2xhc3Nlcy5yb290LFxuICAgICAgICAgICFub2RlLmF0dHJzLmxvYWRlZCAmJiBjbGFzc2VzLmxvYWRpbmcsXG4gICAgICAgICAgbm9kZS5hdHRycy5kZWxldGVTdGF0dXMgPT09ICdwZW5kaW5nJyAmJiBjbGFzc2VzLnBlbmRpbmdEZWxldGUsXG4gICAgICAgICl9XG4gICAgICAgIHN0eWxlPXt7IGp1c3RpZnlDb250ZW50OiBmbGV4QWxpZ24gfX1cbiAgICAgID5cbiAgICAgICAgPExpbmVhclByb2dyZXNzXG4gICAgICAgICAgbW9kZT1cImRldGVybWluYXRlXCJcbiAgICAgICAgICB2YWx1ZT17bm9kZS5hdHRycy5wZXJjZW50IHx8IDB9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMucHJvZ3Jlc3MsIG5vZGUuYXR0cnMubG9hZGVkICYmIGNsYXNzZXMuaGlkZVByb2dyZXNzKX1cbiAgICAgICAgLz5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5pbWFnZUNvbnRhaW5lcn0+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgey4uLmF0dHJpYnV0ZXN9XG4gICAgICAgICAgICByZWY9e2ltZ1JlZn1cbiAgICAgICAgICAgIHNyYz17bm9kZS5hdHRycy5zcmN9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5pbWFnZSwgc2VsZWN0ZWQgJiYgY2xhc3Nlcy5hY3RpdmUpfVxuICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgb25Mb2FkPXtsb2FkSW1hZ2V9XG4gICAgICAgICAgICBhbHQ9e25vZGUuYXR0cnMuYWx0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiByZWY9e3Jlc2l6ZVJlZn0gY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMucmVzaXplLCAncmVzaXplJyl9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtzaG93VG9vbGJhciAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICByZWY9e3Rvb2xiYXJSZWZ9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgdG9wOiAnMTAwJScsXG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgekluZGV4OiAyMCxcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1lZGl0YWJsZS1odG1sLXRvb2xiYXItYmcsICNlZmVmZWYpJyxcbiAgICAgICAgICAgIGJveFNoYWRvdzpcbiAgICAgICAgICAgICAgJzBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiknLFxuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPEN1c3RvbVRvb2xiYXJXcmFwcGVyXG4gICAgICAgICAgICBzaG93RG9uZVxuICAgICAgICAgICAgey4uLm9wdGlvbnN9XG4gICAgICAgICAgICBvbkRvbmU9eygpID0+IHtcbiAgICAgICAgICAgICAgc2V0U2hvd1Rvb2xiYXIoZmFsc2UpO1xuICAgICAgICAgICAgICBwcm9wcy5pbWFnZUhhbmRsaW5nPy5vbkRvbmUoKTtcbiAgICAgICAgICAgICAgcHJvcHMuZWRpdG9yLmNvbW1hbmRzLmZvY3VzKCdlbmQnKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEltYWdlVG9vbGJhclxuICAgICAgICAgICAgICBkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zPXtvcHRpb25zLmRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnN9XG4gICAgICAgICAgICAgIGFsdD17bm9kZS5hdHRycy5hbHR9XG4gICAgICAgICAgICAgIGltYWdlTG9hZGVkPXtub2RlLmF0dHJzLmxvYWRlZH1cbiAgICAgICAgICAgICAgYWxpZ25tZW50PXtub2RlLmF0dHJzLmFsaWdubWVudCB8fCAnbGVmdCd9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9DdXN0b21Ub29sYmFyV3JhcHBlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvTm9kZVZpZXdXcmFwcGVyPlxuICApO1xufVxuXG5JbWFnZUNvbXBvbmVudC5wcm9wVHlwZXMgPSB7XG4gIG5vZGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgZWRpdG9yOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgYXR0cmlidXRlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgb25Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG4gIG1heEltYWdlV2lkdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gIG1heEltYWdlSGVpZ2h0OiBQcm9wVHlwZXMubnVtYmVyLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcygodGhlbWUpID0+ICh7XG4gIHBvcnRhbDoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIG9wYWNpdHk6IDAsXG4gICAgdHJhbnNpdGlvbjogJ29wYWNpdHkgMjAwbXMgbGluZWFyJyxcbiAgfSxcbiAgZmxvYXRpbmdCdXR0b25Sb3c6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcixcbiAgICBib3JkZXJSYWRpdXM6ICcxcHgnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgYm9yZGVyOiBgc29saWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5ncmV5WzIwMF19YCxcbiAgICBib3hTaGFkb3c6XG4gICAgICAnMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjEyKScsXG4gIH0sXG4gIHByb2dyZXNzOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgbGVmdDogJzAnLFxuICAgIHdpZHRoOiAnZml0LWNvbnRlbnQnLFxuICAgIHRvcDogJzAlJyxcbiAgICB0cmFuc2l0aW9uOiAnb3BhY2l0eSAyMDBtcyBsaW5lYXInLFxuICB9LFxuICBoaWRlUHJvZ3Jlc3M6IHtcbiAgICBvcGFjaXR5OiAwLFxuICB9LFxuICBsb2FkaW5nOiB7XG4gICAgb3BhY2l0eTogMC4zLFxuICB9LFxuICBwZW5kaW5nRGVsZXRlOiB7XG4gICAgb3BhY2l0eTogMC4zLFxuICB9LFxuICByb290OiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYm9yZGVyOiBgc29saWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5jb21tb24ud2hpdGV9YCxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgdHJhbnNpdGlvbjogJ29wYWNpdHkgMjAwbXMgbGluZWFyJyxcbiAgfSxcbiAgZGVsZXRlOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgcmlnaHQ6IDAsXG4gIH0sXG4gIGltYWdlQ29udGFpbmVyOiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6ICdmaXQtY29udGVudCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuXG4gICAgJyYmOmhvdmVyID4gLnJlc2l6ZSc6IHtcbiAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgfSxcbiAgfSxcbiAgYWN0aXZlOiB7XG4gICAgYm9yZGVyOiBgc29saWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW59YCxcbiAgfSxcbiAgcmVzaXplOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbixcbiAgICBjdXJzb3I6ICdjb2wtcmVzaXplJyxcbiAgICBoZWlnaHQ6ICczNXB4JyxcbiAgICB3aWR0aDogJzVweCcsXG4gICAgYm9yZGVyUmFkaXVzOiA4LFxuICAgIG1hcmdpbkxlZnQ6ICc1cHgnLFxuICAgIG1hcmdpblJpZ2h0OiAnMTBweCcsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICB9LFxuICBkcmF3YWJsZUhlaWdodDoge1xuICAgIG1pbkhlaWdodDogMzUwLFxuICB9LFxufSkpKEltYWdlQ29tcG9uZW50KTtcbiJdfQ==
|
|
333
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2NvbXBvbmVudC5qc3giXSwibmFtZXMiOlsibG9nIiwic2l6ZVB4IiwicyIsIkltYWdlQ29tcG9uZW50IiwicHJvcHMiLCJub2RlIiwiZWRpdG9yIiwiY2xhc3NlcyIsImF0dHJpYnV0ZXMiLCJvbkZvY3VzIiwic2VsZWN0ZWQiLCJvcHRpb25zIiwibWF4SW1hZ2VXaWR0aCIsIm1heEltYWdlSGVpZ2h0IiwibGF0ZXgiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVEb25lIiwiYWx0IiwiYXR0cnMiLCJzaG93VG9vbGJhciIsInNldFNob3dUb29sYmFyIiwiaW1nUmVmIiwicmVzaXplUmVmIiwidG9vbGJhclJlZiIsImdldFBlcmNlbnRGcm9tV2lkdGgiLCJ3aWR0aCIsImZsb29yZWQiLCJjdXJyZW50IiwibmF0dXJhbFdpZHRoIiwicGFyc2VJbnQiLCJ0b0ZpeGVkIiwiYXBwbHlTaXplRGF0YSIsInVwZGF0ZSIsInJlc2l6ZVBlcmNlbnQiLCJjb21tYW5kcyIsInVwZGF0ZUF0dHJpYnV0ZXMiLCJpbWFnZUhhbmRsaW5nIiwiaW5zZXJ0SW1hZ2VSZXF1ZXN0ZWQiLCJmaW5pc2giLCJJbnNlcnRJbWFnZUhhbmRsZXIiLCJyZXNpemVIYW5kbGUiLCJhZGRFdmVudExpc3RlbmVyIiwiaW5pdFJlc2l6ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJsb2FkSW1hZ2UiLCJib3giLCJzdHlsZSIsInciLCJNYXRoIiwibWluIiwiaCIsIm5hdHVyYWxIZWlnaHQiLCJoZWlnaHQiLCJ1cGRhdGVBc3BlY3QiLCJpbml0aWFsIiwibmV4dCIsImtlZXBBc3BlY3QiLCJyZXNpemVUeXBlIiwicmF0aW8iLCJzdGFydFJlc2l6ZSIsImUiLCJib3VuZHMiLCJ0YXJnZXQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJjbGllbnRYIiwibGVmdCIsImNsaWVudFkiLCJ0b3AiLCJvbkNoYW5nZSIsIm5ld1ZhbHVlcyIsInN0b3BSZXNpemUiLCJ3aW5kb3ciLCJvYmplY3RGaXQiLCJmbGV4QWxpZ24iLCJjZW50ZXIiLCJyaWdodCIsImFsaWdubWVudCIsInJvb3QiLCJsb2FkZWQiLCJsb2FkaW5nIiwiZGVsZXRlU3RhdHVzIiwicGVuZGluZ0RlbGV0ZSIsImp1c3RpZnlDb250ZW50IiwicGVyY2VudCIsInByb2dyZXNzIiwiaGlkZVByb2dyZXNzIiwiaW1hZ2VDb250YWluZXIiLCJzcmMiLCJpbWFnZSIsImFjdGl2ZSIsInJlc2l6ZSIsInBvc2l0aW9uIiwiekluZGV4IiwiYmFja2dyb3VuZCIsImJveFNoYWRvdyIsIm9uRG9uZSIsImZvY3VzIiwiZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwibnVtYmVyIiwidGhlbWUiLCJwb3J0YWwiLCJvcGFjaXR5IiwidHJhbnNpdGlvbiIsImZsb2F0aW5nQnV0dG9uUm93IiwiYmFja2dyb3VuZENvbG9yIiwicGFsZXR0ZSIsInBhcGVyIiwiYm9yZGVyUmFkaXVzIiwiZGlzcGxheSIsInBhZGRpbmciLCJib3JkZXIiLCJncmV5IiwiY29tbW9uIiwid2hpdGUiLCJhbGlnbkl0ZW1zIiwicHJpbWFyeSIsIm1haW4iLCJjdXJzb3IiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJkcmF3YWJsZUhlaWdodCIsIm1pbkhlaWdodCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSxnREFBTixDQUFaOztBQUVBLElBQU1DLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLENBQUQ7QUFBQSxTQUFRQSxDQUFDLGFBQU1BLENBQU4sVUFBYyxZQUF2QjtBQUFBLENBQWY7O0FBRUEsU0FBU0MsY0FBVCxDQUF3QkMsS0FBeEIsRUFBK0I7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ZVJlZiwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgTGluZWFyUHJvZ3Jlc3MgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvTGluZWFyUHJvZ3Jlc3MnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgeyBOb2RlVmlld1dyYXBwZXIgfSBmcm9tICdAdGlwdGFwL3JlYWN0JztcbmltcG9ydCBJbnNlcnRJbWFnZUhhbmRsZXIgZnJvbSAnLi4vY29tcG9uZW50cy9pbWFnZS9JbnNlcnRJbWFnZUhhbmRsZXInO1xuaW1wb3J0IEltYWdlVG9vbGJhciBmcm9tICcuLi9jb21wb25lbnRzL2ltYWdlL0ltYWdlVG9vbGJhcic7XG5pbXBvcnQgQ3VzdG9tVG9vbGJhcldyYXBwZXIgZnJvbSAnLi9jdXN0b20tdG9vbGJhci13cmFwcGVyJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2luczppbWFnZTpjb21wb25lbnQnKTtcblxuY29uc3Qgc2l6ZVB4ID0gKHMpID0+IChzID8gYCR7c31weGAgOiAnY2FsYygyMHB4KScpO1xuXG5mdW5jdGlvbiBJbWFnZUNvbXBvbmVudChwcm9wcykge1xuICBjb25zdCB7XG4gICAgbm9kZSxcbiAgICBlZGl0b3IsXG4gICAgY2xhc3NlcyxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIG9uRm9jdXMsXG4gICAgc2VsZWN0ZWQsXG4gICAgb3B0aW9ucyxcbiAgICBtYXhJbWFnZVdpZHRoID0gNzAwLFxuICAgIG1heEltYWdlSGVpZ2h0ID0gOTAwLFxuICAgIGxhdGV4LFxuICAgIGhhbmRsZUNoYW5nZSxcbiAgICBoYW5kbGVEb25lLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgYWx0IH0gPSBub2RlLmF0dHJzO1xuXG4gIGNvbnN0IFtzaG93VG9vbGJhciwgc2V0U2hvd1Rvb2xiYXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGltZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgcmVzaXplUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCB0b29sYmFyUmVmID0gdXNlUmVmKG51bGwpO1xuXG4gIGNvbnN0IGdldFBlcmNlbnRGcm9tV2lkdGggPSB1c2VDYWxsYmFjaygod2lkdGgpID0+IHtcbiAgICBjb25zdCBmbG9vcmVkID0gKHdpZHRoIC8gaW1nUmVmLmN1cnJlbnQubmF0dXJhbFdpZHRoKSAqIDQ7XG4gICAgcmV0dXJuIHBhcnNlSW50KGZsb29yZWQudG9GaXhlZCgwKSAqIDI1LCAxMCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBhcHBseVNpemVEYXRhID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghbm9kZS5hdHRycy53aWR0aCB8fCAhaW1nUmVmLmN1cnJlbnQpIHJldHVybjtcblxuICAgIGNvbnN0IHVwZGF0ZSA9IHtcbiAgICAgIC4uLm5vZGUuYXR0cnMsXG4gICAgICByZXNpemVQZXJjZW50OiBnZXRQZXJjZW50RnJvbVdpZHRoKG5vZGUuYXR0cnMud2lkdGgpLFxuICAgIH07XG5cbiAgICBpZiAoIWlzRXF1YWwodXBkYXRlLCBub2RlLmF0dHJzKSkge1xuICAgICAgZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMoJ2ltYWdlVXBsb2FkTm9kZScsIHVwZGF0ZSk7XG4gICAgfVxuICB9LCBbZWRpdG9yLCBub2RlLmF0dHJzLCBnZXRQZXJjZW50RnJvbVdpZHRoXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTaG93VG9vbGJhcihzZWxlY3RlZCk7XG4gIH0sIFtzZWxlY3RlZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgb3B0aW9ucy5pbWFnZUhhbmRsaW5nLmluc2VydEltYWdlUmVxdWVzdGVkKG5vZGUsIChmaW5pc2gpID0+IG5ldyBJbnNlcnRJbWFnZUhhbmRsZXIoZWRpdG9yLCBmaW5pc2gpKTtcbiAgICBhcHBseVNpemVEYXRhKCk7XG5cbiAgICBjb25zdCByZXNpemVIYW5kbGUgPSByZXNpemVSZWYuY3VycmVudDtcbiAgICBpZiAocmVzaXplSGFuZGxlKSB7XG4gICAgICByZXNpemVIYW5kbGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaW5pdFJlc2l6ZSwgZmFsc2UpO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZUhhbmRsZSkgcmVzaXplSGFuZGxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGluaXRSZXNpemUsIGZhbHNlKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBhcHBseVNpemVEYXRhKCk7XG4gIH0pO1xuXG4gIGNvbnN0IGxvYWRJbWFnZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBib3ggPSBpbWdSZWYuY3VycmVudDtcbiAgICBpZiAoIWJveCkgcmV0dXJuO1xuXG4gICAgaWYgKCFib3guc3R5bGUud2lkdGggfHwgYm94LnN0eWxlLndpZHRoID09PSAnY2FsYygyMHB4KScpIHtcbiAgICAgIGNvbnN0IHcgPSBNYXRoLm1pbihib3gubmF0dXJhbFdpZHRoLCBtYXhJbWFnZVdpZHRoKTtcbiAgICAgIGNvbnN0IGggPSBNYXRoLm1pbihib3gubmF0dXJhbEhlaWdodCwgbWF4SW1hZ2VIZWlnaHQpO1xuXG4gICAgICBib3guc3R5bGUud2lkdGggPSBgJHt3fXB4YDtcbiAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgJHtofXB4YDtcblxuICAgICAgY29uc3QgdXBkYXRlID0geyB3aWR0aDogdywgaGVpZ2h0OiBoIH07XG4gICAgICBpZiAoIWlzRXF1YWwodXBkYXRlLCBub2RlLmF0dHJzKSkge1xuICAgICAgICBlZGl0b3IuY29tbWFuZHMudXBkYXRlQXR0cmlidXRlcygnaW1hZ2VVcGxvYWROb2RlJywgdXBkYXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtlZGl0b3IsIG5vZGUuYXR0cnMsIG1heEltYWdlV2lkdGgsIG1heEltYWdlSGVpZ2h0XSk7XG5cbiAgY29uc3QgdXBkYXRlQXNwZWN0ID0gKGluaXRpYWwsIG5leHQsIGtlZXBBc3BlY3QgPSB0cnVlLCByZXNpemVUeXBlKSA9PiB7XG4gICAgaWYgKGtlZXBBc3BlY3QpIHtcbiAgICAgIGNvbnN0IHJhdGlvID0gaW5pdGlhbC53aWR0aCAvIGluaXRpYWwuaGVpZ2h0O1xuICAgICAgaWYgKHJlc2l6ZVR5cGUgPT09ICdoZWlnaHQnKSByZXR1cm4geyB3aWR0aDogbmV4dC5oZWlnaHQgKiByYXRpbywgaGVpZ2h0OiBuZXh0LmhlaWdodCB9O1xuICAgICAgcmV0dXJuIHsgd2lkdGg6IG5leHQud2lkdGgsIGhlaWdodDogbmV4dC53aWR0aCAvIHJhdGlvIH07XG4gICAgfVxuICAgIHJldHVybiBuZXh0O1xuICB9O1xuXG4gIGNvbnN0IHN0YXJ0UmVzaXplID0gdXNlQ2FsbGJhY2soXG4gICAgKGUpID0+IHtcbiAgICAgIGNvbnN0IGJveCA9IGltZ1JlZi5jdXJyZW50O1xuICAgICAgaWYgKCFib3gpIHJldHVybjtcblxuICAgICAgY29uc3QgYm91bmRzID0gZS50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBpbml0aWFsID0geyB3aWR0aDogYm94Lm5hdHVyYWxXaWR0aCwgaGVpZ2h0OiBib3gubmF0dXJhbEhlaWdodCB9O1xuXG4gICAgICBjb25zdCBuZXh0ID0gdXBkYXRlQXNwZWN0KGluaXRpYWwsIHtcbiAgICAgICAgd2lkdGg6IGUuY2xpZW50WCAtIGJvdW5kcy5sZWZ0LFxuICAgICAgICBoZWlnaHQ6IGUuY2xpZW50WSAtIGJvdW5kcy50b3AsXG4gICAgICB9KTtcblxuICAgICAgaWYgKG5leHQud2lkdGggPiA1MCAmJiBuZXh0LmhlaWdodCA+IDUwICYmIG5leHQud2lkdGggPD0gNzAwICYmIG5leHQuaGVpZ2h0IDw9IDkwMCkge1xuICAgICAgICBib3guc3R5bGUud2lkdGggPSBgJHtuZXh0LndpZHRofXB4YDtcbiAgICAgICAgYm94LnN0eWxlLmhlaWdodCA9IGAke25leHQuaGVpZ2h0fXB4YDtcblxuICAgICAgICBjb25zdCB1cGRhdGUgPSB7IHdpZHRoOiBuZXh0LndpZHRoLCBoZWlnaHQ6IG5leHQuaGVpZ2h0IH07XG4gICAgICAgIGlmICghaXNFcXVhbCh1cGRhdGUsIG5vZGUuYXR0cnMpKSB7XG4gICAgICAgICAgZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMoJ2ltYWdlVXBsb2FkTm9kZScsIHVwZGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtlZGl0b3IsIG5vZGUuYXR0cnNdLFxuICApO1xuXG4gIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKG5ld1ZhbHVlcykgPT4ge1xuICAgICAgZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMoJ2ltYWdlVXBsb2FkTm9kZScsIG5ld1ZhbHVlcyk7XG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKTtcblxuICBjb25zdCBzdG9wUmVzaXplID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBzdGFydFJlc2l6ZSk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBzdG9wUmVzaXplKTtcbiAgfSwgW3N0YXJ0UmVzaXplXSk7XG5cbiAgY29uc3QgaW5pdFJlc2l6ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgc3RhcnRSZXNpemUpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6ZSk7XG4gIH0sIFtzdGFydFJlc2l6ZSwgc3RvcFJlc2l6ZV0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHdpZHRoOiBzaXplUHgobm9kZS5hdHRycy53aWR0aCksXG4gICAgaGVpZ2h0OiBzaXplUHgobm9kZS5hdHRycy5oZWlnaHQpLFxuICAgIG9iamVjdEZpdDogJ2NvbnRhaW4nLFxuICB9O1xuXG4gIGNvbnN0IGZsZXhBbGlnbiA9IHsgbGVmdDogJ2ZsZXgtc3RhcnQnLCBjZW50ZXI6ICdjZW50ZXInLCByaWdodDogJ2ZsZXgtZW5kJyB9W25vZGUuYXR0cnMuYWxpZ25tZW50XSB8fCAnZmxleC1zdGFydCc7XG5cbiAgcmV0dXJuIChcbiAgICA8Tm9kZVZpZXdXcmFwcGVyPlxuICAgICAgPGRpdlxuICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgY2xhc3Nlcy5yb290LFxuICAgICAgICAgICFub2RlLmF0dHJzLmxvYWRlZCAmJiBjbGFzc2VzLmxvYWRpbmcsXG4gICAgICAgICAgbm9kZS5hdHRycy5kZWxldGVTdGF0dXMgPT09ICdwZW5kaW5nJyAmJiBjbGFzc2VzLnBlbmRpbmdEZWxldGUsXG4gICAgICAgICl9XG4gICAgICAgIHN0eWxlPXt7IGp1c3RpZnlDb250ZW50OiBmbGV4QWxpZ24gfX1cbiAgICAgID5cbiAgICAgICAgPExpbmVhclByb2dyZXNzXG4gICAgICAgICAgbW9kZT1cImRldGVybWluYXRlXCJcbiAgICAgICAgICB2YWx1ZT17bm9kZS5hdHRycy5wZXJjZW50IHx8IDB9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMucHJvZ3Jlc3MsIG5vZGUuYXR0cnMubG9hZGVkICYmIGNsYXNzZXMuaGlkZVByb2dyZXNzKX1cbiAgICAgICAgLz5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5pbWFnZUNvbnRhaW5lcn0+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgey4uLmF0dHJpYnV0ZXN9XG4gICAgICAgICAgICByZWY9e2ltZ1JlZn1cbiAgICAgICAgICAgIHNyYz17bm9kZS5hdHRycy5zcmN9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5pbWFnZSwgc2VsZWN0ZWQgJiYgY2xhc3Nlcy5hY3RpdmUpfVxuICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgb25Mb2FkPXtsb2FkSW1hZ2V9XG4gICAgICAgICAgICBhbHQ9e25vZGUuYXR0cnMuYWx0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiByZWY9e3Jlc2l6ZVJlZn0gY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMucmVzaXplLCAncmVzaXplJyl9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtzaG93VG9vbGJhciAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICByZWY9e3Rvb2xiYXJSZWZ9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgdG9wOiAnMTAwJScsXG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgekluZGV4OiAyMCxcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1lZGl0YWJsZS1odG1sLXRvb2xiYXItYmcsICNlZmVmZWYpJyxcbiAgICAgICAgICAgIGJveFNoYWRvdzpcbiAgICAgICAgICAgICAgJzBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiknLFxuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPEN1c3RvbVRvb2xiYXJXcmFwcGVyXG4gICAgICAgICAgICBzaG93RG9uZVxuICAgICAgICAgICAgey4uLm9wdGlvbnN9XG4gICAgICAgICAgICBvbkRvbmU9eygpID0+IHtcbiAgICAgICAgICAgICAgc2V0U2hvd1Rvb2xiYXIoZmFsc2UpO1xuICAgICAgICAgICAgICBwcm9wcy5pbWFnZUhhbmRsaW5nPy5vbkRvbmUoKTtcbiAgICAgICAgICAgICAgcHJvcHMuZWRpdG9yLmNvbW1hbmRzLmZvY3VzKCdlbmQnKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEltYWdlVG9vbGJhclxuICAgICAgICAgICAgICBkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zPXtvcHRpb25zLmRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnN9XG4gICAgICAgICAgICAgIGFsdD17bm9kZS5hdHRycy5hbHR9XG4gICAgICAgICAgICAgIGltYWdlTG9hZGVkPXtub2RlLmF0dHJzLmxvYWRlZH1cbiAgICAgICAgICAgICAgYWxpZ25tZW50PXtub2RlLmF0dHJzLmFsaWdubWVudCB8fCAnbGVmdCd9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9DdXN0b21Ub29sYmFyV3JhcHBlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvTm9kZVZpZXdXcmFwcGVyPlxuICApO1xufVxuXG5JbWFnZUNvbXBvbmVudC5wcm9wVHlwZXMgPSB7XG4gIG5vZGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgZWRpdG9yOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgYXR0cmlidXRlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgb25Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG4gIG1heEltYWdlV2lkdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gIG1heEltYWdlSGVpZ2h0OiBQcm9wVHlwZXMubnVtYmVyLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcygodGhlbWUpID0+ICh7XG4gIHBvcnRhbDoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIG9wYWNpdHk6IDAsXG4gICAgdHJhbnNpdGlvbjogJ29wYWNpdHkgMjAwbXMgbGluZWFyJyxcbiAgfSxcbiAgZmxvYXRpbmdCdXR0b25Sb3c6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcixcbiAgICBib3JkZXJSYWRpdXM6ICcxcHgnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgYm9yZGVyOiBgc29saWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5ncmV5WzIwMF19YCxcbiAgICBib3hTaGFkb3c6XG4gICAgICAnMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjEyKScsXG4gIH0sXG4gIHByb2dyZXNzOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgbGVmdDogJzAnLFxuICAgIHdpZHRoOiAnZml0LWNvbnRlbnQnLFxuICAgIHRvcDogJzAlJyxcbiAgICB0cmFuc2l0aW9uOiAnb3BhY2l0eSAyMDBtcyBsaW5lYXInLFxuICB9LFxuICBoaWRlUHJvZ3Jlc3M6IHtcbiAgICBvcGFjaXR5OiAwLFxuICB9LFxuICBsb2FkaW5nOiB7XG4gICAgb3BhY2l0eTogMC4zLFxuICB9LFxuICBwZW5kaW5nRGVsZXRlOiB7XG4gICAgb3BhY2l0eTogMC4zLFxuICB9LFxuICByb290OiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYm9yZGVyOiBgc29saWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5jb21tb24ud2hpdGV9YCxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgdHJhbnNpdGlvbjogJ29wYWNpdHkgMjAwbXMgbGluZWFyJyxcbiAgfSxcbiAgZGVsZXRlOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgcmlnaHQ6IDAsXG4gIH0sXG4gIGltYWdlQ29udGFpbmVyOiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6ICdmaXQtY29udGVudCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuXG4gICAgJyYmOmhvdmVyID4gLnJlc2l6ZSc6IHtcbiAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgfSxcbiAgfSxcbiAgYWN0aXZlOiB7XG4gICAgYm9yZGVyOiBgc29saWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW59YCxcbiAgfSxcbiAgcmVzaXplOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbixcbiAgICBjdXJzb3I6ICdjb2wtcmVzaXplJyxcbiAgICBoZWlnaHQ6ICczNXB4JyxcbiAgICB3aWR0aDogJzVweCcsXG4gICAgYm9yZGVyUmFkaXVzOiA4LFxuICAgIG1hcmdpbkxlZnQ6ICc1cHgnLFxuICAgIG1hcmdpblJpZ2h0OiAnMTBweCcsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICB9LFxuICBkcmF3YWJsZUhlaWdodDoge1xuICAgIG1pbkhlaWdodDogMzUwLFxuICB9LFxufSkpKEltYWdlQ29tcG9uZW50KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/component.jsx"],"names":["log","sizePx","s","ImageComponent","props","node","editor","classes","attributes","onFocus","selected","options","maxImageWidth","maxImageHeight","latex","handleChange","handleDone","alt","attrs","showToolbar","setShowToolbar","imgRef","resizeRef","toolbarRef","getPercentFromWidth","width","floored","current","naturalWidth","parseInt","toFixed","applySizeData","update","resizePercent","commands","updateAttributes","imageHandling","insertImageRequested","finish","InsertImageHandler","resizeHandle","addEventListener","initResize","removeEventListener","loadImage","box","style","w","Math","min","h","naturalHeight","height","updateAspect","initial","next","keepAspect","resizeType","ratio","startResize","e","bounds","target","getBoundingClientRect","clientX","left","clientY","top","onChange","newValues","stopResize","window","objectFit","flexAlign","center","right","alignment","root","loaded","loading","deleteStatus","pendingDelete","justifyContent","percent","progress","hideProgress","imageContainer","src","image","active","resize","position","zIndex","background","boxShadow","onDone","focus","disableImageAlignmentButtons","propTypes","PropTypes","object","isRequired","func","number","theme","portal","opacity","transition","floatingButtonRow","backgroundColor","palette","paper","borderRadius","display","padding","border","grey","common","white","alignItems","primary","main","cursor","marginLeft","marginRight","drawableHeight","minHeight"],"mappings":"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","sourcesContent":["import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport debug from 'debug';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport { withStyles } from '@material-ui/core/styles';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport InsertImageHandler from '../components/image/InsertImageHandler';\nimport ImageToolbar from '../components/image/ImageToolbar';\nimport CustomToolbarWrapper from './custom-toolbar-wrapper';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:component');\n\nconst sizePx = (s) => (s ? `${s}px` : 'calc(20px)');\n\nfunction ImageComponent(props) {\n const {\n node,\n editor,\n classes,\n attributes,\n onFocus,\n selected,\n options,\n maxImageWidth = 700,\n maxImageHeight = 900,\n latex,\n handleChange,\n handleDone,\n } = props;\n const { alt } = node.attrs;\n\n const [showToolbar, setShowToolbar] = useState(false);\n\n const imgRef = useRef(null);\n const resizeRef = useRef(null);\n const toolbarRef = useRef(null);\n\n const getPercentFromWidth = useCallback((width) => {\n const floored = (width / imgRef.current.naturalWidth) * 4;\n return parseInt(floored.toFixed(0) * 25, 10);\n }, []);\n\n const applySizeData = useCallback(() => {\n if (!node.attrs.width || !imgRef.current) return;\n\n const update = {\n ...node.attrs,\n resizePercent: getPercentFromWidth(node.attrs.width),\n };\n\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }, [editor, node.attrs, getPercentFromWidth]);\n\n useEffect(() => {\n setShowToolbar(selected);\n }, [selected]);\n\n useEffect(() => {\n options.imageHandling.insertImageRequested(node, (finish) => new InsertImageHandler(editor, finish));\n applySizeData();\n\n const resizeHandle = resizeRef.current;\n if (resizeHandle) {\n resizeHandle.addEventListener('mousedown', initResize, false);\n }\n return () => {\n if (resizeHandle) resizeHandle.removeEventListener('mousedown', initResize, false);\n };\n }, []);\n\n useEffect(() => {\n applySizeData();\n });\n\n const loadImage = useCallback(() => {\n const box = imgRef.current;\n if (!box) return;\n\n if (!box.style.width || box.style.width === 'calc(20px)') {\n const w = Math.min(box.naturalWidth, maxImageWidth);\n const h = Math.min(box.naturalHeight, maxImageHeight);\n\n box.style.width = `${w}px`;\n box.style.height = `${h}px`;\n\n const update = { width: w, height: h };\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }\n }, [editor, node.attrs, maxImageWidth, maxImageHeight]);\n\n const updateAspect = (initial, next, keepAspect = true, resizeType) => {\n if (keepAspect) {\n const ratio = initial.width / initial.height;\n if (resizeType === 'height') return { width: next.height * ratio, height: next.height };\n return { width: next.width, height: next.width / ratio };\n }\n return next;\n };\n\n const startResize = useCallback(\n (e) => {\n const box = imgRef.current;\n if (!box) return;\n\n const bounds = e.target.getBoundingClientRect();\n const initial = { width: box.naturalWidth, height: box.naturalHeight };\n\n const next = updateAspect(initial, {\n width: e.clientX - bounds.left,\n height: e.clientY - bounds.top,\n });\n\n if (next.width > 50 && next.height > 50 && next.width <= 700 && next.height <= 900) {\n box.style.width = `${next.width}px`;\n box.style.height = `${next.height}px`;\n\n const update = { width: next.width, height: next.height };\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }\n },\n [editor, node.attrs],\n );\n\n const onChange = useCallback(\n (newValues) => {\n editor.commands.updateAttributes('imageUploadNode', newValues);\n },\n [editor],\n );\n\n const stopResize = useCallback(() => {\n window.removeEventListener('mousemove', startResize);\n window.removeEventListener('mouseup', stopResize);\n }, [startResize]);\n\n const initResize = useCallback(() => {\n window.addEventListener('mousemove', startResize);\n window.addEventListener('mouseup', stopResize);\n }, [startResize, stopResize]);\n\n const style = {\n width: sizePx(node.attrs.width),\n height: sizePx(node.attrs.height),\n objectFit: 'contain',\n };\n\n const flexAlign = { left: 'flex-start', center: 'center', right: 'flex-end' }[node.attrs.alignment] || 'flex-start';\n\n return (\n <NodeViewWrapper>\n <div\n onFocus={onFocus}\n className={classNames(\n classes.root,\n !node.attrs.loaded && classes.loading,\n node.attrs.deleteStatus === 'pending' && classes.pendingDelete,\n )}\n style={{ justifyContent: flexAlign }}\n >\n <LinearProgress\n mode=\"determinate\"\n value={node.attrs.percent || 0}\n className={classNames(classes.progress, node.attrs.loaded && classes.hideProgress)}\n />\n\n <div className={classes.imageContainer}>\n <img\n {...attributes}\n ref={imgRef}\n src={node.attrs.src}\n className={classNames(classes.image, selected && classes.active)}\n style={style}\n onLoad={loadImage}\n alt={node.attrs.alt}\n />\n <div ref={resizeRef} className={classNames(classes.resize, 'resize')} />\n </div>\n </div>\n\n {showToolbar && (\n <div\n ref={toolbarRef}\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n zIndex: 20,\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n width: '100%',\n }}\n >\n <CustomToolbarWrapper\n showDone\n {...options}\n onDone={() => {\n setShowToolbar(false);\n props.imageHandling?.onDone();\n props.editor.commands.focus('end');\n }}\n >\n <ImageToolbar\n disableImageAlignmentButtons={options.disableImageAlignmentButtons}\n alt={node.attrs.alt}\n imageLoaded={node.attrs.loaded}\n alignment={node.attrs.alignment || 'left'}\n onChange={onChange}\n />\n </CustomToolbarWrapper>\n </div>\n )}\n </NodeViewWrapper>\n );\n}\n\nImageComponent.propTypes = {\n node: PropTypes.object.isRequired,\n editor: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\n};\n\nexport default withStyles((theme) => ({\n portal: {\n position: 'absolute',\n opacity: 0,\n transition: 'opacity 200ms linear',\n },\n floatingButtonRow: {\n backgroundColor: theme.palette.background.paper,\n borderRadius: '1px',\n display: 'flex',\n padding: '10px',\n border: `solid 1px ${theme.palette.grey[200]}`,\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n },\n progress: {\n position: 'absolute',\n left: '0',\n width: 'fit-content',\n top: '0%',\n transition: 'opacity 200ms linear',\n },\n hideProgress: {\n opacity: 0,\n },\n loading: {\n opacity: 0.3,\n },\n pendingDelete: {\n opacity: 0.3,\n },\n root: {\n position: 'relative',\n border: `solid 1px ${theme.palette.common.white}`,\n display: 'flex',\n transition: 'opacity 200ms linear',\n },\n delete: {\n position: 'absolute',\n right: 0,\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n\n '&&:hover > .resize': {\n display: 'block',\n },\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`,\n },\n resize: {\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none',\n },\n drawableHeight: {\n minHeight: 350,\n },\n}))(ImageComponent);\n"],"file":"component.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/css.js"],"names":["removeDialogs","prevDialogs","document","querySelectorAll","forEach","s","remove","insertDialog","editor","callback","opts","selectedText","parentNode","editorDOM","options","element","newEl","createElement","selection","state","className","popoverEl","closePopOver","firstCallMade","listener","e","focusIsInModals","contains","target","focusIsInEditor","handleClose","undefined","body","removeEventListener","handleChange","name","parentNodeClass","attrs","createHTML","html","tag","object","text","slice","$anchor","textOffset","$head","el","background","height","padding","overflow","display","flexFlow","names","map","i","marginRight","__html","ReactDOM","render","cursorItem","view","nodeDOM","from","cursorNode","bodyRect","parentElement","getBoundingClientRect","boundRect","appendChild","style","maxWidth","position","top","zIndex","leftValue","left","Math","abs","offsetWidth","rightValue","x","leftAlignedWidth","right","rightAlignedWidth","addEventListener","CSSMark","Mark","create","addOptions","classes","addAttributes","parseHTML","getAttribute","renderHTML","attributes","getAttrs","cls","match","find","includes","HTMLAttributes","addCommands","setCSSClass","commands","setMark","unsetCSSClass","unsetMark","openCSSClassDialog","doc","textBetween","to","$from","nodeAfter","extraCSSRules","chain","focus","run"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Mark, mergeAttributes } from '@tiptap/core';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\n\nexport const removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-css-dialog');\n\n prevDialogs.forEach((s) => s.remove());\n};\n\nconst insertDialog = ({ editor, callback, opts, selectedText, parentNode }) => {\n const editorDOM = editor.options.element;\n const newEl = document.createElement('div');\n const { selection } = editor.state;\n\n removeDialogs();\n\n newEl.className = 'insert-css-dialog';\n\n let popoverEl;\n\n const closePopOver = () => {\n if (popoverEl) {\n popoverEl.remove();\n }\n };\n\n let firstCallMade = false;\n\n const listener = (e) => {\n // this will be triggered right after setting it because\n // this toolbar is added on the mousedown event\n // so right after mouseup, the click will be triggered\n if (firstCallMade) {\n const focusIsInModals = newEl.contains(e.target) || (popoverEl && popoverEl.contains(e.target));\n const focusIsInEditor = editorDOM.contains(e.target);\n\n if (!(focusIsInModals || focusIsInEditor)) {\n handleClose();\n }\n } else {\n firstCallMade = true;\n }\n };\n\n const handleClose = () => {\n callback(undefined, true);\n newEl.remove();\n closePopOver();\n document.body.removeEventListener('click', listener);\n };\n\n const handleChange = (name) => {\n callback(name, true);\n newEl.remove();\n closePopOver();\n document.body.removeEventListener('click', listener);\n };\n\n const parentNodeClass = parentNode?.attrs.class;\n const createHTML = (name) => {\n let html = `<span class=\"${name}\">${selectedText}</span>`;\n\n if (parentNode) {\n let tag = 'span';\n\n if (parentNode?.object === 'inline') {\n tag = 'span';\n }\n\n if (parentNode?.object === 'block') {\n tag = 'div';\n }\n\n html = `<${tag} class=\"${parentNodeClass}\">${parentNode.text.slice(0, selection.$anchor.textOffset)}${html}${parentNode.text.slice(\n selection.$head.textOffset,\n )}</${tag}>`;\n }\n\n return html;\n };\n\n const el = (\n <div\n style={{ background: 'white', height: 500, padding: 20, overflow: 'hidden', display: 'flex', flexFlow: 'column' }}\n >\n <h2>Please choose a css class</h2>\n {parentNodeClass && <div>The current parent has this class {parentNodeClass}</div>}\n <List component=\"nav\" style={{ overflow: 'scroll' }}>\n {opts.names.map((name, i) => (\n <ListItem key={`rule-${i}`} button onClick={() => handleChange(name)}>\n <div style={{ marginRight: 20 }}>{name}</div>\n <div\n dangerouslySetInnerHTML={{\n __html: createHTML(name),\n }}\n />\n </ListItem>\n ))}\n </List>\n </div>\n );\n\n ReactDOM.render(el, newEl, () => {\n const cursorItem = editor.view.nodeDOM(editor.state.selection.from);\n const cursorNode = cursorItem?.parentNode;\n\n if (cursorNode) {\n const bodyRect = editorDOM.parentElement.parentElement.parentElement.getBoundingClientRect();\n const boundRect = cursorNode.getBoundingClientRect();\n\n editorDOM.parentElement.parentElement.parentElement.appendChild(newEl);\n\n newEl.style.maxWidth = '500px';\n newEl.style.position = 'absolute';\n newEl.style.top = 0;\n newEl.style.zIndex = 99999;\n\n const leftValue = `${boundRect.left + Math.abs(bodyRect.left) + cursorNode.offsetWidth + 10}px`;\n\n const rightValue = `${boundRect.x}px`;\n\n newEl.style.left = leftValue;\n\n const leftAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = rightValue;\n\n const rightAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = 'unset';\n\n if (leftAlignedWidth >= rightAlignedWidth) {\n newEl.style.left = leftValue;\n } else {\n newEl.style.right = rightValue;\n }\n\n document.body.addEventListener('click', listener);\n }\n });\n};\n\nexport const CSSMark = Mark.create({\n name: 'cssmark',\n\n addOptions() {\n return {\n classes: [],\n };\n },\n\n addAttributes() {\n return {\n class: {\n default: null,\n parseHTML: (el) => el.getAttribute('class'),\n renderHTML: (attributes) => {\n if (!attributes.class) return {};\n return { class: attributes.class };\n },\n },\n };\n },\n\n parseHTML() {\n // Any span with a class that matches one of allowed classes\n return [\n {\n tag: 'span[class]',\n getAttrs: (el) => {\n const cls = el.getAttribute('class') || '';\n const match = this.options.classes.find((name) => cls.includes(name));\n return match ? { class: match } : false;\n },\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['span', mergeAttributes(HTMLAttributes), 0];\n },\n\n addCommands() {\n return {\n setCSSClass: (className) => ({ commands }) => {\n return commands.setMark(this.name, { class: className });\n },\n\n unsetCSSClass: () => ({ commands }) => {\n return commands.unsetMark(this.name);\n },\n\n openCSSClassDialog: () => ({ editor }) => {\n insertDialog({\n editor,\n selectedText: editor.state.doc.textBetween(editor.state.selection.from, editor.state.selection.to),\n parentNode: editor.state.selection.$from.nodeAfter,\n opts: this.options.extraCSSRules,\n callback: (className) => {\n if (className) {\n editor\n .chain()\n .focus()\n .setCSSClass(className)\n .run();\n }\n },\n });\n },\n };\n },\n});\n"],"file":"css.js"}
|
|
@@ -17,15 +17,13 @@ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton")
|
|
|
17
17
|
|
|
18
18
|
var _Delete = _interopRequireDefault(require("@material-ui/icons/Delete"));
|
|
19
19
|
|
|
20
|
-
var _doneButton = require("../plugins/toolbar/done-button");
|
|
21
|
-
|
|
22
20
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
23
21
|
|
|
24
22
|
var _constants = require("../constants");
|
|
25
23
|
|
|
26
24
|
var _styles = require("@material-ui/core/styles");
|
|
27
25
|
|
|
28
|
-
var
|
|
26
|
+
var _doneButton = require("../components/common/done-button");
|
|
29
27
|
|
|
30
28
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
29
|
|
|
@@ -121,4 +119,4 @@ var _default = (0, _styles.withStyles)(style, {
|
|
|
121
119
|
})(CustomToolbarWrapper);
|
|
122
120
|
|
|
123
121
|
exports["default"] = _default;
|
|
124
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2N1c3RvbS10b29sYmFyLXdyYXBwZXIuanN4Il0sIm5hbWVzIjpbIkN1c3RvbVRvb2xiYXJXcmFwcGVyIiwicHJvcHMiLCJjaGlsZHJlbiIsImRlbGV0YWJsZSIsImNsYXNzZXMiLCJ0b29sYmFyT3B0cyIsImF1dG9XaWR0aCIsImlzRm9jdXNlZCIsImRvbmVCdXR0b25SZWYiLCJvbkRlbGV0ZSIsInNob3dEb25lIiwib25Eb25lIiwibmFtZXMiLCJ0b29sYmFyIiwiUElFX1RPT0xCQVJfX0NMQVNTIiwidG9vbGJhcldpdGhOb0RvbmUiLCJ0b29sYmFyUmlnaHQiLCJhbGlnbm1lbnQiLCJmb2N1c2VkIiwiYWx3YXlzVmlzaWJsZSIsImZ1bGxXaWR0aCIsImhpZGRlbiIsImlzSGlkZGVuIiwiY3VzdG9tU3R5bGVzIiwibWluV2lkdGgiLCJ1bmRlZmluZWQiLCJzaGFyZWQiLCJpY29uUm9vdCIsImUiLCJyb290Iiwic3R5bGUiLCJwb3NpdGlvbiIsInpJbmRleCIsImN1cnNvciIsImp1c3RpZnlDb250ZW50IiwiYmFja2dyb3VuZCIsIm1hcmdpbiIsInBhZGRpbmciLCJib3hTaGFkb3ciLCJib3hTaXppbmciLCJkaXNwbGF5Iiwib3BhY2l0eSIsInJpZ2h0Iiwid2lkdGgiLCJ2aXNpYmlsaXR5IiwiaGVpZ2h0IiwidmVydGljYWxBbGlnbiIsImxhYmVsIiwiY29sb3IiLCJpbmRleCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsU0FBU0Esb0JBQVQsQ0FBOEJDLEtBQTlCLEVBQXFDO0FBQUE7O0FBQ25DLE1BQ0VDLFFBREYsR0FXSUQsS0FYSixDQUNFQyxRQURGO0FBQUEsTUFFRUMsU0FGRixHQVdJRixLQVhKLENBRUVFLFNBRkY7QUFBQSxNQUdFQyxPQUhGLEdBV0lILEtBWEosQ0FHRUcsT0FIRjtBQUFBLE1BSUVDLFdB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LEVBQUFBLE1BQU0sRUFBRTtBQUNOdUIsSUFBQUEsVUFBVSxFQUFFO0FBRE4sR0F6Qkk7QUE0Qlp0QyxFQUFBQSxTQUFTLEVBQUU7QUFDVHFDLElBQUFBLEtBQUssRUFBRTtBQURFLEdBNUJDO0FBK0JaaEIsRUFBQUEsUUFBUSxFQUFFO0FBQ1JnQixJQUFBQSxLQUFLLEVBQUUsTUFEQztBQUVSRSxJQUFBQSxNQUFNLEVBQUUsTUFGQTtBQUdSUixJQUFBQSxPQUFPLEVBQUUsS0FIRDtBQUlSUyxJQUFBQSxhQUFhLEVBQUU7QUFKUCxHQS9CRTtBQXFDWkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0xDLElBQUFBLEtBQUssRUFBRTtBQURGLEdBckNLO0FBd0NadEIsRUFBQUEsTUFBTSxFQUFFO0FBQ05jLElBQUFBLE9BQU8sRUFBRTtBQURIO0FBeENJLENBQWQ7O2VBNENlLHdCQUFXVixLQUFYLEVBQWtCO0FBQUVtQixFQUFBQSxLQUFLLEVBQUU7QUFBVCxDQUFsQixFQUFtQ2pELG9CQUFuQyxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvSWNvbkJ1dHRvbic7XG5pbXBvcnQgRGVsZXRlIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9EZWxldGUnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBQSUVfVE9PTEJBUl9fQ0xBU1MgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgeyBEb25lQnV0dG9uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb21tb24vZG9uZS1idXR0b24nO1xuXG5mdW5jdGlvbiBDdXN0b21Ub29sYmFyV3JhcHBlcihwcm9wcykge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZGVsZXRhYmxlLFxuICAgIGNsYXNzZXMsXG4gICAgdG9vbGJhck9wdHMsXG4gICAgYXV0b1dpZHRoLFxuICAgIGlzRm9jdXNlZCxcbiAgICBkb25lQnV0dG9uUmVmLFxuICAgIG9uRGVsZXRlLFxuICAgIHNob3dEb25lLFxuICAgIG9uRG9uZSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBuYW1lcyA9IGNsYXNzTmFtZXMoY2xhc3Nlcy50b29sYmFyLCBQSUVfVE9PTEJBUl9fQ0xBU1MsIHtcbiAgICBbY2xhc3Nlcy50b29sYmFyV2l0aE5vRG9uZV06ICFzaG93RG9uZSxcbiAgICBbY2xhc3Nlcy50b29sYmFyUmlnaHRdOiB0b29sYmFyT3B0cy5hbGlnbm1lbnQgPT09ICdyaWdodCcsXG4gICAgW2NsYXNzZXMuZm9jdXNlZF06IHRvb2xiYXJPcHRzLmFsd2F5c1Zpc2libGUgfHwgaXNGb2N1c2VkLFxuICAgIFtjbGFzc2VzLmF1dG9XaWR0aF06IGF1dG9XaWR0aCxcbiAgICBbY2xhc3Nlcy5mdWxsV2lkdGhdOiAhYXV0b1dpZHRoLFxuICAgIFtjbGFzc2VzLmhpZGRlbl06IHRvb2xiYXJPcHRzLmlzSGlkZGVuID09PSB0cnVlLFxuICB9KTtcbiAgY29uc3QgY3VzdG9tU3R5bGVzID0gdG9vbGJhck9wdHMubWluV2lkdGggIT09IHVuZGVmaW5lZCA/IHsgbWluV2lkdGg6IHRvb2xiYXJPcHRzLm1pbldpZHRoIH0gOiB7fTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtuYW1lc30gc3R5bGU9e3sgLi4uY3VzdG9tU3R5bGVzIH19PlxuICAgICAge2NoaWxkcmVufVxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5zaGFyZWR9PlxuICAgICAgICB7ZGVsZXRhYmxlICYmIChcbiAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlbGV0ZVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuaWNvblJvb3R9XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17KGUpID0+IG9uRGVsZXRlPy4oZSl9XG4gICAgICAgICAgICBjbGFzc2VzPXt7XG4gICAgICAgICAgICAgIHJvb3Q6IGNsYXNzZXMuaWNvblJvb3QsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxEZWxldGUgLz5cbiAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICl9XG4gICAgICAgIHtzaG93RG9uZSAmJiA8RG9uZUJ1dHRvbiBkb25lQnV0dG9uUmVmPXtkb25lQnV0dG9uUmVmfSBvbkNsaWNrPXtvbkRvbmV9IC8+fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmNvbnN0IHN0eWxlID0ge1xuICB0b29sYmFyOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgekluZGV4OiAxMCxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGJhY2tncm91bmQ6ICd2YXIoLS1lZGl0YWJsZS1odG1sLXRvb2xiYXItYmcsICNlZmVmZWYpJyxcbiAgICBtaW5XaWR0aDogJzI4MHB4JyxcbiAgICBtYXJnaW46ICc1cHggMCAwIDAnLFxuICAgIHBhZGRpbmc6ICcycHgnLFxuICAgIGJveFNoYWRvdzpcbiAgICAgICcwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMTIpJyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgb3BhY2l0eTogMSxcbiAgfSxcbiAgdG9vbGJhcldpdGhOb0RvbmU6IHtcbiAgICBtaW5XaWR0aDogJzI2NXB4JyxcbiAgfSxcbiAgdG9vbGJhclJpZ2h0OiB7XG4gICAgcmlnaHQ6IDAsXG4gIH0sXG4gIGZ1bGxXaWR0aDoge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0sXG4gIGhpZGRlbjoge1xuICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nLFxuICB9LFxuICBhdXRvV2lkdGg6IHtcbiAgICB3aWR0aDogJ2F1dG8nLFxuICB9LFxuICBpY29uUm9vdDoge1xuICAgIHdpZHRoOiAnMjhweCcsXG4gICAgaGVpZ2h0OiAnMjhweCcsXG4gICAgcGFkZGluZzogJzRweCcsXG4gICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gIH0sXG4gIGxhYmVsOiB7XG4gICAgY29sb3I6ICd2YXIoLS1lZGl0YWJsZS1odG1sLXRvb2xiYXItY2hlY2ssICMwMGJiMDApJyxcbiAgfSxcbiAgc2hhcmVkOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICB9LFxufTtcbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGUsIHsgaW5kZXg6IDEwMDAgfSkoQ3VzdG9tVG9vbGJhcldyYXBwZXIpO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/custom-toolbar-wrapper.jsx"],"names":["CustomToolbarWrapper","props","children","deletable","classes","toolbarOpts","autoWidth","isFocused","doneButtonRef","onDelete","showDone","onDone","names","toolbar","PIE_TOOLBAR__CLASS","toolbarWithNoDone","toolbarRight","alignment","focused","alwaysVisible","fullWidth","hidden","isHidden","customStyles","minWidth","undefined","shared","iconRoot","e","root","style","position","zIndex","cursor","justifyContent","background","margin","padding","boxShadow","boxSizing","display","opacity","right","width","visibility","height","verticalAlign","label","color","index"],"mappings":"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","sourcesContent":["import React, { useCallback } from 'react';\nimport IconButton from '@material-ui/core/IconButton';\nimport Delete from '@material-ui/icons/Delete';\nimport classNames from 'classnames';\nimport { PIE_TOOLBAR__CLASS } from '../constants';\nimport { withStyles } from '@material-ui/core/styles';\nimport { DoneButton } from '../components/common/done-button';\n\nfunction CustomToolbarWrapper(props) {\n const {\n children,\n deletable,\n classes,\n toolbarOpts,\n autoWidth,\n isFocused,\n doneButtonRef,\n onDelete,\n showDone,\n onDone,\n } = props;\n const names = classNames(classes.toolbar, PIE_TOOLBAR__CLASS, {\n [classes.toolbarWithNoDone]: !showDone,\n [classes.toolbarRight]: toolbarOpts.alignment === 'right',\n [classes.focused]: toolbarOpts.alwaysVisible || isFocused,\n [classes.autoWidth]: autoWidth,\n [classes.fullWidth]: !autoWidth,\n [classes.hidden]: toolbarOpts.isHidden === true,\n });\n const customStyles = toolbarOpts.minWidth !== undefined ? { minWidth: toolbarOpts.minWidth } : {};\n\n return (\n <div className={names} style={{ ...customStyles }}>\n {children}\n\n <div className={classes.shared}>\n {deletable && (\n <IconButton\n aria-label=\"Delete\"\n className={classes.iconRoot}\n onMouseDown={(e) => onDelete?.(e)}\n classes={{\n root: classes.iconRoot,\n }}\n >\n <Delete />\n </IconButton>\n )}\n {showDone && <DoneButton doneButtonRef={doneButtonRef} onClick={onDone} />}\n </div>\n </div>\n );\n}\n\nconst style = {\n toolbar: {\n position: 'absolute',\n zIndex: 10,\n cursor: 'pointer',\n justifyContent: 'space-between',\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n minWidth: '280px',\n margin: '5px 0 0 0',\n padding: '2px',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n boxSizing: 'border-box',\n display: 'flex',\n opacity: 1,\n },\n toolbarWithNoDone: {\n minWidth: '265px',\n },\n toolbarRight: {\n right: 0,\n },\n fullWidth: {\n width: '100%',\n },\n hidden: {\n visibility: 'hidden',\n },\n autoWidth: {\n width: 'auto',\n },\n iconRoot: {\n width: '28px',\n height: '28px',\n padding: '4px',\n verticalAlign: 'top',\n },\n label: {\n color: 'var(--editable-html-toolbar-check, #00bb00)',\n },\n shared: {\n display: 'flex',\n },\n};\nexport default withStyles(style, { index: 1000 })(CustomToolbarWrapper);\n"],"file":"custom-toolbar-wrapper.js"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _extensionTable = require("@tiptap/extension-table");
|
|
9
|
+
|
|
10
|
+
var ExtendedTable = _extensionTable.Table.extend({
|
|
11
|
+
addAttributes: function addAttributes() {
|
|
12
|
+
return {
|
|
13
|
+
border: {
|
|
14
|
+
"default": '1'
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
},
|
|
18
|
+
renderHTML: function renderHTML(props) {
|
|
19
|
+
var originalTable = this.parent(props);
|
|
20
|
+
var border = props.HTMLAttributes.border;
|
|
21
|
+
var previousStyle = "".concat(originalTable[1].style).concat(originalTable[1].style.match(/.*; */) ? '' : ';');
|
|
22
|
+
originalTable[1].style = "".concat(previousStyle, "\n width: 100%;\n color: var(--pie-text, black);\n table-layout: fixed;\n border-collapse: collapse;\n background-color: var(--pie-background, rgba(255, 255, 255))");
|
|
23
|
+
originalTable[1].border = border ? border : '1';
|
|
24
|
+
return originalTable;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
var _default = ExtendedTable;
|
|
29
|
+
exports["default"] = _default;
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2V4dGVuZGVkLXRhYmxlLmpzIl0sIm5hbWVzIjpbIkV4dGVuZGVkVGFibGUiLCJUYWJsZSIsImV4dGVuZCIsImFkZEF0dHJpYnV0ZXMiLCJib3JkZXIiLCJyZW5kZXJIVE1MIiwicHJvcHMiLCJvcmlnaW5hbFRhYmxlIiwicGFyZW50IiwiSFRNTEF0dHJpYnV0ZXMiLCJwcmV2aW91c1N0eWxlIiwic3R5bGUiLCJtYXRjaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBLElBQU1BLGFBQWEsR0FBR0Msc0JBQU1DLE1BQU4sQ0FBYTtBQUNqQ0MsRUFBQUEsYUFEaUMsMkJBQ2pCO0FBQ2QsV0FBTztBQUNMQyxNQUFBQSxNQUFNLEVBQUU7QUFBRSxtQkFBUztBQUFYO0FBREgsS0FBUDtBQUdELEdBTGdDO0FBTWpDQyxFQUFBQSxVQU5pQyxzQkFNdEJDLEtBTnNCLEVBTWY7QUFDaEIsUUFBTUMsYUFBYSxHQUFHLEtBQUtDLE1BQUwsQ0FBWUYsS0FBWixDQUF0QjtBQUNBLFFBQVFGLE1BQVIsR0FBbUJFLEtBQUssQ0FBQ0csY0FBekIsQ0FBUUwsTUFBUjtBQUVBLFFBQU1NLGFBQWEsYUFBTUgsYUFBYSxDQUFDLENBQUQsQ0FBYixDQUFpQkksS0FBdkIsU0FBK0JKLGFBQWEsQ0FBQyxDQUFELENBQWIsQ0FBaUJJLEtBQWpCLENBQXVCQyxLQUF2QixDQUE2QixPQUE3QixJQUF3QyxFQUF4QyxHQUE2QyxHQUE1RSxDQUFuQjtBQUVBTCxJQUFBQSxhQUFhLENBQUMsQ0FBRCxDQUFiLENBQWlCSSxLQUFqQixhQUE0QkQsYUFBNUI7QUFNQUgsSUFBQUEsYUFBYSxDQUFDLENBQUQsQ0FBYixDQUFpQkgsTUFBakIsR0FBMEJBLE1BQU0sR0FBR0EsTUFBSCxHQUFZLEdBQTVDO0FBRUEsV0FBT0csYUFBUDtBQUNEO0FBckJnQyxDQUFiLENBQXRCOztlQXdCZVAsYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlIH0gZnJvbSAnQHRpcHRhcC9leHRlbnNpb24tdGFibGUnO1xuXG5jb25zdCBFeHRlbmRlZFRhYmxlID0gVGFibGUuZXh0ZW5kKHtcbiAgYWRkQXR0cmlidXRlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYm9yZGVyOiB7IGRlZmF1bHQ6ICcxJyB9LFxuICAgIH07XG4gIH0sXG4gIHJlbmRlckhUTUwocHJvcHMpIHtcbiAgICBjb25zdCBvcmlnaW5hbFRhYmxlID0gdGhpcy5wYXJlbnQocHJvcHMpO1xuICAgIGNvbnN0IHsgYm9yZGVyIH0gPSBwcm9wcy5IVE1MQXR0cmlidXRlcztcblxuICAgIGNvbnN0IHByZXZpb3VzU3R5bGUgPSBgJHtvcmlnaW5hbFRhYmxlWzFdLnN0eWxlfSR7b3JpZ2luYWxUYWJsZVsxXS5zdHlsZS5tYXRjaCgvLio7ICovKSA/ICcnIDogJzsnfWA7XG5cbiAgICBvcmlnaW5hbFRhYmxlWzFdLnN0eWxlID0gYCR7cHJldmlvdXNTdHlsZX1cbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogdmFyKC0tcGllLXRleHQsIGJsYWNrKTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGllLWJhY2tncm91bmQsIHJnYmEoMjU1LCAyNTUsIDI1NSkpYDtcbiAgICBvcmlnaW5hbFRhYmxlWzFdLmJvcmRlciA9IGJvcmRlciA/IGJvcmRlciA6ICcxJztcblxuICAgIHJldHVybiBvcmlnaW5hbFRhYmxlO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEV4dGVuZGVkVGFibGU7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/extended-table.js"],"names":["ExtendedTable","Table","extend","addAttributes","border","renderHTML","props","originalTable","parent","HTMLAttributes","previousStyle","style","match"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,aAAa,GAAGC,sBAAMC,MAAN,CAAa;AACjCC,EAAAA,aADiC,2BACjB;AACd,WAAO;AACLC,MAAAA,MAAM,EAAE;AAAE,mBAAS;AAAX;AADH,KAAP;AAGD,GALgC;AAMjCC,EAAAA,UANiC,sBAMtBC,KANsB,EAMf;AAChB,QAAMC,aAAa,GAAG,KAAKC,MAAL,CAAYF,KAAZ,CAAtB;AACA,QAAQF,MAAR,GAAmBE,KAAK,CAACG,cAAzB,CAAQL,MAAR;AAEA,QAAMM,aAAa,aAAMH,aAAa,CAAC,CAAD,CAAb,CAAiBI,KAAvB,SAA+BJ,aAAa,CAAC,CAAD,CAAb,CAAiBI,KAAjB,CAAuBC,KAAvB,CAA6B,OAA7B,IAAwC,EAAxC,GAA6C,GAA5E,CAAnB;AAEAL,IAAAA,aAAa,CAAC,CAAD,CAAb,CAAiBI,KAAjB,aAA4BD,aAA5B;AAMAH,IAAAA,aAAa,CAAC,CAAD,CAAb,CAAiBH,MAAjB,GAA0BA,MAAM,GAAGA,MAAH,GAAY,GAA5C;AAEA,WAAOG,aAAP;AACD;AArBgC,CAAb,CAAtB;;eAwBeP,a","sourcesContent":["import { Table } from '@tiptap/extension-table';\n\nconst ExtendedTable = Table.extend({\n addAttributes() {\n return {\n border: { default: '1' },\n };\n },\n renderHTML(props) {\n const originalTable = this.parent(props);\n const { border } = props.HTMLAttributes;\n\n const previousStyle = `${originalTable[1].style}${originalTable[1].style.match(/.*; */) ? '' : ';'}`;\n\n originalTable[1].style = `${previousStyle}\n width: 100%;\n color: var(--pie-text, black);\n table-layout: fixed;\n border-collapse: collapse;\n background-color: var(--pie-background, rgba(255, 255, 255))`;\n originalTable[1].border = border ? border : '1';\n\n return originalTable;\n },\n});\n\nexport default ExtendedTable;\n"],"file":"extended-table.js"}
|
package/lib/extensions/image.js
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
@@ -15,14 +13,10 @@ var _core = require("@tiptap/core");
|
|
|
15
13
|
|
|
16
14
|
var _react = require("@tiptap/react");
|
|
17
15
|
|
|
18
|
-
var _react2 =
|
|
16
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
19
17
|
|
|
20
18
|
var _component = _interopRequireDefault(require("./component"));
|
|
21
19
|
|
|
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
20
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
21
|
|
|
28
22
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -103,4 +97,4 @@ var ImageUploadNode = _core.Node.create({
|
|
|
103
97
|
});
|
|
104
98
|
|
|
105
99
|
exports.ImageUploadNode = ImageUploadNode;
|
|
106
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2ltYWdlLmpzIl0sIm5hbWVzIjpbIkltYWdlVXBsb2FkTm9kZSIsIk5vZGUiLCJjcmVhdGUiLCJuYW1lIiwiZ3JvdXAiLCJhdG9tIiwic2VsZWN0YWJsZSIsImRyYWdnYWJsZSIsImFkZEF0dHJpYnV0ZXMiLCJsb2FkZWQiLCJkZWxldGVTdGF0dXMiLCJhbGlnbm1lbnQiLCJwZXJjZW50Iiwid2lkdGgiLCJoZWlnaHQiLCJzcmMiLCJhbHQiLCJwYXJzZUhUTUwiLCJ0YWciLCJyZW5kZXJIVE1MIiwiSFRNTEF0dHJpYnV0ZXMiLCJhZGROb2RlVmlldyIsInByb3BzIiwib3B0aW9ucyIsImFkZENvbW1hbmRzIiwic2V0SW1hZ2VVcGxvYWROb2RlIiwiY29tbWFuZHMiLCJpbnNlcnRDb250ZW50IiwidHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUE7QUFFTyxJQUFNQSxlQUFlLEdBQUdDLFdBQUtDLE1BQUwsQ0FBWTtBQUN6Q0MsRUFBQUEsSUFBSSxFQUFFLGlCQURtQztBQUd6Q0MsRUFBQUEsS0FBSyxFQUFFLE9BSGtDO0FBSXpDQyxFQUFBQSxJQUFJLEVBQUUsSUFKbUM7QUFJN0I7QUFDWkMsRUFBQUEsVUFBVSxFQUFFLElBTDZCO0FBS3ZCO0FBQ2xCQyxFQUFBQSxTQUFTLEVBQUUsSUFOOEI7QUFNeEI7QUFFakJDLEVBQUFBLGFBUnlDLDJCQVF6QjtBQUNkLFdBQU87QUFDTEMsTUFBQUEsTUFBTSxFQUFFO0FBQUUsbUJBQVM7QUFBWCxPQURIO0FBRUxDLE1BQUFBLFlBQVksRUFBRTtBQUFFLG1CQUFTO0FBQVgsT0FGVDtBQUdMQyxNQUFBQSxTQUFTLEVBQUU7QUFBRSxtQkFBUztBQUFYLE9BSE47QUFJTEMsTUFBQUEsT0FBTyxFQUFFO0FBQUUsbUJBQVM7QUFBWCxPQUpKO0FBS0xDLE1BQUFBLEtBQUssRUFBRTtBQUFFLG1CQUFTO0FBQVgsT0FMRjtBQU1MQyxNQUFBQSxNQUFNLEVBQUU7QUFBRSxtQkFBUztBQUFYLE9BTkg7QUFPTEMsTUFBQUEsR0FBRyxFQUFFO0FBQUUsbUJBQVM7QUFBWCxPQVBBO0FBUUxDLE1BQUFBLEdBQUcsRUFBRTtBQUFFLG1CQUFTO0FBQVg7QUFSQSxLQUFQO0FBVUQsR0FuQndDO0FBcUJ6Q0MsRUFBQUEsU0FyQnlDLHVCQXFCN0I7QUFDVixXQUFPLENBQ0w7QUFDRUMsTUFBQUEsR0FBRyxFQUFFO0FBRFAsS0FESyxDQUFQO0FBS0QsR0EzQndDO0FBNkJ6QztBQUNBQyxFQUFBQSxVQTlCeUMsNEJBOEJWO0FBQUEsUUFBbEJDLGNBQWtCLFFBQWxCQSxjQUFrQjtBQUM3QixXQUFPLENBQUMsS0FBRCxFQUFRLDJCQUFnQkEsY0FBaEIsRUFBZ0M7QUFBRSxtQkFBYTtBQUFmLEtBQWhDLENBQVIsQ0FBUDtBQUNELEdBaEN3QztBQWtDekNDLEVBQUFBLFdBbEN5Qyx5QkFrQzNCO0FBQUE7O0FBQ1osV0FBTyxrQ0FBc0IsVUFBQ0MsS0FBRDtBQUFBLDBCQUFXLGlDQUFDLHFCQUFELGtDQUF5QkEsS0FBekI7QUFBZ0NDLFFBQUFBLE9BQU8sRUFBRSxLQUFJLENBQUNBO0FBQTlDLFNBQVg7QUFBQSxLQUF0QixDQUFQO0FBQ0QsR0FwQ3dDO0FBc0N6Q0MsRUFBQUEsV0F0Q3lDLHlCQXNDM0I7QUFBQTs7QUFDWixXQUFPO0FBQ0xDLE1BQUFBLGtCQUFrQixFQUFFO0FBQUEsZUFBTSxpQkFBa0I7QUFBQSxjQUFmQyxRQUFlLFNBQWZBLFFBQWU7QUFDMUMsaUJBQU9BLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QjtBQUM1QkMsWUFBQUEsSUFBSSxFQUFFLE1BQUksQ0FBQ3pCO0FBRGlCLFdBQXZCLENBQVA7QUFHRCxTQUptQjtBQUFBO0FBRGYsS0FBUDtBQU9EO0FBOUN3QyxDQUFaLENBQXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZSwgbWVyZ2VBdHRyaWJ1dGVzIH0gZnJvbSAnQHRpcHRhcC9jb3JlJztcbmltcG9ydCB7IFJlYWN0Tm9kZVZpZXdSZW5kZXJlciB9IGZyb20gJ0B0aXB0YXAvcmVhY3QnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBJbWFnZUNvbXBvbmVudCBmcm9tICcuL2NvbXBvbmVudCc7XG5cbi8vIC0tLS0gVGlwdGFwIEV4dGVuc2lvbiAtLS0tIC8vXG5cbmV4cG9ydCBjb25zdCBJbWFnZVVwbG9hZE5vZGUgPSBOb2RlLmNyZWF0ZSh7XG4gIG5hbWU6ICdpbWFnZVVwbG9hZE5vZGUnLFxuXG4gIGdyb3VwOiAnYmxvY2snLFxuICBhdG9tOiB0cnVlLCAvLyDinIUgcHJldmVudHMgY29udGVudCBob2xlc1xuICBzZWxlY3RhYmxlOiB0cnVlLCAvLyBvcHRpb25hbFxuICBkcmFnZ2FibGU6IHRydWUsIC8vIG9wdGlvbmFsXG5cbiAgYWRkQXR0cmlidXRlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9hZGVkOiB7IGRlZmF1bHQ6IGZhbHNlIH0sXG4gICAgICBkZWxldGVTdGF0dXM6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgYWxpZ25tZW50OiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIHBlcmNlbnQ6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgd2lkdGg6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgaGVpZ2h0OiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIHNyYzogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICBhbHQ6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgIH07XG4gIH0sXG5cbiAgcGFyc2VIVE1MKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRhZzogJ2RpdltkYXRhLXR5cGU9XCJpbWFnZS11cGxvYWQtbm9kZVwiXScsXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG5cbiAgLy8g4pyFIE5vIGAwYCBoZXJlIVxuICByZW5kZXJIVE1MKHsgSFRNTEF0dHJpYnV0ZXMgfSkge1xuICAgIHJldHVybiBbJ2ltZycsIG1lcmdlQXR0cmlidXRlcyhIVE1MQXR0cmlidXRlcywgeyAnZGF0YS10eXBlJzogJ2ltYWdlLXVwbG9hZC1ub2RlJyB9KV07XG4gIH0sXG5cbiAgYWRkTm9kZVZpZXcoKSB7XG4gICAgcmV0dXJuIFJlYWN0Tm9kZVZpZXdSZW5kZXJlcigocHJvcHMpID0+IDxJbWFnZUNvbXBvbmVudCB7Li4ueyAuLi5wcm9wcywgb3B0aW9uczogdGhpcy5vcHRpb25zIH19IC8+KTtcbiAgfSxcblxuICBhZGRDb21tYW5kcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2V0SW1hZ2VVcGxvYWROb2RlOiAoKSA9PiAoeyBjb21tYW5kcyB9KSA9PiB7XG4gICAgICAgIHJldHVybiBjb21tYW5kcy5pbnNlcnRDb250ZW50KHtcbiAgICAgICAgICB0eXBlOiB0aGlzLm5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/image.js"],"names":["ImageUploadNode","Node","create","name","group","atom","selectable","draggable","addAttributes","loaded","deleteStatus","alignment","percent","width","height","src","alt","parseHTML","tag","renderHTML","HTMLAttributes","addNodeView","props","options","addCommands","setImageUploadNode","commands","insertContent","type"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA;AAEO,IAAMA,eAAe,GAAGC,WAAKC,MAAL,CAAY;AACzCC,EAAAA,IAAI,EAAE,iBADmC;AAGzCC,EAAAA,KAAK,EAAE,OAHkC;AAIzCC,EAAAA,IAAI,EAAE,IAJmC;AAI7B;AACZC,EAAAA,UAAU,EAAE,IAL6B;AAKvB;AAClBC,EAAAA,SAAS,EAAE,IAN8B;AAMxB;AAEjBC,EAAAA,aARyC,2BAQzB;AACd,WAAO;AACLC,MAAAA,MAAM,EAAE;AAAE,mBAAS;AAAX,OADH;AAELC,MAAAA,YAAY,EAAE;AAAE,mBAAS;AAAX,OAFT;AAGLC,MAAAA,SAAS,EAAE;AAAE,mBAAS;AAAX,OAHN;AAILC,MAAAA,OAAO,EAAE;AAAE,mBAAS;AAAX,OAJJ;AAKLC,MAAAA,KAAK,EAAE;AAAE,mBAAS;AAAX,OALF;AAMLC,MAAAA,MAAM,EAAE;AAAE,mBAAS;AAAX,OANH;AAOLC,MAAAA,GAAG,EAAE;AAAE,mBAAS;AAAX,OAPA;AAQLC,MAAAA,GAAG,EAAE;AAAE,mBAAS;AAAX;AARA,KAAP;AAUD,GAnBwC;AAqBzCC,EAAAA,SArByC,uBAqB7B;AACV,WAAO,CACL;AACEC,MAAAA,GAAG,EAAE;AADP,KADK,CAAP;AAKD,GA3BwC;AA6BzC;AACAC,EAAAA,UA9ByC,4BA8BV;AAAA,QAAlBC,cAAkB,QAAlBA,cAAkB;AAC7B,WAAO,CAAC,KAAD,EAAQ,2BAAgBA,cAAhB,EAAgC;AAAE,mBAAa;AAAf,KAAhC,CAAR,CAAP;AACD,GAhCwC;AAkCzCC,EAAAA,WAlCyC,yBAkC3B;AAAA;;AACZ,WAAO,kCAAsB,UAACC,KAAD;AAAA,0BAAW,iCAAC,qBAAD,kCAAyBA,KAAzB;AAAgCC,QAAAA,OAAO,EAAE,KAAI,CAACA;AAA9C,SAAX;AAAA,KAAtB,CAAP;AACD,GApCwC;AAsCzCC,EAAAA,WAtCyC,yBAsC3B;AAAA;;AACZ,WAAO;AACLC,MAAAA,kBAAkB,EAAE;AAAA,eAAM,iBAAkB;AAAA,cAAfC,QAAe,SAAfA,QAAe;AAC1C,iBAAOA,QAAQ,CAACC,aAAT,CAAuB;AAC5BC,YAAAA,IAAI,EAAE,MAAI,CAACzB;AADiB,WAAvB,CAAP;AAGD,SAJmB;AAAA;AADf,KAAP;AAOD;AA9CwC,CAAZ,CAAxB","sourcesContent":["import { Node, mergeAttributes } from '@tiptap/core';\nimport { NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react';\nimport React, { useRef, useState, useCallback } from 'react';\nimport ImageComponent from './component';\n\n// ---- Tiptap Extension ---- //\n\nexport const ImageUploadNode = Node.create({\n name: 'imageUploadNode',\n\n group: 'block',\n atom: true, // ✅ prevents content holes\n selectable: true, // optional\n draggable: true, // optional\n\n addAttributes() {\n return {\n loaded: { default: false },\n deleteStatus: { default: null },\n alignment: { default: null },\n percent: { default: null },\n width: { default: null },\n height: { default: null },\n src: { default: null },\n alt: { default: null },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"image-upload-node\"]',\n },\n ];\n },\n\n // ✅ No `0` here!\n renderHTML({ HTMLAttributes }) {\n return ['img', mergeAttributes(HTMLAttributes, { 'data-type': 'image-upload-node' })];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <ImageComponent {...{ ...props, options: this.options }} />);\n },\n\n addCommands() {\n return {\n setImageUploadNode: () => ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n });\n },\n };\n },\n});\n"],"file":"image.js"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.buildExtensions = exports.DEFAULT_EXTENSIONS = exports.ALL_PLUGINS = void 0;
|
|
9
|
+
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _compact = _interopRequireDefault(require("lodash/compact"));
|
|
15
|
+
|
|
16
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
17
|
+
|
|
18
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
19
|
+
|
|
20
|
+
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins');
|
|
21
|
+
var ALL_PLUGINS = ['bold', // 'code',
|
|
22
|
+
'html', 'extraCSSRules', 'italic', 'underline', 'strikethrough', 'bulleted-list', 'numbered-list', 'image', 'math', 'languageCharacters', 'text-align', 'blockquote', 'h3', 'table', 'video', 'audio', 'responseArea', 'redo', 'undo', 'superscript', 'subscript'];
|
|
23
|
+
exports.ALL_PLUGINS = ALL_PLUGINS;
|
|
24
|
+
var DEFAULT_EXTENSIONS = ALL_PLUGINS.filter(function (plug) {
|
|
25
|
+
return !['responseArea', 'h3', 'blockquote'].includes(plug);
|
|
26
|
+
});
|
|
27
|
+
exports.DEFAULT_EXTENSIONS = DEFAULT_EXTENSIONS;
|
|
28
|
+
|
|
29
|
+
var buildExtensions = function buildExtensions(activeExtensions, customExtensions, opts) {
|
|
30
|
+
log('[buildPlugins] opts: ', opts);
|
|
31
|
+
activeExtensions = activeExtensions || DEFAULT_EXTENSIONS;
|
|
32
|
+
|
|
33
|
+
var addIf = function addIf(key) {
|
|
34
|
+
var shouldAdd = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
35
|
+
return activeExtensions.includes(key) && shouldAdd && key;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var imagePlugin = opts.image && opts.image.onDelete;
|
|
39
|
+
var mathPlugin = opts.math;
|
|
40
|
+
var respAreaPlugin = opts.responseArea && opts.responseArea.type;
|
|
41
|
+
var cssPlugin = !(0, _isEmpty["default"])(opts.extraCSSRules);
|
|
42
|
+
var languageCharactersPlugins = (opts === null || opts === void 0 ? void 0 : opts.languageCharacters) || [];
|
|
43
|
+
return (0, _compact["default"])([addIf('table'), addIf('bold'), // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),
|
|
44
|
+
addIf('italic'), addIf('strikethrough'), addIf('underline'), // icon should be modifies accordingly
|
|
45
|
+
addIf('superscript'), // icon should be modifies accordingly
|
|
46
|
+
addIf('subscript'), addIf('image', imagePlugin), addIf('video'), addIf('audio'), addIf('math', mathPlugin)].concat((0, _toConsumableArray2["default"])(languageCharactersPlugins.map(function (plugin) {
|
|
47
|
+
return addIf('languageCharacters', plugin);
|
|
48
|
+
})), [addIf('text-align'), addIf('blockquote'), addIf('h3'), addIf('bulleted-list'), addIf('numbered-list'), addIf('undo'), addIf('redo'), addIf('responseArea', respAreaPlugin), addIf('css', cssPlugin), addIf('html', !!opts.html)]));
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
exports.buildExtensions = buildExtensions;
|
|
52
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2luZGV4LmpzIl0sIm5hbWVzIjpbImxvZyIsIkFMTF9QTFVHSU5TIiwiREVGQVVMVF9FWFRFTlNJT05TIiwiZmlsdGVyIiwicGx1ZyIsImluY2x1ZGVzIiwiYnVpbGRFeHRlbnNpb25zIiwiYWN0aXZlRXh0ZW5zaW9ucyIsImN1c3RvbUV4dGVuc2lvbnMiLCJvcHRzIiwiYWRkSWYiLCJrZXkiLCJzaG91bGRBZGQiLCJpbWFnZVBsdWdpbiIsImltYWdlIiwib25EZWxldGUiLCJtYXRoUGx1Z2luIiwibWF0aCIsInJlc3BBcmVhUGx1Z2luIiwicmVzcG9uc2VBcmVhIiwidHlwZSIsImNzc1BsdWdpbiIsImV4dHJhQ1NTUnVsZXMiLCJsYW5ndWFnZUNoYXJhY3RlcnNQbHVnaW5zIiwibGFuZ3VhZ2VDaGFyYWN0ZXJzIiwibWFwIiwicGx1Z2luIiwiaHRtbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsdUJBQU0sZ0NBQU4sQ0FBWjtBQUNPLElBQU1DLFdBQVcsR0FBRyxDQUN6QixNQUR5QixFQUV6QjtBQUNBLE1BSHlCLEVBSXpCLGVBSnlCLEVBS3pCLFFBTHlCLEVBTXpCLFdBTnlCLEVBT3pCLGVBUHlCLEVBUXpCLGVBUnlCLEVBU3pCLGVBVHlCLEVBVXpCLE9BVnlCLEVBV3pCLE1BWHlCLEVBWXpCLG9CQVp5QixFQWF6QixZQWJ5QixFQWN6QixZQWR5QixFQWV6QixJQWZ5QixFQWdCekIsT0FoQnlCLEVBaUJ6QixPQWpCeUIsRUFrQnpCLE9BbEJ5QixFQW1CekIsY0FuQnlCLEVBb0J6QixNQXBCeUIsRUFxQnpCLE1BckJ5QixFQXNCekIsYUF0QnlCLEVBdUJ6QixXQXZCeUIsQ0FBcEI7O0FBMEJBLElBQU1DLGtCQUFrQixHQUFHRCxXQUFXLENBQUNFLE1BQVosQ0FBbUIsVUFBQ0MsSUFBRDtBQUFBLFNBQVUsQ0FBQyxDQUFDLGNBQUQsRUFBaUIsSUFBakIsRUFBdUIsWUFBdkIsRUFBcUNDLFFBQXJDLENBQThDRCxJQUE5QyxDQUFYO0FBQUEsQ0FBbkIsQ0FBM0I7OztBQUVBLElBQU1FLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsZ0JBQUQsRUFBbUJDLGdCQUFuQixFQUFxQ0MsSUFBckMsRUFBOEM7QUFDM0VULEVBQUFBLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQlMsSUFBMUIsQ0FBSDtBQUVBRixFQUFBQSxnQkFBZ0IsR0FBR0EsZ0JBQWdCLElBQUlMLGtCQUF2Qzs7QUFFQSxNQUFNUSxLQUFLLEdBQUcsU0FBUkEsS0FBUSxDQUFDQyxHQUFEO0FBQUEsUUFBTUMsU0FBTix1RUFBa0IsSUFBbEI7QUFBQSxXQUEyQkwsZ0JBQWdCLENBQUNGLFFBQWpCLENBQTBCTSxHQUExQixLQUFrQ0MsU0FBbEMsSUFBK0NELEdBQTFFO0FBQUEsR0FBZDs7QUFFQSxNQUFNRSxXQUFXLEdBQUdKLElBQUksQ0FBQ0ssS0FBTCxJQUFjTCxJQUFJLENBQUNLLEtBQUwsQ0FBV0MsUUFBN0M7QUFDQSxNQUFNQyxVQUFVLEdBQUdQLElBQUksQ0FBQ1EsSUFBeEI7QUFDQSxNQUFNQyxjQUFjLEdBQUdULElBQUksQ0FBQ1UsWUFBTCxJQUFxQlYsSUFBSSxDQUFDVSxZQUFMLENBQWtCQyxJQUE5RDtBQUNBLE1BQU1DLFNBQVMsR0FBRyxDQUFDLHlCQUFRWixJQUFJLENBQUNhLGFBQWIsQ0FBbkI7QUFFQSxNQUFNQyx5QkFBeUIsR0FBRyxDQUFBZCxJQUFJLFNBQUosSUFBQUEsSUFBSSxXQUFKLFlBQUFBLElBQUksQ0FBRWUsa0JBQU4sS0FBNEIsRUFBOUQ7QUFFQSxTQUFPLDBCQUNMZCxLQUFLLENBQUMsT0FBRCxDQURBLEVBRUxBLEtBQUssQ0FBQyxNQUFELENBRkEsRUFHTDtBQUNBQSxFQUFBQSxLQUFLLENBQUMsUUFBRCxDQUpBLEVBS0xBLEtBQUssQ0FBQyxlQUFELENBTEEsRUFNTEEsS0FBSyxDQUFDLFdBQUQsQ0FOQSxFQU9MO0FBQ0FBLEVBQUFBLEtBQUssQ0FBQyxhQUFELENBUkEsRUFTTDtBQUNBQSxFQUFBQSxLQUFLLENBQUMsV0FBRCxDQVZBLEVBV0xBLEtBQUssQ0FBQyxPQUFELEVBQVVHLFdBQVYsQ0FYQSxFQVlMSCxLQUFLLENBQUMsT0FBRCxDQVpBLEVBYUxBLEtBQUssQ0FBQyxPQUFELENBYkEsRUFjTEEsS0FBSyxDQUFDLE1BQUQsRUFBU00sVUFBVCxDQWRBLDZDQWVGTyx5QkFBeUIsQ0FBQ0UsR0FBMUIsQ0FBOEIsVUFBQ0MsTUFBRDtBQUFBLFdBQVloQixLQUFLLENBQUMsb0JBQUQsRUFBdUJnQixNQUF2QixDQUFqQjtBQUFBLEdBQTlCLENBZkUsSUFnQkxoQixLQUFLLENBQUMsWUFBRCxDQWhCQSxFQWlCTEEsS0FBSyxDQUFDLFlBQUQsQ0FqQkEsRUFrQkxBLEtBQUssQ0FBQyxJQUFELENBbEJBLEVBbUJMQSxLQUFLLENBQUMsZUFBRCxDQW5CQSxFQW9CTEEsS0FBSyxDQUFDLGVBQUQsQ0FwQkEsRUFxQkxBLEtBQUssQ0FBQyxNQUFELENBckJBLEVBc0JMQSxLQUFLLENBQUMsTUFBRCxDQXRCQSxFQXVCTEEsS0FBSyxDQUFDLGNBQUQsRUFBaUJRLGNBQWpCLENBdkJBLEVBd0JMUixLQUFLLENBQUMsS0FBRCxFQUFRVyxTQUFSLENBeEJBLEVBeUJMWCxLQUFLLENBQUMsTUFBRCxFQUFTLENBQUMsQ0FBQ0QsSUFBSSxDQUFDa0IsSUFBaEIsQ0F6QkEsR0FBUDtBQTJCRCxDQXpDTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY29tcGFjdCBmcm9tICdsb2Rhc2gvY29tcGFjdCc7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1saWI6ZWRpdGFibGUtaHRtbDpwbHVnaW5zJyk7XG5leHBvcnQgY29uc3QgQUxMX1BMVUdJTlMgPSBbXG4gICdib2xkJyxcbiAgLy8gJ2NvZGUnLFxuICAnaHRtbCcsXG4gICdleHRyYUNTU1J1bGVzJyxcbiAgJ2l0YWxpYycsXG4gICd1bmRlcmxpbmUnLFxuICAnc3RyaWtldGhyb3VnaCcsXG4gICdidWxsZXRlZC1saXN0JyxcbiAgJ251bWJlcmVkLWxpc3QnLFxuICAnaW1hZ2UnLFxuICAnbWF0aCcsXG4gICdsYW5ndWFnZUNoYXJhY3RlcnMnLFxuICAndGV4dC1hbGlnbicsXG4gICdibG9ja3F1b3RlJyxcbiAgJ2gzJyxcbiAgJ3RhYmxlJyxcbiAgJ3ZpZGVvJyxcbiAgJ2F1ZGlvJyxcbiAgJ3Jlc3BvbnNlQXJlYScsXG4gICdyZWRvJyxcbiAgJ3VuZG8nLFxuICAnc3VwZXJzY3JpcHQnLFxuICAnc3Vic2NyaXB0Jyxcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYVEVOU0lPTlMgPSBBTExfUExVR0lOUy5maWx0ZXIoKHBsdWcpID0+ICFbJ3Jlc3BvbnNlQXJlYScsICdoMycsICdibG9ja3F1b3RlJ10uaW5jbHVkZXMocGx1ZykpO1xuXG5leHBvcnQgY29uc3QgYnVpbGRFeHRlbnNpb25zID0gKGFjdGl2ZUV4dGVuc2lvbnMsIGN1c3RvbUV4dGVuc2lvbnMsIG9wdHMpID0+IHtcbiAgbG9nKCdbYnVpbGRQbHVnaW5zXSBvcHRzOiAnLCBvcHRzKTtcblxuICBhY3RpdmVFeHRlbnNpb25zID0gYWN0aXZlRXh0ZW5zaW9ucyB8fCBERUZBVUxUX0VYVEVOU0lPTlM7XG5cbiAgY29uc3QgYWRkSWYgPSAoa2V5LCBzaG91bGRBZGQgPSB0cnVlKSA9PiBhY3RpdmVFeHRlbnNpb25zLmluY2x1ZGVzKGtleSkgJiYgc2hvdWxkQWRkICYmIGtleTtcblxuICBjb25zdCBpbWFnZVBsdWdpbiA9IG9wdHMuaW1hZ2UgJiYgb3B0cy5pbWFnZS5vbkRlbGV0ZTtcbiAgY29uc3QgbWF0aFBsdWdpbiA9IG9wdHMubWF0aDtcbiAgY29uc3QgcmVzcEFyZWFQbHVnaW4gPSBvcHRzLnJlc3BvbnNlQXJlYSAmJiBvcHRzLnJlc3BvbnNlQXJlYS50eXBlO1xuICBjb25zdCBjc3NQbHVnaW4gPSAhaXNFbXB0eShvcHRzLmV4dHJhQ1NTUnVsZXMpO1xuXG4gIGNvbnN0IGxhbmd1YWdlQ2hhcmFjdGVyc1BsdWdpbnMgPSBvcHRzPy5sYW5ndWFnZUNoYXJhY3RlcnMgfHwgW107XG5cbiAgcmV0dXJuIGNvbXBhY3QoW1xuICAgIGFkZElmKCd0YWJsZScpLFxuICAgIGFkZElmKCdib2xkJyksXG4gICAgLy8gYWRkSWYoJ2NvZGUnLCBNYXJrSG90a2V5KHsga2V5OiAnYCcsIHR5cGU6ICdjb2RlJywgaWNvbjogPENvZGUgLz4gfSkpLFxuICAgIGFkZElmKCdpdGFsaWMnKSxcbiAgICBhZGRJZignc3RyaWtldGhyb3VnaCcpLFxuICAgIGFkZElmKCd1bmRlcmxpbmUnKSxcbiAgICAvLyBpY29uIHNob3VsZCBiZSBtb2RpZmllcyBhY2NvcmRpbmdseVxuICAgIGFkZElmKCdzdXBlcnNjcmlwdCcpLFxuICAgIC8vIGljb24gc2hvdWxkIGJlIG1vZGlmaWVzIGFjY29yZGluZ2x5XG4gICAgYWRkSWYoJ3N1YnNjcmlwdCcpLFxuICAgIGFkZElmKCdpbWFnZScsIGltYWdlUGx1Z2luKSxcbiAgICBhZGRJZigndmlkZW8nKSxcbiAgICBhZGRJZignYXVkaW8nKSxcbiAgICBhZGRJZignbWF0aCcsIG1hdGhQbHVnaW4pLFxuICAgIC4uLmxhbmd1YWdlQ2hhcmFjdGVyc1BsdWdpbnMubWFwKChwbHVnaW4pID0+IGFkZElmKCdsYW5ndWFnZUNoYXJhY3RlcnMnLCBwbHVnaW4pKSxcbiAgICBhZGRJZigndGV4dC1hbGlnbicpLFxuICAgIGFkZElmKCdibG9ja3F1b3RlJyksXG4gICAgYWRkSWYoJ2gzJyksXG4gICAgYWRkSWYoJ2J1bGxldGVkLWxpc3QnKSxcbiAgICBhZGRJZignbnVtYmVyZWQtbGlzdCcpLFxuICAgIGFkZElmKCd1bmRvJyksXG4gICAgYWRkSWYoJ3JlZG8nKSxcbiAgICBhZGRJZigncmVzcG9uc2VBcmVhJywgcmVzcEFyZWFQbHVnaW4pLFxuICAgIGFkZElmKCdjc3MnLCBjc3NQbHVnaW4pLFxuICAgIGFkZElmKCdodG1sJywgISFvcHRzLmh0bWwpLFxuICBdKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/index.js"],"names":["log","ALL_PLUGINS","DEFAULT_EXTENSIONS","filter","plug","includes","buildExtensions","activeExtensions","customExtensions","opts","addIf","key","shouldAdd","imagePlugin","image","onDelete","mathPlugin","math","respAreaPlugin","responseArea","type","cssPlugin","extraCSSRules","languageCharactersPlugins","languageCharacters","map","plugin","html"],"mappings":"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","sourcesContent":["import React from 'react';\nimport compact from 'lodash/compact';\nimport isEmpty from 'lodash/isEmpty';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins');\nexport const ALL_PLUGINS = [\n 'bold',\n // 'code',\n 'html',\n 'extraCSSRules',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'text-align',\n 'blockquote',\n 'h3',\n 'table',\n 'video',\n 'audio',\n 'responseArea',\n 'redo',\n 'undo',\n 'superscript',\n 'subscript',\n];\n\nexport const DEFAULT_EXTENSIONS = ALL_PLUGINS.filter((plug) => !['responseArea', 'h3', 'blockquote'].includes(plug));\n\nexport const buildExtensions = (activeExtensions, customExtensions, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activeExtensions = activeExtensions || DEFAULT_EXTENSIONS;\n\n const addIf = (key, shouldAdd = true) => activeExtensions.includes(key) && shouldAdd && key;\n\n const imagePlugin = opts.image && opts.image.onDelete;\n const mathPlugin = opts.math;\n const respAreaPlugin = opts.responseArea && opts.responseArea.type;\n const cssPlugin = !isEmpty(opts.extraCSSRules);\n\n const languageCharactersPlugins = opts?.languageCharacters || [];\n\n return compact([\n addIf('table'),\n addIf('bold'),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic'),\n addIf('strikethrough'),\n addIf('underline'),\n // icon should be modifies accordingly\n addIf('superscript'),\n // icon should be modifies accordingly\n addIf('subscript'),\n addIf('image', imagePlugin),\n addIf('video'),\n addIf('audio'),\n addIf('math', mathPlugin),\n ...languageCharactersPlugins.map((plugin) => addIf('languageCharacters', plugin)),\n addIf('text-align'),\n addIf('blockquote'),\n addIf('h3'),\n addIf('bulleted-list'),\n addIf('numbered-list'),\n addIf('undo'),\n addIf('redo'),\n addIf('responseArea', respAreaPlugin),\n addIf('css', cssPlugin),\n addIf('html', !!opts.html),\n ]);\n};\n"],"file":"index.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/math.js"],"names":["ensureTextAfterMathPluginKey","PluginKey","EnsureTextAfterMathPlugin","mathNodeName","Plugin","key","appendTransaction","transactions","oldState","newState","some","tr","docChanged","changed","doc","descendants","node","pos","type","name","nextPos","nodeSize","nextNode","nodeAt","insert","schema","text","ZeroWidthSpaceHandlingPlugin","props","handleKeyDown","view","event","state","dispatch","selection","from","empty","prevChar","textBetween","posBefore","resolved","resolve","maybeNode","nodeAfter","nodeBefore","nodePos","nodeResolved","setSelection","NodeSelection","create","TextSelection","MathNode","Node","group","inline","atom","addAttributes","latex","wrapper","html","addProseMirrorPlugins","parseHTML","tag","getAttrs","el","getAttribute","textContent","innerHTML","addCommands","insertMath","editor","nodes","math","$from","sel","renderHTML","HTMLAttributes","dangerouslySetInnerHTML","__html","addNodeView","options","MathNodeView","updateAttributes","selected","showToolbar","setShowToolbar","toolbarRef","attrs","_toolbarOpened","handleClickOutside","current","contains","target","closest","document","addEventListener","removeEventListener","handleChange","newLatex","handleDone","commands","focus","display","cursor","margin","position","top","left","zIndex","background","boxShadow"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Extension, Node, mergeAttributes } from '@tiptap/core';\nimport { NodeViewWrapper, ReactRenderer, ReactNodeViewRenderer } from '@tiptap/react';\nimport { Plugin, PluginKey, NodeSelection, TextSelection } from 'prosemirror-state';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath, mmlToLatex, renderMath } from '@pie-lib/math-rendering';\n\nconst ensureTextAfterMathPluginKey = new PluginKey('ensureTextAfterMath');\n\nexport const EnsureTextAfterMathPlugin = (mathNodeName) =>\n new Plugin({\n key: ensureTextAfterMathPluginKey,\n appendTransaction: (transactions, oldState, newState) => {\n // Only act when the doc actually changed\n if (!transactions.some((tr) => tr.docChanged)) return null;\n\n const tr = newState.tr;\n let changed = false;\n\n newState.doc.descendants((node, pos) => {\n if (node.type.name === mathNodeName) {\n const nextPos = pos + node.nodeSize;\n const nextNode = newState.doc.nodeAt(nextPos);\n\n // If there's no node after, or the next node isn't text, insert a space\n if (!nextNode || nextNode.type.name !== 'text') {\n tr.insert(nextPos, newState.schema.text('\\u200b'));\n changed = true;\n }\n }\n });\n\n return changed ? tr : null;\n },\n });\n\nexport const ZeroWidthSpaceHandlingPlugin = new Plugin({\n key: new PluginKey('zeroWidthSpaceHandling'),\n props: {\n handleKeyDown(view, event) {\n const { state, dispatch } = view;\n const { selection, doc } = state;\n const { from, empty } = selection;\n\n if (empty && event.key === 'Backspace' && from > 0) {\n const prevChar = doc.textBetween(from - 1, from, '\\uFFFC', '\\uFFFC');\n if (prevChar === '\\u200b') {\n const tr = state.tr.delete(from - 2, from);\n dispatch(tr);\n return true; // handled\n }\n }\n\n if (empty && event.key === 'ArrowLeft' && from > 0) {\n const prevChar = doc.textBetween(from - 1, from, '\\uFFFC', '\\uFFFC');\n // If the previous character is the zero-width space...\n if (prevChar === '\\u200b') {\n const posBefore = from - 1;\n const resolved = state.doc.resolve(posBefore - 1); // look just before the zwsp\n const maybeNode = resolved.nodeAfter || resolved.nodeBefore;\n\n // Check if there's an inline selectable node (e.g., your math node)\n if (maybeNode) {\n const nodePos = posBefore - maybeNode.nodeSize;\n const nodeResolved = state.doc.resolve(nodePos);\n const tr = state.tr.setSelection(NodeSelection.create(state.doc, nodeResolved.pos));\n dispatch(tr);\n return true;\n } else {\n // Just move the text cursor before the zwsp\n const tr = state.tr.setSelection(TextSelection.create(state.doc, from - 2));\n dispatch(tr);\n return true;\n }\n }\n }\n\n return false;\n },\n },\n});\n\nexport const MathNode = Node.create({\n name: 'math',\n group: 'inline',\n inline: true,\n atom: true,\n\n addAttributes() {\n return {\n latex: { default: '' },\n wrapper: { default: null },\n html: { default: null },\n };\n },\n\n addProseMirrorPlugins() {\n return [EnsureTextAfterMathPlugin(this.name), ZeroWidthSpaceHandlingPlugin];\n },\n\n parseHTML() {\n return [\n {\n tag: 'span[data-latex]',\n getAttrs: (el) => ({\n latex: el.getAttribute('data-raw') || el.textContent,\n }),\n },\n {\n tag: 'span[data-type=\"mathml\"]',\n getAttrs: (el) => ({\n html: el.innerHTML,\n }),\n },\n ];\n },\n\n addCommands() {\n return {\n insertMath: (latex = '') => ({ tr, editor, dispatch }) => {\n // 2) Now the editor.view.state reflects the insertion\n const { state } = editor.view;\n const node = state.schema.nodes.math.create({\n latex,\n });\n const { selection } = state;\n\n // The inserted node is typically just before the cursor\n const pos = selection.$from.pos;\n\n tr.insert(pos, node);\n\n if (node?.type?.name === this.name) {\n // Create a NodeSelection from the current doc\n const sel = NodeSelection.create(tr.doc, selection.$from.pos);\n\n // Build a fresh transaction from the current state and set the selection\n tr.setSelection(sel);\n }\n\n dispatch(tr);\n\n return true;\n },\n // insertMath: (latex = '') => ({ commands }) => {\n // return commands.insertContent({\n // type: this.name,\n // attrs: { latex },\n // });\n // },\n };\n },\n\n renderHTML({ HTMLAttributes }) {\n if (HTMLAttributes.html) {\n return ['span', { 'data-type': 'mathml', dangerouslySetInnerHTML: { __html: HTMLAttributes.html } }];\n }\n\n return [\n 'span',\n { 'data-latex': '', 'data-raw': HTMLAttributes.latex },\n wrapMath(HTMLAttributes.latex, HTMLAttributes.wrapper),\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MathNodeView {...{ ...props, options: this.options }} />);\n },\n});\n\nexport const MathNodeView = (props) => {\n const { node, updateAttributes, editor, selected, options } = props;\n const [showToolbar, setShowToolbar] = useState(selected);\n const toolbarRef = useRef(null);\n\n const latex = node.attrs.latex || '';\n\n useEffect(() => {\n if (selected) {\n setShowToolbar(true);\n }\n }, [selected]);\n\n useEffect(() => {\n editor._toolbarOpened = !!showToolbar;\n }, [showToolbar]);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (\n toolbarRef.current &&\n !toolbarRef.current.contains(event.target) &&\n !event.target.closest('[data-inline-node]')\n ) {\n setShowToolbar(false);\n }\n };\n\n if (showToolbar) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [showToolbar]);\n\n const handleChange = (newLatex) => {\n updateAttributes({ latex: newLatex });\n };\n\n const handleDone = (newLatex) => {\n updateAttributes({ latex: newLatex });\n setShowToolbar(false);\n\n editor._toolbarOpened = false;\n\n const { selection, tr, doc } = editor.state;\n const sel = TextSelection.create(doc, selection.from + 1);\n\n // Build a fresh transaction from the current state and set the selection\n tr.setSelection(sel);\n editor.view.dispatch(tr);\n editor.commands.focus();\n };\n\n return (\n <NodeViewWrapper\n className=\"math-node\"\n style={{\n display: 'inline-flex',\n cursor: 'pointer',\n margin: '0 4px',\n }}\n data-selected={selected}\n >\n <div onClick={() => setShowToolbar(true)} contentEditable={false}>\n <MathPreview latex={latex} />\n </div>\n\n {showToolbar && (\n <div\n ref={toolbarRef}\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n zIndex: 20,\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n }}\n >\n <MathToolbar latex={latex} autoFocus onChange={handleChange} onDone={handleDone} keypadMode=\"basic\" />\n </div>\n )}\n </NodeViewWrapper>\n );\n};\n"],"file":"math.js"}
|