@agilemotion/oui-react-js 1.8.14 → 1.8.15

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.
@@ -409,6 +409,7 @@ class ApplicationManager {
409
409
  currentGraph.anchorView = view;
410
410
  currentGraph.anchorHistoryElement = this.navHistory[this.navHistory.length - 1];
411
411
  currentGraph.initialNavHistoryDepth = 0;
412
+ //this.updateAppBarTitle(currentGraph.anchorView.config.id, currentGraph.anchorView.config.title);
412
413
  this.updateContext({
413
414
  windowDisplayState: 'PINNED'
414
415
  });
@@ -476,7 +477,7 @@ class ApplicationManager {
476
477
  }
477
478
  if (view.window) {
478
479
  this.updateContext({
479
- windowDisplayState: 'CLOSED'
480
+ windowDisplayState: 'MAXIMIZED'
480
481
  });
481
482
  }
482
483
  }
@@ -749,9 +750,10 @@ class ApplicationManager {
749
750
  return 'applicationManager';
750
751
  };
751
752
  loadAnchor(graph) {
753
+ alert('Loading anchor');
752
754
  this.navHistory.splice(graph.initialNavHistoryDepth - 1, this.navHistory.length);
753
755
  this.addView(graph.anchorView, graph.anchorHistoryElement.path, true);
754
- this.navigate('/view/unload');
756
+ //this.navigate('/view/unload');
755
757
  this.navigate('/view/' + graph.anchorView.config.id);
756
758
  }
757
759
  removeLoadedGraph(routeBackToAnchor) {
@@ -790,7 +792,7 @@ class ApplicationManager {
790
792
  }
791
793
  if (graph.config.isWindow) {
792
794
  this.updateContext({
793
- windowDisplayState: 'CLOSED'
795
+ windowDisplayState: 'MAXIMIZED'
794
796
  });
795
797
  }
796
798
  }
@@ -801,7 +803,9 @@ class ApplicationManager {
801
803
  for (const contextView of this.views) {
802
804
  this.closeView(contextView.handle.api.id, false);
803
805
  }
804
- this.getViewPortHistory().push('/switch');
806
+
807
+ /*this.getViewPortHistory()
808
+ .push('/switch');*/
805
809
  }
806
810
  config.isWindow = isWindow;
807
811
  let graph = new _Graph.default(_Utils.default.parseConfig(config));
