@atlaskit/editor-common 103.1.3 → 103.3.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 (162) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/cjs/annotation/index.js +16 -1
  3. package/dist/cjs/annotation/manager.js +243 -0
  4. package/dist/cjs/hooks/usePluginStateEffect.js +12 -3
  5. package/dist/cjs/hooks/useSharedPluginState.js +9 -5
  6. package/dist/cjs/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +9 -3
  7. package/dist/cjs/i18n/cs.js +9 -24
  8. package/dist/cjs/i18n/da.js +9 -24
  9. package/dist/cjs/i18n/de.js +8 -24
  10. package/dist/cjs/i18n/en.js +9 -24
  11. package/dist/cjs/i18n/en_GB.js +9 -24
  12. package/dist/cjs/i18n/en_ZZ.js +9 -24
  13. package/dist/cjs/i18n/es.js +9 -24
  14. package/dist/cjs/i18n/fi.js +9 -24
  15. package/dist/cjs/i18n/fr.js +8 -24
  16. package/dist/cjs/i18n/hu.js +7 -24
  17. package/dist/cjs/i18n/it.js +9 -24
  18. package/dist/cjs/i18n/ja.js +9 -24
  19. package/dist/cjs/i18n/ko.js +10 -25
  20. package/dist/cjs/i18n/nb.js +9 -24
  21. package/dist/cjs/i18n/nl.js +9 -24
  22. package/dist/cjs/i18n/pl.js +8 -24
  23. package/dist/cjs/i18n/pt_BR.js +9 -24
  24. package/dist/cjs/i18n/ru.js +9 -24
  25. package/dist/cjs/i18n/sv.js +9 -24
  26. package/dist/cjs/i18n/th.js +9 -24
  27. package/dist/cjs/i18n/tr.js +9 -24
  28. package/dist/cjs/i18n/uk.js +9 -24
  29. package/dist/cjs/i18n/vi.js +10 -24
  30. package/dist/cjs/i18n/zh.js +9 -24
  31. package/dist/cjs/i18n/zh_TW.js +9 -24
  32. package/dist/cjs/monitoring/error.js +1 -1
  33. package/dist/cjs/ui/DropList/index.js +1 -1
  34. package/dist/es2019/annotation/index.js +22 -0
  35. package/dist/es2019/annotation/manager.js +196 -0
  36. package/dist/es2019/hooks/usePluginStateEffect.js +12 -5
  37. package/dist/es2019/hooks/useSharedPluginState.js +9 -6
  38. package/dist/es2019/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +9 -5
  39. package/dist/es2019/i18n/cs.js +9 -24
  40. package/dist/es2019/i18n/da.js +9 -24
  41. package/dist/es2019/i18n/de.js +8 -24
  42. package/dist/es2019/i18n/en.js +9 -24
  43. package/dist/es2019/i18n/en_GB.js +9 -24
  44. package/dist/es2019/i18n/en_ZZ.js +9 -24
  45. package/dist/es2019/i18n/es.js +9 -24
  46. package/dist/es2019/i18n/fi.js +9 -24
  47. package/dist/es2019/i18n/fr.js +8 -24
  48. package/dist/es2019/i18n/hu.js +7 -24
  49. package/dist/es2019/i18n/it.js +9 -24
  50. package/dist/es2019/i18n/ja.js +9 -24
  51. package/dist/es2019/i18n/ko.js +10 -25
  52. package/dist/es2019/i18n/nb.js +9 -24
  53. package/dist/es2019/i18n/nl.js +9 -24
  54. package/dist/es2019/i18n/pl.js +8 -24
  55. package/dist/es2019/i18n/pt_BR.js +9 -24
  56. package/dist/es2019/i18n/ru.js +9 -24
  57. package/dist/es2019/i18n/sv.js +9 -24
  58. package/dist/es2019/i18n/th.js +9 -24
  59. package/dist/es2019/i18n/tr.js +9 -24
  60. package/dist/es2019/i18n/uk.js +9 -24
  61. package/dist/es2019/i18n/vi.js +10 -24
  62. package/dist/es2019/i18n/zh.js +9 -24
  63. package/dist/es2019/i18n/zh_TW.js +9 -24
  64. package/dist/es2019/monitoring/error.js +1 -1
  65. package/dist/es2019/ui/DropList/index.js +1 -1
  66. package/dist/esm/annotation/index.js +23 -1
  67. package/dist/esm/annotation/manager.js +236 -0
  68. package/dist/esm/hooks/usePluginStateEffect.js +12 -3
  69. package/dist/esm/hooks/useSharedPluginState.js +9 -5
  70. package/dist/esm/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.js +9 -3
  71. package/dist/esm/i18n/cs.js +9 -24
  72. package/dist/esm/i18n/da.js +9 -24
  73. package/dist/esm/i18n/de.js +8 -24
  74. package/dist/esm/i18n/en.js +9 -24
  75. package/dist/esm/i18n/en_GB.js +9 -24
  76. package/dist/esm/i18n/en_ZZ.js +9 -24
  77. package/dist/esm/i18n/es.js +9 -24
  78. package/dist/esm/i18n/fi.js +9 -24
  79. package/dist/esm/i18n/fr.js +8 -24
  80. package/dist/esm/i18n/hu.js +7 -24
  81. package/dist/esm/i18n/it.js +9 -24
  82. package/dist/esm/i18n/ja.js +9 -24
  83. package/dist/esm/i18n/ko.js +10 -25
  84. package/dist/esm/i18n/nb.js +9 -24
  85. package/dist/esm/i18n/nl.js +9 -24
  86. package/dist/esm/i18n/pl.js +8 -24
  87. package/dist/esm/i18n/pt_BR.js +9 -24
  88. package/dist/esm/i18n/ru.js +9 -24
  89. package/dist/esm/i18n/sv.js +9 -24
  90. package/dist/esm/i18n/th.js +9 -24
  91. package/dist/esm/i18n/tr.js +9 -24
  92. package/dist/esm/i18n/uk.js +9 -24
  93. package/dist/esm/i18n/vi.js +10 -24
  94. package/dist/esm/i18n/zh.js +9 -24
  95. package/dist/esm/i18n/zh_TW.js +9 -24
  96. package/dist/esm/monitoring/error.js +1 -1
  97. package/dist/esm/ui/DropList/index.js +1 -1
  98. package/dist/types/annotation/index.d.ts +132 -0
  99. package/dist/types/annotation/manager.d.ts +32 -0
  100. package/dist/types/hooks/usePluginStateEffect.d.ts +4 -1
  101. package/dist/types/hooks/useSharedPluginState.d.ts +6 -1
  102. package/dist/types/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.d.ts +5 -1
  103. package/dist/types/i18n/cs.d.ts +9 -24
  104. package/dist/types/i18n/da.d.ts +9 -24
  105. package/dist/types/i18n/de.d.ts +8 -24
  106. package/dist/types/i18n/en.d.ts +9 -24
  107. package/dist/types/i18n/en_GB.d.ts +9 -24
  108. package/dist/types/i18n/en_ZZ.d.ts +9 -24
  109. package/dist/types/i18n/es.d.ts +9 -24
  110. package/dist/types/i18n/fi.d.ts +9 -24
  111. package/dist/types/i18n/fr.d.ts +8 -24
  112. package/dist/types/i18n/hu.d.ts +7 -24
  113. package/dist/types/i18n/it.d.ts +9 -24
  114. package/dist/types/i18n/ja.d.ts +9 -24
  115. package/dist/types/i18n/ko.d.ts +9 -24
  116. package/dist/types/i18n/nb.d.ts +9 -24
  117. package/dist/types/i18n/nl.d.ts +9 -24
  118. package/dist/types/i18n/pl.d.ts +8 -24
  119. package/dist/types/i18n/pt_BR.d.ts +9 -24
  120. package/dist/types/i18n/ru.d.ts +9 -24
  121. package/dist/types/i18n/sv.d.ts +9 -24
  122. package/dist/types/i18n/th.d.ts +9 -24
  123. package/dist/types/i18n/tr.d.ts +9 -24
  124. package/dist/types/i18n/uk.d.ts +9 -24
  125. package/dist/types/i18n/vi.d.ts +10 -24
  126. package/dist/types/i18n/zh.d.ts +9 -24
  127. package/dist/types/i18n/zh_TW.d.ts +9 -24
  128. package/dist/types/types/annotation/index.d.ts +2 -0
  129. package/dist/types/types/floating-toolbar.d.ts +9 -0
  130. package/dist/types-ts4.5/annotation/index.d.ts +132 -0
  131. package/dist/types-ts4.5/annotation/manager.d.ts +32 -0
  132. package/dist/types-ts4.5/hooks/usePluginStateEffect.d.ts +4 -1
  133. package/dist/types-ts4.5/hooks/useSharedPluginState.d.ts +6 -1
  134. package/dist/types-ts4.5/hooks/useSharedPluginStateSelector/useSharedPluginStateSelector.d.ts +5 -1
  135. package/dist/types-ts4.5/i18n/cs.d.ts +9 -24
  136. package/dist/types-ts4.5/i18n/da.d.ts +9 -24
  137. package/dist/types-ts4.5/i18n/de.d.ts +8 -24
  138. package/dist/types-ts4.5/i18n/en.d.ts +9 -24
  139. package/dist/types-ts4.5/i18n/en_GB.d.ts +9 -24
  140. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +9 -24
  141. package/dist/types-ts4.5/i18n/es.d.ts +9 -24
  142. package/dist/types-ts4.5/i18n/fi.d.ts +9 -24
  143. package/dist/types-ts4.5/i18n/fr.d.ts +8 -24
  144. package/dist/types-ts4.5/i18n/hu.d.ts +7 -24
  145. package/dist/types-ts4.5/i18n/it.d.ts +9 -24
  146. package/dist/types-ts4.5/i18n/ja.d.ts +9 -24
  147. package/dist/types-ts4.5/i18n/ko.d.ts +9 -24
  148. package/dist/types-ts4.5/i18n/nb.d.ts +9 -24
  149. package/dist/types-ts4.5/i18n/nl.d.ts +9 -24
  150. package/dist/types-ts4.5/i18n/pl.d.ts +8 -24
  151. package/dist/types-ts4.5/i18n/pt_BR.d.ts +9 -24
  152. package/dist/types-ts4.5/i18n/ru.d.ts +9 -24
  153. package/dist/types-ts4.5/i18n/sv.d.ts +9 -24
  154. package/dist/types-ts4.5/i18n/th.d.ts +9 -24
  155. package/dist/types-ts4.5/i18n/tr.d.ts +9 -24
  156. package/dist/types-ts4.5/i18n/uk.d.ts +9 -24
  157. package/dist/types-ts4.5/i18n/vi.d.ts +10 -24
  158. package/dist/types-ts4.5/i18n/zh.d.ts +9 -24
  159. package/dist/types-ts4.5/i18n/zh_TW.d.ts +9 -24
  160. package/dist/types-ts4.5/types/annotation/index.d.ts +2 -0
  161. package/dist/types-ts4.5/types/floating-toolbar.d.ts +9 -0
  162. package/package.json +1 -1
