@atlaskit/link-datasource 1.9.0 → 1.10.0

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 (185) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/analytics/constants.js +1 -1
  3. package/dist/cjs/common/zindex.js +4 -2
  4. package/dist/cjs/hooks/useValidateAqlText.js +21 -16
  5. package/dist/cjs/i18n/da.js +1 -1
  6. package/dist/cjs/i18n/en.js +5 -3
  7. package/dist/cjs/i18n/en_GB.js +5 -3
  8. package/dist/cjs/i18n/en_ZZ.js +5 -3
  9. package/dist/cjs/i18n/es.js +1 -1
  10. package/dist/cjs/i18n/fi.js +1 -1
  11. package/dist/cjs/i18n/fr.js +1 -1
  12. package/dist/cjs/i18n/hu.js +1 -1
  13. package/dist/cjs/i18n/it.js +1 -1
  14. package/dist/cjs/i18n/ja.js +1 -1
  15. package/dist/cjs/i18n/ko.js +1 -1
  16. package/dist/cjs/i18n/nb.js +5 -3
  17. package/dist/cjs/i18n/nl.js +1 -1
  18. package/dist/cjs/i18n/pl.js +1 -1
  19. package/dist/cjs/i18n/pt_BR.js +1 -1
  20. package/dist/cjs/i18n/ru.js +1 -1
  21. package/dist/cjs/i18n/sv.js +1 -1
  22. package/dist/cjs/i18n/tr.js +1 -1
  23. package/dist/cjs/i18n/uk.js +3 -3
  24. package/dist/cjs/i18n/vi.js +2 -2
  25. package/dist/cjs/i18n/zh.js +1 -1
  26. package/dist/cjs/i18n/zh_TW.js +1 -1
  27. package/dist/cjs/ui/assets-modal/modal/index.js +1 -1
  28. package/dist/cjs/ui/assets-modal/search-container/aql-search-input/index.js +12 -6
  29. package/dist/cjs/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.js +75 -0
  30. package/dist/cjs/ui/jira-issues-modal/basic-filters/hooks/useHydrateJqlQuery.js +12 -0
  31. package/dist/cjs/ui/jira-issues-modal/basic-filters/hooks/useIsComplexQuery.js +12 -0
  32. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.js +28 -0
  33. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/footer.js +42 -0
  34. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +76 -0
  35. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +121 -0
  36. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/messages.js +38 -0
  37. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +31 -0
  38. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +5 -0
  39. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/index.js +40 -0
  40. package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/index.js +11 -0
  41. package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +4 -2
  42. package/dist/es2019/analytics/constants.js +1 -1
  43. package/dist/es2019/common/zindex.js +3 -1
  44. package/dist/es2019/hooks/useValidateAqlText.js +8 -2
  45. package/dist/es2019/i18n/da.js +1 -1
  46. package/dist/es2019/i18n/en.js +5 -3
  47. package/dist/es2019/i18n/en_GB.js +5 -3
  48. package/dist/es2019/i18n/en_ZZ.js +5 -3
  49. package/dist/es2019/i18n/es.js +1 -1
  50. package/dist/es2019/i18n/fi.js +1 -1
  51. package/dist/es2019/i18n/fr.js +1 -1
  52. package/dist/es2019/i18n/hu.js +1 -1
  53. package/dist/es2019/i18n/it.js +1 -1
  54. package/dist/es2019/i18n/ja.js +1 -1
  55. package/dist/es2019/i18n/ko.js +1 -1
  56. package/dist/es2019/i18n/nb.js +5 -3
  57. package/dist/es2019/i18n/nl.js +1 -1
  58. package/dist/es2019/i18n/pl.js +1 -1
  59. package/dist/es2019/i18n/pt_BR.js +1 -1
  60. package/dist/es2019/i18n/ru.js +1 -1
  61. package/dist/es2019/i18n/sv.js +1 -1
  62. package/dist/es2019/i18n/tr.js +1 -1
  63. package/dist/es2019/i18n/uk.js +3 -3
  64. package/dist/es2019/i18n/vi.js +2 -2
  65. package/dist/es2019/i18n/zh.js +1 -1
  66. package/dist/es2019/i18n/zh_TW.js +1 -1
  67. package/dist/es2019/ui/assets-modal/modal/index.js +1 -1
  68. package/dist/es2019/ui/assets-modal/search-container/aql-search-input/index.js +8 -6
  69. package/dist/es2019/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.js +39 -0
  70. package/dist/es2019/ui/jira-issues-modal/basic-filters/hooks/useHydrateJqlQuery.js +6 -0
  71. package/dist/es2019/ui/jira-issues-modal/basic-filters/hooks/useIsComplexQuery.js +6 -0
  72. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.js +16 -0
  73. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/footer.js +36 -0
  74. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +74 -0
  75. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +91 -0
  76. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/messages.js +32 -0
  77. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +22 -0
  78. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +1 -0
  79. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/index.js +26 -0
  80. package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/index.js +5 -0
  81. package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +4 -2
  82. package/dist/esm/analytics/constants.js +1 -1
  83. package/dist/esm/common/zindex.js +3 -1
  84. package/dist/esm/hooks/useValidateAqlText.js +21 -16
  85. package/dist/esm/i18n/da.js +1 -1
  86. package/dist/esm/i18n/en.js +5 -3
  87. package/dist/esm/i18n/en_GB.js +5 -3
  88. package/dist/esm/i18n/en_ZZ.js +5 -3
  89. package/dist/esm/i18n/es.js +1 -1
  90. package/dist/esm/i18n/fi.js +1 -1
  91. package/dist/esm/i18n/fr.js +1 -1
  92. package/dist/esm/i18n/hu.js +1 -1
  93. package/dist/esm/i18n/it.js +1 -1
  94. package/dist/esm/i18n/ja.js +1 -1
  95. package/dist/esm/i18n/ko.js +1 -1
  96. package/dist/esm/i18n/nb.js +5 -3
  97. package/dist/esm/i18n/nl.js +1 -1
  98. package/dist/esm/i18n/pl.js +1 -1
  99. package/dist/esm/i18n/pt_BR.js +1 -1
  100. package/dist/esm/i18n/ru.js +1 -1
  101. package/dist/esm/i18n/sv.js +1 -1
  102. package/dist/esm/i18n/tr.js +1 -1
  103. package/dist/esm/i18n/uk.js +3 -3
  104. package/dist/esm/i18n/vi.js +2 -2
  105. package/dist/esm/i18n/zh.js +1 -1
  106. package/dist/esm/i18n/zh_TW.js +1 -1
  107. package/dist/esm/ui/assets-modal/modal/index.js +1 -1
  108. package/dist/esm/ui/assets-modal/search-container/aql-search-input/index.js +14 -8
  109. package/dist/esm/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.js +68 -0
  110. package/dist/esm/ui/jira-issues-modal/basic-filters/hooks/useHydrateJqlQuery.js +6 -0
  111. package/dist/esm/ui/jira-issues-modal/basic-filters/hooks/useIsComplexQuery.js +6 -0
  112. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.js +21 -0
  113. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/footer.js +35 -0
  114. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +69 -0
  115. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +111 -0
  116. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/messages.js +32 -0
  117. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +21 -0
  118. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +1 -0
  119. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/index.js +30 -0
  120. package/dist/esm/ui/jira-issues-modal/basic-filters/utils/index.js +5 -0
  121. package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +4 -2
  122. package/dist/types/common/zindex.d.ts +1 -0
  123. package/dist/types/hooks/useValidateAqlText.d.ts +6 -2
  124. package/dist/types/i18n/en.d.ts +2 -0
  125. package/dist/types/i18n/en_GB.d.ts +2 -0
  126. package/dist/types/i18n/en_ZZ.d.ts +2 -0
  127. package/dist/types/i18n/nb.d.ts +2 -0
  128. package/dist/types/types/assets/types.d.ts +4 -1
  129. package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +12 -0
  130. package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useHydrateJqlQuery.d.ts +3 -0
  131. package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useIsComplexQuery.d.ts +3 -0
  132. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.d.ts +5 -0
  133. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/footer.d.ts +7 -0
  134. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.d.ts +3 -0
  135. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +9 -0
  136. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/messages.d.ts +32 -0
  137. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +9 -0
  138. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.d.ts +23 -0
  139. package/dist/types/ui/jira-issues-modal/basic-filters/ui/index.d.ts +6 -0
  140. package/dist/types/ui/jira-issues-modal/basic-filters/utils/index.d.ts +1 -0
  141. package/dist/types-ts4.5/common/zindex.d.ts +1 -0
  142. package/dist/types-ts4.5/hooks/useValidateAqlText.d.ts +6 -2
  143. package/dist/types-ts4.5/i18n/en.d.ts +2 -0
  144. package/dist/types-ts4.5/i18n/en_GB.d.ts +2 -0
  145. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +2 -0
  146. package/dist/types-ts4.5/i18n/nb.d.ts +2 -0
  147. package/dist/types-ts4.5/types/assets/types.d.ts +4 -1
  148. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +12 -0
  149. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useHydrateJqlQuery.d.ts +3 -0
  150. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useIsComplexQuery.d.ts +3 -0
  151. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.d.ts +5 -0
  152. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/footer.d.ts +7 -0
  153. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.d.ts +3 -0
  154. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +9 -0
  155. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/messages.d.ts +32 -0
  156. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +9 -0
  157. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.d.ts +23 -0
  158. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/index.d.ts +6 -0
  159. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/utils/index.d.ts +1 -0
  160. package/package.json +8 -6
  161. package/dist/cjs/ui/jira-issues-modal/jira-search-container/basic-filters/hooks/useBasicFilterHook.js +0 -17
  162. package/dist/cjs/ui/jira-issues-modal/jira-search-container/basic-filters/ui/common/dropdown/index.js +0 -15
  163. package/dist/cjs/ui/jira-issues-modal/jira-search-container/basic-filters/ui/containers/project/index.js +0 -13
  164. package/dist/cjs/ui/jira-issues-modal/jira-search-container/basic-filters/ui/index.js +0 -15
  165. package/dist/es2019/ui/jira-issues-modal/jira-search-container/basic-filters/hooks/useBasicFilterHook.js +0 -11
  166. package/dist/es2019/ui/jira-issues-modal/jira-search-container/basic-filters/ui/common/dropdown/index.js +0 -8
  167. package/dist/es2019/ui/jira-issues-modal/jira-search-container/basic-filters/ui/containers/project/index.js +0 -6
  168. package/dist/es2019/ui/jira-issues-modal/jira-search-container/basic-filters/ui/index.js +0 -8
  169. package/dist/esm/ui/jira-issues-modal/jira-search-container/basic-filters/hooks/useBasicFilterHook.js +0 -11
  170. package/dist/esm/ui/jira-issues-modal/jira-search-container/basic-filters/ui/common/dropdown/index.js +0 -8
  171. package/dist/esm/ui/jira-issues-modal/jira-search-container/basic-filters/ui/containers/project/index.js +0 -6
  172. package/dist/esm/ui/jira-issues-modal/jira-search-container/basic-filters/ui/index.js +0 -8
  173. package/dist/types/ui/jira-issues-modal/jira-search-container/basic-filters/hooks/useBasicFilterHook.d.ts +0 -4
  174. package/dist/types/ui/jira-issues-modal/jira-search-container/basic-filters/ui/common/dropdown/index.d.ts +0 -3
  175. package/dist/types/ui/jira-issues-modal/jira-search-container/basic-filters/ui/containers/project/index.d.ts +0 -3
  176. package/dist/types/ui/jira-issues-modal/jira-search-container/basic-filters/ui/index.d.ts +0 -3
  177. package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/basic-filters/hooks/useBasicFilterHook.d.ts +0 -4
  178. package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/basic-filters/ui/common/dropdown/index.d.ts +0 -3
  179. package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/basic-filters/ui/containers/project/index.d.ts +0 -3
  180. package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/basic-filters/ui/index.d.ts +0 -3
  181. /package/dist/cjs/ui/jira-issues-modal/{jira-search-container/basic-filters → basic-filters}/index.js +0 -0
  182. /package/dist/es2019/ui/jira-issues-modal/{jira-search-container/basic-filters → basic-filters}/index.js +0 -0
  183. /package/dist/esm/ui/jira-issues-modal/{jira-search-container/basic-filters → basic-filters}/index.js +0 -0
  184. /package/dist/types/ui/jira-issues-modal/{jira-search-container/basic-filters → basic-filters}/index.d.ts +0 -0
  185. /package/dist/types-ts4.5/ui/jira-issues-modal/{jira-search-container/basic-filters → basic-filters}/index.d.ts +0 -0
