@agilemotion/oui-react-js 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/ApplicationContext.js +90 -41
  2. package/dist/BasicAppHome.js +16 -10
  3. package/dist/BusinessPortalApp.js +25 -50
  4. package/dist/BusinessPortalAppHome.js +102 -109
  5. package/dist/RestUtils.js +64 -35
  6. package/dist/Utils.js +47 -1
  7. package/dist/components/AlertBar.js +40 -11
  8. package/dist/components/ConfirmationDialog.js +54 -8
  9. package/dist/components/DataGrid.css +3 -1
  10. package/dist/components/DataGrid.js +149 -82
  11. package/dist/components/DataGridFilter.js +85 -8
  12. package/dist/components/Dialog.js +258 -0
  13. package/dist/components/HtmlPanel.js +103 -4
  14. package/dist/components/Icon.js +52 -0
  15. package/dist/components/PopupView.js +55 -6
  16. package/dist/components/SignaturePanel.js +40 -11
  17. package/dist/components/StepperTitleBar.bck.css +85 -0
  18. package/dist/components/StepperTitleBar.css +53 -54
  19. package/dist/components/StepperTitleBar.js +39 -28
  20. package/dist/components/TabPanel.js +10 -11
  21. package/dist/components/TableCellContent.js +6 -3
  22. package/dist/components/TemplateDesigner.css +13 -0
  23. package/dist/components/TemplateDesigner.js +494 -0
  24. package/dist/components/TemplateItemEventHandler.js +440 -0
  25. package/dist/components/TemplateTable.js +222 -0
  26. package/dist/components/TitleBar.js +21 -14
  27. package/dist/components/Toolbar.js +7 -5
  28. package/dist/components/Tree.js +5 -2
  29. package/dist/components/dashboard/BasicBusinessAppDashboard.js +14 -10
  30. package/dist/components/dashboard/BusinessPortalAppDashboard.js +79 -34
  31. package/dist/components/dashboard/components/blackDashboard/sidebar/Sidebar.js +1 -1
  32. package/dist/components/dashboard/components/portal/Workspace.css +6 -6
  33. package/dist/components/form/AddressSearch.js +140 -0
  34. package/dist/components/form/BaseField.js +31 -6
  35. package/dist/components/form/Checkbox.js +3 -0
  36. package/dist/components/form/DatePicker.js +12 -7
  37. package/dist/components/form/FieldSet.js +246 -71
  38. package/dist/components/form/Form.js +153 -122
  39. package/dist/components/form/GridField.js +3 -2
  40. package/dist/components/form/ImageEditor.js +461 -0
  41. package/dist/components/form/LabelField.js +2 -2
  42. package/dist/components/form/LookupField.js +16 -4
  43. package/dist/components/form/RadioGroup.js +107 -0
  44. package/dist/components/form/Section.js +58 -19
  45. package/dist/components/form/SelectItem.js +5 -3
  46. package/dist/components/form/SignatureTemplateDesignerField.js +46 -0
  47. package/dist/components/form/TextField.js +5 -9
  48. package/dist/components/form/TransferList.js +7 -7
  49. package/dist/components/form/UploadField.js +93 -42
  50. package/dist/components/form/noimage-person.png +0 -0
  51. package/dist/components/form/noimage.png +0 -0
  52. package/dist/components/form/transparent.jpeg +0 -0
  53. package/dist/components/layout/CollapsiblePanel.js +0 -6
  54. package/dist/components/layout/Layout.js +41 -20
  55. package/dist/components/layout/View.css +43 -0
  56. package/dist/components/layout/View.js +76 -156
  57. package/dist/components/layout/ViewPort.js +29 -47
  58. package/dist/components/navbars/HomeNavbar.js +31 -6
  59. package/dist/components/navbars/PortalNavbar.css +2 -2
  60. package/dist/components/navbars/PortalNavbar.js +125 -36
  61. package/dist/components/signatures/AgilitySignaturePanel.js +312 -0
  62. package/dist/components/signatures/DocumentContainer.css +33 -0
  63. package/dist/components/signatures/DocumentContainer.js +206 -0
  64. package/dist/components/signatures/ImageSignatureInput.js +265 -0
  65. package/dist/components/signatures/ResponsiveTable.js +1 -3
  66. package/dist/components/signatures/SignatureInput.js +303 -0
  67. package/dist/components/signatures/SignatureInputProps.js +17 -11
  68. package/dist/components/signatures/SignatureTemplateDesigner.js +186 -77
  69. package/dist/components/signatures/transparent.jpeg +0 -0
  70. package/dist/event/LoadDataActionHandler.js +1 -1
  71. package/dist/event/Observable.js +1 -1
  72. package/dist/event/RouteActionHandler.js +17 -4
  73. package/dist/event/ServiceCallActionHandler.js +7 -3
  74. package/dist/js/Addresses.js +16 -9
  75. package/dist/view/Dashboard.js +10 -6
  76. package/dist/view/security/LoginBusinessPortal.js +1 -0
  77. package/package.json +4 -1
