@atlaskit/share 2.0.1 → 3.0.3

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.
Files changed (108) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/cjs/clients/ShareServiceClient.js +1 -7
  3. package/dist/cjs/components/CommentField.js +5 -4
  4. package/dist/cjs/components/CopyLinkButton.js +11 -10
  5. package/dist/cjs/components/ErrorBoundary.js +2 -0
  6. package/dist/cjs/components/IntegrationForm.js +7 -2
  7. package/dist/cjs/components/LazyShareForm/LazyShareForm.js +6 -4
  8. package/dist/cjs/components/LazyShareForm/lazy.js +2 -2
  9. package/dist/cjs/components/ShareButton.js +2 -2
  10. package/dist/cjs/components/ShareDialogContainer.js +9 -8
  11. package/dist/cjs/components/ShareDialogWithTrigger.js +12 -10
  12. package/dist/cjs/components/ShareForm.js +28 -9
  13. package/dist/cjs/components/ShareFormWrapper/ShareFormWrapper.js +2 -2
  14. package/dist/cjs/components/UserPickerField.js +8 -7
  15. package/dist/cjs/components/utils.js +2 -5
  16. package/dist/cjs/i18n/cs.js +1 -0
  17. package/dist/cjs/i18n/de.js +1 -0
  18. package/dist/cjs/i18n/fr.js +1 -0
  19. package/dist/cjs/i18n/pl.js +1 -0
  20. package/dist/cjs/i18n/pt_BR.js +1 -0
  21. package/dist/cjs/i18n/ru.js +1 -0
  22. package/dist/cjs/i18n/tr.js +1 -0
  23. package/dist/cjs/i18n/vi.js +1 -0
  24. package/dist/cjs/i18n/zh_TW.js +1 -0
  25. package/dist/cjs/types/ShareEntities.js +10 -1
  26. package/dist/cjs/types/index.js +9 -1
  27. package/dist/cjs/util/i18n-util.js +3 -0
  28. package/dist/cjs/version.json +1 -1
  29. package/dist/es2019/clients/ShareServiceClient.js +1 -7
  30. package/dist/es2019/components/CommentField.js +3 -2
  31. package/dist/es2019/components/CopyLinkButton.js +6 -5
  32. package/dist/es2019/components/ErrorBoundary.js +2 -0
  33. package/dist/es2019/components/IntegrationForm.js +4 -2
  34. package/dist/es2019/components/LazyShareForm/LazyShareForm.js +5 -3
  35. package/dist/es2019/components/LazyShareForm/lazy.js +2 -2
  36. package/dist/es2019/components/MessagesIntlProvider.js +1 -1
  37. package/dist/es2019/components/ShareButton.js +1 -1
  38. package/dist/es2019/components/ShareDialogContainer.js +6 -5
  39. package/dist/es2019/components/ShareDialogWithTrigger.js +11 -7
  40. package/dist/es2019/components/ShareForm.js +23 -6
  41. package/dist/es2019/components/ShareFormWrapper/ShareFormWrapper.js +1 -1
  42. package/dist/es2019/components/UserPickerField.js +5 -4
  43. package/dist/es2019/components/utils.js +1 -3
  44. package/dist/es2019/i18n/cs.js +1 -0
  45. package/dist/es2019/i18n/de.js +1 -0
  46. package/dist/es2019/i18n/fr.js +1 -0
  47. package/dist/es2019/i18n/pl.js +1 -0
  48. package/dist/es2019/i18n/pt_BR.js +1 -0
  49. package/dist/es2019/i18n/ru.js +1 -0
  50. package/dist/es2019/i18n/tr.js +1 -0
  51. package/dist/es2019/i18n/vi.js +1 -0
  52. package/dist/es2019/i18n/zh_TW.js +1 -0
  53. package/dist/es2019/types/ShareEntities.js +7 -1
  54. package/dist/es2019/types/index.js +2 -1
  55. package/dist/es2019/util/i18n-util.js +3 -0
  56. package/dist/es2019/version.json +1 -1
  57. package/dist/esm/clients/ShareServiceClient.js +1 -7
  58. package/dist/esm/components/CommentField.js +3 -2
  59. package/dist/esm/components/CopyLinkButton.js +6 -5
  60. package/dist/esm/components/ErrorBoundary.js +2 -0
  61. package/dist/esm/components/IntegrationForm.js +7 -2
  62. package/dist/esm/components/LazyShareForm/LazyShareForm.js +5 -3
  63. package/dist/esm/components/LazyShareForm/lazy.js +2 -2
  64. package/dist/esm/components/MessagesIntlProvider.js +1 -1
  65. package/dist/esm/components/ShareButton.js +1 -1
  66. package/dist/esm/components/ShareDialogContainer.js +6 -5
  67. package/dist/esm/components/ShareDialogWithTrigger.js +11 -7
  68. package/dist/esm/components/ShareForm.js +25 -5
  69. package/dist/esm/components/ShareFormWrapper/ShareFormWrapper.js +1 -1
  70. package/dist/esm/components/UserPickerField.js +5 -4
  71. package/dist/esm/components/utils.js +1 -3
  72. package/dist/esm/i18n/cs.js +1 -0
  73. package/dist/esm/i18n/de.js +1 -0
  74. package/dist/esm/i18n/fr.js +1 -0
  75. package/dist/esm/i18n/pl.js +1 -0
  76. package/dist/esm/i18n/pt_BR.js +1 -0
  77. package/dist/esm/i18n/ru.js +1 -0
  78. package/dist/esm/i18n/tr.js +1 -0
  79. package/dist/esm/i18n/vi.js +1 -0
  80. package/dist/esm/i18n/zh_TW.js +1 -0
  81. package/dist/esm/types/ShareEntities.js +7 -1
  82. package/dist/esm/types/index.js +2 -1
  83. package/dist/esm/util/i18n-util.js +3 -0
  84. package/dist/esm/version.json +1 -1
  85. package/dist/types/clients/ShareServiceClient.d.ts +2 -2
  86. package/dist/types/components/CopyLinkButton.d.ts +1 -1
  87. package/dist/types/components/IntegrationForm.d.ts +2 -1
  88. package/dist/types/components/LazyShareForm/LazyShareForm.d.ts +1 -1
  89. package/dist/types/components/ShareButton.d.ts +1 -1
  90. package/dist/types/components/ShareDialogContainer.d.ts +3 -4
  91. package/dist/types/components/ShareDialogWithTrigger.d.ts +2 -2
  92. package/dist/types/components/ShareForm.d.ts +4 -1
  93. package/dist/types/components/UserPickerField.d.ts +1 -1
  94. package/dist/types/i18n/cs.d.ts +1 -0
  95. package/dist/types/i18n/de.d.ts +1 -0
  96. package/dist/types/i18n/fr.d.ts +1 -0
  97. package/dist/types/i18n/pl.d.ts +1 -0
  98. package/dist/types/i18n/pt_BR.d.ts +1 -0
  99. package/dist/types/i18n/ru.d.ts +1 -0
  100. package/dist/types/i18n/tr.d.ts +1 -0
  101. package/dist/types/i18n/vi.d.ts +1 -0
  102. package/dist/types/i18n/zh_TW.d.ts +1 -0
  103. package/dist/types/types/ShareDialogContainer.d.ts +4 -9
  104. package/dist/types/types/ShareEntities.d.ts +5 -0
  105. package/dist/types/types/ShareForm.d.ts +2 -2
  106. package/dist/types/types/index.d.ts +1 -0
  107. package/docs/0-intro.tsx +4 -4
  108. package/package.json +23 -2
