@atlaskit/editor-plugin-tasks-and-decisions 14.1.7 → 14.2.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 +24 -0
- package/dist/cjs/nodeviews/DecisionItemNodeView.js +3 -7
- package/dist/cjs/nodeviews/decisionItemNodeSpec.js +5 -44
- package/dist/es2019/nodeviews/DecisionItemNodeView.js +3 -7
- package/dist/es2019/nodeviews/decisionItemNodeSpec.js +5 -45
- package/dist/esm/nodeviews/DecisionItemNodeView.js +3 -7
- package/dist/esm/nodeviews/decisionItemNodeSpec.js +5 -45
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-tasks-and-decisions
|
|
2
2
|
|
|
3
|
+
## 14.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`f89de6a3f94b5`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f89de6a3f94b5) -
|
|
8
|
+
Clean up stale experiment editor_a11y_decision_aria_label. Decision items now always render
|
|
9
|
+
dynamic aria-labels based on empty/filled state.
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
15
|
+
## 14.1.9
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated dependencies
|
|
20
|
+
|
|
21
|
+
## 14.1.8
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- Updated dependencies
|
|
26
|
+
|
|
3
27
|
## 14.1.7
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -36,10 +36,8 @@ var DecisionItemNodeView = exports.DecisionItemNodeView = /*#__PURE__*/function
|
|
|
36
36
|
contentDOM = _DOMSerializer$render.contentDOM;
|
|
37
37
|
this.dom = dom;
|
|
38
38
|
this.contentDOM = contentDOM;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
this.intl = intl;
|
|
42
|
-
}
|
|
39
|
+
this.setIcon(this.dom);
|
|
40
|
+
this.intl = intl;
|
|
43
41
|
}
|
|
44
42
|
|
|
45
43
|
/**
|
|
@@ -64,9 +62,7 @@ var DecisionItemNodeView = exports.DecisionItemNodeView = /*#__PURE__*/function
|
|
|
64
62
|
var _this$contentDOM;
|
|
65
63
|
this.hasChildren = currentlyHasChildren;
|
|
66
64
|
(_this$contentDOM = this.contentDOM) === null || _this$contentDOM === void 0 || _this$contentDOM.toggleAttribute('data-empty', !currentlyHasChildren);
|
|
67
|
-
|
|
68
|
-
this.setIconAriaLabel(!currentlyHasChildren);
|
|
69
|
-
}
|
|
65
|
+
this.setIconAriaLabel(!currentlyHasChildren);
|
|
70
66
|
}
|
|
71
67
|
return this.hasChildren;
|
|
72
68
|
}
|
|
@@ -7,40 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.decisionItemToDOM = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _messages = require("@atlaskit/editor-common/messages");
|
|
10
|
-
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
11
10
|
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; }
|
|
12
11
|
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; }
|
|
13
|
-
// When cleaning up editor_a11y_decision_aria_label remove this iconDOM variable
|
|
14
|
-
// This value can be a fixed constant as it doesn't depend on runtime values or arguments.
|
|
15
|
-
var iconDOM = ['span', {
|
|
16
|
-
contentEditable: false,
|
|
17
|
-
'data-component': 'icon'
|
|
18
|
-
}, ['span', {
|
|
19
|
-
role: 'img',
|
|
20
|
-
'aria-label': 'Decision'
|
|
21
|
-
}, ['http://www.w3.org/2000/svg svg', {
|
|
22
|
-
viewBox: "0 0 24 24",
|
|
23
|
-
role: 'presentation',
|
|
24
|
-
width: '24',
|
|
25
|
-
height: '24',
|
|
26
|
-
'data-icon-source': 'legacy'
|
|
27
|
-
}, ['http://www.w3.org/2000/svg path', {
|
|
28
|
-
fill: 'currentcolor',
|
|
29
|
-
'fill-rule': 'evenodd',
|
|
30
|
-
d: 'm9.414 8 3.293 3.293c.187.187.293.442.293.707v5a1 1 0 0 1-2 0v-4.586l-3-3V10.5a1 1 0 0 1-2 0V7a1 1 0 0 1 1-1h3.5a1 1 0 0 1 0 2zm8.293-1.707a1 1 0 0 1 0 1.414l-2.5 2.5a.997.997 0 0 1-1.414 0 1 1 0 0 1 0-1.414l2.5-2.5a1 1 0 0 1 1.414 0'
|
|
31
|
-
}]], ['http://www.w3.org/2000/svg svg', {
|
|
32
|
-
viewBox: "-4 -4 24 24",
|
|
33
|
-
fill: 'none',
|
|
34
|
-
role: 'presentation',
|
|
35
|
-
width: '24',
|
|
36
|
-
height: '24',
|
|
37
|
-
'data-icon-source': 'refreshed'
|
|
38
|
-
}, ['http://www.w3.org/2000/svg path', {
|
|
39
|
-
fill: 'currentcolor',
|
|
40
|
-
'fill-rule': 'evenodd',
|
|
41
|
-
d: 'm13.97.97-4.5 4.5 1.06 1.06 4.5-4.5zM3.56 2.5H8V1H1.75a.75.75 0 0 0-.75.75V8h1.5V3.56l4.604 4.604a.5.5 0 0 1 .146.354V15h1.5V8.518a2 2 0 0 0-.586-1.414z'
|
|
42
|
-
}]]]];
|
|
43
|
-
|
|
44
12
|
/**
|
|
45
13
|
* Determine if the decision item node is empty
|
|
46
14
|
*
|
|
@@ -96,16 +64,9 @@ var createIconDOM = function createIconDOM(_ref) {
|
|
|
96
64
|
}]]]];
|
|
97
65
|
};
|
|
98
66
|
var decisionItemToDOM = exports.decisionItemToDOM = function decisionItemToDOM(node, intl) {
|
|
99
|
-
var contentDomDataAttrs
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
'data-empty': 'true'
|
|
103
|
-
} : {};
|
|
104
|
-
} else {
|
|
105
|
-
contentDomDataAttrs = node.childCount > 0 ? {} : {
|
|
106
|
-
'data-empty': 'true'
|
|
107
|
-
};
|
|
108
|
-
}
|
|
67
|
+
var contentDomDataAttrs = isDecisionItemEmpty(node) ? {
|
|
68
|
+
'data-empty': 'true'
|
|
69
|
+
} : {};
|
|
109
70
|
return ['li', {
|
|
110
71
|
'data-decision-local-id': node.attrs.localId || 'local-decision',
|
|
111
72
|
'data-decision-state': node.attrs.state,
|
|
@@ -114,10 +75,10 @@ var decisionItemToDOM = exports.decisionItemToDOM = function decisionItemToDOM(n
|
|
|
114
75
|
}, ['div', {
|
|
115
76
|
'data-testid': 'elements-decision-item',
|
|
116
77
|
'data-decision-wrapper': true
|
|
117
|
-
},
|
|
78
|
+
}, createIconDOM({
|
|
118
79
|
node: node,
|
|
119
80
|
intl: intl
|
|
120
|
-
})
|
|
81
|
+
}),
|
|
121
82
|
// renderPlaceholder
|
|
122
83
|
['span', {
|
|
123
84
|
'data-testid': 'task-decision-item-placeholder',
|
|
@@ -20,9 +20,7 @@ export class DecisionItemNodeView {
|
|
|
20
20
|
var _this$contentDOM;
|
|
21
21
|
this.hasChildren = currentlyHasChildren;
|
|
22
22
|
(_this$contentDOM = this.contentDOM) === null || _this$contentDOM === void 0 ? void 0 : _this$contentDOM.toggleAttribute('data-empty', !currentlyHasChildren);
|
|
23
|
-
|
|
24
|
-
this.setIconAriaLabel(!currentlyHasChildren);
|
|
25
|
-
}
|
|
23
|
+
this.setIconAriaLabel(!currentlyHasChildren);
|
|
26
24
|
}
|
|
27
25
|
return this.hasChildren;
|
|
28
26
|
}
|
|
@@ -62,10 +60,8 @@ export class DecisionItemNodeView {
|
|
|
62
60
|
} = DOMSerializer.renderSpec(document, spec);
|
|
63
61
|
this.dom = dom;
|
|
64
62
|
this.contentDOM = contentDOM;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
this.intl = intl;
|
|
68
|
-
}
|
|
63
|
+
this.setIcon(this.dom);
|
|
64
|
+
this.intl = intl;
|
|
69
65
|
}
|
|
70
66
|
|
|
71
67
|
/**
|
|
@@ -1,37 +1,4 @@
|
|
|
1
1
|
import { tasksAndDecisionsMessages } from '@atlaskit/editor-common/messages';
|
|
2
|
-
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
3
|
-
|
|
4
|
-
// When cleaning up editor_a11y_decision_aria_label remove this iconDOM variable
|
|
5
|
-
// This value can be a fixed constant as it doesn't depend on runtime values or arguments.
|
|
6
|
-
const iconDOM = ['span', {
|
|
7
|
-
contentEditable: false,
|
|
8
|
-
'data-component': 'icon'
|
|
9
|
-
}, ['span', {
|
|
10
|
-
role: 'img',
|
|
11
|
-
'aria-label': 'Decision'
|
|
12
|
-
}, ['http://www.w3.org/2000/svg svg', {
|
|
13
|
-
viewBox: `0 0 24 24`,
|
|
14
|
-
role: 'presentation',
|
|
15
|
-
width: '24',
|
|
16
|
-
height: '24',
|
|
17
|
-
'data-icon-source': 'legacy'
|
|
18
|
-
}, ['http://www.w3.org/2000/svg path', {
|
|
19
|
-
fill: 'currentcolor',
|
|
20
|
-
'fill-rule': 'evenodd',
|
|
21
|
-
d: 'm9.414 8 3.293 3.293c.187.187.293.442.293.707v5a1 1 0 0 1-2 0v-4.586l-3-3V10.5a1 1 0 0 1-2 0V7a1 1 0 0 1 1-1h3.5a1 1 0 0 1 0 2zm8.293-1.707a1 1 0 0 1 0 1.414l-2.5 2.5a.997.997 0 0 1-1.414 0 1 1 0 0 1 0-1.414l2.5-2.5a1 1 0 0 1 1.414 0'
|
|
22
|
-
}]], ['http://www.w3.org/2000/svg svg', {
|
|
23
|
-
viewBox: `-4 -4 24 24`,
|
|
24
|
-
fill: 'none',
|
|
25
|
-
role: 'presentation',
|
|
26
|
-
width: '24',
|
|
27
|
-
height: '24',
|
|
28
|
-
'data-icon-source': 'refreshed'
|
|
29
|
-
}, ['http://www.w3.org/2000/svg path', {
|
|
30
|
-
fill: 'currentcolor',
|
|
31
|
-
'fill-rule': 'evenodd',
|
|
32
|
-
d: 'm13.97.97-4.5 4.5 1.06 1.06 4.5-4.5zM3.56 2.5H8V1H1.75a.75.75 0 0 0-.75.75V8h1.5V3.56l4.604 4.604a.5.5 0 0 1 .146.354V15h1.5V8.518a2 2 0 0 0-.586-1.414z'
|
|
33
|
-
}]]]];
|
|
34
|
-
|
|
35
2
|
/**
|
|
36
3
|
* Determine if the decision item node is empty
|
|
37
4
|
*
|
|
@@ -86,16 +53,9 @@ const createIconDOM = ({
|
|
|
86
53
|
}]]]];
|
|
87
54
|
};
|
|
88
55
|
export const decisionItemToDOM = (node, intl) => {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
'data-empty': 'true'
|
|
93
|
-
} : {};
|
|
94
|
-
} else {
|
|
95
|
-
contentDomDataAttrs = node.childCount > 0 ? {} : {
|
|
96
|
-
'data-empty': 'true'
|
|
97
|
-
};
|
|
98
|
-
}
|
|
56
|
+
const contentDomDataAttrs = isDecisionItemEmpty(node) ? {
|
|
57
|
+
'data-empty': 'true'
|
|
58
|
+
} : {};
|
|
99
59
|
return ['li', {
|
|
100
60
|
'data-decision-local-id': node.attrs.localId || 'local-decision',
|
|
101
61
|
'data-decision-state': node.attrs.state,
|
|
@@ -104,10 +64,10 @@ export const decisionItemToDOM = (node, intl) => {
|
|
|
104
64
|
}, ['div', {
|
|
105
65
|
'data-testid': 'elements-decision-item',
|
|
106
66
|
'data-decision-wrapper': true
|
|
107
|
-
},
|
|
67
|
+
}, createIconDOM({
|
|
108
68
|
node,
|
|
109
69
|
intl
|
|
110
|
-
})
|
|
70
|
+
}),
|
|
111
71
|
// renderPlaceholder
|
|
112
72
|
['span', {
|
|
113
73
|
'data-testid': 'task-decision-item-placeholder',
|
|
@@ -30,10 +30,8 @@ export var DecisionItemNodeView = /*#__PURE__*/function () {
|
|
|
30
30
|
contentDOM = _DOMSerializer$render.contentDOM;
|
|
31
31
|
this.dom = dom;
|
|
32
32
|
this.contentDOM = contentDOM;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.intl = intl;
|
|
36
|
-
}
|
|
33
|
+
this.setIcon(this.dom);
|
|
34
|
+
this.intl = intl;
|
|
37
35
|
}
|
|
38
36
|
|
|
39
37
|
/**
|
|
@@ -58,9 +56,7 @@ export var DecisionItemNodeView = /*#__PURE__*/function () {
|
|
|
58
56
|
var _this$contentDOM;
|
|
59
57
|
this.hasChildren = currentlyHasChildren;
|
|
60
58
|
(_this$contentDOM = this.contentDOM) === null || _this$contentDOM === void 0 || _this$contentDOM.toggleAttribute('data-empty', !currentlyHasChildren);
|
|
61
|
-
|
|
62
|
-
this.setIconAriaLabel(!currentlyHasChildren);
|
|
63
|
-
}
|
|
59
|
+
this.setIconAriaLabel(!currentlyHasChildren);
|
|
64
60
|
}
|
|
65
61
|
return this.hasChildren;
|
|
66
62
|
}
|
|
@@ -2,39 +2,6 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
2
2
|
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; }
|
|
3
3
|
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; }
|
|
4
4
|
import { tasksAndDecisionsMessages } from '@atlaskit/editor-common/messages';
|
|
5
|
-
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
6
|
-
|
|
7
|
-
// When cleaning up editor_a11y_decision_aria_label remove this iconDOM variable
|
|
8
|
-
// This value can be a fixed constant as it doesn't depend on runtime values or arguments.
|
|
9
|
-
var iconDOM = ['span', {
|
|
10
|
-
contentEditable: false,
|
|
11
|
-
'data-component': 'icon'
|
|
12
|
-
}, ['span', {
|
|
13
|
-
role: 'img',
|
|
14
|
-
'aria-label': 'Decision'
|
|
15
|
-
}, ['http://www.w3.org/2000/svg svg', {
|
|
16
|
-
viewBox: "0 0 24 24",
|
|
17
|
-
role: 'presentation',
|
|
18
|
-
width: '24',
|
|
19
|
-
height: '24',
|
|
20
|
-
'data-icon-source': 'legacy'
|
|
21
|
-
}, ['http://www.w3.org/2000/svg path', {
|
|
22
|
-
fill: 'currentcolor',
|
|
23
|
-
'fill-rule': 'evenodd',
|
|
24
|
-
d: 'm9.414 8 3.293 3.293c.187.187.293.442.293.707v5a1 1 0 0 1-2 0v-4.586l-3-3V10.5a1 1 0 0 1-2 0V7a1 1 0 0 1 1-1h3.5a1 1 0 0 1 0 2zm8.293-1.707a1 1 0 0 1 0 1.414l-2.5 2.5a.997.997 0 0 1-1.414 0 1 1 0 0 1 0-1.414l2.5-2.5a1 1 0 0 1 1.414 0'
|
|
25
|
-
}]], ['http://www.w3.org/2000/svg svg', {
|
|
26
|
-
viewBox: "-4 -4 24 24",
|
|
27
|
-
fill: 'none',
|
|
28
|
-
role: 'presentation',
|
|
29
|
-
width: '24',
|
|
30
|
-
height: '24',
|
|
31
|
-
'data-icon-source': 'refreshed'
|
|
32
|
-
}, ['http://www.w3.org/2000/svg path', {
|
|
33
|
-
fill: 'currentcolor',
|
|
34
|
-
'fill-rule': 'evenodd',
|
|
35
|
-
d: 'm13.97.97-4.5 4.5 1.06 1.06 4.5-4.5zM3.56 2.5H8V1H1.75a.75.75 0 0 0-.75.75V8h1.5V3.56l4.604 4.604a.5.5 0 0 1 .146.354V15h1.5V8.518a2 2 0 0 0-.586-1.414z'
|
|
36
|
-
}]]]];
|
|
37
|
-
|
|
38
5
|
/**
|
|
39
6
|
* Determine if the decision item node is empty
|
|
40
7
|
*
|
|
@@ -90,16 +57,9 @@ var createIconDOM = function createIconDOM(_ref) {
|
|
|
90
57
|
}]]]];
|
|
91
58
|
};
|
|
92
59
|
export var decisionItemToDOM = function decisionItemToDOM(node, intl) {
|
|
93
|
-
var contentDomDataAttrs
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
'data-empty': 'true'
|
|
97
|
-
} : {};
|
|
98
|
-
} else {
|
|
99
|
-
contentDomDataAttrs = node.childCount > 0 ? {} : {
|
|
100
|
-
'data-empty': 'true'
|
|
101
|
-
};
|
|
102
|
-
}
|
|
60
|
+
var contentDomDataAttrs = isDecisionItemEmpty(node) ? {
|
|
61
|
+
'data-empty': 'true'
|
|
62
|
+
} : {};
|
|
103
63
|
return ['li', {
|
|
104
64
|
'data-decision-local-id': node.attrs.localId || 'local-decision',
|
|
105
65
|
'data-decision-state': node.attrs.state,
|
|
@@ -108,10 +68,10 @@ export var decisionItemToDOM = function decisionItemToDOM(node, intl) {
|
|
|
108
68
|
}, ['div', {
|
|
109
69
|
'data-testid': 'elements-decision-item',
|
|
110
70
|
'data-decision-wrapper': true
|
|
111
|
-
},
|
|
71
|
+
}, createIconDOM({
|
|
112
72
|
node: node,
|
|
113
73
|
intl: intl
|
|
114
|
-
})
|
|
74
|
+
}),
|
|
115
75
|
// renderPlaceholder
|
|
116
76
|
['span', {
|
|
117
77
|
'data-testid': 'task-decision-item-placeholder',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-tasks-and-decisions",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.2.0",
|
|
4
4
|
"description": "Tasks and decisions plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@atlaskit/editor-plugin-editor-viewmode": "^13.0.0",
|
|
39
39
|
"@atlaskit/editor-plugin-selection": "^11.0.0",
|
|
40
40
|
"@atlaskit/editor-plugin-toolbar": "^8.0.0",
|
|
41
|
-
"@atlaskit/editor-plugin-type-ahead": "^11.
|
|
41
|
+
"@atlaskit/editor-plugin-type-ahead": "^11.3.0",
|
|
42
42
|
"@atlaskit/editor-prosemirror": "^7.3.0",
|
|
43
43
|
"@atlaskit/editor-shared-styles": "^3.11.0",
|
|
44
44
|
"@atlaskit/editor-toolbar": "^1.10.0",
|
|
@@ -48,15 +48,15 @@
|
|
|
48
48
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
49
49
|
"@atlaskit/primitives": "^19.0.0",
|
|
50
50
|
"@atlaskit/prosemirror-input-rules": "^3.7.0",
|
|
51
|
-
"@atlaskit/task-decision": "^20.
|
|
52
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
51
|
+
"@atlaskit/task-decision": "^20.2.0",
|
|
52
|
+
"@atlaskit/tmp-editor-statsig": "^98.0.0",
|
|
53
53
|
"@atlaskit/tokens": "^13.3.0",
|
|
54
54
|
"@babel/runtime": "^7.0.0",
|
|
55
55
|
"@compiled/react": "^0.20.0",
|
|
56
56
|
"bind-event-listener": "^3.0.0"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
|
-
"@atlaskit/editor-common": "^115.
|
|
59
|
+
"@atlaskit/editor-common": "^115.12.0",
|
|
60
60
|
"react": "^18.2.0",
|
|
61
61
|
"react-dom": "^18.2.0",
|
|
62
62
|
"react-intl": "^5.25.1 || ^6.0.0 || ^7.0.0"
|