@atlaskit/editor-plugin-tasks-and-decisions 9.1.20 → 9.1.21

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,12 @@
1
1
  # @atlaskit/editor-plugin-tasks-and-decisions
2
2
 
3
+ ## 9.1.21
4
+
5
+ ### Patch Changes
6
+
7
+ - [`f494ec7455464`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f494ec7455464) -
8
+ ED-29712: Insert a new action item on empty selection when clicking on Task list
9
+
3
10
  ## 9.1.20
4
11
 
5
12
  ### Patch Changes
@@ -4,13 +4,41 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.toggleTaskList = void 0;
7
+ var _adfSchema = require("@atlaskit/adf-schema");
7
8
  var _transforms = require("@atlaskit/editor-common/transforms");
9
+ var _state = require("@atlaskit/editor-prosemirror/state");
10
+ var _utils = require("@atlaskit/editor-prosemirror/utils");
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
8
12
  var toggleTaskList = exports.toggleTaskList = function toggleTaskList() {
9
13
  var targetType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'paragraph';
10
14
  return function (_ref) {
11
15
  var tr = _ref.tr;
12
16
  var nodes = tr.doc.type.schema.nodes;
13
17
  var selection = tr.selection;
18
+
19
+ // Handle empty selection: insert a new task item
20
+ if ((0, _platformFeatureFlags.fg)('platform_editor_toolbar_aifc_ga_blockers')) {
21
+ var $from = selection.$from;
22
+ var isEmpty = $from.parent.content.size === 0;
23
+ if (isEmpty && nodes.taskList && nodes.taskItem) {
24
+ // Create an empty task list with one empty task item
25
+ var listLocalId = _adfSchema.uuid.generate();
26
+ var itemLocalId = _adfSchema.uuid.generate();
27
+ var emptyList = nodes.taskList.create({
28
+ localId: listLocalId
29
+ }, [nodes.taskItem.create({
30
+ localId: itemLocalId
31
+ })]);
32
+
33
+ // Insert the empty list at the current selection
34
+ var insertTr = (0, _utils.safeInsert)(emptyList)(tr);
35
+ if (insertTr !== tr) {
36
+ // Set cursor inside the new task item
37
+ var insertPos = insertTr.selection.$from.pos;
38
+ return insertTr.setSelection(_state.TextSelection.near(insertTr.doc.resolve(insertPos)));
39
+ }
40
+ }
41
+ }
14
42
  var _getFormattedNode = (0, _transforms.getFormattedNode)(tr),
15
43
  node = _getFormattedNode.node,
16
44
  pos = _getFormattedNode.pos;
@@ -33,9 +61,9 @@ var toggleTaskList = exports.toggleTaskList = function toggleTaskList() {
33
61
  };
34
62
  return targetType === 'paragraph' ? (0, _transforms.transformTaskListToBlockNodes)(_context) : (0, _transforms.transformBetweenListTypes)(_context);
35
63
  }
36
- var $from = selection.$from,
64
+ var _$from = selection.$from,
37
65
  $to = selection.$to;
38
- var range = $from.blockRange($to);
66
+ var range = _$from.blockRange($to);
39
67
  if (range) {
40
68
  return (0, _transforms.transformToTaskList)(tr, range, nodes.taskList, undefined, nodes);
41
69
  }
@@ -1,4 +1,8 @@
1
+ import { uuid } from '@atlaskit/adf-schema';
1
2
  import { transformBetweenListTypes, transformToTaskList, transformTaskListToBlockNodes, isBulletOrOrderedList, isTaskList, getFormattedNode } from '@atlaskit/editor-common/transforms';
3
+ import { TextSelection } from '@atlaskit/editor-prosemirror/state';
4
+ import { safeInsert } from '@atlaskit/editor-prosemirror/utils';
5
+ import { fg } from '@atlaskit/platform-feature-flags';
2
6
  export const toggleTaskList = (targetType = 'paragraph') => ({
3
7
  tr
4
8
  }) => {
@@ -8,6 +12,32 @@ export const toggleTaskList = (targetType = 'paragraph') => ({
8
12
  const {
9
13
  selection
10
14
  } = tr;
15
+
16
+ // Handle empty selection: insert a new task item
17
+ if (fg('platform_editor_toolbar_aifc_ga_blockers')) {
18
+ const {
19
+ $from
20
+ } = selection;
21
+ const isEmpty = $from.parent.content.size === 0;
22
+ if (isEmpty && nodes.taskList && nodes.taskItem) {
23
+ // Create an empty task list with one empty task item
24
+ const listLocalId = uuid.generate();
25
+ const itemLocalId = uuid.generate();
26
+ const emptyList = nodes.taskList.create({
27
+ localId: listLocalId
28
+ }, [nodes.taskItem.create({
29
+ localId: itemLocalId
30
+ })]);
31
+
32
+ // Insert the empty list at the current selection
33
+ const insertTr = safeInsert(emptyList)(tr);
34
+ if (insertTr !== tr) {
35
+ // Set cursor inside the new task item
36
+ const insertPos = insertTr.selection.$from.pos;
37
+ return insertTr.setSelection(TextSelection.near(insertTr.doc.resolve(insertPos)));
38
+ }
39
+ }
40
+ }
11
41
  const {
12
42
  node,
13
43
  pos
@@ -1,10 +1,38 @@
1
+ import { uuid } from '@atlaskit/adf-schema';
1
2
  import { transformBetweenListTypes, transformToTaskList, transformTaskListToBlockNodes, isBulletOrOrderedList, isTaskList, getFormattedNode } from '@atlaskit/editor-common/transforms';
3
+ import { TextSelection } from '@atlaskit/editor-prosemirror/state';
4
+ import { safeInsert } from '@atlaskit/editor-prosemirror/utils';
5
+ import { fg } from '@atlaskit/platform-feature-flags';
2
6
  export var toggleTaskList = function toggleTaskList() {
3
7
  var targetType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'paragraph';
4
8
  return function (_ref) {
5
9
  var tr = _ref.tr;
6
10
  var nodes = tr.doc.type.schema.nodes;
7
11
  var selection = tr.selection;
12
+
13
+ // Handle empty selection: insert a new task item
14
+ if (fg('platform_editor_toolbar_aifc_ga_blockers')) {
15
+ var $from = selection.$from;
16
+ var isEmpty = $from.parent.content.size === 0;
17
+ if (isEmpty && nodes.taskList && nodes.taskItem) {
18
+ // Create an empty task list with one empty task item
19
+ var listLocalId = uuid.generate();
20
+ var itemLocalId = uuid.generate();
21
+ var emptyList = nodes.taskList.create({
22
+ localId: listLocalId
23
+ }, [nodes.taskItem.create({
24
+ localId: itemLocalId
25
+ })]);
26
+
27
+ // Insert the empty list at the current selection
28
+ var insertTr = safeInsert(emptyList)(tr);
29
+ if (insertTr !== tr) {
30
+ // Set cursor inside the new task item
31
+ var insertPos = insertTr.selection.$from.pos;
32
+ return insertTr.setSelection(TextSelection.near(insertTr.doc.resolve(insertPos)));
33
+ }
34
+ }
35
+ }
8
36
  var _getFormattedNode = getFormattedNode(tr),
9
37
  node = _getFormattedNode.node,
10
38
  pos = _getFormattedNode.pos;
@@ -27,9 +55,9 @@ export var toggleTaskList = function toggleTaskList() {
27
55
  };
28
56
  return targetType === 'paragraph' ? transformTaskListToBlockNodes(_context) : transformBetweenListTypes(_context);
29
57
  }
30
- var $from = selection.$from,
58
+ var _$from = selection.$from,
31
59
  $to = selection.$to;
32
- var range = $from.blockRange($to);
60
+ var range = _$from.blockRange($to);
33
61
  if (range) {
34
62
  return transformToTaskList(tr, range, nodes.taskList, undefined, nodes);
35
63
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-tasks-and-decisions",
3
- "version": "9.1.20",
3
+ "version": "9.1.21",
4
4
  "description": "Tasks and decisions plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -29,40 +29,40 @@
29
29
  ],
30
30
  "atlaskit:src": "src/index.ts",
31
31
  "dependencies": {
32
- "@atlaskit/adf-schema": "^51.5.1",
32
+ "@atlaskit/adf-schema": "^51.5.0",
33
33
  "@atlaskit/analytics-namespaced-context": "^7.2.0",
34
34
  "@atlaskit/css": "^0.17.0",
35
35
  "@atlaskit/editor-plugin-analytics": "^6.2.0",
36
- "@atlaskit/editor-plugin-block-menu": "^5.1.0",
36
+ "@atlaskit/editor-plugin-block-menu": "^5.2.0",
37
37
  "@atlaskit/editor-plugin-context-identifier": "^6.0.0",
38
38
  "@atlaskit/editor-plugin-editor-viewmode": "^8.0.0",
39
39
  "@atlaskit/editor-plugin-selection": "^6.1.0",
40
40
  "@atlaskit/editor-plugin-toolbar": "^3.4.0",
41
41
  "@atlaskit/editor-plugin-type-ahead": "^6.5.0",
42
- "@atlaskit/editor-prosemirror": "7.0.0",
42
+ "@atlaskit/editor-prosemirror": "^7.2.0",
43
43
  "@atlaskit/editor-shared-styles": "^3.10.0",
44
44
  "@atlaskit/editor-toolbar": "^0.18.0",
45
45
  "@atlaskit/editor-toolbar-model": "^0.2.0",
46
46
  "@atlaskit/heading": "^5.2.0",
47
- "@atlaskit/icon": "^29.0.0",
47
+ "@atlaskit/icon": "^29.1.0",
48
48
  "@atlaskit/platform-feature-flags": "^1.1.0",
49
49
  "@atlaskit/primitives": "^16.4.0",
50
50
  "@atlaskit/prosemirror-input-rules": "^3.6.0",
51
51
  "@atlaskit/task-decision": "^19.2.0",
52
- "@atlaskit/tmp-editor-statsig": "^15.0.0",
53
- "@atlaskit/tokens": "^8.4.0",
52
+ "@atlaskit/tmp-editor-statsig": "^15.11.0",
53
+ "@atlaskit/tokens": "^8.5.0",
54
54
  "@babel/runtime": "^7.0.0",
55
55
  "@compiled/react": "^0.18.6",
56
56
  "bind-event-listener": "^3.0.0"
57
57
  },
58
58
  "peerDependencies": {
59
- "@atlaskit/editor-common": "^110.40.0",
59
+ "@atlaskit/editor-common": "^110.44.0",
60
60
  "react": "^18.2.0",
61
61
  "react-dom": "^18.2.0",
62
62
  "react-intl-next": "npm:react-intl@^5.18.1"
63
63
  },
64
64
  "devDependencies": {
65
- "@testing-library/react": "^13.4.0",
65
+ "@testing-library/react": "^16.3.0",
66
66
  "wait-for-expect": "^1.2.0"
67
67
  },
68
68
  "techstack": {
@@ -106,6 +106,9 @@
106
106
  },
107
107
  "platform_editor_blocktaskitem_patch_3": {
108
108
  "type": "boolean"
109
+ },
110
+ "platform_editor_toolbar_aifc_ga_blockers": {
111
+ "type": "boolean"
109
112
  }
110
113
  }
111
114
  }