@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,125 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
5
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
6
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
7
|
+
import { useDatasourceClientExtension } from '@atlaskit/link-client-extension';
|
|
8
|
+
export var useDatasourceTableState = function useDatasourceTableState(datasourceId, parameters, fields) {
|
|
9
|
+
var _useState = useState([]),
|
|
10
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
11
|
+
defaultVisibleColumnKeys = _useState2[0],
|
|
12
|
+
setDefaultVisibleColumnKeys = _useState2[1];
|
|
13
|
+
var _useState3 = useState('empty'),
|
|
14
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
15
|
+
status = _useState4[0],
|
|
16
|
+
setStatus = _useState4[1];
|
|
17
|
+
var _useState5 = useState([]),
|
|
18
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
19
|
+
responseItems = _useState6[0],
|
|
20
|
+
setResponseItems = _useState6[1];
|
|
21
|
+
var _useState7 = useState(true),
|
|
22
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
23
|
+
hasNextPage = _useState8[0],
|
|
24
|
+
setHasNextPage = _useState8[1];
|
|
25
|
+
var _useState9 = useState(undefined),
|
|
26
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
27
|
+
nextCursor = _useState10[0],
|
|
28
|
+
setNextCursor = _useState10[1];
|
|
29
|
+
var _useState11 = useState([]),
|
|
30
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
31
|
+
columns = _useState12[0],
|
|
32
|
+
setColumns = _useState12[1];
|
|
33
|
+
var _useState13 = useState(undefined),
|
|
34
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
35
|
+
totalIssueCount = _useState14[0],
|
|
36
|
+
setTotalIssueCount = _useState14[1];
|
|
37
|
+
var _useDatasourceClientE = useDatasourceClientExtension(),
|
|
38
|
+
getDatasourceData = _useDatasourceClientE.getDatasourceData,
|
|
39
|
+
getDatasourceDetails = _useDatasourceClientE.getDatasourceDetails;
|
|
40
|
+
var loadDatasourceDetails = useCallback( /*#__PURE__*/function () {
|
|
41
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
|
|
42
|
+
var _getDatasourceDetails;
|
|
43
|
+
var cloudId, parameterValue, parameterType, result;
|
|
44
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
45
|
+
while (1) switch (_context.prev = _context.next) {
|
|
46
|
+
case 0:
|
|
47
|
+
cloudId = _ref.cloudId, parameterValue = _ref.value, parameterType = _ref.type;
|
|
48
|
+
_context.next = 3;
|
|
49
|
+
return getDatasourceDetails(datasourceId, (_getDatasourceDetails = {}, _defineProperty(_getDatasourceDetails, parameterType, parameterValue), _defineProperty(_getDatasourceDetails, "cloudId", cloudId), _getDatasourceDetails));
|
|
50
|
+
case 3:
|
|
51
|
+
result = _context.sent;
|
|
52
|
+
setColumns(result.schema.properties);
|
|
53
|
+
setDefaultVisibleColumnKeys(result.schema.defaultProperties);
|
|
54
|
+
case 6:
|
|
55
|
+
case "end":
|
|
56
|
+
return _context.stop();
|
|
57
|
+
}
|
|
58
|
+
}, _callee);
|
|
59
|
+
}));
|
|
60
|
+
return function (_x) {
|
|
61
|
+
return _ref2.apply(this, arguments);
|
|
62
|
+
};
|
|
63
|
+
}(), [datasourceId, getDatasourceDetails]);
|
|
64
|
+
useEffect(function () {
|
|
65
|
+
if (parameters) {
|
|
66
|
+
void loadDatasourceDetails(parameters);
|
|
67
|
+
}
|
|
68
|
+
}, [loadDatasourceDetails, parameters]);
|
|
69
|
+
var onNextPage = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
70
|
+
var cloudId, parameterValue, parameterType, _yield$getDatasourceD, data, nextPageCursor, totalIssues;
|
|
71
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
72
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
73
|
+
case 0:
|
|
74
|
+
if (parameters) {
|
|
75
|
+
_context2.next = 2;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
return _context2.abrupt("return");
|
|
79
|
+
case 2:
|
|
80
|
+
cloudId = parameters.cloudId, parameterValue = parameters.value, parameterType = parameters.type;
|
|
81
|
+
setStatus('loading');
|
|
82
|
+
_context2.next = 6;
|
|
83
|
+
return getDatasourceData(datasourceId, {
|
|
84
|
+
parameters: _defineProperty({
|
|
85
|
+
cloudId: cloudId
|
|
86
|
+
}, parameterType, parameterValue),
|
|
87
|
+
pageSize: 10,
|
|
88
|
+
pageCursor: nextCursor,
|
|
89
|
+
fields: fields
|
|
90
|
+
});
|
|
91
|
+
case 6:
|
|
92
|
+
_yield$getDatasourceD = _context2.sent;
|
|
93
|
+
data = _yield$getDatasourceD.data;
|
|
94
|
+
nextPageCursor = _yield$getDatasourceD.nextPageCursor;
|
|
95
|
+
totalIssues = _yield$getDatasourceD.totalIssues;
|
|
96
|
+
setTotalIssueCount(totalIssues);
|
|
97
|
+
setNextCursor(nextPageCursor);
|
|
98
|
+
setResponseItems(function (currentResponseItems) {
|
|
99
|
+
return [].concat(_toConsumableArray(currentResponseItems), _toConsumableArray(data));
|
|
100
|
+
});
|
|
101
|
+
setStatus('resolved');
|
|
102
|
+
setHasNextPage(Boolean(nextPageCursor));
|
|
103
|
+
case 15:
|
|
104
|
+
case "end":
|
|
105
|
+
return _context2.stop();
|
|
106
|
+
}
|
|
107
|
+
}, _callee2);
|
|
108
|
+
})), [parameters, getDatasourceData, datasourceId, nextCursor, fields]);
|
|
109
|
+
var reset = useCallback(function () {
|
|
110
|
+
setStatus('empty');
|
|
111
|
+
setResponseItems([]);
|
|
112
|
+
setHasNextPage(true);
|
|
113
|
+
setTotalIssueCount(undefined);
|
|
114
|
+
}, []);
|
|
115
|
+
return {
|
|
116
|
+
status: status,
|
|
117
|
+
onNextPage: onNextPage,
|
|
118
|
+
responseItems: responseItems,
|
|
119
|
+
reset: reset,
|
|
120
|
+
hasNextPage: hasNextPage,
|
|
121
|
+
columns: columns,
|
|
122
|
+
defaultVisibleColumnKeys: defaultVisibleColumnKeys,
|
|
123
|
+
totalIssueCount: totalIssueCount
|
|
124
|
+
};
|
|
125
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
export var getAvailableJiraSites = /*#__PURE__*/function () {
|
|
4
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
5
|
+
var requestConfig, response, res;
|
|
6
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
7
|
+
while (1) switch (_context.prev = _context.next) {
|
|
8
|
+
case 0:
|
|
9
|
+
requestConfig = {
|
|
10
|
+
method: 'POST',
|
|
11
|
+
credentials: 'include',
|
|
12
|
+
headers: {
|
|
13
|
+
Accept: 'application/json',
|
|
14
|
+
'Cache-Control': 'no-cache',
|
|
15
|
+
'Content-Type': 'application/json'
|
|
16
|
+
},
|
|
17
|
+
body: JSON.stringify({
|
|
18
|
+
products: ['jira-software.ondemand', 'jira-core.ondemand', 'jira-incident-manager.ondemand', 'jira-product-discovery', 'jira-servicedesk.ondemand']
|
|
19
|
+
})
|
|
20
|
+
};
|
|
21
|
+
_context.next = 3;
|
|
22
|
+
return fetch("/gateway/api/available-sites", requestConfig);
|
|
23
|
+
case 3:
|
|
24
|
+
response = _context.sent;
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
_context.next = 9;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
_context.next = 7;
|
|
30
|
+
return response.json();
|
|
31
|
+
case 7:
|
|
32
|
+
res = _context.sent;
|
|
33
|
+
return _context.abrupt("return", res.sites);
|
|
34
|
+
case 9:
|
|
35
|
+
_context.t0 = Error;
|
|
36
|
+
_context.next = 12;
|
|
37
|
+
return response.text();
|
|
38
|
+
case 12:
|
|
39
|
+
_context.t1 = _context.sent;
|
|
40
|
+
if (_context.t1) {
|
|
41
|
+
_context.next = 15;
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
_context.t1 = 'Something went wrong';
|
|
45
|
+
case 15:
|
|
46
|
+
_context.t2 = _context.t1;
|
|
47
|
+
throw new _context.t0(_context.t2);
|
|
48
|
+
case 17:
|
|
49
|
+
case "end":
|
|
50
|
+
return _context.stop();
|
|
51
|
+
}
|
|
52
|
+
}, _callee);
|
|
53
|
+
}));
|
|
54
|
+
return function getAvailableJiraSites() {
|
|
55
|
+
return _ref.apply(this, arguments);
|
|
56
|
+
};
|
|
57
|
+
}();
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
export var makeGetJqlAutocompleteData = function makeGetJqlAutocompleteData(cloudId) {
|
|
4
|
+
return /*#__PURE__*/function () {
|
|
5
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(url) {
|
|
6
|
+
var response, data;
|
|
7
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
8
|
+
while (1) switch (_context.prev = _context.next) {
|
|
9
|
+
case 0:
|
|
10
|
+
_context.next = 2;
|
|
11
|
+
return fetch("/gateway/api/ex/jira/".concat(cloudId, "/").concat(url), {
|
|
12
|
+
method: 'POST',
|
|
13
|
+
headers: {
|
|
14
|
+
'content-type': 'application/json'
|
|
15
|
+
},
|
|
16
|
+
body: JSON.stringify({
|
|
17
|
+
includeCollapsedFields: true
|
|
18
|
+
})
|
|
19
|
+
});
|
|
20
|
+
case 2:
|
|
21
|
+
response = _context.sent;
|
|
22
|
+
if (!response.ok) {
|
|
23
|
+
_context.next = 8;
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
_context.next = 6;
|
|
27
|
+
return response.json();
|
|
28
|
+
case 6:
|
|
29
|
+
data = _context.sent;
|
|
30
|
+
return _context.abrupt("return", {
|
|
31
|
+
jqlFields: data.visibleFieldNames,
|
|
32
|
+
jqlFunctions: data.visibleFunctionNames
|
|
33
|
+
});
|
|
34
|
+
case 8:
|
|
35
|
+
_context.t0 = Error;
|
|
36
|
+
_context.next = 11;
|
|
37
|
+
return response.text();
|
|
38
|
+
case 11:
|
|
39
|
+
_context.t1 = _context.sent;
|
|
40
|
+
if (_context.t1) {
|
|
41
|
+
_context.next = 14;
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
_context.t1 = 'Something went wrong';
|
|
45
|
+
case 14:
|
|
46
|
+
_context.t2 = _context.t1;
|
|
47
|
+
throw new _context.t0(_context.t2);
|
|
48
|
+
case 16:
|
|
49
|
+
case "end":
|
|
50
|
+
return _context.stop();
|
|
51
|
+
}
|
|
52
|
+
}, _callee);
|
|
53
|
+
}));
|
|
54
|
+
return function (_x) {
|
|
55
|
+
return _ref.apply(this, arguments);
|
|
56
|
+
};
|
|
57
|
+
}();
|
|
58
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
export var makeGetJqlSuggestionsData = function makeGetJqlSuggestionsData(cloudId) {
|
|
4
|
+
return /*#__PURE__*/function () {
|
|
5
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(url) {
|
|
6
|
+
var response;
|
|
7
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
8
|
+
while (1) switch (_context.prev = _context.next) {
|
|
9
|
+
case 0:
|
|
10
|
+
_context.next = 2;
|
|
11
|
+
return fetch("/gateway/api/ex/jira/".concat(cloudId, "/").concat(url), {
|
|
12
|
+
headers: {
|
|
13
|
+
'content-type': 'application/json'
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
case 2:
|
|
17
|
+
response = _context.sent;
|
|
18
|
+
if (!response.ok) {
|
|
19
|
+
_context.next = 5;
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
return _context.abrupt("return", response.json());
|
|
23
|
+
case 5:
|
|
24
|
+
_context.t0 = Error;
|
|
25
|
+
_context.next = 8;
|
|
26
|
+
return response.text();
|
|
27
|
+
case 8:
|
|
28
|
+
_context.t1 = _context.sent;
|
|
29
|
+
if (_context.t1) {
|
|
30
|
+
_context.next = 11;
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
_context.t1 = 'Something went wrong';
|
|
34
|
+
case 11:
|
|
35
|
+
_context.t2 = _context.t1;
|
|
36
|
+
throw new _context.t0(_context.t2);
|
|
37
|
+
case 13:
|
|
38
|
+
case "end":
|
|
39
|
+
return _context.stop();
|
|
40
|
+
}
|
|
41
|
+
}, _callee);
|
|
42
|
+
}));
|
|
43
|
+
return function (_x) {
|
|
44
|
+
return _ref.apply(this, arguments);
|
|
45
|
+
};
|
|
46
|
+
}();
|
|
47
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
var _excluded = ["isOpen"];
|
|
4
|
+
/** @jsx jsx */
|
|
5
|
+
import { useCallback, useMemo } from 'react';
|
|
6
|
+
import { jsx } from '@emotion/react';
|
|
7
|
+
import Button from '@atlaskit/button/standard-button';
|
|
8
|
+
import BoardIcon from '@atlaskit/icon/glyph/board';
|
|
9
|
+
import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
|
|
10
|
+
import { CheckboxOption, PopupSelect } from '@atlaskit/select';
|
|
11
|
+
export var ColumnPicker = function ColumnPicker(_ref) {
|
|
12
|
+
var columns = _ref.columns,
|
|
13
|
+
selectedColumnKeys = _ref.selectedColumnKeys,
|
|
14
|
+
onSelectedColumnKeysChange = _ref.onSelectedColumnKeysChange;
|
|
15
|
+
var mapColumnToOption = useCallback(function (_ref2) {
|
|
16
|
+
var key = _ref2.key,
|
|
17
|
+
title = _ref2.title;
|
|
18
|
+
return {
|
|
19
|
+
label: title,
|
|
20
|
+
value: key
|
|
21
|
+
};
|
|
22
|
+
}, []);
|
|
23
|
+
var selectedOptions = columns.filter(function (_ref3) {
|
|
24
|
+
var key = _ref3.key;
|
|
25
|
+
return selectedColumnKeys.includes(key);
|
|
26
|
+
}).map(mapColumnToOption);
|
|
27
|
+
var allOptions = useMemo(function () {
|
|
28
|
+
return columns.filter(function (_ref4) {
|
|
29
|
+
var title = _ref4.title,
|
|
30
|
+
key = _ref4.key;
|
|
31
|
+
return title;
|
|
32
|
+
}).map(mapColumnToOption);
|
|
33
|
+
}, [columns, mapColumnToOption]);
|
|
34
|
+
var handleChange = useCallback(function (selectedOptions) {
|
|
35
|
+
var selectedValues = selectedOptions.map(function (_ref5) {
|
|
36
|
+
var value = _ref5.value;
|
|
37
|
+
return value;
|
|
38
|
+
});
|
|
39
|
+
selectedValues.sort(function (a, b) {
|
|
40
|
+
var indexB = columns.findIndex(function (_ref6) {
|
|
41
|
+
var key = _ref6.key;
|
|
42
|
+
return key === b;
|
|
43
|
+
});
|
|
44
|
+
var indexA = columns.findIndex(function (_ref7) {
|
|
45
|
+
var key = _ref7.key;
|
|
46
|
+
return key === a;
|
|
47
|
+
});
|
|
48
|
+
return indexA - indexB;
|
|
49
|
+
});
|
|
50
|
+
onSelectedColumnKeysChange(selectedValues);
|
|
51
|
+
}, [columns, onSelectedColumnKeysChange]);
|
|
52
|
+
return jsx(PopupSelect, {
|
|
53
|
+
classNamePrefix: 'column-picker-popup',
|
|
54
|
+
testId: 'column-picker-popup',
|
|
55
|
+
components: {
|
|
56
|
+
Option: CheckboxOption
|
|
57
|
+
},
|
|
58
|
+
options: allOptions,
|
|
59
|
+
value: selectedOptions,
|
|
60
|
+
closeMenuOnSelect: false,
|
|
61
|
+
hideSelectedOptions: false,
|
|
62
|
+
isMulti: true,
|
|
63
|
+
placeholder: "Search for fields" // TODO Translate
|
|
64
|
+
,
|
|
65
|
+
"aria-label": "Search for fields",
|
|
66
|
+
onChange: handleChange,
|
|
67
|
+
target: function target(_ref8) {
|
|
68
|
+
var isOpen = _ref8.isOpen,
|
|
69
|
+
triggerProps = _objectWithoutProperties(_ref8, _excluded);
|
|
70
|
+
return jsx(Button, _extends({}, triggerProps, {
|
|
71
|
+
isSelected: isOpen,
|
|
72
|
+
iconBefore: jsx("div", null, jsx(BoardIcon, {
|
|
73
|
+
label: "board",
|
|
74
|
+
size: "small"
|
|
75
|
+
}), jsx(ChevronDownIcon, {
|
|
76
|
+
label: "down",
|
|
77
|
+
size: "small"
|
|
78
|
+
})),
|
|
79
|
+
spacing: "compact",
|
|
80
|
+
appearance: "subtle",
|
|
81
|
+
testId: "column-picker-trigger-button"
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
/** @jsx jsx */
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { css, jsx } from '@emotion/react';
|
|
5
|
+
import invariant from 'tiny-invariant';
|
|
6
|
+
import DragHandlerIcon from '@atlaskit/icon/glyph/drag-handler';
|
|
7
|
+
import { attachClosestEdge, extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/addon/closest-edge';
|
|
8
|
+
import { DropIndicator } from '@atlaskit/pragmatic-drag-and-drop-react-indicator/box';
|
|
9
|
+
import { draggable, dropTargetForElements, monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/adapter/element';
|
|
10
|
+
import { combine } from '@atlaskit/pragmatic-drag-and-drop/util/combine';
|
|
11
|
+
import { TableHeading } from './styled';
|
|
12
|
+
var tableHeadingStyles = css({
|
|
13
|
+
cursor: 'grab'
|
|
14
|
+
});
|
|
15
|
+
var tableHeadingStatusStyles = {
|
|
16
|
+
idle: css({
|
|
17
|
+
':hover': {
|
|
18
|
+
background: "var(--ds-surface-hovered, #091E4224)"
|
|
19
|
+
}
|
|
20
|
+
}),
|
|
21
|
+
dragging: css({
|
|
22
|
+
background: "var(--ds-background-disabled, #091E4224)",
|
|
23
|
+
color: "var(--ds-text-disabled, #091E424F)"
|
|
24
|
+
})
|
|
25
|
+
};
|
|
26
|
+
var verticallyAlignedStyles = css({
|
|
27
|
+
display: 'flex',
|
|
28
|
+
alignItems: 'center',
|
|
29
|
+
whiteSpace: 'nowrap'
|
|
30
|
+
});
|
|
31
|
+
var dragHandleStyles = css({
|
|
32
|
+
position: 'relative',
|
|
33
|
+
display: 'flex',
|
|
34
|
+
alignItems: 'center'
|
|
35
|
+
});
|
|
36
|
+
var dropTargetStyles = css({
|
|
37
|
+
position: 'absolute',
|
|
38
|
+
top: 0,
|
|
39
|
+
left: 0,
|
|
40
|
+
width: '100%'
|
|
41
|
+
});
|
|
42
|
+
var noPointerEventsStyles = css({
|
|
43
|
+
pointerEvents: 'none'
|
|
44
|
+
});
|
|
45
|
+
export var DraggableTableHeading = function DraggableTableHeading(_ref) {
|
|
46
|
+
var children = _ref.children,
|
|
47
|
+
id = _ref.id,
|
|
48
|
+
index = _ref.index,
|
|
49
|
+
tableId = _ref.tableId,
|
|
50
|
+
dndPreviewHeight = _ref.dndPreviewHeight,
|
|
51
|
+
onDragPreviewStart = _ref.onDragPreviewStart,
|
|
52
|
+
onDragPreviewEnd = _ref.onDragPreviewEnd;
|
|
53
|
+
var ref = useRef(null);
|
|
54
|
+
var _useState = useState('idle'),
|
|
55
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
56
|
+
status = _useState2[0],
|
|
57
|
+
setStatus = _useState2[1];
|
|
58
|
+
var _useState3 = useState(false),
|
|
59
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
60
|
+
isDraggingAnyColumn = _useState4[0],
|
|
61
|
+
setIsDraggingAnyColumn = _useState4[1];
|
|
62
|
+
var _useState5 = useState(null),
|
|
63
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
64
|
+
closestEdge = _useState6[0],
|
|
65
|
+
setClosestEdge = _useState6[1];
|
|
66
|
+
var dropTargetRef = useRef(null);
|
|
67
|
+
useEffect(function () {
|
|
68
|
+
var cell = ref.current;
|
|
69
|
+
invariant(cell);
|
|
70
|
+
return combine(draggable({
|
|
71
|
+
element: cell,
|
|
72
|
+
getInitialData: function getInitialData() {
|
|
73
|
+
return {
|
|
74
|
+
type: 'table-header',
|
|
75
|
+
id: id,
|
|
76
|
+
index: index,
|
|
77
|
+
tableId: tableId
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
onGenerateDragPreview: function onGenerateDragPreview() {
|
|
81
|
+
setStatus('preview');
|
|
82
|
+
onDragPreviewStart();
|
|
83
|
+
},
|
|
84
|
+
onDragStart: function onDragStart() {
|
|
85
|
+
setStatus('dragging');
|
|
86
|
+
onDragPreviewEnd();
|
|
87
|
+
},
|
|
88
|
+
onDrop: function onDrop() {
|
|
89
|
+
setStatus('idle');
|
|
90
|
+
}
|
|
91
|
+
}));
|
|
92
|
+
}, [id, index, onDragPreviewEnd, onDragPreviewStart, tableId]);
|
|
93
|
+
|
|
94
|
+
// Here we handle drop target, that in our case is absolutely positioned div that covers full width and height
|
|
95
|
+
// of this column (has height of whole table). It sits on top of everything, but has `pointerEvents: 'none'` by default
|
|
96
|
+
useEffect(function () {
|
|
97
|
+
var dropTarget = dropTargetRef.current;
|
|
98
|
+
invariant(dropTarget);
|
|
99
|
+
return dropTargetForElements({
|
|
100
|
+
element: dropTarget,
|
|
101
|
+
getIsSticky: function getIsSticky() {
|
|
102
|
+
return true;
|
|
103
|
+
},
|
|
104
|
+
getData: function getData(_ref2) {
|
|
105
|
+
var input = _ref2.input,
|
|
106
|
+
element = _ref2.element;
|
|
107
|
+
var data = {
|
|
108
|
+
id: id,
|
|
109
|
+
index: index
|
|
110
|
+
};
|
|
111
|
+
return attachClosestEdge(data, {
|
|
112
|
+
input: input,
|
|
113
|
+
element: element,
|
|
114
|
+
allowedEdges: ['left', 'right']
|
|
115
|
+
});
|
|
116
|
+
},
|
|
117
|
+
canDrop: function canDrop(args) {
|
|
118
|
+
return args.source.data.type === 'table-header' && args.source.data.tableId === tableId;
|
|
119
|
+
},
|
|
120
|
+
onDrag: function onDrag(args) {
|
|
121
|
+
if (args.source.data.id !== id) {
|
|
122
|
+
setClosestEdge(extractClosestEdge(args.self.data));
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
onDragLeave: function onDragLeave() {
|
|
126
|
+
setClosestEdge(null);
|
|
127
|
+
},
|
|
128
|
+
onDrop: function onDrop() {
|
|
129
|
+
setClosestEdge(null);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}, [id, index, tableId]);
|
|
133
|
+
|
|
134
|
+
// During dragging anywhere we want to remove `pointerEvents: 'none'` from all the drop targets
|
|
135
|
+
useEffect(function () {
|
|
136
|
+
return monitorForElements({
|
|
137
|
+
canMonitor: function canMonitor(_ref3) {
|
|
138
|
+
var source = _ref3.source;
|
|
139
|
+
return source.data.type === 'table-header' && source.data.tableId === tableId;
|
|
140
|
+
},
|
|
141
|
+
onDragStart: function onDragStart() {
|
|
142
|
+
/**
|
|
143
|
+
* Should cause a synchronous re-render.
|
|
144
|
+
*/
|
|
145
|
+
setIsDraggingAnyColumn(true);
|
|
146
|
+
},
|
|
147
|
+
onDrop: function onDrop() {
|
|
148
|
+
setIsDraggingAnyColumn(false);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}, [tableId]);
|
|
152
|
+
return jsx(TableHeading, {
|
|
153
|
+
ref: ref,
|
|
154
|
+
css: [tableHeadingStyles, tableHeadingStatusStyles[status]],
|
|
155
|
+
"data-testid": "".concat(id, "-column-heading")
|
|
156
|
+
}, jsx("div", {
|
|
157
|
+
ref: dropTargetRef,
|
|
158
|
+
css: [dropTargetStyles, isDraggingAnyColumn ? null : noPointerEventsStyles],
|
|
159
|
+
style: {
|
|
160
|
+
height: "".concat(dndPreviewHeight, "px")
|
|
161
|
+
},
|
|
162
|
+
"data-testid": 'column-drop-target'
|
|
163
|
+
}, closestEdge && jsx(DropIndicator, {
|
|
164
|
+
edge: closestEdge
|
|
165
|
+
})), jsx("div", {
|
|
166
|
+
css: verticallyAlignedStyles
|
|
167
|
+
}, jsx("div", {
|
|
168
|
+
css: dragHandleStyles
|
|
169
|
+
}, jsx(DragHandlerIcon, {
|
|
170
|
+
label: "".concat(id, "-drag-icon"),
|
|
171
|
+
size: "medium"
|
|
172
|
+
})), children));
|
|
173
|
+
};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
4
|
+
import { Skeleton } from '@atlaskit/linking-common';
|
|
5
|
+
import UserType from '../render-type/user';
|
|
6
|
+
import { TableHeading } from '../styled';
|
|
7
|
+
import Priority from './priority';
|
|
8
|
+
import Type from './type';
|
|
9
|
+
var columns = [{
|
|
10
|
+
key: 'type',
|
|
11
|
+
title: 'Type'
|
|
12
|
+
}, {
|
|
13
|
+
key: 'issue',
|
|
14
|
+
title: 'Key',
|
|
15
|
+
width: 50
|
|
16
|
+
}, {
|
|
17
|
+
key: 'summary',
|
|
18
|
+
title: 'Summary'
|
|
19
|
+
}, {
|
|
20
|
+
key: 'assignee',
|
|
21
|
+
title: 'Assignee',
|
|
22
|
+
width: 100
|
|
23
|
+
}, {
|
|
24
|
+
key: 'priority',
|
|
25
|
+
title: 'P'
|
|
26
|
+
}, {
|
|
27
|
+
key: 'status',
|
|
28
|
+
title: 'Status'
|
|
29
|
+
}, {
|
|
30
|
+
key: 'resolution',
|
|
31
|
+
title: 'Resolution'
|
|
32
|
+
}, {
|
|
33
|
+
key: 'created',
|
|
34
|
+
title: 'Created'
|
|
35
|
+
}, {
|
|
36
|
+
key: 'due',
|
|
37
|
+
title: 'Updated'
|
|
38
|
+
}];
|
|
39
|
+
var priorities = ['low', 'medium', 'high', 'medium', 'low', 'blocker', 'medium', 'blocker', 'high', 'low'];
|
|
40
|
+
var types = ['task', 'story', 'commit', 'epic', 'bug', 'task', 'story', 'commit', 'issue', 'epic'];
|
|
41
|
+
var summaryColumnWidths = [141, 208, 186, 212, 212, 151, 212, 182, 180, 147];
|
|
42
|
+
var statusColumnWidths = [75, 54, 66, 73, 52, 73, 55, 80, 66, 59];
|
|
43
|
+
var rows = new Array(10).fill(null).map(function (_, index) {
|
|
44
|
+
return {
|
|
45
|
+
id: index,
|
|
46
|
+
priority: priorities[index],
|
|
47
|
+
type: types[index],
|
|
48
|
+
summaryWidth: summaryColumnWidths[index],
|
|
49
|
+
statusWidth: statusColumnWidths[index]
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
export default (function (props) {
|
|
53
|
+
var renderItem = useCallback(function (_ref, _ref2) {
|
|
54
|
+
var key = _ref.key,
|
|
55
|
+
width = _ref.width;
|
|
56
|
+
var priority = _ref2.priority,
|
|
57
|
+
type = _ref2.type,
|
|
58
|
+
summaryWidth = _ref2.summaryWidth,
|
|
59
|
+
statusWidth = _ref2.statusWidth;
|
|
60
|
+
switch (key) {
|
|
61
|
+
case 'assignee':
|
|
62
|
+
return jsx(UserType, null, jsx(Skeleton, {
|
|
63
|
+
width: width,
|
|
64
|
+
height: 13,
|
|
65
|
+
borderRadius: 8
|
|
66
|
+
}));
|
|
67
|
+
case 'priority':
|
|
68
|
+
return jsx(Priority, {
|
|
69
|
+
priority: priority
|
|
70
|
+
});
|
|
71
|
+
case 'type':
|
|
72
|
+
return jsx(Type, {
|
|
73
|
+
type: type
|
|
74
|
+
});
|
|
75
|
+
case 'summary':
|
|
76
|
+
return jsx(Skeleton, {
|
|
77
|
+
appearance: "blue",
|
|
78
|
+
width: summaryWidth,
|
|
79
|
+
borderRadius: 10,
|
|
80
|
+
height: 13
|
|
81
|
+
});
|
|
82
|
+
case 'status':
|
|
83
|
+
return jsx(Skeleton, {
|
|
84
|
+
appearance: "blue",
|
|
85
|
+
width: statusWidth,
|
|
86
|
+
height: 16,
|
|
87
|
+
borderRadius: 3
|
|
88
|
+
});
|
|
89
|
+
default:
|
|
90
|
+
return jsx(Skeleton, {
|
|
91
|
+
width: width,
|
|
92
|
+
height: 13,
|
|
93
|
+
borderRadius: 8
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}, []);
|
|
97
|
+
return jsx("table", {
|
|
98
|
+
"data-testid": props.testId
|
|
99
|
+
}, jsx("thead", null, jsx("tr", null, columns.map(function (_ref3) {
|
|
100
|
+
var title = _ref3.title,
|
|
101
|
+
key = _ref3.key,
|
|
102
|
+
width = _ref3.width;
|
|
103
|
+
return jsx(TableHeading, {
|
|
104
|
+
key: key,
|
|
105
|
+
style: {
|
|
106
|
+
width: width
|
|
107
|
+
}
|
|
108
|
+
}, title);
|
|
109
|
+
}))), jsx("tbody", null, rows.map(function (row) {
|
|
110
|
+
return jsx("tr", {
|
|
111
|
+
key: row.id
|
|
112
|
+
}, columns.map(function (column) {
|
|
113
|
+
return jsx("td", {
|
|
114
|
+
key: column.key
|
|
115
|
+
}, renderItem(column, row));
|
|
116
|
+
}));
|
|
117
|
+
})));
|
|
118
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { B300, R300, Y300 } from '@atlaskit/theme/colors';
|
|
3
|
+
import IconType from '../render-type/icon';
|
|
4
|
+
// https://stackoverflow.com/questions/61099149/svg-fill-color-not-working-with-hex-colors
|
|
5
|
+
var replaceHashInHex = function replaceHashInHex(hex) {
|
|
6
|
+
return hex.replace('#', '%23');
|
|
7
|
+
};
|
|
8
|
+
var priorityToSVGPathMap = {
|
|
9
|
+
low: " <path\n d=\"M12.5 6.1c.5-.3 1.1-.1 1.4.4.3.5.1 1.1-.3 1.3l-5 3c-.3.2-.7.2-1 0l-5-3c-.6-.2-.7-.9-.4-1.3.2-.5.9-.7 1.3-.4L8 8.8l4.5-2.7z\"\n fill=\"".concat(replaceHashInHex(B300), "\"\n/>"),
|
|
10
|
+
medium: "<path\n fill=\"".concat(replaceHashInHex(Y300), "\"\n d=\"M3,4h10c0.6,0,1,0.4,1,1s-0.4,1-1,1H3C2.4,6,2,5.6,2,5S2.4,4,3,4z M3,10h10c0.6,0,1,0.4,1,1s-0.4,1-1,1H3\n c-0.6,0-1-0.4-1-1S2.4,10,3,10z\"\n/>"),
|
|
11
|
+
high: "<path\n d=\"M3.5 9.9c-.5.3-1.1.1-1.4-.3s-.1-1.1.4-1.4l5-3c.3-.2.7-.2 1 0l5 3c.5.3.6.9.3 1.4-.3.5-.9.6-1.4.3L8 7.2 3.5 9.9z\"\n fill=\"".concat(replaceHashInHex(R300), "\"\n/>"),
|
|
12
|
+
blocker: "<path\n d=\"M8 15c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7zM4 7c-.6 0-1 .4-1 1s.4 1 1 1h8c.6 0 1-.4 1-1s-.4-1-1-1H4z\"\n fill=\"".concat(replaceHashInHex(R300), "\"\n/>")
|
|
13
|
+
};
|
|
14
|
+
export default (function (_ref) {
|
|
15
|
+
var priority = _ref.priority;
|
|
16
|
+
var image = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">".concat(priorityToSVGPathMap[priority], "</svg>");
|
|
17
|
+
return /*#__PURE__*/React.createElement(IconType, {
|
|
18
|
+
source: "data:image/svg+xml;utf8,".concat(image)
|
|
19
|
+
});
|
|
20
|
+
});
|