@@ -0,0 +1,236 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ import { EventEmitter } from 'events';
5
+ export var SharedAnnotationManager = /*#__PURE__*/function () {
6
+ function SharedAnnotationManager() {
7
+ _classCallCheck(this, SharedAnnotationManager);
8
+ /**
9
+ * This is the event emitter that is used to emit events from the manager. It is used to communicate with
10
+ * other parts of the application.
11
+ */
12
+ _defineProperty(this, "emitter", new EventEmitter());
13
+ /**
14
+ * This is the map of hooks that can be added to the manager. Hooks are a 1:1 mapping of methods that can be
15
+ * called on the manager. They are used to extend the functionality of the manager.
16
+ */
17
+ _defineProperty(this, "hooks", new Map());
18
+ _defineProperty(this, "preemptiveGate", function () {
19
+ return Promise.resolve(true);
20
+ });
21
+ }
22
+ return _createClass(SharedAnnotationManager, [{
23
+ key: "setPreemptiveGate",
24
+ value: function setPreemptiveGate(handler) {
25
+ this.preemptiveGate = handler;
26
+ return this;
27
+ }
28
+ }, {
29
+ key: "checkPreemptiveGate",
30
+ value: function checkPreemptiveGate() {
31
+ return this.preemptiveGate();
32
+ }
33
+ }, {
34
+ key: "onDraftAnnotationStarted",
35
+ value: function onDraftAnnotationStarted(handler) {
36
+ this.emitter.on('draftAnnotationStarted', handler);
37
+ return this;
38
+ }
39
+ }, {
40
+ key: "offDraftAnnotationStarted",
41
+ value: function offDraftAnnotationStarted(handler) {
42
+ this.emitter.off('draftAnnotationStarted', handler);
43
+ return this;
44
+ }
45
+ }, {
46
+ key: "onAnnotationSelectionChange",
47
+ value: function onAnnotationSelectionChange(handler) {
48
+ this.emitter.on('annotationSelectionChanged', handler);
49
+ return this;
50
+ }
51
+ }, {
52
+ key: "offAnnotationSelectionChange",
53
+ value: function offAnnotationSelectionChange(handler) {
54
+ this.emitter.off('annotationSelectionChanged', handler);
55
+ return this;
56
+ }
57
+ }, {
58
+ key: "emit",
59
+ value: function emit(event) {
60
+ this.emitter.emit(event.name, event.data);
61
+ return this;
62
+ }
63
+ }, {
64
+ key: "hook",
65
+ value: function hook(method, handler) {
66
+ this.hooks.set(method, handler);
67
+ return this;
68
+ }
69
+ }, {
70
+ key: "unhook",
71
+ value: function unhook(method, handler) {
72
+ if (!this.hooks.has(method) || this.hooks.get(method) !== handler) {
73
+ return this;
74
+ }
75
+ this.hooks.delete(method);
76
+ return this;
77
+ }
78
+ }, {
79
+ key: "allowAnnotation",
80
+ value: function allowAnnotation() {
81
+ var fn = this.hooks.get('allowAnnotation');
82
+ if (!fn) {
83
+ return false;
84
+ }
85
+ try {
86
+ return fn();
87
+ } catch (error) {
88
+ return false;
89
+ }
90
+ }
91
+ }, {
92
+ key: "startDraft",
93
+ value: function startDraft() {
94
+ var fn = this.hooks.get('startDraft');
95
+ if (!fn) {
96
+ return {
97
+ success: false,
98
+ reason: 'manager-not-initialized'
99
+ };
100
+ }
101
+ try {
102
+ var result = fn();
103
+ if (result.success) {
104
+ this.emitter.emit('draftAnnotationStarted', {
105
+ targetElement: result.targetElement,
106
+ inlineNodeTypes: result.inlineNodeTypes,
107
+ actionResult: result.actionResult
108
+ });
109
+ }
110
+ return result;
111
+ } catch (error) {
112
+ return {
113
+ success: false,
114
+ reason: 'hook-execution-error'
115
+ };
116
+ }
117
+ }
118
+ }, {
119
+ key: "clearDraft",
120
+ value: function clearDraft() {
121
+ var fn = this.hooks.get('clearDraft');
122
+ if (!fn) {
123
+ return {
124
+ success: false,
125
+ reason: 'manager-not-initialized'
126
+ };
127
+ }
128
+ try {
129
+ return fn();
130
+ } catch (error) {
131
+ return {
132
+ success: false,
133
+ reason: 'hook-execution-error'
134
+ };
135
+ }
136
+ }
137
+ }, {
138
+ key: "applyDraft",
139
+ value: function applyDraft(id) {
140
+ var fn = this.hooks.get('applyDraft');
141
+ if (!fn) {
142
+ return {
143
+ success: false,
144
+ reason: 'manager-not-initialized'
145
+ };
146
+ }
147
+ try {
148
+ return fn(id);
149
+ } catch (error) {
150
+ return {
151
+ success: false,
152
+ reason: 'hook-execution-error'
153
+ };
154
+ }
155
+ }
156
+ }, {
157
+ key: "getDraft",
158
+ value: function getDraft() {
159
+ var fn = this.hooks.get('getDraft');
160
+ if (!fn) {
161
+ return {
162
+ success: false,
163
+ reason: 'manager-not-initialized'
164
+ };
165
+ }
166
+ try {
167
+ return fn();
168
+ } catch (error) {
169
+ return {
170
+ success: false,
171
+ reason: 'hook-execution-error'
172
+ };
173
+ }
174
+ }
175
+ }, {
176
+ key: "setIsAnnotationSelected",
177
+ value: function setIsAnnotationSelected(id, isSelected) {
178
+ var fn = this.hooks.get('setIsAnnotationSelected');
179
+ if (!fn) {
180
+ return {
181
+ success: false,
182
+ reason: 'manager-not-initialized'
183
+ };
184
+ }
185
+ try {
186
+ // NOTE: The hook needs to manage the firing the annotationSelectionChanged event when a change is made. This is
187
+ // because the hook is responsible for the state of the selection. The manager is not responsible for the state of
188
+ // the selection.
189
+ return fn(id, isSelected);
190
+ } catch (error) {
191
+ return {
192
+ success: false,
193
+ reason: 'hook-execution-error'
194
+ };
195
+ }
196
+ }
197
+ }, {
198
+ key: "setIsAnnotationHovered",
199
+ value: function setIsAnnotationHovered(id, isHovered) {
200
+ var fn = this.hooks.get('setIsAnnotationHovered');
201
+ if (!fn) {
202
+ return {
203
+ success: false,
204
+ reason: 'manager-not-initialized'
205
+ };
206
+ }
207
+ try {
208
+ return fn(id, isHovered);
209
+ } catch (error) {
210
+ return {
211
+ success: false,
212
+ reason: 'hook-execution-error'
213
+ };
214
+ }
215
+ }
216
+ }, {
217
+ key: "clearAnnotation",
218
+ value: function clearAnnotation(id) {
219
+ var fn = this.hooks.get('clearAnnotation');
220
+ if (!fn) {
221
+ return {
222
+ success: false,
223
+ reason: 'manager-not-initialized'
224
+ };
225
+ }
226
+ try {
227
+ return fn(id);
228
+ } catch (error) {
229
+ return {
230
+ success: false,
231
+ reason: 'hook-execution-error'
232
+ };
233
+ }
234
+ }
235
+ }]);
236
+ }();
@@ -80,6 +80,7 @@ function useStaticPlugins(plugins) {
80
80
  * You can return a function from your effect to call any cleanup activities which will be called on unmount and when `editorApi` changes.
81
81
  */
82
82
  export function usePluginStateEffect(injectionApi, plugins, effect) {
83
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
83
84
  var pluginNames = useStaticPlugins(plugins);
84
85
 
85
86
  // Create a memoized object containing the named plugins
@@ -88,9 +89,10 @@ export function usePluginStateEffect(injectionApi, plugins, effect) {
88
89
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, "".concat(String(pluginName), "State"), injectionApi === null || injectionApi === void 0 ? void 0 : injectionApi[pluginName]));
89
90
  }, {});
