@agilemotion/oui-react-js 1.6.8 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/ApplicationManager.js +5 -6
  2. package/dist/DynamicJS.js +1 -4
  3. package/dist/RestUtils.js +26 -26
  4. package/dist/Utils.js +4 -2
  5. package/dist/components/Button.js +4 -0
  6. package/dist/components/DataGrid.js +2 -6
  7. package/dist/components/DocumentTemplateDesigner.js +27 -0
  8. package/dist/components/DocumentTemplateDesignerComponent.css +168 -0
  9. package/dist/components/DocumentTemplateDesignerComponent.js +9 -2
  10. package/dist/components/DocumentViewer.js +8 -2
  11. package/dist/components/FileThumb.js +11 -3
  12. package/dist/components/HtmlPanel.js +2 -4
  13. package/dist/components/Icon.js +7 -0
  14. package/dist/components/SocketManager.js +10 -5
  15. package/dist/components/TitleBar.js +0 -1
  16. package/dist/components/Toolbar.js +196 -22
  17. package/dist/components/UseIsVisible.js +15 -11
  18. package/dist/components/dashboard/FoldingSideTabDashboard.js +0 -1
  19. package/dist/components/form/FieldSet.js +288 -237
  20. package/dist/components/form/LookupField.js +5 -3
  21. package/dist/components/layout/Layout.js +184 -130
  22. package/dist/components/media/Toolbar.js +19 -2
  23. package/dist/components/media/ToolbarButton.js +6 -2
  24. package/dist/components/media/TrainingRoom.js +17 -3
  25. package/dist/components/media/VCRoom.css +12 -0
  26. package/dist/components/media/VCRoomWorkspace.js +3 -3
  27. package/dist/components/media/chat/ChatRoom.js +4 -10
  28. package/dist/components/media/chat/ChatRoomWrapper.js +65 -0
  29. package/dist/components/media/chat/ChatRooms.scss +10 -0
  30. package/dist/components/menu/MenuItem.js +45 -11
  31. package/dist/event/Observable.js +15 -25
  32. package/dist/event/ServiceCallActionHandler.js +2 -2
  33. package/dist/js/Docs.js +79 -0
  34. package/package.json +1 -1
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _Observable = _interopRequireDefault(require("../event/Observable"));
9
9
  var _core = require("@material-ui/core");
10
10
  var _ToggleButtonGroup = _interopRequireDefault(require("@material-ui/lab/ToggleButtonGroup"));
@@ -13,8 +13,34 @@ var _Button = _interopRequireDefault(require("./Button"));
13
13
  var _Utils = _interopRequireDefault(require("../Utils"));
14
14
  var _styles = require("@material-ui/core/styles");
15
15
  var _Icon = _interopRequireDefault(require("./Icon"));