@@ -0,0 +1,35 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import { FormattedMessage } from 'react-intl-next';
4
+ import { Flex, Inline, xcss } from '@atlaskit/primitives';
5
+ import { N40 } from '@atlaskit/theme/colors';
6
+ import { asyncPopupSelectMessages } from './messages';
7
+ var footerContainerStyles = xcss({
8
+ paddingTop: 'space.050',
9
+ paddingBottom: 'space.050',
10
+ borderTop: "".concat("var(--ds-border, ".concat(N40, ")"), " solid 1px")
11
+ });
12
+ var footerPaginationInfoStyles = xcss({
13
+ color: 'color.text.subtlest',
14
+ marginBlock: 'space.100',
15
+ marginInline: 'space.150'
16
+ });
17
+ var PopupFooter = function PopupFooter(_ref) {
18
+ var currentDisplayCount = _ref.currentDisplayCount,
19
+ totalCount = _ref.totalCount;
20
+ return /*#__PURE__*/React.createElement(Flex, {
21
+ testId: "jlol-basic-filter-popup-select--footer",
22
+ direction: "row",
23
+ alignItems: "center",
24
+ justifyContent: "end",
25
+ xcss: footerContainerStyles
26
+ }, /*#__PURE__*/React.createElement(Inline, {
27
+ xcss: footerPaginationInfoStyles
28
+ }, /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, asyncPopupSelectMessages.paginationDetails, {
29
+ values: {
30
+ currentDisplayCount: currentDisplayCount,
31
+ totalCount: totalCount
32
+ }
33
+ }))));
34
+ };
35
+ export default PopupFooter;
@@ -0,0 +1,69 @@
1
+ import React from 'react';
2
+ import Avatar from '@atlaskit/avatar';
3
+ import Lozenge from '@atlaskit/lozenge';
4
+ import { Box, Flex, xcss } from '@atlaskit/primitives';
5
+ var commonLabelStyles = xcss({
6
+ overflow: 'hidden',
7
+ textOverflow: 'ellipsis'
8
+ });
9
+ var avatarOptionLabelStyles = xcss({
10
+ marginLeft: 'space.050'
11
+ });
12
+ var IconOptionLabel = function IconOptionLabel(_ref) {
13
+ var data = _ref.data;
14
+ var label = data.label,
15
+ avatar = data.icon,
16
+ value = data.value;
17
+ var avatarOptionLabelData = {
18
+ label: label,
19
+ avatar: avatar,
20
+ value: value,
21
+ optionType: 'avatarLabel',
22
+ isSquare: true
23
+ };
24
+ return /*#__PURE__*/React.createElement(AvatarOptionLabel, {
25
+ data: avatarOptionLabelData,
26
+ testId: "jlol-basic-filter-popup-select-option--icon-label"
27
+ });
28
+ };
29
+ var LozengeOptionLabel = function LozengeOptionLabel(_ref2) {
30
+ var data = _ref2.data;
31
+ return /*#__PURE__*/React.createElement(Lozenge, {
32
+ isBold: data.isBold,
33
+ appearance: data.appearance,
34
+ testId: "jlol-basic-filter-popup-select-option--lozenge"
35
+ }, /*#__PURE__*/React.createElement(Box, {
36
+ xcss: [commonLabelStyles]
37
+ }, data.label));
38
+ };
39
+ var AvatarOptionLabel = function AvatarOptionLabel(_ref3) {
40
+ var data = _ref3.data,
41
+ testId = _ref3.testId;
42
+ return /*#__PURE__*/React.createElement(Flex, {
43
+ alignItems: "center",
44
+ testId: testId || 'jlol-basic-filter-popup-select-option--avatar'
45
+ }, /*#__PURE__*/React.createElement(Avatar, {
46
+ appearance: data.isSquare ? 'square' : 'circle',
47
+ src: data.avatar,
48
+ size: "xsmall"
49
+ }), /*#__PURE__*/React.createElement(Box, {
50
+ xcss: [commonLabelStyles, avatarOptionLabelStyles],
51
+ testId: "nidhin"
52
+ }, data.label));
53
+ };
54
+ var formatOptionLabel = function formatOptionLabel(data) {
55
+ if (data.optionType === 'lozengeLabel') {
56
+ return /*#__PURE__*/React.createElement(LozengeOptionLabel, {
57
+ data: data
58
+ });
59
+ }
60
+ if (data.optionType === 'avatarLabel') {
61
+ return /*#__PURE__*/React.createElement(AvatarOptionLabel, {
62
+ data: data
63
+ });
64
+ }
65
+ return /*#__PURE__*/React.createElement(IconOptionLabel, {
66
+ data: data
67
+ });
68
+ };
69
+ export default formatOptionLabel;
@@ -0,0 +1,111 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
4
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
+ var _excluded = ["isOpen"];
6
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
7
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
8
+ import { useIntl } from 'react-intl-next';
9
+ import { CheckboxOption, PopupSelect } from '@atlaskit/select';
10
+ import { useFieldValues } from '../../hooks/useFieldValues';
11
+ import CustomControl from './control';
12
+ import PopupFooter from './footer';
13
+ import formatOptionLabel from './formatOptionLabel';
14
+ import { asyncPopupSelectMessages } from './messages';
15
+ import PopupTrigger from './trigger';
16
+ // Needed to disable filtering from react-select
17
+ var noFilterOptions = function noFilterOptions() {
18
+ return true;
19
+ };
20
+ var AsyncPopupSelect = function AsyncPopupSelect(_ref) {
21
+ var filterType = _ref.filterType,
22
+ selection = _ref.selection,
23
+ _ref$onSelectionChang = _ref.onSelectionChange,
24
+ onSelectionChange = _ref$onSelectionChang === void 0 ? function () {} : _ref$onSelectionChang;
25
+ var _useIntl = useIntl(),
26
+ formatMessage = _useIntl.formatMessage;
27
+ var pickerRef = useRef(null);
28
+ var _useState = useState(''),
29
+ _useState2 = _slicedToArray(_useState, 2),
30
+ searchTerm = _useState2[0],
31
+ setSearchTerm = _useState2[1];
32
+ var _useState3 = useState(selection),
33
+ _useState4 = _slicedToArray(_useState3, 2),
34
+ selectedOptions = _useState4[0],
35
+ setSelectedOptions = _useState4[1];
36
+ var _useFieldValues = useFieldValues({
37
+ filterType: filterType
38
+ }),
39
+ filterOptions = _useFieldValues.filterOptions,
40
+ fetchFilterOptions = _useFieldValues.fetchFilterOptions,
41
+ totalCount = _useFieldValues.totalCount,
42
+ status = _useFieldValues.status;
43
+ var handleInputChange = useCallback(function (searchString, actionMeta) {
44
+ if (actionMeta.action === 'input-change' && searchString !== searchTerm) {
45
+ setSearchTerm(searchString);
46
+ }
47
+ }, [searchTerm]);
48
+ var handleOptionSelection = function handleOptionSelection(newValue) {
49
+ setSelectedOptions(newValue);
50
+ onSelectionChange(newValue);
51
+ };
52
+ var handleOpenPopup = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
53
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
54
+ while (1) switch (_context.prev = _context.next) {
55
+ case 0:
56
+ if (status === 'empty') {
57
+ fetchFilterOptions();
58
+ }
59
+ case 1:
60
+ case "end":
61
+ return _context.stop();
62
+ }
63
+ }, _callee);
64
+ })), [fetchFilterOptions, status]);
65
+ useEffect(function () {
66
+ if (status === 'resolved') {
67
+ var _pickerRef$current;
68
+ // necessary to refocus the search input after the loading state
69
+ pickerRef === null || pickerRef === void 0 || (_pickerRef$current = pickerRef.current) === null || _pickerRef$current === void 0 || (_pickerRef$current = _pickerRef$current.selectRef) === null || _pickerRef$current === void 0 || (_pickerRef$current = _pickerRef$current.inputRef) === null || _pickerRef$current === void 0 || _pickerRef$current.focus();
70
+ }
71
+ }, [status]);
72
+ return /*#__PURE__*/React.createElement(PopupSelect, {
73
+ isMulti: true,
74
+ maxMenuWidth: 300,
75
+ minMenuWidth: 300,
76
+ ref: pickerRef,
77
+ testId: "jlol-basic-filter-popup-select",
78
+ inputId: "jlol-basic-filter-popup-select--input",
79
+ searchThreshold: 0,
80
+ inputValue: searchTerm,
81
+ closeMenuOnSelect: false,
82
+ hideSelectedOptions: false,
83
+ isLoading: status === 'loading',
84
+ placeholder: formatMessage(asyncPopupSelectMessages.selectPlaceholder),
85
+ components: {
86
+ /* @ts-expect-error - This component has stricter OptionType, hence a temp setup untill its made generic */
87
+ Option: CheckboxOption,
88
+ Control: CustomControl
89
+ },
90
+ options: filterOptions,
91
+ value: selectedOptions,
92
+ filterOption: noFilterOptions,
93
+ formatOptionLabel: formatOptionLabel,
94
+ onChange: handleOptionSelection,
95
+ onInputChange: handleInputChange,
96
+ target: function target(_ref3) {
97
+ var isOpen = _ref3.isOpen,
98
+ triggerProps = _objectWithoutProperties(_ref3, _excluded);
99
+ return /*#__PURE__*/React.createElement(PopupTrigger, _extends({}, triggerProps, {
100
+ filterType: filterType,
101
+ isSelected: isOpen,
102
+ onClick: handleOpenPopup
103
+ }));
104
+ },
105
+ footer: /*#__PURE__*/React.createElement(PopupFooter, {
106
+ currentDisplayCount: filterOptions.length,
107
+ totalCount: totalCount
108
+ })
109
+ });
110
+ };
111
+ export default AsyncPopupSelect;
@@ -0,0 +1,32 @@
1
+ export var asyncPopupSelectMessages = {
2
+ selectPlaceholder: {
3
+ id: 'linkDataSource.basic-filter.dropdown.select.placeholder',
4
+ description: 'Placeholder text to be displayed for the search input box.',
5
+ defaultMessage: 'Search'
6
+ },
7
+ paginationDetails: {
8
+ id: 'linkDataSource.basic-filter.footer.pagination-details',
9
+ description: 'Text to indicate page count and total count information.',
10
+ defaultMessage: '{currentDisplayCount} of {totalCount}'
11
+ },
12
+ projectLabel: {
13
+ id: 'linkDataSource.basic-filter.project.label',
14
+ description: 'Label to be displayed for project filter dropdown button.',
15
+ defaultMessage: 'Project'
16
+ },
17
+ statusLabel: {
18
+ id: 'linkDataSource.basic-filter.status.label',
19
+ description: 'Label to be displayed for status filter dropdown button.',
20
+ defaultMessage: 'Status'
21
+ },
22
+ issuetypeLabel: {
23
+ id: 'linkDataSource.basic-filter.issuetype.label',
24
+ description: 'Label to be displayed for issuetype filter dropdown button.',
25
+ defaultMessage: 'Type'
26
+ },
27
+ assigneeLabel: {
28
+ id: 'linkDataSource.basic-filter.assignee.label',
29
+ description: 'Label to be displayed for assignee filter dropdown button.',
30
+ defaultMessage: 'Assignee'
31
+ }
32
+ };
@@ -0,0 +1,21 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { FormattedMessage } from 'react-intl-next';
3
+ import Button from '@atlaskit/button/standard-button';
4
+ import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
5
+ import { asyncPopupSelectMessages } from './messages';
6
+ var PopupTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
7
+ var filterType = _ref.filterType,
8
+ isSelected = _ref.isSelected,
9
+ onClick = _ref.onClick;
10
+ return /*#__PURE__*/React.createElement(Button, {
11
+ ref: ref,
12
+ appearance: "default",
13
+ isSelected: isSelected,
14
+ onClick: onClick,
15
+ testId: "jlol-basic-filter-".concat(filterType, "-trigger"),
16
+ iconAfter: /*#__PURE__*/React.createElement(ChevronDownIcon, {
17
+ label: ""
18
+ })
19
+ }, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages["".concat(filterType, "Label")]));
20
+ });
21
+ export default PopupTrigger;
@@ -0,0 +1,30 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import React, { useEffect, useState } from 'react';
3
+ import { Flex } from '@atlaskit/primitives';
4
+ import { isValidJql } from '../utils';
5
+ import AsyncPopupSelect from './async-popup-select';
6
+ var availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
7
+ var BasicFilterContainer = function BasicFilterContainer(_ref) {
8
+ var jql = _ref.jql;
9
+ var _useState = useState([]),
10
+ _useState2 = _slicedToArray(_useState, 1),
11
+ selection = _useState2[0];
12
+ useEffect(function () {
13
+ if (isValidJql(jql)) {
14
+ // hydrate hook call goes in here
15
+ }
16
+ }, [jql]);
17
+ var handleSelectionChange = function handleSelectionChange() {};
18
+ return /*#__PURE__*/React.createElement(Flex, {
19
+ gap: "space.100",
20
+ testId: "jlol-basic-filter-container"
21
+ }, availableBasicFilterTypes.map(function (filter) {
22
+ return /*#__PURE__*/React.createElement(AsyncPopupSelect, {
23
+ filterType: filter,
24
+ key: filter,
25
+ selection: selection,
26
+ onSelectionChange: handleSelectionChange
27
+ });
28
+ }));
29
+ };
30
+ export default BasicFilterContainer;
@@ -0,0 +1,5 @@
1
+ import { JastBuilder } from '@atlaskit/jql-ast';
2
+ export var isValidJql = function isValidJql(jql) {
3
+ var jast = new JastBuilder().build(jql);
4
+ return jast.errors.length === 0;
5
+ };
@@ -5,10 +5,10 @@ import { css, jsx } from '@emotion/react';
5
5
  import { useIntl } from 'react-intl-next';