@@ -17,6 +17,8 @@ var _TabPanel = _interopRequireDefault(require("../TabPanel"));
17
17
 
18
18
  var _Grid = _interopRequireDefault(require("@material-ui/core/Grid"));
19
19
 
20
+ var _HtmlPanel = _interopRequireDefault(require("../HtmlPanel"));
21
+
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
23
 
22
24
  function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
@@ -100,7 +102,17 @@ const Section = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.fo
100
102
  viewId: props.viewId,
101
103
  values: props.values,
102
104
  key: componentKey++
103
- }) : /*#__PURE__*/_react.default.createElement("div", null, "Unsupported form section component type " + component.type);
105
+ }) : component.type === 'htmlPanel' ? /*#__PURE__*/_react.default.createElement(_HtmlPanel.default, {
106
+ config: component,
107
+ handle: createComponentHandle(component),
108
+ ref: /*#__PURE__*/_react.default.createRef(),
109
+ viewId: props.viewId,
110
+ key: componentKey++,
111
+ values: props.values,
112
+ loadCompleteHandler: props.loadCompleteHandler
113
+ }) : /*#__PURE__*/_react.default.createElement("div", {
114
+ key: componentKey++
115
+ }, "Unsupported form section component type " + component.type);
104
116
  }
105
117
 
106
118
  const api = () => {
@@ -122,18 +134,20 @@ const Section = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.fo
122
134
  let componentHandle = componentHandles[property];
123
135
  children.push(componentHandle);
124
136
 
125
- var _iterator2 = _createForOfIteratorHelper(componentHandle.api.getChildren()),
126
- _step2;
127
-
128
- try {
129
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
130
- const child = _step2.value;
131
- children.push(child);
137
+ if (componentHandle.api) {
138
+ var _iterator2 = _createForOfIteratorHelper(componentHandle.api.getChildren()),
139
+ _step2;
140
+
141
+ try {
142
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
143
+ const child = _step2.value;
144
+ children.push(child);
145
+ }
146
+ } catch (err) {
147
+ _iterator2.e(err);
148
+ } finally {
149
+ _iterator2.f();
132
150
  }
133
- } catch (err) {
134
- _iterator2.e(err);
135
- } finally {
136
- _iterator2.f();
137
151
  }
138
152
  }
139
153
  } catch (err) {
@@ -143,7 +157,30 @@ const Section = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.fo
143
157
  }
144
158
 
145
159
  return children;
160
+ },
161
+
162
+ refresh() {
163
+ let properties = Object.getOwnPropertyNames(componentHandles);
164
+
165
+ var _iterator3 = _createForOfIteratorHelper(properties),
166
+ _step3;
167
+
168
+ try {
169
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
170
+ const property = _step3.value;
171
+ let componentHandle = componentHandles[property];
172
+
173
+ if (componentHandle.api && componentHandle.api.refresh) {
174
+ componentHandle.api.refresh();
175
+ }
176
+ }
177
+ } catch (err) {
178
+ _iterator3.e(err);
179
+ } finally {
180
+ _iterator3.f();
181
+ }
146
182
  }
183
+
147
184
  };
148
185
  };
149
186
 
@@ -152,21 +189,23 @@ const Section = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.fo
152
189
  };
153
190
 
