@panneau/medias 3.0.261 → 3.0.263

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/es/index.js ADDED
@@ -0,0 +1,1757 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import classNames from 'classnames';
4
+ import PropTypes from 'prop-types';
5
+ import React, { useContext, useMemo, useCallback, useState, useEffect } from 'react';
6
+ import { FormattedMessage } from 'react-intl';
7
+ import { useFieldComponent, usePanneauResource } from '@panneau/core/contexts';
8
+ import { useForm, useQuery } from '@panneau/core/hooks';
9
+ import Button from '@panneau/element-button';
10
+ import Form from '@panneau/element-form';
11
+ import FormStatus from '@panneau/element-form-status';
12
+ import UploadField from '@panneau/field-upload';
13
+ import ImageDisplay from '@panneau/display-image';
14
+ import MediaPlayer from '@panneau/element-media-player';
15
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
16
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
17
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
18
+ import isArray from 'lodash/isArray';
19
+ import uniqBy from 'lodash/uniqBy';
20
+ import { PropTypes as PropTypes$1 } from '@panneau/core';
21
+ import Buttons from '@panneau/element-buttons';
22
+ import Grid from '@panneau/element-grid';
23
+ import Icon from '@panneau/element-icon';
24
+ import MediaCard from '@panneau/element-media-card';
25
+ import Pagination from '@panneau/element-pagination';
26
+ import Table from '@panneau/element-table';
27
+ import Filters from '@panneau/filter-filters';
28
+ import { useItemsStore, useData, useApi } from '@panneau/data';
29
+
30
+ /* eslint-disable react/jsx-props-no-spreading */
31
+ var MediasApiContext = /*#__PURE__*/React.createContext(null);
32
+ var useMediasApi = function useMediasApi() {
33
+ return useContext(MediasApiContext);
34
+ };
35
+ var apiPropTypes = PropTypes.shape({
36
+ get: PropTypes.func.isRequired,
37
+ getTrashed: PropTypes.func.isRequired,
38
+ create: PropTypes.func.isRequired,
39
+ find: PropTypes.func.isRequired,
40
+ update: PropTypes.func.isRequired,
41
+ trash: PropTypes.func.isRequired,
42
+ restore: PropTypes.func.isRequired,
43
+ "delete": PropTypes.func.isRequired
44
+ });
45
+ var propTypes$9 = {
46
+ api: apiPropTypes,
47
+ children: PropTypes.node.isRequired
48
+ };
49
+ var defaultProps$9 = {
50
+ api: null
51
+ };
52
+ function MediasApiProvider(_ref) {
53
+ var providedApi = _ref.api,
54
+ children = _ref.children;
55
+ var previousApi = useMediasApi();
56
+ var api = useMemo(function () {
57
+ return providedApi || previousApi;
58
+ }, [providedApi, previousApi]);
59
+ return /*#__PURE__*/React.createElement(MediasApiContext.Provider, {
60
+ value: api
61
+ }, children);
62
+ }
63
+ MediasApiProvider.propTypes = propTypes$9;
64
+ MediasApiProvider.defaultProps = defaultProps$9;
65
+
66
+ var _excluded$7 = ["items"];
67
+ var useMedias = function useMedias() {
68
+ var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
69
+ var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
70
+ var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
71
+ var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
72
+ var api = useMediasApi();
73
+ var trashed = useMemo(function () {
74
+ var _ref = opts || {},
75
+ _ref$trashed = _ref.trashed,
76
+ trashedOpt = _ref$trashed === void 0 ? false : _ref$trashed;
77
+ return trashedOpt;
78
+ }, [opts]);
79
+ var finalQuery = useMemo(function () {
80
+ return _objectSpread(_objectSpread({}, query), {}, {
81
+ trashed: trashed
82
+ });
83
+ }, [query, trashed]);
84
+ var getItems = useCallback(function () {
85
+ var requestedPage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
86
+ return trashed ? api.getTrashed(query, requestedPage, count) : api.get(query, requestedPage, count);
87
+ }, [api, query, count, trashed]);
88
+ var _useItemsStore = useItemsStore('medias', _objectSpread({
89
+ getPage: page !== null ? getItems : null,
90
+ getItems: page === null ? getItems : null,
91
+ page: page,
92
+ count: count,
93
+ query: finalQuery
94
+ }, opts)),
95
+ items = _useItemsStore.items,
96
+ props = _objectWithoutProperties(_useItemsStore, _excluded$7);
97
+ return _objectSpread({
98
+ items: items
99
+ }, props);
100
+ };
101
+ var useMedias$1 = useMedias;
102
+
103
+ var _excluded$6 = ["data"];
104
+ var useMedia = function useMedia(id, opts) {
105
+ var api = useMediasApi();
106
+ var loader = useCallback(function () {
107
+ return api.find(id);
108
+ }, [api, id]);
109
+ var _useData = useData(loader, opts),
110
+ data = _useData.data,
111
+ request = _objectWithoutProperties(_useData, _excluded$6);
112
+ return _objectSpread({
113
+ story: data
114
+ }, request);
115
+ };
116
+ var useMedia$1 = useMedia;
117
+
118
+ var useMediaCreate = function useMediaCreate() {
119
+ var _useState = useState(false),
120
+ _useState2 = _slicedToArray(_useState, 2),
121
+ creating = _useState2[0],
122
+ setCreating = _useState2[1];
123
+ var api = useMediasApi();
124
+ var create = useCallback(function (data) {
125
+ setCreating(true);
126
+ return api.create(data).then(function (response) {
127
+ setCreating(false);
128
+ return response;
129
+ });
130
+ }, [api, setCreating]);
131
+ return {
132
+ create: create,
133
+ creating: creating
134
+ };
135
+ };
136
+ var useMediaCreate$1 = useMediaCreate;
137
+
138
+ var useMediaUpdate = function useMediaUpdate() {
139
+ var _useState = useState(false),
140
+ _useState2 = _slicedToArray(_useState, 2),
141
+ updating = _useState2[0],
142
+ setUpdating = _useState2[1];
143
+ var api = useMediasApi();
144
+ var update = useCallback(function (id, data) {
145
+ setUpdating(true);
146
+ return api.update(id, data).then(function (response) {
147
+ setUpdating(false);
148
+ return response;
149
+ });
150
+ }, [api, setUpdating]);
151
+ return {
152
+ update: update,
153
+ updating: updating
154
+ };
155
+ };
156
+ var useMediaUpdate$1 = useMediaUpdate;
157
+
158
+ var useMediaDelete = function useMediaDelete() {
159
+ var _useState = useState(false),
160
+ _useState2 = _slicedToArray(_useState, 2),
161
+ deleting = _useState2[0],
162
+ setDeleting = _useState2[1];
163
+ var api = useMediasApi();
164
+ var mediaDelete = useCallback(function (id, data) {
165
+ setDeleting(true);
166
+ return api["delete"](id, data).then(function (response) {
167
+ setDeleting(false);
168
+ return response;
169
+ });
170
+ }, [api, setDeleting]);
171
+ return {
172
+ mediaDelete: mediaDelete,
173
+ deleting: deleting
174
+ };
175
+ };
176
+ var useMediaDelete$1 = useMediaDelete;
177
+
178
+ var useMediaTrash = function useMediaTrash() {
179
+ var _useState = useState(false),
180
+ _useState2 = _slicedToArray(_useState, 2),
181
+ trashing = _useState2[0],
182
+ setTrashing = _useState2[1];
183
+ var api = useMediasApi();
184
+ var mediaTrash = useCallback(function (id, data) {
185
+ setTrashing(true);
186
+ return api.trash(id, data).then(function (response) {
187
+ setTrashing(false);
188
+ return response;
189
+ });
190
+ }, [api, setTrashing]);
191
+ return {
192
+ mediaTrash: mediaTrash,
193
+ trashing: trashing
194
+ };
195
+ };
196
+ var useMediaTrash$1 = useMediaTrash;
197
+
198
+ var useMediaRestore = function useMediaRestore() {
199
+ var _useState = useState(false),
200
+ _useState2 = _slicedToArray(_useState, 2),
201
+ restoring = _useState2[0],
202
+ setRestoring = _useState2[1];
203
+ var api = useMediasApi();
204
+ var mediaRestore = useCallback(function (id, data) {
205
+ setRestoring(true);
206
+ return api.restore(id, data).then(function (response) {
207
+ setRestoring(false);
208
+ return response;
209
+ });
210
+ }, [api, setRestoring]);
211
+ return {
212
+ mediaRestore: mediaRestore,
213
+ restoring: restoring
214
+ };
215
+ };
216
+ var useMediaRestore$1 = useMediaRestore;
217
+
218
+ var useMediaReplace = function useMediaReplace() {
219
+ var _useState = useState(false),
220
+ _useState2 = _slicedToArray(_useState, 2),
221
+ replacing = _useState2[0],
222
+ setReplacing = _useState2[1];
223
+ var api = useMediasApi();
224
+ var mediaReplace = useCallback(function (id, data) {
225
+ setReplacing(true);
226
+ return api.replace(id, data).then(function (response) {
227
+ setReplacing(false);
228
+ return response;
229
+ });
230
+ }, [api, setReplacing]);
231
+ return {
232
+ mediaReplace: mediaReplace,
233
+ replacing: replacing
234
+ };
235
+ };
236
+ var useMediaReplace$1 = useMediaReplace;
237
+
238
+ var styles = {"mediaFrame":"panneau-medias-mediaFrame","playButton":"panneau-medias-playButton"};
239
+
240
+ var propTypes$8 = {
241
+ value: PropTypes.shape({
242
+ id: PropTypes.string,
243
+ type: PropTypes.string
244
+ }),
245
+ showPlayer: PropTypes.bool,
246
+ className: PropTypes.string
247
+ };
248
+ var defaultProps$8 = {
249
+ value: null,
250
+ showPlayer: true,
251
+ className: null
252
+ };
253
+ function MediaFrame(_ref) {
254
+ var value = _ref.value,
255
+ initialShowPlayer = _ref.showPlayer,
256
+ className = _ref.className;
257
+ var _useState = useState(initialShowPlayer),
258
+ _useState2 = _slicedToArray(_useState, 2),
259
+ showPlayer = _useState2[0],
260
+ setShowPlayer = _useState2[1];
261
+ var _ref2 = value || {},
262
+ _ref2$type = _ref2.type,
263
+ type = _ref2$type === void 0 ? null : _ref2$type;
264
+ var onClick = useCallback(function () {
265
+ setShowPlayer(!showPlayer);
266
+ }, [showPlayer, setShowPlayer]);
267
+ return /*#__PURE__*/React.createElement("div", {
268
+ className: classNames([styles.mediaFrame, 'position-relative', 'd-flex', 'flex-grow-1', 'w-100', 'mw-100', _defineProperty({}, className, className != null)])
269
+ }, showPlayer && type !== 'image' ? /*#__PURE__*/React.createElement(MediaPlayer, {
270
+ value: value,
271
+ autoPlay: false,
272
+ width: "100%"
273
+ }) : /*#__PURE__*/React.createElement(ImageDisplay, {
274
+ className: "w-100",
275
+ value: value,
276
+ maxWidth: "100%",
277
+ maxHeight: "100%",
278
+ onClick: type === 'video' || type === 'audio' ? onClick : null
279
+ }));
280
+ }
281
+ MediaFrame.propTypes = propTypes$8;
282
+ MediaFrame.defaultProps = defaultProps$8;
283
+
284
+ var defaultFields = [{
285
+ name: 'name',
286
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
287
+ id: "WX83V9",
288
+ defaultMessage: [{
289
+ "type": 0,
290
+ "value": "File name"
291
+ }]
292
+ }),
293
+ type: 'text',
294
+ component: 'text'
295
+ }, {
296
+ name: 'description',
297
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
298
+ id: "ygNvmz",
299
+ defaultMessage: [{
300
+ "type": 0,
301
+ "value": "Description"
302
+ }]
303
+ }),
304
+ type: 'text',
305
+ component: 'text'
306
+ },
307
+ // Creatable example
308
+ // {
309
+ // name: 'tags',
310
+ // label: <FormattedMessage defaultMessage="Tags" description="Field name" />,
311
+ // type: 'array',
312
+ // component: 'select',
313
+ // requestUrl: '/api/tags',
314
+ // optionLabelPath: 'label',
315
+ // optionValuePath: 'id', // Uses taggable so change the logic here
316
+ // valueIsOption: true,
317
+ // multiple: true,
318
+ // paginated: false,
319
+ // creatable: true, // TODO
320
+ // },
321
+ {
322
+ id: 'info',
323
+ component: 'fields',
324
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
325
+ id: "3RT69u",
326
+ defaultMessage: [{
327
+ "type": 0,
328
+ "value": "Informations"
329
+ }]
330
+ }),
331
+ isList: true,
332
+ hideWithoutValue: true,
333
+ fields: [{
334
+ id: 'user',
335
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
336
+ id: "yByaBh",
337
+ defaultMessage: [{
338
+ "type": 0,
339
+ "value": "Added by"
340
+ }]
341
+ }),
342
+ type: 'display',
343
+ display: 'avatar',
344
+ name: 'user',
345
+ horizontal: true
346
+ }, {
347
+ id: 'created_at',
348
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
349
+ id: "PN+75e",
350
+ defaultMessage: [{
351
+ "type": 0,
352
+ "value": "Created at"
353
+ }]
354
+ }),
355
+ type: 'display',
356
+ display: 'date',
357
+ name: 'created_at',
358
+ format: 'yyyy-MM-dd hh:ss',
359
+ horizontal: true
360
+ }]
361
+ }, {
362
+ id: 'technical',
363
+ component: 'fields',
364
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
365
+ id: "xKUOLG",
366
+ defaultMessage: [{
367
+ "type": 0,
368
+ "value": "Technical details"
369
+ }]
370
+ }),
371
+ isList: true,
372
+ hideWithoutValue: true,
373
+ fields: [{
374
+ id: 'format',
375
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
376
+ id: "JuxiUN",
377
+ defaultMessage: [{
378
+ "type": 0,
379
+ "value": "Format"
380
+ }]
381
+ }),
382
+ type: 'display',
383
+ display: 'unit',
384
+ format: 'format',
385
+ name: 'format',
386
+ horizontal: true
387
+ }, {
388
+ id: 'dimensions',
389
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
390
+ id: "rmJBin",
391
+ defaultMessage: [{
392
+ "type": 0,
393
+ "value": "Dimensions"
394
+ }]
395
+ }),
396
+ type: 'display',
397
+ display: 'unit',
398
+ format: 'dimensions',
399
+ name: 'metadata',
400
+ horizontal: true
401
+ }, {
402
+ id: 'size',
403
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
404
+ id: "g2CRt5",
405
+ defaultMessage: [{
406
+ "type": 0,
407
+ "value": "Size"
408
+ }]
409
+ }),
410
+ type: 'display',
411
+ display: 'unit',
412
+ format: 'bytes',
413
+ name: 'metadata.size',
414
+ horizontal: true
415
+ }, {
416
+ id: 'duration',
417
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
418
+ id: "wU++NJ",
419
+ defaultMessage: [{
420
+ "type": 0,
421
+ "value": "Duration"
422
+ }]
423
+ }),
424
+ type: 'display',
425
+ display: 'unit',
426
+ format: 'duration',
427
+ name: 'metadata.duration',
428
+ horizontal: true
429
+ }]
430
+ }];
431
+
432
+ var propTypes$7 = {
433
+ value: PropTypes.shape({
434
+ id: PropTypes.string
435
+ }),
436
+ fields: PropTypes.arrayOf(PropTypes.shape({
437
+ name: PropTypes.string
438
+ })),
439
+ onChange: PropTypes.func,
440
+ onSave: PropTypes.func,
441
+ onReplace: PropTypes.func,
442
+ onDelete: PropTypes.func,
443
+ onClose: PropTypes.func,
444
+ withDelete: PropTypes.bool,
445
+ withTrash: PropTypes.bool,
446
+ withReplace: PropTypes.bool,
447
+ className: PropTypes.string,
448
+ children: PropTypes.node
449
+ };
450
+ var defaultProps$7 = {
451
+ value: null,
452
+ fields: defaultFields,
453
+ onChange: null,
454
+ onSave: null,
455
+ onReplace: null,
456
+ onDelete: null,
457
+ onClose: null,
458
+ withDelete: false,
459
+ withTrash: false,
460
+ withReplace: false,
461
+ className: null,
462
+ children: null
463
+ };
464
+ function MediaForm(_ref) {
465
+ var initialValue = _ref.value,
466
+ initialFields = _ref.fields,
467
+ onChange = _ref.onChange,
468
+ onSave = _ref.onSave,
469
+ onReplace = _ref.onReplace,
470
+ onDelete = _ref.onDelete,
471
+ onClose = _ref.onClose,
472
+ withDelete = _ref.withDelete,
473
+ withTrash = _ref.withTrash,
474
+ withReplace = _ref.withReplace,
475
+ className = _ref.className,
476
+ children = _ref.children;
477
+ var FieldsComponent = useFieldComponent('fields');
478
+ var _useMediaUpdate = useMediaUpdate$1(),
479
+ update = _useMediaUpdate.update,
480
+ updating = _useMediaUpdate.updating;
481
+ var _useMediaTrash = useMediaTrash$1(),
482
+ mediaTrash = _useMediaTrash.mediaTrash,
483
+ trashing = _useMediaTrash.trashing;
484
+ var _useMediaDelete = useMediaDelete$1(),
485
+ mediaDelete = _useMediaDelete.mediaDelete,
486
+ deleting = _useMediaDelete.deleting;
487
+ var _useMediaReplace = useMediaReplace$1(),
488
+ mediaReplace = _useMediaReplace.mediaReplace,
489
+ replacing = _useMediaReplace.replacing;
490
+ var _useState = useState(false),
491
+ _useState2 = _slicedToArray(_useState, 2),
492
+ changed = _useState2[0],
493
+ setChanged = _useState2[1];
494
+ var disabled = updating || deleting || trashing || initialValue === null;
495
+ var _ref2 = initialValue || {},
496
+ _ref2$name = _ref2.name,
497
+ name = _ref2$name === void 0 ? null : _ref2$name,
498
+ _ref2$type = _ref2.type,
499
+ type = _ref2$type === void 0 ? null : _ref2$type,
500
+ _ref2$deletedAt = _ref2.deletedAt,
501
+ deletedAt = _ref2$deletedAt === void 0 ? null : _ref2$deletedAt;
502
+ var onChangeMedia = useCallback(function (newValue) {
503
+ if (onChange !== null) {
504
+ onChange(newValue);
505
+ }
506
+ setChanged(true);
507
+ }, [onChange, setChanged]);
508
+ var onMediaSaved = useCallback(function (newValue) {
509
+ if (onSave !== null) {
510
+ onSave(newValue);
511
+ }
512
+ setChanged(false);
513
+ }, [onChange, setChanged]);
514
+ var onDeleteMedia = useCallback(function () {
515
+ var _ref3 = initialValue || {},
516
+ _ref3$id = _ref3.id,
517
+ id = _ref3$id === void 0 ? null : _ref3$id;
518
+ if (withTrash && deletedAt !== null) {
519
+ mediaTrash(id, initialValue).then(function () {
520
+ if (onDelete !== null) {
521
+ onDelete();
522
+ }
523
+ setChanged(false);
524
+ if (onClose !== null) {
525
+ onClose();
526
+ }
527
+ });
528
+ } else {
529
+ // Destroy
530
+ mediaDelete(id, initialValue).then(function () {
531
+ if (onDelete !== null) {
532
+ onDelete();
533
+ }
534
+ setChanged(false);
535
+ if (onClose !== null) {
536
+ onClose();
537
+ }
538
+ });
539
+ }
540
+ }, [initialValue, mediaDelete, mediaTrash, deletedAt, setChanged, onDelete, withTrash]);
541
+ var onUploadComplete = useCallback(function (data) {
542
+ var _ref4 = initialValue || {},
543
+ _ref4$id = _ref4.id,
544
+ id = _ref4$id === void 0 ? null : _ref4$id;
545
+ mediaReplace(id, data).then(onReplace);
546
+ }, [initialValue, onReplace]);
547
+ var postForm = useCallback(function (action, data) {
548
+ return initialValue !== null ? update(initialValue.id, data) : new Promise();
549
+ }, [initialValue, update]);
550
+ var _useForm = useForm({
551
+ fields: initialFields,
552
+ postForm: postForm,
553
+ onComplete: onMediaSaved,
554
+ value: initialValue,
555
+ setValue: onChangeMedia,
556
+ disabled: updating
557
+ }),
558
+ value = _useForm.value,
559
+ setValue = _useForm.setValue,
560
+ fields = _useForm.fields,
561
+ onSubmit = _useForm.onSubmit,
562
+ status = _useForm.status,
563
+ generalError = _useForm.generalError;
564
+ return /*#__PURE__*/React.createElement("div", {
565
+ className: classNames(['text-body', _defineProperty({}, className, className !== null)])
566
+ }, /*#__PURE__*/React.createElement("nav", {
567
+ className: "navbar d-flex w-100 align-items-end justify-content-between border-bottom mb-3"
568
+ }, /*#__PURE__*/React.createElement("div", {
569
+ className: "d-flex align-items-end justify-content-start mb-1",
570
+ style: {
571
+ maxWidth: '66%'
572
+ }
573
+ }, /*#__PURE__*/React.createElement("div", {
574
+ className: "me-3 mb-0"
575
+ }, /*#__PURE__*/React.createElement(Button, {
576
+ theme: "secondary",
577
+ outline: true,
578
+ onClick: onClose,
579
+ icon: "arrow-left"
580
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
581
+ id: "8NyYTH",
582
+ defaultMessage: [{
583
+ "type": 0,
584
+ "value": "Back"
585
+ }]
586
+ }))), /*#__PURE__*/React.createElement("h4", {
587
+ className: "d-inline text-truncate mb-0"
588
+ }, name), /*#__PURE__*/React.createElement("span", {
589
+ className: "mx-2"
590
+ }, type)), /*#__PURE__*/React.createElement("div", {
591
+ className: classNames('d-flex', 'justify-content-between', 'align-items-center', 'gap-1')
592
+ }, withReplace ? /*#__PURE__*/React.createElement(UploadField, {
593
+ className: "w-auto text-nowrap",
594
+ withButton: true,
595
+ withoutMedia: true,
596
+ types: [type],
597
+ outline: false,
598
+ closeAfterFinish: true,
599
+ addButtonLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
600
+ id: "GxOBVL",
601
+ defaultMessage: [{
602
+ "type": 0,
603
+ "value": "Replace"
604
+ }]
605
+ }),
606
+ onUploadComplete: onUploadComplete
607
+ }) : null, withDelete ? /*#__PURE__*/React.createElement(Button, {
608
+ className: "me-2 mb-1 mt-1",
609
+ theme: "danger",
610
+ icon: withTrash && deletedAt !== null ? 'trash-fill' : 'trash',
611
+ iconPosition: "right",
612
+ onClick: onDeleteMedia,
613
+ disabled: deleting || trashing || updating || replacing
614
+ }, withTrash && deletedAt === null ? /*#__PURE__*/React.createElement(FormattedMessage, {
615
+ id: "PSlT7H",
616
+ defaultMessage: [{
617
+ "type": 0,
618
+ "value": "Trash"
619
+ }]
620
+ }) : /*#__PURE__*/React.createElement(FormattedMessage, {
621
+ id: "Bhu3B2",
622
+ defaultMessage: [{
623
+ "type": 0,
624
+ "value": "Delete"
625
+ }]
626
+ })) : null, onSave !== null ? /*#__PURE__*/React.createElement(Button, {
627
+ className: "mb-1 mt-1",
628
+ theme: "primary",
629
+ icon: changed ? 'check' : 'check',
630
+ iconPosition: "right",
631
+ onClick: onSubmit,
632
+ disabled: !changed || updating || deleting || trashing
633
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
634
+ id: "R1HYj0",
635
+ defaultMessage: [{
636
+ "type": 0,
637
+ "value": "Save"
638
+ }]
639
+ })) : null)), /*#__PURE__*/React.createElement("div", {
640
+ className: "row"
641
+ }, /*#__PURE__*/React.createElement("div", {
642
+ className: "col-md-6"
643
+ }, /*#__PURE__*/React.createElement("div", {
644
+ className: "position-relative w-100"
645
+ }, /*#__PURE__*/React.createElement("div", {
646
+ className: styles.mediaFrame
647
+ }, /*#__PURE__*/React.createElement(MediaFrame, {
648
+ value: value
649
+ }))), children), /*#__PURE__*/React.createElement("div", {
650
+ className: "col-md-6"
651
+ }, /*#__PURE__*/React.createElement(Form, {
652
+ onChange: onChangeMedia,
653
+ withoutActions: true
654
+ }, /*#__PURE__*/React.createElement(FieldsComponent, {
655
+ fields: fields,
656
+ value: value,
657
+ onChange: setValue,
658
+ disabled: disabled
659
+ })), generalError !== null && status !== null ? /*#__PURE__*/React.createElement("div", {
660
+ className: "mt-5"
661
+ }, /*#__PURE__*/React.createElement(FormStatus, {
662
+ status: status
663
+ })) : null)));
664
+ }
665
+ MediaForm.propTypes = propTypes$7;
666
+ MediaForm.defaultProps = defaultProps$7;
667
+
668
+ var MediaContext = /*#__PURE__*/React.createContext(null);
669
+ var useCurrentMedia = function useCurrentMedia() {
670
+ return useContext(MediaContext);
671
+ };
672
+ var propTypes$6 = {
673
+ media: PropTypes.shape({
674
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
675
+ }),
676
+ children: PropTypes.node.isRequired
677
+ };
678
+ var defaultProps$6 = {
679
+ media: null
680
+ };
681
+ function MediaProvider(_ref) {
682
+ var providedMedia = _ref.media,
683
+ children = _ref.children;
684
+ var _useState = useState(providedMedia),
685
+ _useState2 = _slicedToArray(_useState, 2),
686
+ currentMedia = _useState2[0],
687
+ setCurrentMedia = _useState2[1];
688
+ var values = useMemo(function () {
689
+ return {
690
+ currentMedia: currentMedia,
691
+ setCurrentMedia: setCurrentMedia
692
+ };
693
+ }, [currentMedia, setCurrentMedia]);
694
+ return /*#__PURE__*/React.createElement(MediaContext.Provider, {
695
+ value: values
696
+ }, children);
697
+ }
698
+ MediaProvider.propTypes = propTypes$6;
699
+ MediaProvider.defaultProps = defaultProps$6;
700
+
701
+ var defaultColumns = [{
702
+ id: 'image',
703
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
704
+ id: "UbxbKP",
705
+ defaultMessage: [{
706
+ "type": 0,
707
+ "value": "Preview"
708
+ }]
709
+ }),
710
+ component: 'image',
711
+ path: 'thumbnail_url',
712
+ sortable: false
713
+ }, {
714
+ id: 'name',
715
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
716
+ id: "WX83V9",
717
+ defaultMessage: [{
718
+ "type": 0,
719
+ "value": "File name"
720
+ }]
721
+ }),
722
+ component: 'text-description',
723
+ path: 'name',
724
+ descriptionPath: 'type',
725
+ descriptionValues: {
726
+ image: /*#__PURE__*/React.createElement(FormattedMessage, {
727
+ id: "AwDQvD",
728
+ defaultMessage: [{
729
+ "type": 0,
730
+ "value": "Image"
731
+ }]
732
+ }),
733
+ video: /*#__PURE__*/React.createElement(FormattedMessage, {
734
+ id: "mQiyAm",
735
+ defaultMessage: [{
736
+ "type": 0,
737
+ "value": "Video"
738
+ }]
739
+ }),
740
+ audio: /*#__PURE__*/React.createElement(FormattedMessage, {
741
+ id: "XnyI69",
742
+ defaultMessage: [{
743
+ "type": 0,
744
+ "value": "Audio"
745
+ }]
746
+ }),
747
+ document: /*#__PURE__*/React.createElement(FormattedMessage, {
748
+ id: "1dqmFw",
749
+ defaultMessage: [{
750
+ "type": 0,
751
+ "value": "Document"
752
+ }]
753
+ })
754
+ },
755
+ sortable: true
756
+ }, {
757
+ id: 'dimensions',
758
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
759
+ id: "eCe9ZY",
760
+ defaultMessage: [{
761
+ "type": 0,
762
+ "value": "Dimensions"
763
+ }]
764
+ }),
765
+ component: 'unit',
766
+ format: 'dimensions',
767
+ path: 'metadata'
768
+ }, {
769
+ id: 'size',
770
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
771
+ id: "c3hu9o",
772
+ defaultMessage: [{
773
+ "type": 0,
774
+ "value": "Size"
775
+ }]
776
+ }),
777
+ component: 'unit',
778
+ format: 'bytes',
779
+ path: 'metadata.size'
780
+ }, {
781
+ id: 'duration',
782
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
783
+ id: "002oWQ",
784
+ defaultMessage: [{
785
+ "type": 0,
786
+ "value": "Duration"
787
+ }]
788
+ }),
789
+ component: 'unit',
790
+ format: 'duration',
791
+ path: 'metadata.duration'
792
+ },
793
+ // {
794
+ // id: 'author',
795
+ // label: <FormattedMessage defaultMessage="Added by" description="Field name" />,
796
+ // component: 'avatar',
797
+ // path: 'metadata.author',
798
+ // namePath: 'name',
799
+ // withoutName: true,
800
+ // },
801
+ {
802
+ id: 'created_at',
803
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
804
+ id: "OzYWZz",
805
+ defaultMessage: [{
806
+ "type": 0,
807
+ "value": "Created at"
808
+ }]
809
+ }),
810
+ component: 'date',
811
+ path: 'created_at',
812
+ format: 'yyyy-MM-dd hh:ss',
813
+ sortable: true
814
+ }, {
815
+ id: 'actions',
816
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
817
+ id: "rtwfuZ",
818
+ defaultMessage: [{
819
+ "type": 0,
820
+ "value": "Actions"
821
+ }]
822
+ }),
823
+ actions: ['edit', 'delete']
824
+ // component: ItemActions,
825
+ // label: 'Edit',
826
+ // url: '/edit/1',
827
+ }
828
+ // {
829
+ // id: 'status',
830
+ // label: <FormattedMessage defaultMessage="Status" description="Field name" />,
831
+ // component: 'text',
832
+ // path: 'metadata.status',
833
+ // },
834
+ ];
835
+
836
+ var defaultFilters = [{
837
+ id: 'search',
838
+ component: 'search',
839
+ name: 'search',
840
+ width: 220
841
+ }, {
842
+ id: 'types',
843
+ component: 'select',
844
+ name: 'types',
845
+ placeholder: /*#__PURE__*/React.createElement(FormattedMessage, {
846
+ id: "9/t5wK",
847
+ defaultMessage: [{
848
+ "type": 0,
849
+ "value": "Type"
850
+ }]
851
+ }),
852
+ options: [{
853
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
854
+ id: "yHAmDD",
855
+ defaultMessage: [{
856
+ "type": 0,
857
+ "value": "Image"
858
+ }]
859
+ }),
860
+ value: 'image'
861
+ }, {
862
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
863
+ id: "xSERPA",
864
+ defaultMessage: [{
865
+ "type": 0,
866
+ "value": "Video"
867
+ }]
868
+ }),
869
+ value: 'video'
870
+ }, {
871
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
872
+ id: "yQRtgx",
873
+ defaultMessage: [{
874
+ "type": 0,
875
+ "value": "Audio"
876
+ }]
877
+ }),
878
+ value: 'audio'
879
+ }, {
880
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
881
+ id: "8INLfU",
882
+ defaultMessage: [{
883
+ "type": 0,
884
+ "value": "Document"
885
+ }]
886
+ }),
887
+ value: 'document'
888
+ }],
889
+ multiple: true
890
+ }
891
+ // {
892
+ // id: 'author',
893
+ // component: 'select',
894
+ // name: 'author',
895
+ // placeholder: <FormattedMessage defaultMessage="Author" description="Filter label" />,
896
+ // requestUrl: '/persons',
897
+ // itemLabelPath: 'name',
898
+ // multiple: true,
899
+ // },
900
+ // {
901
+ // id: 'tag',
902
+ // component: 'select',
903
+ // name: 'tag',
904
+ // placeholder: <FormattedMessage defaultMessage="Tag" description="Filter label" />,
905
+ // requestUrl: '/tags',
906
+ // itemLabelPath: 'label',
907
+ // multiple: true,
908
+ // },
909
+ ];
910
+
911
+ var _excluded$5 = ["page", "count"],
912
+ _excluded2 = ["types", "trashed"];
913
+ var propTypes$5 = {
914
+ items: PropTypes$1.medias,
915
+ extraItems: PropTypes$1.medias,
916
+ types: PropTypes.arrayOf(PropTypes.string),
917
+ permissions: PropTypes.shape({
918
+ create: PropTypes.bool,
919
+ edit: PropTypes.bool,
920
+ "delete": PropTypes.bool
921
+ }),
922
+ filters: PropTypes$1.filters,
923
+ columns: PropTypes$1.tableColumns,
924
+ query: PropTypes.shape({}),
925
+ baseUrl: PropTypes.string,
926
+ fields: PropTypes$1.fields,
927
+ layout: PropTypes.string,
928
+ layouts: PropTypes.arrayOf(PropTypes.shape({})),
929
+ theme: PropTypes.string,
930
+ onMediaUploaded: PropTypes.func,
931
+ onItemsChange: PropTypes.func,
932
+ onLayoutChange: PropTypes.func,
933
+ onMediaFormOpen: PropTypes.func,
934
+ onMediaFormClose: PropTypes.func,
935
+ selectable: PropTypes.bool,
936
+ selectedItems: PropTypes.oneOfType([PropTypes.shape({}), PropTypes.arrayOf(PropTypes.shape({}))]),
937
+ onSelectionChange: PropTypes.func,
938
+ multipleSelection: PropTypes.bool,
939
+ uppyConfig: PropTypes.shape({}),
940
+ withDelete: PropTypes.bool,
941
+ withTrash: PropTypes.bool,
942
+ withReplace: PropTypes.bool,
943
+ withStickySelection: PropTypes.bool,
944
+ withoutUpload: PropTypes.bool,
945
+ className: PropTypes.string,
946
+ formChildren: PropTypes.node
947
+ };
948
+ var defaultProps$5 = {
949
+ items: null,
950
+ extraItems: null,
951
+ types: null,
952
+ permissions: null,
953
+ filters: defaultFilters,
954
+ columns: defaultColumns,
955
+ fields: defaultFields,
956
+ query: null,
957
+ baseUrl: null,
958
+ layout: 'table',
959
+ layouts: [{
960
+ id: 'table',
961
+ label: /*#__PURE__*/React.createElement(Icon, {
962
+ name: "table"
963
+ })
964
+ }, {
965
+ id: 'grid',
966
+ label: /*#__PURE__*/React.createElement(Icon, {
967
+ name: "grid"
968
+ })
969
+ }],
970
+ theme: null,
971
+ onMediaUploaded: null,
972
+ onItemsChange: null,
973
+ onLayoutChange: null,
974
+ onMediaFormOpen: null,
975
+ onMediaFormClose: null,
976
+ selectable: false,
977
+ selectedItems: null,
978
+ onSelectionChange: null,
979
+ multipleSelection: false,
980
+ uppyConfig: null,
981
+ withDelete: false,
982
+ withTrash: false,
983
+ withReplace: false,
984
+ withStickySelection: false,
985
+ withoutUpload: false,
986
+ className: null,
987
+ formChildren: null
988
+ };
989
+ function MediasBrowser(_ref) {
990
+ var initialItems = _ref.items,
991
+ extraItems = _ref.extraItems,
992
+ types = _ref.types,
993
+ permissions = _ref.permissions,
994
+ baseUrl = _ref.baseUrl,
995
+ filters = _ref.filters,
996
+ columns = _ref.columns,
997
+ fields = _ref.fields,
998
+ initialQuery = _ref.query,
999
+ initialLayout = _ref.layout,
1000
+ layouts = _ref.layouts,
1001
+ theme = _ref.theme,
1002
+ onMediaUploaded = _ref.onMediaUploaded,
1003
+ onItemsChange = _ref.onItemsChange,
1004
+ onLayoutChange = _ref.onLayoutChange,
1005
+ onMediaFormOpen = _ref.onMediaFormOpen,
1006
+ onMediaFormClose = _ref.onMediaFormClose,
1007
+ selectable = _ref.selectable,
1008
+ selectedItems = _ref.selectedItems,
1009
+ onSelectionChange = _ref.onSelectionChange,
1010
+ multipleSelection = _ref.multipleSelection,
1011
+ uppyConfig = _ref.uppyConfig,
1012
+ withDelete = _ref.withDelete,
1013
+ withTrash = _ref.withTrash,
1014
+ withReplace = _ref.withReplace,
1015
+ withStickySelection = _ref.withStickySelection,
1016
+ withoutUpload = _ref.withoutUpload,
1017
+ className = _ref.className,
1018
+ formChildren = _ref.formChildren;
1019
+ var _useState = useState(initialItems || null),
1020
+ _useState2 = _slicedToArray(_useState, 1),
1021
+ baseItems = _useState2[0];
1022
+ var baseQuery = useMemo(function () {
1023
+ return _objectSpread(_objectSpread({
1024
+ count: 12
1025
+ }, initialQuery), types !== null ? {
1026
+ types: types
1027
+ } : null);
1028
+ }, [initialQuery, types]);
1029
+ var _useQuery = useQuery(baseQuery),
1030
+ fullQuery = _useQuery.query,
1031
+ onPageChange = _useQuery.onPageChange,
1032
+ onQueryChange = _useQuery.onQueryChange,
1033
+ onQueryReset = _useQuery.onQueryReset;
1034
+ var _useMemo = useMemo(function () {
1035
+ var _ref2 = fullQuery || {},
1036
+ _ref2$page = _ref2.page,
1037
+ fullQueryPage = _ref2$page === void 0 ? null : _ref2$page,
1038
+ _ref2$count = _ref2.count,
1039
+ fullQueryCount = _ref2$count === void 0 ? null : _ref2$count,
1040
+ params = _objectWithoutProperties(_ref2, _excluded$5);
1041
+ return {
1042
+ page: fullQueryPage,
1043
+ count: fullQueryCount,
1044
+ query: params
1045
+ };
1046
+ }, [fullQuery]),
1047
+ _useMemo$page = _useMemo.page,
1048
+ page = _useMemo$page === void 0 ? null : _useMemo$page,
1049
+ _useMemo$count = _useMemo.count,
1050
+ count = _useMemo$count === void 0 ? null : _useMemo$count,
1051
+ _useMemo$query = _useMemo.query,
1052
+ query = _useMemo$query === void 0 ? null : _useMemo$query;
1053
+ var _ref3 = permissions || {},
1054
+ _ref3$create = _ref3.create,
1055
+ canCreate = _ref3$create === void 0 ? true : _ref3$create,
1056
+ _ref3$edit = _ref3.edit,
1057
+ canEdit = _ref3$edit === void 0 ? true : _ref3$edit,
1058
+ _ref3$delete = _ref3["delete"],
1059
+ canDelete = _ref3$delete === void 0 ? true : _ref3$delete;
1060
+ var canUpload = canCreate && !withoutUpload;
1061
+
1062
+ // eslint-disable-next-line no-unused-vars
1063
+ var _ref4 = query || {};
1064
+ _ref4.types;
1065
+ var _ref4$trashed = _ref4.trashed,
1066
+ trashed = _ref4$trashed === void 0 ? null : _ref4$trashed,
1067
+ queryWithoutTypes = _objectWithoutProperties(_ref4, _excluded2);
1068
+ var _useMediaTrash = useMediaTrash$1(),
1069
+ mediaTrash = _useMediaTrash.mediaTrash,
1070
+ trashing = _useMediaTrash.trashing;
1071
+ var _useMediaDelete = useMediaDelete$1(),
1072
+ mediaDelete = _useMediaDelete.mediaDelete,
1073
+ deleting = _useMediaDelete.deleting;
1074
+ var _useMediaRestore = useMediaRestore$1(),
1075
+ mediaRestore = _useMediaRestore.mediaRestore;
1076
+ var _useState3 = useState(false),
1077
+ _useState4 = _slicedToArray(_useState3, 2),
1078
+ showTrashed = _useState4[0],
1079
+ setShowTrashed = _useState4[1];
1080
+ var _useMedias = useMedias$1(query, page, count, {
1081
+ items: baseItems,
1082
+ trashed: showTrashed
1083
+ }),
1084
+ items = _useMedias.items,
1085
+ allItems = _useMedias.allItems,
1086
+ _useMedias$loading = _useMedias.loading,
1087
+ loading = _useMedias$loading === void 0 ? false : _useMedias$loading,
1088
+ _useMedias$loaded = _useMedias.loaded,
1089
+ loaded = _useMedias$loaded === void 0 ? false : _useMedias$loaded,
1090
+ _useMedias$updateItem = _useMedias.updateItem,
1091
+ updateItem = _useMedias$updateItem === void 0 ? null : _useMedias$updateItem,
1092
+ _useMedias$pagination = _useMedias.pagination,
1093
+ _useMedias$pagination2 = _useMedias$pagination === void 0 ? {} : _useMedias$pagination,
1094
+ lastPage = _useMedias$pagination2.lastPage,
1095
+ total = _useMedias$pagination2.total,
1096
+ _useMedias$pages = _useMedias.pages,
1097
+ pages = _useMedias$pages === void 0 ? null : _useMedias$pages,
1098
+ reload = _useMedias.reload;
1099
+ var onClickTrash = useCallback(function () {
1100
+ setShowTrashed(!showTrashed);
1101
+ }, [showTrashed, setShowTrashed]);
1102
+
1103
+ // dirty fix to bypass global query caching
1104
+ useEffect(function () {
1105
+ reload();
1106
+ }, [showTrashed]);
1107
+ useEffect(function () {
1108
+ if (onItemsChange !== null) {
1109
+ onItemsChange(items);
1110
+ }
1111
+ }, [items, onItemsChange]);
1112
+ var _useState5 = useState(initialLayout || 'table'),
1113
+ _useState6 = _slicedToArray(_useState5, 2),
1114
+ layout = _useState6[0],
1115
+ setLayout = _useState6[1];
1116
+ var hasLayouts = useMemo(function () {
1117
+ return layouts !== null && layouts.length > 1;
1118
+ }, [layouts]);
1119
+ var onClickLayout = useCallback(function (newLayout) {
1120
+ setLayout(newLayout);
1121
+ if (onLayoutChange !== null) {
1122
+ onLayoutChange(newLayout);
1123
+ }
1124
+ }, [setLayout]);
1125
+ var _useCurrentMedia = useCurrentMedia(),
1126
+ currentMedia = _useCurrentMedia.currentMedia,
1127
+ setCurrentMedia = _useCurrentMedia.setCurrentMedia;
1128
+ useEffect(function () {
1129
+ if (currentMedia !== null && onMediaFormOpen !== null) {
1130
+ onMediaFormOpen();
1131
+ }
1132
+ if (currentMedia === null && onMediaFormClose !== null) {
1133
+ onMediaFormClose();
1134
+ }
1135
+ }, [currentMedia]);
1136
+ var onOpenMedia = useCallback(function (media) {
1137
+ setCurrentMedia(media);
1138
+ }, [setCurrentMedia]);
1139
+ var onCloseMedia = useCallback(function () {
1140
+ setCurrentMedia(null);
1141
+ }, [setCurrentMedia]);
1142
+ var onSaveMedia = useCallback(function (item) {
1143
+ setCurrentMedia(null);
1144
+ updateItem(item);
1145
+ }, [setCurrentMedia, updateItem]);
1146
+ var onDeleteMedia = useCallback(function () {
1147
+ if (reload !== null) {
1148
+ reload();
1149
+ }
1150
+ }, [reload]);
1151
+ var onTrashMedia = useCallback(function (id) {
1152
+ return !showTrashed && withTrash ? mediaTrash(id).then(function () {
1153
+ if (!multipleSelection) {
1154
+ var _ref5 = selectedItems || {},
1155
+ _ref5$id = _ref5.id,
1156
+ selectedId = _ref5$id === void 0 ? null : _ref5$id;
1157
+ if (selectedId !== null && selectedId === id) {
1158
+ onSelectionChange(null);
1159
+ }
1160
+ }
1161
+ // Todo remove from mult selection
1162
+ }).then(reload) : mediaDelete(id).then(function () {
1163
+ if (!multipleSelection) {
1164
+ var _ref6 = selectedItems || {},
1165
+ _ref6$id = _ref6.id,
1166
+ selectedId = _ref6$id === void 0 ? null : _ref6$id;
1167
+ if (selectedId !== null && selectedId === id) {
1168
+ onSelectionChange(null);
1169
+ }
1170
+ }
1171
+ // Todo remove from selection
1172
+ }).then(reload);
1173
+ }, [showTrashed, withTrash, mediaTrash, mediaDelete, reload, selectedItems, multipleSelection, onSelectionChange]);
1174
+ var _useState7 = useState(null),
1175
+ _useState8 = _slicedToArray(_useState7, 2),
1176
+ uploadedMedias = _useState8[0],
1177
+ setUploadedMedias = _useState8[1];
1178
+ var _useState9 = useState(false),
1179
+ _useState10 = _slicedToArray(_useState9, 2),
1180
+ uploadProcessing = _useState10[0],
1181
+ setUploadProcessing = _useState10[1];
1182
+ var onUploadedMediaChanged = useCallback(function (newMedias) {
1183
+ var uploadedNewMedias = (isArray(newMedias) ? [].concat(_toConsumableArray(newMedias), _toConsumableArray(uploadedMedias || [])) : [newMedias].concat(_toConsumableArray(uploadedMedias || []))).filter(function (it) {
1184
+ return it !== null;
1185
+ });
1186
+ setUploadedMedias(uploadedNewMedias);
1187
+ if (onSelectionChange !== null) {
1188
+ var _ref7 = newMedias || [],
1189
+ _ref8 = _slicedToArray(_ref7, 1),
1190
+ _ref8$ = _ref8[0],
1191
+ firstMedia = _ref8$ === void 0 ? null : _ref8$;
1192
+ onSelectionChange(multipleSelection && isArray(newMedias) ? newMedias : firstMedia);
1193
+ onQueryReset();
1194
+ reload().then(function () {
1195
+ setUploadedMedias(null);
1196
+ });
1197
+ }
1198
+ }, [onSelectionChange, setUploadedMedias, uploadedMedias, onQueryReset, reload, multipleSelection]);
1199
+ var onUploadComplete = useCallback(function () {
1200
+ var medias = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1201
+ if (showTrashed) {
1202
+ setShowTrashed(false);
1203
+ }
1204
+ if (medias === null) return;
1205
+ var rawMedias = (isArray(medias) ? medias : [medias]).filter(function (it) {
1206
+ return it !== null;
1207
+ });
1208
+ if (onMediaUploaded !== null) {
1209
+ setUploadProcessing(true);
1210
+ onMediaUploaded(rawMedias).then(function (newMedias) {
1211
+ onUploadedMediaChanged(newMedias);
1212
+ setUploadProcessing(false);
1213
+ })["catch"](function () {
1214
+ setUploadProcessing(false);
1215
+ });
1216
+ } else {
1217
+ onUploadedMediaChanged(rawMedias);
1218
+ }
1219
+ }, [onMediaUploaded, setUploadedMedias, setUploadProcessing, onUploadedMediaChanged]);
1220
+ var pagination = /*#__PURE__*/React.createElement(Pagination, {
1221
+ page: page,
1222
+ lastPage: lastPage,
1223
+ total: total,
1224
+ url: baseUrl,
1225
+ query: query,
1226
+ onClickPage: onPageChange,
1227
+ theme: theme,
1228
+ loading: loading && pages !== null,
1229
+ selectable: selectable,
1230
+ selectedItems: selectedItems,
1231
+ onSelectionChange: onSelectionChange,
1232
+ multipleSelection: multipleSelection,
1233
+ withPreviousNext: true,
1234
+ alwaysShowButtons: true
1235
+ });
1236
+ var hidePagination = loaded && !loading && (items || []).length === 0;
1237
+ var finalFilters = useMemo(function () {
1238
+ var partialFilters = withTrash ? (filters || []).concat([{
1239
+ name: 'trashed',
1240
+ component: 'button',
1241
+ theme: showTrashed ? 'danger' : 'secondary',
1242
+ outline: !showTrashed,
1243
+ activeTheme: 'danger',
1244
+ icon: showTrashed ? 'trash-fill' : 'trash',
1245
+ disabled: uploadProcessing,
1246
+ onClick: onClickTrash
1247
+ }]) : filters;
1248
+ if (types !== null && partialFilters !== null) {
1249
+ return (partialFilters || []).map(function (filter) {
1250
+ var _ref9 = filter || {},
1251
+ _ref9$id = _ref9.id,
1252
+ id = _ref9$id === void 0 ? null : _ref9$id;
1253
+ return id === 'types' ? _objectSpread(_objectSpread({}, filter), {}, {
1254
+ disabled: true
1255
+ }) : filter;
1256
+ });
1257
+ }
1258
+ return partialFilters;
1259
+ }, [filters, types, withTrash, showTrashed, uploadProcessing, onClickTrash]);
1260
+ var partialColumns = useMemo(function () {
1261
+ return withTrash && showTrashed ? (columns || []).map(function (column) {
1262
+ var _ref10 = column || {},
1263
+ _ref10$id = _ref10.id,
1264
+ columnId = _ref10$id === void 0 ? null : _ref10$id;
1265
+ if (columnId === 'created_at') {
1266
+ return _objectSpread(_objectSpread({}, column), {}, {
1267
+ path: 'deleted_at',
1268
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
1269
+ id: "uds4wJ",
1270
+ defaultMessage: [{
1271
+ "type": 0,
1272
+ "value": "Deleted at"
1273
+ }]
1274
+ })
1275
+ });
1276
+ }
1277
+ if (columnId === 'actions') {
1278
+ var _ref11 = column || {},
1279
+ _ref11$actions = _ref11.actions,
1280
+ actions = _ref11$actions === void 0 ? [] : _ref11$actions;
1281
+ return _objectSpread(_objectSpread({}, column), {}, {
1282
+ actions: (actions || []).reduce(function (acc, action) {
1283
+ if (action === 'delete') {
1284
+ acc.push({
1285
+ id: 'restore',
1286
+ component: 'restore',
1287
+ withConfirmation: true,
1288
+ action: function action(ids) {
1289
+ return mediaRestore(ids[0]).then(reload);
1290
+ }
1291
+ });
1292
+ }
1293
+ acc.push(action);
1294
+ return acc;
1295
+ }, []).filter(function (it) {
1296
+ return it !== 'edit';
1297
+ })
1298
+ });
1299
+ }
1300
+ return column;
1301
+ }) : columns;
1302
+ }, [columns, withTrash, showTrashed]);
1303
+ var finalColumns = useMemo(function () {
1304
+ return (partialColumns || []).map(function (column) {
1305
+ var _ref12 = column || {},
1306
+ _ref12$id = _ref12.id,
1307
+ columnId = _ref12$id === void 0 ? null : _ref12$id;
1308
+ if (columnId === 'actions') {
1309
+ var _ref13 = column || {},
1310
+ _ref13$actions = _ref13.actions,
1311
+ actions = _ref13$actions === void 0 ? [] : _ref13$actions;
1312
+ var availableActions = actions.filter(function (act) {
1313
+ return act !== 'delete' || canDelete;
1314
+ }).filter(function (act) {
1315
+ return act !== 'edit' || canEdit;
1316
+ });
1317
+ if (availableActions.length === 0) {
1318
+ return null;
1319
+ }
1320
+ return _objectSpread(_objectSpread({}, column), {}, {
1321
+ actions: availableActions
1322
+ });
1323
+ }
1324
+ return column;
1325
+ }).filter(function (act) {
1326
+ return act !== null;
1327
+ });
1328
+ }, [partialColumns, canEdit, canDelete]);
1329
+ var hasQueryItem = useMemo(function () {
1330
+ var showOnTopQuery = types === null ? query : queryWithoutTypes;
1331
+ return showOnTopQuery !== null && !trashed ? Object.keys(showOnTopQuery).length > 0 : false;
1332
+ }, [types, query, queryWithoutTypes, trashed]);
1333
+ var finalItems = useMemo(function () {
1334
+ if (withStickySelection && (extraItems !== null || uploadedMedias !== null || uploadProcessing === true)) {
1335
+ return uniqBy([].concat(_toConsumableArray(uploadProcessing ? [{
1336
+ id: '-',
1337
+ loading: true,
1338
+ actionsDisabled: true,
1339
+ selectionDisabled: true
1340
+ }] : []), _toConsumableArray(page === 1 && !hasQueryItem ? uploadedMedias || [] : []), _toConsumableArray(page === 1 && !hasQueryItem && !showTrashed ? (extraItems || []).map(function (item) {
1341
+ var _item$id = item.id,
1342
+ itemId = _item$id === void 0 ? null : _item$id;
1343
+ return (allItems || []).find(function () {
1344
+ var _ref14 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1345
+ _ref14$id = _ref14.id,
1346
+ otherId = _ref14$id === void 0 ? null : _ref14$id;
1347
+ return otherId === itemId;
1348
+ }) || item || null;
1349
+ }).filter(function (it) {
1350
+ return it !== null;
1351
+ }) || [] : []), _toConsumableArray(items || [])), function (it) {
1352
+ return it === null || it === void 0 ? void 0 : it.id;
1353
+ });
1354
+ }
1355
+ return items;
1356
+ }, [items, page, allItems, withStickySelection, extraItems, uploadProcessing, hasQueryItem, showTrashed]);
1357
+
1358
+ // const emptyWithSticky = useMemo(
1359
+ // () => (items || []).length === 0 && (finalItems || []).length > 0,
1360
+ // [items, finalItems],
1361
+ // );
1362
+
1363
+ return /*#__PURE__*/React.createElement("div", {
1364
+ className: className
1365
+ }, currentMedia !== null ? /*#__PURE__*/React.createElement(MediaForm, {
1366
+ value: currentMedia,
1367
+ fields: fields,
1368
+ onChange: setCurrentMedia,
1369
+ onSave: onSaveMedia,
1370
+ onClose: onCloseMedia,
1371
+ onDelete: onDeleteMedia,
1372
+ withDelete: withDelete,
1373
+ withTrash: withTrash,
1374
+ withReplace: withReplace
1375
+ }, formChildren) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1376
+ className: classNames(['d-flex', 'justify-content-between'])
1377
+ }, filters !== null ? /*#__PURE__*/React.createElement(Filters, {
1378
+ value: query,
1379
+ clearValue: types !== null ? queryWithoutTypes : null,
1380
+ filters: finalFilters,
1381
+ onChange: onQueryChange,
1382
+ onReset: onQueryReset,
1383
+ theme: theme
1384
+ }) : null, canUpload ? /*#__PURE__*/React.createElement(UploadField, {
1385
+ className: "ms-auto w-auto text-nowrap mt-2 mb-2 ps-2",
1386
+ withButton: true,
1387
+ withoutMedia: true,
1388
+ uppyProps: uppyConfig,
1389
+ types: types,
1390
+ allowMultipleUploads: true,
1391
+ onChange: onUploadComplete,
1392
+ disabled: uploadProcessing,
1393
+ loading: uploadProcessing,
1394
+ outline: false,
1395
+ closeAfterFinish: true
1396
+ }) : null), /*#__PURE__*/React.createElement("div", {
1397
+ className: classNames(['d-flex', 'mt-1', 'mb-3', {
1398
+ 'justify-content-between': hasLayouts,
1399
+ 'justify-content-end': !hasLayouts
1400
+ }])
1401
+ }, hasLayouts ? /*#__PURE__*/React.createElement(Buttons, {
1402
+ size: "sm",
1403
+ theme: "secondary",
1404
+ outline: true,
1405
+ items: (layouts || []).map(function (lay) {
1406
+ return _objectSpread(_objectSpread({}, lay), {}, {
1407
+ active: layout === lay.id,
1408
+ onClick: function onClick() {
1409
+ return onClickLayout(lay.id);
1410
+ },
1411
+ className: 'px-3 py-2'
1412
+ });
1413
+ })
1414
+ }) : null, !hidePagination ? pagination : /*#__PURE__*/React.createElement("div", null)), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid, {
1415
+ size: "small",
1416
+ theme: theme,
1417
+ component: MediaCard,
1418
+ componentProps: {
1419
+ className: 'd-flex w-100',
1420
+ cardClassName: 'flex-grow-1',
1421
+ vertical: true,
1422
+ onClickDescription: function onClickDescription(it) {
1423
+ onOpenMedia(it);
1424
+ }
1425
+ },
1426
+ selectable: selectable && !showTrashed,
1427
+ selectedItems: selectedItems,
1428
+ onSelectionChange: uploadProcessing ? null : onSelectionChange,
1429
+ multipleSelection: multipleSelection,
1430
+ query: query // For sort
1431
+ ,
1432
+ onQueryChange: onQueryChange,
1433
+ items: finalItems || [],
1434
+ loading: loading,
1435
+ loaded: loaded
1436
+ // empty={emptyWithSticky}
1437
+ }) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, {
1438
+ theme: theme,
1439
+ columns: finalColumns,
1440
+ displayPlaceholder: /*#__PURE__*/React.createElement("span", {
1441
+ className: "text-secondary text-opacity-75"
1442
+ }, "\u2014"),
1443
+ selectable: selectable && !showTrashed,
1444
+ selectedItems: selectedItems,
1445
+ onSelectionChange: uploadProcessing ? null : onSelectionChange,
1446
+ multipleSelection: multipleSelection,
1447
+ query: query // For sort
1448
+ ,
1449
+ onQueryChange: onQueryChange,
1450
+ items: finalItems,
1451
+ loading: loading,
1452
+ loaded: loaded
1453
+ // empty={emptyWithSticky}
1454
+ ,
1455
+ actionsProps: {
1456
+ getDeletePropsFromItem: function getDeletePropsFromItem() {
1457
+ return {
1458
+ href: null,
1459
+ withConfirmation: true,
1460
+ disabled: trashing || deleting,
1461
+ icon: showTrashed ? 'trash-fill' : 'trash',
1462
+ action: function action(ids) {
1463
+ return onTrashMedia(ids[0]);
1464
+ }
1465
+ };
1466
+ },
1467
+ getEditPropsFromItem: function getEditPropsFromItem(it) {
1468
+ return {
1469
+ href: null,
1470
+ onClick: function onClick() {
1471
+ onOpenMedia(it);
1472
+ }
1473
+ };
1474
+ }
1475
+ }
1476
+ }) : null, !hidePagination ? /*#__PURE__*/React.createElement("div", {
1477
+ className: classNames(['d-flex', 'mt-3', 'mb-1', 'justify-content-end'])
1478
+ }, pagination) : null));
1479
+ }
1480
+ MediasBrowser.propTypes = propTypes$5;
1481
+ MediasBrowser.defaultProps = defaultProps$5;
1482
+
1483
+ var _excluded$4 = ["items", "value", "onChange", "multiple", "className"];
1484
+ var propTypes$4 = {
1485
+ items: PropTypes.arrayOf(PropTypes.shape({})),
1486
+ value: PropTypes.oneOfType([PropTypes.shape({}), PropTypes.arrayOf(PropTypes.shape({}))]),
1487
+ multiple: PropTypes.bool,
1488
+ onChange: PropTypes.func.isRequired,
1489
+ className: PropTypes.string
1490
+ };
1491
+ var defaultProps$4 = {
1492
+ items: null,
1493
+ value: null,
1494
+ multiple: false,
1495
+ className: null
1496
+ };
1497
+ function MediasPicker(_ref) {
1498
+ var initialItems = _ref.items,
1499
+ initialSelectedItems = _ref.value,
1500
+ onChange = _ref.onChange,
1501
+ multiple = _ref.multiple,
1502
+ className = _ref.className,
1503
+ props = _objectWithoutProperties(_ref, _excluded$4);
1504
+ // Keep the previous selection on top of first page
1505
+ var extraItems = useMemo(function () {
1506
+ if (initialSelectedItems === null) {
1507
+ return null;
1508
+ }
1509
+ return isArray(initialSelectedItems) ? initialSelectedItems : [initialSelectedItems];
1510
+ }, []);
1511
+
1512
+ // Mostly for testing
1513
+ var _useState = useState(initialSelectedItems || null),
1514
+ _useState2 = _slicedToArray(_useState, 2),
1515
+ selectedItems = _useState2[0],
1516
+ setSelectedItems = _useState2[1];
1517
+ var onSelectionChange = useCallback(function (newSelection) {
1518
+ setSelectedItems(newSelection);
1519
+ }, [setSelectedItems]);
1520
+
1521
+ // Sync from the top
1522
+ useEffect(function () {
1523
+ setSelectedItems(initialSelectedItems);
1524
+ }, [initialSelectedItems, setSelectedItems]);
1525
+ useEffect(function () {
1526
+ if (onChange !== null) {
1527
+ onChange(selectedItems);
1528
+ }
1529
+ }, [selectedItems, onChange]);
1530
+ return /*#__PURE__*/React.createElement("div", {
1531
+ className: className
1532
+ }, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
1533
+ items: initialItems // TODO: fix useItems if actually using this
1534
+ ,
1535
+ selectable: true,
1536
+ selectedItems: selectedItems,
1537
+ onSelectionChange: onSelectionChange,
1538
+ multipleSelection: multiple,
1539
+ extraItems: extraItems
1540
+ }, props)));
1541
+ }
1542
+ MediasPicker.propTypes = propTypes$4;
1543
+ MediasPicker.defaultProps = defaultProps$4;
1544
+
1545
+ var _excluded$3 = ["api", "media"];
1546
+ var propTypes$3 = {
1547
+ api: apiPropTypes,
1548
+ media: PropTypes.shape({
1549
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1550
+ })
1551
+ };
1552
+ var defaultProps$3 = {
1553
+ api: null,
1554
+ media: null
1555
+ };
1556
+ function MediasBrowserContainer(_ref) {
1557
+ var api = _ref.api,
1558
+ media = _ref.media,
1559
+ props = _objectWithoutProperties(_ref, _excluded$3);
1560
+ return /*#__PURE__*/React.createElement(MediasApiProvider, {
1561
+ api: api
1562
+ }, /*#__PURE__*/React.createElement(MediaProvider, {
1563
+ media: media
1564
+ }, /*#__PURE__*/React.createElement(MediasBrowser, props)));
1565
+ }
1566
+ MediasBrowserContainer.propTypes = propTypes$3;
1567
+ MediasBrowserContainer.defaultProps = defaultProps$3;
1568
+
1569
+ var _excluded$2 = ["api", "media", "onChange"];
1570
+ var propTypes$2 = {
1571
+ api: apiPropTypes,
1572
+ media: PropTypes.shape({
1573
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1574
+ }),
1575
+ onChange: PropTypes.func.isRequired
1576
+ };
1577
+ var defaultProps$2 = {
1578
+ api: null,
1579
+ media: null
1580
+ };
1581
+ function MediasPickerContainer(_ref) {
1582
+ var api = _ref.api,
1583
+ media = _ref.media,
1584
+ onChange = _ref.onChange,
1585
+ props = _objectWithoutProperties(_ref, _excluded$2);
1586
+ return /*#__PURE__*/React.createElement(MediasApiProvider, {
1587
+ api: api
1588
+ }, /*#__PURE__*/React.createElement(MediaProvider, {
1589
+ media: media
1590
+ }, /*#__PURE__*/React.createElement(MediasPicker, Object.assign({}, props, {
1591
+ onChange: onChange
1592
+ }))));
1593
+ }
1594
+ MediasPickerContainer.propTypes = propTypes$2;
1595
+ MediasPickerContainer.defaultProps = defaultProps$2;
1596
+
1597
+ var _excluded$1 = ["resource"];
1598
+ var propTypes$1 = {
1599
+ resource: PropTypes.string
1600
+ };
1601
+ var defaultProps$1 = {
1602
+ resource: 'medias'
1603
+ };
1604
+ function MediasResourceBrowser(_ref) {
1605
+ var resourceId = _ref.resource,
1606
+ props = _objectWithoutProperties(_ref, _excluded$1);
1607
+ var resource = usePanneauResource(resourceId);
1608
+ var api = useApi();
1609
+ var mediasApi = useMemo(function () {
1610
+ return {
1611
+ get: function get() {
1612
+ var _api$resources;
1613
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1614
+ args[_key] = arguments[_key];
1615
+ }
1616
+ return (_api$resources = api.resources).get.apply(_api$resources, [resource].concat(args));
1617
+ },
1618
+ getTrashed: function getTrashed() {
1619
+ var _api$resources2;
1620
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1621
+ args[_key2] = arguments[_key2];
1622
+ }
1623
+ return (_api$resources2 = api.resources).getTrashed.apply(_api$resources2, [resource].concat(args));
1624
+ },
1625
+ find: function find() {
1626
+ var _api$resources3;
1627
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1628
+ args[_key3] = arguments[_key3];
1629
+ }
1630
+ return (_api$resources3 = api.resources).find.apply(_api$resources3, [resource].concat(args));
1631
+ },
1632
+ create: function create() {
1633
+ var _api$resources4;
1634
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1635
+ args[_key4] = arguments[_key4];
1636
+ }
1637
+ return (_api$resources4 = api.resources).create.apply(_api$resources4, [resource].concat(args));
1638
+ },
1639
+ update: function update() {
1640
+ var _api$resources5;
1641
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1642
+ args[_key5] = arguments[_key5];
1643
+ }
1644
+ return (_api$resources5 = api.resources).update.apply(_api$resources5, [resource].concat(args));
1645
+ },
1646
+ trash: function trash() {
1647
+ var _api$resources6;
1648
+ for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
1649
+ args[_key6] = arguments[_key6];
1650
+ }
1651
+ return (_api$resources6 = api.resources).trash.apply(_api$resources6, [resource].concat(args));
1652
+ },
1653
+ "delete": function _delete() {
1654
+ var _api$resources7;
1655
+ for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
1656
+ args[_key7] = arguments[_key7];
1657
+ }
1658
+ return (_api$resources7 = api.resources)["delete"].apply(_api$resources7, [resource].concat(args));
1659
+ }
1660
+ };
1661
+ }, [api, resource]);
1662
+ return /*#__PURE__*/React.createElement(MediasBrowserContainer, Object.assign({
1663
+ api: mediasApi
1664
+ }, props));
1665
+ }
1666
+ MediasResourceBrowser.propTypes = propTypes$1;
1667
+ MediasResourceBrowser.defaultProps = defaultProps$1;
1668
+
1669
+ var _excluded = ["resource"];
1670
+ var propTypes = {
1671
+ resource: PropTypes.string
1672
+ };
1673
+ var defaultProps = {
1674
+ resource: 'medias'
1675
+ };
1676
+ function MediasResourcePicker(_ref) {
1677
+ var resourceId = _ref.resource,
1678
+ props = _objectWithoutProperties(_ref, _excluded);
1679
+ var resource = usePanneauResource(resourceId);
1680
+ var _ref2 = resource || {},
1681
+ _ref2$index = _ref2.index,
1682
+ index = _ref2$index === void 0 ? null : _ref2$index,
1683
+ _ref2$fields = _ref2.fields,
1684
+ fields = _ref2$fields === void 0 ? null : _ref2$fields;
1685
+ var _ref3 = index || {},
1686
+ _ref3$filters = _ref3.filters,
1687
+ filters = _ref3$filters === void 0 ? null : _ref3$filters,
1688
+ _ref3$columns = _ref3.columns,
1689
+ columns = _ref3$columns === void 0 ? null : _ref3$columns;
1690
+ var api = useApi();
1691
+ var mediasApi = useMemo(function () {
1692
+ return {
1693
+ get: function get() {
1694
+ var _api$resources;
1695
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1696
+ args[_key] = arguments[_key];
1697
+ }
1698
+ return (_api$resources = api.resources).get.apply(_api$resources, [resource].concat(args));
1699
+ },
1700
+ getTrashed: function getTrashed() {
1701
+ var _api$resources2;
1702
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1703
+ args[_key2] = arguments[_key2];
1704
+ }
1705
+ return (_api$resources2 = api.resources).getTrashed.apply(_api$resources2, [resource].concat(args));
1706
+ },
1707
+ find: function find() {
1708
+ var _api$resources3;
1709
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1710
+ args[_key3] = arguments[_key3];
1711
+ }
1712
+ return (_api$resources3 = api.resources).find.apply(_api$resources3, [resource].concat(args));
1713
+ },
1714
+ create: function create() {
1715
+ var _api$resources4;
1716
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1717
+ args[_key4] = arguments[_key4];
1718
+ }
1719
+ return (_api$resources4 = api.resources).create.apply(_api$resources4, [resource].concat(args));
1720
+ },
1721
+ update: function update() {
1722
+ var _api$resources5;
1723
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1724
+ args[_key5] = arguments[_key5];
1725
+ }
1726
+ return (_api$resources5 = api.resources).update.apply(_api$resources5, [resource].concat(args));
1727
+ },
1728
+ trash: function trash() {
1729
+ var _api$resources6;
1730
+ for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
1731
+ args[_key6] = arguments[_key6];
1732
+ }
1733
+ return (_api$resources6 = api.resources).trash.apply(_api$resources6, [resource].concat(args));
1734
+ },
1735
+ "delete": function _delete() {
1736
+ var _api$resources7;
1737
+ for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
1738
+ args[_key7] = arguments[_key7];
1739
+ }
1740
+ return (_api$resources7 = api.resources)["delete"].apply(_api$resources7, [resource].concat(args));
1741
+ }
1742
+ };
1743
+ }, [api, resource]);
1744
+ return /*#__PURE__*/React.createElement(MediasPickerContainer, Object.assign({
1745
+ api: mediasApi
1746
+ }, filters !== null ? {
1747
+ filters: filters
1748
+ } : null, fields !== null ? {
1749
+ fields: fields
1750
+ } : null, columns !== null ? {
1751
+ columns: columns
1752
+ } : null, props));
1753
+ }
1754
+ MediasResourcePicker.propTypes = propTypes;
1755
+ MediasResourcePicker.defaultProps = defaultProps;
1756
+
1757
+ export { MediaForm, MediaProvider, MediasApiProvider, MediasBrowser, MediasBrowserContainer, MediasPicker, MediasPickerContainer, MediasResourceBrowser, MediasResourcePicker, apiPropTypes, defaultColumns as columns, defaultFields as fields, defaultFilters as filters, useCurrentMedia, useMedia$1 as useMedia, useMediaCreate$1 as useMediaCreate, useMediaDelete$1 as useMediaDelete, useMediaReplace$1 as useMediaReplace, useMediaRestore$1 as useMediaRestore, useMediaTrash$1 as useMediaTrash, useMediaUpdate$1 as useMediaUpdate, useMedias$1 as useMedias, useMediasApi };