@atlaskit/renderer 115.0.2 → 115.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/ui/Renderer/index.js +1 -1
  3. package/dist/cjs/ui/annotations/contexts/AnnotationManagerContext.js +421 -0
  4. package/dist/cjs/ui/annotations/draft/component.js +13 -1
  5. package/dist/cjs/ui/annotations/element/index.js +38 -6
  6. package/dist/cjs/ui/annotations/element/mark.js +16 -0
  7. package/dist/cjs/ui/annotations/hooks/use-events.js +77 -27
  8. package/dist/cjs/ui/annotations/hooks/use-load-annotations.js +18 -2
  9. package/dist/cjs/ui/annotations/index.js +49 -12
  10. package/dist/cjs/ui/annotations/selection/mounter.js +177 -4
  11. package/dist/es2019/ui/Renderer/index.js +1 -1
  12. package/dist/es2019/ui/annotations/contexts/AnnotationManagerContext.js +416 -0
  13. package/dist/es2019/ui/annotations/draft/component.js +15 -3
  14. package/dist/es2019/ui/annotations/element/index.js +39 -6
  15. package/dist/es2019/ui/annotations/element/mark.js +18 -0
  16. package/dist/es2019/ui/annotations/hooks/use-events.js +85 -28
  17. package/dist/es2019/ui/annotations/hooks/use-load-annotations.js +19 -2
  18. package/dist/es2019/ui/annotations/index.js +47 -10
  19. package/dist/es2019/ui/annotations/selection/mounter.js +177 -6
  20. package/dist/esm/ui/Renderer/index.js +1 -1
  21. package/dist/esm/ui/annotations/contexts/AnnotationManagerContext.js +411 -0
  22. package/dist/esm/ui/annotations/draft/component.js +14 -3
  23. package/dist/esm/ui/annotations/element/index.js +38 -6
  24. package/dist/esm/ui/annotations/element/mark.js +16 -0
  25. package/dist/esm/ui/annotations/hooks/use-events.js +78 -28
  26. package/dist/esm/ui/annotations/hooks/use-load-annotations.js +18 -2
  27. package/dist/esm/ui/annotations/index.js +45 -10
  28. package/dist/esm/ui/annotations/selection/mounter.js +179 -6
  29. package/dist/types/ui/annotations/contexts/AnnotationManagerContext.d.ts +71 -0
  30. package/dist/types/ui/annotations/draft/component.d.ts +5 -1
  31. package/dist/types/ui/annotations/element/mark.d.ts +6 -0
  32. package/dist/types/ui/annotations/index.d.ts +1 -0
  33. package/dist/types-ts4.5/ui/annotations/contexts/AnnotationManagerContext.d.ts +71 -0
  34. package/dist/types-ts4.5/ui/annotations/draft/component.d.ts +5 -1
  35. package/dist/types-ts4.5/ui/annotations/element/mark.d.ts +6 -0
  36. package/dist/types-ts4.5/ui/annotations/index.d.ts +1 -0
  37. package/package.json +13 -5
@@ -12,6 +12,8 @@ var _types = require("@atlaskit/editor-common/types");
12
12
  var _adfSchema = require("@atlaskit/adf-schema");
13
13
  var _analytics = require("@atlaskit/editor-common/analytics");
14
14
  var _types2 = require("@atlaskit/analytics-listeners/types");
