@atlaskit/share 1.0.1 → 2.0.1

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 (129) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/clients/package.json +7 -0
  3. package/dist/cjs/clients/index.js +13 -0
  4. package/dist/cjs/components/CopyLinkButton.js +15 -11
  5. package/dist/cjs/components/IntegrationForm.js +5 -2
  6. package/dist/cjs/components/LazyShareForm/LazyShareForm.js +105 -0
  7. package/dist/cjs/components/LazyShareForm/index.js +15 -0
  8. package/dist/cjs/components/LazyShareForm/lazy.js +53 -0
  9. package/dist/cjs/components/LazyShareForm/styled.js +28 -0
  10. package/dist/cjs/components/ShareDialogWithTrigger.js +26 -37
  11. package/dist/cjs/components/ShareForm.js +34 -14
  12. package/dist/cjs/components/ShareFormWrapper/ShareFormWrapper.js +29 -0
  13. package/dist/cjs/components/ShareFormWrapper/index.js +15 -0
  14. package/dist/cjs/components/ShareFormWrapper/styled.js +31 -0
  15. package/dist/cjs/components/styles.js +1 -20
  16. package/dist/cjs/i18n/da.js +1 -0
  17. package/dist/cjs/i18n/es.js +1 -0
  18. package/dist/cjs/i18n/fi.js +1 -0
  19. package/dist/cjs/i18n/hu.js +1 -0
  20. package/dist/cjs/i18n/it.js +1 -0
  21. package/dist/cjs/i18n/ja.js +1 -0
  22. package/dist/cjs/i18n/ko.js +1 -0
  23. package/dist/cjs/i18n/nb.js +1 -0
  24. package/dist/cjs/i18n/nl.js +1 -0
  25. package/dist/cjs/i18n/sv.js +1 -0
  26. package/dist/cjs/i18n/th.js +1 -0
  27. package/dist/cjs/i18n/uk.js +1 -0
  28. package/dist/cjs/i18n/zh.js +1 -0
  29. package/dist/cjs/i18n.js +10 -10
  30. package/dist/cjs/index.js +0 -8
  31. package/dist/cjs/types/ShareDialogContainer.js +5 -0
  32. package/dist/cjs/types/ShareForm.js +5 -0
  33. package/dist/cjs/version.json +1 -1
  34. package/dist/es2019/clients/index.js +1 -0
  35. package/dist/es2019/components/CopyLinkButton.js +12 -4
  36. package/dist/es2019/components/IntegrationForm.js +2 -2
  37. package/dist/es2019/components/LazyShareForm/LazyShareForm.js +92 -0
  38. package/dist/es2019/components/LazyShareForm/index.js +1 -0
  39. package/dist/es2019/components/LazyShareForm/lazy.js +26 -0
  40. package/dist/es2019/components/LazyShareForm/styled.js +16 -0
  41. package/dist/es2019/components/ShareDialogWithTrigger.js +27 -38
  42. package/dist/es2019/components/ShareForm.js +26 -8
  43. package/dist/es2019/components/ShareFormWrapper/ShareFormWrapper.js +14 -0
  44. package/dist/es2019/components/ShareFormWrapper/index.js +1 -0
  45. package/dist/es2019/components/ShareFormWrapper/styled.js +15 -0
  46. package/dist/es2019/components/styles.js +1 -15
  47. package/dist/es2019/i18n/da.js +1 -0
  48. package/dist/es2019/i18n/es.js +1 -0
  49. package/dist/es2019/i18n/fi.js +1 -0
  50. package/dist/es2019/i18n/hu.js +1 -0
  51. package/dist/es2019/i18n/it.js +1 -0
  52. package/dist/es2019/i18n/ja.js +1 -0
  53. package/dist/es2019/i18n/ko.js +1 -0
  54. package/dist/es2019/i18n/nb.js +1 -0
  55. package/dist/es2019/i18n/nl.js +1 -0
  56. package/dist/es2019/i18n/sv.js +1 -0
  57. package/dist/es2019/i18n/th.js +1 -0
  58. package/dist/es2019/i18n/uk.js +1 -0
  59. package/dist/es2019/i18n/zh.js +1 -0
  60. package/dist/es2019/i18n.js +10 -10
  61. package/dist/es2019/index.js +0 -1
  62. package/dist/es2019/types/ShareDialogContainer.js +1 -0
  63. package/dist/es2019/types/ShareForm.js +1 -0
  64. package/dist/es2019/version.json +1 -1
  65. package/dist/esm/clients/index.js +1 -0
  66. package/dist/esm/components/CopyLinkButton.js +12 -4
  67. package/dist/esm/components/IntegrationForm.js +5 -2
  68. package/dist/esm/components/LazyShareForm/LazyShareForm.js +87 -0
  69. package/dist/esm/components/LazyShareForm/index.js +1 -0
  70. package/dist/esm/components/LazyShareForm/lazy.js +31 -0
  71. package/dist/esm/components/LazyShareForm/styled.js +9 -0
  72. package/dist/esm/components/ShareDialogWithTrigger.js +28 -34
  73. package/dist/esm/components/ShareForm.js +34 -13
  74. package/dist/esm/components/ShareFormWrapper/ShareFormWrapper.js +17 -0
  75. package/dist/esm/components/ShareFormWrapper/index.js +1 -0
  76. package/dist/esm/components/ShareFormWrapper/styled.js +15 -0
  77. package/dist/esm/components/styles.js +1 -16
  78. package/dist/esm/i18n/da.js +1 -0
  79. package/dist/esm/i18n/es.js +1 -0
  80. package/dist/esm/i18n/fi.js +1 -0
  81. package/dist/esm/i18n/hu.js +1 -0
  82. package/dist/esm/i18n/it.js +1 -0
  83. package/dist/esm/i18n/ja.js +1 -0
  84. package/dist/esm/i18n/ko.js +1 -0
  85. package/dist/esm/i18n/nb.js +1 -0
  86. package/dist/esm/i18n/nl.js +1 -0
  87. package/dist/esm/i18n/sv.js +1 -0
  88. package/dist/esm/i18n/th.js +1 -0
  89. package/dist/esm/i18n/uk.js +1 -0
  90. package/dist/esm/i18n/zh.js +1 -0
  91. package/dist/esm/i18n.js +10 -10
  92. package/dist/esm/index.js +0 -1
  93. package/dist/esm/types/ShareDialogContainer.js +1 -0
  94. package/dist/esm/types/ShareForm.js +1 -0
  95. package/dist/esm/version.json +1 -1
  96. package/dist/types/clients/index.d.ts +2 -0
  97. package/dist/types/components/IntegrationForm.d.ts +4 -5
  98. package/dist/types/components/LazyShareForm/LazyShareForm.d.ts +19 -0
  99. package/dist/types/components/LazyShareForm/index.d.ts +1 -0
  100. package/dist/types/components/LazyShareForm/lazy.d.ts +4 -0
  101. package/dist/types/components/LazyShareForm/styled.d.ts +4 -0
  102. package/dist/types/components/ShareDialogContainer.d.ts +10 -148
  103. package/dist/types/components/ShareDialogWithTrigger.d.ts +10 -71
  104. package/dist/types/components/ShareForm.d.ts +3 -43
  105. package/dist/types/components/ShareFormWrapper/ShareFormWrapper.d.ts +9 -0
  106. package/dist/types/components/ShareFormWrapper/index.d.ts +1 -0
  107. package/dist/types/components/ShareFormWrapper/styled.d.ts +9 -0
  108. package/dist/types/components/styles.d.ts +0 -7
  109. package/dist/types/i18n/da.d.ts +1 -0
  110. package/dist/types/i18n/es.d.ts +1 -0
  111. package/dist/types/i18n/fi.d.ts +1 -0
  112. package/dist/types/i18n/hu.d.ts +1 -0
  113. package/dist/types/i18n/it.d.ts +1 -0
  114. package/dist/types/i18n/ja.d.ts +1 -0
  115. package/dist/types/i18n/ko.d.ts +1 -0
  116. package/dist/types/i18n/nb.d.ts +1 -0
  117. package/dist/types/i18n/nl.d.ts +1 -0
  118. package/dist/types/i18n/sv.d.ts +1 -0
  119. package/dist/types/i18n/th.d.ts +1 -0
  120. package/dist/types/i18n/uk.d.ts +1 -0
  121. package/dist/types/i18n/zh.d.ts +1 -0
  122. package/dist/types/i18n.d.ts +10 -10
  123. package/dist/types/index.d.ts +1 -4
  124. package/dist/types/types/ShareContentState.d.ts +2 -2
  125. package/dist/types/types/ShareDialogContainer.d.ts +147 -0
  126. package/dist/types/types/ShareDialogWithTrigger.d.ts +30 -3
  127. package/dist/types/types/ShareForm.d.ts +31 -0
  128. package/dist/types/types/index.d.ts +4 -2
  129. package/package.json +7 -3
