@agilemotion/oui-react-js 1.8.42 → 1.8.44
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/dist/ApplicationManager.js +10 -8
- package/dist/InteractionPortalApp.js +0 -1
- package/dist/InteractionPortalAppHome.js +69 -3
- package/dist/RestService.js +3 -3
- package/dist/Utils.js +7 -0
- package/dist/assets/jss/components/customInputStyle.js +0 -1
- package/dist/assets/jss/components/customInputStyle.jsx +0 -1
- package/dist/components/DataGrid.js +6 -2
- package/dist/components/DocumentTemplateDesignerComponent.css +2 -0
- package/dist/components/DocumentViewer.js +2 -2
- package/dist/components/SocketManager.js +4 -2
- package/dist/components/TitleBar.js +1 -1
- package/dist/components/Toolbar.js +1 -1
- package/dist/components/WordDocumentViewer.js +208 -16
- package/dist/components/customInput/CustomInput.js +4 -1
- package/dist/components/dashboard/FoldingSideTabDashboard.css +3 -0
- package/dist/components/dashboard/FoldingSideTabDashboard.js +24 -12
- package/dist/components/dashboard/SideMenuModuleDashboard.css +6 -5
- package/dist/components/dashboard/SideMenuModuleDashboard.js +5 -2
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.css +94 -0
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +111 -203
- package/dist/components/form/BaseField.js +1 -1
- package/dist/components/form/Form.css +2 -3
- package/dist/components/form/Form.js +5 -1
- package/dist/components/form/GridField.js +3 -1
- package/dist/components/form/RadioGroup.js +4 -1
- package/dist/components/layout/Layout.css +8 -0
- package/dist/components/layout/Layout.js +10 -1
- package/dist/components/layout/View.css +20 -6
- package/dist/components/layout/View.js +32 -1
- package/dist/components/layout/Window.js +1 -0
- package/dist/components/media/Chat.css +0 -0
- package/dist/components/media/Chat.js +86 -0
- package/dist/components/media/chat/ChatRoom.js +19 -12
- package/dist/components/signatures/AgilitySignaturePanel.js +2 -1
- package/package.json +3 -2
|
@@ -23,6 +23,7 @@ const View = props => {
|
|
|
23
23
|
const [model] = _react.default.useState({});
|
|
24
24
|
const loadingRef = _react.default.useRef(true);
|
|
25
25
|
const paramsLoaded = _react.default.useRef(false);
|
|
26
|
+
const viewRef = _react.default.useRef(null);
|
|
26
27
|
function registerInlineScriptLibraries() {
|
|
27
28
|
if (!_Utils.default.isNull(props.config.lib)) {
|
|
28
29
|
let libName = props.config.id + '_lib';
|
|
@@ -104,8 +105,37 @@ const View = props => {
|
|
|
104
105
|
if (props.loadCallback) {
|
|
105
106
|
props.loadCallback();
|
|
106
107
|
}
|
|
108
|
+
const el = viewRef.current;
|
|
109
|
+
let ro;
|
|
110
|
+
if (el) {
|
|
111
|
+
let componentAttribute = _Utils.default.getComponentAttribute(props.config, 'headerHeight', null);
|
|
112
|
+
if (componentAttribute != null) {
|
|
113
|
+
const val = _Utils.default.normalizeCssSize(componentAttribute, "0");
|
|
114
|
+
el.style.setProperty("--view-header-h", val);
|
|
115
|
+
el.style.setProperty("--view-header-min", val);
|
|
116
|
+
}
|
|
117
|
+
const headerEl = el.querySelector('.sticky-header');
|
|
118
|
+
if (headerEl) {
|
|
119
|
+
// initialize the var to the floor so layout is valid before first callback
|
|
120
|
+
const floor = getComputedStyle(el).getPropertyValue('--view-header-min')?.trim() || '112px';
|
|
121
|
+
el.style.setProperty('--view-header-h', floor);
|
|
122
|
+
ro = new ResizeObserver(_ref => {
|
|
123
|
+
let [entry] = _ref;
|
|
124
|
+
// prefer borderBoxSize when available
|
|
125
|
+
const h = entry.borderBoxSize?.[0]?.blockSize ?? entry.borderBoxSize?.blockSize ?? entry.contentBoxSize?.[0]?.blockSize ?? entry.contentRect.height;
|
|
126
|
+
el.style.setProperty('--view-header-h', `${h}px`);
|
|
127
|
+
});
|
|
128
|
+
ro.observe(headerEl);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
107
131
|
return () => {
|
|
108
132
|
_Observable.default.clearEventListeners(props.config.id);
|
|
133
|
+
if (el) {
|
|
134
|
+
el.style.removeProperty("--view-header-h");
|
|
135
|
+
}
|
|
136
|
+
if (ro) {
|
|
137
|
+
ro.disconnect();
|
|
138
|
+
}
|
|
109
139
|
};
|
|
110
140
|
}, []);
|
|
111
141
|
function render(layout) {
|
|
@@ -174,7 +204,8 @@ const View = props => {
|
|
|
174
204
|
style: _Utils.default.mergeStyles({
|
|
175
205
|
minWidth: '128px',
|
|
176
206
|
height: '100%'
|
|
177
|
-
}, props.config)
|
|
207
|
+
}, props.config),
|
|
208
|
+
ref: viewRef
|
|
178
209
|
}, render(props.config.layout));
|
|
179
210
|
};
|
|
180
211
|
exports.View = View;
|
|
@@ -216,6 +216,7 @@ const Window = props => {
|
|
|
216
216
|
paper.style.right = '0';
|
|
217
217
|
paper.style.position = 'absolute';
|
|
218
218
|
paper.style.top = '72px';
|
|
219
|
+
paper.style.border = '20px solid red';
|
|
219
220
|
paper.style.left = (isNaN(getLeftOffset()) ? '328' : getLeftOffset()) + 'px';
|
|
220
221
|
let header = document.getElementsByClassName('dialogHeader')[0];
|
|
221
222
|
header.getElementsByTagName('button')[0].style.color = 'rgba(0, 0, 0, 0.54)';
|
|
File without changes
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _Utils = _interopRequireDefault(require("../../Utils"));
|
|
9
|
+
require("./Chat.css");
|
|
10
|
+
var _Observable = _interopRequireDefault(require("../../event/Observable"));
|
|
11
|
+
var _Event = _interopRequireDefault(require("../../event/Event"));
|
|
12
|
+
var _EventType = _interopRequireDefault(require("../../event/EventType"));
|
|
13
|
+
var _ChatRoom = _interopRequireDefault(require("./chat/ChatRoom"));
|
|
14
|
+
var _RestService = require("../../RestService");
|
|
15
|
+
var _ApplicationManager = _interopRequireDefault(require("../../ApplicationManager"));
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
const Chat = props => {
|
|
18
|
+
const [chat, setChat] = _react.default.useState(null);
|
|
19
|
+
_react.default.useEffect(() => {
|
|
20
|
+
props.handle.api = api();
|
|
21
|
+
});
|
|
22
|
+
_react.default.useEffect(() => {
|
|
23
|
+
let parsedConfig = _Utils.default.parseConfig(props.config, props.viewId);
|
|
24
|
+
_Observable.default.addSubscriptions(parsedConfig.eventHandlingConfig, props.handle, props.viewId);
|
|
25
|
+
_Observable.default.addSystemSubscriptions(props.viewId, parsedConfig);
|
|
26
|
+
let event = new _Event.default(props.handle, props.viewId, null);
|
|
27
|
+
_Observable.default.fireEvent(_EventType.default.COMPONENT_LOAD, event);
|
|
28
|
+
return () => {};
|
|
29
|
+
}, []);
|
|
30
|
+
const api = () => {
|
|
31
|
+
return {
|
|
32
|
+
get id() {
|
|
33
|
+
return props.config.id;
|
|
34
|
+
},
|
|
35
|
+
loadData: (actionConfig, event) => {
|
|
36
|
+
let parsedConfig = _Utils.default.parseConfig(props.config, props.viewId);
|
|
37
|
+
let service = !_Utils.default.isNull(parsedConfig.dataService) ? parsedConfig.dataService : !_Utils.default.isNull(actionConfig) ? actionConfig.dataService : null;
|
|
38
|
+
if (!_Utils.default.isNull(service)) {
|
|
39
|
+
let serviceType = service.type;
|
|
40
|
+
if (!serviceType) {
|
|
41
|
+
serviceType = 'rpc';
|
|
42
|
+
}
|
|
43
|
+
if (serviceType === 'rpc' || serviceType === 'rest') {
|
|
44
|
+
let method = serviceType === 'rpc' ? _RestService.invokeRpc : _RestService.invokeRest;
|
|
45
|
+
method({
|
|
46
|
+
service: service,
|
|
47
|
+
component: props.handle,
|
|
48
|
+
viewId: props.viewId,
|
|
49
|
+
event
|
|
50
|
+
}).then(result => {
|
|
51
|
+
setChat(result);
|
|
52
|
+
}).catch(e => {
|
|
53
|
+
console.error(e);
|
|
54
|
+
if (e.errorType !== 'INVALID_PARAMETER') {
|
|
55
|
+
_Utils.default.publishErrorMessage(e, props.viewId);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
} else {
|
|
59
|
+
throw new Error('Unknown service type : ' + serviceType);
|
|
60
|
+
}
|
|
61
|
+
} else {
|
|
62
|
+
if (actionConfig && actionConfig.value) {
|
|
63
|
+
let data = _ApplicationManager.default.resolveParameterConfigValue(actionConfig.value);
|
|
64
|
+
setChat(data);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
71
|
+
className: props.config.className ? props.config.className : null,
|
|
72
|
+
style: _Utils.default.mergeStyles({
|
|
73
|
+
width: '100%',
|
|
74
|
+
height: '100%'
|
|
75
|
+
}, props.config)
|
|
76
|
+
}, chat && /*#__PURE__*/_react.default.createElement(_ChatRoom.default, {
|
|
77
|
+
headerStyle: props.config.attributes?.headerStyle,
|
|
78
|
+
chatTab: true,
|
|
79
|
+
selectedChat: chat,
|
|
80
|
+
isHost: false,
|
|
81
|
+
disableMessageDelete: props.config.disableMessageDelete,
|
|
82
|
+
disableFileAttachment: props.config.disableFileAttachment,
|
|
83
|
+
showAllMessagesForNewParticipants: props.config.showAllMessagesForNewParticipants
|
|
84
|
+
}));
|
|
85
|
+
};
|
|
86
|
+
var _default = exports.default = Chat;
|
|
@@ -72,7 +72,8 @@ const ChatRoom = props => {
|
|
|
72
72
|
};
|
|
73
73
|
};
|
|
74
74
|
const fetchChat = () => {
|
|
75
|
-
|
|
75
|
+
let url = selectedChat.meetingId ? `${location + '/' + _ApplicationManager.default.getContextRoot()}/calendar/api/v1/chat/fetchMeetingChat/${selectedChat.meetingId}` : `${location + '/' + _ApplicationManager.default.getContextRoot()}/calendar/api/v1/chat/fetch/${selectedChat.id}`;
|
|
76
|
+
(0, _RestUtils.sendRequest)(url, response => {
|
|
76
77
|
if (response && response.id) {
|
|
77
78
|
setSelectedChat(response);
|
|
78
79
|
}
|
|
@@ -144,11 +145,14 @@ const ChatRoom = props => {
|
|
|
144
145
|
scrollToBottom();
|
|
145
146
|
if (selectedChat) {
|
|
146
147
|
const newMessages = [].concat(selectedChat.messages);
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
148
|
+
if (!props.showAllMessagesForNewParticipants) {
|
|
149
|
+
let find = selectedChat.participants.find(p => p.userId === currentUser.userId);
|
|
150
|
+
const dateAddedToChat = find ? find.dateAddedToChat : new Date();
|
|
151
|
+
const filteredMessages = newMessages.filter(txt => dateAddedToChat === null || new Date(dateAddedToChat) < new Date(txt.createdDate));
|
|
152
|
+
setMessages(filteredMessages);
|
|
153
|
+
} else {
|
|
154
|
+
setMessages(newMessages);
|
|
155
|
+
}
|
|
152
156
|
}
|
|
153
157
|
setLoading(false);
|
|
154
158
|
};
|
|
@@ -249,7 +253,7 @@ const ChatRoom = props => {
|
|
|
249
253
|
skipAlert: props.chatTab || finalMessage,
|
|
250
254
|
newChat: selectedChat.messages.length === 0,
|
|
251
255
|
meetingId: props.meetingId ? props.meetingId : null,
|
|
252
|
-
profile: _ApplicationManager.default.getUserDetails().profile
|
|
256
|
+
profile: _ApplicationManager.default.getActiveTenant() || _ApplicationManager.default.getUserDetails().profile
|
|
253
257
|
}).then(data => {
|
|
254
258
|
msg.id = data.id;
|
|
255
259
|
setMessages(oldMsgs => [...oldMsgs, msg]);
|
|
@@ -257,7 +261,9 @@ const ChatRoom = props => {
|
|
|
257
261
|
if (props.onMessage && selectedChat) {
|
|
258
262
|
props.onMessage(msg, selectedChat);
|
|
259
263
|
}
|
|
260
|
-
}).catch(error => {
|
|
264
|
+
}).catch(error => {
|
|
265
|
+
console.log("Error sending chat message : ", error);
|
|
266
|
+
});
|
|
261
267
|
}
|
|
262
268
|
setMessage('');
|
|
263
269
|
setImgUploadConfirm('');
|
|
@@ -537,7 +543,7 @@ const ChatRoom = props => {
|
|
|
537
543
|
}
|
|
538
544
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
539
545
|
className: 'col chat-time'
|
|
540
|
-
}, (0, _moment.default)(message.createdDate).format('DD/MM, HH:mm')), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_material.IconButton, {
|
|
546
|
+
}, (0, _moment.default)(message.createdDate).format('DD/MM, HH:mm')), !props.disableMessageDelete && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_material.IconButton, {
|
|
541
547
|
component: "span",
|
|
542
548
|
onClick: () => {
|
|
543
549
|
deleteChatMessage(message);
|
|
@@ -572,7 +578,7 @@ const ChatRoom = props => {
|
|
|
572
578
|
}
|
|
573
579
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
574
580
|
className: 'col chat-time'
|
|
575
|
-
}, (0, _moment.default)(message.createdDate).format('DD/MM, HH:mm')), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_material.IconButton, {
|
|
581
|
+
}, (0, _moment.default)(message.createdDate).format('DD/MM, HH:mm')), !props.disableMessageDelete && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_material.IconButton, {
|
|
576
582
|
component: "span",
|
|
577
583
|
onClick: () => {
|
|
578
584
|
deleteChatMessage(message);
|
|
@@ -650,7 +656,8 @@ const ChatRoom = props => {
|
|
|
650
656
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
651
657
|
className: "chatroom"
|
|
652
658
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
653
|
-
className: "chatroom__header"
|
|
659
|
+
className: "chatroom__header",
|
|
660
|
+
style: _Utils.default.mergeObjects({}, props.headerStyle)
|
|
654
661
|
}, !props.chatTab && /*#__PURE__*/_react.default.createElement("div", {
|
|
655
662
|
className: "chatroom__headerright"
|
|
656
663
|
}, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
|
|
@@ -687,7 +694,7 @@ const ChatRoom = props => {
|
|
|
687
694
|
style: {
|
|
688
695
|
position: 'relative'
|
|
689
696
|
}
|
|
690
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
697
|
+
}, !props.disableFileAttachment && /*#__PURE__*/_react.default.createElement("div", {
|
|
691
698
|
className: "file-upload chats-file-upload",
|
|
692
699
|
style: {
|
|
693
700
|
zIndex: !_Utils.default.isNull(documents) ? 1 : 0
|
|
@@ -212,7 +212,8 @@ const AgilitySignaturePanel = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_rea
|
|
|
212
212
|
})
|
|
213
213
|
}, "SIGN")))), /*#__PURE__*/_react.default.createElement("div", {
|
|
214
214
|
style: {
|
|
215
|
-
width: '100%'
|
|
215
|
+
width: '100%',
|
|
216
|
+
overflowX: 'hidden'
|
|
216
217
|
}
|
|
217
218
|
}, /*#__PURE__*/_react.default.createElement(_DocumentContainer.default, {
|
|
218
219
|
config: props.config,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agilemotion/oui-react-js",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.44",
|
|
4
4
|
"description": "AgileMotion React UI Component Library - A comprehensive collection of dashboard components, forms, media controls, and more",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "",
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
"@syncfusion/ej2-react-base": "^26.2.10",
|
|
63
63
|
"@syncfusion/ej2-react-documenteditor": "^26.2.14",
|
|
64
64
|
"@syncfusion/ej2-react-popups": "^26.2.11",
|
|
65
|
+
"@syncfusion/ej2-react-splitbuttons": "^31.2.2",
|
|
65
66
|
"@syncfusion/ej2-splitbuttons": "^26.2.10",
|
|
66
67
|
"@testing-library/dom": "^10.4.0",
|
|
67
68
|
"@testing-library/jest-dom": "^6.6.3",
|
|
@@ -93,10 +94,10 @@
|
|
|
93
94
|
"process": "^0.11.10",
|
|
94
95
|
"prop-types": "^15.7.2",
|
|
95
96
|
"react": "^18.3.1",
|
|
96
|
-
"react-dom": "^18.3.1",
|
|
97
97
|
"react-bootstrap": "^1.5.2",
|
|
98
98
|
"react-bootstrap-switch": "^15.5.3",
|
|
99
99
|
"react-confirm-alert": "^3.0.6",
|
|
100
|
+
"react-dom": "^18.3.1",
|
|
100
101
|
"react-draggable": "^4.4.6",
|
|
101
102
|
"react-feather": "^2.0.10",
|
|
102
103
|
"react-google-autocomplete": "^2.7.3",
|