@atlaskit/link-datasource 1.27.4 → 1.28.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 (74) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/ui/common/modal/popup-select/formatOptionLabel.js +7 -1
  3. package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/PopupComponent.js +19 -0
  4. package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +89 -0
  5. package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/messages.js +49 -0
  6. package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.js +75 -0
  7. package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.js +32 -0
  8. package/dist/cjs/ui/confluence-search-modal/basic-filters/index.js +5 -3
  9. package/dist/cjs/ui/confluence-search-modal/basic-filters/types.js +11 -0
  10. package/dist/cjs/ui/confluence-search-modal/confluence-search-container/index.js +16 -1
  11. package/dist/cjs/ui/confluence-search-modal/modal/index.js +22 -10
  12. package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +1 -0
  13. package/dist/cjs/ui/table-footer/index.js +8 -2
  14. package/dist/cjs/ui/table-footer/messages.js +5 -0
  15. package/dist/cjs/ui/table-footer/powered-by-jsm-assets/index.js +53 -0
  16. package/dist/es2019/ui/common/modal/popup-select/formatOptionLabel.js +4 -1
  17. package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/PopupComponent.js +7 -0
  18. package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +68 -0
  19. package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/messages.js +43 -0
  20. package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.js +66 -0
  21. package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.js +26 -0
  22. package/dist/es2019/ui/confluence-search-modal/basic-filters/index.js +7 -2
  23. package/dist/es2019/ui/confluence-search-modal/basic-filters/types.js +5 -0
  24. package/dist/es2019/ui/confluence-search-modal/confluence-search-container/index.js +13 -1
  25. package/dist/es2019/ui/confluence-search-modal/modal/index.js +11 -3
  26. package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +1 -0
  27. package/dist/es2019/ui/table-footer/index.js +7 -1
  28. package/dist/es2019/ui/table-footer/messages.js +5 -0
  29. package/dist/es2019/ui/table-footer/powered-by-jsm-assets/index.js +45 -0
  30. package/dist/esm/ui/common/modal/popup-select/formatOptionLabel.js +4 -1
  31. package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/PopupComponent.js +9 -0
  32. package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +79 -0
  33. package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/messages.js +43 -0
  34. package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.js +68 -0
  35. package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.js +25 -0
  36. package/dist/esm/ui/confluence-search-modal/basic-filters/index.js +5 -3
  37. package/dist/esm/ui/confluence-search-modal/basic-filters/types.js +5 -0
  38. package/dist/esm/ui/confluence-search-modal/confluence-search-container/index.js +16 -1
  39. package/dist/esm/ui/confluence-search-modal/modal/index.js +22 -10
  40. package/dist/esm/ui/datasource-table-view/datasourceTableView.js +1 -0
  41. package/dist/esm/ui/table-footer/index.js +8 -2
  42. package/dist/esm/ui/table-footer/messages.js +5 -0
  43. package/dist/esm/ui/table-footer/powered-by-jsm-assets/index.js +46 -0
  44. package/dist/types/analytics/generated/analytics.types.d.ts +7 -0
  45. package/dist/types/ui/common/modal/popup-select/types.d.ts +6 -1
  46. package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/PopupComponent.d.ts +3 -0
  47. package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.d.ts +8 -0
  48. package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/messages.d.ts +42 -0
  49. package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.d.ts +31 -0
  50. package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.d.ts +10 -0
  51. package/dist/types/ui/confluence-search-modal/basic-filters/index.d.ts +4 -1
  52. package/dist/types/ui/confluence-search-modal/basic-filters/types.d.ts +20 -0
  53. package/dist/types/ui/confluence-search-modal/confluence-search-container/index.d.ts +2 -1
  54. package/dist/types/ui/confluence-search-modal/types.d.ts +2 -1
  55. package/dist/types/ui/table-footer/index.d.ts +2 -1
  56. package/dist/types/ui/table-footer/messages.d.ts +5 -0
  57. package/dist/types/ui/table-footer/powered-by-jsm-assets/index.d.ts +4 -0
  58. package/dist/types-ts4.5/analytics/generated/analytics.types.d.ts +7 -0
  59. package/dist/types-ts4.5/ui/common/modal/popup-select/types.d.ts +6 -1
  60. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/PopupComponent.d.ts +3 -0
  61. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.d.ts +8 -0
  62. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/messages.d.ts +42 -0
  63. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/styled.d.ts +31 -0
  64. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/trigger.d.ts +10 -0
  65. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/index.d.ts +4 -1
  66. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/types.d.ts +20 -0
  67. package/dist/types-ts4.5/ui/confluence-search-modal/confluence-search-container/index.d.ts +2 -1
  68. package/dist/types-ts4.5/ui/confluence-search-modal/types.d.ts +2 -1
  69. package/dist/types-ts4.5/ui/table-footer/index.d.ts +2 -1
  70. package/dist/types-ts4.5/ui/table-footer/messages.d.ts +5 -0
  71. package/dist/types-ts4.5/ui/table-footer/powered-by-jsm-assets/index.d.ts +4 -0
  72. package/examples-helpers/buildAssetsIssuesTable.tsx +71 -0
  73. package/examples-helpers/useAssetsTableProps.tsx +57 -0
  74. package/package.json +6 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 1.28.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#90515](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/90515) [`cc097687c554`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/cc097687c554) - [ux] Add Powered by Assets Label to the Assets LOL
