@atlaskit/editor-plugin-tasks-and-decisions 8.1.0 → 8.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @atlaskit/editor-plugin-tasks-and-decisions
2
2
 
3
+ ## 8.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`cebd8f9171426`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/cebd8f9171426) -
8
+ [ux] ED-29159 Implement transform task inside lists - handle logic
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies
13
+
14
+ ## 8.2.0
15
+
16
+ ### Minor Changes
17
+
18
+ - [`d352feb9b2d97`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/d352feb9b2d97) -
19
+ [ux] NO-ISSUE Change blocktaskItem enablement experiment to a new tenantId based experiment
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies
24
+
3
25
  ## 8.1.0
4
26
 
5
27
  ### Minor Changes
@@ -134,7 +134,7 @@ var TaskItemNodeView = exports.TaskItemNodeView = /*#__PURE__*/function () {
134
134
  key: "updatePlaceholder",
135
135
  value: function updatePlaceholder(node) {
136
136
  var currentIsContentEmpty = this.isContentEmpty(node);
137
- if ((0, _expValEquals.expValEquals)('platform_editor_blocktaskitem_node', 'isEnabled', true)) {
137
+ if ((0, _expValEquals.expValEquals)('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true)) {
138
138
  currentIsContentEmpty = (0, _utils.isContentEmpty)(node);
139
139
  }
140
140
  if (currentIsContentEmpty !== this.emptyContent) {
@@ -86,7 +86,7 @@ function taskItemToDom(node, placeholder, intl) {
86
86
  var contentDomDataAttrs = node.content.childCount > 0 ? {} : {
87
87
  'data-empty': 'true'
88
88
  };
89
- if ((0, _expValEquals.expValEquals)('platform_editor_blocktaskitem_node', 'isEnabled', true)) {
89
+ if ((0, _expValEquals.expValEquals)('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true)) {
90
90
  contentDomDataAttrs = (0, _utils.isContentEmpty)(node) ? {
91
91
  'data-empty': 'true'
92
92
  } : {};
@@ -48,7 +48,7 @@ function createPlugin(portalProviderAPI, eventDispatcher, dispatch, api, getIntl
48
48
  decisionItem: function (node) {
49
49
  return new _DecisionItemNodeView.DecisionItemNodeView(node, getIntl());
50
50
  }
51
- }, (0, _expValEquals.expValEquals)('platform_editor_blocktaskitem_node', 'isEnabled', true) ? {
51
+ }, (0, _expValEquals.expValEquals)('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true) ? {
52
52
  blockTaskItem: (0, _taskNodeView.taskView)(api, getIntl(), taskPlaceholder)
53
53
  } : {}),
54
54
  decorations: function decorations(state) {
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toggleTaskList = void 0;
7
+ var _transforms = require("@atlaskit/editor-common/transforms");
8
+ var toggleTaskList = exports.toggleTaskList = function toggleTaskList() {
9
+ var targetType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'paragraph';
10
+ return function (_ref) {
11
+ var tr = _ref.tr;
12
+ var nodes = tr.doc.type.schema.nodes;
13
+ var selection = tr.selection;
14
+ var _getFormattedNode = (0, _transforms.getFormattedNode)(tr),
15
+ node = _getFormattedNode.node,
16
+ pos = _getFormattedNode.pos;
17
+ if (node !== null && pos !== null) {
18
+ if ((0, _transforms.isBulletOrOrderedList)(node.type)) {
19
+ var context = {
20
+ sourceNode: node,
21
+ sourcePos: pos,
22
+ targetNodeType: nodes.taskList,
23
+ tr: tr
24
+ };
25
+ return (0, _transforms.transformBetweenListTypes)(context);
26
+ }
27
+ if ((0, _transforms.isTaskList)(node.type)) {
28
+ var _context = {
29
+ sourceNode: node,
30
+ sourcePos: pos,
31
+ targetNodeType: nodes[targetType],
32
+ tr: tr
33
+ };
34
+ return targetType === 'paragraph' ? (0, _transforms.transformTaskListToBlockNodes)(_context) : (0, _transforms.transformBetweenListTypes)(_context);
35
+ }
36
+ var $from = selection.$from,
37
+ $to = selection.$to;
38
+ var range = $from.blockRange($to);
39
+ if (range) {
40
+ return (0, _transforms.transformToTaskList)(tr, range, nodes.taskList, undefined, nodes);
41
+ }
42
+ }
43
+ return tr;
44
+ };
45
+ };
@@ -31,6 +31,7 @@ var _insertCommands = require("./pm-plugins/insert-commands");
31
31
  var _keymaps = _interopRequireWildcard(require("./pm-plugins/keymaps"));
32
32
  var _main = require("./pm-plugins/main");
33
33
  var _pluginKey = require("./pm-plugins/plugin-key");
34
+ var _toggleTasklistCommands = require("./pm-plugins/toggle-tasklist-commands");
34
35
  var _RequestToEditPopup = require("./ui/Task/RequestToEditPopup");
35
36
  var _TaskListBlockMenuItem = require("./ui/TaskListBlockMenuItem/TaskListBlockMenuItem");
36
37
  var _ToolbarDecision = _interopRequireDefault(require("./ui/ToolbarDecision"));
@@ -145,7 +146,7 @@ var tasksAndDecisionsPlugin = exports.tasksAndDecisionsPlugin = function tasksAn
145
146
  }, {
146
147
  name: 'taskItem',
147
148
  node: (0, _taskItemNodeSpec.taskItemNodeSpec)()
148
- }].concat((0, _toConsumableArray2.default)((0, _expValEquals.expValEquals)('platform_editor_blocktaskitem_node', 'isEnabled', true) && allowBlockTaskItem ? [{
149
+ }].concat((0, _toConsumableArray2.default)((0, _expValEquals.expValEquals)('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true) && allowBlockTaskItem ? [{
149
150
  name: 'blockTaskItem',
150
151
  node: (0, _taskItemNodeSpec.blockTaskItemNodeSpec)()
151
152
  }] : []));
@@ -172,6 +173,7 @@ var tasksAndDecisionsPlugin = exports.tasksAndDecisionsPlugin = function tasksAn
172
173
  };
173
174
  },
174
175
  commands: {
176
+ toggleTaskList: _toggleTasklistCommands.toggleTaskList,
175
177
  updateEditPermission: function updateEditPermission(hasEditPermission) {
176
178
  return function (_ref5) {
177
179
  var tr = _ref5.tr;
@@ -120,7 +120,7 @@ export class TaskItemNodeView {
120
120
  // Update the placeholder visibility based on content
121
121
  updatePlaceholder(node) {
122
122
  let currentIsContentEmpty = this.isContentEmpty(node);
123
- if (expValEquals('platform_editor_blocktaskitem_node', 'isEnabled', true)) {
123
+ if (expValEquals('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true)) {
124
124
  currentIsContentEmpty = isContentEmpty(node);
125
125
  }
126
126
  if (currentIsContentEmpty !== this.emptyContent) {
@@ -72,7 +72,7 @@ export function taskItemToDom(node, placeholder, intl) {
72
72
  let contentDomDataAttrs = node.content.childCount > 0 ? {} : {
73
73
  'data-empty': 'true'
74
74
  };
75
- if (expValEquals('platform_editor_blocktaskitem_node', 'isEnabled', true)) {
75
+ if (expValEquals('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true)) {
76
76
  contentDomDataAttrs = isContentEmpty(node) ? {
77
77
  'data-empty': 'true'
78
78
  } : {};
@@ -31,7 +31,7 @@ export function createPlugin(portalProviderAPI, eventDispatcher, dispatch, api,
31
31
  decisionItem: node => {
32
32
  return new DecisionItemNodeView(node, getIntl());
33
33
  },
34
- ...(expValEquals('platform_editor_blocktaskitem_node', 'isEnabled', true) ? {
34
+ ...(expValEquals('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true) ? {
35
35
  blockTaskItem: taskView(api, getIntl(), taskPlaceholder)
36
36
  } : {})
37
37
  },
@@ -0,0 +1,44 @@
1
+ import { transformBetweenListTypes, transformToTaskList, transformTaskListToBlockNodes, isBulletOrOrderedList, isTaskList, getFormattedNode } from '@atlaskit/editor-common/transforms';
2
+ export const toggleTaskList = (targetType = 'paragraph') => ({
3
+ tr
4
+ }) => {
5
+ const {
6
+ nodes
7
+ } = tr.doc.type.schema;
8
+ const {
9
+ selection
10
+ } = tr;
11
+ const {
12
+ node,
13
+ pos
14
+ } = getFormattedNode(tr);
15
+ if (node !== null && pos !== null) {
16
+ if (isBulletOrOrderedList(node.type)) {
17
+ const context = {
18
+ sourceNode: node,
19
+ sourcePos: pos,
20
+ targetNodeType: nodes.taskList,
21
+ tr
22
+ };
23
+ return transformBetweenListTypes(context);
24
+ }
25
+ if (isTaskList(node.type)) {
26
+ const context = {
27
+ sourceNode: node,
28
+ sourcePos: pos,
29
+ targetNodeType: nodes[targetType],
30
+ tr
31
+ };
32
+ return targetType === 'paragraph' ? transformTaskListToBlockNodes(context) : transformBetweenListTypes(context);
33
+ }
34
+ const {
35
+ $from,
36
+ $to
37
+ } = selection;
38
+ const range = $from.blockRange($to);
39
+ if (range) {
40
+ return transformToTaskList(tr, range, nodes.taskList, undefined, nodes);
41
+ }
42
+ }
43
+ return tr;
44
+ };
@@ -22,6 +22,7 @@ import { getListTypes, insertTaskDecisionAction, insertTaskDecisionCommand, setP
22
22
  import keymap, { getIndentCommand, getUnindentCommand } from './pm-plugins/keymaps';
23
23
  import { createPlugin } from './pm-plugins/main';
24
24
  import { stateKey as taskPluginKey } from './pm-plugins/plugin-key';
25
+ import { toggleTaskList } from './pm-plugins/toggle-tasklist-commands';
25
26
  import { RequestToEditPopup } from './ui/Task/RequestToEditPopup';
26
27
  import { TaskListBlockMenuItem } from './ui/TaskListBlockMenuItem/TaskListBlockMenuItem';
27
28
  import ToolbarDecision from './ui/ToolbarDecision';
@@ -131,7 +132,7 @@ export const tasksAndDecisionsPlugin = ({
131
132
  }, {
132
133
  name: 'taskItem',
133
134
  node: taskItemNodeSpec()
134
- }, ...(expValEquals('platform_editor_blocktaskitem_node', 'isEnabled', true) && allowBlockTaskItem ? [{
135
+ }, ...(expValEquals('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true) && allowBlockTaskItem ? [{
135
136
  name: 'blockTaskItem',
136
137
  node: blockTaskItemNodeSpec()
137
138
  }] : [])];
@@ -158,6 +159,7 @@ export const tasksAndDecisionsPlugin = ({
158
159
  };
159
160
  },
160
161
  commands: {
162
+ toggleTaskList,
161
163
  updateEditPermission: hasEditPermission => ({
162
164
  tr
163
165
  }) => tr.setMeta(taskPluginKey, {
@@ -127,7 +127,7 @@ export var TaskItemNodeView = /*#__PURE__*/function () {
127
127
  key: "updatePlaceholder",
128
128
  value: function updatePlaceholder(node) {
129
129
  var currentIsContentEmpty = this.isContentEmpty(node);
130
- if (expValEquals('platform_editor_blocktaskitem_node', 'isEnabled', true)) {
130
+ if (expValEquals('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true)) {
131
131
  currentIsContentEmpty = isContentEmpty(node);
132
132
  }
133
133
  if (currentIsContentEmpty !== this.emptyContent) {
@@ -78,7 +78,7 @@ export function taskItemToDom(node, placeholder, intl) {
78
78
  var contentDomDataAttrs = node.content.childCount > 0 ? {} : {
79
79
  'data-empty': 'true'
80
80
  };
81
- if (expValEquals('platform_editor_blocktaskitem_node', 'isEnabled', true)) {
81
+ if (expValEquals('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true)) {
82
82
  contentDomDataAttrs = isContentEmpty(node) ? {
83
83
  'data-empty': 'true'
84
84
  } : {};
@@ -41,7 +41,7 @@ export function createPlugin(portalProviderAPI, eventDispatcher, dispatch, api,
41
41
  decisionItem: function (node) {
42
42
  return new DecisionItemNodeView(node, getIntl());
43
43
  }
44
- }, expValEquals('platform_editor_blocktaskitem_node', 'isEnabled', true) ? {
44
+ }, expValEquals('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true) ? {
45
45
  blockTaskItem: taskView(api, getIntl(), taskPlaceholder)
46
46
  } : {}),
47
47
  decorations: function decorations(state) {
@@ -0,0 +1,39 @@
1
+ import { transformBetweenListTypes, transformToTaskList, transformTaskListToBlockNodes, isBulletOrOrderedList, isTaskList, getFormattedNode } from '@atlaskit/editor-common/transforms';
2
+ export var toggleTaskList = function toggleTaskList() {
3
+ var targetType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'paragraph';
4
+ return function (_ref) {
5
+ var tr = _ref.tr;
6
+ var nodes = tr.doc.type.schema.nodes;
7
+ var selection = tr.selection;
8
+ var _getFormattedNode = getFormattedNode(tr),
9
+ node = _getFormattedNode.node,
10
+ pos = _getFormattedNode.pos;
11
+ if (node !== null && pos !== null) {
12
+ if (isBulletOrOrderedList(node.type)) {
13
+ var context = {
14
+ sourceNode: node,
15
+ sourcePos: pos,
16
+ targetNodeType: nodes.taskList,
17
+ tr: tr
18
+ };
19
+ return transformBetweenListTypes(context);
20
+ }
21
+ if (isTaskList(node.type)) {
22
+ var _context = {
23
+ sourceNode: node,
24
+ sourcePos: pos,
25
+ targetNodeType: nodes[targetType],
26
+ tr: tr
27
+ };
28
+ return targetType === 'paragraph' ? transformTaskListToBlockNodes(_context) : transformBetweenListTypes(_context);
29
+ }
30
+ var $from = selection.$from,
31
+ $to = selection.$to;
32
+ var range = $from.blockRange($to);
33
+ if (range) {
34
+ return transformToTaskList(tr, range, nodes.taskList, undefined, nodes);
35
+ }
36
+ }
37
+ return tr;
38
+ };
39
+ };
@@ -25,6 +25,7 @@ import { getListTypes, insertTaskDecisionAction, insertTaskDecisionCommand, setP
25
25
  import keymap, { getIndentCommand, getUnindentCommand } from './pm-plugins/keymaps';
26
26
  import { createPlugin } from './pm-plugins/main';
27
27
  import { stateKey as taskPluginKey } from './pm-plugins/plugin-key';
28
+ import { toggleTaskList } from './pm-plugins/toggle-tasklist-commands';
28
29
  import { RequestToEditPopup } from './ui/Task/RequestToEditPopup';
29
30
  import { TaskListBlockMenuItem } from './ui/TaskListBlockMenuItem/TaskListBlockMenuItem';
30
31
  import ToolbarDecision from './ui/ToolbarDecision';
@@ -136,7 +137,7 @@ export var tasksAndDecisionsPlugin = function tasksAndDecisionsPlugin(_ref3) {
136
137
  }, {
137
138
  name: 'taskItem',
138
139
  node: taskItemNodeSpec()
139
- }].concat(_toConsumableArray(expValEquals('platform_editor_blocktaskitem_node', 'isEnabled', true) && allowBlockTaskItem ? [{
140
+ }].concat(_toConsumableArray(expValEquals('platform_editor_blocktaskitem_node_tenantid', 'isEnabled', true) && allowBlockTaskItem ? [{
140
141
  name: 'blockTaskItem',
141
142
  node: blockTaskItemNodeSpec()
142
143
  }] : []));
@@ -163,6 +164,7 @@ export var tasksAndDecisionsPlugin = function tasksAndDecisionsPlugin(_ref3) {
163
164
  };
164
165
  },
165
166
  commands: {
167
+ toggleTaskList: toggleTaskList,
166
168
  updateEditPermission: function updateEditPermission(hasEditPermission) {
167
169
  return function (_ref5) {
168
170
  var tr = _ref5.tr;
@@ -0,0 +1,4 @@
1
+ import type { Transaction } from '@atlaskit/editor-prosemirror/state';
2
+ export declare const toggleTaskList: (targetType?: "orderedList" | "bulletList" | "paragraph") => ({ tr }: {
3
+ tr: Transaction;
4
+ }) => Transaction | null;
@@ -25,6 +25,7 @@ export type TasksAndDecisionsPlugin = NextEditorPlugin<'taskDecision', {
25
25
  setProvider: (provider: Promise<TaskDecisionProvider>) => Promise<boolean>;
26
26
  };
27
27
  commands: {
28
+ toggleTaskList: (targetType?: 'orderedList' | 'bulletList' | 'paragraph') => EditorCommand;
28
29
  updateEditPermission: (hasEditPermission: boolean | undefined) => EditorCommand;
29
30
  updateHasRequestedEditPermission: (hasRequestedEditPermission: boolean) => EditorCommand;
30
31
  };
@@ -0,0 +1,4 @@
1
+ import type { Transaction } from '@atlaskit/editor-prosemirror/state';
2
+ export declare const toggleTaskList: (targetType?: "orderedList" | "bulletList" | "paragraph") => ({ tr }: {
3
+ tr: Transaction;
4
+ }) => Transaction | null;
@@ -25,6 +25,7 @@ export type TasksAndDecisionsPlugin = NextEditorPlugin<'taskDecision', {
25
25
  setProvider: (provider: Promise<TaskDecisionProvider>) => Promise<boolean>;
26
26
  };
27
27
  commands: {
28
+ toggleTaskList: (targetType?: 'orderedList' | 'bulletList' | 'paragraph') => EditorCommand;
28
29
  updateEditPermission: (hasEditPermission: boolean | undefined) => EditorCommand;
29
30
  updateHasRequestedEditPermission: (hasRequestedEditPermission: boolean) => EditorCommand;
30
31
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-tasks-and-decisions",
3
- "version": "8.1.0",
3
+ "version": "8.3.0",
4
4
  "description": "Tasks and decisions plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -34,7 +34,7 @@
34
34
  "@atlaskit/analytics-next": "^11.1.0",
35
35
  "@atlaskit/css": "^0.14.0",
36
36
  "@atlaskit/editor-plugin-analytics": "^5.1.0",
37
- "@atlaskit/editor-plugin-block-menu": "^3.0.0",
37
+ "@atlaskit/editor-plugin-block-menu": "^3.1.0",
38
38
  "@atlaskit/editor-plugin-context-identifier": "^5.0.0",
39
39
  "@atlaskit/editor-plugin-editor-viewmode": "^7.0.0",
40
40
  "@atlaskit/editor-plugin-selection": "^5.0.0",
@@ -49,14 +49,14 @@
49
49
  "@atlaskit/primitives": "^14.14.0",
50
50
  "@atlaskit/prosemirror-input-rules": "^3.4.0",
51
51
  "@atlaskit/task-decision": "^19.2.0",
52
- "@atlaskit/tmp-editor-statsig": "^12.14.0",
52
+ "@atlaskit/tmp-editor-statsig": "^12.18.0",
53
53
  "@atlaskit/tokens": "^6.3.0",
54
54
  "@babel/runtime": "^7.0.0",
55
55
  "@compiled/react": "^0.18.3",
56
56
  "bind-event-listener": "^3.0.0"
57
57
  },
58
58
  "peerDependencies": {
59
- "@atlaskit/editor-common": "^109.3.0",
59
+ "@atlaskit/editor-common": "^109.4.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"