16
+ var _ToolbarButton = _interopRequireDefault(require("./media/ToolbarButton"));
17
+ var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
18
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
19
+ var _Grow = _interopRequireDefault(require("@material-ui/core/Grow"));
20
+ var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
21
+ var _ClickAwayListener = _interopRequireDefault(require("@material-ui/core/ClickAwayListener"));
22
+ var _MenuList = _interopRequireDefault(require("@material-ui/core/MenuList"));
23
+ var _Popper = _interopRequireDefault(require("@material-ui/core/Popper"));
24
+ var _MenuItem = _interopRequireDefault(require("./menu/MenuItem"));
16
25
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
26
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
27
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
17
29
  const useStyles = (0, _styles.makeStyles)(theme => ({
30
+ root: {
31
+ display: 'flex'
32
+ },
33
+ paper: {
34
+ marginRight: theme.spacing(2)
35
+ },
36
+ MuiButtonWhite: {
37
+ color: '#fff'
38
+ },
39
+ wrapper: {
40
+ maxHeight: "32px",
41
+ minwidth: "60px",
42
+ zIndex: 2
43
+ },
18
44
  spacer: {
19
45
  borderLeft: '2px solid' + theme.palette.secondary.main,
20
46
  height: '100%'
@@ -33,13 +59,39 @@ const StyledToggleButtonGroup = (0, _core.withStyles)(theme => ({
33
59
  }
34
60
  }
35
61
  }))(_ToggleButtonGroup.default);
36
- const Toolbar = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
62
+ const Toolbar = props => {
37
63
  const classes = useStyles();
38
- const [itemHandles] = _react.default.useState([]);
39
- const [alignment] = _react.default.useState(_Utils.default.getComponentAttribute(props.config, 'alignment', 'left'));
64
+ const [buttonItemHandles] = _react.default.useState({});
65
+ const [menuItemHandles] = _react.default.useState({});
40
66
  const [config, setConfig] = _react.default.useState(null);
41
- let itemKeyCounter = 0;
67
+ const [buttonVisibility, setButtonVisibility] = (0, _react.useState)({});
68
+ const [allButtonsVisible, setAllButtonsVisible] = (0, _react.useState)(false);
69
+ const [allItems] = (0, _react.useState)([]);
70
+ const [open, setOpen] = _react.default.useState(false);
71
+ const anchorRef = _react.default.useRef(null);
72
+ const ref = (0, _react.useRef)();
73
+ const sectionContainerRef = (0, _react.useRef)();
42
74
  let sectionKeyCounter = 0;
75
+ const handleVisibilityChange = (id, visible) => {
76
+ buttonVisibility[id] = visible;
77
+ let allVisible = true;
78
+ Object.keys(buttonVisibility).forEach(key => {
79
+ if (buttonVisibility[key] === false) {
80
+ allVisible = false;
81
+ }
82
+ });
83
+ setAllButtonsVisible(allVisible);
84
+ setButtonVisibility(JSON.parse(JSON.stringify(buttonVisibility)));
85
+ };
86
+ const handleClick = event => {
87
+ setAnchorEl(event.currentTarget);
88
+ };
89
+ const handleClose = event => {
90
+ if (anchorRef.current && anchorRef.current.contains(event.target)) {
91
+ return;
92
+ }
93
+ setOpen(false);
94
+ };
43
95
  _react.default.useEffect(() => {
44
96
  props.handle.api = api();
45
97
  });
@@ -49,6 +101,11 @@ const Toolbar = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
49
101
  let parsedConfig = _Utils.default.parseConfig(config, props.viewId);
50
102
  _Observable.default.addSubscriptions(parsedConfig.eventHandlingConfig, props.handle, props.viewId);
51
103
  _Observable.default.addSystemSubscriptions(props.viewId, parsedConfig);
104
+ for (const section of config.sections) {
105
+ for (const item of section.items) {
106
+ allItems.push(item);
107
+ }
108
+ }
52
109
  }
53
110
  }, [config]);
54
111
  _react.default.useEffect(() => {
@@ -57,11 +114,27 @@ const Toolbar = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
57
114
  id: props.config.id + '_' + props.tableRow.id?.replaceAll('-', '')
58
115
  } : props.config);
59
116
  }, []);
60
- function createItemHandle() {
117
+ function createButtonItemHandle(id) {
118
+ let _id = props.tableRow ? id + '_' + props.tableRow.id?.replaceAll('-', '') : id;
119
+ if (buttonItemHandles[_id]) {
120
+ return buttonItemHandles[_id];
121
+ }
61
122
  let handle = {};
62
- itemHandles.push(handle);
123
+ buttonItemHandles[_id] = handle;
63
124
  return handle;
64
125
  }
126
+ function createMenuItemHandle(id) {
127
+ let _id = props.tableRow ? id + '_' + props.tableRow.id?.replaceAll('-', '') : id;
128
+ if (menuItemHandles[_id]) {
129
+ return menuItemHandles[_id];
130
+ }
131
+ let handle = {};
132
+ menuItemHandles[_id] = handle;
133
+ return handle;
134
+ }
135
+ const handleToggle = () => {
136
+ setOpen(prevOpen => !prevOpen);
137
+ };
65
138
  function getDefaultStyle(item) {
66
139
  return {
67
140
  height: item.type === 'toolbarSpacer' ? item.attributes?.style?.height ? item.attributes?.style?.height : '100%' : null,
@@ -77,23 +150,35 @@ const Toolbar = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
77
150
  if (_Utils.default.isNull(item.id)) {
78
151
  item.id = defaultId;
79
152
  }
80
- return item.type === 'menuButton' ? /*#__PURE__*/_react.default.createElement(_MenuButton.default, {
153
+ return item.type === 'menuButton' ? /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
154
+ root: sectionContainerRef,
155
+ onVisibilityChange: visible => handleVisibilityChange(item.id, visible)
156
+ }, /*#__PURE__*/_react.default.createElement(_MenuButton.default, {
81
157
  config: item,
82
- handle: createItemHandle(),
158
+ handle: createButtonItemHandle(item.id),
83
159
  ref: /*#__PURE__*/_react.default.createRef(),
84
160
  tableRow: props.tableRow,
85
161
  viewId: props.viewId
86
- }) : item.type === 'button' ? /*#__PURE__*/_react.default.createElement(_Button.default, {
162
+ })) : item.type === 'button' ? /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
163
+ root: sectionContainerRef,
164
+ onVisibilityChange: visible => handleVisibilityChange(item.id, visible)
165
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
87
166
  config: item,
88
- handle: createItemHandle(),
167
+ handle: createButtonItemHandle(item.id),
89
168
  ref: /*#__PURE__*/_react.default.createRef(),
90
169
  tableRow: props.tableRow,
91
170
  viewId: props.viewId
92
- }) : item.type === 'toolbarSpacer' ? /*#__PURE__*/_react.default.createElement("div", {
171
+ })) : item.type === 'toolbarSpacer' ? /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
172
+ root: sectionContainerRef,
173
+ onVisibilityChange: visible => handleVisibilityChange(item.id, visible)
174
+ }, /*#__PURE__*/_react.default.createElement("div", {
93
175
  className: classes.spacer
94
- }, "\xA0") : item.type === 'icon' ? /*#__PURE__*/_react.default.createElement(_Icon.default, {
176
+ }, "\xA0")) : item.type === 'icon' ? /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
177
+ root: sectionContainerRef,
178
+ onVisibilityChange: visible => handleVisibilityChange(item.id, visible)
179
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
95
180
  id: _Utils.default.getComponentAttribute(item, 'iconId', null)