8
+
3
9
  ## 1.27.4
4
10
 
5
11
  ### Patch Changes
@@ -1,15 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
+ var _react = _interopRequireWildcard(require("react"));
9
10
  var _avatar = _interopRequireDefault(require("@atlaskit/avatar"));
10
11
  var _peopleGroup = _interopRequireDefault(require("@atlaskit/icon/glyph/people-group"));
11
12
  var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
12
13
  var _primitives = require("@atlaskit/primitives");
14
+ 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); }
15
+ 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; }
13
16
  var commonLabelStyles = (0, _primitives.xcss)({
14
17
  overflow: 'hidden',
15
18
  textOverflow: 'ellipsis'
@@ -70,6 +73,9 @@ var AvatarOptionLabel = function AvatarOptionLabel(_ref3) {
70
73
  }, data.label));
71
74
  };
72
75
  var formatOptionLabel = function formatOptionLabel(data) {
76
+ if (data.optionType === 'defaultOption') {
77
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null);
78
+ }
73
79
  if (data.optionType === 'lozengeLabel') {
74
80
  return /*#__PURE__*/_react.default.createElement(LozengeOptionLabel, {
75
81
  data: data
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.PopupComponent = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _styled = require("./styled");
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; }
14
+ var PopupComponent = exports.PopupComponent = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
15
+ return /*#__PURE__*/_react.default.createElement(_styled.PopupComponentContainer, (0, _extends2.default)({}, props, {
16
+ "data-testId": 'confluence-search-datasource-popup-container',
17
+ ref: ref
18
+ }));
19
+ });
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DateRangePicker = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactIntlNext = require("react-intl-next");
12
+ var _popup = _interopRequireDefault(require("@atlaskit/popup"));
13
+ var _constants = require("@atlaskit/theme/constants");
14
+ var _types = require("../../types");
15
+ var _messages = require("./messages");
16
+ var _PopupComponent = require("./PopupComponent");
17
+ var _styled = require("./styled");
18
+ var _trigger = require("./trigger");
19
+ 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); }
20
+ 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; }
21
+ var lastModifiedValues = ['anyTime', 'today', 'yesterday', 'past7Days', 'past30Days', 'pastYear', 'custom'];
22
+ var defaultOptionValue = 'anyTime';
23
+ var filterName = _types.CLOLBasicFilters.lastModified;
24
+ var DateRangePicker = exports.DateRangePicker = function DateRangePicker(_ref) {
25
+ var onSelectionChange = _ref.onSelectionChange;
26
+ var _useState = (0, _react.useState)(null),
27
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
28
+ currentOption = _useState2[0],
29
+ setCurrentOption = _useState2[1];
30
+ var _useState3 = (0, _react.useState)(false),
31
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
32
+ isPickerOpen = _useState4[0],
33
+ setIsPickerOpen = _useState4[1];
34
+ var _useIntl = (0, _reactIntlNext.useIntl)(),
35
+ formatMessage = _useIntl.formatMessage;
36
+ var onClickFilterOption = (0, _react.useCallback)(function (option) {
37
+ setCurrentOption(option);
38
+ setIsPickerOpen(false);
39
+ onSelectionChange(filterName, [{
40
+ optionType: 'defaultOption',
41
+ label: option,
42
+ value: option
43
+ }]);
44
+ }, [onSelectionChange]);
45
+ var handleTogglePopup = (0, _react.useCallback)(function () {
46
+ setIsPickerOpen(!isPickerOpen);
47
+ }, [isPickerOpen]);
48
+ return /*#__PURE__*/_react.default.createElement(_popup.default, {
49
+ isOpen: isPickerOpen,
50
+ onClose: handleTogglePopup,
51
+ popupComponent: _PopupComponent.PopupComponent,
52
+ zIndex: _constants.layers.modal(),
53
+ content: function content() {
54
+ return /*#__PURE__*/_react.default.createElement(_styled.CustomDropdown, null, lastModifiedValues.map(function (option) {
55
+ return /*#__PURE__*/_react.default.createElement(_styled.CustomDropdownItem, {
56
+ key: option
57
+ //want to show Anytime as selected if none of the other options are selected
58
+ ,
59
+ isSelected: currentOption ? option === currentOption : option === defaultOptionValue,
60
+ onClick: function onClick() {
61
+ return onClickFilterOption(option);
62
+ }
63
+ }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, getCurrentOptionLabel(option)));
64
+ }));
65
+ },
66
+ placement: "bottom-start",
67
+ trigger: function trigger(triggerProps) {
68
+ return /*#__PURE__*/_react.default.createElement(_trigger.PopupTrigger, {
69
+ triggerProps: triggerProps,
70
+ optionSelected: !!currentOption,
71
+ label: formatMessage(_messages.dateRangeMessages.dateRangeTitle),
72
+ selectedLabel: formatMessage(getCurrentOptionLabel(currentOption)),
73
+ onClickButton: handleTogglePopup
74
+ });
75
+ }
76
+ });
77
+ };
78
+ var getCurrentOptionLabel = function getCurrentOptionLabel(option) {
79
+ var mapping = {
80
+ anyTime: 'dateRangeAnyTime',
81
+ today: 'dateRangeToday',
82
+ yesterday: 'dateRangeYesterday',
83
+ past7Days: 'dateRangeLastWeek',
84
+ past30Days: 'dateRangeLastMonth',
85
+ pastYear: 'dateRangeLastYear',
86
+ custom: 'dateRangeCustom'
87
+ };
88
+ return option ? _messages.dateRangeMessages[mapping[option]] : _messages.dateRangeMessages[mapping['anyTime']];
89
+ };
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.dateRangeMessages = void 0;
7
+ var _reactIntlNext = require("react-intl-next");
8
+ var dateRangeMessages = exports.dateRangeMessages = (0, _reactIntlNext.defineMessages)({
9
+ dateRangeTitle: {
10
+ id: 'linkDataSource.confluence-search.configmodal.date.range.title',
11
+ defaultMessage: 'Last updated',
12
+ description: 'Filter by the date content was modified'
13
+ },
14
+ dateRangeAnyTime: {
15
+ id: 'linkDataSource.confluence-search.configmodal.date.range.any.time',
16
+ defaultMessage: 'Anytime',
17
+ description: 'Option to show content from any time'
18
+ },
19
+ dateRangeToday: {
20
+ id: 'linkDataSource.confluence-search.configmodal.date.range.today',
21
+ defaultMessage: 'Today',
22
+ description: 'Date range of content modified today'
23
+ },
24
+ dateRangeYesterday: {
25
+ id: 'linkDataSource.confluence-search.configmodal.date.range.yesterday',
26
+ defaultMessage: 'Yesterday',
27
+ description: 'Date range of content modified yesterday'
28
+ },
29
+ dateRangeLastWeek: {
30
+ id: 'linkDataSource.confluence-search.configmodal.date.range.last.week',
31
+ defaultMessage: 'Past 7 days',
32
+ description: 'Date range of content modified in the last 7 days'
33
+ },
34
+ dateRangeLastMonth: {
35
+ id: 'linkDataSource.confluence-search.configmodal.date.range.last.month',
36
+ defaultMessage: 'Past 30 days',
37
+ description: 'Date range of content modified in the last 30 days'
38
+ },
39
+ dateRangeLastYear: {
40
+ id: 'linkDataSource.confluence-search.configmodal.date.range.last.year',
41
+ defaultMessage: 'Past year',
42
+ description: 'Date range of content modified in the last 365 days'
43
+ },
44
+ dateRangeCustom: {
45
+ id: 'linkDataSource.confluence-search.configmodal.date.range.custom',
46
+ defaultMessage: 'Custom',
47
+ description: 'Custom date range'
48
+ }
49
+ });
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.SelectDateRangeButton = exports.PopupComponentContainer = exports.DateRangeErrorMessage = exports.DatePickersWrapper = exports.CustomDropdownItem = exports.CustomDropdown = exports.CustomDateWrapper = void 0;
8
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
+ var _colors = require("@atlaskit/theme/colors");
10
+ var PopupComponentContainer = exports.PopupComponentContainer = _styled.default.div({
11
+ boxSizing: 'border-box',
12
+ display: 'block',
13
+ flex: '1 1 auto',
14
+ overflow: 'visible',
15
+ background: "var(--ds-background-input, ".concat(_colors.N0, ")"),
16
+ ':focus': {
17
+ outline: 'none'
18
+ },
19
+ 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))"
20
+ });
21
+ var CustomDropdown = exports.CustomDropdown = _styled.default.div({
22
+ width: '360px',
23
+ background: "var(--ds-background-input, ".concat(_colors.N0, ")"),
24
+ borderRadius: '3px',
25
+ 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))",
26
+ zIndex: '900'
27
+ });
28
+ var CustomDropdownItem = exports.CustomDropdownItem = _styled.default.div(function (props) {
29
+ return {
30
+ height: '36px',
31
+ width: '100%',
32
+ display: 'flex',
33
+ justifyContent: 'flex-start',
34
+ alignItems: 'center',
35
+ paddingLeft: props.isSelected ? '15px' : '16px',
36
+ boxSizing: 'border-box',
37
+ color: props.isSelected ? "var(--ds-text-selected, ".concat(_colors.B400, ")") : 'inherit',
38
+ background: props.isSelected ? "var(--ds-background-accent-blue-subtlest, ".concat(_colors.B50, ")") : 'transparent',
39
+ borderLeft: props.isSelected ? "2px solid ".concat("var(--ds-text-selected, ".concat(_colors.B400, ")")) : 'none',
40
+ '&:hover': {
41
+ background: props.isSelected ? "var(--ds-background-accent-blue-subtlest, ".concat(_colors.B50, ")") : "var(--ds-background-input-hovered, ".concat(_colors.N20, ")"),
42
+ cursor: 'default'
43
+ }
44
+ };
45
+ });
46
+ var CustomDateWrapper = exports.CustomDateWrapper = _styled.default.div({
47
+ padding: "var(--ds-space-150, 12px)",
48
+ boxSizing: 'border-box'
49
+ });
50
+ var DatePickersWrapper = exports.DatePickersWrapper = _styled.default.div({
51
+ display: 'flex',
52
+ justifyContent: 'space-between',
53
+ alignItems: 'center',
54
+ width: '100%'
55
+ });
56
+ var SelectDateRangeButton = exports.SelectDateRangeButton = _styled.default.button({
57
+ background: "var(--ds-background-accent-gray-subtler, ".concat(_colors.N20, ")"),
58
+ border: 'none',
59
+ font: 'inherit',
60
+ width: '70px',
61
+ height: '40px',
62
+ marginTop: "var(--ds-space-150, 12px)",
63
+ borderRadius: '3px',
64
+ '&:hover': {
65
+ background: "var(--ds-background-accent-gray-subtler, ".concat(_colors.N30, ")"),
66
+ cursor: 'pointer'
67
+ }
68
+ });
69
+ var DateRangeErrorMessage = exports.DateRangeErrorMessage = _styled.default.div({
70
+ display: 'flex',
71
+ lineHeight: 1.3333,
72
+ marginTop: "var(--ds-space-050, 4px)",
73
+ fontSize: '12px',
74
+ color: "var(--ds-text-danger, ".concat(_colors.R400, ")")
75
+ });
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.PopupTrigger = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
11
+ var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
12
+ var PopupTrigger = exports.PopupTrigger = function PopupTrigger(_ref) {
13
+ var triggerProps = _ref.triggerProps,
14
+ optionSelected = _ref.optionSelected,
15
+ label = _ref.label,
16
+ selectedLabel = _ref.selectedLabel,
17
+ onClickButton = _ref.onClickButton;
18
+ return /*#__PURE__*/_react.default.createElement(_standardButton.default, (0, _extends2.default)({}, triggerProps, {
19
+ testId: 'confluence-search-modal--date-range-button',
20
+ onClick: onClickButton,
21
+ isSelected: optionSelected,
22
+ iconAfter: /*#__PURE__*/_react.default.createElement("span", {
23
+ style: {
24
+ display: 'flex',
25
+ alignItems: 'center'
26
+ }
27
+ }, /*#__PURE__*/_react.default.createElement(_chevronDown.default, {
28
+ size: "medium",
29
+ label: ""
30
+ }))
31
+ }), label, selectedLabel ? ": ".concat(selectedLabel) : '');
32
+ };
@@ -5,18 +5,20 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
9
8
  var _react = _interopRequireDefault(require("react"));
