@atlaskit/link-datasource 1.11.1 → 1.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/analytics/constants.js +1 -1
  3. package/dist/cjs/services/mocks.js +134 -0
  4. package/dist/cjs/services/useBasicFilterAGG.js +119 -0
  5. package/dist/cjs/services/utils.js +8 -0
  6. package/dist/cjs/ui/assets-modal/modal/index.js +2 -2
  7. package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +5 -1
  8. package/dist/cjs/ui/issue-like-table/draggable-table-heading.js +109 -5
  9. package/dist/cjs/ui/issue-like-table/index.js +109 -95
  10. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +20 -0
  11. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +155 -0
  12. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +82 -0
  13. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +87 -0
  14. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +97 -0
  15. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +18 -0
  16. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +111 -0
  17. package/dist/cjs/ui/jira-issues-modal/basic-filters/types.js +15 -0
  18. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
  19. package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/transformers.js +97 -0
  20. package/dist/cjs/ui/jira-issues-modal/modal/index.js +16 -5
  21. package/dist/es2019/analytics/constants.js +1 -1
  22. package/dist/es2019/services/mocks.js +128 -0
  23. package/dist/es2019/services/useBasicFilterAGG.js +72 -0
  24. package/dist/es2019/services/utils.js +113 -0
  25. package/dist/es2019/ui/assets-modal/modal/index.js +2 -2
  26. package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +5 -1
  27. package/dist/es2019/ui/issue-like-table/draggable-table-heading.js +113 -5
  28. package/dist/es2019/ui/issue-like-table/index.js +82 -72
  29. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +14 -0
  30. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +149 -0
  31. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +76 -0
  32. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +81 -0
  33. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +91 -0
  34. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +12 -0
  35. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +105 -0
  36. package/dist/es2019/ui/jira-issues-modal/basic-filters/types.js +9 -0
  37. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
  38. package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/transformers.js +91 -0
  39. package/dist/es2019/ui/jira-issues-modal/modal/index.js +15 -4
  40. package/dist/esm/analytics/constants.js +1 -1
  41. package/dist/esm/services/mocks.js +128 -0
  42. package/dist/esm/services/useBasicFilterAGG.js +112 -0
  43. package/dist/esm/services/utils.js +2 -0
  44. package/dist/esm/ui/assets-modal/modal/index.js +2 -2
  45. package/dist/esm/ui/datasource-table-view/datasourceTableView.js +5 -1
  46. package/dist/esm/ui/issue-like-table/draggable-table-heading.js +109 -5
  47. package/dist/esm/ui/issue-like-table/index.js +108 -94
  48. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +14 -0
  49. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +149 -0
  50. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +76 -0
  51. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +81 -0
  52. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +91 -0
  53. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +12 -0
  54. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +105 -0
  55. package/dist/esm/ui/jira-issues-modal/basic-filters/types.js +9 -0
  56. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
  57. package/dist/esm/ui/jira-issues-modal/basic-filters/utils/transformers.js +89 -0
  58. package/dist/esm/ui/jira-issues-modal/modal/index.js +17 -6
  59. package/dist/types/services/mocks.d.ts +3 -0
  60. package/dist/types/services/useBasicFilterAGG.d.ts +5 -0
  61. package/dist/types/services/utils.d.ts +2 -0
  62. package/dist/types/ui/datasource-table-view/types.d.ts +4 -0
  63. package/dist/types/ui/issue-like-table/draggable-table-heading.d.ts +3 -2
  64. package/dist/types/ui/issue-like-table/index.d.ts +5 -3
  65. package/dist/types/ui/issue-like-table/types.d.ts +5 -0
  66. package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +1 -1
  67. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +3 -0
  68. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +17 -0
  69. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +8 -0
  70. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +8 -0
  71. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +8 -0
  72. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +3 -0
  73. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +29 -0
  74. package/dist/types/ui/jira-issues-modal/basic-filters/types.d.ts +93 -0
  75. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.d.ts +1 -1
  76. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.d.ts +1 -1
  77. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +1 -1
  78. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +1 -1
  79. package/dist/types/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +8 -0
  80. package/dist/types/ui/jira-issues-modal/jira-search-container/buildJQL.d.ts +1 -1
  81. package/dist/types/ui/jira-issues-modal/types.d.ts +4 -0
  82. package/dist/types-ts4.5/services/mocks.d.ts +3 -0
  83. package/dist/types-ts4.5/services/useBasicFilterAGG.d.ts +5 -0
  84. package/dist/types-ts4.5/services/utils.d.ts +2 -0
  85. package/dist/types-ts4.5/ui/datasource-table-view/types.d.ts +4 -0
  86. package/dist/types-ts4.5/ui/issue-like-table/draggable-table-heading.d.ts +3 -2
  87. package/dist/types-ts4.5/ui/issue-like-table/index.d.ts +5 -3
  88. package/dist/types-ts4.5/ui/issue-like-table/types.d.ts +5 -0
  89. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +1 -1
  90. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +3 -0
  91. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +17 -0
  92. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +8 -0
  93. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +8 -0
  94. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +8 -0
  95. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +3 -0
  96. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +29 -0
  97. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/types.d.ts +93 -0
  98. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.d.ts +1 -1
  99. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.d.ts +1 -1
  100. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +1 -1
  101. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +1 -1
  102. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +8 -0
  103. package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/buildJQL.d.ts +1 -1
  104. package/dist/types-ts4.5/ui/jira-issues-modal/types.d.ts +4 -0
  105. package/examples-helpers/buildIssueLikeTable.tsx +15 -1
  106. package/examples-helpers/buildJiraIssuesTable.tsx +15 -1
  107. package/package.json +6 -6
  108. package/report.api.md +11 -0
  109. package/tmp/api-report-tmp.d.ts +11 -0
  110. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -5
  111. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -1
  112. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -1
  113. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.d.ts +0 -23
  114. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.d.ts +0 -23