6
6
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
7
7
  import { useDatasourceAnalyticsEvents } from '../../../analytics';
8
+ import { BasicFilters } from '../basic-filters';
8
9
  import { BasicSearchInput } from '../basic-search-input';
9
10
  import { JiraJQLEditor } from '../jql-editor';
10
11
  import { ModeSwitcher } from '../mode-switcher';
11
- import { BasicFilters } from './basic-filters';
12
12
  import { buildJQL } from './buildJQL';
13
13
  import { modeSwitcherMessages } from './messages';
14
14
  var inputContainerStyles = css({
@@ -105,7 +105,9 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
105
105
  onChange: handleBasicSearchChange,
106
106
  onSearch: handleSearch,
107
107
  searchTerm: basicSearchTerm
108
- }), showBasicFilters && jsx(BasicFilters, null)), currentSearchMethod === 'jql' && jsx(JiraJQLEditor, {
108
+ }), showBasicFilters && jsx(BasicFilters, {
109
+ jql: jql
110
+ })), currentSearchMethod === 'jql' && jsx(JiraJQLEditor, {
109
111
  cloudId: cloudId || '',
110
112
  isSearching: isSearching,
111
113
  onChange: onQueryChange,
@@ -1,2 +1,3 @@
1
1
  export declare const stickyTableHeadersIndex = 10;
2
2
  export declare const siteSelectorIndex: number;
3
+ export declare const aboveModal: number;
@@ -1,7 +1,11 @@
1
+ export type AqlValidationResponse = {
2
+ isValid: boolean;
3
+ message: string | null;
4
+ };
1
5
  export type UseValidateAqlTextState = {
2
6
  validateAqlTextLoading: boolean;
3
7
  validateAqlTextError: Error | undefined;
4
8
  isValidAqlText: boolean;
5
- validateAqlText: (aql: string) => Promise<boolean>;
9
+ validateAqlText: (aql: string) => Promise<AqlValidationResponse>;
6
10
  };
7
- export declare const useValidateAqlText: (workspaceId: string, hostname?: string) => UseValidateAqlTextState;
11
+ export declare const useValidateAqlText: (workspaceId: string) => UseValidateAqlTextState;
@@ -19,6 +19,7 @@ declare const _default: {
19
19
  'linkDataSource.column-picker.no-all-items-shown-message.line-1': string;
20
20
  'linkDataSource.column-picker.no-all-items-shown-message.line-2': string;
21
21
  'linkDataSource.column-picker.search': string;
22
+ 'linkDataSource.column-picker.tooltip': string;
22
23
  'linkDataSource.jira-issues.accessInstructions': string;
23
24
  'linkDataSource.jira-issues.accessRequired': string;
24
25
  'linkDataSource.jira-issues.accessRequiredWithSite': string;
@@ -40,6 +41,7 @@ declare const _default: {
40
41
  'linkDataSource.jira-issues.refresh': string;
41
42
  'linkDataSource.jira-issues.unableToLoadItems': string;
42
43
  'linkDataSource.jira-issues.unableToLoadResults': string;
44
+ 'linkDataSource.modal-initial-state.beta': string;
43
45
  'linkDataSource.modal-initial-state.learnMoreLink': string;
44
46
  'linkDataSource.modal-initial-state.searchDescription': string;
45
47
  'linkDataSource.modal-initial-state.searchTitle': string;
@@ -19,6 +19,7 @@ declare const _default: {
19
19
  'linkDataSource.column-picker.no-all-items-shown-message.line-1': string;
20
20
  'linkDataSource.column-picker.no-all-items-shown-message.line-2': string;
21
21
  'linkDataSource.column-picker.search': string;
22
+ 'linkDataSource.column-picker.tooltip': string;
22
23
  'linkDataSource.jira-issues.accessInstructions': string;
23
24
  'linkDataSource.jira-issues.accessRequired': string;
24
25
  'linkDataSource.jira-issues.accessRequiredWithSite': string;
@@ -40,6 +41,7 @@ declare const _default: {
40
41
  'linkDataSource.jira-issues.refresh': string;
41
42
  'linkDataSource.jira-issues.unableToLoadItems': string;
42
43
  'linkDataSource.jira-issues.unableToLoadResults': string;
44
+ 'linkDataSource.modal-initial-state.beta': string;
43
45
  'linkDataSource.modal-initial-state.learnMoreLink': string;
44
46
  'linkDataSource.modal-initial-state.searchDescription': string;
45
47
  'linkDataSource.modal-initial-state.searchTitle': string;
@@ -19,6 +19,7 @@ declare const _default: {
19
19
  'linkDataSource.column-picker.no-all-items-shown-message.line-1': string;
20
20
  'linkDataSource.column-picker.no-all-items-shown-message.line-2': string;
21
21
  'linkDataSource.column-picker.search': string;
22
+ 'linkDataSource.column-picker.tooltip': string;
22
23
  'linkDataSource.jira-issues.accessInstructions': string;
23
24
  'linkDataSource.jira-issues.accessRequired': string;
24
25
  'linkDataSource.jira-issues.accessRequiredWithSite': string;
@@ -40,6 +41,7 @@ declare const _default: {
40
41
  'linkDataSource.jira-issues.refresh': string;
41
42
  'linkDataSource.jira-issues.unableToLoadItems': string;
42
43
  'linkDataSource.jira-issues.unableToLoadResults': string;
44
+ 'linkDataSource.modal-initial-state.beta': string;
43
45
  'linkDataSource.modal-initial-state.learnMoreLink': string;
44
46
  'linkDataSource.modal-initial-state.searchDescription': string;
45
47
  'linkDataSource.modal-initial-state.searchTitle': string;
@@ -19,6 +19,7 @@ declare const _default: {
19
19
  'linkDataSource.column-picker.no-all-items-shown-message.line-1': string;
20
20
  'linkDataSource.column-picker.no-all-items-shown-message.line-2': string;
21
21
  'linkDataSource.column-picker.search': string;
22
+ 'linkDataSource.column-picker.tooltip': string;
22
23
  'linkDataSource.jira-issues.accessInstructions': string;
23
24
  'linkDataSource.jira-issues.accessRequired': string;
24
25
  'linkDataSource.jira-issues.accessRequiredWithSite': string;
@@ -39,6 +40,7 @@ declare const _default: {
39
40
  'linkDataSource.jira-issues.refresh': string;
40
41
  'linkDataSource.jira-issues.unableToLoadItems': string;
41
42
  'linkDataSource.jira-issues.unableToLoadResults': string;
43
+ 'linkDataSource.modal-initial-state.beta': string;
42
44
  'linkDataSource.modal-initial-state.learnMoreLink': string;
43
45
  'linkDataSource.modal-initial-state.searchDescription': string;
44
46
  'linkDataSource.modal-initial-state.searchTitle': string;
@@ -21,10 +21,13 @@ export type FetchObjectSchemasResponse = {
21
21
  values: ObjectSchema[];
22
22
  isLast: boolean;
23
23
  };
24
+ export type ValidationError = {
25
+ iql?: string;
26
+ };
24
27
  export type AqlValidateResponse = {
25
28
  isValid: boolean;
26
29
  errorMessages: string[];
27
- errors: {};
30
+ errors?: ValidationError;
28
31
  };
29
32
  export declare const objectSchemaKey: "objectSchema";
30
33
  export declare const aqlKey: "aql";
@@ -0,0 +1,12 @@
1
+ import { BasicFilterFieldType, SelectOption } from '../ui/async-popup-select/types';
2
+ interface FieldValuesProps {
3
+ filterType: BasicFilterFieldType;
4
+ }
5
+ export interface FieldValuesState {
6
+ filterOptions: SelectOption[];
7
+ fetchFilterOptions: () => void;
8
+ totalCount: number;
9
+ status: 'empty' | 'loading' | 'resolved' | 'error';
10
+ }
11
+ export declare const useFieldValues: ({ filterType, }: FieldValuesProps) => FieldValuesState;
12
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare const useHydrateJqlQuery: () => {
2
+ hydratedFields: {};
3
+ };
@@ -0,0 +1,3 @@
1
+ export declare const useIsComplexQuery: () => {
2
+ isComplexQuery: boolean;
3
+ };
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { ControlProps } from '@atlaskit/select';
3
+ import { SelectOption } from './types';
4
+ export declare const CustomControl: ({ children, ...innerProps }: ControlProps<SelectOption, true>) => JSX.Element;
5
+ export default CustomControl;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export interface PopupFooterProps {
3
+ currentDisplayCount: number;
4
+ totalCount: number;
5
+ }
6
+ declare const PopupFooter: ({ currentDisplayCount, totalCount }: PopupFooterProps) => JSX.Element;
7
+ export default PopupFooter;
@@ -0,0 +1,3 @@
1
+ import { FormatOptionLabel } from './types';
2
+ declare const formatOptionLabel: FormatOptionLabel;
3
+ export default formatOptionLabel;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { BasicFilterFieldType, SelectOption } from './types';
3
+ export interface AsyncPopupSelectProps {
4
+ filterType: BasicFilterFieldType;
5
+ selection: SelectOption[];
6
+ onSelectionChange?: (selection: SelectOption[]) => void;
7
+ }
8
+ declare const AsyncPopupSelect: ({ filterType, selection, onSelectionChange, }: AsyncPopupSelectProps) => JSX.Element;
9
+ export default AsyncPopupSelect;
@@ -0,0 +1,32 @@
1
+ export declare const asyncPopupSelectMessages: {
2
+ selectPlaceholder: {
3
+ id: string;
4
+ description: string;
5
+ defaultMessage: string;
6
+ };
7
+ paginationDetails: {
8
+ id: string;
9
+ description: string;
10
+ defaultMessage: string;
11
+ };
12
+ projectLabel: {
13
+ id: string;
14
+ description: string;
15
+ defaultMessage: string;
16
+ };
17
+ statusLabel: {
18
+ id: string;
19
+ description: string;
20
+ defaultMessage: string;
21
+ };
22
+ issuetypeLabel: {
23
+ id: string;
24
+ description: string;
25
+ defaultMessage: string;
26
+ };
27
+ assigneeLabel: {
28
+ id: string;
29
+ description: string;
30
+ defaultMessage: string;
31
+ };
32
+ };
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { BasicFilterFieldType } from './types';
3
+ export interface PopupTriggerProps {
4
+ filterType: BasicFilterFieldType;
5
+ isSelected?: boolean;
6
+ onClick?: () => void;
7
+ }
8
+ declare const PopupTrigger: React.ForwardRefExoticComponent<PopupTriggerProps & React.RefAttributes<HTMLElement>>;
9
+ export default PopupTrigger;
@@ -0,0 +1,23 @@
1
+ export type BasicFilterFieldType = 'project' | 'assignee' | 'issuetype' | 'status';
2
+ import { ReactElement } from 'react';
3
+ 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?: 'default' | 'inprogress' | 'moved' | 'new' | 'removed' | 'success';
14
+ isBold?: boolean;
15
+ };
16
+ export type AvatarLabelOption = OptionBase & {
17
+ optionType: 'avatarLabel';
18
+ avatar?: string;
19
+ isSquare?: boolean;
20
+ };
21
+ export type SelectOption = IconLabelOption | LozengeLabelOption | AvatarLabelOption;
22
+ export type FormatOptionLabel = (option: SelectOption) => ReactElement;
23
+ export {};
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ interface BasicFilterContainerProps {
3
+ jql: string;
4
+ }
5
+ declare const BasicFilterContainer: ({ jql }: BasicFilterContainerProps) => JSX.Element;
6
+ export default BasicFilterContainer;
@@ -0,0 +1 @@
1
+ export declare const isValidJql: (jql: string) => boolean;
@@ -1,2 +1,3 @@
1
1
  export declare const stickyTableHeadersIndex = 10;
2
2
  export declare const siteSelectorIndex: number;
3
+ export declare const aboveModal: number;
@@ -1,7 +1,11 @@
1
+ export type AqlValidationResponse = {
2
+ isValid: boolean;
3
+ message: string | null;
4
+ };
1
5
  export type UseValidateAqlTextState = {
2
6
  validateAqlTextLoading: boolean;
3
7
  validateAqlTextError: Error | undefined;
4
8
  isValidAqlText: boolean;
5
- validateAqlText: (aql: string) => Promise<boolean>;
9
+ validateAqlText: (aql: string) => Promise<AqlValidationResponse>;
6
10
  };
7
- export declare const useValidateAqlText: (workspaceId: string, hostname?: string) => UseValidateAqlTextState;
11
+ export declare const useValidateAqlText: (workspaceId: string) => UseValidateAqlTextState;
@@ -19,6 +19,7 @@ declare const _default: {
19
19
  'linkDataSource.column-picker.no-all-items-shown-message.line-1': string;
20
20
  'linkDataSource.column-picker.no-all-items-shown-message.line-2': string;
21
21
  'linkDataSource.column-picker.search': string;
22
+ 'linkDataSource.column-picker.tooltip': string;
22
23
  'linkDataSource.jira-issues.accessInstructions': string;
23
24
  'linkDataSource.jira-issues.accessRequired': string;
24
25
  'linkDataSource.jira-issues.accessRequiredWithSite': string;
@@ -40,6 +41,7 @@ declare const _default: {
40
41
  'linkDataSource.jira-issues.refresh': string;
41
42
  'linkDataSource.jira-issues.unableToLoadItems': string;
42
43
  'linkDataSource.jira-issues.unableToLoadResults': string;
44
+ 'linkDataSource.modal-initial-state.beta': string;
43
45
  'linkDataSource.modal-initial-state.learnMoreLink': string;
44
46
  'linkDataSource.modal-initial-state.searchDescription': string;
45
47
  'linkDataSource.modal-initial-state.searchTitle': string;
@@ -19,6 +19,7 @@ declare const _default: {
19
19
  'linkDataSource.column-picker.no-all-items-shown-message.line-1': string;
20
20
  'linkDataSource.column-picker.no-all-items-shown-message.line-2': string;
21
21
  'linkDataSource.column-picker.search': string;
22
+ 'linkDataSource.column-picker.tooltip': string;
22
23
  'linkDataSource.jira-issues.accessInstructions': string;
23
24
  'linkDataSource.jira-issues.accessRequired': string;
24
25
  'linkDataSource.jira-issues.accessRequiredWithSite': string;
@@ -40,6 +41,7 @@ declare const _default: {
40
41
  'linkDataSource.jira-issues.refresh': string;
41
42
  'linkDataSource.jira-issues.unableToLoadItems': string;
42
43
  'linkDataSource.jira-issues.unableToLoadResults': string;
44
+ 'linkDataSource.modal-initial-state.beta': string;
43
45
  'linkDataSource.modal-initial-state.learnMoreLink': string;
44
46
  'linkDataSource.modal-initial-state.searchDescription': string;
45
47
  'linkDataSource.modal-initial-state.searchTitle': string;
@@ -19,6 +19,7 @@ declare const _default: {
19
19
  'linkDataSource.column-picker.no-all-items-shown-message.line-1': string;
20
20
  'linkDataSource.column-picker.no-all-items-shown-message.line-2': string;
21
21
  'linkDataSource.column-picker.search': string;
22
+ 'linkDataSource.column-picker.tooltip': string;
22
23
  'linkDataSource.jira-issues.accessInstructions': string;
23
24
  'linkDataSource.jira-issues.accessRequired': string;
24
25
  'linkDataSource.jira-issues.accessRequiredWithSite': string;
@@ -40,6 +41,7 @@ declare const _default: {
40
41
  'linkDataSource.jira-issues.refresh': string;
41
42
  'linkDataSource.jira-issues.unableToLoadItems': string;
42
43
  'linkDataSource.jira-issues.unableToLoadResults': string;
44
+ 'linkDataSource.modal-initial-state.beta': string;
43
45
  'linkDataSource.modal-initial-state.learnMoreLink': string;
44
46
  'linkDataSource.modal-initial-state.searchDescription': string;
45
47
  'linkDataSource.modal-initial-state.searchTitle': string;