10
9
  var _primitives = require("@atlaskit/primitives");
10
+ var _dateRangePicker = require("./filters/date-range-picker");
11
11
  var basicFilterContainerStyles = (0, _primitives.xcss)({
12
12
  paddingLeft: 'space.100'
13
13
  });
14
14
  var BasicFilterContainer = function BasicFilterContainer(_ref) {
15
- (0, _objectDestructuringEmpty2.default)(_ref);
15
+ var onChange = _ref.onChange;
16
16
  return /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
17
17
  xcss: basicFilterContainerStyles,
18
18
  gap: "space.100",
19
19
  testId: "clol-basic-filter-container"
20
- }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
20
+ }, /*#__PURE__*/_react.default.createElement(_dateRangePicker.DateRangePicker, {
21
+ onSelectionChange: onChange
22
+ }), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
21
23
  };
22
24
  var _default = exports.default = BasicFilterContainer;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CLOLBasicFilters = void 0;
7
+ var CLOLBasicFilters = exports.CLOLBasicFilters = /*#__PURE__*/function (CLOLBasicFilters) {
8
+ CLOLBasicFilters["editedOrCreatedBy"] = "editedOrCreatedBy";
9
+ CLOLBasicFilters["lastModified"] = "lastModified";
10
+ return CLOLBasicFilters;
11
+ }({});
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
@@ -15,6 +16,8 @@ var _basicFilters = _interopRequireDefault(require("../basic-filters"));
15
16
  var _messages = require("./messages");
