@pie-lib/editable-html 12.1.0-next.0 → 12.1.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/package.json +7 -7
  3. package/lib/__tests__/editor-utils.test.js +0 -164
  4. package/lib/__tests__/serialization.test.js +0 -242
  5. package/lib/__tests__/utils.js +0 -79
  6. package/lib/block-tags.js +0 -24
  7. package/lib/block-tags.js.map +0 -1
  8. package/lib/constants.js +0 -11
  9. package/lib/constants.js.map +0 -1
  10. package/lib/editor.js +0 -1224
  11. package/lib/editor.js.map +0 -1
  12. package/lib/index.js +0 -208
  13. package/lib/index.js.map +0 -1
  14. package/lib/parse-html.js +0 -16
  15. package/lib/parse-html.js.map +0 -1
  16. package/lib/plugins/characters/custom-popper.js +0 -57
  17. package/lib/plugins/characters/custom-popper.js.map +0 -1
  18. package/lib/plugins/characters/index.js +0 -265
  19. package/lib/plugins/characters/index.js.map +0 -1
  20. package/lib/plugins/characters/utils.js +0 -378
  21. package/lib/plugins/characters/utils.js.map +0 -1
  22. package/lib/plugins/css/icons/index.js +0 -25
  23. package/lib/plugins/css/icons/index.js.map +0 -1
  24. package/lib/plugins/css/index.js +0 -338
  25. package/lib/plugins/css/index.js.map +0 -1
  26. package/lib/plugins/customPlugin/index.js +0 -98
  27. package/lib/plugins/customPlugin/index.js.map +0 -1
  28. package/lib/plugins/html/icons/index.js +0 -30
  29. package/lib/plugins/html/icons/index.js.map +0 -1
  30. package/lib/plugins/html/index.js +0 -71
  31. package/lib/plugins/html/index.js.map +0 -1
  32. package/lib/plugins/image/__tests__/component.test.js +0 -96
  33. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +0 -131
  34. package/lib/plugins/image/__tests__/image-toolbar.test.js +0 -22
  35. package/lib/plugins/image/__tests__/index.test.js +0 -90
  36. package/lib/plugins/image/__tests__/insert-image-handler.test.js +0 -112
  37. package/lib/plugins/image/__tests__/mock-change.js +0 -22
  38. package/lib/plugins/image/alt-dialog.js +0 -100
  39. package/lib/plugins/image/alt-dialog.js.map +0 -1
  40. package/lib/plugins/image/component.js +0 -343
  41. package/lib/plugins/image/component.js.map +0 -1
  42. package/lib/plugins/image/image-toolbar.js +0 -137
  43. package/lib/plugins/image/image-toolbar.js.map +0 -1
  44. package/lib/plugins/image/index.js +0 -223
  45. package/lib/plugins/image/index.js.map +0 -1
  46. package/lib/plugins/image/insert-image-handler.js +0 -140
  47. package/lib/plugins/image/insert-image-handler.js.map +0 -1
  48. package/lib/plugins/index.js +0 -342
  49. package/lib/plugins/index.js.map +0 -1
  50. package/lib/plugins/list/__tests__/index.test.js +0 -64
  51. package/lib/plugins/list/index.js +0 -288
  52. package/lib/plugins/list/index.js.map +0 -1
  53. package/lib/plugins/math/__tests__/index.test.js +0 -284
  54. package/lib/plugins/math/index.js +0 -402
  55. package/lib/plugins/math/index.js.map +0 -1
  56. package/lib/plugins/media/__tests__/index.test.js +0 -69
  57. package/lib/plugins/media/index.js +0 -330
  58. package/lib/plugins/media/index.js.map +0 -1
  59. package/lib/plugins/media/media-dialog.js +0 -594
  60. package/lib/plugins/media/media-dialog.js.map +0 -1
  61. package/lib/plugins/media/media-toolbar.js +0 -76
  62. package/lib/plugins/media/media-toolbar.js.map +0 -1
  63. package/lib/plugins/media/media-wrapper.js +0 -64
  64. package/lib/plugins/media/media-wrapper.js.map +0 -1
  65. package/lib/plugins/rendering/index.js +0 -36
  66. package/lib/plugins/rendering/index.js.map +0 -1
  67. package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -271
  68. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +0 -1
  69. package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -55
  70. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +0 -1
  71. package/lib/plugins/respArea/drag-in-the-blank/utils.js +0 -38
  72. package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +0 -1
  73. package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -50
  74. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +0 -1
  75. package/lib/plugins/respArea/icons/index.js +0 -72
  76. package/lib/plugins/respArea/icons/index.js.map +0 -1
  77. package/lib/plugins/respArea/index.js +0 -287
  78. package/lib/plugins/respArea/index.js.map +0 -1
  79. package/lib/plugins/respArea/inline-dropdown/index.js +0 -67
  80. package/lib/plugins/respArea/inline-dropdown/index.js.map +0 -1
  81. package/lib/plugins/respArea/math-templated/index.js +0 -112
  82. package/lib/plugins/respArea/math-templated/index.js.map +0 -1
  83. package/lib/plugins/respArea/utils.js +0 -95
  84. package/lib/plugins/respArea/utils.js.map +0 -1
  85. package/lib/plugins/table/CustomTablePlugin.js +0 -116
  86. package/lib/plugins/table/CustomTablePlugin.js.map +0 -1
  87. package/lib/plugins/table/__tests__/index.test.js +0 -416
  88. package/lib/plugins/table/__tests__/table-toolbar.test.js +0 -81
  89. package/lib/plugins/table/icons/index.js +0 -55
  90. package/lib/plugins/table/icons/index.js.map +0 -1
  91. package/lib/plugins/table/index.js +0 -413
  92. package/lib/plugins/table/index.js.map +0 -1
  93. package/lib/plugins/table/table-toolbar.js +0 -138
  94. package/lib/plugins/table/table-toolbar.js.map +0 -1
  95. package/lib/plugins/textAlign/icons/index.js +0 -187
  96. package/lib/plugins/textAlign/icons/index.js.map +0 -1
  97. package/lib/plugins/textAlign/index.js +0 -26
  98. package/lib/plugins/textAlign/index.js.map +0 -1
  99. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +0 -154
  100. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +0 -47
  101. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +0 -112
  102. package/lib/plugins/toolbar/__tests__/toolbar.test.js +0 -118
  103. package/lib/plugins/toolbar/default-toolbar.js +0 -180
  104. package/lib/plugins/toolbar/default-toolbar.js.map +0 -1
  105. package/lib/plugins/toolbar/done-button.js +0 -35
  106. package/lib/plugins/toolbar/done-button.js.map +0 -1
  107. package/lib/plugins/toolbar/editor-and-toolbar.js +0 -258
  108. package/lib/plugins/toolbar/editor-and-toolbar.js.map +0 -1
  109. package/lib/plugins/toolbar/index.js +0 -29
  110. package/lib/plugins/toolbar/index.js.map +0 -1
  111. package/lib/plugins/toolbar/toolbar-buttons.js +0 -145
  112. package/lib/plugins/toolbar/toolbar-buttons.js.map +0 -1
  113. package/lib/plugins/toolbar/toolbar.js +0 -307
  114. package/lib/plugins/toolbar/toolbar.js.map +0 -1
  115. package/lib/plugins/utils.js +0 -42
  116. package/lib/plugins/utils.js.map +0 -1
  117. package/lib/serialization.js +0 -571
  118. package/lib/serialization.js.map +0 -1
  119. package/lib/shared/alert-dialog.js +0 -68
  120. package/lib/theme.js +0 -8
  121. package/lib/theme.js.map +0 -1
