@atlaskit/link-datasource 1.0.17 → 1.0.18
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 +6 -0
- package/dist/cjs/analytics/constants.js +7 -2
- package/dist/cjs/analytics/types.js +30 -0
- package/dist/cjs/analytics/utils.js +4 -3
- package/dist/cjs/ui/assets-modal/modal/index.js +1 -1
- package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +2 -5
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +97 -21
- package/dist/es2019/analytics/constants.js +5 -1
- package/dist/es2019/analytics/types.js +21 -0
- package/dist/es2019/analytics/utils.js +4 -3
- package/dist/es2019/ui/assets-modal/modal/index.js +1 -1
- package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +2 -5
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +92 -16
- package/dist/esm/analytics/constants.js +5 -1
- package/dist/esm/analytics/types.js +21 -0
- package/dist/esm/analytics/utils.js +4 -3
- package/dist/esm/ui/assets-modal/modal/index.js +1 -1
- package/dist/esm/ui/datasource-table-view/datasourceTableView.js +2 -5
- package/dist/esm/ui/jira-issues-modal/modal/index.js +97 -22
- package/dist/types/analytics/constants.d.ts +2 -0
- package/dist/types/analytics/generated/analytics.types.d.ts +6 -1
- package/dist/types/analytics/types.d.ts +18 -0
- package/dist/types/analytics/utils.d.ts +2 -1
- package/dist/types/ui/jira-issues-modal/modal/index.d.ts +6 -0
- package/dist/types-ts4.5/analytics/constants.d.ts +2 -0
- package/dist/types-ts4.5/analytics/generated/analytics.types.d.ts +6 -1
- package/dist/types-ts4.5/analytics/types.d.ts +18 -0
- package/dist/types-ts4.5/analytics/utils.d.ts +2 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/modal/index.d.ts +6 -0
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atlaskit/link-datasource
|
|
2
2
|
|
|
3
|
+
## 1.0.18
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`e682c758801`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e682c758801) - Added button clicked (cancel) and button clicked (insert) UI events
|
|
8
|
+
|
|
3
9
|
## 1.0.17
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.EVENT_CHANNEL = void 0;
|
|
6
|
+
exports.packageMetaData = exports.EVENT_CHANNEL = void 0;
|
|
7
7
|
var EVENT_CHANNEL = 'media';
|
|
8
|
-
exports.EVENT_CHANNEL = EVENT_CHANNEL;
|
|
8
|
+
exports.EVENT_CHANNEL = EVENT_CHANNEL;
|
|
9
|
+
var packageMetaData = {
|
|
10
|
+
packageName: "@atlaskit/link-datasource",
|
|
11
|
+
packageVersion: "1.0.18"
|
|
12
|
+
};
|
|
13
|
+
exports.packageMetaData = packageMetaData;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DatasourceSearchMethod = exports.DatasourceDisplay = exports.DatasourceAction = void 0;
|
|
7
|
+
var DatasourceAction = /*#__PURE__*/function (DatasourceAction) {
|
|
8
|
+
DatasourceAction["COLUMN_ADDED"] = "column added";
|
|
9
|
+
DatasourceAction["COLUMN_REMOVED"] = "column removed";
|
|
10
|
+
DatasourceAction["COLUMN_REORDERED"] = "column reordered";
|
|
11
|
+
DatasourceAction["INSTANCE_UPDATED"] = "instance updated";
|
|
12
|
+
DatasourceAction["QUERY_UPDATED"] = "query updated";
|
|
13
|
+
DatasourceAction["DISPLAY_VIEW_CHANGED"] = "display view changed";
|
|
14
|
+
DatasourceAction["NEXT_PAGE_SCROLLED"] = "next page scrolled";
|
|
15
|
+
return DatasourceAction;
|
|
16
|
+
}({});
|
|
17
|
+
exports.DatasourceAction = DatasourceAction;
|
|
18
|
+
var DatasourceDisplay = /*#__PURE__*/function (DatasourceDisplay) {
|
|
19
|
+
DatasourceDisplay["DATASOURCE_TABLE"] = "datasource_table";
|
|
20
|
+
DatasourceDisplay["DATASOURCE_INLINE"] = "datasource_inline";
|
|
21
|
+
DatasourceDisplay["INLINE"] = "inline";
|
|
22
|
+
return DatasourceDisplay;
|
|
23
|
+
}({});
|
|
24
|
+
exports.DatasourceDisplay = DatasourceDisplay;
|
|
25
|
+
var DatasourceSearchMethod = /*#__PURE__*/function (DatasourceSearchMethod) {
|
|
26
|
+
DatasourceSearchMethod["DATASOURCE_BASIC_FILTER"] = "datasource_basic_filter";
|
|
27
|
+
DatasourceSearchMethod["DATASOURCE_SEARCH_QUERY"] = "datasource_search_query";
|
|
28
|
+
return DatasourceSearchMethod;
|
|
29
|
+
}({});
|
|
30
|
+
exports.DatasourceSearchMethod = DatasourceSearchMethod;
|
|
@@ -4,14 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.mapSearchMethod = void 0;
|
|
7
|
+
var _types = require("./types");
|
|
7
8
|
var mapSearchMethod = function mapSearchMethod(searchMethod) {
|
|
8
9
|
switch (searchMethod) {
|
|
9
10
|
case 'basic':
|
|
10
|
-
return
|
|
11
|
+
return _types.DatasourceSearchMethod.DATASOURCE_BASIC_FILTER;
|
|
11
12
|
case 'jql':
|
|
12
|
-
return
|
|
13
|
+
return _types.DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY;
|
|
13
14
|
default:
|
|
14
|
-
return
|
|
15
|
+
return null;
|
|
15
16
|
}
|
|
16
17
|
};
|
|
17
18
|
exports.mapSearchMethod = mapSearchMethod;
|
|
@@ -231,7 +231,7 @@ var analyticsContextAttributes = {
|
|
|
231
231
|
};
|
|
232
232
|
var analyticsContextData = {
|
|
233
233
|
packageName: "@atlaskit/link-datasource",
|
|
234
|
-
packageVersion: "1.0.
|
|
234
|
+
packageVersion: "1.0.18",
|
|
235
235
|
source: 'datasourceConfigModal'
|
|
236
236
|
};
|
|
237
237
|
var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
|
|
@@ -9,6 +9,7 @@ var _react = require("react");
|
|
|
9
9
|
var _react2 = require("@emotion/react");
|
|
10
10
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
11
11
|
var _analytics = require("../../analytics");
|
|
12
|
+
var _constants = require("../../analytics/constants");
|
|
12
13
|
var _useDatasourceTableState = require("../../hooks/useDatasourceTableState");
|
|
13
14
|
var _accessRequired = require("../common/error-state/access-required");
|
|
14
15
|
var _loadingError = require("../common/error-state/loading-error");
|
|
@@ -108,9 +109,5 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
|
|
|
108
109
|
}))
|
|
109
110
|
);
|
|
110
111
|
};
|
|
111
|
-
var
|
|
112
|
-
packageName: "@atlaskit/link-datasource",
|
|
113
|
-
packageVersion: "1.0.17"
|
|
114
|
-
};
|
|
115
|
-
var DatasourceTableView = (0, _analyticsNext.withAnalyticsContext)(analyticsContextData)(DatasourceTableViewWithoutAnalytics);
|
|
112
|
+
var DatasourceTableView = (0, _analyticsNext.withAnalyticsContext)(_constants.packageMetaData)(DatasourceTableViewWithoutAnalytics);
|
|
116
113
|
exports.DatasourceTableView = DatasourceTableView;
|
|
@@ -5,10 +5,10 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.PlainJiraIssuesConfigModal = exports.JiraIssuesConfigModal = void 0;
|
|
8
|
+
exports.getColumnAction = exports.PlainJiraIssuesConfigModal = exports.JiraIssuesConfigModal = void 0;
|
|
9
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
13
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
14
|
var _react = require("react");
|
|
@@ -19,6 +19,9 @@ var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-
|
|
|
19
19
|
var _modalDialog = _interopRequireWildcard(require("@atlaskit/modal-dialog"));
|
|
20
20
|
var _colors = require("@atlaskit/theme/colors");
|
|
21
21
|
var _analytics = require("../../../analytics");
|
|
22
|
+
var _constants = require("../../../analytics/constants");
|
|
23
|
+
var _types = require("../../../analytics/types");
|
|
24
|
+
var _utils = require("../../../analytics/utils");
|
|
22
25
|
var _useDatasourceTableState = require("../../../hooks/useDatasourceTableState");
|
|
23
26
|
var _getAvailableJiraSites = require("../../../services/getAvailableJiraSites");
|
|
24
27
|
var _accessRequired = require("../../common/error-state/access-required");
|
|
@@ -59,6 +62,29 @@ var issueCountStyles = (0, _react2.css)({
|
|
|
59
62
|
var smartLinkContainerStyles = (0, _react2.css)({
|
|
60
63
|
paddingLeft: '1px'
|
|
61
64
|
});
|
|
65
|
+
var getDisplayValue = function getDisplayValue(currentViewMode, itemCount) {
|
|
66
|
+
if (currentViewMode === 'count') {
|
|
67
|
+
return _types.DatasourceDisplay.DATASOURCE_INLINE;
|
|
68
|
+
}
|
|
69
|
+
return itemCount > 1 ? _types.DatasourceDisplay.DATASOURCE_TABLE : _types.DatasourceDisplay.INLINE;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* This method should be called when one atomic action is performed on columns: adding new item, removing one item, changing items order.
|
|
74
|
+
* The assumption is that since only one action is changed at each time, we don't have to verify the actual contents of the lists.
|
|
75
|
+
*/
|
|
76
|
+
var getColumnAction = function getColumnAction(oldVisibleColumnKeys, newVisibleColumnKeys) {
|
|
77
|
+
var newColumnSize = newVisibleColumnKeys.length;
|
|
78
|
+
var oldColumnSize = oldVisibleColumnKeys.length;
|
|
79
|
+
if (newColumnSize > oldColumnSize) {
|
|
80
|
+
return _types.DatasourceAction.COLUMN_ADDED;
|
|
81
|
+
} else if (newColumnSize < oldColumnSize) {
|
|
82
|
+
return _types.DatasourceAction.COLUMN_REMOVED;
|
|
83
|
+
} else {
|
|
84
|
+
return _types.DatasourceAction.COLUMN_REORDERED;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
exports.getColumnAction = getColumnAction;
|
|
62
88
|
var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
63
89
|
var datasourceId = props.datasourceId,
|
|
64
90
|
initialParameters = props.parameters,
|
|
@@ -81,17 +107,22 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
81
107
|
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
82
108
|
jql = _useState8[0],
|
|
83
109
|
setJql = _useState8[1];
|
|
84
|
-
var
|
|
110
|
+
var _useState9 = (0, _react.useState)(initialVisibleColumnKeys),
|
|
111
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
112
|
+
visibleColumnKeys = _useState10[0],
|
|
113
|
+
setVisibleColumnKeys = _useState10[1];
|
|
114
|
+
|
|
115
|
+
// analytics related parameters
|
|
116
|
+
var searchCount = (0, _react.useRef)(0);
|
|
117
|
+
var userInteractionActions = (0, _react.useRef)(new Set());
|
|
118
|
+
var lastSearchMethodRef = (0, _react.useRef)(null);
|
|
85
119
|
var parameters = (0, _react.useMemo)(function () {
|
|
86
120
|
return !!cloudId ? {
|
|
87
121
|
cloudId: cloudId,
|
|
88
122
|
jql: jql || ''
|
|
89
123
|
} : undefined;
|
|
90
124
|
}, [cloudId, jql]);
|
|
91
|
-
var
|
|
92
|
-
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
93
|
-
visibleColumnKeys = _useState10[0],
|
|
94
|
-
setVisibleColumnKeys = _useState10[1];
|
|
125
|
+
var isParametersSet = !!(jql && cloudId);
|
|
95
126
|
var _useDatasourceTableSt = (0, _useDatasourceTableState.useDatasourceTableState)({
|
|
96
127
|
datasourceId: datasourceId,
|
|
97
128
|
parameters: isParametersSet ? parameters : undefined,
|
|
@@ -105,8 +136,10 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
105
136
|
columns = _useDatasourceTableSt.columns,
|
|
106
137
|
defaultVisibleColumnKeys = _useDatasourceTableSt.defaultVisibleColumnKeys,
|
|
107
138
|
loadDatasourceDetails = _useDatasourceTableSt.loadDatasourceDetails,
|
|
108
|
-
totalCount = _useDatasourceTableSt.totalCount
|
|
109
|
-
|
|
139
|
+
totalCount = _useDatasourceTableSt.totalCount,
|
|
140
|
+
_useDatasourceTableSt2 = _useDatasourceTableSt.extensionKey,
|
|
141
|
+
extensionKey = _useDatasourceTableSt2 === void 0 ? null : _useDatasourceTableSt2,
|
|
142
|
+
destinationObjectTypes = _useDatasourceTableSt.destinationObjectTypes;
|
|
110
143
|
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
111
144
|
formatMessage = _useIntl.formatMessage;
|
|
112
145
|
var _useDatasourceAnalyti = (0, _analytics.useDatasourceAnalyticsEvents)(),
|
|
@@ -116,6 +149,13 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
116
149
|
return jiraSite.cloudId === cloudId;
|
|
117
150
|
}) || availableSites[0];
|
|
118
151
|
}, [availableSites, cloudId]);
|
|
152
|
+
var buttonClickedAnalyticsPayload = (0, _react.useMemo)(function () {
|
|
153
|
+
return {
|
|
154
|
+
extensionKey: extensionKey,
|
|
155
|
+
destinationObjectTypes: destinationObjectTypes,
|
|
156
|
+
actions: userInteractionActions.current
|
|
157
|
+
};
|
|
158
|
+
}, [destinationObjectTypes, extensionKey]);
|
|
119
159
|
var resolvedWithNoResults = status === 'resolved' && !responseItems.length;
|
|
120
160
|
var jqlUrl = selectedJiraSite && jql && "".concat(selectedJiraSite.url, "/issues/?jql=").concat(encodeURI(jql));
|
|
121
161
|
var isInsertDisabled = !isParametersSet || status === 'rejected' || status === 'unauthorized' || status === 'loading' || resolvedWithNoResults;
|
|
@@ -160,13 +200,28 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
160
200
|
}
|
|
161
201
|
}, [cloudId, selectedJiraSite]);
|
|
162
202
|
var onSearch = (0, _react.useCallback)(function (newParameters, searchMethod) {
|
|
203
|
+
searchCount.current++;
|
|
163
204
|
lastSearchMethodRef.current = searchMethod;
|
|
205
|
+
if (jql !== newParameters.jql) {
|
|
206
|
+
userInteractionActions.current.add(_types.DatasourceAction.QUERY_UPDATED);
|
|
207
|
+
}
|
|
164
208
|
setJql(newParameters.jql);
|
|
165
209
|
reset({
|
|
166
210
|
shouldForceRequest: true
|
|
167
211
|
});
|
|
168
|
-
}, [reset]);
|
|
212
|
+
}, [jql, reset]);
|
|
213
|
+
var onCancelClick = (0, _react.useCallback)(function (e, analyticEvent) {
|
|
214
|
+
analyticEvent.update({
|
|
215
|
+
eventType: 'ui',
|
|
216
|
+
actionSubjectId: 'cancel',
|
|
217
|
+
attributes: _objectSpread(_objectSpread({}, buttonClickedAnalyticsPayload), {}, {
|
|
218
|
+
searchCount: searchCount.current
|
|
219
|
+
})
|
|
220
|
+
}).fire(_analytics.EVENT_CHANNEL);
|
|
221
|
+
onCancel();
|
|
222
|
+
}, [buttonClickedAnalyticsPayload, onCancel]);
|
|
169
223
|
var onSiteSelection = (0, _react.useCallback)(function (site) {
|
|
224
|
+
userInteractionActions.current.add(_types.DatasourceAction.INSTANCE_UPDATED);
|
|
170
225
|
setCloudId(site.cloudId);
|
|
171
226
|
reset({
|
|
172
227
|
shouldForceRequest: true
|
|
@@ -176,13 +231,25 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
176
231
|
var _data$key, _data$key$data;
|
|
177
232
|
var _responseItems = (0, _slicedToArray2.default)(responseItems, 1),
|
|
178
233
|
data = _responseItems[0];
|
|
179
|
-
//
|
|
234
|
+
// agreement with BE that we will use `key` for rendering smartlink
|
|
180
235
|
return data === null || data === void 0 ? void 0 : (_data$key = data.key) === null || _data$key === void 0 ? void 0 : (_data$key$data = _data$key.data) === null || _data$key$data === void 0 ? void 0 : _data$key$data.url;
|
|
181
236
|
}, [responseItems]);
|
|
182
|
-
var onInsertPressed = (0, _react.useCallback)(function () {
|
|
237
|
+
var onInsertPressed = (0, _react.useCallback)(function (e, analyticEvent) {
|
|
183
238
|
if (!isParametersSet || !jql || !selectedJiraSite) {
|
|
184
239
|
return;
|
|
185
240
|
}
|
|
241
|
+
var insertButtonClickedEvent = analyticEvent.update({
|
|
242
|
+
actionSubjectId: 'insert',
|
|
243
|
+
attributes: _objectSpread(_objectSpread({}, buttonClickedAnalyticsPayload), {}, {
|
|
244
|
+
totalItemCount: totalCount || 0,
|
|
245
|
+
displayedColumnCount: (visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0,
|
|
246
|
+
display: getDisplayValue(currentViewMode, totalCount || 0),
|
|
247
|
+
searchCount: searchCount.current,
|
|
248
|
+
searchMethod: (0, _utils.mapSearchMethod)(lastSearchMethodRef.current)
|
|
249
|
+
}),
|
|
250
|
+
eventType: 'ui'
|
|
251
|
+
});
|
|
252
|
+
insertButtonClickedEvent.fire(_analytics.EVENT_CHANNEL);
|
|
186
253
|
var firstIssueUrl = retrieveUrlForSmartCardRender();
|
|
187
254
|
if (currentViewMode === 'count') {
|
|
188
255
|
onInsert({
|
|
@@ -224,10 +291,21 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
224
291
|
}
|
|
225
292
|
});
|
|
226
293
|
}
|
|
227
|
-
}, [isParametersSet, jql,
|
|
294
|
+
}, [isParametersSet, jql, selectedJiraSite, buttonClickedAnalyticsPayload, totalCount, visibleColumnKeys, currentViewMode, retrieveUrlForSmartCardRender, responseItems.length, onInsert, jqlUrl, datasourceId, cloudId]);
|
|
228
295
|
var handleViewModeChange = function handleViewModeChange(selectedMode) {
|
|
296
|
+
userInteractionActions.current.add(_types.DatasourceAction.DISPLAY_VIEW_CHANGED);
|
|
229
297
|
setCurrentViewMode(selectedMode);
|
|
230
298
|
};
|
|
299
|
+
var handleOnNextPage = (0, _react.useCallback)(function () {
|
|
300
|
+
userInteractionActions.current.add(_types.DatasourceAction.NEXT_PAGE_SCROLLED);
|
|
301
|
+
onNextPage();
|
|
302
|
+
}, [onNextPage]);
|
|
303
|
+
var handleVisibleColumnKeysChange = (0, _react.useCallback)(function () {
|
|
304
|
+
var newVisibleColumnKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
305
|
+
var columnAction = getColumnAction(visibleColumnKeys || [], newVisibleColumnKeys);
|
|
306
|
+
userInteractionActions.current.add(columnAction);
|
|
307
|
+
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
308
|
+
}, [visibleColumnKeys]);
|
|
231
309
|
var issueLikeDataTableView = (0, _react.useMemo)(function () {
|
|
232
310
|
return (0, _react2.jsx)("div", {
|
|
233
311
|
css: contentContainerStyles
|
|
@@ -238,11 +316,11 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
238
316
|
items: responseItems,
|
|
239
317
|
hasNextPage: hasNextPage,
|
|
240
318
|
visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
|
|
241
|
-
onNextPage:
|
|
319
|
+
onNextPage: handleOnNextPage,
|
|
242
320
|
onLoadDatasourceDetails: loadDatasourceDetails,
|
|
243
|
-
onVisibleColumnKeysChange:
|
|
321
|
+
onVisibleColumnKeysChange: handleVisibleColumnKeysChange
|
|
244
322
|
}));
|
|
245
|
-
}, [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails,
|
|
323
|
+
}, [columns, defaultVisibleColumnKeys, hasNextPage, handleVisibleColumnKeysChange, loadDatasourceDetails, handleOnNextPage, responseItems, status, visibleColumnKeys]);
|
|
246
324
|
var renderCountModeContent = (0, _react.useCallback)(function () {
|
|
247
325
|
var url = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
248
326
|
if (status === 'unauthorized') {
|
|
@@ -336,7 +414,7 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
|
336
414
|
}
|
|
337
415
|
}))), (0, _react2.jsx)(_standardButton.default, {
|
|
338
416
|
appearance: "default",
|
|
339
|
-
onClick:
|
|
417
|
+
onClick: onCancelClick
|
|
340
418
|
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.modalMessages.cancelButtonText)), (0, _react2.jsx)(_standardButton.default, {
|
|
341
419
|
appearance: "primary",
|
|
342
420
|
onClick: onInsertPressed,
|
|
@@ -348,11 +426,9 @@ exports.PlainJiraIssuesConfigModal = PlainJiraIssuesConfigModal;
|
|
|
348
426
|
var analyticsContextAttributes = {
|
|
349
427
|
dataProvider: 'jira-issues'
|
|
350
428
|
};
|
|
351
|
-
var analyticsContextData = {
|
|
352
|
-
packageName: "@atlaskit/link-datasource",
|
|
353
|
-
packageVersion: "1.0.17",
|
|
429
|
+
var analyticsContextData = _objectSpread(_objectSpread({}, _constants.packageMetaData), {}, {
|
|
354
430
|
source: 'datasourceConfigModal'
|
|
355
|
-
};
|
|
431
|
+
});
|
|
356
432
|
var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
|
|
357
433
|
attributes: _objectSpread({}, analyticsContextAttributes)
|
|
358
434
|
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export let DatasourceAction = /*#__PURE__*/function (DatasourceAction) {
|
|
2
|
+
DatasourceAction["COLUMN_ADDED"] = "column added";
|
|
3
|
+
DatasourceAction["COLUMN_REMOVED"] = "column removed";
|
|
4
|
+
DatasourceAction["COLUMN_REORDERED"] = "column reordered";
|
|
5
|
+
DatasourceAction["INSTANCE_UPDATED"] = "instance updated";
|
|
6
|
+
DatasourceAction["QUERY_UPDATED"] = "query updated";
|
|
7
|
+
DatasourceAction["DISPLAY_VIEW_CHANGED"] = "display view changed";
|
|
8
|
+
DatasourceAction["NEXT_PAGE_SCROLLED"] = "next page scrolled";
|
|
9
|
+
return DatasourceAction;
|
|
10
|
+
}({});
|
|
11
|
+
export let DatasourceDisplay = /*#__PURE__*/function (DatasourceDisplay) {
|
|
12
|
+
DatasourceDisplay["DATASOURCE_TABLE"] = "datasource_table";
|
|
13
|
+
DatasourceDisplay["DATASOURCE_INLINE"] = "datasource_inline";
|
|
14
|
+
DatasourceDisplay["INLINE"] = "inline";
|
|
15
|
+
return DatasourceDisplay;
|
|
16
|
+
}({});
|
|
17
|
+
export let DatasourceSearchMethod = /*#__PURE__*/function (DatasourceSearchMethod) {
|
|
18
|
+
DatasourceSearchMethod["DATASOURCE_BASIC_FILTER"] = "datasource_basic_filter";
|
|
19
|
+
DatasourceSearchMethod["DATASOURCE_SEARCH_QUERY"] = "datasource_search_query";
|
|
20
|
+
return DatasourceSearchMethod;
|
|
21
|
+
}({});
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { DatasourceSearchMethod } from './types';
|
|
1
2
|
export const mapSearchMethod = searchMethod => {
|
|
2
3
|
switch (searchMethod) {
|
|
3
4
|
case 'basic':
|
|
4
|
-
return
|
|
5
|
+
return DatasourceSearchMethod.DATASOURCE_BASIC_FILTER;
|
|
5
6
|
case 'jql':
|
|
6
|
-
return
|
|
7
|
+
return DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY;
|
|
7
8
|
default:
|
|
8
|
-
return
|
|
9
|
+
return null;
|
|
9
10
|
}
|
|
10
11
|
};
|
|
@@ -205,7 +205,7 @@ const analyticsContextAttributes = {
|
|
|
205
205
|
};
|
|
206
206
|
const analyticsContextData = {
|
|
207
207
|
packageName: "@atlaskit/link-datasource",
|
|
208
|
-
packageVersion: "1.0.
|
|
208
|
+
packageVersion: "1.0.18",
|
|
209
209
|
source: 'datasourceConfigModal'
|
|
210
210
|
};
|
|
211
211
|
const contextData = {
|
|
@@ -3,6 +3,7 @@ import { useCallback, useEffect, useRef } from 'react';
|
|
|
3
3
|
import { jsx } from '@emotion/react';
|
|
4
4
|
import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
5
5
|
import { useDatasourceAnalyticsEvents } from '../../analytics';
|
|
6
|
+
import { packageMetaData } from '../../analytics/constants';
|
|
6
7
|
import { useDatasourceTableState } from '../../hooks/useDatasourceTableState';
|
|
7
8
|
import { AccessRequired } from '../common/error-state/access-required';
|
|
8
9
|
import { LoadingError } from '../common/error-state/loading-error';
|
|
@@ -102,8 +103,4 @@ const DatasourceTableViewWithoutAnalytics = ({
|
|
|
102
103
|
}))
|
|
103
104
|
);
|
|
104
105
|
};
|
|
105
|
-
const
|
|
106
|
-
packageName: "@atlaskit/link-datasource",
|
|
107
|
-
packageVersion: "1.0.17"
|
|
108
|
-
};
|
|
109
|
-
export const DatasourceTableView = withAnalyticsContext(analyticsContextData)(DatasourceTableViewWithoutAnalytics);
|
|
106
|
+
export const DatasourceTableView = withAnalyticsContext(packageMetaData)(DatasourceTableViewWithoutAnalytics);
|
|
@@ -7,7 +7,10 @@ import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
|
7
7
|
import Button from '@atlaskit/button/standard-button';
|
|
8
8
|
import Modal, { ModalBody, ModalFooter, ModalHeader, ModalTitle, ModalTransition } from '@atlaskit/modal-dialog';
|
|
9
9
|
import { B400, N0, N40, N800 } from '@atlaskit/theme/colors';
|
|
10
|
-
import { useDatasourceAnalyticsEvents } from '../../../analytics';
|
|
10
|
+
import { EVENT_CHANNEL, useDatasourceAnalyticsEvents } from '../../../analytics';
|
|
11
|
+
import { packageMetaData } from '../../../analytics/constants';
|
|
12
|
+
import { DatasourceAction, DatasourceDisplay } from '../../../analytics/types';
|
|
13
|
+
import { mapSearchMethod } from '../../../analytics/utils';
|
|
11
14
|
import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
|
|
12
15
|
import { getAvailableJiraSites } from '../../../services/getAvailableJiraSites';
|
|
13
16
|
import { AccessRequired } from '../../common/error-state/access-required';
|
|
@@ -15,7 +18,7 @@ import { ModalLoadingError } from '../../common/error-state/modal-loading-error'
|
|
|
15
18
|
import { NoResults } from '../../common/error-state/no-results';
|
|
16
19
|
import { EmptyState, IssueLikeDataTableView } from '../../issue-like-table';
|
|
17
20
|
import LinkRenderType from '../../issue-like-table/render-type/link';
|
|
18
|
-
import {
|
|
21
|
+
import { JiraSearchContainer } from '../jira-search-container';
|
|
19
22
|
import { ModeSwitcher } from '../mode-switcher';
|
|
20
23
|
import { JiraSiteSelector } from '../site-selector';
|
|
21
24
|
import { modalMessages } from './messages';
|
|
@@ -44,6 +47,28 @@ const issueCountStyles = css({
|
|
|
44
47
|
const smartLinkContainerStyles = css({
|
|
45
48
|
paddingLeft: '1px'
|
|
46
49
|
});
|
|
50
|
+
const getDisplayValue = (currentViewMode, itemCount) => {
|
|
51
|
+
if (currentViewMode === 'count') {
|
|
52
|
+
return DatasourceDisplay.DATASOURCE_INLINE;
|
|
53
|
+
}
|
|
54
|
+
return itemCount > 1 ? DatasourceDisplay.DATASOURCE_TABLE : DatasourceDisplay.INLINE;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* This method should be called when one atomic action is performed on columns: adding new item, removing one item, changing items order.
|
|
59
|
+
* The assumption is that since only one action is changed at each time, we don't have to verify the actual contents of the lists.
|
|
60
|
+
*/
|
|
61
|
+
export const getColumnAction = (oldVisibleColumnKeys, newVisibleColumnKeys) => {
|
|
62
|
+
const newColumnSize = newVisibleColumnKeys.length;
|
|
63
|
+
const oldColumnSize = oldVisibleColumnKeys.length;
|
|
64
|
+
if (newColumnSize > oldColumnSize) {
|
|
65
|
+
return DatasourceAction.COLUMN_ADDED;
|
|
66
|
+
} else if (newColumnSize < oldColumnSize) {
|
|
67
|
+
return DatasourceAction.COLUMN_REMOVED;
|
|
68
|
+
} else {
|
|
69
|
+
return DatasourceAction.COLUMN_REORDERED;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
47
72
|
export const PlainJiraIssuesConfigModal = props => {
|
|
48
73
|
const {
|
|
49
74
|
datasourceId,
|
|
@@ -56,12 +81,17 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
56
81
|
const [currentViewMode, setCurrentViewMode] = useState('issue');
|
|
57
82
|
const [cloudId, setCloudId] = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.cloudId);
|
|
58
83
|
const [jql, setJql] = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.jql);
|
|
59
|
-
const
|
|
84
|
+
const [visibleColumnKeys, setVisibleColumnKeys] = useState(initialVisibleColumnKeys);
|
|
85
|
+
|
|
86
|
+
// analytics related parameters
|
|
87
|
+
const searchCount = useRef(0);
|
|
88
|
+
const userInteractionActions = useRef(new Set());
|
|
89
|
+
const lastSearchMethodRef = useRef(null);
|
|
60
90
|
const parameters = useMemo(() => !!cloudId ? {
|
|
61
91
|
cloudId,
|
|
62
92
|
jql: jql || ''
|
|
63
93
|
} : undefined, [cloudId, jql]);
|
|
64
|
-
const
|
|
94
|
+
const isParametersSet = !!(jql && cloudId);
|
|
65
95
|
const {
|
|
66
96
|
reset,
|
|
67
97
|
status,
|
|
@@ -71,13 +101,14 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
71
101
|
columns,
|
|
72
102
|
defaultVisibleColumnKeys,
|
|
73
103
|
loadDatasourceDetails,
|
|
74
|
-
totalCount
|
|
104
|
+
totalCount,
|
|
105
|
+
extensionKey = null,
|
|
106
|
+
destinationObjectTypes
|
|
75
107
|
} = useDatasourceTableState({
|
|
76
108
|
datasourceId,
|
|
77
109
|
parameters: isParametersSet ? parameters : undefined,
|
|
78
110
|
fieldKeys: visibleColumnKeys
|
|
79
111
|
});
|
|
80
|
-
const lastSearchMethodRef = useRef(getInitialSearchMethod(parameters === null || parameters === void 0 ? void 0 : parameters.jql));
|
|
81
112
|
const {
|
|
82
113
|
formatMessage
|
|
83
114
|
} = useIntl();
|
|
@@ -85,6 +116,13 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
85
116
|
fireEvent
|
|
86
117
|
} = useDatasourceAnalyticsEvents();
|
|
87
118
|
const selectedJiraSite = useMemo(() => availableSites.find(jiraSite => jiraSite.cloudId === cloudId) || availableSites[0], [availableSites, cloudId]);
|
|
119
|
+
const buttonClickedAnalyticsPayload = useMemo(() => {
|
|
120
|
+
return {
|
|
121
|
+
extensionKey: extensionKey,
|
|
122
|
+
destinationObjectTypes: destinationObjectTypes,
|
|
123
|
+
actions: userInteractionActions.current
|
|
124
|
+
};
|
|
125
|
+
}, [destinationObjectTypes, extensionKey]);
|
|
88
126
|
const resolvedWithNoResults = status === 'resolved' && !responseItems.length;
|
|
89
127
|
const jqlUrl = selectedJiraSite && jql && `${selectedJiraSite.url}/issues/?jql=${encodeURI(jql)}`;
|
|
90
128
|
const isInsertDisabled = !isParametersSet || status === 'rejected' || status === 'unauthorized' || status === 'loading' || resolvedWithNoResults;
|
|
@@ -112,13 +150,29 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
112
150
|
}
|
|
113
151
|
}, [cloudId, selectedJiraSite]);
|
|
114
152
|
const onSearch = useCallback((newParameters, searchMethod) => {
|
|
153
|
+
searchCount.current++;
|
|
115
154
|
lastSearchMethodRef.current = searchMethod;
|
|
155
|
+
if (jql !== newParameters.jql) {
|
|
156
|
+
userInteractionActions.current.add(DatasourceAction.QUERY_UPDATED);
|
|
157
|
+
}
|
|
116
158
|
setJql(newParameters.jql);
|
|
117
159
|
reset({
|
|
118
160
|
shouldForceRequest: true
|
|
119
161
|
});
|
|
120
|
-
}, [reset]);
|
|
162
|
+
}, [jql, reset]);
|
|
163
|
+
const onCancelClick = useCallback((e, analyticEvent) => {
|
|
164
|
+
analyticEvent.update({
|
|
165
|
+
eventType: 'ui',
|
|
166
|
+
actionSubjectId: 'cancel',
|
|
167
|
+
attributes: {
|
|
168
|
+
...buttonClickedAnalyticsPayload,
|
|
169
|
+
searchCount: searchCount.current
|
|
170
|
+
}
|
|
171
|
+
}).fire(EVENT_CHANNEL);
|
|
172
|
+
onCancel();
|
|
173
|
+
}, [buttonClickedAnalyticsPayload, onCancel]);
|
|
121
174
|
const onSiteSelection = useCallback(site => {
|
|
175
|
+
userInteractionActions.current.add(DatasourceAction.INSTANCE_UPDATED);
|
|
122
176
|
setCloudId(site.cloudId);
|
|
123
177
|
reset({
|
|
124
178
|
shouldForceRequest: true
|
|
@@ -127,13 +181,26 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
127
181
|
const retrieveUrlForSmartCardRender = useCallback(() => {
|
|
128
182
|
var _data$key, _data$key$data;
|
|
129
183
|
const [data] = responseItems;
|
|
130
|
-
//
|
|
184
|
+
// agreement with BE that we will use `key` for rendering smartlink
|
|
131
185
|
return data === null || data === void 0 ? void 0 : (_data$key = data.key) === null || _data$key === void 0 ? void 0 : (_data$key$data = _data$key.data) === null || _data$key$data === void 0 ? void 0 : _data$key$data.url;
|
|
132
186
|
}, [responseItems]);
|
|
133
|
-
const onInsertPressed = useCallback(() => {
|
|
187
|
+
const onInsertPressed = useCallback((e, analyticEvent) => {
|
|
134
188
|
if (!isParametersSet || !jql || !selectedJiraSite) {
|
|
135
189
|
return;
|
|
136
190
|
}
|
|
191
|
+
const insertButtonClickedEvent = analyticEvent.update({
|
|
192
|
+
actionSubjectId: 'insert',
|
|
193
|
+
attributes: {
|
|
194
|
+
...buttonClickedAnalyticsPayload,
|
|
195
|
+
totalItemCount: totalCount || 0,
|
|
196
|
+
displayedColumnCount: (visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0,
|
|
197
|
+
display: getDisplayValue(currentViewMode, totalCount || 0),
|
|
198
|
+
searchCount: searchCount.current,
|
|
199
|
+
searchMethod: mapSearchMethod(lastSearchMethodRef.current)
|
|
200
|
+
},
|
|
201
|
+
eventType: 'ui'
|
|
202
|
+
});
|
|
203
|
+
insertButtonClickedEvent.fire(EVENT_CHANNEL);
|
|
137
204
|
const firstIssueUrl = retrieveUrlForSmartCardRender();
|
|
138
205
|
if (currentViewMode === 'count') {
|
|
139
206
|
onInsert({
|
|
@@ -173,10 +240,20 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
173
240
|
}
|
|
174
241
|
});
|
|
175
242
|
}
|
|
176
|
-
}, [isParametersSet, jql,
|
|
243
|
+
}, [isParametersSet, jql, selectedJiraSite, buttonClickedAnalyticsPayload, totalCount, visibleColumnKeys, currentViewMode, retrieveUrlForSmartCardRender, responseItems.length, onInsert, jqlUrl, datasourceId, cloudId]);
|
|
177
244
|
const handleViewModeChange = selectedMode => {
|
|
245
|
+
userInteractionActions.current.add(DatasourceAction.DISPLAY_VIEW_CHANGED);
|
|
178
246
|
setCurrentViewMode(selectedMode);
|
|
179
247
|
};
|
|
248
|
+
const handleOnNextPage = useCallback(() => {
|
|
249
|
+
userInteractionActions.current.add(DatasourceAction.NEXT_PAGE_SCROLLED);
|
|
250
|
+
onNextPage();
|
|
251
|
+
}, [onNextPage]);
|
|
252
|
+
const handleVisibleColumnKeysChange = useCallback((newVisibleColumnKeys = []) => {
|
|
253
|
+
const columnAction = getColumnAction(visibleColumnKeys || [], newVisibleColumnKeys);
|
|
254
|
+
userInteractionActions.current.add(columnAction);
|
|
255
|
+
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
256
|
+
}, [visibleColumnKeys]);
|
|
180
257
|
const issueLikeDataTableView = useMemo(() => jsx("div", {
|
|
181
258
|
css: contentContainerStyles
|
|
182
259
|
}, jsx(IssueLikeDataTableView, {
|
|
@@ -186,10 +263,10 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
186
263
|
items: responseItems,
|
|
187
264
|
hasNextPage: hasNextPage,
|
|
188
265
|
visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
|
|
189
|
-
onNextPage:
|
|
266
|
+
onNextPage: handleOnNextPage,
|
|
190
267
|
onLoadDatasourceDetails: loadDatasourceDetails,
|
|
191
|
-
onVisibleColumnKeysChange:
|
|
192
|
-
})), [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails,
|
|
268
|
+
onVisibleColumnKeysChange: handleVisibleColumnKeysChange
|
|
269
|
+
})), [columns, defaultVisibleColumnKeys, hasNextPage, handleVisibleColumnKeysChange, loadDatasourceDetails, handleOnNextPage, responseItems, status, visibleColumnKeys]);
|
|
193
270
|
const renderCountModeContent = useCallback(() => {
|
|
194
271
|
const url = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
195
272
|
if (status === 'unauthorized') {
|
|
@@ -283,7 +360,7 @@ export const PlainJiraIssuesConfigModal = props => {
|
|
|
283
360
|
}
|
|
284
361
|
}))), jsx(Button, {
|
|
285
362
|
appearance: "default",
|
|
286
|
-
onClick:
|
|
363
|
+
onClick: onCancelClick
|
|
287
364
|
}, jsx(FormattedMessage, modalMessages.cancelButtonText)), jsx(Button, {
|
|
288
365
|
appearance: "primary",
|
|
289
366
|
onClick: onInsertPressed,
|
|
@@ -295,8 +372,7 @@ const analyticsContextAttributes = {
|
|
|
295
372
|
dataProvider: 'jira-issues'
|
|
296
373
|
};
|
|
297
374
|
const analyticsContextData = {
|
|
298
|
-
|
|
299
|
-
packageVersion: "1.0.17",
|
|
375
|
+
...packageMetaData,
|
|
300
376
|
source: 'datasourceConfigModal'
|
|
301
377
|
};
|
|
302
378
|
const contextData = {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export var DatasourceAction = /*#__PURE__*/function (DatasourceAction) {
|
|
2
|
+
DatasourceAction["COLUMN_ADDED"] = "column added";
|
|
3
|
+
DatasourceAction["COLUMN_REMOVED"] = "column removed";
|
|
4
|
+
DatasourceAction["COLUMN_REORDERED"] = "column reordered";
|
|
5
|
+
DatasourceAction["INSTANCE_UPDATED"] = "instance updated";
|
|
6
|
+
DatasourceAction["QUERY_UPDATED"] = "query updated";
|
|
7
|
+
DatasourceAction["DISPLAY_VIEW_CHANGED"] = "display view changed";
|
|
8
|
+
DatasourceAction["NEXT_PAGE_SCROLLED"] = "next page scrolled";
|
|
9
|
+
return DatasourceAction;
|
|
10
|
+
}({});
|
|
11
|
+
export var DatasourceDisplay = /*#__PURE__*/function (DatasourceDisplay) {
|
|
12
|
+
DatasourceDisplay["DATASOURCE_TABLE"] = "datasource_table";
|
|
13
|
+
DatasourceDisplay["DATASOURCE_INLINE"] = "datasource_inline";
|
|
14
|
+
DatasourceDisplay["INLINE"] = "inline";
|
|
15
|
+
return DatasourceDisplay;
|
|
16
|
+
}({});
|
|
17
|
+
export var DatasourceSearchMethod = /*#__PURE__*/function (DatasourceSearchMethod) {
|
|
18
|
+
DatasourceSearchMethod["DATASOURCE_BASIC_FILTER"] = "datasource_basic_filter";
|
|
19
|
+
DatasourceSearchMethod["DATASOURCE_SEARCH_QUERY"] = "datasource_search_query";
|
|
20
|
+
return DatasourceSearchMethod;
|
|
21
|
+
}({});
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { DatasourceSearchMethod } from './types';
|
|
1
2
|
export var mapSearchMethod = function mapSearchMethod(searchMethod) {
|
|
2
3
|
switch (searchMethod) {
|
|
3
4
|
case 'basic':
|
|
4
|
-
return
|
|
5
|
+
return DatasourceSearchMethod.DATASOURCE_BASIC_FILTER;
|
|
5
6
|
case 'jql':
|
|
6
|
-
return
|
|
7
|
+
return DatasourceSearchMethod.DATASOURCE_SEARCH_QUERY;
|
|
7
8
|
default:
|
|
8
|
-
return
|
|
9
|
+
return null;
|
|
9
10
|
}
|
|
10
11
|
};
|
|
@@ -222,7 +222,7 @@ var analyticsContextAttributes = {
|
|
|
222
222
|
};
|
|
223
223
|
var analyticsContextData = {
|
|
224
224
|
packageName: "@atlaskit/link-datasource",
|
|
225
|
-
packageVersion: "1.0.
|
|
225
|
+
packageVersion: "1.0.18",
|
|
226
226
|
source: 'datasourceConfigModal'
|
|
227
227
|
};
|
|
228
228
|
var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
|
|
@@ -3,6 +3,7 @@ import { useCallback, useEffect, useRef } from 'react';
|
|
|
3
3
|
import { jsx } from '@emotion/react';
|
|
4
4
|
import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
5
5
|
import { useDatasourceAnalyticsEvents } from '../../analytics';
|
|
6
|
+
import { packageMetaData } from '../../analytics/constants';
|
|
6
7
|
import { useDatasourceTableState } from '../../hooks/useDatasourceTableState';
|
|
7
8
|
import { AccessRequired } from '../common/error-state/access-required';
|
|
8
9
|
import { LoadingError } from '../common/error-state/loading-error';
|
|
@@ -100,8 +101,4 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
|
|
|
100
101
|
}))
|
|
101
102
|
);
|
|
102
103
|
};
|
|
103
|
-
var
|
|
104
|
-
packageName: "@atlaskit/link-datasource",
|
|
105
|
-
packageVersion: "1.0.17"
|
|
106
|
-
};
|
|
107
|
-
export var DatasourceTableView = withAnalyticsContext(analyticsContextData)(DatasourceTableViewWithoutAnalytics);
|
|
104
|
+
export var DatasourceTableView = withAnalyticsContext(packageMetaData)(DatasourceTableViewWithoutAnalytics);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
3
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
4
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
5
5
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -13,7 +13,10 @@ import { withAnalyticsContext } from '@atlaskit/analytics-next';
|
|
|
13
13
|
import Button from '@atlaskit/button/standard-button';
|
|
14
14
|
import Modal, { ModalBody, ModalFooter, ModalHeader, ModalTitle, ModalTransition } from '@atlaskit/modal-dialog';
|
|
15
15
|
import { B400, N0, N40, N800 } from '@atlaskit/theme/colors';
|
|
16
|
-
import { useDatasourceAnalyticsEvents } from '../../../analytics';
|
|
16
|
+
import { EVENT_CHANNEL, useDatasourceAnalyticsEvents } from '../../../analytics';
|
|
17
|
+
import { packageMetaData } from '../../../analytics/constants';
|
|
18
|
+
import { DatasourceAction, DatasourceDisplay } from '../../../analytics/types';
|
|
19
|
+
import { mapSearchMethod } from '../../../analytics/utils';
|
|
17
20
|
import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
|
|
18
21
|
import { getAvailableJiraSites } from '../../../services/getAvailableJiraSites';
|
|
19
22
|
import { AccessRequired } from '../../common/error-state/access-required';
|
|
@@ -21,7 +24,7 @@ import { ModalLoadingError } from '../../common/error-state/modal-loading-error'
|
|
|
21
24
|
import { NoResults } from '../../common/error-state/no-results';
|
|
22
25
|
import { EmptyState, IssueLikeDataTableView } from '../../issue-like-table';
|
|
23
26
|
import LinkRenderType from '../../issue-like-table/render-type/link';
|
|
24
|
-
import {
|
|
27
|
+
import { JiraSearchContainer } from '../jira-search-container';
|
|
25
28
|
import { ModeSwitcher } from '../mode-switcher';
|
|
26
29
|
import { JiraSiteSelector } from '../site-selector';
|
|
27
30
|
import { modalMessages } from './messages';
|
|
@@ -50,6 +53,28 @@ var issueCountStyles = css({
|
|
|
50
53
|
var smartLinkContainerStyles = css({
|
|
51
54
|
paddingLeft: '1px'
|
|
52
55
|
});
|
|
56
|
+
var getDisplayValue = function getDisplayValue(currentViewMode, itemCount) {
|
|
57
|
+
if (currentViewMode === 'count') {
|
|
58
|
+
return DatasourceDisplay.DATASOURCE_INLINE;
|
|
59
|
+
}
|
|
60
|
+
return itemCount > 1 ? DatasourceDisplay.DATASOURCE_TABLE : DatasourceDisplay.INLINE;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* This method should be called when one atomic action is performed on columns: adding new item, removing one item, changing items order.
|
|
65
|
+
* The assumption is that since only one action is changed at each time, we don't have to verify the actual contents of the lists.
|
|
66
|
+
*/
|
|
67
|
+
export var getColumnAction = function getColumnAction(oldVisibleColumnKeys, newVisibleColumnKeys) {
|
|
68
|
+
var newColumnSize = newVisibleColumnKeys.length;
|
|
69
|
+
var oldColumnSize = oldVisibleColumnKeys.length;
|
|
70
|
+
if (newColumnSize > oldColumnSize) {
|
|
71
|
+
return DatasourceAction.COLUMN_ADDED;
|
|
72
|
+
} else if (newColumnSize < oldColumnSize) {
|
|
73
|
+
return DatasourceAction.COLUMN_REMOVED;
|
|
74
|
+
} else {
|
|
75
|
+
return DatasourceAction.COLUMN_REORDERED;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
53
78
|
export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
|
|
54
79
|
var datasourceId = props.datasourceId,
|
|
55
80
|
initialParameters = props.parameters,
|
|
@@ -72,17 +97,22 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
72
97
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
73
98
|
jql = _useState8[0],
|
|
74
99
|
setJql = _useState8[1];
|
|
75
|
-
var
|
|
100
|
+
var _useState9 = useState(initialVisibleColumnKeys),
|
|
101
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
102
|
+
visibleColumnKeys = _useState10[0],
|
|
103
|
+
setVisibleColumnKeys = _useState10[1];
|
|
104
|
+
|
|
105
|
+
// analytics related parameters
|
|
106
|
+
var searchCount = useRef(0);
|
|
107
|
+
var userInteractionActions = useRef(new Set());
|
|
108
|
+
var lastSearchMethodRef = useRef(null);
|
|
76
109
|
var parameters = useMemo(function () {
|
|
77
110
|
return !!cloudId ? {
|
|
78
111
|
cloudId: cloudId,
|
|
79
112
|
jql: jql || ''
|
|
80
113
|
} : undefined;
|
|
81
114
|
}, [cloudId, jql]);
|
|
82
|
-
var
|
|
83
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
84
|
-
visibleColumnKeys = _useState10[0],
|
|
85
|
-
setVisibleColumnKeys = _useState10[1];
|
|
115
|
+
var isParametersSet = !!(jql && cloudId);
|
|
86
116
|
var _useDatasourceTableSt = useDatasourceTableState({
|
|
87
117
|
datasourceId: datasourceId,
|
|
88
118
|
parameters: isParametersSet ? parameters : undefined,
|
|
@@ -96,8 +126,10 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
96
126
|
columns = _useDatasourceTableSt.columns,
|
|
97
127
|
defaultVisibleColumnKeys = _useDatasourceTableSt.defaultVisibleColumnKeys,
|
|
98
128
|
loadDatasourceDetails = _useDatasourceTableSt.loadDatasourceDetails,
|
|
99
|
-
totalCount = _useDatasourceTableSt.totalCount
|
|
100
|
-
|
|
129
|
+
totalCount = _useDatasourceTableSt.totalCount,
|
|
130
|
+
_useDatasourceTableSt2 = _useDatasourceTableSt.extensionKey,
|
|
131
|
+
extensionKey = _useDatasourceTableSt2 === void 0 ? null : _useDatasourceTableSt2,
|
|
132
|
+
destinationObjectTypes = _useDatasourceTableSt.destinationObjectTypes;
|
|
101
133
|
var _useIntl = useIntl(),
|
|
102
134
|
formatMessage = _useIntl.formatMessage;
|
|
103
135
|
var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
|
|
@@ -107,6 +139,13 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
107
139
|
return jiraSite.cloudId === cloudId;
|
|
108
140
|
}) || availableSites[0];
|
|
109
141
|
}, [availableSites, cloudId]);
|
|
142
|
+
var buttonClickedAnalyticsPayload = useMemo(function () {
|
|
143
|
+
return {
|
|
144
|
+
extensionKey: extensionKey,
|
|
145
|
+
destinationObjectTypes: destinationObjectTypes,
|
|
146
|
+
actions: userInteractionActions.current
|
|
147
|
+
};
|
|
148
|
+
}, [destinationObjectTypes, extensionKey]);
|
|
110
149
|
var resolvedWithNoResults = status === 'resolved' && !responseItems.length;
|
|
111
150
|
var jqlUrl = selectedJiraSite && jql && "".concat(selectedJiraSite.url, "/issues/?jql=").concat(encodeURI(jql));
|
|
112
151
|
var isInsertDisabled = !isParametersSet || status === 'rejected' || status === 'unauthorized' || status === 'loading' || resolvedWithNoResults;
|
|
@@ -151,13 +190,28 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
151
190
|
}
|
|
152
191
|
}, [cloudId, selectedJiraSite]);
|
|
153
192
|
var onSearch = useCallback(function (newParameters, searchMethod) {
|
|
193
|
+
searchCount.current++;
|
|
154
194
|
lastSearchMethodRef.current = searchMethod;
|
|
195
|
+
if (jql !== newParameters.jql) {
|
|
196
|
+
userInteractionActions.current.add(DatasourceAction.QUERY_UPDATED);
|
|
197
|
+
}
|
|
155
198
|
setJql(newParameters.jql);
|
|
156
199
|
reset({
|
|
157
200
|
shouldForceRequest: true
|
|
158
201
|
});
|
|
159
|
-
}, [reset]);
|
|
202
|
+
}, [jql, reset]);
|
|
203
|
+
var onCancelClick = useCallback(function (e, analyticEvent) {
|
|
204
|
+
analyticEvent.update({
|
|
205
|
+
eventType: 'ui',
|
|
206
|
+
actionSubjectId: 'cancel',
|
|
207
|
+
attributes: _objectSpread(_objectSpread({}, buttonClickedAnalyticsPayload), {}, {
|
|
208
|
+
searchCount: searchCount.current
|
|
209
|
+
})
|
|
210
|
+
}).fire(EVENT_CHANNEL);
|
|
211
|
+
onCancel();
|
|
212
|
+
}, [buttonClickedAnalyticsPayload, onCancel]);
|
|
160
213
|
var onSiteSelection = useCallback(function (site) {
|
|
214
|
+
userInteractionActions.current.add(DatasourceAction.INSTANCE_UPDATED);
|
|
161
215
|
setCloudId(site.cloudId);
|
|
162
216
|
reset({
|
|
163
217
|
shouldForceRequest: true
|
|
@@ -167,13 +221,25 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
167
221
|
var _data$key, _data$key$data;
|
|
168
222
|
var _responseItems = _slicedToArray(responseItems, 1),
|
|
169
223
|
data = _responseItems[0];
|
|
170
|
-
//
|
|
224
|
+
// agreement with BE that we will use `key` for rendering smartlink
|
|
171
225
|
return data === null || data === void 0 ? void 0 : (_data$key = data.key) === null || _data$key === void 0 ? void 0 : (_data$key$data = _data$key.data) === null || _data$key$data === void 0 ? void 0 : _data$key$data.url;
|
|
172
226
|
}, [responseItems]);
|
|
173
|
-
var onInsertPressed = useCallback(function () {
|
|
227
|
+
var onInsertPressed = useCallback(function (e, analyticEvent) {
|
|
174
228
|
if (!isParametersSet || !jql || !selectedJiraSite) {
|
|
175
229
|
return;
|
|
176
230
|
}
|
|
231
|
+
var insertButtonClickedEvent = analyticEvent.update({
|
|
232
|
+
actionSubjectId: 'insert',
|
|
233
|
+
attributes: _objectSpread(_objectSpread({}, buttonClickedAnalyticsPayload), {}, {
|
|
234
|
+
totalItemCount: totalCount || 0,
|
|
235
|
+
displayedColumnCount: (visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0,
|
|
236
|
+
display: getDisplayValue(currentViewMode, totalCount || 0),
|
|
237
|
+
searchCount: searchCount.current,
|
|
238
|
+
searchMethod: mapSearchMethod(lastSearchMethodRef.current)
|
|
239
|
+
}),
|
|
240
|
+
eventType: 'ui'
|
|
241
|
+
});
|
|
242
|
+
insertButtonClickedEvent.fire(EVENT_CHANNEL);
|
|
177
243
|
var firstIssueUrl = retrieveUrlForSmartCardRender();
|
|
178
244
|
if (currentViewMode === 'count') {
|
|
179
245
|
onInsert({
|
|
@@ -215,10 +281,21 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
215
281
|
}
|
|
216
282
|
});
|
|
217
283
|
}
|
|
218
|
-
}, [isParametersSet, jql,
|
|
284
|
+
}, [isParametersSet, jql, selectedJiraSite, buttonClickedAnalyticsPayload, totalCount, visibleColumnKeys, currentViewMode, retrieveUrlForSmartCardRender, responseItems.length, onInsert, jqlUrl, datasourceId, cloudId]);
|
|
219
285
|
var handleViewModeChange = function handleViewModeChange(selectedMode) {
|
|
286
|
+
userInteractionActions.current.add(DatasourceAction.DISPLAY_VIEW_CHANGED);
|
|
220
287
|
setCurrentViewMode(selectedMode);
|
|
221
288
|
};
|
|
289
|
+
var handleOnNextPage = useCallback(function () {
|
|
290
|
+
userInteractionActions.current.add(DatasourceAction.NEXT_PAGE_SCROLLED);
|
|
291
|
+
onNextPage();
|
|
292
|
+
}, [onNextPage]);
|
|
293
|
+
var handleVisibleColumnKeysChange = useCallback(function () {
|
|
294
|
+
var newVisibleColumnKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
295
|
+
var columnAction = getColumnAction(visibleColumnKeys || [], newVisibleColumnKeys);
|
|
296
|
+
userInteractionActions.current.add(columnAction);
|
|
297
|
+
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
298
|
+
}, [visibleColumnKeys]);
|
|
222
299
|
var issueLikeDataTableView = useMemo(function () {
|
|
223
300
|
return jsx("div", {
|
|
224
301
|
css: contentContainerStyles
|
|
@@ -229,11 +306,11 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
229
306
|
items: responseItems,
|
|
230
307
|
hasNextPage: hasNextPage,
|
|
231
308
|
visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
|
|
232
|
-
onNextPage:
|
|
309
|
+
onNextPage: handleOnNextPage,
|
|
233
310
|
onLoadDatasourceDetails: loadDatasourceDetails,
|
|
234
|
-
onVisibleColumnKeysChange:
|
|
311
|
+
onVisibleColumnKeysChange: handleVisibleColumnKeysChange
|
|
235
312
|
}));
|
|
236
|
-
}, [columns, defaultVisibleColumnKeys, hasNextPage, loadDatasourceDetails,
|
|
313
|
+
}, [columns, defaultVisibleColumnKeys, hasNextPage, handleVisibleColumnKeysChange, loadDatasourceDetails, handleOnNextPage, responseItems, status, visibleColumnKeys]);
|
|
237
314
|
var renderCountModeContent = useCallback(function () {
|
|
238
315
|
var url = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
239
316
|
if (status === 'unauthorized') {
|
|
@@ -327,7 +404,7 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
327
404
|
}
|
|
328
405
|
}))), jsx(Button, {
|
|
329
406
|
appearance: "default",
|
|
330
|
-
onClick:
|
|
407
|
+
onClick: onCancelClick
|
|
331
408
|
}, jsx(FormattedMessage, modalMessages.cancelButtonText)), jsx(Button, {
|
|
332
409
|
appearance: "primary",
|
|
333
410
|
onClick: onInsertPressed,
|
|
@@ -338,11 +415,9 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
|
|
|
338
415
|
var analyticsContextAttributes = {
|
|
339
416
|
dataProvider: 'jira-issues'
|
|
340
417
|
};
|
|
341
|
-
var analyticsContextData = {
|
|
342
|
-
packageName: "@atlaskit/link-datasource",
|
|
343
|
-
packageVersion: "1.0.17",
|
|
418
|
+
var analyticsContextData = _objectSpread(_objectSpread({}, packageMetaData), {}, {
|
|
344
419
|
source: 'datasourceConfigModal'
|
|
345
|
-
};
|
|
420
|
+
});
|
|
346
421
|
var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
|
|
347
422
|
attributes: _objectSpread({}, analyticsContextAttributes)
|
|
348
423
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generates Typescript types for analytics events from analytics.spec.yaml
|
|
5
5
|
*
|
|
6
|
-
* @codegen <<SignedSource::
|
|
6
|
+
* @codegen <<SignedSource::2d36fde4f879983a499f53e3fb70509b>>
|
|
7
7
|
* @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen link-datasource
|
|
8
8
|
*/
|
|
9
9
|
export type PackageMetaDataType = {
|
|
@@ -37,9 +37,14 @@ export type ButtonClickedInsertAttributesType = {
|
|
|
37
37
|
display: 'datasource_inline' | 'datasource_table' | 'inline';
|
|
38
38
|
destinationObjectTypes: unknown[];
|
|
39
39
|
searchMethod: 'datasource_search_query' | 'datasource_basic_filter' | 'datasource_saved_filter' | null;
|
|
40
|
+
extensionKey: string | null;
|
|
41
|
+
actions: unknown[];
|
|
40
42
|
};
|
|
41
43
|
export type ButtonClickedCancelAttributesType = {
|
|
42
44
|
searchCount: number;
|
|
45
|
+
destinationObjectTypes: unknown[];
|
|
46
|
+
extensionKey: string | null;
|
|
47
|
+
actions: unknown[];
|
|
43
48
|
};
|
|
44
49
|
export type LinkClickedSingleItemAttributesType = {
|
|
45
50
|
extensionKey: string | null;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare enum DatasourceAction {
|
|
2
|
+
COLUMN_ADDED = "column added",
|
|
3
|
+
COLUMN_REMOVED = "column removed",
|
|
4
|
+
COLUMN_REORDERED = "column reordered",
|
|
5
|
+
INSTANCE_UPDATED = "instance updated",
|
|
6
|
+
QUERY_UPDATED = "query updated",
|
|
7
|
+
DISPLAY_VIEW_CHANGED = "display view changed",
|
|
8
|
+
NEXT_PAGE_SCROLLED = "next page scrolled"
|
|
9
|
+
}
|
|
10
|
+
export declare enum DatasourceDisplay {
|
|
11
|
+
DATASOURCE_TABLE = "datasource_table",
|
|
12
|
+
DATASOURCE_INLINE = "datasource_inline",
|
|
13
|
+
INLINE = "inline"
|
|
14
|
+
}
|
|
15
|
+
export declare enum DatasourceSearchMethod {
|
|
16
|
+
DATASOURCE_BASIC_FILTER = "datasource_basic_filter",
|
|
17
|
+
DATASOURCE_SEARCH_QUERY = "datasource_search_query"
|
|
18
|
+
}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { JiraSearchMethod } from '../common/types';
|
|
2
|
-
|
|
2
|
+
import { DatasourceSearchMethod } from './types';
|
|
3
|
+
export declare const mapSearchMethod: (searchMethod: JiraSearchMethod | null) => DatasourceSearchMethod | null;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { jsx } from '@emotion/react';
|
|
3
|
+
import { DatasourceAction } from '../../../analytics/types';
|
|
3
4
|
import { JiraIssuesConfigModalProps } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* This method should be called when one atomic action is performed on columns: adding new item, removing one item, changing items order.
|
|
7
|
+
* The assumption is that since only one action is changed at each time, we don't have to verify the actual contents of the lists.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getColumnAction: (oldVisibleColumnKeys: string[], newVisibleColumnKeys: string[]) => DatasourceAction;
|
|
4
10
|
export declare const PlainJiraIssuesConfigModal: (props: JiraIssuesConfigModalProps) => jsx.JSX.Element;
|
|
5
11
|
export declare const JiraIssuesConfigModal: import("react").ForwardRefExoticComponent<JiraIssuesConfigModalProps & import("@atlaskit/analytics-next").WithContextProps & import("react").RefAttributes<any>>;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generates Typescript types for analytics events from analytics.spec.yaml
|
|
5
5
|
*
|
|
6
|
-
* @codegen <<SignedSource::
|
|
6
|
+
* @codegen <<SignedSource::2d36fde4f879983a499f53e3fb70509b>>
|
|
7
7
|
* @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen link-datasource
|
|
8
8
|
*/
|
|
9
9
|
export type PackageMetaDataType = {
|
|
@@ -37,9 +37,14 @@ export type ButtonClickedInsertAttributesType = {
|
|
|
37
37
|
display: 'datasource_inline' | 'datasource_table' | 'inline';
|
|
38
38
|
destinationObjectTypes: unknown[];
|
|
39
39
|
searchMethod: 'datasource_search_query' | 'datasource_basic_filter' | 'datasource_saved_filter' | null;
|
|
40
|
+
extensionKey: string | null;
|
|
41
|
+
actions: unknown[];
|
|
40
42
|
};
|
|
41
43
|
export type ButtonClickedCancelAttributesType = {
|
|
42
44
|
searchCount: number;
|
|
45
|
+
destinationObjectTypes: unknown[];
|
|
46
|
+
extensionKey: string | null;
|
|
47
|
+
actions: unknown[];
|
|
43
48
|
};
|
|
44
49
|
export type LinkClickedSingleItemAttributesType = {
|
|
45
50
|
extensionKey: string | null;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare enum DatasourceAction {
|
|
2
|
+
COLUMN_ADDED = "column added",
|
|
3
|
+
COLUMN_REMOVED = "column removed",
|
|
4
|
+
COLUMN_REORDERED = "column reordered",
|
|
5
|
+
INSTANCE_UPDATED = "instance updated",
|
|
6
|
+
QUERY_UPDATED = "query updated",
|
|
7
|
+
DISPLAY_VIEW_CHANGED = "display view changed",
|
|
8
|
+
NEXT_PAGE_SCROLLED = "next page scrolled"
|
|
9
|
+
}
|
|
10
|
+
export declare enum DatasourceDisplay {
|
|
11
|
+
DATASOURCE_TABLE = "datasource_table",
|
|
12
|
+
DATASOURCE_INLINE = "datasource_inline",
|
|
13
|
+
INLINE = "inline"
|
|
14
|
+
}
|
|
15
|
+
export declare enum DatasourceSearchMethod {
|
|
16
|
+
DATASOURCE_BASIC_FILTER = "datasource_basic_filter",
|
|
17
|
+
DATASOURCE_SEARCH_QUERY = "datasource_search_query"
|
|
18
|
+
}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { JiraSearchMethod } from '../common/types';
|
|
2
|
-
|
|
2
|
+
import { DatasourceSearchMethod } from './types';
|
|
3
|
+
export declare const mapSearchMethod: (searchMethod: JiraSearchMethod | null) => DatasourceSearchMethod | null;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { jsx } from '@emotion/react';
|
|
3
|
+
import { DatasourceAction } from '../../../analytics/types';
|
|
3
4
|
import { JiraIssuesConfigModalProps } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* This method should be called when one atomic action is performed on columns: adding new item, removing one item, changing items order.
|
|
7
|
+
* The assumption is that since only one action is changed at each time, we don't have to verify the actual contents of the lists.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getColumnAction: (oldVisibleColumnKeys: string[], newVisibleColumnKeys: string[]) => DatasourceAction;
|
|
4
10
|
export declare const PlainJiraIssuesConfigModal: (props: JiraIssuesConfigModalProps) => jsx.JSX.Element;
|
|
5
11
|
export declare const JiraIssuesConfigModal: import("react").ForwardRefExoticComponent<JiraIssuesConfigModalProps & import("@atlaskit/analytics-next").WithContextProps & import("react").RefAttributes<any>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/link-datasource",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"description": "UI Components to support linking platform dataset feature",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"@atlaskit/adf-schema": "28.1.2",
|
|
34
34
|
"@atlaskit/analytics-next": "^9.1.3",
|
|
35
35
|
"@atlaskit/avatar": "^21.3.0",
|
|
36
|
-
"@atlaskit/button": "^16.
|
|
37
|
-
"@atlaskit/dropdown-menu": "^11.
|
|
36
|
+
"@atlaskit/button": "^16.10.0",
|
|
37
|
+
"@atlaskit/dropdown-menu": "^11.13.0",
|
|
38
38
|
"@atlaskit/editor-prosemirror": "1.1.0",
|
|
39
39
|
"@atlaskit/empty-state": "^7.5.0",
|
|
40
40
|
"@atlaskit/form": "^8.11.0",
|
|
@@ -53,12 +53,12 @@
|
|
|
53
53
|
"@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll": "^0.6.0",
|
|
54
54
|
"@atlaskit/pragmatic-drag-and-drop-react-indicator": "^0.16.0",
|
|
55
55
|
"@atlaskit/select": "^16.5.0",
|
|
56
|
-
"@atlaskit/smart-card": "^26.
|
|
56
|
+
"@atlaskit/smart-card": "^26.23.0",
|
|
57
57
|
"@atlaskit/spinner": "^15.5.0",
|
|
58
|
-
"@atlaskit/tag": "^11.
|
|
58
|
+
"@atlaskit/tag": "^11.6.0",
|
|
59
59
|
"@atlaskit/textfield": "5.6.6",
|
|
60
60
|
"@atlaskit/theme": "^12.6.0",
|
|
61
|
-
"@atlaskit/tokens": "^1.
|
|
61
|
+
"@atlaskit/tokens": "^1.21.0",
|
|
62
62
|
"@atlaskit/tooltip": "^17.8.0",
|
|
63
63
|
"@atlassianlabs/jql-editor": "^2.0.1",
|
|
64
64
|
"@babel/runtime": "^7.0.0",
|