16
17
  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); }
17
18
  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; }
19
+ 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; }
20
+ 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; }
18
21
  var basicSearchInputContainerStyles = (0, _primitives.xcss)({
19
22
  flexGrow: 1
20
23
  });
@@ -28,6 +31,10 @@ var ConfluenceSearchContainer = function ConfluenceSearchContainer(_ref) {
28
31
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
29
32
  searchBarSearchString = _useState2[0],
30
33
  setSearchBarSearchString = _useState2[1];
34
+ var _useState3 = (0, _react.useState)({}),
35
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
36
+ filterSelections = _useState4[0],
37
+ setFilterSelections = _useState4[1];
31
38
  var handleSearchChange = (0, _react.useCallback)(function (e) {
32
39
  var rawSearch = e.currentTarget.value;
33
40
  setSearchBarSearchString(rawSearch);
@@ -41,6 +48,12 @@ var ConfluenceSearchContainer = function ConfluenceSearchContainer(_ref) {
41
48
  currentCloudId.current = cloudId;
42
49
  }
43
50
  }, [cloudId]);
51
+ var handleBasicFilterSelectionChange = (0, _react.useCallback)(function (filterType, options) {
52
+ var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, (0, _defineProperty2.default)({}, filterType, options));
53
+ setFilterSelections(updatedSelection);
54
+ //TODO: move to debounce fn in https://product-fabric.atlassian.net/browse/EDM-9485
55
+ onSearch(searchBarSearchString, updatedSelection);
56
+ }, [filterSelections, onSearch, searchBarSearchString]);
44
57
  var showBasicFilters = (0, _react.useMemo)(function () {
45
58
  if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.datasource.show-clol-basic-filters')) {
46
59
  return true;
@@ -58,6 +71,8 @@ var ConfluenceSearchContainer = function ConfluenceSearchContainer(_ref) {
58
71
  searchTerm: searchBarSearchString,
59
72
  placeholder: _messages.searchMessages.searchLabel,
60
73
  fullWidth: !showBasicFilters
61
- }), showBasicFilters && /*#__PURE__*/_react.default.createElement(_basicFilters.default, null));
74
+ }), showBasicFilters && /*#__PURE__*/_react.default.createElement(_basicFilters.default, {
75
+ onChange: handleBasicFilterSelectionChange
76
+ }));
62
77
  };
