architwin 1.0.71 → 1.0.73
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/atwinui/components/toolbar/card.d.ts +1 -1
- package/lib/atwinui/components/toolbar/index.d.ts +2 -2
- package/lib/atwinui/components/toolbar/index.js +2 -2
- package/lib/atwinui/components/toolbar/objectListPane.d.ts +1 -1
- package/lib/atwinui/components/toolbar/objectListPane.js +1 -1
- package/lib/atwinui/components/toolbar/tagFormPane.d.ts +2 -1
- package/lib/atwinui/components/toolbar/tagFormPane.js +217 -92
- package/lib/atwinui/components/toolbar/tagListPane.js +2 -2
- package/lib/atwinui/components/toolbar/tagMessagingPane.d.ts +1 -0
- package/lib/atwinui/components/toolbar/tagMessagingPane.js +55 -13
- package/lib/atwinui/events.js +21 -4
- package/lib/meeting/templates.js +76 -76
- package/lib/tag.js +3 -0
- package/lib/types.d.ts +1 -0
- package/package.json +1 -2
- package/static/atwinui.css +26 -2
- package/static/images/button.png +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IShowcaseObject } from "
|
|
1
|
+
import { IShowcaseObject } from "../../../types";
|
|
2
2
|
import { I3DObject } from "../../../types";
|
|
3
3
|
export declare function renderObjectCard(payload: IShowcaseObject): HTMLDivElement;
|
|
4
4
|
export declare function renderObjectRow(payload: IShowcaseObject): HTMLDivElement;
|
|
@@ -7,7 +7,7 @@ import { setActiveActionBtn } from "./actionBar";
|
|
|
7
7
|
import { renderLibraryCards } from "./libraryPane";
|
|
8
8
|
import { setActiveThemeCard } from "./themePane";
|
|
9
9
|
import { setActiveCard, setActiveLibraryCard, clearActiveCard, clearActiveLibraryCard } from "./card";
|
|
10
|
-
import { renderRecepientOptions, renderTagMessages, createTagMessage } from "./tagMessagingPane";
|
|
10
|
+
import { renderRecepientOptions, renderTagMessages, createTagMessage, setTagMessagingDetails } from "./tagMessagingPane";
|
|
11
11
|
declare let actionBar: HTMLElement;
|
|
12
12
|
declare function renderToolbarUI(payload: IToolbarData): void;
|
|
13
|
-
export { actionBar, tagFormMode, selectedTag, renderToolbarUI, renderObjectCards, setActiveMenu, clearActiveMenu, setActiveActionBtn, renderLibraryCards, renderTags, getTagFormData, renderTagRow, addClickEventToTagRow, setTagCategoriesOption, setActiveThemeCard, setActiveCard, setActiveLibraryCard, clearActiveCard, clearActiveLibraryCard, removeObjectCard, renderRecepientOptions, renderTagMessages, createTagMessage, renderCategoryDropdownOptions, toggleDropdown, setTagLink, getTagLink };
|
|
13
|
+
export { actionBar, tagFormMode, selectedTag, renderToolbarUI, renderObjectCards, setActiveMenu, clearActiveMenu, setActiveActionBtn, renderLibraryCards, renderTags, getTagFormData, renderTagRow, addClickEventToTagRow, setTagCategoriesOption, setActiveThemeCard, setActiveCard, setActiveLibraryCard, clearActiveCard, clearActiveLibraryCard, removeObjectCard, renderRecepientOptions, renderTagMessages, createTagMessage, renderCategoryDropdownOptions, toggleDropdown, setTagLink, getTagLink, setTagMessagingDetails };
|
|
@@ -10,7 +10,7 @@ import { renderLibraryPane, renderLibraryCards } from "./libraryPane";
|
|
|
10
10
|
import { renderTagMessagingPane } from "./tagMessagingPane";
|
|
11
11
|
import { renderThemePane, setActiveThemeCard } from "./themePane";
|
|
12
12
|
import { setActiveCard, setActiveLibraryCard, clearActiveCard, clearActiveLibraryCard } from "./card";
|
|
13
|
-
import { renderRecepientOptions, renderTagMessages, createTagMessage } from "./tagMessagingPane";
|
|
13
|
+
import { renderRecepientOptions, renderTagMessages, createTagMessage, setTagMessagingDetails } from "./tagMessagingPane";
|
|
14
14
|
let iFrame, sidebarContainer, objectCardsContainer, tagListContainer;
|
|
15
15
|
let menuBar, actionBar, objectListPane, addObjectPane, tagListPane, addObjectForm, tagFormPane, addMediaScreenForm, libraryPane, tagMessagingPane, themePane;
|
|
16
16
|
function getIframeElement(iframeId) {
|
|
@@ -61,4 +61,4 @@ function renderToolbarUI(payload) {
|
|
|
61
61
|
tagMessagingPane.style.display = 'none';
|
|
62
62
|
themePane.style.display = 'none';
|
|
63
63
|
}
|
|
64
|
-
export { actionBar, tagFormMode, selectedTag, renderToolbarUI, renderObjectCards, setActiveMenu, clearActiveMenu, setActiveActionBtn, renderLibraryCards, renderTags, getTagFormData, renderTagRow, addClickEventToTagRow, setTagCategoriesOption, setActiveThemeCard, setActiveCard, setActiveLibraryCard, clearActiveCard, clearActiveLibraryCard, removeObjectCard, renderRecepientOptions, renderTagMessages, createTagMessage, renderCategoryDropdownOptions, toggleDropdown, setTagLink, getTagLink };
|
|
64
|
+
export { actionBar, tagFormMode, selectedTag, renderToolbarUI, renderObjectCards, setActiveMenu, clearActiveMenu, setActiveActionBtn, renderLibraryCards, renderTags, getTagFormData, renderTagRow, addClickEventToTagRow, setTagCategoriesOption, setActiveThemeCard, setActiveCard, setActiveLibraryCard, clearActiveCard, clearActiveLibraryCard, removeObjectCard, renderRecepientOptions, renderTagMessages, createTagMessage, renderCategoryDropdownOptions, toggleDropdown, setTagLink, getTagLink, setTagMessagingDetails };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IShowcaseObject } from "
|
|
1
|
+
import { IShowcaseObject } from "../../../types";
|
|
2
2
|
export declare function renderObjectListPane(cardList: Array<IShowcaseObject>): HTMLElement;
|
|
3
3
|
export declare function renderObjectCards(cardList: Array<IShowcaseObject>): void;
|
|
4
4
|
export declare function addObjectCard(objectCards: HTMLElement, payload: IShowcaseObject): void;
|
|
@@ -34,7 +34,7 @@ export function renderObjectListPane(cardList) {
|
|
|
34
34
|
<span class="mdi mdi-list-box"></span>
|
|
35
35
|
</div>
|
|
36
36
|
</div>
|
|
37
|
-
<div class="at_scrollable_container" id="at-object-cards" data-cy="at-object-cards">
|
|
37
|
+
<div class="at_scrollable_container at_h-min-60" id="at-object-cards" data-cy="at-object-cards">
|
|
38
38
|
|
|
39
39
|
</div>
|
|
40
40
|
<div class="at_button_row at_justify_end">
|
|
@@ -11,5 +11,6 @@ export declare function getTagFormData(): {
|
|
|
11
11
|
tagSubcategoryId?: string;
|
|
12
12
|
};
|
|
13
13
|
export declare function setTagCategoriesOption(): void;
|
|
14
|
-
export declare function toggleDropdown(): void;
|
|
14
|
+
export declare function toggleDropdown(elementId: string): void;
|
|
15
15
|
export declare function renderCategoryDropdownOptions(elementId: string, items: Array<ITagCategory>): void;
|
|
16
|
+
export declare function renderSubcategoryDropdownOptions(elementId: string, items: Array<ITagCategory>): void;
|
|
@@ -4,6 +4,7 @@ let mode = 'adding';
|
|
|
4
4
|
let tagNameInput, tagDescriptionInput, tagEmbedInput, tagCategoryDropdown, tagSubcategoryDropdown;
|
|
5
5
|
let selectedCategoryId = undefined;
|
|
6
6
|
let selectedSubCategoryId = undefined;
|
|
7
|
+
let isChevronEventAdded = false;
|
|
7
8
|
export let tagFormMode = "ADD" /* FORM_MODE.ADD */;
|
|
8
9
|
export let selectedTag = undefined;
|
|
9
10
|
export function renderTagFormPane() {
|
|
@@ -16,61 +17,77 @@ export function renderTagFormPane() {
|
|
|
16
17
|
element.setAttribute('id', 'at-tag-form-pane');
|
|
17
18
|
element.setAttribute('data-cy', 'at-tag-form-pane');
|
|
18
19
|
element.innerHTML = `
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<div class="
|
|
38
|
-
<span class="mdi mdi-triangle-down at_chevron"></span>
|
|
39
|
-
</div>
|
|
40
|
-
<div class="at_dropdown_options" id="at-category-options">
|
|
20
|
+
<div class="at_panel_header">
|
|
21
|
+
<span>Tags</span>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="at_form_container at_h-min-65">
|
|
24
|
+
<!-- <div class="at_field at_flex_row" style="${_tagCategories ? '' : 'display: none;'}">
|
|
25
|
+
<label for="">Category</label>
|
|
26
|
+
<select class="at_transparent_dropdown at_w-full" name="" id="at-category-dropdown" data-cy="at-category-dropdown">
|
|
27
|
+
<option value="none" selected>No category</option>
|
|
28
|
+
</select>
|
|
29
|
+
</div> -->
|
|
30
|
+
<div class="at_field at_flex_column" style="${_tagCategories ? '' : 'display: none;'}">
|
|
31
|
+
<label for="">Category</label>
|
|
32
|
+
<div class="at_dropdown" id="at-custom-category-dropdown" data-cy="at-custom-category-dropdown">
|
|
33
|
+
<div class="at_flex at_flex_row at_space_between">
|
|
34
|
+
<div class="at_dropdown_toggle" id="at-category-dropdown-toggle" data-cy="at-category-dropdown-toggle">No selection</div>
|
|
35
|
+
<span class="mdi mdi-triangle-down at_chevron" id="at-category-chevron" data-cy="at-category-chevron"></span>
|
|
36
|
+
</div>
|
|
37
|
+
<div style="position:absolute;">
|
|
38
|
+
<div class="at_dropdown_options" id="at-category-options" data-cy="at-category-options">
|
|
41
39
|
|
|
42
40
|
</div>
|
|
43
41
|
</div>
|
|
44
|
-
</div> -->
|
|
45
|
-
<div class="at_field at_flex_row" style="${_tagCategories ? '' : 'display: none;'}">
|
|
46
|
-
<label for="">Subcategory</label>
|
|
47
|
-
<select class="at_transparent_dropdown" name="" id="at-subcategory-dropdown" data-cy="at-subcategory-dropdown">
|
|
48
|
-
<option value="none" selected>No subcategory</option>
|
|
49
|
-
</select>
|
|
50
|
-
</div>
|
|
51
|
-
<div class="at-field at_flex_row">
|
|
52
|
-
<label for="">Tag Name</label>
|
|
53
|
-
<input class="at_field_input at_w-full" type="text" name="tag_name" id="at-tag-name-input" data-cy="at-tag-name-input" placeholder="Ex: Wall Painting">
|
|
54
|
-
</div>
|
|
55
|
-
<div class="at-field at_flex_column">
|
|
56
|
-
<label for="">Description</label>
|
|
57
|
-
<textarea name="" id="at-tag-description-input" data-cy="at-tag-description-input" class="at_textarea"></textarea>
|
|
58
|
-
</div>
|
|
59
|
-
<div class="at-field at_flex_column">
|
|
60
|
-
<label for="">Embed Media</label>
|
|
61
|
-
<textarea name="" id="at-tag-embed-input" data-cy="at-tag-embed-input" class="at_textarea"></textarea>
|
|
62
42
|
</div>
|
|
63
43
|
</div>
|
|
64
|
-
<div class="
|
|
65
|
-
<
|
|
66
|
-
|
|
67
|
-
<
|
|
68
|
-
</
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
44
|
+
<!-- <div class="at_field at_flex_column" style="${_tagCategories ? '' : 'display: none;'}">
|
|
45
|
+
<label for="">Subcategory</label>
|
|
46
|
+
<select class="at_transparent_dropdown" name="" id="at-subcategory-dropdown" data-cy="at-subcategory-dropdown">
|
|
47
|
+
<option value="none" selected>No subcategory</option>
|
|
48
|
+
</select>
|
|
49
|
+
</div> -->
|
|
50
|
+
<div class="at_field at_flex_column" style="${_tagCategories ? '' : 'display: none;'}">
|
|
51
|
+
<label for="">Subcategory</label>
|
|
52
|
+
<div class="at_dropdown" id="at-custom-subcategory-dropdown" data-cy="at-custom-subcategory-dropdown">
|
|
53
|
+
<div class="at_flex at_flex_row at_space_between">
|
|
54
|
+
<div class="at_dropdown_toggle" id="at-subcategory-dropdown-toggle" data-cy="at-subcategory-dropdown-toggle">No selection</div>
|
|
55
|
+
<span class="mdi mdi-triangle-down at_chevron" id="at-subcategory-chevron" data-cy="at-subcategory-chevron"></span>
|
|
56
|
+
</div>
|
|
57
|
+
<div style="position:absolute;">
|
|
58
|
+
<div class="at_dropdown_options" id="at-subcategory-options" data-cy="at-subcategory-options">
|
|
59
|
+
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
72
62
|
</div>
|
|
73
63
|
</div>
|
|
64
|
+
<div class="at-field at_flex_row">
|
|
65
|
+
<label for="">Tag Name</label>
|
|
66
|
+
<input class="at_field_input at_w-full" type="text" name="tag_name" id="at-tag-name-input" data-cy="at-tag-name-input" placeholder="Ex: Wall Painting">
|
|
67
|
+
</div>
|
|
68
|
+
<div class="at_field at_flex_row at_items_center">
|
|
69
|
+
<label for="">Move Tag</label>
|
|
70
|
+
<span class="mdi mdi-map-marker at_icon" id="at-move-tag-btn" data-cy="at-move-tag-btn"></span>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="at-field at_flex_column">
|
|
73
|
+
<label for="">Description</label>
|
|
74
|
+
<textarea name="" id="at-tag-description-input" data-cy="at-tag-description-input" class="at_textarea"></textarea>
|
|
75
|
+
</div>
|
|
76
|
+
<div class="at-field at_flex_column">
|
|
77
|
+
<label for="">Embed Media</label>
|
|
78
|
+
<textarea name="" id="at-tag-embed-input" data-cy="at-tag-embed-input" class="at_textarea"></textarea>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
<div class="at_button_row at_justify_between" >
|
|
82
|
+
<div class="at_button at_ghost" style="margin-top: auto;" id="at-cancel-tag-form-btn" data-cy="at-cancel-tag-form-btn" target-pane="at-tag-list-pane">
|
|
83
|
+
Cancel
|
|
84
|
+
<span class="mdi mdi-close-circle-outline"></span>
|
|
85
|
+
</div>
|
|
86
|
+
<div class="at_button at_ghost" id="at-save-tag-btn" data-cy="at-save-tag-btn">
|
|
87
|
+
Save Tag
|
|
88
|
+
<span class="mdi mdi-plus-circle-outline"></span>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
74
91
|
`;
|
|
75
92
|
return element;
|
|
76
93
|
}
|
|
@@ -93,20 +110,20 @@ export function initFormData(tagId) {
|
|
|
93
110
|
tagNameInput.value = targetTag.json_data.label;
|
|
94
111
|
tagDescriptionInput.value = targetTag.json_data.description;
|
|
95
112
|
tagEmbedInput.value = '';
|
|
96
|
-
const tagCategoryOption = tagCategoryDropdown.querySelector(`option[value="${tagCategory.uuid}"]`)
|
|
97
|
-
if (tagCategoryOption) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
const tagSubcategoryOption = tagSubcategoryDropdown.querySelector(`option[value="${targetTag.category_uuid}"]`)
|
|
104
|
-
console.log('tagSubCategoryId', tagSubcategoryOption, targetTag.category_uuid)
|
|
105
|
-
if (tagSubcategoryOption) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
113
|
+
// const tagCategoryOption = tagCategoryDropdown.querySelector(`option[value="${tagCategory.uuid}"]`) as HTMLOptionElement
|
|
114
|
+
// if (tagCategoryOption) {
|
|
115
|
+
// tagCategoryOption.selected = true;
|
|
116
|
+
// tagCategoryDropdown.dispatchEvent(new Event('change'));
|
|
117
|
+
// //make sure the subcategory dropdown is updated based on selected category dropdown
|
|
118
|
+
// handleCategoryDropdownChange
|
|
119
|
+
// }
|
|
120
|
+
// const tagSubcategoryOption = tagSubcategoryDropdown.querySelector(`option[value="${targetTag.category_uuid}"]`) as HTMLOptionElement
|
|
121
|
+
// console.log('tagSubCategoryId', tagSubcategoryOption, targetTag.category_uuid)
|
|
122
|
+
// if (tagSubcategoryOption) {
|
|
123
|
+
// tagSubcategoryOption.selected = true;
|
|
124
|
+
// tagSubcategoryDropdown.dispatchEvent(new Event('change'));
|
|
125
|
+
// handleSubCategoryDropdownChange
|
|
126
|
+
// }
|
|
110
127
|
// if (tagNameInput) {
|
|
111
128
|
// const tagName = tagNameInput.value
|
|
112
129
|
// const tagDescription = tagDescriptionInput.value
|
|
@@ -136,6 +153,29 @@ export function initFormData(tagId) {
|
|
|
136
153
|
tagDescriptionInput.value = '';
|
|
137
154
|
tagEmbedInput.value = '';
|
|
138
155
|
}
|
|
156
|
+
const categoryChevron = document.getElementById('at-category-chevron');
|
|
157
|
+
const subcategoryChevron = document.getElementById('at-subcategory-chevron');
|
|
158
|
+
if (categoryChevron) {
|
|
159
|
+
if (isChevronEventAdded == false) {
|
|
160
|
+
categoryChevron.addEventListener('click', () => {
|
|
161
|
+
toggleDropdown('at-category-options');
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
console.log("Click event already attached to category chevron");
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (subcategoryChevron) {
|
|
169
|
+
if (isChevronEventAdded == false) {
|
|
170
|
+
subcategoryChevron.addEventListener('click', () => {
|
|
171
|
+
toggleDropdown('at-subcategory-options');
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
console.log("Click event already attached to subcategory chevron");
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
isChevronEventAdded = true;
|
|
139
179
|
}
|
|
140
180
|
function setInputElements() {
|
|
141
181
|
tagNameInput = document.getElementById('at-tag-name-input');
|
|
@@ -213,46 +253,79 @@ function handleCategoryDropdownChange(event) {
|
|
|
213
253
|
}
|
|
214
254
|
export function setTagCategoriesOption() {
|
|
215
255
|
if (_tagCategories) {
|
|
216
|
-
console.log("application will use tag categories", _tagCategories)
|
|
217
|
-
const selectElementCategoryDropdown = document.getElementById('at-category-dropdown');
|
|
218
|
-
clearDropdown(selectElementCategoryDropdown)
|
|
219
|
-
const selectElementSubcategoryDropdown = document.getElementById('at-subcategory-dropdown');
|
|
220
|
-
console.log('selectElementSubcategoryDropdown', selectElementSubcategoryDropdown)
|
|
221
|
-
clearDropdown(selectElementSubcategoryDropdown)
|
|
222
|
-
console.log('selectElementCategoryDropdown', selectElementCategoryDropdown)
|
|
223
|
-
const defaultOption = document.createElement('option');
|
|
224
|
-
defaultOption.value = 'none';
|
|
225
|
-
defaultOption.textContent = 'No Category';
|
|
226
|
-
selectElementCategoryDropdown.appendChild(defaultOption);
|
|
227
|
-
_tagCategories.forEach((category, index) => {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
});
|
|
256
|
+
// console.log("application will use tag categories", _tagCategories)
|
|
257
|
+
// const selectElementCategoryDropdown = document.getElementById('at-category-dropdown');
|
|
258
|
+
// clearDropdown(selectElementCategoryDropdown)
|
|
259
|
+
// const selectElementSubcategoryDropdown = document.getElementById('at-subcategory-dropdown');
|
|
260
|
+
// console.log('selectElementSubcategoryDropdown', selectElementSubcategoryDropdown)
|
|
261
|
+
// clearDropdown(selectElementSubcategoryDropdown)
|
|
262
|
+
// console.log('selectElementCategoryDropdown', selectElementCategoryDropdown)
|
|
263
|
+
// const defaultOption = document.createElement('option');
|
|
264
|
+
// defaultOption.value = 'none';
|
|
265
|
+
// defaultOption.textContent = 'No Category';
|
|
266
|
+
// selectElementCategoryDropdown.appendChild(defaultOption);
|
|
267
|
+
// _tagCategories.forEach((category, index) => {
|
|
268
|
+
// const option = document.createElement('option');
|
|
269
|
+
// option.value = category.uuid;
|
|
270
|
+
// option.textContent = category.name;
|
|
271
|
+
// // // Set the "selected" attribute for the first option if it's the default option
|
|
272
|
+
// // if (index === 0) {
|
|
273
|
+
// // option.selected = true;
|
|
274
|
+
// // }
|
|
275
|
+
// console.log("option", option)
|
|
276
|
+
// selectElementCategoryDropdown.appendChild(option);
|
|
277
|
+
// });
|
|
238
278
|
//Render options of new dropdown
|
|
239
|
-
|
|
240
|
-
selectElementCategoryDropdown.addEventListener("change", handleCategoryDropdownChange)
|
|
279
|
+
renderCategoryDropdownOptions('at-category-options', _tagCategories);
|
|
280
|
+
//selectElementCategoryDropdown.addEventListener("change", handleCategoryDropdownChange)
|
|
241
281
|
}
|
|
242
282
|
else {
|
|
243
283
|
console.log("application will not use tag categories");
|
|
244
284
|
}
|
|
245
285
|
}
|
|
246
|
-
export function toggleDropdown() {
|
|
247
|
-
const dropdownOptions = document.querySelector('.at_dropdown_options');
|
|
286
|
+
export function toggleDropdown(elementId) {
|
|
287
|
+
//const dropdownOptions = document.querySelector('.at_dropdown_options');
|
|
288
|
+
if (!elementId || elementId === '' || elementId == null) {
|
|
289
|
+
console.error("Element is undefined or empty");
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
const dropdownOptions = document.getElementById(elementId);
|
|
248
293
|
dropdownOptions.classList.toggle('open');
|
|
249
294
|
}
|
|
250
|
-
function selectOption(option) {
|
|
251
|
-
const dropdownToggle = document.querySelector('.at_dropdown_toggle');
|
|
295
|
+
function selectOption(option, elementId) {
|
|
296
|
+
//const dropdownToggle = document.querySelector('.at_dropdown_toggle');
|
|
297
|
+
if (!elementId || elementId === '' || elementId == null) {
|
|
298
|
+
console.error("ElementId is empty or undefined");
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
const dropdownToggle = document.getElementById(elementId);
|
|
252
302
|
dropdownToggle.textContent = option.textContent;
|
|
253
303
|
dropdownToggle.innerHTML = option.innerHTML;
|
|
254
304
|
//selectedText = option.textContent;
|
|
255
|
-
|
|
305
|
+
const categoryUUID = option.getAttribute('category-uuid');
|
|
306
|
+
const categoryType = option.getAttribute('dropdown-type');
|
|
307
|
+
if (categoryUUID && categoryUUID !== null) {
|
|
308
|
+
if (categoryType == 'category') {
|
|
309
|
+
selectedCategoryId = categoryUUID;
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
selectedSubCategoryId = categoryUUID;
|
|
313
|
+
}
|
|
314
|
+
//Populate subcategory dropdown
|
|
315
|
+
const targetCategory = _tagCategories.find(cat => cat.uuid === categoryUUID);
|
|
316
|
+
if (targetCategory && targetCategory.subcategories && targetCategory.subcategories.length > 0) {
|
|
317
|
+
console.log("Subcategories found", targetCategory.subcategories);
|
|
318
|
+
renderSubcategoryDropdownOptions('at-subcategory-options', targetCategory.subcategories);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
let toggleId = '';
|
|
322
|
+
if (elementId === 'at-category-dropdown-toggle') {
|
|
323
|
+
toggleId = 'at-category-options';
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
toggleId = 'at-subcategory-options';
|
|
327
|
+
}
|
|
328
|
+
toggleDropdown(toggleId);
|
|
256
329
|
}
|
|
257
330
|
export function renderCategoryDropdownOptions(elementId, items) {
|
|
258
331
|
const element = document.getElementById(elementId);
|
|
@@ -264,6 +337,7 @@ export function renderCategoryDropdownOptions(elementId, items) {
|
|
|
264
337
|
console.error("Parameter items is undefined");
|
|
265
338
|
return;
|
|
266
339
|
}
|
|
340
|
+
element.innerHTML = ``;
|
|
267
341
|
//Add the no selection option
|
|
268
342
|
const noSelection = document.createElement('div');
|
|
269
343
|
noSelection.classList.add('at_option');
|
|
@@ -280,12 +354,63 @@ export function renderCategoryDropdownOptions(elementId, items) {
|
|
|
280
354
|
const option = document.createElement('div');
|
|
281
355
|
option.classList.add('at_option');
|
|
282
356
|
option.setAttribute('category-uuid', item.uuid);
|
|
357
|
+
option.setAttribute('dropdown-type', 'category');
|
|
358
|
+
option.setAttribute('data-cy', `at-category-option-${item.uuid}`);
|
|
283
359
|
option.innerHTML = `
|
|
284
360
|
<span class="at_colored-indicator" style="background-color:${convertToCssRgb(item.json_data.color.rgb)}"></span>
|
|
285
361
|
${item.name}
|
|
286
362
|
`;
|
|
287
363
|
option.onclick = () => {
|
|
288
|
-
selectOption(option);
|
|
364
|
+
selectOption(option, 'at-category-dropdown-toggle');
|
|
365
|
+
};
|
|
366
|
+
element.appendChild(option);
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
export function renderSubcategoryDropdownOptions(elementId, items) {
|
|
370
|
+
const element = document.getElementById(elementId);
|
|
371
|
+
if (!element) {
|
|
372
|
+
console.error("Parameter element is undefined");
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
if (!items) {
|
|
376
|
+
console.error("Parameter items is undefined");
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
//Clear previosly appended children
|
|
380
|
+
element.innerHTML = ``;
|
|
381
|
+
const selectedSubcategoryOption = document.getElementById('at-subcategory-dropdown-toggle');
|
|
382
|
+
if (selectedSubcategoryOption) {
|
|
383
|
+
selectedSubcategoryOption.textContent = 'No selection';
|
|
384
|
+
selectedSubCategoryId = undefined;
|
|
385
|
+
}
|
|
386
|
+
//Add the no selection option
|
|
387
|
+
const noSelection = document.createElement('div');
|
|
388
|
+
noSelection.classList.add('at_option');
|
|
389
|
+
noSelection.setAttribute('category-uuid', '');
|
|
390
|
+
noSelection.innerHTML = `
|
|
391
|
+
<span class="mdi mdi-circle-slice-1"></span> No selection
|
|
392
|
+
`;
|
|
393
|
+
element.appendChild(noSelection);
|
|
394
|
+
if (items.length <= 0) {
|
|
395
|
+
console.log("No items to render");
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
items.forEach(item => {
|
|
399
|
+
const option = document.createElement('div');
|
|
400
|
+
option.classList.add('at_option');
|
|
401
|
+
option.setAttribute('category-uuid', item.uuid);
|
|
402
|
+
option.setAttribute('dropdown-type', 'subcategory');
|
|
403
|
+
option.setAttribute('data-cy', `at-category-option-${item.uuid}`);
|
|
404
|
+
option.innerHTML = `
|
|
405
|
+
${item.json_data.iconUrl ? `
|
|
406
|
+
<img class="at_avatar_xs" style="display:inline-block" src="${item.json_data.iconUrl}"/>
|
|
407
|
+
` : `
|
|
408
|
+
<span class="at_colored-indicator" style="background-color:rgb(255,255,255)"></span>
|
|
409
|
+
`}
|
|
410
|
+
${item.name}
|
|
411
|
+
`;
|
|
412
|
+
option.onclick = () => {
|
|
413
|
+
selectOption(option, 'at-subcategory-dropdown-toggle');
|
|
289
414
|
};
|
|
290
415
|
element.appendChild(option);
|
|
291
416
|
});
|
|
@@ -27,11 +27,11 @@ export function renderTagListPane() {
|
|
|
27
27
|
<div class="at_panel_header">
|
|
28
28
|
<span>Tags</span>
|
|
29
29
|
</div>
|
|
30
|
-
<div class="at_scrollable_container at_h-min-
|
|
30
|
+
<div class="at_scrollable_container at_h-min-60">
|
|
31
31
|
<table id="at-tag-list-container">
|
|
32
32
|
</table>
|
|
33
33
|
</div>
|
|
34
|
-
<div class="at_button_row at_justify_end" >
|
|
34
|
+
<div class="at_button_row at_justify_end" style="">
|
|
35
35
|
<div class="at_button at_ghost" id="at-add-tag-btn" data-cy="at-add-tag-btn" target-pane="at-tag-form-pane">
|
|
36
36
|
Add Tag
|
|
37
37
|
<span class="mdi mdi-plus-circle-outline"></span>
|
|
@@ -14,3 +14,4 @@ export declare function clearSelectedMedia(): void;
|
|
|
14
14
|
export declare function getTagMessageText(): string;
|
|
15
15
|
export declare function clearTagMessageInput(): void;
|
|
16
16
|
export declare function createTagMessage(): TagMessage;
|
|
17
|
+
export declare function setTagMessagingDetails(tagId: string): void;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { getTagMessageRecepients, getTagMessages, getSelectedTagUuid, dispatchSpaceEvent } from "../../../architwin";
|
|
1
|
+
import { getTagMessageRecepients, getTagMessages, getSelectedTagUuid, dispatchSpaceEvent, _tags } from "../../../architwin";
|
|
2
2
|
import { SPACE_EVENTS } from "../../../types";
|
|
3
|
-
import { generateUUID } from "../../../convert";
|
|
3
|
+
import { convertToCssRgb, generateUUID } from "../../../convert";
|
|
4
4
|
import { Notyf } from 'notyf';
|
|
5
5
|
import 'notyf/notyf.min.css';
|
|
6
|
-
import {
|
|
6
|
+
import { parseISO } from 'date-fns';
|
|
7
|
+
import { formatWithOptions } from "date-fns/fp";
|
|
8
|
+
import { ja } from "date-fns/locale";
|
|
7
9
|
let notyf = new Notyf({ position: { x: 'left', y: 'bottom' } });
|
|
8
10
|
export function renderTagMessagingPane() {
|
|
9
11
|
const element = document.createElement('div');
|
|
@@ -18,8 +20,8 @@ export function renderTagMessagingPane() {
|
|
|
18
20
|
<div class="at_panel_header">
|
|
19
21
|
<div class="at_button_row at_justify_between">
|
|
20
22
|
<div>
|
|
21
|
-
<div class="at_colored-indicator" style="background-color:rgb(0,0,0)"></div>
|
|
22
|
-
<span>Tag Name</span>
|
|
23
|
+
<div class="at_colored-indicator" id="at-tag-color-messaging" style="background-color:rgb(0,0,0)"></div>
|
|
24
|
+
<span id='at-tag-name-messaging'>Tag Name</span>
|
|
23
25
|
</div>
|
|
24
26
|
<span class="mdi mdi-keyboard-return at_icon" id="at-cancel-tag-message-btn" data-cy="at-cancel-tag-message-btn" target-pane="at-tag-list-pane"></span>
|
|
25
27
|
</div>
|
|
@@ -85,7 +87,7 @@ export function renderTagMessages() {
|
|
|
85
87
|
}
|
|
86
88
|
else {
|
|
87
89
|
chatContainer.innerHTML = `
|
|
88
|
-
<span id="at-no-message">No messages</span>
|
|
90
|
+
<span data-cy="at-no-messages-prompt" id="at-no-message">No messages</span>
|
|
89
91
|
`;
|
|
90
92
|
}
|
|
91
93
|
return;
|
|
@@ -104,6 +106,10 @@ export function renderTagMessage(message, optimisticUpdate = false) {
|
|
|
104
106
|
chat.classList.add('at_flex_row');
|
|
105
107
|
chat.classList.add('at_justify_start');
|
|
106
108
|
chat.style.display = 'flex';
|
|
109
|
+
const dateToString = formatWithOptions({ locale: ja }, 'd MMMM yyyy hh:mm:ss');
|
|
110
|
+
//const created_on = format(new Date(), 'yyyy-MM-dd HH:mm:ss')
|
|
111
|
+
const parsedDate = parseISO(message.created_on);
|
|
112
|
+
const created_on = dateToString(parsedDate);
|
|
107
113
|
if (optimisticUpdate && message.binaryFile) {
|
|
108
114
|
const reader = new FileReader();
|
|
109
115
|
reader.onload = function (event) {
|
|
@@ -111,7 +117,7 @@ export function renderTagMessage(message, optimisticUpdate = false) {
|
|
|
111
117
|
console.log('Data URL:', dataURL);
|
|
112
118
|
message.image_url = dataURL;
|
|
113
119
|
chat.innerHTML = `
|
|
114
|
-
<span class="at_chat_avatar at_chat_avatar_sender">${message.owner_name.charAt(0)}</span>
|
|
120
|
+
<span class="at_chat_avatar at_chat_avatar_sender">${message.owner_name.charAt(0).toUpperCase()}</span>
|
|
115
121
|
<div class="at_chat_bubble at_chat_bubble_sent">
|
|
116
122
|
<div>
|
|
117
123
|
<small>${message.owner_name} ➡️ ${message.to_user_name}</small> <br>
|
|
@@ -121,7 +127,7 @@ export function renderTagMessage(message, optimisticUpdate = false) {
|
|
|
121
127
|
`
|
|
122
128
|
<img class="at_chat_media" src="${message.image_url}"/><br>
|
|
123
129
|
` : ``}
|
|
124
|
-
<small>${
|
|
130
|
+
<small>${created_on}</small>
|
|
125
131
|
</div>
|
|
126
132
|
</div>
|
|
127
133
|
`;
|
|
@@ -133,13 +139,17 @@ export function renderTagMessage(message, optimisticUpdate = false) {
|
|
|
133
139
|
}
|
|
134
140
|
else {
|
|
135
141
|
chat.innerHTML = `
|
|
136
|
-
<span class="at_chat_avatar at_chat_avatar_sender">${message.owner_name.charAt(0)}</span>
|
|
142
|
+
<span class="at_chat_avatar at_chat_avatar_sender">${message.owner_name.charAt(0).toUpperCase()}</span>
|
|
137
143
|
<div class="at_chat_bubble at_chat_bubble_sent">
|
|
138
144
|
<div>
|
|
139
145
|
<small>${message.owner_name} ➡️ ${message.to_user_name}</small> <br>
|
|
140
146
|
${message.messages}
|
|
141
147
|
<br>
|
|
142
|
-
|
|
148
|
+
${message.image_url && message.image_url !== '' ?
|
|
149
|
+
`
|
|
150
|
+
<img class="at_chat_media" src="${message.image_url}"/><br>
|
|
151
|
+
` : ``}
|
|
152
|
+
<small>${created_on}</small>
|
|
143
153
|
</div>
|
|
144
154
|
</div>
|
|
145
155
|
`;
|
|
@@ -147,8 +157,8 @@ export function renderTagMessage(message, optimisticUpdate = false) {
|
|
|
147
157
|
if (optimisticUpdate) {
|
|
148
158
|
const firstChild = chatContainer.firstChild;
|
|
149
159
|
chatContainer.insertBefore(chat, firstChild);
|
|
150
|
-
const input = (document.getElementById("at-no-message"))
|
|
151
|
-
input.remove()
|
|
160
|
+
// const input = (document.getElementById("at-no-message"))
|
|
161
|
+
// input.remove()
|
|
152
162
|
return;
|
|
153
163
|
}
|
|
154
164
|
else {
|
|
@@ -207,7 +217,10 @@ export function createTagMessage() {
|
|
|
207
217
|
const tag_uuid = getSelectedTagUuid();
|
|
208
218
|
const textMessage = getTagMessageText();
|
|
209
219
|
const media = getChatMedia();
|
|
210
|
-
const
|
|
220
|
+
const dateToString = formatWithOptions({ locale: ja }, 'yyyy-MM-dd HH:mm:ss');
|
|
221
|
+
//const created_on = format(new Date(), 'yyyy-MM-dd HH:mm:ss')
|
|
222
|
+
const currentDate = new Date();
|
|
223
|
+
const created_on = dateToString(currentDate);
|
|
211
224
|
console.log("Recepient message ", recepient_uuid);
|
|
212
225
|
if (!recepient_uuid || recepient_uuid.uuid === '' || recepient_uuid.uuid === 'undefined') {
|
|
213
226
|
notyf.error("Select a recepient first");
|
|
@@ -234,3 +247,32 @@ export function createTagMessage() {
|
|
|
234
247
|
notyf.success("Message successfuly sent");
|
|
235
248
|
return message;
|
|
236
249
|
}
|
|
250
|
+
export function setTagMessagingDetails(tagId) {
|
|
251
|
+
console.log("setTagMessagingDetails()", tagId);
|
|
252
|
+
if (tagId && tagId !== '') {
|
|
253
|
+
const tagTitle = document.getElementById('at-tag-name-messaging');
|
|
254
|
+
const tagColor = document.getElementById('at-tag-color-messaging');
|
|
255
|
+
if (!tagTitle) {
|
|
256
|
+
console.error("tagTitle does not exist in DOM");
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
if (!tagColor) {
|
|
260
|
+
console.error("g does not exist in DOM");
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
if (tagTitle.textContent === 'Tag Name') {
|
|
264
|
+
//@ts-ignore
|
|
265
|
+
const targetTag = _tags.find(tag => tag.id === tagId);
|
|
266
|
+
if (!targetTag) {
|
|
267
|
+
console.log("Target tag not found");
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
tagTitle.textContent = targetTag.json_data.label;
|
|
271
|
+
tagColor.style.backgroundColor = convertToCssRgb(targetTag.json_data.color);
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
console.error("tagId is either undefined or empty");
|
|
277
|
+
return;
|
|
278
|
+
}
|
package/lib/atwinui/events.js
CHANGED
|
@@ -7,8 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { actionBar, renderObjectCards, renderLibraryCards, renderTags, renderTagRow, getTagFormData, addClickEventToTagRow, setActiveCard, setActiveMenu, setActiveActionBtn, removeObjectCard, setTagCategoriesOption, toggleDropdown, tagFormMode, selectedTag, renderRecepientOptions, renderTagMessages, createTagMessage, setTagLink } from "./components/toolbar";
|
|
11
|
-
import { getTargetPosition, addMediaScreen, _3DXObjects, selectedObject, setTransformControls, copyObject, revertTransform, clearSelectedObject, removeTransformControls, getLibrary, getMpTags, renderTag, captureSpaceScreenshot, moveTag, subscribeSpaceEvent, setModelVisibility, disposeModel, disposeTag, _tags, _tagCategories, dispatchSpaceEvent, editTagLabel, editTagDescription, setTagMessageRecepients, setTagMessages, setSelectedTagUuid, renderMeetingSidebar } from "../architwin";
|
|
10
|
+
import { actionBar, renderObjectCards, renderLibraryCards, renderTags, renderTagRow, getTagFormData, addClickEventToTagRow, setActiveCard, setActiveMenu, setActiveActionBtn, removeObjectCard, setTagCategoriesOption, toggleDropdown, tagFormMode, selectedTag, renderRecepientOptions, renderTagMessages, createTagMessage, setTagLink, setTagMessagingDetails } from "./components/toolbar";
|
|
11
|
+
import { getTargetPosition, addMediaScreen, _3DXObjects, selectedObject, setTransformControls, copyObject, revertTransform, clearSelectedObject, removeTransformControls, getLibrary, getMpTags, renderTag, captureSpaceScreenshot, moveTag, subscribeSpaceEvent, setModelVisibility, disposeModel, disposeTag, _tags, _tagCategories, dispatchSpaceEvent, editTagLabel, editTagDescription, setTagMessageRecepients, setTagMessages, setSelectedTagUuid, renderMeetingSidebar, } from "../architwin";
|
|
12
12
|
import { Notyf } from 'notyf';
|
|
13
13
|
import 'notyf/notyf.min.css';
|
|
14
14
|
import { SPACE_EVENTS } from "../types";
|
|
@@ -165,7 +165,7 @@ function setupIndividualEventListeners() {
|
|
|
165
165
|
handleSendTagMessage();
|
|
166
166
|
handleSetModelsView();
|
|
167
167
|
handleSetLibraryModelsView();
|
|
168
|
-
|
|
168
|
+
handleToggleDropdown();
|
|
169
169
|
}
|
|
170
170
|
//================ OBJECT EVENT HANDLERS ===============//
|
|
171
171
|
function handleTranslateObject() {
|
|
@@ -237,9 +237,16 @@ function handlePlaceTag() {
|
|
|
237
237
|
const payload = getTagFormData();
|
|
238
238
|
if (tagFormMode == "ADD" /* FORM_MODE.ADD */) {
|
|
239
239
|
if (_tagCategories) {
|
|
240
|
+
console.log("tagFormData", payload);
|
|
241
|
+
const targetCategory = _tagCategories.find(cat => cat.uuid === payload.tagCategoryId);
|
|
240
242
|
if (payload && payload.tagName && payload.tagCategoryId && payload.tagSubcategoryId) {
|
|
241
243
|
tag.label = payload.tagName;
|
|
242
244
|
tag.description = payload.tagDescription;
|
|
245
|
+
//tag.attachments.push(payload.tagEmbed)
|
|
246
|
+
if (targetCategory) {
|
|
247
|
+
console.log("targetCategory is", targetCategory);
|
|
248
|
+
tag.color = targetCategory.json_data.color.rgb;
|
|
249
|
+
}
|
|
243
250
|
const iTag = yield renderTag({ tag: tag }, true);
|
|
244
251
|
console.log('iTag', iTag);
|
|
245
252
|
moveTag(iTag.id, onTagPlaced);
|
|
@@ -393,6 +400,7 @@ function handleSaveTag() {
|
|
|
393
400
|
if (_tagCategories) {
|
|
394
401
|
if (currentTag && tagFormPayload && tagFormPayload.tagName && tagFormPayload.tagCategoryId && tagFormPayload.tagSubcategoryId) {
|
|
395
402
|
console.log("current Tag", currentTag);
|
|
403
|
+
currentTag.media_url = tagFormPayload.tagEmbed;
|
|
396
404
|
let payload = { tag: currentTag };
|
|
397
405
|
dispatchSpaceEvent(SPACE_EVENTS.TAG_SAVED, payload);
|
|
398
406
|
currentTag = undefined;
|
|
@@ -590,8 +598,16 @@ function handleRenderMeetingUI() {
|
|
|
590
598
|
}
|
|
591
599
|
function handleToggleDropdown() {
|
|
592
600
|
const categoryToggle = document.getElementById('at-category-dropdown-toggle');
|
|
601
|
+
const subcategoryToggle = document.getElementById('at-subcategory-dropdown-toggle');
|
|
593
602
|
if (categoryToggle) {
|
|
594
|
-
categoryToggle.addEventListener('click',
|
|
603
|
+
categoryToggle.addEventListener('click', () => {
|
|
604
|
+
toggleDropdown('at-category-options');
|
|
605
|
+
});
|
|
606
|
+
}
|
|
607
|
+
if (subcategoryToggle) {
|
|
608
|
+
subcategoryToggle.addEventListener('click', () => {
|
|
609
|
+
toggleDropdown('at-subcategory-options');
|
|
610
|
+
});
|
|
595
611
|
}
|
|
596
612
|
}
|
|
597
613
|
function setupSpaceEventSubscriptions() {
|
|
@@ -621,6 +637,7 @@ function handleRetrieveTagMessage(payload) {
|
|
|
621
637
|
setSelectedTagUuid(payload.tagUuid);
|
|
622
638
|
renderRecepientOptions();
|
|
623
639
|
renderTagMessages();
|
|
640
|
+
setTagMessagingDetails(payload.tagUuid);
|
|
624
641
|
}
|
|
625
642
|
function handleSetModelsView() {
|
|
626
643
|
const modelsCardViewBtn = document.getElementById('at-models-card-view-btn');
|
package/lib/meeting/templates.js
CHANGED
|
@@ -4,31 +4,31 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export function preMeetingTemplate() {
|
|
6
6
|
return `
|
|
7
|
-
<div id="at-premeet" class="at_sidebar_container">
|
|
8
|
-
<div id="at-premeet-header" class="at_header_container">
|
|
7
|
+
<div id="at-premeet" data-cy="at-premeet" class="at_sidebar_container">
|
|
8
|
+
<div id="at-premeet-header" data-cy="at-premeet-header" class="at_header_container">
|
|
9
9
|
<span class="at_header">Setup Meeting</span>
|
|
10
|
-
<span id="at-premeet-close" style="cursor: pointer;" class="mdi mdi-close-circle-outline at_icon-2"></span>
|
|
10
|
+
<span id="at-premeet-close" data-cy="at-premeet-close" style="cursor: pointer;" class="mdi mdi-close-circle-outline at_icon-2"></span>
|
|
11
11
|
</div>
|
|
12
12
|
|
|
13
|
-
<div id="at-sel-avatar-header" class="at_header_container" style="display: none;">
|
|
14
|
-
<span id="at-avatar-back" style="cursor: pointer;" class="mdil mdil-arrow-left-circle at_icon-2"></span>
|
|
13
|
+
<div id="at-sel-avatar-header" data-cy="at-sel-avatar-header" class="at_header_container" style="display: none;">
|
|
14
|
+
<span id="at-avatar-back" data-cy="at-avatar-back" style="cursor: pointer;" class="mdil mdil-arrow-left-circle at_icon-2"></span>
|
|
15
15
|
<span class="at_header">Select Avatar</span>
|
|
16
|
-
<span id="at-avatar-close" style="cursor: pointer;" class="mdi mdi-close-circle-outline at_icon-2"></span>
|
|
16
|
+
<span id="at-avatar-close" data-cy="at-avatar-close" style="cursor: pointer;" class="mdi mdi-close-circle-outline at_icon-2"></span>
|
|
17
17
|
</div>
|
|
18
18
|
|
|
19
|
-
<div id="at-premeet-settings" class="column">
|
|
19
|
+
<div id="at-premeet-settings" data-cy="at-premeet-settings" class="column">
|
|
20
20
|
<h2 class="at_sub-1">Setup your Video and Audio</h2>
|
|
21
21
|
<div class="at_premeet_video">
|
|
22
|
-
<video id="at-premeet-video"></video>
|
|
22
|
+
<video id="at-premeet-video" data-cy="at-premeet-video"></video>
|
|
23
23
|
</div>
|
|
24
24
|
<div>
|
|
25
25
|
<div class="column">
|
|
26
26
|
<div class="at_grouped">
|
|
27
|
-
<button id="at-premeet-muteBtn" class="at_premeet_btn at_btn_red" @click="">
|
|
28
|
-
<span id="at-premeet-muteIcon" class="mdi mdi-microphone-off "> Unmute</span>
|
|
27
|
+
<button id="at-premeet-muteBtn" data-cy="at-premeet-muteBtn" class="at_premeet_btn at_btn_red" @click="">
|
|
28
|
+
<span id="at-premeet-muteIcon" data-cy="at-premeet-muteIcon" class="mdi mdi-microphone-off "> Unmute</span>
|
|
29
29
|
</button>
|
|
30
|
-
<button id="at-premeet-camBtn" class="at_premeet_btn at_btn_blue" @click="">
|
|
31
|
-
<span id="at-premeet-camIcon" class="mdi mdi-camera-off"> Camera</span>
|
|
30
|
+
<button id="at-premeet-camBtn" data-cy="at-premeet-camBtn" class="at_premeet_btn at_btn_blue" @click="">
|
|
31
|
+
<span id="at-premeet-camIcon" data-cy="at-premeet-camIcon" class="mdi mdi-camera-off"> Camera</span>
|
|
32
32
|
</button>
|
|
33
33
|
</div>
|
|
34
34
|
<h2 class="at_txt_center at_sub-2">Select video and audio device</h2>
|
|
@@ -37,39 +37,39 @@ export function preMeetingTemplate() {
|
|
|
37
37
|
<span class="mdi mdi-video at_icon-1"></span>
|
|
38
38
|
<p class="at_ml-1 at_inter-16">Video</p>
|
|
39
39
|
</div>
|
|
40
|
-
<select class="at_select at_ml-2" name="videos" id="at-select-cameras"></select>
|
|
40
|
+
<select class="at_select at_ml-2" name="videos" id="at-select-cameras" data-cy="at-select-cameras"></select>
|
|
41
41
|
</div>
|
|
42
42
|
<div class="at_justify-center">
|
|
43
43
|
<div class="at_flex-center at_mr-2" style="width: 70px">
|
|
44
44
|
<span class="mdi mdi-volume-high at_icon-1"></span>
|
|
45
45
|
<p class="at_ml-1 at_inter-16">Speaker</p>
|
|
46
46
|
</div>
|
|
47
|
-
<select class="at_select at_ml-2" name="speakers" id="at-select-speakers"></select>
|
|
47
|
+
<select class="at_select at_ml-2" name="speakers" id="at-select-speakers" data-cy="at-select-speakers"></select>
|
|
48
48
|
</div>
|
|
49
49
|
<div class="at_justify-center">
|
|
50
50
|
<div class="at_flex-center at_mr-2" style="width: 70px">
|
|
51
51
|
<span class="mdi mdi-microphone at_icon-1"></span>
|
|
52
52
|
<p class="at_ml-1 at_inter-16">Mic</p>
|
|
53
53
|
</div>
|
|
54
|
-
<select class="at_select at_ml-2" name="mics" id="at-select-mics"></select>
|
|
54
|
+
<select class="at_select at_ml-2" name="mics" id="at-select-mics" data-cy="at-select-mics"></select>
|
|
55
55
|
</div>
|
|
56
56
|
|
|
57
57
|
<div class="at_grouped">
|
|
58
|
-
<button id="at-avatar-btn" class="at_premeet_btn at_btn_avatar" onclick="">👨🚀 Choose Avatar</button>
|
|
58
|
+
<button id="at-avatar-btn" data-cy="at-avatar-btn" class="at_premeet_btn at_btn_avatar" onclick="">👨🚀 Choose Avatar</button>
|
|
59
59
|
</div>
|
|
60
60
|
<div class="at_grouped">
|
|
61
|
-
<button id="at-joinbtn" class="at_premeet_btn at_btn_blue at_btn_join" onclick="">JOIN MEETING</button>
|
|
61
|
+
<button id="at-joinbtn" data-cy="at-joinbtn" class="at_premeet_btn at_btn_blue at_btn_join" onclick="">JOIN MEETING</button>
|
|
62
62
|
</div>
|
|
63
63
|
</div>
|
|
64
64
|
</div>
|
|
65
65
|
</div>
|
|
66
66
|
|
|
67
67
|
|
|
68
|
-
<div id="at-select-avatar" class="column" style="display: none;">
|
|
69
|
-
<div id="at-avatar-grid" class="at_grid-container">
|
|
68
|
+
<div id="at-select-avatar" data-cy="at-select-avatar" class="column" style="display: none;">
|
|
69
|
+
<div id="at-avatar-grid" data-cy="at-avatar-grid" class="at_grid-container">
|
|
70
70
|
</div>
|
|
71
71
|
<div class="at_grouped">
|
|
72
|
-
<button id="at-set-avatar-btn" class="at_premeet_btn at_btn_avatar at_border2-white" onclick="">Set as my Avatar</button>
|
|
72
|
+
<button id="at-set-avatar-btn" data-cy="at-set-avatar-btn" class="at_premeet_btn at_btn_avatar at_border2-white" onclick="">Set as my Avatar</button>
|
|
73
73
|
</div>
|
|
74
74
|
</div>
|
|
75
75
|
|
|
@@ -81,115 +81,115 @@ export function preMeetingTemplate() {
|
|
|
81
81
|
*/
|
|
82
82
|
export function inMeetingTemplate() {
|
|
83
83
|
return `
|
|
84
|
-
<div id="at-inmeet" class="at_sidebar_container" style="width: 0px !important">
|
|
85
|
-
<div id="at-im-sidebar" class="at_im-sidebar">
|
|
86
|
-
<div id="at-in-meeting" class="column">
|
|
84
|
+
<div id="at-inmeet" data-cy="at-inmeet" class="at_sidebar_container" style="width: 0px !important">
|
|
85
|
+
<div id="at-im-sidebar" data-cy="at-im-sidebar" class="at_im-sidebar">
|
|
86
|
+
<div id="at-in-meeting" data-cy="at-in-meeting" class="column">
|
|
87
87
|
<span class="mdi mdi-chevron-down at_icon-2 at_mr-1" style="float: right;"></span>
|
|
88
88
|
<div class="column">
|
|
89
89
|
<div class="container">
|
|
90
|
-
<canvas id="at-self-canvas" style="display: none;" class="at_inmeet_video" height="150" width="295"></canvas>
|
|
90
|
+
<canvas id="at-self-canvas" data-cy="at-self-canvas" style="display: none;" class="at_inmeet_video" height="150" width="295"></canvas>
|
|
91
91
|
<div class="at_inmeet_video">
|
|
92
|
-
<video id="at-self-video"></video>
|
|
92
|
+
<video id="at-self-video" data-cy="at-self-video"></video>
|
|
93
93
|
</div>
|
|
94
|
-
<span id="at-videoOff-cont" class="at_video_off at_inter-18"></span>
|
|
95
|
-
<div id="at-self-role" class="at_host-overlay">
|
|
94
|
+
<span id="at-videoOff-cont" data-cy="at-videoOff-cont" class="at_video_off at_inter-18"></span>
|
|
95
|
+
<div id="at-self-role" data-cy="at-self-role" class="at_host-overlay">
|
|
96
96
|
<span class="at_indicator"></span>
|
|
97
97
|
<span> Host</span>
|
|
98
98
|
</div>
|
|
99
99
|
<div>
|
|
100
|
-
<p id="at-self-name" class="at_text-overlay" ></p>
|
|
100
|
+
<p id="at-self-name" data-cy="at-self-name" class="at_text-overlay" ></p>
|
|
101
101
|
</div>
|
|
102
|
-
<span id="at-self-audio" class="mdi mdi-microphone at_icon-1 at_btn-overlay at_btn_round at_blue"></span>
|
|
102
|
+
<span id="at-self-audio" data-cy="at-self-audio" class="mdi mdi-microphone at_icon-1 at_btn-overlay at_btn_round at_blue"></span>
|
|
103
103
|
</div>
|
|
104
|
-
<div class="container" id="at-remote" style="display: none;">
|
|
105
|
-
<canvas id="at-participant-canvas" class="at_inmeet_video at_mt-5" style="display: none; height="150" width="295"> Jochelle</canvas>
|
|
106
|
-
<span id="at-videoOffRemoteName" class="at_video_off at_inter-18" top: 0%! important;"></span>
|
|
107
|
-
<div id="at-remote-role" class="at_host-overlay" style="display: none; top: 10% !important;">
|
|
104
|
+
<div class="container" id="at-remote" data-cy="at-remote" style="display: none;">
|
|
105
|
+
<canvas id="at-participant-canvas" data-cy="at-participant-canvas" class="at_inmeet_video at_mt-5" style="display: none; height="150" width="295"> Jochelle</canvas>
|
|
106
|
+
<span id="at-videoOffRemoteName" data-cy="at-videoOffRemoteName" class="at_video_off at_inter-18" top: 0%! important;"></span>
|
|
107
|
+
<div id="at-remote-role" data-cy="at-remote-role" class="at_host-overlay" style="display: none; top: 10% !important;">
|
|
108
108
|
<span class="at_indicator"></span>
|
|
109
109
|
<span> Host</span>
|
|
110
110
|
</div>
|
|
111
111
|
<div>
|
|
112
|
-
<p id="at-remote-name" class="at_text-overlay "></p>
|
|
112
|
+
<p id="at-remote-name" data-cy="at-remote-name" class="at_text-overlay "></p>
|
|
113
113
|
</div>
|
|
114
|
-
<span id="at-remote-audio" class="mdi mdi-microphone at_icon-1 at_btn-overlay at_btn_round at_blue"></span>
|
|
114
|
+
<span id="at-remote-audio" data-cy="at-remote-audio" class="mdi mdi-microphone at_icon-1 at_btn-overlay at_btn_round at_blue"></span>
|
|
115
115
|
</div>
|
|
116
116
|
|
|
117
117
|
</div>
|
|
118
118
|
</div>
|
|
119
119
|
|
|
120
|
-
<div id="at-settings-sidebar" class="column" style="display: none">
|
|
120
|
+
<div id="at-settings-sidebar" data-cy="at-settings-sidebar" class="column" style="display: none">
|
|
121
121
|
<div class="at_tabs_container">
|
|
122
|
-
<span id="at-participant-tab" class="at_tabs at_blue" @click="">Participants</span>
|
|
123
|
-
<span id="at-settings-tab" class="at_tabs " @click="">Settings</span>
|
|
122
|
+
<span id="at-participant-tab" data-cy="at-participant-tab" class="at_tabs at_blue" @click="">Participants</span>
|
|
123
|
+
<span id="at-settings-tab" data-cy="at-settings-tab" class="at_tabs " @click="">Settings</span>
|
|
124
124
|
</div>
|
|
125
125
|
|
|
126
126
|
|
|
127
|
-
<div id="at-participantsDiv" style="display: none">
|
|
127
|
+
<div id="at-participantsDiv" data-cy="at-participantsDiv" style="display: none">
|
|
128
128
|
<div class="at_tooltip at_copy_link">
|
|
129
|
-
<div id="at-copy-link-btn" class="">
|
|
129
|
+
<div id="at-copy-link-btn" data-cy="at-copy-link-btn" class="">
|
|
130
130
|
<span class="mdi mdi-content-copy mr-1"></span>
|
|
131
131
|
<span>Copy Meeting Link</span>
|
|
132
132
|
</div>
|
|
133
|
-
<span class="at_tooltiptext" id="at-tooltip" style="display: none"></span>
|
|
133
|
+
<span class="at_tooltiptext" id="at-tooltip" data-cy="at-tooltip" style="display: none"></span>
|
|
134
134
|
</div>
|
|
135
135
|
|
|
136
136
|
|
|
137
137
|
<div class="at_ml-2 at_mr-3">
|
|
138
|
-
<ul id="at-meetingParticipants"></ul>
|
|
138
|
+
<ul id="at-meetingParticipants" data-cy="at-meetingParticipants"></ul>
|
|
139
139
|
</div>
|
|
140
140
|
</div>
|
|
141
141
|
</div>
|
|
142
142
|
|
|
143
|
-
<div id="at-settingsDiv" class="column" style="display: none">
|
|
143
|
+
<div id="at-settingsDiv" data-cy="at-settingsDiv" class="column" style="display: none">
|
|
144
144
|
<h2 class="at_txt_center at_sub-2" style="margin-top: 0rem !important;">Select video and audio device</h2>
|
|
145
145
|
<div class="at_justify-center">
|
|
146
146
|
<div class="at_flex-center at_mr-2" style="width: 70px">
|
|
147
147
|
<span class="mdi mdi-video at_icon-1"></span>
|
|
148
148
|
<p class="at_ml-1 at_inter-16">Video</p>
|
|
149
149
|
</div>
|
|
150
|
-
<select class="at_select at_ml-2" name="videos" id="at-select-cameras"></select>
|
|
150
|
+
<select class="at_select at_ml-2" name="videos" id="at-select-cameras" data-cy="at-select-cameras"></select>
|
|
151
151
|
</div>
|
|
152
152
|
<div class="at_justify-center">
|
|
153
153
|
<div class="at_flex-center at_mr-2" style="width: 70px">
|
|
154
154
|
<span class="mdi mdi-volume-high at_icon-1"></span>
|
|
155
155
|
<p class="at_ml-1 at_inter-16">Speaker</p>
|
|
156
156
|
</div>
|
|
157
|
-
<select class="at_select at_ml-2" name="speakers" id="at-select-speakers"></select>
|
|
157
|
+
<select class="at_select at_ml-2" name="speakers" id="at-select-speakers" data-cy="at-select-speakers"></select>
|
|
158
158
|
</div>
|
|
159
159
|
<div class="at_justify-center">
|
|
160
160
|
<div class="at_flex-center at_mr-2" style="width: 70px">
|
|
161
161
|
<span class="mdi mdi-microphone at_icon-1"></span>
|
|
162
162
|
<p class="at_ml-1 at_inter-16">Mic</p>
|
|
163
163
|
</div>
|
|
164
|
-
<select class="at_select at_ml-2" name="mics" id="at-select-mics"></select>
|
|
164
|
+
<select class="at_select at_ml-2" name="mics" id="at-select-mics" data-cy="at-select-mics"></select>
|
|
165
165
|
</div>
|
|
166
166
|
</div>
|
|
167
167
|
</div>
|
|
168
168
|
|
|
169
169
|
|
|
170
|
-
<div id="at-navbar" class="at_sidebar_bottom at_row">
|
|
170
|
+
<div id="at-navbar" data-cy="at-navbar" class="at_sidebar_bottom at_row">
|
|
171
171
|
<div class="">
|
|
172
|
-
<a id="at-settings-btn" class="at_btn_round at_white at_mr-1">
|
|
172
|
+
<a id="at-settings-btn" data-cy="at-settings-btn" class="at_btn_round at_white at_mr-1">
|
|
173
173
|
<span class="mdi mdi-dots-horizontal at_icon-1"></span>
|
|
174
174
|
</a>
|
|
175
|
-
<a id="at-share-btn" class="at_btn_round at_white at_mr-1">
|
|
175
|
+
<a id="at-share-btn" data-cy="at-share-btn" class="at_btn_round at_white at_mr-1">
|
|
176
176
|
<span class="mdi mdi-monitor-share at_icon-1"></span>
|
|
177
177
|
</a>
|
|
178
|
-
<a id="at-video-on" class="at_btn_round at_white at_mr-1" style="display: none">
|
|
179
|
-
<span id="at-navbar-videoIcon" class="mdi mdi-video at_icon-1"></span>
|
|
178
|
+
<a id="at-video-on" data-cy="at-video-on" class="at_btn_round at_white at_mr-1" style="display: none">
|
|
179
|
+
<span id="at-navbar-videoIcon" data-cy="at-navbar-videoIcon" class="mdi mdi-video at_icon-1"></span>
|
|
180
180
|
</a>
|
|
181
|
-
<a id="at-video-off" class="at_btn_round at_light_red at_icon-off at_mr-1">
|
|
181
|
+
<a id="at-video-off" data-cy="at-video-off" class="at_btn_round at_light_red at_icon-off at_mr-1">
|
|
182
182
|
<span class="mdi mdi-video-off at_icon-1"></span>
|
|
183
183
|
</a>
|
|
184
|
-
<a id="at-audio-on" class="at_btn_round at_white at_mr-1" style="display: none">
|
|
184
|
+
<a id="at-audio-on" data-cy="at-audio-on" class="at_btn_round at_white at_mr-1" style="display: none">
|
|
185
185
|
<span class="mdi mdi-microphone at_icon-1"></span>
|
|
186
186
|
</a>
|
|
187
|
-
<a id="at-audio-off" class="at_btn_round at_light_red at_icon-off at_mr-1">
|
|
187
|
+
<a id="at-audio-off" data-cy="at-audio-off" class="at_btn_round at_light_red at_icon-off at_mr-1">
|
|
188
188
|
<span class="mdi mdi-microphone-off at_icon-1"></span>
|
|
189
189
|
</a>
|
|
190
190
|
</div>
|
|
191
191
|
|
|
192
|
-
<button id="at-leave-btn" class="at_leave_btn" @click="">LEAVE MEETING</button>
|
|
192
|
+
<button id="at-leave-btn" data-cy="at-leave-btn" class="at_leave_btn" @click="">LEAVE MEETING</button>
|
|
193
193
|
</div>
|
|
194
194
|
</div>
|
|
195
195
|
`;
|
|
@@ -211,7 +211,7 @@ export function participantListTemplate(role, fullname, thumbnail) {
|
|
|
211
211
|
</div>
|
|
212
212
|
<span class="at_ml-1 at_inter ">${fullname}</span>
|
|
213
213
|
</div>
|
|
214
|
-
<span id="at-followParticipant" class="mdi mdi-walk at_icon-1 at_ml-auto" style="cursor: pointer;"></span>
|
|
214
|
+
<span id="at-followParticipant" data-cy="at-followParticipant" class="mdi mdi-walk at_icon-1 at_ml-auto" style="cursor: pointer;"></span>
|
|
215
215
|
</div>
|
|
216
216
|
`;
|
|
217
217
|
}
|
|
@@ -220,27 +220,27 @@ export function participantListTemplate(role, fullname, thumbnail) {
|
|
|
220
220
|
*/
|
|
221
221
|
export function createMeetingTemplate() {
|
|
222
222
|
return `
|
|
223
|
-
<div id="at-create-meeting" class="at_sidebar_container">
|
|
224
|
-
<div id="at-premeet-header" class="at_header_container">
|
|
223
|
+
<div id="at-create-meeting" data-cy="at-create-meeting" class="at_sidebar_container">
|
|
224
|
+
<div id="at-premeet-header" data-cy="at-premeet-header" class="at_header_container">
|
|
225
225
|
<span class="at_header">Create Meeting</span>
|
|
226
|
-
<span id="at-premeet-close" style="cursor: pointer;" class="mdi mdi-close-circle-outline at_icon-2"></span>
|
|
226
|
+
<span id="at-premeet-close" data-cy="at-premeet-close" style="cursor: pointer;" class="mdi mdi-close-circle-outline at_icon-2"></span>
|
|
227
227
|
</div>
|
|
228
228
|
|
|
229
229
|
<div class="column" style="padding: 1.25rem;">
|
|
230
|
-
<form id="at-cm-form">
|
|
230
|
+
<form id="at-cm-form" data-cy="at-cm-form">
|
|
231
231
|
<p class="at_inter-16">Meeting Topic</p>
|
|
232
|
-
<input type="text" class="at_input at_mb-1" id="at-cm-topic">
|
|
233
|
-
<p id="at-cm-error1" class="at_inter-16" style="color: red; display: none;"></p>
|
|
232
|
+
<input type="text" class="at_input at_mb-1" id="at-cm-topic" data-cy="at-cm-topic">
|
|
233
|
+
<p id="at-cm-error1" data-cy="at-cm-error1" class="at_inter-16" style="color: red; display: none;"></p>
|
|
234
234
|
<p class="at_inter-16">Fullname</p>
|
|
235
|
-
<input type="text" class="at_input at_mb-1" id="at-cm-fullname">
|
|
236
|
-
<p id="at-cm-error2" class="at_inter-16" style="color: red; display: none;"></p>
|
|
235
|
+
<input type="text" class="at_input at_mb-1" id="at-cm-fullname" data-cy="at-cm-fullname">
|
|
236
|
+
<p id="at-cm-error2" data-cy="at-cm-error2" class="at_inter-16" style="color: red; display: none;"></p>
|
|
237
237
|
</form>
|
|
238
238
|
|
|
239
239
|
<div class="at_grouped">
|
|
240
|
-
<button id="at-cm-btn" class="at_mt-5 at_premeet_btn at_btn_blue at_btn_join">CREATE MY MEETING</button>
|
|
240
|
+
<button id="at-cm-btn" data-cy="at-cm-btn" class="at_mt-5 at_premeet_btn at_btn_blue at_btn_join">CREATE MY MEETING</button>
|
|
241
241
|
</div>
|
|
242
242
|
|
|
243
|
-
<span id="at-cm-join" class="at_inter-14 at_justify-center at_mt-5" style="text-decoration: underline; cursor: pointer;">Have a meeting invite? Click here to join</span>
|
|
243
|
+
<span id="at-cm-join" data-cy="at-cm-join" class="at_inter-14 at_justify-center at_mt-5" style="text-decoration: underline; cursor: pointer;">Have a meeting invite? Click here to join</span>
|
|
244
244
|
</div>
|
|
245
245
|
</div>
|
|
246
246
|
`;
|
|
@@ -251,28 +251,28 @@ export function createMeetingTemplate() {
|
|
|
251
251
|
export function joinMeetingTemplate(link) {
|
|
252
252
|
console.log("__@ joinMeeting link: ", link);
|
|
253
253
|
return `
|
|
254
|
-
<div id="at-join-meeting" class="at_sidebar_container">
|
|
255
|
-
<div id="at-premeet-header" class="at_header_container">
|
|
254
|
+
<div id="at-join-meeting" data-cy="at-join-meeting" class="at_sidebar_container">
|
|
255
|
+
<div id="at-premeet-header" data-cy="at-premeet-header" class="at_header_container">
|
|
256
256
|
<span class="at_header">Join Meeting</span>
|
|
257
|
-
<span id="at-premeet-close" style="cursor: pointer;" class="mdi mdi-close-circle-outline at_icon-2"></span>
|
|
257
|
+
<span id="at-premeet-close" data-cy="at-premeet-close" style="cursor: pointer;" class="mdi mdi-close-circle-outline at_icon-2"></span>
|
|
258
258
|
</div>
|
|
259
259
|
|
|
260
260
|
<div class="column" style="padding: 1.25rem;">
|
|
261
|
-
<form id="at-join-form">
|
|
261
|
+
<form id="at-join-form" data-cy="at-join-form">
|
|
262
262
|
<p class="at_inter-16">Fullname</p>
|
|
263
|
-
<input type="text" class="at_input at_mb-1" id="at-join-fullname">
|
|
264
|
-
<p id="at-join-error2" class="at_inter-16" style="color: red; display: none;"></p>
|
|
263
|
+
<input type="text" class="at_input at_mb-1" id="at-join-fullname" data-cy="at-join-fullname">
|
|
264
|
+
<p id="at-join-error2" data-cy="at-join-error2" class="at_inter-16" style="color: red; display: none;"></p>
|
|
265
265
|
<p class="at_inter-16">Enter Meeting Link</p>
|
|
266
|
-
<input type="url" class="at_input at_mb-1" id="at-join-link" value="${link == '' ? '' : link}">
|
|
267
|
-
<p id="at-join-error3" class="at_inter-16" style="color: red; display: none;"></p>
|
|
266
|
+
<input type="url" class="at_input at_mb-1" id="at-join-link" data-cy="at-join-link" value="${link == '' ? '' : link}">
|
|
267
|
+
<p id="at-join-error3" data-cy="at-join-error3" class="at_inter-16" style="color: red; display: none;"></p>
|
|
268
268
|
|
|
269
269
|
</form>
|
|
270
270
|
|
|
271
271
|
<div class="at_grouped">
|
|
272
|
-
<button id="at-join-btn" class="at_mt-5 at_premeet_btn at_btn_blue at_btn_join">JOIN MEETING</button>
|
|
272
|
+
<button id="at-join-btn" data-cy="at-join-btn" class="at_mt-5 at_premeet_btn at_btn_blue at_btn_join">JOIN MEETING</button>
|
|
273
273
|
</div>
|
|
274
274
|
|
|
275
|
-
<span id="at-join-back" style="cursor: pointer;" class="at_inter-16 at_justify-center at_mt-5">GO BACK</span>
|
|
275
|
+
<span id="at-join-back" data-cy="at-join-back" style="cursor: pointer;" class="at_inter-16 at_justify-center at_mt-5">GO BACK</span>
|
|
276
276
|
</div>
|
|
277
277
|
</div>
|
|
278
278
|
|
package/lib/tag.js
CHANGED
|
@@ -49,6 +49,9 @@ function renderTag({ tag, sdk }) {
|
|
|
49
49
|
if (!tagData.id) {
|
|
50
50
|
tagData.id = tagIds[0];
|
|
51
51
|
}
|
|
52
|
+
// if(tag. && payload.icon.trim() !== ''){
|
|
53
|
+
// await setTagIcon({sdk: sdk, tag: tag, icon: payload.icon,color:payload.tag.color})
|
|
54
|
+
// }
|
|
52
55
|
return tagData;
|
|
53
56
|
// //attach media to tag (Video / Image / PDF); There are still more attachment types pls refer https://matterport.github.io/showcase-sdk/docs/reference/current/enums/tag.attachmenttype.html
|
|
54
57
|
// if(payload.attachments && payload.attachments.length > 0){
|
package/lib/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "architwin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.73",
|
|
4
4
|
"description": "ArchiTwin Library for Matterport",
|
|
5
5
|
"main": "./lib/architwin.js",
|
|
6
6
|
"types": "./lib/architwin.d.ts",
|
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
"@superviz/matterport-plugin": "^0.8.8",
|
|
32
32
|
"@superviz/sdk": "^4.13.9",
|
|
33
33
|
"@zoom/videosdk": "^1.8.7",
|
|
34
|
-
"aws-sdk": "^2.1385.0",
|
|
35
34
|
"axios": "^1.4.0",
|
|
36
35
|
"date-fns": "^2.30.0",
|
|
37
36
|
"jsrsasign": "^10.8.6",
|
package/static/atwinui.css
CHANGED
|
@@ -220,6 +220,10 @@
|
|
|
220
220
|
justify-content: space-between;
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
+
.at_items_center {
|
|
224
|
+
align-items: center;
|
|
225
|
+
}
|
|
226
|
+
|
|
223
227
|
.at_sidebar_button_icon {
|
|
224
228
|
padding: 4px 8px;
|
|
225
229
|
cursor: pointer;
|
|
@@ -395,17 +399,19 @@
|
|
|
395
399
|
.at_dropdown {
|
|
396
400
|
width: calc(100% - 8px);
|
|
397
401
|
margin: 4px;
|
|
398
|
-
background-color:
|
|
399
|
-
color:
|
|
402
|
+
background-color: var(--bg-secondary);
|
|
403
|
+
color: var(--text-color-light);
|
|
400
404
|
font-family: Arial, sans-serif;
|
|
401
405
|
padding: 8px 8px;
|
|
402
406
|
transition: opacity 0.3s ease-in-out;
|
|
407
|
+
cursor: pointer;
|
|
403
408
|
}
|
|
404
409
|
|
|
405
410
|
.at_dropdown_options {
|
|
406
411
|
display: none;
|
|
407
412
|
padding: 4px;
|
|
408
413
|
z-index: 10;
|
|
414
|
+
background-color: var(--bg-secondary);
|
|
409
415
|
}
|
|
410
416
|
|
|
411
417
|
.at_option {
|
|
@@ -413,15 +419,33 @@
|
|
|
413
419
|
padding: 4px 8px;
|
|
414
420
|
}
|
|
415
421
|
|
|
422
|
+
.at_option:hover {
|
|
423
|
+
background-color: var(--bg-accent);
|
|
424
|
+
}
|
|
425
|
+
|
|
416
426
|
.at_dropdown_options.open {
|
|
417
427
|
display: block;
|
|
418
428
|
opacity: 1;
|
|
429
|
+
z-index: 10;
|
|
430
|
+
position: relative;
|
|
419
431
|
}
|
|
420
432
|
|
|
421
433
|
.at_dropdown_toggle {
|
|
422
434
|
display: inline-block;
|
|
423
435
|
}
|
|
424
436
|
|
|
437
|
+
.at_avatar_xs {
|
|
438
|
+
width: 24px;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
.at_avatar_sm {
|
|
442
|
+
width: 48px;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
.at_avatar_md {
|
|
446
|
+
width: 96px;
|
|
447
|
+
}
|
|
448
|
+
|
|
425
449
|
/* CSS Class for Transparent Textarea with White Bottom Border */
|
|
426
450
|
.at_textarea {
|
|
427
451
|
border: none;
|
|
Binary file
|