@atlaskit/profilecard 19.19.0 → 19.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/afm-cc/tsconfig.json +3 -0
- package/afm-jira/tsconfig.json +6 -0
- package/afm-post-office/tsconfig.json +3 -0
- package/dist/cjs/client/RovoAgentCardClient.js +2 -5
- package/dist/cjs/client/UserProfileCardClient.js +110 -16
- package/dist/cjs/client/getTeamFromAGG.js +1 -1
- package/dist/cjs/components/Agent/Actions.js +20 -4
- package/dist/cjs/components/Agent/AgentDeleteConfirmationModal.js +104 -0
- package/dist/cjs/components/Agent/AgentProfileCard.js +40 -8
- package/dist/cjs/components/Agent/AgentProfileCardTrigger.js +2 -1
- package/dist/cjs/components/Agent/hooks/useAgentActions.js +92 -0
- package/dist/cjs/components/Agent/hooks/useDeleteAgent.js +70 -0
- package/dist/cjs/components/Agent/{useSetFavouriteAgent.js → hooks/useSetFavouriteAgent.js} +1 -1
- package/dist/cjs/components/User/ProfileCardTrigger.js +4 -2
- package/dist/cjs/util/analytics.js +16 -16
- package/dist/es2019/client/RovoAgentCardClient.js +2 -5
- package/dist/es2019/client/UserProfileCardClient.js +94 -6
- package/dist/es2019/client/getTeamFromAGG.js +1 -1
- package/dist/es2019/components/Agent/Actions.js +16 -4
- package/dist/es2019/components/Agent/AgentDeleteConfirmationModal.js +82 -0
- package/dist/es2019/components/Agent/AgentProfileCard.js +24 -9
- package/dist/es2019/components/Agent/AgentProfileCardTrigger.js +2 -1
- package/dist/es2019/components/Agent/hooks/useAgentActions.js +83 -0
- package/dist/es2019/components/Agent/hooks/useDeleteAgent.js +33 -0
- package/dist/es2019/components/Agent/{useSetFavouriteAgent.js → hooks/useSetFavouriteAgent.js} +1 -1
- package/dist/es2019/components/User/ProfileCardTrigger.js +4 -2
- package/dist/es2019/util/analytics.js +16 -16
- package/dist/esm/client/RovoAgentCardClient.js +2 -5
- package/dist/esm/client/UserProfileCardClient.js +111 -17
- package/dist/esm/client/getTeamFromAGG.js +1 -1
- package/dist/esm/components/Agent/Actions.js +20 -4
- package/dist/esm/components/Agent/AgentDeleteConfirmationModal.js +94 -0
- package/dist/esm/components/Agent/AgentProfileCard.js +40 -8
- package/dist/esm/components/Agent/AgentProfileCardTrigger.js +2 -1
- package/dist/esm/components/Agent/hooks/useAgentActions.js +85 -0
- package/dist/esm/components/Agent/hooks/useDeleteAgent.js +63 -0
- package/dist/esm/components/Agent/{useSetFavouriteAgent.js → hooks/useSetFavouriteAgent.js} +1 -1
- package/dist/esm/components/User/ProfileCardTrigger.js +4 -2
- package/dist/esm/util/analytics.js +16 -16
- package/dist/types/client/UserProfileCardClient.d.ts +7 -1
- package/dist/types/components/Agent/AgentDeleteConfirmationModal.d.ts +10 -0
- package/dist/types/components/Agent/{useAgentActions.d.ts → hooks/useAgentActions.d.ts} +6 -0
- package/dist/types/components/Agent/hooks/useDeleteAgent.d.ts +8 -0
- package/dist/types/components/User/ProfileCardTrigger.d.ts +1 -1
- package/dist/types/types.d.ts +35 -2
- package/dist/types-ts4.5/client/UserProfileCardClient.d.ts +7 -1
- package/dist/types-ts4.5/components/Agent/AgentDeleteConfirmationModal.d.ts +10 -0
- package/dist/types-ts4.5/components/Agent/{useAgentActions.d.ts → hooks/useAgentActions.d.ts} +6 -0
- package/dist/types-ts4.5/components/Agent/hooks/useDeleteAgent.d.ts +8 -0
- package/dist/types-ts4.5/components/User/ProfileCardTrigger.d.ts +1 -1
- package/dist/types-ts4.5/types.d.ts +35 -2
- package/package.json +6 -1
- package/dist/cjs/components/Agent/useAgentActions.js +0 -39
- package/dist/es2019/components/Agent/useAgentActions.js +0 -34
- package/dist/esm/components/Agent/useAgentActions.js +0 -33
- /package/dist/types/components/Agent/{useSetFavouriteAgent.d.ts → hooks/useSetFavouriteAgent.d.ts} +0 -0
- /package/dist/types-ts4.5/components/Agent/{useSetFavouriteAgent.d.ts → hooks/useSetFavouriteAgent.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @atlaskit/profilecard
|
|
2
2
|
|
|
3
|
+
## 19.20.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#132782](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/132782)
|
|
8
|
+
[`8f20b4bc9526a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/8f20b4bc9526a) -
|
|
9
|
+
Added default open chat action and delete agent functionality
|
|
10
|
+
- [`3c1c3ee3b4f32`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/3c1c3ee3b4f32) -
|
|
11
|
+
PTC-9673 Migrate profile card from CloudUser to AGG user
|
|
12
|
+
|
|
3
13
|
## 19.19.0
|
|
4
14
|
|
|
5
15
|
### Minor Changes
|
package/afm-cc/tsconfig.json
CHANGED
package/afm-jira/tsconfig.json
CHANGED
|
@@ -53,6 +53,9 @@
|
|
|
53
53
|
{
|
|
54
54
|
"path": "../../../design-system/menu/afm-jira/tsconfig.json"
|
|
55
55
|
},
|
|
56
|
+
{
|
|
57
|
+
"path": "../../../design-system/modal-dialog/afm-jira/tsconfig.json"
|
|
58
|
+
},
|
|
56
59
|
{
|
|
57
60
|
"path": "../../../platform/feature-flags/afm-jira/tsconfig.json"
|
|
58
61
|
},
|
|
@@ -62,6 +65,9 @@
|
|
|
62
65
|
{
|
|
63
66
|
"path": "../../../design-system/primitives/afm-jira/tsconfig.json"
|
|
64
67
|
},
|
|
68
|
+
{
|
|
69
|
+
"path": "../../../ai-mate/rovo-agent-components/afm-jira/tsconfig.json"
|
|
70
|
+
},
|
|
65
71
|
{
|
|
66
72
|
"path": "../../../design-system/spinner/afm-jira/tsconfig.json"
|
|
67
73
|
},
|
|
@@ -33,13 +33,10 @@ var RovoAgentCardClient = exports.default = /*#__PURE__*/function (_CachingClien
|
|
|
33
33
|
(0, _createClass2.default)(RovoAgentCardClient, [{
|
|
34
34
|
key: "makeRequest",
|
|
35
35
|
value: function makeRequest(id, cloudId) {
|
|
36
|
-
if (!this.options.productIdentifier) {
|
|
37
|
-
throw new Error('Trying to fetch agents data with no specified config.productIdentifier');
|
|
38
|
-
}
|
|
39
36
|
if (id.type === 'identity') {
|
|
40
|
-
return (0, _getAgentInfo.getAgentDetailsByUserId)(id.value, this.options.productIdentifier, cloudId);
|
|
37
|
+
return (0, _getAgentInfo.getAgentDetailsByUserId)(id.value, this.options.productIdentifier || 'rovo', cloudId);
|
|
41
38
|
}
|
|
42
|
-
return (0, _getAgentInfo.getAgentDetailsByAgentId)(id.value, this.options.productIdentifier, cloudId);
|
|
39
|
+
return (0, _getAgentInfo.getAgentDetailsByAgentId)(id.value, this.options.productIdentifier || 'rovo', cloudId);
|
|
43
40
|
}
|
|
44
41
|
}, {
|
|
45
42
|
key: "getProfile",
|
|
@@ -4,16 +4,18 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.modifyResponse = exports.default = exports.buildUserQuery = void 0;
|
|
7
|
+
exports.modifyResponse = exports.default = exports.buildUserQuery = exports.buildAggUserQuery = void 0;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
14
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
17
|
var _analytics = require("../util/analytics");
|
|
18
|
+
var _date = require("../util/date");
|
|
17
19
|
var _performance = require("../util/performance");
|
|
18
20
|
var _CachingClient2 = _interopRequireDefault(require("./CachingClient"));
|
|
19
21
|
var _errorUtils = require("./errorUtils");
|
|
@@ -67,6 +69,50 @@ var buildUserQuery = exports.buildUserQuery = function buildUserQuery(cloudId, u
|
|
|
67
69
|
}
|
|
68
70
|
};
|
|
69
71
|
};
|
|
72
|
+
var buildAggUserQuery = exports.buildAggUserQuery = function buildAggUserQuery(userId) {
|
|
73
|
+
return {
|
|
74
|
+
query: "query TeamsUserQuery($userId: ID!) {\n\t\tuser(accountId: $userId) {\n\t\t\tid\n\t\t\tname\n\t\t\tpicture\n\t\t\taccountStatus\n\t\t\t__typename\n\t\t\t... on AtlassianAccountUser {\n\t\t\t\temail\n\t\t\t\tnickname\n\t\t\t\tzoneinfo\n\t\t\t\textendedProfile {\n\t\t\t\t\tjobTitle\n\t\t\t\t\torganization\n\t\t\t\t\tlocation\n\t\t\t\t\tclosedDate\n\t\t\t\t\tinactiveDate\n\t\t\t\t}\n\t\t\t}\n\t\t\t... on CustomerUser {\n\t\t\t\temail\n\t\t\t\tzoneinfo\n\t\t\t}\n\t\t}\n\t}",
|
|
75
|
+
variables: {
|
|
76
|
+
userId: userId
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
var getUserInSiteUserBase = function getUserInSiteUserBase(cloudId, userId) {
|
|
81
|
+
return fetch(new Request("/gateway/api/teams/site/".concat(cloudId, "/users/").concat(userId, "/exists"), {
|
|
82
|
+
method: 'GET',
|
|
83
|
+
credentials: 'include',
|
|
84
|
+
mode: 'cors',
|
|
85
|
+
headers: {
|
|
86
|
+
Accept: 'application/json',
|
|
87
|
+
'X-header-client-id': 'ptc-fe'
|
|
88
|
+
}
|
|
89
|
+
})).then(function (response) {
|
|
90
|
+
return response.json();
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
var queryAGGUser = /*#__PURE__*/function () {
|
|
94
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url, userId) {
|
|
95
|
+
var query, _yield$AGGQuery, user;
|
|
96
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
97
|
+
while (1) switch (_context.prev = _context.next) {
|
|
98
|
+
case 0:
|
|
99
|
+
query = buildAggUserQuery(userId);
|
|
100
|
+
_context.next = 3;
|
|
101
|
+
return (0, _graphqlUtils.AGGQuery)(url, query);
|
|
102
|
+
case 3:
|
|
103
|
+
_yield$AGGQuery = _context.sent;
|
|
104
|
+
user = _yield$AGGQuery.user;
|
|
105
|
+
return _context.abrupt("return", user);
|
|
106
|
+
case 6:
|
|
107
|
+
case "end":
|
|
108
|
+
return _context.stop();
|
|
109
|
+
}
|
|
110
|
+
}, _callee);
|
|
111
|
+
}));
|
|
112
|
+
return function queryAGGUser(_x, _x2) {
|
|
113
|
+
return _ref.apply(this, arguments);
|
|
114
|
+
};
|
|
115
|
+
}();
|
|
70
116
|
var UserProfileCardClient = exports.default = /*#__PURE__*/function (_CachingClient) {
|
|
71
117
|
(0, _inherits2.default)(UserProfileCardClient, _CachingClient);
|
|
72
118
|
var _super = _createSuper(UserProfileCardClient);
|
|
@@ -80,30 +126,78 @@ var UserProfileCardClient = exports.default = /*#__PURE__*/function (_CachingCli
|
|
|
80
126
|
(0, _createClass2.default)(UserProfileCardClient, [{
|
|
81
127
|
key: "makeRequest",
|
|
82
128
|
value: function () {
|
|
83
|
-
var _makeRequest = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
84
|
-
var query, response;
|
|
85
|
-
return _regenerator.default.wrap(function
|
|
86
|
-
while (1) switch (
|
|
129
|
+
var _makeRequest = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(cloudId, userId) {
|
|
130
|
+
var _user$extendedProfile, _user$extendedProfile2, _user$extendedProfile3, _user$extendedProfile4, _user$extendedProfile5, userCheckPromise, userQueryPromise, checkUserPresentInSiteRes, user, timestring, localWeekdayIndex, query, response;
|
|
131
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
132
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
87
133
|
case 0:
|
|
134
|
+
if (!(0, _platformFeatureFlags.fg)('migrate_cloud_user_to_agg_user_query')) {
|
|
135
|
+
_context2.next = 18;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
if (this.options.gatewayGraphqlUrl) {
|
|
139
|
+
_context2.next = 3;
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
throw new Error('options.gatewayGraphqlUrl is a required parameter');
|
|
143
|
+
case 3:
|
|
144
|
+
userCheckPromise = getUserInSiteUserBase(cloudId, userId);
|
|
145
|
+
userQueryPromise = queryAGGUser(this.options.gatewayGraphqlUrl, userId);
|
|
146
|
+
_context2.next = 7;
|
|
147
|
+
return userCheckPromise;
|
|
148
|
+
case 7:
|
|
149
|
+
checkUserPresentInSiteRes = _context2.sent;
|
|
150
|
+
if (checkUserPresentInSiteRes.isPresent) {
|
|
151
|
+
_context2.next = 10;
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
throw new Error('Unable to fetch user: User does not exist in this site');
|
|
155
|
+
case 10:
|
|
156
|
+
_context2.next = 12;
|
|
157
|
+
return userQueryPromise;
|
|
158
|
+
case 12:
|
|
159
|
+
user = _context2.sent;
|
|
160
|
+
localWeekdayIndex = new Date().getDay().toString();
|
|
161
|
+
if (user.zoneinfo) {
|
|
162
|
+
if ((0, _date.localTime)(user.zoneinfo, 'i') === localWeekdayIndex) {
|
|
163
|
+
timestring = (0, _date.localTime)(user.zoneinfo, 'h:mmbbb') || undefined;
|
|
164
|
+
} else {
|
|
165
|
+
timestring = (0, _date.localTime)(user.zoneinfo, 'eee h:mmbbb') || undefined;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return _context2.abrupt("return", _objectSpread(_objectSpread({}, user), {}, {
|
|
169
|
+
isBot: user.__typename === 'AppUser',
|
|
170
|
+
status: user.accountStatus,
|
|
171
|
+
statusModifiedDate: ((_user$extendedProfile = user.extendedProfile) === null || _user$extendedProfile === void 0 ? void 0 : _user$extendedProfile.closedDate) || ((_user$extendedProfile2 = user.extendedProfile) === null || _user$extendedProfile2 === void 0 ? void 0 : _user$extendedProfile2.inactiveDate),
|
|
172
|
+
avatarUrl: user.picture,
|
|
173
|
+
email: user.email,
|
|
174
|
+
fullName: user.name,
|
|
175
|
+
location: (_user$extendedProfile3 = user.extendedProfile) === null || _user$extendedProfile3 === void 0 ? void 0 : _user$extendedProfile3.location,
|
|
176
|
+
meta: (_user$extendedProfile4 = user.extendedProfile) === null || _user$extendedProfile4 === void 0 ? void 0 : _user$extendedProfile4.jobTitle,
|
|
177
|
+
nickname: user.nickname,
|
|
178
|
+
companyName: (_user$extendedProfile5 = user.extendedProfile) === null || _user$extendedProfile5 === void 0 ? void 0 : _user$extendedProfile5.organization,
|
|
179
|
+
timestring: timestring
|
|
180
|
+
}));
|
|
181
|
+
case 18:
|
|
88
182
|
if (this.options.url) {
|
|
89
|
-
|
|
183
|
+
_context2.next = 20;
|
|
90
184
|
break;
|
|
91
185
|
}
|
|
92
186
|
throw new Error('options.url is a required parameter');
|
|
93
|
-
case
|
|
187
|
+
case 20:
|
|
94
188
|
query = buildUserQuery(cloudId, userId);
|
|
95
|
-
|
|
189
|
+
_context2.next = 23;
|
|
96
190
|
return (0, _graphqlUtils.directoryGraphqlQuery)(this.options.url, query);
|
|
97
|
-
case
|
|
98
|
-
response =
|
|
99
|
-
return
|
|
100
|
-
case
|
|
191
|
+
case 23:
|
|
192
|
+
response = _context2.sent;
|
|
193
|
+
return _context2.abrupt("return", modifyResponse(response));
|
|
194
|
+
case 25:
|
|
101
195
|
case "end":
|
|
102
|
-
return
|
|
196
|
+
return _context2.stop();
|
|
103
197
|
}
|
|
104
|
-
},
|
|
198
|
+
}, _callee2, this);
|
|
105
199
|
}));
|
|
106
|
-
function makeRequest(
|
|
200
|
+
function makeRequest(_x3, _x4) {
|
|
107
201
|
return _makeRequest.apply(this, arguments);
|
|
108
202
|
}
|
|
109
203
|
return makeRequest;
|
|
@@ -57,7 +57,7 @@ var addHeaders = exports.addHeaders = function addHeaders(headers) {
|
|
|
57
57
|
headers.append('X-ExperimentalApi', 'teams-beta');
|
|
58
58
|
headers.append('X-ExperimentalApi', 'team-members-beta');
|
|
59
59
|
headers.append('atl-client-name', "@atlaskit/profilecard");
|
|
60
|
-
headers.append('atl-client-version', "19.
|
|
60
|
+
headers.append('atl-client-version', "19.20.0");
|
|
61
61
|
return headers;
|
|
62
62
|
};
|
|
63
63
|
function getTeamFromAGG(_x, _x2, _x3) {
|
|
@@ -8,13 +8,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.AgentActions = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
-
var
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
13
|
var _reactIntlNext = require("react-intl-next");
|
|
13
14
|
var _new = _interopRequireWildcard(require("@atlaskit/button/new"));
|
|
14
15
|
var _dropdownMenu = _interopRequireWildcard(require("@atlaskit/dropdown-menu"));
|
|
15
16
|
var _showMoreHorizontalMore = _interopRequireDefault(require("@atlaskit/icon/core/migration/show-more-horizontal--more"));
|
|
16
17
|
var _primitives = require("@atlaskit/primitives");
|
|
17
18
|
var _rovoAgentComponents = require("@atlaskit/rovo-agent-components");
|
|
19
|
+
var _AgentDeleteConfirmationModal = require("./AgentDeleteConfirmationModal");
|
|
18
20
|
var _excluded = ["triggerRef"];
|
|
19
21
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
20
22
|
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; }
|
|
@@ -90,15 +92,21 @@ var AgentActions = exports.AgentActions = function AgentActions(_ref3) {
|
|
|
90
92
|
onChatClick = _ref3.onChatClick;
|
|
91
93
|
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
92
94
|
formatMessage = _useIntl.formatMessage;
|
|
95
|
+
var _useState = (0, _react.useState)(false),
|
|
96
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
97
|
+
isDeleteModalOpen = _useState2[0],
|
|
98
|
+
setIsDeleteModalOpen = _useState2[1];
|
|
93
99
|
var agentActions = buildAgentActions({
|
|
94
100
|
onDuplicateAgent: onDuplicateAgent,
|
|
95
101
|
onCopyAgent: onCopyAgent
|
|
96
102
|
});
|
|
97
103
|
var agentSetting = buildAgentSettings({
|
|
98
104
|
onEditAgent: onEditAgent,
|
|
99
|
-
onDeleteAgent: onDeleteAgent
|
|
105
|
+
onDeleteAgent: function onDeleteAgent() {
|
|
106
|
+
setIsDeleteModalOpen(true);
|
|
107
|
+
}
|
|
100
108
|
});
|
|
101
|
-
return /*#__PURE__*/_react.default.createElement(_primitives.Inline, {
|
|
109
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_primitives.Inline, {
|
|
102
110
|
space: "space.100",
|
|
103
111
|
xcss: actopnsWrapperStyles
|
|
104
112
|
}, /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
@@ -144,7 +152,15 @@ var AgentActions = exports.AgentActions = function AgentActions(_ref3) {
|
|
|
144
152
|
key: idx,
|
|
145
153
|
onClick: onClick
|
|
146
154
|
}, text);
|
|
147
|
-
}))))
|
|
155
|
+
})))), /*#__PURE__*/_react.default.createElement(_AgentDeleteConfirmationModal.AgentDeleteConfirmationModal, {
|
|
156
|
+
isOpen: isDeleteModalOpen,
|
|
157
|
+
onClose: function onClose() {
|
|
158
|
+
setIsDeleteModalOpen(false);
|
|
159
|
+
},
|
|
160
|
+
onSubmit: onDeleteAgent,
|
|
161
|
+
agentId: 'some Id',
|
|
162
|
+
agentName: "agentName"
|
|
163
|
+
}));
|
|
148
164
|
};
|
|
149
165
|
var messages = (0, _reactIntlNext.defineMessages)({
|
|
150
166
|
actionChatToAgent: {
|
|
@@ -0,0 +1,104 @@
|
|
|
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.AgentDeleteConfirmationModal = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _reactIntlNext = require("react-intl-next");
|
|
13
|
+
var _new = _interopRequireDefault(require("@atlaskit/button/new"));
|
|
14
|
+
var _modalDialog = _interopRequireWildcard(require("@atlaskit/modal-dialog"));
|
|
15
|
+
var _primitives = require("@atlaskit/primitives");
|
|
16
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
|
+
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; }
|
|
18
|
+
var AgentDeleteConfirmationModal = exports.AgentDeleteConfirmationModal = function AgentDeleteConfirmationModal(_ref) {
|
|
19
|
+
var onClose = _ref.onClose,
|
|
20
|
+
agentName = _ref.agentName,
|
|
21
|
+
isOpen = _ref.isOpen,
|
|
22
|
+
onSubmit = _ref.onSubmit,
|
|
23
|
+
agentId = _ref.agentId;
|
|
24
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
25
|
+
formatMessage = _useIntl.formatMessage;
|
|
26
|
+
var handleDeleteAgent = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
27
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
28
|
+
while (1) switch (_context.prev = _context.next) {
|
|
29
|
+
case 0:
|
|
30
|
+
if (!agentId) {
|
|
31
|
+
_context.next = 4;
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
_context.next = 3;
|
|
35
|
+
return onSubmit();
|
|
36
|
+
case 3:
|
|
37
|
+
onClose();
|
|
38
|
+
case 4:
|
|
39
|
+
case "end":
|
|
40
|
+
return _context.stop();
|
|
41
|
+
}
|
|
42
|
+
}, _callee);
|
|
43
|
+
})), [agentId, onClose, onSubmit]);
|
|
44
|
+
return /*#__PURE__*/_react.default.createElement(_modalDialog.ModalTransition, null, isOpen && /*#__PURE__*/_react.default.createElement(_modalDialog.default, {
|
|
45
|
+
width: "small"
|
|
46
|
+
}, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalHeader, null, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalTitle, null, formatMessage(messages.title, {
|
|
47
|
+
agentName: agentName
|
|
48
|
+
}))), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalBody, null, /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
49
|
+
as: "p"
|
|
50
|
+
}, formatMessage(messages.body)), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_new.default, {
|
|
51
|
+
appearance: "subtle",
|
|
52
|
+
onClick: onClose
|
|
53
|
+
}, formatMessage(messages.cancelText)), /*#__PURE__*/_react.default.createElement(_new.default, {
|
|
54
|
+
appearance: "danger",
|
|
55
|
+
onClick: function onClick(_e, event) {
|
|
56
|
+
handleDeleteAgent();
|
|
57
|
+
}
|
|
58
|
+
}, formatMessage(messages.confirmText))))));
|
|
59
|
+
};
|
|
60
|
+
var messages = (0, _reactIntlNext.defineMessages)({
|
|
61
|
+
cancelText: {
|
|
62
|
+
id: 'ai-mate.agent-modal.agent-delete-confirm.cancel-text',
|
|
63
|
+
defaultMessage: 'Cancel'
|
|
64
|
+
},
|
|
65
|
+
confirmText: {
|
|
66
|
+
id: 'ai-mate.agent-modal.agent-delete-confirm.confirm-text',
|
|
67
|
+
defaultMessage: 'Delete'
|
|
68
|
+
},
|
|
69
|
+
title: {
|
|
70
|
+
id: 'ai-mate.agent-list.delete-agent-confirm-title',
|
|
71
|
+
defaultMessage: 'Delete "{agentName}"?',
|
|
72
|
+
description: 'Title text for the delete agent confirmation modal'
|
|
73
|
+
},
|
|
74
|
+
body: {
|
|
75
|
+
id: 'ai-mate.agent-list.delete-agent-confirm-body',
|
|
76
|
+
defaultMessage: "Are you sure you want to delete this agent? This action cannot be undone.",
|
|
77
|
+
description: 'Body text for the delete agent confirmation modal'
|
|
78
|
+
},
|
|
79
|
+
error: {
|
|
80
|
+
id: 'ai-mate.agent-list.delete-agent-error',
|
|
81
|
+
defaultMessage: 'Could not delete agent',
|
|
82
|
+
description: 'Error message displayed when an agent cannot be deleted'
|
|
83
|
+
},
|
|
84
|
+
errorAgentNotFound: {
|
|
85
|
+
id: 'ai-mate.agent-list.delete-agent-error.agent-not-found',
|
|
86
|
+
defaultMessage: 'That agent could not be found.',
|
|
87
|
+
description: 'Error message displayed when an agent cannot be found'
|
|
88
|
+
},
|
|
89
|
+
errorAgentInUse: {
|
|
90
|
+
id: 'ai-mate.agent-list.delete-agent-error.agent-in-use',
|
|
91
|
+
defaultMessage: 'Agent is currently in use. Try again later.',
|
|
92
|
+
description: 'Error message displayed when an agent is in use'
|
|
93
|
+
},
|
|
94
|
+
errorIncorrectOwner: {
|
|
95
|
+
id: 'ai-mate.agent-list.delete-agent-error.incorrect-owner',
|
|
96
|
+
defaultMessage: 'You cannot delete agents you have not created yourself. Please contact the agent owner.',
|
|
97
|
+
description: 'Error message displayed when the agent owner is incorrect'
|
|
98
|
+
},
|
|
99
|
+
agentDeletedSuccess: {
|
|
100
|
+
id: 'ai-mate.agent-list.delete-agent-success',
|
|
101
|
+
defaultMessage: 'Agent has been deleted!',
|
|
102
|
+
description: 'Success message displayed when an agent is deleted'
|
|
103
|
+
}
|
|
104
|
+
});
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
12
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
11
13
|
var _primitives = require("@atlaskit/primitives");
|
|
@@ -16,8 +18,9 @@ var _Error = require("../Error");
|
|
|
16
18
|
var _Actions = require("./Actions");
|
|
17
19
|
var _AgentProfileCardWrapper = require("./AgentProfileCardWrapper");
|
|
18
20
|
var _ConversationStarters = require("./ConversationStarters");
|
|
19
|
-
var _useAgentActions = require("./useAgentActions");
|
|
20
|
-
var
|
|
21
|
+
var _useAgentActions = require("./hooks/useAgentActions");
|
|
22
|
+
var _useDeleteAgent2 = require("./hooks/useDeleteAgent");
|
|
23
|
+
var _useSetFavouriteAgent2 = require("./hooks/useSetFavouriteAgent");
|
|
21
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
22
25
|
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; }
|
|
23
26
|
var styles = (0, _primitives.xcss)({
|
|
@@ -50,7 +53,9 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
|
|
|
50
53
|
}),
|
|
51
54
|
_onEditAgent = _useAgentUrlActions.onEditAgent,
|
|
52
55
|
_onCopyAgent = _useAgentUrlActions.onCopyAgent,
|
|
53
|
-
_onDuplicateAgent = _useAgentUrlActions.onDuplicateAgent
|
|
56
|
+
_onDuplicateAgent = _useAgentUrlActions.onDuplicateAgent,
|
|
57
|
+
onOpenChatFullScreecn = _useAgentUrlActions.onOpenChat,
|
|
58
|
+
onConversationStarter = _useAgentUrlActions.onConversationStarter;
|
|
54
59
|
var _useSetFavouriteAgent = (0, _useSetFavouriteAgent2.useSetFavouriteAgent)({
|
|
55
60
|
agentId: agent === null || agent === void 0 ? void 0 : agent.id,
|
|
56
61
|
cloudId: cloudId,
|
|
@@ -59,6 +64,11 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
|
|
|
59
64
|
}),
|
|
60
65
|
isStarred = _useSetFavouriteAgent.isStarred,
|
|
61
66
|
setFavourite = _useSetFavouriteAgent.setFavourite;
|
|
67
|
+
var _useDeleteAgent = (0, _useDeleteAgent2.useDeleteAgent)({
|
|
68
|
+
cloudId: cloudId,
|
|
69
|
+
product: product
|
|
70
|
+
}),
|
|
71
|
+
deleteAgent = _useDeleteAgent.deleteAgent;
|
|
62
72
|
var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
63
73
|
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
64
74
|
var fireAnalytics = (0, _react.useCallback)(function (payload) {
|
|
@@ -66,6 +76,27 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
|
|
|
66
76
|
(0, _analytics.fireEvent)(createAnalyticsEvent, payload);
|
|
67
77
|
}
|
|
68
78
|
}, [createAnalyticsEvent]);
|
|
79
|
+
var handleOnDelete = /*#__PURE__*/function () {
|
|
80
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
81
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
82
|
+
while (1) switch (_context.prev = _context.next) {
|
|
83
|
+
case 0:
|
|
84
|
+
if (!agent) {
|
|
85
|
+
_context.next = 3;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
_context.next = 3;
|
|
89
|
+
return deleteAgent(agent.id);
|
|
90
|
+
case 3:
|
|
91
|
+
case "end":
|
|
92
|
+
return _context.stop();
|
|
93
|
+
}
|
|
94
|
+
}, _callee);
|
|
95
|
+
}));
|
|
96
|
+
return function handleOnDelete() {
|
|
97
|
+
return _ref2.apply(this, arguments);
|
|
98
|
+
};
|
|
99
|
+
}();
|
|
69
100
|
(0, _react.useEffect)(function () {
|
|
70
101
|
if (!isLoading && agent) {
|
|
71
102
|
fireAnalytics((0, _analytics.profileCardRendered)('agent', 'content'));
|
|
@@ -117,7 +148,10 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
|
|
|
117
148
|
isAgentDefault: agent.is_default,
|
|
118
149
|
userDefinedConversationStarters: agent.user_defined_conversation_starters,
|
|
119
150
|
onConversationStarterClick: function onConversationStarterClick(conversationStarter) {
|
|
120
|
-
|
|
151
|
+
onConversationStarter({
|
|
152
|
+
agentId: agent.id,
|
|
153
|
+
prompt: 'conversationStarter'
|
|
154
|
+
});
|
|
121
155
|
}
|
|
122
156
|
})), /*#__PURE__*/_react.default.createElement(_Actions.AgentActions, {
|
|
123
157
|
isAgentCreatedByCurrentUser: isCreatedByViewingUser,
|
|
@@ -130,11 +164,9 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
|
|
|
130
164
|
onDuplicateAgent: function onDuplicateAgent() {
|
|
131
165
|
return _onDuplicateAgent(agent.id);
|
|
132
166
|
},
|
|
133
|
-
onDeleteAgent:
|
|
134
|
-
throw new Error('Function not implemented.');
|
|
135
|
-
},
|
|
167
|
+
onDeleteAgent: handleOnDelete,
|
|
136
168
|
onChatClick: function onChatClick() {
|
|
137
|
-
return onOpenChat
|
|
169
|
+
return onOpenChat ? onOpenChat(agent.id) : onOpenChatFullScreecn();
|
|
138
170
|
}
|
|
139
171
|
})));
|
|
140
172
|
};
|
|
@@ -141,7 +141,8 @@ var AgentProfileCardTrigger = exports.AgentProfileCardTrigger = function AgentPr
|
|
|
141
141
|
isCreatedByViewingUser: (profileData === null || profileData === void 0 || (_profileData$creatorI = profileData.creatorInfo) === null || _profileData$creatorI === void 0 ? void 0 : _profileData$creatorI.id) === viewingUserId,
|
|
142
142
|
cloudId: props.cloudId,
|
|
143
143
|
product: product,
|
|
144
|
-
errorType: error
|
|
144
|
+
errorType: error,
|
|
145
|
+
onOpenChat: props.onOpenChat
|
|
145
146
|
}));
|
|
146
147
|
};
|
|
147
148
|
return /*#__PURE__*/_react.default.createElement(_ProfileCardTrigger.default, (0, _extends2.default)({}, props, {
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useAgentUrlActions = exports.firstCharUpper = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var _atlassianContext = require("@atlaskit/atlassian-context");
|
|
12
|
+
var _url = require("../../../util/url");
|
|
13
|
+
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; }
|
|
14
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
|
+
var firstCharUpper = exports.firstCharUpper = function firstCharUpper(str) {
|
|
16
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
17
|
+
};
|
|
18
|
+
var ROVO_PARAM_PREFIX = 'rovoChat';
|
|
19
|
+
var createRovoParams = function createRovoParams(params) {
|
|
20
|
+
var rovoParams = {};
|
|
21
|
+
Object.entries(params).forEach(function (_ref) {
|
|
22
|
+
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
23
|
+
key = _ref2[0],
|
|
24
|
+
value = _ref2[1];
|
|
25
|
+
rovoParams["".concat(ROVO_PARAM_PREFIX, ".").concat(key)] = encodeURIComponent(value);
|
|
26
|
+
rovoParams["".concat(ROVO_PARAM_PREFIX).concat(firstCharUpper(key))] = encodeURIComponent(value);
|
|
27
|
+
});
|
|
28
|
+
return rovoParams;
|
|
29
|
+
};
|
|
30
|
+
var useAgentUrlActions = exports.useAgentUrlActions = function useAgentUrlActions(_ref3) {
|
|
31
|
+
var cloudId = _ref3.cloudId;
|
|
32
|
+
var onEditAgent = (0, _react.useCallback)(function (agentId) {
|
|
33
|
+
var url = "".concat((0, _atlassianContext.getATLContextUrl)('home'), "/agents/").concat(agentId, "/edit");
|
|
34
|
+
var urlWithParams = (0, _url.encodeParamsToUrl)(url, _objectSpread({
|
|
35
|
+
cloudId: cloudId
|
|
36
|
+
}, createRovoParams({
|
|
37
|
+
cloudId: cloudId
|
|
38
|
+
})));
|
|
39
|
+
window.open(urlWithParams, '_blank', 'noopener, noreferrer');
|
|
40
|
+
}, [cloudId]);
|
|
41
|
+
var onCopyAgent = (0, _react.useCallback)(function (agentId) {
|
|
42
|
+
var baseUrl = "".concat((0, _atlassianContext.getATLContextUrl)('home'), "/chat");
|
|
43
|
+
var urlWithParams = (0, _url.encodeParamsToUrl)(baseUrl, _objectSpread({
|
|
44
|
+
cloudId: cloudId
|
|
45
|
+
}, createRovoParams({
|
|
46
|
+
cloudId: cloudId,
|
|
47
|
+
agentId: agentId,
|
|
48
|
+
pathway: 'chat'
|
|
49
|
+
})));
|
|
50
|
+
navigator.clipboard.writeText(urlWithParams);
|
|
51
|
+
}, [cloudId]);
|
|
52
|
+
var onDuplicateAgent = (0, _react.useCallback)(function (agentId) {
|
|
53
|
+
var baseUrl = "".concat((0, _atlassianContext.getATLContextUrl)('home'), "/chat/agents/new");
|
|
54
|
+
var urlWithParams = (0, _url.encodeParamsToUrl)(baseUrl, _objectSpread({
|
|
55
|
+
cloudId: cloudId
|
|
56
|
+
}, createRovoParams({
|
|
57
|
+
cloudId: cloudId,
|
|
58
|
+
agentId: agentId,
|
|
59
|
+
pathway: 'agents-create'
|
|
60
|
+
})));
|
|
61
|
+
window.open(urlWithParams, '_blank', 'noopener, noreferrer');
|
|
62
|
+
}, [cloudId]);
|
|
63
|
+
var onConversationStarter = function onConversationStarter(_ref4) {
|
|
64
|
+
var agentId = _ref4.agentId,
|
|
65
|
+
prompt = _ref4.prompt;
|
|
66
|
+
var baseUrl = "".concat((0, _atlassianContext.getATLContextUrl)('home'), "/chat");
|
|
67
|
+
var urlWithParams = (0, _url.encodeParamsToUrl)(baseUrl, _objectSpread({
|
|
68
|
+
cloudId: cloudId
|
|
69
|
+
}, createRovoParams({
|
|
70
|
+
cloudId: cloudId,
|
|
71
|
+
agentId: agentId,
|
|
72
|
+
prompt: prompt
|
|
73
|
+
})));
|
|
74
|
+
window.open(urlWithParams, '_blank', 'noopener, noreferrer');
|
|
75
|
+
};
|
|
76
|
+
var onOpenChat = function onOpenChat() {
|
|
77
|
+
var baseUrl = "".concat((0, _atlassianContext.getATLContextUrl)('home'), "/chat");
|
|
78
|
+
var urlWithParams = (0, _url.encodeParamsToUrl)(baseUrl, _objectSpread({
|
|
79
|
+
cloudId: cloudId
|
|
80
|
+
}, createRovoParams({
|
|
81
|
+
cloudId: cloudId
|
|
82
|
+
})));
|
|
83
|
+
window.open(urlWithParams, '_blank', 'noopener, noreferrer');
|
|
84
|
+
};
|
|
85
|
+
return {
|
|
86
|
+
onEditAgent: onEditAgent,
|
|
87
|
+
onCopyAgent: onCopyAgent,
|
|
88
|
+
onDuplicateAgent: onDuplicateAgent,
|
|
89
|
+
onOpenChat: onOpenChat,
|
|
90
|
+
onConversationStarter: onConversationStarter
|
|
91
|
+
};
|
|
92
|
+
};
|