@atlaskit/editor-common 106.6.2 → 106.7.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 (53) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/i18n/en_ZZ.js +4 -0
  3. package/dist/cjs/i18n/hr.js +2 -0
  4. package/dist/cjs/i18n/sl.js +878 -1
  5. package/dist/cjs/i18n/sr_RS.js +894 -0
  6. package/dist/cjs/monitoring/error.js +1 -1
  7. package/dist/cjs/ui/DropList/index.js +1 -1
  8. package/dist/cjs/user-preferences/hooks.js +6 -5
  9. package/dist/cjs/user-preferences/user-preferences-provider.js +26 -29
  10. package/dist/cjs/user-preferences/user-preferences.js +6 -1
  11. package/dist/cjs/user-preferences/utils.js +42 -0
  12. package/dist/cjs/utils/processRawValue.js +9 -14
  13. package/dist/es2019/i18n/en_ZZ.js +4 -0
  14. package/dist/es2019/i18n/hr.js +2 -0
  15. package/dist/es2019/i18n/sl.js +878 -1
  16. package/dist/es2019/i18n/sr_RS.js +888 -0
  17. package/dist/es2019/monitoring/error.js +1 -1
  18. package/dist/es2019/ui/DropList/index.js +1 -1
  19. package/dist/es2019/user-preferences/hooks.js +6 -5
  20. package/dist/es2019/user-preferences/user-preferences-provider.js +26 -21
  21. package/dist/es2019/user-preferences/user-preferences.js +6 -1
  22. package/dist/es2019/user-preferences/utils.js +27 -0
  23. package/dist/es2019/utils/processRawValue.js +11 -16
  24. package/dist/esm/i18n/en_ZZ.js +4 -0
  25. package/dist/esm/i18n/hr.js +2 -0
  26. package/dist/esm/i18n/sl.js +878 -1
  27. package/dist/esm/i18n/sr_RS.js +888 -0
  28. package/dist/esm/monitoring/error.js +1 -1
  29. package/dist/esm/ui/DropList/index.js +1 -1
  30. package/dist/esm/user-preferences/hooks.js +6 -5
  31. package/dist/esm/user-preferences/user-preferences-provider.js +26 -29
  32. package/dist/esm/user-preferences/user-preferences.js +6 -1
  33. package/dist/esm/user-preferences/utils.js +35 -0
  34. package/dist/esm/utils/processRawValue.js +9 -14
  35. package/dist/types/i18n/en_ZZ.d.ts +4 -0
  36. package/dist/types/i18n/hr.d.ts +2 -0
  37. package/dist/types/i18n/sl.d.ts +877 -0
  38. package/dist/types/i18n/sr_RS.d.ts +887 -0
  39. package/dist/types/user-preferences/hooks.d.ts +8 -6
  40. package/dist/types/user-preferences/persistence-api.d.ts +1 -1
  41. package/dist/types/user-preferences/user-preferences-provider.d.ts +19 -11
  42. package/dist/types/user-preferences/user-preferences.d.ts +6 -4
  43. package/dist/types/user-preferences/utils.d.ts +17 -0
  44. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +4 -0
  45. package/dist/types-ts4.5/i18n/hr.d.ts +2 -0
  46. package/dist/types-ts4.5/i18n/sl.d.ts +877 -0
  47. package/dist/types-ts4.5/i18n/sr_RS.d.ts +887 -0
  48. package/dist/types-ts4.5/user-preferences/hooks.d.ts +8 -6
  49. package/dist/types-ts4.5/user-preferences/persistence-api.d.ts +1 -1
  50. package/dist/types-ts4.5/user-preferences/user-preferences-provider.d.ts +19 -11
  51. package/dist/types-ts4.5/user-preferences/user-preferences.d.ts +6 -4
  52. package/dist/types-ts4.5/user-preferences/utils.d.ts +17 -0
  53. package/package.json +2 -5
@@ -7,7 +7,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
7
7
  import { isFedRamp } from './environment';
