@agilemotion/oui-react-js 1.3.1 → 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 (96) hide show
  1. package/dist/ApplicationContext.js +148 -39
  2. package/dist/BasicApp.js +12 -5
  3. package/dist/BasicAppHome.js +18 -12
  4. package/dist/BusinessPortalApp.css +37 -0
  5. package/dist/BusinessPortalApp.js +90 -0
  6. package/dist/BusinessPortalAppHome.js +160 -0
  7. package/dist/RestUtils.js +65 -40
  8. package/dist/Utils.js +47 -1
  9. package/dist/assets/jss/components/footerStyle.js +7 -4
  10. package/dist/assets/jss/views/loginBasicStyle.js +0 -1
  11. package/dist/assets/jss/views/loginBusinessPortalStyle.js +76 -0
  12. package/dist/components/AlertBar.js +40 -11
  13. package/dist/components/ConfirmationDialog.js +54 -8
  14. package/dist/components/DataGrid.css +3 -1
  15. package/dist/components/DataGrid.js +149 -82
  16. package/dist/components/DataGridFilter.js +85 -8
  17. package/dist/components/Dialog.js +258 -0
  18. package/dist/components/Graph.js +26 -18
  19. package/dist/components/GraphNode.js +0 -2
  20. package/dist/components/HtmlPanel.js +103 -4
  21. package/dist/components/Icon.js +60 -0
  22. package/dist/components/PopupView.js +55 -6
  23. package/dist/components/SignaturePanel.js +147 -0
  24. package/dist/components/StepperTitleBar.bck.css +85 -0
  25. package/dist/components/StepperTitleBar.css +53 -54
  26. package/dist/components/StepperTitleBar.js +42 -29
  27. package/dist/components/TabPanel.js +10 -11
  28. package/dist/components/TableCellContent.js +6 -3
  29. package/dist/components/TemplateDesigner.css +13 -0
  30. package/dist/components/TemplateDesigner.js +494 -0
  31. package/dist/components/TemplateItemEventHandler.js +440 -0
  32. package/dist/components/TemplateTable.js +222 -0
  33. package/dist/components/TitleBar.js +21 -14
  34. package/dist/components/Toolbar.js +7 -5
  35. package/dist/components/Tree.js +5 -2
  36. package/dist/components/dashboard/{BasicBusinessApp.js → BasicBusinessAppDashboard.js} +30 -25
  37. package/dist/components/dashboard/BusinessPortalAppDashboard.css +5 -0
  38. package/dist/components/dashboard/BusinessPortalAppDashboard.js +236 -0
  39. package/dist/components/dashboard/components/blackDashboard/sidebar/Sidebar.js +23 -12
  40. package/dist/components/dashboard/components/portal/Timeline.js +17 -0
  41. package/dist/components/dashboard/components/portal/Workspace.css +25 -0
  42. package/dist/components/dashboard/components/portal/Workspace.js +48 -0
  43. package/dist/components/dashboard/components/portal/portal-dashboard.css +25 -0
  44. package/dist/components/footer/Footer.js +43 -10
  45. package/dist/components/form/AddressSearch.js +140 -0
  46. package/dist/components/form/BaseField.js +42 -8
  47. package/dist/components/form/Checkbox.js +3 -0
  48. package/dist/components/form/DatePicker.js +70 -4
  49. package/dist/components/form/FieldSet.js +247 -72
  50. package/dist/components/form/Form.js +178 -127
  51. package/dist/components/form/GridField.js +3 -2
  52. package/dist/components/form/ImageEditor.js +461 -0
  53. package/dist/components/form/LabelField.js +2 -2
  54. package/dist/components/form/LookupField.js +16 -4
  55. package/dist/components/form/RadioGroup.js +107 -0
  56. package/dist/components/form/Section.js +58 -19
  57. package/dist/components/form/SelectItem.js +14 -5
  58. package/dist/components/form/SignatureTemplateDesignerField.js +46 -0
  59. package/dist/components/form/TextField.js +5 -9
  60. package/dist/components/form/TransferList.js +7 -7
  61. package/dist/components/form/UploadField.js +184 -55
  62. package/dist/components/form/noimage-person.png +0 -0
  63. package/dist/components/form/noimage.png +0 -0
  64. package/dist/components/form/transparent.jpeg +0 -0
  65. package/dist/components/layout/CollapsiblePanel.js +0 -6
  66. package/dist/components/layout/Layout.js +49 -19
  67. package/dist/components/layout/View.css +43 -0
  68. package/dist/components/layout/View.js +76 -156
  69. package/dist/components/layout/ViewPort.js +32 -49
  70. package/dist/components/menu/MenuLink.js +7 -0
  71. package/dist/components/navbars/HomeNavbar.js +29 -14
  72. package/dist/components/navbars/PortalNavbar.css +75 -0
  73. package/dist/components/navbars/PortalNavbar.js +227 -0
  74. package/dist/components/signatures/AgilitySignaturePanel.js +312 -0
  75. package/dist/components/signatures/DocumentContainer.css +33 -0
  76. package/dist/components/signatures/DocumentContainer.js +206 -0
  77. package/dist/components/signatures/ImageSignatureInput.js +265 -0
  78. package/dist/components/signatures/ResponsiveTable.js +1 -3
  79. package/dist/components/signatures/SignatureInput.js +303 -0
  80. package/dist/components/signatures/SignatureInputProps.js +17 -11
  81. package/dist/components/signatures/SignatureTemplateDesigner.js +192 -81
  82. package/dist/components/signatures/transparent.jpeg +0 -0
  83. package/dist/event/LoadDataActionHandler.js +1 -1
  84. package/dist/event/Observable.js +1 -1
  85. package/dist/event/RouteActionHandler.js +18 -5
  86. package/dist/event/ServiceCallActionHandler.js +7 -3
  87. package/dist/js/Addresses.js +16 -9
  88. package/dist/view/Dashboard.js +27 -19
  89. package/dist/view/PortalDashboard.js +33 -0
  90. package/dist/view/security/ChangePasswordBasic.js +1 -0
  91. package/dist/view/security/ForgotPasswordBasic.js +1 -0
  92. package/dist/view/security/LoginBasic.js +6 -1
  93. package/dist/view/security/LoginBusinessPortal.js +268 -0
  94. package/dist/view/security/ResetPasswordBasic.js +1 -0
  95. package/package.json +25 -21
  96. package/dist/assets/img/flogo.png +0 -0
