@atlaskit/editor-common 76.34.0 → 76.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/CHANGELOG.md +53 -1
  2. package/dist/cjs/collab/index.js +27 -2
  3. package/dist/cjs/core-utils/document-logger.js +171 -0
  4. package/dist/cjs/core-utils/index.js +8 -1
  5. package/dist/cjs/extensibility/Extension/Extension/index.js +151 -0
  6. package/dist/cjs/extensibility/Extension/Extension/styles.js +17 -0
  7. package/dist/cjs/extensibility/Extension/InlineExtension/index.js +50 -0
  8. package/dist/cjs/extensibility/Extension/InlineExtension/styles.js +12 -0
  9. package/dist/cjs/extensibility/Extension/Lozenge.js +95 -0
  10. package/dist/cjs/extensibility/Extension/styles.js +30 -0
  11. package/dist/cjs/extensibility/Extension.js +79 -0
  12. package/dist/cjs/extensibility/ExtensionComponent.js +252 -0
  13. package/dist/cjs/extensibility/ExtensionNodeWrapper.js +21 -0
  14. package/dist/cjs/extensibility/MultiBodiedExtension/index.js +264 -0
  15. package/dist/cjs/extensibility/extensionNodeView.js +91 -0
  16. package/dist/cjs/extensibility/index.js +42 -0
  17. package/dist/cjs/extensibility/types.js +5 -0
  18. package/dist/cjs/i18n/cs.js +5 -2
  19. package/dist/cjs/i18n/da.js +5 -2
  20. package/dist/cjs/i18n/de.js +5 -2
  21. package/dist/cjs/i18n/en.js +7 -1
  22. package/dist/cjs/i18n/en_GB.js +8 -2
  23. package/dist/cjs/i18n/en_ZZ.js +8 -2
  24. package/dist/cjs/i18n/es.js +5 -2
  25. package/dist/cjs/i18n/fi.js +5 -2
  26. package/dist/cjs/i18n/fr.js +5 -2
  27. package/dist/cjs/i18n/hu.js +5 -2
  28. package/dist/cjs/i18n/it.js +5 -2
  29. package/dist/cjs/i18n/ja.js +1 -2
  30. package/dist/cjs/i18n/ko.js +5 -2
  31. package/dist/cjs/i18n/nb.js +1 -2
  32. package/dist/cjs/i18n/nl.js +5 -2
  33. package/dist/cjs/i18n/pl.js +5 -2
  34. package/dist/cjs/i18n/pt_BR.js +5 -2
  35. package/dist/cjs/i18n/ru.js +5 -2
  36. package/dist/cjs/i18n/sv.js +5 -2
  37. package/dist/cjs/i18n/th.js +5 -2
  38. package/dist/cjs/i18n/tr.js +5 -2
  39. package/dist/cjs/i18n/uk.js +5 -2
  40. package/dist/cjs/i18n/vi.js +5 -2
  41. package/dist/cjs/i18n/zh.js +5 -2
  42. package/dist/cjs/i18n/zh_TW.js +5 -2
  43. package/dist/cjs/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.js +2 -1
  44. package/dist/cjs/link/LinkPicker/HyperlinkAddToolbar/index.js +1 -2
  45. package/dist/cjs/monitoring/error.js +3 -2
  46. package/dist/cjs/ui/DropList/index.js +1 -1
  47. package/dist/es2019/collab/index.js +54 -1
  48. package/dist/es2019/core-utils/document-logger.js +161 -0
  49. package/dist/es2019/core-utils/index.js +2 -1
  50. package/dist/es2019/extensibility/Extension/Extension/index.js +155 -0
  51. package/dist/es2019/extensibility/Extension/Extension/styles.js +42 -0
  52. package/dist/es2019/extensibility/Extension/InlineExtension/index.js +26 -0
  53. package/dist/es2019/extensibility/Extension/InlineExtension/styles.js +26 -0
  54. package/dist/es2019/extensibility/Extension/Lozenge.js +71 -0
  55. package/dist/es2019/extensibility/Extension/styles.js +62 -0
  56. package/dist/es2019/extensibility/Extension.js +52 -0
  57. package/dist/es2019/extensibility/ExtensionComponent.js +204 -0
  58. package/dist/es2019/extensibility/ExtensionNodeWrapper.js +13 -0
  59. package/dist/es2019/extensibility/MultiBodiedExtension/index.js +283 -0
  60. package/dist/es2019/extensibility/extensionNodeView.js +62 -0
  61. package/dist/es2019/extensibility/index.js +4 -0
  62. package/dist/es2019/extensibility/types.js +1 -0
  63. package/dist/es2019/i18n/cs.js +5 -2
  64. package/dist/es2019/i18n/da.js +5 -2
  65. package/dist/es2019/i18n/de.js +5 -2
  66. package/dist/es2019/i18n/en.js +7 -1
  67. package/dist/es2019/i18n/en_GB.js +8 -2
  68. package/dist/es2019/i18n/en_ZZ.js +8 -2
  69. package/dist/es2019/i18n/es.js +5 -2
  70. package/dist/es2019/i18n/fi.js +5 -2
  71. package/dist/es2019/i18n/fr.js +5 -2
  72. package/dist/es2019/i18n/hu.js +5 -2
  73. package/dist/es2019/i18n/it.js +5 -2
  74. package/dist/es2019/i18n/ja.js +1 -2
  75. package/dist/es2019/i18n/ko.js +5 -2
  76. package/dist/es2019/i18n/nb.js +1 -2
  77. package/dist/es2019/i18n/nl.js +5 -2
  78. package/dist/es2019/i18n/pl.js +5 -2
  79. package/dist/es2019/i18n/pt_BR.js +5 -2
  80. package/dist/es2019/i18n/ru.js +5 -2
  81. package/dist/es2019/i18n/sv.js +5 -2
  82. package/dist/es2019/i18n/th.js +5 -2
  83. package/dist/es2019/i18n/tr.js +5 -2
  84. package/dist/es2019/i18n/uk.js +5 -2
  85. package/dist/es2019/i18n/vi.js +5 -2
  86. package/dist/es2019/i18n/zh.js +5 -2
  87. package/dist/es2019/i18n/zh_TW.js +5 -2
  88. package/dist/es2019/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.js +2 -1
  89. package/dist/es2019/link/LinkPicker/HyperlinkAddToolbar/index.js +1 -4
  90. package/dist/es2019/monitoring/error.js +3 -2
  91. package/dist/es2019/ui/DropList/index.js +1 -1
  92. package/dist/esm/collab/index.js +23 -1
  93. package/dist/esm/core-utils/document-logger.js +165 -0
  94. package/dist/esm/core-utils/index.js +2 -1
  95. package/dist/esm/extensibility/Extension/Extension/index.js +146 -0
  96. package/dist/esm/extensibility/Extension/Extension/styles.js +10 -0
  97. package/dist/esm/extensibility/Extension/InlineExtension/index.js +43 -0
  98. package/dist/esm/extensibility/Extension/InlineExtension/styles.js +5 -0
  99. package/dist/esm/extensibility/Extension/Lozenge.js +90 -0
  100. package/dist/esm/extensibility/Extension/styles.js +11 -0
  101. package/dist/esm/extensibility/Extension.js +69 -0
  102. package/dist/esm/extensibility/ExtensionComponent.js +243 -0
  103. package/dist/esm/extensibility/ExtensionNodeWrapper.js +14 -0
  104. package/dist/esm/extensibility/MultiBodiedExtension/index.js +257 -0
  105. package/dist/esm/extensibility/extensionNodeView.js +83 -0
  106. package/dist/esm/extensibility/index.js +4 -0
  107. package/dist/esm/extensibility/types.js +1 -0
  108. package/dist/esm/i18n/cs.js +5 -2
  109. package/dist/esm/i18n/da.js +5 -2
  110. package/dist/esm/i18n/de.js +5 -2
  111. package/dist/esm/i18n/en.js +7 -1
  112. package/dist/esm/i18n/en_GB.js +8 -2
  113. package/dist/esm/i18n/en_ZZ.js +8 -2
  114. package/dist/esm/i18n/es.js +5 -2
  115. package/dist/esm/i18n/fi.js +5 -2
  116. package/dist/esm/i18n/fr.js +5 -2
  117. package/dist/esm/i18n/hu.js +5 -2
  118. package/dist/esm/i18n/it.js +5 -2
  119. package/dist/esm/i18n/ja.js +1 -2
  120. package/dist/esm/i18n/ko.js +5 -2
  121. package/dist/esm/i18n/nb.js +1 -2
  122. package/dist/esm/i18n/nl.js +5 -2
  123. package/dist/esm/i18n/pl.js +5 -2
  124. package/dist/esm/i18n/pt_BR.js +5 -2
  125. package/dist/esm/i18n/ru.js +5 -2
  126. package/dist/esm/i18n/sv.js +5 -2
  127. package/dist/esm/i18n/th.js +5 -2
  128. package/dist/esm/i18n/tr.js +5 -2
  129. package/dist/esm/i18n/uk.js +5 -2
  130. package/dist/esm/i18n/vi.js +5 -2
  131. package/dist/esm/i18n/zh.js +5 -2
  132. package/dist/esm/i18n/zh_TW.js +5 -2
  133. package/dist/esm/link/LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar.js +2 -1
  134. package/dist/esm/link/LinkPicker/HyperlinkAddToolbar/index.js +1 -2
  135. package/dist/esm/monitoring/error.js +3 -2
  136. package/dist/esm/ui/DropList/index.js +1 -1
  137. package/dist/types/collab/index.d.ts +7 -0
  138. package/dist/types/core-utils/document-logger.d.ts +6 -0
  139. package/dist/types/core-utils/index.d.ts +1 -0
  140. package/dist/types/extensibility/Extension/Extension/index.d.ts +108 -0
  141. package/dist/types/extensibility/Extension/Extension/styles.d.ts +5 -0
  142. package/dist/types/extensibility/Extension/InlineExtension/index.d.ts +12 -0
  143. package/dist/types/extensibility/Extension/InlineExtension/styles.d.ts +1 -0
  144. package/dist/types/extensibility/Extension/Lozenge.d.ts +14 -0
  145. package/dist/types/extensibility/Extension/styles.d.ts +7 -0
  146. package/dist/types/extensibility/Extension.d.ts +29 -0
  147. package/dist/types/extensibility/ExtensionComponent.d.ts +53 -0
  148. package/dist/types/extensibility/ExtensionNodeWrapper.d.ts +14 -0
  149. package/dist/types/extensibility/MultiBodiedExtension/index.d.ts +26 -0
  150. package/dist/types/extensibility/extensionNodeView.d.ts +31 -0
  151. package/dist/types/extensibility/index.d.ts +4 -0
  152. package/dist/types/extensibility/types.d.ts +6 -0
  153. package/dist/types/i18n/cs.d.ts +5 -2
  154. package/dist/types/i18n/da.d.ts +5 -2
  155. package/dist/types/i18n/de.d.ts +5 -2
  156. package/dist/types/i18n/en.d.ts +7 -1
  157. package/dist/types/i18n/en_GB.d.ts +7 -1
  158. package/dist/types/i18n/en_ZZ.d.ts +7 -1
  159. package/dist/types/i18n/es.d.ts +5 -2
  160. package/dist/types/i18n/fi.d.ts +5 -2
  161. package/dist/types/i18n/fr.d.ts +5 -2
  162. package/dist/types/i18n/hu.d.ts +5 -2
  163. package/dist/types/i18n/it.d.ts +5 -2
  164. package/dist/types/i18n/ja.d.ts +1 -2
  165. package/dist/types/i18n/ko.d.ts +5 -2
  166. package/dist/types/i18n/nb.d.ts +1 -2
  167. package/dist/types/i18n/nl.d.ts +5 -2
  168. package/dist/types/i18n/pl.d.ts +5 -2
  169. package/dist/types/i18n/pt_BR.d.ts +5 -2
  170. package/dist/types/i18n/ru.d.ts +5 -2
  171. package/dist/types/i18n/sv.d.ts +5 -2
  172. package/dist/types/i18n/th.d.ts +5 -2
  173. package/dist/types/i18n/tr.d.ts +5 -2
  174. package/dist/types/i18n/uk.d.ts +5 -2
  175. package/dist/types/i18n/vi.d.ts +5 -2
  176. package/dist/types/i18n/zh.d.ts +5 -2
  177. package/dist/types/i18n/zh_TW.d.ts +5 -2
  178. package/dist/types/link/LinkPicker/HyperlinkAddToolbar/index.d.ts +7 -7
  179. package/dist/types/types/floating-toolbar.d.ts +1 -1
  180. package/dist/types/types/hyperlink.d.ts +1 -0
  181. package/dist/types/types/index.d.ts +1 -1
  182. package/dist/types/types/next-editor-plugin.d.ts +0 -1
  183. package/dist/types/ui/DropList/index.d.ts +1 -1
  184. package/dist/types/ui/OverflowShadow/index.d.ts +1 -1
  185. package/dist/types/ui/with-outer-listeners.d.ts +2 -2
  186. package/dist/types/ui-menu/ColorPickerButton/index.d.ts +1 -1
  187. package/dist/types/ui-menu/ToolbarButton/index.d.ts +1 -1
  188. package/dist/types/ui-react/with-react-editor-view-outer-listeners.d.ts +2 -2
  189. package/dist/types-ts4.5/collab/index.d.ts +7 -0
  190. package/dist/types-ts4.5/core-utils/document-logger.d.ts +6 -0
  191. package/dist/types-ts4.5/core-utils/index.d.ts +1 -0
  192. package/dist/types-ts4.5/extensibility/Extension/Extension/index.d.ts +108 -0
  193. package/dist/types-ts4.5/extensibility/Extension/Extension/styles.d.ts +5 -0
  194. package/dist/types-ts4.5/extensibility/Extension/InlineExtension/index.d.ts +12 -0
  195. package/dist/types-ts4.5/extensibility/Extension/InlineExtension/styles.d.ts +1 -0
  196. package/dist/types-ts4.5/extensibility/Extension/Lozenge.d.ts +14 -0
  197. package/dist/types-ts4.5/extensibility/Extension/styles.d.ts +7 -0
  198. package/dist/types-ts4.5/extensibility/Extension.d.ts +29 -0
  199. package/dist/types-ts4.5/extensibility/ExtensionComponent.d.ts +53 -0
  200. package/dist/types-ts4.5/extensibility/ExtensionNodeWrapper.d.ts +14 -0
  201. package/dist/types-ts4.5/extensibility/MultiBodiedExtension/index.d.ts +26 -0
  202. package/dist/types-ts4.5/extensibility/extensionNodeView.d.ts +31 -0
  203. package/dist/types-ts4.5/extensibility/index.d.ts +4 -0
  204. package/dist/types-ts4.5/extensibility/types.d.ts +8 -0
  205. package/dist/types-ts4.5/i18n/cs.d.ts +5 -2
  206. package/dist/types-ts4.5/i18n/da.d.ts +5 -2
  207. package/dist/types-ts4.5/i18n/de.d.ts +5 -2
  208. package/dist/types-ts4.5/i18n/en.d.ts +7 -1
  209. package/dist/types-ts4.5/i18n/en_GB.d.ts +7 -1
  210. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +7 -1
  211. package/dist/types-ts4.5/i18n/es.d.ts +5 -2
  212. package/dist/types-ts4.5/i18n/fi.d.ts +5 -2
  213. package/dist/types-ts4.5/i18n/fr.d.ts +5 -2
  214. package/dist/types-ts4.5/i18n/hu.d.ts +5 -2
  215. package/dist/types-ts4.5/i18n/it.d.ts +5 -2
  216. package/dist/types-ts4.5/i18n/ja.d.ts +1 -2
  217. package/dist/types-ts4.5/i18n/ko.d.ts +5 -2
  218. package/dist/types-ts4.5/i18n/nb.d.ts +1 -2
  219. package/dist/types-ts4.5/i18n/nl.d.ts +5 -2
  220. package/dist/types-ts4.5/i18n/pl.d.ts +5 -2
  221. package/dist/types-ts4.5/i18n/pt_BR.d.ts +5 -2
  222. package/dist/types-ts4.5/i18n/ru.d.ts +5 -2
  223. package/dist/types-ts4.5/i18n/sv.d.ts +5 -2
  224. package/dist/types-ts4.5/i18n/th.d.ts +5 -2
  225. package/dist/types-ts4.5/i18n/tr.d.ts +5 -2
  226. package/dist/types-ts4.5/i18n/uk.d.ts +5 -2
  227. package/dist/types-ts4.5/i18n/vi.d.ts +5 -2
  228. package/dist/types-ts4.5/i18n/zh.d.ts +5 -2
  229. package/dist/types-ts4.5/i18n/zh_TW.d.ts +5 -2
  230. package/dist/types-ts4.5/link/LinkPicker/HyperlinkAddToolbar/index.d.ts +7 -7
  231. package/dist/types-ts4.5/types/floating-toolbar.d.ts +1 -1
  232. package/dist/types-ts4.5/types/hyperlink.d.ts +1 -0
  233. package/dist/types-ts4.5/types/index.d.ts +1 -1
  234. package/dist/types-ts4.5/types/next-editor-plugin.d.ts +0 -3
  235. package/dist/types-ts4.5/ui/DropList/index.d.ts +1 -1
  236. package/dist/types-ts4.5/ui/OverflowShadow/index.d.ts +1 -1
  237. package/dist/types-ts4.5/ui/with-outer-listeners.d.ts +2 -2
  238. package/dist/types-ts4.5/ui-menu/ColorPickerButton/index.d.ts +1 -1
  239. package/dist/types-ts4.5/ui-menu/ToolbarButton/index.d.ts +1 -1
  240. package/dist/types-ts4.5/ui-react/with-react-editor-view-outer-listeners.d.ts +2 -2
  241. package/extensibility/package.json +15 -0
  242. package/package.json +8 -7
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "BODIED_EXT_PADDING", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _styles.BODIED_EXT_PADDING;
11
+ }
12
+ });
13
+ exports.overlay = void 0;
14
+ Object.defineProperty(exports, "padding", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _styles.EXTENSION_PADDING;
18
+ }
19
+ });
20
+ exports.wrapperDefault = exports.styledImage = exports.placeholderFallbackParams = exports.placeholderFallback = void 0;
21
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
22
+ var _react = require("@emotion/react");
23
+ var _colors = require("@atlaskit/theme/colors");
24
+ var _styles = require("../../styles");
25
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
26
+ var wrapperDefault = exports.wrapperDefault = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: ", ";\n border-radius: ", ";\n position: relative;\n vertical-align: middle;\n\n .ProseMirror-selectednode > span > & > .extension-overlay {\n box-shadow: inset 0px 0px 0px 2px ", ";\n opacity: 1;\n }\n\n &.with-overlay {\n .extension-overlay {\n background: ", ";\n color: transparent;\n }\n\n &:hover .extension-overlay {\n opacity: 1;\n }\n }\n"])), "var(--ds-background-neutral, ".concat(_colors.N20, ")"), "var(--ds-border-radius, 3px)", "var(--ds-border-selected, ".concat(_colors.B200, ")"), "var(--ds-background-neutral-hovered, ".concat(_colors.N20A, ")"));
27
+ var overlay = exports.overlay = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n border-radius: ", ";\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.3s;\n"])), "var(--ds-border-radius, 3px)");
28
+ var placeholderFallback = exports.placeholderFallback = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n align-items: center;\n\n & > img {\n margin: 0 ", ";\n }\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: placeholder-fallback;\n"])), "var(--ds-space-050, 4px)");
29
+ var placeholderFallbackParams = exports.placeholderFallbackParams = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-block;\n max-width: 200px;\n margin-left: 5px;\n color: ", ";\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"])), "var(--ds-text-subtlest, ".concat(_colors.N70, ")"));
30
+ var styledImage = exports.styledImage = (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n max-height: 16px;\n max-width: 16px;\n /* TODO: fix in develop: https://atlassian.slack.com/archives/CFG3PSQ9E/p1647395052443259?thread_ts=1647394572.556029&cid=CFG3PSQ9E */\n /* stylelint-disable-next-line */\n label: lozenge-image;\n"])));
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Extension = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _react = _interopRequireWildcard(require("react"));
17
+ var _providerFactory = require("../provider-factory");
18
+ var _ExtensionComponent = require("./ExtensionComponent");
19
+ 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); }
20
+ 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; }
21
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
22
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
23
+ var Extension = exports.Extension = /*#__PURE__*/function (_Component) {
24
+ (0, _inherits2.default)(Extension, _Component);
25
+ var _super = _createSuper(Extension);
26
+ function Extension(props) {
27
+ var _this;
28
+ (0, _classCallCheck2.default)(this, Extension);
29
+ _this = _super.call(this, props);
30
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderWithProvider", function (_ref) {
31
+ var extensionProvider = _ref.extensionProvider;
32
+ var _this$props = _this.props,
33
+ node = _this$props.node,
34
+ getPos = _this$props.getPos,
35
+ editorView = _this$props.editorView,
36
+ handleContentDOMRef = _this$props.handleContentDOMRef,
37
+ extensionHandlers = _this$props.extensionHandlers,
38
+ references = _this$props.references,
39
+ editorAppearance = _this$props.editorAppearance,
40
+ pluginInjectionApi = _this$props.pluginInjectionApi,
41
+ eventDispatcher = _this$props.eventDispatcher;
42
+ return /*#__PURE__*/_react.default.createElement(_ExtensionComponent.ExtensionComponent, {
43
+ editorView: editorView,
44
+ node: node,
45
+ getPos: getPos,
46
+ references: references,
47
+ extensionProvider: extensionProvider,
48
+ handleContentDOMRef: handleContentDOMRef,
49
+ extensionHandlers: extensionHandlers,
50
+ editorAppearance: editorAppearance,
51
+ pluginInjectionApi: pluginInjectionApi,
52
+ eventDispatcher: eventDispatcher
53
+ });
54
+ });
55
+ _this.providerFactory = props.providerFactory || new _providerFactory.ProviderFactory();
56
+ return _this;
57
+ }
58
+ (0, _createClass2.default)(Extension, [{
59
+ key: "componentWillUnmount",
60
+ value: function componentWillUnmount() {
61
+ if (!this.props.providerFactory) {
62
+ // new ProviderFactory is created if no `providers` has been set
63
+ // in this case when component is unmounted it's safe to destroy this providerFactory
64
+ this.providerFactory.destroy();
65
+ }
66
+ }
67
+ }, {
68
+ key: "render",
69
+ value: function render() {
70
+ return /*#__PURE__*/_react.default.createElement(_providerFactory.WithProviders, {
71
+ providers: ['extensionProvider'],
72
+ providerFactory: this.providerFactory,
73
+ renderNode: this.renderWithProvider
74
+ });
75
+ }
76
+ }]);
77
+ return Extension;
78
+ }(_react.Component);
79
+ (0, _defineProperty2.default)(Extension, "displayName", 'Extension');
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ExtensionComponent = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _react = _interopRequireWildcard(require("react"));
19
+ var _memoizeOne = _interopRequireDefault(require("memoize-one"));
20
+ var _extensions = require("../extensions");
21
+ var _utils = require("../utils");
22
+ var _Extension = _interopRequireDefault(require("./Extension/Extension"));
23
+ var _InlineExtension = _interopRequireDefault(require("./Extension/InlineExtension"));
24
+ var _MultiBodiedExtension = _interopRequireDefault(require("./MultiBodiedExtension"));
25
+ 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); }
26
+ 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; }
27
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
28
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
29
+ var ExtensionComponent = exports.ExtensionComponent = /*#__PURE__*/function (_Component) {
30
+ (0, _inherits2.default)(ExtensionComponent, _Component);
31
+ var _super = _createSuper(ExtensionComponent);
32
+ function ExtensionComponent() {
33
+ var _this;
34
+ (0, _classCallCheck2.default)(this, ExtensionComponent);
35
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
36
+ args[_key] = arguments[_key];
37
+ }
38
+ _this = _super.call.apply(_super, [this].concat(args));
39
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "privatePropsParsed", false);
40
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {});
41
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mounted", false);
42
+ // memoized to avoid rerender on extension state changes
43
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getNodeRenderer", (0, _memoizeOne.default)(_extensions.getNodeRenderer));
44
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getExtensionModuleNodePrivateProps", (0, _memoizeOne.default)(_extensions.getExtensionModuleNodePrivateProps));
45
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setStateFromPromise", function (stateKey, promise) {
46
+ promise && promise.then(function (p) {
47
+ if (!_this.mounted) {
48
+ return;
49
+ }
50
+ _this.setState((0, _defineProperty2.default)({}, stateKey, p));
51
+ });
52
+ });
53
+ /**
54
+ * Parses any private nodes once an extension provider is available.
55
+ *
56
+ * We do this separately from resolving a node renderer component since the
57
+ * private props come from extension provider, rather than an extension
58
+ * handler which only handles `render`/component concerns.
59
+ */
60
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "parsePrivateNodePropsIfNeeded", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
61
+ var _this$props$node$attr, extensionType, extensionKey, privateProps;
62
+ return _regenerator.default.wrap(function _callee$(_context) {
63
+ while (1) switch (_context.prev = _context.next) {
64
+ case 0:
65
+ if (!(_this.privatePropsParsed || !_this.state.extensionProvider)) {
66
+ _context.next = 2;
67
+ break;
68
+ }
69
+ return _context.abrupt("return");
70
+ case 2:
71
+ _this.privatePropsParsed = true;
72
+ _this$props$node$attr = _this.props.node.attrs, extensionType = _this$props$node$attr.extensionType, extensionKey = _this$props$node$attr.extensionKey;
73
+ /**
74
+ * getExtensionModuleNodePrivateProps can throw if there are issues in the
75
+ * manifest
76
+ */
77
+ _context.prev = 4;
78
+ _context.next = 7;
79
+ return _this.getExtensionModuleNodePrivateProps(_this.state.extensionProvider, extensionType, extensionKey);
80
+ case 7:
81
+ privateProps = _context.sent;
82
+ _this.setState({
83
+ _privateProps: privateProps
84
+ });
85
+ _context.next = 14;
86
+ break;
87
+ case 11:
88
+ _context.prev = 11;
89
+ _context.t0 = _context["catch"](4);
90
+ // eslint-disable-next-line no-console
91
+ console.error('Provided extension handler has thrown an error\n', _context.t0);
92
+ /** We don't want this error to block renderer */
93
+ /** We keep rendering the default content */
94
+ case 14:
95
+ case "end":
96
+ return _context.stop();
97
+ }
98
+ }, _callee, null, [[4, 11]]);
99
+ })));
100
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleExtension", function (pmNode, actions) {
101
+ var _pmNode$marks;
102
+ var _this$props = _this.props,
103
+ extensionHandlers = _this$props.extensionHandlers,
104
+ editorView = _this$props.editorView;
105
+ var _pmNode$attrs = pmNode.attrs,
106
+ extensionType = _pmNode$attrs.extensionType,
107
+ extensionKey = _pmNode$attrs.extensionKey,
108
+ parameters = _pmNode$attrs.parameters,
109
+ text = _pmNode$attrs.text;
110
+ var isBodiedExtension = pmNode.type.name === 'bodiedExtension';
111
+ if (isBodiedExtension) {
112
+ return;
113
+ }
114
+ var fragmentLocalId = pmNode === null || pmNode === void 0 || (_pmNode$marks = pmNode.marks) === null || _pmNode$marks === void 0 || (_pmNode$marks = _pmNode$marks.find(function (m) {
115
+ return m.type.name === 'fragment';
116
+ })) === null || _pmNode$marks === void 0 || (_pmNode$marks = _pmNode$marks.attrs) === null || _pmNode$marks === void 0 ? void 0 : _pmNode$marks.localId;
117
+ var node = {
118
+ type: pmNode.type.name,
119
+ extensionType: extensionType,
120
+ extensionKey: extensionKey,
121
+ parameters: parameters,
122
+ content: text,
123
+ localId: pmNode.attrs.localId,
124
+ fragmentLocalId: fragmentLocalId
125
+ };
126
+ var result;
127
+ if (extensionHandlers && extensionHandlers[extensionType]) {
128
+ var render = (0, _utils.getExtensionRenderer)(extensionHandlers[extensionType]);
129
+ result = render(node, editorView.state.doc, actions);
130
+ }
131
+ if (!result) {
132
+ var extensionHandlerFromProvider = _this.state.extensionProvider && _this.getNodeRenderer(_this.state.extensionProvider, extensionType, extensionKey);
133
+ if (extensionHandlerFromProvider) {
134
+ var NodeRenderer = extensionHandlerFromProvider;
135
+ if (node.type === 'multiBodiedExtension') {
136
+ return /*#__PURE__*/_react.default.createElement(NodeRenderer, {
137
+ node: node,
138
+ references: _this.props.references,
139
+ actions: actions
140
+ });
141
+ } else {
142
+ return /*#__PURE__*/_react.default.createElement(NodeRenderer, {
143
+ node: node,
144
+ references: _this.props.references
145
+ });
146
+ }
147
+ }
148
+ }
149
+ return result;
150
+ });
151
+ return _this;
152
+ }
153
+ (0, _createClass2.default)(ExtensionComponent, [{
154
+ key: "UNSAFE_componentWillMount",
155
+ value: function UNSAFE_componentWillMount() {
156
+ this.mounted = true;
157
+ }
158
+ }, {
159
+ key: "componentDidMount",
160
+ value: function componentDidMount() {
161
+ var extensionProvider = this.props.extensionProvider;
162
+ if (extensionProvider) {
163
+ this.setStateFromPromise('extensionProvider', extensionProvider);
164
+ }
165
+ }
166
+ }, {
167
+ key: "componentDidUpdate",
168
+ value: function componentDidUpdate() {
169
+ this.parsePrivateNodePropsIfNeeded();
170
+ }
171
+ }, {
172
+ key: "componentWillUnmount",
173
+ value: function componentWillUnmount() {
174
+ this.mounted = false;
175
+ }
176
+ }, {
177
+ key: "UNSAFE_componentWillReceiveProps",
178
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
179
+ var extensionProvider = nextProps.extensionProvider;
180
+ if (extensionProvider && this.props.extensionProvider !== extensionProvider) {
181
+ this.setStateFromPromise('extensionProvider', extensionProvider);
182
+ }
183
+ }
184
+ }, {
185
+ key: "render",
186
+ value: function render() {
187
+ var _this$state$_privateP;
188
+ var _this$props2 = this.props,
189
+ node = _this$props2.node,
190
+ handleContentDOMRef = _this$props2.handleContentDOMRef,
191
+ editorView = _this$props2.editorView,
192
+ references = _this$props2.references,
193
+ editorAppearance = _this$props2.editorAppearance,
194
+ pluginInjectionApi = _this$props2.pluginInjectionApi,
195
+ getPos = _this$props2.getPos,
196
+ eventDispatcher = _this$props2.eventDispatcher;
197
+ if (node.type.name === 'multiBodiedExtension') {
198
+ return /*#__PURE__*/_react.default.createElement(_MultiBodiedExtension.default, {
199
+ node: node,
200
+ editorView: editorView,
201
+ getPos: getPos,
202
+ handleContentDOMRef: handleContentDOMRef,
203
+ tryExtensionHandler: this.tryExtensionHandler.bind(this),
204
+ eventDispatcher: eventDispatcher,
205
+ pluginInjectionApi: pluginInjectionApi,
206
+ editorAppearance: editorAppearance
207
+ });
208
+ }
209
+ var extensionHandlerResult = this.tryExtensionHandler(undefined);
210
+ switch (node.type.name) {
211
+ case 'extension':
212
+ case 'bodiedExtension':
213
+ return /*#__PURE__*/_react.default.createElement(_Extension.default, {
214
+ node: node,
215
+ getPos: this.props.getPos,
216
+ references: references,
217
+ extensionProvider: this.state.extensionProvider,
218
+ handleContentDOMRef: handleContentDOMRef,
219
+ view: editorView,
220
+ editorAppearance: editorAppearance,
221
+ hideFrame: (_this$state$_privateP = this.state._privateProps) === null || _this$state$_privateP === void 0 ? void 0 : _this$state$_privateP.__hideFrame,
222
+ pluginInjectionApi: pluginInjectionApi
223
+ }, extensionHandlerResult);
224
+ case 'inlineExtension':
225
+ return /*#__PURE__*/_react.default.createElement(_InlineExtension.default, {
226
+ node: node
227
+ }, extensionHandlerResult);
228
+ default:
229
+ return null;
230
+ }
231
+ }
232
+ }, {
233
+ key: "tryExtensionHandler",
234
+ value: function tryExtensionHandler(actions) {
235
+ var node = this.props.node;
236
+ try {
237
+ var extensionContent = this.handleExtension(node, actions);
238
+ if (extensionContent && /*#__PURE__*/_react.default.isValidElement(extensionContent)) {
239
+ return extensionContent;
240
+ }
241
+ } catch (e) {
242
+ // eslint-disable-next-line no-console
243
+ console.error('Provided extension handler has thrown an error\n', e);
244
+ /** We don't want this error to block renderer */
245
+ /** We keep rendering the default content */
246
+ }
247
+
248
+ return null;
249
+ }
250
+ }]);
251
+ return ExtensionComponent;
252
+ }(_react.Component);
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ExtensionNodeWrapper = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _utils = require("../utils");
10
+ /**
11
+ * If inlineExtension, add zero width space to the end of the nodes and wrap with span;
12
+ * else wrap with a div (for multi bodied extensions)
13
+ *
14
+ * @param param0
15
+ * @returns
16
+ */
17
+ var ExtensionNodeWrapper = exports.ExtensionNodeWrapper = function ExtensionNodeWrapper(_ref) {
18
+ var children = _ref.children,
19
+ nodeType = _ref.nodeType;
20
+ return /*#__PURE__*/_react.default.createElement("span", null, children, nodeType === 'inlineExtension' && _utils.ZERO_WIDTH_SPACE);
21
+ };
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _react2 = require("@emotion/react");
16
+ var _colors = require("@atlaskit/theme/colors");
17
+ var _analytics = require("../../analytics");
18
+ var _eventDispatcher = require("../../event-dispatcher");
19
+ var _hooks = require("../../hooks");
20
+ var _utils = require("../../utils");
21
+ var _withPluginState = require("../../with-plugin-state");
22
+ var _templateObject, _templateObject2;
23
+ 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); }
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
+ 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; }
26
+ 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; } /** @jsx jsx */
27
+ var useMultiBodiedExtensionActions = function useMultiBodiedExtensionActions(_ref) {
28
+ var updateActiveChild = _ref.updateActiveChild,
29
+ editorView = _ref.editorView,
30
+ getPos = _ref.getPos,
31
+ node = _ref.node,
32
+ eventDispatcher = _ref.eventDispatcher;
33
+ var actions = _react.default.useMemo(function () {
34
+ return {
35
+ changeActive: function changeActive(index) {
36
+ var updateActiveChildResult = updateActiveChild(index);
37
+ if (eventDispatcher) {
38
+ sendMBEAnalyticsEvent(_analytics.ACTION.CHANGE_ACTIVE, node, eventDispatcher);
39
+ }
40
+ return updateActiveChildResult;
41
+ },
42
+ addChild: function addChild() {
43
+ var state = editorView.state,
44
+ dispatch = editorView.dispatch;
45
+ if (node.content.childCount >= node.attrs.maxFrames) {
46
+ throw new Error("Cannot add more than ".concat(node.attrs.maxFrames, " frames"));
47
+ }
48
+ var p = state.schema.nodes.paragraph.createAndFill({});
49
+ if (!p) {
50
+ throw new Error('Could not create paragraph');
51
+ }
52
+ var frame = state.schema.nodes.extensionFrame.createAndFill({}, [p]);
53
+ var pos = getPos();
54
+ if (typeof pos !== 'number' || !frame) {
55
+ throw new Error('Could not create frame or position not valid');
56
+ }
57
+ var insertAt = Math.min((pos || 1) + node.content.size, state.doc.content.size);
58
+ dispatch(state.tr.insert(insertAt, frame));
59
+ if (eventDispatcher) {
60
+ sendMBEAnalyticsEvent(_analytics.ACTION.ADD_CHILD, node, eventDispatcher);
61
+ }
62
+ return true;
63
+ },
64
+ getChildrenCount: function getChildrenCount() {
65
+ return node.content.childCount;
66
+ },
67
+ removeChild: function removeChild(index) {
68
+ var pos = getPos();
69
+ // TODO: Add child index validation here, don't trust this data
70
+ if (typeof pos !== 'number' || typeof index !== 'number') {
71
+ throw new Error('Position or index not valid');
72
+ }
73
+ var state = editorView.state,
74
+ dispatch = editorView.dispatch;
75
+ if (node.content.childCount === 1) {
76
+ var _tr = state.tr;
77
+ _tr.deleteRange(pos, pos + node.content.size);
78
+ dispatch(_tr);
79
+ return true;
80
+ }
81
+ var $pos = state.doc.resolve(pos);
82
+ var $startNodePos = state.doc.resolve($pos.start($pos.depth + 1));
83
+ var startFramePosition = $startNodePos.posAtIndex(index);
84
+ var maybeFrameNode = state.doc.nodeAt(startFramePosition);
85
+ if (!maybeFrameNode) {
86
+ throw new Error('Could not find frame node');
87
+ }
88
+ var endFramePosition = maybeFrameNode.content.size + startFramePosition;
89
+ var tr = state.tr;
90
+ tr.deleteRange(startFramePosition, endFramePosition);
91
+ dispatch(tr);
92
+ if (eventDispatcher) {
93
+ sendMBEAnalyticsEvent(_analytics.ACTION.REMOVE_CHILD, node, eventDispatcher);
94
+ }
95
+ return true;
96
+ },
97
+ updateParameters: function updateParameters(parameters) {
98
+ var state = editorView.state,
99
+ dispatch = editorView.dispatch;
100
+ var pos = getPos();
101
+ if (typeof pos !== 'number') {
102
+ throw new Error('Position not valid');
103
+ }
104
+ var tr = state.tr.setNodeMarkup(pos, undefined, _objectSpread(_objectSpread({}, node.attrs), {}, {
105
+ parameters: _objectSpread(_objectSpread({}, node.attrs.parameters), {}, {
106
+ macroParams: parameters
107
+ })
108
+ }));
109
+ dispatch(tr);
110
+ if (eventDispatcher) {
111
+ sendMBEAnalyticsEvent(_analytics.ACTION.UPDATE_PARAMETERS, node, eventDispatcher);
112
+ }
113
+ return true;
114
+ },
115
+ getChildren: function getChildren() {
116
+ var _state$doc$nodeAt;
117
+ var state = editorView.state;
118
+ var pos = getPos();
119
+ if (typeof pos !== 'number') {
120
+ return [];
121
+ }
122
+ var children = (_state$doc$nodeAt = state.doc.nodeAt(pos)) === null || _state$doc$nodeAt === void 0 ? void 0 : _state$doc$nodeAt.content;
123
+ if (eventDispatcher) {
124
+ sendMBEAnalyticsEvent(_analytics.ACTION.GET_CHILDERN, node, eventDispatcher);
125
+ }
126
+ return children ? children.toJSON() : [];
127
+ }
128
+ };
129
+ }, [node, editorView, getPos, updateActiveChild, eventDispatcher]);
130
+ return actions;
131
+ };
132
+ var navigationCSS = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n // make sure the user can't see a range selection inside the navigation\n // This is really important to keep the navigation working properly\n user-select: none;\n -webkit-user-modify: read-only;\n border: 1px solid ", ";\n"])), "var(--ds-border, ".concat(_colors.N40, ")"));
133
+ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref2) {
134
+ var node = _ref2.node,
135
+ handleContentDOMRef = _ref2.handleContentDOMRef,
136
+ getPos = _ref2.getPos,
137
+ tryExtensionHandler = _ref2.tryExtensionHandler,
138
+ editorView = _ref2.editorView,
139
+ eventDispatcher = _ref2.eventDispatcher,
140
+ widthState = _ref2.widthState,
141
+ editorAppearance = _ref2.editorAppearance;
142
+ var _useState = (0, _react.useState)(0),
143
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
144
+ activeChildIndex = _useState2[0],
145
+ setActiveChildIndex = _useState2[1];
146
+ // Adding to avoid aliasing `this` for the callbacks
147
+ var updateActiveChild = _react.default.useCallback(function (index) {
148
+ if (typeof index !== 'number') {
149
+ setActiveChildIndex(0);
150
+ throw new Error('Index is not valid');
151
+ }
152
+ setActiveChildIndex(index);
153
+ return true;
154
+ }, [setActiveChildIndex]);
155
+ var actions = useMultiBodiedExtensionActions({
156
+ updateActiveChild: updateActiveChild,
157
+ editorView: editorView,
158
+ getPos: getPos,
159
+ eventDispatcher: eventDispatcher,
160
+ node: node
161
+ });
162
+ var extensionHandlerResult = _react.default.useMemo(function () {
163
+ return tryExtensionHandler(actions);
164
+ }, [tryExtensionHandler, actions]);
165
+ var articleRef = _react.default.useCallback(function (node) {
166
+ return handleContentDOMRef(node);
167
+ }, [handleContentDOMRef]);
168
+ var containerCSS = (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n border: 1px solid ", ";\n min-height: 100px;\n .multiBodiedExtension-content-dom-wrapper > [data-extension-frame='true'] {\n display: none;\n }\n\n .multiBodiedExtension-content-dom-wrapper\n > [data-extension-frame='true']:nth-of-type(", ") {\n border: 1px solid ", ";\n display: block;\n min-height: 100px;\n }\n "])), "var(--ds-border, ".concat(_colors.N30, ")"), activeChildIndex + 1, "var(--ds-border, ".concat(_colors.N50, ")"));
169
+ var shouldBreakout =
170
+ // Extension should breakout when the layout is set to 'full-width' or 'wide'.
171
+ ['full-width', 'wide'].includes(node.attrs.layout) &&
172
+ // Extension breakout state should not be respected when the editor appearance is full-width mode
173
+ editorAppearance !== 'full-width';
174
+ var mbeContainerStyles = {};
175
+ if (shouldBreakout) {
176
+ var _calculateBreakoutSty = (0, _utils.calculateBreakoutStyles)({
177
+ mode: node.attrs.layout,
178
+ widthStateLineLength: widthState === null || widthState === void 0 ? void 0 : widthState.lineLength,
179
+ widthStateWidth: widthState === null || widthState === void 0 ? void 0 : widthState.width
180
+ }),
181
+ breakoutStyles = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_calculateBreakoutSty), _calculateBreakoutSty));
182
+ mbeContainerStyles = breakoutStyles;
183
+ }
184
+ return (0, _react2.jsx)("section", {
185
+ className: "multiBodiedExtension--container",
186
+ css: containerCSS,
187
+ "data-testid": "multiBodiedExtension--container",
188
+ "data-active-child-index": activeChildIndex,
189
+ style: mbeContainerStyles
190
+ }, (0, _react2.jsx)("nav", {
191
+ className: "multiBodiedExtension-navigation",
192
+ css: navigationCSS,
193
+ "data-testid": "multiBodiedExtension-navigation"
194
+ }, extensionHandlerResult), (0, _react2.jsx)("article", {
195
+ className: "multiBodiedExtension--frames",
196
+ "data-testid": "multiBodiedExtension--frames",
197
+ ref: articleRef
198
+ }));
199
+ };
200
+ var sendMBEAnalyticsEvent = function sendMBEAnalyticsEvent(action, node, eventDispatcher) {
201
+ var analyticsDispatch = (0, _eventDispatcher.createDispatch)(eventDispatcher);
202
+ analyticsDispatch(_utils.analyticsEventKey, {
203
+ payload: {
204
+ action: action,
205
+ actionSubject: _analytics.ACTION_SUBJECT.MULTI_BODIED_EXTENSION,
206
+ eventType: _analytics.EVENT_TYPE.TRACK,
207
+ attributes: {
208
+ extensionType: node.attrs.extensionType,
209
+ extensionKey: node.attrs.extensionKey,
210
+ localId: node.attrs.localId,
211
+ maxFramesCount: node.attrs.maxFrames,
212
+ currentFramesCount: node.content.childCount
213
+ }
214
+ }
215
+ });
216
+ };
217
+ var MultiBodiedExtensionWithSharedState = function MultiBodiedExtensionWithSharedState(props) {
218
+ var pluginInjectionApi = props.pluginInjectionApi;
219
+ var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['width']),
220
+ widthState = _useSharedPluginState.widthState;
221
+ return (0, _react2.jsx)(MultiBodiedExtensionWithWidth, (0, _extends2.default)({
222
+ widthState: widthState
223
+ }, props));
224
+ };
225
+
226
+ // Workaround taken from platform/packages/editor/editor-core/src/plugins/extension/ui/Extension/Extension/index.tsx
227
+ var MultiBodiedExtension = function MultiBodiedExtension(props) {
228
+ // TODO: ED-17836 This code is here because confluence injects
229
+ // the `editor-referentiality` plugin via `dangerouslyAppendPlugins`
230
+ // which cannot access the `pluginInjectionApi`. When we move
231
+ // Confluence to using presets we can remove this workaround.
232
+ var pluginInjectionApi = props.pluginInjectionApi;
233
+ return pluginInjectionApi === undefined ? (0, _react2.jsx)(MultiBodiedExtensionDeprecated, props) : (0, _react2.jsx)(MultiBodiedExtensionWithSharedState, props);
234
+ };
235
+
236
+ // TODO: ED-17836 This code is here because Confluence injects
237
+ // the `editor-referentiality` plugin via `dangerouslyAppendPlugins`
238
+ // which cannot access the `pluginInjectionApi`. When we move
239
+ // Confluence to using presets we can remove this workaround.
240
+ // @ts-ignore
241
+ var widthPluginKey = {
242
+ key: 'widthPlugin$',
243
+ getState: function getState(state) {
244
+ return state['widthPlugin$'];
245
+ }
246
+ };
247
+ var MultiBodiedExtensionDeprecated = function MultiBodiedExtensionDeprecated(props) {
248
+ return (0, _react2.jsx)(_withPluginState.WithPluginState, {
249
+ editorView: props.editorView,
250
+ plugins: {
251
+ widthState: widthPluginKey
252
+ },
253
+ render: function render(_ref3) {
254
+ var widthState = _ref3.widthState;
255
+ return (0, _react2.jsx)(MultiBodiedExtensionWithWidth, (0, _extends2.default)({
256
+ widthState: widthState
257
+ }, props));
258
+ }
259
+ });
260
+ };
261
+ /**
262
+ * End workaround
263
+ */
264
+ var _default = exports.default = MultiBodiedExtension;