@atlaskit/reactions 21.0.4 → 21.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 +25 -0
- package/README.md +3 -0
- package/dist/cjs/analytics/index.js +11 -1
- package/dist/cjs/analytics/ufo.js +71 -0
- package/dist/cjs/components/Counter.js +20 -20
- package/dist/cjs/components/EmojiButton.js +9 -11
- package/dist/cjs/components/FlashAnimation.js +19 -17
- package/dist/cjs/components/Reaction.js +22 -28
- package/dist/cjs/components/ReactionPicker.js +43 -37
- package/dist/cjs/components/ReactionTooltip.js +33 -29
- package/dist/cjs/components/Reactions.js +15 -17
- package/dist/cjs/components/Selector.js +23 -28
- package/dist/cjs/components/ShowMore.js +25 -22
- package/dist/cjs/components/Trigger.js +11 -16
- package/dist/cjs/components/UfoErrorBoundary.js +68 -0
- package/dist/cjs/components/index.js +9 -1
- package/dist/cjs/containers/ConnectedReactionPicker.js +44 -0
- package/dist/cjs/containers/ConnectedReactionsView.js +131 -0
- package/dist/cjs/containers/index.js +4 -6
- package/dist/cjs/i18n/cs.js +4 -3
- package/dist/cjs/i18n/da.js +4 -3
- package/dist/cjs/i18n/de.js +4 -3
- package/dist/cjs/i18n/en_ZZ.js +21 -0
- package/dist/cjs/i18n/es.js +4 -3
- package/dist/cjs/i18n/et.js +2 -2
- package/dist/cjs/i18n/fi.js +4 -3
- package/dist/cjs/i18n/fr.js +4 -3
- package/dist/cjs/i18n/hu.js +4 -3
- package/dist/cjs/i18n/it.js +4 -3
- package/dist/cjs/i18n/ja.js +4 -3
- package/dist/cjs/i18n/ko.js +4 -3
- package/dist/cjs/i18n/nb.js +4 -3
- package/dist/cjs/i18n/nl.js +4 -3
- package/dist/cjs/i18n/pl.js +4 -3
- package/dist/cjs/i18n/pt_BR.js +4 -3
- package/dist/cjs/i18n/pt_PT.js +2 -2
- package/dist/cjs/i18n/ru.js +4 -3
- package/dist/cjs/i18n/sk.js +2 -2
- package/dist/cjs/i18n/sv.js +4 -3
- package/dist/cjs/i18n/th.js +4 -3
- package/dist/cjs/i18n/tr.js +4 -3
- package/dist/cjs/i18n/uk.js +4 -3
- package/dist/cjs/i18n/vi.js +4 -3
- package/dist/cjs/i18n/zh.js +4 -3
- package/dist/cjs/i18n/zh_TW.js +4 -3
- package/dist/cjs/index.js +11 -3
- package/dist/cjs/{reaction-store → store}/ReactionConsumer.js +0 -0
- package/dist/cjs/{reaction-store → store}/ReactionsStore.js +63 -14
- package/dist/cjs/{reaction-store → store}/batched.js +0 -0
- package/dist/cjs/{reaction-store → store}/index.js +0 -0
- package/dist/cjs/{reaction-store → store}/utils.js +0 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/analytics/index.js +2 -0
- package/dist/es2019/analytics/ufo.js +62 -0
- package/dist/es2019/components/Counter.js +18 -18
- package/dist/es2019/components/EmojiButton.js +10 -10
- package/dist/es2019/components/FlashAnimation.js +16 -15
- package/dist/es2019/components/Reaction.js +23 -28
- package/dist/es2019/components/ReactionPicker.js +39 -34
- package/dist/es2019/components/ReactionTooltip.js +27 -27
- package/dist/es2019/components/Reactions.js +16 -16
- package/dist/es2019/components/Selector.js +21 -24
- package/dist/es2019/components/ShowMore.js +22 -18
- package/dist/es2019/components/Trigger.js +10 -14
- package/dist/es2019/components/UfoErrorBoundary.js +13 -0
- package/dist/es2019/components/index.js +2 -1
- package/dist/es2019/containers/ConnectedReactionPicker.js +27 -0
- package/dist/es2019/containers/ConnectedReactionsView.js +112 -0
- package/dist/es2019/containers/index.js +2 -2
- package/dist/es2019/i18n/cs.js +4 -3
- package/dist/es2019/i18n/da.js +4 -3
- package/dist/es2019/i18n/de.js +4 -3
- package/dist/es2019/i18n/en_ZZ.js +13 -0
- package/dist/es2019/i18n/es.js +4 -3
- package/dist/es2019/i18n/et.js +2 -2
- package/dist/es2019/i18n/fi.js +4 -3
- package/dist/es2019/i18n/fr.js +4 -3
- package/dist/es2019/i18n/hu.js +4 -3
- package/dist/es2019/i18n/it.js +4 -3
- package/dist/es2019/i18n/ja.js +4 -3
- package/dist/es2019/i18n/ko.js +4 -3
- package/dist/es2019/i18n/nb.js +4 -3
- package/dist/es2019/i18n/nl.js +4 -3
- package/dist/es2019/i18n/pl.js +4 -3
- package/dist/es2019/i18n/pt_BR.js +4 -3
- package/dist/es2019/i18n/pt_PT.js +2 -2
- package/dist/es2019/i18n/ru.js +4 -3
- package/dist/es2019/i18n/sk.js +2 -2
- package/dist/es2019/i18n/sv.js +4 -3
- package/dist/es2019/i18n/th.js +4 -3
- package/dist/es2019/i18n/tr.js +4 -3
- package/dist/es2019/i18n/uk.js +4 -3
- package/dist/es2019/i18n/vi.js +4 -3
- package/dist/es2019/i18n/zh.js +4 -3
- package/dist/es2019/i18n/zh_TW.js +4 -3
- package/dist/es2019/index.js +2 -1
- package/dist/es2019/{reaction-store → store}/ReactionConsumer.js +0 -0
- package/dist/es2019/{reaction-store → store}/ReactionsStore.js +59 -13
- package/dist/es2019/{reaction-store → store}/batched.js +0 -0
- package/dist/es2019/{reaction-store → store}/index.js +0 -0
- package/dist/es2019/{reaction-store → store}/utils.js +0 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/analytics/index.js +2 -0
- package/dist/esm/analytics/ufo.js +62 -0
- package/dist/esm/components/Counter.js +18 -17
- package/dist/esm/components/EmojiButton.js +9 -10
- package/dist/esm/components/FlashAnimation.js +16 -14
- package/dist/esm/components/Reaction.js +22 -26
- package/dist/esm/components/ReactionPicker.js +39 -34
- package/dist/esm/components/ReactionTooltip.js +27 -27
- package/dist/esm/components/Reactions.js +15 -16
- package/dist/esm/components/Selector.js +20 -24
- package/dist/esm/components/ShowMore.js +22 -19
- package/dist/esm/components/Trigger.js +10 -14
- package/dist/esm/components/UfoErrorBoundary.js +54 -0
- package/dist/esm/components/index.js +2 -1
- package/dist/esm/containers/ConnectedReactionPicker.js +29 -0
- package/dist/esm/containers/ConnectedReactionsView.js +108 -0
- package/dist/esm/containers/index.js +2 -2
- package/dist/esm/i18n/cs.js +4 -3
- package/dist/esm/i18n/da.js +4 -3
- package/dist/esm/i18n/de.js +4 -3
- package/dist/esm/i18n/en_ZZ.js +13 -0
- package/dist/esm/i18n/es.js +4 -3
- package/dist/esm/i18n/et.js +2 -2
- package/dist/esm/i18n/fi.js +4 -3
- package/dist/esm/i18n/fr.js +4 -3
- package/dist/esm/i18n/hu.js +4 -3
- package/dist/esm/i18n/it.js +4 -3
- package/dist/esm/i18n/ja.js +4 -3
- package/dist/esm/i18n/ko.js +4 -3
- package/dist/esm/i18n/nb.js +4 -3
- package/dist/esm/i18n/nl.js +4 -3
- package/dist/esm/i18n/pl.js +4 -3
- package/dist/esm/i18n/pt_BR.js +4 -3
- package/dist/esm/i18n/pt_PT.js +2 -2
- package/dist/esm/i18n/ru.js +4 -3
- package/dist/esm/i18n/sk.js +2 -2
- package/dist/esm/i18n/sv.js +4 -3
- package/dist/esm/i18n/th.js +4 -3
- package/dist/esm/i18n/tr.js +4 -3
- package/dist/esm/i18n/uk.js +4 -3
- package/dist/esm/i18n/vi.js +4 -3
- package/dist/esm/i18n/zh.js +4 -3
- package/dist/esm/i18n/zh_TW.js +4 -3
- package/dist/esm/index.js +2 -1
- package/dist/esm/{reaction-store → store}/ReactionConsumer.js +0 -0
- package/dist/esm/{reaction-store → store}/ReactionsStore.js +61 -13
- package/dist/esm/{reaction-store → store}/batched.js +0 -0
- package/dist/esm/{reaction-store → store}/index.js +0 -0
- package/dist/esm/{reaction-store → store}/utils.js +0 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/analytics/index.d.ts +1 -0
- package/dist/types/analytics/ufo.d.ts +26 -0
- package/dist/types/components/Counter.d.ts +4 -3
- package/dist/types/components/FlashAnimation.d.ts +3 -1
- package/dist/types/components/ReactionPicker.d.ts +2 -1
- package/dist/types/components/Reactions.d.ts +7 -5
- package/dist/types/components/Selector.d.ts +2 -1
- package/dist/types/components/ShowMore.d.ts +4 -0
- package/dist/types/components/UfoErrorBoundary.d.ts +8 -0
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/containers/ConnectedReactionPicker.d.ts +10 -0
- package/dist/types/containers/ConnectedReactionsView.d.ts +19 -0
- package/dist/types/containers/index.d.ts +2 -2
- package/dist/types/i18n/cs.d.ts +2 -1
- package/dist/types/i18n/da.d.ts +2 -1
- package/dist/types/i18n/de.d.ts +2 -1
- package/dist/types/i18n/en_ZZ.d.ts +13 -0
- package/dist/types/i18n/es.d.ts +2 -1
- package/dist/types/i18n/et.d.ts +1 -1
- package/dist/types/i18n/fi.d.ts +2 -1
- package/dist/types/i18n/fr.d.ts +2 -1
- package/dist/types/i18n/hu.d.ts +2 -1
- package/dist/types/i18n/it.d.ts +2 -1
- package/dist/types/i18n/ja.d.ts +2 -1
- package/dist/types/i18n/ko.d.ts +2 -1
- package/dist/types/i18n/nb.d.ts +2 -1
- package/dist/types/i18n/nl.d.ts +2 -1
- package/dist/types/i18n/pl.d.ts +2 -1
- package/dist/types/i18n/pt_BR.d.ts +2 -1
- package/dist/types/i18n/pt_PT.d.ts +1 -1
- package/dist/types/i18n/ru.d.ts +2 -1
- package/dist/types/i18n/sk.d.ts +1 -1
- package/dist/types/i18n/sv.d.ts +2 -1
- package/dist/types/i18n/th.d.ts +2 -1
- package/dist/types/i18n/tr.d.ts +2 -1
- package/dist/types/i18n/uk.d.ts +2 -1
- package/dist/types/i18n/vi.d.ts +2 -1
- package/dist/types/i18n/zh.d.ts +2 -1
- package/dist/types/i18n/zh_TW.d.ts +2 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/store/ReactionConsumer.d.ts +29 -0
- package/dist/types/{reaction-store → store}/ReactionsStore.d.ts +11 -7
- package/dist/types/{reaction-store → store}/batched.d.ts +0 -0
- package/dist/types/{reaction-store → store}/index.d.ts +0 -0
- package/dist/types/{reaction-store → store}/utils.d.ts +0 -0
- package/dist/types/types/Actions.d.ts +6 -0
- package/dist/types/types/index.d.ts +1 -1
- package/docs/0-intro.tsx +1 -1
- package/local-config-example.ts +3 -1
- package/package.json +11 -8
- package/dist/cjs/containers/ReactionsContainer.js +0 -142
- package/dist/cjs/containers/ReactionsPickerContainer.js +0 -76
- package/dist/es2019/containers/ReactionsContainer.js +0 -96
- package/dist/es2019/containers/ReactionsPickerContainer.js +0 -26
- package/dist/esm/containers/ReactionsContainer.js +0 -125
- package/dist/esm/containers/ReactionsPickerContainer.js +0 -62
- package/dist/types/containers/ReactionsContainer.d.ts +0 -22
- package/dist/types/containers/ReactionsPickerContainer.d.ts +0 -18
- package/dist/types/reaction-store/ReactionConsumer.d.ts +0 -32
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
|
|
3
|
+
/** @jsx jsx */
|
|
4
|
+
import { jsx, css } from '@emotion/core';
|
|
2
5
|
import Tooltip from '@atlaskit/tooltip';
|
|
3
|
-
import React from 'react';
|
|
6
|
+
import React, { Fragment } from 'react';
|
|
4
7
|
import { FormattedMessage } from 'react-intl-next';
|
|
5
|
-
import { style } from 'typestyle';
|
|
6
8
|
import { token } from '@atlaskit/tokens';
|
|
7
9
|
import { N90 } from '@atlaskit/theme/colors';
|
|
8
10
|
import { messages } from './i18n';
|
|
9
11
|
var verticalMargin = 5;
|
|
10
|
-
var tooltipStyle =
|
|
12
|
+
var tooltipStyle = css({
|
|
11
13
|
maxWidth: '150px',
|
|
12
14
|
textOverflow: 'ellipsis',
|
|
13
15
|
whiteSpace: 'nowrap',
|
|
14
16
|
overflow: 'hidden',
|
|
15
17
|
marginBottom: verticalMargin,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
marginTop: verticalMargin
|
|
27
|
-
}
|
|
18
|
+
ul: {
|
|
19
|
+
listStyle: 'none',
|
|
20
|
+
margin: 0,
|
|
21
|
+
padding: 0,
|
|
22
|
+
textAlign: 'left'
|
|
23
|
+
},
|
|
24
|
+
li: {
|
|
25
|
+
overflow: 'hidden',
|
|
26
|
+
textOverflow: 'ellipsis',
|
|
27
|
+
marginTop: verticalMargin
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
var emojiNameStyle =
|
|
30
|
+
var emojiNameStyle = css({
|
|
31
31
|
textTransform: 'capitalize',
|
|
32
32
|
color: token('color.text.inverse', N90),
|
|
33
33
|
fontWeight: 600
|
|
34
34
|
});
|
|
35
|
-
var footerStyle =
|
|
35
|
+
var footerStyle = css({
|
|
36
36
|
color: token('color.text.inverse', N90),
|
|
37
37
|
fontWeight: 300
|
|
38
38
|
});
|
|
@@ -43,25 +43,25 @@ export var ReactionTooltip = function ReactionTooltip(_ref) {
|
|
|
43
43
|
users = _ref.reaction.users;
|
|
44
44
|
|
|
45
45
|
if (!users || users.length === 0) {
|
|
46
|
-
return
|
|
46
|
+
return jsx(Fragment, null, React.Children.only(children));
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
var content =
|
|
50
|
-
|
|
51
|
-
},
|
|
52
|
-
|
|
49
|
+
var content = jsx("div", {
|
|
50
|
+
css: tooltipStyle
|
|
51
|
+
}, jsx("ul", null, emojiName ? jsx("li", {
|
|
52
|
+
css: emojiNameStyle
|
|
53
53
|
}, emojiName) : null, users.slice(0, TOOLTIP_USERS_LIMIT).map(function (user, index) {
|
|
54
|
-
return
|
|
54
|
+
return jsx("li", {
|
|
55
55
|
key: index
|
|
56
56
|
}, user.displayName);
|
|
57
|
-
}), users.length > TOOLTIP_USERS_LIMIT ?
|
|
58
|
-
|
|
59
|
-
},
|
|
57
|
+
}), users.length > TOOLTIP_USERS_LIMIT ? jsx("li", {
|
|
58
|
+
css: footerStyle
|
|
59
|
+
}, jsx(FormattedMessage, _extends({}, messages.otherUsers, {
|
|
60
60
|
values: {
|
|
61
61
|
count: users.length - TOOLTIP_USERS_LIMIT
|
|
62
62
|
}
|
|
63
63
|
}))) : null));
|
|
64
|
-
return
|
|
64
|
+
return jsx(Tooltip, {
|
|
65
65
|
content: content,
|
|
66
66
|
position: "bottom"
|
|
67
67
|
}, React.Children.only(children));
|
|
@@ -10,22 +10,23 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
10
10
|
|
|
11
11
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
12
12
|
|
|
13
|
+
/** @jsx jsx */
|
|
14
|
+
import { jsx, css } from '@emotion/core';
|
|
13
15
|
import { withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
14
16
|
import Tooltip from '@atlaskit/tooltip';
|
|
15
17
|
import React from 'react';
|
|
16
18
|
import { FormattedMessage } from 'react-intl-next';
|
|
17
|
-
import { style } from 'typestyle';
|
|
18
19
|
import { createAndFireSafe, createPickerButtonClickedEvent, createPickerCancelledEvent, createPickerMoreClickedEvent, createReactionSelectionEvent, createReactionsRenderedEvent } from '../analytics';
|
|
19
20
|
import { ReactionStatus } from '../types/ReactionStatus';
|
|
20
21
|
import { messages } from './i18n';
|
|
21
22
|
import { Reaction } from './Reaction';
|
|
22
23
|
import { ReactionPicker } from './ReactionPicker';
|
|
23
|
-
var reactionStyle =
|
|
24
|
+
var reactionStyle = css({
|
|
24
25
|
display: 'inline-block',
|
|
25
26
|
// top margin of 2px to allow spacing between rows when wrapped (paired with top margin in reactionsStyle)
|
|
26
27
|
margin: '2px 4px 0 4px'
|
|
27
28
|
});
|
|
28
|
-
var reactionsStyle =
|
|
29
|
+
var reactionsStyle = css({
|
|
29
30
|
display: 'flex',
|
|
30
31
|
flexWrap: 'wrap',
|
|
31
32
|
position: 'relative',
|
|
@@ -33,10 +34,8 @@ var reactionsStyle = style({
|
|
|
33
34
|
borderRadius: '15px',
|
|
34
35
|
// To allow to row spacing of 2px on wrap, and 0px on first row
|
|
35
36
|
marginTop: '-2px',
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
marginLeft: 0
|
|
39
|
-
}
|
|
37
|
+
'& > :first-of-type': {
|
|
38
|
+
marginLeft: 0
|
|
40
39
|
}
|
|
41
40
|
});
|
|
42
41
|
export var ReactionsWithoutAnalytics = /*#__PURE__*/function (_React$PureComponent) {
|
|
@@ -69,11 +68,11 @@ export var ReactionsWithoutAnalytics = /*#__PURE__*/function (_React$PureCompone
|
|
|
69
68
|
|
|
70
69
|
switch (status) {
|
|
71
70
|
case ReactionStatus.error:
|
|
72
|
-
return errorMessage ? errorMessage :
|
|
71
|
+
return errorMessage ? errorMessage : jsx(FormattedMessage, messages.unexpectedError);
|
|
73
72
|
|
|
74
73
|
case ReactionStatus.loading:
|
|
75
74
|
case ReactionStatus.notLoaded:
|
|
76
|
-
return
|
|
75
|
+
return jsx(FormattedMessage, messages.loadingReactions);
|
|
77
76
|
|
|
78
77
|
default:
|
|
79
78
|
return undefined;
|
|
@@ -112,9 +111,9 @@ export var ReactionsWithoutAnalytics = /*#__PURE__*/function (_React$PureCompone
|
|
|
112
111
|
});
|
|
113
112
|
|
|
114
113
|
_defineProperty(_assertThisInitialized(_this), "renderReaction", function (reaction) {
|
|
115
|
-
return
|
|
114
|
+
return jsx(Reaction, {
|
|
116
115
|
key: reaction.emojiId,
|
|
117
|
-
|
|
116
|
+
css: reactionStyle,
|
|
118
117
|
reaction: reaction,
|
|
119
118
|
emojiProvider: _this.props.emojiProvider,
|
|
120
119
|
onClick: _this.props.onReactionClick,
|
|
@@ -144,10 +143,10 @@ export var ReactionsWithoutAnalytics = /*#__PURE__*/function (_React$PureCompone
|
|
|
144
143
|
emojiProvider = _this$props2.emojiProvider,
|
|
145
144
|
boundariesElement = _this$props2.boundariesElement,
|
|
146
145
|
allowAllEmojis = _this$props2.allowAllEmojis;
|
|
147
|
-
return
|
|
146
|
+
return jsx(Tooltip, {
|
|
148
147
|
content: this.getTooltip()
|
|
149
|
-
},
|
|
150
|
-
|
|
148
|
+
}, jsx(ReactionPicker, {
|
|
149
|
+
css: reactionStyle,
|
|
151
150
|
emojiProvider: emojiProvider,
|
|
152
151
|
miniMode: true,
|
|
153
152
|
boundariesElement: boundariesElement,
|
|
@@ -162,8 +161,8 @@ export var ReactionsWithoutAnalytics = /*#__PURE__*/function (_React$PureCompone
|
|
|
162
161
|
}, {
|
|
163
162
|
key: "render",
|
|
164
163
|
value: function render() {
|
|
165
|
-
return
|
|
166
|
-
|
|
164
|
+
return jsx("div", {
|
|
165
|
+
css: reactionsStyle
|
|
167
166
|
}, this.props.reactions.map(this.renderReaction), this.renderPicker());
|
|
168
167
|
}
|
|
169
168
|
}]);
|
|
@@ -10,27 +10,26 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
10
10
|
|
|
11
11
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
12
12
|
|
|
13
|
+
/** @jsx jsx */
|
|
14
|
+
import { jsx, css, keyframes } from '@emotion/core';
|
|
13
15
|
import Tooltip from '@atlaskit/tooltip';
|
|
14
|
-
import cx from 'classnames';
|
|
15
16
|
import React from 'react';
|
|
16
17
|
import { PureComponent } from 'react';
|
|
17
|
-
import { keyframes, style } from 'typestyle';
|
|
18
18
|
import { EmojiButton } from './EmojiButton';
|
|
19
19
|
import { ShowMore } from './ShowMore';
|
|
20
20
|
import { equalEmojiId } from './utils';
|
|
21
|
-
var
|
|
21
|
+
export var renderEmojiTestId = 'render-emoji';
|
|
22
|
+
var selectorStyle = css({
|
|
22
23
|
boxSizing: 'border-box',
|
|
23
24
|
display: 'flex',
|
|
24
25
|
padding: 0
|
|
25
26
|
});
|
|
26
|
-
var emojiStyle =
|
|
27
|
+
var emojiStyle = css({
|
|
27
28
|
display: 'inline-block',
|
|
28
29
|
opacity: 0,
|
|
29
|
-
|
|
30
|
-
'
|
|
31
|
-
|
|
32
|
-
transform: 'translateY(-48px) scale(2.667)'
|
|
33
|
-
}
|
|
30
|
+
'&.selected': {
|
|
31
|
+
transition: 'transform 200ms ease-in-out ',
|
|
32
|
+
transform: 'translateY(-48px) scale(2.667)'
|
|
34
33
|
}
|
|
35
34
|
});
|
|
36
35
|
var revealAnimation = keyframes({
|
|
@@ -46,7 +45,7 @@ var revealAnimation = keyframes({
|
|
|
46
45
|
transform: 'scale(1)'
|
|
47
46
|
}
|
|
48
47
|
});
|
|
49
|
-
export var revealStyle =
|
|
48
|
+
export var revealStyle = css({
|
|
50
49
|
animation: "".concat(revealAnimation, " 150ms ease-in-out forwards")
|
|
51
50
|
});
|
|
52
51
|
|
|
@@ -108,17 +107,16 @@ export var Selector = /*#__PURE__*/function (_PureComponent) {
|
|
|
108
107
|
_defineProperty(_assertThisInitialized(_this), "renderEmoji", function (emojiId, index) {
|
|
109
108
|
var emojiProvider = _this.props.emojiProvider;
|
|
110
109
|
var key = emojiId.id || emojiId.shortName;
|
|
111
|
-
var classNames = cx(emojiStyle, revealStyle, {
|
|
112
|
-
selected: emojiId === _this.state.selection
|
|
113
|
-
});
|
|
114
110
|
var style = revealDelay(index);
|
|
115
|
-
return
|
|
111
|
+
return jsx("div", {
|
|
116
112
|
key: key,
|
|
117
|
-
className:
|
|
118
|
-
|
|
119
|
-
|
|
113
|
+
className: emojiId === _this.state.selection ? 'selected' : '',
|
|
114
|
+
css: [emojiStyle, revealStyle],
|
|
115
|
+
style: style,
|
|
116
|
+
"data-testid": renderEmojiTestId
|
|
117
|
+
}, jsx(Tooltip, {
|
|
120
118
|
content: emojiId.shortName
|
|
121
|
-
},
|
|
119
|
+
}, jsx(EmojiButton, {
|
|
122
120
|
emojiId: emojiId,
|
|
123
121
|
emojiProvider: emojiProvider,
|
|
124
122
|
onClick: _this.onEmojiSelected
|
|
@@ -126,11 +124,9 @@ export var Selector = /*#__PURE__*/function (_PureComponent) {
|
|
|
126
124
|
});
|
|
127
125
|
|
|
128
126
|
_defineProperty(_assertThisInitialized(_this), "renderShowMore", function () {
|
|
129
|
-
return
|
|
127
|
+
return jsx(ShowMore, {
|
|
130
128
|
key: "more",
|
|
131
|
-
|
|
132
|
-
button: revealStyle
|
|
133
|
-
},
|
|
129
|
+
revealStyle: revealStyle,
|
|
134
130
|
style: {
|
|
135
131
|
button: revealDelay(defaultReactions.length)
|
|
136
132
|
},
|
|
@@ -154,8 +150,8 @@ export var Selector = /*#__PURE__*/function (_PureComponent) {
|
|
|
154
150
|
key: "render",
|
|
155
151
|
value: function render() {
|
|
156
152
|
var showMore = this.props.showMore;
|
|
157
|
-
return
|
|
158
|
-
|
|
153
|
+
return jsx("div", {
|
|
154
|
+
css: selectorStyle
|
|
159
155
|
}, defaultReactions.map(this.renderEmoji), showMore ? this.renderShowMore() : null);
|
|
160
156
|
}
|
|
161
157
|
}]);
|
|
@@ -9,20 +9,21 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
9
9
|
|
|
10
10
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
11
|
|
|
12
|
+
/** @jsx jsx */
|
|
13
|
+
import { jsx, css } from '@emotion/core';
|
|
12
14
|
import EditorMoreIcon from '@atlaskit/icon/glyph/editor/more';
|
|
13
15
|
import { borderRadius } from '@atlaskit/theme/constants';
|
|
14
16
|
import { N30A } from '@atlaskit/theme/colors';
|
|
15
17
|
import { token } from '@atlaskit/tokens';
|
|
16
18
|
import Tooltip from '@atlaskit/tooltip';
|
|
17
|
-
import cx from 'classnames';
|
|
18
19
|
import React from 'react';
|
|
19
|
-
import { style } from 'typestyle';
|
|
20
20
|
import { messages } from './i18n';
|
|
21
21
|
import { FormattedMessage } from 'react-intl-next';
|
|
22
|
-
|
|
22
|
+
import { revealStyle } from './Selector';
|
|
23
|
+
var moreEmojiContainerStyle = css({
|
|
23
24
|
display: 'flex'
|
|
24
25
|
});
|
|
25
|
-
var moreButtonStyle =
|
|
26
|
+
var moreButtonStyle = css({
|
|
26
27
|
opacity: 0,
|
|
27
28
|
outline: 'none',
|
|
28
29
|
backgroundColor: 'transparent',
|
|
@@ -33,19 +34,18 @@ var moreButtonStyle = style({
|
|
|
33
34
|
padding: '4px',
|
|
34
35
|
width: '38px',
|
|
35
36
|
verticalAlign: 'top',
|
|
36
|
-
|
|
37
|
-
'
|
|
38
|
-
backgroundColor: token('color.background.neutral.subtle.hovered', N30A)
|
|
39
|
-
}
|
|
37
|
+
'&:hover': {
|
|
38
|
+
backgroundColor: token('color.background.neutral.subtle.hovered', N30A)
|
|
40
39
|
}
|
|
41
40
|
});
|
|
42
|
-
var separatorStyle =
|
|
41
|
+
var separatorStyle = css({
|
|
43
42
|
backgroundColor: token('color.border', N30A),
|
|
44
43
|
margin: '8px 8px 8px 4px',
|
|
45
44
|
width: '1px',
|
|
46
45
|
height: '60%',
|
|
47
46
|
display: 'inline-block'
|
|
48
47
|
});
|
|
48
|
+
export var showMoreTestId = 'show-more-button';
|
|
49
49
|
export var ShowMore = /*#__PURE__*/function (_React$PureComponent) {
|
|
50
50
|
_inherits(ShowMore, _React$PureComponent);
|
|
51
51
|
|
|
@@ -64,19 +64,22 @@ export var ShowMore = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
64
64
|
style = _this$props.style,
|
|
65
65
|
onClick = _this$props.onClick,
|
|
66
66
|
classNameProp = _this$props.className;
|
|
67
|
-
return
|
|
68
|
-
className:
|
|
67
|
+
return jsx("div", {
|
|
68
|
+
className: classNameProp.container,
|
|
69
|
+
css: moreEmojiContainerStyle,
|
|
69
70
|
style: style.container
|
|
70
|
-
},
|
|
71
|
-
|
|
72
|
-
}),
|
|
73
|
-
return
|
|
71
|
+
}, jsx("div", {
|
|
72
|
+
css: separatorStyle
|
|
73
|
+
}), jsx(FormattedMessage, messages.moreEmoji, function (text) {
|
|
74
|
+
return jsx(Tooltip, {
|
|
74
75
|
content: text
|
|
75
|
-
},
|
|
76
|
-
className:
|
|
76
|
+
}, jsx("button", {
|
|
77
|
+
className: classNameProp.button,
|
|
78
|
+
css: [moreButtonStyle, revealStyle],
|
|
77
79
|
style: style.button,
|
|
78
|
-
onMouseDown: onClick
|
|
79
|
-
|
|
80
|
+
onMouseDown: onClick,
|
|
81
|
+
"data-testid": showMoreTestId
|
|
82
|
+
}, jsx(EditorMoreIcon, {
|
|
80
83
|
label: "More"
|
|
81
84
|
})));
|
|
82
85
|
}));
|
|
@@ -1,20 +1,18 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { jsx, css } from '@emotion/core';
|
|
1
3
|
import Button from '@atlaskit/button/standard-button';
|
|
2
4
|
import EmojiAddIcon from '@atlaskit/icon/glyph/emoji-add';
|
|
3
|
-
import cx from 'classnames';
|
|
4
5
|
import React from 'react';
|
|
5
|
-
|
|
6
|
-
var triggerStyle = style({
|
|
6
|
+
var triggerStyle = css({
|
|
7
7
|
width: '32px',
|
|
8
8
|
height: '32px',
|
|
9
9
|
display: 'flex',
|
|
10
10
|
justifyContent: 'center',
|
|
11
11
|
alignItems: 'center',
|
|
12
12
|
lineHeight: '16px',
|
|
13
|
-
|
|
14
|
-
'
|
|
15
|
-
|
|
16
|
-
height: '24px'
|
|
17
|
-
}
|
|
13
|
+
'&.miniMode': {
|
|
14
|
+
width: '24px',
|
|
15
|
+
height: '24px'
|
|
18
16
|
}
|
|
19
17
|
});
|
|
20
18
|
export var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
@@ -28,15 +26,13 @@ export var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
28
26
|
}
|
|
29
27
|
};
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
miniMode:
|
|
33
|
-
|
|
34
|
-
return /*#__PURE__*/React.createElement(Button, {
|
|
35
|
-
className: classNames,
|
|
29
|
+
return jsx(Button, {
|
|
30
|
+
className: miniMode ? 'miniMode' : '',
|
|
31
|
+
css: triggerStyle,
|
|
36
32
|
appearance: "subtle",
|
|
37
33
|
onClick: handleMouseDown,
|
|
38
34
|
isDisabled: disabled,
|
|
39
|
-
iconBefore:
|
|
35
|
+
iconBefore: jsx(EmojiAddIcon, {
|
|
40
36
|
size: "small",
|
|
41
37
|
label: "Add reaction"
|
|
42
38
|
}),
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
4
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
5
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
6
|
+
|
|
7
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
8
|
+
|
|
9
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
+
|
|
11
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
12
|
+
|
|
13
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
14
|
+
|
|
15
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
16
|
+
|
|
17
|
+
import React from 'react';
|
|
18
|
+
export var UfoErrorBoundary = /*#__PURE__*/function (_React$Component) {
|
|
19
|
+
_inherits(UfoErrorBoundary, _React$Component);
|
|
20
|
+
|
|
21
|
+
var _super = _createSuper(UfoErrorBoundary);
|
|
22
|
+
|
|
23
|
+
function UfoErrorBoundary() {
|
|
24
|
+
_classCallCheck(this, UfoErrorBoundary);
|
|
25
|
+
|
|
26
|
+
return _super.apply(this, arguments);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
_createClass(UfoErrorBoundary, [{
|
|
30
|
+
key: "componentDidCatch",
|
|
31
|
+
value: function componentDidCatch() {
|
|
32
|
+
var _iterator = _createForOfIteratorHelper(this.props.experiences),
|
|
33
|
+
_step;
|
|
34
|
+
|
|
35
|
+
try {
|
|
36
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
37
|
+
var e = _step.value;
|
|
38
|
+
e.failure();
|
|
39
|
+
}
|
|
40
|
+
} catch (err) {
|
|
41
|
+
_iterator.e(err);
|
|
42
|
+
} finally {
|
|
43
|
+
_iterator.f();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}, {
|
|
47
|
+
key: "render",
|
|
48
|
+
value: function render() {
|
|
49
|
+
return this.props.children;
|
|
50
|
+
}
|
|
51
|
+
}]);
|
|
52
|
+
|
|
53
|
+
return UfoErrorBoundary;
|
|
54
|
+
}(React.Component);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ReactionPicker, UfoErrorBoundary } from '../components';
|
|
4
|
+
import { ReactionConsumer } from '../store/ReactionConsumer';
|
|
5
|
+
import { UFO } from '../analytics';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* UFO Instance for picker
|
|
9
|
+
*/
|
|
10
|
+
export var ConnectedReactionPicker = function ConnectedReactionPicker(props) {
|
|
11
|
+
var renderChild = function renderChild(innerProps) {
|
|
12
|
+
return /*#__PURE__*/React.createElement(ReactionPicker, _extends({}, props, innerProps));
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
var actionsMapper = function actionsMapper(actions) {
|
|
16
|
+
return {
|
|
17
|
+
onSelection: function onSelection(emojiId) {
|
|
18
|
+
actions.addReaction(props.containerAri, props.ari, emojiId);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
return /*#__PURE__*/React.createElement(UfoErrorBoundary, {
|
|
24
|
+
experiences: [UFO.PickerRender]
|
|
25
|
+
}, /*#__PURE__*/React.createElement(ReactionConsumer, {
|
|
26
|
+
store: props.store,
|
|
27
|
+
actionsMapper: actionsMapper
|
|
28
|
+
}, renderChild));
|
|
29
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { useEffect, useRef } from 'react';
|
|
3
|
+
import { FabricElementsAnalyticsContext } from '@atlaskit/analytics-namespaced-context';
|
|
4
|
+
import { withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
5
|
+
import { Reactions, UfoErrorBoundary } from '../components';
|
|
6
|
+
import { ReactionConsumer } from '../store/ReactionConsumer';
|
|
7
|
+
import { ReactionStatus } from '../types/ReactionStatus';
|
|
8
|
+
import { ufoExperiences } from '../store/ReactionsStore';
|
|
9
|
+
|
|
10
|
+
var ReactionsView = function ReactionsView(props) {
|
|
11
|
+
// // compose a UFO experience object
|
|
12
|
+
var experienceInstance = useRef();
|
|
13
|
+
var ari = props.ari,
|
|
14
|
+
createAnalyticsEvent = props.createAnalyticsEvent,
|
|
15
|
+
store = props.store;
|
|
16
|
+
useEffect(function () {
|
|
17
|
+
experienceInstance.current = ufoExperiences.render.getInstance(ari);
|
|
18
|
+
}, [ari]);
|
|
19
|
+
useEffect(function () {
|
|
20
|
+
Promise.resolve(store).then(function (_store) {
|
|
21
|
+
if (_store.setCreateAnalyticsEvent && createAnalyticsEvent) {
|
|
22
|
+
_store.setCreateAnalyticsEvent(createAnalyticsEvent);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}, [createAnalyticsEvent, store]); // abort when component gets unmounted
|
|
26
|
+
|
|
27
|
+
useEffect(function () {
|
|
28
|
+
return function () {
|
|
29
|
+
var _experienceInstance$c;
|
|
30
|
+
|
|
31
|
+
(_experienceInstance$c = experienceInstance.current) === null || _experienceInstance$c === void 0 ? void 0 : _experienceInstance$c.abort();
|
|
32
|
+
};
|
|
33
|
+
}, [experienceInstance]);
|
|
34
|
+
|
|
35
|
+
var renderChildren = function renderChildren(innerProps) {
|
|
36
|
+
var containerAri = props.containerAri,
|
|
37
|
+
ari = props.ari;
|
|
38
|
+
return /*#__PURE__*/React.createElement(FabricElementsAnalyticsContext, {
|
|
39
|
+
data: {
|
|
40
|
+
containerAri: containerAri,
|
|
41
|
+
ari: ari
|
|
42
|
+
}
|
|
43
|
+
}, /*#__PURE__*/React.createElement(Reactions, _extends({
|
|
44
|
+
key: "".concat(props.containerAri, "|").concat(props.ari)
|
|
45
|
+
}, props, innerProps)));
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
var stateMapper = function stateMapper(state) {
|
|
49
|
+
var containerAri = props.containerAri,
|
|
50
|
+
ari = props.ari;
|
|
51
|
+
var reactionsState = state && state.reactions["".concat(containerAri, "|").concat(ari)];
|
|
52
|
+
|
|
53
|
+
if (!state || !reactionsState) {
|
|
54
|
+
return {
|
|
55
|
+
status: ReactionStatus.notLoaded,
|
|
56
|
+
reactions: []
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
switch (reactionsState.status) {
|
|
61
|
+
case ReactionStatus.ready:
|
|
62
|
+
return {
|
|
63
|
+
reactions: reactionsState.reactions,
|
|
64
|
+
status: reactionsState.status,
|
|
65
|
+
flash: state.flash["".concat(containerAri, "|").concat(ari)]
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
case ReactionStatus.error:
|
|
69
|
+
return {
|
|
70
|
+
status: ReactionStatus.error,
|
|
71
|
+
reactions: []
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
default:
|
|
75
|
+
return {
|
|
76
|
+
status: ReactionStatus.loading,
|
|
77
|
+
reactions: []
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
var actionsMapper = function actionsMapper(actions) {
|
|
83
|
+
return {
|
|
84
|
+
loadReaction: function loadReaction() {
|
|
85
|
+
actions.getReactions(props.containerAri, props.ari);
|
|
86
|
+
},
|
|
87
|
+
onReactionClick: function onReactionClick(emojiId) {
|
|
88
|
+
actions.toggleReaction(props.containerAri, props.ari, emojiId);
|
|
89
|
+
},
|
|
90
|
+
onReactionHover: function onReactionHover(emojiId) {
|
|
91
|
+
actions.getDetailedReaction(props.containerAri, props.ari, emojiId);
|
|
92
|
+
},
|
|
93
|
+
onSelection: function onSelection(emojiId) {
|
|
94
|
+
actions.addReaction(props.containerAri, props.ari, emojiId);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
return /*#__PURE__*/React.createElement(UfoErrorBoundary, {
|
|
100
|
+
experiences: experienceInstance.current ? [experienceInstance.current] : []
|
|
101
|
+
}, /*#__PURE__*/React.createElement(ReactionConsumer, {
|
|
102
|
+
store: props.store,
|
|
103
|
+
actionsMapper: actionsMapper,
|
|
104
|
+
stateMapper: stateMapper
|
|
105
|
+
}, renderChildren));
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export var ConnectedReactionsView = withAnalyticsEvents()(ReactionsView);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { ConnectedReactionPicker } from './ConnectedReactionPicker';
|
|
2
|
+
export { ConnectedReactionsView } from './ConnectedReactionsView';
|
package/dist/esm/i18n/cs.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* NOTE:
|
|
3
3
|
*
|
|
4
|
-
* This file is automatically generated by
|
|
4
|
+
* This file is automatically generated by Traduki 2.0.
|
|
5
5
|
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
6
|
*/
|
|
7
|
-
//
|
|
7
|
+
//Czech
|
|
8
8
|
export default {
|
|
9
9
|
'fabric.reactions.error.unexpected': 'Něco se pokazilo',
|
|
10
10
|
'fabric.reactions.loading': 'Načítání...',
|
|
11
|
-
'fabric.reactions.more.emoji': 'Více emoji'
|
|
11
|
+
'fabric.reactions.more.emoji': 'Více emoji',
|
|
12
|
+
'fabric.reactions.other.reacted.users': '{count, plural, one {a jeden další} few {a {count} další} many {a {count} dalšího} other {a {count} dalších}}'
|
|
12
13
|
};
|
package/dist/esm/i18n/da.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* NOTE:
|
|
3
3
|
*
|
|
4
|
-
* This file is automatically generated by
|
|
4
|
+
* This file is automatically generated by Traduki 2.0.
|
|
5
5
|
* DO NOT CHANGE IT BY HAND or your changes will be lost.
|
|
6
6
|
*/
|
|
7
|
-
//
|
|
7
|
+
//Danish (Denmark)
|
|
8
8
|
export default {
|
|
9
9
|
'fabric.reactions.error.unexpected': 'Noget gik galt',
|
|
10
10
|
'fabric.reactions.loading': 'Indlæser ...',
|
|
11
|
-
'fabric.reactions.more.emoji': 'Flere emoji'
|
|
11
|
+
'fabric.reactions.more.emoji': 'Flere emoji',
|
|
12
|
+
'fabric.reactions.other.reacted.users': '{count, plural, one {og én anden} other {og {count} andre}}'
|
|
12
13
|
};
|