@atlaskit/link-datasource 2.0.1 → 2.0.3

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 (36) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +57 -62
  3. package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.js +5 -5
  4. package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/utils.js +29 -25
  5. package/dist/cjs/ui/confluence-search-modal/basic-filters/hooks/useBasicFilterHydration.js +6 -1
  6. package/dist/cjs/ui/confluence-search-modal/basic-filters/index.js +9 -2
  7. package/dist/cjs/ui/confluence-search-modal/confluence-search-container/index.js +38 -18
  8. package/dist/cjs/ui/confluence-search-modal/modal/index.js +11 -25
  9. package/dist/cjs/ui/issue-like-table/render-type/link/index.js +1 -2
  10. package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +51 -60
  11. package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.js +5 -5
  12. package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/utils.js +25 -23
  13. package/dist/es2019/ui/confluence-search-modal/basic-filters/hooks/useBasicFilterHydration.js +6 -1
  14. package/dist/es2019/ui/confluence-search-modal/basic-filters/index.js +7 -2
  15. package/dist/es2019/ui/confluence-search-modal/confluence-search-container/index.js +29 -13
  16. package/dist/es2019/ui/confluence-search-modal/modal/index.js +9 -25
  17. package/dist/es2019/ui/issue-like-table/render-type/link/index.js +1 -2
  18. package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +59 -64
  19. package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.js +5 -5
  20. package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/utils.js +25 -23
  21. package/dist/esm/ui/confluence-search-modal/basic-filters/hooks/useBasicFilterHydration.js +6 -1
  22. package/dist/esm/ui/confluence-search-modal/basic-filters/index.js +9 -2
  23. package/dist/esm/ui/confluence-search-modal/confluence-search-container/index.js +38 -18
  24. package/dist/esm/ui/confluence-search-modal/modal/index.js +11 -25
  25. package/dist/esm/ui/issue-like-table/render-type/link/index.js +1 -2
  26. package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.d.ts +3 -3
  27. package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/utils.d.ts +3 -3
  28. package/dist/types/ui/confluence-search-modal/basic-filters/hooks/useBasicFilterHydration.d.ts +2 -1
  29. package/dist/types/ui/confluence-search-modal/basic-filters/index.d.ts +2 -2
  30. package/dist/types/ui/confluence-search-modal/confluence-search-container/index.d.ts +4 -8
  31. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.d.ts +3 -3
  32. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/utils.d.ts +3 -3
  33. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/hooks/useBasicFilterHydration.d.ts +2 -1
  34. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/index.d.ts +2 -2
  35. package/dist/types-ts4.5/ui/confluence-search-modal/confluence-search-container/index.d.ts +4 -8
  36. package/package.json +11 -11
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 2.0.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#95350](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/95350)
8
+ [`74dd827156ba`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/74dd827156ba) -
9
+ Remove usages of showServerActions and showActions and replace with actionOptions
10
+ - Updated dependencies
11
+
12
+ ## 2.0.2
13
+
14
+ ### Patch Changes
15
+
16
+ - [#97698](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/97698)
17
+ [`1c7b378c0d3b`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1c7b378c0d3b) -
18
+ [HOT-108999] We had an incident where the cursor jumps back a character in table headers for any
19
+ language triggering composition on an empty line.This was fixed in a patch bump of
20
+ prosemirror-view. https://github.com/ProseMirror/prosemirror-view/compare/1.33.4...1.33.5
21
+ - [#95809](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/95809)
22
+ [`45495daadf0a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/45495daadf0a) -
23
+ Hydrates the last modified basic filter so values are pre-populated on edit mode.
24
+ - Updated dependencies
25
+
3
26
  ## 2.0.1
4
27
 
5
28
  ### Patch Changes
@@ -15,7 +15,6 @@ var _error = _interopRequireDefault(require("@atlaskit/icon/glyph/error"));
15
15
  var _popup = _interopRequireDefault(require("@atlaskit/popup"));
16
16
  var _colors = require("@atlaskit/theme/colors");
17
17
  var _constants = require("@atlaskit/theme/constants");
18
- var _types = require("../../types");
19
18
  var _messages = require("./messages");
20
19
  var _PopupComponent = require("./PopupComponent");
21
20
  var _styled = require("./styled");
@@ -25,95 +24,83 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
25
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
25
  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; }
27
26
  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; }
28
- var lastModifiedValues = ['anyTime', 'today', 'yesterday', 'past7Days', 'past30Days', 'pastYear', 'custom'];
27
+ var dateRangeValues = ['anyTime', 'today', 'yesterday', 'past7Days', 'past30Days', 'pastYear', 'custom'];
29
28
  var defaultOptionValue = 'anyTime';
30
29
  var DateRangePicker = exports.DateRangePicker = function DateRangePicker(_ref) {
31
30
  var onSelectionChange = _ref.onSelectionChange,
32
31
  selection = _ref.selection;
33
- var _useState = (0, _react.useState)(selection === null || selection === void 0 ? void 0 : selection.value),
32
+ var _ref2 = selection || {},
33
+ selectedValue = _ref2.value,
34
+ fromDate = _ref2.from,
35
+ toDate = _ref2.to;
36
+ var todayDate = new Date().toISOString();
37
+ var _useIntl = (0, _reactIntlNext.useIntl)(),
38
+ locale = _useIntl.locale,
39
+ formatMessage = _useIntl.formatMessage,
40
+ formatDate = _useIntl.formatDate;
41
+ var _useState = (0, _react.useState)(selectedValue),
34
42
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
35
43
  currentOption = _useState2[0],
36
44
  setCurrentOption = _useState2[1];
37
- var _useState3 = (0, _react.useState)((0, _utils.getInvalidDateRange)(selection === null || selection === void 0 ? void 0 : selection.from, selection === null || selection === void 0 ? void 0 : selection.to)),
45
+ var _useState3 = (0, _react.useState)(fromDate),
38
46
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
39
- invalidDateRange = _useState4[0],
40
- setInvalidDateRange = _useState4[1];
41
- var customFromDate = (0, _react.useRef)(selection === null || selection === void 0 ? void 0 : selection.from);
42
- var customToDate = (0, _react.useRef)(selection === null || selection === void 0 ? void 0 : selection.to);
43
- var _useState5 = (0, _react.useState)(false),
47
+ customFromDate = _useState4[0],
48
+ setCustomFromDate = _useState4[1];
49
+ var _useState5 = (0, _react.useState)(toDate),
44
50
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
45
- isPickerOpen = _useState6[0],
46
- setIsPickerOpen = _useState6[1];
47
- var _useIntl = (0, _reactIntlNext.useIntl)(),
48
- locale = _useIntl.locale,
49
- formatMessage = _useIntl.formatMessage,
50
- formatDate = _useIntl.formatDate;
51
- var isCustomSelected = currentOption === 'custom' || (selection === null || selection === void 0 ? void 0 : selection.value) === 'custom';
52
- var maxDate = new Date().toISOString();
53
- (0, _react.useEffect)(function () {
54
- if (isPickerOpen) {
55
- customFromDate.current = selection === null || selection === void 0 ? void 0 : selection.from;
56
- customToDate.current = selection === null || selection === void 0 ? void 0 : selection.to;
57
- }
58
- }, [isPickerOpen, selection === null || selection === void 0 ? void 0 : selection.from, selection === null || selection === void 0 ? void 0 : selection.to]);
59
- var handleFromOnChange = function handleFromOnChange(date) {
60
- customFromDate.current = date;
61
- setInvalidDateRange((0, _utils.getInvalidDateRange)(customFromDate.current, customToDate.current));
62
- };
63
- var handleToOnChange = function handleToOnChange(date) {
64
- customToDate.current = date;
65
- setInvalidDateRange((0, _utils.getInvalidDateRange)(customFromDate.current, customToDate.current));
66
- };
51
+ customToDate = _useState6[0],
52
+ setCustomToDate = _useState6[1];
53
+ var _useState7 = (0, _react.useState)(false),
54
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
55
+ isPickerOpen = _useState8[0],
56
+ setIsPickerOpen = _useState8[1];
57
+ var isCustomSelected = currentOption === 'custom';
58
+ var invalidDateRange = (0, _utils.useInvalidDateRange)(customFromDate, customToDate);
67
59
  var handleClickUpdateDateRange = function handleClickUpdateDateRange() {
68
- var label = 'custom';
69
- if (customFromDate.current && !customToDate.current) {
70
- label = customFromDate.current;
71
- } else if (customToDate.current && !customFromDate.current) {
72
- label = customToDate.current;
73
- }
74
- onSelectionChange(_types.CLOLBasicFilters.lastModified, {
75
- optionType: 'dateRange',
76
- label: label,
60
+ onSelectionChange({
77
61
  value: 'custom',
78
- from: customFromDate.current,
79
- to: customToDate.current
62
+ from: customFromDate,
63
+ to: customToDate
80
64
  });
81
65
  setIsPickerOpen(false);
82
66
  };
83
67
  var handleClickFilterOption = (0, _react.useCallback)(function (option) {
84
68
  setCurrentOption(option);
85
- onSelectionChange(_types.CLOLBasicFilters.lastModified, {
86
- optionType: 'dateRange',
87
- label: option,
69
+ onSelectionChange({
88
70
  value: option
89
71
  });
90
72
  if (option !== 'custom') {
91
73
  setIsPickerOpen(false);
92
74
  }
93
75
  }, [onSelectionChange]);
94
- var handleTogglePopup = (0, _react.useCallback)(function () {
95
- // If users click out of popup, we let selection prop define the current option when opened again until user sets state
96
- setCurrentOption(undefined);
97
- setIsPickerOpen(!isPickerOpen);
98
- }, [isPickerOpen]);
76
+ var handlePickerToggle = function handlePickerToggle() {
77
+ if (isPickerOpen) {
78
+ setCustomToDate(toDate);
79
+ setCustomFromDate(fromDate);
80
+ setIsPickerOpen(false);
81
+ return;
82
+ }
83
+ setIsPickerOpen(true);
84
+ return;
85
+ };
99
86
  return /*#__PURE__*/_react.default.createElement(_popup.default, {
100
87
  isOpen: isPickerOpen,
101
- onClose: handleTogglePopup,
88
+ onClose: handlePickerToggle,
102
89
  popupComponent: _PopupComponent.PopupComponent,
103
90
  zIndex: _constants.layers.modal(),
104
91
  content: function content() {
105
- return /*#__PURE__*/_react.default.createElement(_styled.CustomDropdown, null, lastModifiedValues.map(function (option) {
92
+ return /*#__PURE__*/_react.default.createElement(_styled.CustomDropdown, null, dateRangeValues.map(function (option) {
106
93
  return /*#__PURE__*/_react.default.createElement(_styled.CustomDropdownItem, {
107
94
  key: option
108
95
  // want to show Anytime as selected if none of the other options are selected
109
96
  ,
110
- isSelected: selection !== null && selection !== void 0 && selection.value ? option === selection.value : option === defaultOptionValue,
97
+ isSelected: selectedValue ? option === selectedValue : option === defaultOptionValue,
111
98
  onClick: function onClick() {
112
99
  return handleClickFilterOption(option);
113
100
  }
114
101
  }, (0, _utils.getDropdownLabel)(option, formatMessage));
115
102
  }), isPickerOpen && isCustomSelected && /*#__PURE__*/_react.default.createElement(_styled.CustomDateWrapper, null, /*#__PURE__*/_react.default.createElement(_styled.DatePickersWrapper, null, /*#__PURE__*/_react.default.createElement(_datetimePicker.DatePicker, {
116
- maxDate: maxDate,
103
+ maxDate: todayDate,
117
104
  innerProps: {
118
105
  style: {
119
106
  width: 140
@@ -121,8 +108,11 @@ var DateRangePicker = exports.DateRangePicker = function DateRangePicker(_ref) {
121
108
  },
122
109
  testId: "date-from-picker",
123
110
  dateFormat: "D MMM YYYY",
124
- onChange: handleFromOnChange,
125
- defaultValue: selection === null || selection === void 0 ? void 0 : selection.from,
111
+ onChange: setCustomFromDate,
112
+ onDelete: function onDelete() {
113
+ return setCustomFromDate(undefined);
114
+ },
115
+ defaultValue: fromDate,
126
116
  placeholder: formatMessage(_messages.dateRangeMessages.dateRangeFrom),
127
117
  isInvalid: Boolean(invalidDateRange),
128
118
  locale: locale,
@@ -136,7 +126,7 @@ var DateRangePicker = exports.DateRangePicker = function DateRangePicker(_ref) {
136
126
  }
137
127
  }
138
128
  }), /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.dateRangeMessages.dateRangeToLabel), /*#__PURE__*/_react.default.createElement(_datetimePicker.DatePicker, {
139
- maxDate: maxDate,
129
+ maxDate: todayDate,
140
130
  innerProps: {
141
131
  style: {
142
132
  width: 140
@@ -144,8 +134,11 @@ var DateRangePicker = exports.DateRangePicker = function DateRangePicker(_ref) {
144
134
  },
145
135
  testId: "date-to-picker",
146
136
  dateFormat: "D MMM YYYY",
147
- onChange: handleToOnChange,
148
- defaultValue: selection === null || selection === void 0 ? void 0 : selection.to,
137
+ onChange: setCustomToDate,
138
+ onDelete: function onDelete() {
139
+ return setCustomToDate(undefined);
140
+ },
141
+ defaultValue: toDate,
149
142
  placeholder: formatMessage(_messages.dateRangeMessages.dateRangeTo),
150
143
  isInvalid: Boolean(invalidDateRange),
151
144
  locale: locale,
@@ -170,12 +163,14 @@ var DateRangePicker = exports.DateRangePicker = function DateRangePicker(_ref) {
170
163
  },
171
164
  placement: "bottom-start",
172
165
  trigger: function trigger(triggerProps) {
166
+ var labelText = (0, _utils.getCurrentOptionLabel)(formatDate, formatMessage, selectedValue, toDate, fromDate);
167
+ var isSelected = !!selectedValue || isPickerOpen;
173
168
  return /*#__PURE__*/_react.default.createElement(_trigger.PopupTrigger, {
174
169
  triggerProps: triggerProps,
175
- isSelected: !!(selection !== null && selection !== void 0 && selection.value) || isPickerOpen,
170
+ isSelected: isSelected,
176
171
  labelPrefix: formatMessage(_messages.dateRangeMessages.dateRangeTitle),
177
- selectedLabel: (0, _utils.getCurrentOptionLabel)(formatDate, formatMessage, selection),
178
- onClick: handleTogglePopup
172
+ selectedLabel: labelText,
173
+ onClick: handlePickerToggle
179
174
  });
180
175
  }
181
176
  });
@@ -13,7 +13,7 @@ var PopupComponentContainer = exports.PopupComponentContainer = _styled.default.
13
13
  display: 'block',
14
14
  flex: '1 1 auto',
15
15
  overflow: 'visible',
16
- borderRadius: "var(--ds-border-radius-200, 3px)",
16
+ borderRadius: "var(--ds-border-radius-100, 4px)",
17
17
  background: "var(--ds-background-input, ".concat(_colors.N0, ")"),
18
18
  ':focus': {
19
19
  outline: 'none'
@@ -23,7 +23,7 @@ var PopupComponentContainer = exports.PopupComponentContainer = _styled.default.
23
23
  var CustomDropdown = exports.CustomDropdown = _styled.default.div({
24
24
  width: '340px',
25
25
  background: "var(--ds-background-input, ".concat(_colors.N0, ")"),
26
- borderRadius: "var(--ds-border-radius-200, 3px)",
26
+ borderRadius: "var(--ds-border-radius-100, 4px)",
27
27
  boxShadow: "var(--ds-shadow-overlay, 0px 0px 1px 0px rgba(9, 30, 66, 0.31), 0px 3px 5px 0px rgba(9, 30, 66, 0.20))",
28
28
  zIndex: _constants.layers.modal()
29
29
  });
@@ -62,7 +62,7 @@ var SelectDateRangeButton = exports.SelectDateRangeButton = _styled.default.butt
62
62
  width: '70px',
63
63
  height: '40px',
64
64
  marginTop: "var(--ds-space-150, 12px)",
65
- borderRadius: "var(--ds-border-radius-200, 3px)",
65
+ borderRadius: "var(--ds-border-radius-100, 4px)",
66
66
  '&:hover': {
67
67
  background: "var(--ds-background-accent-gray-subtler, ".concat(_colors.N30, ")"),
68
68
  cursor: 'pointer'
@@ -71,7 +71,7 @@ var SelectDateRangeButton = exports.SelectDateRangeButton = _styled.default.butt
71
71
  var DateRangeErrorMessage = exports.DateRangeErrorMessage = _styled.default.div({
72
72
  display: 'flex',
73
73
  lineHeight: 1.3333,
74
- marginTop: "var(--ds-space-050, 4px)",
75
- fontSize: '12px',
74
+ marginTop: "var(--ds-space-050, 2px)",
75
+ fontSize: "var(--ds-font-size-075, 12px)",
76
76
  color: "var(--ds-text-danger, ".concat(_colors.R400, ")")
77
77
  });
@@ -1,14 +1,16 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.getInvalidDateRange = exports.getDropdownLabel = exports.getCurrentOptionLabel = void 0;
8
- var _react = _interopRequireDefault(require("react"));
7
+ exports.useInvalidDateRange = exports.getDropdownLabel = exports.getCurrentOptionLabel = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
  var _reactIntlNext = require("react-intl-next");
10
10
  var _dateTime = require("../../../../../ui/issue-like-table/render-type/date-time");
11
11
  var _messages = require("./messages");
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
14
  var getDropdownLabel = exports.getDropdownLabel = function getDropdownLabel() {
13
15
  var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'anyTime';
14
16
  var formatMessage = arguments.length > 1 ? arguments[1] : undefined;
@@ -23,13 +25,13 @@ var getDropdownLabel = exports.getDropdownLabel = function getDropdownLabel() {
23
25
  };
24
26
  return formatMessage(_messages.dateRangeMessages[mapping[option]]);
25
27
  };
26
- var getCurrentOptionLabel = exports.getCurrentOptionLabel = function getCurrentOptionLabel(formatDate, formatMessage, selection) {
27
- var selectedOption = selection === null || selection === void 0 ? void 0 : selection.value;
28
+ var getCurrentOptionLabel = exports.getCurrentOptionLabel = function getCurrentOptionLabel(formatDate, formatMessage, value, to, from) {
29
+ var selectedOption = value;
28
30
  if (selectedOption === 'custom') {
29
- var hasFromDate = !!(selection !== null && selection !== void 0 && selection.from);
30
- var hasToDate = !!(selection !== null && selection !== void 0 && selection.to);
31
- var formattedFromDate = (0, _dateTime.getFormattedDate)((selection === null || selection === void 0 ? void 0 : selection.from) || '', 'date', formatDate);
32
- var formattedToDate = (0, _dateTime.getFormattedDate)((selection === null || selection === void 0 ? void 0 : selection.to) || '', 'date', formatDate);
31
+ var hasFromDate = !!from;
32
+ var hasToDate = !!to;
33
+ var formattedFromDate = (0, _dateTime.getFormattedDate)(from || '', 'date', formatDate);
34
+ var formattedToDate = (0, _dateTime.getFormattedDate)(to || '', 'date', formatDate);
33
35
  if (hasFromDate && !hasToDate) {
34
36
  return formatMessage(_messages.dateRangeMessages.dateRangeAfterLabel, {
35
37
  date: formattedFromDate
@@ -46,21 +48,23 @@ var getCurrentOptionLabel = exports.getCurrentOptionLabel = function getCurrentO
46
48
  }
47
49
  return getDropdownLabel(selectedOption, formatMessage);
48
50
  };
49
- var getInvalidDateRange = exports.getInvalidDateRange = function getInvalidDateRange(from, to) {
50
- if (!from && !to) {
51
+ var useInvalidDateRange = exports.useInvalidDateRange = function useInvalidDateRange(from, to) {
52
+ return (0, _react.useMemo)(function () {
53
+ if (!from && !to) {
54
+ return null;
55
+ }
56
+ var dateFrom = new Date("".concat(from).concat(from ? 'T00:00:00' : ''));
57
+ var dateTo = new Date("".concat(to).concat(to ? 'T00:00:00' : ''));
58
+ var now = new Date();
59
+ if (dateFrom > now) {
60
+ return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.dateRangeMessages.dateRangeCustomInvalidDateAfterToday);
61
+ }
62
+ if (dateFrom > dateTo) {
63
+ return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.dateRangeMessages.dateRangeCustomInvalidDateAfterEnd);
64
+ }
65
+ if (dateTo > now) {
66
+ return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.dateRangeMessages.dateRangeCustomInvalidToDateAfterToday);
67
+ }
51
68
  return null;
52
- }
53
- var dateFrom = new Date("".concat(from).concat(from ? 'T00:00:00' : ''));
54
- var dateTo = new Date("".concat(to).concat(to ? 'T00:00:00' : ''));
55
- var now = new Date();
56
- if (dateFrom > now) {
57
- return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.dateRangeMessages.dateRangeCustomInvalidDateAfterToday);
58
- }
59
- if (dateFrom > dateTo) {
60
- return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.dateRangeMessages.dateRangeCustomInvalidDateAfterEnd);
61
- }
62
- if (dateTo > now) {
63
- return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.dateRangeMessages.dateRangeCustomInvalidToDateAfterToday);
64
- }
65
- return null;
69
+ }, [from, to]);
66
70
  };
@@ -71,9 +71,14 @@ var useBasicFilterHydration = exports.useBasicFilterHydration = function useBasi
71
71
  return _ref.apply(this, arguments);
72
72
  };
73
73
  }(), [getUsersFromAccountIDs]);
74
+ var reset = (0, _react.useCallback)(function () {
75
+ setStatus('empty');
76
+ setUsers([]);
77
+ }, []);
74
78
  return {
75
79
  hydrateUsersFromAccountIds: hydrateUsersFromAccountIds,
76
80
  status: status,
77
- users: users
81
+ users: users,
82
+ reset: reset
78
83
  };
79
84
  };
@@ -5,11 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
10
  var _react = _interopRequireDefault(require("react"));
10
11
  var _primitives = require("@atlaskit/primitives");
11
12
  var _dateRangePicker = require("./filters/date-range-picker");
12
13
  var _editedOrCreatedBy = _interopRequireDefault(require("./filters/edited-or-created-by"));
14
+ var _types = require("./types");
15
+ 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; }
16
+ 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; }
13
17
  var basicFilterContainerStyles = (0, _primitives.xcss)({
14
18
  paddingLeft: 'space.100'
15
19
  });
@@ -25,8 +29,11 @@ var BasicFilterContainer = function BasicFilterContainer(_ref) {
25
29
  _ref3 = (0, _slicedToArray2.default)(_ref2, 1),
26
30
  lastModifiedValue = _ref3[0];
27
31
  var lastModifiedSelection = (lastModifiedValue === null || lastModifiedValue === void 0 ? void 0 : lastModifiedValue.optionType) === 'dateRange' ? lastModifiedValue : undefined;
28
- var onDateRangePickerChange = function onDateRangePickerChange(filterType, updatedOption) {
29
- onChange(filterType, [updatedOption]);
32
+ var onDateRangePickerChange = function onDateRangePickerChange(updatedOption) {
33
+ onChange(_types.CLOLBasicFilters.lastModified, _objectSpread({
34
+ optionType: 'dateRange',
35
+ label: updatedOption.value
36
+ }, updatedOption));
30
37
  };
31
38
  return /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
32
39
  xcss: basicFilterContainerStyles,
@@ -16,7 +16,6 @@ var _basicSearchInput = require("../../common/modal/basic-search-input");
16
16
  var _constants = require("../../common/modal/popup-select/constants");
17
17
  var _basicFilters = _interopRequireDefault(require("../basic-filters"));
18
18
  var _useBasicFilterHydration = require("../basic-filters/hooks/useBasicFilterHydration");
19
- var _types = require("../basic-filters/types");
20
19
  var _messages = require("./messages");
21
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -26,24 +25,43 @@ var basicSearchInputContainerStyles = (0, _primitives.xcss)({
26
25
  flexGrow: 1
27
26
  });
28
27
  var ConfluenceSearchContainer = function ConfluenceSearchContainer(_ref) {
29
- var cloudId = _ref.cloudId,
30
- initialSearchValue = _ref.initialSearchValue,
31
- initialFilterSelection = _ref.initialFilterSelection,
28
+ var _ref$parameters = _ref.parameters,
29
+ cloudId = _ref$parameters.cloudId,
30
+ initialSearchValue = _ref$parameters.searchString,
31
+ lastModified = _ref$parameters.lastModified,
32
+ lastModifiedFrom = _ref$parameters.lastModifiedFrom,
33
+ lastModifiedTo = _ref$parameters.lastModifiedTo,
34
+ contributorAccountIds = _ref$parameters.contributorAccountIds,
32
35
  isSearching = _ref.isSearching,
33
36
  onSearch = _ref.onSearch;
34
37
  var _useBasicFilterHydrat = (0, _useBasicFilterHydration.useBasicFilterHydration)(),
35
38
  hydrateUsersFromAccountIds = _useBasicFilterHydrat.hydrateUsersFromAccountIds,
36
39
  users = _useBasicFilterHydrat.users,
37
- status = _useBasicFilterHydrat.status;
40
+ status = _useBasicFilterHydrat.status,
41
+ resetHydrationHook = _useBasicFilterHydrat.reset;
38
42
  var currentCloudId = (0, _react.useRef)(cloudId);
39
- var _useState = (0, _react.useState)(initialSearchValue !== null && initialSearchValue !== void 0 ? initialSearchValue : ''),
43
+ var _useState = (0, _react.useState)(contributorAccountIds !== null && contributorAccountIds !== void 0 ? contributorAccountIds : []),
40
44
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
41
- searchBarSearchString = _useState2[0],
42
- setSearchBarSearchString = _useState2[1];
43
- var _useState3 = (0, _react.useState)({}),
45
+ initialContributorAccountIds = _useState2[0],
46
+ setInitialContributorAccountIds = _useState2[1];
47
+ var _useState3 = (0, _react.useState)(initialSearchValue !== null && initialSearchValue !== void 0 ? initialSearchValue : ''),
44
48
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
45
- filterSelections = _useState4[0],
46
- setFilterSelections = _useState4[1];
49
+ searchBarSearchString = _useState4[0],
50
+ setSearchBarSearchString = _useState4[1];
51
+ var _useState5 = (0, _react.useState)(function () {
52
+ return lastModified ? {
53
+ lastModified: [{
54
+ optionType: 'dateRange',
55
+ label: lastModified,
56
+ value: lastModified,
57
+ from: lastModifiedFrom,
58
+ to: lastModifiedTo
59
+ }]
60
+ } : {};
61
+ }),
62
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
63
+ filterSelections = _useState6[0],
64
+ setFilterSelections = _useState6[1];
47
65
  var handleSearchChange = (0, _react.useCallback)(function (e) {
48
66
  var rawSearch = e.currentTarget.value;
49
67
  setSearchBarSearchString(rawSearch);
@@ -54,7 +72,7 @@ var ConfluenceSearchContainer = function ConfluenceSearchContainer(_ref) {
54
72
  _useDebouncedCallback2 = (0, _slicedToArray2.default)(_useDebouncedCallback, 1),
55
73
  debouncedBasicFilterSelectionChange = _useDebouncedCallback2[0];
56
74
  var handleBasicFilterSelectionChange = (0, _react.useCallback)(function (filterType, options) {
57
- var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, (0, _defineProperty2.default)({}, filterType, options));
75
+ var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, (0, _defineProperty2.default)({}, filterType, Array.isArray(options) ? options : [options]));
58
76
  setFilterSelections(updatedSelection);
59
77
  debouncedBasicFilterSelectionChange(updatedSelection);
60
78
  }, [debouncedBasicFilterSelectionChange, filterSelections]);
@@ -63,11 +81,13 @@ var ConfluenceSearchContainer = function ConfluenceSearchContainer(_ref) {
63
81
  // https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/pull-requests/82725/overview?commentId=6827913
64
82
  (0, _react.useEffect)(function () {
65
83
  if (currentCloudId.current !== cloudId) {
84
+ setInitialContributorAccountIds([]);
85
+ resetHydrationHook();
66
86
  setSearchBarSearchString('');
67
87
  setFilterSelections({});
68
88
  currentCloudId.current = cloudId;
69
89
  }
70
- }, [cloudId]);
90
+ }, [cloudId, resetHydrationHook]);
71
91
  var showBasicFilters = (0, _react.useMemo)(function () {
72
92
  if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.datasource.show-clol-basic-filters')) {
73
93
  return true;
@@ -75,19 +95,19 @@ var ConfluenceSearchContainer = function ConfluenceSearchContainer(_ref) {
75
95
  return false;
76
96
  }, []);
77
97
  (0, _react.useEffect)(function () {
78
- var accountIds = initialFilterSelection === null || initialFilterSelection === void 0 ? void 0 : initialFilterSelection[_types.CLOLBasicFilters.editedOrCreatedBy];
79
- var hasAccountIds = accountIds && accountIds.length > 0;
98
+ var hasAccountIds = (initialContributorAccountIds === null || initialContributorAccountIds === void 0 ? void 0 : initialContributorAccountIds.length) > 0;
80
99
  if (hasAccountIds && status === 'empty' && showBasicFilters) {
81
- hydrateUsersFromAccountIds(accountIds);
100
+ hydrateUsersFromAccountIds(initialContributorAccountIds);
82
101
  }
83
- }, [hydrateUsersFromAccountIds, initialFilterSelection, showBasicFilters, status]);
102
+ }, [hydrateUsersFromAccountIds, initialContributorAccountIds, showBasicFilters, status]);
84
103
  (0, _react.useEffect)(function () {
85
104
  if (status === 'resolved') {
86
105
  setFilterSelections({
106
+ lastModified: filterSelections.lastModified,
87
107
  editedOrCreatedBy: users
88
108
  });
89
109
  }
90
- }, [users, status]);
110
+ }, [users, status, filterSelections.lastModified]);
91
111
  return /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
92
112
  alignItems: "center",
93
113
  xcss: basicSearchInputContainerStyles
@@ -125,28 +125,16 @@ var PlainConfluenceSearchConfigModal = exports.PlainConfluenceSearchConfigModal
125
125
  var searchCount = (0, _react.useRef)(0);
126
126
  var userInteractionActions = (0, _react.useRef)(new Set());
127
127
  var visibleColumnCount = (0, _react.useRef)((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
128
-
129
- // TODO: further refactoring in EDM-9573
130
- // https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/pull-requests/82725/overview?commentId=6829210
131
128
  var parameters = (0, _react.useMemo)(function () {
132
- return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, initialParameters), {}, {
133
- cloudId: cloudId,
134
- searchString: searchString
135
- }, ((initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.lastModified) || (lastModified === null || lastModified === void 0 ? void 0 : lastModified.value)) && {
136
- lastModified: lastModified === null || lastModified === void 0 ? void 0 : lastModified.value
137
- }), ((initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.lastModifiedFrom) || (lastModified === null || lastModified === void 0 ? void 0 : lastModified.from)) && {
138
- lastModifiedFrom: lastModified === null || lastModified === void 0 ? void 0 : lastModified.from
139
- }), ((initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.lastModifiedTo) || (lastModified === null || lastModified === void 0 ? void 0 : lastModified.to)) && {
140
- lastModifiedTo: lastModified === null || lastModified === void 0 ? void 0 : lastModified.to
141
- }), ((initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.contributorAccountIds) || (contributorAccountIds === null || contributorAccountIds === void 0 ? void 0 : contributorAccountIds.length) > 0) && {
142
- contributorAccountIds: contributorAccountIds
129
+ return _objectSpread(_objectSpread({}, initialParameters), {}, {
130
+ cloudId: cloudId || '',
131
+ searchString: searchString,
132
+ lastModified: lastModified === null || lastModified === void 0 ? void 0 : lastModified.value,
133
+ lastModifiedFrom: lastModified === null || lastModified === void 0 ? void 0 : lastModified.from,
134
+ lastModifiedTo: lastModified === null || lastModified === void 0 ? void 0 : lastModified.to,
135
+ contributorAccountIds: (contributorAccountIds === null || contributorAccountIds === void 0 ? void 0 : contributorAccountIds.length) > 0 ? contributorAccountIds : undefined
143
136
  });
144
137
  }, [initialParameters, cloudId, searchString, lastModified, contributorAccountIds]);
145
- var initialFilterSelection = (0, _react.useMemo)(function () {
146
- return {
147
- editedOrCreatedBy: (initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.contributorAccountIds) || []
148
- };
149
- }, [initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.contributorAccountIds]);
150
138
  var isParametersSet = (0, _react.useMemo)(function () {
151
139
  return !!cloudId && Object.values(parameters !== null && parameters !== void 0 ? parameters : {}).filter(function (v) {
152
140
  return v !== undefined;
@@ -468,9 +456,9 @@ var PlainConfluenceSearchConfigModal = exports.PlainConfluenceSearchConfigModal
468
456
  userInteractionActions.current.add(_types.DatasourceAction.QUERY_UPDATED);
469
457
  if (filters) {
470
458
  var editedOrCreatedBy = filters.editedOrCreatedBy,
471
- _lastModified = filters.lastModified;
472
- if (_lastModified) {
473
- var updatedDateRangeOption = _lastModified.find(function (range) {
459
+ lastModifiedList = filters.lastModified;
460
+ if (lastModifiedList) {
461
+ var updatedDateRangeOption = lastModifiedList.find(function (range) {
474
462
  return range.value;
475
463
  });
476
464
  if ((updatedDateRangeOption === null || updatedDateRangeOption === void 0 ? void 0 : updatedDateRangeOption.optionType) === 'dateRange') {
@@ -522,11 +510,9 @@ var PlainConfluenceSearchConfigModal = exports.PlainConfluenceSearchConfigModal
522
510
  })), (0, _react2.jsx)(_modalDialog.ModalBody, null, !hasNoConfluenceSites ? (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_primitives.Box, {
523
511
  xcss: inputContainerStyles
524
512
  }, (0, _react2.jsx)(_confluenceSearchContainer.default, {
525
- cloudId: cloudId,
526
513
  isSearching: status === 'loading',
527
514
  onSearch: onSearch,
528
- initialSearchValue: initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.searchString,
529
- initialFilterSelection: initialFilterSelection
515
+ parameters: parameters
530
516
  })), currentViewMode === 'inline' ? renderInlineLinkModalContent() : renderTableModalContent()) : (0, _react2.jsx)(_noInstances.NoInstancesView, {
531
517
  title: _messages.confluenceSearchModalMessages.noAccessToConfluenceSitesTitle,
532
518
  description: _messages.confluenceSearchModalMessages.noAccessToConfluenceSitesDescription,
@@ -37,8 +37,7 @@ var LinkRenderType = function LinkRenderType(_ref) {
37
37
  }, [style]);
38
38
  var anchor = (0, _react.useMemo)(function () {
39
39
  return /*#__PURE__*/_react.default.createElement(_hoverCard.HoverCard, {
40
- url: url,
41
- showServerActions: true
40
+ url: url
42
41
  }, /*#__PURE__*/_react.default.createElement(_linkUrl.default, {
43
42
  href: url,
44
43
  style: _objectSpread(_objectSpread({}, linkStyle), {}, {