@atlaskit/editor-plugin-tasks-and-decisions 2.7.7 → 2.9.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 +20 -0
- package/dist/cjs/commands.js +11 -1
- package/dist/cjs/nodeviews/taskItem.js +27 -5
- package/dist/cjs/plugin.js +79 -20
- package/dist/cjs/pm-plugins/actions.js +20 -0
- package/dist/cjs/pm-plugins/main.js +22 -5
- package/dist/cjs/pm-plugins/types.js +4 -2
- package/dist/cjs/ui/Task/index.js +26 -6
- package/dist/es2019/commands.js +8 -0
- package/dist/es2019/nodeviews/taskItem.js +23 -6
- package/dist/es2019/plugin.js +37 -5
- package/dist/es2019/pm-plugins/actions.js +12 -0
- package/dist/es2019/pm-plugins/main.js +23 -7
- package/dist/es2019/pm-plugins/types.js +7 -2
- package/dist/es2019/ui/Task/index.js +25 -4
- package/dist/esm/commands.js +10 -0
- package/dist/esm/nodeviews/taskItem.js +28 -6
- package/dist/esm/plugin.js +80 -21
- package/dist/esm/pm-plugins/actions.js +13 -0
- package/dist/esm/pm-plugins/main.js +22 -5
- package/dist/esm/pm-plugins/types.js +7 -2
- package/dist/esm/ui/Task/index.js +26 -6
- package/dist/types/commands.d.ts +2 -0
- package/dist/types/pm-plugins/actions.d.ts +4 -0
- package/dist/types/pm-plugins/main.d.ts +2 -2
- package/dist/types/pm-plugins/types.d.ts +17 -1
- package/dist/types/types.d.ts +21 -4
- package/dist/types/ui/Task/index.d.ts +8 -2
- package/dist/types-ts4.5/commands.d.ts +2 -0
- package/dist/types-ts4.5/pm-plugins/actions.d.ts +4 -0
- package/dist/types-ts4.5/pm-plugins/main.d.ts +2 -2
- package/dist/types-ts4.5/pm-plugins/types.d.ts +17 -1
- package/dist/types-ts4.5/types.d.ts +21 -4
- package/dist/types-ts4.5/ui/Task/index.d.ts +8 -2
- package/package.json +7 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-tasks-and-decisions
|
|
2
2
|
|
|
3
|
+
## 2.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#137506](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/137506)
|
|
8
|
+
[`75c4ebf9d7515`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/75c4ebf9d7515) -
|
|
9
|
+
Pass TaskDecisionProvider via preset
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
15
|
+
## 2.8.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- [#148391](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/148391)
|
|
20
|
+
[`3588af87c8dc3`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/3588af87c8dc3) -
|
|
21
|
+
[ux] ED-24964 Sync up request to edit between plugin and confluence
|
|
22
|
+
|
|
3
23
|
## 2.7.7
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/dist/cjs/commands.js
CHANGED
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.isSupportedSourceNode = exports.insertTaskDecisionWithAnalytics = exports.insertTaskDecisionCommand = exports.insertTaskDecisionAction = exports.getListTypes = exports.createListAtSelection = exports.changeInDepth = void 0;
|
|
7
|
+
exports.setProvider = exports.isSupportedSourceNode = exports.insertTaskDecisionWithAnalytics = exports.insertTaskDecisionCommand = exports.insertTaskDecisionAction = exports.getListTypes = exports.createListAtSelection = exports.changeInDepth = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
10
10
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
@@ -14,6 +14,8 @@ var _model = require("@atlaskit/editor-prosemirror/model");
|
|
|
14
14
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
15
15
|
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
16
16
|
var _utils2 = require("@atlaskit/editor-prosemirror/utils");
|
|
17
|
+
var _pluginKey = require("./pm-plugins/plugin-key");
|
|
18
|
+
var _types = require("./pm-plugins/types");
|
|
17
19
|
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; }
|
|
18
20
|
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) { (0, _defineProperty2.default)(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; }
|
|
19
21
|
var getContextData = function getContextData() {
|
|
@@ -285,4 +287,12 @@ var createListAtSelection = exports.createListAtSelection = function createListA
|
|
|
285
287
|
}
|
|
286
288
|
}
|
|
287
289
|
return (0, _utils2.safeInsert)(emptyList)(tr);
|
|
290
|
+
};
|
|
291
|
+
var setProvider = exports.setProvider = function setProvider(provider) {
|
|
292
|
+
return function (tr) {
|
|
293
|
+
return tr.setMeta(_pluginKey.stateKey, {
|
|
294
|
+
action: _types.ACTIONS.SET_PROVIDER,
|
|
295
|
+
data: provider
|
|
296
|
+
});
|
|
297
|
+
};
|
|
288
298
|
};
|
|
@@ -36,6 +36,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
36
36
|
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) { (0, _defineProperty2.default)(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; }
|
|
37
37
|
function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
|
|
38
38
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
39
|
+
var TRYING_REQUEST_TIMEOUT = 3000;
|
|
39
40
|
var wrapperStyles = (0, _primitives.xcss)({
|
|
40
41
|
display: 'flex',
|
|
41
42
|
flexDirection: 'column',
|
|
@@ -116,12 +117,31 @@ var TaskItemWrapper = function TaskItemWrapper(_ref2) {
|
|
|
116
117
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
117
118
|
isOpen = _useState2[0],
|
|
118
119
|
setIsOpen = _useState2[1];
|
|
119
|
-
var _useState3 = (0, _react.useState)(
|
|
120
|
+
var _useState3 = (0, _react.useState)(taskDecisionState === null || taskDecisionState === void 0 ? void 0 : taskDecisionState.hasRequestedEditPermission),
|
|
120
121
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
121
122
|
requested = _useState4[0],
|
|
122
123
|
setRequested = _useState4[1];
|
|
124
|
+
var _useState5 = (0, _react.useState)(false),
|
|
125
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
126
|
+
tryingRequest = _useState6[0],
|
|
127
|
+
setTryingRequest = _useState6[1];
|
|
123
128
|
var _useIntl3 = (0, _reactIntlNext.useIntl)(),
|
|
124
129
|
formatMessage = _useIntl3.formatMessage;
|
|
130
|
+
(0, _react.useEffect)(function () {
|
|
131
|
+
if ((0, _platformFeatureFlags.fg)('editor_request_to_edit_task')) {
|
|
132
|
+
setRequested(taskDecisionState === null || taskDecisionState === void 0 ? void 0 : taskDecisionState.hasRequestedEditPermission);
|
|
133
|
+
}
|
|
134
|
+
}, [taskDecisionState === null || taskDecisionState === void 0 ? void 0 : taskDecisionState.hasRequestedEditPermission]);
|
|
135
|
+
(0, _react.useEffect)(function () {
|
|
136
|
+
if (!tryingRequest && (0, _platformFeatureFlags.fg)('editor_request_to_edit_task')) {
|
|
137
|
+
var timout = setTimeout(function () {
|
|
138
|
+
setTryingRequest(false);
|
|
139
|
+
}, TRYING_REQUEST_TIMEOUT);
|
|
140
|
+
return function () {
|
|
141
|
+
return clearTimeout(timout);
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}, [tryingRequest]);
|
|
125
145
|
var showPlaceholder = (0, _useShowPlaceholder.useShowPlaceholder)({
|
|
126
146
|
editorView: editorView,
|
|
127
147
|
isContentNodeEmpty: isContentNodeEmpty,
|
|
@@ -131,7 +151,7 @@ var TaskItemWrapper = function TaskItemWrapper(_ref2) {
|
|
|
131
151
|
var onHandleEdit = function onHandleEdit(editorAnalyticsAPI) {
|
|
132
152
|
if ((0, _platformFeatureFlags.fg)('editor_request_to_edit_task')) {
|
|
133
153
|
var _api$taskDecision;
|
|
134
|
-
|
|
154
|
+
setTryingRequest(true);
|
|
135
155
|
var tr = editorView.state.tr;
|
|
136
156
|
var nodePos = getPos();
|
|
137
157
|
if (typeof nodePos !== 'number') {
|
|
@@ -166,7 +186,8 @@ var TaskItemWrapper = function TaskItemWrapper(_ref2) {
|
|
|
166
186
|
onChange: onChange,
|
|
167
187
|
isFocused: isFocused,
|
|
168
188
|
showPlaceholder: showPlaceholder,
|
|
169
|
-
providers: providerFactory
|
|
189
|
+
providers: providerFactory,
|
|
190
|
+
api: api
|
|
170
191
|
});
|
|
171
192
|
}
|
|
172
193
|
return /*#__PURE__*/_react.default.createElement(_popup.default, {
|
|
@@ -185,7 +206,7 @@ var TaskItemWrapper = function TaskItemWrapper(_ref2) {
|
|
|
185
206
|
size: "xsmall"
|
|
186
207
|
}, formatMessage(_messages.tasksAndDecisionsMessages.editAccessTitle)), /*#__PURE__*/_react.default.createElement("div", null, formatMessage(_messages.tasksAndDecisionsMessages.requestToEditDescription)), /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
187
208
|
xcss: wrapperBoxStyles
|
|
188
|
-
}, requested ? /*#__PURE__*/_react.default.createElement(RequestedMessage, null) : /*#__PURE__*/_react.default.createElement(RequestToEditButton, {
|
|
209
|
+
}, tryingRequest || requested ? /*#__PURE__*/_react.default.createElement(RequestedMessage, null) : /*#__PURE__*/_react.default.createElement(RequestToEditButton, {
|
|
189
210
|
onClick: (api === null || api === void 0 || (_api$editorViewMode = api.editorViewMode) === null || _api$editorViewMode === void 0 || (_api$editorViewMode = _api$editorViewMode.sharedState.currentState()) === null || _api$editorViewMode === void 0 ? void 0 : _api$editorViewMode.mode) === 'view' ? function () {
|
|
190
211
|
var _api$analytics2;
|
|
191
212
|
return onHandleEdit(api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions);
|
|
@@ -212,7 +233,8 @@ var TaskItemWrapper = function TaskItemWrapper(_ref2) {
|
|
|
212
233
|
isFocused: isFocused,
|
|
213
234
|
showPlaceholder: showPlaceholder,
|
|
214
235
|
providers: providerFactory,
|
|
215
|
-
disableOnChange: !(api !== null && api !== void 0 && (_api$taskDecision3 = api.taskDecision) !== null && _api$taskDecision3 !== void 0 && (_api$taskDecision3 = _api$taskDecision3.sharedState.currentState()) !== null && _api$taskDecision3 !== void 0 && _api$taskDecision3.hasEditPermission)
|
|
236
|
+
disableOnChange: !(api !== null && api !== void 0 && (_api$taskDecision3 = api.taskDecision) !== null && _api$taskDecision3 !== void 0 && (_api$taskDecision3 = _api$taskDecision3.sharedState.currentState()) !== null && _api$taskDecision3 !== void 0 && _api$taskDecision3.hasEditPermission),
|
|
237
|
+
api: api
|
|
216
238
|
});
|
|
217
239
|
},
|
|
218
240
|
placement: 'bottom-start'
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.tasksAndDecisionsPlugin = exports.taskItemSpecWithFixedToDOM = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
12
|
var _react = require("@emotion/react");
|
|
11
13
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
@@ -15,6 +17,7 @@ var _lazyNodeView = require("@atlaskit/editor-common/lazy-node-view");
|
|
|
15
17
|
var _messages = require("@atlaskit/editor-common/messages");
|
|
16
18
|
var _quickInsert = require("@atlaskit/editor-common/quick-insert");
|
|
17
19
|
var _styles = require("@atlaskit/editor-common/styles");
|
|
20
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
18
21
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
19
22
|
var _commands = require("./commands");
|
|
20
23
|
var _helpers = require("./pm-plugins/helpers");
|
|
@@ -121,12 +124,25 @@ var tasksAndDecisionsPlugin = exports.tasksAndDecisionsPlugin = function tasksAn
|
|
|
121
124
|
consumeTabs = _ref2$config2.consumeTabs,
|
|
122
125
|
useLongPressSelection = _ref2$config2.useLongPressSelection,
|
|
123
126
|
hasEditPermission = _ref2$config2.hasEditPermission,
|
|
127
|
+
hasRequestedEditPermission = _ref2$config2.hasRequestedEditPermission,
|
|
124
128
|
requestToEditContent = _ref2$config2.requestToEditContent,
|
|
129
|
+
taskDecisionProvider = _ref2$config2.taskDecisionProvider,
|
|
125
130
|
api = _ref2.api;
|
|
126
131
|
var getIdentifierProvider = function getIdentifierProvider() {
|
|
127
132
|
var _api$contextIdentifie;
|
|
128
133
|
return api === null || api === void 0 || (_api$contextIdentifie = api.contextIdentifier) === null || _api$contextIdentifie === void 0 || (_api$contextIdentifie = _api$contextIdentifie.sharedState.currentState()) === null || _api$contextIdentifie === void 0 ? void 0 : _api$contextIdentifie.contextIdentifierProvider;
|
|
129
134
|
};
|
|
135
|
+
var previousTaskAndDecisionProvider;
|
|
136
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_td_provider_from_plugin_config')) {
|
|
137
|
+
if (taskDecisionProvider) {
|
|
138
|
+
taskDecisionProvider.then(function (provider) {
|
|
139
|
+
api === null || api === void 0 || api.core.actions.execute(function (_ref3) {
|
|
140
|
+
var tr = _ref3.tr;
|
|
141
|
+
return (0, _commands.setProvider)(provider)(tr);
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
130
146
|
return {
|
|
131
147
|
name: 'taskDecision',
|
|
132
148
|
nodes: function nodes() {
|
|
@@ -157,54 +173,97 @@ var tasksAndDecisionsPlugin = exports.tasksAndDecisionsPlugin = function tasksAn
|
|
|
157
173
|
indentDisabled: itemIndex === 0 || indentLevel >= _indentation.MAX_INDENTATION_LEVEL,
|
|
158
174
|
outdentDisabled: indentLevel <= 1,
|
|
159
175
|
hasEditPermission: pluginState === null || pluginState === void 0 ? void 0 : pluginState.hasEditPermission,
|
|
160
|
-
requestToEditContent: pluginState === null || pluginState === void 0 ? void 0 : pluginState.requestToEditContent
|
|
176
|
+
requestToEditContent: pluginState === null || pluginState === void 0 ? void 0 : pluginState.requestToEditContent,
|
|
177
|
+
hasRequestedEditPermission: pluginState === null || pluginState === void 0 ? void 0 : pluginState.hasRequestedEditPermission,
|
|
178
|
+
taskDecisionProvider: pluginState === null || pluginState === void 0 ? void 0 : pluginState.taskDecisionProvider
|
|
161
179
|
};
|
|
162
180
|
},
|
|
163
181
|
commands: {
|
|
164
182
|
updateEditPermission: function updateEditPermission(hasEditPermission) {
|
|
165
|
-
return function (
|
|
166
|
-
var tr =
|
|
183
|
+
return function (_ref4) {
|
|
184
|
+
var tr = _ref4.tr;
|
|
167
185
|
return tr.setMeta(_pluginKey.stateKey, {
|
|
168
186
|
hasEditPermission: hasEditPermission
|
|
169
187
|
});
|
|
170
188
|
};
|
|
189
|
+
},
|
|
190
|
+
updateHasRequestedEditPermission: function updateHasRequestedEditPermission(hasRequestedEditPermission) {
|
|
191
|
+
return function (_ref5) {
|
|
192
|
+
var tr = _ref5.tr;
|
|
193
|
+
return tr.setMeta(_pluginKey.stateKey, {
|
|
194
|
+
hasRequestedEditPermission: hasRequestedEditPermission
|
|
195
|
+
});
|
|
196
|
+
};
|
|
171
197
|
}
|
|
172
198
|
},
|
|
173
199
|
actions: {
|
|
174
200
|
insertTaskDecision: (0, _commands.insertTaskDecisionCommand)(api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions, getIdentifierProvider),
|
|
175
201
|
indentTaskList: (0, _keymaps.getIndentCommand)(api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions),
|
|
176
|
-
outdentTaskList: (0, _keymaps.getUnindentCommand)(api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions)
|
|
202
|
+
outdentTaskList: (0, _keymaps.getUnindentCommand)(api === null || api === void 0 || (_api$analytics3 = api.analytics) === null || _api$analytics3 === void 0 ? void 0 : _api$analytics3.actions),
|
|
203
|
+
setProvider: function () {
|
|
204
|
+
var _setProvider2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(providerPromise) {
|
|
205
|
+
var _api$core$actions$exe;
|
|
206
|
+
var provider;
|
|
207
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
208
|
+
while (1) switch (_context.prev = _context.next) {
|
|
209
|
+
case 0:
|
|
210
|
+
_context.next = 2;
|
|
211
|
+
return providerPromise;
|
|
212
|
+
case 2:
|
|
213
|
+
provider = _context.sent;
|
|
214
|
+
if (!(previousTaskAndDecisionProvider === provider || taskDecisionProvider === providerPromise)) {
|
|
215
|
+
_context.next = 5;
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
return _context.abrupt("return", false);
|
|
219
|
+
case 5:
|
|
220
|
+
previousTaskAndDecisionProvider = provider;
|
|
221
|
+
return _context.abrupt("return", (_api$core$actions$exe = api === null || api === void 0 ? void 0 : api.core.actions.execute(function (_ref6) {
|
|
222
|
+
var tr = _ref6.tr;
|
|
223
|
+
return (0, _commands.setProvider)(provider)(tr);
|
|
224
|
+
})) !== null && _api$core$actions$exe !== void 0 ? _api$core$actions$exe : false);
|
|
225
|
+
case 7:
|
|
226
|
+
case "end":
|
|
227
|
+
return _context.stop();
|
|
228
|
+
}
|
|
229
|
+
}, _callee);
|
|
230
|
+
}));
|
|
231
|
+
function setProvider(_x) {
|
|
232
|
+
return _setProvider2.apply(this, arguments);
|
|
233
|
+
}
|
|
234
|
+
return setProvider;
|
|
235
|
+
}()
|
|
177
236
|
},
|
|
178
237
|
pmPlugins: function pmPlugins() {
|
|
179
238
|
return [{
|
|
180
239
|
name: 'tasksAndDecisions',
|
|
181
|
-
plugin: function plugin(
|
|
182
|
-
var portalProviderAPI =
|
|
183
|
-
providerFactory =
|
|
184
|
-
eventDispatcher =
|
|
185
|
-
dispatch =
|
|
186
|
-
return (0, _main.createPlugin)(portalProviderAPI, eventDispatcher, providerFactory, dispatch, api, useLongPressSelection, hasEditPermission, requestToEditContent);
|
|
240
|
+
plugin: function plugin(_ref7) {
|
|
241
|
+
var portalProviderAPI = _ref7.portalProviderAPI,
|
|
242
|
+
providerFactory = _ref7.providerFactory,
|
|
243
|
+
eventDispatcher = _ref7.eventDispatcher,
|
|
244
|
+
dispatch = _ref7.dispatch;
|
|
245
|
+
return (0, _main.createPlugin)(portalProviderAPI, eventDispatcher, providerFactory, dispatch, api, useLongPressSelection, hasEditPermission, hasRequestedEditPermission, requestToEditContent);
|
|
187
246
|
}
|
|
188
247
|
}, {
|
|
189
248
|
name: 'tasksAndDecisionsInputRule',
|
|
190
|
-
plugin: function plugin(
|
|
249
|
+
plugin: function plugin(_ref8) {
|
|
191
250
|
var _api$analytics4;
|
|
192
|
-
var schema =
|
|
193
|
-
featureFlags =
|
|
251
|
+
var schema = _ref8.schema,
|
|
252
|
+
featureFlags = _ref8.featureFlags;
|
|
194
253
|
return (0, _inputRules.default)(api === null || api === void 0 || (_api$analytics4 = api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions, getIdentifierProvider)(schema, featureFlags);
|
|
195
254
|
}
|
|
196
255
|
}, {
|
|
197
256
|
name: 'tasksAndDecisionsKeyMap',
|
|
198
|
-
plugin: function plugin(
|
|
199
|
-
var schema =
|
|
257
|
+
plugin: function plugin(_ref9) {
|
|
258
|
+
var schema = _ref9.schema;
|
|
200
259
|
return (0, _keymaps.default)(schema, api, allowNestedTasks, consumeTabs);
|
|
201
260
|
}
|
|
202
261
|
} // Needs to be after "save-on-enter"
|
|
203
262
|
];
|
|
204
263
|
},
|
|
205
|
-
secondaryToolbarComponent: function secondaryToolbarComponent(
|
|
206
|
-
var editorView =
|
|
207
|
-
disabled =
|
|
264
|
+
secondaryToolbarComponent: function secondaryToolbarComponent(_ref10) {
|
|
265
|
+
var editorView = _ref10.editorView,
|
|
266
|
+
disabled = _ref10.disabled;
|
|
208
267
|
return (0, _react.jsx)("div", {
|
|
209
268
|
css: taskDecisionToolbarGroupStyles
|
|
210
269
|
}, (0, _react.jsx)(_ToolbarDecision.default, {
|
|
@@ -220,8 +279,8 @@ var tasksAndDecisionsPlugin = exports.tasksAndDecisionsPlugin = function tasksAn
|
|
|
220
279
|
}));
|
|
221
280
|
},
|
|
222
281
|
pluginsOptions: {
|
|
223
|
-
quickInsert: function quickInsert(
|
|
224
|
-
var formatMessage =
|
|
282
|
+
quickInsert: function quickInsert(_ref11) {
|
|
283
|
+
var formatMessage = _ref11.formatMessage;
|
|
225
284
|
return [{
|
|
226
285
|
id: 'action',
|
|
227
286
|
title: formatMessage(_messages.toolbarInsertBlockMessages.action),
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.setProvider = exports.focusTaskDecision = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
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; }
|
|
10
|
+
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) { (0, _defineProperty2.default)(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; }
|
|
11
|
+
var focusTaskDecision = exports.focusTaskDecision = function focusTaskDecision(state, action) {
|
|
12
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
13
|
+
focusedTaskItemLocalId: action.data
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var setProvider = exports.setProvider = function setProvider(state, action) {
|
|
17
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
18
|
+
taskDecisionProvider: action.data
|
|
19
|
+
});
|
|
20
|
+
};
|
|
@@ -16,6 +16,7 @@ var _state = require("@atlaskit/editor-prosemirror/state");
|
|
|
16
16
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
17
17
|
var _decisionLazyNodeView = require("../nodeviews/decision-lazy-node-view");
|
|
18
18
|
var _taskLazyNodeView = require("../nodeviews/task-lazy-node-view");
|
|
19
|
+
var _actions = require("./actions");
|
|
19
20
|
var _helpers = require("./helpers");
|
|
20
21
|
var _pluginKey = require("./plugin-key");
|
|
21
22
|
var _types = require("./types");
|
|
@@ -32,7 +33,8 @@ function nodesBetweenChanged(tr, f, startPos) {
|
|
|
32
33
|
function createPlugin(portalProviderAPI, eventDispatcher, providerFactory, dispatch, api) {
|
|
33
34
|
var useLongPressSelection = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
|
|
34
35
|
var hasEditPermission = arguments.length > 6 ? arguments[6] : undefined;
|
|
35
|
-
var
|
|
36
|
+
var hasRequestedEditPermission = arguments.length > 7 ? arguments[7] : undefined;
|
|
37
|
+
var requestToEditContent = arguments.length > 8 ? arguments[8] : undefined;
|
|
36
38
|
return new _safePlugin.SafePlugin({
|
|
37
39
|
props: {
|
|
38
40
|
nodeViews: {
|
|
@@ -169,12 +171,15 @@ function createPlugin(portalProviderAPI, eventDispatcher, providerFactory, dispa
|
|
|
169
171
|
return {
|
|
170
172
|
insideTaskDecisionItem: false,
|
|
171
173
|
hasEditPermission: hasEditPermission,
|
|
172
|
-
|
|
174
|
+
hasRequestedEditPermission: hasRequestedEditPermission,
|
|
175
|
+
requestToEditContent: requestToEditContent,
|
|
176
|
+
focusedTaskItemLocalId: null,
|
|
177
|
+
taskDecisionProvider: undefined
|
|
173
178
|
};
|
|
174
179
|
},
|
|
175
180
|
apply: function apply(tr, pluginState) {
|
|
176
181
|
var metaData = tr.getMeta(_pluginKey.stateKey);
|
|
177
|
-
var _ref = metaData
|
|
182
|
+
var _ref = metaData !== null && metaData !== void 0 ? metaData : {
|
|
178
183
|
action: null,
|
|
179
184
|
data: null
|
|
180
185
|
},
|
|
@@ -185,8 +190,15 @@ function createPlugin(portalProviderAPI, eventDispatcher, providerFactory, dispa
|
|
|
185
190
|
// Actions
|
|
186
191
|
switch (action) {
|
|
187
192
|
case _types.ACTIONS.FOCUS_BY_LOCALID:
|
|
188
|
-
newPluginState =
|
|
189
|
-
|
|
193
|
+
newPluginState = (0, _actions.focusTaskDecision)(newPluginState, {
|
|
194
|
+
action: _types.ACTIONS.FOCUS_BY_LOCALID,
|
|
195
|
+
data: data
|
|
196
|
+
});
|
|
197
|
+
break;
|
|
198
|
+
case _types.ACTIONS.SET_PROVIDER:
|
|
199
|
+
newPluginState = (0, _actions.setProvider)(newPluginState, {
|
|
200
|
+
action: _types.ACTIONS.SET_PROVIDER,
|
|
201
|
+
data: data
|
|
190
202
|
});
|
|
191
203
|
break;
|
|
192
204
|
}
|
|
@@ -197,6 +209,11 @@ function createPlugin(portalProviderAPI, eventDispatcher, providerFactory, dispa
|
|
|
197
209
|
hasEditPermission: metaData.hasEditPermission
|
|
198
210
|
});
|
|
199
211
|
}
|
|
212
|
+
if (metaData && 'hasRequestedEditPermission' in metaData && (0, _platformFeatureFlags.fg)('editor_request_to_edit_task')) {
|
|
213
|
+
newPluginState = _objectSpread(_objectSpread({}, newPluginState), {}, {
|
|
214
|
+
hasRequestedEditPermission: metaData.hasRequestedEditPermission
|
|
215
|
+
});
|
|
216
|
+
}
|
|
200
217
|
|
|
201
218
|
// Dispatch
|
|
202
219
|
dispatch(_pluginKey.stateKey, newPluginState);
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ACTIONS = void 0;
|
|
7
7
|
var ACTIONS = exports.ACTIONS = /*#__PURE__*/function (ACTIONS) {
|
|
8
|
-
ACTIONS[ACTIONS["
|
|
8
|
+
ACTIONS[ACTIONS["SET_PROVIDER"] = 0] = "SET_PROVIDER";
|
|
9
|
+
ACTIONS[ACTIONS["FOCUS_BY_LOCALID"] = 1] = "FOCUS_BY_LOCALID";
|
|
9
10
|
return ACTIONS;
|
|
10
|
-
}({});
|
|
11
|
+
}({}); // actions
|
|
12
|
+
// commands
|
|
@@ -17,10 +17,12 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
17
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
19
|
var _reactIntlNext = require("react-intl-next");
|
|
20
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
20
21
|
var _messages = require("@atlaskit/editor-common/messages");
|
|
21
22
|
var _providerFactory2 = require("@atlaskit/editor-common/provider-factory");
|
|
23
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
22
24
|
var _taskItemWithProviders = _interopRequireDefault(require("./task-item-with-providers"));
|
|
23
|
-
var _excluded = ["providers", "intl"];
|
|
25
|
+
var _excluded = ["providers", "intl", "api"];
|
|
24
26
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
25
27
|
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 && {}.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; }
|
|
26
28
|
function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
|
|
@@ -37,13 +39,20 @@ var TaskItem = exports.TaskItem = /*#__PURE__*/function (_PureComponent) {
|
|
|
37
39
|
var _this$props = _this.props,
|
|
38
40
|
_providerFactory = _this$props.providers,
|
|
39
41
|
formatMessage = _this$props.intl.formatMessage,
|
|
42
|
+
api = _this$props.api,
|
|
40
43
|
otherProps = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
|
|
41
|
-
var
|
|
42
|
-
contextIdentifierProvider = providers.contextIdentifierProvider;
|
|
44
|
+
var contextIdentifierProvider = providers.contextIdentifierProvider;
|
|
43
45
|
var placeholder = formatMessage(_messages.tasksAndDecisionsMessages.taskPlaceholder);
|
|
46
|
+
var getTaskDecisionProvider = function getTaskDecisionProvider() {
|
|
47
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_td_provider_from_plugin_config')) {
|
|
48
|
+
var _this$props$taskDecis;
|
|
49
|
+
return (_this$props$taskDecis = _this.props.taskDecisionState) !== null && _this$props$taskDecis !== void 0 && _this$props$taskDecis.taskDecisionProvider ? Promise.resolve(_this.props.taskDecisionState.taskDecisionProvider) : undefined;
|
|
50
|
+
}
|
|
51
|
+
return providers.taskDecisionProvider;
|
|
52
|
+
};
|
|
44
53
|
return /*#__PURE__*/_react.default.createElement(_taskItemWithProviders.default, (0, _extends2.default)({}, otherProps, {
|
|
45
54
|
placeholder: placeholder,
|
|
46
|
-
taskDecisionProvider:
|
|
55
|
+
taskDecisionProvider: getTaskDecisionProvider(),
|
|
47
56
|
contextIdentifierProvider: contextIdentifierProvider
|
|
48
57
|
}));
|
|
49
58
|
});
|
|
@@ -62,8 +71,12 @@ var TaskItem = exports.TaskItem = /*#__PURE__*/function (_PureComponent) {
|
|
|
62
71
|
}, {
|
|
63
72
|
key: "render",
|
|
64
73
|
value: function render() {
|
|
74
|
+
var providers = ['contextIdentifierProvider'];
|
|
75
|
+
if (!(0, _platformFeatureFlags.fg)('platform_editor_td_provider_from_plugin_config')) {
|
|
76
|
+
providers.push('taskDecisionProvider');
|
|
77
|
+
}
|
|
65
78
|
return /*#__PURE__*/_react.default.createElement(_providerFactory2.WithProviders, {
|
|
66
|
-
providers:
|
|
79
|
+
providers: providers,
|
|
67
80
|
providerFactory: this.providerFactory,
|
|
68
81
|
renderNode: this.renderWithProvider
|
|
69
82
|
});
|
|
@@ -72,4 +85,11 @@ var TaskItem = exports.TaskItem = /*#__PURE__*/function (_PureComponent) {
|
|
|
72
85
|
return TaskItem;
|
|
73
86
|
}(_react.PureComponent);
|
|
74
87
|
(0, _defineProperty2.default)(TaskItem, "displayName", 'TaskItem');
|
|
75
|
-
var
|
|
88
|
+
var TaskItemWrapper = function TaskItemWrapper(props) {
|
|
89
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(props.api, ['taskDecision']),
|
|
90
|
+
taskDecisionState = _useSharedPluginState.taskDecisionState;
|
|
91
|
+
return /*#__PURE__*/_react.default.createElement(TaskItem, (0, _extends2.default)({
|
|
92
|
+
taskDecisionState: taskDecisionState
|
|
93
|
+
}, props));
|
|
94
|
+
};
|
|
95
|
+
var _default = exports.default = (0, _reactIntlNext.injectIntl)(TaskItemWrapper);
|
package/dist/es2019/commands.js
CHANGED
|
@@ -6,6 +6,8 @@ import { NodeRange } from '@atlaskit/editor-prosemirror/model';
|
|
|
6
6
|
import { TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
7
7
|
import { liftTarget } from '@atlaskit/editor-prosemirror/transform';
|
|
8
8
|
import { findParentNodeOfType, hasParentNodeOfType, replaceParentNodeOfType, safeInsert, setTextSelection } from '@atlaskit/editor-prosemirror/utils';
|
|
9
|
+
import { stateKey } from './pm-plugins/plugin-key';
|
|
10
|
+
import { ACTIONS } from './pm-plugins/types';
|
|
9
11
|
const getContextData = (contextProvider = {}) => {
|
|
10
12
|
const {
|
|
11
13
|
objectId,
|
|
@@ -276,4 +278,10 @@ export const createListAtSelection = (tr, list, item, schema, state, listLocalId
|
|
|
276
278
|
}
|
|
277
279
|
}
|
|
278
280
|
return safeInsert(emptyList)(tr);
|
|
281
|
+
};
|
|
282
|
+
export const setProvider = provider => tr => {
|
|
283
|
+
return tr.setMeta(stateKey, {
|
|
284
|
+
action: ACTIONS.SET_PROVIDER,
|
|
285
|
+
data: provider
|
|
286
|
+
});
|
|
279
287
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
import React, { useState } from 'react';
|
|
2
|
+
import React, { useEffect, useState } from 'react';
|
|
3
3
|
import { useIntl } from 'react-intl-next';
|
|
4
4
|
import { SetAttrsStep } from '@atlaskit/adf-schema/steps';
|
|
5
5
|
import { AnalyticsListener } from '@atlaskit/analytics-next';
|
|
@@ -14,6 +14,7 @@ import Popup from '@atlaskit/popup';
|
|
|
14
14
|
import { Box, Pressable, Stack, xcss } from '@atlaskit/primitives';
|
|
15
15
|
import TaskItem from '../ui/Task';
|
|
16
16
|
import { useShowPlaceholder } from './hooks/use-show-placeholder';
|
|
17
|
+
const TRYING_REQUEST_TIMEOUT = 3000;
|
|
17
18
|
const wrapperStyles = xcss({
|
|
18
19
|
display: 'flex',
|
|
19
20
|
flexDirection: 'column',
|
|
@@ -96,10 +97,24 @@ const TaskItemWrapper = ({
|
|
|
96
97
|
} = useSharedPluginState(api, ['taskDecision']);
|
|
97
98
|
const isFocused = Boolean((taskDecisionState === null || taskDecisionState === void 0 ? void 0 : taskDecisionState.focusedTaskItemLocalId) === localId);
|
|
98
99
|
const [isOpen, setIsOpen] = useState(false);
|
|
99
|
-
const [requested, setRequested] = useState(
|
|
100
|
+
const [requested, setRequested] = useState(taskDecisionState === null || taskDecisionState === void 0 ? void 0 : taskDecisionState.hasRequestedEditPermission);
|
|
101
|
+
const [tryingRequest, setTryingRequest] = useState(false);
|
|
100
102
|
const {
|
|
101
103
|
formatMessage
|
|
102
104
|
} = useIntl();
|
|
105
|
+
useEffect(() => {
|
|
106
|
+
if (fg('editor_request_to_edit_task')) {
|
|
107
|
+
setRequested(taskDecisionState === null || taskDecisionState === void 0 ? void 0 : taskDecisionState.hasRequestedEditPermission);
|
|
108
|
+
}
|
|
109
|
+
}, [taskDecisionState === null || taskDecisionState === void 0 ? void 0 : taskDecisionState.hasRequestedEditPermission]);
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
if (!tryingRequest && fg('editor_request_to_edit_task')) {
|
|
112
|
+
const timout = setTimeout(() => {
|
|
113
|
+
setTryingRequest(false);
|
|
114
|
+
}, TRYING_REQUEST_TIMEOUT);
|
|
115
|
+
return () => clearTimeout(timout);
|
|
116
|
+
}
|
|
117
|
+
}, [tryingRequest]);
|
|
103
118
|
const showPlaceholder = useShowPlaceholder({
|
|
104
119
|
editorView,
|
|
105
120
|
isContentNodeEmpty,
|
|
@@ -109,7 +124,7 @@ const TaskItemWrapper = ({
|
|
|
109
124
|
const onHandleEdit = editorAnalyticsAPI => {
|
|
110
125
|
if (fg('editor_request_to_edit_task')) {
|
|
111
126
|
var _api$taskDecision, _api$taskDecision$sha;
|
|
112
|
-
|
|
127
|
+
setTryingRequest(true);
|
|
113
128
|
const {
|
|
114
129
|
tr
|
|
115
130
|
} = editorView.state;
|
|
@@ -146,7 +161,8 @@ const TaskItemWrapper = ({
|
|
|
146
161
|
onChange: onChange,
|
|
147
162
|
isFocused: isFocused,
|
|
148
163
|
showPlaceholder: showPlaceholder,
|
|
149
|
-
providers: providerFactory
|
|
164
|
+
providers: providerFactory,
|
|
165
|
+
api: api
|
|
150
166
|
});
|
|
151
167
|
}
|
|
152
168
|
return /*#__PURE__*/React.createElement(Popup, {
|
|
@@ -165,7 +181,7 @@ const TaskItemWrapper = ({
|
|
|
165
181
|
size: "xsmall"
|
|
166
182
|
}, formatMessage(tasksAndDecisionsMessages.editAccessTitle)), /*#__PURE__*/React.createElement("div", null, formatMessage(tasksAndDecisionsMessages.requestToEditDescription)), /*#__PURE__*/React.createElement(Box, {
|
|
167
183
|
xcss: wrapperBoxStyles
|
|
168
|
-
}, requested ? /*#__PURE__*/React.createElement(RequestedMessage, null) : /*#__PURE__*/React.createElement(RequestToEditButton, {
|
|
184
|
+
}, tryingRequest || requested ? /*#__PURE__*/React.createElement(RequestedMessage, null) : /*#__PURE__*/React.createElement(RequestToEditButton, {
|
|
169
185
|
onClick: (api === null || api === void 0 ? void 0 : (_api$editorViewMode = api.editorViewMode) === null || _api$editorViewMode === void 0 ? void 0 : (_api$editorViewMode$s = _api$editorViewMode.sharedState.currentState()) === null || _api$editorViewMode$s === void 0 ? void 0 : _api$editorViewMode$s.mode) === 'view' ? () => {
|
|
170
186
|
var _api$analytics2;
|
|
171
187
|
return onHandleEdit(api === null || api === void 0 ? void 0 : (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions);
|
|
@@ -192,7 +208,8 @@ const TaskItemWrapper = ({
|
|
|
192
208
|
isFocused: isFocused,
|
|
193
209
|
showPlaceholder: showPlaceholder,
|
|
194
210
|
providers: providerFactory,
|
|
195
|
-
disableOnChange: !(api !== null && api !== void 0 && (_api$taskDecision3 = api.taskDecision) !== null && _api$taskDecision3 !== void 0 && (_api$taskDecision3$sh = _api$taskDecision3.sharedState.currentState()) !== null && _api$taskDecision3$sh !== void 0 && _api$taskDecision3$sh.hasEditPermission)
|
|
211
|
+
disableOnChange: !(api !== null && api !== void 0 && (_api$taskDecision3 = api.taskDecision) !== null && _api$taskDecision3 !== void 0 && (_api$taskDecision3$sh = _api$taskDecision3.sharedState.currentState()) !== null && _api$taskDecision3$sh !== void 0 && _api$taskDecision3$sh.hasEditPermission),
|
|
212
|
+
api: api
|
|
196
213
|
});
|
|
197
214
|
},
|
|
198
215
|
placement: 'bottom-start'
|