@@ -1,137 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = exports.ImageToolbar = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _propTypes = _interopRequireDefault(require("prop-types"));
15
- var _react = _interopRequireDefault(require("react"));
16
- var _debug = _interopRequireDefault(require("debug"));
17
- var _client = require("react-dom/client");
18
- var _styles = require("@mui/material/styles");
19
- var _classnames = _interopRequireDefault(require("classnames"));
20
- var _toolbarButtons = require("../toolbar/toolbar-buttons");
21
- var _altDialog = _interopRequireDefault(require("./alt-dialog"));
22
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
23
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
24
- var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image:image-toolbar');
25
- var AlignmentButton = function AlignmentButton(_ref) {
26
- var alignment = _ref.alignment,
27
- active = _ref.active,
28
- onClick = _ref.onClick;
29
- return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.MarkButton, {
30
- active: active,
31
- onToggle: function onToggle() {
32
- return onClick(alignment);
33
- },
34
- label: alignment
35
- }, alignment);
36
- };
37
- AlignmentButton.propTypes = {
38
- alignment: _propTypes["default"].string.isRequired,
39
- active: _propTypes["default"].bool.isRequired,
40
- onClick: _propTypes["default"].func.isRequired
41
- };
42
- var StyledHolder = (0, _styles.styled)('div')(function (_ref2) {
43
- var theme = _ref2.theme;
44
- return {
45
- paddingLeft: theme.spacing(1),
46
- display: 'flex',
47
- alignItems: 'center'
48
- };
49
- });
50
- var StyledAltText = (0, _styles.styled)('span')(function () {
51
- return {
52
- '&.disabled': {
53
- opacity: 0.5
54
- },
55
- '&.altButton': {
56
- borderLeft: '1px solid grey',
57
- paddingLeft: 8,
58
- marginLeft: 4
59
- }
60
- };
61
- });
62
- var ImageToolbar = exports.ImageToolbar = /*#__PURE__*/function (_React$Component) {
63
- function ImageToolbar() {
64
- var _this;
65
- (0, _classCallCheck2["default"])(this, ImageToolbar);
66
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
67
- args[_key] = arguments[_key];
68
- }
69
- _this = _callSuper(this, ImageToolbar, [].concat(args));
70
- (0, _defineProperty2["default"])(_this, "dialogRoot", null);
71
- (0, _defineProperty2["default"])(_this, "onAltTextDone", function (newAlt) {
72
- log('[onAltTextDone]: alt:', newAlt);
73
- _this.props.onChange({
74
- alt: newAlt
75
- }, true);
76
- });
77
- (0, _defineProperty2["default"])(_this, "onAlignmentClick", function (alignment) {
78
- log('[onAlignmentClick]: alignment:', alignment);
79
- _this.props.onChange({
80
- alignment: alignment
81
- });
82
- });
83
- (0, _defineProperty2["default"])(_this, "renderDialog", function () {
84
- var alt = _this.props.alt;
85
- var popoverEl = document.createElement('div');
86
- var el = /*#__PURE__*/_react["default"].createElement(_altDialog["default"], {
87
- alt: alt,
88
- onDone: _this.onAltTextDone
89
- });
90
- _this.dialogRoot = (0, _client.createRoot)(popoverEl);
91
- _this.dialogRoot.render(el);
92
- document.body.appendChild(popoverEl);
93
- });
94
- return _this;
95
- }
96
- (0, _inherits2["default"])(ImageToolbar, _React$Component);
97
- return (0, _createClass2["default"])(ImageToolbar, [{
98
- key: "render",
99
- value: function render() {
100
- var _this2 = this;
101
- var _this$props = this.props,
102
- alignment = _this$props.alignment,
103
- imageLoaded = _this$props.imageLoaded,
104
- disableImageAlignmentButtons = _this$props.disableImageAlignmentButtons;
105
- return /*#__PURE__*/_react["default"].createElement(StyledHolder, null, !disableImageAlignmentButtons && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
106
- alignment: 'left',
107
- active: alignment === 'left',
108
- onClick: this.onAlignmentClick
109
- }), /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
110
- alignment: 'center',
111
- active: alignment === 'center',
112
- onClick: this.onAlignmentClick
113
- }), /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
114
- alignment: 'right',
115
- active: alignment === 'right',
116
- onClick: this.onAlignmentClick
117
- })), /*#__PURE__*/_react["default"].createElement(StyledAltText, {
118
- className: (0, _classnames["default"])({
119
- disabled: !imageLoaded,
120
- altButton: !disableImageAlignmentButtons
121
- }),
122
- onMouseDown: function onMouseDown(event) {
123
- return imageLoaded && _this2.renderDialog(event);
124
- }
125
- }, "Alt text"));
126
- }
127
- }]);
128
- }(_react["default"].Component);
129
- (0, _defineProperty2["default"])(ImageToolbar, "propTypes", {
130
- onChange: _propTypes["default"].func.isRequired,
131
- alignment: _propTypes["default"].string,
132
- alt: _propTypes["default"].string,
133
- imageLoaded: _propTypes["default"].bool,
134
- disableImageAlignmentButtons: _propTypes["default"].bool
135
- });
136
- var _default = exports["default"] = ImageToolbar;
137
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfZGVidWciLCJfY2xpZW50IiwiX3N0eWxlcyIsIl9jbGFzc25hbWVzIiwiX3Rvb2xiYXJCdXR0b25zIiwiX2FsdERpYWxvZyIsIl9jYWxsU3VwZXIiLCJ0IiwibyIsImUiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwibG9nIiwiZGVidWciLCJBbGlnbm1lbnRCdXR0b24iLCJfcmVmIiwiYWxpZ25tZW50IiwiYWN0aXZlIiwib25DbGljayIsImNyZWF0ZUVsZW1lbnQiLCJNYXJrQnV0dG9uIiwib25Ub2dnbGUiLCJsYWJlbCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJib29sIiwiZnVuYyIsIlN0eWxlZEhvbGRlciIsInN0eWxlZCIsIl9yZWYyIiwidGhlbWUiLCJwYWRkaW5nTGVmdCIsInNwYWNpbmciLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsIlN0eWxlZEFsdFRleHQiLCJvcGFjaXR5IiwiYm9yZGVyTGVmdCIsIm1hcmdpbkxlZnQiLCJJbWFnZVRvb2xiYXIiLCJleHBvcnRzIiwiX1JlYWN0JENvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0IiwiX2RlZmluZVByb3BlcnR5MiIsIm5ld0FsdCIsInByb3BzIiwib25DaGFuZ2UiLCJhbHQiLCJwb3BvdmVyRWwiLCJkb2N1bWVudCIsImVsIiwib25Eb25lIiwib25BbHRUZXh0RG9uZSIsImRpYWxvZ1Jvb3QiLCJjcmVhdGVSb290IiwicmVuZGVyIiwiYm9keSIsImFwcGVuZENoaWxkIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsIl90aGlzMiIsIl90aGlzJHByb3BzIiwiaW1hZ2VMb2FkZWQiLCJkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zIiwiRnJhZ21lbnQiLCJvbkFsaWdubWVudENsaWNrIiwiY2xhc3NOYW1lIiwiY2xhc3NOYW1lcyIsImRpc2FibGVkIiwiYWx0QnV0dG9uIiwib25Nb3VzZURvd24iLCJldmVudCIsInJlbmRlckRpYWxvZyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGx1Z2lucy9pbWFnZS9pbWFnZS10b29sYmFyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBjcmVhdGVSb290IH0gZnJvbSAncmVhY3QtZG9tL2NsaWVudCc7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHsgTWFya0J1dHRvbiB9IGZyb20gJy4uL3Rvb2xiYXIvdG9vbGJhci1idXR0b25zJztcbmltcG9ydCBBbHREaWFsb2cgZnJvbSAnLi9hbHQtZGlhbG9nJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2luczppbWFnZTppbWFnZS10b29sYmFyJyk7XG5cbmNvbnN0IEFsaWdubWVudEJ1dHRvbiA9ICh7IGFsaWdubWVudCwgYWN0aXZlLCBvbkNsaWNrIH0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8TWFya0J1dHRvbiBhY3RpdmU9e2FjdGl2ZX0gb25Ub2dnbGU9eygpID0+IG9uQ2xpY2soYWxpZ25tZW50KX0gbGFiZWw9e2FsaWdubWVudH0+XG4gICAgICB7YWxpZ25tZW50fVxuICAgIDwvTWFya0J1dHRvbj5cbiAgKTtcbn07XG5cbkFsaWdubWVudEJ1dHRvbi5wcm9wVHlwZXMgPSB7XG4gIGFsaWdubWVudDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBhY3RpdmU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5jb25zdCBTdHlsZWRIb2xkZXIgPSBzdHlsZWQoJ2RpdicpKCh7IHRoZW1lIH0pID0+ICh7XG4gIHBhZGRpbmdMZWZ0OiB0aGVtZS5zcGFjaW5nKDEpLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxufSkpO1xuXG5jb25zdCBTdHlsZWRBbHRUZXh0ID0gc3R5bGVkKCdzcGFuJykoKCkgPT4gKHtcbiAgJyYuZGlzYWJsZWQnOiB7XG4gICAgb3BhY2l0eTogMC41LFxuICB9LFxuICAnJi5hbHRCdXR0b24nOiB7XG4gICAgYm9yZGVyTGVmdDogJzFweCBzb2xpZCBncmV5JyxcbiAgICBwYWRkaW5nTGVmdDogOCxcbiAgICBtYXJnaW5MZWZ0OiA0LFxuICB9LFxufSkpO1xuXG5leHBvcnQgY2xhc3MgSW1hZ2VUb29sYmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBhbGlnbm1lbnQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGltYWdlTG9hZGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zOiBQcm9wVHlwZXMuYm9vbCxcbiAgfTtcblxuICBkaWFsb2dSb290ID0gbnVsbDtcblxuICBvbkFsdFRleHREb25lID0gKG5ld0FsdCkgPT4ge1xuICAgIGxvZygnW29uQWx0VGV4dERvbmVdOiBhbHQ6JywgbmV3QWx0KTtcblxuICAgIHRoaXMucHJvcHMub25DaGFuZ2UoeyBhbHQ6IG5ld0FsdCB9LCB0cnVlKTtcbiAgfTtcblxuICBvbkFsaWdubWVudENsaWNrID0gKGFsaWdubWVudCkgPT4ge1xuICAgIGxvZygnW29uQWxpZ25tZW50Q2xpY2tdOiBhbGlnbm1lbnQ6JywgYWxpZ25tZW50KTtcbiAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKHsgYWxpZ25tZW50IH0pO1xuICB9O1xuXG4gIHJlbmRlckRpYWxvZyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGFsdCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBwb3BvdmVyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgIGNvbnN0IGVsID0gPEFsdERpYWxvZyBhbHQ9e2FsdH0gb25Eb25lPXt0aGlzLm9uQWx0VGV4dERvbmV9IC8+O1xuXG4gICAgdGhpcy5kaWFsb2dSb290ID0gY3JlYXRlUm9vdChwb3BvdmVyRWwpO1xuICAgIHRoaXMuZGlhbG9nUm9vdC5yZW5kZXIoZWwpO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwb3BvdmVyRWwpO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGFsaWdubWVudCwgaW1hZ2VMb2FkZWQsIGRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnMgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRIb2xkZXI+XG4gICAgICAgIHshZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucyAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxBbGlnbm1lbnRCdXR0b24gYWxpZ25tZW50PXsnbGVmdCd9IGFjdGl2ZT17YWxpZ25tZW50ID09PSAnbGVmdCd9IG9uQ2xpY2s9e3RoaXMub25BbGlnbm1lbnRDbGlja30gLz5cbiAgICAgICAgICAgIDxBbGlnbm1lbnRCdXR0b24gYWxpZ25tZW50PXsnY2VudGVyJ30gYWN0aXZlPXthbGlnbm1lbnQgPT09ICdjZW50ZXInfSBvbkNsaWNrPXt0aGlzLm9uQWxpZ25tZW50Q2xpY2t9IC8+XG4gICAgICAgICAgICA8QWxpZ25tZW50QnV0dG9uIGFsaWdubWVudD17J3JpZ2h0J30gYWN0aXZlPXthbGlnbm1lbnQgPT09ICdyaWdodCd9IG9uQ2xpY2s9e3RoaXMub25BbGlnbm1lbnRDbGlja30gLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZEFsdFRleHRcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoe1xuICAgICAgICAgICAgZGlzYWJsZWQ6ICFpbWFnZUxvYWRlZCxcbiAgICAgICAgICAgIGFsdEJ1dHRvbjogIWRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnMsXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgb25Nb3VzZURvd249eyhldmVudCkgPT4gaW1hZ2VMb2FkZWQgJiYgdGhpcy5yZW5kZXJEaWFsb2coZXZlbnQpfVxuICAgICAgICA+XG4gICAgICAgICAgQWx0IHRleHRcbiAgICAgICAgPC9TdHlsZWRBbHRUZXh0PlxuICAgICAgPC9TdHlsZWRIb2xkZXI+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBJbWFnZVRvb2xiYXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBTSxlQUFBLEdBQUFOLE9BQUE7QUFDQSxJ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
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-toolbar.js","names":["_propTypes","_interopRequireDefault","require","_react","_debug","_client","_styles","_classnames","_toolbarButtons","_altDialog","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","log","debug","AlignmentButton","_ref","alignment","active","onClick","createElement","MarkButton","onToggle","label","propTypes","PropTypes","string","isRequired","bool","func","StyledHolder","styled","_ref2","theme","paddingLeft","spacing","display","alignItems","StyledAltText","opacity","borderLeft","marginLeft","ImageToolbar","exports","_React$Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","concat","_defineProperty2","newAlt","props","onChange","alt","popoverEl","document","el","onDone","onAltTextDone","dialogRoot","createRoot","render","body","appendChild","_inherits2","_createClass2","key","value","_this2","_this$props","imageLoaded","disableImageAlignmentButtons","Fragment","onAlignmentClick","className","classNames","disabled","altButton","onMouseDown","event","renderDialog","React","Component","_default"],"sources":["../../../src/plugins/image/image-toolbar.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport { createRoot } from 'react-dom/client';\nimport { styled } from '@mui/material/styles';\nimport classNames from 'classnames';\n\nimport { MarkButton } from '../toolbar/toolbar-buttons';\nimport AltDialog from './alt-dialog';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:image-toolbar');\n\nconst AlignmentButton = ({ alignment, active, onClick }) => {\n return (\n <MarkButton active={active} onToggle={() => onClick(alignment)} label={alignment}>\n {alignment}\n </MarkButton>\n );\n};\n\nAlignmentButton.propTypes = {\n alignment: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nconst StyledHolder = styled('div')(({ theme }) => ({\n paddingLeft: theme.spacing(1),\n display: 'flex',\n alignItems: 'center',\n}));\n\nconst StyledAltText = styled('span')(() => ({\n '&.disabled': {\n opacity: 0.5,\n },\n '&.altButton': {\n borderLeft: '1px solid grey',\n paddingLeft: 8,\n marginLeft: 4,\n },\n}));\n\nexport class ImageToolbar extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n alignment: PropTypes.string,\n alt: PropTypes.string,\n imageLoaded: PropTypes.bool,\n disableImageAlignmentButtons: PropTypes.bool,\n };\n\n dialogRoot = null;\n\n onAltTextDone = (newAlt) => {\n log('[onAltTextDone]: alt:', newAlt);\n\n this.props.onChange({ alt: newAlt }, true);\n };\n\n onAlignmentClick = (alignment) => {\n log('[onAlignmentClick]: alignment:', alignment);\n this.props.onChange({ alignment });\n };\n\n renderDialog = () => {\n const { alt } = this.props;\n const popoverEl = document.createElement('div');\n\n const el = <AltDialog alt={alt} onDone={this.onAltTextDone} />;\n\n this.dialogRoot = createRoot(popoverEl);\n this.dialogRoot.render(el);\n\n document.body.appendChild(popoverEl);\n };\n\n render() {\n const { alignment, imageLoaded, disableImageAlignmentButtons } = this.props;\n return (\n <StyledHolder>\n {!disableImageAlignmentButtons && (\n <>\n <AlignmentButton alignment={'left'} active={alignment === 'left'} onClick={this.onAlignmentClick} />\n <AlignmentButton alignment={'center'} active={alignment === 'center'} onClick={this.onAlignmentClick} />\n <AlignmentButton alignment={'right'} active={alignment === 'right'} onClick={this.onAlignmentClick} />\n </>\n )}\n <StyledAltText\n className={classNames({\n disabled: !imageLoaded,\n altButton: !disableImageAlignmentButtons,\n })}\n onMouseDown={(event) => imageLoaded && this.renderDialog(event)}\n >\n Alt text\n </StyledAltText>\n </StyledHolder>\n );\n }\n}\n\nexport default ImageToolbar;\n"],"mappings":"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","ignoreList":[]}
@@ -1,223 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = ImagePlugin;
8
- exports.serialization = void 0;
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _slate = require("slate");
11
- var _Image = _interopRequireDefault(require("@mui/icons-material/Image"));
12
- var _component = _interopRequireDefault(require("./component"));
13
- var _imageToolbar = _interopRequireDefault(require("./image-toolbar"));
14
- var _insertImageHandler = _interopRequireDefault(require("./insert-image-handler"));
15
- var _react = _interopRequireDefault(require("react"));
16
- var _debug = _interopRequireDefault(require("debug"));
17
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
- var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image');
20
- function ImagePlugin(opts) {
21
- var toolbar = opts.insertImageRequested && {
22
- icon: /*#__PURE__*/_react["default"].createElement(_Image["default"], null),
23
- ariaLabel: 'Insert Image',
24
- onClick: function onClick(value, onChange) {
25
- log('[toolbar] onClick');
26
- var inline = _slate.Inline.create({
27
- type: 'image',
28
- isVoid: true,
29
- data: {
30
- loaded: false,
31
- src: undefined
32
- }
33
- });
34
- var change = value.change().insertInline(inline);
35
- onChange(change);
36
- opts.insertImageRequested(inline, function (onFinish, getValue) {
37
- return new _insertImageHandler["default"](inline, onFinish, getValue, onChange);
38
- });
39
- },
40
- supports: function supports(node) {
41
- return node.object === 'inline' && node.type === 'image';
42
- },
43
- customToolbar: function customToolbar(node, value, onToolbarDone) {
44
- var alignment = node.data.get('alignment');
45
- var alt = node.data.get('alt');
46
- var imageLoaded = node.data.get('loaded') !== false;
47
- var onChange = function onChange(newValues, done) {
48
- var update = _objectSpread(_objectSpread({}, node.data.toObject()), newValues);
49
- var change = value.change().setNodeByKey(node.key, {
50
- data: update
51
- });
52
- onToolbarDone(change, done);
53
- };
54
- var Tb = function Tb() {
55
- return /*#__PURE__*/_react["default"].createElement(_imageToolbar["default"], {
56
- disableImageAlignmentButtons: opts.disableImageAlignmentButtons,
57
- alt: alt,
58
- imageLoaded: imageLoaded,
59
- alignment: alignment || 'left',
60
- onChange: onChange
61
- });
62
- };
63
- return Tb;
64
- },
65
- showDone: true
66
- };
67
- return {
68
- name: 'image',
69
- toolbar: toolbar,
70
- deleteNode: function deleteNode(e, node, value, onChange) {
71
- e.preventDefault();
72
- if (opts.onDelete) {
73
- var update = node.data.merge(_slate.Data.create({
74
- deleteStatus: 'pending'
75
- }));
76
- var change = value.change().setNodeByKey(node.key, {
77
- data: update
78
- });
79
- onChange(change);
80
- opts.onDelete(node, function (err, v) {
81
- if (!err) {
82
- change = v.change().removeNodeByKey(node.key);
83
- } else {
84
- log('[error]: ', err);
85
- change = v.change().setNodeByKey(node.key, node.data.merge(_slate.Data.create({
86
- deleteStatus: 'failed'
87
- })));
88
- }
89
- onChange(change);
90
- });
91
- } else {
92
- var _change = value.change().removeNodeByKey(node.key);
93
- onChange(_change);
94
- }
95
- },
96
- stopReset: function stopReset(value) {
97
- var imgPendingInsertion = value.document.findDescendant(function (n) {
98
- if (n.type !== 'image') {
99
- return;
100
- }
101
- return n.data.get('loaded') === false;
102
- });
103
- /** don't reset if there is an image pending insertion */
104
- return imgPendingInsertion !== undefined && imgPendingInsertion !== null;
105
- },
106
- renderNode: function renderNode(props) {
107
- if (props.node.type === 'image') {
108
- var all = Object.assign({
109
- onDelete: opts.onDelete,
110
- onFocus: opts.onFocus,
111
- onBlur: opts.onBlur,
112
- maxImageWidth: opts.maxImageWidth,
113
- maxImageHeight: opts.maxImageHeight
114
- }, props);
115
- return /*#__PURE__*/_react["default"].createElement(_component["default"], all);
116
- }
117
- },
118
- normalizeNode: function normalizeNode(node) {
119
- var textNodeMap = {};
120
- var updateNodesArray = [];
121
- var index = 0;
122
- if (node.object !== 'document') return;
123
- node.findDescendant(function (d) {
124
- if (d.object === 'text') {
125
- textNodeMap[index] = d;
126
- }
127
- if (d.type === 'image') {
128
- if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {
129
- updateNodesArray.push(textNodeMap[index - 1]);
130
- }
131
- }
132
- index++;
133
- });
134
- if (!updateNodesArray.length) return;
135
- return function (change) {
136
- change.withoutNormalization(function () {
137
- updateNodesArray.forEach(function (n) {
138
- return change.insertTextByKey(n.key, 0, ' ');
139
- });
140
- });
141
- };
142
- }
143
- };
144
- }
145
- var serialization = exports.serialization = {
146
- deserialize: function deserialize(el /*, next*/) {
147
- var name = el.tagName.toLowerCase();
148
- if (name !== 'img') return;
149
- log('deserialize: ', name);
150
- var style = el.style || {
151
- width: '',
152
- height: '',
153
- margin: '',
154
- justifyContent: ''
155
- };
156
- var width = parseInt(style.width.replace('px', ''), 10) || null;
157
- var height = parseInt(style.height.replace('px', ''), 10) || null;
158
- var out = {
159
- object: 'inline',
160
- type: 'image',
161
- isVoid: true,
162
- data: {
163
- src: el.getAttribute('src'),
164
- width: width,
165
- height: height,
166
- margin: el.style.margin,
167
- justifyContent: el.style.justifyContent,
168
- alignment: el.getAttribute('alignment'),
169
- alt: el.getAttribute('alt')
170
- }
171
- };
172
- log('return object: ', out);
173
- return out;
174
- },
175
- serialize: function serialize(object /*, children*/) {
176
- if (object.type !== 'image') return;
177
- var data = object.data;
178
- var src = data.get('src');
179
- var width = data.get('width');
180
- var height = data.get('height');
181
- var alignment = data.get('alignment') || 'left';
182
- var margin = data.get('margin');
183
- var justifyContent = data.get('margin');
184
- var alt = data.get('alt');
185
- var style = {};
186
- if (width) {
187
- style.width = "".concat(width, "px");
188
- }
189
- if (height) {
190
- style.height = "".concat(height, "px");
191
- }
192
- style.margin = margin;
193
- style.justifyContent = justifyContent;
194
- if (alignment) {
195
- switch (alignment) {
196
- case 'left':
197
- style.justifyContent = 'flex-start';
198
- style.margin = '0';
199
- break;
200
- case 'center':
201
- style.justifyContent = 'center';
202
- style.margin = '0 auto';
203
- break;
204
- case 'right':
205
- style.justifyContent = 'flex-end';
206
- style.margin = 'auto 0 0 auto';
207
- break;
208
- default:
209
- style.justifyContent = 'flex-start';
210
- break;
211
- }
212
- }
213
- style.objectFit = 'contain';
214
- var props = {
215
- src: src,
216
- style: style,
217
- alignment: alignment,
218
- alt: alt
219
- };
220
- return /*#__PURE__*/_react["default"].createElement("img", props);
221
- }
222
- };
223
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2xhdGUiLCJyZXF1aXJlIiwiX0ltYWdlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb21wb25lbnQiLCJfaW1hZ2VUb29sYmFyIiwiX2luc2VydEltYWdlSGFuZGxlciIsIl9yZWFjdCIsIl9kZWJ1ZyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwibG9nIiwiZGVidWciLCJJbWFnZVBsdWdpbiIsIm9wdHMiLCJ0b29sYmFyIiwiaW5zZXJ0SW1hZ2VSZXF1ZXN0ZWQiLCJpY29uIiwiY3JlYXRlRWxlbWVudCIsImFyaWFMYWJlbCIsIm9uQ2xpY2siLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiaW5saW5lIiwiSW5saW5lIiwiY3JlYXRlIiwidHlwZSIsImlzVm9pZCIsImRhdGEiLCJsb2FkZWQiLCJzcmMiLCJ1bmRlZmluZWQiLCJjaGFuZ2UiLCJpbnNlcnRJbmxpbmUiLCJvbkZpbmlzaCIsImdldFZhbHVlIiwiSW5zZXJ0SW1hZ2VIYW5kbGVyIiwic3VwcG9ydHMiLCJub2RlIiwib2JqZWN0IiwiY3VzdG9tVG9vbGJhciIsIm9uVG9vbGJhckRvbmUiLCJhbGlnbm1lbnQiLCJnZXQiLCJhbHQiLCJpbWFnZUxvYWRlZCIsIm5ld1ZhbHVlcyIsImRvbmUiLCJ1cGRhdGUiLCJ0b09iamVjdCIsInNldE5vZGVCeUtleSIsImtleSIsIlRiIiwiZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucyIsInNob3dEb25lIiwibmFtZSIsImRlbGV0ZU5vZGUiLCJwcmV2ZW50RGVmYXVsdCIsIm9uRGVsZXRlIiwibWVyZ2UiLCJEYXRhIiwiZGVsZXRlU3RhdHVzIiwiZXJyIiwidiIsInJlbW92ZU5vZGVCeUtleSIsInN0b3BSZXNldCIsImltZ1BlbmRpbmdJbnNlcnRpb24iLCJkb2N1bWVudCIsImZpbmREZXNjZW5kYW50IiwibiIsInJlbmRlck5vZGUiLCJwcm9wcyIsImFsbCIsImFzc2lnbiIsIm9uRm9jdXMiLCJvbkJsdXIiLCJtYXhJbWFnZVdpZHRoIiwibWF4SW1hZ2VIZWlnaHQiLCJub3JtYWxpemVOb2RlIiwidGV4dE5vZGVNYXAiLCJ1cGRhdGVOb2Rlc0FycmF5IiwiaW5kZXgiLCJkIiwidGV4dCIsIndpdGhvdXROb3JtYWxpemF0aW9uIiwiaW5zZXJ0VGV4dEJ5S2V5Iiwic2VyaWFsaXphdGlvbiIsImV4cG9ydHMiLCJkZXNlcmlhbGl6ZSIsImVsIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwic3R5bGUiLCJ3aWR0aCIsImhlaWdodCIsIm1hcmdpbiIsImp1c3RpZnlDb250ZW50IiwicGFyc2VJbnQiLCJyZXBsYWNlIiwib3V0IiwiZ2V0QXR0cmlidXRlIiwic2VyaWFsaXplIiwiY29uY2F0Iiwib2JqZWN0Rml0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbnMvaW1hZ2UvaW5kZXguanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGEsIElubGluZSB9IGZyb20gJ3NsYXRlJztcblxuaW1wb3J0IEltYWdlIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvSW1hZ2UnO1xuaW1wb3J0IEltYWdlQ29tcG9uZW50IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCBJbWFnZVRvb2xiYXIgZnJvbSAnLi9pbWFnZS10b29sYmFyJztcbmltcG9ydCBJbnNlcnRJbWFnZUhhbmRsZXIgZnJvbSAnLi9pbnNlcnQtaW1hZ2UtaGFuZGxlcic7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2luczppbWFnZScpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBJbWFnZVBsdWdpbihvcHRzKSB7XG4gIGNvbnN0IHRvb2xiYXIgPSBvcHRzLmluc2VydEltYWdlUmVxdWVzdGVkICYmIHtcbiAgICBpY29uOiA8SW1hZ2UgLz4sXG4gICAgYXJpYUxhYmVsOiAnSW5zZXJ0IEltYWdlJyxcbiAgICBvbkNsaWNrOiAodmFsdWUsIG9uQ2hhbmdlKSA9PiB7XG4gICAgICBsb2coJ1t0b29sYmFyXSBvbkNsaWNrJyk7XG4gICAgICBjb25zdCBpbmxpbmUgPSBJbmxpbmUuY3JlYXRlKHtcbiAgICAgICAgdHlwZTogJ2ltYWdlJyxcbiAgICAgICAgaXNWb2lkOiB0cnVlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgbG9hZGVkOiBmYWxzZSxcbiAgICAgICAgICBzcmM6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBjaGFuZ2UgPSB2YWx1ZS5jaGFuZ2UoKS5pbnNlcnRJbmxpbmUoaW5saW5lKTtcblxuICAgICAgb25DaGFuZ2UoY2hhbmdlKTtcbiAgICAgIG9wdHMuaW5zZXJ0SW1hZ2VSZXF1ZXN0ZWQoXG4gICAgICAgIGlubGluZSxcbiAgICAgICAgKG9uRmluaXNoLCBnZXRWYWx1ZSkgPT4gbmV3IEluc2VydEltYWdlSGFuZGxlcihpbmxpbmUsIG9uRmluaXNoLCBnZXRWYWx1ZSwgb25DaGFuZ2UpLFxuICAgICAgKTtcbiAgICB9LFxuICAgIHN1cHBvcnRzOiAobm9kZSkgPT4gbm9kZS5vYmplY3QgPT09ICdpbmxpbmUnICYmIG5vZGUudHlwZSA9PT0gJ2ltYWdlJyxcbiAgICBjdXN0b21Ub29sYmFyOiAobm9kZSwgdmFsdWUsIG9uVG9vbGJhckRvbmUpID0+IHtcbiAgICAgIGNvbnN0IGFsaWdubWVudCA9IG5vZGUuZGF0YS5nZXQoJ2FsaWdubWVudCcpO1xuICAgICAgY29uc3QgYWx0ID0gbm9kZS5kYXRhLmdldCgnYWx0Jyk7XG4gICAgICBjb25zdCBpbWFnZUxvYWRlZCA9IG5vZGUuZGF0YS5nZXQoJ2xvYWRlZCcpICE9PSBmYWxzZTtcbiAgICAgIGNvbnN0IG9uQ2hhbmdlID0gKG5ld1ZhbHVlcywgZG9uZSkgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGUgPSB7XG4gICAgICAgICAgLi4ubm9kZS5kYXRhLnRvT2JqZWN0KCksXG4gICAgICAgICAgLi4ubmV3VmFsdWVzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IHZhbHVlLmNoYW5nZSgpLnNldE5vZGVCeUtleShub2RlLmtleSwgeyBkYXRhOiB1cGRhdGUgfSk7XG4gICAgICAgIG9uVG9vbGJhckRvbmUoY2hhbmdlLCBkb25lKTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IFRiID0gKCkgPT4gKFxuICAgICAgICA8SW1hZ2VUb29sYmFyXG4gICAgICAgICAgZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucz17b3B0cy5kaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zfVxuICAgICAgICAgIGFsdD17YWx0fVxuICAgICAgICAgIGltYWdlTG9hZGVkPXtpbWFnZUxvYWRlZH1cbiAgICAgICAgICBhbGlnbm1lbnQ9e2FsaWdubWVudCB8fCAnbGVmdCd9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICAgIHJldHVybiBUYjtcbiAgICB9LFxuICAgIHNob3dEb25lOiB0cnVlLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2ltYWdlJyxcbiAgICB0b29sYmFyLFxuICAgIGRlbGV0ZU5vZGU6IChlLCBub2RlLCB2YWx1ZSwgb25DaGFuZ2UpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGlmIChvcHRzLm9uRGVsZXRlKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZSA9IG5vZGUuZGF0YS5tZXJnZShEYXRhLmNyZWF0ZSh7IGRlbGV0ZVN0YXR1czogJ3BlbmRpbmcnIH0pKTtcblxuICAgICAgICBsZXQgY2hhbmdlID0gdmFsdWUuY2hhbmdlKCkuc2V0Tm9kZUJ5S2V5KG5vZGUua2V5LCB7IGRhdGE6IHVwZGF0ZSB9KTtcblxuICAgICAgICBvbkNoYW5nZShjaGFuZ2UpO1xuICAgICAgICBvcHRzLm9uRGVsZXRlKG5vZGUsIChlcnIsIHYpID0+IHtcbiAgICAgICAgICBpZiAoIWVycikge1xuICAgICAgICAgICAgY2hhbmdlID0gdi5jaGFuZ2UoKS5yZW1vdmVOb2RlQnlLZXkobm9kZS5rZXkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2coJ1tlcnJvcl06ICcsIGVycik7XG4gICAgICAgICAgICBjaGFuZ2UgPSB2LmNoYW5nZSgpLnNldE5vZGVCeUtleShub2RlLmtleSwgbm9kZS5kYXRhLm1lcmdlKERhdGEuY3JlYXRlKHsgZGVsZXRlU3RhdHVzOiAnZmFpbGVkJyB9KSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvbkNoYW5nZShjaGFuZ2UpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBjaGFuZ2UgPSB2YWx1ZS5jaGFuZ2UoKS5yZW1vdmVOb2RlQnlLZXkobm9kZS5rZXkpO1xuICAgICAgICBvbkNoYW5nZShjaGFuZ2UpO1xuICAgICAgfVxuICAgIH0sXG4gICAgc3RvcFJlc2V0OiAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IGltZ1BlbmRpbmdJbnNlcnRpb24gPSB2YWx1ZS5kb2N1bWVudC5maW5kRGVzY2VuZGFudCgobikgPT4ge1xuICAgICAgICBpZiAobi50eXBlICE9PSAnaW1hZ2UnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuLmRhdGEuZ2V0KCdsb2FkZWQnKSA9PT0gZmFsc2U7XG4gICAgICB9KTtcbiAgICAgIC8qKiBkb24ndCByZXNldCBpZiB0aGVyZSBpcyBhbiBpbWFnZSBwZW5kaW5nIGluc2VydGlvbiAqL1xuICAgICAgcmV0dXJuIGltZ1BlbmRpbmdJbnNlcnRpb24gIT09IHVuZGVmaW5lZCAmJiBpbWdQZW5kaW5nSW5zZXJ0aW9uICE9PSBudWxsO1xuICAgIH0sXG4gICAgcmVuZGVyTm9kZShwcm9wcykge1xuICAgICAgaWYgKHByb3BzLm5vZGUudHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgICBjb25zdCBhbGwgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9uRGVsZXRlOiBvcHRzLm9uRGVsZXRlLFxuICAgICAgICAgICAgb25Gb2N1czogb3B0cy5vbkZvY3VzLFxuICAgICAgICAgICAgb25CbHVyOiBvcHRzLm9uQmx1cixcbiAgICAgICAgICAgIG1heEltYWdlV2lkdGg6IG9wdHMubWF4SW1hZ2VXaWR0aCxcbiAgICAgICAgICAgIG1heEltYWdlSGVpZ2h0OiBvcHRzLm1heEltYWdlSGVpZ2h0LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHJvcHMsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiA8SW1hZ2VDb21wb25lbnQgey4uLmFsbH0gLz47XG4gICAgICB9XG4gICAgfSxcbiAgICBub3JtYWxpemVOb2RlOiAobm9kZSkgPT4ge1xuICAgICAgY29uc3QgdGV4dE5vZGVNYXAgPSB7fTtcbiAgICAgIGNvbnN0IHVwZGF0ZU5vZGVzQXJyYXkgPSBbXTtcbiAgICAgIGxldCBpbmRleCA9IDA7XG5cbiAgICAgIGlmIChub2RlLm9iamVjdCAhPT0gJ2RvY3VtZW50JykgcmV0dXJuO1xuXG4gICAgICBub2RlLmZpbmREZXNjZW5kYW50KChkKSA9PiB7XG4gICAgICAgIGlmIChkLm9iamVjdCA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgdGV4dE5vZGVNYXBbaW5kZXhdID0gZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgICAgICBpZiAoaW5kZXggPiAwICYmIHRleHROb2RlTWFwW2luZGV4IC0gMV0gJiYgdGV4dE5vZGVNYXBbaW5kZXggLSAxXS50ZXh0ID09PSAnJykge1xuICAgICAgICAgICAgdXBkYXRlTm9kZXNBcnJheS5wdXNoKHRleHROb2RlTWFwW2luZGV4IC0gMV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGluZGV4Kys7XG4gICAgICB9KTtcblxuICAgICAgaWYgKCF1cGRhdGVOb2Rlc0FycmF5Lmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICByZXR1cm4gKGNoYW5nZSkgPT4ge1xuICAgICAgICBjaGFuZ2Uud2l0aG91dE5vcm1hbGl6YXRpb24oKCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZU5vZGVzQXJyYXkuZm9yRWFjaCgobikgPT4gY2hhbmdlLmluc2VydFRleHRCeUtleShuLmtleSwgMCwgJyAnKSk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY29uc3Qgc2VyaWFsaXphdGlvbiA9IHtcbiAgZGVzZXJpYWxpemUoZWwgLyosIG5leHQqLykge1xuICAgIGNvbnN0IG5hbWUgPSBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKG5hbWUgIT09ICdpbWcnKSByZXR1cm47XG5cbiAgICBsb2coJ2Rlc2VyaWFsaXplOiAnLCBuYW1lKTtcbiAgICBjb25zdCBzdHlsZSA9IGVsLnN0eWxlIHx8IHsgd2lkdGg6ICcnLCBoZWlnaHQ6ICcnLCBtYXJnaW46ICcnLCBqdXN0aWZ5Q29udGVudDogJycgfTtcbiAgICBjb25zdCB3aWR0aCA9IHBhcnNlSW50KHN0eWxlLndpZHRoLnJlcGxhY2UoJ3B4JywgJycpLCAxMCkgfHwgbnVsbDtcbiAgICBjb25zdCBoZWlnaHQgPSBwYXJzZUludChzdHlsZS5oZWlnaHQucmVwbGFjZSgncHgnLCAnJyksIDEwKSB8fCBudWxsO1xuXG4gICAgY29uc3Qgb3V0ID0ge1xuICAgICAgb2JqZWN0OiAnaW5saW5lJyxcbiAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICBpc1ZvaWQ6IHRydWUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHNyYzogZWwuZ2V0QXR0cmlidXRlKCdzcmMnKSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgbWFyZ2luOiBlbC5zdHlsZS5tYXJnaW4sXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiBlbC5zdHlsZS5qdXN0aWZ5Q29udGVudCxcbiAgICAgICAgYWxpZ25tZW50OiBlbC5nZXRBdHRyaWJ1dGUoJ2FsaWdubWVudCcpLFxuICAgICAgICBhbHQ6IGVsLmdldEF0dHJpYnV0ZSgnYWx0JyksXG4gICAgICB9LFxuICAgIH07XG4gICAgbG9nKCdyZXR1cm4gb2JqZWN0OiAnLCBvdXQpO1xuICAgIHJldHVybiBvdXQ7XG4gIH0sXG4gIHNlcmlhbGl6ZShvYmplY3QgLyosIGNoaWxkcmVuKi8pIHtcbiAgICBpZiAob2JqZWN0LnR5cGUgIT09ICdpbWFnZScpIHJldHVybjtcblxuICAgIGNvbnN0IHsgZGF0YSB9ID0gb2JqZWN0O1xuICAgIGNvbnN0IHNyYyA9IGRhdGEuZ2V0KCdzcmMnKTtcbiAgICBjb25zdCB3aWR0aCA9IGRhdGEuZ2V0KCd3aWR0aCcpO1xuICAgIGNvbnN0IGhlaWdodCA9IGRhdGEuZ2V0KCdoZWlnaHQnKTtcbiAgICBjb25zdCBhbGlnbm1lbnQgPSBkYXRhLmdldCgnYWxpZ25tZW50JykgfHwgJ2xlZnQnO1xuICAgIGNvbnN0IG1hcmdpbiA9IGRhdGEuZ2V0KCdtYXJnaW4nKTtcbiAgICBjb25zdCBqdXN0aWZ5Q29udGVudCA9IGRhdGEuZ2V0KCdtYXJnaW4nKTtcbiAgICBjb25zdCBhbHQgPSBkYXRhLmdldCgnYWx0Jyk7XG4gICAgY29uc3Qgc3R5bGUgPSB7fTtcbiAgICBpZiAod2lkdGgpIHtcbiAgICAgIHN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xuICAgIH1cblxuICAgIGlmIChoZWlnaHQpIHtcbiAgICAgIHN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGA7XG4gICAgfVxuXG4gICAgc3R5bGUubWFyZ2luID0gbWFyZ2luO1xuICAgIHN0eWxlLmp1c3RpZnlDb250ZW50ID0ganVzdGlmeUNvbnRlbnQ7XG5cbiAgICBpZiAoYWxpZ25tZW50KSB7XG4gICAgICBzd2l0Y2ggKGFsaWdubWVudCkge1xuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICBzdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdmbGV4LXN0YXJ0JztcbiAgICAgICAgICBzdHlsZS5tYXJnaW4gPSAnMCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICAgICAgc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnY2VudGVyJztcbiAgICAgICAgICBzdHlsZS5tYXJnaW4gPSAnMCBhdXRvJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIHN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ2ZsZXgtZW5kJztcbiAgICAgICAgICBzdHlsZS5tYXJnaW4gPSAnYXV0byAwIDAgYXV0byc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnZmxleC1zdGFydCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3R5bGUub2JqZWN0Rml0ID0gJ2NvbnRhaW4nO1xuXG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICBzcmMsXG4gICAgICBzdHlsZSxcbiAgICAgIGFsaWdubWVudCxcbiAgICAgIGFsdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIDxpbWcgey4uLnByb3BzfSAvPjtcbiAgfSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLGFBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLG1CQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxNQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFBMEIsU0FBQVEsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUE7QUFFMUIsSUFBTW9CLEdBQUcsR0FBRyxJQUFBQyxpQkFBSyxFQUFDLHNDQUFzQyxDQUFDO0FBRTFDLFNBQVNDLFdBQVdBLENBQUNDLElBQUksRUFBRTtFQUN4QyxJQUFNQyxPQUFPLEdBQUdELElBQUksQ0FBQ0Usb0JBQW9CLElBQUk7SUFDM0NDLElBQUksZUFBRTdCLE1BQUEsWUFBQThCLGFBQUEsQ0FBQ25DLE1BQUEsV0FBSyxNQUFFLENBQUM7SUFDZm9DLFNBQVMsRUFBRSxjQUFjO0lBQ3pCQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBR0MsS0FBSyxFQUFFQyxRQUFRLEVBQUs7TUFDNUJYLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztNQUN4QixJQUFNWSxNQUFNLEdBQUdDLGFBQU0sQ0FBQ0MsTUFBTSxDQUFDO1FBQzNCQyxJQUFJLEVBQUUsT0FBTztRQUNiQyxNQUFNLEVBQUUsSUFBSTtRQUNaQyxJQUFJLEVBQUU7VUFDSkMsTUFBTSxFQUFFLEtBQUs7VUFDYkMsR0FBRyxFQUFFQztRQUNQO01BQ0YsQ0FBQyxDQUFDO01BRUYsSUFBTUMsTUFBTSxHQUFHWCxLQUFLLENBQUNXLE1BQU0sQ0FBQyxDQUFDLENBQUNDLFlBQVksQ0FBQ1YsTUFBTSxDQUFDO01BRWxERCxRQUFRLENBQUNVLE1BQU0sQ0FBQztNQUNoQmxCLElBQUksQ0FBQ0Usb0JBQW9CLENBQ3ZCTyxNQUFNLEVBQ04sVUFBQ1csUUFBUSxFQUFFQyxRQUFRO1FBQUEsT0FBSyxJQUFJQyw4QkFBa0IsQ0FBQ2IsTUFBTSxFQUFFVyxRQUFRLEVBQUVDLFFBQVEsRUFBRWIsUUFBUSxDQUFDO01BQUEsQ0FDdEYsQ0FBQztJQUNILENBQUM7SUFDRGUsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdDLElBQUk7TUFBQSxPQUFLQSxJQUFJLENBQUNDLE1BQU0sS0FBSyxRQUFRLElBQUlELElBQUksQ0FBQ1osSUFBSSxLQUFLLE9BQU87SUFBQTtJQUNyRWMsYUFBYSxFQUFFLFNBQWZBLGFBQWFBLENBQUdGLElBQUksRUFBRWpCLEtBQUssRUFBRW9CLGFBQWEsRUFBSztNQUM3QyxJQUFNQyxTQUFTLEdBQUdKLElBQUksQ0FBQ1YsSUFBSSxDQUFDZSxHQUFHLENBQUMsV0FBVyxDQUFDO01BQzVDLElBQU1DLEdBQUcsR0FBR04sSUFBSSxDQUFDVixJQUFJLENBQUNlLEdBQUcsQ0FBQyxLQUFLLENBQUM7TUFDaEMsSUFBTUUsV0FBVyxHQUFHUCxJQUFJLENBQUNWLElBQUksQ0FBQ2UsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUs7TUFDckQsSUFBTXJCLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJd0IsU0FBUyxFQUFFQyxJQUFJLEVBQUs7UUFDcEMsSUFBTUMsTUFBTSxHQUFBN0MsYUFBQSxDQUFBQSxhQUFBLEtBQ1BtQyxJQUFJLENBQUNWLElBQUksQ0FBQ3FCLFFBQVEsQ0FBQyxDQUFDLEdBQ3BCSCxTQUFTLENBQ2I7UUFFRCxJQUFNZCxNQUFNLEdBQUdYLEtBQUssQ0FBQ1csTUFBTSxDQUFDLENBQUMsQ0FBQ2tCLFlBQVksQ0FBQ1osSUFBSSxDQUFDYSxHQUFHLEVBQUU7VUFBRXZCLElBQUksRUFBRW9CO1FBQU8sQ0FBQyxDQUFDO1FBQ3RFUCxhQUFhLENBQUNULE1BQU0sRUFBRWUsSUFBSSxDQUFDO01BQzdCLENBQUM7TUFFRCxJQUFNSyxFQUFFLEdBQUcsU0FBTEEsRUFBRUEsQ0FBQTtRQUFBLG9CQUNOaEUsTUFBQSxZQUFBOEIsYUFBQSxDQUFDaEMsYUFBQSxXQUFZO1VBQ1htRSw0QkFBNEIsRUFBRXZDLElBQUksQ0FBQ3VDLDRCQUE2QjtVQUNoRVQsR0FBRyxFQUFFQSxHQUFJO1VBQ1RDLFdBQVcsRUFBRUEsV0FBWTtVQUN6QkgsU0FBUyxFQUFFQSxTQUFTLElBQUksTUFBTztVQUMvQnBCLFFBQVEsRUFBRUE7UUFBUyxDQUNwQixDQUFDO01BQUEsQ0FDSDtNQUNELE9BQU84QixFQUFFO0lBQ1gsQ0FBQztJQUNERSxRQUFRLEVBQUU7RUFDWixDQUFDO0VBRUQsT0FBTztJQUNMQyxJQUFJLEVBQUUsT0FBTztJQUNieEMsT0FBTyxFQUFQQSxPQUFPO0lBQ1B5QyxVQUFVLEVBQUUsU0FBWkEsVUFBVUEsQ0FBR2pFLENBQUMsRUFBRStDLElBQUksRUFBRWpCLEtBQUssRUFBRUMsUUFBUSxFQUFLO01BQ3hDL0IsQ0FBQyxDQUFDa0UsY0FBYyxDQUFDLENBQUM7TUFDbEIsSUFBSTNDLElBQUksQ0FBQzRDLFFBQVEsRUFBRTtRQUNqQixJQUFNVixNQUFNLEdBQUdWLElBQUksQ0FBQ1YsSUFBSSxDQUFDK0IsS0FBSyxDQUFDQyxXQUFJLENBQUNuQyxNQUFNLENBQUM7VUFBRW9DLFlBQVksRUFBRTtRQUFVLENBQUMsQ0FBQyxDQUFDO1FBRXhFLElBQUk3QixNQUFNLEdBQUdYLEtBQUssQ0FBQ1csTUFBTSxDQUFDLENBQUMsQ0FBQ2tCLFlBQVksQ0FBQ1osSUFBSSxDQUFDYSxHQUFHLEVBQUU7VUFBRXZCLElBQUksRUFBRW9CO1FBQU8sQ0FBQyxDQUFDO1FBRXBFMUIsUUFBUSxDQUFDVSxNQUFNLENBQUM7UUFDaEJsQixJQUFJLENBQUM0QyxRQUFRLENBQUNwQixJQUFJLEVBQUUsVUFBQ3dCLEdBQUcsRUFBRUMsQ0FBQyxFQUFLO1VBQzlCLElBQUksQ0FBQ0QsR0FBRyxFQUFFO1lBQ1I5QixNQUFNLEdBQUcrQixDQUFDLENBQUMvQixNQUFNLENBQUMsQ0FBQyxDQUFDZ0MsZUFBZSxDQUFDMUIsSUFBSSxDQUFDYSxHQUFHLENBQUM7VUFDL0MsQ0FBQyxNQUFNO1lBQ0x4QyxHQUFHLENBQUMsV0FBVyxFQUFFbUQsR0FBRyxDQUFDO1lBQ3JCOUIsTUFBTSxHQUFHK0IsQ0FBQyxDQUFDL0IsTUFBTSxDQUFDLENBQUMsQ0FBQ2tCLFlBQVksQ0FBQ1osSUFBSSxDQUFDYSxHQUFHLEVBQUViLElBQUksQ0FBQ1YsSUFBSSxDQUFDK0IsS0FBSyxDQUFDQyxXQUFJLENBQUNuQyxNQUFNLENBQUM7Y0FBRW9DLFlBQVksRUFBRTtZQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFDdEc7VUFDQXZDLFFBQVEsQ0FBQ1UsTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQztNQUNKLENBQUMsTUFBTTtRQUNMLElBQUlBLE9BQU0sR0FBR1gsS0FBSyxDQUFDVyxNQUFNLENBQUMsQ0FBQyxDQUFDZ0MsZUFBZSxDQUFDMUIsSUFBSSxDQUFDYSxHQUFHLENBQUM7UUFDckQ3QixRQUFRLENBQUNVLE9BQU0sQ0FBQztNQUNsQjtJQUNGLENBQUM7SUFDRGlDLFNBQVMsRUFBRSxTQUFYQSxTQUFTQSxDQUFHNUMsS0FBSyxFQUFLO01BQ3BCLElBQU02QyxtQkFBbUIsR0FBRzdDLEtBQUssQ0FBQzhDLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLFVBQUNDLENBQUMsRUFBSztRQUMvRCxJQUFJQSxDQUFDLENBQUMzQyxJQUFJLEtBQUssT0FBTyxFQUFFO1VBQ3RCO1FBQ0Y7UUFDQSxPQUFPMkMsQ0FBQyxDQUFDekMsSUFBSSxDQUFDZSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSztNQUN2QyxDQUFDLENBQUM7TUFDRjtNQUNBLE9BQU91QixtQkFBbUIsS0FBS25DLFNBQVMsSUFBSW1DLG1CQUFtQixLQUFLLElBQUk7SUFDMUUsQ0FBQztJQUNESSxVQUFVLFdBQVZBLFVBQVVBLENBQUNDLEtBQUssRUFBRTtNQUNoQixJQUFJQSxLQUFLLENBQUNqQyxJQUFJLENBQUNaLElBQUksS0FBSyxPQUFPLEVBQUU7UUFDL0IsSUFBTThDLEdBQUcsR0FBRzlFLE1BQU0sQ0FBQytFLE1BQU0sQ0FDdkI7VUFDRWYsUUFBUSxFQUFFNUMsSUFBSSxDQUFDNEMsUUFBUTtVQUN2QmdCLE9BQU8sRUFBRTVELElBQUksQ0FBQzRELE9BQU87VUFDckJDLE1BQU0sRUFBRTdELElBQUksQ0FBQzZELE1BQU07VUFDbkJDLGFBQWEsRUFBRTlELElBQUksQ0FBQzhELGFBQWE7VUFDakNDLGNBQWMsRUFBRS9ELElBQUksQ0FBQytEO1FBQ3ZCLENBQUMsRUFDRE4sS0FDRixDQUFDO1FBQ0Qsb0JBQU9uRixNQUFBLFlBQUE4QixhQUFBLENBQUNqQyxVQUFBLFdBQWMsRUFBS3VGLEdBQU0sQ0FBQztNQUNwQztJQUNGLENBQUM7SUFDRE0sYUFBYSxFQUFFLFNBQWZBLGFBQWFBLENBQUd4QyxJQUFJLEVBQUs7TUFDdkIsSUFBTXlDLFdBQVcsR0FBRyxDQUFDLENBQUM7TUFDdEIsSUFBTUMsZ0JBQWdCLEdBQUcsRUFBRTtNQUMzQixJQUFJQyxLQUFLLEdBQUcsQ0FBQztNQUViLElBQUkzQyxJQUFJLENBQUNDLE1BQU0sS0FBSyxVQUFVLEVBQUU7TUFFaENELElBQUksQ0FBQzhCLGNBQWMsQ0FBQyxVQUFDYyxDQUFDLEVBQUs7UUFDekIsSUFBSUEsQ0FBQyxDQUFDM0MsTUFBTSxLQUFLLE1BQU0sRUFBRTtVQUN2QndDLFdBQVcsQ0FBQ0UsS0FBSyxDQUFDLEdBQUdDLENBQUM7UUFDeEI7UUFFQSxJQUFJQSxDQUFDLENBQUN4RCxJQUFJLEtBQUssT0FBTyxFQUFFO1VBQ3RCLElBQUl1RCxLQUFLLEdBQUcsQ0FBQyxJQUFJRixXQUFXLENBQUNFLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSUYsV0FBVyxDQUFDRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUNFLElBQUksS0FBSyxFQUFFLEVBQUU7WUFDN0VILGdCQUFnQixDQUFDL0UsSUFBSSxDQUFDOEUsV0FBVyxDQUFDRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7VUFDL0M7UUFDRjtRQUVBQSxLQUFLLEVBQUU7TUFDVCxDQUFDLENBQUM7TUFFRixJQUFJLENBQUNELGdCQUFnQixDQUFDM0UsTUFBTSxFQUFFO01BRTlCLE9BQU8sVUFBQzJCLE1BQU0sRUFBSztRQUNqQkEsTUFBTSxDQUFDb0Qsb0JBQW9CLENBQUMsWUFBTTtVQUNoQ0osZ0JBQWdCLENBQUMxRSxPQUFPLENBQUMsVUFBQytELENBQUM7WUFBQSxPQUFLckMsTUFBTSxDQUFDcUQsZUFBZSxDQUFDaEIsQ0FBQyxDQUFDbEIsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUM7VUFBQSxFQUFDO1FBQ3hFLENBQUMsQ0FBQztNQUNKLENBQUM7SUFDSDtFQUNGLENBQUM7QUFDSDtBQUVPLElBQU1tQyxhQUFhLEdBQUFDLE9BQUEsQ0FBQUQsYUFBQSxHQUFHO0VBQzNCRSxXQUFXLFdBQVhBLFdBQVdBLENBQUNDLEVBQUUsQ0FBQyxZQUFZO0lBQ3pCLElBQU1sQyxJQUFJLEdBQUdrQyxFQUFFLENBQUNDLE9BQU8sQ0FBQ0MsV0FBVyxDQUFDLENBQUM7SUFDckMsSUFBSXBDLElBQUksS0FBSyxLQUFLLEVBQUU7SUFFcEI1QyxHQUFHLENBQUMsZUFBZSxFQUFFNEMsSUFBSSxDQUFDO0lBQzFCLElBQU1xQyxLQUFLLEdBQUdILEVBQUUsQ0FBQ0csS0FBSyxJQUFJO01BQUVDLEtBQUssRUFBRSxFQUFFO01BQUVDLE1BQU0sRUFBRSxFQUFFO01BQUVDLE1BQU0sRUFBRSxFQUFFO01BQUVDLGNBQWMsRUFBRTtJQUFHLENBQUM7SUFDbkYsSUFBTUgsS0FBSyxHQUFHSSxRQUFRLENBQUNMLEtBQUssQ0FBQ0MsS0FBSyxDQUFDSyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUk7SUFDakUsSUFBTUosTUFBTSxHQUFHRyxRQUFRLENBQUNMLEtBQUssQ0FBQ0UsTUFBTSxDQUFDSSxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUk7SUFFbkUsSUFBTUMsR0FBRyxHQUFHO01BQ1Y1RCxNQUFNLEVBQUUsUUFBUTtNQUNoQmIsSUFBSSxFQUFFLE9BQU87TUFDYkMsTUFBTSxFQUFFLElBQUk7TUFDWkMsSUFBSSxFQUFFO1FBQ0pFLEdBQUcsRUFBRTJELEVBQUUsQ0FBQ1csWUFBWSxDQUFDLEtBQUssQ0FBQztRQUMzQlAsS0FBSyxFQUFMQSxLQUFLO1FBQ0xDLE1BQU0sRUFBTkEsTUFBTTtRQUNOQyxNQUFNLEVBQUVOLEVBQUUsQ0FBQ0csS0FBSyxDQUFDRyxNQUFNO1FBQ3ZCQyxjQUFjLEVBQUVQLEVBQUUsQ0FBQ0csS0FBSyxDQUFDSSxjQUFjO1FBQ3ZDdEQsU0FBUyxFQUFFK0MsRUFBRSxDQUFDVyxZQUFZLENBQUMsV0FBVyxDQUFDO1FBQ3ZDeEQsR0FBRyxFQUFFNkMsRUFBRSxDQUFDVyxZQUFZLENBQUMsS0FBSztNQUM1QjtJQUNGLENBQUM7SUFDRHpGLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRXdGLEdBQUcsQ0FBQztJQUMzQixPQUFPQSxHQUFHO0VBQ1osQ0FBQztFQUNERSxTQUFTLFdBQVRBLFNBQVNBLENBQUM5RCxNQUFNLENBQUMsZ0JBQWdCO0lBQy9CLElBQUlBLE1BQU0sQ0FBQ2IsSUFBSSxLQUFLLE9BQU8sRUFBRTtJQUU3QixJQUFRRSxJQUFJLEdBQUtXLE1BQU0sQ0FBZlgsSUFBSTtJQUNaLElBQU1FLEdBQUcsR0FBR0YsSUFBSSxDQUFDZSxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQzNCLElBQU1rRCxLQUFLLEdBQUdqRSxJQUFJLENBQUNlLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDL0IsSUFBTW1ELE1BQU0sR0FBR2xFLElBQUksQ0FBQ2UsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxJQUFNRCxTQUFTLEdBQUdkLElBQUksQ0FBQ2UsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE1BQU07SUFDakQsSUFBTW9ELE1BQU0sR0FBR25FLElBQUksQ0FBQ2UsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxJQUFNcUQsY0FBYyxHQUFHcEUsSUFBSSxDQUFDZSxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ3pDLElBQU1DLEdBQUcsR0FBR2hCLElBQUksQ0FBQ2UsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUMzQixJQUFNaUQsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJQyxLQUFLLEVBQUU7TUFDVEQsS0FBSyxDQUFDQyxLQUFLLE1BQUFTLE1BQUEsQ0FBTVQsS0FBSyxPQUFJO0lBQzVCO0lBRUEsSUFBSUMsTUFBTSxFQUFFO01BQ1ZGLEtBQUssQ0FBQ0UsTUFBTSxNQUFBUSxNQUFBLENBQU1SLE1BQU0sT0FBSTtJQUM5QjtJQUVBRixLQUFLLENBQUNHLE1BQU0sR0FBR0EsTUFBTTtJQUNyQkgsS0FBSyxDQUFDSSxjQUFjLEdBQUdBLGNBQWM7SUFFckMsSUFBSXRELFNBQVMsRUFBRTtNQUNiLFFBQVFBLFNBQVM7UUFDZixLQUFLLE1BQU07VUFDVGtELEtBQUssQ0FBQ0ksY0FBYyxHQUFHLFlBQVk7VUFDbkNKLEtBQUssQ0FBQ0csTUFBTSxHQUFHLEdBQUc7VUFDbEI7UUFDRixLQUFLLFFBQVE7VUFDWEgsS0FBSyxDQUFDSSxjQUFjLEdBQUcsUUFBUTtVQUMvQkosS0FBSyxDQUFDRyxNQUFNLEdBQUcsUUFBUTtVQUN2QjtRQUNGLEtBQUssT0FBTztVQUNWSCxLQUFLLENBQUNJLGNBQWMsR0FBRyxVQUFVO1VBQ2pDSixLQUFLLENBQUNHLE1BQU0sR0FBRyxlQUFlO1VBQzlCO1FBQ0Y7VUFDRUgsS0FBSyxDQUFDSSxjQUFjLEdBQUcsWUFBWTtVQUNuQztNQUNKO0lBQ0Y7SUFFQUosS0FBSyxDQUFDVyxTQUFTLEdBQUcsU0FBUztJQUUzQixJQUFNaEMsS0FBSyxHQUFHO01BQ1p6QyxHQUFHLEVBQUhBLEdBQUc7TUFDSDhELEtBQUssRUFBTEEsS0FBSztNQUNMbEQsU0FBUyxFQUFUQSxTQUFTO01BQ1RFLEdBQUcsRUFBSEE7SUFDRixDQUFDO0lBRUQsb0JBQU94RCxNQUFBLFlBQUE4QixhQUFBLFFBQVNxRCxLQUFRLENBQUM7RUFDM0I7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_slate","require","_Image","_interopRequireDefault","_component","_imageToolbar","_insertImageHandler","_react","_debug","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","ImagePlugin","opts","toolbar","insertImageRequested","icon","createElement","ariaLabel","onClick","value","onChange","inline","Inline","create","type","isVoid","data","loaded","src","undefined","change","insertInline","onFinish","getValue","InsertImageHandler","supports","node","object","customToolbar","onToolbarDone","alignment","get","alt","imageLoaded","newValues","done","update","toObject","setNodeByKey","key","Tb","disableImageAlignmentButtons","showDone","name","deleteNode","preventDefault","onDelete","merge","Data","deleteStatus","err","v","removeNodeByKey","stopReset","imgPendingInsertion","document","findDescendant","n","renderNode","props","all","assign","onFocus","onBlur","maxImageWidth","maxImageHeight","normalizeNode","textNodeMap","updateNodesArray","index","d","text","withoutNormalization","insertTextByKey","serialization","exports","deserialize","el","tagName","toLowerCase","style","width","height","margin","justifyContent","parseInt","replace","out","getAttribute","serialize","concat","objectFit"],"sources":["../../../src/plugins/image/index.jsx"],"sourcesContent":["import { Data, Inline } from 'slate';\n\nimport Image from '@mui/icons-material/Image';\nimport ImageComponent from './component';\nimport ImageToolbar from './image-toolbar';\nimport InsertImageHandler from './insert-image-handler';\nimport React from 'react';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nexport default function ImagePlugin(opts) {\n const toolbar = opts.insertImageRequested && {\n icon: <Image />,\n ariaLabel: 'Insert Image',\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loaded: false,\n src: undefined,\n },\n });\n\n const change = value.change().insertInline(inline);\n\n onChange(change);\n opts.insertImageRequested(\n inline,\n (onFinish, getValue) => new InsertImageHandler(inline, onFinish, getValue, onChange),\n );\n },\n supports: (node) => node.object === 'inline' && node.type === 'image',\n customToolbar: (node, value, onToolbarDone) => {\n const alignment = node.data.get('alignment');\n const alt = node.data.get('alt');\n const imageLoaded = node.data.get('loaded') !== false;\n const onChange = (newValues, done) => {\n const update = {\n ...node.data.toObject(),\n ...newValues,\n };\n\n const change = value.change().setNodeByKey(node.key, { data: update });\n onToolbarDone(change, done);\n };\n\n const Tb = () => (\n <ImageToolbar\n disableImageAlignmentButtons={opts.disableImageAlignmentButtons}\n alt={alt}\n imageLoaded={imageLoaded}\n alignment={alignment || 'left'}\n onChange={onChange}\n />\n );\n return Tb;\n },\n showDone: true,\n };\n\n return {\n name: 'image',\n toolbar,\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n if (opts.onDelete) {\n const update = node.data.merge(Data.create({ deleteStatus: 'pending' }));\n\n let change = value.change().setNodeByKey(node.key, { data: update });\n\n onChange(change);\n opts.onDelete(node, (err, v) => {\n if (!err) {\n change = v.change().removeNodeByKey(node.key);\n } else {\n log('[error]: ', err);\n change = v.change().setNodeByKey(node.key, node.data.merge(Data.create({ deleteStatus: 'failed' })));\n }\n onChange(change);\n });\n } else {\n let change = value.change().removeNodeByKey(node.key);\n onChange(change);\n }\n },\n stopReset: (value) => {\n const imgPendingInsertion = value.document.findDescendant((n) => {\n if (n.type !== 'image') {\n return;\n }\n return n.data.get('loaded') === false;\n });\n /** don't reset if there is an image pending insertion */\n return imgPendingInsertion !== undefined && imgPendingInsertion !== null;\n },\n renderNode(props) {\n if (props.node.type === 'image') {\n const all = Object.assign(\n {\n onDelete: opts.onDelete,\n onFocus: opts.onFocus,\n onBlur: opts.onBlur,\n maxImageWidth: opts.maxImageWidth,\n maxImageHeight: opts.maxImageHeight,\n },\n props,\n );\n return <ImageComponent {...all} />;\n }\n },\n normalizeNode: (node) => {\n const textNodeMap = {};\n const updateNodesArray = [];\n let index = 0;\n\n if (node.object !== 'document') return;\n\n node.findDescendant((d) => {\n if (d.object === 'text') {\n textNodeMap[index] = d;\n }\n\n if (d.type === 'image') {\n if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {\n updateNodesArray.push(textNodeMap[index - 1]);\n }\n }\n\n index++;\n });\n\n if (!updateNodesArray.length) return;\n\n return (change) => {\n change.withoutNormalization(() => {\n updateNodesArray.forEach((n) => change.insertTextByKey(n.key, 0, ' '));\n });\n };\n },\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n const name = el.tagName.toLowerCase();\n if (name !== 'img') return;\n\n log('deserialize: ', name);\n const style = el.style || { width: '', height: '', margin: '', justifyContent: '' };\n const width = parseInt(style.width.replace('px', ''), 10) || null;\n const height = parseInt(style.height.replace('px', ''), 10) || null;\n\n const out = {\n object: 'inline',\n type: 'image',\n isVoid: true,\n data: {\n src: el.getAttribute('src'),\n width,\n height,\n margin: el.style.margin,\n justifyContent: el.style.justifyContent,\n alignment: el.getAttribute('alignment'),\n alt: el.getAttribute('alt'),\n },\n };\n log('return object: ', out);\n return out;\n },\n serialize(object /*, children*/) {\n if (object.type !== 'image') return;\n\n const { data } = object;\n const src = data.get('src');\n const width = data.get('width');\n const height = data.get('height');\n const alignment = data.get('alignment') || 'left';\n const margin = data.get('margin');\n const justifyContent = data.get('margin');\n const alt = data.get('alt');\n const style = {};\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n style.margin = margin;\n style.justifyContent = justifyContent;\n\n if (alignment) {\n switch (alignment) {\n case 'left':\n style.justifyContent = 'flex-start';\n style.margin = '0';\n break;\n case 'center':\n style.justifyContent = 'center';\n style.margin = '0 auto';\n break;\n case 'right':\n style.justifyContent = 'flex-end';\n style.margin = 'auto 0 0 auto';\n break;\n default:\n style.justifyContent = 'flex-start';\n break;\n }\n }\n\n style.objectFit = 'contain';\n\n const props = {\n src,\n style,\n alignment,\n alt,\n };\n\n return <img {...props} />;\n },\n};\n"],"mappings":"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","ignoreList":[]}