@@ -0,0 +1,91 @@
1
+ export var fieldValuesResponseForTypes = {
2
+ data: {
3
+ jira: {
4
+ jqlBuilder: {
5
+ fieldValues: {
6
+ totalCount: 12,
7
+ pageInfo: {
8
+ endCursor: 'YXJyYXljb25uZWN0aW9uOjQ='
9
+ },
10
+ edges: [{
11
+ node: {
12
+ jqlTerm: '"[System] Change"',
13
+ displayName: '[System] Change',
14
+ issueTypes: [{
15
+ avatar: {
16
+ small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/10555?size=medium'
17
+ }
18
+ }]
19
+ }
20
+ }, {
21
+ node: {
22
+ jqlTerm: '"[System] Incident"',
23
+ displayName: '[System] Incident',
24
+ issueTypes: [{
25
+ avatar: {
26
+ small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/10551?size=medium'
27
+ }
28
+ }]
29
+ }
30
+ }, {
31
+ node: {
32
+ jqlTerm: '"[System] Post-incident review"',
33
+ displayName: '[System] Post-incident review',
34
+ issueTypes: [{
35
+ avatar: {
36
+ small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/10552?size=medium'
37
+ }
38
+ }]
39
+ }
40
+ }, {
41
+ node: {
42
+ jqlTerm: '"[System] Problem"',
43
+ displayName: '[System] Problem',
44
+ issueTypes: [{
45
+ avatar: {
46
+ small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/10556?size=medium'
47
+ }
48
+ }]
49
+ }
50
+ }, {
51
+ node: {
52
+ jqlTerm: '"[System] Service request"',
53
+ displayName: '[System] Service request',
54
+ issueTypes: [{
55
+ avatar: {
56
+ small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/10553?size=medium'
57
+ }
58
+ }]
59
+ }
60
+ }]
61
+ }
62
+ }
63
+ }
64
+ }
65
+ };
66
+ export var fieldValuesResponseForTypesMapped = [{
67
+ icon: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/10555?size=medium',
68
+ label: '[System] Change',
69
+ optionType: 'iconLabel',
70
+ value: '"[System] Change"'
71
+ }, {
72
+ icon: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/10551?size=medium',
73
+ label: '[System] Incident',
74
+ optionType: 'iconLabel',
75
+ value: '"[System] Incident"'
76
+ }, {
77
+ icon: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/10552?size=medium',
78
+ label: '[System] Post-incident review',
79
+ optionType: 'iconLabel',
80
+ value: '"[System] Post-incident review"'
81
+ }, {
82
+ icon: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/10556?size=medium',
83
+ label: '[System] Problem',
84
+ optionType: 'iconLabel',
85
+ value: '"[System] Problem"'
86
+ }, {
87
+ icon: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/10553?size=medium',
88
+ label: '[System] Service request',
89
+ optionType: 'iconLabel',
90
+ value: '"[System] Service request"'
91
+ }];
@@ -0,0 +1,12 @@
1
+ export var hydrateJqlEmptyResponse = {
2
+ data: {
3
+ jira: {
4
+ jqlBuilder: {
5
+ hydrateJqlQuery: {
6
+ fields: []
7
+ }
8
+ }
9
+ }
10
+ }
11
+ };
12
+ export var hydrateJqlEmptyResponseMapped = {};
@@ -0,0 +1,105 @@
1
+ export var hydrateJqlStandardResponse = {
2
+ data: {
3
+ jira: {
4
+ jqlBuilder: {
5
+ hydrateJqlQuery: {
6
+ fields: [{
7
+ jqlTerm: 'issuetype',
8
+ values: [{
9
+ values: [{
10
+ displayName: 'Category',
11
+ jqlTerm: 'Category',
12
+ issueTypes: [{
13
+ avatar: {
14
+ small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/16627?size=medium'
15
+ }
16
+ }]
17
+ }]
18
+ }, {
19
+ values: [{
20
+ displayName: '!disturbed',
21
+ jqlTerm: '"!disturbed"',
22
+ issueTypes: [{
23
+ avatar: {
24
+ small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/16640?size=medium'
25
+ }
26
+ }, {
27
+ avatar: {
28
+ small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/16628?size=medium'
29
+ }
30
+ }]
31
+ }]
32
+ }]
33
+ }, {
34
+ jqlTerm: 'project',
35
+ values: [{
36
+ values: [{
37
+ displayName: '(Deprecated) Koopa Troopas',
38
+ jqlTerm: '"(Deprecated) Koopa Troopas"',
39
+ project: {
40
+ avatar: {
41
+ small: 'https://hello.atlassian.net/rest/api/2/universal_avatar/view/type/project/avatar/36328?size=small'
42
+ }
43
+ }
44
+ }]
45
+ }]
46
+ }, {
47
+ jqlTerm: 'assignee',
48
+ values: [{
49
+ values: [{
50
+ displayName: 'Nidhin Joseph',
51
+ jqlTerm: '70121:97052100-1513-42bc-a2f0-d77e71f0b7eb',
52
+ user: {
53
+ picture: 'https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/70121:97052100-1513-42bc-a2f0-d77e71f0b7eb/3d737224-7e8f-4e0c-888c-d5ff6044d484/128'
54
+ }
55
+ }]
56
+ }]
57
+ }, {
58
+ jqlTerm: 'status',
59
+ values: [{
60
+ values: [{
61
+ displayName: 'Done',
62
+ jqlTerm: 'Done',
63
+ statusCategory: {
64
+ colorName: 'GREEN'
65
+ }
66
+ }]
67
+ }]
68
+ }]
69
+ }
70
+ }
71
+ }
72
+ }
73
+ };
74
+ export var hydrateJqlStandardResponseMapped = {
75
+ issuetype: [{
76
+ icon: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/16627?size=medium',
77
+ label: 'Category',
78
+ optionType: 'iconLabel',
79
+ value: 'Category'
80
+ }, {
81
+ icon: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/16640?size=medium',
82
+ label: '!disturbed',
83
+ optionType: 'iconLabel',
84
+ value: '"!disturbed"'
85
+ }],
86
+ project: [{
87
+ icon: 'https://hello.atlassian.net/rest/api/2/universal_avatar/view/type/project/avatar/36328?size=small',
88
+ label: '(Deprecated) Koopa Troopas',
89
+ optionType: 'iconLabel',
90
+ value: '"(Deprecated) Koopa Troopas"'
91
+ }],
92
+ assignee: [{
93
+ avatar: 'https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/70121:97052100-1513-42bc-a2f0-d77e71f0b7eb/3d737224-7e8f-4e0c-888c-d5ff6044d484/128',
94
+ isSquare: true,
95
+ label: 'Nidhin Joseph',
96
+ optionType: 'avatarLabel',
97
+ value: '70121:97052100-1513-42bc-a2f0-d77e71f0b7eb'
98
+ }],
99
+ status: [{
100
+ appearance: 'success',
101
+ label: 'Done',
102
+ optionType: 'lozengeLabel',
103
+ value: 'Done'
104
+ }]
105
+ };
@@ -0,0 +1,9 @@
1
+ // these types have been taken from jira-frontend to ensure the colour data return gets mapped correctly for the lozenge
2
+ export var appearanceMap = {
3
+ BLUE_GRAY: 'default',
4
+ MEDIUM_GRAY: 'default',
5
+ BROWN: 'default',
6
+ GREEN: 'success',
7
+ YELLOW: 'inprogress',
8
+ WARM_RED: 'removed'
9
+ };
@@ -29,7 +29,6 @@ var IconOptionLabel = function IconOptionLabel(_ref) {
29
29
  var LozengeOptionLabel = function LozengeOptionLabel(_ref2) {
30
30
  var data = _ref2.data;
31
31
  return /*#__PURE__*/React.createElement(Lozenge, {
32
- isBold: data.isBold,
33
32
  appearance: data.appearance,
34
33
  testId: "jlol-basic-filter-popup-select-option--lozenge"
35
34
  }, /*#__PURE__*/React.createElement(Box, {
@@ -0,0 +1,89 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import { appearanceMap } from '../types';
5
+ function isNonNullSelectOption(edge) {
6
+ return edge !== null;
7
+ }
8
+ function isColorName(colorName) {
9
+ return Object.keys(appearanceMap).includes(colorName);
10
+ }
11
+ var getLozengeAppearance = function getLozengeAppearance(colorName) {
12
+ if (isColorName(colorName)) {
13
+ return appearanceMap[colorName];
14
+ }
15
+ };
16
+ function mapNodeToOption(_ref) {
17
+ var displayName = _ref.displayName,
18
+ jqlTerm = _ref.jqlTerm,
19
+ group = _ref.group,
20
+ issueTypes = _ref.issueTypes,
21
+ project = _ref.project,
22
+ statusCategory = _ref.statusCategory,
23
+ user = _ref.user;
24
+ try {
25
+ var baseProps = {
26
+ label: displayName,
27
+ value: jqlTerm
28
+ };
29
+ if (user) {
30
+ return _objectSpread(_objectSpread({}, baseProps), {}, {
31
+ optionType: 'avatarLabel',
32
+ avatar: user.picture,
33
+ isSquare: true
34
+ });
35
+ }
36
+ if (group) {
37
+ return _objectSpread(_objectSpread({}, baseProps), {}, {
38
+ optionType: 'avatarLabel',
39
+ isGroup: true
40
+ });
41
+ }
42
+ if (project) {
43
+ var _project$avatar;
44
+ return _objectSpread(_objectSpread({}, baseProps), {}, {
45
+ optionType: 'iconLabel',
46
+ icon: (_project$avatar = project.avatar) === null || _project$avatar === void 0 ? void 0 : _project$avatar.small
47
+ });
48
+ }
49
+ if (issueTypes) {
50
+ var _issueTypes$;
51
+ return _objectSpread(_objectSpread({}, baseProps), {}, {
52
+ optionType: 'iconLabel',
53
+ icon: (_issueTypes$ = issueTypes[0]) === null || _issueTypes$ === void 0 ? void 0 : _issueTypes$.avatar.small
54
+ });
55
+ }
56
+ if (statusCategory) {
57
+ return _objectSpread(_objectSpread({}, baseProps), {}, {
58
+ optionType: 'lozengeLabel',
59
+ appearance: getLozengeAppearance(statusCategory.colorName)
60
+ });
61
+ }
62
+ return null;
63
+ } catch (error) {
64
+ return null;
65
+ }
66
+ }
67
+ export function mapHydrateResponseData(_ref2) {
68
+ var _data$jira;
69
+ var data = _ref2.data;
70
+ var transformedHydrateResponseData = {};
71
+ data === null || data === void 0 || (_data$jira = data.jira) === null || _data$jira === void 0 || (_data$jira = _data$jira.jqlBuilder) === null || _data$jira === void 0 || (_data$jira = _data$jira.hydrateJqlQuery) === null || _data$jira === void 0 || (_data$jira = _data$jira.fields) === null || _data$jira === void 0 || _data$jira.forEach(function (_ref3) {
72
+ var jqlTerm = _ref3.jqlTerm,
73
+ _ref3$values = _ref3.values,
74
+ values = _ref3$values === void 0 ? [] : _ref3$values;
75
+ var options = values.map(function (_ref4) {
76
+ var values = _ref4.values;
77
+ return values && values[0] ? mapNodeToOption(values[0]) : null;
78
+ }).filter(isNonNullSelectOption) || [];
79
+ transformedHydrateResponseData[jqlTerm] = options;
80
+ });
81
+ return transformedHydrateResponseData;
82
+ }
83
+ export function mapFieldValuesResponseData(_ref5) {
84
+ var _data$jira2;
85
+ var data = _ref5.data;
86
+ return (data === null || data === void 0 || (_data$jira2 = data.jira) === null || _data$jira2 === void 0 || (_data$jira2 = _data$jira2.jqlBuilder) === null || _data$jira2 === void 0 || (_data$jira2 = _data$jira2.fieldValues) === null || _data$jira2 === void 0 || (_data$jira2 = _data$jira2.edges) === null || _data$jira2 === void 0 ? void 0 : _data$jira2.map(function (edge) {
87
+ return edge.node ? mapNodeToOption(edge.node) : null;
88
+ }).filter(isNonNullSelectOption)) || [];
89
+ }
@@ -1,11 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
3
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
4
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
5
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
6
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
6
7
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
8
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
- import _regeneratorRuntime from "@babel/runtime/regenerator";
9
9
  /** @jsx jsx */
10
10
  import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
11
11
  import { css, jsx } from '@emotion/react';
@@ -86,6 +86,7 @@ export var getColumnAction = function getColumnAction(oldVisibleColumnKeys, newV
86
86
  };
87
87
  export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
88
88
  var datasourceId = props.datasourceId,
89
+ initialColumnCustomSizes = props.columnCustomSizes,
89
90
  onCancel = props.onCancel,
90
91
  onInsert = props.onInsert,
91
92
  _props$viewMode = props.viewMode,
@@ -131,6 +132,13 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
131
132
  } : undefined;
132
133
  }, [cloudId, jql]);
133
134
  var isParametersSet = !!(jql && cloudId);
135
+ var _useState13 = useState(initialColumnCustomSizes),
136
+ _useState14 = _slicedToArray(_useState13, 2),
137
+ columnCustomSizes = _useState14[0],
138
+ setColumnCustomSizes = _useState14[1];
139
+ var onColumnResize = useCallback(function (key, width) {
140
+ setColumnCustomSizes(_objectSpread(_objectSpread({}, columnCustomSizes), {}, _defineProperty({}, key, width)));
141
+ }, [columnCustomSizes]);
134
142
  var _useDatasourceTableSt = useDatasourceTableState({
135
143
  datasourceId: datasourceId,
136
144
  parameters: isParametersSet ? parameters : undefined,
@@ -367,7 +375,8 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
367
375
  properties: {
368
376
  columns: visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.map(function (key) {
369
377
  return {
370
- key: key
378
+ key: key,
379
+ width: columnCustomSizes === null || columnCustomSizes === void 0 ? void 0 : columnCustomSizes[key]
371
380
  };
372
381
  })
373
382
  }
@@ -376,7 +385,7 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
376
385
  }
377
386
  }, consumerEvent);
378
387
  }
