@atlaskit/editor-common 78.35.0 → 78.36.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 +6 -0
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/table/SortingIcon.js +144 -0
- package/dist/cjs/table/consts.js +7 -0
- package/dist/cjs/table/index.js +28 -0
- package/dist/cjs/table/messages.js +56 -0
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/table/SortingIcon.js +183 -0
- package/dist/es2019/table/consts.js +1 -0
- package/dist/es2019/table/index.js +2 -0
- package/dist/es2019/table/messages.js +50 -0
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/table/SortingIcon.js +139 -0
- package/dist/esm/table/consts.js +1 -0
- package/dist/esm/table/index.js +2 -0
- package/dist/esm/table/messages.js +50 -0
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/types/table/SortingIcon.d.ts +23 -0
- package/dist/types/table/consts.d.ts +1 -0
- package/dist/types/table/index.d.ts +2 -0
- package/dist/types/table/messages.d.ts +49 -0
- package/dist/types-ts4.5/table/SortingIcon.d.ts +23 -0
- package/dist/types-ts4.5/table/consts.d.ts +1 -0
- package/dist/types-ts4.5/table/index.d.ts +2 -0
- package/dist/types-ts4.5/table/messages.d.ts +49 -0
- package/package.json +3 -2
- package/table/package.json +15 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 78.36.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#90188](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/90188) [`a3520474fc12`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a3520474fc12) - move SortingIcon component from Renderer to Editor Common
|
|
8
|
+
|
|
3
9
|
## 78.35.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
|
@@ -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 = "78.
|
|
19
|
+
var packageVersion = "78.36.0";
|
|
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
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = exports.StatusClassNames = void 0;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
+
var _react = require("@emotion/react");
|
|
10
|
+
var _reactIntlNext = require("react-intl-next");
|
|
11
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
12
|
+
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
13
|
+
var _types = require("../types");
|
|
14
|
+
var _consts = require("./consts");
|
|
15
|
+
var _messages = require("./messages");
|
|
16
|
+
var _templateObject, _templateObject2;
|
|
17
|
+
/** @jsx jsx */
|
|
18
|
+
var StatusClassNames = exports.StatusClassNames = /*#__PURE__*/function (StatusClassNames) {
|
|
19
|
+
StatusClassNames["ASC"] = "sorting-icon-svg__asc";
|
|
20
|
+
StatusClassNames["DESC"] = "sorting-icon-svg__desc";
|
|
21
|
+
StatusClassNames["NO_ORDER"] = "sorting-icon-svg__no_order";
|
|
22
|
+
StatusClassNames["SORTING_NOT_ALLOWED"] = "sorting-icon-svg__not-allowed";
|
|
23
|
+
return StatusClassNames;
|
|
24
|
+
}({}); // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
|
|
25
|
+
var buttonStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n display: flex;\n height: 28px;\n width: 28px;\n margin: ", ";\n right: 0;\n top: 0;\n border: 2px solid ", ";\n border-radius: ", ";\n background-color: ", ";\n justify-content: center;\n align-items: center;\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n\n &:active {\n background-color: ", ";\n }\n\n &.", "__not-allowed {\n cursor: not-allowed;\n }\n"])), "var(--ds-space-075, 6px)", "var(--ds-border, #fff)", "var(--ds-border-radius-100, 4px)", "var(--ds-surface-overlay, ".concat(_colors.N20, ")"), "var(--ds-surface-overlay-hovered, ".concat(_colors.N30, ")"), "var(--ds-surface-overlay-pressed, rgba(179, 212, 255, 0.6))", _consts.SORTABLE_COLUMN_ICON_CLASSNAME);
|
|
26
|
+
|
|
27
|
+
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
|
|
28
|
+
var iconWrapperStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n width: 8px;\n height: 12px;\n transition: transform 0.3s cubic-bezier(0.15, 1, 0.3, 1);\n transform-origin: 50% 50%;\n display: flex;\n justify-content: center;\n\n &.", " {\n transform: rotate(-180deg);\n }\n\n &.", "-inactive {\n opacity: 0.7;\n }\n"])), StatusClassNames.DESC, _consts.SORTABLE_COLUMN_ICON_CLASSNAME);
|
|
29
|
+
|
|
30
|
+
// The icon is created with CSS due to the following Firefox issue: https://product-fabric.atlassian.net/browse/ED-8001
|
|
31
|
+
// The TL;DR is that svg's in tables mess up how HTML is copied in Firefox. Using a styled div instead solves the problem.
|
|
32
|
+
// For this reason, svg's should be avoided in tables until this issue is fixed: https://bugzilla.mozilla.org/show_bug.cgi?id=1664350
|
|
33
|
+
var iconStyles = (0, _react.css)({
|
|
34
|
+
height: '100%',
|
|
35
|
+
width: '2px',
|
|
36
|
+
borderRadius: '50px',
|
|
37
|
+
background: "var(--ds-icon, #42526E)",
|
|
38
|
+
'&::before, &::after': {
|
|
39
|
+
background: "var(--ds-icon, #42526E)",
|
|
40
|
+
content: "''",
|
|
41
|
+
height: '2px',
|
|
42
|
+
width: '6px',
|
|
43
|
+
position: 'absolute',
|
|
44
|
+
borderRadius: '50px'
|
|
45
|
+
},
|
|
46
|
+
'&::before': {
|
|
47
|
+
transform: 'rotate(45deg) translate(3.4px, 8.5px)'
|
|
48
|
+
},
|
|
49
|
+
'&::after': {
|
|
50
|
+
transform: 'rotate(-45deg) translate(-6.3px, 5.7px)'
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
var getIconClassName = function getIconClassName(isSortingAllowed, sortOrdered) {
|
|
54
|
+
var activated = sortOrdered !== _types.SortOrder.NO_ORDER;
|
|
55
|
+
var activeStatusClass = "".concat(_consts.SORTABLE_COLUMN_ICON_CLASSNAME, "-").concat(activated ? 'active' : 'inactive');
|
|
56
|
+
if (!isSortingAllowed) {
|
|
57
|
+
return "".concat(StatusClassNames.SORTING_NOT_ALLOWED, " ").concat(activeStatusClass);
|
|
58
|
+
}
|
|
59
|
+
switch (sortOrdered) {
|
|
60
|
+
case _types.SortOrder.ASC:
|
|
61
|
+
return "".concat(StatusClassNames.ASC, " ").concat(activeStatusClass);
|
|
62
|
+
case _types.SortOrder.DESC:
|
|
63
|
+
return "".concat(StatusClassNames.DESC, " ").concat(activeStatusClass);
|
|
64
|
+
default:
|
|
65
|
+
return "".concat(StatusClassNames.NO_ORDER, " ").concat(activeStatusClass);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var getTooltipTitle = function getTooltipTitle(intl, isSortingAllowed, sortOrdered) {
|
|
69
|
+
var noOrderLabel = _messages.sortingIconMessages.noOrderLabel,
|
|
70
|
+
ascOrderLabel = _messages.sortingIconMessages.ascOrderLabel,
|
|
71
|
+
descOrderLabel = _messages.sortingIconMessages.descOrderLabel,
|
|
72
|
+
invalidLabel = _messages.sortingIconMessages.invalidLabel;
|
|
73
|
+
if (!isSortingAllowed) {
|
|
74
|
+
return intl.formatMessage(invalidLabel);
|
|
75
|
+
}
|
|
76
|
+
switch (sortOrdered) {
|
|
77
|
+
case _types.SortOrder.NO_ORDER:
|
|
78
|
+
return intl.formatMessage(noOrderLabel);
|
|
79
|
+
case _types.SortOrder.ASC:
|
|
80
|
+
return intl.formatMessage(ascOrderLabel);
|
|
81
|
+
case _types.SortOrder.DESC:
|
|
82
|
+
return intl.formatMessage(descOrderLabel);
|
|
83
|
+
}
|
|
84
|
+
return '';
|
|
85
|
+
};
|
|
86
|
+
var getAriaLabel = function getAriaLabel(intl, isSortingAllowed, sortOrdered) {
|
|
87
|
+
var noOrderLabel = _messages.sortingAriaLabelMessages.noOrderLabel,
|
|
88
|
+
ascOrderLabel = _messages.sortingAriaLabelMessages.ascOrderLabel,
|
|
89
|
+
descOrderLabel = _messages.sortingAriaLabelMessages.descOrderLabel,
|
|
90
|
+
invalidLabel = _messages.sortingAriaLabelMessages.invalidLabel,
|
|
91
|
+
defaultLabel = _messages.sortingAriaLabelMessages.defaultLabel;
|
|
92
|
+
if (!isSortingAllowed) {
|
|
93
|
+
return intl.formatMessage(invalidLabel);
|
|
94
|
+
}
|
|
95
|
+
switch (sortOrdered) {
|
|
96
|
+
case _types.SortOrder.NO_ORDER:
|
|
97
|
+
return intl.formatMessage(noOrderLabel);
|
|
98
|
+
case _types.SortOrder.ASC:
|
|
99
|
+
return intl.formatMessage(ascOrderLabel);
|
|
100
|
+
case _types.SortOrder.DESC:
|
|
101
|
+
return intl.formatMessage(descOrderLabel);
|
|
102
|
+
}
|
|
103
|
+
return intl.formatMessage(defaultLabel);
|
|
104
|
+
};
|
|
105
|
+
var SortingIcon = function SortingIcon(_ref) {
|
|
106
|
+
var isSortingAllowed = _ref.isSortingAllowed,
|
|
107
|
+
sortOrdered = _ref.sortOrdered,
|
|
108
|
+
intl = _ref.intl,
|
|
109
|
+
onClick = _ref.onClick,
|
|
110
|
+
onKeyDown = _ref.onKeyDown;
|
|
111
|
+
var buttonClassName = "".concat(_consts.SORTABLE_COLUMN_ICON_CLASSNAME, " ").concat(sortOrdered !== _types.SortOrder.NO_ORDER ? 'is-active' : '').concat(isSortingAllowed ? '' : " ".concat(_consts.SORTABLE_COLUMN_ICON_CLASSNAME, "__not-allowed "));
|
|
112
|
+
var content = getTooltipTitle(intl, isSortingAllowed, sortOrdered);
|
|
113
|
+
var ariaLabel = getAriaLabel(intl, isSortingAllowed, sortOrdered);
|
|
114
|
+
var handleClick = function handleClick() {
|
|
115
|
+
if (isSortingAllowed) {
|
|
116
|
+
onClick();
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
120
|
+
if (isSortingAllowed) {
|
|
121
|
+
onKeyDown(event);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
return (0, _react.jsx)(_tooltip.default, {
|
|
125
|
+
delay: 0,
|
|
126
|
+
content: content,
|
|
127
|
+
position: "top"
|
|
128
|
+
}, (0, _react.jsx)("div", {
|
|
129
|
+
css: buttonStyles,
|
|
130
|
+
className: buttonClassName,
|
|
131
|
+
role: "button",
|
|
132
|
+
tabIndex: isSortingAllowed ? 0 : -1,
|
|
133
|
+
"aria-label": ariaLabel,
|
|
134
|
+
"aria-disabled": !isSortingAllowed,
|
|
135
|
+
onClick: handleClick,
|
|
136
|
+
onKeyDown: handleKeyDown
|
|
137
|
+
}, (0, _react.jsx)("div", {
|
|
138
|
+
css: iconWrapperStyles,
|
|
139
|
+
className: getIconClassName(isSortingAllowed, sortOrdered)
|
|
140
|
+
}, (0, _react.jsx)("div", {
|
|
141
|
+
css: iconStyles
|
|
142
|
+
}))));
|
|
143
|
+
};
|
|
144
|
+
var _default = exports.default = (0, _reactIntlNext.injectIntl)(SortingIcon);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "SORTABLE_COLUMN_ICON_CLASSNAME", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _consts.SORTABLE_COLUMN_ICON_CLASSNAME;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "SortingIcon", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function get() {
|
|
16
|
+
return _SortingIcon.default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "StatusClassNames", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function get() {
|
|
22
|
+
return _SortingIcon.StatusClassNames;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
var _consts = require("./consts");
|
|
26
|
+
var _SortingIcon = _interopRequireWildcard(require("./SortingIcon"));
|
|
27
|
+
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); }
|
|
28
|
+
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; }
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.sortingIconMessages = exports.sortingAriaLabelMessages = void 0;
|
|
7
|
+
var _reactIntlNext = require("react-intl-next");
|
|
8
|
+
var sortingIconMessages = exports.sortingIconMessages = (0, _reactIntlNext.defineMessages)({
|
|
9
|
+
noOrderLabel: {
|
|
10
|
+
id: 'fabric.editor.headingLink.noOrderLabel',
|
|
11
|
+
defaultMessage: 'Sort column A to Z',
|
|
12
|
+
description: 'Sort the column in ascending order'
|
|
13
|
+
},
|
|
14
|
+
ascOrderLabel: {
|
|
15
|
+
id: 'fabric.editor.headingLink.ascOrderLabel',
|
|
16
|
+
defaultMessage: 'Sort column Z to A',
|
|
17
|
+
description: 'Sort the column in descending order'
|
|
18
|
+
},
|
|
19
|
+
descOrderLabel: {
|
|
20
|
+
id: 'fabric.editor.headingLink.descOrderLabel',
|
|
21
|
+
defaultMessage: 'Clear sorting',
|
|
22
|
+
description: 'clear the sorting from this column'
|
|
23
|
+
},
|
|
24
|
+
invalidLabel: {
|
|
25
|
+
id: 'fabric.editor.headingLink.invalidLabel',
|
|
26
|
+
defaultMessage: "\u26A0\uFE0F You can't sort a table with merged cells",
|
|
27
|
+
description: 'this sort is invalid for merged cells'
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
var sortingAriaLabelMessages = exports.sortingAriaLabelMessages = (0, _reactIntlNext.defineMessages)({
|
|
31
|
+
noOrderLabel: {
|
|
32
|
+
id: 'fabric.editor.tableHeader.sorting.no',
|
|
33
|
+
defaultMessage: 'No sort applied to the column',
|
|
34
|
+
description: 'Aria-label for Sort column button when sorting was not applied or the sorting has been cleared'
|
|
35
|
+
},
|
|
36
|
+
ascOrderLabel: {
|
|
37
|
+
id: 'fabric.editor.tableHeader.sorting.asc',
|
|
38
|
+
defaultMessage: 'Ascending sort applied',
|
|
39
|
+
description: 'Aria-label for Sort column button when ascending sorting was applied'
|
|
40
|
+
},
|
|
41
|
+
descOrderLabel: {
|
|
42
|
+
id: 'fabric.editor.tableHeader.sorting.desc',
|
|
43
|
+
defaultMessage: 'Descending sort applied',
|
|
44
|
+
description: 'Aria-label for Sort column button when descending sorting was applied'
|
|
45
|
+
},
|
|
46
|
+
invalidLabel: {
|
|
47
|
+
id: 'fabric.editor.tableHeader.sorting.invalid',
|
|
48
|
+
defaultMessage: "You can't sort a table with merged cells",
|
|
49
|
+
description: 'Aria-label for Sort column button when sorting is not possible'
|
|
50
|
+
},
|
|
51
|
+
defaultLabel: {
|
|
52
|
+
id: 'fabric.editor.tableHeader.sorting.default',
|
|
53
|
+
defaultMessage: 'Sort the column',
|
|
54
|
+
description: 'Default aria-label for Sort column button'
|
|
55
|
+
}
|
|
56
|
+
});
|
|
@@ -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 = "78.
|
|
23
|
+
var packageVersion = "78.36.0";
|
|
24
24
|
var halfFocusRing = 1;
|
|
25
25
|
var dropOffset = '0, 8';
|
|
26
26
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -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 = "78.
|
|
3
|
+
const packageVersion = "78.36.0";
|
|
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
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { css, jsx } from '@emotion/react';
|
|
3
|
+
import { injectIntl } from 'react-intl-next';
|
|
4
|
+
import { N20, N30 } from '@atlaskit/theme/colors';
|
|
5
|
+
import Tooltip from '@atlaskit/tooltip';
|
|
6
|
+
import { SortOrder } from '../types';
|
|
7
|
+
import { SORTABLE_COLUMN_ICON_CLASSNAME } from './consts';
|
|
8
|
+
import { sortingAriaLabelMessages, sortingIconMessages } from './messages';
|
|
9
|
+
export let StatusClassNames = /*#__PURE__*/function (StatusClassNames) {
|
|
10
|
+
StatusClassNames["ASC"] = "sorting-icon-svg__asc";
|
|
11
|
+
StatusClassNames["DESC"] = "sorting-icon-svg__desc";
|
|
12
|
+
StatusClassNames["NO_ORDER"] = "sorting-icon-svg__no_order";
|
|
13
|
+
StatusClassNames["SORTING_NOT_ALLOWED"] = "sorting-icon-svg__not-allowed";
|
|
14
|
+
return StatusClassNames;
|
|
15
|
+
}({});
|
|
16
|
+
|
|
17
|
+
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
|
|
18
|
+
const buttonStyles = css`
|
|
19
|
+
position: absolute;
|
|
20
|
+
display: flex;
|
|
21
|
+
height: 28px;
|
|
22
|
+
width: 28px;
|
|
23
|
+
margin: ${"var(--ds-space-075, 6px)"};
|
|
24
|
+
right: 0;
|
|
25
|
+
top: 0;
|
|
26
|
+
border: 2px solid ${"var(--ds-border, #fff)"};
|
|
27
|
+
border-radius: ${"var(--ds-border-radius-100, 4px)"};
|
|
28
|
+
background-color: ${`var(--ds-surface-overlay, ${N20})`};
|
|
29
|
+
justify-content: center;
|
|
30
|
+
align-items: center;
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
|
|
33
|
+
&:hover {
|
|
34
|
+
background-color: ${`var(--ds-surface-overlay-hovered, ${N30})`};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&:active {
|
|
38
|
+
background-color: ${"var(--ds-surface-overlay-pressed, rgba(179, 212, 255, 0.6))"};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&.${SORTABLE_COLUMN_ICON_CLASSNAME}__not-allowed {
|
|
42
|
+
cursor: not-allowed;
|
|
43
|
+
}
|
|
44
|
+
`;
|
|
45
|
+
|
|
46
|
+
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
|
|
47
|
+
const iconWrapperStyles = css`
|
|
48
|
+
width: 8px;
|
|
49
|
+
height: 12px;
|
|
50
|
+
transition: transform 0.3s cubic-bezier(0.15, 1, 0.3, 1);
|
|
51
|
+
transform-origin: 50% 50%;
|
|
52
|
+
display: flex;
|
|
53
|
+
justify-content: center;
|
|
54
|
+
|
|
55
|
+
&.${StatusClassNames.DESC} {
|
|
56
|
+
transform: rotate(-180deg);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&.${SORTABLE_COLUMN_ICON_CLASSNAME}-inactive {
|
|
60
|
+
opacity: 0.7;
|
|
61
|
+
}
|
|
62
|
+
`;
|
|
63
|
+
|
|
64
|
+
// The icon is created with CSS due to the following Firefox issue: https://product-fabric.atlassian.net/browse/ED-8001
|
|
65
|
+
// The TL;DR is that svg's in tables mess up how HTML is copied in Firefox. Using a styled div instead solves the problem.
|
|
66
|
+
// For this reason, svg's should be avoided in tables until this issue is fixed: https://bugzilla.mozilla.org/show_bug.cgi?id=1664350
|
|
67
|
+
const iconStyles = css({
|
|
68
|
+
height: '100%',
|
|
69
|
+
width: '2px',
|
|
70
|
+
borderRadius: '50px',
|
|
71
|
+
background: "var(--ds-icon, #42526E)",
|
|
72
|
+
'&::before, &::after': {
|
|
73
|
+
background: "var(--ds-icon, #42526E)",
|
|
74
|
+
content: "''",
|
|
75
|
+
height: '2px',
|
|
76
|
+
width: '6px',
|
|
77
|
+
position: 'absolute',
|
|
78
|
+
borderRadius: '50px'
|
|
79
|
+
},
|
|
80
|
+
'&::before': {
|
|
81
|
+
transform: 'rotate(45deg) translate(3.4px, 8.5px)'
|
|
82
|
+
},
|
|
83
|
+
'&::after': {
|
|
84
|
+
transform: 'rotate(-45deg) translate(-6.3px, 5.7px)'
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
const getIconClassName = (isSortingAllowed, sortOrdered) => {
|
|
88
|
+
const activated = sortOrdered !== SortOrder.NO_ORDER;
|
|
89
|
+
const activeStatusClass = `${SORTABLE_COLUMN_ICON_CLASSNAME}-${activated ? 'active' : 'inactive'}`;
|
|
90
|
+
if (!isSortingAllowed) {
|
|
91
|
+
return `${StatusClassNames.SORTING_NOT_ALLOWED} ${activeStatusClass}`;
|
|
92
|
+
}
|
|
93
|
+
switch (sortOrdered) {
|
|
94
|
+
case SortOrder.ASC:
|
|
95
|
+
return `${StatusClassNames.ASC} ${activeStatusClass}`;
|
|
96
|
+
case SortOrder.DESC:
|
|
97
|
+
return `${StatusClassNames.DESC} ${activeStatusClass}`;
|
|
98
|
+
default:
|
|
99
|
+
return `${StatusClassNames.NO_ORDER} ${activeStatusClass}`;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
const getTooltipTitle = (intl, isSortingAllowed, sortOrdered) => {
|
|
103
|
+
const {
|
|
104
|
+
noOrderLabel,
|
|
105
|
+
ascOrderLabel,
|
|
106
|
+
descOrderLabel,
|
|
107
|
+
invalidLabel
|
|
108
|
+
} = sortingIconMessages;
|
|
109
|
+
if (!isSortingAllowed) {
|
|
110
|
+
return intl.formatMessage(invalidLabel);
|
|
111
|
+
}
|
|
112
|
+
switch (sortOrdered) {
|
|
113
|
+
case SortOrder.NO_ORDER:
|
|
114
|
+
return intl.formatMessage(noOrderLabel);
|
|
115
|
+
case SortOrder.ASC:
|
|
116
|
+
return intl.formatMessage(ascOrderLabel);
|
|
117
|
+
case SortOrder.DESC:
|
|
118
|
+
return intl.formatMessage(descOrderLabel);
|
|
119
|
+
}
|
|
120
|
+
return '';
|
|
121
|
+
};
|
|
122
|
+
const getAriaLabel = (intl, isSortingAllowed, sortOrdered) => {
|
|
123
|
+
const {
|
|
124
|
+
noOrderLabel,
|
|
125
|
+
ascOrderLabel,
|
|
126
|
+
descOrderLabel,
|
|
127
|
+
invalidLabel,
|
|
128
|
+
defaultLabel
|
|
129
|
+
} = sortingAriaLabelMessages;
|
|
130
|
+
if (!isSortingAllowed) {
|
|
131
|
+
return intl.formatMessage(invalidLabel);
|
|
132
|
+
}
|
|
133
|
+
switch (sortOrdered) {
|
|
134
|
+
case SortOrder.NO_ORDER:
|
|
135
|
+
return intl.formatMessage(noOrderLabel);
|
|
136
|
+
case SortOrder.ASC:
|
|
137
|
+
return intl.formatMessage(ascOrderLabel);
|
|
138
|
+
case SortOrder.DESC:
|
|
139
|
+
return intl.formatMessage(descOrderLabel);
|
|
140
|
+
}
|
|
141
|
+
return intl.formatMessage(defaultLabel);
|
|
142
|
+
};
|
|
143
|
+
const SortingIcon = ({
|
|
144
|
+
isSortingAllowed,
|
|
145
|
+
sortOrdered,
|
|
146
|
+
intl,
|
|
147
|
+
onClick,
|
|
148
|
+
onKeyDown
|
|
149
|
+
}) => {
|
|
150
|
+
const buttonClassName = `${SORTABLE_COLUMN_ICON_CLASSNAME} ${sortOrdered !== SortOrder.NO_ORDER ? 'is-active' : ''}${isSortingAllowed ? '' : ` ${SORTABLE_COLUMN_ICON_CLASSNAME}__not-allowed `}`;
|
|
151
|
+
const content = getTooltipTitle(intl, isSortingAllowed, sortOrdered);
|
|
152
|
+
const ariaLabel = getAriaLabel(intl, isSortingAllowed, sortOrdered);
|
|
153
|
+
const handleClick = () => {
|
|
154
|
+
if (isSortingAllowed) {
|
|
155
|
+
onClick();
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
const handleKeyDown = event => {
|
|
159
|
+
if (isSortingAllowed) {
|
|
160
|
+
onKeyDown(event);
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
return jsx(Tooltip, {
|
|
164
|
+
delay: 0,
|
|
165
|
+
content: content,
|
|
166
|
+
position: "top"
|
|
167
|
+
}, jsx("div", {
|
|
168
|
+
css: buttonStyles,
|
|
169
|
+
className: buttonClassName,
|
|
170
|
+
role: "button",
|
|
171
|
+
tabIndex: isSortingAllowed ? 0 : -1,
|
|
172
|
+
"aria-label": ariaLabel,
|
|
173
|
+
"aria-disabled": !isSortingAllowed,
|
|
174
|
+
onClick: handleClick,
|
|
175
|
+
onKeyDown: handleKeyDown
|
|
176
|
+
}, jsx("div", {
|
|
177
|
+
css: iconWrapperStyles,
|
|
178
|
+
className: getIconClassName(isSortingAllowed, sortOrdered)
|
|
179
|
+
}, jsx("div", {
|
|
180
|
+
css: iconStyles
|
|
181
|
+
}))));
|
|
182
|
+
};
|
|
183
|
+
export default injectIntl(SortingIcon);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const SORTABLE_COLUMN_ICON_CLASSNAME = `ak-renderer-tableHeader-sorting-icon`;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
export const sortingIconMessages = defineMessages({
|
|
3
|
+
noOrderLabel: {
|
|
4
|
+
id: 'fabric.editor.headingLink.noOrderLabel',
|
|
5
|
+
defaultMessage: 'Sort column A to Z',
|
|
6
|
+
description: 'Sort the column in ascending order'
|
|
7
|
+
},
|
|
8
|
+
ascOrderLabel: {
|
|
9
|
+
id: 'fabric.editor.headingLink.ascOrderLabel',
|
|
10
|
+
defaultMessage: 'Sort column Z to A',
|
|
11
|
+
description: 'Sort the column in descending order'
|
|
12
|
+
},
|
|
13
|
+
descOrderLabel: {
|
|
14
|
+
id: 'fabric.editor.headingLink.descOrderLabel',
|
|
15
|
+
defaultMessage: 'Clear sorting',
|
|
16
|
+
description: 'clear the sorting from this column'
|
|
17
|
+
},
|
|
18
|
+
invalidLabel: {
|
|
19
|
+
id: 'fabric.editor.headingLink.invalidLabel',
|
|
20
|
+
defaultMessage: `⚠️ You can't sort a table with merged cells`,
|
|
21
|
+
description: 'this sort is invalid for merged cells'
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
export const sortingAriaLabelMessages = defineMessages({
|
|
25
|
+
noOrderLabel: {
|
|
26
|
+
id: 'fabric.editor.tableHeader.sorting.no',
|
|
27
|
+
defaultMessage: 'No sort applied to the column',
|
|
28
|
+
description: 'Aria-label for Sort column button when sorting was not applied or the sorting has been cleared'
|
|
29
|
+
},
|
|
30
|
+
ascOrderLabel: {
|
|
31
|
+
id: 'fabric.editor.tableHeader.sorting.asc',
|
|
32
|
+
defaultMessage: 'Ascending sort applied',
|
|
33
|
+
description: 'Aria-label for Sort column button when ascending sorting was applied'
|
|
34
|
+
},
|
|
35
|
+
descOrderLabel: {
|
|
36
|
+
id: 'fabric.editor.tableHeader.sorting.desc',
|
|
37
|
+
defaultMessage: 'Descending sort applied',
|
|
38
|
+
description: 'Aria-label for Sort column button when descending sorting was applied'
|
|
39
|
+
},
|
|
40
|
+
invalidLabel: {
|
|
41
|
+
id: 'fabric.editor.tableHeader.sorting.invalid',
|
|
42
|
+
defaultMessage: `You can't sort a table with merged cells`,
|
|
43
|
+
description: 'Aria-label for Sort column button when sorting is not possible'
|
|
44
|
+
},
|
|
45
|
+
defaultLabel: {
|
|
46
|
+
id: 'fabric.editor.tableHeader.sorting.default',
|
|
47
|
+
defaultMessage: 'Sort the column',
|
|
48
|
+
description: 'Default aria-label for Sort column button'
|
|
49
|
+
}
|
|
50
|
+
});
|
|
@@ -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 = "78.
|
|
10
|
+
const packageVersion = "78.36.0";
|
|
11
11
|
const halfFocusRing = 1;
|
|
12
12
|
const dropOffset = '0, 8';
|
|
13
13
|
class DropList extends Component {
|
|
@@ -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 = "78.
|
|
9
|
+
var packageVersion = "78.36.0";
|
|
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
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
+
var _templateObject, _templateObject2;
|
|
3
|
+
/** @jsx jsx */
|
|
4
|
+
import { css, jsx } from '@emotion/react';
|
|
5
|
+
import { injectIntl } from 'react-intl-next';
|
|
6
|
+
import { N20, N30 } from '@atlaskit/theme/colors';
|
|
7
|
+
import Tooltip from '@atlaskit/tooltip';
|
|
8
|
+
import { SortOrder } from '../types';
|
|
9
|
+
import { SORTABLE_COLUMN_ICON_CLASSNAME } from './consts';
|
|
10
|
+
import { sortingAriaLabelMessages, sortingIconMessages } from './messages';
|
|
11
|
+
export var StatusClassNames = /*#__PURE__*/function (StatusClassNames) {
|
|
12
|
+
StatusClassNames["ASC"] = "sorting-icon-svg__asc";
|
|
13
|
+
StatusClassNames["DESC"] = "sorting-icon-svg__desc";
|
|
14
|
+
StatusClassNames["NO_ORDER"] = "sorting-icon-svg__no_order";
|
|
15
|
+
StatusClassNames["SORTING_NOT_ALLOWED"] = "sorting-icon-svg__not-allowed";
|
|
16
|
+
return StatusClassNames;
|
|
17
|
+
}({});
|
|
18
|
+
|
|
19
|
+
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
|
|
20
|
+
var buttonStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: absolute;\n display: flex;\n height: 28px;\n width: 28px;\n margin: ", ";\n right: 0;\n top: 0;\n border: 2px solid ", ";\n border-radius: ", ";\n background-color: ", ";\n justify-content: center;\n align-items: center;\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n\n &:active {\n background-color: ", ";\n }\n\n &.", "__not-allowed {\n cursor: not-allowed;\n }\n"])), "var(--ds-space-075, 6px)", "var(--ds-border, #fff)", "var(--ds-border-radius-100, 4px)", "var(--ds-surface-overlay, ".concat(N20, ")"), "var(--ds-surface-overlay-hovered, ".concat(N30, ")"), "var(--ds-surface-overlay-pressed, rgba(179, 212, 255, 0.6))", SORTABLE_COLUMN_ICON_CLASSNAME);
|
|
21
|
+
|
|
22
|
+
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
|
|
23
|
+
var iconWrapperStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n width: 8px;\n height: 12px;\n transition: transform 0.3s cubic-bezier(0.15, 1, 0.3, 1);\n transform-origin: 50% 50%;\n display: flex;\n justify-content: center;\n\n &.", " {\n transform: rotate(-180deg);\n }\n\n &.", "-inactive {\n opacity: 0.7;\n }\n"])), StatusClassNames.DESC, SORTABLE_COLUMN_ICON_CLASSNAME);
|
|
24
|
+
|
|
25
|
+
// The icon is created with CSS due to the following Firefox issue: https://product-fabric.atlassian.net/browse/ED-8001
|
|
26
|
+
// The TL;DR is that svg's in tables mess up how HTML is copied in Firefox. Using a styled div instead solves the problem.
|
|
27
|
+
// For this reason, svg's should be avoided in tables until this issue is fixed: https://bugzilla.mozilla.org/show_bug.cgi?id=1664350
|
|
28
|
+
var iconStyles = css({
|
|
29
|
+
height: '100%',
|
|
30
|
+
width: '2px',
|
|
31
|
+
borderRadius: '50px',
|
|
32
|
+
background: "var(--ds-icon, #42526E)",
|
|
33
|
+
'&::before, &::after': {
|
|
34
|
+
background: "var(--ds-icon, #42526E)",
|
|
35
|
+
content: "''",
|
|
36
|
+
height: '2px',
|
|
37
|
+
width: '6px',
|
|
38
|
+
position: 'absolute',
|
|
39
|
+
borderRadius: '50px'
|
|
40
|
+
},
|
|
41
|
+
'&::before': {
|
|
42
|
+
transform: 'rotate(45deg) translate(3.4px, 8.5px)'
|
|
43
|
+
},
|
|
44
|
+
'&::after': {
|
|
45
|
+
transform: 'rotate(-45deg) translate(-6.3px, 5.7px)'
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
var getIconClassName = function getIconClassName(isSortingAllowed, sortOrdered) {
|
|
49
|
+
var activated = sortOrdered !== SortOrder.NO_ORDER;
|
|
50
|
+
var activeStatusClass = "".concat(SORTABLE_COLUMN_ICON_CLASSNAME, "-").concat(activated ? 'active' : 'inactive');
|
|
51
|
+
if (!isSortingAllowed) {
|
|
52
|
+
return "".concat(StatusClassNames.SORTING_NOT_ALLOWED, " ").concat(activeStatusClass);
|
|
53
|
+
}
|
|
54
|
+
switch (sortOrdered) {
|
|
55
|
+
case SortOrder.ASC:
|
|
56
|
+
return "".concat(StatusClassNames.ASC, " ").concat(activeStatusClass);
|
|
57
|
+
case SortOrder.DESC:
|
|
58
|
+
return "".concat(StatusClassNames.DESC, " ").concat(activeStatusClass);
|
|
59
|
+
default:
|
|
60
|
+
return "".concat(StatusClassNames.NO_ORDER, " ").concat(activeStatusClass);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
var getTooltipTitle = function getTooltipTitle(intl, isSortingAllowed, sortOrdered) {
|
|
64
|
+
var noOrderLabel = sortingIconMessages.noOrderLabel,
|
|
65
|
+
ascOrderLabel = sortingIconMessages.ascOrderLabel,
|
|
66
|
+
descOrderLabel = sortingIconMessages.descOrderLabel,
|
|
67
|
+
invalidLabel = sortingIconMessages.invalidLabel;
|
|
68
|
+
if (!isSortingAllowed) {
|
|
69
|
+
return intl.formatMessage(invalidLabel);
|
|
70
|
+
}
|
|
71
|
+
switch (sortOrdered) {
|
|
72
|
+
case SortOrder.NO_ORDER:
|
|
73
|
+
return intl.formatMessage(noOrderLabel);
|
|
74
|
+
case SortOrder.ASC:
|
|
75
|
+
return intl.formatMessage(ascOrderLabel);
|
|
76
|
+
case SortOrder.DESC:
|
|
77
|
+
return intl.formatMessage(descOrderLabel);
|
|
78
|
+
}
|
|
79
|
+
return '';
|
|
80
|
+
};
|
|
81
|
+
var getAriaLabel = function getAriaLabel(intl, isSortingAllowed, sortOrdered) {
|
|
82
|
+
var noOrderLabel = sortingAriaLabelMessages.noOrderLabel,
|
|
83
|
+
ascOrderLabel = sortingAriaLabelMessages.ascOrderLabel,
|
|
84
|
+
descOrderLabel = sortingAriaLabelMessages.descOrderLabel,
|
|
85
|
+
invalidLabel = sortingAriaLabelMessages.invalidLabel,
|
|
86
|
+
defaultLabel = sortingAriaLabelMessages.defaultLabel;
|
|
87
|
+
if (!isSortingAllowed) {
|
|
88
|
+
return intl.formatMessage(invalidLabel);
|
|
89
|
+
}
|
|
90
|
+
switch (sortOrdered) {
|
|
91
|
+
case SortOrder.NO_ORDER:
|
|
92
|
+
return intl.formatMessage(noOrderLabel);
|
|
93
|
+
case SortOrder.ASC:
|
|
94
|
+
return intl.formatMessage(ascOrderLabel);
|
|
95
|
+
case SortOrder.DESC:
|
|
96
|
+
return intl.formatMessage(descOrderLabel);
|
|
97
|
+
}
|
|
98
|
+
return intl.formatMessage(defaultLabel);
|
|
99
|
+
};
|
|
100
|
+
var SortingIcon = function SortingIcon(_ref) {
|
|
101
|
+
var isSortingAllowed = _ref.isSortingAllowed,
|
|
102
|
+
sortOrdered = _ref.sortOrdered,
|
|
103
|
+
intl = _ref.intl,
|
|
104
|
+
onClick = _ref.onClick,
|
|
105
|
+
onKeyDown = _ref.onKeyDown;
|
|
106
|
+
var buttonClassName = "".concat(SORTABLE_COLUMN_ICON_CLASSNAME, " ").concat(sortOrdered !== SortOrder.NO_ORDER ? 'is-active' : '').concat(isSortingAllowed ? '' : " ".concat(SORTABLE_COLUMN_ICON_CLASSNAME, "__not-allowed "));
|
|
107
|
+
var content = getTooltipTitle(intl, isSortingAllowed, sortOrdered);
|
|
108
|
+
var ariaLabel = getAriaLabel(intl, isSortingAllowed, sortOrdered);
|
|
109
|
+
var handleClick = function handleClick() {
|
|
110
|
+
if (isSortingAllowed) {
|
|
111
|
+
onClick();
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
115
|
+
if (isSortingAllowed) {
|
|
116
|
+
onKeyDown(event);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
return jsx(Tooltip, {
|
|
120
|
+
delay: 0,
|
|
121
|
+
content: content,
|
|
122
|
+
position: "top"
|
|
123
|
+
}, jsx("div", {
|
|
124
|
+
css: buttonStyles,
|
|
125
|
+
className: buttonClassName,
|
|
126
|
+
role: "button",
|
|
127
|
+
tabIndex: isSortingAllowed ? 0 : -1,
|
|
128
|
+
"aria-label": ariaLabel,
|
|
129
|
+
"aria-disabled": !isSortingAllowed,
|
|
130
|
+
onClick: handleClick,
|
|
131
|
+
onKeyDown: handleKeyDown
|
|
132
|
+
}, jsx("div", {
|
|
133
|
+
css: iconWrapperStyles,
|
|
134
|
+
className: getIconClassName(isSortingAllowed, sortOrdered)
|
|
135
|
+
}, jsx("div", {
|
|
136
|
+
css: iconStyles
|
|
137
|
+
}))));
|
|
138
|
+
};
|
|
139
|
+
export default injectIntl(SortingIcon);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export var SORTABLE_COLUMN_ICON_CLASSNAME = "ak-renderer-tableHeader-sorting-icon";
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
export var sortingIconMessages = defineMessages({
|
|
3
|
+
noOrderLabel: {
|
|
4
|
+
id: 'fabric.editor.headingLink.noOrderLabel',
|
|
5
|
+
defaultMessage: 'Sort column A to Z',
|
|
6
|
+
description: 'Sort the column in ascending order'
|
|
7
|
+
},
|
|
8
|
+
ascOrderLabel: {
|
|
9
|
+
id: 'fabric.editor.headingLink.ascOrderLabel',
|
|
10
|
+
defaultMessage: 'Sort column Z to A',
|
|
11
|
+
description: 'Sort the column in descending order'
|
|
12
|
+
},
|
|
13
|
+
descOrderLabel: {
|
|
14
|
+
id: 'fabric.editor.headingLink.descOrderLabel',
|
|
15
|
+
defaultMessage: 'Clear sorting',
|
|
16
|
+
description: 'clear the sorting from this column'
|
|
17
|
+
},
|
|
18
|
+
invalidLabel: {
|
|
19
|
+
id: 'fabric.editor.headingLink.invalidLabel',
|
|
20
|
+
defaultMessage: "\u26A0\uFE0F You can't sort a table with merged cells",
|
|
21
|
+
description: 'this sort is invalid for merged cells'
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
export var sortingAriaLabelMessages = defineMessages({
|
|
25
|
+
noOrderLabel: {
|
|
26
|
+
id: 'fabric.editor.tableHeader.sorting.no',
|
|
27
|
+
defaultMessage: 'No sort applied to the column',
|
|
28
|
+
description: 'Aria-label for Sort column button when sorting was not applied or the sorting has been cleared'
|
|
29
|
+
},
|
|
30
|
+
ascOrderLabel: {
|
|
31
|
+
id: 'fabric.editor.tableHeader.sorting.asc',
|
|
32
|
+
defaultMessage: 'Ascending sort applied',
|
|
33
|
+
description: 'Aria-label for Sort column button when ascending sorting was applied'
|
|
34
|
+
},
|
|
35
|
+
descOrderLabel: {
|
|
36
|
+
id: 'fabric.editor.tableHeader.sorting.desc',
|
|
37
|
+
defaultMessage: 'Descending sort applied',
|
|
38
|
+
description: 'Aria-label for Sort column button when descending sorting was applied'
|
|
39
|
+
},
|
|
40
|
+
invalidLabel: {
|
|
41
|
+
id: 'fabric.editor.tableHeader.sorting.invalid',
|
|
42
|
+
defaultMessage: "You can't sort a table with merged cells",
|
|
43
|
+
description: 'Aria-label for Sort column button when sorting is not possible'
|
|
44
|
+
},
|
|
45
|
+
defaultLabel: {
|
|
46
|
+
id: 'fabric.editor.tableHeader.sorting.default',
|
|
47
|
+
defaultMessage: 'Sort the column',
|
|
48
|
+
description: 'Default aria-label for Sort column button'
|
|
49
|
+
}
|
|
50
|
+
});
|
|
@@ -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 = "78.
|
|
18
|
+
var packageVersion = "78.36.0";
|
|
19
19
|
var halfFocusRing = 1;
|
|
20
20
|
var dropOffset = '0, 8';
|
|
21
21
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { WrappedComponentProps } from 'react-intl-next';
|
|
3
|
+
import { SortOrder } from '../types';
|
|
4
|
+
export declare enum StatusClassNames {
|
|
5
|
+
ASC = "sorting-icon-svg__asc",
|
|
6
|
+
DESC = "sorting-icon-svg__desc",
|
|
7
|
+
NO_ORDER = "sorting-icon-svg__no_order",
|
|
8
|
+
SORTING_NOT_ALLOWED = "sorting-icon-svg__not-allowed"
|
|
9
|
+
}
|
|
10
|
+
declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<{
|
|
11
|
+
isSortingAllowed: boolean;
|
|
12
|
+
sortOrdered?: SortOrder | undefined;
|
|
13
|
+
onClick: () => void;
|
|
14
|
+
onKeyDown: (event: import("react").KeyboardEvent<HTMLElement>) => void;
|
|
15
|
+
} & WrappedComponentProps>> & {
|
|
16
|
+
WrappedComponent: import("react").ComponentType<{
|
|
17
|
+
isSortingAllowed: boolean;
|
|
18
|
+
sortOrdered?: SortOrder | undefined;
|
|
19
|
+
onClick: () => void;
|
|
20
|
+
onKeyDown: (event: import("react").KeyboardEvent<HTMLElement>) => void;
|
|
21
|
+
} & WrappedComponentProps>;
|
|
22
|
+
};
|
|
23
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SORTABLE_COLUMN_ICON_CLASSNAME = "ak-renderer-tableHeader-sorting-icon";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare const sortingIconMessages: {
|
|
2
|
+
noOrderLabel: {
|
|
3
|
+
id: string;
|
|
4
|
+
defaultMessage: string;
|
|
5
|
+
description: string;
|
|
6
|
+
};
|
|
7
|
+
ascOrderLabel: {
|
|
8
|
+
id: string;
|
|
9
|
+
defaultMessage: string;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
descOrderLabel: {
|
|
13
|
+
id: string;
|
|
14
|
+
defaultMessage: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
invalidLabel: {
|
|
18
|
+
id: string;
|
|
19
|
+
defaultMessage: string;
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export declare const sortingAriaLabelMessages: {
|
|
24
|
+
noOrderLabel: {
|
|
25
|
+
id: string;
|
|
26
|
+
defaultMessage: string;
|
|
27
|
+
description: string;
|
|
28
|
+
};
|
|
29
|
+
ascOrderLabel: {
|
|
30
|
+
id: string;
|
|
31
|
+
defaultMessage: string;
|
|
32
|
+
description: string;
|
|
33
|
+
};
|
|
34
|
+
descOrderLabel: {
|
|
35
|
+
id: string;
|
|
36
|
+
defaultMessage: string;
|
|
37
|
+
description: string;
|
|
38
|
+
};
|
|
39
|
+
invalidLabel: {
|
|
40
|
+
id: string;
|
|
41
|
+
defaultMessage: string;
|
|
42
|
+
description: string;
|
|
43
|
+
};
|
|
44
|
+
defaultLabel: {
|
|
45
|
+
id: string;
|
|
46
|
+
defaultMessage: string;
|
|
47
|
+
description: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { WrappedComponentProps } from 'react-intl-next';
|
|
3
|
+
import { SortOrder } from '../types';
|
|
4
|
+
export declare enum StatusClassNames {
|
|
5
|
+
ASC = "sorting-icon-svg__asc",
|
|
6
|
+
DESC = "sorting-icon-svg__desc",
|
|
7
|
+
NO_ORDER = "sorting-icon-svg__no_order",
|
|
8
|
+
SORTING_NOT_ALLOWED = "sorting-icon-svg__not-allowed"
|
|
9
|
+
}
|
|
10
|
+
declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<{
|
|
11
|
+
isSortingAllowed: boolean;
|
|
12
|
+
sortOrdered?: SortOrder | undefined;
|
|
13
|
+
onClick: () => void;
|
|
14
|
+
onKeyDown: (event: import("react").KeyboardEvent<HTMLElement>) => void;
|
|
15
|
+
} & WrappedComponentProps>> & {
|
|
16
|
+
WrappedComponent: import("react").ComponentType<{
|
|
17
|
+
isSortingAllowed: boolean;
|
|
18
|
+
sortOrdered?: SortOrder | undefined;
|
|
19
|
+
onClick: () => void;
|
|
20
|
+
onKeyDown: (event: import("react").KeyboardEvent<HTMLElement>) => void;
|
|
21
|
+
} & WrappedComponentProps>;
|
|
22
|
+
};
|
|
23
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SORTABLE_COLUMN_ICON_CLASSNAME = "ak-renderer-tableHeader-sorting-icon";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare const sortingIconMessages: {
|
|
2
|
+
noOrderLabel: {
|
|
3
|
+
id: string;
|
|
4
|
+
defaultMessage: string;
|
|
5
|
+
description: string;
|
|
6
|
+
};
|
|
7
|
+
ascOrderLabel: {
|
|
8
|
+
id: string;
|
|
9
|
+
defaultMessage: string;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
descOrderLabel: {
|
|
13
|
+
id: string;
|
|
14
|
+
defaultMessage: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
invalidLabel: {
|
|
18
|
+
id: string;
|
|
19
|
+
defaultMessage: string;
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export declare const sortingAriaLabelMessages: {
|
|
24
|
+
noOrderLabel: {
|
|
25
|
+
id: string;
|
|
26
|
+
defaultMessage: string;
|
|
27
|
+
description: string;
|
|
28
|
+
};
|
|
29
|
+
ascOrderLabel: {
|
|
30
|
+
id: string;
|
|
31
|
+
defaultMessage: string;
|
|
32
|
+
description: string;
|
|
33
|
+
};
|
|
34
|
+
descOrderLabel: {
|
|
35
|
+
id: string;
|
|
36
|
+
defaultMessage: string;
|
|
37
|
+
description: string;
|
|
38
|
+
};
|
|
39
|
+
invalidLabel: {
|
|
40
|
+
id: string;
|
|
41
|
+
defaultMessage: string;
|
|
42
|
+
description: string;
|
|
43
|
+
};
|
|
44
|
+
defaultLabel: {
|
|
45
|
+
id: string;
|
|
46
|
+
defaultMessage: string;
|
|
47
|
+
description: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-common",
|
|
3
|
-
"version": "78.
|
|
3
|
+
"version": "78.36.0",
|
|
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/"
|
|
@@ -92,7 +92,8 @@
|
|
|
92
92
|
"./annotation": "./src/annotation/index.ts",
|
|
93
93
|
"./constants": "./src/link/constants.ts",
|
|
94
94
|
"./doc-utils": "./src/doc-utils/index.ts",
|
|
95
|
-
"./expand": "./src/expand/index.ts"
|
|
95
|
+
"./expand": "./src/expand/index.ts",
|
|
96
|
+
"./table": "./src/table/index.ts"
|
|
96
97
|
},
|
|
97
98
|
"dependencies": {
|
|
98
99
|
"@atlaskit/activity-provider": "^2.4.0",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@atlaskit/editor-common/table",
|
|
3
|
+
"main": "../dist/cjs/table/index.js",
|
|
4
|
+
"module": "../dist/esm/table/index.js",
|
|
5
|
+
"module:es2019": "../dist/es2019/table/index.js",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"types": "../dist/types/table/index.d.ts",
|
|
8
|
+
"typesVersions": {
|
|
9
|
+
">=4.5 <5.4": {
|
|
10
|
+
"*": [
|
|
11
|
+
"../dist/types-ts4.5/table/index.d.ts"
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|