96
- }) : /*#__PURE__*/_react.default.createElement("div", null, "Unsupported toolbar item type " + item.type);
181
+ })) : /*#__PURE__*/_react.default.createElement("div", null, "Unsupported toolbar item type " + item.type);
97
182
  }
98
183
  function renderSection(section, counter) {
99
184
  let itemCounter = 0;
@@ -104,18 +189,22 @@ const Toolbar = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
104
189
  "aria-label": "text alignment",
105
190
  style: _Utils.default.mergeStyles({
106
191
  minWidth: '128px',
192
+ maxWidth: '100%',
107
193
  height: '100%',
108
194
  marginLeft: 0,
109
- marginRight: 0
195
+ marginRight: 0,
196
+ position: 'relative'
110
197
  }, section)
111
198
  }, /*#__PURE__*/_react.default.createElement("div", {
112
- className: "row"
199
+ className: "row flex-nowrap"
113
200
  }, section.items.map((item, index) => {
201
+ let defaultId = 'toolbar_item_' + counter + '_' + itemCounter++;
114
202
  return /*#__PURE__*/_react.default.createElement("div", {
115
203
  className: 'col-*-*',
204
+ id: item.id ? item.id : defaultId,
116
205
  key: index,
117
206
  style: getDefaultStyle(item)
118
- }, renderItem(item, 'toolbar_item_' + counter + '_' + itemCounter++));
207
+ }, renderItem(item, defaultId));
119
208
  })));
120
209
  }
121
210
  const api = () => {
@@ -128,31 +217,116 @@ const Toolbar = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
128
217
  return props.tableRow;
129
218
  },
130
219
  getChildren: () => {
131
- return itemHandles;
220
+ let children = [];
221
+ let properties = Object.getOwnPropertyNames(buttonItemHandles);
222
+ for (const property of properties) {
223
+ let itemHandle = buttonItemHandles[property];
224
+ children.push(itemHandle);
225
+ }
226
+ properties = Object.getOwnPropertyNames(menuItemHandles);
227
+ for (const property of properties) {
228
+ let itemHandle = menuItemHandles[property];
229
+ children.push(itemHandle);
230
+ }
231
+ return children;
132
232
  }
133
233
  };
134
234
  };
