@panneau/medias 3.0.140 → 3.0.143
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/assets/css/styles.css +1 -0
- package/es/index.js +524 -25
- package/lib/index.js +523 -23
- package/package.json +15 -12
package/lib/index.js
CHANGED
@@ -8,8 +8,10 @@ var PropTypes = require('prop-types');
|
|
8
8
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
9
9
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
10
10
|
var classNames = require('classnames');
|
11
|
+
var reactIntl = require('react-intl');
|
11
12
|
var core = require('@panneau/core');
|
12
13
|
var hooks = require('@panneau/core/hooks');
|
14
|
+
var Button = require('@panneau/element-button');
|
13
15
|
var Buttons = require('@panneau/element-buttons');
|
14
16
|
var Grid = require('@panneau/element-grid');
|
15
17
|
var Icon = require('@panneau/element-icon');
|
@@ -17,10 +19,13 @@ var MediaCard = require('@panneau/element-media-card');
|
|
17
19
|
var Pagination = require('@panneau/element-pagination');
|
18
20
|
var Table = require('@panneau/element-table');
|
19
21
|
var Filters = require('@panneau/filter-filters');
|
20
|
-
var
|
21
|
-
var data = require('@panneau/data');
|
22
|
-
var Button = require('@panneau/element-button');
|
22
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
23
23
|
var contexts = require('@panneau/core/contexts');
|
24
|
+
var Form = require('@panneau/element-form');
|
25
|
+
var MediaPlayer = require('@panneau/element-media-player');
|
26
|
+
var MediaPreview = require('@panneau/element-media-preview');
|
27
|
+
var lodash = require('lodash');
|
28
|
+
var data = require('@panneau/data');
|
24
29
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
25
30
|
|
26
31
|
/* eslint-disable react/jsx-props-no-spreading */
|
@@ -35,11 +40,11 @@ var apiPropTypes = PropTypes.shape({
|
|
35
40
|
update: PropTypes.func.isRequired,
|
36
41
|
"delete": PropTypes.func.isRequired
|
37
42
|
});
|
38
|
-
var propTypes$
|
43
|
+
var propTypes$8 = {
|
39
44
|
api: apiPropTypes,
|
40
45
|
children: PropTypes.node.isRequired
|
41
46
|
};
|
42
|
-
var defaultProps$
|
47
|
+
var defaultProps$8 = {
|
43
48
|
api: null
|
44
49
|
};
|
45
50
|
function MediasApiProvider(_ref) {
|
@@ -53,10 +58,10 @@ function MediasApiProvider(_ref) {
|
|
53
58
|
value: api
|
54
59
|
}, children);
|
55
60
|
}
|
56
|
-
MediasApiProvider.propTypes = propTypes$
|
57
|
-
MediasApiProvider.defaultProps = defaultProps$
|
61
|
+
MediasApiProvider.propTypes = propTypes$8;
|
62
|
+
MediasApiProvider.defaultProps = defaultProps$8;
|
58
63
|
|
59
|
-
var _excluded$
|
64
|
+
var _excluded$7 = ["items", "pageItems"];
|
60
65
|
var useMedias = function useMedias() {
|
61
66
|
var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
62
67
|
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
@@ -74,7 +79,7 @@ var useMedias = function useMedias() {
|
|
74
79
|
}, opts)),
|
75
80
|
items = _useItems.items,
|
76
81
|
pageItems = _useItems.pageItems,
|
77
|
-
request = _objectWithoutProperties(_useItems, _excluded$
|
82
|
+
request = _objectWithoutProperties(_useItems, _excluded$7);
|
78
83
|
return _objectSpread({
|
79
84
|
medias: page !== null ? pageItems : items,
|
80
85
|
allMedias: items
|
@@ -110,7 +115,7 @@ var useMediasRecent = function useMediasRecent(opts) {
|
|
110
115
|
};
|
111
116
|
var useMediasRecent$1 = useMediasRecent;
|
112
117
|
|
113
|
-
var _excluded$
|
118
|
+
var _excluded$6 = ["data"];
|
114
119
|
var useMedia = function useMedia(id, opts) {
|
115
120
|
var api = useMediasApi();
|
116
121
|
var loader = React.useCallback(function () {
|
@@ -118,7 +123,7 @@ var useMedia = function useMedia(id, opts) {
|
|
118
123
|
}, [api, id]);
|
119
124
|
var _useData = data.useData(loader, opts),
|
120
125
|
data$1 = _useData.data,
|
121
|
-
request = _objectWithoutProperties(_useData, _excluded$
|
126
|
+
request = _objectWithoutProperties(_useData, _excluded$6);
|
122
127
|
return _objectSpread({
|
123
128
|
story: data$1
|
124
129
|
}, request);
|
@@ -165,6 +170,456 @@ var useMediaUpdate = function useMediaUpdate() {
|
|
165
170
|
};
|
166
171
|
var useMediaUpdate$1 = useMediaUpdate;
|
167
172
|
|
173
|
+
var useMediaDestroy = function useMediaDestroy() {
|
174
|
+
var _useState = React.useState(false),
|
175
|
+
_useState2 = _slicedToArray(_useState, 2),
|
176
|
+
loading = _useState2[0],
|
177
|
+
setLoading = _useState2[1];
|
178
|
+
var api = useMediasApi();
|
179
|
+
var destroy = React.useCallback(function (id, data) {
|
180
|
+
setLoading(true);
|
181
|
+
return api["delete"](id, data).then(function (response) {
|
182
|
+
setLoading(false);
|
183
|
+
return response;
|
184
|
+
});
|
185
|
+
}, [api, setLoading]);
|
186
|
+
return {
|
187
|
+
destroy: destroy,
|
188
|
+
loading: loading
|
189
|
+
};
|
190
|
+
};
|
191
|
+
|
192
|
+
var styles = {"mediaFrame":"panneau-medias-mediaFrame","playButton":"panneau-medias-playButton"};
|
193
|
+
|
194
|
+
var propTypes$7 = {
|
195
|
+
value: PropTypes.shape({
|
196
|
+
id: PropTypes.string,
|
197
|
+
type: PropTypes.string
|
198
|
+
}),
|
199
|
+
className: PropTypes.string
|
200
|
+
};
|
201
|
+
var defaultProps$7 = {
|
202
|
+
value: null,
|
203
|
+
className: null
|
204
|
+
};
|
205
|
+
function MediaFrame(_ref) {
|
206
|
+
var value = _ref.value,
|
207
|
+
className = _ref.className;
|
208
|
+
var _useState = React.useState(false),
|
209
|
+
_useState2 = _slicedToArray(_useState, 2),
|
210
|
+
showPlayer = _useState2[0],
|
211
|
+
setShowPlayer = _useState2[1];
|
212
|
+
var _ref2 = value || {},
|
213
|
+
_ref2$type = _ref2.type,
|
214
|
+
type = _ref2$type === void 0 ? null : _ref2$type;
|
215
|
+
var onClick = React.useCallback(function () {
|
216
|
+
setShowPlayer(!showPlayer);
|
217
|
+
}, [showPlayer, setShowPlayer]);
|
218
|
+
return /*#__PURE__*/React.createElement("div", {
|
219
|
+
className: classNames([className, _defineProperty({}, className, className != null)])
|
220
|
+
}, showPlayer ? /*#__PURE__*/React.createElement(MediaPlayer, {
|
221
|
+
value: value
|
222
|
+
}) : /*#__PURE__*/React.createElement(MediaPreview, {
|
223
|
+
value: value,
|
224
|
+
width: "100%"
|
225
|
+
}), /*#__PURE__*/React.createElement("div", {
|
226
|
+
className: styles.playButton
|
227
|
+
}, !showPlayer && (type === 'video' || type === 'embed' || type === 'audio') ? /*#__PURE__*/React.createElement(Button, {
|
228
|
+
className: "rounded-circle",
|
229
|
+
theme: "secondary",
|
230
|
+
onClick: onClick,
|
231
|
+
icon: "play-fill"
|
232
|
+
}) : null));
|
233
|
+
}
|
234
|
+
MediaFrame.propTypes = propTypes$7;
|
235
|
+
MediaFrame.defaultProps = defaultProps$7;
|
236
|
+
|
237
|
+
var _excluded$5 = ["label", "path", "component"];
|
238
|
+
var propTypes$6 = {
|
239
|
+
value: PropTypes.shape({
|
240
|
+
metadata: PropTypes.shape({}),
|
241
|
+
user: PropTypes.shape({}),
|
242
|
+
createdAt: PropTypes.string
|
243
|
+
}),
|
244
|
+
sections: PropTypes.arrayOf(PropTypes.shape({
|
245
|
+
title: PropTypes.node,
|
246
|
+
items: PropTypes.arrayOf(PropTypes.shape({})) // displays
|
247
|
+
})),
|
248
|
+
displays: PropTypes.arrayOf(PropTypes.shape({
|
249
|
+
section: PropTypes.string
|
250
|
+
})),
|
251
|
+
className: PropTypes.string
|
252
|
+
};
|
253
|
+
var defaultProps$6 = {
|
254
|
+
value: null,
|
255
|
+
sections: null,
|
256
|
+
displays: null,
|
257
|
+
className: null
|
258
|
+
};
|
259
|
+
function MediaMetadata(_ref) {
|
260
|
+
var sections = _ref.sections,
|
261
|
+
displays = _ref.displays,
|
262
|
+
value = _ref.value,
|
263
|
+
className = _ref.className;
|
264
|
+
var displayComponents = contexts.useDisplaysComponentsManager();
|
265
|
+
var finalSections = React.useMemo(function () {
|
266
|
+
var displaysWithoutSection = (displays || []).filter(function (_ref2) {
|
267
|
+
var _ref2$section = _ref2.section,
|
268
|
+
section = _ref2$section === void 0 ? null : _ref2$section;
|
269
|
+
return section === null;
|
270
|
+
});
|
271
|
+
return (sections || []).map(function (_ref3) {
|
272
|
+
var _ref3$id = _ref3.id,
|
273
|
+
id = _ref3$id === void 0 ? null : _ref3$id,
|
274
|
+
_ref3$title = _ref3.title,
|
275
|
+
title = _ref3$title === void 0 ? null : _ref3$title;
|
276
|
+
return {
|
277
|
+
id: id,
|
278
|
+
title: title,
|
279
|
+
items: (displays || []).filter(function (_ref4) {
|
280
|
+
var _ref4$section = _ref4.section,
|
281
|
+
section = _ref4$section === void 0 ? null : _ref4$section;
|
282
|
+
return section === id;
|
283
|
+
})
|
284
|
+
};
|
285
|
+
}).concat({
|
286
|
+
title: null,
|
287
|
+
items: displaysWithoutSection
|
288
|
+
});
|
289
|
+
}, [sections, displays]);
|
290
|
+
return /*#__PURE__*/React.createElement("div", {
|
291
|
+
className: classNames(['px-2', _defineProperty({}, className, className !== null)])
|
292
|
+
}, (finalSections || []).map(function (_ref6, i) {
|
293
|
+
var _ref6$title = _ref6.title,
|
294
|
+
title = _ref6$title === void 0 ? null : _ref6$title,
|
295
|
+
_ref6$items = _ref6.items,
|
296
|
+
items = _ref6$items === void 0 ? [] : _ref6$items;
|
297
|
+
return /*#__PURE__*/React.createElement("div", {
|
298
|
+
className: "mb-5",
|
299
|
+
key: "section-".concat(i + 1)
|
300
|
+
}, title !== null ? /*#__PURE__*/React.createElement("h6", {
|
301
|
+
className: "px-1"
|
302
|
+
}, title) : null, /*#__PURE__*/React.createElement("ul", {
|
303
|
+
className: "list-group list-group-flush"
|
304
|
+
}, (items || []).map(function (_ref7, index) {
|
305
|
+
var label = _ref7.label,
|
306
|
+
path = _ref7.path,
|
307
|
+
_ref7$component = _ref7.component,
|
308
|
+
component = _ref7$component === void 0 ? null : _ref7$component,
|
309
|
+
props = _objectWithoutProperties(_ref7, _excluded$5);
|
310
|
+
var Component = displayComponents.getComponent(component || 'text');
|
311
|
+
var itemValue = lodash.get(value, path, null);
|
312
|
+
return Component !== null && itemValue !== null ? /*#__PURE__*/React.createElement("li", {
|
313
|
+
className: classNames(['row', 'd-flex', 'align-items-center', 'justify-content-between', 'p-1', 'border-secondary-1', 'border-1', 'border-bottom', 'text-small', {
|
314
|
+
'border-top': index === 0
|
315
|
+
}]),
|
316
|
+
key: "item-".concat(index + 1)
|
317
|
+
}, /*#__PURE__*/React.createElement("div", {
|
318
|
+
className: "col-auto"
|
319
|
+
}, label), /*#__PURE__*/React.createElement("div", {
|
320
|
+
className: "col-auto align-right"
|
321
|
+
}, /*#__PURE__*/React.createElement(Component, Object.assign({}, props, {
|
322
|
+
value: itemValue
|
323
|
+
})))) : null;
|
324
|
+
})));
|
325
|
+
}));
|
326
|
+
}
|
327
|
+
MediaMetadata.propTypes = propTypes$6;
|
328
|
+
MediaMetadata.defaultProps = defaultProps$6;
|
329
|
+
|
330
|
+
var defaultFields = [
|
331
|
+
// { name: 'type', label: 'Type', type: 'string', component: 'text', disabled: true },
|
332
|
+
{
|
333
|
+
name: 'name',
|
334
|
+
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
335
|
+
id: "WX83V9",
|
336
|
+
defaultMessage: [{
|
337
|
+
"type": 0,
|
338
|
+
"value": "File name"
|
339
|
+
}]
|
340
|
+
}),
|
341
|
+
type: 'text',
|
342
|
+
component: 'text'
|
343
|
+
}, {
|
344
|
+
name: 'description',
|
345
|
+
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
346
|
+
id: "ygNvmz",
|
347
|
+
defaultMessage: [{
|
348
|
+
"type": 0,
|
349
|
+
"value": "Description"
|
350
|
+
}]
|
351
|
+
}),
|
352
|
+
type: 'text',
|
353
|
+
component: 'text'
|
354
|
+
}
|
355
|
+
// {
|
356
|
+
// name: 'url',
|
357
|
+
// label: <FormattedMessage defaultMessage="URL" description="Field name" />,
|
358
|
+
// type: 'text',
|
359
|
+
// component: 'url',
|
360
|
+
// },
|
361
|
+
// {
|
362
|
+
// name: 'thumbnail_url',
|
363
|
+
// label: <FormattedMessage defaultMessage="Thumbnail URL" description="Field name" />,
|
364
|
+
// type: 'text',
|
365
|
+
// component: 'url',
|
366
|
+
// },
|
367
|
+
];
|
368
|
+
|
369
|
+
var defaultDisplays = [{
|
370
|
+
id: 'user',
|
371
|
+
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
372
|
+
id: "yByaBh",
|
373
|
+
defaultMessage: [{
|
374
|
+
"type": 0,
|
375
|
+
"value": "Added by"
|
376
|
+
}]
|
377
|
+
}),
|
378
|
+
component: 'avatar',
|
379
|
+
path: 'user',
|
380
|
+
section: 'info'
|
381
|
+
}, {
|
382
|
+
id: 'created_at',
|
383
|
+
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
384
|
+
id: "PN+75e",
|
385
|
+
defaultMessage: [{
|
386
|
+
"type": 0,
|
387
|
+
"value": "Created at"
|
388
|
+
}]
|
389
|
+
}),
|
390
|
+
component: 'date',
|
391
|
+
path: 'created_at',
|
392
|
+
format: 'yyyy-MM-dd hh:ss',
|
393
|
+
section: 'info'
|
394
|
+
}, {
|
395
|
+
id: 'format',
|
396
|
+
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
397
|
+
id: "JuxiUN",
|
398
|
+
defaultMessage: [{
|
399
|
+
"type": 0,
|
400
|
+
"value": "Format"
|
401
|
+
}]
|
402
|
+
}),
|
403
|
+
component: 'unit',
|
404
|
+
format: 'format',
|
405
|
+
path: 'format',
|
406
|
+
section: 'technical'
|
407
|
+
}, {
|
408
|
+
id: 'dimensions',
|
409
|
+
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
410
|
+
id: "rmJBin",
|
411
|
+
defaultMessage: [{
|
412
|
+
"type": 0,
|
413
|
+
"value": "Dimensions"
|
414
|
+
}]
|
415
|
+
}),
|
416
|
+
component: 'unit',
|
417
|
+
format: 'dimensions',
|
418
|
+
path: 'metadata',
|
419
|
+
section: 'technical'
|
420
|
+
}, {
|
421
|
+
id: 'size',
|
422
|
+
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
423
|
+
id: "g2CRt5",
|
424
|
+
defaultMessage: [{
|
425
|
+
"type": 0,
|
426
|
+
"value": "Size"
|
427
|
+
}]
|
428
|
+
}),
|
429
|
+
component: 'unit',
|
430
|
+
format: 'bytes',
|
431
|
+
path: 'metadata.size',
|
432
|
+
section: 'technical'
|
433
|
+
}, {
|
434
|
+
id: 'duration',
|
435
|
+
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
436
|
+
id: "wU++NJ",
|
437
|
+
defaultMessage: [{
|
438
|
+
"type": 0,
|
439
|
+
"value": "Duration"
|
440
|
+
}]
|
441
|
+
}),
|
442
|
+
component: 'unit',
|
443
|
+
format: 'duration',
|
444
|
+
path: 'metadata.duration',
|
445
|
+
section: 'technical'
|
446
|
+
}];
|
447
|
+
|
448
|
+
var defaultSections = [{
|
449
|
+
id: 'info',
|
450
|
+
title: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
451
|
+
id: "3RT69u",
|
452
|
+
defaultMessage: [{
|
453
|
+
"type": 0,
|
454
|
+
"value": "Informations"
|
455
|
+
}]
|
456
|
+
})
|
457
|
+
}, {
|
458
|
+
id: 'technical',
|
459
|
+
title: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
460
|
+
id: "xKUOLG",
|
461
|
+
defaultMessage: [{
|
462
|
+
"type": 0,
|
463
|
+
"value": "Technical details"
|
464
|
+
}]
|
465
|
+
})
|
466
|
+
}];
|
467
|
+
|
468
|
+
var propTypes$5 = {
|
469
|
+
value: PropTypes.shape({
|
470
|
+
id: PropTypes.string
|
471
|
+
}),
|
472
|
+
fields: PropTypes.arrayOf(PropTypes.shape({
|
473
|
+
name: PropTypes.string
|
474
|
+
})),
|
475
|
+
sections: PropTypes.arrayOf(PropTypes.shape({
|
476
|
+
id: PropTypes.string,
|
477
|
+
title: PropTypes.string
|
478
|
+
})),
|
479
|
+
displays: PropTypes.arrayOf(PropTypes.shape({
|
480
|
+
name: PropTypes.string
|
481
|
+
})),
|
482
|
+
onChange: PropTypes.func.isRequired,
|
483
|
+
onConfirm: PropTypes.func.isRequired,
|
484
|
+
onDelete: PropTypes.func,
|
485
|
+
onClose: PropTypes.func,
|
486
|
+
className: PropTypes.string
|
487
|
+
};
|
488
|
+
var defaultProps$5 = {
|
489
|
+
value: null,
|
490
|
+
fields: defaultFields,
|
491
|
+
sections: defaultSections,
|
492
|
+
displays: defaultDisplays,
|
493
|
+
onClose: null,
|
494
|
+
onDelete: null,
|
495
|
+
className: null
|
496
|
+
};
|
497
|
+
function MediaForm(_ref) {
|
498
|
+
var initialValue = _ref.value,
|
499
|
+
initialFields = _ref.fields,
|
500
|
+
sections = _ref.sections,
|
501
|
+
displays = _ref.displays,
|
502
|
+
onChange = _ref.onChange,
|
503
|
+
onConfirm = _ref.onConfirm,
|
504
|
+
onDelete = _ref.onDelete,
|
505
|
+
onClose = _ref.onClose,
|
506
|
+
className = _ref.className;
|
507
|
+
var FieldsComponent = contexts.useFieldComponent('fields');
|
508
|
+
var _useMediaUpdate = useMediaUpdate$1(),
|
509
|
+
update = _useMediaUpdate.update,
|
510
|
+
updating = _useMediaUpdate.loading;
|
511
|
+
var _useMediaDestroy = useMediaDestroy(),
|
512
|
+
destroy = _useMediaDestroy.destroy,
|
513
|
+
destroying = _useMediaDestroy.loading;
|
514
|
+
var _useState = React.useState(false),
|
515
|
+
_useState2 = _slicedToArray(_useState, 2);
|
516
|
+
_useState2[0];
|
517
|
+
var setChanged = _useState2[1];
|
518
|
+
var disabled = updating || destroying || initialValue === null;
|
519
|
+
var _ref2 = initialValue || {},
|
520
|
+
_ref2$name = _ref2.name,
|
521
|
+
name = _ref2$name === void 0 ? null : _ref2$name,
|
522
|
+
_ref2$type = _ref2.type,
|
523
|
+
type = _ref2$type === void 0 ? null : _ref2$type;
|
524
|
+
var onChangeMedia = React.useCallback(function (newValue) {
|
525
|
+
if (onChange !== null) {
|
526
|
+
onChange(newValue);
|
527
|
+
}
|
528
|
+
setChanged(true);
|
529
|
+
}, [onChange, setChanged]);
|
530
|
+
var onMediaSaved = React.useCallback(function (newValue) {
|
531
|
+
if (onConfirm !== null) {
|
532
|
+
onConfirm(newValue);
|
533
|
+
}
|
534
|
+
setChanged(false);
|
535
|
+
}, [onChange, setChanged]);
|
536
|
+
var onDeleteMedia = React.useCallback(function () {
|
537
|
+
// Destroy
|
538
|
+
if (onClose !== null) {
|
539
|
+
onClose();
|
540
|
+
}
|
541
|
+
if (onDelete !== null) {
|
542
|
+
onDelete();
|
543
|
+
}
|
544
|
+
setChanged(false);
|
545
|
+
}, [destroy, setChanged]);
|
546
|
+
var postForm = React.useCallback(function (action, data) {
|
547
|
+
return initialValue !== null ? update(initialValue.id, data) : new Promise();
|
548
|
+
}, [initialValue, update]);
|
549
|
+
var _useForm = hooks.useForm({
|
550
|
+
fields: initialFields,
|
551
|
+
postForm: postForm,
|
552
|
+
onComplete: onMediaSaved,
|
553
|
+
value: initialValue,
|
554
|
+
setValue: onChange
|
555
|
+
}),
|
556
|
+
value = _useForm.value,
|
557
|
+
setValue = _useForm.setValue,
|
558
|
+
fields = _useForm.fields;
|
559
|
+
_useForm.onSubmit;
|
560
|
+
_useForm.status;
|
561
|
+
_useForm.generalError;
|
562
|
+
_useForm.errors;
|
563
|
+
return /*#__PURE__*/React.createElement("div", {
|
564
|
+
className: classNames(['text-body', _defineProperty({}, className, className !== null)])
|
565
|
+
}, /*#__PURE__*/React.createElement("div", {
|
566
|
+
className: "d-flex w-100 justify-content-between mb-2 pb-2 border-bottom"
|
567
|
+
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h4", {
|
568
|
+
className: "d-inline"
|
569
|
+
}, name), /*#__PURE__*/React.createElement("span", {
|
570
|
+
className: "mx-2"
|
571
|
+
}, type)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
|
572
|
+
className: "me-2",
|
573
|
+
theme: "danger",
|
574
|
+
onClick: onDeleteMedia
|
575
|
+
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
576
|
+
id: "Bhu3B2",
|
577
|
+
defaultMessage: [{
|
578
|
+
"type": 0,
|
579
|
+
"value": "Delete"
|
580
|
+
}]
|
581
|
+
})), onConfirm !== null ? /*#__PURE__*/React.createElement(Button, {
|
582
|
+
theme: "primary",
|
583
|
+
onClick: onConfirm
|
584
|
+
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
585
|
+
id: "R1HYj0",
|
586
|
+
defaultMessage: [{
|
587
|
+
"type": 0,
|
588
|
+
"value": "Save"
|
589
|
+
}]
|
590
|
+
})) : null)), /*#__PURE__*/React.createElement("div", {
|
591
|
+
className: "row"
|
592
|
+
}, /*#__PURE__*/React.createElement("div", {
|
593
|
+
className: "col-md-6"
|
594
|
+
}, /*#__PURE__*/React.createElement("div", {
|
595
|
+
className: "position-relative w-100",
|
596
|
+
style: {
|
597
|
+
height: 400
|
598
|
+
}
|
599
|
+
}, /*#__PURE__*/React.createElement("div", {
|
600
|
+
className: styles.mediaFrame
|
601
|
+
}, /*#__PURE__*/React.createElement(MediaFrame, {
|
602
|
+
value: value
|
603
|
+
})))), /*#__PURE__*/React.createElement("div", {
|
604
|
+
className: "col-md-6"
|
605
|
+
}, /*#__PURE__*/React.createElement(Form, {
|
606
|
+
onChange: onChangeMedia,
|
607
|
+
withoutActions: true
|
608
|
+
}, /*#__PURE__*/React.createElement(FieldsComponent, {
|
609
|
+
fields: fields,
|
610
|
+
value: value,
|
611
|
+
onChange: setValue,
|
612
|
+
disabled: disabled
|
613
|
+
})), /*#__PURE__*/React.createElement(MediaMetadata, {
|
614
|
+
className: "mt-5",
|
615
|
+
value: value,
|
616
|
+
sections: sections,
|
617
|
+
displays: displays
|
618
|
+
}))));
|
619
|
+
}
|
620
|
+
MediaForm.propTypes = propTypes$5;
|
621
|
+
MediaForm.defaultProps = defaultProps$5;
|
622
|
+
|
168
623
|
var defaultColumns = [{
|
169
624
|
id: 'image',
|
170
625
|
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
@@ -362,20 +817,20 @@ var defaultFilters = [{
|
|
362
817
|
name: 'search'
|
363
818
|
}];
|
364
819
|
|
365
|
-
var styles = {};
|
366
|
-
|
367
820
|
var _excluded$4 = ["page", "count"];
|
368
821
|
var propTypes$4 = {
|
369
822
|
items: core.PropTypes.medias,
|
823
|
+
buttons: core.PropTypes.buttons,
|
370
824
|
filters: core.PropTypes.filters,
|
371
825
|
columns: core.PropTypes.tableColumns,
|
372
826
|
query: PropTypes.shape({}),
|
373
827
|
baseUrl: PropTypes.string,
|
374
|
-
|
828
|
+
fields: core.PropTypes.fields,
|
375
829
|
layout: PropTypes.string,
|
376
830
|
layouts: PropTypes.arrayOf(PropTypes.shape({})),
|
377
831
|
theme: PropTypes.string,
|
378
832
|
tableProps: PropTypes.bool,
|
833
|
+
onSelectItem: PropTypes.func,
|
379
834
|
onItemsChange: PropTypes.func,
|
380
835
|
selectedCount: PropTypes.number,
|
381
836
|
onClearSelected: PropTypes.func,
|
@@ -383,9 +838,10 @@ var propTypes$4 = {
|
|
383
838
|
};
|
384
839
|
var defaultProps$4 = {
|
385
840
|
items: null,
|
841
|
+
buttons: null,
|
386
842
|
filters: defaultFilters,
|
387
843
|
columns: defaultColumns,
|
388
|
-
|
844
|
+
fields: defaultFields,
|
389
845
|
query: null,
|
390
846
|
baseUrl: null,
|
391
847
|
layout: 'table',
|
@@ -402,6 +858,7 @@ var defaultProps$4 = {
|
|
402
858
|
}],
|
403
859
|
theme: null,
|
404
860
|
tableProps: null,
|
861
|
+
onSelectItem: null,
|
405
862
|
onItemsChange: null,
|
406
863
|
selectedCount: null,
|
407
864
|
onClearSelected: null,
|
@@ -410,6 +867,7 @@ var defaultProps$4 = {
|
|
410
867
|
function MediasBrowser(_ref) {
|
411
868
|
var initialItems = _ref.items,
|
412
869
|
baseUrl = _ref.baseUrl,
|
870
|
+
buttons = _ref.buttons,
|
413
871
|
filters = _ref.filters,
|
414
872
|
columns = _ref.columns,
|
415
873
|
initialQuery = _ref.query,
|
@@ -417,6 +875,7 @@ function MediasBrowser(_ref) {
|
|
417
875
|
layouts = _ref.layouts,
|
418
876
|
theme = _ref.theme,
|
419
877
|
tableProps = _ref.tableProps,
|
878
|
+
onSelectItem = _ref.onSelectItem,
|
420
879
|
onItemsChange = _ref.onItemsChange,
|
421
880
|
selectedCount = _ref.selectedCount,
|
422
881
|
onClearSelected = _ref.onClearSelected,
|
@@ -456,7 +915,9 @@ function MediasBrowser(_ref) {
|
|
456
915
|
lastPage = _useMedias.lastPage,
|
457
916
|
total = _useMedias.total;
|
458
917
|
React.useEffect(function () {
|
459
|
-
onItemsChange
|
918
|
+
if (onItemsChange !== null) {
|
919
|
+
onItemsChange(items);
|
920
|
+
}
|
460
921
|
}, [items, onItemsChange]);
|
461
922
|
var _useState = React.useState(initialLayout || 'grid'),
|
462
923
|
_useState2 = _slicedToArray(_useState, 2),
|
@@ -468,6 +929,16 @@ function MediasBrowser(_ref) {
|
|
468
929
|
var onClickLayout = React.useCallback(function (lay) {
|
469
930
|
setLayout(lay);
|
470
931
|
}, [setLayout]);
|
932
|
+
var _useState3 = React.useState(null),
|
933
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
934
|
+
media = _useState4[0],
|
935
|
+
setMedia = _useState4[1];
|
936
|
+
var onOpenMedia = React.useCallback(function (currentMedia) {
|
937
|
+
setMedia(currentMedia);
|
938
|
+
}, [setMedia]);
|
939
|
+
var onCloseMedia = React.useCallback(function () {
|
940
|
+
setMedia(null);
|
941
|
+
}, [setMedia]);
|
471
942
|
var pagination = /*#__PURE__*/React.createElement(Pagination, {
|
472
943
|
page: page,
|
473
944
|
lastPage: lastPage,
|
@@ -484,13 +955,32 @@ function MediasBrowser(_ref) {
|
|
484
955
|
});
|
485
956
|
return /*#__PURE__*/React.createElement("div", {
|
486
957
|
className: classNames([styles.container, className])
|
487
|
-
}, /*#__PURE__*/React.createElement(
|
958
|
+
}, media !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
959
|
+
className: "mt-2 mb-4"
|
960
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
961
|
+
theme: "primary",
|
962
|
+
outline: true,
|
963
|
+
onClick: onCloseMedia,
|
964
|
+
icon: "arrow-left"
|
965
|
+
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
966
|
+
id: "ac4218",
|
967
|
+
defaultMessage: [{
|
968
|
+
"type": 0,
|
969
|
+
"value": "Back to files"
|
970
|
+
}]
|
971
|
+
}))), /*#__PURE__*/React.createElement(MediaForm, {
|
972
|
+
value: media,
|
973
|
+
onClose: onCloseMedia
|
974
|
+
})) : /*#__PURE__*/React.createElement(React.Fragment, null, buttons !== null ? /*#__PURE__*/React.createElement(Buttons, {
|
975
|
+
items: buttons,
|
976
|
+
className: "mb-2"
|
977
|
+
}) : null, filters !== null ? /*#__PURE__*/React.createElement(Filters, {
|
488
978
|
value: query,
|
489
979
|
filters: filters,
|
490
980
|
onChange: onQueryChange,
|
491
981
|
onReset: onQueryReset,
|
492
982
|
theme: theme
|
493
|
-
}), /*#__PURE__*/React.createElement("div", {
|
983
|
+
}) : null, /*#__PURE__*/React.createElement("div", {
|
494
984
|
className: classNames(['d-flex', 'mt-1', 'mb-3', {
|
495
985
|
'justify-content-between': hasLayouts,
|
496
986
|
'justify-content-end': !hasLayouts
|
@@ -509,21 +999,29 @@ function MediasBrowser(_ref) {
|
|
509
999
|
});
|
510
1000
|
})
|
511
1001
|
}) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid, Object.assign({}, tableProps, {
|
1002
|
+
size: "xsmall",
|
512
1003
|
items: items || [],
|
513
1004
|
component: MediaCard,
|
514
1005
|
componentProps: {
|
515
1006
|
className: 'd-flex w-100',
|
516
|
-
cardClassName: 'flex-grow-1'
|
1007
|
+
cardClassName: 'flex-grow-1',
|
1008
|
+
vertical: true
|
1009
|
+
},
|
1010
|
+
onSelectItem: onSelectItem !== null ? onSelectItem : function (it) {
|
1011
|
+
return onOpenMedia(it);
|
517
1012
|
}
|
518
|
-
})) : /*#__PURE__*/React.createElement(Table, Object.assign({}, tableProps, {
|
1013
|
+
})) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, Object.assign({}, tableProps, {
|
519
1014
|
columns: columns,
|
520
1015
|
items: items,
|
521
1016
|
displayPlaceholder: /*#__PURE__*/React.createElement("span", {
|
522
1017
|
className: "text-secondary text-opacity-75"
|
523
|
-
}, "\u2014")
|
524
|
-
|
1018
|
+
}, "\u2014"),
|
1019
|
+
onSelectItem: onSelectItem !== null ? onSelectItem : function (it) {
|
1020
|
+
return onOpenMedia(it);
|
1021
|
+
}
|
1022
|
+
})) : null, /*#__PURE__*/React.createElement("div", {
|
525
1023
|
className: classNames(['d-flex', 'mt-3', 'mb-1', 'justify-content-end'])
|
526
|
-
}, pagination));
|
1024
|
+
}, pagination)));
|
527
1025
|
}
|
528
1026
|
MediasBrowser.propTypes = propTypes$4;
|
529
1027
|
MediasBrowser.defaultProps = defaultProps$4;
|
@@ -606,6 +1104,7 @@ function MediasPicker(_ref) {
|
|
606
1104
|
selectedItems: selectedItems,
|
607
1105
|
pageSelected: pageSelected
|
608
1106
|
},
|
1107
|
+
onSelectItem: onSelectItem,
|
609
1108
|
onItemsChange: onItemsChange,
|
610
1109
|
selectedCount: selectedCount,
|
611
1110
|
onClearSelected: onClearSelected
|
@@ -721,6 +1220,7 @@ function MediasResourceBrowser(_ref) {
|
|
721
1220
|
MediasResourceBrowser.propTypes = propTypes;
|
722
1221
|
MediasResourceBrowser.defaultProps = defaultProps;
|
723
1222
|
|
1223
|
+
exports.MediaForm = MediaForm;
|
724
1224
|
exports.MediasApiProvider = MediasApiProvider;
|
725
1225
|
exports.MediasBrowser = MediasBrowser;
|
726
1226
|
exports.MediasPicker = MediasPicker;
|