90
91
  }, [injectionApi, pluginNames]);
91
- usePluginStateEffectInternal(namedExternalPlugins, effect);
92
+ usePluginStateEffectInternal(namedExternalPlugins, effect, options);
92
93
  }
93
94
  function usePluginStateEffectInternal(externalPlugins, effect) {
95
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
94
96
  var refStates = useRef();
95
97
  var cleanup = useRef();
96
98
  var latestEffect = useRef(effect);
@@ -98,13 +100,20 @@ function usePluginStateEffectInternal(externalPlugins, effect) {
98
100
  // We should store the latest effect in a reference so it is more intuitive to the user
99
101
  // and we are not causing a memory leak by having references to old state.
100
102
  useEffect(function () {
103
+ if (options.disabled) {
104
+ return;
105
+ }
101
106
  latestEffect.current = debounce(effect);
102
107
  return function () {
103
108
  latestEffect.current = undefined;
104
109
  };
105
- }, [effect]);
110
+ }, [effect, options.disabled]);
106
111
  useLayoutEffect(function () {
107
112
  var _latestEffect$current;
113
+ if (options.disabled) {
114
+ return;
115
+ }
116
+
108
117
  // Update the reference for this plugin and activate the effect
109
118
  refStates.current = mapValues(externalPlugins, function (value) {
110
119
  return value === null || value === void 0 ? void 0 : value.sharedState.currentState();
@@ -135,5 +144,5 @@ function usePluginStateEffectInternal(externalPlugins, effect) {
135
144
  };
136
145
  // Do not re-run if the `effect` changes - this is not expected with `useEffect` or similar hooks
137
146
  // eslint-disable-next-line react-hooks/exhaustive-deps
138
- }, [externalPlugins]);
147
+ }, [externalPlugins, options.disabled]);
139
148
  }