135
235
  function render(toolbar) {
136
236
  let counter = 0;
137
237
  return /*#__PURE__*/_react.default.createElement("div", {
138
- className: "row no-margin no-padding",
238
+ className: "row no-margin no-padding flex-nowrap",
139
239
  ref: ref
240
+ }, /*#__PURE__*/_react.default.createElement("div", {
241
+ style: {
242
+ width: 'calc(100% - 40px)'
243
+ },
244
+ ref: sectionContainerRef
140
245
  }, toolbar.sections.map((section, index) => {
141
246
  return /*#__PURE__*/_react.default.createElement("div", {
142
247
  className: "col no-margin no-padding",
143
248
  key: index,
144
249
  style: {
145
- textAlign: section.halign ? section.halign.toLowerCase() : null
250
+ textAlign: section.halign ? section.halign.toLowerCase() : null,
251
+ maxWidth: '100%'
146
252
  }
147
253
  }, renderSection(section, counter++));
254
+ })), /*#__PURE__*/_react.default.createElement("div", {
255
+ style: {
256
+ width: '32px',
257
+ height: '44px',
258
+ display: 'flex',
259
+ alignItems: 'center'
260
+ }
261
+ }, !allButtonsVisible && /*#__PURE__*/_react.default.createElement("div", {
262
+ className: 'col-*-* more-button-wrapper',
263
+ style: {
264
+ display: 'flex',
265
+ alignItems: 'center'
266
+ }
267
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
268
+ title: "More"
269
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
270
+ style: {
271
+ marginRight: '4px',
272
+ width: '20px',
273
+ height: '20px'
274
+ },
275
+ ref: anchorRef,
276
+ "aria-controls": "menu-list-grow",
277
+ "aria-haspopup": "true",
278
+ onClick: handleToggle
279
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
280
+ id: 'MORE'
281
+ }))))), /*#__PURE__*/_react.default.createElement(_Popper.default, {
282
+ open: open,
283
+ anchorEl: anchorRef.current,
284
+ keepMounted: true,
285
+ transition: true,
286
+ disablePortal: true,
287
+ style: {
288
+ zIndex: 1000
289
+ }
290
+ }, _ref => {
291
+ let {
292
+ TransitionProps,
293
+ placement
294
+ } = _ref;
295
+ return /*#__PURE__*/_react.default.createElement(_Grow.default, _extends({}, TransitionProps, {
296
+ style: {
297
+ transformOrigin: placement === 'bottom' ? 'center top' : 'center bottom'
298
+ }
299
+ }), /*#__PURE__*/_react.default.createElement(_Paper.default, {
300
+ id: "menu-list-grow"
301
+ }, /*#__PURE__*/_react.default.createElement(_ClickAwayListener.default, {
302
+ onClickAway: handleClose
303
+ }, /*#__PURE__*/_react.default.createElement(_MenuList.default, {
304
+ style: {
305
+ background: "#ffffff",
306
+ opacity: "1"
307
+ }
308
+ }, allItems.map((item, index) => {
309
+ if (!buttonVisibility[item.id]) {
310
+ return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
311
+ config: item,
312
+ viewId: props.viewId,
313
+ key: index,
314
+ handle: createMenuItemHandle(item.id),
315
+ tableRow: props.tableRow,
316
+ ref: /*#__PURE__*/_react.default.createRef()
317
+ });
318
+ }
319
+ })))));
148
320
  }));
149
321
  }
150
322
  return /*#__PURE__*/_react.default.createElement("div", {
323
+ id: props.config.id,
151
324
  ref: ref,
152
325
  style: _Utils.default.mergeStyles({
153
326
  borderBottom: '1px solid #e2e2e2',
154
- padding: '8px 0 16px 0'
327
+ padding: '4px 0 0 0',
328
+ overflow: 'hidden'
155
329
  }, props.config)
156
330
  }, render(props.config));
157
- });
331
+ };
158
332
  var _default = exports.default = Toolbar;
@@ -6,18 +6,22 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useIsVisible = useIsVisible;
7
7
  var _react = require("react");
8
8
  function useIsVisible(ref) {
9
+ let root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
9
10
  const [isIntersecting, setIntersecting] = (0, _react.useState)(false);
10
11
  (0, _react.useEffect)(() => {
11
- const observer = new IntersectionObserver(_ref => {
12
- let [entry] = _ref;
13
- return setIntersecting(entry.isIntersecting);
14
- }, {
15
- threshold: 1
16
- });
17
- observer.observe(ref.current);
18
- return () => {
19
- observer.disconnect();
20
- };
21
- }, [ref]);
12
+ if (ref && root) {
13
+ const observer = new IntersectionObserver(_ref => {
14
+ let [entry] = _ref;
15
+ setIntersecting(entry.isIntersecting);
16
+ }, {
17
+ threshold: 1,
18
+ root
19
+ });
20
+ observer.observe(ref.current);
21
+ return () => {
22
+ observer.disconnect();
23
+ };
24
+ }
25
+ }, [ref, root]);
22
26
  return isIntersecting;
23
27
  }
@@ -125,7 +125,6 @@ const FoldingSideTabDashboard = props => {
125
125
  newRoute.level = 0;
126
126
  newRoute.isParent = true;
127
127
  newRoutes.push(newRoute);
128
- console.log(props.settings.systemProfileDto);
129
128
  if (!_Utils.default.isNull(props.settings.systemProfileDto.modules)) {
130
129
  for (let i = 0; i < props.settings.systemProfileDto.modules.length; i++) {
131
130
  let module = props.settings.systemProfileDto.modules[i];