15
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
+ var _AnnotationManagerContext = require("../contexts/AnnotationManagerContext");
15
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; }
16
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; }
17
19
  var useAnnotationStateByTypeEvent = exports.useAnnotationStateByTypeEvent = function useAnnotationStateByTypeEvent(_ref) {
@@ -21,6 +23,10 @@ var useAnnotationStateByTypeEvent = exports.useAnnotationStateByTypeEvent = func
21
23
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
22
24
  states = _useState2[0],
23
25
  setStates = _useState2[1];
26
+ var _useAnnotationManager = (0, _AnnotationManagerContext.useAnnotationManagerDispatch)(),
27
+ dispatch = _useAnnotationManager.dispatch;
28
+ var _useAnnotationManager2 = (0, _AnnotationManagerContext.useAnnotationManagerState)(),
29
+ annotations = _useAnnotationManager2.annotations;
24
30
  (0, _react.useLayoutEffect)(function () {
25
31
  if (!updateSubscriber) {
26
32
  return;
@@ -39,12 +45,23 @@ var useAnnotationStateByTypeEvent = exports.useAnnotationStateByTypeEvent = func
39
45
  }, {});
40
46
  setStates(_objectSpread(_objectSpread({}, states), nextStates));
41
47
  };
42
- updateSubscriber.on(_types.AnnotationUpdateEvent.SET_ANNOTATION_STATE, cb);
43
- return function () {
44
- updateSubscriber.off(_types.AnnotationUpdateEvent.SET_ANNOTATION_STATE, cb);
45
- };
46
- }, [states, type, updateSubscriber]);
47
- return states;
48
+ if (!(0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
49
+ updateSubscriber.on(_types.AnnotationUpdateEvent.SET_ANNOTATION_STATE, cb);
50
+ return function () {
51
+ updateSubscriber.off(_types.AnnotationUpdateEvent.SET_ANNOTATION_STATE, cb);
52
+ };
53
+ }
54
+ }, [states, type, updateSubscriber, dispatch]);
55
+ var annotationMarkStates = (0, _react.useMemo)(function () {
56
+ return Object.values(annotations).reduce(function (acc, curr) {
57
+ return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2.default)({}, curr.id, curr.markState));
58
+ }, {});
59
+ }, [annotations]);
60
+ if ((0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
61
+ return annotationMarkStates;
62
+ } else {
63
+ return states;
64
+ }
48
65
  };