154
191
  function render(section) {
155
- let margin = !_Utils.default.isNull(section.attributes) && !_Utils.default.isNull(section.attributes['margin']) ? section.attributes['margin'] : null;
156
192
  let counter = 0;
157
- return _Utils.default.isNull(section.components) || section.components.length === 0 ? /*#__PURE__*/_react.default.createElement("div", null, " Error: A form section must have components") : /*#__PURE__*/_react.default.createElement("div", null, fieldGrid.rows.map(row => {
193
+ return _Utils.default.isNull(section.components) || section.components.length === 0 ? /*#__PURE__*/_react.default.createElement("div", null, " Error: A form section must have components") : /*#__PURE__*/_react.default.createElement("div", {
194
+ style: {
195
+ overflow: 'hidden'
196
+ }
197
+ }, fieldGrid.rows.map(row => {
158
198
  return /*#__PURE__*/_react.default.createElement(_Grid.default, {
159
199
  container: true,
160
- spacing: 2,
161
- style: {
162
- margin: margin,
200
+ style: _Utils.default.mergeStyles({
201
+ margin: '0',
163
202
  textAlign: 'left',
164
203
  width: '100%'
165
- },
204
+ }, section),
166
205
  key: componentKey++
167
206
  }, row.fields.map(field => {
168
207
  if (_Utils.default.isNull(field.id)) {
169
- field.id = counter + "-" + field.type + '-section-component';
208
+ field.id = counter++ + "-" + field.type + '-section-component';
170
209
  }
171
210
 
172
211
  return renderComponent(field);
@@ -63,8 +63,9 @@ const SelectItemComponent = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_reac
63
63
 
64
64
  _react.default.useEffect(() => {
65
65
  if (loadFullOptionList && !_Utils.default.isNull(props.config.dataService)) {
66
- (0, _RestUtils.invokeRpc)(props.config.dataService, props.handle, props.viewId, result => {
67
- let data = result.data;
66
+ let method = props.config.dataService.type === 'remoteObjectProxy' ? _RestUtils.invokeRpc : _RestUtils.invokeRest;
67
+ method(props.config.dataService, props.handle, props.viewId, result => {
68
+ let data = props.config.dataService.type === 'remoteObjectProxy' ? result.data : result;
68
69
  let options = [];
69
70
 
70
71
  if (_Utils.default.isNull(props.validator) || props.validator.nullable) {
@@ -118,7 +119,8 @@ const SelectItemComponent = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_reac
118
119
  size: "small",
119
120
  variant: "outlined"
120
121
  }, base.selectOptions.map(option => option.id === '_EMPTY_VALUE' ? /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
121
- value: ""
122
+ value: "",
123
+ key: option.id
122
124
  }, /*#__PURE__*/_react.default.createElement("em", null, "\xA0")) : /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
123
125
  key: option.id,
124
126
  value: option.id
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _BaseField = require("./BaseField");
11
+
12
+ var _SignatureTemplateDesigner = _interopRequireDefault(require("../signatures/SignatureTemplateDesigner"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17
+
18
+ const SignatureTemplateDesignerComponent = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.forwardRef((props, ref) => {
19
+ const base = props.base;
20
+
21
+ const designerHandler = _react.default.useState({});
22
+
23
+ return /*#__PURE__*/_react.default.createElement(_SignatureTemplateDesigner.default, {
24
+ config: props.config.designer,
25
+ handle: designerHandler,
26
+ ref: /*#__PURE__*/_react.default.createRef(),
27
+ viewId: props.viewId,
28
+ loadCompleteHandler: () => {},
29
+ showToolbar: false,
30
+ valueChangeHandler: value => {
31
+ base.handleValueChange(value);
32
+ }
33
+ });
34
+ }));
35
+
36
+ const SignatureTemplateDesignerField = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.forwardRef((props, ref) => {
37
+ return /*#__PURE__*/_react.default.createElement(_BaseField.BaseField, _extends({}, props, {
38
+ handle: props.handle
39
+ }), base => /*#__PURE__*/_react.default.createElement(SignatureTemplateDesignerComponent, _extends({
40
+ ref: ref,
41
+ base: base
42
+ }, props)));
43
+ }));
44
+
45
+ var _default = SignatureTemplateDesignerField;
46
+ exports.default = _default;
@@ -40,11 +40,7 @@ const TextFieldWrapper = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.d
40
40
  _React$useState2 = _slicedToArray(_React$useState, 1),
41
41
  multiline = _React$useState2[0];
42
42
 
43
- const minWidth = _Utils.default.getComponentAttribute(props.config, 'minWidth', '240px');
44
-
45
- const width = _Utils.default.getComponentAttribute(props.config, 'width', '100%');
46
-
47
- const height = _Utils.default.getComponentAttribute(props.config, 'height', multiline ? '200px' : null);
43
+ const height = _Utils.default.getComponentStyleAttribute(props.config, 'height', multiline ? '200px' : null);
48
44
 
49
45
  const rows = height === null ? 4 : height.replace('px', '') / 20 - 1;
50
46
  const secondaryColor = (0, _reactRedux.useSelector)(state => state.dashboard.secondaryThemeColor);
@@ -81,12 +77,12 @@ const TextFieldWrapper = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.d
81
77
  rows: rows,
82
78
  disabled: base.disabled,
83
79
  size: "small",
84
- style: {
85
- minWidth: minWidth,
86
- width: width,
80
+ style: _Utils.default.mergeStyles({
81
+ minWidth: '240px',
82
+ width: '100%',
87
83
  height: height,
88
84
  color: 'secondary'
89
- },
85
+ }, props.config),
90
86
  variant: "outlined"
91
87
  });
92
88
  }));
@@ -132,9 +132,9 @@ const TransferListComponent = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_re
132
132
  try {
133
133
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
134
134
  const item = _step2.value;
135
- let objectRef = {};
136
- objectRef.id = item.id;
137
- objectRefs.push(objectRef);
135
+ //let objectRef = {};
136
+ //objectRef.id = item.id;
137
+ objectRefs.push(item);
138
138
  }
139
139
  } catch (err) {
140
140
  _iterator2.e(err);
@@ -184,7 +184,6 @@ const TransferListComponent = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_re
184
184
  error: base.hasError
185
185
  }, label) : null, /*#__PURE__*/_react.default.createElement(_Grid.default, {
186
186
  container: true,
187
- spacing: 2,
188
187
  alignItems: "stretch",
189
188
  className: classes.root,
190
189
  style: {
@@ -196,7 +195,7 @@ const TransferListComponent = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_re
196
195
  item: true,
197
196
  style: {
198
197
  border: "1px solid ".concat(base.hasError ? '#f44336' : '#e1e1e1'),
199
- width: '45%',
198
+ width: '40%',
200
199
  borderRadius: '4px'
201
200
  }
202
201
  }, /*#__PURE__*/_react.default.createElement(_DataGrid.DataGrid, {
@@ -212,7 +211,8 @@ const TransferListComponent = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_re
212
211
  })), /*#__PURE__*/_react.default.createElement(_Grid.default, {
213
212
  item: true,
214
213
  style: {
215
- margin: 'auto'
214
+ margin: 'auto',
215
+ width: '20%'
216
216
  }
217
217
  }, /*#__PURE__*/_react.default.createElement(_Grid.default, {
218
218
  container: true,
@@ -237,7 +237,7 @@ const TransferListComponent = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_re
237
237
  item: true,
238
238
  style: {
239
239
  border: "1px solid ".concat(base.hasError ? '#f44336' : '#e1e1e1'),
240
- width: '45%',
240
+ width: '40%',
241
241
  borderRadius: '4px'
242
242
  }
243
243
  }, /*#__PURE__*/_react.default.createElement(_DataGrid.DataGrid, {
@@ -135,6 +135,10 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
135
135
  setCacheId();
136
136
  });
137
137
 
138
+ _react.default.useEffect(() => {
139
+ setViewerFile(props.initialFile);
140
+ }, [props.initialFile]);
141
+
138
142
  _react.default.useEffect(() => {
139
143
  if (!_Utils.default.isNull(props.valueMode)) {
140
144
  setValueMode(props.valueMode);
@@ -183,34 +187,41 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
183
187
  };
184
188
 
185
189
  const upload = (metadata, file, uploadUrl) => {
186
- const accessToken = sessionStorage.getItem("accessToken");
187
- const idToken = sessionStorage.getItem("idToken");
188
- let data = new FormData();
189
- metadata.correlationId = props.viewId + "." + props.config.id;
190
- data.append("metadata", JSON.stringify(metadata));
191
- data.append("file", file);
192
- let fetchConfig = {
193
- method: 'POST',
194
- headers: {
195
- 'Accept': 'application/json',
196
- 'Authorization': 'Bearer ' + accessToken,
197
- 'idToken': idToken
198
- },
199
- body: data
200
- };
201
- let url = location + _ApplicationContext.default.getBaseApiUrl() + uploadUrl;
202
- (0, _reactPromiseTracker.trackPromise)(fetch(encodeURI(url), fetchConfig).then(status).then(json).then(data => {
203
- metadata.documentRepositoryId = !_Utils.default.isNull(base.value) ? base.value.documentRepositoryId : null;
204
- metadata.documentRepositoryCacheId = data;
205
- setCacheId(data);
190
+ let uploadMode = _Utils.default.getComponentAttribute(props.config, "uploadMode", "POST");
191
+
192
+ if (uploadMode === 'POST') {
193
+ const accessToken = sessionStorage.getItem("accessToken");
194
+ const idToken = sessionStorage.getItem("idToken");
195
+ let data = new FormData();
196
+ metadata.correlationId = props.viewId + "." + props.config.id;
197
+ data.append("metadata", JSON.stringify(metadata));
198
+ data.append("file", file);
199
+ let fetchConfig = {
200
+ method: 'POST',
201
+ headers: {
202
+ 'Accept': 'application/json',
203
+ 'Authorization': 'Bearer ' + accessToken,
204
+ 'idToken': idToken
205
+ },
206
+ body: data
207
+ };
208
+ let url = location + _ApplicationContext.default.getBaseApiUrl() + uploadUrl;
209
+ (0, _reactPromiseTracker.trackPromise)(fetch(encodeURI(url), fetchConfig).then(status).then(json).then(data => {
210
+ metadata.documentRepositoryId = !_Utils.default.isNull(base.value) ? base.value.documentRepositoryId : null;
211
+ metadata.documentRepositoryCacheId = data;
212
+ setCacheId(data);
213
+ base.handleValueChange(metadata);
214
+ }).catch(e => {
215
+ if (e.code === 401) {
216
+ _ApplicationContext.default.clear();
217
+
218
+ _ApplicationContext.default.getApplicationHistory().push('/login');
219
+ }
220
+ }));
221
+ } else {
222
+ metadata.payloadBase64 = reader.result;
206
223
  base.handleValueChange(metadata);
207
- }).catch(e => {
208
- if (e.code === 401) {
209
- _ApplicationContext.default.clear();
210
-
211
- _ApplicationContext.default.getApplicationHistory().push('/login');
212
- }
213
- }));
224
+ }
214
225
  };
215
226
 
216
227
  reader.onloadend = () => {
@@ -220,6 +231,10 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
220
231
  fileMetaData.type = allFiles[0].type;
221
232
  fileMetaData.size = allFiles[0].size;
222
233
 
234
+ if (base.value) {
235
+ fileMetaData.id = base.value.id;
236
+ }
237
+
223
238
  if ('base64' === valueMode) {
224
239
  fileMetaData.url = allFiles[0].base64;
225
240
  base.handleValueChange(fileMetaData);
@@ -252,15 +267,15 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
252
267
  return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("input", {
253
268
  accept: props.style === 'IMAGE' ? "image/jpeg,image/gif,image/png,image/x-eps" : "image/jpeg,image/gif,image/png,application/pdf,image/x-eps",
254
269
  className: classes.input,
255
- id: "contained-button-file",
270
+ id: "contained-button-file-".concat(props.config.id),
256
271
  disabled: base.disabled,
257
272
  required: base.required,
258
273
  multiple: multiple,
259
274
  onChange: handleChange(),
260
275
  type: "file"
261
276
  }), props.style === 'IMAGE' ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("label", {
262
- htmlFor: "contained-button-file"
263
- }, /*#__PURE__*/_react.default.createElement(_Button.default, {
277
+ htmlFor: "contained-button-file-".concat(props.config.id)
278
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Button.default, {
264
279
  variant: "contained",
265
280
  component: "span",
266
281
  className: classes.button,
@@ -271,25 +286,41 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
271
286
  backgroundRepeat: 'no-repeat',
272
287
  backgroundSize: 'cover',
273
288
  backgroundColor: 'transparent',
274
- backgroundImage: !_Utils.default.isNull(viewerFile) ? "url(".concat(viewerFile.base64, ")") : !_Utils.default.isNull(props.config.dataService) ? "url(".concat(location + _ApplicationContext.default.getBaseApiUrl() + _ApplicationContext.default.getFilesApiPath() + '/get/file?fileId=' + (!_Utils.default.isNull(base.value) ? base.value.id : '-1') + '&fileService=' + props.config.dataService.serviceId + (!_Utils.default.isNull(defaultImage) ? '&defaultImage=' + defaultImage : '') + '&access_token=' + sessionStorage.getItem("accessToken") + '&idToken=' + sessionStorage.getItem("idToken"), ")") : "url(".concat(require('./default-avatar.png'), ")")
289
+ border: base.hasError ? "1px solid #f44336" : null,
290
+ color: base.hasError ? "#f44336" : null,
291
+ backgroundImage: !_Utils.default.isNull(viewerFile) ? "url(".concat(viewerFile.base64, ")") : !_Utils.default.isNull(base.value) ? "url(".concat(location + _ApplicationContext.default.getBaseApiUrl() + '/docs/manager/download/' + base.value.documentRepositoryId + '?access_token=' + sessionStorage.getItem("accessToken") + '&idToken=' + sessionStorage.getItem("idToken"), ")") : "url(".concat(require('./' + _Utils.default.getComponentAttribute(props.config, 'defaultImage', 'default-avatar.png')), ")")
292
+ }
293
+ })), base.hasError ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
294
+ style: {
295
+ color: "#f44336",
296
+ padding: "0 8px"
275
297
  }
276
- }))) : /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("label", {
277
- htmlFor: "contained-button-file"
278
- }, /*#__PURE__*/_react.default.createElement(_Button.default, {
298
+ }, base.errorMessage)) : null)) : /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("label", {
299
+ htmlFor: "contained-button-file-".concat(props.config.id)
300
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Button.default, {
279
301
  variant: "contained",
280
302
  component: "span",
281
303
  disabled: base.disabled,
282
- className: classes.button
283
- }, props.config.attributes['label'] ? props.config.attributes['label'] : "Upload File")), /*#__PURE__*/_react.default.createElement("label", null, !_Utils.default.isNull(base.value) ? _Utils.default.isNull(base.value.id) || _Utils.default.isNull(props.config.dataService) ? base.value.name : /*#__PURE__*/_react.default.createElement("a", {
284
- href: location + _ApplicationContext.default.getBaseApiUrl() + _ApplicationContext.default.getFilesApiPath() + '/get/file?fileId=' + base.value.id + '&fileService=' + props.config.dataService.serviceId + '&access_token=' + sessionStorage.getItem("accessToken") + '&idToken=' + sessionStorage.getItem("idToken"),
304
+ className: classes.button,
305
+ style: {
306
+ border: base.hasError ? "1px solid #f44336" : null,
307
+ color: base.hasError ? "#f44336" : null
308
+ }
309
+ }, props.config.attributes['label'] ? props.config.attributes['label'] : "Upload File")), base.hasError ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
310
+ style: {
311
+ color: "#f44336",
312
+ padding: "0 8px"
313
+ }
314
+ }, base.errorMessage)) : null), /*#__PURE__*/_react.default.createElement("label", null, !_Utils.default.isNull(base.value) ? _Utils.default.isNull(base.value.id) ? base.value.name : /*#__PURE__*/_react.default.createElement("a", {
315
+ href: location + _ApplicationContext.default.getBaseApiUrl() + '/docs/manager/download/' + base.value.documentRepositoryId + '?access_token=' + sessionStorage.getItem("accessToken") + '&idToken=' + sessionStorage.getItem("idToken"),
285
316
  target: '_blank'
286
- }, base.value.name) : null), nullable && base.value ? /*#__PURE__*/_react.default.createElement(_IconButton.default, {
317
+ }, base.value.name) : null), !base.disabled && nullable && base.value ? /*#__PURE__*/_react.default.createElement(_IconButton.default, {
287
318
  "aria-controls": "menu-list-grow",
288
319
  ref: ref,
289
320
  "aria-haspopup": "true",
290
321
  onClick: () => {
291
322
  base.handleValueChange(null);
292
- document.getElementById('contained-button-file').value = null;
323
+ document.getElementById("contained-button-file-".concat(props.config.id)).value = null;
293
324
  }
294
325
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
295
326
  id: 'DELETE'
@@ -321,14 +352,27 @@ const UploadField = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defaul
321
352
  setClearTrigger(!clearTrigger);
322
353
 
323
354
  if (!_Utils.default.isNull(value)) {
324
- let val = value;
355
+ let val = value; // TODO : Support multiple file upload
325
356
 
326
- if (value.map) {
327
- val = value.map;
357
+ if (_Utils.default.getComponentAttribute(props.config, 'multiple', false)) {
358
+ if (typeof value.length !== 'undefined' && value.length > 0) {
359
+ val = value[0];
360
+ } else {
361
+ if (value.documentRepositoryId) {
362
+ return value;
363
+ }
364
+
365
+ return null;
366
+ }
367
+ }
368
+
369
+ if (val.map) {
370
+ val = val.map;
328
371
  }
329
372
 
330
373
  let fileMetaData = {};
331
374
  fileMetaData.name = !_Utils.default.isNull(val.label) ? val.label : val.name;
375
+ fileMetaData.id = val.id;
332
376
  fileMetaData.type = val.type;
333
377
  fileMetaData.size = val.size;
334
378
  fileMetaData.documentRepositoryId = !_Utils.default.isNull(val.key) ? val.key : val.documentRepositoryId;
@@ -342,6 +386,13 @@ const UploadField = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defaul
342
386
 
343
387
  return fileMetaData;
344
388
  }
389
+ } else {
390
+ // TODO : Support multiple file upload
391
+ if (_Utils.default.getComponentAttribute(props.config, 'multiple', false)) {
392
+ let valArray = [];
393
+ valArray.push(value);
394
+ return valArray;
395
+ }
345
396
  }
346
397
 
347
398
  return value;
Binary file
@@ -9,16 +9,10 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _reactstrap = require("reactstrap");
11
11
 
12
- var _reactBootstrap = require("react-bootstrap");
13
-
14
12
  var _MenuItem = _interopRequireDefault(require("material-ui/MenuItem"));
15
13
 
16
- var _styles = require("material-ui/styles");
17
-
18
14
  var _colors = require("material-ui/styles/colors");
19
15
 
20
- var _gridOn = _interopRequireDefault(require("material-ui/svg-icons/image/grid-on"));
21
-
22
16
  var _Utils = _interopRequireDefault(require("../../Utils"));
23
17
 
24
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -21,6 +21,8 @@ var _HtmlPanel = _interopRequireDefault(require("../HtmlPanel"));
21
21
 
22
22
  var _SignatureTemplateDesigner = _interopRequireDefault(require("../signatures/SignatureTemplateDesigner"));
23
23
 
24
+ var _TemplateDesigner = _interopRequireDefault(require("../TemplateDesigner"));
25
+
24
26
  var _AlertBar = _interopRequireDefault(require("../AlertBar"));
25
27
 
26
28
  var _TitleBar = _interopRequireDefault(require("../TitleBar"));
@@ -37,6 +39,8 @@ var _DocumentViewer = _interopRequireDefault(require("../DocumentViewer"));
37
39
 
38
40
  var _SignaturePanel = _interopRequireDefault(require("../SignaturePanel"));
39
41
 
42
+ var _Dialog = _interopRequireDefault(require("../Dialog"));
43
+
40
44
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
45
 
42
46
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
@@ -83,12 +87,14 @@ const Layout = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
83
87
  const loadingRef = _react.default.useRef(true);
84
88
 
85
89
  const mutex = new _asyncMutex.Mutex();
90
+ let keyCounter = 0;
86
91
 
87
92
  _react.default.useEffect(() => {
88
93
  props.handleFactory(props.config, api());
89
94
 
90
95
  if (initializing) {
91
96
  let layout = props.config;
97
+ layout.key = keyCounter++;
92
98
 
93
99
  if (!_Utils.default.isNull(layout.components)) {
94
100
  for (let i = 0; i < layout.components.length; i++) {
@@ -98,7 +104,7 @@ const Layout = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
98
104
  component.id = props.config.id + '_' + component.type + "_" + i;
99
105
  }
100
106
 
101
- component.key = i;
107
+ component.key = keyCounter++;
102
108
  }
103
109
  }
104
110
 
@@ -222,6 +228,7 @@ const Layout = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
222
228
  }) : component.type === 'htmlPanel' ? /*#__PURE__*/_react.default.createElement(_HtmlPanel.default, {
223
229
  config: component,
224
230
  handle: createComponentHandle(component),
231
+ viewId: props.viewId,
225
232
  ref: /*#__PURE__*/_react.default.createRef(),
226
233
  loadCompleteHandler: loadCompleteHandler
227
234
  }) : component.type === 'tree' ? /*#__PURE__*/_react.default.createElement(_Tree.Tree, {
@@ -266,6 +273,18 @@ const Layout = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
266
273
  ref: /*#__PURE__*/_react.default.createRef(),
267
274
  viewId: props.viewId,
268
275
  loadCompleteHandler: loadCompleteHandler
276
+ }) : component.type === 'dialog' ? /*#__PURE__*/_react.default.createElement(_Dialog.default, {
277
+ config: component,
278
+ handle: createComponentHandle(component),
279
+ ref: /*#__PURE__*/_react.default.createRef(),
280
+ viewId: props.viewId,
281
+ loadCompleteHandler: loadCompleteHandler
282
+ }) : component.type === 'templateDesigner' ? /*#__PURE__*/_react.default.createElement(_TemplateDesigner.default, {
283
+ config: component,
284
+ handle: createComponentHandle(component),
285
+ ref: /*#__PURE__*/_react.default.createRef(),
286
+ viewId: props.viewId,
287
+ loadCompleteHandler: loadCompleteHandler
269
288
  }) : /*#__PURE__*/_react.default.createElement("div", null, "Unsupported component type " + component.type);
270
289
  }
271
290
 
@@ -328,23 +347,22 @@ const Layout = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
328
347
  };
329
348
 
330
349
  function getDefaultComponentContainerStyle(component) {
331
- return {
332
- width: _Utils.default.getComponentAttribute(component, 'width', '100%'),
350
+ return _Utils.default.mergeStyles({
351
+ width: '100%',
333
352
  height: '100%',
334
- minWidth: _Utils.default.getComponentAttribute(component, 'minWidth', null),
335
- minHeight: _Utils.default.getComponentAttribute(component, 'minHeight', 0)
336
- };
353
+ minHeight: 0
354
+ }, component);
337
355
  }
338
356
 
339
357
  function getLayoutStyle(component, backgroundColor) {
340
- let style = {
341
- overflow: _Utils.default.getComponentAttribute(component, 'overflow', 'auto'),
358
+ let style = _Utils.default.mergeStyles({
359
+ overflow: 'auto',
360
+ border: 'none',
342
361
  minWidth: '128px',
343
362
  height: '100%',
344
- maxHeight: _Utils.default.getComponentAttribute(component, 'maxHeight', null),
345
- margin: _Utils.default.getComponentAttribute(component, 'margin', 0),
346
- padding: _Utils.default.getComponentAttribute(component, 'padding', 0)
347
- };
363
+ margin: 0,
364
+ padding: 0
365
+ }, component);
348
366
 
349
367
  if (!_Utils.default.isNull(backgroundColor)) {
350
368
  style.backgroundColor = backgroundColor;
@@ -362,34 +380,37 @@ const Layout = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
362
380
 
363
381
  let height = _Utils.default.getComponentAttribute(layout, 'height', 'auto');
364
382
 
383
+ let margin = _Utils.default.getComponentAttribute(layout, 'margin', '0');
384
+
365
385
  return _Utils.default.isNull(layout.components) || layout.components.length === 0 ? /*#__PURE__*/_react.default.createElement("div", null, "I am a dum empty Layout") : layout.orientation === 'VERTICAL' ? /*#__PURE__*/_react.default.createElement("div", {
366
386
  style: {
367
387
  margin: '0',
368
388
  height: height
369
389
  }
370
390
  }, layout.components.map(component => {
371
- let style = _Utils.default.getComponentAttribute(component, 'style', null);
391
+ let className = _Utils.default.getComponentAttribute(component, 'className', null);
372
392
 
393
+ console.log(getDefaultComponentContainerStyle(component));
373
394
  return /*#__PURE__*/_react.default.createElement("div", {
374
395
  className: "row-*-*",
375
396
  key: component.key
376
397
  }, /*#__PURE__*/_react.default.createElement("div", {
377
- className: "col-*-* ".concat(style),
378
- style: style === null || style === 'none' ? getDefaultComponentContainerStyle(component) : null
398
+ className: "col-*-* ".concat(className),
399
+ style: className === null || className === 'none' ? getDefaultComponentContainerStyle(component) : null
379
400
  }, renderComponent(component)));
380
401
  })) : /*#__PURE__*/_react.default.createElement("div", {
381
- className: "row-*-*",
402
+ className: "row",
382
403
  style: {
383
- margin: '0',
404
+ margin: margin,
384
405
  height: height
385
406
  }
386
407
  }, layout.components.map(component => {
387
- let style = _Utils.default.getComponentAttribute(component, 'style', null);
408
+ let className = _Utils.default.getComponentAttribute(component, 'className', null);
388
409
 
389
410
  return /*#__PURE__*/_react.default.createElement("div", {
390
411
  key: counter++,
391
- className: "col-*-* ".concat(_Utils.default.getComponentAttribute(component, 'style', null)),
392
- style: style === null || style === 'none' ? getDefaultComponentContainerStyle(component) : null
412
+ className: "col-*-* ".concat(_Utils.default.getComponentAttribute(component, 'className', null)),
413
+ style: className === null || className === 'none' ? getDefaultComponentContainerStyle(component) : null
393
414
  }, renderComponent(component));
394
415
  }));
395
416
  }