@@ -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,10 +63,17 @@ 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
 
71
+ if (_Utils.default.isNull(props.validator) || props.validator.nullable) {
72
+ options.push({
73
+ id: "_EMPTY_VALUE"
74
+ });
75
+ }
76
+
70
77
  for (let i = 0; i < data.records.length; i++) {
71
78
  let record = data.records[i];
72
79
  options.push(record.map.objectReference);
@@ -99,8 +106,7 @@ const SelectItemComponent = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_reac
99
106
  if (!loadFullOptionList) {
100
107
  setLoadFullOptionList(true);
101
108
  }
102
- },
103
- displayEmpty: props.allowEmptyValue || false
109
+ }
104
110
  },
105
111
  value: !_Utils.default.isNull(base.value) ? base.value.id : defaultValue,
106
112
  className: props.className,
@@ -112,7 +118,10 @@ const SelectItemComponent = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_reac
112
118
  margin: "dense",
113
119
  size: "small",
114
120
  variant: "outlined"
115
- }, base.selectOptions.map(option => /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
121
+ }, base.selectOptions.map(option => option.id === '_EMPTY_VALUE' ? /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
122
+ value: "",
123
+ key: option.id
124
+ }, /*#__PURE__*/_react.default.createElement("em", null, "\xA0")) : /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
116
125
  key: option.id,
117
126
  value: option.id
118
127
  }, _Utils.default.isNull(option.label) ? "" : option.label.trim())));