@@ -35,7 +35,6 @@ function useStaticPlugins(plugins) {
35
35
  return plugins;
36
36
  }, []);
37
37
  }
38
-
39
38
  /**
40
39
  *
41
40
  * NOTE: Generally you may want to use `usePluginStateSelector` over this which behaves similarly
@@ -97,10 +96,11 @@ function useStaticPlugins(plugins) {
97
96
  *
98
97
  * @param injectionApi Plugin injection API from `NextEditorPlugin`
99
98
  * @param plugins Plugin names to get the shared plugin state for
99
+ * @param options The useSharedPluginState options
100
100
  * @returns A corresponding object, the keys are names of the plugin with `State` appended,
101
101
  * the values are the shared state exposed by that plugin.
102
102
  */
103
- export function useSharedPluginState(injectionApi, plugins) {
103
+ export function useSharedPluginState(injectionApi, plugins, options) {
104
104
  var pluginNames = useStaticPlugins(plugins);
105
105
 
106
106
  // Create a memoized object containing the named plugins
@@ -109,11 +109,12 @@ export function useSharedPluginState(injectionApi, plugins) {
109
109
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, "".concat(String(pluginName), "State"), injectionApi === null || injectionApi === void 0 ? void 0 : injectionApi[pluginName]));
110
110
  }, {});
111
111
  }, [injectionApi, pluginNames]);
112
- return useSharedPluginStateInternal(namedExternalPlugins);
112
+ return useSharedPluginStateInternal(namedExternalPlugins, options);
113
113
  }