@@ -394,7 +394,6 @@ const DataGrid = exports.DataGrid = /*#__PURE__*/_react.default.memo(/*#__PURE__
394
394
  for (let i = 0; i < records.length; i++) {
395
395
  tableRows.push(observeRow(records[i]));
396
396
  }
397
- rowsRef.current = tableRows;
398
397
  setRows(tableRows);
399
398
  }
400
399
  const search = function () {
@@ -521,6 +520,33 @@ const DataGrid = exports.DataGrid = /*#__PURE__*/_react.default.memo(/*#__PURE__
521
520
  }
522
521
  }
523
522
  };
523
+ const updateRowReadOnlyStatus = newRows => {
524
+ if (newRows) {
525
+ if (props.config.rowAttributes && props.config.rowAttributes.readOnlyEvaluator) {
526
+ let index = 0;
527
+ for (const row of newRows) {
528
+ row.readOnly = _DynamicJS.default.executeScriptObject('ROW-' + row.id + 'readOnlyEvaluator', props.config.rowAttributes.readOnlyEvaluator, props.config.id, {
529
+ index
530
+ }, null);
531
+ index++;
532
+ }
533
+ }
534
+ }
535
+ };
536
+ const updateColumnReadOnlyStatus = (column, newRows) => {
537
+ if (column.attributes && column.attributes.readOnlyEvaluator) {
538
+ let index = 0;
539
+ for (const row of newRows) {
540
+ if (!row.columnReadOnly) {
541
+ row.columnReadOnly = {};
542
+ }
543
+ row.columnReadOnly[column.id] = _DynamicJS.default.executeScriptObject('COL-' + row.id + '-' + column.id + '-readOnlyEvaluator', column.attributes.readOnlyEvaluator, props.config.id, {
544
+ index
545
+ }, null);
546
+ index++;
547
+ }
548
+ }
549
+ };
524
550
  _react.default.useEffect(() => {
525
551
  updateScrollBarPadding();
526
552
  _Observable.default.processSystemGeneratedSubscriptions(props.config.id);
@@ -544,10 +570,20 @@ const DataGrid = exports.DataGrid = /*#__PURE__*/_react.default.memo(/*#__PURE__
544
570
  for (const row of props.rows) {
545
571
  rowValues.push(observeRow(row));
546
572
  }
573
+ updateRowReadOnlyStatus(props.rows);
574
+ for (const column of config.columns) {
575
+ updateColumnReadOnlyStatus(column, props.rows);
576
+ }
547
577
  rowsRef.current = rowValues;
548
578
  setRows(rowValues);
549
579
  }
550
580
  }, [props.rows]);
581
+ _react.default.useEffect(() => {
582
+ updateRowReadOnlyStatus(rows);
583
+ for (const column of config.columns) {
584
+ updateColumnReadOnlyStatus(column, rows);
585
+ }
586
+ }, [rows]);
551
587
  _react.default.useEffect(() => {
552
588
  fireSelectionEvent();
553
589
  }, [selected]);
@@ -834,7 +870,7 @@ const DataGrid = exports.DataGrid = /*#__PURE__*/_react.default.memo(/*#__PURE__
834
870
  onRowError: rowErrorHandler,
835
871
  handle: createCellEditorHandle(column),
836
872
  viewId: props.viewId,
837
- editor: !props.disabled ? column.editor : null,
873
+ editor: !props.disabled && !row.readOnly && !row.columnReadOnly?.[column?.id] ? column.editor : null,
838
874
  ref: /*#__PURE__*/_react.default.createRef(),
839
875
  refCallback: createCell,
840
876
  selected: isItemSelected,
@@ -284,7 +284,7 @@ const Toolbar = props => {
284
284
  onClick: handleToggle
285
285
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
286
286
  id: 'MORE'
287
- }))))), /*#__PURE__*/_react.default.createElement(_Popper.default, {
287
+ }))))), anchorRef.current && /*#__PURE__*/_react.default.createElement(_Popper.default, {
288
288
  open: open,
289
289
  anchorEl: anchorRef.current,
290
290
  keepMounted: true,
@@ -230,7 +230,7 @@ const FoldingSideTabDashboard = props => {
230
230
  };
231
231
  function launchDashboard() {
232
232
  _ApplicationManager.default.closeAllViews();
233
- _ApplicationManager.default.navigate('/switch');
233
+ //applicationManager.navigate('/switch');
234
234
  _ApplicationManager.default.navigate('/view/dashboard');
235
235
  }
236
236
  return loading ? /*#__PURE__*/_react.default.createElement("div", null, "Loading...") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
@@ -293,17 +293,19 @@ const FoldingSideTabDashboard = props => {
293
293
  className: "content w-100 h-100 row no-margin no-padding"
294
294
  }, /*#__PURE__*/_react.default.createElement("div", {
295
295
  style: {
296
- width: '100%',
296
+ width: windowPinned ? 'calc(100% - 320px)' : '100%',
297
297
  height: "100%",
298
298
  mxHeight: "100%",
299
- overflow: 'auto'
299
+ overflow: 'auto',
300
+ paddingTop: '4px'
300
301
  }
301
302
  }, /*#__PURE__*/_react.default.createElement(_ViewPort.default, {
302
303
  windowPinned: windowPinned
303
304
  })), /*#__PURE__*/_react.default.createElement("div", {
304
305
  className: 'col no-margin no-padding',
305
306
  style: {
306
- width: windowPinned ? '320px' : '0'
307
+ width: windowPinned ? '320px' : '0',
308
+ margin: '8px'
307
309
  }
308
310
  }, /*#__PURE__*/_react.default.createElement(_WindowViewPort.default, {
309
311
  stateChangeHandler: state => {
@@ -191,8 +191,9 @@ const Form = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwar
191
191
  sectionHandle.api.refresh();
192
192
  }
193
193
  }
194
- if (!_Utils.default.isNull(props.config.visible)) {
195
- setVisible(_Utils.default.evaluateBooleanExpression(props.config.visible, props.config.id));
194
+ let parsedConfig = _Utils.default.parseConfig(props.config, props.viewId);
195
+ if (!_Utils.default.isNull(parsedConfig.visible)) {
196
+ setVisible(_Utils.default.evaluateBooleanExpression(parsedConfig.visible, parsedConfig.id));
196
197
  }
197
198
  }
198
199
  };
@@ -16,6 +16,7 @@ var _BaseField = require("./BaseField");
16
16
  var _DataGrid = require("../DataGrid");
17
17
  var _Observable = _interopRequireDefault(require("../../event/Observable"));
18
18
  var _DialogTitle = _interopRequireDefault(require("@mui/material/DialogTitle"));
19
+ var _Icon = _interopRequireDefault(require("../Icon"));
19
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
21
  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); }
21
22
  const LookupFieldComponent = exports.LookupFieldComponent = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forwardRef((props, ref) => {
@@ -68,6 +69,9 @@ const LookupFieldComponent = exports.LookupFieldComponent = /*#__PURE__*/_react.
68
69
  const openSearch = () => {
69
70
  setOpen(true);
70
71
  };
72
+ const clearValue = () => {
73
+ base.handleValueChange(null);
74
+ };
71
75
  return /*#__PURE__*/_react.default.createElement("div", {
72
76
  className: "w-100 lookup row no-margin no-padding",
73
77
  style: _Utils.default.mergeStyles({
@@ -96,16 +100,31 @@ const LookupFieldComponent = exports.LookupFieldComponent = /*#__PURE__*/_react.
96
100
  className: 'col-*-* no-margin no-padding',
97
101
  style: {
98
102
  width: 'calc(100% - 72px)',
99
- marginBottom: base.value ? '0' : '8px'
103
+ marginBottom: base.value ? '0' : '8px',
104
+ position: 'relative'
105
+ }
106
+ }, !base.required && /*#__PURE__*/_react.default.createElement("div", {
107
+ style: {
108
+ width: '32px',
109
+ height: '32px',
110
+ position: 'absolute',
111
+ right: 8,
112
+ zIndex: 10000
100
113
  }
101
- }, /*#__PURE__*/_react.default.createElement(_TextField.default, {
114
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
115
+ variant: 'outlined',
116
+ onClick: clearValue,
117
+ disabled: base.disabled
118
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
119
+ id: "CLEAR"
120
+ }))), /*#__PURE__*/_react.default.createElement(_TextField.default, {
102
121
  style: {
103
122
  marginTop: '0',
104
123
  width: props.config.attributes?.style?.width || 'calc(100% - 2px)'
105
124
  },
106
125
  id: props.id,
107
126
  required: base.required,
108
- disabled: true,
127
+ readonly: true,
109
128
  label: !_Utils.default.isNull(props.config.attributes) && !_Utils.default.isNull(props.config.attributes['label']) ? props.config.attributes['label'] : null,
110
129
  value: base.value?.__oui_label || base.value?.dataRecordDescription || defaultValue,
111
130
  className: props.className || 'lookup-field-input',
@@ -149,7 +149,7 @@ const View = props => {
149
149
  doUpdateModel(values);
150
150
  },
151
151
  setModelValue: (key, value) => {
152
- model.key = value;
152
+ model[key] = value;
153
153
  },
154
154
  getModelValue: key => {
155
155
  return model[key];
@@ -44,8 +44,9 @@ const ViewPort = props => {
44
44
  style: {
45
45
  height: 'calc(100vh - 96px)',
46
46
  maxHeight: 'calc(100vh - 96px)',
47
- position: props.windowPinned ? 'relative' : 'fixed',
48
- width: props.windowPinned ? '100%' : 'calc(100% - 348px)'
47
+ position: 'fixed',
48
+ width: props.windowPinned ? 'calc(100% - 664px)' : 'calc(100% - 348px)',
49
+ borderRadius: '4px'
49
50
  }
50
51
  }, /*#__PURE__*/_react.default.createElement(_PopupView.default, {
51
52
  controller: popupViewController.current
@@ -17,6 +17,11 @@
17
17
  padding-left: 0 !important;
18
18
  }
19
19
 
20
+ .window-paper-min,
21
+ .window-paper-max {
22
+ --Paper-shadow: unset !important;
23
+ }
24
+
20
25
  @media (max-width: 991px) {
21
26
  .window-paper-max {
22
27
  width: calc(100% - 16px) !important;
@@ -15,8 +15,10 @@ var _WindowDialog = _interopRequireDefault(require("./WindowDialog"));
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
16
  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); }
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ 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); }
18
19
  const minimizeWidth = '848';
19
20
  const PaperComponent = props => {
21
+ const nodeRef = (0, _react.useRef)(null);
20
22
  const [bounds, setBounds] = (0, _react.useState)({
21
23
  left: 0,
22
24
  right: 0,
@@ -44,8 +46,11 @@ const PaperComponent = props => {
44
46
  bounds: bounds,
45
47
  onStart: handleStart,
46
48
  handle: "#meeting-window-header",
47
- cancel: '[class*="MuiDialogContent-root"]'
48
- }, /*#__PURE__*/_react.default.createElement(_Paper.default, props));
49
+ cancel: '[class*="MuiDialogContent-root"]',
50
+ nodeRef: nodeRef
51
+ }, /*#__PURE__*/_react.default.createElement(_Paper.default, _extends({}, props, {
52
+ ref: nodeRef
53
+ })));
49
54
  };
50
55
  const Window = props => {
51
56
  const {
@@ -134,8 +139,13 @@ const Window = props => {
134
139
  paper.style.transform = windowTransformValue;
135
140
  }
136
141
  paper.style.width = '320px';
137
- paper.style.height = 'calc(100% - 88px)';
142
+ paper.style.height = 'calc(100% - 96px)';
138
143
  paper.style.boxShadow = 'unset';
144
+ paper.style.borderRadius = '4px';
145
+ paper.style.left = 'unset';
146
+ paper.style.right = '0';
147
+ paper.style.position = 'absolute';
148
+ paper.style.top = '72px';
139
149
  let header = document.getElementsByClassName('dialogHeader')[0];
140
150
  header.getElementsByTagName('button')[0].style.color = '#000000';
141
151
  setDisplayState('PINNED');
@@ -156,9 +166,13 @@ const Window = props => {
156
166
  if (windowTransformValue) {
157
167
  paper.style.transform = windowTransformValue;
158
168
  }
169
+ paper.style.removeProperty('--Paper-shadow');
170
+ paper.style.boxShadow = 'unset';
159
171
  paper.style.width = minimizeWidth + 'px';
160
172
  paper.style.height = '500px';
161
173
  paper.style.margin = '0 16px 16px 16px';
174
+ paper.style.position = 'relative';
175
+ paper.style.border = 'unset';
162
176
  let header = document.getElementsByClassName('dialogHeader')[0];
163
177
  header.getElementsByTagName('button')[0].style.color = '#000000';
164
178
  document.getElementById('meeting-window-header').style.cursor = 'move';
@@ -182,11 +196,17 @@ const Window = props => {
182
196
  let sidebar = document.getElementsByClassName('sidebar')[0];
183
197
  let sidebarTransform = window.getComputedStyle(sidebar, null).transform;
184
198
  setWindowTransformValue(paper.style.transform);
199
+ paper.style.removeProperty('--Paper-shadow');
200
+ paper.style.boxShadow = 'unset';
185
201
  paper.style.transform = 'translate(0, 0)';
186
202
  paper.style.backgroundColor = '#FFFFFF';
187
- paper.style.width = 'calc(100% - ' + getLeftOffset() + 'px)';
203
+ paper.style.width = 'calc(100% - ' + isNaN(getLeftOffset()) ? '344' : getLeftOffset() + 'px)';
188
204
  paper.style.height = 'calc(100% - 88px)';
189
205
  paper.style.margin = '8px';
206
+ paper.style.right = '0';
207
+ paper.style.position = 'absolute';
208
+ paper.style.top = '72px';
209
+ paper.style.left = (isNaN(getLeftOffset()) ? '328' : getLeftOffset()) + 'px';
190
210
  let header = document.getElementsByClassName('dialogHeader')[0];
191
211
  header.getElementsByTagName('button')[0].style.color = 'rgba(0, 0, 0, 0.54)';
192
212
  document.getElementById('meeting-window-header').style.cursor = 'default';
@@ -229,6 +249,9 @@ const Window = props => {
229
249
  }
230
250
  }, /*#__PURE__*/_react.default.createElement("div", {
231
251
  id: 'window-content',
252
+ style: {
253
+ overflow: 'hidden'
254
+ },
232
255
  className: `${(displayState === 'PINNED' ? 'window-pinned ' : '') + 'w-100 h-100'}`
233
256
  }, /*#__PURE__*/_react.default.createElement("div", {
234
257
  className: 'meeting-window-header',
@@ -16,7 +16,6 @@ const withStyledDialog = Component => (0, _withStyles.default)(theme => ({
16
16
  pointerEvents: "none",
17
17
  zIndex: 0,
18
18
  left: 'unset',
19
- border: '1px solid #e1e1e1',
20
19
  borderRadius: '4px'
21
20
  },
22
21
  paper: props => ({
@@ -30,7 +29,6 @@ const withStyledDialog = Component => (0, _withStyles.default)(theme => ({
30
29
  bottom: 0,
31
30
  left: '164px',
32
31
  top: '40px',
33
- borderRadius: 4,
34
32
  boxShadow: "none",
35
33
  zIndex: 0,
36
34
  "@media (max-width:991px)": {
@@ -8,7 +8,6 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  require("./ViewContainer.css");
9
9
  var _Window = _interopRequireDefault(require("./Window"));
10
10
  var _View = require("./View");
11
- var _Observable = _interopRequireDefault(require("../../event/Observable"));
12
11
  var _ApplicationManager = _interopRequireDefault(require("../../ApplicationManager"));
13
12
  var _Icon = _interopRequireDefault(require("../Icon"));
14
13
  var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
@@ -18,6 +17,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
18
17
  const WindowViewContainer = props => {
19
18
  const [view, setView] = _react.default.useState(null);
20
19
  const [pinned, setPinned] = _react.default.useState(false);
20
+ const counter = (0, _react.useRef)(0);
21
21
  function loadView(context) {
22
22
  if (context) {
23
23
  if (Object.keys(context).find(key => key === 'windowView')) {
@@ -74,8 +74,8 @@ const WindowViewContainer = props => {
74
74
  onClose: () => {}
75
75
  }, /*#__PURE__*/_react.default.createElement(_View.View, {
76
76
  config: view.config,
77
+ key: view.config.id,
77
78
  parameters: view.parameters,
78
- ref: /*#__PURE__*/_react.default.createRef(),
79
79
  handle: view.handle
80
80
  })), view && pinned && /*#__PURE__*/_react.default.createElement(_IconButton.default, {
81
81
  onClick: e => {
@@ -78,6 +78,7 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.defaul
78
78
  case _VCEventType.VCEventType.REQUEST_TO_JOIN_MEETING:
79
79
  break;
80
80
  case _VCEventType.VCEventType.USER_JOINED:
81
+ alert('USER JOIN FIREEEEE...');
81
82
  addUser(be.payload);
82
83
  break;
83
84
  case _VCEventType.VCEventType.USER_LEFT_MEETING:
@@ -10,6 +10,8 @@ require("./Video.css");
10
10
  require("./VCRoom.css");
11
11
  var _TrainingRoom = _interopRequireDefault(require("./TrainingRoom"));
12
12
  var _Observable = _interopRequireDefault(require("../../event/Observable"));
13
+ var _Event = _interopRequireDefault(require("../../event/Event"));
14
+ var _EventType = _interopRequireDefault(require("../../event/EventType"));
13
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
16
  const WAITING_FOR_OTHERS_TO_JOIN_MESSAGE = exports.WAITING_FOR_OTHERS_TO_JOIN_MESSAGE = 'Waiting for others to join';
15
17
  const SYSTEM_ERROR_MESSAGE = exports.SYSTEM_ERROR_MESSAGE = 'A system error has occurred. Please try again later or contact your system administrator';
@@ -22,10 +24,11 @@ const VCRoom = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.forw
22
24
  props.handle.api = api();
23
25
  });
24
26
  _react.default.useEffect(() => {
25
- props.handle.api = api();
26
27
  let parsedConfig = _Utils.default.parseConfig(props.config, props.viewId);
27
28
  _Observable.default.addSubscriptions(parsedConfig.eventHandlingConfig, props.handle, props.viewId);
28
29
  _Observable.default.addSystemSubscriptions(props.viewId, parsedConfig);
30
+ let event = new _Event.default(props.handle, props.viewId, null);
31
+ _Observable.default.fireEvent(_EventType.default.COMPONENT_LOAD, event);
29
32
  }, []);
30
33
  const api = () => {
31
34
  return {
@@ -11,7 +11,7 @@
11
11
  }
12
12
 
13
13
  .meeting-participant-container-current-user {
14
- min-width: 150px;
14
+ min-width: 212px;
15
15
  min-height: 150px;
16
16
  }
17
17
 
@@ -713,7 +713,8 @@ const VCRoomParticipant = props => {
713
713
  }
714
714
  }, audioDevices.map((device, index) => {
715
715
  return /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
716
- onClick: () => changeAudioDevice(device)
716
+ onClick: () => changeAudioDevice(device),
717
+ key: index
717
718
  }, /*#__PURE__*/_react.default.createElement("span", {
718
719
  style: {
719
720
  color: selectedAudioDevice && selectedAudioDevice.id === device.id ? '#198754' : null
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agilemotion/oui-react-js",
3
- "version": "1.8.14",
3
+ "version": "1.8.15",
4
4
  "files": [
5
5
  "dist"
6
6
  ],