@@ -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, {
@@ -19,9 +19,11 @@ var _Utils = _interopRequireDefault(require("../../Utils"));
19
19
 
20
20
  var _ApplicationContext = _interopRequireDefault(require("./../../ApplicationContext"));
21
21
 
22
- var _withWidth = require("material-ui/utils/withWidth");
22
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
23
23
 
24
- var _TextField = _interopRequireDefault(require("./TextField"));
24
+ var _Icon = _interopRequireDefault(require("../Icon"));
25
+
26
+ var _reactPromiseTracker = require("react-promise-tracker");
25
27
 
26
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
29
 
@@ -50,6 +52,21 @@ const useStyles = (0, _styles.makeStyles)(theme => ({
50
52
  color: 'red'
51
53
  }
52
54
  }));
55
+
56
+ const status = response => {
57
+ if (response.ok) {
58
+ return Promise.resolve(response);
59
+ } else {
60
+ let error = new Error(response.statusText);
61
+ error.code = response.status;
62
+ return Promise.reject(error);
63
+ }
64
+ };
65
+
66
+ const json = response => {
67
+ return response.text();
68
+ };
69
+
53
70
  const location = window.location.protocol + "//" + window.location.hostname;
54
71
 
55
72
  const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.forwardRef((props, ref) => {
@@ -68,46 +85,59 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
68
85
  files = _React$useState6[0],
69
86
  setFiles = _React$useState6[1];
70
87
 
71
- const _React$useState7 = _react.default.useState(true),
88
+ const _React$useState7 = _react.default.useState(!_Utils.default.isNull(props.base.value) ? props.base.value.documentRepositoryCacheId : null),
72
89
  _React$useState8 = _slicedToArray(_React$useState7, 2),
73
- loading = _React$useState8[0],
74
- setLoading = _React$useState8[1];
90
+ cacheId = _React$useState8[0],
91
+ setCacheId = _React$useState8[1];
92
+
93
+ const _React$useState9 = _react.default.useState(true),
94
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
95
+ loading = _React$useState10[0],
96
+ setLoading = _React$useState10[1];
75
97
 
76
- const _React$useState9 = _react.default.useState(props.multiple === true),
77
- _React$useState10 = _slicedToArray(_React$useState9, 1),
78
- multiple = _React$useState10[0];
98
+ const _React$useState11 = _react.default.useState(_Utils.default.isNull(props.config.validator) || props.config.validator.nullable === true),
99
+ _React$useState12 = _slicedToArray(_React$useState11, 1),
100
+ nullable = _React$useState12[0];
79
101
 
80
- const _React$useState11 = _react.default.useState(false),
81
- _React$useState12 = _slicedToArray(_React$useState11, 2),
82
- show = _React$useState12[0],
83
- setShow = _React$useState12[1];
102
+ const _React$useState13 = _react.default.useState(props.multiple === true),
103
+ _React$useState14 = _slicedToArray(_React$useState13, 1),
104
+ multiple = _React$useState14[0];
105
+
106
+ const _React$useState15 = _react.default.useState(false),
107
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
108
+ show = _React$useState16[0],
109
+ setShow = _React$useState16[1];
84
110
 
85
111
  const classes = useStyles();
86
112
 
87
- const _React$useState13 = _react.default.useState(ref ? ref : /*#__PURE__*/_react.default.createRef()),
88
- _React$useState14 = _slicedToArray(_React$useState13, 2),
89
- reference = _React$useState14[0],
90
- setReference = _React$useState14[1];
113
+ const _React$useState17 = _react.default.useState(ref ? ref : /*#__PURE__*/_react.default.createRef()),
114
+ _React$useState18 = _slicedToArray(_React$useState17, 2),
115
+ reference = _React$useState18[0],
116
+ setReference = _React$useState18[1];
91
117
 
92
- const _React$useState15 = _react.default.useState(null),
93
- _React$useState16 = _slicedToArray(_React$useState15, 2),
94
- hasError = _React$useState16[0],
95
- setHasError = _React$useState16[1];
118
+ const _React$useState19 = _react.default.useState(null),
119
+ _React$useState20 = _slicedToArray(_React$useState19, 2),
120
+ hasError = _React$useState20[0],
121
+ setHasError = _React$useState20[1];
96
122
 
97
123
  const width = _Utils.default.getComponentAttribute(props.config, 'width', '200px');
98
124
 
99
125
  const height = _Utils.default.getComponentAttribute(props.config, 'height', '200px');
100
126
 
101
- const _React$useState17 = _react.default.useState(""),
102
- _React$useState18 = _slicedToArray(_React$useState17, 2),
103
- errorMessage = _React$useState18[0],
104
- setErrorMessage = _React$useState18[1];
127
+ const _React$useState21 = _react.default.useState(""),
128
+ _React$useState22 = _slicedToArray(_React$useState21, 2),
129
+ errorMessage = _React$useState22[0],
130
+ setErrorMessage = _React$useState22[1];
105
131
 
106
132
  const base = props.base;
107
133
 
108
134
  _react.default.useEffect(() => {
109
- setViewerFile(null);
110
- }, [props.clearTrigger]);
135
+ setCacheId();
136
+ });
137
+
138
+ _react.default.useEffect(() => {
139
+ setViewerFile(props.initialFile);
140
+ }, [props.initialFile]);
111
141
 