114
114
  function useSharedPluginStateInternal(externalPlugins) {
115
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
115
116
  var _useState = useState(mapValues(externalPlugins, function (value) {
116
- return value === null || value === void 0 ? void 0 : value.sharedState.currentState();
117
+ return options.disabled ? undefined : value === null || value === void 0 ? void 0 : value.sharedState.currentState();
117
118
  })),
118
119
  _useState2 = _slicedToArray(_useState, 2),
119
120
  pluginStates = _useState2[0],
@@ -121,6 +122,9 @@ function useSharedPluginStateInternal(externalPlugins) {
121
122
  var refStates = useRef({});
122
123
  var mounted = useRef(false);
123
124
  useLayoutEffect(function () {
125
+ if (options.disabled) {
126
+ return;
127
+ }
124
128
  var debouncedPluginStateUpdate = debounce(function () {
125
129
  setPluginState(function (currentPluginStates) {
126
130
  return _objectSpread(_objectSpread({}, currentPluginStates), refStates.current);
@@ -160,6 +164,6 @@ function useSharedPluginStateInternal(externalPlugins) {
160
164
  // Do not re-render due to state changes, we only need to check this when
161
165
  // setting up the initial subscription.
162
166
  // eslint-disable-next-line react-hooks/exhaustive-deps
163
- }, [externalPlugins]);
167
+ }, [externalPlugins, options.disabled]);
164
168
  return pluginStates;
165
169
  }
@@ -75,9 +75,11 @@ import { usePluginStateEffect } from '../usePluginStateEffect';
75
75
  *
76
76
  * @param api
77
77
  * @param plugin
78
+ * @param options
78
79
  * @returns
79
80
  */
80
81
  export function useSharedPluginStateSelector(api, plugin) {
82
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
81
83
  var transformer = useCallback(function (pluginState) {
82
84
  var _plugin$split = plugin.split('.'),
83
85
  _plugin$split2 = _toArray(_plugin$split),
@@ -96,14 +98,18 @@ export function useSharedPluginStateSelector(api, plugin) {
96
98
  }, [plugin]);
97
99
  var initialState = useMemo(function () {
98
100
  var _api$pluginName;
101
+ if (options.disabled) {
102
+ return;
103
+ }
99
104
  var _plugin$split5 = plugin.split('.'),
100
105
  _plugin$split6 = _slicedToArray(_plugin$split5, 1),
101
106
  pluginName = _plugin$split6[0];
102
107
  return transformer(_defineProperty({}, "".concat(pluginName, "State"), api === null || api === void 0 || (_api$pluginName = api[pluginName]) === null || _api$pluginName === void 0 ? void 0 : _api$pluginName.sharedState.currentState()));
103
- }, [plugin, api, transformer]);
104
- return useSharedPluginStateSelectorInternal(api, pluginNameArray, transformer, initialState);
108
+ }, [plugin, api, options.disabled, transformer]);
109
+ return useSharedPluginStateSelectorInternal(api, pluginNameArray, transformer, initialState, options);
105
110
  }
106
111
  function useSharedPluginStateSelectorInternal(api, plugins, transformer, initialState) {
112
+ var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
107
113
  var _useState = useState(initialState),
108
114
  _useState2 = _slicedToArray(_useState, 2),
109
115
  selectedPluginState = _useState2[0],
@@ -114,6 +120,6 @@ function useSharedPluginStateSelectorInternal(api, plugins, transformer, initial
114
120
  if (!isEqual(transformedValue, selectedPluginState)) {
115
121
  setSelectedPluginState(transformedValue);
116
122
  }
117
- });
123
+ }, options);
118
124
  return selectedPluginState;
119
125
  }
