@atlaskit/link-datasource 1.19.4 → 1.19.5

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 1.19.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#43878](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/43878) [`0eaf28a90c3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0eaf28a90c3) - Fix an issue where undefined value for basicInputTextValue was breaking build JQL logic.
8
+
3
9
  ## 1.19.4
4
10
 
5
11
  ### Patch Changes
@@ -7,5 +7,5 @@ exports.packageMetaData = exports.EVENT_CHANNEL = void 0;
7
7
  var EVENT_CHANNEL = exports.EVENT_CHANNEL = 'media';
8
8
  var packageMetaData = exports.packageMetaData = {
9
9
  packageName: "@atlaskit/link-datasource",
10
- packageVersion: "1.19.4"
10
+ packageVersion: "1.19.5"
11
11
  };
@@ -55,9 +55,9 @@ var useHydrateJqlQuery = exports.useHydrateJqlQuery = function useHydrateJqlQuer
55
55
  */
56
56
  _extractValuesFromNon = (0, _extractValuesFromNonComplexJQL.extractValuesFromNonComplexJQL)(jql), text = _extractValuesFromNon.text, summary = _extractValuesFromNon.summary, key = _extractValuesFromNon.key;
57
57
  _ref2 = text || summary || key || [], _ref3 = (0, _slicedToArray2.default)(_ref2, 1), textFieldValue = _ref3[0];
58
- mappedValues = _objectSpread(_objectSpread({}, (0, _transformers.mapHydrateResponseData)(response)), {}, {
58
+ mappedValues = _objectSpread(_objectSpread({}, (0, _transformers.mapHydrateResponseData)(response)), textFieldValue ? {
59
59
  basicInputTextValue: (0, _isClauseTooComplex.removeFuzzyCharacter)(textFieldValue)
60
- });
60
+ } : {});
61
61
  setHydratedOptions(mappedValues);
62
62
  setStatus('resolved');
63
63
  _context.next = 20;