112
142
  _react.default.useEffect(() => {
113
143
  if (!_Utils.default.isNull(props.valueMode)) {
@@ -132,7 +162,7 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
132
162
  let fileInfo = {
133
163
  name: file.name,
134
164
  type: file.type,
135
- size: Math.round(file.size / 1000) + ' kB',
165
+ size: file.size,
136
166
  base64: reader.result,
137
167
  file: file
138
168
  };
@@ -156,6 +186,44 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
156
186
  }
157
187
  };
158
188
 
189
+ const upload = (metadata, file, uploadUrl) => {
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;
223
+ base.handleValueChange(metadata);
224
+ }
225
+ };
226
+
159
227
  reader.onloadend = () => {
160
228
  if (!_Utils.default.isNull(props.form)) {
161
229
  let fileMetaData = {};
@@ -163,20 +231,27 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
163
231
  fileMetaData.type = allFiles[0].type;
164
232
  fileMetaData.size = allFiles[0].size;
165
233
 
234
+ if (base.value) {
235
+ fileMetaData.id = base.value.id;
236
+ }
237
+
166
238
  if ('base64' === valueMode) {
167
239
  fileMetaData.url = allFiles[0].base64;
168
240
  base.handleValueChange(fileMetaData);
169
241
  } else {
170
242
  fileMetaData.correlationId = props.config.id;
171
243
  fileMetaData.domain = props.viewId;
172
- fileMetaData.cachedFile = true;
173
244
  let file = {};
174
245
  file.correlationId = fileMetaData.correlationId;
175
246
  file.content = allFiles[0].file;
176
247
 
177
- _ApplicationContext.default.addFile(props.viewId, file);
248
+ let uploadUrl = _Utils.default.getComponentAttribute(props.config, 'uploadUrl', null);
178
249
 
179
- base.handleValueChange(fileMetaData);
250
+ if (uploadUrl === null) {
251
+ uploadUrl = "/docs/manager/upload/save";
252
+ }
253
+
254
+ upload(fileMetaData, allFiles[0].file, uploadUrl);
180
255
  }
181
256
  }
182
257
  };