@@ -32,6 +32,7 @@ export default {
32
32
  'fabric.editor.ai.atlas-prebuilt.atlasGenerateContentConfigItemDescription': 'Generuje obsah, který má být vložen do aktualizace.',
33
33
  'fabric.editor.ai.atlas-prebuilt.atlasSummarizePageConfigItemDescription': 'Shrne obsah aktualizace.',
34
34
  'fabric.editor.ai.commandPalette.promptBuilderForm.buttons.submit': 'Generovat',
35
+ 'fabric.editor.ai.commandPalette.promptBuilderForm.generateContent.ariaLabel': 'Zeptejte se Atlassian Intelligence.',
35
36
  'fabric.editor.ai.config.item.action.insert': 'Vložit',
36
37
  'fabric.editor.ai.config.item.action.insertAtTop': 'Vložit nahoru',
37
38
  'fabric.editor.ai.config.item.action.insertBelow': 'Vložit pod',
@@ -39,29 +40,6 @@ export default {
39
40
  'fabric.editor.ai.config.item.action.replaceTitle': 'Nahradit název',
40
41
  'fabric.editor.ai.config.item.action.replaceTitleTooLongDisabledTooltip': 'Název nesmí mít více znaků než {maxLength}.',
41
42
  'fabric.editor.ai.config.item.action.rovoAgents.continueInChatLabel': 'Otevřít v chatu',
42
- 'fabric.editor.ai.config.item.advanced-prompt.form.instructions.label': 'Pokyny',
43
- 'fabric.editor.ai.config.item.advancedPrompt.description': 'Upřesněte úkol, pokyny a pravidla',
44
- 'fabric.editor.ai.config.item.advancedPrompt.form.creativity.label': 'Kreativita',
45
- 'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.high': 'Vysoká',
46
- 'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.low': 'Nízká',
47
- 'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.medium': 'Střední',
48
- 'fabric.editor.ai.config.item.advancedPrompt.form.instructions.helperMessage': 'Příklad: 1. Na začátku dokumentu uveďte stručný přehled cílů naší společnosti. 2. Vytvořte seznam klíčových členů týmu, se kterými se během prvního týdne setkají.',
49
- 'fabric.editor.ai.config.item.advancedPrompt.form.instructions.placeholder': 'Zajistěte pokyny k úkolům, které pomohou generovat konkrétní výstupy.',
50
- 'fabric.editor.ai.config.item.advancedPrompt.form.rules.helperMessage': 'Příklad: Výstup musí být v souladu s pokyny společnosti pro styl a nesmějí používat neověřené údaje.',
51
- 'fabric.editor.ai.config.item.advancedPrompt.form.rules.label': 'Pravidla',
52
- 'fabric.editor.ai.config.item.advancedPrompt.form.rules.placeholder': 'Uveďte pravidla, která mají dodržovat.',
53
- 'fabric.editor.ai.config.item.advancedPrompt.form.task.error.required': 'Zadejte úkol',
54
- 'fabric.editor.ai.config.item.advancedPrompt.form.task.helperMessage': 'Příklad: Vytvořte nástupní dokumentaci pro nové zaměstnance, kteří se připojují k týmu.',
55
- 'fabric.editor.ai.config.item.advancedPrompt.form.task.label': 'Úkol',
56
- 'fabric.editor.ai.config.item.advancedPrompt.form.task.placeholder': 'Popište úkol, který je třeba dokončit.',
57
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.label': 'Tón',
58
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.casual': 'Neformální',
59
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.educational': 'Vzdělávací',
60
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.empathetic': 'Empatický',
61
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.neutral': 'Neutrální',
62
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.professional': 'Profesionální',
63
- 'fabric.editor.ai.config.item.advancedPrompt.promptLabel': 'Vytvořte pokročilou výzvu',
64
- 'fabric.editor.ai.config.item.advancedPrompt.title': 'Vytvořte pokročilou výzvu',
65
43
  'fabric.editor.ai.config.item.agent.title': 'Atlassian Intelligence – Agent Rovo',
66
44
  'fabric.editor.ai.config.item.atlas-shorten-update.description': 'Zkrátí obsah, aby byl stručnější.',
67
45
  'fabric.editor.ai.config.item.atlas-shorten-update.title': 'Zkrátit aktualizaci',
@@ -224,7 +202,6 @@ export default {
224
202
  'fabric.editor.ai.experience.suggestionGroupHeading.knowledgeSource': 'Zdroj znalostí',
225
203
  'fabric.editor.ai.experience.suggestionGroupHeading.rovoAgents': 'Agenti Rovo',
226
204
  'fabric.editor.ai.experience.suggestionGroupHeading.rovoAgentsCount': 'Agenti Rovo ({numberOfAgents})',
227
- 'fabric.editor.ai.experience.suggestionGroupHeading.studio': 'Studio',
228
205
  'fabric.editor.ai.experience.suggestionGroupHeading.useRovoAgentsCount': 'Použijte agenta Rovo ({numberOfAgents})',
229
206
  'fabric.editor.ai.experience.useGeneralAiKnowledgeLabel': 'Použít obecné znalosti',
230
207
  'fabric.editor.ai.experience.useRovoOrganisationKnowledgeLabel': 'Použít znalosti z vaší organizace',
@@ -421,6 +398,7 @@ export default {
421
398
  'fabric.editor.errorPanel.description': 'Chyby zobrazit v barevném panelu',
422
399
  'fabric.editor.expand': 'Rozbalení',
423
400
  'fabric.editor.expand.description': 'Vložit rozbalení',
401
+ 'fabric.editor.expandAriaLabel': 'Dejte rozbalenému obsahu název.',
424
402
  'fabric.editor.expandDefaultTitle': 'Klikněte sem pro rozbalení...',
425
403
  'fabric.editor.expandNode': 'Rozbalit obsah',
426
404
  'fabric.editor.expandPlaceholder': 'Dejte rozbalenému obsahu název...',
@@ -430,6 +408,7 @@ export default {
430
408
  'fabric.editor.extension.deleteElementTitle': 'Odstranit prvek',
431
409
  'fabric.editor.extension.sourceNoTitledName': 'tento prvek',
432
410
  'fabric.editor.extensions.config-panel.save-indicator': 'Všechny změny jsou vždy automaticky ukládány',
411
+ 'fabric.editor.externalExtensionsHeading': 'Aplikace',
433
412
  'fabric.editor.externalMediaFile': 'Externí multimediální soubor',
434
413
  'fabric.editor.failed_to_upload': 'Nahrání se nezdařilo',
435
414
  'fabric.editor.feedbackDialog': 'Poskytnout zpětnou vazbu',
@@ -541,6 +520,7 @@ export default {
541
520
  'fabric.editor.lists': 'Seznamy',
542
521
  'fabric.editor.listsFormat': 'Formátování seznamu',
543
522
  'fabric.editor.lockColumns': 'Pevné šířky sloupců',
523
+ 'fabric.editor.longEmptyNodePlaceholderText': 'Zadáním znaku / můžete vkládat prvky.',
544
524
  'fabric.editor.markdown': 'Snížení',
545
525
  'fabric.editor.matchCase': 'Rozlišovat malá a velká písmena',
546
526
  'fabric.editor.media.DefaultMediaWidthDecreased': '{newMediaWidth, plural, one {Šířka multimédia byla snížena na {newMediaWidth,number} pixel.} few {Šířka multimédia byla snížena na {newMediaWidth,number} pixely.} many {Šířka multimédia byla snížena na {newMediaWidth,number} pixelu.} other {Šířka multimédia byla snížena na {newMediaWidth,number} pixelů.}}',
@@ -609,6 +589,7 @@ export default {
609
589
  'fabric.editor.orderedList.description': 'Vytvořit seřazený seznam',
610
590
  'fabric.editor.other': 'Jiné…',
611
591
  'fabric.editor.outdent': 'Zmenšit odsazení',
592
+ 'fabric.editor.overflowMenuViewMore': 'Zobrazit více',
612
593
  'fabric.editor.pageActionsLabel': 'Akce stránky',
613
594
  'fabric.editor.panel': 'Panel',
614
595
  'fabric.editor.panel.backgroundColor': 'Barva pozadí',
@@ -658,6 +639,7 @@ export default {
658
639
  'fabric.editor.selectTableRow': 'Vybrat řádek tabulky',
659
640
  'fabric.editor.selectionExtensionDropdownButtonLabel': 'Vybrat aplikaci',
660
641
  'fabric.editor.settingsLinks': 'Přejít do předvoleb odkazů',
642
+ 'fabric.editor.shortEmptyNodePlaceholderText': '/ pro vložení',
661
643
  'fabric.editor.shortcut': 'Textový zástupce',
662
644
  'fabric.editor.single': 'Rozvržení jediného sloupce',
663
645
  'fabric.editor.singleColumns': 'Rozvržení 1 sloupce',
@@ -721,8 +703,11 @@ export default {
721
703
  'fabric.editor.time.ago': 'zpět',
722
704
  'fabric.editor.time.updated': 'Aktualizováno',
723
705
  'fabric.editor.time.viewed': 'Zobrazeno',
706
+ 'fabric.editor.toolbarAppears': 'Zobrazí se panel nástrojů',
724
707
  'fabric.editor.toolbarLabel': 'Editor',
725
708
  'fabric.editor.toolbarMediaTitle': 'Přidat obrázek, video nebo soubor',
709
+ 'fabric.editor.toolbarPositionFixedAtTop': 'Uchyceno nahoře',
710
+ 'fabric.editor.toolbarPositionInline': 'Zarovnáno s textem',
726
711
  'fabric.editor.tooltip.blockPanel': 'panel',
727
712
  'fabric.editor.tooltip.bulletList': 'seznam',
728
713
  'fabric.editor.tooltip.decisionList': 'seznam rozhodnutí',
@@ -32,6 +32,7 @@ export default {
32
32
  'fabric.editor.ai.atlas-prebuilt.atlasGenerateContentConfigItemDescription': 'Genererer indhold, der skal sættes ind i opdateringen',
33
33
  'fabric.editor.ai.atlas-prebuilt.atlasSummarizePageConfigItemDescription': 'Opsummerer opdateringens indhold',
34
34
  'fabric.editor.ai.commandPalette.promptBuilderForm.buttons.submit': 'Generér',
35
+ 'fabric.editor.ai.commandPalette.promptBuilderForm.generateContent.ariaLabel': 'Spørg Atlassian Intelligence',
35
36
  'fabric.editor.ai.config.item.action.insert': 'Indsæt',
36
37
  'fabric.editor.ai.config.item.action.insertAtTop': 'Indsæt foroven',
37
38
  'fabric.editor.ai.config.item.action.insertBelow': 'Indsæt nedenfor',
@@ -39,29 +40,6 @@ export default {
39
40
  'fabric.editor.ai.config.item.action.replaceTitle': 'Erstat titel',
40
41
  'fabric.editor.ai.config.item.action.replaceTitleTooLongDisabledTooltip': 'Titlen må højst indeholde {maxLength} tegn',
41
42
  'fabric.editor.ai.config.item.action.rovoAgents.continueInChatLabel': 'Åbn i chat',
42
- 'fabric.editor.ai.config.item.advanced-prompt.form.instructions.label': 'Instruktioner',
43
- 'fabric.editor.ai.config.item.advancedPrompt.description': 'Angiv opgave, instruktioner og regler',
44
- 'fabric.editor.ai.config.item.advancedPrompt.form.creativity.label': 'Kreativitet',
45
- 'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.high': 'Høj',
46
- 'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.low': 'Lav',
47
- 'fabric.editor.ai.config.item.advancedPrompt.form.creativity.option.medium': 'Middel',
48
- 'fabric.editor.ai.config.item.advancedPrompt.form.instructions.helperMessage': 'For eksempel: 1. Start dokumentet med et kort overblik over vores virksomheds mål. 2. Opret en liste over vigtige teammedlemmer, som de skal møde i deres første uge.',
49
- 'fabric.editor.ai.config.item.advancedPrompt.form.instructions.placeholder': 'Giv opgaveinstruktioner for at hjælpe med at generere specifikke output.',
50
- 'fabric.editor.ai.config.item.advancedPrompt.form.rules.helperMessage': 'For eksempel: Outputtet skal følge retningslinjerne for virksomhedens stil og må ikke bruge ubekræftede data.',
51
- 'fabric.editor.ai.config.item.advancedPrompt.form.rules.label': 'Regler',
52
- 'fabric.editor.ai.config.item.advancedPrompt.form.rules.placeholder': 'Beskriv eventuelle regler, du vil have skal følges.',
53
- 'fabric.editor.ai.config.item.advancedPrompt.form.task.error.required': 'Angiv opgave',
54
- 'fabric.editor.ai.config.item.advancedPrompt.form.task.helperMessage': 'For eksempel: Opret onboarding-dokumentation for nye medarbejdere, der slutter sig til teamet.',
55
- 'fabric.editor.ai.config.item.advancedPrompt.form.task.label': 'Opgave',
56
- 'fabric.editor.ai.config.item.advancedPrompt.form.task.placeholder': 'Beskriv den opgave, der skal udføres.',
57
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.label': 'Tone',
58
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.casual': 'Afslappet',
59
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.educational': 'Pædagogisk',
60
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.empathetic': 'Empatisk',
61
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.neutral': 'Neutral',
62
- 'fabric.editor.ai.config.item.advancedPrompt.form.tone.option.professional': 'Professionel',
63
- 'fabric.editor.ai.config.item.advancedPrompt.promptLabel': 'Generér en avanceret prompt',
64
- 'fabric.editor.ai.config.item.advancedPrompt.title': 'Generér en avanceret prompt',
65
43
  'fabric.editor.ai.config.item.agent.title': 'Atlassian Intelligence Rovo-medarbejder',
66
44
  'fabric.editor.ai.config.item.atlas-shorten-update.description': 'Forkorter indholdet for at gøre det mere kortfattet',
67
45
  'fabric.editor.ai.config.item.atlas-shorten-update.title': 'Forkort opdateringen',
@@ -223,7 +201,6 @@ export default {
223
201
  'fabric.editor.ai.experience.suggestionGroupHeading.knowledgeSource': 'Videnskilde',
224
202
  'fabric.editor.ai.experience.suggestionGroupHeading.rovoAgents': 'Rovo-medarbejdere',
225
203
  'fabric.editor.ai.experience.suggestionGroupHeading.rovoAgentsCount': 'Rovo-medarbejdere ({numberOfAgents})',
226
- 'fabric.editor.ai.experience.suggestionGroupHeading.studio': 'Studio',
227
204
  'fabric.editor.ai.experience.suggestionGroupHeading.useRovoAgentsCount': 'Brug en Rovo-medarbejder ({numberOfAgents})',
228
205
  'fabric.editor.ai.experience.useGeneralAiKnowledgeLabel': 'Brug generel viden',
229
206
  'fabric.editor.ai.experience.useRovoOrganisationKnowledgeLabel': 'Brug viden fra din organisation',
@@ -420,6 +397,7 @@ export default {
420
397
  'fabric.editor.errorPanel.description': 'Vis fejl i et farvel panel',
421
398
  'fabric.editor.expand': 'Udvid',
422
399
  'fabric.editor.expand.description': 'Indsæt en udvidelse',
400
+ 'fabric.editor.expandAriaLabel': 'Giv denne udvidelse en titel',
423
401
  'fabric.editor.expandDefaultTitle': 'Klik her for at udvide...',
424
402
  'fabric.editor.expandNode': 'Udvid indhold',
425
403
  'fabric.editor.expandPlaceholder': 'Giv denne udvidelse en titel...',
@@ -429,6 +407,7 @@ export default {
429
407
  'fabric.editor.extension.deleteElementTitle': 'Slet element',
430
408
  'fabric.editor.extension.sourceNoTitledName': 'dette element',
431
409
  'fabric.editor.extensions.config-panel.save-indicator': 'Alle ændringer gemmes altid automatisk',
410
+ 'fabric.editor.externalExtensionsHeading': 'Apps',
432
411
  'fabric.editor.externalMediaFile': 'Ekstern mediefil',
433
412
  'fabric.editor.failed_to_upload': 'Upload mislykkedes',
434
413
  'fabric.editor.feedbackDialog': 'Giv feedback',
@@ -540,6 +519,7 @@ export default {
540
519
  'fabric.editor.lists': 'Liste',
541
520
  'fabric.editor.listsFormat': 'Listeformatering',
542
521
  'fabric.editor.lockColumns': 'Faste søjlebredder',
522
+ 'fabric.editor.longEmptyNodePlaceholderText': 'Skriv / for at indsætte elementer',
543
523
  'fabric.editor.markdown': 'Markdown',
544
524
  'fabric.editor.matchCase': 'Match store/små bogstaver',
545
525
  'fabric.editor.media.DefaultMediaWidthDecreased': '{newMediaWidth, plural, one {Mediebredde reduceret til {newMediaWidth,number} pixel.} other {Mediebredde reduceret til {newMediaWidth,number} pixels.}}',
@@ -608,6 +588,7 @@ export default {
608
588
  'fabric.editor.orderedList.description': 'Opret en sorteret liste',
609
589
  'fabric.editor.other': 'Andet …',
610
590
  'fabric.editor.outdent': 'Ryk ud',
591
+ 'fabric.editor.overflowMenuViewMore': 'Vis mere',
611
592
  'fabric.editor.pageActionsLabel': 'Sidehandlinger',
612
593
  'fabric.editor.panel': 'Panel',
613
594
  'fabric.editor.panel.backgroundColor': 'Baggrundsfarve',
@@ -657,6 +638,7 @@ export default {
657
638
  'fabric.editor.selectTableRow': 'Vælg tabelrække',
658
639
  'fabric.editor.selectionExtensionDropdownButtonLabel': 'Vælg app',
659
640
  'fabric.editor.settingsLinks': 'Gå til Indstillinger for links',
641
+ 'fabric.editor.shortEmptyNodePlaceholderText': '/ for at indsætte',
660
642
  'fabric.editor.shortcut': 'Genvej til tekst',
661
643
  'fabric.editor.single': 'Layout med én kolonne',
662
644
  'fabric.editor.singleColumns': 'Layout med en kolonne',
@@ -720,8 +702,11 @@ export default {
720
702
  'fabric.editor.time.ago': 'siden',
721
703
  'fabric.editor.time.updated': 'Opdateret',
722
704
  'fabric.editor.time.viewed': 'Vist',
705
+ 'fabric.editor.toolbarAppears': 'Værktøjslinjen vises',
723
706
  'fabric.editor.toolbarLabel': 'Editor',
724
707
  'fabric.editor.toolbarMediaTitle': 'Tilføj billede, video eller fil',
708
+ 'fabric.editor.toolbarPositionFixedAtTop': 'Fastgjort øverst',
709
+ 'fabric.editor.toolbarPositionInline': 'På linje med tekst',
725
710
  'fabric.editor.tooltip.blockPanel': 'et panel',
726
711
  'fabric.editor.tooltip.bulletList': 'en liste',
727
712
  'fabric.editor.tooltip.decisionList': 'en beslutningsliste',