@@ -1,5 +1,6 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
+ import React from 'react';
3
4
  import Button from '@atlaskit/button/custom-theme-button';
4
5
  import Form from '@atlaskit/form';
5
6
  import ErrorIcon from '@atlaskit/icon/glyph/error';
@@ -7,7 +8,6 @@ import { R400 } from '@atlaskit/theme/colors';
7
8
  import { gridSize } from '@atlaskit/theme/constants';
8
9
  import Tooltip from '@atlaskit/tooltip';
9
10
  import Tabs, { Tab, TabList, TabPanel } from '@atlaskit/tabs';
10
- import React from 'react';
11
11
  import { FormattedMessage, injectIntl } from 'react-intl-next';
12
12
  import styled from 'styled-components';
13
13
  import { messages } from '../i18n';
@@ -97,7 +97,7 @@ class InternalForm extends React.PureComponent {
97
97
  defaultValue: defaultValue && defaultValue.users,
98
98
  config: config,
99
99
  isLoading: isFetchingConfig,
100
- product: product,
100
+ product: product || 'confluence',
101
101
  enableSmartUserPicker: enableSmartUserPicker,
102
102
  loggedInAccountId: loggedInAccountId,
103
103
  cloudId: cloudId,
@@ -144,6 +144,26 @@ class InternalForm extends React.PureComponent {
144
144
  isDisabled: isDisabled
145
145
  }, /*#__PURE__*/React.createElement(ButtonLabelWrapper, null, submitButtonLabel || /*#__PURE__*/React.createElement(FormattedMessage, buttonLabel))));