63
78
  var _default = exports.default = ConfluenceSearchContainer;
@@ -108,6 +108,10 @@ var PlainConfluenceSearchConfigModal = exports.PlainConfluenceSearchConfigModal
108
108
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
109
109
  visibleColumnKeys = _useState10[0],
110
110
  setVisibleColumnKeys = _useState10[1];
111
+ var _useState11 = (0, _react.useState)(),
112
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
113
+ lastModified = _useState12[0],
114
+ setLastModified = _useState12[1];
111
115
 
112
116
  // analytics related parameters
113
117
  var searchCount = (0, _react.useRef)(0);
@@ -120,8 +124,10 @@ var PlainConfluenceSearchConfigModal = exports.PlainConfluenceSearchConfigModal
120
124
  return _objectSpread(_objectSpread({}, initialParameters), {}, {
121
125
  cloudId: cloudId,
122
126
  searchString: searchString
127
+ }, lastModified && {
128
+ lastModified: lastModified
123
129
  });
124
- }, [cloudId, initialParameters, searchString /** Add more parameters when more filters are added */]);
130
+ }, [cloudId, lastModified, initialParameters, searchString /** Add more parameters when more filters are added */]);
125
131
  var isParametersSet = (0, _react.useMemo)(function () {
126
132
  return !!cloudId && Object.values(parameters !== null && parameters !== void 0 ? parameters : {}).filter(function (v) {
127
133
  return v !== undefined;
@@ -227,17 +233,17 @@ var PlainConfluenceSearchConfigModal = exports.PlainConfluenceSearchConfigModal
227
233
  setVisibleColumnKeys(newVisibleColumnKeys);
228
234
  }, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
229
235
  var siteSelectorLabel = availableSites && availableSites.length > 1 ? _messages.confluenceSearchModalMessages.insertIssuesTitleManySites : _messages.confluenceSearchModalMessages.insertIssuesTitle;
230
- var _useState11 = (0, _react.useState)(initialColumnCustomSizes),
231
- _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
232
- columnCustomSizes = _useState12[0],
233
- setColumnCustomSizes = _useState12[1];
236
+ var _useState13 = (0, _react.useState)(initialColumnCustomSizes),
237
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
238
+ columnCustomSizes = _useState14[0],
239
+ setColumnCustomSizes = _useState14[1];
234
240
  var onColumnResize = (0, _react.useCallback)(function (key, width) {
235
241
  setColumnCustomSizes(_objectSpread(_objectSpread({}, columnCustomSizes), {}, (0, _defineProperty2.default)({}, key, width)));
236
242
  }, [columnCustomSizes]);
237
- var _useState13 = (0, _react.useState)(initialWrappedColumnKeys),
238
- _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
239
- wrappedColumnKeys = _useState14[0],
240
- setWrappedColumnKeys = _useState14[1];
243
+ var _useState15 = (0, _react.useState)(initialWrappedColumnKeys),
244
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
245
+ wrappedColumnKeys = _useState16[0],
246
+ setWrappedColumnKeys = _useState16[1];
241
247
  var onWrappedColumnChange = (0, _react.useCallback)(function (key, isWrapped) {
242
248
  var set = new Set(wrappedColumnKeys);
243
249
  if (isWrapped) {
@@ -416,9 +422,15 @@ var PlainConfluenceSearchConfigModal = exports.PlainConfluenceSearchConfigModal
416
422
  userInteractionActions.current.add(_types.DatasourceAction.DISPLAY_VIEW_CHANGED);
417
423
  setCurrentViewMode(selectedMode);
418
424
  };
419
- var onSearch = (0, _react.useCallback)(function (newSearchString) {
425
+ var onSearch = (0, _react.useCallback)(function (newSearchString, filters) {
420
426
  searchCount.current++;
421
427
  userInteractionActions.current.add(_types.DatasourceAction.QUERY_UPDATED);
428
+ if (filters !== null && filters !== void 0 && filters.lastModified) {
429
+ var lastModifiedValue = filters.lastModified.find(function (range) {
430
+ return range.value;
431
+ });
432
+ setLastModified(lastModifiedValue === null || lastModifiedValue === void 0 ? void 0 : lastModifiedValue.value);
433
+ }
422
434
  setSearchString(newSearchString);
423
435
  reset({
424
436
  shouldForceRequest: true
@@ -178,6 +178,7 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
178
178
  testId: "datasource-table-view-skeleton",
179
179
  isCompact: true
180
180
  }), (0, _react2.jsx)(_tableFooter.TableFooter, {
181
+ datasourceId: datasourceId,
181
182
  itemCount: isDataReady ? totalCount : undefined,
182
183
  onRefresh: onRefresh,
183
184
  isLoading: !isDataReady || status === 'loading',
@@ -14,9 +14,12 @@ var _reactIntlNext = require("react-intl-next");
14
14
  var _button = _interopRequireDefault(require("@atlaskit/button"));
15
15
  var _heading = _interopRequireDefault(require("@atlaskit/heading"));
16
16
  var _refresh = _interopRequireDefault(require("@atlaskit/icon/glyph/refresh"));
17
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
18
  var _linkUrl = _interopRequireDefault(require("@atlaskit/smart-card/link-url"));
18
19
  var _colors = require("@atlaskit/theme/colors");
20
+ var _assetsModal = require("../assets-modal");
19
21
  var _messages = require("./messages");
22
+ var _poweredByJsmAssets = require("./powered-by-jsm-assets");
20
23
  var _syncInfo = require("./sync-info");
21
24
  /** @jsx jsx */
22
25
 
@@ -49,7 +52,8 @@ var SyncTextWrapper = _styled.default.div({
49
52
  fontSize: '12px'
50
53
  });
51
54
  var TableFooter = exports.TableFooter = function TableFooter(_ref) {
52
- var itemCount = _ref.itemCount,
55
+ var datasourceId = _ref.datasourceId,
56
+ itemCount = _ref.itemCount,
53
57
  onRefresh = _ref.onRefresh,
54
58
  isLoading = _ref.isLoading,
55
59
  url = _ref.url;
@@ -88,7 +92,9 @@ var TableFooter = exports.TableFooter = function TableFooter(_ref) {
88
92
  values: {
89
93
  itemCount: itemCount
90
94
  }
91
- }))))), (0, _react2.jsx)(SyncWrapper, null, onRefresh && (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(SyncTextWrapper, {
95
+ }))))), (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.datasource-assets_objects_add_jsm_promotional_tag') && datasourceId === _assetsModal.ASSETS_LIST_OF_LINKS_DATASOURCE_ID ? (0, _react2.jsx)(_poweredByJsmAssets.PoweredByJSMAssets, {
96
+ text: intl.formatMessage(_messages.footerMessages.powerByJSM)
97
+ }) : null, (0, _react2.jsx)(SyncWrapper, null, onRefresh && (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(SyncTextWrapper, {
92
98
  "data-testid": "sync-text"
93
99
  }, isLoading ? (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.footerMessages.loadingText) : (0, _react2.jsx)(_syncInfo.SyncInfo, {
94
100
  lastSyncTime: lastSyncTime
@@ -20,5 +20,10 @@ var footerMessages = exports.footerMessages = (0, _reactIntlNext.defineMessages)
20
20
  id: 'linkDataSource.table-footer.refresh',
21
21
  description: 'Label for refresh icon',
22
22
  defaultMessage: 'Refresh'
23
+ },
24
+ powerByJSM: {
25
+ id: 'linkDataSource.table-footer.power-by-jsm',
26
+ description: 'Displayed on the issue like table footer to increase JSM Assets visibility',
27
+ defaultMessage: 'Powered by Assets in Jira Service Management'
23
28
  }
24
29
  });
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.PoweredByJSMAssets = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _logo = require("@atlaskit/logo");
10
+ var _primitives = require("@atlaskit/primitives");
11
+ var _analytics = require("../../../analytics");
12
+ var jsmTextStyles = (0, _primitives.xcss)({
13
+ fontSize: 'small',
14
+ color: 'color.text.subtle',
15
+ marginLeft: "var(--ds-space-075, 6px)",
16
+ ':hover': {
17
+ color: 'color.link.pressed'
18
+ }
19
+ });
20
+ var jsmContainerStyles = (0, _primitives.xcss)({
21
+ display: 'flex',
22
+ flexDirection: 'row-reverse'
23
+ });
24
+ var PoweredByJSMAssets = exports.PoweredByJSMAssets = function PoweredByJSMAssets(props) {
25
+ var ASSETS_LINK = '/jira/servicedesk/assets';
26
+ var _useDatasourceAnalyti = (0, _analytics.useDatasourceAnalyticsEvents)(),
27
+ fireEvent = _useDatasourceAnalyti.fireEvent;
28
+ return /*#__PURE__*/_react.default.createElement(_primitives.Box, {
29
+ xcss: jsmContainerStyles,
30
+ padding: "space.150"
31
+ }, /*#__PURE__*/_react.default.createElement("a", {
32
+ "data-testid": 'powered-by-jsm-assets-link',
33
+ onClick: function onClick() {
34
+ return fireEvent('ui.link.clicked.poweredBy', {
35
+ componentHierarchy: 'datasourceTable',
36
+ extensionKey: 'jsm-cmdb-gateway'
37
+ });
38
+ },
39
+ href: ASSETS_LINK,
40
+ rel: "noreferrer",
41
+ target: "_blank",
42
+ style: {
43
+ display: 'inline-flex',
44
+ alignItems: 'center'
45
+ }
46
+ }, /*#__PURE__*/_react.default.createElement(_logo.JiraServiceManagementIcon, {
47
+ size: "xsmall",
48
+ appearance: "brand",
49
+ label: props.text
50
+ }), /*#__PURE__*/_react.default.createElement(_primitives.Box, {
51
+ xcss: jsmTextStyles
52
+ }, props.text)));
53
+ };
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { Fragment } from 'react';
2
2
  import Avatar from '@atlaskit/avatar';
3
3
  import PeopleGroupIcon from '@atlaskit/icon/glyph/people-group';
4
4
  import Lozenge from '@atlaskit/lozenge';
@@ -68,6 +68,9 @@ const AvatarOptionLabel = ({
68
68
  }, data.label));
69
69
  };
70
70
  const formatOptionLabel = data => {
71
+ if (data.optionType === 'defaultOption') {
72
+ return /*#__PURE__*/React.createElement(Fragment, null);
73
+ }
71
74
  if (data.optionType === 'lozengeLabel') {
72
75
  return /*#__PURE__*/React.createElement(LozengeOptionLabel, {
73
76
  data: data
@@ -0,0 +1,7 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { forwardRef } from 'react';
3
+ import { PopupComponentContainer } from './styled';
4
+ export const PopupComponent = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/React.createElement(PopupComponentContainer, _extends({}, props, {
5
+ "data-testId": 'confluence-search-datasource-popup-container',
6
+ ref: ref
7
+ })));