@atlaskit/link-datasource 2.9.0 → 2.9.2
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 +18 -0
- package/dist/cjs/hooks/useDatasourceTableState.js +2 -0
- package/dist/cjs/ui/assets-modal/modal/index.js +2 -0
- package/dist/cjs/ui/assets-modal/modal/render-assets-content/index.js +3 -1
- package/dist/cjs/ui/common/modal/datasource-modal/createDatasourceModal.js +55 -0
- package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/index.js +15 -2
- package/dist/cjs/ui/common/modal/insert-button/index.js +5 -4
- package/dist/cjs/ui/confluence-search-modal/modal/ModalOld.js +3 -1
- package/dist/cjs/ui/confluence-search-modal/modal/index.js +35 -39
- package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +2 -0
- package/dist/cjs/ui/issue-like-table/index.js +56 -66
- package/dist/cjs/ui/issue-like-table/styled.js +25 -3
- package/dist/cjs/ui/issue-like-table/table-cell-content/index.js +54 -0
- package/dist/cjs/ui/issue-like-table/truncate-text-tag/index.js +32 -0
- package/dist/cjs/ui/jira-issues-modal/modal/ModalOld.js +3 -1
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +141 -211
- package/dist/es2019/hooks/useDatasourceTableState.js +2 -1
- package/dist/es2019/ui/assets-modal/modal/index.js +2 -0
- package/dist/es2019/ui/assets-modal/modal/render-assets-content/index.js +3 -1
- package/dist/es2019/ui/common/modal/datasource-context/index.js +1 -1
- package/dist/es2019/ui/common/modal/datasource-modal/createDatasourceModal.js +51 -0
- package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/index.js +11 -2
- package/dist/es2019/ui/common/modal/insert-button/index.js +5 -4
- package/dist/es2019/ui/confluence-search-modal/modal/ModalOld.js +3 -1
- package/dist/es2019/ui/confluence-search-modal/modal/index.js +35 -39
- package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +2 -0
- package/dist/es2019/ui/issue-like-table/index.js +32 -52
- package/dist/es2019/ui/issue-like-table/styled.js +33 -0
- package/dist/es2019/ui/issue-like-table/table-cell-content/index.js +44 -0
- package/dist/es2019/ui/issue-like-table/truncate-text-tag/index.js +21 -0
- package/dist/es2019/ui/jira-issues-modal/modal/ModalOld.js +3 -1
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +133 -202
- package/dist/esm/hooks/useDatasourceTableState.js +2 -0
- package/dist/esm/ui/assets-modal/modal/index.js +2 -0
- package/dist/esm/ui/assets-modal/modal/render-assets-content/index.js +3 -1
- package/dist/esm/ui/common/modal/datasource-modal/createDatasourceModal.js +48 -0
- package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/index.js +12 -2
- package/dist/esm/ui/common/modal/insert-button/index.js +5 -4
- package/dist/esm/ui/confluence-search-modal/modal/ModalOld.js +3 -1
- package/dist/esm/ui/confluence-search-modal/modal/index.js +38 -42
- package/dist/esm/ui/datasource-table-view/datasourceTableView.js +2 -0
- package/dist/esm/ui/issue-like-table/index.js +53 -61
- package/dist/esm/ui/issue-like-table/styled.js +24 -2
- package/dist/esm/ui/issue-like-table/table-cell-content/index.js +47 -0
- package/dist/esm/ui/issue-like-table/truncate-text-tag/index.js +21 -0
- package/dist/esm/ui/jira-issues-modal/modal/ModalOld.js +3 -1
- package/dist/esm/ui/jira-issues-modal/modal/index.js +146 -216
- package/dist/types/common/types.d.ts +2 -1
- package/dist/types/hooks/useDatasourceTableState.d.ts +2 -0
- package/dist/types/ui/assets-modal/modal/render-assets-content/index.d.ts +1 -0
- package/dist/types/ui/common/modal/datasource-context/index.d.ts +9 -12
- package/dist/types/ui/common/modal/datasource-modal/createDatasourceModal.d.ts +15 -0
- package/dist/types/ui/common/modal/insert-button/index.d.ts +4 -2
- package/dist/types/ui/confluence-search-modal/modal/index.d.ts +3 -4
- package/dist/types/ui/confluence-search-modal/types.d.ts +6 -1
- package/dist/types/ui/issue-like-table/index.d.ts +1 -17
- package/dist/types/ui/issue-like-table/styled.d.ts +4 -0
- package/dist/types/ui/issue-like-table/table-cell-content/index.d.ts +12 -0
- package/dist/types/ui/issue-like-table/truncate-text-tag/index.d.ts +6 -0
- package/dist/types/ui/issue-like-table/types.d.ts +20 -1
- package/dist/types/ui/jira-issues-modal/modal/index.d.ts +3 -3
- package/dist/types/ui/jira-issues-modal/types.d.ts +3 -0
- package/dist/types-ts4.5/common/types.d.ts +2 -1
- package/dist/types-ts4.5/hooks/useDatasourceTableState.d.ts +2 -0
- package/dist/types-ts4.5/ui/assets-modal/modal/render-assets-content/index.d.ts +1 -0
- package/dist/types-ts4.5/ui/common/modal/datasource-context/index.d.ts +9 -12
- package/dist/types-ts4.5/ui/common/modal/datasource-modal/createDatasourceModal.d.ts +15 -0
- package/dist/types-ts4.5/ui/common/modal/insert-button/index.d.ts +4 -2
- package/dist/types-ts4.5/ui/confluence-search-modal/modal/index.d.ts +3 -4
- package/dist/types-ts4.5/ui/confluence-search-modal/types.d.ts +6 -1
- package/dist/types-ts4.5/ui/issue-like-table/index.d.ts +1 -17
- package/dist/types-ts4.5/ui/issue-like-table/styled.d.ts +4 -0
- package/dist/types-ts4.5/ui/issue-like-table/table-cell-content/index.d.ts +12 -0
- package/dist/types-ts4.5/ui/issue-like-table/truncate-text-tag/index.d.ts +6 -0
- package/dist/types-ts4.5/ui/issue-like-table/types.d.ts +20 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/modal/index.d.ts +3 -3
- package/dist/types-ts4.5/ui/jira-issues-modal/types.d.ts +3 -0
- package/examples-helpers/buildIssueLikeTable.tsx +2 -0
- package/package.json +8 -8
|
@@ -4,12 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.withTablePluginPrefix = exports.withTablePluginHeaderPrefix = exports.withTablePluginBodyPrefix = exports.fieldTextFontSize = exports.TableHeading = exports.Table = exports.ScrollableContainerHeight = void 0;
|
|
7
|
+
exports.withTablePluginPrefix = exports.withTablePluginHeaderPrefix = exports.withTablePluginBodyPrefix = exports.fieldTextFontSize = exports.TableHeading = exports.TableCell = exports.Table = exports.ScrollableContainerHeight = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
10
10
|
var _colors = require("@atlaskit/theme/colors");
|
|
11
11
|
var _typography = require("@atlaskit/theme/typography");
|
|
12
|
-
var _styled$th; // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
12
|
+
var _styled$th, _styled$td; // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
13
13
|
var ScrollableContainerHeight = exports.ScrollableContainerHeight = 590;
|
|
14
14
|
var fieldTextFontSize = exports.fieldTextFontSize = "var(--ds-font-body, ".concat(_typography.fontFallback.body.medium, ")");
|
|
15
15
|
|
|
@@ -71,4 +71,26 @@ var TableHeading = exports.TableHeading = _styled.default.th((_styled$th = {}, (
|
|
|
71
71
|
whiteSpace: 'normal',
|
|
72
72
|
overflow: 'hidden',
|
|
73
73
|
wordWrap: 'break-word'
|
|
74
|
-
}), _styled$th));
|
|
74
|
+
}), _styled$th));
|
|
75
|
+
|
|
76
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
|
|
77
|
+
var TableCell = exports.TableCell = _styled.default.td((_styled$td = {}, (0, _defineProperty2.default)(_styled$td, "".concat(withTablePluginBodyPrefix()), {
|
|
78
|
+
/* First section here is to override things editor table plugin css defines */
|
|
79
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
|
|
80
|
+
font: fieldTextFontSize,
|
|
81
|
+
padding: "var(--ds-space-050, 4px)".concat(" ", "var(--ds-space-100, 8px)"),
|
|
82
|
+
border: 0,
|
|
83
|
+
minWidth: 'auto',
|
|
84
|
+
verticalAlign: 'inherit',
|
|
85
|
+
boxSizing: 'border-box',
|
|
86
|
+
borderRight: "0.5px solid ".concat("var(--ds-border, ".concat(_colors.N40, ")")),
|
|
87
|
+
borderBottom: "0.5px solid ".concat("var(--ds-border, ".concat(_colors.N40, ")")),
|
|
88
|
+
overflow: 'hidden'
|
|
89
|
+
}), (0, _defineProperty2.default)(_styled$td, "".concat(withTablePluginBodyPrefix('&:first-child')), {
|
|
90
|
+
paddingLeft: "var(--ds-space-100, 8px)"
|
|
91
|
+
}), (0, _defineProperty2.default)(_styled$td, "".concat(withTablePluginBodyPrefix('&:last-child')), {
|
|
92
|
+
borderRight: 0,
|
|
93
|
+
paddingRight: "var(--ds-space-100, 8px)"
|
|
94
|
+
}), (0, _defineProperty2.default)(_styled$td, "& [data-testid='inline-card-icon-and-title'], " + "& [data-testid='button-connect-account'] > span", {
|
|
95
|
+
whiteSpace: 'unset'
|
|
96
|
+
}), _styled$td));
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TableCellContent = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactIntlNext = require("react-intl-next");
|
|
10
|
+
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
11
|
+
var _state = require("../../../state");
|
|
12
|
+
var _renderType = require("../render-type");
|
|
13
|
+
var _truncateTextTag = require("../truncate-text-tag");
|
|
14
|
+
var TableCellContent = exports.TableCellContent = function TableCellContent(_ref) {
|
|
15
|
+
var _rowData$columnKey;
|
|
16
|
+
var columnKey = _ref.columnKey,
|
|
17
|
+
columnType = _ref.columnType,
|
|
18
|
+
id = _ref.id,
|
|
19
|
+
renderItem = _ref.renderItem,
|
|
20
|
+
wrappedColumnKeys = _ref.wrappedColumnKeys;
|
|
21
|
+
var intl = (0, _reactIntlNext.useIntl)();
|
|
22
|
+
var rowData = (0, _state.useDatasourceItem)({
|
|
23
|
+
id: id
|
|
24
|
+
});
|
|
25
|
+
if (!rowData || !columnKey || !rowData[columnKey]) {
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Need to make sure we keep falsy values like 0 and '', as well as the boolean false.
|
|
30
|
+
var value = (_rowData$columnKey = rowData[columnKey]) === null || _rowData$columnKey === void 0 ? void 0 : _rowData$columnKey.data;
|
|
31
|
+
var values = Array.isArray(value) ? value : [value];
|
|
32
|
+
var renderedValues = renderItem({
|
|
33
|
+
type: columnType,
|
|
34
|
+
values: values
|
|
35
|
+
});
|
|
36
|
+
var stringifiedContent = values.map(function (value) {
|
|
37
|
+
return (0, _renderType.stringifyType)({
|
|
38
|
+
type: columnType,
|
|
39
|
+
value: value
|
|
40
|
+
}, intl.formatMessage, intl.formatDate);
|
|
41
|
+
}).filter(function (value) {
|
|
42
|
+
return value !== '';
|
|
43
|
+
}).join(', ');
|
|
44
|
+
if (stringifiedContent && !(wrappedColumnKeys !== null && wrappedColumnKeys !== void 0 && wrappedColumnKeys.includes(columnKey))) {
|
|
45
|
+
return /*#__PURE__*/_react.default.createElement(_tooltip.default
|
|
46
|
+
// @ts-ignore: [PIT-1685] Fails in post-office due to backwards incompatibility issue with React 18
|
|
47
|
+
, {
|
|
48
|
+
tag: _truncateTextTag.TruncateTextTag,
|
|
49
|
+
content: stringifiedContent,
|
|
50
|
+
testId: "issues-table-cell-tooltip"
|
|
51
|
+
}, renderedValues);
|
|
52
|
+
}
|
|
53
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, renderedValues);
|
|
54
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
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.TruncateTextTag = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _react2 = require("@emotion/react");
|
|
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
|
+
/**
|
|
15
|
+
* @jsxRuntime classic
|
|
16
|
+
* @jsx jsx
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
|
|
20
|
+
|
|
21
|
+
var truncateTextStyles = (0, _react2.css)({
|
|
22
|
+
overflow: 'hidden',
|
|
23
|
+
textOverflow: 'ellipsis',
|
|
24
|
+
whiteSpace: 'nowrap'
|
|
25
|
+
});
|
|
26
|
+
var TruncateTextTag = exports.TruncateTextTag = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
27
|
+
return (0, _react2.jsx)("span", (0, _extends2.default)({
|
|
28
|
+
css: truncateTextStyles
|
|
29
|
+
}, props, {
|
|
30
|
+
ref: ref
|
|
31
|
+
}), props.children);
|
|
32
|
+
});
|
|
@@ -132,6 +132,7 @@ var PlainJiraIssuesConfigModalOld = exports.PlainJiraIssuesConfigModalOld = func
|
|
|
132
132
|
status = _useDatasourceTableSt.status,
|
|
133
133
|
onNextPage = _useDatasourceTableSt.onNextPage,
|
|
134
134
|
responseItems = _useDatasourceTableSt.responseItems,
|
|
135
|
+
responseItemIds = _useDatasourceTableSt.responseItemIds,
|
|
135
136
|
hasNextPage = _useDatasourceTableSt.hasNextPage,
|
|
136
137
|
columns = _useDatasourceTableSt.columns,
|
|
137
138
|
defaultVisibleColumnKeys = _useDatasourceTableSt.defaultVisibleColumnKeys,
|
|
@@ -369,6 +370,7 @@ var PlainJiraIssuesConfigModalOld = exports.PlainJiraIssuesConfigModalOld = func
|
|
|
369
370
|
status: status,
|
|
370
371
|
columns: columns,
|
|
371
372
|
items: responseItems,
|
|
373
|
+
itemIds: responseItemIds,
|
|
372
374
|
hasNextPage: hasNextPage,
|
|
373
375
|
visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
|
|
374
376
|
onNextPage: handleOnNextPage,
|
|
@@ -380,7 +382,7 @@ var PlainJiraIssuesConfigModalOld = exports.PlainJiraIssuesConfigModalOld = func
|
|
|
380
382
|
wrappedColumnKeys: wrappedColumnKeys,
|
|
381
383
|
onWrappedColumnChange: (0, _platformFeatureFlags.fg)('platform.linking-platform.datasource-word_wrap') ? onWrappedColumnChange : undefined
|
|
382
384
|
}));
|
|
383
|
-
}, [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, handleOnNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange, extensionKey, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange]);
|
|
385
|
+
}, [status, columns, responseItems, responseItemIds, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, handleOnNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange, extensionKey, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange]);
|
|
384
386
|
var renderCountModeContent = (0, _react.useCallback)(function () {
|
|
385
387
|
var selectedJiraSiteUrl = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
386
388
|
if (status === 'unauthorized') {
|
|
@@ -12,7 +12,6 @@ var _react = require("react");
|
|
|
12
12
|
var _react2 = require("@emotion/react");
|
|
13
13
|
var _reactIntlNext = require("react-intl-next");
|
|
14
14
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
15
|
-
var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
|
|
16
15
|
var _intlMessagesProvider = require("@atlaskit/intl-messages-provider");
|
|
17
16
|
var _modalDialog = require("@atlaskit/modal-dialog");
|
|
18
17
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
@@ -23,11 +22,9 @@ var _ufoExperiences = require("../../../analytics/ufoExperiences");
|
|
|
23
22
|
var _useColumnPickerRenderedFailedUfoExperience = require("../../../analytics/ufoExperiences/hooks/useColumnPickerRenderedFailedUfoExperience");
|
|
24
23
|
var _useDataRenderedUfoExperience = require("../../../analytics/ufoExperiences/hooks/useDataRenderedUfoExperience");
|
|
25
24
|
var _utils = require("../../../analytics/utils");
|
|
26
|
-
var _adf = require("../../../common/utils/adf");
|
|
27
25
|
var _fetchMessagesForLocale = require("../../../common/utils/locale/fetch-messages-for-locale");
|
|
28
26
|
var _datasourceExperienceId = require("../../../contexts/datasource-experience-id");
|
|
29
27
|
var _userInteractions = require("../../../contexts/user-interactions");
|
|
30
|
-
var _useDatasourceTableState = require("../../../hooks/useDatasourceTableState");
|
|
31
28
|
var _en = _interopRequireDefault(require("../../../i18n/en"));
|
|
32
29
|
var _useAvailableSites2 = require("../../../services/useAvailableSites");
|
|
33
30
|
var _state = require("../../../state");
|
|
@@ -41,15 +38,16 @@ var _messages2 = require("../../common/initial-state-view/messages");
|
|
|
41
38
|
var _cancelButton = require("../../common/modal/cancel-button");
|
|
42
39
|
var _contentContainer = require("../../common/modal/content-container");
|
|
43
40
|
var _countViewSmartLink = require("../../common/modal/count-view-smart-link");
|
|
41
|
+
var _datasourceContext = require("../../common/modal/datasource-context");
|
|
44
42
|
var _datasourceModal = require("../../common/modal/datasource-modal");
|
|
45
|
-
var
|
|
46
|
-
var
|
|
43
|
+
var _createDatasourceModal = require("../../common/modal/datasource-modal/createDatasourceModal");
|
|
44
|
+
var _datasourcesTableInModalPreview = _interopRequireDefault(require("../../common/modal/datasources-table-in-modal-preview"));
|
|
45
|
+
var _insertButton = require("../../common/modal/insert-button");
|
|
47
46
|
var _modeSwitcher = require("../../common/modal/mode-switcher");
|
|
48
47
|
var _useViewModeContext2 = require("../../common/modal/mode-switcher/useViewModeContext");
|
|
49
48
|
var _searchCount = _interopRequireDefault(require("../../common/modal/search-count"));
|
|
50
49
|
var _siteSelector = require("../../common/modal/site-selector");
|
|
51
50
|
var _issueLikeTable = require("../../issue-like-table");
|
|
52
|
-
var _utils2 = require("../../issue-like-table/utils");
|
|
53
51
|
var _ui = require("../basic-filters/ui");
|
|
54
52
|
var _isQueryTooComplex = require("../basic-filters/utils/isQueryTooComplex");
|
|
55
53
|
var _jiraSearchContainer = require("../jira-search-container");
|
|
@@ -61,7 +59,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
61
59
|
* @jsxRuntime classic
|
|
62
60
|
* @jsx jsx
|
|
63
61
|
*/ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
64
|
-
var DEFAULT_VIEW_MODE = 'table';
|
|
65
62
|
var getDisplayValue = function getDisplayValue(currentViewMode, itemCount) {
|
|
66
63
|
if (currentViewMode === 'table') {
|
|
67
64
|
return _types.DatasourceDisplay.DATASOURCE_TABLE;
|
|
@@ -69,81 +66,55 @@ var getDisplayValue = function getDisplayValue(currentViewMode, itemCount) {
|
|
|
69
66
|
return itemCount === 1 ? _types.DatasourceDisplay.INLINE : _types.DatasourceDisplay.DATASOURCE_INLINE;
|
|
70
67
|
};
|
|
71
68
|
var jqlSupportDocumentLink = 'https://support.atlassian.com/jira-service-management-cloud/docs/use-advanced-search-with-jira-query-language-jql/';
|
|
69
|
+
var isValidParameters = function isValidParameters(parameters) {
|
|
70
|
+
return typeof (parameters === null || parameters === void 0 ? void 0 : parameters.jql) === 'string' && parameters.jql.length > 0 && typeof (parameters === null || parameters === void 0 ? void 0 : parameters.cloudId) === 'string' && parameters.cloudId.length > 0;
|
|
71
|
+
};
|
|
72
72
|
var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
73
|
-
var
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
73
|
+
var onCancel = props.onCancel,
|
|
74
|
+
urlBeingEdited = props.url;
|
|
75
|
+
var _useDatasourceContext = (0, _datasourceContext.useDatasourceContext)(),
|
|
76
|
+
visibleColumnCount = _useDatasourceContext.visibleColumnCount,
|
|
77
|
+
visibleColumnKeys = _useDatasourceContext.visibleColumnKeys,
|
|
78
|
+
parameters = _useDatasourceContext.parameters,
|
|
79
|
+
setParameters = _useDatasourceContext.setParameters,
|
|
80
|
+
tableState = _useDatasourceContext.tableState;
|
|
81
|
+
var reset = tableState.reset,
|
|
82
|
+
status = tableState.status,
|
|
83
|
+
responseItems = tableState.responseItems,
|
|
84
|
+
columns = tableState.columns,
|
|
85
|
+
totalCount = tableState.totalCount,
|
|
86
|
+
_tableState$extension = tableState.extensionKey,
|
|
87
|
+
extensionKey = _tableState$extension === void 0 ? null : _tableState$extension,
|
|
88
|
+
destinationObjectTypes = tableState.destinationObjectTypes;
|
|
89
|
+
var _ref = parameters !== null && parameters !== void 0 ? parameters : {},
|
|
90
|
+
cloudId = _ref.cloudId,
|
|
91
|
+
jql = _ref.jql;
|
|
92
|
+
var _useState = (0, _react.useState)(jql),
|
|
93
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 1),
|
|
94
|
+
initialJql = _useState2[0];
|
|
81
95
|
var _useViewModeContext = (0, _useViewModeContext2.useViewModeContext)(),
|
|
82
96
|
currentViewMode = _useViewModeContext.currentViewMode;
|
|
83
|
-
var _useState = (0, _react.useState)(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.cloudId),
|
|
84
|
-
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
85
|
-
cloudId = _useState2[0],
|
|
86
|
-
setCloudId = _useState2[1];
|
|
87
97
|
var _useAvailableSites = (0, _useAvailableSites2.useAvailableSites)('jira', cloudId),
|
|
88
98
|
availableSites = _useAvailableSites.availableSites,
|
|
89
99
|
selectedJiraSite = _useAvailableSites.selectedSite;
|
|
90
|
-
var _useState3 = (0, _react.useState)(
|
|
100
|
+
var _useState3 = (0, _react.useState)(jql),
|
|
91
101
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
var _useState5 = (0, _react.useState)(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.jql),
|
|
95
|
-
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
96
|
-
searchBarJql = _useState6[0],
|
|
97
|
-
setSearchBarJql = _useState6[1];
|
|
98
|
-
var _useState7 = (0, _react.useState)(initialVisibleColumnKeys),
|
|
99
|
-
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
100
|
-
visibleColumnKeys = _useState8[0],
|
|
101
|
-
setVisibleColumnKeys = _useState8[1];
|
|
102
|
+
searchBarJql = _useState4[0],
|
|
103
|
+
setSearchBarJql = _useState4[1];
|
|
102
104
|
|
|
103
105
|
// analytics related parameters
|
|
104
106
|
var searchCount = (0, _react.useRef)(0);
|
|
105
107
|
var userInteractions = (0, _userInteractions.useUserInteractions)();
|
|
106
108
|
var initialSearchMethod =
|
|
107
109
|
// eslint-disable-next-line @atlaskit/platform/no-preconditioning
|
|
108
|
-
(0, _platformFeatureFlags.fg)('platform.linking-platform.datasource.show-jlol-basic-filters') && !(0, _isQueryTooComplex.isQueryTooComplex)(
|
|
109
|
-
var
|
|
110
|
-
|
|
111
|
-
currentSearchMethod =
|
|
112
|
-
setCurrentSearchMethod =
|
|
110
|
+
(0, _platformFeatureFlags.fg)('platform.linking-platform.datasource.show-jlol-basic-filters') && !(0, _isQueryTooComplex.isQueryTooComplex)(initialJql || '') ? 'basic' : 'jql';
|
|
111
|
+
var _useState5 = (0, _react.useState)(initialSearchMethod),
|
|
112
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
113
|
+
currentSearchMethod = _useState6[0],
|
|
114
|
+
setCurrentSearchMethod = _useState6[1];
|
|
113
115
|
var searchMethodSearchedWith = (0, _react.useRef)(null);
|
|
114
|
-
var visibleColumnCount = (0, _react.useRef)((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
|
|
115
116
|
var basicFilterSelectionsSearchedWith = (0, _react.useRef)({});
|
|
116
117
|
var isSearchedWithComplexQuery = (0, _react.useRef)(false);
|
|
117
|
-
var parameters = (0, _react.useMemo)(function () {
|
|
118
|
-
return !!cloudId ? {
|
|
119
|
-
cloudId: cloudId,
|
|
120
|
-
jql: jql || ''
|
|
121
|
-
} : undefined;
|
|
122
|
-
}, [cloudId, jql]);
|
|
123
|
-
var isParametersSet = !!(jql && cloudId);
|
|
124
|
-
var _useColumnResize = (0, _useColumnResize2.useColumnResize)(initialColumnCustomSizes),
|
|
125
|
-
columnCustomSizes = _useColumnResize.columnCustomSizes,
|
|
126
|
-
onColumnResize = _useColumnResize.onColumnResize;
|
|
127
|
-
var _useColumnWrapping = (0, _useColumnWrapping2.useColumnWrapping)(initialWrappedColumnKeys),
|
|
128
|
-
wrappedColumnKeys = _useColumnWrapping.wrappedColumnKeys,
|
|
129
|
-
onWrappedColumnChange = _useColumnWrapping.onWrappedColumnChange;
|
|
130
|
-
var _useDatasourceTableSt = (0, _useDatasourceTableState.useDatasourceTableState)({
|
|
131
|
-
datasourceId: datasourceId,
|
|
132
|
-
parameters: isParametersSet ? parameters : undefined,
|
|
133
|
-
fieldKeys: visibleColumnKeys
|
|
134
|
-
}),
|
|
135
|
-
reset = _useDatasourceTableSt.reset,
|
|
136
|
-
status = _useDatasourceTableSt.status,
|
|
137
|
-
onNextPage = _useDatasourceTableSt.onNextPage,
|
|
138
|
-
responseItems = _useDatasourceTableSt.responseItems,
|
|
139
|
-
hasNextPage = _useDatasourceTableSt.hasNextPage,
|
|
140
|
-
columns = _useDatasourceTableSt.columns,
|
|
141
|
-
defaultVisibleColumnKeys = _useDatasourceTableSt.defaultVisibleColumnKeys,
|
|
142
|
-
loadDatasourceDetails = _useDatasourceTableSt.loadDatasourceDetails,
|
|
143
|
-
totalCount = _useDatasourceTableSt.totalCount,
|
|
144
|
-
_useDatasourceTableSt2 = _useDatasourceTableSt.extensionKey,
|
|
145
|
-
extensionKey = _useDatasourceTableSt2 === void 0 ? null : _useDatasourceTableSt2,
|
|
146
|
-
destinationObjectTypes = _useDatasourceTableSt.destinationObjectTypes;
|
|
147
118
|
var _useDatasourceAnalyti = (0, _analytics.useDatasourceAnalyticsEvents)(),
|
|
148
119
|
fireEvent = _useDatasourceAnalyti.fireEvent;
|
|
149
120
|
var experienceId = (0, _datasourceExperienceId.useDatasourceExperienceId)();
|
|
@@ -155,7 +126,6 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
155
126
|
}, [destinationObjectTypes, extensionKey]);
|
|
156
127
|
var resolvedWithNoResults = status === 'resolved' && !responseItems.length;
|
|
157
128
|
var jqlUrl = selectedJiraSite && jql && "".concat(selectedJiraSite.url, "/issues/?jql=").concat(encodeURI(jql));
|
|
158
|
-
var isInsertDisabled = !isParametersSet || status === 'rejected' || status === 'unauthorized' || status === 'loading';
|
|
159
129
|
var shouldShowIssueCount = !!totalCount && totalCount !== 1 && currentViewMode === 'table';
|
|
160
130
|
var isDataReady = (visibleColumnKeys || []).length > 0;
|
|
161
131
|
var hasNoJiraSites = availableSites && availableSites.length === 0;
|
|
@@ -182,16 +152,21 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
182
152
|
canBeLink: currentViewMode === 'inline',
|
|
183
153
|
extensionKey: extensionKey
|
|
184
154
|
});
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* If the selected Jira site changes, update the cloudId in the parameters
|
|
158
|
+
* This is mainly useful for setting the initial cloudId after the site selection loads
|
|
159
|
+
*/
|
|
190
160
|
(0, _react.useEffect)(function () {
|
|
191
161
|
if (selectedJiraSite && (!cloudId || cloudId !== selectedJiraSite.cloudId)) {
|
|
192
|
-
|
|
162
|
+
setParameters(function () {
|
|
163
|
+
return {
|
|
164
|
+
jql: '',
|
|
165
|
+
cloudId: selectedJiraSite.cloudId
|
|
166
|
+
};
|
|
167
|
+
});
|
|
193
168
|
}
|
|
194
|
-
}, [cloudId, selectedJiraSite]);
|
|
169
|
+
}, [cloudId, selectedJiraSite, setParameters]);
|
|
195
170
|
var fireSingleItemViewedEvent = (0, _react.useCallback)(function () {
|
|
196
171
|
fireEvent('ui.link.viewed.singleItem', _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
197
172
|
searchMethod: (0, _utils.mapSearchMethod)(searchMethodSearchedWith.current)
|
|
@@ -211,7 +186,7 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
211
186
|
displayedColumnCount: visibleColumnCount.current
|
|
212
187
|
}));
|
|
213
188
|
}
|
|
214
|
-
}, [
|
|
189
|
+
}, [isDataReady, fireEvent, analyticsPayload, totalCount, visibleColumnCount]);
|
|
215
190
|
var fireIssueViewAnalytics = (0, _react.useCallback)(function () {
|
|
216
191
|
if (!totalCount) {
|
|
217
192
|
return;
|
|
@@ -236,10 +211,10 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
236
211
|
}
|
|
237
212
|
}, [currentViewMode, status, fireIssueViewAnalytics, fireCountViewedEvent]);
|
|
238
213
|
(0, _useColumnPickerRenderedFailedUfoExperience.useColumnPickerRenderedFailedUfoExperience)(status, experienceId);
|
|
239
|
-
var onSearch = (0, _react.useCallback)(function (newParameters,
|
|
240
|
-
var searchMethod =
|
|
241
|
-
basicFilterSelections =
|
|
242
|
-
isQueryComplex =
|
|
214
|
+
var onSearch = (0, _react.useCallback)(function (newParameters, _ref2) {
|
|
215
|
+
var searchMethod = _ref2.searchMethod,
|
|
216
|
+
basicFilterSelections = _ref2.basicFilterSelections,
|
|
217
|
+
isQueryComplex = _ref2.isQueryComplex;
|
|
243
218
|
searchCount.current++;
|
|
244
219
|
searchMethodSearchedWith.current = searchMethod;
|
|
245
220
|
basicFilterSelectionsSearchedWith.current = basicFilterSelections;
|
|
@@ -247,19 +222,26 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
247
222
|
if (jql !== newParameters.jql) {
|
|
248
223
|
userInteractions.add(_types.DatasourceAction.QUERY_UPDATED);
|
|
249
224
|
}
|
|
250
|
-
|
|
225
|
+
setParameters(function (state) {
|
|
226
|
+
return state && newParameters.jql ? {
|
|
227
|
+
cloudId: state.cloudId,
|
|
228
|
+
jql: newParameters.jql
|
|
229
|
+
} : undefined;
|
|
230
|
+
});
|
|
251
231
|
reset({
|
|
252
232
|
shouldForceRequest: true
|
|
253
233
|
});
|
|
254
|
-
}, [jql, reset, userInteractions]);
|
|
234
|
+
}, [jql, reset, userInteractions, setParameters]);
|
|
255
235
|
var onSiteSelection = (0, _react.useCallback)(function (site) {
|
|
256
236
|
userInteractions.add(_types.DatasourceAction.INSTANCE_UPDATED);
|
|
257
|
-
|
|
258
|
-
|
|
237
|
+
setParameters({
|
|
238
|
+
jql: '',
|
|
239
|
+
cloudId: site.cloudId
|
|
240
|
+
});
|
|
259
241
|
reset({
|
|
260
242
|
shouldForceRequest: true
|
|
261
243
|
});
|
|
262
|
-
}, [reset, userInteractions]);
|
|
244
|
+
}, [reset, userInteractions, setParameters]);
|
|
263
245
|
var retrieveUrlForSmartCardRender = (0, _react.useCallback)(function () {
|
|
264
246
|
var _data$key;
|
|
265
247
|
var _responseItems = (0, _slicedToArray2.default)(responseItems, 1),
|
|
@@ -267,120 +249,6 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
267
249
|
// agreement with BE that we will use `key` for rendering smartlink
|
|
268
250
|
return data === null || data === void 0 || (_data$key = data.key) === null || _data$key === void 0 || (_data$key = _data$key.data) === null || _data$key === void 0 ? void 0 : _data$key.url;
|
|
269
251
|
}, [responseItems]);
|
|
270
|
-
var onInsertPressed = (0, _react.useCallback)(function (e, analyticsEvent) {
|
|
271
|
-
var _insertButtonClickedE;
|
|
272
|
-
if (!isParametersSet || !jql || !selectedJiraSite) {
|
|
273
|
-
return;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
// During insertion, we want the JQL of the datasource to be whatever is in the search bar,
|
|
277
|
-
// even if the user didn't previously click search
|
|
278
|
-
var upToDateJql = searchBarJql !== null && searchBarJql !== void 0 ? searchBarJql : jql;
|
|
279
|
-
var upToDateJqlUrl = selectedJiraSite && jql && "".concat(selectedJiraSite.url, "/issues/?jql=").concat(encodeURIComponent(upToDateJql));
|
|
280
|
-
var filterSelectionCount = _ui.availableBasicFilterTypes.reduce(function (current, filter) {
|
|
281
|
-
var _basicFilterSelection;
|
|
282
|
-
return _objectSpread(_objectSpread({}, current), {}, (0, _defineProperty2.default)({}, "".concat(filter, "BasicFilterSelectionCount"), ((_basicFilterSelection = basicFilterSelectionsSearchedWith.current[filter]) === null || _basicFilterSelection === void 0 ? void 0 : _basicFilterSelection.length) || 0));
|
|
283
|
-
}, {});
|
|
284
|
-
var insertButtonClickedEvent = analyticsEvent.update({
|
|
285
|
-
actionSubjectId: 'insert',
|
|
286
|
-
attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
287
|
-
totalItemCount: totalCount || 0,
|
|
288
|
-
displayedColumnCount: visibleColumnCount.current,
|
|
289
|
-
display: getDisplayValue(currentViewMode, totalCount || 0),
|
|
290
|
-
searchCount: searchCount.current,
|
|
291
|
-
searchMethod: (0, _utils.mapSearchMethod)(searchMethodSearchedWith.current),
|
|
292
|
-
actions: userInteractions.get(),
|
|
293
|
-
isQueryComplex: isSearchedWithComplexQuery.current
|
|
294
|
-
}, searchMethodSearchedWith.current === 'basic' ? _objectSpread({}, filterSelectionCount) : {}),
|
|
295
|
-
eventType: 'ui'
|
|
296
|
-
});
|
|
297
|
-
|
|
298
|
-
// additional event for tracking in confluence against JIM
|
|
299
|
-
var macroInsertedEvent = analyticsEvent.clone();
|
|
300
|
-
macroInsertedEvent === null || macroInsertedEvent === void 0 || macroInsertedEvent.update({
|
|
301
|
-
eventType: 'track',
|
|
302
|
-
action: 'inserted',
|
|
303
|
-
actionSubject: 'macro',
|
|
304
|
-
actionSubjectId: 'jlol',
|
|
305
|
-
attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
306
|
-
totalItemCount: totalCount || 0,
|
|
307
|
-
displayedColumnCount: visibleColumnCount.current,
|
|
308
|
-
display: getDisplayValue(currentViewMode, totalCount || 0),
|
|
309
|
-
searchCount: searchCount.current,
|
|
310
|
-
searchMethod: (0, _utils.mapSearchMethod)(searchMethodSearchedWith.current),
|
|
311
|
-
actions: userInteractions.get()
|
|
312
|
-
})
|
|
313
|
-
});
|
|
314
|
-
var consumerEvent = (_insertButtonClickedE = insertButtonClickedEvent.clone()) !== null && _insertButtonClickedE !== void 0 ? _insertButtonClickedE : undefined;
|
|
315
|
-
insertButtonClickedEvent.fire(_analytics.EVENT_CHANNEL);
|
|
316
|
-
var firstIssueUrl = retrieveUrlForSmartCardRender();
|
|
317
|
-
if (currentViewMode === 'inline') {
|
|
318
|
-
macroInsertedEvent === null || macroInsertedEvent === void 0 || macroInsertedEvent.fire(_analytics.EVENT_CHANNEL);
|
|
319
|
-
var url = responseItems.length === 1 ? firstIssueUrl : upToDateJqlUrl;
|
|
320
|
-
onInsert({
|
|
321
|
-
type: 'inlineCard',
|
|
322
|
-
attrs: {
|
|
323
|
-
url: url
|
|
324
|
-
}
|
|
325
|
-
}, consumerEvent);
|
|
326
|
-
} else {
|
|
327
|
-
onInsert((0, _adf.buildDatasourceAdf)({
|
|
328
|
-
id: datasourceId,
|
|
329
|
-
parameters: {
|
|
330
|
-
cloudId: cloudId,
|
|
331
|
-
jql: upToDateJql // TODO support non JQL type
|
|
332
|
-
},
|
|
333
|
-
views: [{
|
|
334
|
-
type: 'table',
|
|
335
|
-
properties: {
|
|
336
|
-
columns: (visibleColumnKeys || []).map(function (key) {
|
|
337
|
-
var width = columnCustomSizes === null || columnCustomSizes === void 0 ? void 0 : columnCustomSizes[key];
|
|
338
|
-
var isWrapped = wrappedColumnKeys === null || wrappedColumnKeys === void 0 ? void 0 : wrappedColumnKeys.includes(key);
|
|
339
|
-
return _objectSpread(_objectSpread({
|
|
340
|
-
key: key
|
|
341
|
-
}, width ? {
|
|
342
|
-
width: width
|
|
343
|
-
} : {}), isWrapped ? {
|
|
344
|
-
isWrapped: isWrapped
|
|
345
|
-
} : {});
|
|
346
|
-
})
|
|
347
|
-
}
|
|
348
|
-
}]
|
|
349
|
-
}, upToDateJqlUrl), consumerEvent);
|
|
350
|
-
}
|
|
351
|
-
}, [isParametersSet, jql, selectedJiraSite, searchBarJql, analyticsPayload, totalCount, currentViewMode, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, cloudId, visibleColumnKeys, columnCustomSizes, wrappedColumnKeys, userInteractions]);
|
|
352
|
-
var handleOnNextPage = (0, _react.useCallback)(function () {
|
|
353
|
-
var onNextPageProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
354
|
-
userInteractions.add(_types.DatasourceAction.NEXT_PAGE_SCROLLED);
|
|
355
|
-
onNextPage(onNextPageProps);
|
|
356
|
-
}, [onNextPage, userInteractions]);
|
|
357
|
-
var handleVisibleColumnKeysChange = (0, _react.useCallback)(function () {
|
|
358
|
-
var newVisibleColumnKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
359
|
-
var columnAction = (0, _utils2.getColumnAction)(visibleColumnKeys || [], newVisibleColumnKeys);
|
|
360
|
-
userInteractions.add(columnAction);
|
|
361
|
-
visibleColumnCount.current = newVisibleColumnKeys.length;
|
|
362
|
-
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
363
|
-
}, [visibleColumnKeys, userInteractions]);
|
|
364
|
-
var issueLikeDataTableView = (0, _react.useMemo)(function () {
|
|
365
|
-
return (0, _react2.jsx)(_contentContainer.ContentContainer, {
|
|
366
|
-
withTableBorder: true
|
|
367
|
-
}, (0, _react2.jsx)(_issueLikeTable.IssueLikeDataTableView, {
|
|
368
|
-
testId: "jira-datasource-table",
|
|
369
|
-
status: status,
|
|
370
|
-
columns: columns,
|
|
371
|
-
items: responseItems,
|
|
372
|
-
hasNextPage: hasNextPage,
|
|
373
|
-
visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
|
|
374
|
-
onNextPage: handleOnNextPage,
|
|
375
|
-
onLoadDatasourceDetails: loadDatasourceDetails,
|
|
376
|
-
onVisibleColumnKeysChange: handleVisibleColumnKeysChange,
|
|
377
|
-
extensionKey: extensionKey,
|
|
378
|
-
columnCustomSizes: columnCustomSizes,
|
|
379
|
-
onColumnResize: onColumnResize,
|
|
380
|
-
wrappedColumnKeys: wrappedColumnKeys,
|
|
381
|
-
onWrappedColumnChange: (0, _platformFeatureFlags.fg)('platform.linking-platform.datasource-word_wrap') ? onWrappedColumnChange : undefined
|
|
382
|
-
}));
|
|
383
|
-
}, [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, handleOnNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange, extensionKey, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange]);
|
|
384
252
|
var renderCountModeContent = (0, _react.useCallback)(function () {
|
|
385
253
|
var selectedJiraSiteUrl = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
386
254
|
if (status === 'unauthorized') {
|
|
@@ -440,8 +308,12 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
440
308
|
} : undefined
|
|
441
309
|
}));
|
|
442
310
|
}
|
|
443
|
-
return
|
|
444
|
-
|
|
311
|
+
return (0, _react2.jsx)(_contentContainer.ContentContainer, {
|
|
312
|
+
withTableBorder: true
|
|
313
|
+
}, (0, _react2.jsx)(_datasourcesTableInModalPreview.default, {
|
|
314
|
+
testId: "jira-datasource-table"
|
|
315
|
+
}));
|
|
316
|
+
}, [columns.length, currentSearchMethod, jql, jqlUrl, resolvedWithNoResults, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited]);
|
|
445
317
|
var siteSelectorLabel = availableSites && availableSites.length > 1 ? _messages3.modalMessages.insertIssuesTitleManySites : _messages3.modalMessages.insertIssuesTitle;
|
|
446
318
|
var getCancelButtonAnalyticsPayload = (0, _react.useCallback)(function () {
|
|
447
319
|
return _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
@@ -449,6 +321,38 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
449
321
|
actions: userInteractions.get()
|
|
450
322
|
});
|
|
451
323
|
}, [analyticsPayload, userInteractions]);
|
|
324
|
+
var filterSelectionCount = _ui.availableBasicFilterTypes.reduce(function (current, filter) {
|
|
325
|
+
var _basicFilterSelection;
|
|
326
|
+
return _objectSpread(_objectSpread({}, current), {}, (0, _defineProperty2.default)({}, "".concat(filter, "BasicFilterSelectionCount"), ((_basicFilterSelection = basicFilterSelectionsSearchedWith.current[filter]) === null || _basicFilterSelection === void 0 ? void 0 : _basicFilterSelection.length) || 0));
|
|
327
|
+
}, {});
|
|
328
|
+
var getInsertButtonAnalyticsPayload = (0, _react.useCallback)(function () {
|
|
329
|
+
return _objectSpread(_objectSpread({}, analyticsPayload), {}, {
|
|
330
|
+
display: getDisplayValue(currentViewMode, totalCount || 0),
|
|
331
|
+
isQueryComplex: isSearchedWithComplexQuery.current,
|
|
332
|
+
searchMethod: (0, _utils.mapSearchMethod)(searchMethodSearchedWith.current),
|
|
333
|
+
searchCount: searchCount.current,
|
|
334
|
+
actions: userInteractions.get()
|
|
335
|
+
}, searchMethodSearchedWith.current === 'basic' ? _objectSpread({}, filterSelectionCount) : {});
|
|
336
|
+
}, [analyticsPayload, currentViewMode, filterSelectionCount, totalCount, userInteractions]);
|
|
337
|
+
var urlToInsert = (0, _react.useMemo)(function () {
|
|
338
|
+
var jql = parameters === null || parameters === void 0 ? void 0 : parameters.jql;
|
|
339
|
+
if (!jql || !(selectedJiraSite !== null && selectedJiraSite !== void 0 && selectedJiraSite.url)) {
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
// During insertion, we want the JQL of the datasource to be whatever is in the search bar,
|
|
343
|
+
// even if the user didn't previously click search
|
|
344
|
+
var upToDateJql = searchBarJql !== null && searchBarJql !== void 0 ? searchBarJql : jql;
|
|
345
|
+
var upToDateJqlUrl = "".concat(selectedJiraSite.url, "/issues/?jql=").concat(encodeURIComponent(upToDateJql));
|
|
346
|
+
return currentViewMode === 'inline' && responseItems.length === 1 ? retrieveUrlForSmartCardRender() : upToDateJqlUrl;
|
|
347
|
+
}, [currentViewMode, parameters === null || parameters === void 0 ? void 0 : parameters.jql, responseItems, retrieveUrlForSmartCardRender, searchBarJql, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url]);
|
|
348
|
+
var updateParametersBeforeInsert = function updateParametersBeforeInsert(parameters) {
|
|
349
|
+
return {
|
|
350
|
+
cloudId: parameters.cloudId,
|
|
351
|
+
// searchBarJql will not be null at this point, since this function is only called when user press insert button
|
|
352
|
+
//
|
|
353
|
+
jql: searchBarJql || ''
|
|
354
|
+
};
|
|
355
|
+
};
|
|
452
356
|
return (0, _react2.jsx)(_intlMessagesProvider.IntlMessagesProvider, {
|
|
453
357
|
defaultMessages: _en.default,
|
|
454
358
|
loaderFn: _fetchMessagesForLocale.fetchMessagesForLocale
|
|
@@ -483,11 +387,11 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
483
387
|
onCancel: onCancel,
|
|
484
388
|
getAnalyticsPayload: getCancelButtonAnalyticsPayload,
|
|
485
389
|
testId: "jira-datasource-modal--cancel-button"
|
|
486
|
-
}), !hasNoJiraSites && (0, _react2.jsx)(
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
390
|
+
}), !hasNoJiraSites && (0, _react2.jsx)(_insertButton.InsertButton, {
|
|
391
|
+
testId: "jira-datasource-modal--insert-button",
|
|
392
|
+
url: urlToInsert,
|
|
393
|
+
overwriteParameters: updateParametersBeforeInsert,
|
|
394
|
+
getAnalyticsPayload: getInsertButtonAnalyticsPayload
|
|
491
395
|
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages3.modalMessages.insertIssuesButtonText))))));
|
|
492
396
|
};
|
|
493
397
|
var analyticsContextAttributes = {
|
|
@@ -499,9 +403,35 @@ var analyticsContextData = _objectSpread(_objectSpread({}, _constants.componentM
|
|
|
499
403
|
var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
|
|
500
404
|
attributes: _objectSpread({}, analyticsContextAttributes)
|
|
501
405
|
});
|
|
502
|
-
var
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
406
|
+
var ConnectedJiraIssueConfigModal = (0, _createDatasourceModal.createDatasourceModal)({
|
|
407
|
+
isValidParameters: isValidParameters,
|
|
408
|
+
dataProvider: 'jira-issues',
|
|
409
|
+
component: PlainJiraIssuesConfigModal
|
|
410
|
+
});
|
|
411
|
+
var JiraIssuesConfigModalWithExtraAnalyticsOnInsert = function JiraIssuesConfigModalWithExtraAnalyticsOnInsert(props) {
|
|
412
|
+
var onInsert = props.onInsert;
|
|
413
|
+
var onInsertWithMacroAnalytics = (0, _react.useCallback)(function (adf, analyticsEvent) {
|
|
414
|
+
if (analyticsEvent && adf.type === 'inlineCard') {
|
|
415
|
+
var macroInsertedEvent = analyticsEvent.clone();
|
|
416
|
+
macroInsertedEvent === null || macroInsertedEvent === void 0 || macroInsertedEvent.update({
|
|
417
|
+
eventType: 'track',
|
|
418
|
+
action: 'inserted',
|
|
419
|
+
actionSubject: 'macro',
|
|
420
|
+
actionSubjectId: 'jlol'
|
|
421
|
+
});
|
|
422
|
+
macroInsertedEvent === null || macroInsertedEvent === void 0 || macroInsertedEvent.fire(_constants.EVENT_CHANNEL);
|
|
423
|
+
}
|
|
424
|
+
onInsert(adf, analyticsEvent);
|
|
425
|
+
}, [onInsert]);
|
|
426
|
+
return (0, _react2.jsx)(_state.StoreContainer, null, (0, _react2.jsx)(ConnectedJiraIssueConfigModal, (0, _extends2.default)({}, props, {
|
|
427
|
+
onInsert: onInsertWithMacroAnalytics
|
|
428
|
+
})));
|
|
429
|
+
};
|
|
430
|
+
var JiraIssuesConfigModal = exports.JiraIssuesConfigModal = function JiraIssuesConfigModal(props) {
|
|
431
|
+
if ((0, _platformFeatureFlags.fg)('platform-datasources-use-refactored-config-modal')) {
|
|
432
|
+
return (0, _react2.jsx)(JiraIssuesConfigModalWithExtraAnalyticsOnInsert, props);
|
|
433
|
+
}
|
|
434
|
+
return (0, _react2.jsx)(_state.StoreContainer, null, (0, _react2.jsx)(_analyticsNext.AnalyticsContext, {
|
|
435
|
+
data: contextData
|
|
436
|
+
}, (0, _react2.jsx)(_datasourceExperienceId.DatasourceExperienceIdProvider, null, (0, _react2.jsx)(_userInteractions.UserInteractionsProvider, null, (0, _react2.jsx)(_ModalOld.PlainJiraIssuesConfigModalOld, props)))));
|
|
437
|
+
};
|