8
8
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
9
9
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
10
- var packageVersion = "106.6.2";
10
+ var packageVersion = "106.7.0";
11
11
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
12
12
  // Remove URL as it has UGC
13
13
  // Ignored via go/ees007
@@ -20,7 +20,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
20
20
  import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
21
21
  import Layer from '../Layer';
22
22
  var packageName = "@atlaskit/editor-common";
23
- var packageVersion = "106.6.2";
23
+ var packageVersion = "106.7.0";
24
24
  var halfFocusRing = 1;
25
25
  var dropOffset = '0, 8';
26
26
  // Ignored via go/ees005
@@ -1,17 +1,18 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import { useEffect, useState } from 'react';
3
3
  /**
4
- *
5
- * @param userPreferencesProvider
6
- * @example
4
+ * This hook returns the latest user preference
5
+ * @param {UserPreferencesProvider} userPreferencesProvider an instance of UserPreferencesProvider
6
+ * @example const { resolvedUserPreferences } = edUserPreferences(userPreferencesProvider)
7
+ * @returns {ResolvedUserPreferences | null} the latest user preference
7
8
  */
8
9
  export function useResolvedUserPreferences(userPreferencesProvider) {
9
- var _useState = useState(userPreferencesProvider.getPreferences()),
10
+ var _useState = useState((userPreferencesProvider === null || userPreferencesProvider === void 0 ? void 0 : userPreferencesProvider.getPreferences()) || null),
10
11
  _useState2 = _slicedToArray(_useState, 2),
11
12
  resolvedUserPreferences = _useState2[0],
12
13
  setResolvedUserPreferences = _useState2[1];
13
14
  useEffect(function () {
14
- return userPreferencesProvider.onUpdate(function () {
15
+ return userPreferencesProvider === null || userPreferencesProvider === void 0 ? void 0 : userPreferencesProvider.onUpdate(function () {
15
16
  setResolvedUserPreferences(userPreferencesProvider.getPreferences());
16
17
  });
17
18
  }, [userPreferencesProvider]);
@@ -1,25 +1,27 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
3
  import _createClass from "@babel/runtime/helpers/createClass";
5
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
6
- 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; }
7
- 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) { _defineProperty(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; }
8
5
  import _regeneratorRuntime from "@babel/runtime/regenerator";
6
+ import { areUserPreferencesEqual, mergeUserPreferences } from './utils';
9
7
  /**
10
- *
8
+ * This class is used to manage user preferences in the editor.
9
+ * It provides methods to load, update, and get user preferences,
10
+ * as well as a way to subscribe to updates.
11
+ * @example const userPreferencesProvider = new UserPreferencesProvider(persistenceAPI, defaultPreferences);
11
12
  */
12
13
  export var UserPreferencesProvider = /*#__PURE__*/function () {
13
14
  /**
15
+ * This is the constructor for the UserPreferencesProvider class.
14
16
  * @param persistenceAPI - The persistence API to use for loading and updating user preferences
15
17
  * @param defaultPreferences - The default user preferences to use
16
18
  * @param initialUserPreferences - The initial user preferences to use (optional)
17
- * @example
19
+ * @example const userPreferencesProvider = new UserPreferencesProvider(persistenceAPI, defaultPreferences);
18
20
  */
19
21
  function UserPreferencesProvider(persistenceAPI, defaultPreferences) {
20
22
  var _this$persistenceAPI$, _this$persistenceAPI;
21
23
  _classCallCheck(this, UserPreferencesProvider);
22
- _defineProperty(this, "callbacks", []);
24
+ _defineProperty(this, "updateCallbacks", []);
23
25
  _defineProperty(this, "userPreferences", {});
24
26
  _defineProperty(this, "initialized", false);
25
27
  this.persistenceAPI = persistenceAPI;
@@ -34,7 +36,9 @@ export var UserPreferencesProvider = /*#__PURE__*/function () {
34
36
  }
35
37
 
36
38
  /**
37
- *
39
+ * This method returns the initialized state of the user preferences provider
40
+ * @returns true if the user preferences provider is initialized, false otherwise
41
+ * @example userPreferencesProvider.isInitialized
38
42
  */
39
43
  return _createClass(UserPreferencesProvider, [{
40
44
  key: "isInitialized",
@@ -46,7 +50,7 @@ export var UserPreferencesProvider = /*#__PURE__*/function () {
46
50
  * This method fetches the latest user preferences
47
51
  * @returns a promise that resolves with the user preferences, or rejects if error occurs
48
52
  * @throws Error if there is an error loading user preferences
49
- * @example
53
+ * @example userPreferencesProvider.loadPreferences()
50
54
  */
51
55
  }, {
52
56
  key: "loadPreferences",
@@ -78,7 +82,7 @@ export var UserPreferencesProvider = /*#__PURE__*/function () {
78
82
  * @param value
79
83
  * @returns a promise that resolves when the user preference is updated
80
84
  * @throws Error if there is an error updating user preferences
81
- * @example
85
+ * @example userPreferencesProvider.updatePreference('toolbarDockingPosition', 'top')
82
86
  */
83
87
  )
84
88
  }, {
@@ -109,7 +113,8 @@ export var UserPreferencesProvider = /*#__PURE__*/function () {
109
113
  * get a user preference, Note that this function is a not async function,
110
114
  * meaning that consumers should prefetch the user preference and make it available initially
111
115
  * @param key
112
- * @example
116
+ * @returns the user preference
117
+ * @example userPreferencesProvider.getPreference('toolbarDockingPosition')
113
118
  */
114
119
  )
115
120
  }, {
@@ -120,7 +125,8 @@ export var UserPreferencesProvider = /*#__PURE__*/function () {
120
125
 
121
126
  /**
122
127
  * get all user preferences
123
- * @example
128
+ * @returns the user preferences
129
+ * @example userPreferencesProvider.getPreferences()
124
130
  */
125
131
  }, {
126
132
  key: "getPreferences",
@@ -138,11 +144,11 @@ export var UserPreferencesProvider = /*#__PURE__*/function () {
138
144
  key: "onUpdate",
139
145
  value: function onUpdate(_onUpdate) {
140
146
  var _this = this;
141
- this.callbacks.push(_onUpdate);
147
+ this.updateCallbacks.push(_onUpdate);
142
148
 
143
149
  // Return the cleanup function to unsubscribe from the updates
144
150
  return function () {
145
- _this.callbacks = _this.callbacks.filter(function (callback) {
151
+ _this.updateCallbacks = _this.updateCallbacks.filter(function (callback) {
146
152
  return callback !== _onUpdate;
147
153
  });
148
154
  };
@@ -178,14 +184,14 @@ export var UserPreferencesProvider = /*#__PURE__*/function () {
178
184
  }
179
185
 
180
186
  /**
181
- *
182
- * @example
187
+ * This method is used to notify the user preferences updated
188
+ * @example userPreferencesProvider.notifyUserPreferencesUpdated()
183
189
  */
184
190
  }, {
185
191
  key: "notifyUserPreferencesUpdated",
186
192
  value: function notifyUserPreferencesUpdated() {
187
193
  var _this2 = this;
188
- this.callbacks.forEach(function (callback) {
194
+ this.updateCallbacks.forEach(function (callback) {
189
195
  callback(_this2.resolvedUserPreferences);
190
196
  });
191
197
  }
@@ -195,31 +201,22 @@ export var UserPreferencesProvider = /*#__PURE__*/function () {
195
201
  * with the user preferences and filtering out any undefined or null values
196
202
  * to avoid overwriting default preferences with null values
197
203
  * @returns true if the user preferences were updated, false otherwise
198
- * @example
204
+ * @example userPreferencesProvider.resolveUserPreferences()
199
205
  */
200
206
  }, {
201
207
  key: "resolveUserPreferences",
202
208
  value: function resolveUserPreferences() {
203
- var _this3 = this;
204
209
  // Merge default preferences with user preferences
205
210
  // and filter out any undefined or null values
206
211
  // to avoid overwriting default preferences with null values
207
- var newResolvedUserPreferences = _objectSpread(_objectSpread({}, this.defaultPreferences), Object.fromEntries(Object.entries(this.userPreferences).filter(function (_ref) {
208
- var _ref2 = _slicedToArray(_ref, 2),
209
- v = _ref2[1];
210
- return v !== undefined && v !== null;
211
- })));
212
+ var newResolvedUserPreferences = mergeUserPreferences(this.userPreferences, this.defaultPreferences);
212
213
 
213
214
  // if the user preferences is NOT initialized, we need to update and notify
214
215
  // the user preferences
215
216
  // if the user preferences is initialized, we need to check if the new user preferences
216
217
  // is different from the old user preferences
217
- var needUpdate = Object.entries(newResolvedUserPreferences).some(function (_ref3) {
218
- var _ref4 = _slicedToArray(_ref3, 2),
219
- key = _ref4[0],
220
- value = _ref4[1];
221
- return value !== _this3.resolvedUserPreferences[key];
222
- });
218
+ var isSame = areUserPreferencesEqual(newResolvedUserPreferences, this.resolvedUserPreferences);
219
+ var needUpdate = !isSame;
223
220
  if (needUpdate) {
224
221
  this.resolvedUserPreferences = newResolvedUserPreferences;
225
222
  }
@@ -1 +1,6 @@
1
- export var TOOLBAR_DOCKING_POSITIONS = ['top', 'none'];
1
+ export var TOOLBAR_DOCKING_POSITIONS = ['top', 'none'];
2
+
3
+ /**
4
+ * This type should contain all the user preferences
5
+ * And we do expect all the attributes to be defined
6
+ */
@@ -0,0 +1,35 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ 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; }
4
+ 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) { _defineProperty(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; }
5
+ export var mergeUserPreferences = function mergeUserPreferences(userPreferences, defaultPreferences) {
6
+ var newResolvedUserPreferences = _objectSpread(_objectSpread({}, defaultPreferences), Object.fromEntries(Object.entries(userPreferences).filter(function (_ref) {
7
+ var _ref2 = _slicedToArray(_ref, 2),
8
+ v = _ref2[1];
9
+ return v !== undefined && v !== null;
10
+ })));
11
+ return newResolvedUserPreferences;
12
+ };
13
+
14
+ /**
15
+ * Compare two user preferences objects
16
+ * @param {ResolvedUserPreferences} left a ResolvedUserPreferences
17
+ * @param {ResolvedUserPreferences} right a ResolvedUserPreferences
18
+ * @returns true if the user preferences are the same, false otherwise
19
+ * @example
20
+ * const userPreferences1 = {
21
+ * toolbarDockingPosition: 'top',
22
+ * };
23
+ * const userPreferences2 = {
24
+ * toolbarDockingPosition: 'top',
25
+ * };
26
+ * compareUserPreferences(userPreferences1, userPreferences2); // true
27
+ */
28
+ export var areUserPreferencesEqual = function areUserPreferencesEqual(left, right) {
29
+ return Object.entries(left).every(function (_ref3) {
30
+ var _ref4 = _slicedToArray(_ref3, 2),
31
+ key = _ref4[0],
32
+ value = _ref4[1];
33
+ return value === right[key];
34
+ });
35
+ };
@@ -1,6 +1,5 @@
1
1
  import { transformDedupeMarks, transformIndentationMarks, transformInvalidMediaContent, transformMediaLinkMarks, transformNestedTablesIncomingDocument, transformNodesMissingContent, transformTextLinkCodeMarks } from '@atlaskit/adf-utils/transforms';
2
2
  import { Fragment, Node } from '@atlaskit/editor-prosemirror/model';
3
- import { fg } from '@atlaskit/platform-feature-flags';
4
3
  import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '../analytics';
5
4
  import { sanitizeNodeForPrivacy } from './filter/privacy-filter';
6
5
  import { findAndTrackUnsupportedContentNodes } from './track-unsupported-content';
@@ -56,14 +55,11 @@ export function processRawValueWithoutValidation(schema, value, dispatchAnalytic
56
55
  } else {
57
56
  node = value;
58
57
  }
59
- if (fg('platform_editor_use_nested_table_pm_nodes')) {
60
- // Convert nested-table extensions into nested tables
61
- var _transformNestedTable2 = transformNestedTablesWithAnalytics(node, dispatchAnalyticsEvent),
62
- transformedAdf = _transformNestedTable2.transformedAdf;
63
- return Node.fromJSON(schema, transformedAdf);
64
- } else {
65
- return Node.fromJSON(schema, node);
66
- }
58
+
59
+ // Convert nested-table extensions into nested tables
60
+ var _transformNestedTable2 = transformNestedTablesWithAnalytics(node, dispatchAnalyticsEvent),
61
+ transformedAdf = _transformNestedTable2.transformedAdf;
62
+ return Node.fromJSON(schema, transformedAdf);
67
63
  }
68
64
  export function processRawValue(schema, value, providerFactory, sanitizePrivateContent, contentTransformer, dispatchAnalyticsEvent) {
69
65
  if (!value) {
@@ -191,11 +187,10 @@ export function processRawValue(schema, value, providerFactory, sanitizePrivateC
191
187
  eventType: EVENT_TYPE.OPERATIONAL
192
188
  });
193
189
  }
194
- if (fg('platform_editor_use_nested_table_pm_nodes')) {
195
- // Convert nested-table extensions into nested tables
196
- var _transformNestedTable3 = transformNestedTablesWithAnalytics(transformedAdf, dispatchAnalyticsEvent);
197
- transformedAdf = _transformNestedTable3.transformedAdf;
198
- }
190
+
191
+ // Convert nested-table extensions into nested tables
192
+ var _transformNestedTable3 = transformNestedTablesWithAnalytics(transformedAdf, dispatchAnalyticsEvent);
193
+ transformedAdf = _transformNestedTable3.transformedAdf;
199
194
  if (dispatchAnalyticsEvent) {
200
195
  var _transformedAdf$conte;
201
196
  var hasSingleColumnLayout = (_transformedAdf$conte = transformedAdf.content) === null || _transformedAdf$conte === void 0 ? void 0 : _transformedAdf$conte.some(function (node) {
@@ -333,6 +333,10 @@ declare const _default: {
333
333
  'fabric.editor.blockquote.description': string;
334
334
  'fabric.editor.blockquote2': string;
335
335
  'fabric.editor.bold': string;
336
+ 'fabric.editor.breakout.resizeCodeBlock': string;
337
+ 'fabric.editor.breakout.resizeElement': string;
338
+ 'fabric.editor.breakout.resizeExpand': string;
339
+ 'fabric.editor.breakout.resizeLayout': string;
336
340
  'fabric.editor.breakoutFullWidthLabel': string;
337
341
  'fabric.editor.breakoutWideWidthLabel': string;
338
342
  'fabric.editor.bug': string;
@@ -780,6 +780,8 @@ declare const _default: {
780
780
  'fabric.editor.toolbarMediaTitle': string;
781
781
  'fabric.editor.toolbarPositionFixedAtTop': string;
782
782
  'fabric.editor.toolbarPositionInline': string;
783
+ 'fabric.editor.toolbarPositionPinedAtTop': string;
784
+ 'fabric.editor.toolbarPositionUnpined': string;
783
785
  'fabric.editor.tooltip.blockPanel': string;
784
786
  'fabric.editor.tooltip.bulletList': string;
785
787
  'fabric.editor.tooltip.decisionList': string;