@atlaskit/editor-common 79.1.1 → 79.2.1

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 79.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#96056](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/96056)
8
+ [`5ee939049a08`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/5ee939049a08) -
9
+ Add analytics for lock columns button in floating toolbar.
10
+
11
+ ## 79.2.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [#98035](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/98035)
16
+ [`27df90210ecb`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/27df90210ecb) -
17
+ Updated ADF validators to allow optional localId attribute on paragraph and heading nodes in
18
+ stage0
19
+
20
+ ### Patch Changes
21
+
22
+ - [#97158](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/97158)
23
+ [`5568b03ef792`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/5568b03ef792) -
24
+ [ux] EDF-661: Fix AI Panels Undo behaviour during insert flows (revert extension insertion) and
25
+ regenerate flows (revert content changes)
26
+ - Updated dependencies
27
+
3
28
  ## 79.1.1
4
29
 
5
30
  ### Patch Changes
@@ -207,6 +207,12 @@ Object.defineProperty(exports, "TABLE_BREAKOUT", {
207
207
  return _types.TABLE_BREAKOUT;
208
208
  }
209
209
  });
210
+ Object.defineProperty(exports, "TABLE_DISPLAY_MODE", {
211
+ enumerable: true,
212
+ get: function get() {
213
+ return _types.TABLE_DISPLAY_MODE;
214
+ }
215
+ });
210
216
  Object.defineProperty(exports, "TABLE_OVERFLOW_CHANGE_TRIGGER", {
211
217
  enumerable: true,
212
218
  get: function get() {
@@ -207,6 +207,12 @@ Object.defineProperty(exports, "TABLE_BREAKOUT", {
207
207
  return _tableEvents.TABLE_BREAKOUT;
208
208
  }
209
209
  });
210
+ Object.defineProperty(exports, "TABLE_DISPLAY_MODE", {
211
+ enumerable: true,
212
+ get: function get() {
213
+ return _tableEvents.TABLE_DISPLAY_MODE;
214
+ }
215
+ });
210
216
  Object.defineProperty(exports, "TABLE_OVERFLOW_CHANGE_TRIGGER", {
211
217
  enumerable: true,
212
218
  get: function get() {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TABLE_STATUS = exports.TABLE_OVERFLOW_CHANGE_TRIGGER = exports.TABLE_BREAKOUT = exports.TABLE_ACTION = void 0;
6
+ exports.TABLE_STATUS = exports.TABLE_OVERFLOW_CHANGE_TRIGGER = exports.TABLE_DISPLAY_MODE = exports.TABLE_BREAKOUT = exports.TABLE_ACTION = void 0;
7
7
  //#region Constants
8
8
  var TABLE_ACTION = exports.TABLE_ACTION = /*#__PURE__*/function (TABLE_ACTION) {
9
9
  TABLE_ACTION["DELETED"] = "deleted";
@@ -37,6 +37,7 @@ var TABLE_ACTION = exports.TABLE_ACTION = /*#__PURE__*/function (TABLE_ACTION) {
37
37
  TABLE_ACTION["CLONED_ROW"] = "clonedRow";
38
38
  TABLE_ACTION["CLONED_COLUMN"] = "clonedColumn";
39
39
  TABLE_ACTION["ROW_OR_COLUMN_MOVED"] = "rowOrColumnMoved";
40
+ TABLE_ACTION["CHANGED_DISPLAY_MODE"] = "changedDisplayMode";
40
41
  return TABLE_ACTION;
41
42
  }({});
42
43
  var TABLE_BREAKOUT = exports.TABLE_BREAKOUT = /*#__PURE__*/function (TABLE_BREAKOUT) {
@@ -63,4 +64,10 @@ var TABLE_STATUS = exports.TABLE_STATUS = /*#__PURE__*/function (TABLE_STATUS) {
63
64
  return TABLE_STATUS;
64
65
  }({}); //#region Type Helpers
65
66
  //#endregion
66
- //#region Analytic Event Payloads
67
+ //#region Analytic Event Payloads
68
+ var TABLE_DISPLAY_MODE = exports.TABLE_DISPLAY_MODE = /*#__PURE__*/function (TABLE_DISPLAY_MODE) {
69
+ TABLE_DISPLAY_MODE["FIXED"] = "fixed";
70
+ TABLE_DISPLAY_MODE["DEFAULT"] = "default";
71
+ TABLE_DISPLAY_MODE["INITIAL"] = "initial";
72
+ return TABLE_DISPLAY_MODE;
73
+ }({});
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
16
16
  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 && Object.prototype.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; }
17
17
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
18
18
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
19
- var packageVersion = "79.1.1";
19
+ var packageVersion = "79.2.1";
20
20
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
21
21
  // Remove URL as it has UGC
22
22
  // TODO: Sanitise the URL instead of just removing it
@@ -20,7 +20,7 @@ var _Layer = _interopRequireDefault(require("../Layer"));
20
20
  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); }; }
21
21
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @jsx jsx */
22
22
  var packageName = "@atlaskit/editor-common";
23
- var packageVersion = "79.1.1";
23
+ var packageVersion = "79.2.1";
24
24
  var halfFocusRing = 1;
25
25
  var dropOffset = '0, 8';
26
26
  var DropList = /*#__PURE__*/function (_Component) {
@@ -524,6 +524,21 @@ var getValidNode = exports.getValidNode = function getValidNode(originalNode) {
524
524
  }
525
525
  case 'paragraph':
526
526
  {
527
+ if (adfStage === 'stage0') {
528
+ var paragraphNode = {
529
+ type: type,
530
+ content: content || []
531
+ };
532
+ if (attrs && attrs.localId) {
533
+ paragraphNode.attrs = {
534
+ localId: attrs.localId
535
+ };
536
+ }
537
+ if (marks) {
538
+ paragraphNode.marks = (0, _toConsumableArray2.default)(marks);
539
+ }
540
+ return paragraphNode;
541
+ }
527
542
  return marks ? {
528
543
  type: type,
529
544
  content: content || [],
@@ -562,6 +577,22 @@ var getValidNode = exports.getValidNode = function getValidNode(originalNode) {
562
577
  return x >= a && x <= b;
563
578
  };
564
579
  if (level && between(level, 1, 6)) {
580
+ if (adfStage === 'stage0') {
581
+ var headingNode = {
582
+ type: type,
583
+ content: content,
584
+ attrs: {
585
+ level: level
586
+ }
587
+ };
588
+ if (attrs.localId) {
589
+ headingNode.attrs.localId = attrs.localId;
590
+ }
591
+ if (marks) {
592
+ headingNode.marks = (0, _toConsumableArray2.default)(marks);
593
+ }
594
+ return headingNode;
595
+ }
565
596
  return marks ? {
566
597
  type: type,
567
598
  content: content,
@@ -1,4 +1,4 @@
1
- export { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, BROWSER_FREEZE_INTERACTION_TYPE, CONTENT_COMPONENT, DELETE_DIRECTION, EVENT_TYPE, FLOATING_CONTROLS_TITLE, FULL_WIDTH_MODE, GAP_CURSOR_POSITION, INDENT_DIRECTION, INDENT_TYPE, INPUT_METHOD, LAYOUT_TYPE, LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, LIST_TEXT_SCENARIOS, JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST, OUTDENT_SCENARIOS, MODE, PLATFORMS, PUNC, PasteContents, PasteSources, PasteTypes, RESOLVE_METHOD, SELECTION_TYPE, SELECTION_POSITION, SMART_LINK_TYPE, SYMBOL, SmartLinkNodeContexts, TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TARGET_SELECTION_SOURCE, TOOLBAR_ACTION_SUBJECT_ID, TRIGGER_METHOD, USER_CONTEXT } from './types';
1
+ export { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, BROWSER_FREEZE_INTERACTION_TYPE, CONTENT_COMPONENT, DELETE_DIRECTION, EVENT_TYPE, FLOATING_CONTROLS_TITLE, FULL_WIDTH_MODE, GAP_CURSOR_POSITION, INDENT_DIRECTION, INDENT_TYPE, INPUT_METHOD, LAYOUT_TYPE, LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, LIST_TEXT_SCENARIOS, JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST, OUTDENT_SCENARIOS, MODE, PLATFORMS, PUNC, PasteContents, PasteSources, PasteTypes, RESOLVE_METHOD, SELECTION_TYPE, SELECTION_POSITION, SMART_LINK_TYPE, SYMBOL, SmartLinkNodeContexts, TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TARGET_SELECTION_SOURCE, TOOLBAR_ACTION_SUBJECT_ID, TRIGGER_METHOD, USER_CONTEXT, TABLE_DISPLAY_MODE } from './types';
2
2
  export { editorAnalyticsChannel, fireAnalyticsEvent } from './fire-analytics-event';
3
3
  export { getAnalyticsEventsFromTransaction } from './utils';
4
4
  export { buildEditLinkPayload, buildVisitedLinkPayload, buildOpenedSettingsPayload, unlinkPayload } from './linking-utils';
@@ -3,7 +3,7 @@ export { INDENT_DIRECTION, INDENT_TYPE } from './format-events';
3
3
  export { PUNC, SYMBOL } from './substitute-events';
4
4
  export { BROWSER_FREEZE_INTERACTION_TYPE, FULL_WIDTH_MODE, MODE, PLATFORMS } from './general-events';
5
5
  export { LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, USER_CONTEXT } from './insert-events';
6
- export { TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS } from './table-events';
6
+ export { TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TABLE_DISPLAY_MODE } from './table-events';
7
7
  export { PasteContents, PasteSources, PasteTypes } from './paste-events';
8
8
  export { DELETE_DIRECTION, LIST_TEXT_SCENARIOS, JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST, OUTDENT_SCENARIOS } from './list-events';
9
9
  export { GAP_CURSOR_POSITION, TARGET_SELECTION_SOURCE } from './extension-events';
@@ -31,6 +31,7 @@ export let TABLE_ACTION = /*#__PURE__*/function (TABLE_ACTION) {
31
31
  TABLE_ACTION["CLONED_ROW"] = "clonedRow";
32
32
  TABLE_ACTION["CLONED_COLUMN"] = "clonedColumn";
33
33
  TABLE_ACTION["ROW_OR_COLUMN_MOVED"] = "rowOrColumnMoved";
34
+ TABLE_ACTION["CHANGED_DISPLAY_MODE"] = "changedDisplayMode";
34
35
  return TABLE_ACTION;
35
36
  }({});
36
37
  export let TABLE_BREAKOUT = /*#__PURE__*/function (TABLE_BREAKOUT) {
@@ -63,4 +64,11 @@ export let TABLE_STATUS = /*#__PURE__*/function (TABLE_STATUS) {
63
64
 
64
65
  //#endregion
65
66
 
66
- //#region Analytic Event Payloads
67
+ //#region Analytic Event Payloads
68
+
69
+ export let TABLE_DISPLAY_MODE = /*#__PURE__*/function (TABLE_DISPLAY_MODE) {
70
+ TABLE_DISPLAY_MODE["FIXED"] = "fixed";
71
+ TABLE_DISPLAY_MODE["DEFAULT"] = "default";
72
+ TABLE_DISPLAY_MODE["INITIAL"] = "initial";
73
+ return TABLE_DISPLAY_MODE;
74
+ }({});
@@ -1,6 +1,6 @@
1
1
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
2
2
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
3
- const packageVersion = "79.1.1";
3
+ const packageVersion = "79.2.1";
4
4
  const sanitiseSentryEvents = (data, _hint) => {
5
5
  // Remove URL as it has UGC
6
6
  // TODO: Sanitise the URL instead of just removing it
@@ -7,7 +7,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
7
7
  import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
8
8
  import Layer from '../Layer';
9
9
  const packageName = "@atlaskit/editor-common";
10
- const packageVersion = "79.1.1";
10
+ const packageVersion = "79.2.1";
11
11
  const halfFocusRing = 1;
12
12
  const dropOffset = '0, 8';
13
13
  class DropList extends Component {
@@ -511,6 +511,21 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
511
511
  }
512
512
  case 'paragraph':
513
513
  {
514
+ if (adfStage === 'stage0') {
515
+ let paragraphNode = {
516
+ type,
517
+ content: content || []
518
+ };
519
+ if (attrs && attrs.localId) {
520
+ paragraphNode.attrs = {
521
+ localId: attrs.localId
522
+ };
523
+ }
524
+ if (marks) {
525
+ paragraphNode.marks = [...marks];
526
+ }
527
+ return paragraphNode;
528
+ }
514
529
  return marks ? {
515
530
  type,
516
531
  content: content || [],
@@ -551,6 +566,22 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
551
566
  } = attrs;
552
567
  const between = (x, a, b) => x >= a && x <= b;
553
568
  if (level && between(level, 1, 6)) {
569
+ if (adfStage === 'stage0') {
570
+ let headingNode = {
571
+ type,
572
+ content: content,
573
+ attrs: {
574
+ level
575
+ }
576
+ };
577
+ if (attrs.localId) {
578
+ headingNode.attrs.localId = attrs.localId;
579
+ }
580
+ if (marks) {
581
+ headingNode.marks = [...marks];
582
+ }
583
+ return headingNode;
584
+ }
554
585
  return marks ? {
555
586
  type,
556
587
  content,
@@ -1,4 +1,4 @@
1
- export { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, BROWSER_FREEZE_INTERACTION_TYPE, CONTENT_COMPONENT, DELETE_DIRECTION, EVENT_TYPE, FLOATING_CONTROLS_TITLE, FULL_WIDTH_MODE, GAP_CURSOR_POSITION, INDENT_DIRECTION, INDENT_TYPE, INPUT_METHOD, LAYOUT_TYPE, LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, LIST_TEXT_SCENARIOS, JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST, OUTDENT_SCENARIOS, MODE, PLATFORMS, PUNC, PasteContents, PasteSources, PasteTypes, RESOLVE_METHOD, SELECTION_TYPE, SELECTION_POSITION, SMART_LINK_TYPE, SYMBOL, SmartLinkNodeContexts, TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TARGET_SELECTION_SOURCE, TOOLBAR_ACTION_SUBJECT_ID, TRIGGER_METHOD, USER_CONTEXT } from './types';
1
+ export { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, BROWSER_FREEZE_INTERACTION_TYPE, CONTENT_COMPONENT, DELETE_DIRECTION, EVENT_TYPE, FLOATING_CONTROLS_TITLE, FULL_WIDTH_MODE, GAP_CURSOR_POSITION, INDENT_DIRECTION, INDENT_TYPE, INPUT_METHOD, LAYOUT_TYPE, LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, LIST_TEXT_SCENARIOS, JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST, OUTDENT_SCENARIOS, MODE, PLATFORMS, PUNC, PasteContents, PasteSources, PasteTypes, RESOLVE_METHOD, SELECTION_TYPE, SELECTION_POSITION, SMART_LINK_TYPE, SYMBOL, SmartLinkNodeContexts, TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TARGET_SELECTION_SOURCE, TOOLBAR_ACTION_SUBJECT_ID, TRIGGER_METHOD, USER_CONTEXT, TABLE_DISPLAY_MODE } from './types';
2
2
  export { editorAnalyticsChannel, fireAnalyticsEvent } from './fire-analytics-event';
3
3
  export { getAnalyticsEventsFromTransaction } from './utils';
4
4
  export { buildEditLinkPayload, buildVisitedLinkPayload, buildOpenedSettingsPayload, unlinkPayload } from './linking-utils';
@@ -3,7 +3,7 @@ export { INDENT_DIRECTION, INDENT_TYPE } from './format-events';
3
3
  export { PUNC, SYMBOL } from './substitute-events';
4
4
  export { BROWSER_FREEZE_INTERACTION_TYPE, FULL_WIDTH_MODE, MODE, PLATFORMS } from './general-events';
5
5
  export { LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, USER_CONTEXT } from './insert-events';
6
- export { TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS } from './table-events';
6
+ export { TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TABLE_DISPLAY_MODE } from './table-events';
7
7
  export { PasteContents, PasteSources, PasteTypes } from './paste-events';
8
8
  export { DELETE_DIRECTION, LIST_TEXT_SCENARIOS, JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST, OUTDENT_SCENARIOS } from './list-events';
9
9
  export { GAP_CURSOR_POSITION, TARGET_SELECTION_SOURCE } from './extension-events';
@@ -31,6 +31,7 @@ export var TABLE_ACTION = /*#__PURE__*/function (TABLE_ACTION) {
31
31
  TABLE_ACTION["CLONED_ROW"] = "clonedRow";
32
32
  TABLE_ACTION["CLONED_COLUMN"] = "clonedColumn";
33
33
  TABLE_ACTION["ROW_OR_COLUMN_MOVED"] = "rowOrColumnMoved";
34
+ TABLE_ACTION["CHANGED_DISPLAY_MODE"] = "changedDisplayMode";
34
35
  return TABLE_ACTION;
35
36
  }({});
36
37
  export var TABLE_BREAKOUT = /*#__PURE__*/function (TABLE_BREAKOUT) {
@@ -63,4 +64,11 @@ export var TABLE_STATUS = /*#__PURE__*/function (TABLE_STATUS) {
63
64
 
64
65
  //#endregion
65
66
 
66
- //#region Analytic Event Payloads
67
+ //#region Analytic Event Payloads
68
+
69
+ export var TABLE_DISPLAY_MODE = /*#__PURE__*/function (TABLE_DISPLAY_MODE) {
70
+ TABLE_DISPLAY_MODE["FIXED"] = "fixed";
71
+ TABLE_DISPLAY_MODE["DEFAULT"] = "default";
72
+ TABLE_DISPLAY_MODE["INITIAL"] = "initial";
73
+ return TABLE_DISPLAY_MODE;
74
+ }({});
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
6
6
  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; }
7
7
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
8
8
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
9
- var packageVersion = "79.1.1";
9
+ var packageVersion = "79.2.1";
10
10
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
11
11
  // Remove URL as it has UGC
12
12
  // TODO: Sanitise the URL instead of just removing it
@@ -15,7 +15,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
15
15
  import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
16
16
  import Layer from '../Layer';
17
17
  var packageName = "@atlaskit/editor-common";
18
- var packageVersion = "79.1.1";
18
+ var packageVersion = "79.2.1";
19
19
  var halfFocusRing = 1;
20
20
  var dropOffset = '0, 8';
21
21
  var DropList = /*#__PURE__*/function (_Component) {
@@ -517,6 +517,21 @@ export var getValidNode = function getValidNode(originalNode) {
517
517
  }
518
518
  case 'paragraph':
519
519
  {
520
+ if (adfStage === 'stage0') {
521
+ var paragraphNode = {
522
+ type: type,
523
+ content: content || []
524
+ };
525
+ if (attrs && attrs.localId) {
526
+ paragraphNode.attrs = {
527
+ localId: attrs.localId
528
+ };
529
+ }
530
+ if (marks) {
531
+ paragraphNode.marks = _toConsumableArray(marks);
532
+ }
533
+ return paragraphNode;
534
+ }
520
535
  return marks ? {
521
536
  type: type,
522
537
  content: content || [],
@@ -555,6 +570,22 @@ export var getValidNode = function getValidNode(originalNode) {
555
570
  return x >= a && x <= b;
556
571
  };
557
572
  if (level && between(level, 1, 6)) {
573
+ if (adfStage === 'stage0') {
574
+ var headingNode = {
575
+ type: type,
576
+ content: content,
577
+ attrs: {
578
+ level: level
579
+ }
580
+ };
581
+ if (attrs.localId) {
582
+ headingNode.attrs.localId = attrs.localId;
583
+ }
584
+ if (marks) {
585
+ headingNode.marks = _toConsumableArray(marks);
586
+ }
587
+ return headingNode;
588
+ }
558
589
  return marks ? {
559
590
  type: type,
560
591
  content: content,
@@ -1,4 +1,4 @@
1
- export { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, BROWSER_FREEZE_INTERACTION_TYPE, CONTENT_COMPONENT, DELETE_DIRECTION, EVENT_TYPE, FLOATING_CONTROLS_TITLE, FULL_WIDTH_MODE, GAP_CURSOR_POSITION, INDENT_DIRECTION, INDENT_TYPE, INPUT_METHOD, LAYOUT_TYPE, LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, LIST_TEXT_SCENARIOS, JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST, OUTDENT_SCENARIOS, MODE, PLATFORMS, PUNC, PasteContents, PasteSources, PasteTypes, RESOLVE_METHOD, SELECTION_TYPE, SELECTION_POSITION, SMART_LINK_TYPE, SYMBOL, SmartLinkNodeContexts, TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TARGET_SELECTION_SOURCE, TOOLBAR_ACTION_SUBJECT_ID, TRIGGER_METHOD, USER_CONTEXT, } from './types';
1
+ export { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, BROWSER_FREEZE_INTERACTION_TYPE, CONTENT_COMPONENT, DELETE_DIRECTION, EVENT_TYPE, FLOATING_CONTROLS_TITLE, FULL_WIDTH_MODE, GAP_CURSOR_POSITION, INDENT_DIRECTION, INDENT_TYPE, INPUT_METHOD, LAYOUT_TYPE, LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, LIST_TEXT_SCENARIOS, JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST, OUTDENT_SCENARIOS, MODE, PLATFORMS, PUNC, PasteContents, PasteSources, PasteTypes, RESOLVE_METHOD, SELECTION_TYPE, SELECTION_POSITION, SMART_LINK_TYPE, SYMBOL, SmartLinkNodeContexts, TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TARGET_SELECTION_SOURCE, TOOLBAR_ACTION_SUBJECT_ID, TRIGGER_METHOD, USER_CONTEXT, TABLE_DISPLAY_MODE, } from './types';
2
2
  export type { AnalyticsDispatch, AnalyticsEventPayload, AnalyticsEventPayloadCallback, AnalyticsEventPayloadWithChannel, AnnotationAEP, AnnotationAEPAttributes, AnnotationActionType, AnnotationDraftAEPAttributes, AnnotationResolvedAEPAttributes, CaptionTrackAction, ColorPickerAEP, CommonListAnalyticsAttributes, RestartListsAttributesForListOutdented, CreateLinkInlineDialogActionType, CreateLinkInlineDialogEventPayload, DismissedCreateLinkInlineDialogAEP, DispatchAnalyticsEvent, EditLinkToolbarAEP, EnteredTextLinkSearchInputAEP, ErrorEventAttributes, ErrorEventPayload, ExperimentalEventPayload, ExtensionEventPayload, ExtensionType, FeatureExposureAEP, FormatEventPayload, GeneralEventPayload, HighlightedSearchResultsAEP, InputMethodInsertLink, InputMethodInsertMedia, InsertEventPayload, InsertSmartLinkAEP, ListEventPayload, MediaSwitchType, MediaAltTextActionType, MediaEventPayload, MediaLinkAEP, MediaResizeTrackAction, MediaInputResizeTrackAction, NodeCount, NodeEventPayload, OperationalAEP, PASTE_ACTION_SUBJECT_ID, PasteContent, PasteEventPayload, PasteSource, PasteType, PluginMethodReport, PluginPerformanceReportData, PluginsReport, QuickSearchPerfAEP, RecentActivitiesPerfAEP, SelectAllAEP, SelectCellAEP, SelectNodeAEP, SelectRangeAEP, SelectedSearchResultsAEP, SelectionEventPayload, SelectionJson, ShownPostQuerySearchResultsAEP, ShownPreQuerySearchResultsAEP, SimplifiedNode, SmartLinkNodeContext, SubstituteEventPayload, TableEventPayload, TextColorSelectedAEP, TextColorSelectedAttr, TextColorShowPaletteToggleAEP, TextColorShowPaletteToggleAttr, ToolbarEventPayload, TransactionEventPayload, TypeAheadPayload, UfoSessionCompletePayloadAEP, UnlinkToolbarAEP, ViewedCreateLinkInlineDialogAEP, FireAnalyticsCallback, FireAnalyticsEvent, FireAnalyticsEventPayload, InitialiseFragmentMarksAEP, ConnectedNodesAEP, DisconnectedSourceAEP, DisconnectedTargetAEP, GotConnectionsAEP, UpdatedFragmentMarkNameAEP, UpdatedSourceAEP, UpdatedTargetAEP, OverflowStateInfo, } from './types';
3
3
  export type { EditorAnalyticsAPI } from './api';
4
4
  export { editorAnalyticsChannel, fireAnalyticsEvent, } from './fire-analytics-event';
@@ -8,7 +8,7 @@ export { PUNC, SYMBOL } from './substitute-events';
8
8
  export { BROWSER_FREEZE_INTERACTION_TYPE, FULL_WIDTH_MODE, MODE, PLATFORMS, } from './general-events';
9
9
  export { LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, USER_CONTEXT, } from './insert-events';
10
10
  export type { InputMethodInsertLink, InputMethodInsertMedia, InsertEventPayload, } from './insert-events';
11
- export { TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, } from './table-events';
11
+ export { TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TABLE_DISPLAY_MODE, } from './table-events';
12
12
  export type { TableEventPayload, OverflowStateInfo } from './table-events';
13
13
  export { PasteContents, PasteSources, PasteTypes } from './paste-events';
14
14
  export type { PASTE_ACTION_SUBJECT_ID, PasteContent, PasteEventPayload, PasteSource, PasteType, } from './paste-events';
@@ -36,7 +36,8 @@ export declare enum TABLE_ACTION {
36
36
  * This is a unique action that's used to track legacy table move behaviour flow of insert+copy+paste. Please use
37
37
  * the MOVED_ROW | MOVED_COLUMN actions if you want to track events which move row/cols in a single step.
38
38
  */
39
- ROW_OR_COLUMN_MOVED = "rowOrColumnMoved"
39
+ ROW_OR_COLUMN_MOVED = "rowOrColumnMoved",
40
+ CHANGED_DISPLAY_MODE = "changedDisplayMode"
40
41
  }
41
42
  export declare enum TABLE_BREAKOUT {
42
43
  WIDE = "wide",
@@ -176,5 +177,16 @@ type TableClonedRowOrColumnAEP = TableAEP<TABLE_ACTION.CLONED_ROW | TABLE_ACTION
176
177
  distance: number;
177
178
  status: TABLE_STATUS.SUCCESS | TABLE_STATUS.CANCELLED | TABLE_STATUS.INVALID;
178
179
  } & TotalRowAndColCount, undefined>;
179
- export type TableEventPayload = TableDeleteAEP | TableClearAEP | TableMergeSplitAEP | TableColorAEP | TableToggleHeaderAEP | TableChangeBreakoutAEP | TableCopyAndCutAEP | TableAddRowOrColumnAEP | TableSortColumnAEP | TableDeleteRowOrColumnAEP | TableReplaceAEP | TableAttemptedResizeAEP | TableDistributeColumnsWidthsAEP | TableCollapsedAEP | TableFixedAEP | TableOverflowChangedAEP | TableInitialOverflowCapturedAEP | TableResizedAEP | TableResizePerfSamplingAEP | TableRowOrColumnMovedAEP | TableMovedRowOrColumnAEP | TableClonedRowOrColumnAEP | TableColumnResizedAEP;
180
+ export declare enum TABLE_DISPLAY_MODE {
181
+ FIXED = "fixed",
182
+ DEFAULT = "default",
183
+ INITIAL = "initial"
184
+ }
185
+ type TableChangedDisplayModeAEP = TableAEP<TABLE_ACTION.CHANGED_DISPLAY_MODE, {
186
+ inputMethod: INPUT_METHOD.FLOATING_TB | INPUT_METHOD.CONTEXT_MENU;
187
+ previousDisplayMode: TABLE_DISPLAY_MODE;
188
+ newDisplayMode: TABLE_DISPLAY_MODE;
189
+ tableWidth: number | null;
190
+ } & TotalRowAndColCount, undefined>;
191
+ export type TableEventPayload = TableDeleteAEP | TableClearAEP | TableMergeSplitAEP | TableColorAEP | TableToggleHeaderAEP | TableChangeBreakoutAEP | TableCopyAndCutAEP | TableAddRowOrColumnAEP | TableSortColumnAEP | TableDeleteRowOrColumnAEP | TableReplaceAEP | TableAttemptedResizeAEP | TableDistributeColumnsWidthsAEP | TableCollapsedAEP | TableFixedAEP | TableOverflowChangedAEP | TableInitialOverflowCapturedAEP | TableResizedAEP | TableResizePerfSamplingAEP | TableRowOrColumnMovedAEP | TableMovedRowOrColumnAEP | TableClonedRowOrColumnAEP | TableChangedDisplayModeAEP | TableColumnResizedAEP;
180
192
  export {};
@@ -23,7 +23,9 @@ export type ExtensionAPI<T extends Parameters = Parameters> = {
23
23
  allowSelectionToNewNode?: boolean;
24
24
  }) => void;
25
25
  scrollTo: (localId: string) => void;
26
- update: (localId: string, mutationCallback: (currentValue: Pick<ADFEntity, 'content' | 'attrs' | 'marks'>) => Pick<ADFEntity, 'content' | 'attrs' | 'marks'>) => void;
26
+ update: (localId: string, mutationCallback: (currentValue: Pick<ADFEntity, 'content' | 'attrs' | 'marks'>) => Pick<ADFEntity, 'content' | 'attrs' | 'marks'>, options?: {
27
+ addToHistory?: boolean;
28
+ }) => void;
27
29
  };
28
30
  };
29
31
  export type UpdateExtension<T extends Parameters = Parameters> = (extensionParameters: T, actions?: ExtensionAPI<T>) => Promise<T | void>;
@@ -1,4 +1,4 @@
1
- export { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, BROWSER_FREEZE_INTERACTION_TYPE, CONTENT_COMPONENT, DELETE_DIRECTION, EVENT_TYPE, FLOATING_CONTROLS_TITLE, FULL_WIDTH_MODE, GAP_CURSOR_POSITION, INDENT_DIRECTION, INDENT_TYPE, INPUT_METHOD, LAYOUT_TYPE, LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, LIST_TEXT_SCENARIOS, JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST, OUTDENT_SCENARIOS, MODE, PLATFORMS, PUNC, PasteContents, PasteSources, PasteTypes, RESOLVE_METHOD, SELECTION_TYPE, SELECTION_POSITION, SMART_LINK_TYPE, SYMBOL, SmartLinkNodeContexts, TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TARGET_SELECTION_SOURCE, TOOLBAR_ACTION_SUBJECT_ID, TRIGGER_METHOD, USER_CONTEXT, } from './types';
1
+ export { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, BROWSER_FREEZE_INTERACTION_TYPE, CONTENT_COMPONENT, DELETE_DIRECTION, EVENT_TYPE, FLOATING_CONTROLS_TITLE, FULL_WIDTH_MODE, GAP_CURSOR_POSITION, INDENT_DIRECTION, INDENT_TYPE, INPUT_METHOD, LAYOUT_TYPE, LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, LIST_TEXT_SCENARIOS, JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST, OUTDENT_SCENARIOS, MODE, PLATFORMS, PUNC, PasteContents, PasteSources, PasteTypes, RESOLVE_METHOD, SELECTION_TYPE, SELECTION_POSITION, SMART_LINK_TYPE, SYMBOL, SmartLinkNodeContexts, TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TARGET_SELECTION_SOURCE, TOOLBAR_ACTION_SUBJECT_ID, TRIGGER_METHOD, USER_CONTEXT, TABLE_DISPLAY_MODE, } from './types';
2
2
  export type { AnalyticsDispatch, AnalyticsEventPayload, AnalyticsEventPayloadCallback, AnalyticsEventPayloadWithChannel, AnnotationAEP, AnnotationAEPAttributes, AnnotationActionType, AnnotationDraftAEPAttributes, AnnotationResolvedAEPAttributes, CaptionTrackAction, ColorPickerAEP, CommonListAnalyticsAttributes, RestartListsAttributesForListOutdented, CreateLinkInlineDialogActionType, CreateLinkInlineDialogEventPayload, DismissedCreateLinkInlineDialogAEP, DispatchAnalyticsEvent, EditLinkToolbarAEP, EnteredTextLinkSearchInputAEP, ErrorEventAttributes, ErrorEventPayload, ExperimentalEventPayload, ExtensionEventPayload, ExtensionType, FeatureExposureAEP, FormatEventPayload, GeneralEventPayload, HighlightedSearchResultsAEP, InputMethodInsertLink, InputMethodInsertMedia, InsertEventPayload, InsertSmartLinkAEP, ListEventPayload, MediaSwitchType, MediaAltTextActionType, MediaEventPayload, MediaLinkAEP, MediaResizeTrackAction, MediaInputResizeTrackAction, NodeCount, NodeEventPayload, OperationalAEP, PASTE_ACTION_SUBJECT_ID, PasteContent, PasteEventPayload, PasteSource, PasteType, PluginMethodReport, PluginPerformanceReportData, PluginsReport, QuickSearchPerfAEP, RecentActivitiesPerfAEP, SelectAllAEP, SelectCellAEP, SelectNodeAEP, SelectRangeAEP, SelectedSearchResultsAEP, SelectionEventPayload, SelectionJson, ShownPostQuerySearchResultsAEP, ShownPreQuerySearchResultsAEP, SimplifiedNode, SmartLinkNodeContext, SubstituteEventPayload, TableEventPayload, TextColorSelectedAEP, TextColorSelectedAttr, TextColorShowPaletteToggleAEP, TextColorShowPaletteToggleAttr, ToolbarEventPayload, TransactionEventPayload, TypeAheadPayload, UfoSessionCompletePayloadAEP, UnlinkToolbarAEP, ViewedCreateLinkInlineDialogAEP, FireAnalyticsCallback, FireAnalyticsEvent, FireAnalyticsEventPayload, InitialiseFragmentMarksAEP, ConnectedNodesAEP, DisconnectedSourceAEP, DisconnectedTargetAEP, GotConnectionsAEP, UpdatedFragmentMarkNameAEP, UpdatedSourceAEP, UpdatedTargetAEP, OverflowStateInfo, } from './types';
3
3
  export type { EditorAnalyticsAPI } from './api';
4
4
  export { editorAnalyticsChannel, fireAnalyticsEvent, } from './fire-analytics-event';
@@ -8,7 +8,7 @@ export { PUNC, SYMBOL } from './substitute-events';
8
8
  export { BROWSER_FREEZE_INTERACTION_TYPE, FULL_WIDTH_MODE, MODE, PLATFORMS, } from './general-events';
9
9
  export { LINK_REPRESENTATION, LINK_RESOURCE, LINK_STATUS, USER_CONTEXT, } from './insert-events';
10
10
  export type { InputMethodInsertLink, InputMethodInsertMedia, InsertEventPayload, } from './insert-events';
11
- export { TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, } from './table-events';
11
+ export { TABLE_ACTION, TABLE_BREAKOUT, TABLE_OVERFLOW_CHANGE_TRIGGER, TABLE_STATUS, TABLE_DISPLAY_MODE, } from './table-events';
12
12
  export type { TableEventPayload, OverflowStateInfo } from './table-events';
13
13
  export { PasteContents, PasteSources, PasteTypes } from './paste-events';
14
14
  export type { PASTE_ACTION_SUBJECT_ID, PasteContent, PasteEventPayload, PasteSource, PasteType, } from './paste-events';
@@ -36,7 +36,8 @@ export declare enum TABLE_ACTION {
36
36
  * This is a unique action that's used to track legacy table move behaviour flow of insert+copy+paste. Please use
37
37
  * the MOVED_ROW | MOVED_COLUMN actions if you want to track events which move row/cols in a single step.
38
38
  */
39
- ROW_OR_COLUMN_MOVED = "rowOrColumnMoved"
39
+ ROW_OR_COLUMN_MOVED = "rowOrColumnMoved",
40
+ CHANGED_DISPLAY_MODE = "changedDisplayMode"
40
41
  }
41
42
  export declare enum TABLE_BREAKOUT {
42
43
  WIDE = "wide",
@@ -176,5 +177,16 @@ type TableClonedRowOrColumnAEP = TableAEP<TABLE_ACTION.CLONED_ROW | TABLE_ACTION
176
177
  distance: number;
177
178
  status: TABLE_STATUS.SUCCESS | TABLE_STATUS.CANCELLED | TABLE_STATUS.INVALID;
178
179
  } & TotalRowAndColCount, undefined>;
179
- export type TableEventPayload = TableDeleteAEP | TableClearAEP | TableMergeSplitAEP | TableColorAEP | TableToggleHeaderAEP | TableChangeBreakoutAEP | TableCopyAndCutAEP | TableAddRowOrColumnAEP | TableSortColumnAEP | TableDeleteRowOrColumnAEP | TableReplaceAEP | TableAttemptedResizeAEP | TableDistributeColumnsWidthsAEP | TableCollapsedAEP | TableFixedAEP | TableOverflowChangedAEP | TableInitialOverflowCapturedAEP | TableResizedAEP | TableResizePerfSamplingAEP | TableRowOrColumnMovedAEP | TableMovedRowOrColumnAEP | TableClonedRowOrColumnAEP | TableColumnResizedAEP;
180
+ export declare enum TABLE_DISPLAY_MODE {
181
+ FIXED = "fixed",
182
+ DEFAULT = "default",
183
+ INITIAL = "initial"
184
+ }
185
+ type TableChangedDisplayModeAEP = TableAEP<TABLE_ACTION.CHANGED_DISPLAY_MODE, {
186
+ inputMethod: INPUT_METHOD.FLOATING_TB | INPUT_METHOD.CONTEXT_MENU;
187
+ previousDisplayMode: TABLE_DISPLAY_MODE;
188
+ newDisplayMode: TABLE_DISPLAY_MODE;
189
+ tableWidth: number | null;
190
+ } & TotalRowAndColCount, undefined>;
191
+ export type TableEventPayload = TableDeleteAEP | TableClearAEP | TableMergeSplitAEP | TableColorAEP | TableToggleHeaderAEP | TableChangeBreakoutAEP | TableCopyAndCutAEP | TableAddRowOrColumnAEP | TableSortColumnAEP | TableDeleteRowOrColumnAEP | TableReplaceAEP | TableAttemptedResizeAEP | TableDistributeColumnsWidthsAEP | TableCollapsedAEP | TableFixedAEP | TableOverflowChangedAEP | TableInitialOverflowCapturedAEP | TableResizedAEP | TableResizePerfSamplingAEP | TableRowOrColumnMovedAEP | TableMovedRowOrColumnAEP | TableClonedRowOrColumnAEP | TableChangedDisplayModeAEP | TableColumnResizedAEP;
180
192
  export {};
@@ -23,7 +23,9 @@ export type ExtensionAPI<T extends Parameters = Parameters> = {
23
23
  allowSelectionToNewNode?: boolean;
24
24
  }) => void;
25
25
  scrollTo: (localId: string) => void;
26
- update: (localId: string, mutationCallback: (currentValue: Pick<ADFEntity, 'content' | 'attrs' | 'marks'>) => Pick<ADFEntity, 'content' | 'attrs' | 'marks'>) => void;
26
+ update: (localId: string, mutationCallback: (currentValue: Pick<ADFEntity, 'content' | 'attrs' | 'marks'>) => Pick<ADFEntity, 'content' | 'attrs' | 'marks'>, options?: {
27
+ addToHistory?: boolean;
28
+ }) => void;
27
29
  };
28
30
  };
29
31
  export type UpdateExtension<T extends Parameters = Parameters> = (extensionParameters: T, actions?: ExtensionAPI<T>) => Promise<T | void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "79.1.1",
3
+ "version": "79.2.1",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -98,7 +98,7 @@
98
98
  "dependencies": {
99
99
  "@atlaskit/activity-provider": "^2.4.0",
100
100
  "@atlaskit/adf-schema": "^35.12.2",
101
- "@atlaskit/adf-utils": "^19.0.0",
101
+ "@atlaskit/adf-utils": "^19.1.0",
102
102
  "@atlaskit/analytics-listeners": "^8.9.0",
103
103
  "@atlaskit/analytics-namespaced-context": "^6.9.0",
104
104
  "@atlaskit/analytics-next": "^9.3.0",
@@ -132,7 +132,7 @@
132
132
  "@atlaskit/primitives": "^6.1.0",
133
133
  "@atlaskit/profilecard": "^19.11.0",
134
134
  "@atlaskit/section-message": "^6.5.0",
135
- "@atlaskit/smart-card": "^26.60.0",
135
+ "@atlaskit/smart-card": "^26.62.0",
136
136
  "@atlaskit/smart-user-picker": "^6.9.0",
137
137
  "@atlaskit/spinner": "^16.1.0",
138
138
  "@atlaskit/task-decision": "^17.10.0",