@@ -7,6 +7,9 @@ exports.getMessagesForLocale = void 0;
7
7
 
8
8
  var _index = require("../i18n/index");
9
9
 
10
+ // Cannot import from `../i18n` because there is `../i18n.tsx` file there.
11
+
12
+ /* eslint-disable @atlassian/tangerine/import/no-dangling-index */
10
13
  var localesMessagesMap = {
11
14
  cs: _index.cs,
12
15
  da: _index.da,
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@atlaskit/share",
3
- "version": "2.0.1"
3
+ "version": "3.0.3"
4
4
  }
@@ -10,13 +10,7 @@ export class ShareServiceClient {
10
10
  };
11
11
  }
12
12
 
13
- getConfig(cloudId, enableEmailPermissionCheck) {
14
- if (!enableEmailPermissionCheck) {
15
- return Promise.resolve({
16
- disableSharingToEmails: false
17
- });
18
- }
19
-
13
+ getConfig(cloudId) {
20
14
  const options = {
21
15
  path: SHARE_CONFIG_PATH,
22
16
  queryParams: {
@@ -1,8 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import { useIntl } from 'react-intl-next'; // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
4
+
2
5
  import FieldTextArea from '@atlaskit/field-text-area';
3
6
  import { Field } from '@atlaskit/form';
4
- import React from 'react';
5
- import { useIntl } from 'react-intl-next';
6
7
  import { messages } from '../i18n';
7
8
  export const CommentField = ({
8
9
  defaultValue
@@ -1,18 +1,18 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import React from 'react';
4
+ import { isSafari } from 'react-device-detect';
5
+ import { FormattedMessage, injectIntl } from 'react-intl-next';
6
+ import styled from 'styled-components';
3
7
  import CheckCircleIcon from '@atlaskit/icon/glyph/check-circle';
4
8
  import LinkFilledIcon from '@atlaskit/icon/glyph/link-filled';
5
9
  import Popup from '@atlaskit/popup';
6
10
  import { G300 } from '@atlaskit/theme/colors';
7
11
  import { layers } from '@atlaskit/theme/constants';
8
12
  import Tooltip from '@atlaskit/tooltip';
9
- import React from 'react';
10
- import { FormattedMessage, injectIntl } from 'react-intl-next';
11
- import { isSafari } from 'react-device-detect';
12
- import styled from 'styled-components';
13
- import Button from './styles';
14
13
  import { messages } from '../i18n';
15
14
  import { InlineDialogContentWrapper } from './ShareFormWrapper/styled';
15
+ import Button from './styles';
16
16
  const Z_INDEX = layers.modal();
17
17
  const AUTO_DISMISS_SECONDS = 8;
18
18
  export const AUTO_DISMISS_MS = AUTO_DISMISS_SECONDS * 1000;
@@ -36,6 +36,7 @@ export const HiddenInput = /*#__PURE__*/React.forwardRef( // we need a hidden in
36
36
  value: props.text,
37
37
  readOnly: true
38
38
  }));
39
+ // eslint-disable-next-line @repo/internal/react/no-class-components
39
40
  export class CopyLinkButton extends React.Component {
40
41
  constructor(...args) {
41
42
  super(...args);
@@ -3,6 +3,8 @@ import React from 'react';
3
3
  import { withAnalyticsEvents } from '@atlaskit/analytics-next';
4
4
  import { CHANNEL_ID, errorEncountered } from './analytics';
5
5
 
6
+ // ErrorBoundary does not support in functional component
7
+ // eslint-disable-next-line @repo/internal/react/no-class-components
6
8
  class ErrorBoundary extends React.Component {
7
9
  constructor(...args) {
8
10
  super(...args);
@@ -31,7 +31,9 @@ export const FormWrapper = styled.div`
31
31
  `;
32
32
  export const IntegrationForm = ({
33
33
  Content,
34
- onIntegrationClose = () => undefined
34
+ onIntegrationClose = () => undefined,
35
+ changeTab = () => undefined
35
36
  }) => /*#__PURE__*/React.createElement(FormWrapper, null, Content && /*#__PURE__*/React.createElement(Content, {
36
- onClose: onIntegrationClose
37
+ onClose: onIntegrationClose,
38
+ changeTab: changeTab
37
39
  }));
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { AnalyticsContext } from '@atlaskit/analytics-next';
3
- import { ShareForm } from '../ShareForm';
4
3
  import { ANALYTICS_SOURCE } from '../analytics';
5
4
  import { IntegrationForm } from '../IntegrationForm';
6
- import { BottomMessageWrapper, CustomFooterWrapper } from './styled';
5
+ import { ShareForm } from '../ShareForm';
7
6
  import { ShareFormWrapper } from '../ShareFormWrapper';
7
+ import { BottomMessageWrapper, CustomFooterWrapper } from './styled';
8
8
 
9
9
  /**
10
10
  * A Share form content which is lazy-loaded.
@@ -36,6 +36,7 @@ function LazyShareForm(props) {
36
36
  onDismiss,
37
37
  onSubmit,
38
38
  onDialogClose,
39
+ onTabChange,
39
40
  // ref
40
41
  selectPortalRef,
41
42
  // props from states of parent:
@@ -85,7 +86,8 @@ function LazyShareForm(props) {
85
86
  onDismiss: onDismiss,
86
87
  onLinkCopy: onLinkCopy,
87
88
  onUserSelectionChange: onUserSelectionChange,
88
- handleCloseDialog: onDialogClose
89
+ handleCloseDialog: onDialogClose,
90
+ onTabChange: onTabChange
89
91
  })));
90
92
  }
91
93
 
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { LazySuspense, lazyForPaint } from 'react-loosely-lazy';
2
+ import { lazyForPaint, LazySuspense } from 'react-loosely-lazy';
3
3
  import Spinner from '@atlaskit/spinner';
4
- import { SpinnerWrapper } from './styled';
5
4
  import { ShareFormWrapper } from '../ShareFormWrapper';
5
+ import { SpinnerWrapper } from './styled';
6
6
  const LazyShareFormLazy = lazyForPaint(() => import(
7
7
  /* webpackChunkName: "@atlaskit-internal_share-form" */
8
8
  './LazyShareForm'), {
@@ -1,5 +1,5 @@
1
1
  import React, { useMemo } from 'react';
2
- import { IntlProvider, injectIntl } from 'react-intl-next';
2
+ import { injectIntl, IntlProvider } from 'react-intl-next';
3
3
  import { getMessagesForLocale } from '../util/i18n-util';
4
4
 
5
5
  const MessagesIntlProvider = ({
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import Button from '@atlaskit/button/custom-theme-button';
3
2
  import React from 'react';
3
+ import Button from '@atlaskit/button/custom-theme-button';
4
4
  export const ShareButton = /*#__PURE__*/React.forwardRef(function ShareButton({
5
5
  text,
6
6
  ...props
@@ -1,18 +1,18 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import { withAnalyticsEvents } from '@atlaskit/analytics-next';
3
- import memoizeOne from 'memoize-one';
4
2
  import React from 'react';
3
+ import deepEqual from 'fast-deep-equal';
4
+ import memoizeOne from 'memoize-one';
5
5
  import { FormattedMessage } from 'react-intl-next';
6
6
  import assert from 'tiny-invariant';
7
+ import { withAnalyticsEvents } from '@atlaskit/analytics-next';
7
8
  import { AtlassianUrlShortenerClient } from '../clients/AtlassianUrlShortenerClient';
8
9
  import { ShareServiceClient } from '../clients/ShareServiceClient';
9
10
  import { messages } from '../i18n';
10
11
  import { CHANNEL_ID, copyLinkButtonClicked, errorEncountered, shortUrlGenerated, shortUrlRequested } from './analytics';
12
+ import ErrorBoundary from './ErrorBoundary';
11
13
  import MessagesIntlProvider from './MessagesIntlProvider';
12
14
  import { ShareDialogWithTrigger } from './ShareDialogWithTrigger';
13
15
  import { optionDataToUsers } from './utils';
14
- import ErrorBoundary from './ErrorBoundary';
15
- import deepEqual from 'fast-deep-equal';
16
16
  const COPY_LINK_EVENT = copyLinkButtonClicked(0);
17
17
  export const defaultConfig = {
18
18
  disableSharingToEmails: false
@@ -26,6 +26,7 @@ function getCurrentPageUrl() {
26
26
  * This component serves as a Provider to provide customizable implementations
27
27
  * to ShareDialogTrigger component
28
28
  */
29
+ // eslint-disable-next-line @repo/internal/react/no-class-components
29
30
 
30
31
 
31
32
  export class ShareDialogContainerInternal extends React.Component {
@@ -53,7 +54,7 @@ export class ShareDialogContainerInternal extends React.Component {
53
54
  isFetchingConfig: true
54
55
  }, async () => {
55
56
  try {
56
- const config = await this.shareClient.getConfig(this.props.cloudId, this.props.enableEmailPermissionCheck);
57
+ const config = await this.shareClient.getConfig(this.props.cloudId);
57
58
 
58
59
  if (this._isMounted) {
59
60
  this.setState({
@@ -1,21 +1,23 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import React from 'react';
4
+ import { FormattedMessage, injectIntl } from 'react-intl-next';
5
+ import styled from 'styled-components';
4
6
  import { withAnalyticsEvents } from '@atlaskit/analytics-next';
5
- import SplitButton from './SplitButton';
6
7
  import ShareIcon from '@atlaskit/icon/glyph/share';
7
8
  import Popup from '@atlaskit/popup';
8
9
  import Portal from '@atlaskit/portal';
9
- import Aktooltip from '@atlaskit/tooltip';
10
10
  import { layers } from '@atlaskit/theme/constants';
11
- import { FormattedMessage, injectIntl } from 'react-intl-next';
12
- import styled from 'styled-components';
11
+ import Aktooltip from '@atlaskit/tooltip';
13
12
  import { messages } from '../i18n';
14
13
  import { OBJECT_SHARED } from '../types';
15
- import { cancelShare, CHANNEL_ID, copyLinkButtonClicked, screenEvent, shareTriggerButtonClicked, shareSplitButtonEvent, shareTabClicked, formShareSubmitted } from './analytics';
14
+ import { cancelShare, CHANNEL_ID, copyLinkButtonClicked, formShareSubmitted, screenEvent, shareSplitButtonEvent, shareTabClicked, shareTriggerButtonClicked // type TabSubjectIdType,
15
+ } from './analytics'; // eslint-disable-next-line no-duplicate-imports
16
+
17
+ import LazyShareFormLazy from './LazyShareForm/lazy';
16
18
  import ShareButton from './ShareButton';
19
+ import SplitButton from './SplitButton';
17
20
  import { generateSelectZIndex } from './utils';
18
- import LazyShareFormLazy from './LazyShareForm/lazy';
19
21
  const ShareButtonWrapper = styled.div`
20
22
  display: inline-flex;
21
23
  outline: none;
@@ -27,6 +29,7 @@ export const defaultShareContentState = {
27
29
  value: ''
28
30
  }
29
31
  };
32
+ // eslint-disable-next-line @repo/internal/react/no-class-components
30
33
  export class ShareDialogWithTriggerInternal extends React.PureComponent {
31
34
  constructor(...args) {
32
35
  super(...args);
@@ -308,9 +311,10 @@ export class ShareDialogWithTriggerInternal extends React.PureComponent {
308
311
  button = /*#__PURE__*/React.createElement(ShareButton, _extends({
309
312
  appearance: triggerButtonAppearance,
310
313
  text: triggerButtonStyle !== 'icon-only' ? /*#__PURE__*/React.createElement(FormattedMessage, messages.shareTriggerButtonText) : null,
314
+ "aria-label": formatMessage(messages.shareTriggerButtonText),
311
315
  onClick: this.onTriggerClick,
312
316
  iconBefore: triggerButtonStyle !== 'text-only' ? /*#__PURE__*/React.createElement(ShareButtonIcon, {
313
- label: formatMessage(messages.shareTriggerButtonIconLabel)
317
+ label: ""
314
318
  }) : undefined,
315
319
  isSelected: isDialogOpen,
316
320
  isDisabled: isDisabled
@@ -1,21 +1,22 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
3
  import React from 'react';
4
+ import { FormattedMessage, injectIntl } from 'react-intl-next';
5
+ import styled from 'styled-components';
4
6
  import Button from '@atlaskit/button/custom-theme-button';
5
7
  import Form from '@atlaskit/form';
6
8
  import ErrorIcon from '@atlaskit/icon/glyph/error';
9
+ import Tabs, { Tab, TabList, TabPanel } from '@atlaskit/tabs';
7
10
  import { R400 } from '@atlaskit/theme/colors';
8
11
  import { gridSize } from '@atlaskit/theme/constants';
9
12
  import Tooltip from '@atlaskit/tooltip';
10
- import Tabs, { Tab, TabList, TabPanel } from '@atlaskit/tabs';
11
- import { FormattedMessage, injectIntl } from 'react-intl-next';
12
- import styled from 'styled-components';
13
13
  import { messages } from '../i18n';
14
+ import { TabType } from '../types';
14
15
  import { CommentField } from './CommentField';
15
16
  import CopyLinkButton from './CopyLinkButton';
17
+ import { IntegrationForm } from './IntegrationForm';
16
18
  import { ShareHeader } from './ShareHeader';
17
19
  import { UserPickerField } from './UserPickerField';
18
- import { IntegrationForm } from './IntegrationForm';
19
20
  const SubmitButtonWrapper = styled.div`
20
21
  display: flex;
21
22
  margin-left: auto;
@@ -60,10 +61,15 @@ const integrationTabText = integrationName => /*#__PURE__*/React.createElement(F
60
61
  }
61
62
  }));
62
63
 
64
+ // eslint-disable-next-line @repo/internal/react/no-class-components
63
65
  class InternalForm extends React.PureComponent {
64
66
  constructor(...args) {
65
67
  super(...args);
66
68
 
69
+ _defineProperty(this, "state", {
70
+ selectedTab: TabType.default
71
+ });
72
+
67
73
  _defineProperty(this, "renderShareForm", () => {
68
74
  const {
69
75
  formProps,
@@ -164,6 +170,12 @@ class InternalForm extends React.PureComponent {
164
170
  };
165
171
  return /*#__PURE__*/React.createElement(FormattedMessage, productShareType);
166
172
  });
173
+
174
+ _defineProperty(this, "changeTab", tab => {
175
+ this.setState({
176
+ selectedTab: tab
177
+ });
178
+ });
167
179
  }
168
180
 
169
181
  componentWillUnmount() {
@@ -195,8 +207,10 @@ class InternalForm extends React.PureComponent {
195
207
  return /*#__PURE__*/React.createElement(Tabs, {
196
208
  id: "ShareForm-Tabs-Integrations",
197
209
  onChange: index => {
210
+ this.changeTab(index);
198
211
  onTabChange === null || onTabChange === void 0 ? void 0 : onTabChange(index);
199
- }
212
+ },
213
+ selected: this.state.selectedTab
200
214
  }, /*#__PURE__*/React.createElement(TabList, null, /*#__PURE__*/React.createElement(Tab, {
201
215
  key: `share-tab-default`
202
216
  }, this.renderMainTabTitle()), /*#__PURE__*/React.createElement(Tab, {
@@ -211,7 +225,10 @@ class InternalForm extends React.PureComponent {
211
225
  isMainShare: false
212
226
  }, /*#__PURE__*/React.createElement(IntegrationForm, {
213
227
  Content: firstIntegration.Content,
214
- onIntegrationClose: () => handleCloseDialog === null || handleCloseDialog === void 0 ? void 0 : handleCloseDialog()
228
+ onIntegrationClose: () => handleCloseDialog === null || handleCloseDialog === void 0 ? void 0 : handleCloseDialog(),
229
+ changeTab: index => {
230
+ this.changeTab(index);
231
+ }
215
232
  }))));
216
233
  }
217
234
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { InlineDialogFormWrapper, InlineDialogContentWrapper } from './styled';
3
2
  import { ShareHeader } from '../ShareHeader';
3
+ import { InlineDialogContentWrapper, InlineDialogFormWrapper } from './styled';
4
4
 
5
5
  const ShareFormWrapper = ({
6
6
  shareFormTitle,
@@ -1,12 +1,12 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
+ import React from 'react';
4
+ import { FormattedMessage, injectIntl } from 'react-intl-next';
3
5
  import { ErrorMessage, Field, HelperMessage } from '@atlaskit/form';
4
6
  import UserPicker, { isValidEmail, SmartUserPicker } from '@atlaskit/user-picker';
5
- import React from 'react';
6
- import { injectIntl, FormattedMessage } from 'react-intl-next';
7
7
  import { messages } from '../i18n';
8
- import { allowEmails, getMenuPortalTargetCurrentHTML } from './utils';
9
8
  import { MAX_PICKER_HEIGHT } from './styles';
9
+ import { allowEmails, getMenuPortalTargetCurrentHTML } from './utils';
10
10
  export const REQUIRED = 'REQUIRED';
11
11
  const DEBOUNCE_MS = 150;
12
12
 
@@ -58,7 +58,8 @@ const requiredMessagesWithoutEmail = {
58
58
  const getRequiredMessage = (product, allowEmail) => {
59
59
  const messages = allowEmail ? requiredMessagesWithEmail : requiredMessagesWithoutEmail;
60
60
  return messages[product];
61
- };
61
+ }; // eslint-disable-next-line @repo/internal/react/no-class-components
62
+
62
63
 
63
64
  export class UserPickerFieldComponent extends React.Component {
64
65
  constructor(...args) {
@@ -1,6 +1,4 @@
1
- // AFP-2532 TODO: Fix automatic suppressions below
2
- // eslint-disable-next-line @atlassian/tangerine/import/entry-points
3
- import { layers } from '@atlaskit/theme';
1
+ import { layers } from '@atlaskit/theme/constants';
4
2
 
5
3
  /**
6
4
  * We need to generate correct zIndex, for the PopUp and for the Select inside it.
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Vyberte alespoň jednoho uživatele, skupinu nebo tým.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Vyberte alespoň jednoho uživatele, tým nebo e-mail.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Vyberte alespoň jednoho uživatele nebo tým.',
34
+ 'fabric.elements.share.in.integration.button': 'Sdílet v: {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Příspěvek na blogu je sdílen} board {Board je sdílen} calendar {Kalendář je sdílen} draft {Koncept je sdílen} filter {Filtr je sdílen} issue {Požadavek je sdílen} media {Multimediální soubor je sdílen} page {Stránka je sdílena} project {Projekt je sdílen} pullrequest {Pull request je sdílen} question {Otázka je sdílena} report {Sestava je sdílena} repository {Repozitář je sdílen} request {Žádost je sdílena} roadmap {Plán je sdílen} site {Web je sdílen} space {Prostor je sdílen} other {Odkaz je sdílen}}',
35
36
  'fabric.elements.share.to.integration.button': 'Sdílet ve službě {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Ikona sdílení',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Wählen Sie mindestens einen Benutzer, eine Gruppe oder ein Team aus.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Bitte wählen Sie mindestens einen Benutzer, ein Team oder eine E-Mail-Adresse aus.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Wählen Sie mindestens einen Benutzer oder ein Team aus.',
34
+ 'fabric.elements.share.in.integration.button': 'In {integrationName} teilen',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Geteilter Blogpost} board {Geteiltes Board} calendar {Geteilter Kalender} draft {Geteilter Entwurf} filter {Geteilter Filter} issue {Geteilter Vorgang} media {Geteilte Medien} page {Geteilte Seite} project {Geteiltes Projekt} pullrequest {Geteilte Pull-Anfrage} question {Geteilte Frage} report {Geteilter Bericht} repository {Geteiltes Repository} request {Geteilte Anfrage} roadmap {Geteilte Roadmap} site {Geteilte Site} space {Geteilter Bereich} other {Geteilter Link}}',
35
36
  'fabric.elements.share.to.integration.button': 'Mit {integrationName} teilen',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Teilen-Symbol',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Sélectionnez au moins un utilisateur, un groupe ou une équipe.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Sélectionnez au moins un utilisateur, une équipe ou une adresse e-mail.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Sélectionnez au moins un utilisateur ou une équipe.',
34
+ 'fabric.elements.share.in.integration.button': 'Partager dans {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Billet de blog partagé} board {Tableau partagé} calendar {Calendrier partagé} draft {Brouillon partagé} filter {Filtre partagé} issue {Ticket partagé} media {Support partagé} page {Page partagée} project {Projet partagé} pullrequest {Pull request partagée} question {Question partagée} report {Rapport partagé} repository {Dépôt partagé} request {Demande partagée} roadmap {Feuille de route partagée} site {Site partagé} space {Espace partagé} other {Lien partagé}}',
35
36
  'fabric.elements.share.to.integration.button': 'Partager avec {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Icône de partage',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Wybierz co najmniej jednego użytkownika, jedną grupę lub jeden zespół.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Wybierz co najmniej jednego użytkownika, jeden zespół lub adres e-mail.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Wybierz co najmniej jednego użytkownika lub jeden zespół.',
34
+ 'fabric.elements.share.in.integration.button': 'Udostępnij w {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Udostępniono wpis na blogu} board {Udostępniono tablicę} calendar {Udostępniono kalendarz} draft {Udostępniono wersję roboczą} filter {Udostępniono filtr} issue {Udostępniono zgłoszenie} media {Udostępniono media} page {Udostępniono stronę} project {Udostępniono projekt} pullrequest {Udostępniono pull request} question {Udostępniono pytanie} report {Udostępniono raport} repository {Udostępniono repozytorium} request {Udostępniono wniosek} roadmap {Udostępniono harmonogram} site {Udostępniono witrynę} space {Udostępniono przestrzeń} other {Udostępniono łącze}}',
35
36
  'fabric.elements.share.to.integration.button': 'Udostępnij w {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Ikona udostępniania',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Selecione pelo menos um usuário, grupo ou equipe.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Selecione pelo menos um usuário, equipe ou e-mail.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Selecione pelo menos um usuário ou equipe.',
34
+ 'fabric.elements.share.in.integration.button': 'Compartilhar em {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Postagem de blog compartilhada} board {Painel compartilhado} calendar {Calendário compartilhado} draft {Rascunho compartilhado} filter {Filtro compartilhado} issue {Item compartilhado} media {Mídia compartilhada} page {Página compartilhada} project {Projeto compartilhado} pullrequest {Solicitação pull compartilhada} question {Pergunta compartilhada} report {Relatório compartilhado} repository {Repositório compartilhado} request {Solicitação compartilhada} roadmap {Roteiro compartilhado} site {Site compartilhado} space {Espaço compartilhado} other {Link compartilhado}}',
35
36
  'fabric.elements.share.to.integration.button': 'Compartilhar em {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Ícone de compartilhamento',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Выберите хотя бы 1 пользователя, группу или команду.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Выберите хотя бы 1 пользователя, команду или адрес эл. почты.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Выберите хотя бы 1 пользователя или команду.',
34
+ 'fabric.elements.share.in.integration.button': 'Поделиться в {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Вы поделились записью в блоге} board {Вы поделились доской} calendar {Вы поделились календарем} draft {Вы поделились черновиком} filter {Вы поделились фильтром} issue {Вы поделились задачей} media {Вы поделились объектом мультимедиа} page {Вы поделились страницей} project {Вы поделились проектом} pullrequest {Вы поделились запросом pull} question {Вы поделились вопросом} report {Вы поделились отчетом} repository {Вы поделились репозиторием} request {Вы поделились запросом} roadmap {Вы поделились дорожной картой} site {Вы поделились сайтом} space {Вы поделились разделом} other {Вы поделились ссылкой}}',
35
36
  'fabric.elements.share.to.integration.button': 'Поделиться в {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Значок «Поделиться»',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'En az bir kullanıcı, grup veya takım seçin.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'En az bir kullanıcı, takım veya e-posta adresi seçin.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'En az bir kullanıcı veya takım seçin.',
34
+ 'fabric.elements.share.in.integration.button': '{integrationName} içinde paylaş',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Blog gönderisi paylaşıldı} board {Pano paylaşıldı} calendar {Takvim paylaşıldı} draft {Taslak paylaşıldı} filter {Filtre paylaşıldı} issue {Konu paylaşıldı} media {Medya paylaşıldı} page {Sayfa paylaşıldı} project {Proje paylaşıldı} pullrequest {Çekme İsteği paylaşıldı} question {Soru paylaşıldı} report {Rapor paylaşıldı} repository {Depo paylaşıldı} request {Talep paylaşıldı} roadmap {Yol haritası paylaşıldı} site {Site paylaşıldı} space {Alan paylaşıldı} other {Bağlantı paylaşıldı}}',
35
36
  'fabric.elements.share.to.integration.button': '{integrationName} üzerinden paylaş',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Paylaşma simgesi',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Chọn ít nhất một người dùng, nhóm hoặc đội ngũ.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Chọn ít nhất một người dùng, nhóm hoặc email.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Chọn ít nhất một người dùng hoặc đội ngũ.',
34
+ 'fabric.elements.share.in.integration.button': 'Chia sẻ trong {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Đã chia sẻ bài đăng} board {Đã chia sẻ bảng} calendar {Đã chia sẻ lịch} draft {Đã chia sẻ bản nháp} filter {Đã chia sẻ bộ lọc} issue {Đã chia sẻ vấn đề} media {Đã chia sẻ phương tiện} page {Đã chia sẻ trang} project {Đã chia sẻ dự án} pullrequest {Đã chia sẻ yêu cầu kéo} question {Đã chia sẻ câu hỏi} report {Đã chia sẻ báo cáo} repository {Đã chia sẻ kho lưu trữ} request {Đã chia sẻ yêu cầu} roadmap {Đã chia sẻ lộ trình} site {Đã chia sẻ trang} space {Đã chia sẻ không gian} other {Đã chia sẻ liên kết}}',
35
36
  'fabric.elements.share.to.integration.button': 'Chia sẻ với {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Biểu tượng chia sẻ',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': '至少選取一個使用者、群組或團隊。',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': '請選取至少一個使用者、團隊或電子郵件。',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': '至少選取一個使用者或團隊。',
34
+ 'fabric.elements.share.in.integration.button': '在 {integrationName} 中分享',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {已分享部落格貼文} board {已分享看板} calendar {已分享日曆} draft {已分享草稿} filter {已分享篩選條件} issue {已分享問題} media {已分享媒體} page {已分享頁面} project {已分享專案} pullrequest {已分享提取請求} question {已分享問題} report {已分享報告} repository {已分享存放庫} request {已分享請求} roadmap {已分享藍圖} site {已分享網站} space {已分享空間} other {已分享連結}}',
35
36
  'fabric.elements.share.to.integration.button': '與 {integrationName} 分享',
36
37
  'fabric.elements.share.trigger.button.icon.label': '分享圖示',
@@ -1 +1,7 @@
1
- export {};
1
+ // Third party integrations
2
+ export let TabType;
3
+
4
+ (function (TabType) {
5
+ TabType[TabType["default"] = 0] = "default";
6
+ TabType[TabType["Slack"] = 1] = "Slack";
7
+ })(TabType || (TabType = {}));
@@ -1 +1,2 @@
1
- export { ADMIN_NOTIFIED, OBJECT_SHARED } from './Flag';
1
+ export { ADMIN_NOTIFIED, OBJECT_SHARED } from './Flag';
2
+ export { TabType } from './ShareEntities';
@@ -1,3 +1,6 @@
1
+ // Cannot import from `../i18n` because there is `../i18n.tsx` file there.
2
+
3
+ /* eslint-disable @atlassian/tangerine/import/no-dangling-index */
1
4
  import { cs, da, de, en, en_GB, es, et, fi, fr, hu, is, it, ja, ko, nb, nl, pl, pt_BR, pt_PT, ro, ru, sk, sv, zh } from '../i18n/index';
2
5
  const localesMessagesMap = {
3
6
  cs,
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@atlaskit/share",
3
- "version": "2.0.1"
3
+ "version": "3.0.3"
4
4
  }
@@ -21,13 +21,7 @@ export var ShareServiceClient = /*#__PURE__*/function () {
21
21
 
22
22
  _createClass(ShareServiceClient, [{
23
23
  key: "getConfig",
24
- value: function getConfig(cloudId, enableEmailPermissionCheck) {
25
- if (!enableEmailPermissionCheck) {
26
- return Promise.resolve({
27
- disableSharingToEmails: false
28
- });
29
- }
30
-
24
+ value: function getConfig(cloudId) {
31
25
  var options = {
32
26
  path: SHARE_CONFIG_PATH,
33
27
  queryParams: {
@@ -1,8 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import { useIntl } from 'react-intl-next'; // eslint-disable-next-line @atlaskit/design-system/no-deprecated-imports
4
+
2
5
  import FieldTextArea from '@atlaskit/field-text-area';
3
6
  import { Field } from '@atlaskit/form';
4
- import React from 'react';
5
- import { useIntl } from 'react-intl-next';
6
7
  import { messages } from '../i18n';
7
8
  export var CommentField = function CommentField(_ref) {
8
9
  var defaultValue = _ref.defaultValue;
@@ -14,19 +14,19 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
14
14
 
15
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
16
 
17
+ import React from 'react';
18
+ import { isSafari } from 'react-device-detect';
19
+ import { FormattedMessage, injectIntl } from 'react-intl-next';
20
+ import styled from 'styled-components';
17
21
  import CheckCircleIcon from '@atlaskit/icon/glyph/check-circle';
18
22
  import LinkFilledIcon from '@atlaskit/icon/glyph/link-filled';
19
23
  import Popup from '@atlaskit/popup';
20
24
  import { G300 } from '@atlaskit/theme/colors';
21
25
  import { layers } from '@atlaskit/theme/constants';
22
26
  import Tooltip from '@atlaskit/tooltip';
23
- import React from 'react';
24
- import { FormattedMessage, injectIntl } from 'react-intl-next';
25
- import { isSafari } from 'react-device-detect';
26
- import styled from 'styled-components';
27
- import Button from './styles';
28
27
  import { messages } from '../i18n';
29
28
  import { InlineDialogContentWrapper } from './ShareFormWrapper/styled';
29
+ import Button from './styles';
30
30
  var Z_INDEX = layers.modal();
31
31
  var AUTO_DISMISS_SECONDS = 8;
32
32
  export var AUTO_DISMISS_MS = AUTO_DISMISS_SECONDS * 1000;
@@ -46,6 +46,7 @@ function (props, ref) {
46
46
  readOnly: true
47
47
  });
48
48
  });
49
+ // eslint-disable-next-line @repo/internal/react/no-class-components
49
50
  export var CopyLinkButton = /*#__PURE__*/function (_React$Component) {
50
51
  _inherits(CopyLinkButton, _React$Component);
51
52
 
@@ -14,6 +14,8 @@ import React from 'react';
14
14
  import { withAnalyticsEvents } from '@atlaskit/analytics-next';
15
15
  import { CHANNEL_ID, errorEncountered } from './analytics';
16
16
 
17
+ // ErrorBoundary does not support in functional component
18
+ // eslint-disable-next-line @repo/internal/react/no-class-components
17
19
  var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
18
20
  _inherits(ErrorBoundary, _React$Component);
19
21
 
@@ -11,8 +11,13 @@ export var IntegrationForm = function IntegrationForm(_ref) {
11
11
  _ref$onIntegrationClo = _ref.onIntegrationClose,
12
12
  onIntegrationClose = _ref$onIntegrationClo === void 0 ? function () {
13
13
  return undefined;
14
- } : _ref$onIntegrationClo;
14
+ } : _ref$onIntegrationClo,
15
+ _ref$changeTab = _ref.changeTab,
16
+ changeTab = _ref$changeTab === void 0 ? function () {
17
+ return undefined;
18
+ } : _ref$changeTab;
15
19
  return /*#__PURE__*/React.createElement(FormWrapper, null, Content && /*#__PURE__*/React.createElement(Content, {
16
- onClose: onIntegrationClose
20
+ onClose: onIntegrationClose,
21
+ changeTab: changeTab
17
22
  }));
18
23
  };
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { AnalyticsContext } from '@atlaskit/analytics-next';
3
- import { ShareForm } from '../ShareForm';
4
3
  import { ANALYTICS_SOURCE } from '../analytics';
5
4
  import { IntegrationForm } from '../IntegrationForm';
6
- import { BottomMessageWrapper, CustomFooterWrapper } from './styled';
5
+ import { ShareForm } from '../ShareForm';
7
6
  import { ShareFormWrapper } from '../ShareFormWrapper';
7
+ import { BottomMessageWrapper, CustomFooterWrapper } from './styled';
8
8
 
9
9
  /**
10
10
  * A Share form content which is lazy-loaded.
@@ -34,6 +34,7 @@ function LazyShareForm(props) {
34
34
  onDismiss = props.onDismiss,
35
35
  onSubmit = props.onSubmit,
36
36
  onDialogClose = props.onDialogClose,
37
+ onTabChange = props.onTabChange,
37
38
  selectPortalRef = props.selectPortalRef,
38
39
  showIntegrationForm = props.showIntegrationForm,
39
40
  selectedIntegration = props.selectedIntegration,
@@ -80,7 +81,8 @@ function LazyShareForm(props) {
80
81
  onDismiss: onDismiss,
81
82
  onLinkCopy: onLinkCopy,
82
83
  onUserSelectionChange: onUserSelectionChange,
83
- handleCloseDialog: onDialogClose
84
+ handleCloseDialog: onDialogClose,
85
+ onTabChange: onTabChange
84
86
  })));
85
87
  }
86
88