@@ -84,6 +84,13 @@ function mapHydrateResponseData(_ref2) {
84
84
  var jqlTerm = _ref3.jqlTerm,
85
85
  _ref3$values = _ref3.values,
86
86
  values = _ref3$values === void 0 ? [] : _ref3$values;
87
+ /**
88
+ * Currently, the hydrate query does not support text field in JQL and returns as {} object.
89
+ * Hence we check if a valid jqlTerm is available
90
+ */
91
+ if (!jqlTerm) {
92
+ return;
93
+ }
87
94
  var options = values.map(function (_ref4) {
88
95
  var values = _ref4.values;
89
96
  return values && values[0] ? mapNodeToOption(values[0]) : null;
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.fuzzyCharacter = exports.buildJQL = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _jqlAst = require("@atlaskit/jql-ast");
10
+ var _ui = require("../basic-filters/ui");
10
11
  var fuzzySearchRegExp = /^"(.+)"$/;
11
12
  var jiraIssueKeyRegExp = /[A-Z]+-\d+/;
12
13
  var fuzzyCharacter = exports.fuzzyCharacter = '*';
@@ -27,7 +28,15 @@ var buildJQL = exports.buildJQL = function buildJQL(input) {
27
28
  orderKey = _input$orderKey === void 0 ? 'created' : _input$orderKey,
28
29
  filterValues = input.filterValues;
29
30
  var trimmedRawSearch = rawSearch.trim();
30
- var hasFilterSelectionValues = filterValues && Object.values(filterValues).some(function (value) {
31
+ var hasValidFilterSelectionAndValues = filterValues &&
32
+ // checks if filterValues have only valid keys
33
+ Object.entries(filterValues).every(function (_ref) {
34
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 1),
35
+ key = _ref2[0];
36
+ return _ui.availableBasicFilterTypes.includes(key);
37
+ }) &&
38
+ // checks if atleast one fitler value has some selection object
39
+ Object.values(filterValues).some(function (value) {
31
40
  return value.length > 0;
32
41
  });
33
42
  if (!query) {
@@ -46,11 +55,11 @@ var buildJQL = exports.buildJQL = function buildJQL(input) {
46
55
  var orClause = _jqlAst.creators.compoundClause(_jqlAst.creators.compoundOperator(_jqlAst.COMPOUND_OPERATOR_OR), orClauseFields);
47
56
  query.appendClause(orClause, _jqlAst.COMPOUND_OPERATOR_AND);
48
57
  }
49
- if (hasFilterSelectionValues) {
50
- Object.entries(filterValues).forEach(function (_ref) {
51
- var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
52
- key = _ref2[0],
53
- filterFieldValues = _ref2[1];
58
+ if (hasValidFilterSelectionAndValues) {
59
+ Object.entries(filterValues).forEach(function (_ref3) {
60
+ var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
61
+ key = _ref4[0],
62
+ filterFieldValues = _ref4[1];
54
63
  if (filterFieldValues.length === 0) {
55
64
  return;
56
65
  }
@@ -60,7 +69,7 @@ var buildJQL = exports.buildJQL = function buildJQL(input) {
60
69
  query.appendClause(filterInClause, _jqlAst.COMPOUND_OPERATOR_AND);
61
70
  });
62
71
  }
63
- if (!trimmedRawSearch && !hasFilterSelectionValues) {
72
+ if (!trimmedRawSearch && !hasValidFilterSelectionAndValues) {
64
73
  var created = constructTerminalClause('created', _jqlAst.OPERATOR_GT_EQUALS, '-30d');
65
74
  query.appendClause(created, _jqlAst.COMPOUND_OPERATOR_AND);
66
75
  }
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.JiraSearchContainer = exports.ALLOWED_ORDER_BY_KEYS = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
12
  var _react = _interopRequireWildcard(require("react"));
12
13
  var _react2 = require("@emotion/react");
@@ -24,10 +25,12 @@ var _jqlEditor = require("../jql-editor");
24
25
  var _modeSwitcher = require("../mode-switcher");
25
26
  var _buildJQL = require("./buildJQL");
26
27
  var _messages = require("./messages");
28
+ var _excluded = ["basicInputTextValue"];
29
+ /** @jsx jsx */
27
30
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
31
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
32
  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; }
30
- 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) { (0, _defineProperty2.default)(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; } /** @jsx jsx */
33
+ 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) { (0, _defineProperty2.default)(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; }
31
34
  var inputContainerStyles = (0, _react2.css)({
32
35
  alignItems: 'baseline',
33
36
  display: 'flex',
@@ -175,9 +178,11 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
175
178
  }, []);
176
179
  (0, _react.useEffect)(function () {
177
180
  if (basicFilterHydrationStatus === 'resolved') {
178
- setFilterSelections(hydratedOptions);
179
- if (hydratedOptions.basicInputTextValue) {
180
- setBasicSearchTerm(hydratedOptions.basicInputTextValue);
181
+ var basicInputTextValue = hydratedOptions.basicInputTextValue,
182
+ hydratedFilterOptions = (0, _objectWithoutProperties2.default)(hydratedOptions, _excluded);
183
+ setFilterSelections(hydratedFilterOptions);
184
+ if (basicInputTextValue) {
185
+ setBasicSearchTerm(basicInputTextValue);
181
186
  }
182
187
  }
183
188
  }, [hydratedOptions, basicFilterHydrationStatus]);
@@ -1,5 +1,5 @@
1
1
  export const EVENT_CHANNEL = 'media';
2
2
  export const packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.19.4"
4
+ packageVersion: "1.19.5"
5
5
  };
@@ -31,7 +31,9 @@ export const useHydrateJqlQuery = (cloudId, jql) => {
31
31
  const [textFieldValue] = text || summary || key || [];
32
32
  const mappedValues = {
33
33
  ...mapHydrateResponseData(response),
34
- basicInputTextValue: removeFuzzyCharacter(textFieldValue)
34
+ ...(textFieldValue ? {
35
+ basicInputTextValue: removeFuzzyCharacter(textFieldValue)
36
+ } : {})
35
37
  };
36
38
  setHydratedOptions(mappedValues);
37
39
  setStatus('resolved');
@@ -78,6 +78,13 @@ export function mapHydrateResponseData({
78
78
  jqlTerm,
79
79
  values = []
80
80
  }) => {
81
+ /**
82
+ * Currently, the hydrate query does not support text field in JQL and returns as {} object.
83
+ * Hence we check if a valid jqlTerm is available
84
+ */
85
+ if (!jqlTerm) {
86
+ return;
87
+ }
81
88
  const options = values.map(({
82
89
  values
83
90
  }) => values && values[0] ? mapNodeToOption(values[0]) : null).filter(isNonNullSelectOption) || [];
@@ -1,4 +1,5 @@
1
1
  import { COMPOUND_OPERATOR_AND, COMPOUND_OPERATOR_OR, creators, JastBuilder, OPERATOR_EQUALS, OPERATOR_GT_EQUALS, OPERATOR_IN, OPERATOR_LIKE, ORDER_BY_DIRECTION_ASC, ORDER_BY_DIRECTION_DESC, print } from '@atlaskit/jql-ast';
2
+ import { availableBasicFilterTypes } from '../basic-filters/ui';
2
3
  const fuzzySearchRegExp = /^"(.+)"$/;
3
4
  const jiraIssueKeyRegExp = /[A-Z]+-\d+/;
4
5
  export const fuzzyCharacter = '*';
@@ -19,7 +20,11 @@ export const buildJQL = input => {
19
20
  filterValues
20
21
  } = input;
21
22
  const trimmedRawSearch = rawSearch.trim();
22
- const hasFilterSelectionValues = filterValues && Object.values(filterValues).some(value => value.length > 0);
23
+ const hasValidFilterSelectionAndValues = filterValues &&
24
+ // checks if filterValues have only valid keys
25
+ Object.entries(filterValues).every(([key]) => availableBasicFilterTypes.includes(key)) &&
26
+ // checks if atleast one fitler value has some selection object
27
+ Object.values(filterValues).some(value => value.length > 0);
23
28
  if (!query) {
24
29
  return '';
25
30
  }
@@ -36,7 +41,7 @@ export const buildJQL = input => {
36
41
  const orClause = creators.compoundClause(creators.compoundOperator(COMPOUND_OPERATOR_OR), orClauseFields);
37
42
  query.appendClause(orClause, COMPOUND_OPERATOR_AND);
38
43
  }
39
- if (hasFilterSelectionValues) {
44
+ if (hasValidFilterSelectionAndValues) {
40
45
  Object.entries(filterValues).forEach(([key, filterFieldValues]) => {
41
46
  if (filterFieldValues.length === 0) {
42
47
  return;
@@ -45,7 +50,7 @@ export const buildJQL = input => {
45
50
  query.appendClause(filterInClause, COMPOUND_OPERATOR_AND);
46
51
  });
47
52
  }
48
- if (!trimmedRawSearch && !hasFilterSelectionValues) {
53
+ if (!trimmedRawSearch && !hasValidFilterSelectionAndValues) {
49
54
  const created = constructTerminalClause('created', OPERATOR_GT_EQUALS, '-30d');
50
55
  query.appendClause(created, COMPOUND_OPERATOR_AND);
51
56
  }
@@ -143,9 +143,13 @@ export const JiraSearchContainer = props => {
143
143
  }, []);
144
144
  useEffect(() => {
145
145
  if (basicFilterHydrationStatus === 'resolved') {
146
- setFilterSelections(hydratedOptions);
147
- if (hydratedOptions.basicInputTextValue) {
148
- setBasicSearchTerm(hydratedOptions.basicInputTextValue);
146
+ const {
147
+ basicInputTextValue,
148
+ ...hydratedFilterOptions
149
+ } = hydratedOptions;
150
+ setFilterSelections(hydratedFilterOptions);
151
+ if (basicInputTextValue) {
152
+ setBasicSearchTerm(basicInputTextValue);
149
153
  }
150
154
  }
151
155
  }, [hydratedOptions, basicFilterHydrationStatus]);
@@ -1,5 +1,5 @@
1
1
  export var EVENT_CHANNEL = 'media';
2
2
  export var packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.19.4"
4
+ packageVersion: "1.19.5"
5
5
  };
@@ -48,9 +48,9 @@ export var useHydrateJqlQuery = function useHydrateJqlQuery(cloudId, jql) {
48
48
  */
49
49
  _extractValuesFromNon = extractValuesFromNonComplexJQL(jql), text = _extractValuesFromNon.text, summary = _extractValuesFromNon.summary, key = _extractValuesFromNon.key;
50
50
  _ref2 = text || summary || key || [], _ref3 = _slicedToArray(_ref2, 1), textFieldValue = _ref3[0];
51
- mappedValues = _objectSpread(_objectSpread({}, mapHydrateResponseData(response)), {}, {
51
+ mappedValues = _objectSpread(_objectSpread({}, mapHydrateResponseData(response)), textFieldValue ? {
52
52
  basicInputTextValue: removeFuzzyCharacter(textFieldValue)
53
- });
53
+ } : {});
54
54
  setHydratedOptions(mappedValues);
55
55
  setStatus('resolved');
56
56
  _context.next = 20;
@@ -74,6 +74,13 @@ export function mapHydrateResponseData(_ref2) {
74
74
  var jqlTerm = _ref3.jqlTerm,
75
75
  _ref3$values = _ref3.values,
76
76
  values = _ref3$values === void 0 ? [] : _ref3$values;
77
+ /**
78
+ * Currently, the hydrate query does not support text field in JQL and returns as {} object.
79
+ * Hence we check if a valid jqlTerm is available
80
+ */
81
+ if (!jqlTerm) {
82
+ return;
83
+ }
77
84
  var options = values.map(function (_ref4) {
78
85
  var values = _ref4.values;
79
86
  return values && values[0] ? mapNodeToOption(values[0]) : null;
@@ -1,5 +1,6 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import { COMPOUND_OPERATOR_AND, COMPOUND_OPERATOR_OR, creators, JastBuilder, OPERATOR_EQUALS, OPERATOR_GT_EQUALS, OPERATOR_IN, OPERATOR_LIKE, ORDER_BY_DIRECTION_ASC, ORDER_BY_DIRECTION_DESC, print } from '@atlaskit/jql-ast';
3
+ import { availableBasicFilterTypes } from '../basic-filters/ui';
3
4
  var fuzzySearchRegExp = /^"(.+)"$/;
4
5
  var jiraIssueKeyRegExp = /[A-Z]+-\d+/;
5
6
  export var fuzzyCharacter = '*';
@@ -20,7 +21,15 @@ export var buildJQL = function buildJQL(input) {
20
21
  orderKey = _input$orderKey === void 0 ? 'created' : _input$orderKey,
21
22
  filterValues = input.filterValues;
22
23
  var trimmedRawSearch = rawSearch.trim();
23
- var hasFilterSelectionValues = filterValues && Object.values(filterValues).some(function (value) {
24
+ var hasValidFilterSelectionAndValues = filterValues &&
25
+ // checks if filterValues have only valid keys
26
+ Object.entries(filterValues).every(function (_ref) {
27
+ var _ref2 = _slicedToArray(_ref, 1),
28
+ key = _ref2[0];
29
+ return availableBasicFilterTypes.includes(key);
30
+ }) &&
31
+ // checks if atleast one fitler value has some selection object
32
+ Object.values(filterValues).some(function (value) {
24
33
  return value.length > 0;
25
34
  });
26
35
  if (!query) {
@@ -39,11 +48,11 @@ export var buildJQL = function buildJQL(input) {
39
48
  var orClause = creators.compoundClause(creators.compoundOperator(COMPOUND_OPERATOR_OR), orClauseFields);
40
49
  query.appendClause(orClause, COMPOUND_OPERATOR_AND);
41
50
  }
42
- if (hasFilterSelectionValues) {
43
- Object.entries(filterValues).forEach(function (_ref) {
44
- var _ref2 = _slicedToArray(_ref, 2),
45
- key = _ref2[0],
46
- filterFieldValues = _ref2[1];
51
+ if (hasValidFilterSelectionAndValues) {
52
+ Object.entries(filterValues).forEach(function (_ref3) {
53
+ var _ref4 = _slicedToArray(_ref3, 2),
54
+ key = _ref4[0],
55
+ filterFieldValues = _ref4[1];
47
56
  if (filterFieldValues.length === 0) {
48
57
  return;
49
58
  }
@@ -53,7 +62,7 @@ export var buildJQL = function buildJQL(input) {
53
62
  query.appendClause(filterInClause, COMPOUND_OPERATOR_AND);
54
63
  });
55
64
  }
56
- if (!trimmedRawSearch && !hasFilterSelectionValues) {
65
+ if (!trimmedRawSearch && !hasValidFilterSelectionAndValues) {
57
66
  var created = constructTerminalClause('created', OPERATOR_GT_EQUALS, '-30d');
58
67
  query.appendClause(created, COMPOUND_OPERATOR_AND);
59
68
  }
@@ -1,5 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ var _excluded = ["basicInputTextValue"];
3
5
  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; }
4
6
  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; }
5
7
  /** @jsx jsx */
@@ -166,9 +168,11 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
166
168
  }, []);
167
169
  useEffect(function () {
168
170
  if (basicFilterHydrationStatus === 'resolved') {
169
- setFilterSelections(hydratedOptions);
170
- if (hydratedOptions.basicInputTextValue) {
171
- setBasicSearchTerm(hydratedOptions.basicInputTextValue);
171
+ var basicInputTextValue = hydratedOptions.basicInputTextValue,
172
+ hydratedFilterOptions = _objectWithoutProperties(hydratedOptions, _excluded);
173
+ setFilterSelections(hydratedFilterOptions);
174
+ if (basicInputTextValue) {
175
+ setBasicSearchTerm(basicInputTextValue);
172
176
  }
173
177
  }
174
178
  }, [hydratedOptions, basicFilterHydrationStatus]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "1.19.4",
3
+ "version": "1.19.5",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"