@panneau/medias 3.0.179 → 3.0.182
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 +90 -85
- package/lib/index.js +89 -84
- package/package.json +17 -16
package/es/index.js
CHANGED
@@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
|
|
5
5
|
import React, { useContext, useMemo, useCallback, useState, useEffect } from 'react';
|
6
6
|
import { FormattedMessage } from 'react-intl';
|
7
7
|
import { useFieldComponent, usePanneauResource } from '@panneau/core/contexts';
|
8
|
-
import { useForm, useQuery
|
8
|
+
import { useForm, useQuery } from '@panneau/core/hooks';
|
9
9
|
import Button from '@panneau/element-button';
|
10
10
|
import Form from '@panneau/element-form';
|
11
11
|
import FormStatus from '@panneau/element-form-status';
|
@@ -22,6 +22,7 @@ import Icon from '@panneau/element-icon';
|
|
22
22
|
import MediaCard from '@panneau/element-media-card';
|
23
23
|
import Pagination from '@panneau/element-pagination';
|
24
24
|
import Table from '@panneau/element-table';
|
25
|
+
import UploadField from '@panneau/field-upload';
|
25
26
|
import Filters from '@panneau/filter-filters';
|
26
27
|
import { useItemsStore, useData, useApi } from '@panneau/data';
|
27
28
|
|
@@ -228,7 +229,6 @@ function MediaFrame(_ref) {
|
|
228
229
|
value: value,
|
229
230
|
maxWidth: "100%",
|
230
231
|
maxHeight: "100%",
|
231
|
-
withoutZoom: true,
|
232
232
|
onClick: type === 'video' || type === 'audio' ? onClick : null
|
233
233
|
}));
|
234
234
|
}
|
@@ -487,9 +487,12 @@ function MediaForm(_ref) {
|
|
487
487
|
}, /*#__PURE__*/React.createElement("nav", {
|
488
488
|
className: "navbar d-flex w-100 align-items-end justify-content-between border-bottom mb-3"
|
489
489
|
}, /*#__PURE__*/React.createElement("div", {
|
490
|
-
className: "d-flex align-items-end justify-content-
|
490
|
+
className: "d-flex align-items-end justify-content-start mb-1",
|
491
|
+
style: {
|
492
|
+
maxWidth: '66%'
|
493
|
+
}
|
491
494
|
}, /*#__PURE__*/React.createElement("h4", {
|
492
|
-
className: "d-inline text-
|
495
|
+
className: "d-inline text-truncate mb-0"
|
493
496
|
}, name), /*#__PURE__*/React.createElement("span", {
|
494
497
|
className: "mx-2"
|
495
498
|
}, type)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
|
@@ -514,7 +517,7 @@ function MediaForm(_ref) {
|
|
514
517
|
})), onSave !== null ? /*#__PURE__*/React.createElement(Button, {
|
515
518
|
className: "mb-1 mt-1",
|
516
519
|
theme: "primary",
|
517
|
-
icon: changed ? 'check
|
520
|
+
icon: changed ? 'check' : 'check',
|
518
521
|
iconPosition: "right",
|
519
522
|
onClick: onSubmit,
|
520
523
|
disabled: !changed || updating || deleting
|
@@ -781,7 +784,6 @@ var defaultFilters = [{
|
|
781
784
|
}],
|
782
785
|
multiple: true
|
783
786
|
}
|
784
|
-
|
785
787
|
// {
|
786
788
|
// id: 'author',
|
787
789
|
// component: 'select',
|
@@ -808,7 +810,6 @@ var propTypes$5 = {
|
|
808
810
|
items: PropTypes$1.medias,
|
809
811
|
extraItems: PropTypes$1.medias,
|
810
812
|
types: PropTypes.arrayOf(PropTypes.string),
|
811
|
-
buttons: PropTypes$1.buttons,
|
812
813
|
filters: PropTypes$1.filters,
|
813
814
|
columns: PropTypes$1.tableColumns,
|
814
815
|
query: PropTypes.shape({}),
|
@@ -817,15 +818,17 @@ var propTypes$5 = {
|
|
817
818
|
layout: PropTypes.string,
|
818
819
|
layouts: PropTypes.arrayOf(PropTypes.shape({})),
|
819
820
|
theme: PropTypes.string,
|
820
|
-
tableProps: PropTypes.bool,
|
821
821
|
onItemsChange: PropTypes.func,
|
822
822
|
onLayoutChange: PropTypes.func,
|
823
|
-
|
824
|
-
|
823
|
+
selectable: PropTypes.bool,
|
824
|
+
selectedItems: PropTypes.arrayOf(PropTypes.shape({})),
|
825
|
+
onSelectionChange: PropTypes.func,
|
826
|
+
multipleSelection: PropTypes.bool,
|
827
|
+
uppyConfig: PropTypes.shape({}),
|
825
828
|
withTrash: PropTypes.bool,
|
826
829
|
withStickySelection: PropTypes.bool,
|
830
|
+
withoutUpload: PropTypes.bool,
|
827
831
|
className: PropTypes.string,
|
828
|
-
buttonsClassName: PropTypes.string,
|
829
832
|
formChildren: PropTypes.node
|
830
833
|
};
|
831
834
|
var defaultProps$5 = {
|
@@ -851,15 +854,17 @@ var defaultProps$5 = {
|
|
851
854
|
})
|
852
855
|
}],
|
853
856
|
theme: null,
|
854
|
-
tableProps: null,
|
855
857
|
onItemsChange: null,
|
856
858
|
onLayoutChange: null,
|
857
|
-
|
858
|
-
|
859
|
+
selectable: null,
|
860
|
+
selectedItems: null,
|
861
|
+
onSelectionChange: null,
|
862
|
+
multipleSelection: false,
|
863
|
+
uppyConfig: null,
|
859
864
|
withTrash: false,
|
860
865
|
withStickySelection: false,
|
866
|
+
withoutUpload: false,
|
861
867
|
className: null,
|
862
|
-
buttonsClassName: null,
|
863
868
|
formChildren: null
|
864
869
|
};
|
865
870
|
function MediasBrowser(_ref) {
|
@@ -867,7 +872,6 @@ function MediasBrowser(_ref) {
|
|
867
872
|
extraItems = _ref.extraItems,
|
868
873
|
types = _ref.types,
|
869
874
|
baseUrl = _ref.baseUrl,
|
870
|
-
buttons = _ref.buttons,
|
871
875
|
filters = _ref.filters,
|
872
876
|
columns = _ref.columns,
|
873
877
|
fields = _ref.fields,
|
@@ -875,15 +879,17 @@ function MediasBrowser(_ref) {
|
|
875
879
|
initialLayout = _ref.layout,
|
876
880
|
layouts = _ref.layouts,
|
877
881
|
theme = _ref.theme,
|
878
|
-
tableProps = _ref.tableProps,
|
879
882
|
onItemsChange = _ref.onItemsChange,
|
880
883
|
onLayoutChange = _ref.onLayoutChange,
|
881
|
-
|
882
|
-
|
884
|
+
selectable = _ref.selectable,
|
885
|
+
selectedItems = _ref.selectedItems,
|
886
|
+
onSelectionChange = _ref.onSelectionChange,
|
887
|
+
multipleSelection = _ref.multipleSelection,
|
888
|
+
uppyConfig = _ref.uppyConfig,
|
883
889
|
withTrash = _ref.withTrash,
|
884
890
|
withStickySelection = _ref.withStickySelection,
|
891
|
+
withoutUpload = _ref.withoutUpload,
|
885
892
|
className = _ref.className,
|
886
|
-
buttonsClassName = _ref.buttonsClassName,
|
887
893
|
formChildren = _ref.formChildren;
|
888
894
|
var _useState = useState(initialItems || null),
|
889
895
|
_useState2 = _slicedToArray(_useState, 1),
|
@@ -998,8 +1004,10 @@ function MediasBrowser(_ref) {
|
|
998
1004
|
onClickPage: onPageChange,
|
999
1005
|
theme: theme,
|
1000
1006
|
loading: loading && pages !== null,
|
1001
|
-
|
1002
|
-
|
1007
|
+
selectable: selectable,
|
1008
|
+
selectedItems: selectedItems,
|
1009
|
+
onSelectionChange: onSelectionChange,
|
1010
|
+
multipleSelection: multipleSelection,
|
1003
1011
|
withPreviousNext: true,
|
1004
1012
|
alwaysShowButtons: true
|
1005
1013
|
});
|
@@ -1067,7 +1075,7 @@ function MediasBrowser(_ref) {
|
|
1067
1075
|
return /*#__PURE__*/React.createElement("div", {
|
1068
1076
|
className: className
|
1069
1077
|
}, currentMedia !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
1070
|
-
className: "mt-2 mb-
|
1078
|
+
className: "mt-2 mb-0"
|
1071
1079
|
}, /*#__PURE__*/React.createElement(Button, {
|
1072
1080
|
theme: "primary",
|
1073
1081
|
onClick: onCloseMedia,
|
@@ -1085,29 +1093,28 @@ function MediasBrowser(_ref) {
|
|
1085
1093
|
onSave: onSaveMedia,
|
1086
1094
|
onClose: onCloseMedia,
|
1087
1095
|
withTrash: withTrash
|
1088
|
-
}, formChildren)) : /*#__PURE__*/React.createElement(React.Fragment, null,
|
1096
|
+
}, formChildren)) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
1097
|
+
className: classNames(['d-flex', 'justify-content-between'])
|
1098
|
+
}, filters !== null ? /*#__PURE__*/React.createElement(Filters, {
|
1089
1099
|
value: query,
|
1090
1100
|
clearValue: types !== null ? queryWithoutTypes : null,
|
1091
1101
|
filters: finalFilters,
|
1092
1102
|
onChange: onQueryChange,
|
1093
1103
|
onReset: onQueryReset,
|
1094
1104
|
theme: theme
|
1095
|
-
}
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
}, /*#__PURE__*/React.createElement(
|
1101
|
-
items: buttons,
|
1102
|
-
className: buttonsClassName
|
1103
|
-
})) : null, /*#__PURE__*/React.createElement("div", {
|
1105
|
+
}) : null, !withoutUpload ? /*#__PURE__*/React.createElement(UploadField, {
|
1106
|
+
className: "ms-auto w-auto text-nowrap mt-2",
|
1107
|
+
withButton: true,
|
1108
|
+
withoutMedia: true,
|
1109
|
+
uppyConfig: uppyConfig
|
1110
|
+
}) : null), /*#__PURE__*/React.createElement("div", {
|
1104
1111
|
className: classNames(['d-flex', 'mt-1', 'mb-3', {
|
1105
1112
|
'justify-content-between': hasLayouts,
|
1106
1113
|
'justify-content-end': !hasLayouts
|
1107
1114
|
}])
|
1108
1115
|
}, hasLayouts ? /*#__PURE__*/React.createElement(Buttons, {
|
1109
1116
|
size: "sm",
|
1110
|
-
theme: "
|
1117
|
+
theme: "secondary",
|
1111
1118
|
outline: true,
|
1112
1119
|
items: (layouts || []).map(function (lay) {
|
1113
1120
|
return _objectSpread(_objectSpread({}, lay), {}, {
|
@@ -1118,7 +1125,7 @@ function MediasBrowser(_ref) {
|
|
1118
1125
|
className: 'px-3'
|
1119
1126
|
});
|
1120
1127
|
})
|
1121
|
-
}) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid,
|
1128
|
+
}) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid, {
|
1122
1129
|
size: "small",
|
1123
1130
|
theme: theme,
|
1124
1131
|
component: MediaCard,
|
@@ -1130,22 +1137,22 @@ function MediasBrowser(_ref) {
|
|
1130
1137
|
onOpenMedia(it);
|
1131
1138
|
}
|
1132
1139
|
},
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1140
|
+
selectable: selectable,
|
1141
|
+
selectedItems: selectedItems,
|
1142
|
+
onSelectionChange: onSelectionChange,
|
1143
|
+
multipleSelection: multipleSelection,
|
1137
1144
|
items: finalItems || [],
|
1138
1145
|
loading: loading
|
1139
|
-
})
|
1146
|
+
}) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, {
|
1140
1147
|
theme: theme,
|
1141
1148
|
columns: finalColumns,
|
1142
1149
|
displayPlaceholder: /*#__PURE__*/React.createElement("span", {
|
1143
1150
|
className: "text-secondary text-opacity-75"
|
1144
1151
|
}, "\u2014"),
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1152
|
+
selectable: selectable,
|
1153
|
+
selectedItems: selectedItems,
|
1154
|
+
onSelectionChange: onSelectionChange,
|
1155
|
+
multipleSelection: multipleSelection,
|
1149
1156
|
items: finalItems,
|
1150
1157
|
loading: loading,
|
1151
1158
|
actionsProps: {
|
@@ -1171,49 +1178,45 @@ function MediasBrowser(_ref) {
|
|
1171
1178
|
};
|
1172
1179
|
}
|
1173
1180
|
}
|
1174
|
-
})
|
1181
|
+
}) : null, /*#__PURE__*/React.createElement("div", {
|
1175
1182
|
className: classNames(['d-flex', 'mt-3', 'mb-1', 'justify-content-end'])
|
1176
1183
|
}, pagination)));
|
1177
1184
|
}
|
1178
1185
|
MediasBrowser.propTypes = propTypes$5;
|
1179
1186
|
MediasBrowser.defaultProps = defaultProps$5;
|
1180
1187
|
|
1181
|
-
var _excluded$4 = ["items", "value", "
|
1188
|
+
var _excluded$4 = ["items", "value", "onSelectionChange", "multipleSelection", "types", "onChange", "onClose", "withoutButtons", "className"];
|
1182
1189
|
var propTypes$4 = {
|
1183
1190
|
// eslint-disable-next-line react/forbid-prop-types
|
1184
1191
|
items: PropTypes.arrayOf(PropTypes.shape({})),
|
1185
1192
|
value: PropTypes.arrayOf(PropTypes.shape({})),
|
1193
|
+
onSelectionChange: PropTypes.func,
|
1194
|
+
multipleSelection: PropTypes.bool,
|
1186
1195
|
types: PropTypes.arrayOf(PropTypes.string),
|
1187
1196
|
onChange: PropTypes.func.isRequired,
|
1188
|
-
onConfirm: PropTypes.func.isRequired,
|
1189
1197
|
onClose: PropTypes.func,
|
1190
|
-
multiple: PropTypes.bool,
|
1191
1198
|
withoutButtons: PropTypes.bool,
|
1192
|
-
tableProps: PropTypes.shape({
|
1193
|
-
theme: PropTypes.string
|
1194
|
-
}),
|
1195
1199
|
className: PropTypes.string
|
1196
1200
|
};
|
1197
1201
|
var defaultProps$4 = {
|
1198
1202
|
items: null,
|
1199
1203
|
value: null,
|
1204
|
+
onSelectionChange: null,
|
1205
|
+
multipleSelection: false,
|
1200
1206
|
types: null,
|
1201
1207
|
onClose: null,
|
1202
|
-
multiple: false,
|
1203
1208
|
withoutButtons: false,
|
1204
|
-
tableProps: null,
|
1205
1209
|
className: null
|
1206
1210
|
};
|
1207
1211
|
function MediasPicker(_ref) {
|
1208
1212
|
var initialItems = _ref.items,
|
1209
1213
|
initialSelectedItems = _ref.value,
|
1214
|
+
parentOnSelectionChange = _ref.onSelectionChange,
|
1215
|
+
multipleSelection = _ref.multipleSelection,
|
1210
1216
|
types = _ref.types,
|
1211
1217
|
onChange = _ref.onChange,
|
1212
|
-
onConfirm = _ref.onConfirm,
|
1213
1218
|
onClose = _ref.onClose,
|
1214
|
-
multiple = _ref.multiple,
|
1215
1219
|
withoutButtons = _ref.withoutButtons,
|
1216
|
-
tableProps = _ref.tableProps,
|
1217
1220
|
className = _ref.className,
|
1218
1221
|
props = _objectWithoutProperties(_ref, _excluded$4);
|
1219
1222
|
var _useMediasForm = useMediasForm(),
|
@@ -1228,42 +1231,44 @@ function MediasPicker(_ref) {
|
|
1228
1231
|
var onItemsChange = useCallback(function (newPageItems) {
|
1229
1232
|
setItems(newPageItems);
|
1230
1233
|
}, [setItems]);
|
1231
|
-
var
|
1232
|
-
|
1233
|
-
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1234
|
+
var _useState3 = useState(initialSelectedItems || null),
|
1235
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
1236
|
+
selectedItems = _useState4[0],
|
1237
|
+
setSelectedItems = _useState4[1];
|
1238
|
+
var onSelectionChange = useCallback(function (newSelection) {
|
1239
|
+
setSelectedItems(newSelection);
|
1240
|
+
}, [setSelectedItems]);
|
1241
|
+
// Sync from the top
|
1242
|
+
useEffect(function () {
|
1243
|
+
setSelectedItems(initialSelectedItems);
|
1244
|
+
}, [initialSelectedItems, setSelectedItems]);
|
1245
|
+
useEffect(function () {
|
1246
|
+
if (parentOnSelectionChange !== null) {
|
1247
|
+
parentOnSelectionChange(selectedItems);
|
1248
|
+
}
|
1249
|
+
}, [selectedItems, parentOnSelectionChange]);
|
1243
1250
|
var onConfirmSelection = useCallback(function () {
|
1244
|
-
if (
|
1245
|
-
|
1251
|
+
if (onChange !== null) {
|
1252
|
+
onChange(selectedItems);
|
1246
1253
|
}
|
1247
|
-
}, [selectedItems,
|
1254
|
+
}, [selectedItems, onChange]);
|
1248
1255
|
return /*#__PURE__*/React.createElement("div", {
|
1249
1256
|
className: className
|
1250
1257
|
}, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
|
1251
|
-
|
1252
|
-
selectable: true,
|
1253
|
-
multipleSelection: multiple,
|
1254
|
-
onSelectItem: onSelectItem,
|
1255
|
-
onSelectPage: onSelectPage,
|
1256
|
-
selectedItems: selectedItems,
|
1257
|
-
pageSelected: pageSelected
|
1258
|
-
}, tableProps)
|
1259
|
-
// items={initialItems} // TODO: fix useItems if actually using this
|
1258
|
+
items: initialItems // TODO: fix useItems if actually using this
|
1260
1259
|
,
|
1260
|
+
selectable: true,
|
1261
|
+
selectedItems: selectedItems,
|
1262
|
+
onSelectionChange: onSelectionChange,
|
1263
|
+
multipleSelection: multipleSelection,
|
1261
1264
|
onItemsChange: onItemsChange,
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
-
|
1266
|
-
|
1265
|
+
types: types
|
1266
|
+
// extraItems={
|
1267
|
+
// !multiple && initialSelectedItems !== null
|
1268
|
+
// ? [initialSelectedItems]
|
1269
|
+
// : initialSelectedItems
|
1270
|
+
// }
|
1271
|
+
}, props)), !withoutButtons && currentMedia === null ? /*#__PURE__*/React.createElement("div", {
|
1267
1272
|
className: "d-flex w-100 align-items-end justify-content-end mt-3"
|
1268
1273
|
}, /*#__PURE__*/React.createElement("div", {
|
1269
1274
|
className: "btn-group"
|
package/lib/index.js
CHANGED
@@ -24,6 +24,7 @@ var Icon = require('@panneau/element-icon');
|
|
24
24
|
var MediaCard = require('@panneau/element-media-card');
|
25
25
|
var Pagination = require('@panneau/element-pagination');
|
26
26
|
var Table = require('@panneau/element-table');
|
27
|
+
var UploadField = require('@panneau/field-upload');
|
27
28
|
var Filters = require('@panneau/filter-filters');
|
28
29
|
var data = require('@panneau/data');
|
29
30
|
|
@@ -230,7 +231,6 @@ function MediaFrame(_ref) {
|
|
230
231
|
value: value,
|
231
232
|
maxWidth: "100%",
|
232
233
|
maxHeight: "100%",
|
233
|
-
withoutZoom: true,
|
234
234
|
onClick: type === 'video' || type === 'audio' ? onClick : null
|
235
235
|
}));
|
236
236
|
}
|
@@ -489,9 +489,12 @@ function MediaForm(_ref) {
|
|
489
489
|
}, /*#__PURE__*/React.createElement("nav", {
|
490
490
|
className: "navbar d-flex w-100 align-items-end justify-content-between border-bottom mb-3"
|
491
491
|
}, /*#__PURE__*/React.createElement("div", {
|
492
|
-
className: "d-flex align-items-end justify-content-
|
492
|
+
className: "d-flex align-items-end justify-content-start mb-1",
|
493
|
+
style: {
|
494
|
+
maxWidth: '66%'
|
495
|
+
}
|
493
496
|
}, /*#__PURE__*/React.createElement("h4", {
|
494
|
-
className: "d-inline text-
|
497
|
+
className: "d-inline text-truncate mb-0"
|
495
498
|
}, name), /*#__PURE__*/React.createElement("span", {
|
496
499
|
className: "mx-2"
|
497
500
|
}, type)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
|
@@ -516,7 +519,7 @@ function MediaForm(_ref) {
|
|
516
519
|
})), onSave !== null ? /*#__PURE__*/React.createElement(Button, {
|
517
520
|
className: "mb-1 mt-1",
|
518
521
|
theme: "primary",
|
519
|
-
icon: changed ? 'check
|
522
|
+
icon: changed ? 'check' : 'check',
|
520
523
|
iconPosition: "right",
|
521
524
|
onClick: onSubmit,
|
522
525
|
disabled: !changed || updating || deleting
|
@@ -783,7 +786,6 @@ var defaultFilters = [{
|
|
783
786
|
}],
|
784
787
|
multiple: true
|
785
788
|
}
|
786
|
-
|
787
789
|
// {
|
788
790
|
// id: 'author',
|
789
791
|
// component: 'select',
|
@@ -810,7 +812,6 @@ var propTypes$5 = {
|
|
810
812
|
items: core.PropTypes.medias,
|
811
813
|
extraItems: core.PropTypes.medias,
|
812
814
|
types: PropTypes.arrayOf(PropTypes.string),
|
813
|
-
buttons: core.PropTypes.buttons,
|
814
815
|
filters: core.PropTypes.filters,
|
815
816
|
columns: core.PropTypes.tableColumns,
|
816
817
|
query: PropTypes.shape({}),
|
@@ -819,15 +820,17 @@ var propTypes$5 = {
|
|
819
820
|
layout: PropTypes.string,
|
820
821
|
layouts: PropTypes.arrayOf(PropTypes.shape({})),
|
821
822
|
theme: PropTypes.string,
|
822
|
-
tableProps: PropTypes.bool,
|
823
823
|
onItemsChange: PropTypes.func,
|
824
824
|
onLayoutChange: PropTypes.func,
|
825
|
-
|
826
|
-
|
825
|
+
selectable: PropTypes.bool,
|
826
|
+
selectedItems: PropTypes.arrayOf(PropTypes.shape({})),
|
827
|
+
onSelectionChange: PropTypes.func,
|
828
|
+
multipleSelection: PropTypes.bool,
|
829
|
+
uppyConfig: PropTypes.shape({}),
|
827
830
|
withTrash: PropTypes.bool,
|
828
831
|
withStickySelection: PropTypes.bool,
|
832
|
+
withoutUpload: PropTypes.bool,
|
829
833
|
className: PropTypes.string,
|
830
|
-
buttonsClassName: PropTypes.string,
|
831
834
|
formChildren: PropTypes.node
|
832
835
|
};
|
833
836
|
var defaultProps$5 = {
|
@@ -853,15 +856,17 @@ var defaultProps$5 = {
|
|
853
856
|
})
|
854
857
|
}],
|
855
858
|
theme: null,
|
856
|
-
tableProps: null,
|
857
859
|
onItemsChange: null,
|
858
860
|
onLayoutChange: null,
|
859
|
-
|
860
|
-
|
861
|
+
selectable: null,
|
862
|
+
selectedItems: null,
|
863
|
+
onSelectionChange: null,
|
864
|
+
multipleSelection: false,
|
865
|
+
uppyConfig: null,
|
861
866
|
withTrash: false,
|
862
867
|
withStickySelection: false,
|
868
|
+
withoutUpload: false,
|
863
869
|
className: null,
|
864
|
-
buttonsClassName: null,
|
865
870
|
formChildren: null
|
866
871
|
};
|
867
872
|
function MediasBrowser(_ref) {
|
@@ -869,7 +874,6 @@ function MediasBrowser(_ref) {
|
|
869
874
|
extraItems = _ref.extraItems,
|
870
875
|
types = _ref.types,
|
871
876
|
baseUrl = _ref.baseUrl,
|
872
|
-
buttons = _ref.buttons,
|
873
877
|
filters = _ref.filters,
|
874
878
|
columns = _ref.columns,
|
875
879
|
fields = _ref.fields,
|
@@ -877,15 +881,17 @@ function MediasBrowser(_ref) {
|
|
877
881
|
initialLayout = _ref.layout,
|
878
882
|
layouts = _ref.layouts,
|
879
883
|
theme = _ref.theme,
|
880
|
-
tableProps = _ref.tableProps,
|
881
884
|
onItemsChange = _ref.onItemsChange,
|
882
885
|
onLayoutChange = _ref.onLayoutChange,
|
883
|
-
|
884
|
-
|
886
|
+
selectable = _ref.selectable,
|
887
|
+
selectedItems = _ref.selectedItems,
|
888
|
+
onSelectionChange = _ref.onSelectionChange,
|
889
|
+
multipleSelection = _ref.multipleSelection,
|
890
|
+
uppyConfig = _ref.uppyConfig,
|
885
891
|
withTrash = _ref.withTrash,
|
886
892
|
withStickySelection = _ref.withStickySelection,
|
893
|
+
withoutUpload = _ref.withoutUpload,
|
887
894
|
className = _ref.className,
|
888
|
-
buttonsClassName = _ref.buttonsClassName,
|
889
895
|
formChildren = _ref.formChildren;
|
890
896
|
var _useState = React.useState(initialItems || null),
|
891
897
|
_useState2 = _slicedToArray(_useState, 1),
|
@@ -1000,8 +1006,10 @@ function MediasBrowser(_ref) {
|
|
1000
1006
|
onClickPage: onPageChange,
|
1001
1007
|
theme: theme,
|
1002
1008
|
loading: loading && pages !== null,
|
1003
|
-
|
1004
|
-
|
1009
|
+
selectable: selectable,
|
1010
|
+
selectedItems: selectedItems,
|
1011
|
+
onSelectionChange: onSelectionChange,
|
1012
|
+
multipleSelection: multipleSelection,
|
1005
1013
|
withPreviousNext: true,
|
1006
1014
|
alwaysShowButtons: true
|
1007
1015
|
});
|
@@ -1069,7 +1077,7 @@ function MediasBrowser(_ref) {
|
|
1069
1077
|
return /*#__PURE__*/React.createElement("div", {
|
1070
1078
|
className: className
|
1071
1079
|
}, currentMedia !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
1072
|
-
className: "mt-2 mb-
|
1080
|
+
className: "mt-2 mb-0"
|
1073
1081
|
}, /*#__PURE__*/React.createElement(Button, {
|
1074
1082
|
theme: "primary",
|
1075
1083
|
onClick: onCloseMedia,
|
@@ -1087,29 +1095,28 @@ function MediasBrowser(_ref) {
|
|
1087
1095
|
onSave: onSaveMedia,
|
1088
1096
|
onClose: onCloseMedia,
|
1089
1097
|
withTrash: withTrash
|
1090
|
-
}, formChildren)) : /*#__PURE__*/React.createElement(React.Fragment, null,
|
1098
|
+
}, formChildren)) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
1099
|
+
className: classNames(['d-flex', 'justify-content-between'])
|
1100
|
+
}, filters !== null ? /*#__PURE__*/React.createElement(Filters, {
|
1091
1101
|
value: query,
|
1092
1102
|
clearValue: types !== null ? queryWithoutTypes : null,
|
1093
1103
|
filters: finalFilters,
|
1094
1104
|
onChange: onQueryChange,
|
1095
1105
|
onReset: onQueryReset,
|
1096
1106
|
theme: theme
|
1097
|
-
}
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
}, /*#__PURE__*/React.createElement(
|
1103
|
-
items: buttons,
|
1104
|
-
className: buttonsClassName
|
1105
|
-
})) : null, /*#__PURE__*/React.createElement("div", {
|
1107
|
+
}) : null, !withoutUpload ? /*#__PURE__*/React.createElement(UploadField, {
|
1108
|
+
className: "ms-auto w-auto text-nowrap mt-2",
|
1109
|
+
withButton: true,
|
1110
|
+
withoutMedia: true,
|
1111
|
+
uppyConfig: uppyConfig
|
1112
|
+
}) : null), /*#__PURE__*/React.createElement("div", {
|
1106
1113
|
className: classNames(['d-flex', 'mt-1', 'mb-3', {
|
1107
1114
|
'justify-content-between': hasLayouts,
|
1108
1115
|
'justify-content-end': !hasLayouts
|
1109
1116
|
}])
|
1110
1117
|
}, hasLayouts ? /*#__PURE__*/React.createElement(Buttons, {
|
1111
1118
|
size: "sm",
|
1112
|
-
theme: "
|
1119
|
+
theme: "secondary",
|
1113
1120
|
outline: true,
|
1114
1121
|
items: (layouts || []).map(function (lay) {
|
1115
1122
|
return _objectSpread(_objectSpread({}, lay), {}, {
|
@@ -1120,7 +1127,7 @@ function MediasBrowser(_ref) {
|
|
1120
1127
|
className: 'px-3'
|
1121
1128
|
});
|
1122
1129
|
})
|
1123
|
-
}) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid,
|
1130
|
+
}) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid, {
|
1124
1131
|
size: "small",
|
1125
1132
|
theme: theme,
|
1126
1133
|
component: MediaCard,
|
@@ -1132,22 +1139,22 @@ function MediasBrowser(_ref) {
|
|
1132
1139
|
onOpenMedia(it);
|
1133
1140
|
}
|
1134
1141
|
},
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1142
|
+
selectable: selectable,
|
1143
|
+
selectedItems: selectedItems,
|
1144
|
+
onSelectionChange: onSelectionChange,
|
1145
|
+
multipleSelection: multipleSelection,
|
1139
1146
|
items: finalItems || [],
|
1140
1147
|
loading: loading
|
1141
|
-
})
|
1148
|
+
}) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, {
|
1142
1149
|
theme: theme,
|
1143
1150
|
columns: finalColumns,
|
1144
1151
|
displayPlaceholder: /*#__PURE__*/React.createElement("span", {
|
1145
1152
|
className: "text-secondary text-opacity-75"
|
1146
1153
|
}, "\u2014"),
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1150
|
-
|
1154
|
+
selectable: selectable,
|
1155
|
+
selectedItems: selectedItems,
|
1156
|
+
onSelectionChange: onSelectionChange,
|
1157
|
+
multipleSelection: multipleSelection,
|
1151
1158
|
items: finalItems,
|
1152
1159
|
loading: loading,
|
1153
1160
|
actionsProps: {
|
@@ -1173,49 +1180,45 @@ function MediasBrowser(_ref) {
|
|
1173
1180
|
};
|
1174
1181
|
}
|
1175
1182
|
}
|
1176
|
-
})
|
1183
|
+
}) : null, /*#__PURE__*/React.createElement("div", {
|
1177
1184
|
className: classNames(['d-flex', 'mt-3', 'mb-1', 'justify-content-end'])
|
1178
1185
|
}, pagination)));
|
1179
1186
|
}
|
1180
1187
|
MediasBrowser.propTypes = propTypes$5;
|
1181
1188
|
MediasBrowser.defaultProps = defaultProps$5;
|
1182
1189
|
|
1183
|
-
var _excluded$4 = ["items", "value", "
|
1190
|
+
var _excluded$4 = ["items", "value", "onSelectionChange", "multipleSelection", "types", "onChange", "onClose", "withoutButtons", "className"];
|
1184
1191
|
var propTypes$4 = {
|
1185
1192
|
// eslint-disable-next-line react/forbid-prop-types
|
1186
1193
|
items: PropTypes.arrayOf(PropTypes.shape({})),
|
1187
1194
|
value: PropTypes.arrayOf(PropTypes.shape({})),
|
1195
|
+
onSelectionChange: PropTypes.func,
|
1196
|
+
multipleSelection: PropTypes.bool,
|
1188
1197
|
types: PropTypes.arrayOf(PropTypes.string),
|
1189
1198
|
onChange: PropTypes.func.isRequired,
|
1190
|
-
onConfirm: PropTypes.func.isRequired,
|
1191
1199
|
onClose: PropTypes.func,
|
1192
|
-
multiple: PropTypes.bool,
|
1193
1200
|
withoutButtons: PropTypes.bool,
|
1194
|
-
tableProps: PropTypes.shape({
|
1195
|
-
theme: PropTypes.string
|
1196
|
-
}),
|
1197
1201
|
className: PropTypes.string
|
1198
1202
|
};
|
1199
1203
|
var defaultProps$4 = {
|
1200
1204
|
items: null,
|
1201
1205
|
value: null,
|
1206
|
+
onSelectionChange: null,
|
1207
|
+
multipleSelection: false,
|
1202
1208
|
types: null,
|
1203
1209
|
onClose: null,
|
1204
|
-
multiple: false,
|
1205
1210
|
withoutButtons: false,
|
1206
|
-
tableProps: null,
|
1207
1211
|
className: null
|
1208
1212
|
};
|
1209
1213
|
function MediasPicker(_ref) {
|
1210
1214
|
var initialItems = _ref.items,
|
1211
1215
|
initialSelectedItems = _ref.value,
|
1216
|
+
parentOnSelectionChange = _ref.onSelectionChange,
|
1217
|
+
multipleSelection = _ref.multipleSelection,
|
1212
1218
|
types = _ref.types,
|
1213
1219
|
onChange = _ref.onChange,
|
1214
|
-
onConfirm = _ref.onConfirm,
|
1215
1220
|
onClose = _ref.onClose,
|
1216
|
-
multiple = _ref.multiple,
|
1217
1221
|
withoutButtons = _ref.withoutButtons,
|
1218
|
-
tableProps = _ref.tableProps,
|
1219
1222
|
className = _ref.className,
|
1220
1223
|
props = _objectWithoutProperties(_ref, _excluded$4);
|
1221
1224
|
var _useMediasForm = useMediasForm(),
|
@@ -1230,42 +1233,44 @@ function MediasPicker(_ref) {
|
|
1230
1233
|
var onItemsChange = React.useCallback(function (newPageItems) {
|
1231
1234
|
setItems(newPageItems);
|
1232
1235
|
}, [setItems]);
|
1233
|
-
var
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1236
|
+
var _useState3 = React.useState(initialSelectedItems || null),
|
1237
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
1238
|
+
selectedItems = _useState4[0],
|
1239
|
+
setSelectedItems = _useState4[1];
|
1240
|
+
var onSelectionChange = React.useCallback(function (newSelection) {
|
1241
|
+
setSelectedItems(newSelection);
|
1242
|
+
}, [setSelectedItems]);
|
1243
|
+
// Sync from the top
|
1244
|
+
React.useEffect(function () {
|
1245
|
+
setSelectedItems(initialSelectedItems);
|
1246
|
+
}, [initialSelectedItems, setSelectedItems]);
|
1247
|
+
React.useEffect(function () {
|
1248
|
+
if (parentOnSelectionChange !== null) {
|
1249
|
+
parentOnSelectionChange(selectedItems);
|
1250
|
+
}
|
1251
|
+
}, [selectedItems, parentOnSelectionChange]);
|
1245
1252
|
var onConfirmSelection = React.useCallback(function () {
|
1246
|
-
if (
|
1247
|
-
|
1253
|
+
if (onChange !== null) {
|
1254
|
+
onChange(selectedItems);
|
1248
1255
|
}
|
1249
|
-
}, [selectedItems,
|
1256
|
+
}, [selectedItems, onChange]);
|
1250
1257
|
return /*#__PURE__*/React.createElement("div", {
|
1251
1258
|
className: className
|
1252
1259
|
}, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
|
1253
|
-
|
1254
|
-
selectable: true,
|
1255
|
-
multipleSelection: multiple,
|
1256
|
-
onSelectItem: onSelectItem,
|
1257
|
-
onSelectPage: onSelectPage,
|
1258
|
-
selectedItems: selectedItems,
|
1259
|
-
pageSelected: pageSelected
|
1260
|
-
}, tableProps)
|
1261
|
-
// items={initialItems} // TODO: fix useItems if actually using this
|
1260
|
+
items: initialItems // TODO: fix useItems if actually using this
|
1262
1261
|
,
|
1262
|
+
selectable: true,
|
1263
|
+
selectedItems: selectedItems,
|
1264
|
+
onSelectionChange: onSelectionChange,
|
1265
|
+
multipleSelection: multipleSelection,
|
1263
1266
|
onItemsChange: onItemsChange,
|
1264
|
-
|
1265
|
-
|
1266
|
-
|
1267
|
-
|
1268
|
-
|
1267
|
+
types: types
|
1268
|
+
// extraItems={
|
1269
|
+
// !multiple && initialSelectedItems !== null
|
1270
|
+
// ? [initialSelectedItems]
|
1271
|
+
// : initialSelectedItems
|
1272
|
+
// }
|
1273
|
+
}, props)), !withoutButtons && currentMedia === null ? /*#__PURE__*/React.createElement("div", {
|
1269
1274
|
className: "d-flex w-100 align-items-end justify-content-end mt-3"
|
1270
1275
|
}, /*#__PURE__*/React.createElement("div", {
|
1271
1276
|
className: "btn-group"
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@panneau/medias",
|
3
|
-
"version": "3.0.
|
3
|
+
"version": "3.0.182",
|
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/display-image": "^3.0.
|
52
|
-
"@panneau/element-button": "^3.0.
|
53
|
-
"@panneau/element-buttons": "^3.0.
|
54
|
-
"@panneau/element-form": "^3.0.
|
55
|
-
"@panneau/element-form-status": "^3.0.
|
56
|
-
"@panneau/element-grid": "^3.0.
|
57
|
-
"@panneau/element-icon": "^3.0.
|
58
|
-
"@panneau/element-media-card": "^3.0.
|
59
|
-
"@panneau/element-media-player": "^3.0.
|
60
|
-
"@panneau/element-pagination": "^3.0.
|
61
|
-
"@panneau/element-table": "^3.0.
|
62
|
-
"@panneau/
|
49
|
+
"@panneau/core": "^3.0.182",
|
50
|
+
"@panneau/data": "^3.0.182",
|
51
|
+
"@panneau/display-image": "^3.0.182",
|
52
|
+
"@panneau/element-button": "^3.0.182",
|
53
|
+
"@panneau/element-buttons": "^3.0.182",
|
54
|
+
"@panneau/element-form": "^3.0.182",
|
55
|
+
"@panneau/element-form-status": "^3.0.182",
|
56
|
+
"@panneau/element-grid": "^3.0.182",
|
57
|
+
"@panneau/element-icon": "^3.0.182",
|
58
|
+
"@panneau/element-media-card": "^3.0.182",
|
59
|
+
"@panneau/element-media-player": "^3.0.182",
|
60
|
+
"@panneau/element-pagination": "^3.0.182",
|
61
|
+
"@panneau/element-table": "^3.0.182",
|
62
|
+
"@panneau/field-upload": "^3.0.182",
|
63
|
+
"@panneau/filter-filters": "^3.0.182",
|
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": "27626681ce1bcf3e4779ecabeb5d69c58df4d351"
|
72
73
|
}
|