architwin 1.13.2 → 1.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/architwin.js +1 -1
- package/lib/atwinui/components/toolbar/pipeListPane.js +1 -1
- package/lib/atwinui/components/toolbar/screenSharePane.d.ts +18 -0
- package/lib/atwinui/components/toolbar/screenSharePane.js +362 -0
- package/lib/atwinui/components/toolbar/spaceUserListPane.d.ts +2 -2
- package/lib/atwinui/components/toolbar/spaceUserListPane.js +4 -4
- package/lib/atwinui/components/toolbar/tagIotFormPane.d.ts +1 -0
- package/lib/atwinui/components/toolbar/tagIotFormPane.js +121 -75
- package/lib/atwinui/components/toolbar/viewingRemoteSpace.d.ts +2 -2
- package/lib/atwinui/components/toolbar/viewingRemoteSpace.js +2 -1
- package/package.json +1 -1
|
@@ -37,7 +37,7 @@ export class PipeList {
|
|
|
37
37
|
</div>
|
|
38
38
|
<div class="at_form_container ">
|
|
39
39
|
<div class="at_field at_flex_column" style="${_pipeCategories ? '' : 'display: none;'}">
|
|
40
|
-
<label for="">${i18n.t('
|
|
40
|
+
<label for="">${i18n.t('SelectPipeType')}</label>
|
|
41
41
|
<div id="at-custom-pipe-category-dropdown" data-cy="at-custom-pipe-category-dropdown">
|
|
42
42
|
<div id="at-pipe-category-dropdown" class="at_dropdown at_flex at_flex_row at_space_between">
|
|
43
43
|
<div class="at_dropdown_toggle" id="at-pipe-category-dropdown-toggle" data-cy="at-pipe-category-dropdown-toggle">${i18n.t('NoSelection')}</div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ScreenShareRequest, ScreenShareSessionUser, ScreenShareUser } from '../../../types';
|
|
2
|
+
export declare function renderScreenSharePane(): HTMLElement;
|
|
3
|
+
export declare function renderUsersList(users: ScreenShareUser[]): void;
|
|
4
|
+
export declare function renderOnlineUserRow(user: ScreenShareUser): HTMLTableRowElement;
|
|
5
|
+
export declare function renderOfflineUserRow(user: ScreenShareUser): HTMLTableRowElement;
|
|
6
|
+
export declare function handleClickEventUserRow(): void;
|
|
7
|
+
export declare function renderSharingSpaceDetail(user: ScreenShareSessionUser): void;
|
|
8
|
+
export declare function handleClickEventBackToUserListLink(): void;
|
|
9
|
+
export declare function renderScreenShareRequestModal(request: ScreenShareRequest): void;
|
|
10
|
+
export declare function handleInputEventSelectPointerSettings(): void;
|
|
11
|
+
export declare function handleClickEventEndSessionBtn(): void;
|
|
12
|
+
export declare function handleScreenShareUsersUpdated(payload: {
|
|
13
|
+
screen_share_users: ScreenShareUser[];
|
|
14
|
+
space_data: Record<string, any>;
|
|
15
|
+
}): void;
|
|
16
|
+
export declare function handleScreenShareEndSessionEvent(): void;
|
|
17
|
+
export declare function handleScreenShareBackUserListPane(): void;
|
|
18
|
+
export declare function handleScreenShareAcceptRequest(payload: ScreenShareRequest): void;
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import { _currentSpace, dispatchSpaceEvent } from '../../../architwin';
|
|
2
|
+
import { SPACE_EVENTS } from '../../../types';
|
|
3
|
+
import i18n from './i18n';
|
|
4
|
+
let _spaceData = null;
|
|
5
|
+
let _currentUser = { id: 'host_user', name: 'host_user', onlineStatus: 'online' };
|
|
6
|
+
let _screenShareUsers = [];
|
|
7
|
+
let _screenShareUser;
|
|
8
|
+
let _screenShareSessionUsers = [];
|
|
9
|
+
let _screenShareSessionUser;
|
|
10
|
+
let _screenShareSession;
|
|
11
|
+
let _screenShareUsersSortSettings = { onlineFirst: true };
|
|
12
|
+
let _onDisplayComponent;
|
|
13
|
+
export function renderScreenSharePane() {
|
|
14
|
+
const element = document.createElement('div');
|
|
15
|
+
element.classList.add('at_container', 'at_w-13', 'at_h-full');
|
|
16
|
+
element.setAttribute('id', 'at-screen-share-pane');
|
|
17
|
+
element.setAttribute('data-cy', 'at-screen-share-pane');
|
|
18
|
+
element.innerHTML = `
|
|
19
|
+
<div id="at-users-pane" class="at_flex at_flex_column">
|
|
20
|
+
<div id="at-screen-share-pane-content" class="at_form_container">
|
|
21
|
+
<div class="at_flex at_justify_start">
|
|
22
|
+
<span class="at_bolder at_text_base">${i18n.t('Users')}</span>
|
|
23
|
+
</div>
|
|
24
|
+
<div id="at-user-list-container" class="at_disable_hover_users_list at_scrollable_container">
|
|
25
|
+
<table id="at-user-list-table">
|
|
26
|
+
</table>
|
|
27
|
+
</div>
|
|
28
|
+
<button type="button" id="at-screen-share-end-session-btn" class="at_screen_share_end_session_btn"
|
|
29
|
+
style="display:none;">
|
|
30
|
+
${i18n.t('EndSession')}
|
|
31
|
+
</button>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
`;
|
|
35
|
+
return element;
|
|
36
|
+
}
|
|
37
|
+
export function renderUsersList(users) {
|
|
38
|
+
_onDisplayComponent = 'USER_LIST';
|
|
39
|
+
_screenShareUsers = sortUsersByStatus(users);
|
|
40
|
+
const usersListContainer = document.getElementById("at-user-list-table");
|
|
41
|
+
if (!usersListContainer) {
|
|
42
|
+
console.error("usersListContainer does not exist in DOM");
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (users.length <= 0) {
|
|
46
|
+
console.log("No tags to load");
|
|
47
|
+
usersListContainer.innerHTML = ``;
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
usersListContainer.innerHTML = '';
|
|
51
|
+
users.forEach(user => {
|
|
52
|
+
const row = user.onlineStatus !== 'offline' ? renderOnlineUserRow(user) : renderOfflineUserRow(user);
|
|
53
|
+
usersListContainer.appendChild(row);
|
|
54
|
+
});
|
|
55
|
+
handleClickEventUserRow();
|
|
56
|
+
handleClickEventEndSessionBtn();
|
|
57
|
+
}
|
|
58
|
+
export function renderOnlineUserRow(user) {
|
|
59
|
+
const element = document.createElement("tr");
|
|
60
|
+
element.setAttribute('id', `at-user-row-${user.id}`);
|
|
61
|
+
element.dataset.id = user.id;
|
|
62
|
+
element.classList.add(...['at_online_user_row', 'at_flex', 'at_items_center', 'at_justify_between']);
|
|
63
|
+
const iconOrSharingText = user.onlineStatus === 'in_session'
|
|
64
|
+
? `
|
|
65
|
+
<div class="at_flex at_items_center at_justify_center">
|
|
66
|
+
<p>Now Sharing</p>
|
|
67
|
+
</div>
|
|
68
|
+
`
|
|
69
|
+
: `
|
|
70
|
+
<div class="at_user_screen_sharing_state at_flex at_items_center at_justify_center">
|
|
71
|
+
<div class="mdi mdi-monitor-share"></div>
|
|
72
|
+
</div>
|
|
73
|
+
`;
|
|
74
|
+
element.innerHTML = `
|
|
75
|
+
<td id="at_user_row_${user.id}">
|
|
76
|
+
<div class="at_flex at_flex_row at_items_center">
|
|
77
|
+
<div class="at_users_online_indicator"></div>
|
|
78
|
+
<span class="at_no_hover_text_online_user at_font_size_14px">${user.name}</span>
|
|
79
|
+
</div>
|
|
80
|
+
</td>
|
|
81
|
+
<td>
|
|
82
|
+
${iconOrSharingText}
|
|
83
|
+
</td>
|
|
84
|
+
`;
|
|
85
|
+
return element;
|
|
86
|
+
}
|
|
87
|
+
export function renderOfflineUserRow(user) {
|
|
88
|
+
const element = document.createElement("tr");
|
|
89
|
+
element.setAttribute('id', `at-user-row-${user.id}`);
|
|
90
|
+
element.dataset.id = user.id;
|
|
91
|
+
element.classList.add(...['at_offline_user_row', 'at_flex', 'at_items_center', 'at_justify_between']);
|
|
92
|
+
element.innerHTML = `
|
|
93
|
+
<td id="at_user_row_${user.id}">
|
|
94
|
+
<div class="at_flex at_flex_row at_items_center">
|
|
95
|
+
<div class="at_users_ofline_indicator"></div>
|
|
96
|
+
<span class="at_no_hover_text_offline_user at_font_size_14px at_offline_user_name_text">${user.name}</span>
|
|
97
|
+
</div>
|
|
98
|
+
</td>
|
|
99
|
+
`;
|
|
100
|
+
return element;
|
|
101
|
+
}
|
|
102
|
+
export function handleClickEventUserRow() {
|
|
103
|
+
const table = document.getElementById('at-user-list-table');
|
|
104
|
+
if (table) {
|
|
105
|
+
table.addEventListener('click', (event) => {
|
|
106
|
+
const target = event.target;
|
|
107
|
+
const row = target.closest('tr');
|
|
108
|
+
if (row && table.contains(row)) {
|
|
109
|
+
const id = row.dataset.id;
|
|
110
|
+
const user = _screenShareUsers.find(u => u.id === id);
|
|
111
|
+
_screenShareUser = user;
|
|
112
|
+
if (user.onlineStatus === 'offline')
|
|
113
|
+
return;
|
|
114
|
+
if (user.onlineStatus === 'in_session') {
|
|
115
|
+
const usersPaneContent = document.getElementById('at-screen-share-pane-content');
|
|
116
|
+
usersPaneContent.innerHTML = '';
|
|
117
|
+
const sessionUser = {
|
|
118
|
+
id: user.id,
|
|
119
|
+
name: user.name,
|
|
120
|
+
role: 'guest',
|
|
121
|
+
session: _screenShareSession
|
|
122
|
+
};
|
|
123
|
+
renderSharingSpaceDetail(sessionUser);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
const nowEpochSeconds = Math.floor(Date.now() / 1000);
|
|
127
|
+
const screenShareInvitation = {
|
|
128
|
+
user: user,
|
|
129
|
+
requestBy: _currentUser,
|
|
130
|
+
requestedAt: nowEpochSeconds,
|
|
131
|
+
status: 'pending'
|
|
132
|
+
};
|
|
133
|
+
dispatchSpaceEvent(SPACE_EVENTS.SCREEN_SHARE_REQUEST, screenShareInvitation);
|
|
134
|
+
// renderScreenShareRequestModal(screenShareInvitation) // moved it to front end
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
export function renderSharingSpaceDetail(user) {
|
|
141
|
+
console.log('*** _screenShareSession: ', _screenShareSession);
|
|
142
|
+
_onDisplayComponent = 'SPACE_SHARING_DETAILS';
|
|
143
|
+
_screenShareSessionUser = user;
|
|
144
|
+
const usersPaneContent = document.getElementById('at-screen-share-pane-content');
|
|
145
|
+
const element = document.createElement('div');
|
|
146
|
+
element.setAttribute('id', 'at-sharing-space-details');
|
|
147
|
+
element.innerHTML = `
|
|
148
|
+
<div class="at_flex at_justify_start">
|
|
149
|
+
<span class="at_bolder at_text_base at_capitalize">${i18n.t('SharingSpace')}</span>
|
|
150
|
+
</div>
|
|
151
|
+
<div class="at_flex at_flex_column at_gap_half_rem">
|
|
152
|
+
<div class="at_screen_share_guest_card at_flex at_flex_row at_justify_between at_items_center">
|
|
153
|
+
<div class="at_flex at_flex_column at_justify_start">
|
|
154
|
+
<p class="at_bolder at_text_base">${user.name}</p>
|
|
155
|
+
<span class="at_subtitle_text">Your are sharing <span class="at_bolder">${_currentSpace === null || _currentSpace === void 0 ? void 0 : _currentSpace.name}</span> to this person</span>
|
|
156
|
+
</div>
|
|
157
|
+
<div class="at_users_online_indicator"></div>
|
|
158
|
+
</div>
|
|
159
|
+
<div class="at_bolder at_text_base">Pointer</div>
|
|
160
|
+
<div class="at_flex at_flex_column at_justify_start">
|
|
161
|
+
<div class="at_screen_share_pointer_choices">
|
|
162
|
+
<select id="at_select_screen_share_pointer" name="at_screen_share_pointer">
|
|
163
|
+
<option value="on" ${(_screenShareSession === null || _screenShareSession === void 0 ? void 0 : _screenShareSession.isPointerEnabled) ? 'selected' : ''}>${i18n.t('On')}</option>
|
|
164
|
+
<option value="off" ${!(_screenShareSession === null || _screenShareSession === void 0 ? void 0 : _screenShareSession.isPointerEnabled) ? 'selected' : ''}>${i18n.t('Off')}</option>
|
|
165
|
+
</select>
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
<div class="at_flex at_flex_column at_justify_center at_items_center">
|
|
169
|
+
<div id="at-back-user-list-link" class="at_back_user_list_link">
|
|
170
|
+
<span class="mdi mdi-arrow-left"></span>
|
|
171
|
+
<p> ${i18n.t('BackToUserList')}</p>
|
|
172
|
+
</div>
|
|
173
|
+
<button type="button" id="at-screen-share-end-session-btn" class="at_screen_share_end_session_btn">
|
|
174
|
+
${i18n.t('EndSession')}
|
|
175
|
+
</button>
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
`;
|
|
179
|
+
usersPaneContent.appendChild(element);
|
|
180
|
+
handleClickEventBackToUserListLink();
|
|
181
|
+
handleInputEventSelectPointerSettings();
|
|
182
|
+
handleClickEventEndSessionBtn();
|
|
183
|
+
}
|
|
184
|
+
export function handleClickEventBackToUserListLink() {
|
|
185
|
+
const link = document.getElementById('at-back-user-list-link');
|
|
186
|
+
if (link) {
|
|
187
|
+
link.addEventListener('click', () => {
|
|
188
|
+
recreateUserListContainer();
|
|
189
|
+
renderUsersList(_screenShareUsers);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
function recreateUserListContainer() {
|
|
194
|
+
_onDisplayComponent = 'USER_LIST';
|
|
195
|
+
const usersPaneContent = document.getElementById('at-screen-share-pane-content');
|
|
196
|
+
usersPaneContent.innerHTML = '';
|
|
197
|
+
usersPaneContent.classList.add('at_form_container');
|
|
198
|
+
const endSessionBtnVisibility = _screenShareSession ? 'block' : 'none';
|
|
199
|
+
usersPaneContent.innerHTML = `
|
|
200
|
+
<div class="at_flex at_justify_start">
|
|
201
|
+
<span class="at_bolder at_text_base">${i18n.t('Users')}</span>
|
|
202
|
+
</div>
|
|
203
|
+
<div id="at-user-list-container" class="at_disable_hover_users_list at_scrollable_container">
|
|
204
|
+
<table id="at-user-list-table">
|
|
205
|
+
</table>
|
|
206
|
+
</div>
|
|
207
|
+
<button type="button" id="at-screen-share-end-session-btn" class="at_screen_share_end_session_btn"
|
|
208
|
+
style="display:${endSessionBtnVisibility};">
|
|
209
|
+
${i18n.t('End Session')}
|
|
210
|
+
</button>
|
|
211
|
+
`;
|
|
212
|
+
}
|
|
213
|
+
export function renderScreenShareRequestModal(request) {
|
|
214
|
+
_onDisplayComponent = 'SCREEN_SHARE_REQUEST_MODAL';
|
|
215
|
+
const element = document.createElement('dialog');
|
|
216
|
+
element.setAttribute('id', 'at-screen-share-request-modal');
|
|
217
|
+
element.classList.add('at_screen_share_request_modal');
|
|
218
|
+
element.innerHTML = `
|
|
219
|
+
<div class="at_screen_share_request_modal_content at_flex at_flex_column at_justify_center at_items_center">
|
|
220
|
+
<div class="at_screen_share_icon mdi mdi-monitor-multiple"></div>
|
|
221
|
+
<h1 class="at_screen_share_request_message">${i18n.t('ScreenShareRequestModalMessage')}</h1>
|
|
222
|
+
<p class="at_screen_share_request_sub_message"> ${i18n.t('ScreenShareRequestModalSubMessage')} <strong>${request.user.name}</strong></p>
|
|
223
|
+
<button type="button" id="at-screen-share-request-btn" class="at_screen_share_cancel_request_btn">${i18n.t('CancelRequest')}</button>
|
|
224
|
+
</div>
|
|
225
|
+
`;
|
|
226
|
+
// disabled modal dismiss via Esc key
|
|
227
|
+
function blockEscapeKey(e) {
|
|
228
|
+
if (e.key === 'Escape' && element.open) {
|
|
229
|
+
e.preventDefault();
|
|
230
|
+
e.stopPropagation();
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
element.addEventListener('keydown', blockEscapeKey);
|
|
234
|
+
element.addEventListener('cancel', (event) => {
|
|
235
|
+
event.preventDefault();
|
|
236
|
+
});
|
|
237
|
+
handleScreenShareCancelRequest(element, request);
|
|
238
|
+
document.body.appendChild(element);
|
|
239
|
+
element.showModal();
|
|
240
|
+
}
|
|
241
|
+
function handleScreenShareCancelRequest(dialogElement, request) {
|
|
242
|
+
var _a;
|
|
243
|
+
if (dialogElement) {
|
|
244
|
+
(_a = dialogElement.querySelector('#at-screen-share-request-btn')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {
|
|
245
|
+
const cancelRequest = Object.assign(Object.assign({}, request), { status: 'canceled' });
|
|
246
|
+
dispatchSpaceEvent(SPACE_EVENTS.SCREEN_SHARE_CANCEL_REQUEST, cancelRequest);
|
|
247
|
+
dialogElement.close();
|
|
248
|
+
dialogElement.remove();
|
|
249
|
+
_onDisplayComponent = 'USER_LIST';
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
export function handleInputEventSelectPointerSettings() {
|
|
254
|
+
const select = document.getElementById('at_select_screen_share_pointer');
|
|
255
|
+
if (select) {
|
|
256
|
+
select.addEventListener('input', (event) => {
|
|
257
|
+
const target = event.target;
|
|
258
|
+
const isPointerEnabled = target.value === 'on';
|
|
259
|
+
_screenShareSession = Object.assign(Object.assign({}, _screenShareSession), { isPointerEnabled });
|
|
260
|
+
dispatchSpaceEvent(SPACE_EVENTS.SCREEN_SHARE_POINTER_UPDATE, _screenShareSession);
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
export function handleClickEventEndSessionBtn() {
|
|
265
|
+
const button = document.getElementById('at-screen-share-end-session-btn');
|
|
266
|
+
if (button) {
|
|
267
|
+
button.addEventListener('click', () => {
|
|
268
|
+
// internal logic end session
|
|
269
|
+
removeScreenShareSessionData();
|
|
270
|
+
recreateUserListContainer();
|
|
271
|
+
renderUsersList(_screenShareUsers);
|
|
272
|
+
dispatchSpaceEvent(SPACE_EVENTS.SCREEN_SHARE_END_SESSION, handleScreenShareEndSessionEvent);
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
export function handleScreenShareUsersUpdated(payload) {
|
|
277
|
+
_spaceData = payload.space_data;
|
|
278
|
+
renderUsersList(payload.screen_share_users);
|
|
279
|
+
}
|
|
280
|
+
export function handleScreenShareEndSessionEvent() {
|
|
281
|
+
_screenShareSessionUsers = [];
|
|
282
|
+
_screenShareSession = {};
|
|
283
|
+
renderUsersList(_screenShareUsers);
|
|
284
|
+
}
|
|
285
|
+
export function handleScreenShareBackUserListPane() {
|
|
286
|
+
recreateUserListContainer();
|
|
287
|
+
renderUsersList(_screenShareUsers);
|
|
288
|
+
const btn = document.getElementById('at-screen-share-end-session-btn');
|
|
289
|
+
if (btn) {
|
|
290
|
+
btn.style.display = 'none';
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
export function handleScreenShareAcceptRequest(payload) {
|
|
294
|
+
const dialog = document.getElementById('at-screen-share-request-modal');
|
|
295
|
+
if (payload.status !== 'accepted') {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
// start screen share session
|
|
299
|
+
_screenShareSession = {
|
|
300
|
+
id: _spaceData.space_id,
|
|
301
|
+
spaceId: _spaceData.space_id,
|
|
302
|
+
host: _currentUser,
|
|
303
|
+
isPointerEnabled: false,
|
|
304
|
+
participantCount: 1
|
|
305
|
+
};
|
|
306
|
+
// close dialog
|
|
307
|
+
if (dialog) {
|
|
308
|
+
dialog.close();
|
|
309
|
+
dialog.remove();
|
|
310
|
+
}
|
|
311
|
+
// update screen share user list
|
|
312
|
+
const invitedUser = Object.assign(Object.assign({}, payload.user), { onlineStatus: 'in_session' });
|
|
313
|
+
const filteredUsers = _screenShareUsers.filter(u => u.id !== invitedUser.id);
|
|
314
|
+
const screenShareSessionUser = {
|
|
315
|
+
id: invitedUser.id,
|
|
316
|
+
name: invitedUser.name,
|
|
317
|
+
role: 'guest',
|
|
318
|
+
session: _screenShareSession
|
|
319
|
+
};
|
|
320
|
+
_screenShareUsers = [...filteredUsers, invitedUser];
|
|
321
|
+
_screenShareSessionUsers = [..._screenShareSessionUsers, screenShareSessionUser];
|
|
322
|
+
renderUsersList(_screenShareUsers);
|
|
323
|
+
showEndSessionBtn();
|
|
324
|
+
}
|
|
325
|
+
function sortUsersByStatus(users) {
|
|
326
|
+
function getStatusPriority(status) {
|
|
327
|
+
switch (status) {
|
|
328
|
+
case 'in_session': return 0;
|
|
329
|
+
case 'online': return 1;
|
|
330
|
+
case 'offline': return 2;
|
|
331
|
+
default: return 999;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
return users.sort((a, b) => getStatusPriority(a.onlineStatus) - getStatusPriority(b.onlineStatus));
|
|
335
|
+
}
|
|
336
|
+
function showEndSessionBtn() {
|
|
337
|
+
const btn = document.getElementById('at-screen-share-end-session-btn');
|
|
338
|
+
if (btn) {
|
|
339
|
+
btn.style.display = 'block';
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
function removeScreenShareSessionData() {
|
|
343
|
+
const screenShareSessionUserIds = _screenShareSessionUsers.map(u => u.id);
|
|
344
|
+
const updateUsersData = _screenShareUsers.map(user => {
|
|
345
|
+
if (screenShareSessionUserIds.includes(user.id)) {
|
|
346
|
+
return Object.assign(Object.assign({}, user), { onlineStatus: 'online' });
|
|
347
|
+
}
|
|
348
|
+
return user;
|
|
349
|
+
});
|
|
350
|
+
_screenShareSessionUser = null;
|
|
351
|
+
_screenShareSession = null;
|
|
352
|
+
_screenShareSessionUsers = [];
|
|
353
|
+
_screenShareUsers = updateUsersData;
|
|
354
|
+
}
|
|
355
|
+
const updateScreenSharePointer = (isOn) => {
|
|
356
|
+
const select = document.getElementById('at_select_screen_share_pointer');
|
|
357
|
+
if (!select) {
|
|
358
|
+
console.log('Screen share pointer select element not found');
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
select.selectedIndex = isOn ? 0 : 1;
|
|
362
|
+
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ScreenShareUser } from "../../../types";
|
|
2
2
|
export declare function renderSpaceUserListPane(): HTMLElement;
|
|
3
|
-
export declare function renderUserRows(userList:
|
|
3
|
+
export declare function renderUserRows(userList: ScreenShareUser[]): void;
|
|
@@ -55,7 +55,7 @@ export function renderUserRows(userList) {
|
|
|
55
55
|
circle.style.width = '15px';
|
|
56
56
|
circle.style.height = '15px';
|
|
57
57
|
circle.style.borderRadius = '50%';
|
|
58
|
-
circle.style.backgroundColor = user.
|
|
58
|
+
circle.style.backgroundColor = user.onlineStatus == 'online' || user.onlineStatus == 'in_session' ? '#22c55e' : '#ffffff';
|
|
59
59
|
circle.style.border = '1px solid #ccc';
|
|
60
60
|
circle.style.marginRight = '10px';
|
|
61
61
|
const nameEl = document.createElement('span');
|
|
@@ -69,10 +69,10 @@ export function renderUserRows(userList) {
|
|
|
69
69
|
divider.style.height = '1px';
|
|
70
70
|
// Right: share button styled like `at_button at_ghost`
|
|
71
71
|
const shareBtn = document.createElement('div');
|
|
72
|
-
shareBtn.id = `at-user-screen-share-btn-${user.
|
|
73
|
-
shareBtn.setAttribute('data-cy', `at-user-screen-share-btn-${user.
|
|
72
|
+
shareBtn.id = `at-user-screen-share-btn-${user.id}`;
|
|
73
|
+
shareBtn.setAttribute('data-cy', `at-user-screen-share-btn-${user.id}`);
|
|
74
74
|
shareBtn.setAttribute('target-pane', 'at-viewing-remote-space-pane');
|
|
75
|
-
if (user.
|
|
75
|
+
if (user.onlineStatus == 'in_session') {
|
|
76
76
|
const nowSharingText = document.createElement('span');
|
|
77
77
|
nowSharingText.textContent = 'Now Sharing';
|
|
78
78
|
nowSharingText.className = 'at_text_xs at_text_gray';
|
|
@@ -4,6 +4,7 @@ export declare let selectedIoTSystem: string;
|
|
|
4
4
|
export declare let selectedIotTag: any;
|
|
5
5
|
export declare function renderTagIOTFormPane(): HTMLDivElement;
|
|
6
6
|
export declare function setIotCategoryOptions(): void;
|
|
7
|
+
export declare function getIotCategoryOption(): ITagIOTCategory;
|
|
7
8
|
export declare function toggleIoTCategoryOptions(): void;
|
|
8
9
|
export declare function toggleIoTDevicesOptions(): void;
|
|
9
10
|
/**
|