@guillotinaweb/react-gmi 0.20.1 → 0.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +18 -10
- package/dist/components/fields/editableField.d.ts +0 -2
- package/dist/components/fields/renderField.d.ts +8 -0
- package/dist/components/login.d.ts +7 -14
- package/dist/components/selected_items_actions.d.ts +5 -2
- package/dist/hooks/useConfig.d.ts +2 -0
- package/dist/hooks/useRegistry.d.ts +2 -0
- package/dist/lib/client.d.ts +5 -4
- package/dist/lib/rest.d.ts +2 -1
- package/dist/react-gmi.esm.js +2179 -2142
- package/dist/react-gmi.esm.js.map +1 -1
- package/dist/react-gmi.js +2178 -2141
- package/dist/react-gmi.js.map +1 -1
- package/dist/react-gmi.modern.js +1721 -1680
- package/dist/react-gmi.modern.js.map +1 -1
- package/dist/react-gmi.umd.js +2178 -2141
- package/dist/react-gmi.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/react-gmi.umd.js
CHANGED
|
@@ -107,124 +107,148 @@
|
|
|
107
107
|
return it.next.bind(it);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
var
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
var AuthContext = React.createContext({});
|
|
111
|
+
var ClientContext = React.createContext({});
|
|
112
|
+
var TraversalContext = React.createContext({});
|
|
113
|
+
|
|
114
|
+
var Traversal = /*#__PURE__*/function () {
|
|
115
|
+
function Traversal(_ref) {
|
|
116
|
+
var flash = _ref.flash,
|
|
117
|
+
props = _objectWithoutPropertiesLoose(_ref, ["flash"]);
|
|
118
|
+
|
|
119
|
+
Object.assign(this, props);
|
|
120
|
+
if (typeof flash === 'function') this.flash = flash;
|
|
114
121
|
}
|
|
115
122
|
|
|
116
|
-
var _proto =
|
|
123
|
+
var _proto = Traversal.prototype;
|
|
117
124
|
|
|
118
|
-
_proto.
|
|
119
|
-
|
|
120
|
-
|
|
125
|
+
_proto.refresh = function refresh(_temp) {
|
|
126
|
+
var _ref2 = _temp === void 0 ? {} : _temp,
|
|
127
|
+
_ref2$transparent = _ref2.transparent,
|
|
128
|
+
transparent = _ref2$transparent === void 0 ? false : _ref2$transparent;
|
|
121
129
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
130
|
+
this.dispatch({
|
|
131
|
+
type: 'REFRESH',
|
|
132
|
+
payload: {
|
|
133
|
+
transparent: transparent
|
|
134
|
+
}
|
|
135
|
+
});
|
|
128
136
|
};
|
|
129
137
|
|
|
130
|
-
_proto.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
Authorization: 'Bearer ' + authToken
|
|
137
|
-
};
|
|
138
|
+
_proto.apply = function apply(data) {
|
|
139
|
+
// apply a optimistic update to context
|
|
140
|
+
this.dispatch({
|
|
141
|
+
type: 'APPLY',
|
|
142
|
+
payload: data
|
|
143
|
+
});
|
|
138
144
|
};
|
|
139
145
|
|
|
140
|
-
_proto.
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
146
|
+
_proto.flash = function flash(message, type) {
|
|
147
|
+
this.dispatch({
|
|
148
|
+
type: 'SET_FLASH',
|
|
149
|
+
payload: {
|
|
150
|
+
flash: {
|
|
151
|
+
message: message,
|
|
152
|
+
type: type
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
window.scrollTo({
|
|
157
|
+
top: 0,
|
|
158
|
+
left: 0,
|
|
159
|
+
behavior: 'smooth'
|
|
160
|
+
});
|
|
151
161
|
};
|
|
152
162
|
|
|
153
|
-
_proto.
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
return Promise.resolve(_this6.request(path, {}));
|
|
158
|
-
} catch (e) {
|
|
159
|
-
return Promise.reject(e);
|
|
160
|
-
}
|
|
163
|
+
_proto.clearFlash = function clearFlash() {
|
|
164
|
+
this.dispatch({
|
|
165
|
+
type: 'CLEAR_FLASH'
|
|
166
|
+
});
|
|
161
167
|
};
|
|
162
168
|
|
|
163
|
-
_proto.
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
} catch (e) {
|
|
172
|
-
return Promise.reject(e);
|
|
173
|
-
}
|
|
169
|
+
_proto.doAction = function doAction(action, params) {
|
|
170
|
+
this.dispatch({
|
|
171
|
+
type: 'SET_ACTION',
|
|
172
|
+
payload: {
|
|
173
|
+
action: action,
|
|
174
|
+
params: params
|
|
175
|
+
}
|
|
176
|
+
});
|
|
174
177
|
};
|
|
175
178
|
|
|
176
|
-
_proto.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
+
_proto.cancelAction = function cancelAction() {
|
|
180
|
+
this.dispatch({
|
|
181
|
+
type: 'CLEAR_ACTION'
|
|
182
|
+
});
|
|
183
|
+
};
|
|
179
184
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
body: JSON.stringify(data)
|
|
183
|
-
}));
|
|
184
|
-
} catch (e) {
|
|
185
|
-
return Promise.reject(e);
|
|
186
|
-
}
|
|
185
|
+
_proto.hasPerm = function hasPerm(permission) {
|
|
186
|
+
return this.state.permissions[permission] === true;
|
|
187
187
|
};
|
|
188
188
|
|
|
189
|
-
_proto.
|
|
190
|
-
|
|
191
|
-
var _this12 = this;
|
|
189
|
+
_proto.filterTabs = function filterTabs(tabs, tabsPermissions) {
|
|
190
|
+
var _this = this;
|
|
192
191
|
|
|
193
|
-
|
|
192
|
+
var result = {};
|
|
193
|
+
Object.keys(tabs).forEach(function (item) {
|
|
194
|
+
var perm = tabsPermissions[item];
|
|
194
195
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
}, headers));
|
|
203
|
-
} catch (e) {
|
|
204
|
-
return Promise.reject(e);
|
|
205
|
-
}
|
|
196
|
+
if (perm && _this.hasPerm(perm)) {
|
|
197
|
+
result[item] = tabs[item];
|
|
198
|
+
} else if (!perm) {
|
|
199
|
+
result[item] = tabs[item];
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
return result;
|
|
206
203
|
};
|
|
207
204
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
205
|
+
_createClass(Traversal, [{
|
|
206
|
+
key: "path",
|
|
207
|
+
get: function get() {
|
|
208
|
+
return this.state.path;
|
|
211
209
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
return Promise.resolve(_this14.request(path, {
|
|
217
|
-
method: 'delete',
|
|
218
|
-
body: JSON.stringify(data)
|
|
219
|
-
}));
|
|
220
|
-
} catch (e) {
|
|
221
|
-
return Promise.reject(e);
|
|
210
|
+
}, {
|
|
211
|
+
key: "pathPrefix",
|
|
212
|
+
get: function get() {
|
|
213
|
+
return this.state.path.slice(1);
|
|
222
214
|
}
|
|
223
|
-
}
|
|
215
|
+
}, {
|
|
216
|
+
key: "context",
|
|
217
|
+
get: function get() {
|
|
218
|
+
return this.state.context;
|
|
219
|
+
}
|
|
220
|
+
}, {
|
|
221
|
+
key: "containerPath",
|
|
222
|
+
get: function get() {
|
|
223
|
+
return this.client.getContainerFromPath(this.path);
|
|
224
|
+
}
|
|
225
|
+
}]);
|
|
224
226
|
|
|
225
|
-
return
|
|
227
|
+
return Traversal;
|
|
226
228
|
}();
|
|
227
229
|
|
|
230
|
+
function TraversalProvider(_ref3) {
|
|
231
|
+
var children = _ref3.children,
|
|
232
|
+
props = _objectWithoutPropertiesLoose(_ref3, ["children"]);
|
|
233
|
+
|
|
234
|
+
return /*#__PURE__*/React__default['default'].createElement(TraversalContext.Provider, {
|
|
235
|
+
value: new Traversal(props)
|
|
236
|
+
}, children);
|
|
237
|
+
}
|
|
238
|
+
function useTraversal() {
|
|
239
|
+
return React__default['default'].useContext(TraversalContext);
|
|
240
|
+
}
|
|
241
|
+
function ClientProvider(_ref4) {
|
|
242
|
+
var children = _ref4.children,
|
|
243
|
+
client = _ref4.client;
|
|
244
|
+
return /*#__PURE__*/React__default['default'].createElement(ClientContext.Provider, {
|
|
245
|
+
value: client
|
|
246
|
+
}, children);
|
|
247
|
+
}
|
|
248
|
+
function useGuillotinaClient() {
|
|
249
|
+
return React__default['default'].useContext(ClientContext);
|
|
250
|
+
}
|
|
251
|
+
|
|
228
252
|
var classnames = function classnames(classNames) {
|
|
229
253
|
return classNames.filter(Boolean).join(' ').trim();
|
|
230
254
|
};
|
|
@@ -276,2067 +300,2071 @@
|
|
|
276
300
|
});
|
|
277
301
|
}
|
|
278
302
|
|
|
279
|
-
var
|
|
280
|
-
var icon = _ref.icon,
|
|
281
|
-
className = _ref.className,
|
|
282
|
-
align = _ref.align;
|
|
283
|
-
var addClass = className ? className.split(' ') : [className];
|
|
284
|
-
align = align || 'is-right';
|
|
285
|
-
return /*#__PURE__*/React__default['default'].createElement("span", {
|
|
286
|
-
className: classnames(['icon', align].concat(addClass))
|
|
287
|
-
}, /*#__PURE__*/React__default['default'].createElement("i", {
|
|
288
|
-
className: icon
|
|
289
|
-
}));
|
|
290
|
-
};
|
|
303
|
+
var noop$1 = function noop() {};
|
|
291
304
|
|
|
292
|
-
var
|
|
293
|
-
var
|
|
305
|
+
var Button = function Button(_ref) {
|
|
306
|
+
var _ref2;
|
|
294
307
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
308
|
+
var children = _ref.children,
|
|
309
|
+
_ref$className = _ref.className,
|
|
310
|
+
className = _ref$className === void 0 ? 'is-primary' : _ref$className,
|
|
311
|
+
onClick = _ref.onClick,
|
|
312
|
+
_ref$type = _ref.type,
|
|
313
|
+
type = _ref$type === void 0 ? 'submit' : _ref$type,
|
|
314
|
+
_ref$loading = _ref.loading,
|
|
315
|
+
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
316
|
+
_ref$disabled = _ref.disabled,
|
|
317
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
318
|
+
dataTest = _ref.dataTest,
|
|
319
|
+
rest = _objectWithoutPropertiesLoose(_ref, ["children", "className", "onClick", "type", "loading", "disabled", "dataTest"]);
|
|
299
320
|
|
|
300
|
-
|
|
301
|
-
var name = _ref.name,
|
|
302
|
-
onRemove = _ref.onRemove,
|
|
303
|
-
_ref$size = _ref.size,
|
|
304
|
-
size = _ref$size === void 0 ? 'is-medium' : _ref$size,
|
|
305
|
-
_ref$color = _ref.color,
|
|
306
|
-
color = _ref$color === void 0 ? 'is-warning' : _ref$color;
|
|
307
|
-
return /*#__PURE__*/React__default['default'].createElement("span", {
|
|
308
|
-
className: classnames(['tag', color, size])
|
|
309
|
-
}, name, onRemove !== undefined && /*#__PURE__*/React__default['default'].createElement("button", {
|
|
310
|
-
className: "delete is-small",
|
|
311
|
-
onClick: function onClick() {
|
|
312
|
-
return onRemove();
|
|
313
|
-
}
|
|
314
|
-
}));
|
|
315
|
-
};
|
|
321
|
+
var css = (_ref2 = []).concat.apply(_ref2, ['button'].concat(className.split(' ')));
|
|
316
322
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
type:
|
|
323
|
+
if (loading) css = css.concat('is-loading');
|
|
324
|
+
if (disabled) onClick = noop$1;
|
|
325
|
+
return /*#__PURE__*/React__default['default'].createElement("p", {
|
|
326
|
+
className: "control"
|
|
327
|
+
}, /*#__PURE__*/React__default['default'].createElement("button", _extends({
|
|
328
|
+
type: type,
|
|
329
|
+
className: classnames(css),
|
|
323
330
|
onClick: onClick,
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
function Table(_ref) {
|
|
330
|
-
var headers = _ref.headers,
|
|
331
|
-
children = _ref.children,
|
|
332
|
-
className = _ref.className;
|
|
333
|
-
className = className ? className.split(' ') : ' is-full is-fullwidth is-narrow'.split(' ');
|
|
334
|
-
return /*#__PURE__*/React__default['default'].createElement("table", {
|
|
335
|
-
className: classnames(['table'].concat(className))
|
|
336
|
-
}, /*#__PURE__*/React__default['default'].createElement("thead", null, /*#__PURE__*/React__default['default'].createElement("tr", null, headers && headers.map(function (item, idx) {
|
|
337
|
-
return /*#__PURE__*/React__default['default'].createElement("th", {
|
|
338
|
-
key: item + idx
|
|
339
|
-
}, item);
|
|
340
|
-
}))), /*#__PURE__*/React__default['default'].createElement("tbody", null, children));
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
function Notification(_ref) {
|
|
344
|
-
var _ref$isColor = _ref.isColor,
|
|
345
|
-
isColor = _ref$isColor === void 0 ? '' : _ref$isColor,
|
|
346
|
-
children = _ref.children;
|
|
347
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
348
|
-
className: 'notification is-' + isColor,
|
|
349
|
-
"data-test": "notificationTest"
|
|
350
|
-
}, children);
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
// https://github.com/molefrog/wouter
|
|
354
|
-
|
|
355
|
-
var setURLParams = function setURLParams(p) {
|
|
356
|
-
return window.history['pushState'](0, 0, (window.history.pathname || '') + '?' + p.toString().replace(/%2F/g, '/'));
|
|
357
|
-
};
|
|
358
|
-
|
|
359
|
-
var clean = function clean(to) {
|
|
360
|
-
var current = new URLSearchParams();
|
|
361
|
-
Object.keys(to).forEach(function (_key) {
|
|
362
|
-
return current.set(_key, to[_key]);
|
|
363
|
-
});
|
|
364
|
-
setURLParams(current);
|
|
331
|
+
disabled: disabled
|
|
332
|
+
}, rest, {
|
|
333
|
+
"data-test": dataTest
|
|
334
|
+
}), children));
|
|
365
335
|
};
|
|
366
336
|
|
|
367
|
-
|
|
368
|
-
var
|
|
369
|
-
|
|
370
|
-
|
|
337
|
+
function Modal(props) {
|
|
338
|
+
var isActive = props.isActive,
|
|
339
|
+
setActive = props.setActive,
|
|
340
|
+
children = props.children;
|
|
371
341
|
|
|
372
|
-
var
|
|
373
|
-
|
|
374
|
-
patchHistoryEvents(); // this function checks if the location has been changed since the
|
|
375
|
-
// last render and updates the state only when needed.
|
|
376
|
-
// unfortunately, we can't rely on `path` value here, since it can be stale,
|
|
377
|
-
// that's why we store the last pathname in a ref.
|
|
342
|
+
var _usePortal = usePortal__default['default'](),
|
|
343
|
+
Portal = _usePortal.Portal;
|
|
378
344
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
345
|
+
var css = 'modal ' + (isActive ? 'is-active ' : '') + props.className;
|
|
346
|
+
return /*#__PURE__*/React__default['default'].createElement(Portal, null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
347
|
+
className: css
|
|
348
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
349
|
+
className: "modal-background",
|
|
350
|
+
onClick: function onClick() {
|
|
351
|
+
return setActive(false);
|
|
352
|
+
}
|
|
353
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
354
|
+
className: "modal-content"
|
|
355
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
356
|
+
className: "box"
|
|
357
|
+
}, children)), /*#__PURE__*/React__default['default'].createElement("button", {
|
|
358
|
+
className: "modal-close is-large",
|
|
359
|
+
"aria-label": "close",
|
|
360
|
+
onClick: function onClick() {
|
|
361
|
+
return setActive(false);
|
|
362
|
+
}
|
|
363
|
+
})));
|
|
364
|
+
}
|
|
365
|
+
function Confirm(_ref) {
|
|
366
|
+
var message = _ref.message,
|
|
367
|
+
onCancel = _ref.onCancel,
|
|
368
|
+
onConfirm = _ref.onConfirm,
|
|
369
|
+
loading = _ref.loading;
|
|
383
370
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
}); // it's possible that an update has occurred between render and the effect handler,
|
|
388
|
-
// so we run additional check on mount to catch these updates. Based on:
|
|
389
|
-
// https://gist.github.com/bvaughn/e25397f70e8c65b0ae0d7c90b731b189
|
|
371
|
+
var setActive = function setActive() {
|
|
372
|
+
return onCancel();
|
|
373
|
+
};
|
|
390
374
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
},
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
375
|
+
return /*#__PURE__*/React__default['default'].createElement(Modal, {
|
|
376
|
+
isActive: true,
|
|
377
|
+
setActive: setActive,
|
|
378
|
+
className: "confirm"
|
|
379
|
+
}, /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("h1", {
|
|
380
|
+
className: "title is-size-5"
|
|
381
|
+
}, message || 'Are you Sure?'), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
382
|
+
className: "level",
|
|
383
|
+
style: {
|
|
384
|
+
marginTop: 50
|
|
385
|
+
}
|
|
386
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
387
|
+
className: "level-left"
|
|
388
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
389
|
+
className: "level-right"
|
|
390
|
+
}, /*#__PURE__*/React__default['default'].createElement("button", {
|
|
391
|
+
className: "button is-danger",
|
|
392
|
+
onClick: function onClick() {
|
|
393
|
+
return onCancel();
|
|
394
|
+
},
|
|
395
|
+
"data-test": "btnCancelModalTest"
|
|
396
|
+
}, "Cancel"), "\xA0\xA0", /*#__PURE__*/React__default['default'].createElement(Button, {
|
|
397
|
+
loading: loading,
|
|
398
|
+
className: "is-success",
|
|
399
|
+
onClick: function onClick() {
|
|
400
|
+
return onConfirm();
|
|
401
|
+
},
|
|
402
|
+
dataTest: "btnConfirmModalTest"
|
|
403
|
+
}, "Confirm")))));
|
|
404
|
+
} // @todo Improve it... Replacing the inputText to a tree
|
|
402
405
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
406
|
+
function PathTree(_ref2) {
|
|
407
|
+
var title = _ref2.title,
|
|
408
|
+
defaultPath = _ref2.defaultPath,
|
|
409
|
+
children = _ref2.children,
|
|
410
|
+
onConfirm = _ref2.onConfirm,
|
|
411
|
+
onCancel = _ref2.onCancel;
|
|
412
|
+
return /*#__PURE__*/React__default['default'].createElement(Modal, {
|
|
413
|
+
isActive: true,
|
|
414
|
+
setActive: onCancel
|
|
415
|
+
}, /*#__PURE__*/React__default['default'].createElement("h1", null, title), /*#__PURE__*/React__default['default'].createElement("form", {
|
|
416
|
+
onSubmit: function onSubmit(e) {
|
|
417
|
+
e.preventDefault();
|
|
418
|
+
onConfirm(e.target[0].value, e.target);
|
|
419
|
+
}
|
|
420
|
+
}, /*#__PURE__*/React__default['default'].createElement("small", {
|
|
421
|
+
style: {
|
|
422
|
+
display: 'block',
|
|
423
|
+
marginTop: 20
|
|
407
424
|
}
|
|
425
|
+
}, "Example: /folder (without /db/container on front)"), /*#__PURE__*/React__default['default'].createElement("input", {
|
|
426
|
+
className: "input mb-3",
|
|
427
|
+
defaultValue: defaultPath,
|
|
428
|
+
type: "text",
|
|
429
|
+
"data-test": "inputPathTreeTest"
|
|
430
|
+
}), children, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
431
|
+
className: "level-right mt-3"
|
|
432
|
+
}, /*#__PURE__*/React__default['default'].createElement("button", {
|
|
433
|
+
type: "button",
|
|
434
|
+
className: "button is-danger",
|
|
435
|
+
onClick: onCancel,
|
|
436
|
+
"data-test": "btnCancelModalTest"
|
|
437
|
+
}, "Cancel"), "\xA0\xA0", /*#__PURE__*/React__default['default'].createElement("button", {
|
|
438
|
+
type: "submit",
|
|
439
|
+
className: "button is-success",
|
|
440
|
+
"data-test": "btnConfirmModalTest"
|
|
441
|
+
}, "Confirm"))));
|
|
442
|
+
}
|
|
408
443
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
444
|
+
function useSetState(initialState) {
|
|
445
|
+
var _useState = React.useState(initialState),
|
|
446
|
+
state = _useState[0],
|
|
447
|
+
set = _useState[1];
|
|
448
|
+
|
|
449
|
+
var setState = React.useCallback(function (patch) {
|
|
450
|
+
set(function (prevState) {
|
|
451
|
+
return Object.assign({}, prevState, patch instanceof Function ? patch(prevState) : patch);
|
|
412
452
|
});
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
var current = new URLSearchParams(path.toString());
|
|
417
|
-
current.delete(param);
|
|
418
|
-
setURLParams(current);
|
|
419
|
-
}, [path]);
|
|
420
|
-
return [path, navigate, remove];
|
|
421
|
-
}; // While History API does have `popstate` event, the only
|
|
422
|
-
// proper way to listen to changes via `push/replaceState`
|
|
423
|
-
// is to monkey-patch these methods.
|
|
424
|
-
//
|
|
425
|
-
// See https://stackoverflow.com/a/4585031
|
|
453
|
+
}, [set]);
|
|
454
|
+
return [state, setState];
|
|
455
|
+
}
|
|
426
456
|
|
|
427
|
-
|
|
457
|
+
function _catch(body, recover) {
|
|
458
|
+
try {
|
|
459
|
+
var result = body();
|
|
460
|
+
} catch (e) {
|
|
461
|
+
return recover(e);
|
|
462
|
+
}
|
|
428
463
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
var original = window.history[type];
|
|
464
|
+
if (result && result.then) {
|
|
465
|
+
return result.then(void 0, recover);
|
|
466
|
+
}
|
|
433
467
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
468
|
+
return result;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
var initial = {
|
|
472
|
+
loading: undefined,
|
|
473
|
+
isError: false,
|
|
474
|
+
errorMessage: undefined,
|
|
475
|
+
result: undefined,
|
|
476
|
+
response: undefined
|
|
443
477
|
};
|
|
444
478
|
|
|
445
|
-
var
|
|
446
|
-
if (
|
|
447
|
-
|
|
479
|
+
var getErrorMessage = function getErrorMessage(dataError, defaultValue) {
|
|
480
|
+
if (dataError && dataError.details) {
|
|
481
|
+
return dataError.details;
|
|
482
|
+
} else if (dataError && dataError.reason) {
|
|
483
|
+
return dataError.reason;
|
|
448
484
|
}
|
|
449
485
|
|
|
450
|
-
return
|
|
486
|
+
return defaultValue;
|
|
451
487
|
};
|
|
452
488
|
|
|
453
|
-
function
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
children = _ref.children,
|
|
457
|
-
props = _objectWithoutPropertiesLoose(_ref, ["aRef", "model", "children"]);
|
|
458
|
-
|
|
459
|
-
var _useLocation = useLocation(),
|
|
460
|
-
path = _useLocation[0],
|
|
461
|
-
navigate = _useLocation[1];
|
|
462
|
-
|
|
463
|
-
var aStyle = {
|
|
464
|
-
textDecoration: 'none',
|
|
465
|
-
color: 'currentColor'
|
|
466
|
-
};
|
|
467
|
-
|
|
468
|
-
function onClick(e) {
|
|
469
|
-
e.stopPropagation();
|
|
470
|
-
if (actAsLink(e)) return;
|
|
471
|
-
e.preventDefault();
|
|
472
|
-
navigate({
|
|
473
|
-
path: model.path
|
|
474
|
-
}, true);
|
|
475
|
-
if (props.onClick) props.onClick(e);
|
|
489
|
+
var processResponse = function processResponse(res, ready_body) {
|
|
490
|
+
if (ready_body === void 0) {
|
|
491
|
+
ready_body = true;
|
|
476
492
|
}
|
|
477
493
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
return e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button !== 0;
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
function TdLink(_ref) {
|
|
491
|
-
var model = _ref.model,
|
|
492
|
-
children = _ref.children,
|
|
493
|
-
props = _objectWithoutPropertiesLoose(_ref, ["model", "children"]);
|
|
494
|
-
|
|
495
|
-
var link = React.useRef();
|
|
494
|
+
try {
|
|
495
|
+
var _temp2 = function _temp2(_res$json) {
|
|
496
|
+
return {
|
|
497
|
+
isError: false,
|
|
498
|
+
loading: false,
|
|
499
|
+
result: _res$json,
|
|
500
|
+
response: res
|
|
501
|
+
};
|
|
502
|
+
};
|
|
496
503
|
|
|
497
|
-
|
|
498
|
-
|
|
504
|
+
if (res.status < 400) return Promise.resolve(ready_body ? Promise.resolve(res.json()).then(_temp2) : _temp2(res.status));else return Promise.resolve(res.json()).then(function (_res$json2) {
|
|
505
|
+
return {
|
|
506
|
+
isError: true,
|
|
507
|
+
loading: false,
|
|
508
|
+
errorMessage: getErrorMessage(_res$json2, res.status),
|
|
509
|
+
response: res
|
|
510
|
+
};
|
|
511
|
+
});
|
|
512
|
+
} catch (e) {
|
|
513
|
+
return Promise.reject(e);
|
|
499
514
|
}
|
|
515
|
+
};
|
|
500
516
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
}, children));
|
|
507
|
-
}
|
|
517
|
+
var patch = function patch(setState, Ctx) {
|
|
518
|
+
return function (data, endpoint, body) {
|
|
519
|
+
if (body === void 0) {
|
|
520
|
+
body = false;
|
|
521
|
+
}
|
|
508
522
|
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
defaultField = DEFAULT_FIELD;
|
|
515
|
-
}
|
|
523
|
+
try {
|
|
524
|
+
var _temp5 = function _temp5() {
|
|
525
|
+
setState(newState);
|
|
526
|
+
return newState;
|
|
527
|
+
};
|
|
516
528
|
|
|
517
|
-
|
|
518
|
-
|
|
529
|
+
setState({
|
|
530
|
+
loading: true
|
|
531
|
+
});
|
|
532
|
+
var newState = {};
|
|
519
533
|
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
534
|
+
var _temp6 = _catch(function () {
|
|
535
|
+
var path = endpoint ? "" + Ctx.path + endpoint : Ctx.path;
|
|
536
|
+
return Promise.resolve(Ctx.client.patch(path, data)).then(function (res) {
|
|
537
|
+
return Promise.resolve(processResponse(res, body)).then(function (_processResponse) {
|
|
538
|
+
newState = _processResponse;
|
|
539
|
+
});
|
|
540
|
+
});
|
|
541
|
+
}, function (e) {
|
|
542
|
+
console.error('Error', e);
|
|
543
|
+
newState = {
|
|
544
|
+
isError: true,
|
|
545
|
+
errorMessage: 'unhandled exception'
|
|
546
|
+
};
|
|
547
|
+
});
|
|
523
548
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
part = part.replace('||', ' ');
|
|
549
|
+
return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(_temp5) : _temp5(_temp6));
|
|
550
|
+
} catch (e) {
|
|
551
|
+
return Promise.reject(e);
|
|
528
552
|
}
|
|
553
|
+
};
|
|
554
|
+
};
|
|
529
555
|
|
|
530
|
-
|
|
531
|
-
|
|
556
|
+
var del = function del(setState, Ctx) {
|
|
557
|
+
return function (data, endpoint, body) {
|
|
558
|
+
if (body === void 0) {
|
|
559
|
+
body = false;
|
|
532
560
|
}
|
|
533
561
|
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
562
|
+
try {
|
|
563
|
+
var _temp9 = function _temp9() {
|
|
564
|
+
setState(newState);
|
|
565
|
+
return newState;
|
|
566
|
+
};
|
|
537
567
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
function buildQs(parsedQuery) {
|
|
543
|
-
return parsedQuery.map(function (_ref) {
|
|
544
|
-
var key = _ref[0],
|
|
545
|
-
val = _ref[1];
|
|
546
|
-
return encodeURIComponent(key) + "=" + encodeURIComponent(val);
|
|
547
|
-
}).join('&');
|
|
548
|
-
}
|
|
568
|
+
setState({
|
|
569
|
+
loading: true
|
|
570
|
+
});
|
|
571
|
+
var newState = {};
|
|
549
572
|
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
573
|
+
var _temp10 = _catch(function () {
|
|
574
|
+
var path = endpoint ? "" + Ctx.path + endpoint : Ctx.path;
|
|
575
|
+
return Promise.resolve(Ctx.client.delete(path, data)).then(function (res) {
|
|
576
|
+
return Promise.resolve(processResponse(res, body)).then(function (_processResponse2) {
|
|
577
|
+
newState = _processResponse2;
|
|
578
|
+
});
|
|
579
|
+
});
|
|
580
|
+
}, function (e) {
|
|
581
|
+
console.error('Error', e);
|
|
582
|
+
newState = {
|
|
583
|
+
isError: true,
|
|
584
|
+
errorMessage: 'unhandled exception'
|
|
585
|
+
};
|
|
586
|
+
});
|
|
557
587
|
|
|
558
|
-
|
|
588
|
+
return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
|
|
589
|
+
} catch (e) {
|
|
590
|
+
return Promise.reject(e);
|
|
591
|
+
}
|
|
592
|
+
};
|
|
593
|
+
};
|
|
594
|
+
|
|
595
|
+
var post = function post(setState, Ctx) {
|
|
596
|
+
return function (data, endpoint, body) {
|
|
597
|
+
if (body === void 0) {
|
|
598
|
+
body = true;
|
|
599
|
+
}
|
|
559
600
|
|
|
560
|
-
_proto.getContext = function getContext(path) {
|
|
561
601
|
try {
|
|
562
|
-
var
|
|
602
|
+
var _temp13 = function _temp13() {
|
|
603
|
+
setState(newState);
|
|
604
|
+
return newState;
|
|
605
|
+
};
|
|
563
606
|
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
607
|
+
setState({
|
|
608
|
+
loading: true
|
|
609
|
+
});
|
|
610
|
+
var newState = {};
|
|
567
611
|
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
612
|
+
var _temp14 = _catch(function () {
|
|
613
|
+
var path = endpoint ? "" + Ctx.path + endpoint : Ctx.path;
|
|
614
|
+
return Promise.resolve(Ctx.client.post(path, data)).then(function (res) {
|
|
615
|
+
return Promise.resolve(processResponse(res, body)).then(function (_processResponse3) {
|
|
616
|
+
newState = _processResponse3;
|
|
617
|
+
});
|
|
618
|
+
});
|
|
619
|
+
}, function (e) {
|
|
620
|
+
console.error('Error', e);
|
|
621
|
+
newState = {
|
|
622
|
+
isError: true,
|
|
623
|
+
errorMessage: 'unhandled exception'
|
|
624
|
+
};
|
|
625
|
+
});
|
|
572
626
|
|
|
573
|
-
|
|
574
|
-
}
|
|
627
|
+
return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp13) : _temp13(_temp14));
|
|
575
628
|
} catch (e) {
|
|
576
629
|
return Promise.reject(e);
|
|
577
630
|
}
|
|
578
631
|
};
|
|
632
|
+
};
|
|
579
633
|
|
|
580
|
-
|
|
634
|
+
var get = function get(setState, Ctx) {
|
|
635
|
+
return function (endpoint) {
|
|
581
636
|
try {
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
637
|
+
setState({
|
|
638
|
+
loading: true
|
|
639
|
+
});
|
|
640
|
+
var path = endpoint ? "" + Ctx.path + endpoint : Ctx.path;
|
|
641
|
+
return Promise.resolve(Ctx.client.get(path)).then(function (req) {
|
|
642
|
+
return Promise.resolve(req.json()).then(function (data) {
|
|
643
|
+
setState({
|
|
644
|
+
loading: false,
|
|
645
|
+
result: data,
|
|
646
|
+
response: req
|
|
647
|
+
});
|
|
648
|
+
return data;
|
|
649
|
+
});
|
|
650
|
+
});
|
|
589
651
|
} catch (e) {
|
|
590
652
|
return Promise.reject(e);
|
|
591
653
|
}
|
|
592
654
|
};
|
|
655
|
+
};
|
|
593
656
|
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
start = _ref$start === void 0 ? 0 : _ref$start,
|
|
597
|
-
_ref$pageSize = _ref.pageSize,
|
|
598
|
-
pageSize = _ref$pageSize === void 0 ? 10 : _ref$pageSize,
|
|
599
|
-
_ref$withDepth = _ref.withDepth,
|
|
600
|
-
withDepth = _ref$withDepth === void 0 ? true : _ref$withDepth;
|
|
601
|
-
var result = [];
|
|
602
|
-
result = [].concat(parser(start.toString(), 'b_start'), parser(pageSize.toString(), 'b_size'));
|
|
603
|
-
|
|
604
|
-
if (withDepth) {
|
|
605
|
-
var _parser;
|
|
657
|
+
function useCrudContext() {
|
|
658
|
+
var Ctx = useTraversal();
|
|
606
659
|
|
|
607
|
-
|
|
608
|
-
|
|
660
|
+
var _useSetState = useSetState(initial),
|
|
661
|
+
state = _useSetState[0],
|
|
662
|
+
setState = _useSetState[1];
|
|
609
663
|
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
path = _ref2.path,
|
|
619
|
-
_ref2$withDepth = _ref2.withDepth,
|
|
620
|
-
withDepth = _ref2$withDepth === void 0 ? true : _ref2$withDepth;
|
|
621
|
-
var result = [];
|
|
622
|
-
var containerPath = getContainerFromPath(path);
|
|
664
|
+
return _extends({}, state, {
|
|
665
|
+
Ctx: Ctx,
|
|
666
|
+
patch: patch(setState, Ctx),
|
|
667
|
+
del: del(setState, Ctx),
|
|
668
|
+
post: post(setState, Ctx),
|
|
669
|
+
get: get(setState, Ctx)
|
|
670
|
+
});
|
|
671
|
+
}
|
|
623
672
|
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
673
|
+
function AddItem(props) {
|
|
674
|
+
var doSubmit = function doSubmit(data) {
|
|
675
|
+
try {
|
|
676
|
+
var form = Object.assign({}, {
|
|
677
|
+
'@type': type
|
|
678
|
+
}, data.formData ? data.formData : data);
|
|
679
|
+
return Promise.resolve(post(form)).then(function (_ref) {
|
|
680
|
+
var isError = _ref.isError,
|
|
681
|
+
errorMessage = _ref.errorMessage;
|
|
627
682
|
|
|
628
|
-
|
|
683
|
+
if (!isError) {
|
|
684
|
+
Ctx.flash('Content created!', 'success');
|
|
685
|
+
} else {
|
|
686
|
+
Ctx.flash("An error has ocurred: " + errorMessage, 'danger');
|
|
687
|
+
}
|
|
629
688
|
|
|
630
|
-
|
|
631
|
-
|
|
689
|
+
Ctx.cancelAction();
|
|
690
|
+
Ctx.refresh();
|
|
691
|
+
});
|
|
692
|
+
} catch (e) {
|
|
693
|
+
return Promise.reject(e);
|
|
632
694
|
}
|
|
695
|
+
};
|
|
633
696
|
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
if (withDepth) {
|
|
637
|
-
var _parser2;
|
|
697
|
+
var Ctx = useTraversal();
|
|
638
698
|
|
|
639
|
-
|
|
640
|
-
|
|
699
|
+
var _useCrudContext = useCrudContext(),
|
|
700
|
+
post = _useCrudContext.post,
|
|
701
|
+
loading = _useCrudContext.loading;
|
|
641
702
|
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
703
|
+
var type = props.type;
|
|
704
|
+
var getForm = Ctx.registry.getForm;
|
|
705
|
+
var Form = getForm(type);
|
|
645
706
|
|
|
646
|
-
|
|
707
|
+
var setActive = function setActive() {
|
|
708
|
+
Ctx.cancelAction();
|
|
647
709
|
};
|
|
648
710
|
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
}
|
|
665
|
-
}, {
|
|
666
|
-
label: 'type',
|
|
667
|
-
child: function child(m) {
|
|
668
|
-
return /*#__PURE__*/React__default['default'].createElement(TdLink, {
|
|
669
|
-
style: smallcss,
|
|
670
|
-
model: m
|
|
671
|
-
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
672
|
-
className: "tag"
|
|
673
|
-
}, m.type));
|
|
674
|
-
}
|
|
675
|
-
}, {
|
|
676
|
-
label: 'id/name',
|
|
677
|
-
child: function child(m, navigate, search) {
|
|
678
|
-
return /*#__PURE__*/React__default['default'].createElement(TdLink, {
|
|
679
|
-
model: m
|
|
680
|
-
}, m.name, search && /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", {
|
|
681
|
-
className: "is-size-7 tag is-light"
|
|
682
|
-
}, m.path)));
|
|
683
|
-
}
|
|
684
|
-
}, {
|
|
685
|
-
label: 'created',
|
|
686
|
-
child: function child(m) {
|
|
687
|
-
return /*#__PURE__*/React__default['default'].createElement("td", {
|
|
688
|
-
style: mediumcss,
|
|
689
|
-
className: "is-size-7 is-vcentered"
|
|
690
|
-
}, m.created);
|
|
691
|
-
}
|
|
692
|
-
}, {
|
|
693
|
-
label: 'modified',
|
|
694
|
-
child: function child(m) {
|
|
695
|
-
return /*#__PURE__*/React__default['default'].createElement("td", {
|
|
696
|
-
style: mediumcss,
|
|
697
|
-
className: "is-size-7 is-vcentered"
|
|
698
|
-
}, m.updated);
|
|
699
|
-
}
|
|
700
|
-
}];
|
|
701
|
-
} // BBB API changes. Compat G5 and G6
|
|
702
|
-
;
|
|
711
|
+
return /*#__PURE__*/React__default['default'].createElement(Modal, {
|
|
712
|
+
isActive: true,
|
|
713
|
+
setActive: setActive
|
|
714
|
+
}, /*#__PURE__*/React__default['default'].createElement(Form, {
|
|
715
|
+
loading: loading,
|
|
716
|
+
onSubmit: doSubmit,
|
|
717
|
+
onError: function onError(err) {
|
|
718
|
+
return console.log(err);
|
|
719
|
+
},
|
|
720
|
+
actionName: 'Add ' + type,
|
|
721
|
+
title: 'Add ' + type,
|
|
722
|
+
type: type,
|
|
723
|
+
dataTest: "formAdd" + type + "Test"
|
|
724
|
+
}));
|
|
725
|
+
}
|
|
703
726
|
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
727
|
+
var Permissions = ['guillotina.AddContent', 'guillotina.ModifyContent', 'guillotina.ViewContent', 'guillotina.DeleteContent', 'guillotina.AccessContent', 'guillotina.SeePermissions', 'guillotina.ChangePermissions', 'guillotina.MoveContent', 'guillotina.DuplicateContent', 'guillotina.ReadConfiguration', 'guillotina.RegisterConfigurations', 'guillotina.WriteConfiguration', 'guillotina.ManageAddons', 'guillotina.swagger.View'];
|
|
728
|
+
var Config = {
|
|
729
|
+
DisabledTypes: ['UserManager', 'GroupManager'],
|
|
730
|
+
PageSize: 10,
|
|
731
|
+
DelayActions: 200,
|
|
732
|
+
Permissions: Permissions,
|
|
733
|
+
SearchEngine: 'PostreSQL',
|
|
734
|
+
// Elasticsearch
|
|
735
|
+
fieldHaveDeleteButton: function fieldHaveDeleteButton(schema) {
|
|
736
|
+
return (schema == null ? void 0 : schema.widget) === 'file' || (schema == null ? void 0 : schema.widget) === 'select' || (schema == null ? void 0 : schema.type) === 'array';
|
|
737
|
+
}
|
|
738
|
+
};
|
|
739
|
+
var calculated = Object.assign({}, Config);
|
|
709
740
|
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
741
|
+
var addConfig = function addConfig(additional, original) {
|
|
742
|
+
var rest = Object.assign({}, original);
|
|
743
|
+
Object.keys(additional).forEach(function (item) {
|
|
744
|
+
if (typeof Config[item] === 'object' && Array.isArray(Config[item])) {
|
|
745
|
+
rest[item] = [].concat(Config[item], additional[item]);
|
|
746
|
+
} else if (typeof Config[item] === 'object') {
|
|
747
|
+
rest[item] = Object.assign({}, Config[item], additional[item]);
|
|
748
|
+
} else {
|
|
749
|
+
rest[item] = additional[item];
|
|
713
750
|
}
|
|
751
|
+
});
|
|
752
|
+
return rest;
|
|
753
|
+
};
|
|
714
754
|
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
}
|
|
755
|
+
function useConfig(cfg) {
|
|
756
|
+
var ref = React__default['default'].useRef();
|
|
718
757
|
|
|
719
|
-
|
|
720
|
-
|
|
758
|
+
if (cfg && !ref.current) {
|
|
759
|
+
console.log('cfg', cfg);
|
|
760
|
+
calculated = addConfig(cfg, calculated);
|
|
761
|
+
ref.current = calculated;
|
|
762
|
+
} // if (cfg && !ref.current) {
|
|
763
|
+
// ref.current = addConfig(cfg, ref.current);
|
|
764
|
+
// calculated = ref.current
|
|
765
|
+
// console.log("Current config", cfg)
|
|
766
|
+
// }
|
|
721
767
|
|
|
722
|
-
if (path.startsWith('/')) {
|
|
723
|
-
path = path.slice(1);
|
|
724
|
-
}
|
|
725
768
|
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
}
|
|
769
|
+
return calculated;
|
|
770
|
+
}
|
|
729
771
|
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
return _this6.applyCompat(data);
|
|
735
|
-
});
|
|
736
|
-
});
|
|
737
|
-
} catch (e) {
|
|
738
|
-
return Promise.reject(e);
|
|
739
|
-
}
|
|
740
|
-
};
|
|
772
|
+
var getId = function getId(item) {
|
|
773
|
+
if (item['@id']) {
|
|
774
|
+
return item['@id'];
|
|
775
|
+
}
|
|
741
776
|
|
|
742
|
-
|
|
777
|
+
return item['@absolute_url'];
|
|
778
|
+
};
|
|
779
|
+
|
|
780
|
+
function RemoveItems(props) {
|
|
781
|
+
var removeItems = function removeItems() {
|
|
743
782
|
try {
|
|
744
|
-
var
|
|
783
|
+
var errors = [];
|
|
784
|
+
setLoading(true);
|
|
785
|
+
var actions = items.map(function (item) {
|
|
786
|
+
try {
|
|
787
|
+
console.log(item);
|
|
788
|
+
return Promise.resolve(Ctx.client.delete(getId(item))).then(function (res) {
|
|
789
|
+
var _temp = function () {
|
|
790
|
+
if (!res.ok) {
|
|
791
|
+
return Promise.resolve(res.json()).then(function (err) {
|
|
792
|
+
errors.push(err);
|
|
793
|
+
});
|
|
794
|
+
}
|
|
795
|
+
}();
|
|
745
796
|
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
797
|
+
if (_temp && _temp.then) return _temp.then(function () {});
|
|
798
|
+
});
|
|
799
|
+
} catch (e) {
|
|
800
|
+
return Promise.reject(e);
|
|
801
|
+
}
|
|
802
|
+
}); // this sleep is here, to let elasticsearch, wait for
|
|
803
|
+
// index our operations... (will work 99% of use cases)
|
|
749
804
|
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
805
|
+
actions.push(sleep(cfg.DelayActions));
|
|
806
|
+
return Promise.resolve(Promise.all(actions)).then(function () {
|
|
807
|
+
if (errors.length === 0) {
|
|
808
|
+
Ctx.flash("Items removed!", 'success');
|
|
809
|
+
Ctx.refresh();
|
|
810
|
+
} else {
|
|
811
|
+
var errorstr = errors.map(function (err) {
|
|
812
|
+
return JSON.stringify(err);
|
|
813
|
+
}).join('\n');
|
|
814
|
+
Ctx.flash("Something went wrong!! " + errorstr, 'danger');
|
|
815
|
+
}
|
|
753
816
|
|
|
754
|
-
|
|
755
|
-
|
|
817
|
+
setLoading(false);
|
|
818
|
+
Ctx.cancelAction();
|
|
819
|
+
});
|
|
756
820
|
} catch (e) {
|
|
757
821
|
return Promise.reject(e);
|
|
758
822
|
}
|
|
759
823
|
};
|
|
760
824
|
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
var _this10 = this;
|
|
764
|
-
|
|
765
|
-
return Promise.resolve(_this10.rest.post(path, data));
|
|
766
|
-
} catch (e) {
|
|
767
|
-
return Promise.reject(e);
|
|
768
|
-
}
|
|
769
|
-
};
|
|
825
|
+
var Ctx = useTraversal();
|
|
826
|
+
var cfg = useConfig();
|
|
770
827
|
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
};
|
|
828
|
+
var _React$useState = React__default['default'].useState(false),
|
|
829
|
+
loading = _React$useState[0],
|
|
830
|
+
setLoading = _React$useState[1];
|
|
775
831
|
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
832
|
+
var _props$items = props.items,
|
|
833
|
+
items = _props$items === void 0 ? [] : _props$items;
|
|
834
|
+
var last = items[items.length - 1]['@name'];
|
|
835
|
+
var itemsNames = items.map(function (item) {
|
|
836
|
+
return item['@name'];
|
|
837
|
+
}).join(', ').replace(", " + last, " and " + last);
|
|
838
|
+
return /*#__PURE__*/React__default['default'].createElement(Confirm, {
|
|
839
|
+
loading: loading,
|
|
840
|
+
onCancel: function onCancel() {
|
|
841
|
+
return Ctx.cancelAction();
|
|
842
|
+
},
|
|
843
|
+
onConfirm: removeItems,
|
|
844
|
+
message: "Are you sure to remove: " + itemsNames + "?"
|
|
845
|
+
});
|
|
846
|
+
}
|
|
779
847
|
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
848
|
+
var Checkbox = function Checkbox(_ref) {
|
|
849
|
+
var id = _ref.id,
|
|
850
|
+
className = _ref.className,
|
|
851
|
+
classNameInput = _ref.classNameInput,
|
|
852
|
+
loading = _ref.loading,
|
|
853
|
+
disabled = _ref.disabled,
|
|
854
|
+
_ref$indeterminate = _ref.indeterminate,
|
|
855
|
+
indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate,
|
|
856
|
+
_ref$value = _ref.value,
|
|
857
|
+
value = _ref$value === void 0 ? false : _ref$value,
|
|
858
|
+
children = _ref.children,
|
|
859
|
+
placeholder = _ref.placeholder,
|
|
860
|
+
onChange = _ref.onChange,
|
|
861
|
+
dataTest = _ref.dataTest,
|
|
862
|
+
rest = _objectWithoutPropertiesLoose(_ref, ["id", "className", "classNameInput", "loading", "disabled", "indeterminate", "value", "color", "backgroundColor", "borderColor", "children", "placeholder", "onChange", "dataTest"]);
|
|
786
863
|
|
|
787
|
-
|
|
788
|
-
try {
|
|
789
|
-
var _this14 = this;
|
|
864
|
+
var inputRef = React.useRef(null);
|
|
790
865
|
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
866
|
+
var _React$useState = React__default['default'].useState(value),
|
|
867
|
+
state = _React$useState[0],
|
|
868
|
+
setState = _React$useState[1];
|
|
794
869
|
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
870
|
+
React.useEffect(function () {
|
|
871
|
+
if (inputRef.current) {
|
|
872
|
+
inputRef.current.indeterminate = indeterminate;
|
|
798
873
|
}
|
|
799
|
-
};
|
|
800
|
-
|
|
801
|
-
_proto.post = function post(path, data) {
|
|
802
|
-
try {
|
|
803
|
-
var _this16 = this;
|
|
874
|
+
}, [indeterminate]);
|
|
804
875
|
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
}
|
|
876
|
+
var updateState = function updateState(ev) {
|
|
877
|
+
setState(ev.target.checked);
|
|
878
|
+
onChange(ev.target.checked);
|
|
809
879
|
};
|
|
810
880
|
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
881
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
882
|
+
className: "field"
|
|
883
|
+
}, /*#__PURE__*/React__default['default'].createElement("label", {
|
|
884
|
+
htmlFor: id,
|
|
885
|
+
className: classnames(['checkbox', className])
|
|
886
|
+
}, /*#__PURE__*/React__default['default'].createElement("input", _extends({
|
|
887
|
+
ref: inputRef,
|
|
888
|
+
disabled: disabled || loading,
|
|
889
|
+
id: id,
|
|
890
|
+
type: "checkbox",
|
|
891
|
+
className: classnames(['checkbox', classNameInput]),
|
|
892
|
+
checked: state,
|
|
893
|
+
onChange: updateState,
|
|
894
|
+
"data-test": dataTest
|
|
895
|
+
}, rest)), children || placeholder));
|
|
896
|
+
};
|
|
814
897
|
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
898
|
+
var ErrorZone = function ErrorZone(_ref) {
|
|
899
|
+
var children = _ref.children,
|
|
900
|
+
id = _ref.id,
|
|
901
|
+
className = _ref.className;
|
|
902
|
+
return /*#__PURE__*/React__default['default'].createElement("p", {
|
|
903
|
+
className: classnames(['help is-danger', className]),
|
|
904
|
+
id: id
|
|
905
|
+
}, children);
|
|
906
|
+
};
|
|
818
907
|
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
908
|
+
ErrorZone.propTypes = {
|
|
909
|
+
children: PropTypes__default['default'].node,
|
|
910
|
+
id: PropTypes__default['default'].string,
|
|
911
|
+
className: PropTypes__default['default'].string
|
|
912
|
+
};
|
|
824
913
|
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
914
|
+
var applyValidators = function applyValidators(value, validators) {
|
|
915
|
+
var validation = Array.isArray(validators) ? validators : [validators];
|
|
916
|
+
var result = true;
|
|
917
|
+
validation.forEach(function (func) {
|
|
918
|
+
if (func(value) === false) {
|
|
919
|
+
result = false;
|
|
920
|
+
}
|
|
921
|
+
});
|
|
922
|
+
return result;
|
|
923
|
+
};
|
|
828
924
|
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
925
|
+
var useInput = function useInput(onChange, value, validator) {
|
|
926
|
+
var _React$useState = React__default['default'].useState({
|
|
927
|
+
hasError: false,
|
|
928
|
+
value: value
|
|
929
|
+
}),
|
|
930
|
+
state = _React$useState[0],
|
|
931
|
+
setState = _React$useState[1];
|
|
832
932
|
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
933
|
+
var onUpdate = function onUpdate(ev) {
|
|
934
|
+
var value = ev && ev.target ? ev.target.value : ev ? ev : '';
|
|
935
|
+
setState({
|
|
936
|
+
value: value,
|
|
937
|
+
hasError: false
|
|
938
|
+
});
|
|
939
|
+
if (onChange) onChange(value);
|
|
837
940
|
};
|
|
838
941
|
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
942
|
+
var onBlur = function onBlur() {
|
|
943
|
+
var hasError = applyValidators(state.value, validator) === false;
|
|
944
|
+
if (hasError) setState({
|
|
945
|
+
value: state.value,
|
|
946
|
+
hasError: hasError
|
|
947
|
+
});
|
|
948
|
+
};
|
|
846
949
|
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
950
|
+
var onFocus = function onFocus() {
|
|
951
|
+
if (state.hasError) {
|
|
952
|
+
setState({
|
|
953
|
+
value: state.value,
|
|
954
|
+
hasError: false
|
|
955
|
+
});
|
|
850
956
|
}
|
|
851
957
|
};
|
|
852
958
|
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
959
|
+
React__default['default'].useEffect(function () {
|
|
960
|
+
setState({
|
|
961
|
+
value: value,
|
|
962
|
+
hasError: false
|
|
963
|
+
});
|
|
964
|
+
}, [value]);
|
|
965
|
+
return {
|
|
966
|
+
onChange: onUpdate,
|
|
967
|
+
onFocus: onFocus,
|
|
968
|
+
onBlur: onBlur,
|
|
969
|
+
state: state
|
|
970
|
+
};
|
|
971
|
+
};
|
|
856
972
|
|
|
857
|
-
|
|
858
|
-
return cacheSchemas[name];
|
|
859
|
-
};
|
|
973
|
+
// From github.com/protonmail/proton-shared
|
|
860
974
|
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
975
|
+
/* eslint-disable no-useless-escape */
|
|
976
|
+
var REGEX_EMAIL = /(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))/i;
|
|
977
|
+
var REGEX_URL = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/;
|
|
978
|
+
var REGEX_HEX_COLOR = /^#([a-f0-9]{3,4}|[a-f0-9]{4}(?:[a-f0-9]{2}){1,2})\b$/i;
|
|
979
|
+
var REGEX_NUMBER = /^\d+$/;
|
|
980
|
+
var isEmpty = function isEmpty(value) {
|
|
981
|
+
if (value === void 0) {
|
|
982
|
+
value = '';
|
|
983
|
+
}
|
|
864
984
|
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
}();
|
|
985
|
+
return !value.length;
|
|
986
|
+
};
|
|
987
|
+
var maxLength = function maxLength(value, limit) {
|
|
988
|
+
if (value === void 0) {
|
|
989
|
+
value = '';
|
|
990
|
+
}
|
|
872
991
|
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
}
|
|
877
|
-
};
|
|
992
|
+
if (limit === void 0) {
|
|
993
|
+
limit = 0;
|
|
994
|
+
}
|
|
878
995
|
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
996
|
+
return value.length <= limit;
|
|
997
|
+
};
|
|
998
|
+
var minLength = function minLength(value, limit) {
|
|
999
|
+
if (value === void 0) {
|
|
1000
|
+
value = '';
|
|
1001
|
+
}
|
|
882
1002
|
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
}
|
|
887
|
-
};
|
|
1003
|
+
if (limit === void 0) {
|
|
1004
|
+
limit = 0;
|
|
1005
|
+
}
|
|
888
1006
|
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
1007
|
+
return value.length >= limit;
|
|
1008
|
+
};
|
|
1009
|
+
var isEmail = function isEmail(value) {
|
|
1010
|
+
if (value === void 0) {
|
|
1011
|
+
value = '';
|
|
1012
|
+
}
|
|
892
1013
|
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
};
|
|
1014
|
+
return REGEX_EMAIL.test(value);
|
|
1015
|
+
};
|
|
1016
|
+
var isURL = function isURL(value) {
|
|
1017
|
+
if (value === void 0) {
|
|
1018
|
+
value = '';
|
|
1019
|
+
}
|
|
900
1020
|
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
1021
|
+
return REGEX_URL.test(value);
|
|
1022
|
+
};
|
|
1023
|
+
var isHexColor = function isHexColor(value) {
|
|
1024
|
+
if (value === void 0) {
|
|
1025
|
+
value = '';
|
|
1026
|
+
}
|
|
904
1027
|
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
};
|
|
912
|
-
|
|
913
|
-
_proto.getGroups = function getGroups(path) {
|
|
914
|
-
try {
|
|
915
|
-
var _this32 = this;
|
|
1028
|
+
return REGEX_HEX_COLOR.test(value);
|
|
1029
|
+
};
|
|
1030
|
+
var isNumber = function isNumber(value) {
|
|
1031
|
+
if (value === void 0) {
|
|
1032
|
+
value = '';
|
|
1033
|
+
}
|
|
916
1034
|
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
};
|
|
1035
|
+
return REGEX_NUMBER.test(value);
|
|
1036
|
+
};
|
|
1037
|
+
var notEmpty = function notEmpty(value) {
|
|
1038
|
+
return !!value.length;
|
|
1039
|
+
};
|
|
923
1040
|
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
1041
|
+
var noop$2 = function noop() {
|
|
1042
|
+
return true;
|
|
1043
|
+
};
|
|
1044
|
+
/** @type any */
|
|
927
1045
|
|
|
928
|
-
var endpoint = getContainerFromPath(path) + "@users";
|
|
929
|
-
return Promise.resolve(_this34.rest.get(endpoint));
|
|
930
|
-
} catch (e) {
|
|
931
|
-
return Promise.reject(e);
|
|
932
|
-
}
|
|
933
|
-
};
|
|
934
1046
|
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
1047
|
+
var Input = React__default['default'].forwardRef(function (_ref, ref) {
|
|
1048
|
+
var icon = _ref.icon,
|
|
1049
|
+
_ref$iconPosition = _ref.iconPosition,
|
|
1050
|
+
iconPosition = _ref$iconPosition === void 0 ? 'has-icons-right' : _ref$iconPosition,
|
|
1051
|
+
error = _ref.error,
|
|
1052
|
+
errorZoneClassName = _ref.errorZoneClassName,
|
|
1053
|
+
_ref$autoComplete = _ref.autoComplete,
|
|
1054
|
+
autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,
|
|
1055
|
+
_ref$className = _ref.className,
|
|
1056
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
|
1057
|
+
_ref$widget = _ref.widget,
|
|
1058
|
+
widget = _ref$widget === void 0 ? 'input' : _ref$widget,
|
|
1059
|
+
_ref$type = _ref.type,
|
|
1060
|
+
type = _ref$type === void 0 ? 'text' : _ref$type,
|
|
1061
|
+
_ref$loading = _ref.loading,
|
|
1062
|
+
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
1063
|
+
_ref$required = _ref.required,
|
|
1064
|
+
required = _ref$required === void 0 ? false : _ref$required,
|
|
1065
|
+
id = _ref.id,
|
|
1066
|
+
placeholder = _ref.placeholder,
|
|
1067
|
+
value = _ref.value,
|
|
1068
|
+
_ref$autofocus = _ref.autofocus,
|
|
1069
|
+
autofocus = _ref$autofocus === void 0 ? false : _ref$autofocus,
|
|
1070
|
+
onChange = _ref.onChange,
|
|
1071
|
+
_ref$validator = _ref.validator,
|
|
1072
|
+
validator = _ref$validator === void 0 ? noop$2 : _ref$validator,
|
|
1073
|
+
errorMessage = _ref.errorMessage,
|
|
1074
|
+
_ref$dataTest = _ref.dataTest,
|
|
1075
|
+
dataTest = _ref$dataTest === void 0 ? 'testInput' : _ref$dataTest,
|
|
1076
|
+
rest = _objectWithoutPropertiesLoose(_ref, ["icon", "iconPosition", "error", "errorZoneClassName", "autoComplete", "className", "widget", "type", "onPressEnter", "isSubmitted", "loading", "required", "id", "placeholder", "value", "autofocus", "onChange", "validator", "errorMessage", "dataTest"]);
|
|
938
1077
|
|
|
939
|
-
|
|
1078
|
+
if (required) {
|
|
1079
|
+
validator = Array.isArray(validator) ? validator.push(notEmpty) : [validator, notEmpty];
|
|
1080
|
+
}
|
|
940
1081
|
|
|
941
|
-
|
|
1082
|
+
var _useInput = useInput(onChange, value != null ? value : '', validator),
|
|
1083
|
+
state = _useInput.state,
|
|
1084
|
+
handlers = _objectWithoutPropertiesLoose(_useInput, ["state"]);
|
|
942
1085
|
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
usr = _ref3[1];
|
|
1086
|
+
var _useState = React.useState(generateUID('input')),
|
|
1087
|
+
uid = _useState[0];
|
|
946
1088
|
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
groups: _gr$json,
|
|
951
|
-
users: _usr$json
|
|
952
|
-
};
|
|
953
|
-
}
|
|
1089
|
+
var _useState2 = React.useState(false),
|
|
1090
|
+
mounted = _useState2[0],
|
|
1091
|
+
setMounted = _useState2[1]; // eslint-disable-next-line
|
|
954
1092
|
|
|
955
|
-
var _usr$ok = usr.ok;
|
|
956
|
-
return _usr$ok ? Promise.resolve(usr.json()).then(_temp5) : _temp5([]);
|
|
957
|
-
}
|
|
958
1093
|
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
1094
|
+
ref = ref || React__default['default'].useRef();
|
|
1095
|
+
React.useEffect(function () {
|
|
1096
|
+
setMounted(true);
|
|
1097
|
+
}, []);
|
|
1098
|
+
React.useEffect(function () {
|
|
1099
|
+
if (autofocus && !error) {
|
|
1100
|
+
ref.current.focus();
|
|
964
1101
|
}
|
|
1102
|
+
}, [mounted, autofocus, ref, error]);
|
|
1103
|
+
var theError = state.hasError ? errorMessage || 'invalid field' : '';
|
|
1104
|
+
var statusClasses = state.hasError ? 'is-danger' : '';
|
|
1105
|
+
|
|
1106
|
+
var cssControl = function cssControl() {
|
|
1107
|
+
return icon ? ['control', iconPosition] : ['control'];
|
|
965
1108
|
};
|
|
966
1109
|
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
1110
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1111
|
+
className: "field"
|
|
1112
|
+
}, id && placeholder ? /*#__PURE__*/React__default['default'].createElement("label", {
|
|
1113
|
+
className: "label",
|
|
1114
|
+
htmlFor: id
|
|
1115
|
+
}, placeholder) : null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1116
|
+
className: classnames(cssControl())
|
|
1117
|
+
}, /*#__PURE__*/React__default['default'].createElement("input", _extends({
|
|
1118
|
+
className: classnames([widget, className, statusClasses]),
|
|
1119
|
+
"aria-invalid": theError,
|
|
1120
|
+
"aria-describedby": uid,
|
|
1121
|
+
id: id,
|
|
1122
|
+
ref: ref,
|
|
1123
|
+
type: type,
|
|
1124
|
+
value: state.value,
|
|
1125
|
+
placeholder: placeholder,
|
|
1126
|
+
autoComplete: autoComplete,
|
|
1127
|
+
disabled: loading || rest.disabled,
|
|
1128
|
+
required: required,
|
|
1129
|
+
"data-test": dataTest
|
|
1130
|
+
}, handlers, rest)), icon && icon), /*#__PURE__*/React__default['default'].createElement(ErrorZone, {
|
|
1131
|
+
className: errorZoneClassName,
|
|
1132
|
+
id: uid
|
|
1133
|
+
}, state.hasError ? theError : ''));
|
|
1134
|
+
});
|
|
1135
|
+
Input.propTypes = {
|
|
1136
|
+
icon: PropTypes__default['default'].node,
|
|
1137
|
+
iconPosition: PropTypes__default['default'].arrayOf(PropTypes__default['default'].oneOf(['has-icons-left', 'has-icons-right', ''])),
|
|
1138
|
+
error: PropTypes__default['default'].string,
|
|
1139
|
+
errorZoneClassName: PropTypes__default['default'].string,
|
|
1140
|
+
autoComplete: PropTypes__default['default'].string,
|
|
1141
|
+
autoFocus: PropTypes__default['default'].bool,
|
|
1142
|
+
className: PropTypes__default['default'].string,
|
|
1143
|
+
disabled: PropTypes__default['default'].bool,
|
|
1144
|
+
loading: PropTypes__default['default'].bool,
|
|
1145
|
+
isSubmitted: PropTypes__default['default'].bool,
|
|
1146
|
+
id: PropTypes__default['default'].string,
|
|
1147
|
+
name: PropTypes__default['default'].string,
|
|
1148
|
+
onChange: PropTypes__default['default'].func,
|
|
1149
|
+
onKeyDown: PropTypes__default['default'].func,
|
|
1150
|
+
onKeyUp: PropTypes__default['default'].func,
|
|
1151
|
+
onPressEnter: PropTypes__default['default'].func,
|
|
1152
|
+
placeholder: PropTypes__default['default'].string,
|
|
1153
|
+
readOnly: PropTypes__default['default'].bool,
|
|
1154
|
+
required: PropTypes__default['default'].bool,
|
|
1155
|
+
type: PropTypes__default['default'].string,
|
|
1156
|
+
value: PropTypes__default['default'].oneOfType([PropTypes__default['default'].string, PropTypes__default['default'].number, PropTypes__default['default'].bool])
|
|
1157
|
+
};
|
|
970
1158
|
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
1159
|
+
var Icon = function Icon(_ref) {
|
|
1160
|
+
var icon = _ref.icon,
|
|
1161
|
+
className = _ref.className,
|
|
1162
|
+
align = _ref.align;
|
|
1163
|
+
var addClass = className ? className.split(' ') : [className];
|
|
1164
|
+
align = align || 'is-right';
|
|
1165
|
+
return /*#__PURE__*/React__default['default'].createElement("span", {
|
|
1166
|
+
className: classnames(['icon', align].concat(addClass))
|
|
1167
|
+
}, /*#__PURE__*/React__default['default'].createElement("i", {
|
|
1168
|
+
className: icon
|
|
1169
|
+
}));
|
|
1170
|
+
};
|
|
977
1171
|
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
1172
|
+
var EmailInput = function EmailInput(_ref) {
|
|
1173
|
+
var _ref$value = _ref.value,
|
|
1174
|
+
value = _ref$value === void 0 ? '' : _ref$value,
|
|
1175
|
+
dataTest = _ref.dataTest,
|
|
1176
|
+
rest = _objectWithoutPropertiesLoose(_ref, ["value", "dataTest"]);
|
|
981
1177
|
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
1178
|
+
return /*#__PURE__*/React__default['default'].createElement(Input, _extends({
|
|
1179
|
+
type: "email",
|
|
1180
|
+
validator: isEmail,
|
|
1181
|
+
errorMessage: "Email address invalid",
|
|
1182
|
+
value: value,
|
|
1183
|
+
"data-test": dataTest,
|
|
1184
|
+
icon: /*#__PURE__*/React__default['default'].createElement(Icon, {
|
|
1185
|
+
icon: "fas fa-envelope"
|
|
1186
|
+
})
|
|
1187
|
+
}, rest));
|
|
1188
|
+
};
|
|
986
1189
|
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
1190
|
+
var Form = function Form(_ref) {
|
|
1191
|
+
var children = _ref.children,
|
|
1192
|
+
_ref$className = _ref.className,
|
|
1193
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
|
1194
|
+
_ref$onSubmit = _ref.onSubmit,
|
|
1195
|
+
onSubmit = _ref$onSubmit === void 0 ? noop : _ref$onSubmit,
|
|
1196
|
+
_ref$onReset = _ref.onReset,
|
|
1197
|
+
onReset = _ref$onReset === void 0 ? noop : _ref$onReset,
|
|
1198
|
+
_ref$autoComplete = _ref.autoComplete,
|
|
1199
|
+
autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,
|
|
1200
|
+
title = _ref.title,
|
|
1201
|
+
error = _ref.error,
|
|
1202
|
+
dataTest = _ref.dataTest,
|
|
1203
|
+
rest = _objectWithoutPropertiesLoose(_ref, ["children", "className", "onSubmit", "onReset", "autoComplete", "title", "error", "dataTest"]);
|
|
990
1204
|
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
return permissions;
|
|
995
|
-
});
|
|
996
|
-
});
|
|
997
|
-
} catch (e) {
|
|
998
|
-
return Promise.reject(e);
|
|
999
|
-
}
|
|
1205
|
+
var handleSubmit = function handleSubmit(event) {
|
|
1206
|
+
event.preventDefault();
|
|
1207
|
+
onSubmit(event);
|
|
1000
1208
|
};
|
|
1001
1209
|
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1210
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1211
|
+
"data-test": dataTest
|
|
1212
|
+
}, title && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1213
|
+
className: "level"
|
|
1214
|
+
}, /*#__PURE__*/React__default['default'].createElement("h1", {
|
|
1215
|
+
className: "title is-size-4"
|
|
1216
|
+
}, title)), error && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1217
|
+
className: "notification is-danger"
|
|
1218
|
+
}, error), /*#__PURE__*/React__default['default'].createElement("form", _extends({
|
|
1219
|
+
onSubmit: handleSubmit,
|
|
1220
|
+
onReset: onReset,
|
|
1221
|
+
autoComplete: autoComplete,
|
|
1222
|
+
className: classnames(['form', className])
|
|
1223
|
+
}, rest), children));
|
|
1224
|
+
};
|
|
1225
|
+
Form.propTypes = {
|
|
1226
|
+
children: PropTypes__default['default'].node.isRequired,
|
|
1227
|
+
className: PropTypes__default['default'].string,
|
|
1228
|
+
onSubmit: PropTypes__default['default'].func,
|
|
1229
|
+
onReset: PropTypes__default['default'].func,
|
|
1230
|
+
autoComplete: PropTypes__default['default'].string
|
|
1231
|
+
};
|
|
1009
1232
|
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1233
|
+
var PasswordInput = function PasswordInput(_ref) {
|
|
1234
|
+
var _ref$value = _ref.value,
|
|
1235
|
+
value = _ref$value === void 0 ? '' : _ref$value,
|
|
1236
|
+
rest = _objectWithoutPropertiesLoose(_ref, ["value"]);
|
|
1013
1237
|
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
if (types.status === 401 || types.status === 404) {
|
|
1019
|
-
cacheTypes[path] = [];
|
|
1020
|
-
} else {
|
|
1021
|
-
return Promise.resolve(types.json()).then(function (res) {
|
|
1022
|
-
cacheTypes[path] = res;
|
|
1023
|
-
});
|
|
1024
|
-
}
|
|
1025
|
-
}();
|
|
1026
|
-
|
|
1027
|
-
if (_temp7 && _temp7.then) return _temp7.then(function () {});
|
|
1028
|
-
});
|
|
1029
|
-
}
|
|
1030
|
-
}();
|
|
1031
|
-
|
|
1032
|
-
return Promise.resolve(_temp11 && _temp11.then ? _temp11.then(_temp10) : _temp10(_temp11));
|
|
1033
|
-
} catch (e) {
|
|
1034
|
-
return Promise.reject(e);
|
|
1035
|
-
}
|
|
1036
|
-
};
|
|
1037
|
-
|
|
1038
|
-
return GuillotinaClient;
|
|
1039
|
-
}();
|
|
1040
|
-
function getClient(url, auth, isContainer) {
|
|
1041
|
-
if (isContainer === void 0) {
|
|
1042
|
-
isContainer = false;
|
|
1043
|
-
}
|
|
1044
|
-
|
|
1045
|
-
return new GuillotinaClient(new RestClient(url, auth), isContainer);
|
|
1046
|
-
}
|
|
1047
|
-
var getContainerFromPath = function getContainerFromPath(path) {
|
|
1048
|
-
if (path.startsWith('/')) {
|
|
1049
|
-
path = path.substring(1);
|
|
1050
|
-
}
|
|
1051
|
-
|
|
1052
|
-
var parts = path.split('/');
|
|
1053
|
-
return parts[0] + "/" + parts[1] + "/";
|
|
1054
|
-
};
|
|
1055
|
-
var lightFileReader = function lightFileReader(file) {
|
|
1056
|
-
try {
|
|
1057
|
-
return Promise.resolve(new Promise(function (resolve) {
|
|
1058
|
-
var reader = new FileReader();
|
|
1059
|
-
reader.readAsArrayBuffer(file);
|
|
1060
|
-
|
|
1061
|
-
reader.onloadend = function (e) {
|
|
1062
|
-
var fileData = e.target.result;
|
|
1063
|
-
resolve({
|
|
1064
|
-
filename: file.name.normalize('NFD').replace(/[\u0300-\u036f]/g, ''),
|
|
1065
|
-
data: fileData,
|
|
1066
|
-
'content-type': file.type
|
|
1067
|
-
});
|
|
1068
|
-
};
|
|
1069
|
-
}));
|
|
1070
|
-
} catch (e) {
|
|
1071
|
-
return Promise.reject(e);
|
|
1072
|
-
}
|
|
1238
|
+
return /*#__PURE__*/React__default['default'].createElement(Input, _extends({
|
|
1239
|
+
value: value,
|
|
1240
|
+
type: "password"
|
|
1241
|
+
}, rest));
|
|
1073
1242
|
};
|
|
1074
1243
|
|
|
1075
|
-
var
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
} else if (!Array.isArray(data)) {
|
|
1081
|
-
Object.keys(data).map(function (key) {
|
|
1082
|
-
return result = result.concat(extractPermissions(data[key]));
|
|
1083
|
-
});
|
|
1084
|
-
} else if (Array.isArray(data)) {
|
|
1085
|
-
data.map(function (item) {
|
|
1086
|
-
return result = result.concat(extractPermissions(item));
|
|
1087
|
-
});
|
|
1088
|
-
}
|
|
1089
|
-
|
|
1090
|
-
return result;
|
|
1244
|
+
var formComponents = {
|
|
1245
|
+
string: Input,
|
|
1246
|
+
password: PasswordInput,
|
|
1247
|
+
boolean: Checkbox,
|
|
1248
|
+
email: EmailInput
|
|
1091
1249
|
};
|
|
1250
|
+
function FormBuilder(_ref) {
|
|
1251
|
+
var schema = _ref.schema,
|
|
1252
|
+
formData = _ref.formData,
|
|
1253
|
+
onSubmit = _ref.onSubmit,
|
|
1254
|
+
actionName = _ref.actionName,
|
|
1255
|
+
children = _ref.children,
|
|
1256
|
+
_ref$exclude = _ref.exclude,
|
|
1257
|
+
exclude = _ref$exclude === void 0 ? [] : _ref$exclude,
|
|
1258
|
+
_ref$remotes = _ref.remotes,
|
|
1259
|
+
remotes = _ref$remotes === void 0 ? [] : _ref$remotes,
|
|
1260
|
+
_ref$submitButton = _ref.submitButton,
|
|
1261
|
+
submitButton = _ref$submitButton === void 0 ? true : _ref$submitButton,
|
|
1262
|
+
rest = _objectWithoutPropertiesLoose(_ref, ["schema", "formData", "title", "onSubmit", "actionName", "children", "exclude", "remotes", "submitButton"]);
|
|
1092
1263
|
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
var Traversal = /*#__PURE__*/function () {
|
|
1098
|
-
function Traversal(_ref) {
|
|
1099
|
-
var flash = _ref.flash,
|
|
1100
|
-
props = _objectWithoutPropertiesLoose(_ref, ["flash"]);
|
|
1101
|
-
|
|
1102
|
-
Object.assign(this, props);
|
|
1103
|
-
if (typeof flash === 'function') this.flash = flash;
|
|
1104
|
-
}
|
|
1105
|
-
|
|
1106
|
-
var _proto = Traversal.prototype;
|
|
1107
|
-
|
|
1108
|
-
_proto.refresh = function refresh(_temp) {
|
|
1109
|
-
var _ref2 = _temp === void 0 ? {} : _temp,
|
|
1110
|
-
_ref2$transparent = _ref2.transparent,
|
|
1111
|
-
transparent = _ref2$transparent === void 0 ? false : _ref2$transparent;
|
|
1112
|
-
|
|
1113
|
-
this.dispatch({
|
|
1114
|
-
type: 'REFRESH',
|
|
1115
|
-
payload: {
|
|
1116
|
-
transparent: transparent
|
|
1117
|
-
}
|
|
1118
|
-
});
|
|
1119
|
-
};
|
|
1120
|
-
|
|
1121
|
-
_proto.apply = function apply(data) {
|
|
1122
|
-
// apply a optimistic update to context
|
|
1123
|
-
this.dispatch({
|
|
1124
|
-
type: 'APPLY',
|
|
1125
|
-
payload: data
|
|
1126
|
-
});
|
|
1127
|
-
};
|
|
1128
|
-
|
|
1129
|
-
_proto.flash = function flash(message, type) {
|
|
1130
|
-
this.dispatch({
|
|
1131
|
-
type: 'SET_FLASH',
|
|
1132
|
-
payload: {
|
|
1133
|
-
flash: {
|
|
1134
|
-
message: message,
|
|
1135
|
-
type: type
|
|
1136
|
-
}
|
|
1137
|
-
}
|
|
1138
|
-
});
|
|
1139
|
-
window.scrollTo({
|
|
1140
|
-
top: 0,
|
|
1141
|
-
left: 0,
|
|
1142
|
-
behavior: 'smooth'
|
|
1143
|
-
});
|
|
1144
|
-
};
|
|
1145
|
-
|
|
1146
|
-
_proto.clearFlash = function clearFlash() {
|
|
1147
|
-
this.dispatch({
|
|
1148
|
-
type: 'CLEAR_FLASH'
|
|
1149
|
-
});
|
|
1150
|
-
};
|
|
1264
|
+
var ref = React__default['default'].useRef();
|
|
1265
|
+
var properties = schema.properties,
|
|
1266
|
+
required = schema.required;
|
|
1267
|
+
var values = Object.assign({}, formData || {}); // build initial state
|
|
1151
1268
|
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
});
|
|
1160
|
-
};
|
|
1269
|
+
var initialState = {};
|
|
1270
|
+
var fields = Object.keys(properties).filter(function (x) {
|
|
1271
|
+
return !exclude.includes(x);
|
|
1272
|
+
});
|
|
1273
|
+
fields.forEach(function (element) {
|
|
1274
|
+
initialState[element] = values[element] || undefined;
|
|
1275
|
+
}); // Register remotes
|
|
1161
1276
|
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1277
|
+
if (!ref.current) {
|
|
1278
|
+
ref.current = {};
|
|
1279
|
+
Object.keys(remotes).forEach(function (item) {
|
|
1280
|
+
return ref.current[item] = remotes[item];
|
|
1165
1281
|
});
|
|
1166
|
-
}
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
_proto.filterTabs = function filterTabs(tabs, tabsPermissions) {
|
|
1173
|
-
var _this = this;
|
|
1174
|
-
|
|
1175
|
-
var result = {};
|
|
1176
|
-
Object.keys(tabs).forEach(function (item) {
|
|
1177
|
-
var perm = tabsPermissions[item];
|
|
1178
|
-
|
|
1179
|
-
if (perm && _this.hasPerm(perm)) {
|
|
1180
|
-
result[item] = tabs[item];
|
|
1181
|
-
} else if (!perm) {
|
|
1182
|
-
result[item] = tabs[item];
|
|
1282
|
+
} else {
|
|
1283
|
+
// apply remote changes
|
|
1284
|
+
Object.keys(remotes).forEach(function (key) {
|
|
1285
|
+
if (JSON.stringify(ref.current[key]) !== JSON.stringify(remotes[key])) {
|
|
1286
|
+
ref.current[key] = remotes[key];
|
|
1183
1287
|
}
|
|
1184
1288
|
});
|
|
1185
|
-
|
|
1186
|
-
};
|
|
1187
|
-
|
|
1188
|
-
_createClass(Traversal, [{
|
|
1189
|
-
key: "path",
|
|
1190
|
-
get: function get() {
|
|
1191
|
-
return this.state.path;
|
|
1192
|
-
}
|
|
1193
|
-
}, {
|
|
1194
|
-
key: "pathPrefix",
|
|
1195
|
-
get: function get() {
|
|
1196
|
-
return this.state.path.slice(1);
|
|
1197
|
-
}
|
|
1198
|
-
}, {
|
|
1199
|
-
key: "context",
|
|
1200
|
-
get: function get() {
|
|
1201
|
-
return this.state.context;
|
|
1202
|
-
}
|
|
1203
|
-
}, {
|
|
1204
|
-
key: "containerPath",
|
|
1205
|
-
get: function get() {
|
|
1206
|
-
return getContainerFromPath(this.path);
|
|
1207
|
-
}
|
|
1208
|
-
}]);
|
|
1209
|
-
|
|
1210
|
-
return Traversal;
|
|
1211
|
-
}();
|
|
1212
|
-
|
|
1213
|
-
function TraversalProvider(_ref3) {
|
|
1214
|
-
var children = _ref3.children,
|
|
1215
|
-
props = _objectWithoutPropertiesLoose(_ref3, ["children"]);
|
|
1216
|
-
|
|
1217
|
-
return /*#__PURE__*/React__default['default'].createElement(TraversalContext.Provider, {
|
|
1218
|
-
value: new Traversal(props)
|
|
1219
|
-
}, children);
|
|
1220
|
-
}
|
|
1221
|
-
function useTraversal() {
|
|
1222
|
-
return React__default['default'].useContext(TraversalContext);
|
|
1223
|
-
}
|
|
1224
|
-
function ClientProvider(_ref4) {
|
|
1225
|
-
var children = _ref4.children,
|
|
1226
|
-
client = _ref4.client;
|
|
1227
|
-
return /*#__PURE__*/React__default['default'].createElement(ClientContext.Provider, {
|
|
1228
|
-
value: client
|
|
1229
|
-
}, children);
|
|
1230
|
-
}
|
|
1231
|
-
function useGuillotinaClient() {
|
|
1232
|
-
return React__default['default'].useContext(ClientContext);
|
|
1233
|
-
}
|
|
1234
|
-
|
|
1235
|
-
var noop$1 = function noop() {};
|
|
1236
|
-
|
|
1237
|
-
var Button = function Button(_ref) {
|
|
1238
|
-
var _ref2;
|
|
1239
|
-
|
|
1240
|
-
var children = _ref.children,
|
|
1241
|
-
_ref$className = _ref.className,
|
|
1242
|
-
className = _ref$className === void 0 ? 'is-primary' : _ref$className,
|
|
1243
|
-
onClick = _ref.onClick,
|
|
1244
|
-
_ref$type = _ref.type,
|
|
1245
|
-
type = _ref$type === void 0 ? 'submit' : _ref$type,
|
|
1246
|
-
_ref$loading = _ref.loading,
|
|
1247
|
-
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
1248
|
-
_ref$disabled = _ref.disabled,
|
|
1249
|
-
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
1250
|
-
dataTest = _ref.dataTest,
|
|
1251
|
-
rest = _objectWithoutPropertiesLoose(_ref, ["children", "className", "onClick", "type", "loading", "disabled", "dataTest"]);
|
|
1252
|
-
|
|
1253
|
-
var css = (_ref2 = []).concat.apply(_ref2, ['button'].concat(className.split(' ')));
|
|
1254
|
-
|
|
1255
|
-
if (loading) css = css.concat('is-loading');
|
|
1256
|
-
if (disabled) onClick = noop$1;
|
|
1257
|
-
return /*#__PURE__*/React__default['default'].createElement("p", {
|
|
1258
|
-
className: "control"
|
|
1259
|
-
}, /*#__PURE__*/React__default['default'].createElement("button", _extends({
|
|
1260
|
-
type: type,
|
|
1261
|
-
className: classnames(css),
|
|
1262
|
-
onClick: onClick,
|
|
1263
|
-
disabled: disabled
|
|
1264
|
-
}, rest, {
|
|
1265
|
-
"data-test": dataTest
|
|
1266
|
-
}), children));
|
|
1267
|
-
};
|
|
1268
|
-
|
|
1269
|
-
function Modal(props) {
|
|
1270
|
-
var isActive = props.isActive,
|
|
1271
|
-
setActive = props.setActive,
|
|
1272
|
-
children = props.children;
|
|
1273
|
-
|
|
1274
|
-
var _usePortal = usePortal__default['default'](),
|
|
1275
|
-
Portal = _usePortal.Portal;
|
|
1289
|
+
}
|
|
1276
1290
|
|
|
1277
|
-
|
|
1278
|
-
return /*#__PURE__*/React__default['default'].createElement(Portal, null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1279
|
-
className: css
|
|
1280
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1281
|
-
className: "modal-background",
|
|
1282
|
-
onClick: function onClick() {
|
|
1283
|
-
return setActive(false);
|
|
1284
|
-
}
|
|
1285
|
-
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1286
|
-
className: "modal-content"
|
|
1287
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1288
|
-
className: "box"
|
|
1289
|
-
}, children)), /*#__PURE__*/React__default['default'].createElement("button", {
|
|
1290
|
-
className: "modal-close is-large",
|
|
1291
|
-
"aria-label": "close",
|
|
1292
|
-
onClick: function onClick() {
|
|
1293
|
-
return setActive(false);
|
|
1294
|
-
}
|
|
1295
|
-
})));
|
|
1296
|
-
}
|
|
1297
|
-
function Confirm(_ref) {
|
|
1298
|
-
var message = _ref.message,
|
|
1299
|
-
onCancel = _ref.onCancel,
|
|
1300
|
-
onConfirm = _ref.onConfirm,
|
|
1301
|
-
loading = _ref.loading;
|
|
1291
|
+
ref.current = ref.current || {};
|
|
1302
1292
|
|
|
1303
|
-
var
|
|
1304
|
-
return
|
|
1293
|
+
var onUpdate = function onUpdate(field) {
|
|
1294
|
+
return function (ev) {
|
|
1295
|
+
ref.current[field] = ev.target ? ev.target.value : ev.value || ev;
|
|
1296
|
+
};
|
|
1305
1297
|
};
|
|
1306
1298
|
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
}
|
|
1318
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1319
|
-
className: "level-left"
|
|
1320
|
-
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1321
|
-
className: "level-right"
|
|
1322
|
-
}, /*#__PURE__*/React__default['default'].createElement("button", {
|
|
1323
|
-
className: "button is-danger",
|
|
1324
|
-
onClick: function onClick() {
|
|
1325
|
-
return onCancel();
|
|
1326
|
-
}
|
|
1327
|
-
}, "Cancel"), "\xA0\xA0", /*#__PURE__*/React__default['default'].createElement(Button, {
|
|
1328
|
-
loading: loading,
|
|
1329
|
-
className: "is-success",
|
|
1330
|
-
onClick: function onClick() {
|
|
1331
|
-
return onConfirm();
|
|
1332
|
-
},
|
|
1333
|
-
dataTest: "btnConfirmModalTest"
|
|
1334
|
-
}, "Confirm")))));
|
|
1335
|
-
} // @todo Improve it... Replacing the inputText to a tree
|
|
1299
|
+
var GetTag = function GetTag(_ref2) {
|
|
1300
|
+
var field = _ref2.field;
|
|
1301
|
+
var Tag = formComponents[properties[field].widget || properties[field].type];
|
|
1302
|
+
var props = {
|
|
1303
|
+
label: properties[field].title,
|
|
1304
|
+
value: initialState[field],
|
|
1305
|
+
onChange: onUpdate(field),
|
|
1306
|
+
placeholder: properties[field].title || '',
|
|
1307
|
+
id: generateUID(),
|
|
1308
|
+
dataTest: field + "TestInput"
|
|
1309
|
+
};
|
|
1336
1310
|
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
children = _ref2.children,
|
|
1341
|
-
onConfirm = _ref2.onConfirm,
|
|
1342
|
-
onCancel = _ref2.onCancel;
|
|
1343
|
-
return /*#__PURE__*/React__default['default'].createElement(Modal, {
|
|
1344
|
-
isActive: true,
|
|
1345
|
-
setActive: onCancel
|
|
1346
|
-
}, /*#__PURE__*/React__default['default'].createElement("h1", null, title), /*#__PURE__*/React__default['default'].createElement("form", {
|
|
1347
|
-
onSubmit: function onSubmit(e) {
|
|
1348
|
-
e.preventDefault();
|
|
1349
|
-
onConfirm(e.target[0].value, e.target);
|
|
1311
|
+
if (required.includes(field)) {
|
|
1312
|
+
props.required = true;
|
|
1313
|
+
props.placeholder += ' *';
|
|
1350
1314
|
}
|
|
1351
|
-
}, /*#__PURE__*/React__default['default'].createElement("input", {
|
|
1352
|
-
className: "input",
|
|
1353
|
-
placeholder: "/folder (without /db/container on front)",
|
|
1354
|
-
style: {
|
|
1355
|
-
margin: '20px 0'
|
|
1356
|
-
},
|
|
1357
|
-
defaultValue: defaultPath,
|
|
1358
|
-
type: "text"
|
|
1359
|
-
}), children, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1360
|
-
className: "level-right"
|
|
1361
|
-
}, /*#__PURE__*/React__default['default'].createElement("button", {
|
|
1362
|
-
type: "button",
|
|
1363
|
-
className: "button is-danger",
|
|
1364
|
-
onClick: onCancel
|
|
1365
|
-
}, "Cancel"), "\xA0\xA0", /*#__PURE__*/React__default['default'].createElement("button", {
|
|
1366
|
-
type: "submit",
|
|
1367
|
-
className: "button is-success"
|
|
1368
|
-
}, "Confirm"))));
|
|
1369
|
-
}
|
|
1370
1315
|
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
set = _useState[1];
|
|
1316
|
+
Tag.displayName = field + "Field";
|
|
1317
|
+
return /*#__PURE__*/React__default['default'].createElement(Tag, props);
|
|
1318
|
+
};
|
|
1375
1319
|
|
|
1376
|
-
var
|
|
1377
|
-
|
|
1378
|
-
|
|
1320
|
+
var children_ = React__default['default'].Children.map(children, function (child) {
|
|
1321
|
+
return React__default['default'].cloneElement(child, {
|
|
1322
|
+
onChange: onUpdate
|
|
1379
1323
|
});
|
|
1380
|
-
}
|
|
1381
|
-
|
|
1324
|
+
});
|
|
1325
|
+
|
|
1326
|
+
var changes = function changes() {
|
|
1327
|
+
onSubmit(ref.current, values);
|
|
1328
|
+
};
|
|
1329
|
+
|
|
1330
|
+
return /*#__PURE__*/React__default['default'].createElement(Form, _extends({
|
|
1331
|
+
onSubmit: changes
|
|
1332
|
+
}, rest), fields.map(function (field) {
|
|
1333
|
+
return /*#__PURE__*/React__default['default'].createElement(GetTag, {
|
|
1334
|
+
field: field,
|
|
1335
|
+
key: field
|
|
1336
|
+
});
|
|
1337
|
+
}), children_, submitButton && /*#__PURE__*/React__default['default'].createElement(Button, null, actionName));
|
|
1382
1338
|
}
|
|
1383
1339
|
|
|
1384
|
-
|
|
1385
|
-
try {
|
|
1386
|
-
var result = body();
|
|
1387
|
-
} catch (e) {
|
|
1388
|
-
return recover(e);
|
|
1389
|
-
}
|
|
1340
|
+
/** @type any */
|
|
1390
1341
|
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1342
|
+
var Select = React__default['default'].forwardRef(function (_ref, ref) {
|
|
1343
|
+
var options = _ref.options,
|
|
1344
|
+
error = _ref.error,
|
|
1345
|
+
errorZoneClassName = _ref.errorZoneClassName,
|
|
1346
|
+
_ref$size = _ref.size,
|
|
1347
|
+
size = _ref$size === void 0 ? 1 : _ref$size,
|
|
1348
|
+
placeholder = _ref.placeholder,
|
|
1349
|
+
id = _ref.id,
|
|
1350
|
+
_ref$className = _ref.className,
|
|
1351
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
|
1352
|
+
_ref$classWrap = _ref.classWrap,
|
|
1353
|
+
classWrap = _ref$classWrap === void 0 ? '' : _ref$classWrap,
|
|
1354
|
+
_ref$multiple = _ref.multiple,
|
|
1355
|
+
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
|
1356
|
+
_ref$loading = _ref.loading,
|
|
1357
|
+
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
1358
|
+
onChange = _ref.onChange,
|
|
1359
|
+
_ref$appendDefault = _ref.appendDefault,
|
|
1360
|
+
appendDefault = _ref$appendDefault === void 0 ? false : _ref$appendDefault,
|
|
1361
|
+
_ref$style = _ref.style,
|
|
1362
|
+
style = _ref$style === void 0 ? {} : _ref$style,
|
|
1363
|
+
dataTest = _ref.dataTest,
|
|
1364
|
+
rest = _objectWithoutPropertiesLoose(_ref, ["options", "error", "errorZoneClassName", "size", "placeholder", "id", "className", "classWrap", "multiple", "loading", "isSubmitted", "onChange", "appendDefault", "style", "dataTest"]);
|
|
1394
1365
|
|
|
1395
|
-
|
|
1396
|
-
|
|
1366
|
+
var _useState = React.useState(generateUID('select')),
|
|
1367
|
+
uid = _useState[0];
|
|
1397
1368
|
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1369
|
+
var onUpdate = function onUpdate(ev) {
|
|
1370
|
+
if (ev.target.value === '') {
|
|
1371
|
+
onChange({
|
|
1372
|
+
target: {
|
|
1373
|
+
value: undefined
|
|
1374
|
+
}
|
|
1375
|
+
});
|
|
1376
|
+
} else {
|
|
1377
|
+
onChange(ev);
|
|
1378
|
+
}
|
|
1379
|
+
};
|
|
1405
1380
|
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1381
|
+
if (appendDefault) {
|
|
1382
|
+
options = [{
|
|
1383
|
+
text: 'Choose..',
|
|
1384
|
+
value: ''
|
|
1385
|
+
}].concat(options);
|
|
1411
1386
|
}
|
|
1412
1387
|
|
|
1413
|
-
|
|
1388
|
+
var statusClasses = error ? 'is-danger' : '';
|
|
1389
|
+
var cssWrap = ['select', statusClasses, multiple ? 'is-multiple' : '', classWrap];
|
|
1390
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1391
|
+
className: "field"
|
|
1392
|
+
}, id && placeholder ? /*#__PURE__*/React__default['default'].createElement("label", {
|
|
1393
|
+
className: "label",
|
|
1394
|
+
htmlFor: id
|
|
1395
|
+
}, placeholder) : null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1396
|
+
className: classnames(cssWrap)
|
|
1397
|
+
}, /*#__PURE__*/React__default['default'].createElement("select", _extends({
|
|
1398
|
+
className: classnames(['', className]),
|
|
1399
|
+
size: size,
|
|
1400
|
+
multiple: multiple,
|
|
1401
|
+
disabled: loading || rest.disabled,
|
|
1402
|
+
onChange: onUpdate
|
|
1403
|
+
}, rest, {
|
|
1404
|
+
ref: ref,
|
|
1405
|
+
style: style,
|
|
1406
|
+
"data-test": dataTest
|
|
1407
|
+
}), options.map(function (_ref2, index) {
|
|
1408
|
+
var text = _ref2.text,
|
|
1409
|
+
rest = _objectWithoutPropertiesLoose(_ref2, ["text"]);
|
|
1410
|
+
|
|
1411
|
+
return /*#__PURE__*/React__default['default'].createElement("option", _extends({
|
|
1412
|
+
key: index.toString()
|
|
1413
|
+
}, rest), text);
|
|
1414
|
+
}))), error && /*#__PURE__*/React__default['default'].createElement(ErrorZone, {
|
|
1415
|
+
className: errorZoneClassName,
|
|
1416
|
+
id: uid
|
|
1417
|
+
}, error ? error : ''));
|
|
1418
|
+
});
|
|
1419
|
+
Select.propTypes = {
|
|
1420
|
+
error: PropTypes__default['default'].string,
|
|
1421
|
+
disabled: PropTypes__default['default'].bool,
|
|
1422
|
+
loading: PropTypes__default['default'].bool,
|
|
1423
|
+
isSubmitted: PropTypes__default['default'].bool,
|
|
1424
|
+
size: PropTypes__default['default'].number,
|
|
1425
|
+
onChange: PropTypes__default['default'].func,
|
|
1426
|
+
options: PropTypes__default['default'].arrayOf(PropTypes__default['default'].object),
|
|
1427
|
+
multiple: PropTypes__default['default'].bool,
|
|
1428
|
+
className: PropTypes__default['default'].string
|
|
1414
1429
|
};
|
|
1415
1430
|
|
|
1416
|
-
var
|
|
1417
|
-
|
|
1418
|
-
|
|
1431
|
+
var RestClient = /*#__PURE__*/function () {
|
|
1432
|
+
function RestClient(url, container, auth) {
|
|
1433
|
+
this.auth = auth;
|
|
1434
|
+
this.url = url;
|
|
1435
|
+
this.container = container;
|
|
1419
1436
|
}
|
|
1420
1437
|
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1438
|
+
var _proto = RestClient.prototype;
|
|
1439
|
+
|
|
1440
|
+
_proto.request = function request(path, data, headers) {
|
|
1441
|
+
try {
|
|
1442
|
+
var _this2 = this;
|
|
1443
|
+
|
|
1444
|
+
if (path.indexOf(_this2.url) !== -1) {
|
|
1445
|
+
path = path.replace(_this2.url, '');
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1448
|
+
if (_this2.container !== '/' && path.indexOf(_this2.container) === -1) {
|
|
1449
|
+
path = "" + _this2.container + path;
|
|
1450
|
+
}
|
|
1451
|
+
|
|
1452
|
+
if (!path.startsWith('/')) {
|
|
1453
|
+
path = "/" + path;
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1456
|
+
data = data || {};
|
|
1457
|
+
data.headers = headers || _this2.getHeaders();
|
|
1458
|
+
return Promise.resolve(fetch("" + _this2.url + path, data));
|
|
1459
|
+
} catch (e) {
|
|
1460
|
+
return Promise.reject(e);
|
|
1461
|
+
}
|
|
1462
|
+
};
|
|
1463
|
+
|
|
1464
|
+
_proto.getHeaders = function getHeaders() {
|
|
1465
|
+
var authToken = this.auth.getToken();
|
|
1466
|
+
if (!authToken) return {};
|
|
1467
|
+
return {
|
|
1468
|
+
Accept: 'application/json',
|
|
1469
|
+
'Content-Type': 'application/json',
|
|
1470
|
+
Authorization: 'Bearer ' + authToken
|
|
1429
1471
|
};
|
|
1472
|
+
};
|
|
1430
1473
|
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
loading: false,
|
|
1435
|
-
errorMessage: getErrorMessage(_res$json2, res.status),
|
|
1436
|
-
response: res
|
|
1437
|
-
};
|
|
1438
|
-
});
|
|
1439
|
-
} catch (e) {
|
|
1440
|
-
return Promise.reject(e);
|
|
1441
|
-
}
|
|
1442
|
-
};
|
|
1474
|
+
_proto.post = function post(path, data) {
|
|
1475
|
+
try {
|
|
1476
|
+
var _this4 = this;
|
|
1443
1477
|
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1478
|
+
return Promise.resolve(_this4.request(path, {
|
|
1479
|
+
method: 'post',
|
|
1480
|
+
body: JSON.stringify(data)
|
|
1481
|
+
}));
|
|
1482
|
+
} catch (e) {
|
|
1483
|
+
return Promise.reject(e);
|
|
1448
1484
|
}
|
|
1485
|
+
};
|
|
1449
1486
|
|
|
1487
|
+
_proto.get = function get(path) {
|
|
1450
1488
|
try {
|
|
1451
|
-
var
|
|
1452
|
-
setState(newState);
|
|
1453
|
-
return newState;
|
|
1454
|
-
};
|
|
1489
|
+
var _this6 = this;
|
|
1455
1490
|
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1491
|
+
return Promise.resolve(_this6.request(path, {}));
|
|
1492
|
+
} catch (e) {
|
|
1493
|
+
return Promise.reject(e);
|
|
1494
|
+
}
|
|
1495
|
+
};
|
|
1460
1496
|
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
return Promise.resolve(processResponse(res, body)).then(function (_processResponse) {
|
|
1465
|
-
newState = _processResponse;
|
|
1466
|
-
});
|
|
1467
|
-
});
|
|
1468
|
-
}, function (e) {
|
|
1469
|
-
console.error('Error', e);
|
|
1470
|
-
newState = {
|
|
1471
|
-
isError: true,
|
|
1472
|
-
errorMessage: 'unhandled exception'
|
|
1473
|
-
};
|
|
1474
|
-
});
|
|
1497
|
+
_proto.put = function put(path, data) {
|
|
1498
|
+
try {
|
|
1499
|
+
var _this8 = this;
|
|
1475
1500
|
|
|
1476
|
-
return Promise.resolve(
|
|
1501
|
+
return Promise.resolve(_this8.request(path, {
|
|
1502
|
+
method: 'put',
|
|
1503
|
+
body: JSON.stringify(data)
|
|
1504
|
+
}));
|
|
1477
1505
|
} catch (e) {
|
|
1478
1506
|
return Promise.reject(e);
|
|
1479
1507
|
}
|
|
1480
1508
|
};
|
|
1481
|
-
};
|
|
1482
1509
|
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1510
|
+
_proto.patch = function patch(path, data) {
|
|
1511
|
+
try {
|
|
1512
|
+
var _this10 = this;
|
|
1513
|
+
|
|
1514
|
+
return Promise.resolve(_this10.request(path, {
|
|
1515
|
+
method: 'PATCH',
|
|
1516
|
+
body: JSON.stringify(data)
|
|
1517
|
+
}));
|
|
1518
|
+
} catch (e) {
|
|
1519
|
+
return Promise.reject(e);
|
|
1487
1520
|
}
|
|
1521
|
+
};
|
|
1488
1522
|
|
|
1523
|
+
_proto.upload = function upload(path, data) {
|
|
1489
1524
|
try {
|
|
1490
|
-
var
|
|
1491
|
-
setState(newState);
|
|
1492
|
-
return newState;
|
|
1493
|
-
};
|
|
1494
|
-
|
|
1495
|
-
setState({
|
|
1496
|
-
loading: true
|
|
1497
|
-
});
|
|
1498
|
-
var newState = {};
|
|
1525
|
+
var _this12 = this;
|
|
1499
1526
|
|
|
1500
|
-
var
|
|
1501
|
-
var path = endpoint ? "" + Ctx.path + endpoint : Ctx.path;
|
|
1502
|
-
return Promise.resolve(Ctx.client.delete(path, data)).then(function (res) {
|
|
1503
|
-
return Promise.resolve(processResponse(res, body)).then(function (_processResponse2) {
|
|
1504
|
-
newState = _processResponse2;
|
|
1505
|
-
});
|
|
1506
|
-
});
|
|
1507
|
-
}, function (e) {
|
|
1508
|
-
console.error('Error', e);
|
|
1509
|
-
newState = {
|
|
1510
|
-
isError: true,
|
|
1511
|
-
errorMessage: 'unhandled exception'
|
|
1512
|
-
};
|
|
1513
|
-
});
|
|
1527
|
+
var headers = _this12.getHeaders();
|
|
1514
1528
|
|
|
1515
|
-
|
|
1529
|
+
delete headers['Content-Type'];
|
|
1530
|
+
headers['Content-Type'] = data['content-type'];
|
|
1531
|
+
headers['X-UPLOAD-FILENAME'] = data.filename;
|
|
1532
|
+
headers['Content-Encoding'] = 'base64';
|
|
1533
|
+
return Promise.resolve(_this12.request(path, {
|
|
1534
|
+
method: 'PATCH',
|
|
1535
|
+
body: data.data
|
|
1536
|
+
}, headers));
|
|
1516
1537
|
} catch (e) {
|
|
1517
1538
|
return Promise.reject(e);
|
|
1518
1539
|
}
|
|
1519
1540
|
};
|
|
1520
|
-
};
|
|
1521
1541
|
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
body = true;
|
|
1542
|
+
_proto.delete = function _delete(path, data) {
|
|
1543
|
+
if (data === void 0) {
|
|
1544
|
+
data = undefined;
|
|
1526
1545
|
}
|
|
1527
1546
|
|
|
1528
1547
|
try {
|
|
1529
|
-
var
|
|
1530
|
-
setState(newState);
|
|
1531
|
-
return newState;
|
|
1532
|
-
};
|
|
1533
|
-
|
|
1534
|
-
setState({
|
|
1535
|
-
loading: true
|
|
1536
|
-
});
|
|
1537
|
-
var newState = {};
|
|
1538
|
-
|
|
1539
|
-
var _temp14 = _catch(function () {
|
|
1540
|
-
var path = endpoint ? "" + Ctx.path + endpoint : Ctx.path;
|
|
1541
|
-
return Promise.resolve(Ctx.client.post(path, data)).then(function (res) {
|
|
1542
|
-
return Promise.resolve(processResponse(res, body)).then(function (_processResponse3) {
|
|
1543
|
-
newState = _processResponse3;
|
|
1544
|
-
});
|
|
1545
|
-
});
|
|
1546
|
-
}, function (e) {
|
|
1547
|
-
console.error('Error', e);
|
|
1548
|
-
newState = {
|
|
1549
|
-
isError: true,
|
|
1550
|
-
errorMessage: 'unhandled exception'
|
|
1551
|
-
};
|
|
1552
|
-
});
|
|
1548
|
+
var _this14 = this;
|
|
1553
1549
|
|
|
1554
|
-
return Promise.resolve(
|
|
1550
|
+
return Promise.resolve(_this14.request(path, {
|
|
1551
|
+
method: 'delete',
|
|
1552
|
+
body: JSON.stringify(data)
|
|
1553
|
+
}));
|
|
1555
1554
|
} catch (e) {
|
|
1556
1555
|
return Promise.reject(e);
|
|
1557
1556
|
}
|
|
1558
1557
|
};
|
|
1558
|
+
|
|
1559
|
+
return RestClient;
|
|
1560
|
+
}();
|
|
1561
|
+
|
|
1562
|
+
var Loading = function Loading(_ref) {
|
|
1563
|
+
var rest = _extends({}, _ref);
|
|
1564
|
+
|
|
1565
|
+
return /*#__PURE__*/React__default['default'].createElement("div", _extends({
|
|
1566
|
+
className: "progress-line"
|
|
1567
|
+
}, rest));
|
|
1559
1568
|
};
|
|
1560
1569
|
|
|
1561
|
-
var
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1570
|
+
var Tag = function Tag(_ref) {
|
|
1571
|
+
var name = _ref.name,
|
|
1572
|
+
onRemove = _ref.onRemove,
|
|
1573
|
+
_ref$size = _ref.size,
|
|
1574
|
+
size = _ref$size === void 0 ? 'is-medium' : _ref$size,
|
|
1575
|
+
_ref$color = _ref.color,
|
|
1576
|
+
color = _ref$color === void 0 ? 'is-warning' : _ref$color;
|
|
1577
|
+
return /*#__PURE__*/React__default['default'].createElement("span", {
|
|
1578
|
+
className: classnames(['tag', color, size])
|
|
1579
|
+
}, name, onRemove !== undefined && /*#__PURE__*/React__default['default'].createElement("button", {
|
|
1580
|
+
className: "delete is-small",
|
|
1581
|
+
onClick: function onClick() {
|
|
1582
|
+
return onRemove();
|
|
1583
|
+
}
|
|
1584
|
+
}));
|
|
1585
|
+
};
|
|
1586
|
+
|
|
1587
|
+
function Delete(_ref) {
|
|
1588
|
+
var onClick = _ref.onClick,
|
|
1589
|
+
className = _ref.className,
|
|
1590
|
+
children = _ref.children;
|
|
1591
|
+
return /*#__PURE__*/React__default['default'].createElement("button", {
|
|
1592
|
+
type: "button",
|
|
1593
|
+
onClick: onClick,
|
|
1594
|
+
className: "delete " + className,
|
|
1595
|
+
"data-test": "btnDeleteTest"
|
|
1596
|
+
}, children);
|
|
1597
|
+
}
|
|
1598
|
+
|
|
1599
|
+
function Table(_ref) {
|
|
1600
|
+
var headers = _ref.headers,
|
|
1601
|
+
children = _ref.children,
|
|
1602
|
+
className = _ref.className;
|
|
1603
|
+
className = className ? className.split(' ') : ' is-full is-fullwidth is-narrow'.split(' ');
|
|
1604
|
+
return /*#__PURE__*/React__default['default'].createElement("table", {
|
|
1605
|
+
className: classnames(['table'].concat(className))
|
|
1606
|
+
}, /*#__PURE__*/React__default['default'].createElement("thead", null, /*#__PURE__*/React__default['default'].createElement("tr", null, headers && headers.map(function (item, idx) {
|
|
1607
|
+
return /*#__PURE__*/React__default['default'].createElement("th", {
|
|
1608
|
+
key: item + idx
|
|
1609
|
+
}, item);
|
|
1610
|
+
}))), /*#__PURE__*/React__default['default'].createElement("tbody", null, children));
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
function Notification(_ref) {
|
|
1614
|
+
var _ref$isColor = _ref.isColor,
|
|
1615
|
+
isColor = _ref$isColor === void 0 ? '' : _ref$isColor,
|
|
1616
|
+
children = _ref.children;
|
|
1617
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1618
|
+
className: 'notification is-' + isColor,
|
|
1619
|
+
"data-test": "notificationTest"
|
|
1620
|
+
}, children);
|
|
1621
|
+
}
|
|
1622
|
+
|
|
1623
|
+
// https://github.com/molefrog/wouter
|
|
1624
|
+
|
|
1625
|
+
var setURLParams = function setURLParams(p) {
|
|
1626
|
+
return window.history['pushState'](0, 0, (window.history.pathname || '') + '?' + p.toString().replace(/%2F/g, '/'));
|
|
1627
|
+
};
|
|
1628
|
+
|
|
1629
|
+
var clean = function clean(to) {
|
|
1630
|
+
var current = new URLSearchParams();
|
|
1631
|
+
Object.keys(to).forEach(function (_key) {
|
|
1632
|
+
return current.set(_key, to[_key]);
|
|
1633
|
+
});
|
|
1634
|
+
setURLParams(current);
|
|
1635
|
+
};
|
|
1636
|
+
|
|
1637
|
+
var useLocation = function useLocation() {
|
|
1638
|
+
var _useState = React.useState(currentSearchParams()),
|
|
1639
|
+
path = _useState[0],
|
|
1640
|
+
update = _useState[1];
|
|
1641
|
+
|
|
1642
|
+
var prevPath = React.useRef(path);
|
|
1643
|
+
React.useEffect(function () {
|
|
1644
|
+
patchHistoryEvents(); // this function checks if the location has been changed since the
|
|
1645
|
+
// last render and updates the state only when needed.
|
|
1646
|
+
// unfortunately, we can't rely on `path` value here, since it can be stale,
|
|
1647
|
+
// that's why we store the last pathname in a ref.
|
|
1648
|
+
|
|
1649
|
+
var checkForUpdates = function checkForUpdates() {
|
|
1650
|
+
var pathname = currentSearchParams();
|
|
1651
|
+
prevPath.current !== pathname && update(prevPath.current = pathname);
|
|
1652
|
+
};
|
|
1653
|
+
|
|
1654
|
+
var events = ['popstate', 'pushState', 'replaceState'];
|
|
1655
|
+
events.map(function (e) {
|
|
1656
|
+
return window.addEventListener(e, checkForUpdates);
|
|
1657
|
+
}); // it's possible that an update has occurred between render and the effect handler,
|
|
1658
|
+
// so we run additional check on mount to catch these updates. Based on:
|
|
1659
|
+
// https://gist.github.com/bvaughn/e25397f70e8c65b0ae0d7c90b731b189
|
|
1660
|
+
|
|
1661
|
+
checkForUpdates();
|
|
1662
|
+
return function () {
|
|
1663
|
+
return events.map(function (e) {
|
|
1664
|
+
return window.removeEventListener(e, checkForUpdates);
|
|
1577
1665
|
});
|
|
1578
|
-
}
|
|
1579
|
-
|
|
1666
|
+
};
|
|
1667
|
+
}, []); // the 2nd argument of the `useLocation` return value is a function
|
|
1668
|
+
// that allows to perform a navigation.
|
|
1669
|
+
//
|
|
1670
|
+
// the function reference should stay the same between re-renders, so that
|
|
1671
|
+
// it can be passed down as an element prop without any performance concerns.
|
|
1672
|
+
|
|
1673
|
+
var navigate = React.useCallback(function (to, replace) {
|
|
1674
|
+
if (replace) {
|
|
1675
|
+
clean(to);
|
|
1676
|
+
return;
|
|
1580
1677
|
}
|
|
1581
|
-
|
|
1678
|
+
|
|
1679
|
+
var current = new URLSearchParams(path.toString());
|
|
1680
|
+
Object.keys(to).forEach(function (_key) {
|
|
1681
|
+
return current.set(_key, to[_key]);
|
|
1682
|
+
});
|
|
1683
|
+
setURLParams(current);
|
|
1684
|
+
}, [path]);
|
|
1685
|
+
var remove = React.useCallback(function (param) {
|
|
1686
|
+
var current = new URLSearchParams(path.toString());
|
|
1687
|
+
current.delete(param);
|
|
1688
|
+
setURLParams(current);
|
|
1689
|
+
}, [path]);
|
|
1690
|
+
return [path, navigate, remove];
|
|
1691
|
+
}; // While History API does have `popstate` event, the only
|
|
1692
|
+
// proper way to listen to changes via `push/replaceState`
|
|
1693
|
+
// is to monkey-patch these methods.
|
|
1694
|
+
//
|
|
1695
|
+
// See https://stackoverflow.com/a/4585031
|
|
1696
|
+
|
|
1697
|
+
var patched = 0;
|
|
1698
|
+
|
|
1699
|
+
var patchHistoryEvents = function patchHistoryEvents() {
|
|
1700
|
+
if (patched) return;
|
|
1701
|
+
['pushState', 'replaceState'].map(function (type) {
|
|
1702
|
+
var original = window.history[type];
|
|
1703
|
+
|
|
1704
|
+
window.history[type] = function () {
|
|
1705
|
+
var result = original.apply(this, arguments);
|
|
1706
|
+
var event = new Event(type);
|
|
1707
|
+
event.arguments = arguments;
|
|
1708
|
+
dispatchEvent(event);
|
|
1709
|
+
return result;
|
|
1710
|
+
};
|
|
1711
|
+
});
|
|
1712
|
+
return patched = 1;
|
|
1582
1713
|
};
|
|
1583
1714
|
|
|
1584
|
-
function
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
state = _useSetState[0],
|
|
1589
|
-
setState = _useSetState[1];
|
|
1715
|
+
var currentSearchParams = function currentSearchParams(path) {
|
|
1716
|
+
if (path === void 0) {
|
|
1717
|
+
path = window.location.search;
|
|
1718
|
+
}
|
|
1590
1719
|
|
|
1591
|
-
return
|
|
1592
|
-
|
|
1593
|
-
patch: patch(setState, Ctx),
|
|
1594
|
-
del: del(setState, Ctx),
|
|
1595
|
-
post: post(setState, Ctx),
|
|
1596
|
-
get: get(setState, Ctx)
|
|
1597
|
-
});
|
|
1598
|
-
}
|
|
1720
|
+
return new URLSearchParams(path);
|
|
1721
|
+
};
|
|
1599
1722
|
|
|
1600
|
-
function
|
|
1601
|
-
var
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
}, data.formData ? data.formData : data);
|
|
1606
|
-
return Promise.resolve(post(form)).then(function (_ref) {
|
|
1607
|
-
var isError = _ref.isError,
|
|
1608
|
-
errorMessage = _ref.errorMessage;
|
|
1723
|
+
function Link(_ref) {
|
|
1724
|
+
var aRef = _ref.aRef,
|
|
1725
|
+
model = _ref.model,
|
|
1726
|
+
children = _ref.children,
|
|
1727
|
+
props = _objectWithoutPropertiesLoose(_ref, ["aRef", "model", "children"]);
|
|
1609
1728
|
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
Ctx.flash("An error has ocurred: " + errorMessage, 'danger');
|
|
1614
|
-
}
|
|
1729
|
+
var _useLocation = useLocation(),
|
|
1730
|
+
path = _useLocation[0],
|
|
1731
|
+
navigate = _useLocation[1];
|
|
1615
1732
|
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
} catch (e) {
|
|
1620
|
-
return Promise.reject(e);
|
|
1621
|
-
}
|
|
1733
|
+
var aStyle = {
|
|
1734
|
+
textDecoration: 'none',
|
|
1735
|
+
color: 'currentColor'
|
|
1622
1736
|
};
|
|
1623
1737
|
|
|
1624
|
-
|
|
1738
|
+
function onClick(e) {
|
|
1739
|
+
e.stopPropagation();
|
|
1740
|
+
if (actAsLink(e)) return;
|
|
1741
|
+
e.preventDefault();
|
|
1742
|
+
navigate({
|
|
1743
|
+
path: model.path
|
|
1744
|
+
}, true);
|
|
1745
|
+
if (props.onClick) props.onClick(e);
|
|
1746
|
+
}
|
|
1625
1747
|
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1748
|
+
return /*#__PURE__*/React__default['default'].createElement("a", _extends({}, props, {
|
|
1749
|
+
ref: aRef,
|
|
1750
|
+
href: "?" + path + model.id + "/",
|
|
1751
|
+
style: aStyle,
|
|
1752
|
+
onClick: onClick
|
|
1753
|
+
}), children);
|
|
1754
|
+
}
|
|
1629
1755
|
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1756
|
+
function actAsLink(e) {
|
|
1757
|
+
return e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button !== 0;
|
|
1758
|
+
}
|
|
1633
1759
|
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1760
|
+
function TdLink(_ref) {
|
|
1761
|
+
var model = _ref.model,
|
|
1762
|
+
children = _ref.children,
|
|
1763
|
+
props = _objectWithoutPropertiesLoose(_ref, ["model", "children"]);
|
|
1637
1764
|
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
dataTest: "formAdd" + type + "Test"
|
|
1651
|
-
}));
|
|
1765
|
+
var link = React.useRef();
|
|
1766
|
+
|
|
1767
|
+
function onClick() {
|
|
1768
|
+
link.current.click();
|
|
1769
|
+
}
|
|
1770
|
+
|
|
1771
|
+
return /*#__PURE__*/React__default['default'].createElement("td", _extends({}, props, {
|
|
1772
|
+
onClick: onClick
|
|
1773
|
+
}), /*#__PURE__*/React__default['default'].createElement(Link, {
|
|
1774
|
+
model: model,
|
|
1775
|
+
aRef: link
|
|
1776
|
+
}, children));
|
|
1652
1777
|
}
|
|
1653
1778
|
|
|
1654
|
-
var
|
|
1655
|
-
var
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1779
|
+
var SEP = '=';
|
|
1780
|
+
var DEFAULT_FIELD = 'title__in';
|
|
1781
|
+
var CLEANER = '||';
|
|
1782
|
+
function parser(qs, defaultField) {
|
|
1783
|
+
if (defaultField === void 0) {
|
|
1784
|
+
defaultField = DEFAULT_FIELD;
|
|
1785
|
+
}
|
|
1661
1786
|
|
|
1662
|
-
|
|
1663
|
-
|
|
1787
|
+
var lastKey = undefined;
|
|
1788
|
+
qs.trim();
|
|
1664
1789
|
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1790
|
+
if (qs.includes('"')) {
|
|
1791
|
+
qs = qs.replace(/"(\w+) (\w+)"/, "$1" + CLEANER + "$2");
|
|
1792
|
+
}
|
|
1793
|
+
|
|
1794
|
+
qs = qs.split(' ');
|
|
1795
|
+
return qs.map(function (part) {
|
|
1796
|
+
if (part.includes(CLEANER)) {
|
|
1797
|
+
part = part.replace('||', ' ');
|
|
1798
|
+
}
|
|
1799
|
+
|
|
1800
|
+
if (!part.includes(SEP)) {
|
|
1801
|
+
return !lastKey ? [defaultField, part] : [lastKey, part];
|
|
1674
1802
|
}
|
|
1803
|
+
|
|
1804
|
+
var _part$split = part.split(SEP),
|
|
1805
|
+
key = _part$split[0],
|
|
1806
|
+
val = _part$split[1];
|
|
1807
|
+
|
|
1808
|
+
lastKey = key;
|
|
1809
|
+
return [key, val];
|
|
1675
1810
|
});
|
|
1676
|
-
|
|
1677
|
-
|
|
1811
|
+
}
|
|
1812
|
+
function buildQs(parsedQuery) {
|
|
1813
|
+
return parsedQuery.map(function (_ref) {
|
|
1814
|
+
var key = _ref[0],
|
|
1815
|
+
val = _ref[1];
|
|
1816
|
+
return encodeURIComponent(key) + "=" + encodeURIComponent(val);
|
|
1817
|
+
}).join('&');
|
|
1818
|
+
}
|
|
1678
1819
|
|
|
1679
|
-
|
|
1680
|
-
|
|
1820
|
+
var cacheTypes = {};
|
|
1821
|
+
var cacheSchemas = {};
|
|
1822
|
+
var GuillotinaClient = /*#__PURE__*/function () {
|
|
1823
|
+
function GuillotinaClient(rest, pathContainsContainer) {
|
|
1824
|
+
var _this = this;
|
|
1681
1825
|
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
// ref.current = addConfig(cfg, ref.current);
|
|
1688
|
-
// calculated = ref.current
|
|
1689
|
-
// console.log("Current config", cfg)
|
|
1690
|
-
// }
|
|
1826
|
+
this.getContainerFromPath = function (path) {
|
|
1827
|
+
if (_this.pathContainsContainer) {
|
|
1828
|
+
if (path.startsWith('/')) {
|
|
1829
|
+
path = path.substring(1);
|
|
1830
|
+
}
|
|
1691
1831
|
|
|
1832
|
+
var parts = path.split('/');
|
|
1833
|
+
return parts[0] + "/" + parts[1] + "/";
|
|
1834
|
+
}
|
|
1692
1835
|
|
|
1693
|
-
|
|
1694
|
-
|
|
1836
|
+
return '';
|
|
1837
|
+
};
|
|
1695
1838
|
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1839
|
+
this.clearContainerFromPath = function (path) {
|
|
1840
|
+
if (_this.pathContainsContainer) {
|
|
1841
|
+
return "/" + _this.cleanPath(path);
|
|
1842
|
+
}
|
|
1843
|
+
|
|
1844
|
+
return path;
|
|
1845
|
+
};
|
|
1846
|
+
|
|
1847
|
+
this.rest = rest;
|
|
1848
|
+
this.pathContainsContainer = pathContainsContainer;
|
|
1699
1849
|
}
|
|
1700
1850
|
|
|
1701
|
-
|
|
1702
|
-
};
|
|
1851
|
+
var _proto = GuillotinaClient.prototype;
|
|
1703
1852
|
|
|
1704
|
-
|
|
1705
|
-
var removeItems = function removeItems() {
|
|
1853
|
+
_proto.getContext = function getContext(path) {
|
|
1706
1854
|
try {
|
|
1707
|
-
var
|
|
1708
|
-
setLoading(true);
|
|
1709
|
-
var actions = items.map(function (item) {
|
|
1710
|
-
try {
|
|
1711
|
-
console.log(item);
|
|
1712
|
-
return Promise.resolve(Ctx.client.delete(getId(item))).then(function (res) {
|
|
1713
|
-
var _temp = function () {
|
|
1714
|
-
if (!res.ok) {
|
|
1715
|
-
return Promise.resolve(res.json()).then(function (err) {
|
|
1716
|
-
errors.push(err);
|
|
1717
|
-
});
|
|
1718
|
-
}
|
|
1719
|
-
}();
|
|
1855
|
+
var _this3 = this;
|
|
1720
1856
|
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
return Promise.reject(e);
|
|
1725
|
-
}
|
|
1726
|
-
}); // this sleep is here, to let elasticsearch, wait for
|
|
1727
|
-
// index our operations... (will work 99% of use cases)
|
|
1857
|
+
switch (path) {
|
|
1858
|
+
case '/':
|
|
1859
|
+
return Promise.resolve(_this3.rest.get(''));
|
|
1728
1860
|
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
Ctx.refresh();
|
|
1734
|
-
} else {
|
|
1735
|
-
var errorstr = errors.map(function (err) {
|
|
1736
|
-
return JSON.stringify(err);
|
|
1737
|
-
}).join('\n');
|
|
1738
|
-
Ctx.flash("Something went wrong!! " + errorstr, 'danger');
|
|
1739
|
-
}
|
|
1861
|
+
default:
|
|
1862
|
+
if (path.startsWith('/')) {
|
|
1863
|
+
path = path.substring(1);
|
|
1864
|
+
}
|
|
1740
1865
|
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1866
|
+
return Promise.resolve(_this3.rest.get(path));
|
|
1867
|
+
}
|
|
1868
|
+
} catch (e) {
|
|
1869
|
+
return Promise.reject(e);
|
|
1870
|
+
}
|
|
1871
|
+
};
|
|
1872
|
+
|
|
1873
|
+
_proto.get = function get(path) {
|
|
1874
|
+
try {
|
|
1875
|
+
var _this5 = this;
|
|
1876
|
+
|
|
1877
|
+
if (path.startsWith('/')) {
|
|
1878
|
+
path = path.slice(1);
|
|
1879
|
+
}
|
|
1880
|
+
|
|
1881
|
+
return Promise.resolve(_this5.rest.get(path));
|
|
1744
1882
|
} catch (e) {
|
|
1745
1883
|
return Promise.reject(e);
|
|
1746
1884
|
}
|
|
1747
1885
|
};
|
|
1748
1886
|
|
|
1749
|
-
|
|
1750
|
-
|
|
1887
|
+
_proto.getQueryParamsPostresql = function getQueryParamsPostresql(_ref) {
|
|
1888
|
+
var _ref$start = _ref.start,
|
|
1889
|
+
start = _ref$start === void 0 ? 0 : _ref$start,
|
|
1890
|
+
_ref$pageSize = _ref.pageSize,
|
|
1891
|
+
pageSize = _ref$pageSize === void 0 ? 10 : _ref$pageSize,
|
|
1892
|
+
_ref$withDepth = _ref.withDepth,
|
|
1893
|
+
withDepth = _ref$withDepth === void 0 ? true : _ref$withDepth;
|
|
1894
|
+
var result = [];
|
|
1895
|
+
result = [].concat(parser(start.toString(), 'b_start'), parser(pageSize.toString(), 'b_size'));
|
|
1751
1896
|
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
setLoading = _React$useState[1];
|
|
1897
|
+
if (withDepth) {
|
|
1898
|
+
var _parser;
|
|
1755
1899
|
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
var last = items[items.length - 1]['@name'];
|
|
1759
|
-
var itemsNames = items.map(function (item) {
|
|
1760
|
-
return item['@name'];
|
|
1761
|
-
}).join(', ').replace(", " + last, " and " + last);
|
|
1762
|
-
return /*#__PURE__*/React__default['default'].createElement(Confirm, {
|
|
1763
|
-
loading: loading,
|
|
1764
|
-
onCancel: function onCancel() {
|
|
1765
|
-
return Ctx.cancelAction();
|
|
1766
|
-
},
|
|
1767
|
-
onConfirm: removeItems,
|
|
1768
|
-
message: "Are you sure to remove: " + itemsNames + "?"
|
|
1769
|
-
});
|
|
1770
|
-
}
|
|
1900
|
+
result = [].concat(result, (_parser = parser('1', 'depth')) != null ? _parser : []);
|
|
1901
|
+
}
|
|
1771
1902
|
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
className = _ref.className,
|
|
1775
|
-
classNameInput = _ref.classNameInput,
|
|
1776
|
-
loading = _ref.loading,
|
|
1777
|
-
disabled = _ref.disabled,
|
|
1778
|
-
_ref$indeterminate = _ref.indeterminate,
|
|
1779
|
-
indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate,
|
|
1780
|
-
_ref$value = _ref.value,
|
|
1781
|
-
value = _ref$value === void 0 ? false : _ref$value,
|
|
1782
|
-
children = _ref.children,
|
|
1783
|
-
placeholder = _ref.placeholder,
|
|
1784
|
-
onChange = _ref.onChange,
|
|
1785
|
-
dataTest = _ref.dataTest,
|
|
1786
|
-
rest = _objectWithoutPropertiesLoose(_ref, ["id", "className", "classNameInput", "loading", "disabled", "indeterminate", "value", "color", "backgroundColor", "borderColor", "children", "placeholder", "onChange", "dataTest"]);
|
|
1903
|
+
return result;
|
|
1904
|
+
};
|
|
1787
1905
|
|
|
1788
|
-
|
|
1906
|
+
_proto.getQueryParamsElasticsearch = function getQueryParamsElasticsearch(_ref2) {
|
|
1907
|
+
var _ref2$start = _ref2.start,
|
|
1908
|
+
start = _ref2$start === void 0 ? 0 : _ref2$start,
|
|
1909
|
+
_ref2$pageSize = _ref2.pageSize,
|
|
1910
|
+
pageSize = _ref2$pageSize === void 0 ? 10 : _ref2$pageSize,
|
|
1911
|
+
path = _ref2.path,
|
|
1912
|
+
_ref2$withDepth = _ref2.withDepth,
|
|
1913
|
+
withDepth = _ref2$withDepth === void 0 ? true : _ref2$withDepth;
|
|
1914
|
+
var result = [];
|
|
1915
|
+
var containerPath = this.getContainerFromPath(path);
|
|
1789
1916
|
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1917
|
+
if (containerPath.startsWith('/')) {
|
|
1918
|
+
containerPath = containerPath.slice(1);
|
|
1919
|
+
}
|
|
1793
1920
|
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1921
|
+
var objectPath = path.replace(containerPath, '');
|
|
1922
|
+
|
|
1923
|
+
if (objectPath.endsWith('/')) {
|
|
1924
|
+
objectPath = objectPath.slice(0, -1);
|
|
1797
1925
|
}
|
|
1798
|
-
}, [indeterminate]);
|
|
1799
1926
|
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1927
|
+
result = [].concat(parser(start.toString(), '_from'), parser(pageSize.toString(), 'size'));
|
|
1928
|
+
|
|
1929
|
+
if (withDepth) {
|
|
1930
|
+
var _parser2;
|
|
1931
|
+
|
|
1932
|
+
result = [].concat(result, (_parser2 = parser('1', 'depth')) != null ? _parser2 : []);
|
|
1933
|
+
}
|
|
1934
|
+
|
|
1935
|
+
if (objectPath !== '') {
|
|
1936
|
+
result = [].concat(result, parser(objectPath, 'path__wildcard'));
|
|
1937
|
+
}
|
|
1938
|
+
|
|
1939
|
+
return result;
|
|
1803
1940
|
};
|
|
1804
1941
|
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1942
|
+
_proto.getItemsColumn = function getItemsColumn() {
|
|
1943
|
+
var smallcss = {
|
|
1944
|
+
width: 25
|
|
1945
|
+
};
|
|
1946
|
+
var mediumcss = {
|
|
1947
|
+
width: 120
|
|
1948
|
+
};
|
|
1949
|
+
return [{
|
|
1950
|
+
label: '',
|
|
1951
|
+
child: function child(m) {
|
|
1952
|
+
return /*#__PURE__*/React__default['default'].createElement("td", {
|
|
1953
|
+
style: smallcss
|
|
1954
|
+
}, /*#__PURE__*/React__default['default'].createElement(Icon, {
|
|
1955
|
+
icon: m.icon
|
|
1956
|
+
}));
|
|
1957
|
+
}
|
|
1958
|
+
}, {
|
|
1959
|
+
label: 'type',
|
|
1960
|
+
child: function child(m) {
|
|
1961
|
+
return /*#__PURE__*/React__default['default'].createElement(TdLink, {
|
|
1962
|
+
style: smallcss,
|
|
1963
|
+
model: m
|
|
1964
|
+
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
1965
|
+
className: "tag"
|
|
1966
|
+
}, m.type));
|
|
1967
|
+
}
|
|
1968
|
+
}, {
|
|
1969
|
+
label: 'id/name',
|
|
1970
|
+
child: function child(m, navigate, search) {
|
|
1971
|
+
return /*#__PURE__*/React__default['default'].createElement(TdLink, {
|
|
1972
|
+
model: m
|
|
1973
|
+
}, m.name, search && /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", {
|
|
1974
|
+
className: "is-size-7 tag is-light"
|
|
1975
|
+
}, m.path)));
|
|
1976
|
+
}
|
|
1977
|
+
}, {
|
|
1978
|
+
label: 'created',
|
|
1979
|
+
child: function child(m) {
|
|
1980
|
+
return /*#__PURE__*/React__default['default'].createElement("td", {
|
|
1981
|
+
style: mediumcss,
|
|
1982
|
+
className: "is-size-7 is-vcentered"
|
|
1983
|
+
}, m.created);
|
|
1984
|
+
}
|
|
1985
|
+
}, {
|
|
1986
|
+
label: 'modified',
|
|
1987
|
+
child: function child(m) {
|
|
1988
|
+
return /*#__PURE__*/React__default['default'].createElement("td", {
|
|
1989
|
+
style: mediumcss,
|
|
1990
|
+
className: "is-size-7 is-vcentered"
|
|
1991
|
+
}, m.updated);
|
|
1992
|
+
}
|
|
1993
|
+
}];
|
|
1994
|
+
} // BBB API changes. Compat G5 and G6
|
|
1995
|
+
;
|
|
1821
1996
|
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
className: classnames(['help is-danger', className]),
|
|
1828
|
-
id: id
|
|
1829
|
-
}, children);
|
|
1830
|
-
};
|
|
1997
|
+
_proto.applyCompat = function applyCompat(data) {
|
|
1998
|
+
data.member = data.items;
|
|
1999
|
+
data.items_count = data.items_total;
|
|
2000
|
+
return data;
|
|
2001
|
+
};
|
|
1831
2002
|
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
};
|
|
2003
|
+
_proto.search = function search(path, params, container, prepare) {
|
|
2004
|
+
if (container === void 0) {
|
|
2005
|
+
container = false;
|
|
2006
|
+
}
|
|
1837
2007
|
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
var result = true;
|
|
1841
|
-
validation.forEach(function (func) {
|
|
1842
|
-
if (func(value) === false) {
|
|
1843
|
-
result = false;
|
|
2008
|
+
if (prepare === void 0) {
|
|
2009
|
+
prepare = true;
|
|
1844
2010
|
}
|
|
1845
|
-
});
|
|
1846
|
-
return result;
|
|
1847
|
-
};
|
|
1848
2011
|
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
hasError: false,
|
|
1852
|
-
value: value
|
|
1853
|
-
}),
|
|
1854
|
-
state = _React$useState[0],
|
|
1855
|
-
setState = _React$useState[1];
|
|
2012
|
+
try {
|
|
2013
|
+
var _this7 = this;
|
|
1856
2014
|
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
2015
|
+
if (path.startsWith('/')) {
|
|
2016
|
+
path = path.slice(1);
|
|
2017
|
+
}
|
|
2018
|
+
|
|
2019
|
+
if (container) {
|
|
2020
|
+
path = _this7.getContainerFromPath(path);
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
var query = prepare ? toQueryString(params) : params;
|
|
2024
|
+
var url = path + "@search?" + query;
|
|
2025
|
+
return Promise.resolve(_this7.rest.get(url)).then(function (res) {
|
|
2026
|
+
return Promise.resolve(res.json()).then(function (data) {
|
|
2027
|
+
return _this7.applyCompat(data);
|
|
2028
|
+
});
|
|
2029
|
+
});
|
|
2030
|
+
} catch (e) {
|
|
2031
|
+
return Promise.reject(e);
|
|
2032
|
+
}
|
|
1864
2033
|
};
|
|
1865
2034
|
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
2035
|
+
_proto.canido = function canido(path, permissions) {
|
|
2036
|
+
try {
|
|
2037
|
+
var _this9 = this;
|
|
2038
|
+
|
|
2039
|
+
if (path.startsWith('/')) {
|
|
2040
|
+
path = path.slice(1);
|
|
2041
|
+
}
|
|
2042
|
+
|
|
2043
|
+
if (Array.isArray(permissions)) {
|
|
2044
|
+
permissions.join(',');
|
|
2045
|
+
}
|
|
2046
|
+
|
|
2047
|
+
var url = path + "@canido?permissions=" + permissions;
|
|
2048
|
+
return Promise.resolve(_this9.rest.get(url));
|
|
2049
|
+
} catch (e) {
|
|
2050
|
+
return Promise.reject(e);
|
|
2051
|
+
}
|
|
1872
2052
|
};
|
|
1873
2053
|
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
2054
|
+
_proto.createObject = function createObject(path, data) {
|
|
2055
|
+
try {
|
|
2056
|
+
var _this11 = this;
|
|
2057
|
+
|
|
2058
|
+
return Promise.resolve(_this11.rest.post(path, data));
|
|
2059
|
+
} catch (e) {
|
|
2060
|
+
return Promise.reject(e);
|
|
1880
2061
|
}
|
|
1881
2062
|
};
|
|
1882
2063
|
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
hasError: false
|
|
1887
|
-
});
|
|
1888
|
-
}, [value]);
|
|
1889
|
-
return {
|
|
1890
|
-
onChange: onUpdate,
|
|
1891
|
-
onFocus: onFocus,
|
|
1892
|
-
onBlur: onBlur,
|
|
1893
|
-
state: state
|
|
2064
|
+
_proto.cleanPath = function cleanPath(path) {
|
|
2065
|
+
var url = path.split('/').slice(3);
|
|
2066
|
+
return "" + url.join('/');
|
|
1894
2067
|
};
|
|
1895
|
-
};
|
|
1896
2068
|
|
|
1897
|
-
|
|
2069
|
+
_proto.delete = function _delete(path, data) {
|
|
2070
|
+
try {
|
|
2071
|
+
var _this13 = this;
|
|
1898
2072
|
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
var isEmpty = function isEmpty(value) {
|
|
1905
|
-
if (value === void 0) {
|
|
1906
|
-
value = '';
|
|
1907
|
-
}
|
|
2073
|
+
return Promise.resolve(_this13.rest.delete(path, data));
|
|
2074
|
+
} catch (e) {
|
|
2075
|
+
return Promise.reject(e);
|
|
2076
|
+
}
|
|
2077
|
+
};
|
|
1908
2078
|
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
if (value === void 0) {
|
|
1913
|
-
value = '';
|
|
1914
|
-
}
|
|
2079
|
+
_proto.create = function create(path, data) {
|
|
2080
|
+
try {
|
|
2081
|
+
var _this15 = this;
|
|
1915
2082
|
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
2083
|
+
if (path.startsWith('/')) {
|
|
2084
|
+
path = path.substring(1);
|
|
2085
|
+
}
|
|
1919
2086
|
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
}
|
|
2087
|
+
return Promise.resolve(_this15.rest.post(path, data));
|
|
2088
|
+
} catch (e) {
|
|
2089
|
+
return Promise.reject(e);
|
|
2090
|
+
}
|
|
2091
|
+
};
|
|
1926
2092
|
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
2093
|
+
_proto.post = function post(path, data) {
|
|
2094
|
+
try {
|
|
2095
|
+
var _this17 = this;
|
|
1930
2096
|
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
}
|
|
2097
|
+
return Promise.resolve(_this17.create(path, data));
|
|
2098
|
+
} catch (e) {
|
|
2099
|
+
return Promise.reject(e);
|
|
2100
|
+
}
|
|
2101
|
+
};
|
|
1937
2102
|
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
if (value === void 0) {
|
|
1942
|
-
value = '';
|
|
1943
|
-
}
|
|
2103
|
+
_proto.patch = function patch(path, data) {
|
|
2104
|
+
try {
|
|
2105
|
+
var _this19 = this;
|
|
1944
2106
|
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
if (value === void 0) {
|
|
1949
|
-
value = '';
|
|
1950
|
-
}
|
|
2107
|
+
if (path.startsWith('/')) {
|
|
2108
|
+
path = path.substring(1);
|
|
2109
|
+
}
|
|
1951
2110
|
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
}
|
|
2111
|
+
return Promise.resolve(_this19.rest.patch(path, data));
|
|
2112
|
+
} catch (e) {
|
|
2113
|
+
return Promise.reject(e);
|
|
2114
|
+
}
|
|
2115
|
+
};
|
|
1958
2116
|
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
return !!value.length;
|
|
1963
|
-
};
|
|
2117
|
+
_proto.upload = function upload(path, file) {
|
|
2118
|
+
try {
|
|
2119
|
+
var _this21 = this;
|
|
1964
2120
|
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
/** @type any */
|
|
2121
|
+
if (path.startsWith('/')) {
|
|
2122
|
+
path = path.substring(1);
|
|
2123
|
+
}
|
|
1969
2124
|
|
|
2125
|
+
return Promise.resolve(_this21.rest.upload(path, file));
|
|
2126
|
+
} catch (e) {
|
|
2127
|
+
return Promise.reject(e);
|
|
2128
|
+
}
|
|
2129
|
+
};
|
|
1970
2130
|
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
iconPosition = _ref$iconPosition === void 0 ? 'has-icons-right' : _ref$iconPosition,
|
|
1975
|
-
error = _ref.error,
|
|
1976
|
-
errorZoneClassName = _ref.errorZoneClassName,
|
|
1977
|
-
_ref$autoComplete = _ref.autoComplete,
|
|
1978
|
-
autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,
|
|
1979
|
-
_ref$className = _ref.className,
|
|
1980
|
-
className = _ref$className === void 0 ? '' : _ref$className,
|
|
1981
|
-
_ref$widget = _ref.widget,
|
|
1982
|
-
widget = _ref$widget === void 0 ? 'input' : _ref$widget,
|
|
1983
|
-
_ref$type = _ref.type,
|
|
1984
|
-
type = _ref$type === void 0 ? 'text' : _ref$type,
|
|
1985
|
-
_ref$loading = _ref.loading,
|
|
1986
|
-
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
1987
|
-
_ref$required = _ref.required,
|
|
1988
|
-
required = _ref$required === void 0 ? false : _ref$required,
|
|
1989
|
-
id = _ref.id,
|
|
1990
|
-
placeholder = _ref.placeholder,
|
|
1991
|
-
value = _ref.value,
|
|
1992
|
-
_ref$autofocus = _ref.autofocus,
|
|
1993
|
-
autofocus = _ref$autofocus === void 0 ? false : _ref$autofocus,
|
|
1994
|
-
onChange = _ref.onChange,
|
|
1995
|
-
_ref$validator = _ref.validator,
|
|
1996
|
-
validator = _ref$validator === void 0 ? noop$2 : _ref$validator,
|
|
1997
|
-
errorMessage = _ref.errorMessage,
|
|
1998
|
-
_ref$dataTest = _ref.dataTest,
|
|
1999
|
-
dataTest = _ref$dataTest === void 0 ? 'testInput' : _ref$dataTest,
|
|
2000
|
-
rest = _objectWithoutPropertiesLoose(_ref, ["icon", "iconPosition", "error", "errorZoneClassName", "autoComplete", "className", "widget", "type", "onPressEnter", "isSubmitted", "loading", "required", "id", "placeholder", "value", "autofocus", "onChange", "validator", "errorMessage", "dataTest"]);
|
|
2131
|
+
_proto.download = function download(path) {
|
|
2132
|
+
try {
|
|
2133
|
+
var _this23 = this;
|
|
2001
2134
|
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2135
|
+
if (path.startsWith('/')) {
|
|
2136
|
+
path = path.substring(1);
|
|
2137
|
+
}
|
|
2005
2138
|
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2139
|
+
return Promise.resolve(_this23.rest.get(path));
|
|
2140
|
+
} catch (e) {
|
|
2141
|
+
return Promise.reject(e);
|
|
2142
|
+
}
|
|
2143
|
+
};
|
|
2009
2144
|
|
|
2010
|
-
|
|
2011
|
-
|
|
2145
|
+
_proto.getTypeSchema = function getTypeSchema(path, name) {
|
|
2146
|
+
try {
|
|
2147
|
+
var _this25 = this;
|
|
2012
2148
|
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2149
|
+
var _temp3 = function _temp3() {
|
|
2150
|
+
return cacheSchemas[name];
|
|
2151
|
+
};
|
|
2016
2152
|
|
|
2153
|
+
var _temp4 = function () {
|
|
2154
|
+
if (!cacheSchemas[name]) {
|
|
2155
|
+
var url = _this25.getContainerFromPath(path); // todo: handle db case (only addable containers)
|
|
2017
2156
|
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2157
|
+
|
|
2158
|
+
return Promise.resolve(_this25.rest.get(url + "@types/" + name)).then(function (res) {
|
|
2159
|
+
return Promise.resolve(res.json()).then(function (_res$json) {
|
|
2160
|
+
cacheSchemas[name] = _res$json;
|
|
2161
|
+
});
|
|
2162
|
+
});
|
|
2163
|
+
}
|
|
2164
|
+
}();
|
|
2165
|
+
|
|
2166
|
+
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
|
|
2167
|
+
} catch (e) {
|
|
2168
|
+
return Promise.reject(e);
|
|
2025
2169
|
}
|
|
2026
|
-
}
|
|
2027
|
-
var theError = state.hasError ? errorMessage || 'invalid field' : '';
|
|
2028
|
-
var statusClasses = state.hasError ? 'is-danger' : '';
|
|
2170
|
+
};
|
|
2029
2171
|
|
|
2030
|
-
|
|
2031
|
-
|
|
2172
|
+
_proto.getAddons = function getAddons(path) {
|
|
2173
|
+
try {
|
|
2174
|
+
var _this27 = this;
|
|
2175
|
+
|
|
2176
|
+
return Promise.resolve(_this27.rest.get(path + "@addons"));
|
|
2177
|
+
} catch (e) {
|
|
2178
|
+
return Promise.reject(e);
|
|
2179
|
+
}
|
|
2032
2180
|
};
|
|
2033
2181
|
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
id: id,
|
|
2046
|
-
ref: ref,
|
|
2047
|
-
type: type,
|
|
2048
|
-
value: state.value,
|
|
2049
|
-
placeholder: placeholder,
|
|
2050
|
-
autoComplete: autoComplete,
|
|
2051
|
-
disabled: loading || rest.disabled,
|
|
2052
|
-
required: required,
|
|
2053
|
-
"data-test": dataTest
|
|
2054
|
-
}, handlers, rest)), icon && icon), /*#__PURE__*/React__default['default'].createElement(ErrorZone, {
|
|
2055
|
-
className: errorZoneClassName,
|
|
2056
|
-
id: uid
|
|
2057
|
-
}, state.hasError ? theError : ''));
|
|
2058
|
-
});
|
|
2059
|
-
Input.propTypes = {
|
|
2060
|
-
icon: PropTypes__default['default'].node,
|
|
2061
|
-
iconPosition: PropTypes__default['default'].arrayOf(PropTypes__default['default'].oneOf(['has-icons-left', 'has-icons-right', ''])),
|
|
2062
|
-
error: PropTypes__default['default'].string,
|
|
2063
|
-
errorZoneClassName: PropTypes__default['default'].string,
|
|
2064
|
-
autoComplete: PropTypes__default['default'].string,
|
|
2065
|
-
autoFocus: PropTypes__default['default'].bool,
|
|
2066
|
-
className: PropTypes__default['default'].string,
|
|
2067
|
-
disabled: PropTypes__default['default'].bool,
|
|
2068
|
-
loading: PropTypes__default['default'].bool,
|
|
2069
|
-
isSubmitted: PropTypes__default['default'].bool,
|
|
2070
|
-
id: PropTypes__default['default'].string,
|
|
2071
|
-
name: PropTypes__default['default'].string,
|
|
2072
|
-
onChange: PropTypes__default['default'].func,
|
|
2073
|
-
onKeyDown: PropTypes__default['default'].func,
|
|
2074
|
-
onKeyUp: PropTypes__default['default'].func,
|
|
2075
|
-
onPressEnter: PropTypes__default['default'].func,
|
|
2076
|
-
placeholder: PropTypes__default['default'].string,
|
|
2077
|
-
readOnly: PropTypes__default['default'].bool,
|
|
2078
|
-
required: PropTypes__default['default'].bool,
|
|
2079
|
-
type: PropTypes__default['default'].string,
|
|
2080
|
-
value: PropTypes__default['default'].oneOfType([PropTypes__default['default'].string, PropTypes__default['default'].number, PropTypes__default['default'].bool])
|
|
2081
|
-
};
|
|
2182
|
+
_proto.installAddon = function installAddon(path, key) {
|
|
2183
|
+
try {
|
|
2184
|
+
var _this29 = this;
|
|
2185
|
+
|
|
2186
|
+
return Promise.resolve(_this29.rest.post(path + "@addons", {
|
|
2187
|
+
id: key
|
|
2188
|
+
}));
|
|
2189
|
+
} catch (e) {
|
|
2190
|
+
return Promise.reject(e);
|
|
2191
|
+
}
|
|
2192
|
+
};
|
|
2082
2193
|
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
dataTest = _ref.dataTest,
|
|
2087
|
-
rest = _objectWithoutPropertiesLoose(_ref, ["value", "dataTest"]);
|
|
2194
|
+
_proto.removeAddon = function removeAddon(path, key) {
|
|
2195
|
+
try {
|
|
2196
|
+
var _this31 = this;
|
|
2088
2197
|
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
icon: "fas fa-envelope"
|
|
2097
|
-
})
|
|
2098
|
-
}, rest));
|
|
2099
|
-
};
|
|
2198
|
+
return Promise.resolve(_this31.rest.delete(path + "@addons", {
|
|
2199
|
+
id: key
|
|
2200
|
+
}));
|
|
2201
|
+
} catch (e) {
|
|
2202
|
+
return Promise.reject(e);
|
|
2203
|
+
}
|
|
2204
|
+
};
|
|
2100
2205
|
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
className = _ref$className === void 0 ? '' : _ref$className,
|
|
2105
|
-
_ref$onSubmit = _ref.onSubmit,
|
|
2106
|
-
onSubmit = _ref$onSubmit === void 0 ? noop : _ref$onSubmit,
|
|
2107
|
-
_ref$onReset = _ref.onReset,
|
|
2108
|
-
onReset = _ref$onReset === void 0 ? noop : _ref$onReset,
|
|
2109
|
-
_ref$autoComplete = _ref.autoComplete,
|
|
2110
|
-
autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,
|
|
2111
|
-
title = _ref.title,
|
|
2112
|
-
error = _ref.error,
|
|
2113
|
-
dataTest = _ref.dataTest,
|
|
2114
|
-
rest = _objectWithoutPropertiesLoose(_ref, ["children", "className", "onSubmit", "onReset", "autoComplete", "title", "error", "dataTest"]);
|
|
2206
|
+
_proto.getGroups = function getGroups(path) {
|
|
2207
|
+
try {
|
|
2208
|
+
var _this33 = this;
|
|
2115
2209
|
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2210
|
+
var endpoint = _this33.getContainerFromPath(path) + "@groups";
|
|
2211
|
+
return Promise.resolve(_this33.rest.get(endpoint));
|
|
2212
|
+
} catch (e) {
|
|
2213
|
+
return Promise.reject(e);
|
|
2214
|
+
}
|
|
2119
2215
|
};
|
|
2120
2216
|
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
className: "level"
|
|
2125
|
-
}, /*#__PURE__*/React__default['default'].createElement("h1", {
|
|
2126
|
-
className: "title is-size-4"
|
|
2127
|
-
}, title)), error && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2128
|
-
className: "notification is-danger"
|
|
2129
|
-
}, error), /*#__PURE__*/React__default['default'].createElement("form", _extends({
|
|
2130
|
-
onSubmit: handleSubmit,
|
|
2131
|
-
onReset: onReset,
|
|
2132
|
-
autoComplete: autoComplete,
|
|
2133
|
-
className: classnames(['form', className])
|
|
2134
|
-
}, rest), children));
|
|
2135
|
-
};
|
|
2136
|
-
Form.propTypes = {
|
|
2137
|
-
children: PropTypes__default['default'].node.isRequired,
|
|
2138
|
-
className: PropTypes__default['default'].string,
|
|
2139
|
-
onSubmit: PropTypes__default['default'].func,
|
|
2140
|
-
onReset: PropTypes__default['default'].func,
|
|
2141
|
-
autoComplete: PropTypes__default['default'].string
|
|
2142
|
-
};
|
|
2217
|
+
_proto.getUsers = function getUsers(path) {
|
|
2218
|
+
try {
|
|
2219
|
+
var _this35 = this;
|
|
2143
2220
|
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2221
|
+
var endpoint = _this35.getContainerFromPath(path) + "@users";
|
|
2222
|
+
return Promise.resolve(_this35.rest.get(endpoint));
|
|
2223
|
+
} catch (e) {
|
|
2224
|
+
return Promise.reject(e);
|
|
2225
|
+
}
|
|
2226
|
+
};
|
|
2148
2227
|
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
}, rest));
|
|
2153
|
-
};
|
|
2228
|
+
_proto.getPrincipals = function getPrincipals(path) {
|
|
2229
|
+
try {
|
|
2230
|
+
var _this37 = this;
|
|
2154
2231
|
|
|
2155
|
-
|
|
2156
|
-
string: Input,
|
|
2157
|
-
password: PasswordInput,
|
|
2158
|
-
boolean: Checkbox,
|
|
2159
|
-
email: EmailInput
|
|
2160
|
-
};
|
|
2161
|
-
function FormBuilder(_ref) {
|
|
2162
|
-
var schema = _ref.schema,
|
|
2163
|
-
formData = _ref.formData,
|
|
2164
|
-
onSubmit = _ref.onSubmit,
|
|
2165
|
-
actionName = _ref.actionName,
|
|
2166
|
-
children = _ref.children,
|
|
2167
|
-
_ref$exclude = _ref.exclude,
|
|
2168
|
-
exclude = _ref$exclude === void 0 ? [] : _ref$exclude,
|
|
2169
|
-
_ref$remotes = _ref.remotes,
|
|
2170
|
-
remotes = _ref$remotes === void 0 ? [] : _ref$remotes,
|
|
2171
|
-
_ref$submitButton = _ref.submitButton,
|
|
2172
|
-
submitButton = _ref$submitButton === void 0 ? true : _ref$submitButton,
|
|
2173
|
-
rest = _objectWithoutPropertiesLoose(_ref, ["schema", "formData", "title", "onSubmit", "actionName", "children", "exclude", "remotes", "submitButton"]);
|
|
2232
|
+
var groups = _this37.getGroups(path);
|
|
2174
2233
|
|
|
2175
|
-
|
|
2176
|
-
var properties = schema.properties,
|
|
2177
|
-
required = schema.required;
|
|
2178
|
-
var values = Object.assign({}, formData || {}); // build initial state
|
|
2234
|
+
var users = _this37.getUsers(path);
|
|
2179
2235
|
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
});
|
|
2184
|
-
fields.forEach(function (element) {
|
|
2185
|
-
initialState[element] = values[element] || undefined;
|
|
2186
|
-
}); // Register remotes
|
|
2236
|
+
return Promise.resolve(Promise.all([groups, users])).then(function (_ref3) {
|
|
2237
|
+
var gr = _ref3[0],
|
|
2238
|
+
usr = _ref3[1];
|
|
2187
2239
|
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
Object.keys(remotes).forEach(function (key) {
|
|
2196
|
-
if (JSON.stringify(ref.current[key]) !== JSON.stringify(remotes[key])) {
|
|
2197
|
-
ref.current[key] = remotes[key];
|
|
2198
|
-
}
|
|
2199
|
-
});
|
|
2200
|
-
}
|
|
2240
|
+
function _temp6(_gr$json) {
|
|
2241
|
+
function _temp5(_usr$json) {
|
|
2242
|
+
return {
|
|
2243
|
+
groups: _gr$json,
|
|
2244
|
+
users: _usr$json
|
|
2245
|
+
};
|
|
2246
|
+
}
|
|
2201
2247
|
|
|
2202
|
-
|
|
2248
|
+
var _usr$ok = usr.ok;
|
|
2249
|
+
return _usr$ok ? Promise.resolve(usr.json()).then(_temp5) : _temp5([]);
|
|
2250
|
+
}
|
|
2203
2251
|
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
}
|
|
2252
|
+
var _gr$ok = gr.ok;
|
|
2253
|
+
return _gr$ok ? Promise.resolve(gr.json()).then(_temp6) : _temp6([]);
|
|
2254
|
+
});
|
|
2255
|
+
} catch (e) {
|
|
2256
|
+
return Promise.reject(e);
|
|
2257
|
+
}
|
|
2208
2258
|
};
|
|
2209
2259
|
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
var props = {
|
|
2214
|
-
label: properties[field].title,
|
|
2215
|
-
value: initialState[field],
|
|
2216
|
-
onChange: onUpdate(field),
|
|
2217
|
-
placeholder: properties[field].title || '',
|
|
2218
|
-
id: generateUID(),
|
|
2219
|
-
dataTest: field + "TestInput"
|
|
2220
|
-
};
|
|
2260
|
+
_proto.getRoles = function getRoles(path) {
|
|
2261
|
+
try {
|
|
2262
|
+
var _this39 = this;
|
|
2221
2263
|
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2264
|
+
var endpoint = _this39.getContainerFromPath(path) + "@available-roles";
|
|
2265
|
+
return Promise.resolve(_this39.rest.get(endpoint));
|
|
2266
|
+
} catch (e) {
|
|
2267
|
+
return Promise.reject(e);
|
|
2225
2268
|
}
|
|
2226
|
-
|
|
2227
|
-
Tag.displayName = field + "Field";
|
|
2228
|
-
return /*#__PURE__*/React__default['default'].createElement(Tag, props);
|
|
2229
2269
|
};
|
|
2230
2270
|
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
});
|
|
2235
|
-
});
|
|
2271
|
+
_proto.getAllPermissions = function getAllPermissions(path) {
|
|
2272
|
+
try {
|
|
2273
|
+
var _this41 = this;
|
|
2236
2274
|
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2275
|
+
// paths used to query the API always has to start without a "/"
|
|
2276
|
+
if (path.startsWith('/')) {
|
|
2277
|
+
path = path.slice(1);
|
|
2278
|
+
}
|
|
2240
2279
|
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
})
|
|
2248
|
-
|
|
2249
|
-
|
|
2280
|
+
return Promise.resolve(_this41.rest.get(path + '@all_permissions')).then(function (req) {
|
|
2281
|
+
return Promise.resolve(req.json()).then(function (resp) {
|
|
2282
|
+
var permissions = Array.from(new Set(extractPermissions(resp)));
|
|
2283
|
+
return permissions;
|
|
2284
|
+
});
|
|
2285
|
+
});
|
|
2286
|
+
} catch (e) {
|
|
2287
|
+
return Promise.reject(e);
|
|
2288
|
+
}
|
|
2289
|
+
};
|
|
2250
2290
|
|
|
2251
|
-
|
|
2291
|
+
_proto.getTypes = function getTypes(path) {
|
|
2292
|
+
try {
|
|
2293
|
+
var _this43 = this;
|
|
2252
2294
|
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
errorZoneClassName = _ref.errorZoneClassName,
|
|
2257
|
-
_ref$size = _ref.size,
|
|
2258
|
-
size = _ref$size === void 0 ? 1 : _ref$size,
|
|
2259
|
-
placeholder = _ref.placeholder,
|
|
2260
|
-
id = _ref.id,
|
|
2261
|
-
_ref$className = _ref.className,
|
|
2262
|
-
className = _ref$className === void 0 ? '' : _ref$className,
|
|
2263
|
-
_ref$classWrap = _ref.classWrap,
|
|
2264
|
-
classWrap = _ref$classWrap === void 0 ? '' : _ref$classWrap,
|
|
2265
|
-
_ref$multiple = _ref.multiple,
|
|
2266
|
-
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
|
2267
|
-
_ref$loading = _ref.loading,
|
|
2268
|
-
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
2269
|
-
onChange = _ref.onChange,
|
|
2270
|
-
_ref$appendDefault = _ref.appendDefault,
|
|
2271
|
-
appendDefault = _ref$appendDefault === void 0 ? false : _ref$appendDefault,
|
|
2272
|
-
_ref$style = _ref.style,
|
|
2273
|
-
style = _ref$style === void 0 ? {} : _ref$style,
|
|
2274
|
-
dataTest = _ref.dataTest,
|
|
2275
|
-
rest = _objectWithoutPropertiesLoose(_ref, ["options", "error", "errorZoneClassName", "size", "placeholder", "id", "className", "classWrap", "multiple", "loading", "isSubmitted", "onChange", "appendDefault", "style", "dataTest"]);
|
|
2295
|
+
var _temp10 = function _temp10() {
|
|
2296
|
+
return cacheTypes[path];
|
|
2297
|
+
};
|
|
2276
2298
|
|
|
2277
|
-
|
|
2278
|
-
|
|
2299
|
+
if (path.startsWith('/')) {
|
|
2300
|
+
path = path.slice(1);
|
|
2301
|
+
}
|
|
2279
2302
|
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2303
|
+
var _temp11 = function () {
|
|
2304
|
+
if (!cacheTypes[path]) {
|
|
2305
|
+
return Promise.resolve(_this43.rest.get(path + '@addable-types')).then(function (types) {
|
|
2306
|
+
var _temp7 = function () {
|
|
2307
|
+
if (types.status === 401 || types.status === 404) {
|
|
2308
|
+
cacheTypes[path] = [];
|
|
2309
|
+
} else {
|
|
2310
|
+
return Promise.resolve(types.json()).then(function (res) {
|
|
2311
|
+
cacheTypes[path] = res;
|
|
2312
|
+
});
|
|
2313
|
+
}
|
|
2314
|
+
}();
|
|
2315
|
+
|
|
2316
|
+
if (_temp7 && _temp7.then) return _temp7.then(function () {});
|
|
2317
|
+
});
|
|
2285
2318
|
}
|
|
2286
|
-
});
|
|
2287
|
-
|
|
2288
|
-
|
|
2319
|
+
}();
|
|
2320
|
+
|
|
2321
|
+
return Promise.resolve(_temp11 && _temp11.then ? _temp11.then(_temp10) : _temp10(_temp11));
|
|
2322
|
+
} catch (e) {
|
|
2323
|
+
return Promise.reject(e);
|
|
2289
2324
|
}
|
|
2290
2325
|
};
|
|
2291
2326
|
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2327
|
+
return GuillotinaClient;
|
|
2328
|
+
}();
|
|
2329
|
+
function getClient(url, container, auth) {
|
|
2330
|
+
return new GuillotinaClient(new RestClient(url, container, auth), container === '/');
|
|
2331
|
+
}
|
|
2332
|
+
var lightFileReader = function lightFileReader(file) {
|
|
2333
|
+
try {
|
|
2334
|
+
return Promise.resolve(new Promise(function (resolve) {
|
|
2335
|
+
var reader = new FileReader();
|
|
2336
|
+
reader.readAsArrayBuffer(file);
|
|
2337
|
+
|
|
2338
|
+
reader.onloadend = function (e) {
|
|
2339
|
+
var fileData = e.target.result;
|
|
2340
|
+
resolve({
|
|
2341
|
+
filename: file.name.normalize('NFD').replace(/[\u0300-\u036f]/g, ''),
|
|
2342
|
+
data: fileData,
|
|
2343
|
+
'content-type': file.type
|
|
2344
|
+
});
|
|
2345
|
+
};
|
|
2346
|
+
}));
|
|
2347
|
+
} catch (e) {
|
|
2348
|
+
return Promise.reject(e);
|
|
2297
2349
|
}
|
|
2350
|
+
};
|
|
2298
2351
|
|
|
2299
|
-
|
|
2300
|
-
var
|
|
2301
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2302
|
-
className: "field"
|
|
2303
|
-
}, id && placeholder ? /*#__PURE__*/React__default['default'].createElement("label", {
|
|
2304
|
-
className: "label",
|
|
2305
|
-
htmlFor: id
|
|
2306
|
-
}, placeholder) : null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2307
|
-
className: classnames(cssWrap)
|
|
2308
|
-
}, /*#__PURE__*/React__default['default'].createElement("select", _extends({
|
|
2309
|
-
className: classnames(['', className]),
|
|
2310
|
-
size: size,
|
|
2311
|
-
multiple: multiple,
|
|
2312
|
-
disabled: loading || rest.disabled,
|
|
2313
|
-
onChange: onUpdate
|
|
2314
|
-
}, rest, {
|
|
2315
|
-
ref: ref,
|
|
2316
|
-
style: style,
|
|
2317
|
-
"data-test": dataTest
|
|
2318
|
-
}), options.map(function (_ref2, index) {
|
|
2319
|
-
var text = _ref2.text,
|
|
2320
|
-
rest = _objectWithoutPropertiesLoose(_ref2, ["text"]);
|
|
2352
|
+
var extractPermissions = function extractPermissions(data) {
|
|
2353
|
+
var result = [];
|
|
2321
2354
|
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
}
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
size: PropTypes__default['default'].number,
|
|
2336
|
-
onChange: PropTypes__default['default'].func,
|
|
2337
|
-
options: PropTypes__default['default'].arrayOf(PropTypes__default['default'].object),
|
|
2338
|
-
multiple: PropTypes__default['default'].bool,
|
|
2339
|
-
className: PropTypes__default['default'].string
|
|
2355
|
+
if (typeof data !== 'object') ; else if (!Array.isArray(data) && data.permission) {
|
|
2356
|
+
result = result.concat([data.permission]);
|
|
2357
|
+
} else if (!Array.isArray(data)) {
|
|
2358
|
+
Object.keys(data).map(function (key) {
|
|
2359
|
+
return result = result.concat(extractPermissions(data[key]));
|
|
2360
|
+
});
|
|
2361
|
+
} else if (Array.isArray(data)) {
|
|
2362
|
+
data.map(function (item) {
|
|
2363
|
+
return result = result.concat(extractPermissions(item));
|
|
2364
|
+
});
|
|
2365
|
+
}
|
|
2366
|
+
|
|
2367
|
+
return result;
|
|
2340
2368
|
};
|
|
2341
2369
|
|
|
2342
2370
|
function FileUpload(_ref) {
|
|
@@ -2799,7 +2827,7 @@
|
|
|
2799
2827
|
// eslint-disable-next-line jsx-a11y/anchor-is-valid
|
|
2800
2828
|
React__default['default'].createElement("a", {
|
|
2801
2829
|
className: disabled ? 'dropdown-item is-active' : 'dropdown-item',
|
|
2802
|
-
"data-test": "dropdownItemTest-" + option.
|
|
2830
|
+
"data-test": "dropdownItemTest-" + option.value.toLowerCase(),
|
|
2803
2831
|
key: option.text,
|
|
2804
2832
|
onClick: disabled ? undefined : function () {
|
|
2805
2833
|
return onChange(option.value);
|
|
@@ -2815,61 +2843,6 @@
|
|
|
2815
2843
|
}))));
|
|
2816
2844
|
}
|
|
2817
2845
|
|
|
2818
|
-
var plain = ['string', 'number', 'boolean'];
|
|
2819
|
-
function RenderField(_ref) {
|
|
2820
|
-
var value = _ref.value,
|
|
2821
|
-
Widget = _ref.Widget;
|
|
2822
|
-
if (value === null || value === undefined) return '';
|
|
2823
|
-
|
|
2824
|
-
if (Widget) {
|
|
2825
|
-
return /*#__PURE__*/React__default['default'].createElement(Widget, {
|
|
2826
|
-
value: value
|
|
2827
|
-
});
|
|
2828
|
-
}
|
|
2829
|
-
|
|
2830
|
-
var type = typeof value;
|
|
2831
|
-
|
|
2832
|
-
if (plain.includes(type)) {
|
|
2833
|
-
return value;
|
|
2834
|
-
}
|
|
2835
|
-
|
|
2836
|
-
if (type === 'object') {
|
|
2837
|
-
if (Array.isArray(value)) {
|
|
2838
|
-
return value.map(function (item) {
|
|
2839
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2840
|
-
key: item
|
|
2841
|
-
}, /*#__PURE__*/React__default['default'].createElement(RenderField, {
|
|
2842
|
-
value: item
|
|
2843
|
-
}));
|
|
2844
|
-
});
|
|
2845
|
-
}
|
|
2846
|
-
|
|
2847
|
-
return Object.keys(value).map(function (key) {
|
|
2848
|
-
return /*#__PURE__*/React__default['default'].createElement(FieldValue, {
|
|
2849
|
-
field: key,
|
|
2850
|
-
value: value[key],
|
|
2851
|
-
key: key
|
|
2852
|
-
});
|
|
2853
|
-
});
|
|
2854
|
-
}
|
|
2855
|
-
|
|
2856
|
-
return /*#__PURE__*/React__default['default'].createElement("p", null, "No render for ", JSON.stringify(value));
|
|
2857
|
-
}
|
|
2858
|
-
|
|
2859
|
-
var FieldValue = function FieldValue(_ref2) {
|
|
2860
|
-
var field = _ref2.field,
|
|
2861
|
-
value = _ref2.value;
|
|
2862
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2863
|
-
className: "field"
|
|
2864
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2865
|
-
className: "label"
|
|
2866
|
-
}, field), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2867
|
-
className: "value"
|
|
2868
|
-
}, /*#__PURE__*/React__default['default'].createElement(RenderField, {
|
|
2869
|
-
value: value
|
|
2870
|
-
})));
|
|
2871
|
-
};
|
|
2872
|
-
|
|
2873
2846
|
var formatDate = function formatDate(str) {
|
|
2874
2847
|
var d = new Date(str);
|
|
2875
2848
|
var minutes = d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes();
|
|
@@ -2899,86 +2872,6 @@
|
|
|
2899
2872
|
});
|
|
2900
2873
|
}
|
|
2901
2874
|
|
|
2902
|
-
var DownloadField = function DownloadField(_ref) {
|
|
2903
|
-
var value = _ref.value;
|
|
2904
|
-
var Ctx = useTraversal();
|
|
2905
|
-
var data = value.data,
|
|
2906
|
-
field = value.field;
|
|
2907
|
-
|
|
2908
|
-
var getField = function getField(downloadFile) {
|
|
2909
|
-
try {
|
|
2910
|
-
var endpoint = Ctx.path + "@download/" + field;
|
|
2911
|
-
return Promise.resolve(Ctx.client.download(endpoint)).then(function (res) {
|
|
2912
|
-
return Promise.resolve(res.blob()).then(function (text) {
|
|
2913
|
-
var blob = new Blob([text], {
|
|
2914
|
-
type: data.content_type
|
|
2915
|
-
});
|
|
2916
|
-
var url = window.URL.createObjectURL(blob); // Create blob link to download
|
|
2917
|
-
|
|
2918
|
-
var link = document.createElement('a');
|
|
2919
|
-
link.href = url;
|
|
2920
|
-
|
|
2921
|
-
if (downloadFile) {
|
|
2922
|
-
link.setAttribute('download', "" + data.filename);
|
|
2923
|
-
} else {
|
|
2924
|
-
link.setAttribute('target', "_blank");
|
|
2925
|
-
}
|
|
2926
|
-
|
|
2927
|
-
document.body.appendChild(link);
|
|
2928
|
-
link.click();
|
|
2929
|
-
setTimeout(function () {
|
|
2930
|
-
var _link$parentNode;
|
|
2931
|
-
|
|
2932
|
-
// For Firefox it is necessary to delay revoking the ObjectURL
|
|
2933
|
-
window.URL.revokeObjectURL(url);
|
|
2934
|
-
(_link$parentNode = link.parentNode) == null ? void 0 : _link$parentNode.removeChild(link);
|
|
2935
|
-
}, 100);
|
|
2936
|
-
});
|
|
2937
|
-
});
|
|
2938
|
-
} catch (e) {
|
|
2939
|
-
return Promise.reject(e);
|
|
2940
|
-
}
|
|
2941
|
-
};
|
|
2942
|
-
|
|
2943
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
2944
|
-
className: "field"
|
|
2945
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
2946
|
-
className: "label"
|
|
2947
|
-
}, data.filename), /*#__PURE__*/React.createElement("div", {
|
|
2948
|
-
className: "columns"
|
|
2949
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
2950
|
-
className: "column"
|
|
2951
|
-
}, /*#__PURE__*/React.createElement("button", {
|
|
2952
|
-
className: "button is-small is-primary level-left",
|
|
2953
|
-
onClick: function onClick(event) {
|
|
2954
|
-
try {
|
|
2955
|
-
event.preventDefault();
|
|
2956
|
-
event.stopPropagation();
|
|
2957
|
-
getField(false);
|
|
2958
|
-
return Promise.resolve();
|
|
2959
|
-
} catch (e) {
|
|
2960
|
-
return Promise.reject(e);
|
|
2961
|
-
}
|
|
2962
|
-
}
|
|
2963
|
-
}, "Open")), /*#__PURE__*/React.createElement("div", {
|
|
2964
|
-
className: "column"
|
|
2965
|
-
}, /*#__PURE__*/React.createElement("button", {
|
|
2966
|
-
className: "button is-small is-primary level-right",
|
|
2967
|
-
onClick: function onClick(event) {
|
|
2968
|
-
try {
|
|
2969
|
-
event.preventDefault();
|
|
2970
|
-
event.stopPropagation();
|
|
2971
|
-
getField(true);
|
|
2972
|
-
return Promise.resolve();
|
|
2973
|
-
} catch (e) {
|
|
2974
|
-
return Promise.reject(e);
|
|
2975
|
-
}
|
|
2976
|
-
}
|
|
2977
|
-
}, "Download"))));
|
|
2978
|
-
};
|
|
2979
|
-
|
|
2980
|
-
var DEFAULT_VALUE_EDITABLE_FIELD = 'Click to edit';
|
|
2981
|
-
var DEFAULT_VALUE_NO_EDITABLE_FIELD = ' -- ';
|
|
2982
2875
|
function EditableField(_ref) {
|
|
2983
2876
|
var field = _ref.field,
|
|
2984
2877
|
value = _ref.value,
|
|
@@ -3002,36 +2895,17 @@
|
|
|
3002
2895
|
loading = _useCrudContext.loading,
|
|
3003
2896
|
Ctx = _useCrudContext.Ctx;
|
|
3004
2897
|
|
|
2898
|
+
var _useConfig = useConfig(),
|
|
2899
|
+
fieldHaveDeleteButton = _useConfig.fieldHaveDeleteButton;
|
|
2900
|
+
|
|
3005
2901
|
var EditComponent = Ctx.registry.get('components', 'EditComponent');
|
|
2902
|
+
var RenderFieldComponent = Ctx.registry.get('components', 'RenderFieldComponent');
|
|
3006
2903
|
React.useEffect(function () {
|
|
3007
2904
|
if (isEdit && ref.current) {
|
|
3008
2905
|
ref.current.focus();
|
|
3009
2906
|
}
|
|
3010
|
-
});
|
|
3011
|
-
var canModified = modifyContent && !get$1(schema, 'readonly', false);
|
|
3012
|
-
var haveDeleteBtn = (schema == null ? void 0 : schema.widget) === 'file' || (schema == null ? void 0 : schema.widget) === 'select' || (schema == null ? void 0 : schema.type) === 'array';
|
|
3013
|
-
|
|
3014
|
-
var getRenderProps = function getRenderProps() {
|
|
3015
|
-
var renderProps = {
|
|
3016
|
-
value: val != null ? val : modifyContent ? DEFAULT_VALUE_EDITABLE_FIELD : DEFAULT_VALUE_NO_EDITABLE_FIELD
|
|
3017
|
-
};
|
|
3018
|
-
|
|
3019
|
-
if (val && (schema == null ? void 0 : schema.widget) === 'file') {
|
|
3020
|
-
renderProps['value'] = {
|
|
3021
|
-
data: val,
|
|
3022
|
-
field: field
|
|
3023
|
-
};
|
|
3024
|
-
renderProps['Widget'] = DownloadField;
|
|
3025
|
-
} else if ((schema == null ? void 0 : schema.type) === 'boolean') {
|
|
3026
|
-
var _val$toString;
|
|
3027
|
-
|
|
3028
|
-
renderProps['value'] = (_val$toString = val == null ? void 0 : val.toString()) != null ? _val$toString : renderProps['value'];
|
|
3029
|
-
} else if (val && (schema == null ? void 0 : schema.type) === 'datetime') {
|
|
3030
|
-
renderProps['value'] = new Date(val).toLocaleString();
|
|
3031
|
-
}
|
|
3032
|
-
|
|
3033
|
-
return renderProps;
|
|
3034
|
-
};
|
|
2907
|
+
});
|
|
2908
|
+
var canModified = modifyContent && !get$1(schema, 'readonly', false);
|
|
3035
2909
|
|
|
3036
2910
|
var saveField = function saveField(ev) {
|
|
3037
2911
|
try {
|
|
@@ -3128,7 +3002,12 @@
|
|
|
3128
3002
|
setEdit(!!canModified);
|
|
3129
3003
|
},
|
|
3130
3004
|
"data-test": "editableFieldTest-" + field
|
|
3131
|
-
}, /*#__PURE__*/React__default['default'].createElement(
|
|
3005
|
+
}, /*#__PURE__*/React__default['default'].createElement(RenderFieldComponent, {
|
|
3006
|
+
schema: schema,
|
|
3007
|
+
field: field,
|
|
3008
|
+
val: val,
|
|
3009
|
+
modifyContent: modifyContent
|
|
3010
|
+
}), canModified && /*#__PURE__*/React__default['default'].createElement(Icon, {
|
|
3132
3011
|
icon: "fas fa-edit"
|
|
3133
3012
|
})), isEdit && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
3134
3013
|
className: "field",
|
|
@@ -3158,7 +3037,7 @@
|
|
|
3158
3037
|
return setEdit(false);
|
|
3159
3038
|
},
|
|
3160
3039
|
dataTest: "editableFieldBtnCancelTest"
|
|
3161
|
-
}, "Cancel")), !required &&
|
|
3040
|
+
}, "Cancel")), !required && fieldHaveDeleteButton(schema) && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
3162
3041
|
className: "control"
|
|
3163
3042
|
}, /*#__PURE__*/React__default['default'].createElement(Button, {
|
|
3164
3043
|
className: "is-small is-danger",
|
|
@@ -3167,6 +3046,172 @@
|
|
|
3167
3046
|
}, "Delete")))));
|
|
3168
3047
|
}
|
|
3169
3048
|
|
|
3049
|
+
var DownloadField = function DownloadField(_ref) {
|
|
3050
|
+
var value = _ref.value;
|
|
3051
|
+
var Ctx = useTraversal();
|
|
3052
|
+
var data = value.data,
|
|
3053
|
+
field = value.field;
|
|
3054
|
+
|
|
3055
|
+
var getField = function getField(downloadFile) {
|
|
3056
|
+
try {
|
|
3057
|
+
var endpoint = Ctx.path + "@download/" + field;
|
|
3058
|
+
return Promise.resolve(Ctx.client.download(endpoint)).then(function (res) {
|
|
3059
|
+
return Promise.resolve(res.blob()).then(function (text) {
|
|
3060
|
+
var blob = new Blob([text], {
|
|
3061
|
+
type: data.content_type
|
|
3062
|
+
});
|
|
3063
|
+
var url = window.URL.createObjectURL(blob); // Create blob link to download
|
|
3064
|
+
|
|
3065
|
+
var link = document.createElement('a');
|
|
3066
|
+
link.href = url;
|
|
3067
|
+
|
|
3068
|
+
if (downloadFile) {
|
|
3069
|
+
link.setAttribute('download', "" + data.filename);
|
|
3070
|
+
} else {
|
|
3071
|
+
link.setAttribute('target', "_blank");
|
|
3072
|
+
}
|
|
3073
|
+
|
|
3074
|
+
document.body.appendChild(link);
|
|
3075
|
+
link.click();
|
|
3076
|
+
setTimeout(function () {
|
|
3077
|
+
var _link$parentNode;
|
|
3078
|
+
|
|
3079
|
+
// For Firefox it is necessary to delay revoking the ObjectURL
|
|
3080
|
+
window.URL.revokeObjectURL(url);
|
|
3081
|
+
(_link$parentNode = link.parentNode) == null ? void 0 : _link$parentNode.removeChild(link);
|
|
3082
|
+
}, 100);
|
|
3083
|
+
});
|
|
3084
|
+
});
|
|
3085
|
+
} catch (e) {
|
|
3086
|
+
return Promise.reject(e);
|
|
3087
|
+
}
|
|
3088
|
+
};
|
|
3089
|
+
|
|
3090
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
3091
|
+
className: "field"
|
|
3092
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
3093
|
+
className: "label"
|
|
3094
|
+
}, data.filename), /*#__PURE__*/React.createElement("div", {
|
|
3095
|
+
className: "columns"
|
|
3096
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
3097
|
+
className: "column"
|
|
3098
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
3099
|
+
className: "button is-small is-primary level-left",
|
|
3100
|
+
onClick: function onClick(event) {
|
|
3101
|
+
try {
|
|
3102
|
+
event.preventDefault();
|
|
3103
|
+
event.stopPropagation();
|
|
3104
|
+
getField(false);
|
|
3105
|
+
return Promise.resolve();
|
|
3106
|
+
} catch (e) {
|
|
3107
|
+
return Promise.reject(e);
|
|
3108
|
+
}
|
|
3109
|
+
}
|
|
3110
|
+
}, "Open")), /*#__PURE__*/React.createElement("div", {
|
|
3111
|
+
className: "column"
|
|
3112
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
3113
|
+
className: "button is-small is-primary level-right",
|
|
3114
|
+
onClick: function onClick(event) {
|
|
3115
|
+
try {
|
|
3116
|
+
event.preventDefault();
|
|
3117
|
+
event.stopPropagation();
|
|
3118
|
+
getField(true);
|
|
3119
|
+
return Promise.resolve();
|
|
3120
|
+
} catch (e) {
|
|
3121
|
+
return Promise.reject(e);
|
|
3122
|
+
}
|
|
3123
|
+
}
|
|
3124
|
+
}, "Download"))));
|
|
3125
|
+
};
|
|
3126
|
+
|
|
3127
|
+
var plain = ['string', 'number', 'boolean'];
|
|
3128
|
+
function RenderField(_ref) {
|
|
3129
|
+
var value = _ref.value,
|
|
3130
|
+
Widget = _ref.Widget;
|
|
3131
|
+
if (value === null || value === undefined) return '';
|
|
3132
|
+
|
|
3133
|
+
if (Widget) {
|
|
3134
|
+
return /*#__PURE__*/React__default['default'].createElement(Widget, {
|
|
3135
|
+
value: value
|
|
3136
|
+
});
|
|
3137
|
+
}
|
|
3138
|
+
|
|
3139
|
+
var type = typeof value;
|
|
3140
|
+
|
|
3141
|
+
if (plain.includes(type)) {
|
|
3142
|
+
return value;
|
|
3143
|
+
}
|
|
3144
|
+
|
|
3145
|
+
if (type === 'object') {
|
|
3146
|
+
if (Array.isArray(value)) {
|
|
3147
|
+
return value.map(function (item) {
|
|
3148
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
3149
|
+
key: item
|
|
3150
|
+
}, /*#__PURE__*/React__default['default'].createElement(RenderField, {
|
|
3151
|
+
value: item
|
|
3152
|
+
}));
|
|
3153
|
+
});
|
|
3154
|
+
}
|
|
3155
|
+
|
|
3156
|
+
return Object.keys(value).map(function (key) {
|
|
3157
|
+
return /*#__PURE__*/React__default['default'].createElement(FieldValue, {
|
|
3158
|
+
field: key,
|
|
3159
|
+
value: value[key],
|
|
3160
|
+
key: key
|
|
3161
|
+
});
|
|
3162
|
+
});
|
|
3163
|
+
}
|
|
3164
|
+
|
|
3165
|
+
return /*#__PURE__*/React__default['default'].createElement("p", null, "No render for ", JSON.stringify(value));
|
|
3166
|
+
}
|
|
3167
|
+
|
|
3168
|
+
var FieldValue = function FieldValue(_ref2) {
|
|
3169
|
+
var field = _ref2.field,
|
|
3170
|
+
value = _ref2.value;
|
|
3171
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
3172
|
+
className: "field"
|
|
3173
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
3174
|
+
className: "label"
|
|
3175
|
+
}, field), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
3176
|
+
className: "value"
|
|
3177
|
+
}, /*#__PURE__*/React__default['default'].createElement(RenderField, {
|
|
3178
|
+
value: value
|
|
3179
|
+
})));
|
|
3180
|
+
};
|
|
3181
|
+
|
|
3182
|
+
var DEFAULT_VALUE_EDITABLE_FIELD = 'Click to edit';
|
|
3183
|
+
var DEFAULT_VALUE_NO_EDITABLE_FIELD = ' -- ';
|
|
3184
|
+
function RenderFieldComponent(_ref3) {
|
|
3185
|
+
var schema = _ref3.schema,
|
|
3186
|
+
field = _ref3.field,
|
|
3187
|
+
val = _ref3.val,
|
|
3188
|
+
modifyContent = _ref3.modifyContent;
|
|
3189
|
+
|
|
3190
|
+
var getRenderProps = function getRenderProps() {
|
|
3191
|
+
var renderProps = {
|
|
3192
|
+
value: val != null ? val : modifyContent ? DEFAULT_VALUE_EDITABLE_FIELD : DEFAULT_VALUE_NO_EDITABLE_FIELD
|
|
3193
|
+
};
|
|
3194
|
+
|
|
3195
|
+
if (val && (schema == null ? void 0 : schema.widget) === 'file') {
|
|
3196
|
+
renderProps['value'] = {
|
|
3197
|
+
data: val,
|
|
3198
|
+
field: field
|
|
3199
|
+
};
|
|
3200
|
+
renderProps['Widget'] = DownloadField;
|
|
3201
|
+
} else if ((schema == null ? void 0 : schema.type) === 'boolean') {
|
|
3202
|
+
var _val$toString;
|
|
3203
|
+
|
|
3204
|
+
renderProps['value'] = (_val$toString = val == null ? void 0 : val.toString()) != null ? _val$toString : renderProps['value'];
|
|
3205
|
+
} else if (val && (schema == null ? void 0 : schema.type) === 'datetime') {
|
|
3206
|
+
renderProps['value'] = new Date(val).toLocaleString();
|
|
3207
|
+
}
|
|
3208
|
+
|
|
3209
|
+
return renderProps;
|
|
3210
|
+
};
|
|
3211
|
+
|
|
3212
|
+
return /*#__PURE__*/React__default['default'].createElement(RenderField, getRenderProps());
|
|
3213
|
+
}
|
|
3214
|
+
|
|
3170
3215
|
function IAttachment(_ref) {
|
|
3171
3216
|
var properties = _ref.properties,
|
|
3172
3217
|
values = _ref.values;
|
|
@@ -3730,7 +3775,9 @@
|
|
|
3730
3775
|
* and it select/unselect all items of the page.
|
|
3731
3776
|
*/
|
|
3732
3777
|
|
|
3733
|
-
function AllItemsCheckbox() {
|
|
3778
|
+
function AllItemsCheckbox(_ref2) {
|
|
3779
|
+
var dataTest = _ref2.dataTest;
|
|
3780
|
+
|
|
3734
3781
|
var _useContext = React.useContext(ItemsActionsCtx),
|
|
3735
3782
|
onSelectAllItems = _useContext.onSelectAllItems,
|
|
3736
3783
|
selected = _useContext.selected;
|
|
@@ -3741,15 +3788,17 @@
|
|
|
3741
3788
|
style: {
|
|
3742
3789
|
marginLeft: 2
|
|
3743
3790
|
},
|
|
3744
|
-
value: selected.all
|
|
3791
|
+
value: selected.all,
|
|
3792
|
+
dataTest: dataTest
|
|
3745
3793
|
});
|
|
3746
3794
|
}
|
|
3747
3795
|
/**
|
|
3748
3796
|
* Checkbox component to select ONE item.
|
|
3749
3797
|
*/
|
|
3750
3798
|
|
|
3751
|
-
function ItemCheckbox(
|
|
3752
|
-
var item =
|
|
3799
|
+
function ItemCheckbox(_ref3) {
|
|
3800
|
+
var item = _ref3.item,
|
|
3801
|
+
dataTest = _ref3.dataTest;
|
|
3753
3802
|
|
|
3754
3803
|
var _useContext2 = React.useContext(ItemsActionsCtx),
|
|
3755
3804
|
selected = _useContext2.selected,
|
|
@@ -3762,7 +3811,8 @@
|
|
|
3762
3811
|
onChange: function onChange() {
|
|
3763
3812
|
return onSelectOneItem(item);
|
|
3764
3813
|
},
|
|
3765
|
-
value: value
|
|
3814
|
+
value: value,
|
|
3815
|
+
dataTest: dataTest
|
|
3766
3816
|
});
|
|
3767
3817
|
}
|
|
3768
3818
|
/**
|
|
@@ -3795,7 +3845,9 @@
|
|
|
3795
3845
|
});
|
|
3796
3846
|
},
|
|
3797
3847
|
options: options
|
|
3798
|
-
}, "
|
|
3848
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
3849
|
+
"data-test": "btnChooseActionTest"
|
|
3850
|
+
}, "Choose action..."));
|
|
3799
3851
|
}
|
|
3800
3852
|
|
|
3801
3853
|
/* eslint jsx-a11y/anchor-is-valid: "off" */
|
|
@@ -4046,7 +4098,8 @@
|
|
|
4046
4098
|
}, /*#__PURE__*/React__default['default'].createElement("td", {
|
|
4047
4099
|
style: smallcss
|
|
4048
4100
|
}, /*#__PURE__*/React__default['default'].createElement(ItemCheckbox, {
|
|
4049
|
-
item: item
|
|
4101
|
+
item: item,
|
|
4102
|
+
dataTest: "itemCheckboxRowTest"
|
|
4050
4103
|
})), columns.map(function (i) {
|
|
4051
4104
|
return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, {
|
|
4052
4105
|
key: i.label
|
|
@@ -5844,7 +5897,7 @@
|
|
|
5844
5897
|
items = _props$items === void 0 ? [] : _props$items;
|
|
5845
5898
|
return /*#__PURE__*/React__default['default'].createElement(PathTree, {
|
|
5846
5899
|
title: "Copy to...",
|
|
5847
|
-
defaultPath:
|
|
5900
|
+
defaultPath: Ctx.client.clearContainerFromPath(Ctx.path),
|
|
5848
5901
|
onConfirm: copyItems,
|
|
5849
5902
|
onCancel: function onCancel() {
|
|
5850
5903
|
return Ctx.cancelAction();
|
|
@@ -5860,12 +5913,15 @@
|
|
|
5860
5913
|
}, "New id for \"" + item.id + "\" copy"), /*#__PURE__*/React__default['default'].createElement("input", {
|
|
5861
5914
|
type: "text",
|
|
5862
5915
|
className: "input",
|
|
5916
|
+
"data-test": "inputCopyIdTest-" + item['@name'],
|
|
5863
5917
|
defaultValue: getNewId(item.id)
|
|
5864
5918
|
}));
|
|
5865
5919
|
}), "\xA0");
|
|
5866
5920
|
}
|
|
5867
5921
|
|
|
5868
5922
|
function CopyItem(props) {
|
|
5923
|
+
var _item$parent$Name;
|
|
5924
|
+
|
|
5869
5925
|
var copyItem = function copyItem(path, form) {
|
|
5870
5926
|
try {
|
|
5871
5927
|
var input = form[1] || {};
|
|
@@ -5898,7 +5954,7 @@
|
|
|
5898
5954
|
var item = props.item;
|
|
5899
5955
|
return /*#__PURE__*/React__default['default'].createElement(PathTree, {
|
|
5900
5956
|
title: "Copy to...",
|
|
5901
|
-
defaultPath: "/" + item['parent']['@name'],
|
|
5957
|
+
defaultPath: "/" + ((_item$parent$Name = item['parent']['@name']) != null ? _item$parent$Name : '/'),
|
|
5902
5958
|
onConfirm: copyItem,
|
|
5903
5959
|
onCancel: function onCancel() {
|
|
5904
5960
|
return Ctx.cancelAction();
|
|
@@ -5911,6 +5967,7 @@
|
|
|
5911
5967
|
}, "New id for \"" + item['@name'] + "\" copy"), /*#__PURE__*/React__default['default'].createElement("input", {
|
|
5912
5968
|
type: "text",
|
|
5913
5969
|
className: "input",
|
|
5970
|
+
"data-test": "inputCopyIdTest-" + item['@name'],
|
|
5914
5971
|
defaultValue: getNewId(item['@name'])
|
|
5915
5972
|
})));
|
|
5916
5973
|
}
|
|
@@ -6406,7 +6463,7 @@
|
|
|
6406
6463
|
}, /*#__PURE__*/React__default['default'].createElement("h3", {
|
|
6407
6464
|
className: "title is-size-6"
|
|
6408
6465
|
}, "Users"), /*#__PURE__*/React__default['default'].createElement("p", null, "Add a User"), /*#__PURE__*/React__default['default'].createElement(SearchInput, {
|
|
6409
|
-
path:
|
|
6466
|
+
path: Ctx.containerPath,
|
|
6410
6467
|
qs: [].concat(searchParsed, sortParsed),
|
|
6411
6468
|
traversal: Ctx,
|
|
6412
6469
|
onChange: addUser,
|
|
@@ -6539,7 +6596,8 @@
|
|
|
6539
6596
|
key: indx
|
|
6540
6597
|
}, /*#__PURE__*/React__default['default'].createElement("a", {
|
|
6541
6598
|
href: path,
|
|
6542
|
-
onClick: onClick
|
|
6599
|
+
onClick: onClick,
|
|
6600
|
+
"data-test": "breadcrumbItemTest-home"
|
|
6543
6601
|
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
6544
6602
|
className: "icon"
|
|
6545
6603
|
}, /*#__PURE__*/React__default['default'].createElement("i", {
|
|
@@ -6710,7 +6768,8 @@
|
|
|
6710
6768
|
properties: {},
|
|
6711
6769
|
components: {
|
|
6712
6770
|
Path: Path,
|
|
6713
|
-
EditComponent: EditComponent
|
|
6771
|
+
EditComponent: EditComponent,
|
|
6772
|
+
RenderFieldComponent: RenderFieldComponent
|
|
6714
6773
|
},
|
|
6715
6774
|
searchEngineQueryParamsFunction: {
|
|
6716
6775
|
PostreSQL: 'getQueryParamsPostresql',
|
|
@@ -7065,148 +7124,126 @@
|
|
|
7065
7124
|
failed_to_fetch: 'Failed to fetch data: Backend not running?',
|
|
7066
7125
|
invalid_credentials: 'Failed! Invalid credentials'
|
|
7067
7126
|
};
|
|
7068
|
-
var
|
|
7069
|
-
|
|
7070
|
-
|
|
7071
|
-
|
|
7072
|
-
|
|
7073
|
-
|
|
7074
|
-
|
|
7075
|
-
|
|
7076
|
-
|
|
7077
|
-
|
|
7078
|
-
|
|
7079
|
-
|
|
7080
|
-
|
|
7081
|
-
|
|
7082
|
-
|
|
7127
|
+
var initialState$4 = {
|
|
7128
|
+
username: '',
|
|
7129
|
+
password: '',
|
|
7130
|
+
loading: undefined,
|
|
7131
|
+
errors: undefined
|
|
7132
|
+
};
|
|
7133
|
+
var Login = function Login(_ref) {
|
|
7134
|
+
var currentSchema = _ref.currentSchema,
|
|
7135
|
+
setCurrentSchema = _ref.setCurrentSchema,
|
|
7136
|
+
schemas = _ref.schemas,
|
|
7137
|
+
auth = _ref.auth,
|
|
7138
|
+
onLogin = _ref.onLogin;
|
|
7139
|
+
|
|
7140
|
+
var _useSetState = useSetState(initialState$4),
|
|
7141
|
+
state = _useSetState[0],
|
|
7142
|
+
setState = _useSetState[1];
|
|
7083
7143
|
|
|
7084
|
-
|
|
7085
|
-
|
|
7086
|
-
|
|
7144
|
+
var inputRef = React.useRef(null);
|
|
7145
|
+
React.useEffect(function () {
|
|
7146
|
+
if (inputRef) {
|
|
7147
|
+
inputRef.current.focus();
|
|
7148
|
+
}
|
|
7149
|
+
}, [inputRef]);
|
|
7087
7150
|
|
|
7088
|
-
|
|
7089
|
-
|
|
7090
|
-
|
|
7091
|
-
|
|
7151
|
+
var doLogin = function doLogin(ev) {
|
|
7152
|
+
try {
|
|
7153
|
+
ev.preventDefault();
|
|
7154
|
+
setState({
|
|
7155
|
+
loading: true,
|
|
7156
|
+
errors: undefined
|
|
7157
|
+
});
|
|
7158
|
+
var username = state.username,
|
|
7159
|
+
password = state.password;
|
|
7092
7160
|
|
|
7093
|
-
|
|
7094
|
-
|
|
7095
|
-
|
|
7096
|
-
schema = _this$state.schema;
|
|
7161
|
+
if (currentSchema !== '') {
|
|
7162
|
+
auth.setAccount(currentSchema);
|
|
7163
|
+
}
|
|
7097
7164
|
|
|
7098
|
-
|
|
7099
|
-
|
|
7165
|
+
return Promise.resolve(auth.login(username, password)).then(function (res) {
|
|
7166
|
+
if (!res) {
|
|
7167
|
+
setState({
|
|
7168
|
+
errors: auth.errors,
|
|
7169
|
+
loading: false
|
|
7170
|
+
});
|
|
7171
|
+
return;
|
|
7100
7172
|
}
|
|
7101
7173
|
|
|
7102
|
-
|
|
7103
|
-
|
|
7104
|
-
|
|
7105
|
-
|
|
7106
|
-
|
|
7107
|
-
|
|
7108
|
-
});
|
|
7109
|
-
|
|
7110
|
-
return;
|
|
7111
|
-
}
|
|
7112
|
-
|
|
7113
|
-
if (_this.props.onLogin) {
|
|
7114
|
-
_this.props.onLogin();
|
|
7115
|
-
}
|
|
7116
|
-
});
|
|
7117
|
-
} catch (e) {
|
|
7118
|
-
return Promise.reject(e);
|
|
7119
|
-
}
|
|
7120
|
-
};
|
|
7121
|
-
|
|
7122
|
-
if (props.schemas) {
|
|
7123
|
-
_this.state.schema = props.schemas[0];
|
|
7174
|
+
if (onLogin) {
|
|
7175
|
+
onLogin();
|
|
7176
|
+
}
|
|
7177
|
+
});
|
|
7178
|
+
} catch (e) {
|
|
7179
|
+
return Promise.reject(e);
|
|
7124
7180
|
}
|
|
7125
|
-
|
|
7126
|
-
return _this;
|
|
7127
|
-
}
|
|
7128
|
-
|
|
7129
|
-
var _proto = Login.prototype;
|
|
7130
|
-
|
|
7131
|
-
_proto.componentDidMount = function componentDidMount() {
|
|
7132
|
-
this.ref.current.focus();
|
|
7133
7181
|
};
|
|
7134
7182
|
|
|
7135
|
-
|
|
7136
|
-
|
|
7137
|
-
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
|
|
7141
|
-
|
|
7142
|
-
|
|
7143
|
-
|
|
7144
|
-
|
|
7145
|
-
|
|
7146
|
-
|
|
7147
|
-
|
|
7148
|
-
|
|
7149
|
-
|
|
7150
|
-
|
|
7151
|
-
|
|
7152
|
-
},
|
|
7153
|
-
|
|
7154
|
-
|
|
7155
|
-
|
|
7156
|
-
|
|
7157
|
-
|
|
7158
|
-
|
|
7159
|
-
|
|
7160
|
-
|
|
7161
|
-
|
|
7162
|
-
|
|
7163
|
-
|
|
7164
|
-
|
|
7165
|
-
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
},
|
|
7169
|
-
|
|
7170
|
-
|
|
7171
|
-
|
|
7172
|
-
|
|
7173
|
-
|
|
7174
|
-
|
|
7175
|
-
|
|
7176
|
-
|
|
7177
|
-
|
|
7178
|
-
|
|
7179
|
-
|
|
7180
|
-
|
|
7181
|
-
|
|
7182
|
-
|
|
7183
|
-
|
|
7184
|
-
|
|
7185
|
-
|
|
7186
|
-
|
|
7187
|
-
|
|
7188
|
-
|
|
7189
|
-
|
|
7190
|
-
|
|
7191
|
-
|
|
7192
|
-
|
|
7193
|
-
|
|
7194
|
-
|
|
7195
|
-
|
|
7196
|
-
|
|
7197
|
-
|
|
7198
|
-
|
|
7199
|
-
type: "submit",
|
|
7200
|
-
"data-test": "btnLoginTest"
|
|
7201
|
-
}, "Login")), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7202
|
-
className: "field"
|
|
7203
|
-
}, errors && /*#__PURE__*/React__default['default'].createElement("p", {
|
|
7204
|
-
className: "has-text-danger"
|
|
7205
|
-
}, ERRORS[errors] || 'Generic error'))));
|
|
7206
|
-
};
|
|
7207
|
-
|
|
7208
|
-
return Login;
|
|
7209
|
-
}(React.Component);
|
|
7183
|
+
return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("form", {
|
|
7184
|
+
className: "login__form",
|
|
7185
|
+
action: "",
|
|
7186
|
+
onSubmit: doLogin,
|
|
7187
|
+
"data-test": "formLoginTest"
|
|
7188
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7189
|
+
className: "field"
|
|
7190
|
+
}, /*#__PURE__*/React__default['default'].createElement("label", {
|
|
7191
|
+
className: "label"
|
|
7192
|
+
}, "Username:"), /*#__PURE__*/React__default['default'].createElement("input", {
|
|
7193
|
+
type: "text",
|
|
7194
|
+
className: "input",
|
|
7195
|
+
placeholder: "Username",
|
|
7196
|
+
onChange: function onChange(e) {
|
|
7197
|
+
return setState({
|
|
7198
|
+
username: e.target.value
|
|
7199
|
+
});
|
|
7200
|
+
},
|
|
7201
|
+
value: state.username,
|
|
7202
|
+
ref: inputRef,
|
|
7203
|
+
"data-test": "inputUsernameLoginTest"
|
|
7204
|
+
})), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7205
|
+
className: "field"
|
|
7206
|
+
}, /*#__PURE__*/React__default['default'].createElement("label", {
|
|
7207
|
+
className: "label"
|
|
7208
|
+
}, "Password:"), /*#__PURE__*/React__default['default'].createElement("input", {
|
|
7209
|
+
type: "password",
|
|
7210
|
+
className: "input",
|
|
7211
|
+
placeholder: "Password",
|
|
7212
|
+
onChange: function onChange(e) {
|
|
7213
|
+
return setState({
|
|
7214
|
+
password: e.target.value
|
|
7215
|
+
});
|
|
7216
|
+
},
|
|
7217
|
+
value: state.password,
|
|
7218
|
+
"data-test": "inputPasswordLoginTest"
|
|
7219
|
+
})), schemas && schemas.length > 1 && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7220
|
+
className: "field"
|
|
7221
|
+
}, /*#__PURE__*/React__default['default'].createElement("label", {
|
|
7222
|
+
className: "label"
|
|
7223
|
+
}, "Schema:"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7224
|
+
className: "select"
|
|
7225
|
+
}, /*#__PURE__*/React__default['default'].createElement("select", {
|
|
7226
|
+
"data-test": "selectSchemaTest",
|
|
7227
|
+
onChange: function onChange(e) {
|
|
7228
|
+
return setCurrentSchema(e.target.value);
|
|
7229
|
+
}
|
|
7230
|
+
}, schemas.map(function (s) {
|
|
7231
|
+
return /*#__PURE__*/React__default['default'].createElement("option", {
|
|
7232
|
+
value: s,
|
|
7233
|
+
key: s
|
|
7234
|
+
}, s);
|
|
7235
|
+
})))), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7236
|
+
className: "field"
|
|
7237
|
+
}, /*#__PURE__*/React__default['default'].createElement("button", {
|
|
7238
|
+
className: "button is-warning",
|
|
7239
|
+
type: "submit",
|
|
7240
|
+
"data-test": "btnLoginTest"
|
|
7241
|
+
}, "Login")), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7242
|
+
className: "field"
|
|
7243
|
+
}, state.errors && /*#__PURE__*/React__default['default'].createElement("p", {
|
|
7244
|
+
className: "has-text-danger"
|
|
7245
|
+
}, ERRORS[state.errors] || 'Generic error'))));
|
|
7246
|
+
};
|
|
7210
7247
|
|
|
7211
7248
|
function _catch$3(body, recover) {
|
|
7212
7249
|
try {
|
|
@@ -7661,6 +7698,7 @@
|
|
|
7661
7698
|
exports.RItem = RItem;
|
|
7662
7699
|
exports.RemoveItems = RemoveItems;
|
|
7663
7700
|
exports.RenderField = RenderField;
|
|
7701
|
+
exports.RenderFieldComponent = RenderFieldComponent;
|
|
7664
7702
|
exports.RequiredFieldsForm = RequiredFieldsForm;
|
|
7665
7703
|
exports.RestClient = RestClient;
|
|
7666
7704
|
exports.SearchInput = SearchInput;
|
|
@@ -7688,7 +7726,6 @@
|
|
|
7688
7726
|
exports.generateUID = generateUID;
|
|
7689
7727
|
exports.get = get$1;
|
|
7690
7728
|
exports.getClient = getClient;
|
|
7691
|
-
exports.getContainerFromPath = getContainerFromPath;
|
|
7692
7729
|
exports.getNewId = getNewId;
|
|
7693
7730
|
exports.isEmail = isEmail;
|
|
7694
7731
|
exports.isEmpty = isEmpty;
|