379
- }, [isParametersSet, jql, selectedJiraSite, analyticsPayload, totalCount, visibleColumnKeys, currentViewMode, retrieveUrlForSmartCardRender, responseItems.length, onInsert, jqlUrl, datasourceId, cloudId]);
388
+ }, [isParametersSet, jql, selectedJiraSite, analyticsPayload, totalCount, visibleColumnKeys, currentViewMode, retrieveUrlForSmartCardRender, responseItems.length, onInsert, jqlUrl, datasourceId, cloudId, columnCustomSizes]);
380
389
  var handleViewModeChange = function handleViewModeChange(selectedMode) {
381
390
  userInteractionActions.current.add(DatasourceAction.DISPLAY_VIEW_CHANGED);
382
391
  setCurrentViewMode(selectedMode);
@@ -407,9 +416,11 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
407
416
  onLoadDatasourceDetails: loadDatasourceDetails,
408
417
  onVisibleColumnKeysChange: handleVisibleColumnKeysChange,
409
418
  parentContainerRenderInstanceId: modalRenderInstanceId,
410
- extensionKey: extensionKey
419
+ extensionKey: extensionKey,
420
+ columnCustomSizes: columnCustomSizes,
421
+ onColumnResize: onColumnResize
411
422
  }));
412
- }, [columns, defaultVisibleColumnKeys, handleOnNextPage, handleVisibleColumnKeysChange, hasNextPage, loadDatasourceDetails, modalRenderInstanceId, responseItems, status, visibleColumnKeys, extensionKey]);
423
+ }, [columns, defaultVisibleColumnKeys, handleOnNextPage, handleVisibleColumnKeysChange, hasNextPage, loadDatasourceDetails, modalRenderInstanceId, responseItems, status, visibleColumnKeys, extensionKey, columnCustomSizes, onColumnResize]);
413
424
  var renderCountModeContent = useCallback(function () {
414
425
  var selectedJiraSiteUrl = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
415
426
  if (status === 'unauthorized') {
@@ -0,0 +1,3 @@
1
+ import { FieldValuesResponse, HydrateResponse } from '../ui/jira-issues-modal/basic-filters/types';
2
+ export declare const mockHydrateJqlResponse: HydrateResponse;
3
+ export declare const mockFieldValuesResponse: FieldValuesResponse;
@@ -0,0 +1,5 @@
1
+ import { BasicFilterFieldType, FieldValuesResponse, HydrateResponse } from '../ui/jira-issues-modal/basic-filters/types';
2
+ export declare const useBasicFilterAGG: () => {
3
+ getHydratedJQL: (cloudId: string, jql: string) => Promise<HydrateResponse>;
4
+ getFieldValues: (cloudId: string, jql: string, jqlTerm: BasicFilterFieldType, searchString: string, pageCursor?: string) => Promise<FieldValuesResponse>;
5
+ };
@@ -0,0 +1,2 @@
1
+ export declare const hydrateJQLQuery = "query hydrate($cloudId: ID!, $jql: String!) {\n jira {\n jqlBuilder(cloudId: $cloudId) {\n hydrateJqlQuery(query: $jql) {\n ... on JiraJqlHydratedQuery {\n fields {\n ... on JiraJqlQueryHydratedField {\n jqlTerm\n values {\n ... on JiraJqlQueryHydratedValue {\n values {\n ... on JiraJqlProjectFieldValue {\n jqlTerm\n displayName\n project {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlStatusFieldValue {\n jqlTerm\n displayName\n statusCategory {\n colorName\n }\n }\n ... on JiraJqlIssueTypeFieldValue {\n jqlTerm\n displayName\n issueTypes {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlUserFieldValue {\n jqlTerm\n displayName\n user {\n picture\n }\n }\n ... on JiraJqlGroupFieldValue {\n jqlTerm\n displayName\n group {\n name\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}";
2
+ export declare const fieldValuesQuery = "query fieldValues($cloudId: ID!, $first: Int = 10, $jqlTerm: String!, $jql: String!, $searchString: String!, $after: String, $projectOptions: JiraProjectOptions) {\n jira {\n jqlBuilder(cloudId: $cloudId) {\n fieldValues(\n first: $first\n jqlTerm: $jqlTerm\n jqlContext: $jql\n searchString: $searchString\n after: $after\n ) {\n totalCount\n pageInfo {\n endCursor\n }\n edges {\n node {\n jqlTerm\n displayName\n ... on JiraJqlProjectFieldValue {\n project {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlIssueTypeFieldValue {\n issueTypes {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlStatusFieldValue {\n statusCategory {\n colorName\n }\n }\n ... on JiraJqlUserFieldValue {\n user {\n picture\n }\n }\n ... on JiraJqlGroupFieldValue {\n group {\n name\n }\n }\n }\n }\n }\n }\n }\n}";
@@ -14,4 +14,8 @@ export interface DatasourceTableViewProps {
14
14
  visibleColumnKeys?: string[];
15
15
  /** Url for an existing datasource, initially used for displaying to a user unauthorized to query that site */
16
16
  url?: string;
17
+ columnCustomSizes?: {
18
+ [key: string]: number;
19
+ };
20
+ onColumnResize?: (key: string, width: number) => void;
17
21
  }
@@ -1,12 +1,13 @@
1
1
  /** @jsx jsx */
2
2
  import { ReactNode } from 'react';
3
3
  import { jsx } from '@emotion/react';
4
- export declare const DraggableTableHeading: ({ children, id, index, tableId, dndPreviewHeight, dragPreview, maxWidth, }: {
4
+ export declare const DraggableTableHeading: ({ children, id, index, tableId, dndPreviewHeight, dragPreview, width, onWidthChange, }: {
5
5
  children: ReactNode;
6
6
  id: string;
7
7
  index: number;
8
8
  tableId: Symbol;
9
9
  dndPreviewHeight: number;
10
10
  dragPreview: React.ReactNode;
11
- maxWidth?: number | undefined;
11
+ width: number;
12
+ onWidthChange?: ((width: number) => void) | undefined;
12
13
  }) => jsx.JSX.Element;
@@ -10,9 +10,11 @@ export interface RowType {
10
10
  }
11
11
  export interface RowCellType {
12
12
  key: string;
13
+ width: number;
14
+ shouldTruncate?: boolean;
13
15
  content?: React.ReactNode | string;
14
- maxWidth?: number;
15
16
  }
16
- export declare const orderColumns: (columns: DatasourceResponseSchemaProperty[], visibleColumnKeys: string[]) => DatasourceResponseSchemaProperty[];
17
- export declare const IssueLikeDataTableView: ({ testId, onNextPage, onLoadDatasourceDetails, items, columns, renderItem, visibleColumnKeys, onVisibleColumnKeysChange, status, hasNextPage, scrollableContainerHeight, parentContainerRenderInstanceId, extensionKey, }: IssueLikeDataTableViewProps) => jsx.JSX.Element;
17
+ export declare const getOrderedColumns: (columns: DatasourceResponseSchemaProperty[], visibleColumnKeys: string[]) => DatasourceResponseSchemaProperty[];
18
+ export declare const COLUMN_MIN_WIDTH: number;
19
+ export declare const IssueLikeDataTableView: ({ testId, onNextPage, onLoadDatasourceDetails, items, columns, renderItem, visibleColumnKeys, onVisibleColumnKeysChange, columnCustomSizes, onColumnResize, status, hasNextPage, scrollableContainerHeight, parentContainerRenderInstanceId, extensionKey, }: IssueLikeDataTableViewProps) => jsx.JSX.Element;
18
20
  export declare const EmptyState: ({ isCompact, testId }: import("./empty-state").Props) => jsx.JSX.Element;
@@ -2,6 +2,9 @@
2
2
  import { DatasourceDataResponseItem, DatasourceResponseSchemaProperty, DatasourceTableStatusType, DatasourceType } from '@atlaskit/linking-types';
3
3
  import { NextPageType } from '../../hooks/useDatasourceTableState';
4
4
  export type TableViewPropsRenderType = (item: DatasourceType) => React.ReactNode;
5
+ export interface ColumnSizesMap {
6
+ [key: string]: number;
7
+ }
5
8
  export interface IssueLikeDataTableViewProps {
6
9
  testId?: string;
7
10
  /**
@@ -50,4 +53,6 @@ export interface IssueLikeDataTableViewProps {
50
53
  * It this number is undefined it will not restrict height and not make container scrollable.
51
54
  */
52
55
  scrollableContainerHeight?: number;
56
+ columnCustomSizes?: ColumnSizesMap;
57
+ onColumnResize?: (key: string, width: number) => void;
53
58
  }
@@ -1,4 +1,4 @@
1
- import { BasicFilterFieldType, SelectOption } from '../ui/async-popup-select/types';
1
+ import { BasicFilterFieldType, SelectOption } from '../types';
2
2
  interface FieldValuesProps {
3
3
  filterType: BasicFilterFieldType;
4
4
  }
@@ -0,0 +1,3 @@
1
+ import { FieldValuesResponse } from '../types';
2
+ export declare const fieldValuesEmptyResponse: FieldValuesResponse;
3
+ export declare const fieldValuesEmptyResponseMapped: never[];
@@ -0,0 +1,17 @@
1
+ import { FieldValuesResponse } from '../types';
2
+ export declare const fieldValuesResponseForAssignees: FieldValuesResponse;
3
+ export declare const fieldValuesResponseForAssigneesMapped: ({
4
+ isGroup: boolean;
5
+ label: string;
6
+ optionType: string;
7
+ value: string;
8
+ avatar?: undefined;
9
+ isSquare?: undefined;
10
+ } | {
11
+ avatar: string;
12
+ isSquare: boolean;
13
+ label: string;
14
+ optionType: string;
15
+ value: string;
16
+ isGroup?: undefined;
17
+ })[];
@@ -0,0 +1,8 @@
1
+ import { FieldValuesResponse } from '../types';
2
+ export declare const fieldValuesResponseForProjects: FieldValuesResponse;
3
+ export declare const fieldValuesResponseForProjectsMapped: {
4
+ icon: string;
5
+ label: string;
6
+ optionType: string;
7
+ value: string;
8
+ }[];
@@ -0,0 +1,8 @@
1
+ import { FieldValuesResponse } from '../types';
2
+ export declare const fieldValuesResponseForStatuses: FieldValuesResponse;
3
+ export declare const fieldValuesResponseForStatusesMapped: {
4
+ appearance: string;
5
+ label: string;
6
+ optionType: string;
7
+ value: string;
8
+ }[];
@@ -0,0 +1,8 @@
1
+ import { FieldValuesResponse } from '../types';
2
+ export declare const fieldValuesResponseForTypes: FieldValuesResponse;
3
+ export declare const fieldValuesResponseForTypesMapped: {
4
+ icon: string;
5
+ label: string;
6
+ optionType: string;
7
+ value: string;
8
+ }[];
@@ -0,0 +1,3 @@
1
+ import { HydrateResponse } from '../types';
2
+ export declare const hydrateJqlEmptyResponse: HydrateResponse;
3
+ export declare const hydrateJqlEmptyResponseMapped: {};
@@ -0,0 +1,29 @@
1
+ import { HydrateResponse } from '../types';
2
+ export declare const hydrateJqlStandardResponse: HydrateResponse;
3
+ export declare const hydrateJqlStandardResponseMapped: {
4
+ issuetype: {
5
+ icon: string;
6
+ label: string;
7
+ optionType: string;
8
+ value: string;
9
+ }[];
10
+ project: {
11
+ icon: string;
12
+ label: string;
13
+ optionType: string;
14
+ value: string;
15
+ }[];
16
+ assignee: {
17
+ avatar: string;
18
+ isSquare: boolean;
19
+ label: string;
20
+ optionType: string;
21
+ value: string;
22
+ }[];
23
+ status: {
24
+ appearance: string;
25
+ label: string;
26
+ optionType: string;
27
+ value: string;
28
+ }[];
29
+ };
@@ -0,0 +1,93 @@
1
+ import { ReactElement } from 'react';
2
+ export type BasicFilterFieldType = 'project' | 'assignee' | 'issuetype' | 'status';
3
+ export interface OptionBase {
4
+ label: string;
5
+ value: string;
6
+ }
7
+ export type IconLabelOption = OptionBase & {
8
+ optionType: 'iconLabel';
9
+ icon: string;
10
+ };
11
+ export type LozengeLabelOption = OptionBase & {
12
+ optionType: 'lozengeLabel';
13
+ appearance?: LozengeAppearance;
14
+ };
15
+ export type LozengeAppearance = 'default' | 'inprogress' | 'moved' | 'new' | 'removed' | 'success';
16
+ export type AvatarLabelOption = OptionBase & {
17
+ optionType: 'avatarLabel';
18
+ avatar?: string;
19
+ isSquare?: boolean;
20
+ isGroup?: boolean;
21
+ };
22
+ export type SelectOption = IconLabelOption | LozengeLabelOption | AvatarLabelOption;
23
+ export type FormatOptionLabel = (option: SelectOption) => ReactElement;
24
+ export declare const appearanceMap: {
25
+ readonly BLUE_GRAY: "default";
26
+ readonly MEDIUM_GRAY: "default";
27
+ readonly BROWN: "default";
28
+ readonly GREEN: "success";
29
+ readonly YELLOW: "inprogress";
30
+ readonly WARM_RED: "removed";
31
+ };
32
+ export type ColorName = keyof typeof appearanceMap;
33
+ export type Appearance = (typeof appearanceMap)[ColorName];
34
+ type JQLBuilderResponse<T> = {
35
+ data: {
36
+ jira?: {
37
+ jqlBuilder: T;
38
+ };
39
+ };
40
+ errors?: Array<object>;
41
+ };
42
+ type HydrateJqlQueryBody = {
43
+ hydrateJqlQuery: {
44
+ fields: Array<{
45
+ jqlTerm: BasicFilterFieldType;
46
+ values: Array<{
47
+ values: Array<AggJqlBuilderFieldNode>;
48
+ }>;
49
+ }>;
50
+ };
51
+ };
52
+ type FieldValuesBody = {
53
+ fieldValues: {
54
+ totalCount: number;
55
+ pageInfo: {
56
+ endCursor?: string;
57
+ };
58
+ edges: Array<{
59
+ node: AggJqlBuilderFieldNode;
60
+ }>;
61
+ };
62
+ };
63
+ type JqlBuilderProject = {
64
+ avatar: {
65
+ small: string;
66
+ };
67
+ };
68
+ type JqlBuilderUser = {
69
+ picture?: string;
70
+ };
71
+ type JqlBuilderGroup = {
72
+ name: string;
73
+ };
74
+ type JqlBuilderIssueType = {
75
+ avatar: {
76
+ small: string;
77
+ };
78
+ };
79
+ type JqlBuilderStatusCategory = {
80
+ colorName: string;
81
+ };
82
+ export type AggJqlBuilderFieldNode = {
83
+ jqlTerm: string;
84
+ displayName: string;
85
+ project?: JqlBuilderProject;
86
+ user?: JqlBuilderUser;
87
+ issueTypes?: Array<JqlBuilderIssueType>;
88
+ statusCategory?: JqlBuilderStatusCategory;
89
+ group?: JqlBuilderGroup;
90
+ };
91
+ export type HydrateResponse = JQLBuilderResponse<HydrateJqlQueryBody>;
92
+ export type FieldValuesResponse = JQLBuilderResponse<FieldValuesBody>;
93
+ export {};