@@ -192,15 +267,15 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
192
267
  return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("input", {
193
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",
194
269
  className: classes.input,
195
- id: "contained-button-file",
270
+ id: "contained-button-file-".concat(props.config.id),
196
271
  disabled: base.disabled,
197
272
  required: base.required,
198
273
  multiple: multiple,
199
274
  onChange: handleChange(),
200
275
  type: "file"
201
276
  }), props.style === 'IMAGE' ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("label", {
202
- htmlFor: "contained-button-file"
203
- }, /*#__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, {
204
279
  variant: "contained",
205
280
  component: "span",
206
281
  className: classes.button,
@@ -211,19 +286,45 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
211
286
  backgroundRepeat: 'no-repeat',
212
287
  backgroundSize: 'cover',
213
288
  backgroundColor: 'transparent',
214
- 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"
215
297
  }
216
- }))) : /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("label", {
217
- htmlFor: "contained-button-file"
218
- }, /*#__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, {
219
301
  variant: "contained",
220
302
  component: "span",
221
303
  disabled: base.disabled,
222
- className: classes.button
223
- }, 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", {
224
- 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"),
225
316
  target: '_blank'
226
- }, base.value.name) : null))), props.showViewer && !multiple || show ? /*#__PURE__*/_react.default.createElement(_DocumentViewer.default, {
317
+ }, base.value.name) : null), !base.disabled && nullable && base.value ? /*#__PURE__*/_react.default.createElement(_IconButton.default, {
318
+ "aria-controls": "menu-list-grow",
319
+ ref: ref,
320
+ "aria-haspopup": "true",
321
+ onClick: () => {
322
+ base.handleValueChange(null);
323
+ document.getElementById("contained-button-file-".concat(props.config.id)).value = null;
324
+ }
325
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
326
+ id: 'DELETE'
327
+ })) : null)), props.showViewer && !multiple || show ? /*#__PURE__*/_react.default.createElement(_DocumentViewer.default, {
227
328
  file: viewerFile,
228
329
  onDocumentLoadSuccess: handleViewerLoad
229
330
  }) : "", hasError ? /*#__PURE__*/_react.default.createElement("span", {
@@ -234,15 +335,15 @@ const DocumentUpload = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.def
234
335
  exports.DocumentUpload = DocumentUpload;
235
336
 
236
337
  const UploadField = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.forwardRef((props, ref) => {
237
- const _React$useState19 = _react.default.useState(null),
238
- _React$useState20 = _slicedToArray(_React$useState19, 2),
239
- file = _React$useState20[0],
240
- setFile = _React$useState20[1];
338
+ const _React$useState23 = _react.default.useState(null),
339
+ _React$useState24 = _slicedToArray(_React$useState23, 2),
340
+ file = _React$useState24[0],
341
+ setFile = _React$useState24[1];
241
342
 
242
- const _React$useState21 = _react.default.useState(false),
243
- _React$useState22 = _slicedToArray(_React$useState21, 2),
244
- clearTrigger = _React$useState22[0],
245
- setClearTrigger = _React$useState22[1];
343
+ const _React$useState25 = _react.default.useState(false),
344
+ _React$useState26 = _slicedToArray(_React$useState25, 2),
345
+ clearTrigger = _React$useState26[0],
346
+ setClearTrigger = _React$useState26[1];
246
347
 
247
348
  return /*#__PURE__*/_react.default.createElement(_BaseField.BaseField, _extends({}, props, {
248
349
  handle: props.handle,
@@ -251,19 +352,47 @@ const UploadField = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defaul
251
352
  setClearTrigger(!clearTrigger);
252
353
 
253
354
  if (!_Utils.default.isNull(value)) {
254
- let objectReference = value;
255
- let fileMetaData = {};
256
- fileMetaData.name = objectReference.label;
257
- fileMetaData.id = objectReference.id;
355
+ let val = value; // TODO : Support multiple file upload
258
356
 
259
- if (!_Utils.default.isNull(value.url)) {
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;
371
+ }
372
+
373
+ let fileMetaData = {};
374
+ fileMetaData.name = !_Utils.default.isNull(val.label) ? val.label : val.name;
375
+ fileMetaData.id = val.id;
376
+ fileMetaData.type = val.type;
377
+ fileMetaData.size = val.size;
378
+ fileMetaData.documentRepositoryId = !_Utils.default.isNull(val.key) ? val.key : val.documentRepositoryId;
379
+ fileMetaData.documentRepositoryCacheId = val.documentRepositoryCacheId;
380
+
381
+ if (!_Utils.default.isNull(val.url)) {
260
382
  let file = {};
261
- file.base64 = value.url;
383
+ file.base64 = val.url;
262
384
  setFile(file);
263
385
  }
264
386
 
265
387
  return fileMetaData;
266
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
+ }
267
396
  }
268
397
 
269
398
  return value;
Binary file