146
146
  });
147
+
148
+ _defineProperty(this, "renderMainTabTitle", () => {
149
+ const {
150
+ title,
151
+ product
152
+ } = this.props;
153
+
154
+ if (title) {
155
+ return title;
156
+ }
157
+
158
+ if (!product) {
159
+ return /*#__PURE__*/React.createElement(FormattedMessage, messages.formTitle);
160
+ }
161
+
162
+ const productShareType = product === 'jira' ? { ...messages.shareMainTabTextJira
163
+ } : { ...messages.shareMainTabTextConfluence
164
+ };
165
+ return /*#__PURE__*/React.createElement(FormattedMessage, productShareType);
166
+ });
147
167
  }
148
168
 
149
169
  componentWillUnmount() {
@@ -159,10 +179,10 @@ class InternalForm extends React.PureComponent {
159
179
 
160
180
  render() {
161
181
  const {
162
- title,
163
182
  integrationMode = 'off',
164
183
  shareIntegrations,
165
- onTabChange
184
+ onTabChange,
185
+ handleCloseDialog
166
186
  } = this.props;
167
187
 
168
188
  if (integrationMode === 'off' || !shareIntegrations || !shareIntegrations.length) {
@@ -179,7 +199,7 @@ class InternalForm extends React.PureComponent {
179
199
  }
180
200
  }, /*#__PURE__*/React.createElement(TabList, null, /*#__PURE__*/React.createElement(Tab, {
181
201
  key: `share-tab-default`
182
- }, title || /*#__PURE__*/React.createElement(FormattedMessage, messages.formTitle)), /*#__PURE__*/React.createElement(Tab, {
202
+ }, this.renderMainTabTitle()), /*#__PURE__*/React.createElement(Tab, {
183
203
  key: `share-tab-${firstIntegration.type}`
184
204
  }, /*#__PURE__*/React.createElement(IntegrationWrapper, null, /*#__PURE__*/React.createElement(IntegrationIconWrapper, null, /*#__PURE__*/React.createElement(firstIntegration.Icon, null)), integrationTabText(firstIntegration.type)))), /*#__PURE__*/React.createElement(TabPanel, {
185
205
  key: `share-tabPanel-default`
@@ -191,9 +211,7 @@ class InternalForm extends React.PureComponent {
191
211
  isMainShare: false
192
212
  }, /*#__PURE__*/React.createElement(IntegrationForm, {
193
213
  Content: firstIntegration.Content,
194
- onIntegrationClose: () => {
195
- return null;
196
- }
214
+ onIntegrationClose: () => handleCloseDialog === null || handleCloseDialog === void 0 ? void 0 : handleCloseDialog()
197
215
  }))));
198
216
  }
199
217
 
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { InlineDialogFormWrapper, InlineDialogContentWrapper } from './styled';
3
+ import { ShareHeader } from '../ShareHeader';
4
+
5
+ const ShareFormWrapper = ({
6
+ shareFormTitle,
7
+ shouldShowTitle,
8
+ children = null,
9
+ footer = null
10
+ }) => /*#__PURE__*/React.createElement(InlineDialogContentWrapper, null, /*#__PURE__*/React.createElement(InlineDialogFormWrapper, null, shouldShowTitle && /*#__PURE__*/React.createElement(ShareHeader, {
11
+ title: shareFormTitle
12
+ }), children), footer);
13
+
14
+ export default ShareFormWrapper;
@@ -0,0 +1 @@
1
+ export { default as ShareFormWrapper } from './ShareFormWrapper';
@@ -0,0 +1,15 @@
1
+ import styled from 'styled-components';
2
+ import { gridSize } from '@atlaskit/theme/constants';
3
+ export const InlineDialogFormWrapper = styled.div`
4
+ width: ${gridSize() * 44}px;
5
+ `;
6
+ /**
7
+ * Apply the same styling, as previous @atlaskit/inline-dialog had,
8
+ * compared to the @atlaskit/popup we are now using.
9
+ *
10
+ * packages/design-system/inline-dialog/src/InlineDialog/styled.ts:20:3
11
+ */
12
+
13
+ export const InlineDialogContentWrapper = styled.div`
14
+ padding: ${gridSize() * 2}px ${gridSize() * 3}px;
15
+ `;
@@ -1,21 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import React from 'react'; // AFP-2532 TODO: Fix automatic suppressions below
3
- // eslint-disable-next-line @atlassian/tangerine/import/entry-points
4
-
5
- import { gridSize } from '@atlaskit/theme/constants';
2
+ import React from 'react';
6
3
  import Button from '@atlaskit/button/custom-theme-button';
7
- import styled from 'styled-components';
8
4
  export const MAX_PICKER_HEIGHT = 102;
9
- /**
10
- * Apply the same styling, as previous @atlaskit/inline-dialog had,
11
- * compared to the @atlaskit/popup we are now using.
12
- *
13
- * packages/design-system/inline-dialog/src/InlineDialog/styled.ts:20:3
14
- */
15
-
16
- export const InlineDialogContentWrapper = styled.div`
17
- padding: ${gridSize() * 2}px ${gridSize() * 3}px;
18
- `;
19
5
  const StyledButton = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(Button, _extends({
20
6
  ref: ref
21
7
  }, props, {
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Vælg mindst én bruger, én gruppe eller ét team.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Vælg mindst én bruger, ét team eller én e-mailadresse.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Vælg mindst én bruger eller ét team.',
34
+ 'fabric.elements.share.in.integration.button': 'Del i {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Blogindlæg blev delt} board {Tavle blev delt} calendar {Kalender blev delt} draft {Kladde blev delt} filter {Filter blev delt} issue {Sag blev delt} media {Medie blev delt} page {Side blev delt} project {Projekt blev delt} pullrequest {Pullanmodning blev delt} question {Spørgsmål blev delt} report {Rapport blev delt} repository {Lager blev delt} request {Anmodning blev delt} roadmap {Oversigt blev delt} site {Side blev delt} space {Område blev delt} other {Link blev delt}}',
35
36
  'fabric.elements.share.to.integration.button': 'Del med {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Del ikon',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Selecciona al menos un usuario, grupo o equipo.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Selecciona al menos un usuario, equipo o correo electrónico.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Selecciona al menos un usuario o equipo.',
34
+ 'fabric.elements.share.in.integration.button': 'Compartir en {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Entrada de blog compartida} board {Tablero compartido} calendar {Calendario compartido} draft {Borrador compartido} filter {Filtro compartido} issue {Incidencia compartida} media {Soportes compartidos} page {Página compartida} project {Proyecto compartido} pullrequest {Solicitud de extracción compartida} question {Pregunta compartida} report {Informe compartido} repository {Repositorio compartido} request {Solicitud compartida} roadmap {Hoja de ruta compartida} site {Sitio compartido} space {Espacio compartido} other {Enlace compartido}}',
35
36
  'fabric.elements.share.to.integration.button': 'Compartir en {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Icono de compartir',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Valitse vähintään yksi käyttäjä, ryhmä tai tiimi.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Valitse vähintään yksi käyttäjä, tiimi tai sähköpostiosoite.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Valitse vähintään yksi käyttäjä tai tiimi.',
34
+ 'fabric.elements.share.in.integration.button': 'Jaa sovelluksessa {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Blogijulkaisu jaettu} board {Taulu jaettu} calendar {Kalenteri jaettu} draft {Luonnos jaettu} filter {Suodatin jaettu} issue {Asia jaettu} media {Media jaettu} page {Sivu jaettu} project {Projekti jaettu} pullrequest {Pull-pyyntö jaettu} question {Kysymys jaettu} report {Raportti jaettu} repository {Säilö jaettu} request {Pyyntö jaettu} roadmap {Etenemissuunnitelma jaettu} site {Sivusto jaettu} space {Työtila jaettu} other {Linkki jaettu}}',
35
36
  'fabric.elements.share.to.integration.button': 'Jaa kohteeseen {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Jaa kuvake',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Válassz ki legalább egy felhasználót, csoportot vagy csapatot.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Válassz ki legalább egy felhasználót, csapatot vagy e-mail-címet.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Válassz ki legalább egy felhasználót vagy csapatot.',
34
+ 'fabric.elements.share.in.integration.button': 'Megosztás itt: {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Blogposzt megosztva} board {Tábla megosztva} calendar {Naptár megosztva} draft {Piszkozat megosztva} filter {Szűrő megosztva} issue {Ügy megosztva} media {Médiatartalom megosztva} page {Oldal megosztva} project {Projekt megosztva} pullrequest {Pull-kérelem megosztva} question {Kérdés megosztva} report {Jelentés megosztva} repository {Adattár megosztva} request {Kérés megosztva} roadmap {Útvonalterv megosztva} site {Webhely megosztva} space {Munkatér megosztva} other {Link megosztva}}',
35
36
  'fabric.elements.share.to.integration.button': 'Megosztás itt: {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Ikon megosztása',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Seleziona almeno un utente, un gruppo o un team.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Seleziona almeno un utente, un team o un indirizzo e-mail.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Seleziona almeno un utente o un team.',
34
+ 'fabric.elements.share.in.integration.button': 'Condividi in {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Post del blog condiviso} board {Board condivisa} calendar {Calendario condiviso} draft {Bozza condivisa} filter {Filtro condiviso} issue {Ticket condiviso} media {File multimediale condiviso} page {Pagina condivisa} project {Progetto condiviso} pullrequest {Richiesta di pull condivisa} question {Domanda condivisa} report {Report condiviso} repository {Repository condiviso} request {Richiesta condivisa} roadmap {Roadmap condivisa} site {Sito condiviso} space {Spazio condiviso} other {Collegamento condiviso}}',
35
36
  'fabric.elements.share.to.integration.button': 'Condividi in {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Icona Condividi',
@@ -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 {プル リクエストが共有されました} 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': '사용자, 그룹 또는 팀을 하나 이상 선택하세요.',
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': '공유 아이콘',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Velg minst én bruker, gruppe eller ett team.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Velg minst én bruker, arbeidsgruppe eller e-postadresse.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Velg minst én bruker eller ett team.',
34
+ 'fabric.elements.share.in.integration.button': 'Del i {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Blogginnlegg delt} board {Tavle delt} calendar {Kalender delt} draft {Utkast delt} filter {Filter delt} issue {Sak delt} media {Media delt} page {Side delt} project {Prosjekt delt} pullrequest {Pull-forespørsel delt} question {Spørsmål delt} report {Rapport delt} repository {Repositorium delt} request {Forespørsel delt} roadmap {Veikart delt} site {Side delt} space {Område delt} other {Kobling delt}}',
35
36
  'fabric.elements.share.to.integration.button': 'Del til {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Dele-ikon',
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Selecteer minimaal één gebruiker, groep of team.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Selecteer minimaal één gebruiker, team of e-mailadres.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Selecteer minimaal één gebruiker of team.',
34
+ 'fabric.elements.share.in.integration.button': 'Delen in {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Blog gedeeld} board {Bord gedeeld} calendar {Kalender gedeeld} draft {Concept gedeeld} filter {Filter gedeeld} issue {Issue gedeeld} media {Media gedeeld} page {Pagina gedeeld} project {Project gedeeld} pullrequest {Pull-aanvraag gedeeld} question {Vraag gedeeld} report {Rapport gedeeld} repository {Repository gedeeld} request {Aanvraag gedeeld} roadmap {Roadmap gedeeld} site {Site gedeeld} space {Space gedeeld} other {Link gedeeld}}',
35
36
  'fabric.elements.share.to.integration.button': 'Delen met {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': "Pictogram 'Delen'",
@@ -31,6 +31,7 @@ export default {
31
31
  'fabric.elements.share.form.user-picker.validation.required.existingUserOnly': 'Välj minst en användare, en grupp eller ett team.',
32
32
  'fabric.elements.share.form.user-picker.validation.required.jira': 'Välj minst en användare, ett team eller en e-postadress.',
33
33
  'fabric.elements.share.form.user-picker.validation.required.jira.existingUserOnly': 'Välj minst en användare eller ett team.',
34
+ 'fabric.elements.share.in.integration.button': 'Dela i {integrationName}',
34
35
  'fabric.elements.share.success.message': '{object, select, blogpost {Blogginlägg delat} board {Tavla delad} calendar {Kalender delad} draft {Utkast delat} filter {Filter delat} issue {Ärende delat} media {Media delad} page {Sida delad} project {Projekt delat} pullrequest {Pull-begäran delad} question {Fråga delad} report {Rapport delad} repository {Lagringsplats delad} request {Förfrågan delad} roadmap {Översikt delad} site {Plats delad} space {Utrymme delat} other {Länk delad}}',
35
36
  'fabric.elements.share.to.integration.button': 'Dela till {integrationName}',
36
37
  'fabric.elements.share.trigger.button.icon.label': 'Dela-ikon',
@@ -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 {แชร์ Pull Request แล้ว} 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': 'Виберіть принаймні одного користувача, групу або команду.',
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 {Ви поділилися запитом Pull request} 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': '请至少选择一个用户、群组或团队。',
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': '共享图标',
@@ -100,11 +100,6 @@ export const messages = defineMessages({
100
100
  defaultMessage: 'Invite',
101
101
  description: 'Button label for when the sharee action is set to "edit".'
102
102
  },
103
- copyLinkButtonIconLabel: {
104
- id: 'fabric.elements.share.copylink.button.icon.label',
105
- defaultMessage: 'Copy link icon',
106
- description: 'Default text for the aria-label of the copy Link icon'
107
- },
108
103
  copyLinkButtonText: {
109
104
  id: 'fabric.elements.share.copylink.button.text',
110
105
  defaultMessage: 'Copy link',
@@ -115,11 +110,6 @@ export const messages = defineMessages({
115
110
  defaultMessage: 'Copy public link',
116
111
  description: 'Default text for the Copy Link button when the link is public'
117
112
  },
118
- copiedToClipboardIconLabel: {
119
- id: 'fabric.elements.share.copied.to.clipboard.icon.label',
120
- defaultMessage: 'Copy link success icon',
121
- description: 'Default text for the aria-label of the copied link icon'
122
- },
123
113
  copiedToClipboardMessage: {
124
114
  id: 'fabric.elements.share.copied.to.clipboard.message',
125
115
  defaultMessage: 'Link copied to clipboard',
@@ -160,5 +150,15 @@ export const messages = defineMessages({
160
150
  id: 'fabric.elements.share.in.integration.button',
161
151
  defaultMessage: 'Share in {integrationName}',
162
152
  description: 'Text for the button that allows the user to share the currently viewed item through a 3rd party app like Slack'
153
+ },
154
+ shareMainTabTextJira: {
155
+ id: 'fabric.elements.share.main.tab.text.jira',
156
+ defaultMessage: 'Share issue',
157
+ description: 'Text for the main share tab for jira'
158
+ },
159
+ shareMainTabTextConfluence: {
160
+ id: 'fabric.elements.share.main.tab.text.confluence',
161
+ defaultMessage: 'Share page',
162
+ description: 'Text for the main share tab for confluence'
163
163
  }
164
164
  });
@@ -1,4 +1,3 @@
1
- export { ShareServiceClient } from './clients/ShareServiceClient';
2
1
  export { ShareDialogContainer } from './components/ShareDialogContainer';
3
2
  export { // Constants
4
3
  ADMIN_NOTIFIED, OBJECT_SHARED } from './types';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@atlaskit/share",
3
- "version": "1.0.1"
3
+ "version": "2.0.1"
4
4
  }
@@ -0,0 +1 @@
1
+ export { ShareServiceClient } from './ShareServiceClient';
@@ -22,9 +22,11 @@ import { layers } from '@atlaskit/theme/constants';
22
22
  import Tooltip from '@atlaskit/tooltip';
23
23
  import React from 'react';
24
24
  import { FormattedMessage, injectIntl } from 'react-intl-next';
25
+ import { isSafari } from 'react-device-detect';
25
26
  import styled from 'styled-components';
26
- import Button, { InlineDialogContentWrapper } from './styles';
27
+ import Button from './styles';
27
28
  import { messages } from '../i18n';
29
+ import { InlineDialogContentWrapper } from './ShareFormWrapper/styled';
28
30
  var Z_INDEX = layers.modal();
29
31
  var AUTO_DISMISS_SECONDS = 8;
30
32
  export var AUTO_DISMISS_MS = AUTO_DISMISS_SECONDS * 1000;
@@ -37,6 +39,8 @@ function (props, ref) {
37
39
  position: 'absolute',
38
40
  left: '-9999px'
39
41
  },
42
+ tabIndex: -1,
43
+ "aria-hidden": true,
40
44
  ref: ref,
41
45
  value: props.text,
42
46
  readOnly: true
@@ -107,10 +111,11 @@ export var CopyLinkButton = /*#__PURE__*/function (_React$Component) {
107
111
  isDisabled = _this$props.isDisabled,
108
112
  isPublicLink = _this$props.isPublicLink;
109
113
  return /*#__PURE__*/React.createElement(Button, _extends({
114
+ "aria-label": formatMessage(isPublicLink ? messages.copyPublicLinkButtonText : messages.copyLinkButtonText),
110
115
  isDisabled: isDisabled,
111
116
  appearance: "subtle-link",
112
117
  iconBefore: /*#__PURE__*/React.createElement(LinkFilledIcon, {
113
- label: formatMessage(messages.copyLinkButtonIconLabel),
118
+ label: "",
114
119
  size: "medium"
115
120
  }),
116
121
  onClick: _this.handleClick
@@ -134,14 +139,17 @@ export var CopyLinkButton = /*#__PURE__*/function (_React$Component) {
134
139
  var _this$props2 = this.props,
135
140
  formatMessage = _this$props2.intl.formatMessage,
136
141
  copyTooltipText = _this$props2.copyTooltipText;
137
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(HiddenInput, {
142
+ return /*#__PURE__*/React.createElement(React.Fragment, null, isSafari && /*#__PURE__*/React.createElement("div", {
143
+ className: "assistive",
144
+ "aria-live": "assertive"
145
+ }, shouldShowCopiedMessage && formatMessage(messages.copiedToClipboardMessage)), /*#__PURE__*/React.createElement(HiddenInput, {
138
146
  ref: this.inputRef,
139
147
  text: this.props.link
140
148
  }), /*#__PURE__*/React.createElement(Popup, {
141
149
  zIndex: Z_INDEX,
142
150
  content: function content() {
143
151
  return /*#__PURE__*/React.createElement(InlineDialogContentWrapper, null, /*#__PURE__*/React.createElement(MessageContainer, null, /*#__PURE__*/React.createElement(CheckCircleIcon, {
144
- label: formatMessage(messages.copiedToClipboardIconLabel),
152
+ label: "",
145
153
  primaryColor: G300
146
154
  }), /*#__PURE__*/React.createElement(MessageSpan, null, /*#__PURE__*/React.createElement(FormattedMessage, messages.copiedToClipboardMessage))));
147
155
  },
@@ -8,8 +8,11 @@ import { h500 } from '@atlaskit/theme/typography';
8
8
  export var FormWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n [class^='FormHeader__FormHeaderWrapper'] {\n h1:first-child {\n ", "\n\n > span {\n /* jira has a class override font settings on h1 > span in gh-custom-field-pickers.css */\n font-size: inherit !important;\n line-height: inherit !important;\n letter-spacing: inherit !important;\n }\n }\n }\n\n [class^='FormSection__FormSectionWrapper'] {\n margin-top: 0px;\n }\n\n [class^='FormFooter__FormFooterWrapper'] {\n justify-content: space-between;\n margin-top: 12px;\n margin-bottom: 24px;\n }\n\n [class^='Field__FieldWrapper']:not(:first-child) {\n margin-top: 12px;\n }\n"])), h500());
9
9
  export var IntegrationForm = function IntegrationForm(_ref) {
10
10
  var Content = _ref.Content,
11
- onIntegrationClose = _ref.onIntegrationClose;
12
- return /*#__PURE__*/React.createElement(FormWrapper, null, /*#__PURE__*/React.createElement(Content, {
11
+ _ref$onIntegrationClo = _ref.onIntegrationClose,
12
+ onIntegrationClose = _ref$onIntegrationClo === void 0 ? function () {
13
+ return undefined;
14
+ } : _ref$onIntegrationClo;
15
+ return /*#__PURE__*/React.createElement(FormWrapper, null, Content && /*#__PURE__*/React.createElement(Content, {
13
16
  onClose: onIntegrationClose
14
17
  }));
15
18
  };
@@ -0,0 +1,87 @@
1
+ import React from 'react';
2
+ import { AnalyticsContext } from '@atlaskit/analytics-next';
3
+ import { ShareForm } from '../ShareForm';
4
+ import { ANALYTICS_SOURCE } from '../analytics';
5
+ import { IntegrationForm } from '../IntegrationForm';
6
+ import { BottomMessageWrapper, CustomFooterWrapper } from './styled';
7
+ import { ShareFormWrapper } from '../ShareFormWrapper';
8
+
9
+ /**
10
+ * A Share form content which is lazy-loaded.
11
+ * Make sure this component is not exported inside main entry points `src/index.ts`
12
+ */
13
+ function LazyShareForm(props) {
14
+ var copyLink = props.copyLink,
15
+ config = props.config,
16
+ isFetchingConfig = props.isFetchingConfig,
17
+ loadOptions = props.loadOptions,
18
+ shareFormTitle = props.shareFormTitle,
19
+ shareFormHelperMessage = props.shareFormHelperMessage,
20
+ bottomMessage = props.bottomMessage,
21
+ submitButtonLabel = props.submitButtonLabel,
22
+ product = props.product,
23
+ customFooter = props.customFooter,
24
+ enableSmartUserPicker = props.enableSmartUserPicker,
25
+ loggedInAccountId = props.loggedInAccountId,
26
+ cloudId = props.cloudId,
27
+ shareFieldsFooter = props.shareFieldsFooter,
28
+ onUserSelectionChange = props.onUserSelectionChange,
29
+ isPublicLink = props.isPublicLink,
30
+ copyTooltipText = props.copyTooltipText,
31
+ shareIntegrations = props.shareIntegrations,
32
+ integrationMode = props.integrationMode,
33
+ onLinkCopy = props.onLinkCopy,
34
+ onDismiss = props.onDismiss,
35
+ onSubmit = props.onSubmit,
36
+ onDialogClose = props.onDialogClose,
37
+ selectPortalRef = props.selectPortalRef,
38
+ showIntegrationForm = props.showIntegrationForm,
39
+ selectedIntegration = props.selectedIntegration,
40
+ isSharing = props.isSharing,
41
+ shareError = props.shareError,
42
+ defaultValue = props.defaultValue,
43
+ showTitle = props.showTitle;
44
+ var footer = /*#__PURE__*/React.createElement("div", null, bottomMessage ? /*#__PURE__*/React.createElement(BottomMessageWrapper, null, bottomMessage) : null, customFooter && /*#__PURE__*/React.createElement(CustomFooterWrapper, null, customFooter));
45
+ return /*#__PURE__*/React.createElement(AnalyticsContext, {
46
+ data: {
47
+ source: ANALYTICS_SOURCE
48
+ }
49
+ }, /*#__PURE__*/React.createElement(ShareFormWrapper, {
50
+ footer: footer // form title will be determined by `title` and `showTitle` prop passed to `ShareForm`,
51
+ // so we don't need to show title via ShareFormWrapper
52
+ ,
53
+ shouldShowTitle: false
54
+ }, showIntegrationForm && selectedIntegration !== null ? /*#__PURE__*/React.createElement(IntegrationForm, {
55
+ Content: selectedIntegration.Content,
56
+ onIntegrationClose: onDialogClose
57
+ }) : /*#__PURE__*/React.createElement(ShareForm, {
58
+ copyLink: copyLink,
59
+ loadOptions: loadOptions,
60
+ title: shareFormTitle,
61
+ showTitle: showTitle,
62
+ helperMessage: shareFormHelperMessage,
63
+ shareError: shareError,
64
+ defaultValue: defaultValue,
65
+ config: config,
66
+ submitButtonLabel: submitButtonLabel,
67
+ product: product,
68
+ enableSmartUserPicker: enableSmartUserPicker,
69
+ loggedInAccountId: loggedInAccountId,
70
+ cloudId: cloudId,
71
+ fieldsFooter: shareFieldsFooter,
72
+ selectPortalRef: selectPortalRef,
73
+ copyTooltipText: copyTooltipText,
74
+ integrationMode: integrationMode,
75
+ shareIntegrations: shareIntegrations,
76
+ isSharing: isSharing,
77
+ isFetchingConfig: isFetchingConfig,
78
+ isPublicLink: isPublicLink,
79
+ onSubmit: onSubmit,
80
+ onDismiss: onDismiss,
81
+ onLinkCopy: onLinkCopy,
82
+ onUserSelectionChange: onUserSelectionChange,
83
+ handleCloseDialog: onDialogClose
84
+ })));
85
+ }
86
+
87
+ export default LazyShareForm;
@@ -0,0 +1 @@
1
+ export { default } from './LazyShareForm';
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { LazySuspense, lazyForPaint } from 'react-loosely-lazy';
3
+ import Spinner from '@atlaskit/spinner';
4
+ import { SpinnerWrapper } from './styled';
5
+ import { ShareFormWrapper } from '../ShareFormWrapper';
6
+ var LazyShareFormLazy = lazyForPaint(function () {
7
+ return import(
8
+ /* webpackChunkName: "@atlaskit-internal_share-form" */
9
+ './LazyShareForm');
10
+ }, {
11
+ ssr: false
12
+ });
13
+
14
+ var LoadingDialog = function LoadingDialog(_ref) {
15
+ var shareFormTitle = _ref.shareFormTitle,
16
+ showTitle = _ref.showTitle;
17
+ return /*#__PURE__*/React.createElement(ShareFormWrapper, {
18
+ shareFormTitle: shareFormTitle // if `showTitle` is passed, we use it. Otherwise, we will show title for loading dialog.
19
+ ,
20
+ shouldShowTitle: typeof showTitle === 'boolean' ? showTitle : true
21
+ }, /*#__PURE__*/React.createElement(SpinnerWrapper, null, /*#__PURE__*/React.createElement(Spinner, null)));
22
+ };
23
+
24
+ export default (function (props) {
25
+ return /*#__PURE__*/React.createElement(LazySuspense, {
26
+ fallback: /*#__PURE__*/React.createElement(LoadingDialog, {
27
+ shareFormTitle: props.shareFormTitle,
28
+ showTitle: props.showTitle
29
+ })
30
+ }, /*#__PURE__*/React.createElement(LazyShareFormLazy, props));
31
+ });
@@ -0,0 +1,9 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
+
3
+ var _templateObject, _templateObject2, _templateObject3;
4
+
5
+ import styled from 'styled-components';
6
+ import { gridSize } from '@atlaskit/theme/constants';
7
+ export var BottomMessageWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: ", "px;\n"])), gridSize() * 44);
8
+ export var CustomFooterWrapper = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n /* Must match inline dialog padding. */\n margin: 0 ", "px ", "px ", "px;\n"])), -gridSize() * 3, -gridSize() * 2, -gridSize() * 3);
9
+ export var SpinnerWrapper = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n widht: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-content: center;\n"])));