49
66
  var useHasFocusEvent = exports.useHasFocusEvent = function useHasFocusEvent(_ref2) {
50
67
  var id = _ref2.id,
@@ -57,6 +74,9 @@ var useHasFocusEvent = exports.useHasFocusEvent = function useHasFocusEvent(_ref
57
74
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
58
75
  isHovered = _useState6[0],
59
76
  setIsHovered = _useState6[1];
77
+ var _useAnnotationManager3 = (0, _AnnotationManagerContext.useAnnotationManagerState)(),
78
+ currentSelectedAnnotationId = _useAnnotationManager3.currentSelectedAnnotationId,
79
+ currentHoveredAnnotationId = _useAnnotationManager3.currentHoveredAnnotationId;
60
80
  (0, _react.useLayoutEffect)(function () {
61
81
  if (!updateSubscriber) {
62
82
  return;
@@ -79,21 +99,30 @@ var useHasFocusEvent = exports.useHasFocusEvent = function useHasFocusEvent(_ref
79
99
  document.activeElement.blur();
80
100
  }
81
101
  };
82
- updateSubscriber.on(_types.AnnotationUpdateEvent.SET_ANNOTATION_FOCUS, cb);
83
- updateSubscriber.on(_types.AnnotationUpdateEvent.SET_ANNOTATION_HOVERED, callbackForHoveredAnnotation);
84
- updateSubscriber.on(_types.AnnotationUpdateEvent.REMOVE_ANNOTATION_FOCUS, removeFocus);
85
- updateSubscriber.on(_types.AnnotationUpdateEvent.REMOVE_ANNOTATION_HOVERED, removeHoverEffect);
86
- return function () {
87
- updateSubscriber.off(_types.AnnotationUpdateEvent.SET_ANNOTATION_FOCUS, cb);
88
- updateSubscriber.off(_types.AnnotationUpdateEvent.SET_ANNOTATION_HOVERED, callbackForHoveredAnnotation);
89
- updateSubscriber.off(_types.AnnotationUpdateEvent.REMOVE_ANNOTATION_FOCUS, removeFocus);
90
- updateSubscriber.off(_types.AnnotationUpdateEvent.SET_ANNOTATION_HOVERED, removeHoverEffect);
91
- };
102
+ if (!(0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
103
+ updateSubscriber.on(_types.AnnotationUpdateEvent.SET_ANNOTATION_FOCUS, cb);
104
+ updateSubscriber.on(_types.AnnotationUpdateEvent.SET_ANNOTATION_HOVERED, callbackForHoveredAnnotation);
105
+ updateSubscriber.on(_types.AnnotationUpdateEvent.REMOVE_ANNOTATION_FOCUS, removeFocus);
106
+ updateSubscriber.on(_types.AnnotationUpdateEvent.REMOVE_ANNOTATION_HOVERED, removeHoverEffect);
107
+ return function () {
108
+ updateSubscriber.off(_types.AnnotationUpdateEvent.SET_ANNOTATION_FOCUS, cb);
109
+ updateSubscriber.off(_types.AnnotationUpdateEvent.SET_ANNOTATION_HOVERED, callbackForHoveredAnnotation);
110
+ updateSubscriber.off(_types.AnnotationUpdateEvent.REMOVE_ANNOTATION_FOCUS, removeFocus);
111
+ updateSubscriber.off(_types.AnnotationUpdateEvent.SET_ANNOTATION_HOVERED, removeHoverEffect);
112
+ };
113
+ }
92
114
  }, [id, updateSubscriber]);
93
- return {
94
- hasFocus: hasFocus,
95
- isHovered: isHovered
96
- };
115
+ if ((0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
116
+ return {
117
+ hasFocus: currentSelectedAnnotationId === id,
118
+ isHovered: currentHoveredAnnotationId === id
119
+ };
120
+ } else {
121
+ return {
122
+ hasFocus: hasFocus,
123
+ isHovered: isHovered
124
+ };
125
+ }
97
126
  };
98
127
  var useAnnotationClickEvent = exports.useAnnotationClickEvent = function useAnnotationClickEvent(props) {
99
128
  var _useState7 = (0, _react.useState)(null),
@@ -103,6 +132,21 @@ var useAnnotationClickEvent = exports.useAnnotationClickEvent = function useAnno
103
132
  var updateSubscriber = props.updateSubscriber,
104
133
  createAnalyticsEvent = props.createAnalyticsEvent,
105
134
  isNestedRender = props.isNestedRender;
135
+ var _useAnnotationManager4 = (0, _AnnotationManagerContext.useAnnotationManagerState)(),
136
+ currentSelectedAnnotationId = _useAnnotationManager4.currentSelectedAnnotationId,
137
+ currentSelectedMarkRef = _useAnnotationManager4.currentSelectedMarkRef;
138
+ var selectedAnnotation = (0, _react.useMemo)(function () {
139
+ return currentSelectedAnnotationId && currentSelectedMarkRef ? {
140
+ annotations: [{
141
+ id: currentSelectedAnnotationId,
142
+ type: _adfSchema.AnnotationTypes.INLINE_COMMENT
143
+ }],
144
+ clickElementTarget: currentSelectedMarkRef
145
+ } : {
146
+ annotations: [],
147
+ clickElementTarget: undefined
148
+ };
149
+ }, [currentSelectedAnnotationId, currentSelectedMarkRef]);
106
150
  (0, _react.useLayoutEffect)(function () {
107
151
  if (!updateSubscriber || isNestedRender) {
108
152
  return;
@@ -147,12 +191,18 @@ var useAnnotationClickEvent = exports.useAnnotationClickEvent = function useAnno
147
191
  document.activeElement.blur();
148
192
  }
149
193
  };
150
- updateSubscriber.on(_types.AnnotationUpdateEvent.ON_ANNOTATION_CLICK, clickCb);
151
- updateSubscriber.on(_types.AnnotationUpdateEvent.DESELECT_ANNOTATIONS, deselectCb);
152
- return function () {
153
- updateSubscriber.off(_types.AnnotationUpdateEvent.ON_ANNOTATION_CLICK, clickCb);
154
- updateSubscriber.off(_types.AnnotationUpdateEvent.DESELECT_ANNOTATIONS, deselectCb);
155
- };
194
+ if (!(0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
195
+ updateSubscriber.on(_types.AnnotationUpdateEvent.ON_ANNOTATION_CLICK, clickCb);
196
+ updateSubscriber.on(_types.AnnotationUpdateEvent.DESELECT_ANNOTATIONS, deselectCb);
197
+ return function () {
198
+ updateSubscriber.off(_types.AnnotationUpdateEvent.ON_ANNOTATION_CLICK, clickCb);
199
+ updateSubscriber.off(_types.AnnotationUpdateEvent.DESELECT_ANNOTATIONS, deselectCb);
200
+ };
201
+ }
156
202
  }, [updateSubscriber, createAnalyticsEvent, isNestedRender]);
157
- return annotationClickEvent;
203
+ if ((0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
204
+ return selectedAnnotation;
205
+ } else {
206
+ return annotationClickEvent;
207
+ }
158
208
  };
@@ -11,6 +11,7 @@ var _types = require("@atlaskit/editor-common/types");
11
11
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
12
  var _context = require("../context");
13
13
  var _RendererActionsContext = require("../../RendererActionsContext");
14
+ var _AnnotationManagerContext = require("../contexts/AnnotationManagerContext");
14
15
  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; }
15
16
  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; }
16
17
  var useLoadAnnotations = exports.useLoadAnnotations = function useLoadAnnotations(_ref) {
@@ -19,6 +20,8 @@ var useLoadAnnotations = exports.useLoadAnnotations = function useLoadAnnotation
19
20
  onLoadComplete = _ref.onLoadComplete;
20
21
  var actions = (0, _react.useContext)(_RendererActionsContext.RendererContext);
21
22
  var providers = (0, _react.useContext)(_context.ProvidersContext);
23
+ var _useAnnotationManager = (0, _AnnotationManagerContext.useAnnotationManagerDispatch)(),
24
+ dispatch = _useAnnotationManager.dispatch;
22
25
  (0, _react.useEffect)(function () {
23
26
  if (!providers) {
24
27
  return;
@@ -48,7 +51,20 @@ var useLoadAnnotations = exports.useLoadAnnotations = function useLoadAnnotation
48
51
  var payload = data.reduce(function (acc, value) {
49
52
  return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2.default)({}, value.id, value));
50
53
  }, {});
51
- updateSubscriberInlineComment.emit(_types.AnnotationUpdateEvent.SET_ANNOTATION_STATE, payload);
54
+ if ((0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
55
+ dispatch({
56
+ type: 'loadAnnotation',
57
+ data: Object.keys(payload).map(function (id) {
58
+ var _payload$id$state;
59
+ return {
60
+ id: id,
61
+ markState: (_payload$id$state = payload[id].state) !== null && _payload$id$state !== void 0 ? _payload$id$state : undefined
62
+ };
63
+ })
64
+ });
65
+ } else {
66
+ updateSubscriberInlineComment.emit(_types.AnnotationUpdateEvent.SET_ANNOTATION_STATE, payload);
67
+ }
52
68
  onLoadComplete && onLoadComplete({
53
69
  numberOfUnresolvedInlineComments: data.filter(function (data) {
54
70
  return data.state === 'active';
@@ -56,5 +72,5 @@ var useLoadAnnotations = exports.useLoadAnnotations = function useLoadAnnotation
56
72
  });
57
73
  };
58
74
  inlineCommentGetState(ids, isNestedRender).then(cb);
59
- }, [actions, providers, adfDocument, isNestedRender, onLoadComplete]);
75
+ }, [actions, providers, adfDocument, isNestedRender, onLoadComplete, dispatch]);
60
76
  };
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.AnnotationsWrapper = exports.AnnotationsPositionContext = void 0;
8
- var _react = _interopRequireDefault(require("react"));
7
+ exports.AnnotationsWrapperInner = exports.AnnotationsWrapper = exports.AnnotationsPositionContext = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
  var _adfSchema = require("@atlaskit/adf-schema");
10
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
11
  var _view = require("./view");
11
12
  var _wrapper = require("./wrapper");
12
13
  var _context = require("./context");
@@ -15,6 +16,9 @@ var _useEvents = require("./hooks/use-events");
15
16
  var _analyticsNext = require("@atlaskit/analytics-next");
16
17
  var _AnnotationRangeContext = require("./contexts/AnnotationRangeContext");
17
18
  var _AnnotationHoverContext = require("./contexts/AnnotationHoverContext");
19
+ var _AnnotationManagerContext = require("./contexts/AnnotationManagerContext");
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
22
  var LoadAnnotations = /*#__PURE__*/_react.default.memo(function (_ref) {
19
23
  var adfDocument = _ref.adfDocument,
20
24
  isNestedRender = _ref.isNestedRender,
@@ -34,27 +38,25 @@ var LoadAnnotations = /*#__PURE__*/_react.default.memo(function (_ref) {
34
38
  var AnnotationsPositionContext = exports.AnnotationsPositionContext = /*#__PURE__*/_react.default.createContext({
35
39
  startPos: 1
36
40
  });
37
- var AnnotationsWrapper = exports.AnnotationsWrapper = function AnnotationsWrapper(props) {
38
- var _annotationProvider$i, _annotationProvider$i2;
41
+ var AnnotationsWrapperInner = exports.AnnotationsWrapperInner = function AnnotationsWrapperInner(props) {
42
+ var _providers$inlineComm, _providers$inlineComm2;
39
43
  var children = props.children,
40
- annotationProvider = props.annotationProvider,
41
44
  rendererRef = props.rendererRef,
42
45
  adfDocument = props.adfDocument,
43
46
  isNestedRender = props.isNestedRender,
44
47
  onLoadComplete = props.onLoadComplete;
45
- var updateSubscriber = annotationProvider && annotationProvider.inlineComment && annotationProvider.inlineComment.updateSubscriber;
48
+ var providers = (0, _react.useContext)(_context.ProvidersContext);
49
+ var updateSubscriber = providers && providers.inlineComment && providers.inlineComment.updateSubscriber;
46
50
  var inlineCommentAnnotationsState = (0, _useEvents.useAnnotationStateByTypeEvent)({
47
51
  type: _adfSchema.AnnotationTypes.INLINE_COMMENT,
48
52
  updateSubscriber: updateSubscriber || null
49
53
  });
50
54
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
51
55
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
52
- return /*#__PURE__*/_react.default.createElement(_context.ProvidersContext.Provider, {
53
- value: annotationProvider
54
- }, /*#__PURE__*/_react.default.createElement(_context.InlineCommentsStateContext.Provider, {
56
+ return /*#__PURE__*/_react.default.createElement(_context.InlineCommentsStateContext.Provider, {
55
57
  value: inlineCommentAnnotationsState
56
58
  }, /*#__PURE__*/_react.default.createElement(_AnnotationRangeContext.AnnotationRangeProvider, {
57
- allowCommentsOnMedia: (_annotationProvider$i = annotationProvider === null || annotationProvider === void 0 || (_annotationProvider$i2 = annotationProvider.inlineComment) === null || _annotationProvider$i2 === void 0 ? void 0 : _annotationProvider$i2.allowCommentsOnMedia) !== null && _annotationProvider$i !== void 0 ? _annotationProvider$i : false
59
+ allowCommentsOnMedia: (_providers$inlineComm = providers === null || providers === void 0 || (_providers$inlineComm2 = providers.inlineComment) === null || _providers$inlineComm2 === void 0 ? void 0 : _providers$inlineComm2.allowCommentsOnMedia) !== null && _providers$inlineComm !== void 0 ? _providers$inlineComm : false
58
60
  }, /*#__PURE__*/_react.default.createElement(_AnnotationHoverContext.AnnotationHoverContext, null, /*#__PURE__*/_react.default.createElement(_wrapper.AnnotationsContextWrapper, {
59
61
  createAnalyticsEvent: createAnalyticsEvent,
60
62
  rendererRef: rendererRef,
@@ -66,5 +68,40 @@ var AnnotationsWrapper = exports.AnnotationsWrapper = function AnnotationsWrappe
66
68
  }), /*#__PURE__*/_react.default.createElement(_view.AnnotationView, {
67
69
  isNestedRender: isNestedRender,
68
70
  createAnalyticsEvent: createAnalyticsEvent
69
- }), children)))));
71
+ }), children))));
72
+ };
73
+ var AnnotationsWrapper = exports.AnnotationsWrapper = function AnnotationsWrapper(props) {
74
+ var children = props.children,
75
+ annotationProvider = props.annotationProvider,
76
+ rendererRef = props.rendererRef,
77
+ adfDocument = props.adfDocument,
78
+ isNestedRender = props.isNestedRender,
79
+ onLoadComplete = props.onLoadComplete;
80
+ if (!isNestedRender && (0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
81
+ var _annotationProvider$i, _annotationProvider$i2;
82
+ // We need to ensure there is a single instance of the annotation manager for the whole document
83
+ // and that it is the same instance for all annotations.
84
+ // This is because the annotation manager is responsible for managing the state of ALL annotations.
85
+ // This includes annotations inside extensions.
86
+ return /*#__PURE__*/_react.default.createElement(_context.ProvidersContext.Provider, {
87
+ value: annotationProvider
88
+ }, /*#__PURE__*/_react.default.createElement(_AnnotationManagerContext.AnnotationManagerProvider, {
89
+ annotationManager: annotationProvider === null || annotationProvider === void 0 ? void 0 : annotationProvider.annotationManager,
90
+ updateSubscriber: (_annotationProvider$i = annotationProvider === null || annotationProvider === void 0 || (_annotationProvider$i2 = annotationProvider.inlineComment) === null || _annotationProvider$i2 === void 0 ? void 0 : _annotationProvider$i2.updateSubscriber) !== null && _annotationProvider$i !== void 0 ? _annotationProvider$i : undefined
91
+ }, /*#__PURE__*/_react.default.createElement(AnnotationsWrapperInner, {
92
+ rendererRef: rendererRef,
93
+ adfDocument: adfDocument,
94
+ isNestedRender: isNestedRender,
95
+ onLoadComplete: onLoadComplete
96
+ }, children)));
97
+ } else {
98
+ return /*#__PURE__*/_react.default.createElement(_context.ProvidersContext.Provider, {
99
+ value: annotationProvider
100
+ }, /*#__PURE__*/_react.default.createElement(AnnotationsWrapperInner, {
101
+ rendererRef: rendererRef,
102
+ adfDocument: adfDocument,
103
+ isNestedRender: isNestedRender,
104
+ onLoadComplete: onLoadComplete
105
+ }, children));
106
+ }
70
107
  };
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.SelectionInlineCommentMounter = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
+ var _v = _interopRequireDefault(require("uuid/v4"));
11
12
  var _adfSchema = require("@atlaskit/adf-schema");
12
13
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
14
  var _dom = require("../draft/dom");
@@ -15,6 +16,7 @@ var _types = require("@atlaskit/analytics-listeners/types");
15
16
  var _analytics = require("@atlaskit/editor-common/analytics");
16
17
  var _getRendererRangeInlineNodeNames = require("../../../actions/get-renderer-range-inline-node-names");
17
18
  var _RendererActionsContext = require("../../RendererActionsContext");
19
+ var _AnnotationManagerContext = require("../contexts/AnnotationManagerContext");
18
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
22
  var SelectionInlineCommentMounter = exports.SelectionInlineCommentMounter = /*#__PURE__*/_react.default.memo(function (props) {
@@ -35,6 +37,12 @@ var SelectionInlineCommentMounter = exports.SelectionInlineCommentMounter = /*#_
35
37
  draftDocumentPosition = _useState2[0],
36
38
  setDraftDocumentPosition = _useState2[1];
37
39
  var actions = (0, _react.useContext)(_RendererActionsContext.RendererContext);
40
+ var _useAnnotationManager = (0, _AnnotationManagerContext.useAnnotationManagerState)(),
41
+ isDrafting = _useAnnotationManager.isDrafting,
42
+ draftId = _useAnnotationManager.draftId;
43
+ var _useAnnotationManager2 = (0, _AnnotationManagerContext.useAnnotationManagerDispatch)(),
44
+ annotationManager = _useAnnotationManager2.annotationManager,
45
+ dispatch = _useAnnotationManager2.dispatch;
38
46
  var inlineNodeTypes = (0, _react.useMemo)(function () {
39
47
  if ((0, _platformFeatureFlags.fg)('annotations_defensive_node_name_calculations')) {
40
48
  if (!actions.isRangeAnnotatable(range)) {
@@ -187,6 +195,171 @@ var SelectionInlineCommentMounter = exports.SelectionInlineCommentMounter = /*#_
187
195
  removeDraftModeCallback();
188
196
  onCloseProps();
189
197
  }, [onCloseProps, removeDraftModeCallback, createAnalyticsEvent, inlineNodeTypes]);
198
+ (0, _react.useEffect)(function () {
199
+ if ((0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
200
+ var allowAnnotation = function allowAnnotation() {
201
+ if (isDrafting) {
202
+ return false;
203
+ }
204
+ return isAnnotationAllowed;
205
+ };
206
+ annotationManager === null || annotationManager === void 0 || annotationManager.hook('allowAnnotation', allowAnnotation);
207
+ return function () {
208
+ annotationManager === null || annotationManager === void 0 || annotationManager.unhook('allowAnnotation', allowAnnotation);
209
+ };
210
+ }
211
+ }, [annotationManager, isAnnotationAllowed, isDrafting]);
212
+ (0, _react.useEffect)(function () {
213
+ if ((0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
214
+ var startDraft = function startDraft() {
215
+ var _result$inlineNodeTyp;
216
+ if (isDrafting) {
217
+ return {
218
+ success: false,
219
+ reason: 'draft-in-progress'
220
+ };
221
+ }
222
+ if (!actions.isValidAnnotationRange(range)) {
223
+ return {
224
+ success: false,
225
+ reason: 'invalid-range'
226
+ };
227
+ }
228
+ var id = (0, _v.default)();
229
+ var result = applyDraftModeCallback({
230
+ annotationId: id,
231
+ keepNativeSelection: false
232
+ });
233
+ if (!result) {
234
+ return {
235
+ success: false,
236
+ reason: 'invalid-range'
237
+ };
238
+ }
239
+ dispatch({
240
+ type: 'setDrafting',
241
+ data: {
242
+ isDrafting: true,
243
+ draftId: id,
244
+ draftActionResult: result
245
+ }
246
+ });
247
+ dispatch({
248
+ type: 'resetSelectedAnnotation'
249
+ });
250
+ return {
251
+ success: true,
252
+ // We cannot get a ref to the target element here
253
+ // because the draft is not yet applied to the DOM
254
+ targetElement: undefined,
255
+ inlineNodeTypes: (_result$inlineNodeTyp = result.inlineNodeTypes) !== null && _result$inlineNodeTyp !== void 0 ? _result$inlineNodeTyp : [],
256
+ actionResult: {
257
+ step: result.step,
258
+ doc: result.doc,
259
+ inlineNodeTypes: result.inlineNodeTypes,
260
+ targetNodeType: result.targetNodeType,
261
+ originalSelection: result.originalSelection,
262
+ numMatches: result.numMatches,
263
+ matchIndex: result.matchIndex,
264
+ pos: result.pos
265
+ }
266
+ };
267
+ };
268
+ annotationManager === null || annotationManager === void 0 || annotationManager.hook('startDraft', startDraft);
269
+ return function () {
270
+ annotationManager === null || annotationManager === void 0 || annotationManager.unhook('startDraft', startDraft);
271
+ };
272
+ }
273
+ }, [annotationManager, isDrafting, applyDraftModeCallback, actions, range, dispatch]);
274
+ (0, _react.useEffect)(function () {
275
+ if ((0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
276
+ var clearDraft = function clearDraft() {
277
+ if (!isDrafting) {
278
+ return {
279
+ success: false,
280
+ reason: 'draft-not-started'
281
+ };
282
+ }
283
+ dispatch({
284
+ type: 'setDrafting',
285
+ data: {
286
+ isDrafting: false,
287
+ draftId: undefined,
288
+ draftActionResult: undefined
289
+ }
290
+ });
291
+ onCloseCallback();
292
+ return {
293
+ success: true
294
+ };
295
+ };
296
+ annotationManager === null || annotationManager === void 0 || annotationManager.hook('clearDraft', clearDraft);
297
+ return function () {
298
+ annotationManager === null || annotationManager === void 0 || annotationManager.unhook('clearDraft', clearDraft);
299
+ };
300
+ }
301
+ }, [annotationManager, onCloseCallback, isDrafting, dispatch]);
302
+ (0, _react.useEffect)(function () {
303
+ if ((0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager')) {
304
+ var applyDraft = function applyDraft(id) {
305
+ if (!isDrafting || !draftId) {
306
+ return {
307
+ success: false,
308
+ reason: 'draft-not-started'
309
+ };
310
+ }
311
+ var result = onCreateCallback(id);
312
+ if (!result) {
313
+ return {
314
+ success: false,
315
+ reason: 'range-no-longer-exists'
316
+ };
317
+ }
318
+ onCloseCallback();
319
+ dispatch({
320
+ type: 'setDrafting',
321
+ data: {
322
+ isDrafting: false,
323
+ draftId: undefined,
324
+ draftActionResult: undefined
325
+ }
326
+ });
327
+ dispatch({
328
+ type: 'updateAnnotation',
329
+ data: {
330
+ id: id,
331
+ selected: true,
332
+ markState: _adfSchema.AnnotationMarkStates.ACTIVE
333
+ }
334
+ });
335
+ return {
336
+ success: true,
337
+ targetElement: undefined,
338
+ actionResult: id !== draftId ? {
339
+ step: result.step,
340
+ doc: result.doc,
341
+ inlineNodeTypes: result.inlineNodeTypes,
342
+ targetNodeType: result.targetNodeType,
343
+ originalSelection: result.originalSelection,
344
+ numMatches: result.numMatches,
345
+ matchIndex: result.matchIndex,
346
+ pos: result.pos
347
+ } : undefined
348
+ };
349
+ };
350
+ annotationManager === null || annotationManager === void 0 || annotationManager.hook('applyDraft', applyDraft);
351
+ return function () {
352
+ annotationManager === null || annotationManager === void 0 || annotationManager.unhook('applyDraft', applyDraft);
353
+ };
354
+ }
355
+ }, [annotationManager, onCreateCallback, onCloseCallback, isDrafting, draftId, dispatch]);
356
+
357
+ // Please remove this NOP function when the flag platform_editor_comments_api_manager is removed.
358
+ var nop = (0, _react.useMemo)(function () {
359
+ return function () {
360
+ return false;
361
+ };
362
+ }, []);
190
363
  return /*#__PURE__*/_react.default.createElement(Component, {
191
364
  range: range,
192
365
  draftRange: draftRange
@@ -195,11 +368,11 @@ var SelectionInlineCommentMounter = exports.SelectionInlineCommentMounter = /*#_
195
368
  ,
196
369
  wrapperDOM: wrapperDOM.current,
197
370
  isAnnotationAllowed: isAnnotationAllowed,
198
- onClose: onCloseCallback,
199
- onCreate: onCreateCallback,
371
+ onClose: (0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager') ? nop : onCloseCallback,
372
+ onCreate: (0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager') ? nop : onCreateCallback,
200
373
  getAnnotationIndexMatch: createIndexCallback,
201
- applyDraftMode: applyDraftModeCallback,
202
- removeDraftMode: removeDraftModeCallback,
374
+ applyDraftMode: (0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager') ? nop : applyDraftModeCallback,
375
+ removeDraftMode: (0, _platformFeatureFlags.fg)('platform_editor_comments_api_manager') ? nop : removeDraftModeCallback,
203
376
  inlineNodeTypes: inlineNodeTypes
204
377
  });
205
378
  });
@@ -47,7 +47,7 @@ import { useMemoFromPropsDerivative } from './useMemoFromPropsDerivative';
47
47
  export const NORMAL_SEVERITY_THRESHOLD = 2000;
48
48
  export const DEGRADED_SEVERITY_THRESHOLD = 3000;
49
49
  const packageName = "@atlaskit/renderer";
50
- const packageVersion = "115.0.2";
50
+ const packageVersion = "115.0.4";
51
51
  const setAsQueryContainerStyles = css({
52
52
  containerName: 'ak-renderer-wrapper',
53
53
  containerType: 'inline-size',