@panneau/medias 3.0.153 → 3.0.156
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 +206 -107
- package/lib/index.js +206 -107
- package/package.json +17 -16
package/es/index.js
CHANGED
@@ -8,11 +8,12 @@ import { useDisplaysComponentsManager, useFieldComponent, usePanneauResource } f
|
|
8
8
|
import { useForm, useQuery, useItemSelection } from '@panneau/core/hooks';
|
9
9
|
import Button from '@panneau/element-button';
|
10
10
|
import Form from '@panneau/element-form';
|
11
|
+
import FormStatus from '@panneau/element-form-status';
|
11
12
|
import MediaPlayer from '@panneau/element-media-player';
|
12
13
|
import MediaPreview from '@panneau/element-media-preview';
|
14
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
13
15
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
14
16
|
import { get } from 'lodash';
|
15
|
-
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
16
17
|
import { PropTypes as PropTypes$1 } from '@panneau/core';
|
17
18
|
import Buttons from '@panneau/element-buttons';
|
18
19
|
import Grid from '@panneau/element-grid';
|
@@ -213,25 +214,28 @@ function MediaFrame(_ref) {
|
|
213
214
|
setShowPlayer(!showPlayer);
|
214
215
|
}, [showPlayer, setShowPlayer]);
|
215
216
|
return /*#__PURE__*/React.createElement("div", {
|
216
|
-
className: classNames([className, _defineProperty({}, className, className != null)])
|
217
|
+
className: classNames([className, 'position-relative', _defineProperty({}, className, className != null)])
|
217
218
|
}, showPlayer ? /*#__PURE__*/React.createElement(MediaPlayer, {
|
218
|
-
value: value
|
219
|
+
value: value,
|
220
|
+
width: "100%"
|
219
221
|
}) : /*#__PURE__*/React.createElement(MediaPreview, {
|
220
222
|
value: value,
|
221
223
|
width: "100%"
|
222
|
-
}
|
224
|
+
}, /*#__PURE__*/React.createElement("div", {
|
223
225
|
className: styles.playButton
|
224
226
|
}, !showPlayer && (type === 'video' || type === 'embed' || type === 'audio') ? /*#__PURE__*/React.createElement(Button, {
|
225
227
|
className: "rounded-circle",
|
226
228
|
theme: "secondary",
|
227
229
|
onClick: onClick,
|
228
|
-
icon: "play-fill"
|
229
|
-
|
230
|
+
icon: "play-fill",
|
231
|
+
size: "lg"
|
232
|
+
}) : null)));
|
230
233
|
}
|
231
234
|
MediaFrame.propTypes = propTypes$8;
|
232
235
|
MediaFrame.defaultProps = defaultProps$8;
|
233
236
|
|
234
|
-
var _excluded$6 = ["
|
237
|
+
var _excluded$6 = ["path"],
|
238
|
+
_excluded2$1 = ["label", "value", "component"];
|
235
239
|
var propTypes$7 = {
|
236
240
|
value: PropTypes.shape({
|
237
241
|
metadata: PropTypes.shape({}),
|
@@ -256,61 +260,78 @@ var defaultProps$7 = {
|
|
256
260
|
function MediaMetadata(_ref) {
|
257
261
|
var sections = _ref.sections,
|
258
262
|
displays = _ref.displays,
|
259
|
-
|
263
|
+
filtersValue = _ref.value,
|
260
264
|
className = _ref.className;
|
261
265
|
var displayComponents = useDisplaysComponentsManager();
|
262
266
|
var finalSections = useMemo(function () {
|
263
|
-
var
|
264
|
-
var _ref2$
|
265
|
-
|
267
|
+
var displaysWithValue = (displays || []).map(function (_ref2) {
|
268
|
+
var _ref2$path = _ref2.path,
|
269
|
+
path = _ref2$path === void 0 ? null : _ref2$path,
|
270
|
+
props = _objectWithoutProperties(_ref2, _excluded$6);
|
271
|
+
return _objectSpread({
|
272
|
+
value: get(filtersValue, path, null)
|
273
|
+
}, props);
|
274
|
+
}).filter(function (_ref3) {
|
275
|
+
var _ref3$value = _ref3.value,
|
276
|
+
value = _ref3$value === void 0 ? null : _ref3$value;
|
277
|
+
return value !== null;
|
278
|
+
});
|
279
|
+
var displaysWithoutSection = (displaysWithValue || []).filter(function (_ref4) {
|
280
|
+
var _ref4$section = _ref4.section,
|
281
|
+
section = _ref4$section === void 0 ? null : _ref4$section;
|
266
282
|
return section === null;
|
267
283
|
});
|
268
|
-
return (sections || []).map(function (
|
269
|
-
var
|
270
|
-
id =
|
271
|
-
|
272
|
-
title =
|
284
|
+
return (sections || []).map(function (_ref5) {
|
285
|
+
var _ref5$id = _ref5.id,
|
286
|
+
id = _ref5$id === void 0 ? null : _ref5$id,
|
287
|
+
_ref5$title = _ref5.title,
|
288
|
+
title = _ref5$title === void 0 ? null : _ref5$title;
|
273
289
|
return {
|
274
290
|
id: id,
|
275
291
|
title: title,
|
276
|
-
items: (
|
277
|
-
var
|
278
|
-
section =
|
292
|
+
items: (displaysWithValue || []).filter(function (_ref6) {
|
293
|
+
var _ref6$section = _ref6.section,
|
294
|
+
section = _ref6$section === void 0 ? null : _ref6$section;
|
279
295
|
return section === id;
|
280
296
|
})
|
281
297
|
};
|
282
298
|
}).concat({
|
299
|
+
id: 'others',
|
283
300
|
title: null,
|
284
301
|
items: displaysWithoutSection
|
302
|
+
}).filter(function (_ref7) {
|
303
|
+
var _ref7$items = _ref7.items,
|
304
|
+
items = _ref7$items === void 0 ? null : _ref7$items;
|
305
|
+
return items !== null && items.length > 0;
|
285
306
|
});
|
286
|
-
}, [sections, displays]);
|
307
|
+
}, [sections, displays, filtersValue]);
|
287
308
|
return /*#__PURE__*/React.createElement("div", {
|
288
309
|
className: classNames(['px-2', _defineProperty({}, className, className !== null)])
|
289
|
-
}, (finalSections || []).map(function (
|
290
|
-
var
|
291
|
-
title =
|
292
|
-
|
293
|
-
items =
|
310
|
+
}, (finalSections || []).map(function (_ref9, idx) {
|
311
|
+
var _ref9$title = _ref9.title,
|
312
|
+
title = _ref9$title === void 0 ? null : _ref9$title,
|
313
|
+
_ref9$items = _ref9.items,
|
314
|
+
items = _ref9$items === void 0 ? [] : _ref9$items;
|
294
315
|
return /*#__PURE__*/React.createElement("div", {
|
295
|
-
className:
|
296
|
-
key: "section-".concat(
|
316
|
+
className: idx < finalSections.length - 1 ? 'mb-5' : null,
|
317
|
+
key: "section-".concat(idx + 1)
|
297
318
|
}, title !== null ? /*#__PURE__*/React.createElement("h6", {
|
298
319
|
className: "px-1"
|
299
320
|
}, title) : null, /*#__PURE__*/React.createElement("ul", {
|
300
321
|
className: "list-group list-group-flush"
|
301
|
-
}, (items || []).map(function (
|
302
|
-
var label =
|
303
|
-
|
304
|
-
|
305
|
-
component =
|
306
|
-
props = _objectWithoutProperties(
|
322
|
+
}, (items || []).map(function (_ref10, index) {
|
323
|
+
var label = _ref10.label,
|
324
|
+
value = _ref10.value,
|
325
|
+
_ref10$component = _ref10.component,
|
326
|
+
component = _ref10$component === void 0 ? null : _ref10$component,
|
327
|
+
props = _objectWithoutProperties(_ref10, _excluded2$1);
|
307
328
|
var Component = displayComponents.getComponent(component || 'text');
|
308
|
-
var itemValue =
|
329
|
+
var itemValue = value || null;
|
309
330
|
return Component !== null && itemValue !== null ? /*#__PURE__*/React.createElement("li", {
|
331
|
+
key: "item-".concat(index + 1),
|
310
332
|
className: classNames(['row', 'd-flex', 'align-items-center', 'justify-content-between', 'p-1', 'border-secondary-1', 'border-1', 'border-bottom', 'text-small', {
|
311
333
|
'border-top': index === 0
|
312
|
-
}])
|
313
|
-
key: "item-".concat(index + 1)
|
334
|
+
}])
|
314
335
|
}, /*#__PURE__*/React.createElement("div", {
|
315
336
|
className: "col-auto"
|
316
337
|
}, label), /*#__PURE__*/React.createElement("div", {
|
@@ -477,7 +498,7 @@ var propTypes$6 = {
|
|
477
498
|
name: PropTypes.string
|
478
499
|
})),
|
479
500
|
onChange: PropTypes.func.isRequired,
|
480
|
-
|
501
|
+
onSave: PropTypes.func.isRequired,
|
481
502
|
onDelete: PropTypes.func,
|
482
503
|
onClose: PropTypes.func,
|
483
504
|
className: PropTypes.string
|
@@ -497,7 +518,7 @@ function MediaForm(_ref) {
|
|
497
518
|
sections = _ref.sections,
|
498
519
|
displays = _ref.displays,
|
499
520
|
onChange = _ref.onChange,
|
500
|
-
|
521
|
+
onSave = _ref.onSave,
|
501
522
|
onDelete = _ref.onDelete,
|
502
523
|
onClose = _ref.onClose,
|
503
524
|
className = _ref.className;
|
@@ -509,9 +530,9 @@ function MediaForm(_ref) {
|
|
509
530
|
destroy = _useMediaDestroy.destroy,
|
510
531
|
destroying = _useMediaDestroy.loading;
|
511
532
|
var _useState = useState(false),
|
512
|
-
_useState2 = _slicedToArray(_useState, 2)
|
513
|
-
_useState2[0]
|
514
|
-
|
533
|
+
_useState2 = _slicedToArray(_useState, 2),
|
534
|
+
changed = _useState2[0],
|
535
|
+
setChanged = _useState2[1];
|
515
536
|
var disabled = updating || destroying || initialValue === null;
|
516
537
|
var _ref2 = initialValue || {},
|
517
538
|
_ref2$name = _ref2.name,
|
@@ -525,21 +546,26 @@ function MediaForm(_ref) {
|
|
525
546
|
setChanged(true);
|
526
547
|
}, [onChange, setChanged]);
|
527
548
|
var onMediaSaved = useCallback(function (newValue) {
|
528
|
-
if (
|
529
|
-
|
549
|
+
if (onSave !== null) {
|
550
|
+
onSave(newValue);
|
530
551
|
}
|
531
552
|
setChanged(false);
|
532
553
|
}, [onChange, setChanged]);
|
533
554
|
var onDeleteMedia = useCallback(function () {
|
534
555
|
// Destroy
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
556
|
+
var _ref3 = initialValue || {},
|
557
|
+
_ref3$id = _ref3.id,
|
558
|
+
id = _ref3$id === void 0 ? null : _ref3$id;
|
559
|
+
destroy(id, initialValue).then(function () {
|
560
|
+
if (onClose !== null) {
|
561
|
+
onClose();
|
562
|
+
}
|
563
|
+
if (onDelete !== null) {
|
564
|
+
onDelete();
|
565
|
+
}
|
566
|
+
setChanged(false);
|
567
|
+
});
|
568
|
+
}, [initialValue, destroy, destroying, setChanged]);
|
543
569
|
var postForm = useCallback(function (action, data) {
|
544
570
|
return initialValue !== null ? update(initialValue.id, data) : new Promise();
|
545
571
|
}, [initialValue, update]);
|
@@ -548,36 +574,41 @@ function MediaForm(_ref) {
|
|
548
574
|
postForm: postForm,
|
549
575
|
onComplete: onMediaSaved,
|
550
576
|
value: initialValue,
|
551
|
-
setValue:
|
577
|
+
setValue: onChangeMedia,
|
578
|
+
disabled: updating
|
552
579
|
}),
|
553
580
|
value = _useForm.value,
|
554
581
|
setValue = _useForm.setValue,
|
555
|
-
fields = _useForm.fields
|
556
|
-
_useForm.onSubmit
|
557
|
-
_useForm.status
|
558
|
-
_useForm.generalError;
|
559
|
-
_useForm.errors;
|
582
|
+
fields = _useForm.fields,
|
583
|
+
onSubmit = _useForm.onSubmit,
|
584
|
+
status = _useForm.status,
|
585
|
+
generalError = _useForm.generalError;
|
560
586
|
return /*#__PURE__*/React.createElement("div", {
|
561
587
|
className: classNames(['text-body', _defineProperty({}, className, className !== null)])
|
562
588
|
}, /*#__PURE__*/React.createElement("div", {
|
563
|
-
className: "d-flex w-100 justify-content-between mb-
|
564
|
-
}, /*#__PURE__*/React.createElement("div",
|
565
|
-
className: "d-
|
589
|
+
className: "d-flex w-100 align-items-start justify-content-between mb-3 pb-2 border-bottom"
|
590
|
+
}, /*#__PURE__*/React.createElement("div", {
|
591
|
+
className: "d-flex align-items-end mb-0"
|
592
|
+
}, /*#__PURE__*/React.createElement("h4", {
|
593
|
+
className: "d-inline text-break mb-1"
|
566
594
|
}, name), /*#__PURE__*/React.createElement("span", {
|
567
595
|
className: "mx-2"
|
568
596
|
}, type)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
|
569
|
-
className: "me-2",
|
597
|
+
className: "me-2 mb-1",
|
570
598
|
theme: "danger",
|
571
|
-
onClick: onDeleteMedia
|
599
|
+
onClick: onDeleteMedia,
|
600
|
+
disabled: destroying
|
572
601
|
}, /*#__PURE__*/React.createElement(FormattedMessage, {
|
573
602
|
id: "Bhu3B2",
|
574
603
|
defaultMessage: [{
|
575
604
|
"type": 0,
|
576
605
|
"value": "Delete"
|
577
606
|
}]
|
578
|
-
})),
|
607
|
+
})), onSave !== null ? /*#__PURE__*/React.createElement(Button, {
|
608
|
+
className: "mb-1",
|
579
609
|
theme: "primary",
|
580
|
-
onClick:
|
610
|
+
onClick: onSubmit,
|
611
|
+
disabled: !changed || updating || destroying
|
581
612
|
}, /*#__PURE__*/React.createElement(FormattedMessage, {
|
582
613
|
id: "R1HYj0",
|
583
614
|
defaultMessage: [{
|
@@ -589,10 +620,7 @@ function MediaForm(_ref) {
|
|
589
620
|
}, /*#__PURE__*/React.createElement("div", {
|
590
621
|
className: "col-md-6"
|
591
622
|
}, /*#__PURE__*/React.createElement("div", {
|
592
|
-
className: "position-relative w-100"
|
593
|
-
style: {
|
594
|
-
height: 400
|
595
|
-
}
|
623
|
+
className: "position-relative w-100"
|
596
624
|
}, /*#__PURE__*/React.createElement("div", {
|
597
625
|
className: styles.mediaFrame
|
598
626
|
}, /*#__PURE__*/React.createElement(MediaFrame, {
|
@@ -612,7 +640,11 @@ function MediaForm(_ref) {
|
|
612
640
|
value: value,
|
613
641
|
sections: sections,
|
614
642
|
displays: displays
|
615
|
-
})
|
643
|
+
}), generalError !== null && status !== null ? /*#__PURE__*/React.createElement("div", {
|
644
|
+
className: "mt-5"
|
645
|
+
}, /*#__PURE__*/React.createElement(FormStatus, {
|
646
|
+
status: status
|
647
|
+
})) : null)));
|
616
648
|
}
|
617
649
|
MediaForm.propTypes = propTypes$6;
|
618
650
|
MediaForm.defaultProps = defaultProps$6;
|
@@ -732,7 +764,20 @@ var defaultColumns = [{
|
|
732
764
|
}),
|
733
765
|
component: 'avatar',
|
734
766
|
path: 'metadata.author',
|
735
|
-
namePath: 'name'
|
767
|
+
namePath: 'name',
|
768
|
+
withoutName: true
|
769
|
+
}, {
|
770
|
+
id: 'actions',
|
771
|
+
label: /*#__PURE__*/React.createElement(FormattedMessage, {
|
772
|
+
id: "rtwfuZ",
|
773
|
+
defaultMessage: [{
|
774
|
+
"type": 0,
|
775
|
+
"value": "Actions"
|
776
|
+
}]
|
777
|
+
})
|
778
|
+
// component: 'button',
|
779
|
+
// label: 'Edit',
|
780
|
+
// url: '/edit/1',
|
736
781
|
}
|
737
782
|
// {
|
738
783
|
// id: 'status',
|
@@ -743,9 +788,9 @@ var defaultColumns = [{
|
|
743
788
|
];
|
744
789
|
|
745
790
|
var defaultFilters = [{
|
746
|
-
id: '
|
791
|
+
id: 'types',
|
747
792
|
component: 'select',
|
748
|
-
name: '
|
793
|
+
name: 'types',
|
749
794
|
placeholder: /*#__PURE__*/React.createElement(FormattedMessage, {
|
750
795
|
id: "9/t5wK",
|
751
796
|
defaultMessage: [{
|
@@ -825,10 +870,14 @@ var defaultFilters = [{
|
|
825
870
|
name: 'search'
|
826
871
|
}];
|
827
872
|
|
828
|
-
var _excluded$5 = ["page", "count"]
|
873
|
+
var _excluded$5 = ["page", "count"],
|
874
|
+
_excluded2 = ["types"];
|
829
875
|
var propTypes$5 = {
|
830
876
|
items: PropTypes$1.medias,
|
831
|
-
|
877
|
+
types: PropTypes.arrayOf(PropTypes.string),
|
878
|
+
uploadButton: PropTypes.shape({
|
879
|
+
value: PropTypes.oneOfType([PropTypes$1.medias, PropTypes$1.media])
|
880
|
+
}),
|
832
881
|
buttons: PropTypes$1.buttons,
|
833
882
|
filters: PropTypes$1.filters,
|
834
883
|
columns: PropTypes$1.tableColumns,
|
@@ -848,6 +897,7 @@ var propTypes$5 = {
|
|
848
897
|
theme: PropTypes.string,
|
849
898
|
tableProps: PropTypes.bool,
|
850
899
|
onSelectItem: PropTypes.func,
|
900
|
+
onSelectItems: PropTypes.func,
|
851
901
|
onItemsChange: PropTypes.func,
|
852
902
|
onLayoutChange: PropTypes.func,
|
853
903
|
selectedCount: PropTypes.number,
|
@@ -856,6 +906,7 @@ var propTypes$5 = {
|
|
856
906
|
};
|
857
907
|
var defaultProps$5 = {
|
858
908
|
items: null,
|
909
|
+
types: null,
|
859
910
|
uploadButton: null,
|
860
911
|
buttons: null,
|
861
912
|
filters: defaultFilters,
|
@@ -882,6 +933,7 @@ var defaultProps$5 = {
|
|
882
933
|
theme: null,
|
883
934
|
tableProps: null,
|
884
935
|
onSelectItem: null,
|
936
|
+
onSelectItems: null,
|
885
937
|
onItemsChange: null,
|
886
938
|
onLayoutChange: null,
|
887
939
|
selectedCount: null,
|
@@ -890,6 +942,7 @@ var defaultProps$5 = {
|
|
890
942
|
};
|
891
943
|
function MediasBrowser(_ref) {
|
892
944
|
var initialItems = _ref.items,
|
945
|
+
types = _ref.types,
|
893
946
|
baseUrl = _ref.baseUrl,
|
894
947
|
uploadButton = _ref.uploadButton,
|
895
948
|
buttons = _ref.buttons,
|
@@ -903,6 +956,7 @@ function MediasBrowser(_ref) {
|
|
903
956
|
theme = _ref.theme,
|
904
957
|
tableProps = _ref.tableProps,
|
905
958
|
onSelectItem = _ref.onSelectItem,
|
959
|
+
onSelectItems = _ref.onSelectItems,
|
906
960
|
onItemsChange = _ref.onItemsChange,
|
907
961
|
onLayoutChange = _ref.onLayoutChange,
|
908
962
|
selectedCount = _ref.selectedCount,
|
@@ -911,9 +965,14 @@ function MediasBrowser(_ref) {
|
|
911
965
|
var _ref2 = metadatas || {},
|
912
966
|
sections = _ref2.sections,
|
913
967
|
displays = _ref2.displays;
|
968
|
+
var _useState = useState(initialItems || null),
|
969
|
+
_useState2 = _slicedToArray(_useState, 1),
|
970
|
+
baseItems = _useState2[0];
|
914
971
|
var baseQuery = useMemo(function () {
|
915
|
-
return initialQuery
|
916
|
-
|
972
|
+
return _objectSpread(_objectSpread({}, initialQuery), {}, {
|
973
|
+
types: types
|
974
|
+
});
|
975
|
+
}, [initialQuery, types]);
|
917
976
|
var _useQuery = useQuery(baseQuery),
|
918
977
|
fullQuery = _useQuery.query,
|
919
978
|
onPageChange = _useQuery.onPageChange,
|
@@ -938,8 +997,13 @@ function MediasBrowser(_ref) {
|
|
938
997
|
count = _useMemo$count === void 0 ? null : _useMemo$count,
|
939
998
|
_useMemo$query = _useMemo.query,
|
940
999
|
query = _useMemo$query === void 0 ? null : _useMemo$query;
|
1000
|
+
|
1001
|
+
// eslint-disable-next-line no-unused-vars
|
1002
|
+
var _ref4 = query || {};
|
1003
|
+
_ref4.types;
|
1004
|
+
var queryWithoutTypes = _objectWithoutProperties(_ref4, _excluded2);
|
941
1005
|
var _useMedias = useMedias$1(query, page, count, {
|
942
|
-
|
1006
|
+
items: baseItems
|
943
1007
|
}),
|
944
1008
|
items = _useMedias.medias,
|
945
1009
|
loading = _useMedias.loading,
|
@@ -952,10 +1016,10 @@ function MediasBrowser(_ref) {
|
|
952
1016
|
onItemsChange(items);
|
953
1017
|
}
|
954
1018
|
}, [items, onItemsChange]);
|
955
|
-
var
|
956
|
-
|
957
|
-
layout =
|
958
|
-
setLayout =
|
1019
|
+
var _useState3 = useState(initialLayout || 'grid'),
|
1020
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
1021
|
+
layout = _useState4[0],
|
1022
|
+
setLayout = _useState4[1];
|
959
1023
|
var hasLayouts = useMemo(function () {
|
960
1024
|
return layouts !== null && layouts.length > 1;
|
961
1025
|
}, [layouts]);
|
@@ -965,21 +1029,22 @@ function MediasBrowser(_ref) {
|
|
965
1029
|
onLayoutChange(newLayout);
|
966
1030
|
}
|
967
1031
|
}, [setLayout]);
|
968
|
-
var
|
969
|
-
|
970
|
-
|
971
|
-
|
972
|
-
var onOpenMedia = useCallback(function (
|
973
|
-
|
974
|
-
}, [
|
1032
|
+
var _useState5 = useState(null),
|
1033
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
1034
|
+
currentMedia = _useState6[0],
|
1035
|
+
setCurrentMedia = _useState6[1];
|
1036
|
+
var onOpenMedia = useCallback(function (media) {
|
1037
|
+
setCurrentMedia(media);
|
1038
|
+
}, [setCurrentMedia]);
|
975
1039
|
var onCloseMedia = useCallback(function () {
|
976
|
-
|
977
|
-
}, [
|
978
|
-
var
|
979
|
-
|
980
|
-
|
1040
|
+
setCurrentMedia(null);
|
1041
|
+
}, [setCurrentMedia]);
|
1042
|
+
var onChangeMedia = useCallback(function () {
|
1043
|
+
var media = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
1044
|
+
console.log('media', media);
|
1045
|
+
onSelectItems(media);
|
981
1046
|
onQueryReset();
|
982
|
-
}, [
|
1047
|
+
}, [setCurrentMedia, onQueryReset, onSelectItems]);
|
983
1048
|
var pagination = /*#__PURE__*/React.createElement(Pagination, {
|
984
1049
|
page: page,
|
985
1050
|
lastPage: lastPage,
|
@@ -994,9 +1059,22 @@ function MediasBrowser(_ref) {
|
|
994
1059
|
withPreviousNext: true,
|
995
1060
|
alwaysShowButtons: true
|
996
1061
|
});
|
1062
|
+
var finalFilters = useMemo(function () {
|
1063
|
+
if (types !== null && filters !== null) {
|
1064
|
+
return (filters || []).map(function (filter) {
|
1065
|
+
var _ref5 = filter || {},
|
1066
|
+
_ref5$id = _ref5.id,
|
1067
|
+
id = _ref5$id === void 0 ? null : _ref5$id;
|
1068
|
+
return id === 'types' ? _objectSpread(_objectSpread({}, filter), {}, {
|
1069
|
+
disabled: true
|
1070
|
+
}) : filter;
|
1071
|
+
});
|
1072
|
+
}
|
1073
|
+
return filters;
|
1074
|
+
}, [filters, types]);
|
997
1075
|
return /*#__PURE__*/React.createElement("div", {
|
998
1076
|
className: classNames([styles.container, className])
|
999
|
-
},
|
1077
|
+
}, currentMedia !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
1000
1078
|
className: "mt-2 mb-4"
|
1001
1079
|
}, /*#__PURE__*/React.createElement(Button, {
|
1002
1080
|
theme: "primary",
|
@@ -1010,7 +1088,7 @@ function MediasBrowser(_ref) {
|
|
1010
1088
|
"value": "Back to files"
|
1011
1089
|
}]
|
1012
1090
|
}))), /*#__PURE__*/React.createElement(MediaForm, {
|
1013
|
-
value:
|
1091
|
+
value: currentMedia,
|
1014
1092
|
fields: fields,
|
1015
1093
|
sections: sections,
|
1016
1094
|
displays: displays,
|
@@ -1018,14 +1096,15 @@ function MediasBrowser(_ref) {
|
|
1018
1096
|
})) : /*#__PURE__*/React.createElement(React.Fragment, null, uploadButton !== null ? /*#__PURE__*/React.createElement("div", {
|
1019
1097
|
className: "mt-2 mb-4"
|
1020
1098
|
}, /*#__PURE__*/React.createElement(UploadField, Object.assign({
|
1021
|
-
onChange:
|
1099
|
+
onChange: onChangeMedia,
|
1022
1100
|
withButton: true
|
1023
1101
|
}, uploadButton))) : null, buttons !== null ? /*#__PURE__*/React.createElement(Buttons, {
|
1024
1102
|
items: buttons,
|
1025
1103
|
className: "mb-2"
|
1026
1104
|
}) : null, filters !== null ? /*#__PURE__*/React.createElement(Filters, {
|
1027
1105
|
value: query,
|
1028
|
-
|
1106
|
+
clearValue: types !== null ? queryWithoutTypes : null,
|
1107
|
+
filters: finalFilters,
|
1029
1108
|
onChange: onQueryChange,
|
1030
1109
|
onReset: onQueryReset,
|
1031
1110
|
theme: theme
|
@@ -1079,11 +1158,13 @@ function MediasBrowser(_ref) {
|
|
1079
1158
|
MediasBrowser.propTypes = propTypes$5;
|
1080
1159
|
MediasBrowser.defaultProps = defaultProps$5;
|
1081
1160
|
|
1082
|
-
var _excluded$4 = ["value", "
|
1161
|
+
var _excluded$4 = ["items", "value", "types", "uploadButton", "onChange", "onConfirm", "onClose", "multiple", "withoutButtons", "tableProps", "className"];
|
1083
1162
|
var propTypes$4 = {
|
1084
1163
|
// eslint-disable-next-line react/forbid-prop-types
|
1164
|
+
items: PropTypes.arrayOf(PropTypes.shape({})),
|
1085
1165
|
value: PropTypes.arrayOf(PropTypes.shape({})),
|
1086
|
-
|
1166
|
+
types: PropTypes.arrayOf(PropTypes.string),
|
1167
|
+
uploadButton: PropTypes.shape({}),
|
1087
1168
|
onChange: PropTypes.func.isRequired,
|
1088
1169
|
onConfirm: PropTypes.func.isRequired,
|
1089
1170
|
onClose: PropTypes.func,
|
@@ -1095,8 +1176,10 @@ var propTypes$4 = {
|
|
1095
1176
|
className: PropTypes.string
|
1096
1177
|
};
|
1097
1178
|
var defaultProps$4 = {
|
1179
|
+
items: null,
|
1098
1180
|
value: null,
|
1099
|
-
|
1181
|
+
types: null,
|
1182
|
+
uploadButton: null,
|
1100
1183
|
onClose: null,
|
1101
1184
|
multiple: false,
|
1102
1185
|
withoutButtons: false,
|
@@ -1104,8 +1187,10 @@ var defaultProps$4 = {
|
|
1104
1187
|
className: null
|
1105
1188
|
};
|
1106
1189
|
function MediasPicker(_ref) {
|
1107
|
-
var
|
1108
|
-
initialSelectedItems = _ref.
|
1190
|
+
var initialItems = _ref.items,
|
1191
|
+
initialSelectedItems = _ref.value,
|
1192
|
+
types = _ref.types,
|
1193
|
+
uploadButton = _ref.uploadButton,
|
1109
1194
|
onChange = _ref.onChange,
|
1110
1195
|
onConfirm = _ref.onConfirm,
|
1111
1196
|
onClose = _ref.onClose,
|
@@ -1114,14 +1199,14 @@ function MediasPicker(_ref) {
|
|
1114
1199
|
tableProps = _ref.tableProps,
|
1115
1200
|
className = _ref.className,
|
1116
1201
|
props = _objectWithoutProperties(_ref, _excluded$4);
|
1117
|
-
var _useState = useState(
|
1202
|
+
var _useState = useState(initialItems),
|
1118
1203
|
_useState2 = _slicedToArray(_useState, 2),
|
1119
1204
|
items = _useState2[0],
|
1120
1205
|
setItems = _useState2[1];
|
1121
1206
|
var onItemsChange = useCallback(function (pageItems) {
|
1122
1207
|
setItems(pageItems);
|
1123
1208
|
}, [setItems]);
|
1124
|
-
var disabled =
|
1209
|
+
var disabled = initialItems === null || initialItems.length < 1;
|
1125
1210
|
var _useItemSelection = useItemSelection({
|
1126
1211
|
items: items,
|
1127
1212
|
selectedItems: initialSelectedItems,
|
@@ -1129,26 +1214,40 @@ function MediasPicker(_ref) {
|
|
1129
1214
|
multipleSelection: multiple
|
1130
1215
|
}),
|
1131
1216
|
onSelectItem = _useItemSelection.onSelectItem,
|
1217
|
+
onSelectItems = _useItemSelection.onSelectItems,
|
1132
1218
|
onSelectPage = _useItemSelection.onSelectPage,
|
1133
1219
|
onClearSelected = _useItemSelection.onClearSelected,
|
1134
1220
|
pageSelected = _useItemSelection.pageSelected,
|
1135
1221
|
selectedCount = _useItemSelection.selectedCount,
|
1136
1222
|
selectedItems = _useItemSelection.selectedItems;
|
1223
|
+
var finalUploadButton = useMemo(function () {
|
1224
|
+
return _objectSpread(_objectSpread(_objectSpread({}, uploadButton || null), types !== null ? {
|
1225
|
+
types: types
|
1226
|
+
} : null), {}, {
|
1227
|
+
allowMultipleUploads: multiple,
|
1228
|
+
maxNumberOfFiles: multiple ? 10 : 0,
|
1229
|
+
value: selectedItems
|
1230
|
+
});
|
1231
|
+
}, [uploadButton, selectedItems, multiple]);
|
1137
1232
|
return /*#__PURE__*/React.createElement("div", {
|
1138
1233
|
className: className
|
1139
1234
|
}, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
|
1140
1235
|
tableProps: _objectSpread({
|
1141
|
-
selectable:
|
1236
|
+
selectable: multiple,
|
1142
1237
|
multipleSelection: multiple,
|
1143
1238
|
onSelectItem: onSelectItem,
|
1144
1239
|
onSelectPage: onSelectPage,
|
1145
1240
|
selectedItems: selectedItems,
|
1146
1241
|
pageSelected: pageSelected
|
1147
1242
|
}, tableProps),
|
1243
|
+
items: items,
|
1148
1244
|
onSelectItem: onSelectItem,
|
1245
|
+
onSelectItems: onSelectItems,
|
1149
1246
|
onItemsChange: onItemsChange,
|
1150
1247
|
selectedCount: selectedCount,
|
1151
|
-
onClearSelected: onClearSelected
|
1248
|
+
onClearSelected: onClearSelected,
|
1249
|
+
uploadButton: finalUploadButton,
|
1250
|
+
types: types
|
1152
1251
|
}, props)), multiple && !withoutButtons ? /*#__PURE__*/React.createElement("div", {
|
1153
1252
|
className: "d-flex w-100 align-items-end justify-content-end mt-3"
|
1154
1253
|
}, /*#__PURE__*/React.createElement("div", {
|
package/lib/index.js
CHANGED
@@ -10,11 +10,12 @@ var contexts = require('@panneau/core/contexts');
|
|
10
10
|
var hooks = require('@panneau/core/hooks');
|
11
11
|
var Button = require('@panneau/element-button');
|
12
12
|
var Form = require('@panneau/element-form');
|
13
|
+
var FormStatus = require('@panneau/element-form-status');
|
13
14
|
var MediaPlayer = require('@panneau/element-media-player');
|
14
15
|
var MediaPreview = require('@panneau/element-media-preview');
|
16
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
15
17
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
16
18
|
var lodash = require('lodash');
|
17
|
-
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
18
19
|
var core = require('@panneau/core');
|
19
20
|
var Buttons = require('@panneau/element-buttons');
|
20
21
|
var Grid = require('@panneau/element-grid');
|
@@ -215,25 +216,28 @@ function MediaFrame(_ref) {
|
|
215
216
|
setShowPlayer(!showPlayer);
|
216
217
|
}, [showPlayer, setShowPlayer]);
|
217
218
|
return /*#__PURE__*/React.createElement("div", {
|
218
|
-
className: classNames([className, _defineProperty({}, className, className != null)])
|
219
|
+
className: classNames([className, 'position-relative', _defineProperty({}, className, className != null)])
|
219
220
|
}, showPlayer ? /*#__PURE__*/React.createElement(MediaPlayer, {
|
220
|
-
value: value
|
221
|
+
value: value,
|
222
|
+
width: "100%"
|
221
223
|
}) : /*#__PURE__*/React.createElement(MediaPreview, {
|
222
224
|
value: value,
|
223
225
|
width: "100%"
|
224
|
-
}
|
226
|
+
}, /*#__PURE__*/React.createElement("div", {
|
225
227
|
className: styles.playButton
|
226
228
|
}, !showPlayer && (type === 'video' || type === 'embed' || type === 'audio') ? /*#__PURE__*/React.createElement(Button, {
|
227
229
|
className: "rounded-circle",
|
228
230
|
theme: "secondary",
|
229
231
|
onClick: onClick,
|
230
|
-
icon: "play-fill"
|
231
|
-
|
232
|
+
icon: "play-fill",
|
233
|
+
size: "lg"
|
234
|
+
}) : null)));
|
232
235
|
}
|
233
236
|
MediaFrame.propTypes = propTypes$8;
|
234
237
|
MediaFrame.defaultProps = defaultProps$8;
|
235
238
|
|
236
|
-
var _excluded$6 = ["
|
239
|
+
var _excluded$6 = ["path"],
|
240
|
+
_excluded2$1 = ["label", "value", "component"];
|
237
241
|
var propTypes$7 = {
|
238
242
|
value: PropTypes.shape({
|
239
243
|
metadata: PropTypes.shape({}),
|
@@ -258,61 +262,78 @@ var defaultProps$7 = {
|
|
258
262
|
function MediaMetadata(_ref) {
|
259
263
|
var sections = _ref.sections,
|
260
264
|
displays = _ref.displays,
|
261
|
-
|
265
|
+
filtersValue = _ref.value,
|
262
266
|
className = _ref.className;
|
263
267
|
var displayComponents = contexts.useDisplaysComponentsManager();
|
264
268
|
var finalSections = React.useMemo(function () {
|
265
|
-
var
|
266
|
-
var _ref2$
|
267
|
-
|
269
|
+
var displaysWithValue = (displays || []).map(function (_ref2) {
|
270
|
+
var _ref2$path = _ref2.path,
|
271
|
+
path = _ref2$path === void 0 ? null : _ref2$path,
|
272
|
+
props = _objectWithoutProperties(_ref2, _excluded$6);
|
273
|
+
return _objectSpread({
|
274
|
+
value: lodash.get(filtersValue, path, null)
|
275
|
+
}, props);
|
276
|
+
}).filter(function (_ref3) {
|
277
|
+
var _ref3$value = _ref3.value,
|
278
|
+
value = _ref3$value === void 0 ? null : _ref3$value;
|
279
|
+
return value !== null;
|
280
|
+
});
|
281
|
+
var displaysWithoutSection = (displaysWithValue || []).filter(function (_ref4) {
|
282
|
+
var _ref4$section = _ref4.section,
|
283
|
+
section = _ref4$section === void 0 ? null : _ref4$section;
|
268
284
|
return section === null;
|
269
285
|
});
|
270
|
-
return (sections || []).map(function (
|
271
|
-
var
|
272
|
-
id =
|
273
|
-
|
274
|
-
title =
|
286
|
+
return (sections || []).map(function (_ref5) {
|
287
|
+
var _ref5$id = _ref5.id,
|
288
|
+
id = _ref5$id === void 0 ? null : _ref5$id,
|
289
|
+
_ref5$title = _ref5.title,
|
290
|
+
title = _ref5$title === void 0 ? null : _ref5$title;
|
275
291
|
return {
|
276
292
|
id: id,
|
277
293
|
title: title,
|
278
|
-
items: (
|
279
|
-
var
|
280
|
-
section =
|
294
|
+
items: (displaysWithValue || []).filter(function (_ref6) {
|
295
|
+
var _ref6$section = _ref6.section,
|
296
|
+
section = _ref6$section === void 0 ? null : _ref6$section;
|
281
297
|
return section === id;
|
282
298
|
})
|
283
299
|
};
|
284
300
|
}).concat({
|
301
|
+
id: 'others',
|
285
302
|
title: null,
|
286
303
|
items: displaysWithoutSection
|
304
|
+
}).filter(function (_ref7) {
|
305
|
+
var _ref7$items = _ref7.items,
|
306
|
+
items = _ref7$items === void 0 ? null : _ref7$items;
|
307
|
+
return items !== null && items.length > 0;
|
287
308
|
});
|
288
|
-
}, [sections, displays]);
|
309
|
+
}, [sections, displays, filtersValue]);
|
289
310
|
return /*#__PURE__*/React.createElement("div", {
|
290
311
|
className: classNames(['px-2', _defineProperty({}, className, className !== null)])
|
291
|
-
}, (finalSections || []).map(function (
|
292
|
-
var
|
293
|
-
title =
|
294
|
-
|
295
|
-
items =
|
312
|
+
}, (finalSections || []).map(function (_ref9, idx) {
|
313
|
+
var _ref9$title = _ref9.title,
|
314
|
+
title = _ref9$title === void 0 ? null : _ref9$title,
|
315
|
+
_ref9$items = _ref9.items,
|
316
|
+
items = _ref9$items === void 0 ? [] : _ref9$items;
|
296
317
|
return /*#__PURE__*/React.createElement("div", {
|
297
|
-
className:
|
298
|
-
key: "section-".concat(
|
318
|
+
className: idx < finalSections.length - 1 ? 'mb-5' : null,
|
319
|
+
key: "section-".concat(idx + 1)
|
299
320
|
}, title !== null ? /*#__PURE__*/React.createElement("h6", {
|
300
321
|
className: "px-1"
|
301
322
|
}, title) : null, /*#__PURE__*/React.createElement("ul", {
|
302
323
|
className: "list-group list-group-flush"
|
303
|
-
}, (items || []).map(function (
|
304
|
-
var label =
|
305
|
-
|
306
|
-
|
307
|
-
component =
|
308
|
-
props = _objectWithoutProperties(
|
324
|
+
}, (items || []).map(function (_ref10, index) {
|
325
|
+
var label = _ref10.label,
|
326
|
+
value = _ref10.value,
|
327
|
+
_ref10$component = _ref10.component,
|
328
|
+
component = _ref10$component === void 0 ? null : _ref10$component,
|
329
|
+
props = _objectWithoutProperties(_ref10, _excluded2$1);
|
309
330
|
var Component = displayComponents.getComponent(component || 'text');
|
310
|
-
var itemValue =
|
331
|
+
var itemValue = value || null;
|
311
332
|
return Component !== null && itemValue !== null ? /*#__PURE__*/React.createElement("li", {
|
333
|
+
key: "item-".concat(index + 1),
|
312
334
|
className: classNames(['row', 'd-flex', 'align-items-center', 'justify-content-between', 'p-1', 'border-secondary-1', 'border-1', 'border-bottom', 'text-small', {
|
313
335
|
'border-top': index === 0
|
314
|
-
}])
|
315
|
-
key: "item-".concat(index + 1)
|
336
|
+
}])
|
316
337
|
}, /*#__PURE__*/React.createElement("div", {
|
317
338
|
className: "col-auto"
|
318
339
|
}, label), /*#__PURE__*/React.createElement("div", {
|
@@ -479,7 +500,7 @@ var propTypes$6 = {
|
|
479
500
|
name: PropTypes.string
|
480
501
|
})),
|
481
502
|
onChange: PropTypes.func.isRequired,
|
482
|
-
|
503
|
+
onSave: PropTypes.func.isRequired,
|
483
504
|
onDelete: PropTypes.func,
|
484
505
|
onClose: PropTypes.func,
|
485
506
|
className: PropTypes.string
|
@@ -499,7 +520,7 @@ function MediaForm(_ref) {
|
|
499
520
|
sections = _ref.sections,
|
500
521
|
displays = _ref.displays,
|
501
522
|
onChange = _ref.onChange,
|
502
|
-
|
523
|
+
onSave = _ref.onSave,
|
503
524
|
onDelete = _ref.onDelete,
|
504
525
|
onClose = _ref.onClose,
|
505
526
|
className = _ref.className;
|
@@ -511,9 +532,9 @@ function MediaForm(_ref) {
|
|
511
532
|
destroy = _useMediaDestroy.destroy,
|
512
533
|
destroying = _useMediaDestroy.loading;
|
513
534
|
var _useState = React.useState(false),
|
514
|
-
_useState2 = _slicedToArray(_useState, 2)
|
515
|
-
_useState2[0]
|
516
|
-
|
535
|
+
_useState2 = _slicedToArray(_useState, 2),
|
536
|
+
changed = _useState2[0],
|
537
|
+
setChanged = _useState2[1];
|
517
538
|
var disabled = updating || destroying || initialValue === null;
|
518
539
|
var _ref2 = initialValue || {},
|
519
540
|
_ref2$name = _ref2.name,
|
@@ -527,21 +548,26 @@ function MediaForm(_ref) {
|
|
527
548
|
setChanged(true);
|
528
549
|
}, [onChange, setChanged]);
|
529
550
|
var onMediaSaved = React.useCallback(function (newValue) {
|
530
|
-
if (
|
531
|
-
|
551
|
+
if (onSave !== null) {
|
552
|
+
onSave(newValue);
|
532
553
|
}
|
533
554
|
setChanged(false);
|
534
555
|
}, [onChange, setChanged]);
|
535
556
|
var onDeleteMedia = React.useCallback(function () {
|
536
557
|
// Destroy
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
558
|
+
var _ref3 = initialValue || {},
|
559
|
+
_ref3$id = _ref3.id,
|
560
|
+
id = _ref3$id === void 0 ? null : _ref3$id;
|
561
|
+
destroy(id, initialValue).then(function () {
|
562
|
+
if (onClose !== null) {
|
563
|
+
onClose();
|
564
|
+
}
|
565
|
+
if (onDelete !== null) {
|
566
|
+
onDelete();
|
567
|
+
}
|
568
|
+
setChanged(false);
|
569
|
+
});
|
570
|
+
}, [initialValue, destroy, destroying, setChanged]);
|
545
571
|
var postForm = React.useCallback(function (action, data) {
|
546
572
|
return initialValue !== null ? update(initialValue.id, data) : new Promise();
|
547
573
|
}, [initialValue, update]);
|
@@ -550,36 +576,41 @@ function MediaForm(_ref) {
|
|
550
576
|
postForm: postForm,
|
551
577
|
onComplete: onMediaSaved,
|
552
578
|
value: initialValue,
|
553
|
-
setValue:
|
579
|
+
setValue: onChangeMedia,
|
580
|
+
disabled: updating
|
554
581
|
}),
|
555
582
|
value = _useForm.value,
|
556
583
|
setValue = _useForm.setValue,
|
557
|
-
fields = _useForm.fields
|
558
|
-
_useForm.onSubmit
|
559
|
-
_useForm.status
|
560
|
-
_useForm.generalError;
|
561
|
-
_useForm.errors;
|
584
|
+
fields = _useForm.fields,
|
585
|
+
onSubmit = _useForm.onSubmit,
|
586
|
+
status = _useForm.status,
|
587
|
+
generalError = _useForm.generalError;
|
562
588
|
return /*#__PURE__*/React.createElement("div", {
|
563
589
|
className: classNames(['text-body', _defineProperty({}, className, className !== null)])
|
564
590
|
}, /*#__PURE__*/React.createElement("div", {
|
565
|
-
className: "d-flex w-100 justify-content-between mb-
|
566
|
-
}, /*#__PURE__*/React.createElement("div",
|
567
|
-
className: "d-
|
591
|
+
className: "d-flex w-100 align-items-start justify-content-between mb-3 pb-2 border-bottom"
|
592
|
+
}, /*#__PURE__*/React.createElement("div", {
|
593
|
+
className: "d-flex align-items-end mb-0"
|
594
|
+
}, /*#__PURE__*/React.createElement("h4", {
|
595
|
+
className: "d-inline text-break mb-1"
|
568
596
|
}, name), /*#__PURE__*/React.createElement("span", {
|
569
597
|
className: "mx-2"
|
570
598
|
}, type)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
|
571
|
-
className: "me-2",
|
599
|
+
className: "me-2 mb-1",
|
572
600
|
theme: "danger",
|
573
|
-
onClick: onDeleteMedia
|
601
|
+
onClick: onDeleteMedia,
|
602
|
+
disabled: destroying
|
574
603
|
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
575
604
|
id: "Bhu3B2",
|
576
605
|
defaultMessage: [{
|
577
606
|
"type": 0,
|
578
607
|
"value": "Delete"
|
579
608
|
}]
|
580
|
-
})),
|
609
|
+
})), onSave !== null ? /*#__PURE__*/React.createElement(Button, {
|
610
|
+
className: "mb-1",
|
581
611
|
theme: "primary",
|
582
|
-
onClick:
|
612
|
+
onClick: onSubmit,
|
613
|
+
disabled: !changed || updating || destroying
|
583
614
|
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
584
615
|
id: "R1HYj0",
|
585
616
|
defaultMessage: [{
|
@@ -591,10 +622,7 @@ function MediaForm(_ref) {
|
|
591
622
|
}, /*#__PURE__*/React.createElement("div", {
|
592
623
|
className: "col-md-6"
|
593
624
|
}, /*#__PURE__*/React.createElement("div", {
|
594
|
-
className: "position-relative w-100"
|
595
|
-
style: {
|
596
|
-
height: 400
|
597
|
-
}
|
625
|
+
className: "position-relative w-100"
|
598
626
|
}, /*#__PURE__*/React.createElement("div", {
|
599
627
|
className: styles.mediaFrame
|
600
628
|
}, /*#__PURE__*/React.createElement(MediaFrame, {
|
@@ -614,7 +642,11 @@ function MediaForm(_ref) {
|
|
614
642
|
value: value,
|
615
643
|
sections: sections,
|
616
644
|
displays: displays
|
617
|
-
})
|
645
|
+
}), generalError !== null && status !== null ? /*#__PURE__*/React.createElement("div", {
|
646
|
+
className: "mt-5"
|
647
|
+
}, /*#__PURE__*/React.createElement(FormStatus, {
|
648
|
+
status: status
|
649
|
+
})) : null)));
|
618
650
|
}
|
619
651
|
MediaForm.propTypes = propTypes$6;
|
620
652
|
MediaForm.defaultProps = defaultProps$6;
|
@@ -734,7 +766,20 @@ var defaultColumns = [{
|
|
734
766
|
}),
|
735
767
|
component: 'avatar',
|
736
768
|
path: 'metadata.author',
|
737
|
-
namePath: 'name'
|
769
|
+
namePath: 'name',
|
770
|
+
withoutName: true
|
771
|
+
}, {
|
772
|
+
id: 'actions',
|
773
|
+
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
774
|
+
id: "rtwfuZ",
|
775
|
+
defaultMessage: [{
|
776
|
+
"type": 0,
|
777
|
+
"value": "Actions"
|
778
|
+
}]
|
779
|
+
})
|
780
|
+
// component: 'button',
|
781
|
+
// label: 'Edit',
|
782
|
+
// url: '/edit/1',
|
738
783
|
}
|
739
784
|
// {
|
740
785
|
// id: 'status',
|
@@ -745,9 +790,9 @@ var defaultColumns = [{
|
|
745
790
|
];
|
746
791
|
|
747
792
|
var defaultFilters = [{
|
748
|
-
id: '
|
793
|
+
id: 'types',
|
749
794
|
component: 'select',
|
750
|
-
name: '
|
795
|
+
name: 'types',
|
751
796
|
placeholder: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
752
797
|
id: "9/t5wK",
|
753
798
|
defaultMessage: [{
|
@@ -827,10 +872,14 @@ var defaultFilters = [{
|
|
827
872
|
name: 'search'
|
828
873
|
}];
|
829
874
|
|
830
|
-
var _excluded$5 = ["page", "count"]
|
875
|
+
var _excluded$5 = ["page", "count"],
|
876
|
+
_excluded2 = ["types"];
|
831
877
|
var propTypes$5 = {
|
832
878
|
items: core.PropTypes.medias,
|
833
|
-
|
879
|
+
types: PropTypes.arrayOf(PropTypes.string),
|
880
|
+
uploadButton: PropTypes.shape({
|
881
|
+
value: PropTypes.oneOfType([core.PropTypes.medias, core.PropTypes.media])
|
882
|
+
}),
|
834
883
|
buttons: core.PropTypes.buttons,
|
835
884
|
filters: core.PropTypes.filters,
|
836
885
|
columns: core.PropTypes.tableColumns,
|
@@ -850,6 +899,7 @@ var propTypes$5 = {
|
|
850
899
|
theme: PropTypes.string,
|
851
900
|
tableProps: PropTypes.bool,
|
852
901
|
onSelectItem: PropTypes.func,
|
902
|
+
onSelectItems: PropTypes.func,
|
853
903
|
onItemsChange: PropTypes.func,
|
854
904
|
onLayoutChange: PropTypes.func,
|
855
905
|
selectedCount: PropTypes.number,
|
@@ -858,6 +908,7 @@ var propTypes$5 = {
|
|
858
908
|
};
|
859
909
|
var defaultProps$5 = {
|
860
910
|
items: null,
|
911
|
+
types: null,
|
861
912
|
uploadButton: null,
|
862
913
|
buttons: null,
|
863
914
|
filters: defaultFilters,
|
@@ -884,6 +935,7 @@ var defaultProps$5 = {
|
|
884
935
|
theme: null,
|
885
936
|
tableProps: null,
|
886
937
|
onSelectItem: null,
|
938
|
+
onSelectItems: null,
|
887
939
|
onItemsChange: null,
|
888
940
|
onLayoutChange: null,
|
889
941
|
selectedCount: null,
|
@@ -892,6 +944,7 @@ var defaultProps$5 = {
|
|
892
944
|
};
|
893
945
|
function MediasBrowser(_ref) {
|
894
946
|
var initialItems = _ref.items,
|
947
|
+
types = _ref.types,
|
895
948
|
baseUrl = _ref.baseUrl,
|
896
949
|
uploadButton = _ref.uploadButton,
|
897
950
|
buttons = _ref.buttons,
|
@@ -905,6 +958,7 @@ function MediasBrowser(_ref) {
|
|
905
958
|
theme = _ref.theme,
|
906
959
|
tableProps = _ref.tableProps,
|
907
960
|
onSelectItem = _ref.onSelectItem,
|
961
|
+
onSelectItems = _ref.onSelectItems,
|
908
962
|
onItemsChange = _ref.onItemsChange,
|
909
963
|
onLayoutChange = _ref.onLayoutChange,
|
910
964
|
selectedCount = _ref.selectedCount,
|
@@ -913,9 +967,14 @@ function MediasBrowser(_ref) {
|
|
913
967
|
var _ref2 = metadatas || {},
|
914
968
|
sections = _ref2.sections,
|
915
969
|
displays = _ref2.displays;
|
970
|
+
var _useState = React.useState(initialItems || null),
|
971
|
+
_useState2 = _slicedToArray(_useState, 1),
|
972
|
+
baseItems = _useState2[0];
|
916
973
|
var baseQuery = React.useMemo(function () {
|
917
|
-
return initialQuery
|
918
|
-
|
974
|
+
return _objectSpread(_objectSpread({}, initialQuery), {}, {
|
975
|
+
types: types
|
976
|
+
});
|
977
|
+
}, [initialQuery, types]);
|
919
978
|
var _useQuery = hooks.useQuery(baseQuery),
|
920
979
|
fullQuery = _useQuery.query,
|
921
980
|
onPageChange = _useQuery.onPageChange,
|
@@ -940,8 +999,13 @@ function MediasBrowser(_ref) {
|
|
940
999
|
count = _useMemo$count === void 0 ? null : _useMemo$count,
|
941
1000
|
_useMemo$query = _useMemo.query,
|
942
1001
|
query = _useMemo$query === void 0 ? null : _useMemo$query;
|
1002
|
+
|
1003
|
+
// eslint-disable-next-line no-unused-vars
|
1004
|
+
var _ref4 = query || {};
|
1005
|
+
_ref4.types;
|
1006
|
+
var queryWithoutTypes = _objectWithoutProperties(_ref4, _excluded2);
|
943
1007
|
var _useMedias = useMedias$1(query, page, count, {
|
944
|
-
|
1008
|
+
items: baseItems
|
945
1009
|
}),
|
946
1010
|
items = _useMedias.medias,
|
947
1011
|
loading = _useMedias.loading,
|
@@ -954,10 +1018,10 @@ function MediasBrowser(_ref) {
|
|
954
1018
|
onItemsChange(items);
|
955
1019
|
}
|
956
1020
|
}, [items, onItemsChange]);
|
957
|
-
var
|
958
|
-
|
959
|
-
layout =
|
960
|
-
setLayout =
|
1021
|
+
var _useState3 = React.useState(initialLayout || 'grid'),
|
1022
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
1023
|
+
layout = _useState4[0],
|
1024
|
+
setLayout = _useState4[1];
|
961
1025
|
var hasLayouts = React.useMemo(function () {
|
962
1026
|
return layouts !== null && layouts.length > 1;
|
963
1027
|
}, [layouts]);
|
@@ -967,21 +1031,22 @@ function MediasBrowser(_ref) {
|
|
967
1031
|
onLayoutChange(newLayout);
|
968
1032
|
}
|
969
1033
|
}, [setLayout]);
|
970
|
-
var
|
971
|
-
|
972
|
-
|
973
|
-
|
974
|
-
var onOpenMedia = React.useCallback(function (
|
975
|
-
|
976
|
-
}, [
|
1034
|
+
var _useState5 = React.useState(null),
|
1035
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
1036
|
+
currentMedia = _useState6[0],
|
1037
|
+
setCurrentMedia = _useState6[1];
|
1038
|
+
var onOpenMedia = React.useCallback(function (media) {
|
1039
|
+
setCurrentMedia(media);
|
1040
|
+
}, [setCurrentMedia]);
|
977
1041
|
var onCloseMedia = React.useCallback(function () {
|
978
|
-
|
979
|
-
}, [
|
980
|
-
var
|
981
|
-
|
982
|
-
|
1042
|
+
setCurrentMedia(null);
|
1043
|
+
}, [setCurrentMedia]);
|
1044
|
+
var onChangeMedia = React.useCallback(function () {
|
1045
|
+
var media = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
1046
|
+
console.log('media', media);
|
1047
|
+
onSelectItems(media);
|
983
1048
|
onQueryReset();
|
984
|
-
}, [
|
1049
|
+
}, [setCurrentMedia, onQueryReset, onSelectItems]);
|
985
1050
|
var pagination = /*#__PURE__*/React.createElement(Pagination, {
|
986
1051
|
page: page,
|
987
1052
|
lastPage: lastPage,
|
@@ -996,9 +1061,22 @@ function MediasBrowser(_ref) {
|
|
996
1061
|
withPreviousNext: true,
|
997
1062
|
alwaysShowButtons: true
|
998
1063
|
});
|
1064
|
+
var finalFilters = React.useMemo(function () {
|
1065
|
+
if (types !== null && filters !== null) {
|
1066
|
+
return (filters || []).map(function (filter) {
|
1067
|
+
var _ref5 = filter || {},
|
1068
|
+
_ref5$id = _ref5.id,
|
1069
|
+
id = _ref5$id === void 0 ? null : _ref5$id;
|
1070
|
+
return id === 'types' ? _objectSpread(_objectSpread({}, filter), {}, {
|
1071
|
+
disabled: true
|
1072
|
+
}) : filter;
|
1073
|
+
});
|
1074
|
+
}
|
1075
|
+
return filters;
|
1076
|
+
}, [filters, types]);
|
999
1077
|
return /*#__PURE__*/React.createElement("div", {
|
1000
1078
|
className: classNames([styles.container, className])
|
1001
|
-
},
|
1079
|
+
}, currentMedia !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
1002
1080
|
className: "mt-2 mb-4"
|
1003
1081
|
}, /*#__PURE__*/React.createElement(Button, {
|
1004
1082
|
theme: "primary",
|
@@ -1012,7 +1090,7 @@ function MediasBrowser(_ref) {
|
|
1012
1090
|
"value": "Back to files"
|
1013
1091
|
}]
|
1014
1092
|
}))), /*#__PURE__*/React.createElement(MediaForm, {
|
1015
|
-
value:
|
1093
|
+
value: currentMedia,
|
1016
1094
|
fields: fields,
|
1017
1095
|
sections: sections,
|
1018
1096
|
displays: displays,
|
@@ -1020,14 +1098,15 @@ function MediasBrowser(_ref) {
|
|
1020
1098
|
})) : /*#__PURE__*/React.createElement(React.Fragment, null, uploadButton !== null ? /*#__PURE__*/React.createElement("div", {
|
1021
1099
|
className: "mt-2 mb-4"
|
1022
1100
|
}, /*#__PURE__*/React.createElement(UploadField, Object.assign({
|
1023
|
-
onChange:
|
1101
|
+
onChange: onChangeMedia,
|
1024
1102
|
withButton: true
|
1025
1103
|
}, uploadButton))) : null, buttons !== null ? /*#__PURE__*/React.createElement(Buttons, {
|
1026
1104
|
items: buttons,
|
1027
1105
|
className: "mb-2"
|
1028
1106
|
}) : null, filters !== null ? /*#__PURE__*/React.createElement(Filters, {
|
1029
1107
|
value: query,
|
1030
|
-
|
1108
|
+
clearValue: types !== null ? queryWithoutTypes : null,
|
1109
|
+
filters: finalFilters,
|
1031
1110
|
onChange: onQueryChange,
|
1032
1111
|
onReset: onQueryReset,
|
1033
1112
|
theme: theme
|
@@ -1081,11 +1160,13 @@ function MediasBrowser(_ref) {
|
|
1081
1160
|
MediasBrowser.propTypes = propTypes$5;
|
1082
1161
|
MediasBrowser.defaultProps = defaultProps$5;
|
1083
1162
|
|
1084
|
-
var _excluded$4 = ["value", "
|
1163
|
+
var _excluded$4 = ["items", "value", "types", "uploadButton", "onChange", "onConfirm", "onClose", "multiple", "withoutButtons", "tableProps", "className"];
|
1085
1164
|
var propTypes$4 = {
|
1086
1165
|
// eslint-disable-next-line react/forbid-prop-types
|
1166
|
+
items: PropTypes.arrayOf(PropTypes.shape({})),
|
1087
1167
|
value: PropTypes.arrayOf(PropTypes.shape({})),
|
1088
|
-
|
1168
|
+
types: PropTypes.arrayOf(PropTypes.string),
|
1169
|
+
uploadButton: PropTypes.shape({}),
|
1089
1170
|
onChange: PropTypes.func.isRequired,
|
1090
1171
|
onConfirm: PropTypes.func.isRequired,
|
1091
1172
|
onClose: PropTypes.func,
|
@@ -1097,8 +1178,10 @@ var propTypes$4 = {
|
|
1097
1178
|
className: PropTypes.string
|
1098
1179
|
};
|
1099
1180
|
var defaultProps$4 = {
|
1181
|
+
items: null,
|
1100
1182
|
value: null,
|
1101
|
-
|
1183
|
+
types: null,
|
1184
|
+
uploadButton: null,
|
1102
1185
|
onClose: null,
|
1103
1186
|
multiple: false,
|
1104
1187
|
withoutButtons: false,
|
@@ -1106,8 +1189,10 @@ var defaultProps$4 = {
|
|
1106
1189
|
className: null
|
1107
1190
|
};
|
1108
1191
|
function MediasPicker(_ref) {
|
1109
|
-
var
|
1110
|
-
initialSelectedItems = _ref.
|
1192
|
+
var initialItems = _ref.items,
|
1193
|
+
initialSelectedItems = _ref.value,
|
1194
|
+
types = _ref.types,
|
1195
|
+
uploadButton = _ref.uploadButton,
|
1111
1196
|
onChange = _ref.onChange,
|
1112
1197
|
onConfirm = _ref.onConfirm,
|
1113
1198
|
onClose = _ref.onClose,
|
@@ -1116,14 +1201,14 @@ function MediasPicker(_ref) {
|
|
1116
1201
|
tableProps = _ref.tableProps,
|
1117
1202
|
className = _ref.className,
|
1118
1203
|
props = _objectWithoutProperties(_ref, _excluded$4);
|
1119
|
-
var _useState = React.useState(
|
1204
|
+
var _useState = React.useState(initialItems),
|
1120
1205
|
_useState2 = _slicedToArray(_useState, 2),
|
1121
1206
|
items = _useState2[0],
|
1122
1207
|
setItems = _useState2[1];
|
1123
1208
|
var onItemsChange = React.useCallback(function (pageItems) {
|
1124
1209
|
setItems(pageItems);
|
1125
1210
|
}, [setItems]);
|
1126
|
-
var disabled =
|
1211
|
+
var disabled = initialItems === null || initialItems.length < 1;
|
1127
1212
|
var _useItemSelection = hooks.useItemSelection({
|
1128
1213
|
items: items,
|
1129
1214
|
selectedItems: initialSelectedItems,
|
@@ -1131,26 +1216,40 @@ function MediasPicker(_ref) {
|
|
1131
1216
|
multipleSelection: multiple
|
1132
1217
|
}),
|
1133
1218
|
onSelectItem = _useItemSelection.onSelectItem,
|
1219
|
+
onSelectItems = _useItemSelection.onSelectItems,
|
1134
1220
|
onSelectPage = _useItemSelection.onSelectPage,
|
1135
1221
|
onClearSelected = _useItemSelection.onClearSelected,
|
1136
1222
|
pageSelected = _useItemSelection.pageSelected,
|
1137
1223
|
selectedCount = _useItemSelection.selectedCount,
|
1138
1224
|
selectedItems = _useItemSelection.selectedItems;
|
1225
|
+
var finalUploadButton = React.useMemo(function () {
|
1226
|
+
return _objectSpread(_objectSpread(_objectSpread({}, uploadButton || null), types !== null ? {
|
1227
|
+
types: types
|
1228
|
+
} : null), {}, {
|
1229
|
+
allowMultipleUploads: multiple,
|
1230
|
+
maxNumberOfFiles: multiple ? 10 : 0,
|
1231
|
+
value: selectedItems
|
1232
|
+
});
|
1233
|
+
}, [uploadButton, selectedItems, multiple]);
|
1139
1234
|
return /*#__PURE__*/React.createElement("div", {
|
1140
1235
|
className: className
|
1141
1236
|
}, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
|
1142
1237
|
tableProps: _objectSpread({
|
1143
|
-
selectable:
|
1238
|
+
selectable: multiple,
|
1144
1239
|
multipleSelection: multiple,
|
1145
1240
|
onSelectItem: onSelectItem,
|
1146
1241
|
onSelectPage: onSelectPage,
|
1147
1242
|
selectedItems: selectedItems,
|
1148
1243
|
pageSelected: pageSelected
|
1149
1244
|
}, tableProps),
|
1245
|
+
items: items,
|
1150
1246
|
onSelectItem: onSelectItem,
|
1247
|
+
onSelectItems: onSelectItems,
|
1151
1248
|
onItemsChange: onItemsChange,
|
1152
1249
|
selectedCount: selectedCount,
|
1153
|
-
onClearSelected: onClearSelected
|
1250
|
+
onClearSelected: onClearSelected,
|
1251
|
+
uploadButton: finalUploadButton,
|
1252
|
+
types: types
|
1154
1253
|
}, props)), multiple && !withoutButtons ? /*#__PURE__*/React.createElement("div", {
|
1155
1254
|
className: "d-flex w-100 align-items-end justify-content-end mt-3"
|
1156
1255
|
}, /*#__PURE__*/React.createElement("div", {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@panneau/medias",
|
3
|
-
"version": "3.0.
|
3
|
+
"version": "3.0.156",
|
4
4
|
"description": "",
|
5
5
|
"keywords": [
|
6
6
|
"javascript"
|
@@ -46,20 +46,21 @@
|
|
46
46
|
},
|
47
47
|
"dependencies": {
|
48
48
|
"@babel/runtime": "^7.12.5",
|
49
|
-
"@panneau/core": "^3.0.
|
50
|
-
"@panneau/data": "^3.0.
|
51
|
-
"@panneau/element-button": "^3.0.
|
52
|
-
"@panneau/element-buttons": "^3.0.
|
53
|
-
"@panneau/element-form": "^3.0.
|
54
|
-
"@panneau/element-
|
55
|
-
"@panneau/element-
|
56
|
-
"@panneau/element-
|
57
|
-
"@panneau/element-media-
|
58
|
-
"@panneau/element-media-
|
59
|
-
"@panneau/element-
|
60
|
-
"@panneau/element-
|
61
|
-
"@panneau/
|
62
|
-
"@panneau/
|
49
|
+
"@panneau/core": "^3.0.156",
|
50
|
+
"@panneau/data": "^3.0.156",
|
51
|
+
"@panneau/element-button": "^3.0.156",
|
52
|
+
"@panneau/element-buttons": "^3.0.156",
|
53
|
+
"@panneau/element-form": "^3.0.156",
|
54
|
+
"@panneau/element-form-status": "^3.0.156",
|
55
|
+
"@panneau/element-grid": "^3.0.156",
|
56
|
+
"@panneau/element-icon": "^3.0.156",
|
57
|
+
"@panneau/element-media-card": "^3.0.156",
|
58
|
+
"@panneau/element-media-player": "^3.0.156",
|
59
|
+
"@panneau/element-media-preview": "^3.0.156",
|
60
|
+
"@panneau/element-pagination": "^3.0.156",
|
61
|
+
"@panneau/element-table": "^3.0.156",
|
62
|
+
"@panneau/field-upload": "^3.0.156",
|
63
|
+
"@panneau/filter-filters": "^3.0.156",
|
63
64
|
"classnames": "^2.5.1",
|
64
65
|
"lodash": "^4.17.21",
|
65
66
|
"prop-types": "^15.7.2",
|
@@ -68,5 +69,5 @@
|
|
68
69
|
"publishConfig": {
|
69
70
|
"access": "public"
|
70
71
|
},
|
71
|
-
"gitHead": "
|
72
|
+
"gitHead": "3a248daabc4ba795ed1d39d148c1f1667fb203a3"
|
72
73
|
}
|