@atlaskit/link-datasource 0.14.4
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 +233 -0
- package/README.md +3 -0
- package/dist/cjs/hooks/useDatasourceTableState.js +133 -0
- package/dist/cjs/index.js +19 -0
- package/dist/cjs/services/getAvailableJiraSites.js +65 -0
- package/dist/cjs/services/makeGetJqlAutocompleteData.js +66 -0
- package/dist/cjs/services/makeGetJqlSuggestionsData.js +55 -0
- package/dist/cjs/ui/issue-like-table/column-picker/index.js +93 -0
- package/dist/cjs/ui/issue-like-table/column-picker/types.js +5 -0
- package/dist/cjs/ui/issue-like-table/draggable-table-heading.js +182 -0
- package/dist/cjs/ui/issue-like-table/empty-state/index.js +127 -0
- package/dist/cjs/ui/issue-like-table/empty-state/priority.js +28 -0
- package/dist/cjs/ui/issue-like-table/empty-state/type.js +51 -0
- package/dist/cjs/ui/issue-like-table/empty-state/types.js +5 -0
- package/dist/cjs/ui/issue-like-table/index.js +300 -0
- package/dist/cjs/ui/issue-like-table/render-type/boolean/index.js +30 -0
- package/dist/cjs/ui/issue-like-table/render-type/boolean/messages.js +20 -0
- package/dist/cjs/ui/issue-like-table/render-type/date-time/index.js +47 -0
- package/dist/cjs/ui/issue-like-table/render-type/icon/index.js +34 -0
- package/dist/cjs/ui/issue-like-table/render-type/index.js +63 -0
- package/dist/cjs/ui/issue-like-table/render-type/link/index.js +56 -0
- package/dist/cjs/ui/issue-like-table/render-type/number/index.js +24 -0
- package/dist/cjs/ui/issue-like-table/render-type/status/index.js +28 -0
- package/dist/cjs/ui/issue-like-table/render-type/tag/index.js +27 -0
- package/dist/cjs/ui/issue-like-table/render-type/text/index.js +23 -0
- package/dist/cjs/ui/issue-like-table/render-type/user/index.js +36 -0
- package/dist/cjs/ui/issue-like-table/render-type/user/messages.js +15 -0
- package/dist/cjs/ui/issue-like-table/styled.js +12 -0
- package/dist/cjs/ui/issue-like-table/types.js +5 -0
- package/dist/cjs/ui/issue-like-table/useIsOnScreen.js +32 -0
- package/dist/cjs/ui/jira-issues/modal/basic-search-input/index.js +52 -0
- package/dist/cjs/ui/jira-issues/modal/basic-search-input/messages.js +15 -0
- package/dist/cjs/ui/jira-issues/modal/index.js +267 -0
- package/dist/cjs/ui/jira-issues/modal/jira-search-container/buildJQL.js +27 -0
- package/dist/cjs/ui/jira-issues/modal/jira-search-container/index.js +116 -0
- package/dist/cjs/ui/jira-issues/modal/jira-search-container/messages.js +15 -0
- package/dist/cjs/ui/jira-issues/modal/jql-editor/index.js +41 -0
- package/dist/cjs/ui/jira-issues/modal/messages.js +45 -0
- package/dist/cjs/ui/jira-issues/modal/mode-switcher/index.js +97 -0
- package/dist/cjs/ui/jira-issues/modal/site-selector/index.js +55 -0
- package/dist/cjs/ui/jira-issues/modal/site-selector/messages.js +20 -0
- package/dist/cjs/ui/jira-issues/table-footer/index.js +68 -0
- package/dist/cjs/ui/jira-issues/table-footer/messages.js +25 -0
- package/dist/cjs/ui/jira-issues/table-footer/sync-info/index.js +79 -0
- package/dist/cjs/ui/jira-issues/table-footer/sync-info/messages.js +20 -0
- package/dist/cjs/ui/jira-issues/tableView.js +64 -0
- package/dist/cjs/ui/jira-issues/types.js +5 -0
- package/dist/cjs/version.json +5 -0
- package/dist/es2019/hooks/useDatasourceTableState.js +77 -0
- package/dist/es2019/index.js +2 -0
- package/dist/es2019/services/getAvailableJiraSites.js +20 -0
- package/dist/es2019/services/makeGetJqlAutocompleteData.js +19 -0
- package/dist/es2019/services/makeGetJqlSuggestionsData.js +11 -0
- package/dist/es2019/ui/issue-like-table/column-picker/index.js +77 -0
- package/dist/es2019/ui/issue-like-table/column-picker/types.js +1 -0
- package/dist/es2019/ui/issue-like-table/draggable-table-heading.js +166 -0
- package/dist/es2019/ui/issue-like-table/empty-state/index.js +113 -0
- package/dist/es2019/ui/issue-like-table/empty-state/priority.js +32 -0
- package/dist/es2019/ui/issue-like-table/empty-state/type.js +46 -0
- package/dist/es2019/ui/issue-like-table/empty-state/types.js +1 -0
- package/dist/es2019/ui/issue-like-table/index.js +259 -0
- package/dist/es2019/ui/issue-like-table/render-type/boolean/index.js +21 -0
- package/dist/es2019/ui/issue-like-table/render-type/boolean/messages.js +13 -0
- package/dist/es2019/ui/issue-like-table/render-type/date-time/index.js +37 -0
- package/dist/es2019/ui/issue-like-table/render-type/icon/index.js +27 -0
- package/dist/es2019/ui/issue-like-table/render-type/index.js +55 -0
- package/dist/es2019/ui/issue-like-table/render-type/link/index.js +38 -0
- package/dist/es2019/ui/issue-like-table/render-type/number/index.js +15 -0
- package/dist/es2019/ui/issue-like-table/render-type/status/index.js +19 -0
- package/dist/es2019/ui/issue-like-table/render-type/tag/index.js +18 -0
- package/dist/es2019/ui/issue-like-table/render-type/text/index.js +14 -0
- package/dist/es2019/ui/issue-like-table/render-type/user/index.js +29 -0
- package/dist/es2019/ui/issue-like-table/render-type/user/messages.js +8 -0
- package/dist/es2019/ui/issue-like-table/styled.js +6 -0
- package/dist/es2019/ui/issue-like-table/types.js +1 -0
- package/dist/es2019/ui/issue-like-table/useIsOnScreen.js +17 -0
- package/dist/es2019/ui/jira-issues/modal/basic-search-input/index.js +42 -0
- package/dist/es2019/ui/jira-issues/modal/basic-search-input/messages.js +8 -0
- package/dist/es2019/ui/jira-issues/modal/index.js +227 -0
- package/dist/es2019/ui/jira-issues/modal/jira-search-container/buildJQL.js +20 -0
- package/dist/es2019/ui/jira-issues/modal/jira-search-container/index.js +90 -0
- package/dist/es2019/ui/jira-issues/modal/jira-search-container/messages.js +8 -0
- package/dist/es2019/ui/jira-issues/modal/jql-editor/index.js +33 -0
- package/dist/es2019/ui/jira-issues/modal/messages.js +38 -0
- package/dist/es2019/ui/jira-issues/modal/mode-switcher/index.js +90 -0
- package/dist/es2019/ui/jira-issues/modal/site-selector/index.js +43 -0
- package/dist/es2019/ui/jira-issues/modal/site-selector/messages.js +13 -0
- package/dist/es2019/ui/jira-issues/table-footer/index.js +78 -0
- package/dist/es2019/ui/jira-issues/table-footer/messages.js +18 -0
- package/dist/es2019/ui/jira-issues/table-footer/sync-info/index.js +59 -0
- package/dist/es2019/ui/jira-issues/table-footer/sync-info/messages.js +13 -0
- package/dist/es2019/ui/jira-issues/tableView.js +57 -0
- package/dist/es2019/ui/jira-issues/types.js +1 -0
- package/dist/es2019/version.json +5 -0
- package/dist/esm/hooks/useDatasourceTableState.js +125 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/services/getAvailableJiraSites.js +57 -0
- package/dist/esm/services/makeGetJqlAutocompleteData.js +58 -0
- package/dist/esm/services/makeGetJqlSuggestionsData.js +47 -0
- package/dist/esm/ui/issue-like-table/column-picker/index.js +85 -0
- package/dist/esm/ui/issue-like-table/column-picker/types.js +1 -0
- package/dist/esm/ui/issue-like-table/draggable-table-heading.js +173 -0
- package/dist/esm/ui/issue-like-table/empty-state/index.js +118 -0
- package/dist/esm/ui/issue-like-table/empty-state/priority.js +20 -0
- package/dist/esm/ui/issue-like-table/empty-state/type.js +43 -0
- package/dist/esm/ui/issue-like-table/empty-state/types.js +1 -0
- package/dist/esm/ui/issue-like-table/index.js +292 -0
- package/dist/esm/ui/issue-like-table/render-type/boolean/index.js +21 -0
- package/dist/esm/ui/issue-like-table/render-type/boolean/messages.js +13 -0
- package/dist/esm/ui/issue-like-table/render-type/date-time/index.js +38 -0
- package/dist/esm/ui/issue-like-table/render-type/icon/index.js +25 -0
- package/dist/esm/ui/issue-like-table/render-type/index.js +55 -0
- package/dist/esm/ui/issue-like-table/render-type/link/index.js +44 -0
- package/dist/esm/ui/issue-like-table/render-type/number/index.js +15 -0
- package/dist/esm/ui/issue-like-table/render-type/status/index.js +19 -0
- package/dist/esm/ui/issue-like-table/render-type/tag/index.js +18 -0
- package/dist/esm/ui/issue-like-table/render-type/text/index.js +14 -0
- package/dist/esm/ui/issue-like-table/render-type/user/index.js +27 -0
- package/dist/esm/ui/issue-like-table/render-type/user/messages.js +8 -0
- package/dist/esm/ui/issue-like-table/styled.js +4 -0
- package/dist/esm/ui/issue-like-table/types.js +1 -0
- package/dist/esm/ui/issue-like-table/useIsOnScreen.js +25 -0
- package/dist/esm/ui/jira-issues/modal/basic-search-input/index.js +43 -0
- package/dist/esm/ui/jira-issues/modal/basic-search-input/messages.js +8 -0
- package/dist/esm/ui/jira-issues/modal/index.js +255 -0
- package/dist/esm/ui/jira-issues/modal/jira-search-container/buildJQL.js +20 -0
- package/dist/esm/ui/jira-issues/modal/jira-search-container/index.js +104 -0
- package/dist/esm/ui/jira-issues/modal/jira-search-container/messages.js +8 -0
- package/dist/esm/ui/jira-issues/modal/jql-editor/index.js +31 -0
- package/dist/esm/ui/jira-issues/modal/messages.js +38 -0
- package/dist/esm/ui/jira-issues/modal/mode-switcher/index.js +88 -0
- package/dist/esm/ui/jira-issues/modal/site-selector/index.js +44 -0
- package/dist/esm/ui/jira-issues/modal/site-selector/messages.js +13 -0
- package/dist/esm/ui/jira-issues/table-footer/index.js +60 -0
- package/dist/esm/ui/jira-issues/table-footer/messages.js +18 -0
- package/dist/esm/ui/jira-issues/table-footer/sync-info/index.js +68 -0
- package/dist/esm/ui/jira-issues/table-footer/sync-info/messages.js +13 -0
- package/dist/esm/ui/jira-issues/tableView.js +55 -0
- package/dist/esm/ui/jira-issues/types.js +1 -0
- package/dist/esm/version.json +5 -0
- package/dist/types/hooks/useDatasourceTableState.d.ts +13 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/services/getAvailableJiraSites.d.ts +6 -0
- package/dist/types/services/makeGetJqlAutocompleteData.d.ts +6 -0
- package/dist/types/services/makeGetJqlSuggestionsData.d.ts +5 -0
- package/dist/types/ui/issue-like-table/column-picker/index.d.ts +3 -0
- package/dist/types/ui/issue-like-table/column-picker/types.d.ts +6 -0
- package/dist/types/ui/issue-like-table/draggable-table-heading.d.ts +12 -0
- package/dist/types/ui/issue-like-table/empty-state/index.d.ts +6 -0
- package/dist/types/ui/issue-like-table/empty-state/priority.d.ts +6 -0
- package/dist/types/ui/issue-like-table/empty-state/type.d.ts +6 -0
- package/dist/types/ui/issue-like-table/empty-state/types.d.ts +2 -0
- package/dist/types/ui/issue-like-table/index.d.ts +15 -0
- package/dist/types/ui/issue-like-table/render-type/boolean/index.d.ts +8 -0
- package/dist/types/ui/issue-like-table/render-type/boolean/messages.d.ts +12 -0
- package/dist/types/ui/issue-like-table/render-type/date-time/index.d.ts +10 -0
- package/dist/types/ui/issue-like-table/render-type/icon/index.d.ts +8 -0
- package/dist/types/ui/issue-like-table/render-type/index.d.ts +2 -0
- package/dist/types/ui/issue-like-table/render-type/link/index.d.ts +8 -0
- package/dist/types/ui/issue-like-table/render-type/number/index.d.ts +8 -0
- package/dist/types/ui/issue-like-table/render-type/status/index.d.ts +8 -0
- package/dist/types/ui/issue-like-table/render-type/tag/index.d.ts +9 -0
- package/dist/types/ui/issue-like-table/render-type/text/index.d.ts +8 -0
- package/dist/types/ui/issue-like-table/render-type/user/index.d.ts +11 -0
- package/dist/types/ui/issue-like-table/render-type/user/messages.d.ts +7 -0
- package/dist/types/ui/issue-like-table/styled.d.ts +5 -0
- package/dist/types/ui/issue-like-table/types.d.ts +38 -0
- package/dist/types/ui/issue-like-table/useIsOnScreen.d.ts +1 -0
- package/dist/types/ui/jira-issues/modal/basic-search-input/index.d.ts +12 -0
- package/dist/types/ui/jira-issues/modal/basic-search-input/messages.d.ts +7 -0
- package/dist/types/ui/jira-issues/modal/index.d.ts +13 -0
- package/dist/types/ui/jira-issues/modal/jira-search-container/buildJQL.d.ts +7 -0
- package/dist/types/ui/jira-issues/modal/jira-search-container/index.d.ts +7 -0
- package/dist/types/ui/jira-issues/modal/jira-search-container/messages.d.ts +7 -0
- package/dist/types/ui/jira-issues/modal/jql-editor/index.d.ts +8 -0
- package/dist/types/ui/jira-issues/modal/messages.d.ts +37 -0
- package/dist/types/ui/jira-issues/modal/mode-switcher/index.d.ts +12 -0
- package/dist/types/ui/jira-issues/modal/site-selector/index.d.ts +10 -0
- package/dist/types/ui/jira-issues/modal/site-selector/messages.d.ts +12 -0
- package/dist/types/ui/jira-issues/table-footer/index.d.ts +7 -0
- package/dist/types/ui/jira-issues/table-footer/messages.d.ts +17 -0
- package/dist/types/ui/jira-issues/table-footer/sync-info/index.d.ts +4 -0
- package/dist/types/ui/jira-issues/table-footer/sync-info/messages.d.ts +12 -0
- package/dist/types/ui/jira-issues/tableView.d.ts +3 -0
- package/dist/types/ui/jira-issues/types.d.ts +14 -0
- package/dist/types-ts4.5/hooks/useDatasourceTableState.d.ts +13 -0
- package/dist/types-ts4.5/index.d.ts +2 -0
- package/dist/types-ts4.5/services/getAvailableJiraSites.d.ts +6 -0
- package/dist/types-ts4.5/services/makeGetJqlAutocompleteData.d.ts +6 -0
- package/dist/types-ts4.5/services/makeGetJqlSuggestionsData.d.ts +5 -0
- package/dist/types-ts4.5/ui/issue-like-table/column-picker/index.d.ts +3 -0
- package/dist/types-ts4.5/ui/issue-like-table/column-picker/types.d.ts +6 -0
- package/dist/types-ts4.5/ui/issue-like-table/draggable-table-heading.d.ts +12 -0
- package/dist/types-ts4.5/ui/issue-like-table/empty-state/index.d.ts +6 -0
- package/dist/types-ts4.5/ui/issue-like-table/empty-state/priority.d.ts +6 -0
- package/dist/types-ts4.5/ui/issue-like-table/empty-state/type.d.ts +6 -0
- package/dist/types-ts4.5/ui/issue-like-table/empty-state/types.d.ts +2 -0
- package/dist/types-ts4.5/ui/issue-like-table/index.d.ts +15 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/boolean/index.d.ts +8 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/boolean/messages.d.ts +12 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/date-time/index.d.ts +10 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/icon/index.d.ts +8 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/index.d.ts +2 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/link/index.d.ts +8 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/number/index.d.ts +8 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/status/index.d.ts +8 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/tag/index.d.ts +9 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/text/index.d.ts +8 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/user/index.d.ts +11 -0
- package/dist/types-ts4.5/ui/issue-like-table/render-type/user/messages.d.ts +7 -0
- package/dist/types-ts4.5/ui/issue-like-table/styled.d.ts +5 -0
- package/dist/types-ts4.5/ui/issue-like-table/types.d.ts +38 -0
- package/dist/types-ts4.5/ui/issue-like-table/useIsOnScreen.d.ts +1 -0
- package/dist/types-ts4.5/ui/jira-issues/modal/basic-search-input/index.d.ts +12 -0
- package/dist/types-ts4.5/ui/jira-issues/modal/basic-search-input/messages.d.ts +7 -0
- package/dist/types-ts4.5/ui/jira-issues/modal/index.d.ts +13 -0
- package/dist/types-ts4.5/ui/jira-issues/modal/jira-search-container/buildJQL.d.ts +7 -0
- package/dist/types-ts4.5/ui/jira-issues/modal/jira-search-container/index.d.ts +7 -0
- package/dist/types-ts4.5/ui/jira-issues/modal/jira-search-container/messages.d.ts +7 -0
- package/dist/types-ts4.5/ui/jira-issues/modal/jql-editor/index.d.ts +8 -0
- package/dist/types-ts4.5/ui/jira-issues/modal/messages.d.ts +37 -0
- package/dist/types-ts4.5/ui/jira-issues/modal/mode-switcher/index.d.ts +12 -0
- package/dist/types-ts4.5/ui/jira-issues/modal/site-selector/index.d.ts +10 -0
- package/dist/types-ts4.5/ui/jira-issues/modal/site-selector/messages.d.ts +12 -0
- package/dist/types-ts4.5/ui/jira-issues/table-footer/index.d.ts +7 -0
- package/dist/types-ts4.5/ui/jira-issues/table-footer/messages.d.ts +17 -0
- package/dist/types-ts4.5/ui/jira-issues/table-footer/sync-info/index.d.ts +4 -0
- package/dist/types-ts4.5/ui/jira-issues/table-footer/sync-info/messages.d.ts +12 -0
- package/dist/types-ts4.5/ui/jira-issues/tableView.d.ts +3 -0
- package/dist/types-ts4.5/ui/jira-issues/types.d.ts +14 -0
- package/examples-helpers/buildIssueLikeTable.tsx +88 -0
- package/examples-helpers/buildJiraIssuesTable.tsx +31 -0
- package/examples-helpers/images.json +4 -0
- package/examples-helpers/mockAutocompleteData.ts +54 -0
- package/examples-helpers/mockJiraAvailableSites.ts +27 -0
- package/examples-helpers/mockJiraData.ts +546 -0
- package/examples-helpers/mockJqlSmartLinkData.ts +72 -0
- package/examples-helpers/mockSmartLinkData.ts +67 -0
- package/examples-helpers/mockSuggestionData.ts +17 -0
- package/examples-helpers/setupDatasourcesMocks.ts +199 -0
- package/examples-helpers/setupModalExampleMocks.ts +32 -0
- package/examples-helpers/smartLinkCustomClient.ts +26 -0
- package/package.json +118 -0
- package/report.api.md +98 -0
- package/tmp/api-report-tmp.d.ts +64 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
+
var _templateObject;
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import styled from '@emotion/styled';
|
|
5
|
+
import Bug16Icon from '@atlaskit/icon-object/glyph/bug/16';
|
|
6
|
+
import Commit16Icon from '@atlaskit/icon-object/glyph/commit/16';
|
|
7
|
+
import Epic16Icon from '@atlaskit/icon-object/glyph/epic/16';
|
|
8
|
+
import Issue16Icon from '@atlaskit/icon-object/glyph/issue/16';
|
|
9
|
+
import Story16Icon from '@atlaskit/icon-object/glyph/story/16';
|
|
10
|
+
import Task16Icon from '@atlaskit/icon-object/glyph/task/16';
|
|
11
|
+
var IconWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n"])));
|
|
12
|
+
export default (function (_ref) {
|
|
13
|
+
var type = _ref.type;
|
|
14
|
+
var TypeIcon = function TypeIcon() {
|
|
15
|
+
switch (type) {
|
|
16
|
+
case 'issue':
|
|
17
|
+
return /*#__PURE__*/React.createElement(Issue16Icon, {
|
|
18
|
+
label: 'issue'
|
|
19
|
+
});
|
|
20
|
+
case 'commit':
|
|
21
|
+
return /*#__PURE__*/React.createElement(Commit16Icon, {
|
|
22
|
+
label: 'commit'
|
|
23
|
+
});
|
|
24
|
+
case 'story':
|
|
25
|
+
return /*#__PURE__*/React.createElement(Story16Icon, {
|
|
26
|
+
label: 'story'
|
|
27
|
+
});
|
|
28
|
+
case 'epic':
|
|
29
|
+
return /*#__PURE__*/React.createElement(Epic16Icon, {
|
|
30
|
+
label: 'epic'
|
|
31
|
+
});
|
|
32
|
+
case 'bug':
|
|
33
|
+
return /*#__PURE__*/React.createElement(Bug16Icon, {
|
|
34
|
+
label: 'bug'
|
|
35
|
+
});
|
|
36
|
+
case 'task':
|
|
37
|
+
return /*#__PURE__*/React.createElement(Task16Icon, {
|
|
38
|
+
label: 'task'
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
return /*#__PURE__*/React.createElement(IconWrapper, null, /*#__PURE__*/React.createElement(TypeIcon, null));
|
|
43
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
4
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
|
+
/** @jsx jsx */
|
|
7
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
8
|
+
import { css, jsx } from '@emotion/react';
|
|
9
|
+
import invariant from 'tiny-invariant';
|
|
10
|
+
import { Skeleton } from '@atlaskit/linking-common';
|
|
11
|
+
import { autoScroller } from '@atlaskit/pragmatic-drag-and-drop-autoscroll';
|
|
12
|
+
import { extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/addon/closest-edge';
|
|
13
|
+
import { reorderWithEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/util/reorder-with-edge';
|
|
14
|
+
import { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/adapter/element';
|
|
15
|
+
import { combine } from '@atlaskit/pragmatic-drag-and-drop/util/combine';
|
|
16
|
+
import { ColumnPicker } from './column-picker';
|
|
17
|
+
import { DraggableTableHeading } from './draggable-table-heading';
|
|
18
|
+
import TableEmptyState from './empty-state';
|
|
19
|
+
import { fallbackRenderType } from './render-type';
|
|
20
|
+
import { TableHeading } from './styled';
|
|
21
|
+
import { useIsOnScreen } from './useIsOnScreen';
|
|
22
|
+
var tableHeadStyles = css({
|
|
23
|
+
background: "var(--ds-surface, #FFF)",
|
|
24
|
+
borderTop: '2px solid transparent'
|
|
25
|
+
});
|
|
26
|
+
var columnPickerHeaderStyles = css({
|
|
27
|
+
width: '40px',
|
|
28
|
+
// TODO use some variable for that?
|
|
29
|
+
paddingBlock: "var(--ds-space-100, 8px)"
|
|
30
|
+
});
|
|
31
|
+
var tableDragPreviewStyles = css({
|
|
32
|
+
backgroundColor: "var(--ds-surface, #FFF)"
|
|
33
|
+
});
|
|
34
|
+
var containerDragPreviewStyles = css({
|
|
35
|
+
overflow: 'hidden'
|
|
36
|
+
});
|
|
37
|
+
function extractIndex(data) {
|
|
38
|
+
var index = data.index;
|
|
39
|
+
invariant(typeof index === 'number');
|
|
40
|
+
return index;
|
|
41
|
+
}
|
|
42
|
+
var orderColumns = function orderColumns(columns, visibleColumnKeys) {
|
|
43
|
+
// newColumnKeyOrder contains keys of selected (visible columns only).
|
|
44
|
+
// In order to sort all the columns we need to insert unselected ones into this list
|
|
45
|
+
// We put them into their absolution position as it was in unchanged (before column move) order.
|
|
46
|
+
columns.forEach(function (_ref, index) {
|
|
47
|
+
var key = _ref.key;
|
|
48
|
+
if (!visibleColumnKeys.includes(key)) {
|
|
49
|
+
visibleColumnKeys.splice(index, 0, key);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
columns.sort(function (a, b) {
|
|
53
|
+
var indexB = visibleColumnKeys.indexOf(b.key);
|
|
54
|
+
var indexA = visibleColumnKeys.indexOf(a.key);
|
|
55
|
+
return indexA - indexB;
|
|
56
|
+
});
|
|
57
|
+
return _toConsumableArray(columns);
|
|
58
|
+
};
|
|
59
|
+
export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
|
|
60
|
+
var _orderedColumns$find;
|
|
61
|
+
var testId = _ref2.testId,
|
|
62
|
+
onNextPage = _ref2.onNextPage,
|
|
63
|
+
items = _ref2.items,
|
|
64
|
+
columns = _ref2.columns,
|
|
65
|
+
_ref2$renderItem = _ref2.renderItem,
|
|
66
|
+
renderItem = _ref2$renderItem === void 0 ? fallbackRenderType : _ref2$renderItem,
|
|
67
|
+
visibleColumnKeys = _ref2.visibleColumnKeys,
|
|
68
|
+
onVisibleColumnKeysChange = _ref2.onVisibleColumnKeysChange,
|
|
69
|
+
status = _ref2.status,
|
|
70
|
+
hasNextPage = _ref2.hasNextPage;
|
|
71
|
+
var tableId = useMemo(function () {
|
|
72
|
+
return Symbol('unique-id');
|
|
73
|
+
}, []);
|
|
74
|
+
var _useState = useState(null),
|
|
75
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
76
|
+
lastRowElement = _useState2[0],
|
|
77
|
+
setLastRowElement = _useState2[1];
|
|
78
|
+
var _useState3 = useState(false),
|
|
79
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
80
|
+
isDragPreview = _useState4[0],
|
|
81
|
+
setIsDragPreview = _useState4[1];
|
|
82
|
+
var isBottomOfTableVisibleRaw = useIsOnScreen(lastRowElement);
|
|
83
|
+
var containerRef = useRef(null);
|
|
84
|
+
var _useState5 = useState(function () {
|
|
85
|
+
return orderColumns(_toConsumableArray(columns), _toConsumableArray(visibleColumnKeys));
|
|
86
|
+
}),
|
|
87
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
88
|
+
orderedColumns = _useState6[0],
|
|
89
|
+
setOrderedColumns = _useState6[1];
|
|
90
|
+
var visibleSortedColumns = useMemo(function () {
|
|
91
|
+
return visibleColumnKeys.map(function (visibleKey) {
|
|
92
|
+
return orderedColumns.find(function (_ref3) {
|
|
93
|
+
var key = _ref3.key;
|
|
94
|
+
return visibleKey === key;
|
|
95
|
+
});
|
|
96
|
+
}).filter(Boolean);
|
|
97
|
+
}, [orderedColumns, visibleColumnKeys]);
|
|
98
|
+
|
|
99
|
+
// TODO seems like this component can't handle some combination of incremental data retreaval.
|
|
100
|
+
// If data comes first, then columns and then visibleColumnKeys it blows up,
|
|
101
|
+
// or some other combination.
|
|
102
|
+
|
|
103
|
+
var identityColumnKey = (_orderedColumns$find = orderedColumns.find(function (column) {
|
|
104
|
+
return column.isIdentity;
|
|
105
|
+
})) === null || _orderedColumns$find === void 0 ? void 0 : _orderedColumns$find.key;
|
|
106
|
+
var loadingRow = useMemo(function () {
|
|
107
|
+
return {
|
|
108
|
+
key: 'loading',
|
|
109
|
+
cells: visibleSortedColumns.map(function (_ref4) {
|
|
110
|
+
var key = _ref4.key;
|
|
111
|
+
var content = jsx(Skeleton, {
|
|
112
|
+
borderRadius: "var(--ds-radius-100, 3px)",
|
|
113
|
+
width: '100%',
|
|
114
|
+
height: '20px'
|
|
115
|
+
});
|
|
116
|
+
return {
|
|
117
|
+
key: key,
|
|
118
|
+
content: content
|
|
119
|
+
};
|
|
120
|
+
})
|
|
121
|
+
};
|
|
122
|
+
}, [visibleSortedColumns]);
|
|
123
|
+
var headColumns = visibleSortedColumns.map(function (column) {
|
|
124
|
+
return {
|
|
125
|
+
key: column.key,
|
|
126
|
+
content: column.title,
|
|
127
|
+
// width: TODO Find out how we going to retrieve column width
|
|
128
|
+
shouldTruncate: true
|
|
129
|
+
};
|
|
130
|
+
});
|
|
131
|
+
useEffect(function () {
|
|
132
|
+
if (status === 'empty' || isBottomOfTableVisibleRaw && hasNextPage && status !== 'loading') {
|
|
133
|
+
void onNextPage();
|
|
134
|
+
}
|
|
135
|
+
}, [isBottomOfTableVisibleRaw, status, hasNextPage, onNextPage]);
|
|
136
|
+
var dndPreviewHeight = 0;
|
|
137
|
+
if (items.length > 0 && containerRef.current) {
|
|
138
|
+
var containerEl = containerRef.current;
|
|
139
|
+
invariant(containerEl);
|
|
140
|
+
dndPreviewHeight = containerEl.offsetHeight;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// This variable contains initial Y mouse coordinate, so we can restrict
|
|
144
|
+
// autoScroller in X axis only
|
|
145
|
+
var initialAutoScrollerClientY = useRef();
|
|
146
|
+
useEffect(function () {
|
|
147
|
+
if (!onVisibleColumnKeysChange) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
return combine(monitorForElements({
|
|
151
|
+
onDragStart: function onDragStart(_ref5) {
|
|
152
|
+
var location = _ref5.location;
|
|
153
|
+
initialAutoScrollerClientY.current = location.current.input.clientY;
|
|
154
|
+
autoScroller.start({
|
|
155
|
+
input: location.current.input,
|
|
156
|
+
behavior: 'container-only'
|
|
157
|
+
});
|
|
158
|
+
},
|
|
159
|
+
onDrag: function onDrag(_ref6) {
|
|
160
|
+
var location = _ref6.location;
|
|
161
|
+
autoScroller.updateInput({
|
|
162
|
+
input: _objectSpread(_objectSpread({}, location.current.input), {}, {
|
|
163
|
+
clientY: initialAutoScrollerClientY.current || 0
|
|
164
|
+
})
|
|
165
|
+
});
|
|
166
|
+
},
|
|
167
|
+
onDrop: function onDrop(_ref7) {
|
|
168
|
+
var source = _ref7.source,
|
|
169
|
+
location = _ref7.location;
|
|
170
|
+
initialAutoScrollerClientY.current = null;
|
|
171
|
+
autoScroller.stop();
|
|
172
|
+
if (location.current.dropTargets.length === 0) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
var target = location.current.dropTargets[0];
|
|
176
|
+
if (source.data.id === target.data.id) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
if (source.data.type === 'table-header' && source.data.tableId === tableId) {
|
|
180
|
+
var closestEdgeOfTarget = extractClosestEdge(target.data);
|
|
181
|
+
invariant(closestEdgeOfTarget === 'left' || closestEdgeOfTarget === 'right');
|
|
182
|
+
var startIndex = extractIndex(source.data);
|
|
183
|
+
var indexOfTarget = extractIndex(target.data);
|
|
184
|
+
var newColumnKeyOrder = reorderWithEdge({
|
|
185
|
+
list: visibleColumnKeys,
|
|
186
|
+
closestEdgeOfTarget: closestEdgeOfTarget,
|
|
187
|
+
startIndex: startIndex,
|
|
188
|
+
indexOfTarget: indexOfTarget,
|
|
189
|
+
axis: 'horizontal'
|
|
190
|
+
});
|
|
191
|
+
onVisibleColumnKeysChange === null || onVisibleColumnKeysChange === void 0 ? void 0 : onVisibleColumnKeysChange(_toConsumableArray(newColumnKeyOrder));
|
|
192
|
+
|
|
193
|
+
// We sort columns (whole objects) according to their key order presented in newColumnKeyOrder
|
|
194
|
+
setOrderedColumns(function (columns) {
|
|
195
|
+
return orderColumns(_toConsumableArray(columns), _toConsumableArray(newColumnKeyOrder));
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}));
|
|
200
|
+
}, [visibleColumnKeys, onVisibleColumnKeysChange, tableId]);
|
|
201
|
+
var tableRows = useMemo(function () {
|
|
202
|
+
return items.map(function (newRowData, rowIndex) {
|
|
203
|
+
return {
|
|
204
|
+
key: "".concat(identityColumnKey && newRowData[identityColumnKey] || rowIndex),
|
|
205
|
+
cells: visibleSortedColumns.map(function (_ref8) {
|
|
206
|
+
var key = _ref8.key,
|
|
207
|
+
type = _ref8.type;
|
|
208
|
+
var value = newRowData[key];
|
|
209
|
+
var values = Array.isArray(value) ? value : [value];
|
|
210
|
+
var content = values.map(function (value) {
|
|
211
|
+
return renderItem({
|
|
212
|
+
type: type,
|
|
213
|
+
value: value
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
return {
|
|
217
|
+
key: key,
|
|
218
|
+
content: content
|
|
219
|
+
};
|
|
220
|
+
}),
|
|
221
|
+
ref: rowIndex === items.length - 1 ? function (el) {
|
|
222
|
+
return setLastRowElement(el);
|
|
223
|
+
} : undefined
|
|
224
|
+
};
|
|
225
|
+
});
|
|
226
|
+
}, [identityColumnKey, renderItem, items, visibleSortedColumns]);
|
|
227
|
+
var rows = [].concat(_toConsumableArray(tableRows), _toConsumableArray(status === 'loading' ? [loadingRow] : []));
|
|
228
|
+
var setIsDragPreviewOn = useCallback(function () {
|
|
229
|
+
return setIsDragPreview(true);
|
|
230
|
+
}, [setIsDragPreview]);
|
|
231
|
+
var setIsDragPreviewOff = useCallback(function () {
|
|
232
|
+
return setIsDragPreview(false);
|
|
233
|
+
}, [setIsDragPreview]);
|
|
234
|
+
var onSelectedColumnKeysChange = useCallback(function (newSelectedColumnKeys) {
|
|
235
|
+
onVisibleColumnKeysChange === null || onVisibleColumnKeysChange === void 0 ? void 0 : onVisibleColumnKeysChange(newSelectedColumnKeys);
|
|
236
|
+
}, [onVisibleColumnKeysChange]);
|
|
237
|
+
return jsx("div", {
|
|
238
|
+
ref: containerRef,
|
|
239
|
+
css: isDragPreview ? containerDragPreviewStyles : null
|
|
240
|
+
}, jsx("table", {
|
|
241
|
+
css: isDragPreview ? tableDragPreviewStyles : null,
|
|
242
|
+
"data-testid": testId
|
|
243
|
+
}, jsx("thead", {
|
|
244
|
+
"data-testid": testId && "".concat(testId, "--head"),
|
|
245
|
+
css: tableHeadStyles
|
|
246
|
+
}, jsx("tr", null, headColumns.map(function (_ref9, cellIndex) {
|
|
247
|
+
var key = _ref9.key,
|
|
248
|
+
content = _ref9.content;
|
|
249
|
+
if (onVisibleColumnKeysChange) {
|
|
250
|
+
return jsx(DraggableTableHeading, {
|
|
251
|
+
tableId: tableId,
|
|
252
|
+
key: key,
|
|
253
|
+
id: key,
|
|
254
|
+
index: cellIndex,
|
|
255
|
+
dndPreviewHeight: dndPreviewHeight,
|
|
256
|
+
onDragPreviewStart: setIsDragPreviewOn,
|
|
257
|
+
onDragPreviewEnd: setIsDragPreviewOff
|
|
258
|
+
}, content);
|
|
259
|
+
} else {
|
|
260
|
+
return jsx(TableHeading, {
|
|
261
|
+
key: key,
|
|
262
|
+
"data-testid": "".concat(key, "-column-heading")
|
|
263
|
+
}, content);
|
|
264
|
+
}
|
|
265
|
+
}), onVisibleColumnKeysChange && jsx("th", {
|
|
266
|
+
css: columnPickerHeaderStyles
|
|
267
|
+
}, jsx(ColumnPicker, {
|
|
268
|
+
columns: orderedColumns,
|
|
269
|
+
selectedColumnKeys: visibleColumnKeys,
|
|
270
|
+
onSelectedColumnKeysChange: onSelectedColumnKeysChange
|
|
271
|
+
})))), jsx("tbody", {
|
|
272
|
+
"data-testid": testId && "".concat(testId, "--body")
|
|
273
|
+
}, rows.map(function (_ref10) {
|
|
274
|
+
var key = _ref10.key,
|
|
275
|
+
cells = _ref10.cells,
|
|
276
|
+
ref = _ref10.ref;
|
|
277
|
+
return jsx("tr", {
|
|
278
|
+
key: key,
|
|
279
|
+
"data-testid": testId && "".concat(testId, "--row-").concat(key),
|
|
280
|
+
ref: ref
|
|
281
|
+
}, cells.map(function (_ref11, cellIndex) {
|
|
282
|
+
var key = _ref11.key,
|
|
283
|
+
content = _ref11.content;
|
|
284
|
+
return jsx("td", {
|
|
285
|
+
key: key,
|
|
286
|
+
"data-testid": testId && "".concat(testId, "--cell-").concat(cellIndex),
|
|
287
|
+
colSpan: cellIndex + 1 === cells.length ? 2 : undefined
|
|
288
|
+
}, content);
|
|
289
|
+
}));
|
|
290
|
+
}))));
|
|
291
|
+
};
|
|
292
|
+
export var EmptyState = TableEmptyState;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useIntl } from 'react-intl-next';
|
|
3
|
+
import TextRenderType from '../text';
|
|
4
|
+
import { booleanTypeMessages } from './messages';
|
|
5
|
+
export var BOOLEAN_TYPE_TEST_ID = 'link-datasource-render-type--boolean';
|
|
6
|
+
var BooleanRenderType = function BooleanRenderType(_ref) {
|
|
7
|
+
var value = _ref.value,
|
|
8
|
+
_ref$testId = _ref.testId,
|
|
9
|
+
testId = _ref$testId === void 0 ? BOOLEAN_TYPE_TEST_ID : _ref$testId;
|
|
10
|
+
var intl = useIntl();
|
|
11
|
+
if (typeof value !== 'boolean') {
|
|
12
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
13
|
+
}
|
|
14
|
+
var TRUTHY_TEXT = intl.formatMessage(booleanTypeMessages.booleanTruthyValue);
|
|
15
|
+
var FALSY_TEXT = intl.formatMessage(booleanTypeMessages.booleanFalsyValue);
|
|
16
|
+
return /*#__PURE__*/React.createElement(TextRenderType, {
|
|
17
|
+
text: value ? TRUTHY_TEXT : FALSY_TEXT,
|
|
18
|
+
testId: testId
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
export default BooleanRenderType;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
export var booleanTypeMessages = defineMessages({
|
|
3
|
+
booleanTruthyValue: {
|
|
4
|
+
id: 'linkDataSource.render-type.boolean.true',
|
|
5
|
+
description: 'Text to display for the boolean type when the value is true',
|
|
6
|
+
defaultMessage: 'Yes'
|
|
7
|
+
},
|
|
8
|
+
booleanFalsyValue: {
|
|
9
|
+
id: 'linkDataSource.render-type.boolean.false',
|
|
10
|
+
description: 'Text to display for the boolean type when the value is false',
|
|
11
|
+
defaultMessage: 'No'
|
|
12
|
+
}
|
|
13
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { useIntl } from 'react-intl-next';
|
|
6
|
+
export var DATETIME_TYPE_TEST_ID = 'link-datasource-render-type--datetime';
|
|
7
|
+
var dateOptions = {
|
|
8
|
+
month: 'short',
|
|
9
|
+
day: 'numeric',
|
|
10
|
+
year: 'numeric'
|
|
11
|
+
};
|
|
12
|
+
var timeOptions = {
|
|
13
|
+
hour12: false,
|
|
14
|
+
hour: '2-digit',
|
|
15
|
+
minute: '2-digit'
|
|
16
|
+
};
|
|
17
|
+
var DateTimeRenderType = function DateTimeRenderType(_ref) {
|
|
18
|
+
var value = _ref.value,
|
|
19
|
+
_ref$testId = _ref.testId,
|
|
20
|
+
testId = _ref$testId === void 0 ? DATETIME_TYPE_TEST_ID : _ref$testId,
|
|
21
|
+
_ref$display = _ref.display,
|
|
22
|
+
display = _ref$display === void 0 ? 'datetime' : _ref$display;
|
|
23
|
+
var date = new Date(value);
|
|
24
|
+
var intl = useIntl();
|
|
25
|
+
if (!value || isNaN(date.getTime())) {
|
|
26
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
27
|
+
}
|
|
28
|
+
var options = {
|
|
29
|
+
date: dateOptions,
|
|
30
|
+
time: timeOptions,
|
|
31
|
+
datetime: _objectSpread(_objectSpread({}, dateOptions), timeOptions)
|
|
32
|
+
};
|
|
33
|
+
var formattedString = intl.formatDate(date, options[display] || options['date']);
|
|
34
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
35
|
+
"data-testid": testId
|
|
36
|
+
}, formattedString);
|
|
37
|
+
};
|
|
38
|
+
export default DateTimeRenderType;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
+
var _templateObject;
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import styled from '@emotion/styled';
|
|
5
|
+
import Image from '@atlaskit/image';
|
|
6
|
+
var IconWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n"])));
|
|
7
|
+
export var ICON_TYPE_TEST_ID = 'link-datasource-render-type--icon';
|
|
8
|
+
var IconRenderType = function IconRenderType(_ref) {
|
|
9
|
+
var label = _ref.label,
|
|
10
|
+
source = _ref.source,
|
|
11
|
+
_ref$testId = _ref.testId,
|
|
12
|
+
testId = _ref$testId === void 0 ? ICON_TYPE_TEST_ID : _ref$testId;
|
|
13
|
+
var style = /svg/i.test(source) ? {
|
|
14
|
+
minWidth: '20px',
|
|
15
|
+
maxWidth: '20px'
|
|
16
|
+
} // having just width: '20px' shriks it when table width is reduced
|
|
17
|
+
: {};
|
|
18
|
+
return /*#__PURE__*/React.createElement(IconWrapper, null, /*#__PURE__*/React.createElement(Image, {
|
|
19
|
+
src: source,
|
|
20
|
+
alt: label,
|
|
21
|
+
"data-testid": testId,
|
|
22
|
+
style: style
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
25
|
+
export default IconRenderType;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import BooleanRenderType from './boolean';
|
|
3
|
+
import DateTimeRenderType from './date-time';
|
|
4
|
+
import IconRenderType from './icon';
|
|
5
|
+
import LinkRenderType from './link';
|
|
6
|
+
import NumberRenderType from './number';
|
|
7
|
+
import StatusRenderType from './status';
|
|
8
|
+
import TagRenderType from './tag';
|
|
9
|
+
import StringRenderType from './text';
|
|
10
|
+
import UserRenderType from './user';
|
|
11
|
+
export var fallbackRenderType = function fallbackRenderType(item) {
|
|
12
|
+
switch (item.type) {
|
|
13
|
+
case 'boolean':
|
|
14
|
+
return /*#__PURE__*/React.createElement(BooleanRenderType, {
|
|
15
|
+
value: item.value
|
|
16
|
+
});
|
|
17
|
+
case 'date':
|
|
18
|
+
return /*#__PURE__*/React.createElement(DateTimeRenderType, {
|
|
19
|
+
value: item.value,
|
|
20
|
+
display: "date"
|
|
21
|
+
});
|
|
22
|
+
case 'datetime':
|
|
23
|
+
return /*#__PURE__*/React.createElement(DateTimeRenderType, {
|
|
24
|
+
value: item.value,
|
|
25
|
+
display: "datetime"
|
|
26
|
+
});
|
|
27
|
+
case 'icon':
|
|
28
|
+
return /*#__PURE__*/React.createElement(IconRenderType, item.value);
|
|
29
|
+
case 'link':
|
|
30
|
+
return /*#__PURE__*/React.createElement(LinkRenderType, item.value);
|
|
31
|
+
case 'number':
|
|
32
|
+
return /*#__PURE__*/React.createElement(NumberRenderType, {
|
|
33
|
+
number: item.value
|
|
34
|
+
});
|
|
35
|
+
case 'status':
|
|
36
|
+
return /*#__PURE__*/React.createElement(StatusRenderType, item.value);
|
|
37
|
+
case 'string':
|
|
38
|
+
return /*#__PURE__*/React.createElement(StringRenderType, {
|
|
39
|
+
text: item.value
|
|
40
|
+
});
|
|
41
|
+
case 'tag':
|
|
42
|
+
return /*#__PURE__*/React.createElement(TagRenderType, {
|
|
43
|
+
text: item.value
|
|
44
|
+
});
|
|
45
|
+
case 'time':
|
|
46
|
+
return /*#__PURE__*/React.createElement(DateTimeRenderType, {
|
|
47
|
+
value: item.value,
|
|
48
|
+
display: "time"
|
|
49
|
+
});
|
|
50
|
+
case 'user':
|
|
51
|
+
return /*#__PURE__*/React.createElement(UserRenderType, item.value);
|
|
52
|
+
default:
|
|
53
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
import React, { useMemo } from 'react';
|
|
5
|
+
import { ErrorBoundary } from 'react-error-boundary';
|
|
6
|
+
import { Card } from '@atlaskit/smart-card';
|
|
7
|
+
import LinkUrl from '@atlaskit/smart-card/link-url';
|
|
8
|
+
import { N300 } from '@atlaskit/theme/colors';
|
|
9
|
+
import { h300 } from '@atlaskit/theme/typography';
|
|
10
|
+
var linkStyles = {
|
|
11
|
+
key: _objectSpread(_objectSpread({}, h300()), {}, {
|
|
12
|
+
color: "var(--ds-text-subtlest, ".concat(N300, ")"),
|
|
13
|
+
fontWeight: 600
|
|
14
|
+
})
|
|
15
|
+
};
|
|
16
|
+
export var LINK_TYPE_TEST_ID = 'link-datasource-render-type--link';
|
|
17
|
+
var LinkRenderType = function LinkRenderType(_ref) {
|
|
18
|
+
var linkType = _ref.linkType,
|
|
19
|
+
url = _ref.url,
|
|
20
|
+
text = _ref.text,
|
|
21
|
+
_ref$testId = _ref.testId,
|
|
22
|
+
testId = _ref$testId === void 0 ? LINK_TYPE_TEST_ID : _ref$testId;
|
|
23
|
+
var style = useMemo(function () {
|
|
24
|
+
return linkType && linkStyles[linkType] || {};
|
|
25
|
+
}, [linkType]);
|
|
26
|
+
var anchor = useMemo(function () {
|
|
27
|
+
return /*#__PURE__*/React.createElement(LinkUrl, {
|
|
28
|
+
href: url,
|
|
29
|
+
style: style,
|
|
30
|
+
"data-testid": testId
|
|
31
|
+
}, text || url);
|
|
32
|
+
}, [style, url, text, testId]);
|
|
33
|
+
var SmartCard = function SmartCard() {
|
|
34
|
+
return /*#__PURE__*/React.createElement(ErrorBoundary, {
|
|
35
|
+
fallback: anchor
|
|
36
|
+
}, /*#__PURE__*/React.createElement(Card, {
|
|
37
|
+
appearance: "inline",
|
|
38
|
+
url: url,
|
|
39
|
+
testId: testId
|
|
40
|
+
}));
|
|
41
|
+
};
|
|
42
|
+
return text ? anchor : /*#__PURE__*/React.createElement(SmartCard, null);
|
|
43
|
+
};
|
|
44
|
+
export default /*#__PURE__*/React.memo(LinkRenderType);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export var NUMBER_TYPE_TEST_ID = 'link-datasource-render-type--number';
|
|
3
|
+
var NumberRenderType = function NumberRenderType(_ref) {
|
|
4
|
+
var number = _ref.number,
|
|
5
|
+
_ref$testId = _ref.testId,
|
|
6
|
+
testId = _ref$testId === void 0 ? NUMBER_TYPE_TEST_ID : _ref$testId;
|
|
7
|
+
if (typeof number !== 'number') {
|
|
8
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
9
|
+
}
|
|
10
|
+
var formattedNumber = Number.isInteger(number) ? number : "".concat(number.toFixed(2));
|
|
11
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
12
|
+
"data-testid": testId
|
|
13
|
+
}, formattedNumber);
|
|
14
|
+
};
|
|
15
|
+
export default NumberRenderType;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Lozenge from '@atlaskit/lozenge';
|
|
3
|
+
export var STATUS_TYPE_TEST_ID = 'link-datasource-render-type--status';
|
|
4
|
+
var StatusRenderType = function StatusRenderType(_ref) {
|
|
5
|
+
var text = _ref.text,
|
|
6
|
+
status = _ref.status,
|
|
7
|
+
_ref$testId = _ref.testId,
|
|
8
|
+
testId = _ref$testId === void 0 ? STATUS_TYPE_TEST_ID : _ref$testId,
|
|
9
|
+
style = _ref.style;
|
|
10
|
+
if (!text) {
|
|
11
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
12
|
+
}
|
|
13
|
+
return /*#__PURE__*/React.createElement(Lozenge, {
|
|
14
|
+
appearance: status,
|
|
15
|
+
testId: testId,
|
|
16
|
+
style: style
|
|
17
|
+
}, text);
|
|
18
|
+
};
|
|
19
|
+
export default StatusRenderType;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SimpleTag as Tag } from '@atlaskit/tag';
|
|
3
|
+
export var TAG_TYPE_TEST_ID = 'link-datasource-render-type--tag';
|
|
4
|
+
var TagRenderType = function TagRenderType(_ref) {
|
|
5
|
+
var text = _ref.text,
|
|
6
|
+
_ref$testId = _ref.testId,
|
|
7
|
+
testId = _ref$testId === void 0 ? TAG_TYPE_TEST_ID : _ref$testId;
|
|
8
|
+
if (!text) {
|
|
9
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
10
|
+
}
|
|
11
|
+
return /*#__PURE__*/React.createElement(Tag, {
|
|
12
|
+
text: text,
|
|
13
|
+
testId: testId,
|
|
14
|
+
appearance: 'default',
|
|
15
|
+
color: 'standard'
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
export default TagRenderType;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export var TEXT_TYPE_TEST_ID = 'link-datasource-render-type--text';
|
|
3
|
+
var TextRenderType = function TextRenderType(_ref) {
|
|
4
|
+
var text = _ref.text,
|
|
5
|
+
_ref$testId = _ref.testId,
|
|
6
|
+
testId = _ref$testId === void 0 ? TEXT_TYPE_TEST_ID : _ref$testId;
|
|
7
|
+
if (!text) {
|
|
8
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
9
|
+
}
|
|
10
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
11
|
+
"data-testid": testId
|
|
12
|
+
}, text);
|
|
13
|
+
};
|
|
14
|
+
export default TextRenderType;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
+
var _templateObject, _templateObject2;
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import styled from '@emotion/styled';
|
|
5
|
+
import { FormattedMessage } from 'react-intl-next';
|
|
6
|
+
import Avatar from '@atlaskit/avatar';
|
|
7
|
+
import { userTypeMessages } from './messages';
|
|
8
|
+
var UserWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n"])));
|
|
9
|
+
var AvatarWrapper = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-right: 5px;\n"])));
|
|
10
|
+
export var USER_TYPE_TEST_ID = 'link-datasource-render-type--user';
|
|
11
|
+
var UserType = function UserType(_ref) {
|
|
12
|
+
var avatarSource = _ref.avatarSource,
|
|
13
|
+
_ref$avatarSize = _ref.avatarSize,
|
|
14
|
+
avatarSize = _ref$avatarSize === void 0 ? 'small' : _ref$avatarSize,
|
|
15
|
+
displayName = _ref.displayName,
|
|
16
|
+
_ref$testId = _ref.testId,
|
|
17
|
+
testId = _ref$testId === void 0 ? USER_TYPE_TEST_ID : _ref$testId,
|
|
18
|
+
children = _ref.children;
|
|
19
|
+
return /*#__PURE__*/React.createElement(UserWrapper, {
|
|
20
|
+
"data-testid": testId
|
|
21
|
+
}, /*#__PURE__*/React.createElement(AvatarWrapper, null, /*#__PURE__*/React.createElement(Avatar, {
|
|
22
|
+
appearance: "circle",
|
|
23
|
+
size: avatarSize,
|
|
24
|
+
src: avatarSource
|
|
25
|
+
})), children || displayName || /*#__PURE__*/React.createElement(FormattedMessage, userTypeMessages.userDefaultdisplayNameValue));
|
|
26
|
+
};
|
|
27
|
+
export default UserType;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
export var userTypeMessages = defineMessages({
|
|
3
|
+
userDefaultdisplayNameValue: {
|
|
4
|
+
id: 'linkDataSource.render-type.user.default.display.name',
|
|
5
|
+
description: 'Text to display for the user type when no display value is provided',
|
|
6
|
+
defaultMessage: 'Unassigned'
|
|
7
|
+
}
|
|
8
|
+
});
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
+
var _templateObject;
|
|
3
|
+
import styled from '@emotion/styled';
|
|
4
|
+
export var TableHeading = styled.th(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n padding-block: ", ";\n line-height: ", ";\n"])), "var(--ds-space-100, 8px)", "var(--ds-font-lineHeight-300, 24px)");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|