@panneau/medias 3.0.181 → 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 -83
- package/lib/index.js +89 -82
- 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
|
|
@@ -486,9 +487,12 @@ function MediaForm(_ref) {
|
|
486
487
|
}, /*#__PURE__*/React.createElement("nav", {
|
487
488
|
className: "navbar d-flex w-100 align-items-end justify-content-between border-bottom mb-3"
|
488
489
|
}, /*#__PURE__*/React.createElement("div", {
|
489
|
-
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
|
+
}
|
490
494
|
}, /*#__PURE__*/React.createElement("h4", {
|
491
|
-
className: "d-inline text-
|
495
|
+
className: "d-inline text-truncate mb-0"
|
492
496
|
}, name), /*#__PURE__*/React.createElement("span", {
|
493
497
|
className: "mx-2"
|
494
498
|
}, type)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
|
@@ -513,7 +517,7 @@ function MediaForm(_ref) {
|
|
513
517
|
})), onSave !== null ? /*#__PURE__*/React.createElement(Button, {
|
514
518
|
className: "mb-1 mt-1",
|
515
519
|
theme: "primary",
|
516
|
-
icon: changed ? 'check
|
520
|
+
icon: changed ? 'check' : 'check',
|
517
521
|
iconPosition: "right",
|
518
522
|
onClick: onSubmit,
|
519
523
|
disabled: !changed || updating || deleting
|
@@ -806,7 +810,6 @@ var propTypes$5 = {
|
|
806
810
|
items: PropTypes$1.medias,
|
807
811
|
extraItems: PropTypes$1.medias,
|
808
812
|
types: PropTypes.arrayOf(PropTypes.string),
|
809
|
-
buttons: PropTypes$1.buttons,
|
810
813
|
filters: PropTypes$1.filters,
|
811
814
|
columns: PropTypes$1.tableColumns,
|
812
815
|
query: PropTypes.shape({}),
|
@@ -815,15 +818,17 @@ var propTypes$5 = {
|
|
815
818
|
layout: PropTypes.string,
|
816
819
|
layouts: PropTypes.arrayOf(PropTypes.shape({})),
|
817
820
|
theme: PropTypes.string,
|
818
|
-
tableProps: PropTypes.bool,
|
819
821
|
onItemsChange: PropTypes.func,
|
820
822
|
onLayoutChange: PropTypes.func,
|
821
|
-
|
822
|
-
|
823
|
+
selectable: PropTypes.bool,
|
824
|
+
selectedItems: PropTypes.arrayOf(PropTypes.shape({})),
|
825
|
+
onSelectionChange: PropTypes.func,
|
826
|
+
multipleSelection: PropTypes.bool,
|
827
|
+
uppyConfig: PropTypes.shape({}),
|
823
828
|
withTrash: PropTypes.bool,
|
824
829
|
withStickySelection: PropTypes.bool,
|
830
|
+
withoutUpload: PropTypes.bool,
|
825
831
|
className: PropTypes.string,
|
826
|
-
buttonsClassName: PropTypes.string,
|
827
832
|
formChildren: PropTypes.node
|
828
833
|
};
|
829
834
|
var defaultProps$5 = {
|
@@ -849,15 +854,17 @@ var defaultProps$5 = {
|
|
849
854
|
})
|
850
855
|
}],
|
851
856
|
theme: null,
|
852
|
-
tableProps: null,
|
853
857
|
onItemsChange: null,
|
854
858
|
onLayoutChange: null,
|
855
|
-
|
856
|
-
|
859
|
+
selectable: null,
|
860
|
+
selectedItems: null,
|
861
|
+
onSelectionChange: null,
|
862
|
+
multipleSelection: false,
|
863
|
+
uppyConfig: null,
|
857
864
|
withTrash: false,
|
858
865
|
withStickySelection: false,
|
866
|
+
withoutUpload: false,
|
859
867
|
className: null,
|
860
|
-
buttonsClassName: null,
|
861
868
|
formChildren: null
|
862
869
|
};
|
863
870
|
function MediasBrowser(_ref) {
|
@@ -865,7 +872,6 @@ function MediasBrowser(_ref) {
|
|
865
872
|
extraItems = _ref.extraItems,
|
866
873
|
types = _ref.types,
|
867
874
|
baseUrl = _ref.baseUrl,
|
868
|
-
buttons = _ref.buttons,
|
869
875
|
filters = _ref.filters,
|
870
876
|
columns = _ref.columns,
|
871
877
|
fields = _ref.fields,
|
@@ -873,15 +879,17 @@ function MediasBrowser(_ref) {
|
|
873
879
|
initialLayout = _ref.layout,
|
874
880
|
layouts = _ref.layouts,
|
875
881
|
theme = _ref.theme,
|
876
|
-
tableProps = _ref.tableProps,
|
877
882
|
onItemsChange = _ref.onItemsChange,
|
878
883
|
onLayoutChange = _ref.onLayoutChange,
|
879
|
-
|
880
|
-
|
884
|
+
selectable = _ref.selectable,
|
885
|
+
selectedItems = _ref.selectedItems,
|
886
|
+
onSelectionChange = _ref.onSelectionChange,
|
887
|
+
multipleSelection = _ref.multipleSelection,
|
888
|
+
uppyConfig = _ref.uppyConfig,
|
881
889
|
withTrash = _ref.withTrash,
|
882
890
|
withStickySelection = _ref.withStickySelection,
|
891
|
+
withoutUpload = _ref.withoutUpload,
|
883
892
|
className = _ref.className,
|
884
|
-
buttonsClassName = _ref.buttonsClassName,
|
885
893
|
formChildren = _ref.formChildren;
|
886
894
|
var _useState = useState(initialItems || null),
|
887
895
|
_useState2 = _slicedToArray(_useState, 1),
|
@@ -996,8 +1004,10 @@ function MediasBrowser(_ref) {
|
|
996
1004
|
onClickPage: onPageChange,
|
997
1005
|
theme: theme,
|
998
1006
|
loading: loading && pages !== null,
|
999
|
-
|
1000
|
-
|
1007
|
+
selectable: selectable,
|
1008
|
+
selectedItems: selectedItems,
|
1009
|
+
onSelectionChange: onSelectionChange,
|
1010
|
+
multipleSelection: multipleSelection,
|
1001
1011
|
withPreviousNext: true,
|
1002
1012
|
alwaysShowButtons: true
|
1003
1013
|
});
|
@@ -1065,7 +1075,7 @@ function MediasBrowser(_ref) {
|
|
1065
1075
|
return /*#__PURE__*/React.createElement("div", {
|
1066
1076
|
className: className
|
1067
1077
|
}, currentMedia !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
1068
|
-
className: "mt-2 mb-
|
1078
|
+
className: "mt-2 mb-0"
|
1069
1079
|
}, /*#__PURE__*/React.createElement(Button, {
|
1070
1080
|
theme: "primary",
|
1071
1081
|
onClick: onCloseMedia,
|
@@ -1083,29 +1093,28 @@ function MediasBrowser(_ref) {
|
|
1083
1093
|
onSave: onSaveMedia,
|
1084
1094
|
onClose: onCloseMedia,
|
1085
1095
|
withTrash: withTrash
|
1086
|
-
}, 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, {
|
1087
1099
|
value: query,
|
1088
1100
|
clearValue: types !== null ? queryWithoutTypes : null,
|
1089
1101
|
filters: finalFilters,
|
1090
1102
|
onChange: onQueryChange,
|
1091
1103
|
onReset: onQueryReset,
|
1092
1104
|
theme: theme
|
1093
|
-
}
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
-
}, /*#__PURE__*/React.createElement(
|
1099
|
-
items: buttons,
|
1100
|
-
className: buttonsClassName
|
1101
|
-
})) : 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", {
|
1102
1111
|
className: classNames(['d-flex', 'mt-1', 'mb-3', {
|
1103
1112
|
'justify-content-between': hasLayouts,
|
1104
1113
|
'justify-content-end': !hasLayouts
|
1105
1114
|
}])
|
1106
1115
|
}, hasLayouts ? /*#__PURE__*/React.createElement(Buttons, {
|
1107
1116
|
size: "sm",
|
1108
|
-
theme: "
|
1117
|
+
theme: "secondary",
|
1109
1118
|
outline: true,
|
1110
1119
|
items: (layouts || []).map(function (lay) {
|
1111
1120
|
return _objectSpread(_objectSpread({}, lay), {}, {
|
@@ -1116,7 +1125,7 @@ function MediasBrowser(_ref) {
|
|
1116
1125
|
className: 'px-3'
|
1117
1126
|
});
|
1118
1127
|
})
|
1119
|
-
}) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid,
|
1128
|
+
}) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid, {
|
1120
1129
|
size: "small",
|
1121
1130
|
theme: theme,
|
1122
1131
|
component: MediaCard,
|
@@ -1128,22 +1137,22 @@ function MediasBrowser(_ref) {
|
|
1128
1137
|
onOpenMedia(it);
|
1129
1138
|
}
|
1130
1139
|
},
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1140
|
+
selectable: selectable,
|
1141
|
+
selectedItems: selectedItems,
|
1142
|
+
onSelectionChange: onSelectionChange,
|
1143
|
+
multipleSelection: multipleSelection,
|
1135
1144
|
items: finalItems || [],
|
1136
1145
|
loading: loading
|
1137
|
-
})
|
1146
|
+
}) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, {
|
1138
1147
|
theme: theme,
|
1139
1148
|
columns: finalColumns,
|
1140
1149
|
displayPlaceholder: /*#__PURE__*/React.createElement("span", {
|
1141
1150
|
className: "text-secondary text-opacity-75"
|
1142
1151
|
}, "\u2014"),
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1152
|
+
selectable: selectable,
|
1153
|
+
selectedItems: selectedItems,
|
1154
|
+
onSelectionChange: onSelectionChange,
|
1155
|
+
multipleSelection: multipleSelection,
|
1147
1156
|
items: finalItems,
|
1148
1157
|
loading: loading,
|
1149
1158
|
actionsProps: {
|
@@ -1169,49 +1178,45 @@ function MediasBrowser(_ref) {
|
|
1169
1178
|
};
|
1170
1179
|
}
|
1171
1180
|
}
|
1172
|
-
})
|
1181
|
+
}) : null, /*#__PURE__*/React.createElement("div", {
|
1173
1182
|
className: classNames(['d-flex', 'mt-3', 'mb-1', 'justify-content-end'])
|
1174
1183
|
}, pagination)));
|
1175
1184
|
}
|
1176
1185
|
MediasBrowser.propTypes = propTypes$5;
|
1177
1186
|
MediasBrowser.defaultProps = defaultProps$5;
|
1178
1187
|
|
1179
|
-
var _excluded$4 = ["items", "value", "
|
1188
|
+
var _excluded$4 = ["items", "value", "onSelectionChange", "multipleSelection", "types", "onChange", "onClose", "withoutButtons", "className"];
|
1180
1189
|
var propTypes$4 = {
|
1181
1190
|
// eslint-disable-next-line react/forbid-prop-types
|
1182
1191
|
items: PropTypes.arrayOf(PropTypes.shape({})),
|
1183
1192
|
value: PropTypes.arrayOf(PropTypes.shape({})),
|
1193
|
+
onSelectionChange: PropTypes.func,
|
1194
|
+
multipleSelection: PropTypes.bool,
|
1184
1195
|
types: PropTypes.arrayOf(PropTypes.string),
|
1185
1196
|
onChange: PropTypes.func.isRequired,
|
1186
|
-
onConfirm: PropTypes.func.isRequired,
|
1187
1197
|
onClose: PropTypes.func,
|
1188
|
-
multiple: PropTypes.bool,
|
1189
1198
|
withoutButtons: PropTypes.bool,
|
1190
|
-
tableProps: PropTypes.shape({
|
1191
|
-
theme: PropTypes.string
|
1192
|
-
}),
|
1193
1199
|
className: PropTypes.string
|
1194
1200
|
};
|
1195
1201
|
var defaultProps$4 = {
|
1196
1202
|
items: null,
|
1197
1203
|
value: null,
|
1204
|
+
onSelectionChange: null,
|
1205
|
+
multipleSelection: false,
|
1198
1206
|
types: null,
|
1199
1207
|
onClose: null,
|
1200
|
-
multiple: false,
|
1201
1208
|
withoutButtons: false,
|
1202
|
-
tableProps: null,
|
1203
1209
|
className: null
|
1204
1210
|
};
|
1205
1211
|
function MediasPicker(_ref) {
|
1206
1212
|
var initialItems = _ref.items,
|
1207
1213
|
initialSelectedItems = _ref.value,
|
1214
|
+
parentOnSelectionChange = _ref.onSelectionChange,
|
1215
|
+
multipleSelection = _ref.multipleSelection,
|
1208
1216
|
types = _ref.types,
|
1209
1217
|
onChange = _ref.onChange,
|
1210
|
-
onConfirm = _ref.onConfirm,
|
1211
1218
|
onClose = _ref.onClose,
|
1212
|
-
multiple = _ref.multiple,
|
1213
1219
|
withoutButtons = _ref.withoutButtons,
|
1214
|
-
tableProps = _ref.tableProps,
|
1215
1220
|
className = _ref.className,
|
1216
1221
|
props = _objectWithoutProperties(_ref, _excluded$4);
|
1217
1222
|
var _useMediasForm = useMediasForm(),
|
@@ -1226,42 +1231,44 @@ function MediasPicker(_ref) {
|
|
1226
1231
|
var onItemsChange = useCallback(function (newPageItems) {
|
1227
1232
|
setItems(newPageItems);
|
1228
1233
|
}, [setItems]);
|
1229
|
-
var
|
1230
|
-
|
1231
|
-
|
1232
|
-
|
1233
|
-
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
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]);
|
1241
1250
|
var onConfirmSelection = useCallback(function () {
|
1242
|
-
if (
|
1243
|
-
|
1251
|
+
if (onChange !== null) {
|
1252
|
+
onChange(selectedItems);
|
1244
1253
|
}
|
1245
|
-
}, [selectedItems,
|
1254
|
+
}, [selectedItems, onChange]);
|
1246
1255
|
return /*#__PURE__*/React.createElement("div", {
|
1247
1256
|
className: className
|
1248
1257
|
}, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
|
1249
|
-
|
1250
|
-
selectable: true,
|
1251
|
-
multipleSelection: multiple,
|
1252
|
-
onSelectItem: onSelectItem,
|
1253
|
-
onSelectPage: onSelectPage,
|
1254
|
-
selectedItems: selectedItems,
|
1255
|
-
pageSelected: pageSelected
|
1256
|
-
}, tableProps)
|
1257
|
-
// items={initialItems} // TODO: fix useItems if actually using this
|
1258
|
+
items: initialItems // TODO: fix useItems if actually using this
|
1258
1259
|
,
|
1260
|
+
selectable: true,
|
1261
|
+
selectedItems: selectedItems,
|
1262
|
+
onSelectionChange: onSelectionChange,
|
1263
|
+
multipleSelection: multipleSelection,
|
1259
1264
|
onItemsChange: onItemsChange,
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
+
types: types
|
1266
|
+
// extraItems={
|
1267
|
+
// !multiple && initialSelectedItems !== null
|
1268
|
+
// ? [initialSelectedItems]
|
1269
|
+
// : initialSelectedItems
|
1270
|
+
// }
|
1271
|
+
}, props)), !withoutButtons && currentMedia === null ? /*#__PURE__*/React.createElement("div", {
|
1265
1272
|
className: "d-flex w-100 align-items-end justify-content-end mt-3"
|
1266
1273
|
}, /*#__PURE__*/React.createElement("div", {
|
1267
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
|
|
@@ -488,9 +489,12 @@ function MediaForm(_ref) {
|
|
488
489
|
}, /*#__PURE__*/React.createElement("nav", {
|
489
490
|
className: "navbar d-flex w-100 align-items-end justify-content-between border-bottom mb-3"
|
490
491
|
}, /*#__PURE__*/React.createElement("div", {
|
491
|
-
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
|
+
}
|
492
496
|
}, /*#__PURE__*/React.createElement("h4", {
|
493
|
-
className: "d-inline text-
|
497
|
+
className: "d-inline text-truncate mb-0"
|
494
498
|
}, name), /*#__PURE__*/React.createElement("span", {
|
495
499
|
className: "mx-2"
|
496
500
|
}, type)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
|
@@ -515,7 +519,7 @@ function MediaForm(_ref) {
|
|
515
519
|
})), onSave !== null ? /*#__PURE__*/React.createElement(Button, {
|
516
520
|
className: "mb-1 mt-1",
|
517
521
|
theme: "primary",
|
518
|
-
icon: changed ? 'check
|
522
|
+
icon: changed ? 'check' : 'check',
|
519
523
|
iconPosition: "right",
|
520
524
|
onClick: onSubmit,
|
521
525
|
disabled: !changed || updating || deleting
|
@@ -808,7 +812,6 @@ var propTypes$5 = {
|
|
808
812
|
items: core.PropTypes.medias,
|
809
813
|
extraItems: core.PropTypes.medias,
|
810
814
|
types: PropTypes.arrayOf(PropTypes.string),
|
811
|
-
buttons: core.PropTypes.buttons,
|
812
815
|
filters: core.PropTypes.filters,
|
813
816
|
columns: core.PropTypes.tableColumns,
|
814
817
|
query: PropTypes.shape({}),
|
@@ -817,15 +820,17 @@ var propTypes$5 = {
|
|
817
820
|
layout: PropTypes.string,
|
818
821
|
layouts: PropTypes.arrayOf(PropTypes.shape({})),
|
819
822
|
theme: PropTypes.string,
|
820
|
-
tableProps: PropTypes.bool,
|
821
823
|
onItemsChange: PropTypes.func,
|
822
824
|
onLayoutChange: PropTypes.func,
|
823
|
-
|
824
|
-
|
825
|
+
selectable: PropTypes.bool,
|
826
|
+
selectedItems: PropTypes.arrayOf(PropTypes.shape({})),
|
827
|
+
onSelectionChange: PropTypes.func,
|
828
|
+
multipleSelection: PropTypes.bool,
|
829
|
+
uppyConfig: PropTypes.shape({}),
|
825
830
|
withTrash: PropTypes.bool,
|
826
831
|
withStickySelection: PropTypes.bool,
|
832
|
+
withoutUpload: PropTypes.bool,
|
827
833
|
className: PropTypes.string,
|
828
|
-
buttonsClassName: PropTypes.string,
|
829
834
|
formChildren: PropTypes.node
|
830
835
|
};
|
831
836
|
var defaultProps$5 = {
|
@@ -851,15 +856,17 @@ var defaultProps$5 = {
|
|
851
856
|
})
|
852
857
|
}],
|
853
858
|
theme: null,
|
854
|
-
tableProps: null,
|
855
859
|
onItemsChange: null,
|
856
860
|
onLayoutChange: null,
|
857
|
-
|
858
|
-
|
861
|
+
selectable: null,
|
862
|
+
selectedItems: null,
|
863
|
+
onSelectionChange: null,
|
864
|
+
multipleSelection: false,
|
865
|
+
uppyConfig: null,
|
859
866
|
withTrash: false,
|
860
867
|
withStickySelection: false,
|
868
|
+
withoutUpload: false,
|
861
869
|
className: null,
|
862
|
-
buttonsClassName: null,
|
863
870
|
formChildren: null
|
864
871
|
};
|
865
872
|
function MediasBrowser(_ref) {
|
@@ -867,7 +874,6 @@ function MediasBrowser(_ref) {
|
|
867
874
|
extraItems = _ref.extraItems,
|
868
875
|
types = _ref.types,
|
869
876
|
baseUrl = _ref.baseUrl,
|
870
|
-
buttons = _ref.buttons,
|
871
877
|
filters = _ref.filters,
|
872
878
|
columns = _ref.columns,
|
873
879
|
fields = _ref.fields,
|
@@ -875,15 +881,17 @@ function MediasBrowser(_ref) {
|
|
875
881
|
initialLayout = _ref.layout,
|
876
882
|
layouts = _ref.layouts,
|
877
883
|
theme = _ref.theme,
|
878
|
-
tableProps = _ref.tableProps,
|
879
884
|
onItemsChange = _ref.onItemsChange,
|
880
885
|
onLayoutChange = _ref.onLayoutChange,
|
881
|
-
|
882
|
-
|
886
|
+
selectable = _ref.selectable,
|
887
|
+
selectedItems = _ref.selectedItems,
|
888
|
+
onSelectionChange = _ref.onSelectionChange,
|
889
|
+
multipleSelection = _ref.multipleSelection,
|
890
|
+
uppyConfig = _ref.uppyConfig,
|
883
891
|
withTrash = _ref.withTrash,
|
884
892
|
withStickySelection = _ref.withStickySelection,
|
893
|
+
withoutUpload = _ref.withoutUpload,
|
885
894
|
className = _ref.className,
|
886
|
-
buttonsClassName = _ref.buttonsClassName,
|
887
895
|
formChildren = _ref.formChildren;
|
888
896
|
var _useState = React.useState(initialItems || null),
|
889
897
|
_useState2 = _slicedToArray(_useState, 1),
|
@@ -998,8 +1006,10 @@ function MediasBrowser(_ref) {
|
|
998
1006
|
onClickPage: onPageChange,
|
999
1007
|
theme: theme,
|
1000
1008
|
loading: loading && pages !== null,
|
1001
|
-
|
1002
|
-
|
1009
|
+
selectable: selectable,
|
1010
|
+
selectedItems: selectedItems,
|
1011
|
+
onSelectionChange: onSelectionChange,
|
1012
|
+
multipleSelection: multipleSelection,
|
1003
1013
|
withPreviousNext: true,
|
1004
1014
|
alwaysShowButtons: true
|
1005
1015
|
});
|
@@ -1067,7 +1077,7 @@ function MediasBrowser(_ref) {
|
|
1067
1077
|
return /*#__PURE__*/React.createElement("div", {
|
1068
1078
|
className: className
|
1069
1079
|
}, currentMedia !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
1070
|
-
className: "mt-2 mb-
|
1080
|
+
className: "mt-2 mb-0"
|
1071
1081
|
}, /*#__PURE__*/React.createElement(Button, {
|
1072
1082
|
theme: "primary",
|
1073
1083
|
onClick: onCloseMedia,
|
@@ -1085,29 +1095,28 @@ function MediasBrowser(_ref) {
|
|
1085
1095
|
onSave: onSaveMedia,
|
1086
1096
|
onClose: onCloseMedia,
|
1087
1097
|
withTrash: withTrash
|
1088
|
-
}, 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, {
|
1089
1101
|
value: query,
|
1090
1102
|
clearValue: types !== null ? queryWithoutTypes : null,
|
1091
1103
|
filters: finalFilters,
|
1092
1104
|
onChange: onQueryChange,
|
1093
1105
|
onReset: onQueryReset,
|
1094
1106
|
theme: theme
|
1095
|
-
}
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
}, /*#__PURE__*/React.createElement(
|
1101
|
-
items: buttons,
|
1102
|
-
className: buttonsClassName
|
1103
|
-
})) : 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", {
|
1104
1113
|
className: classNames(['d-flex', 'mt-1', 'mb-3', {
|
1105
1114
|
'justify-content-between': hasLayouts,
|
1106
1115
|
'justify-content-end': !hasLayouts
|
1107
1116
|
}])
|
1108
1117
|
}, hasLayouts ? /*#__PURE__*/React.createElement(Buttons, {
|
1109
1118
|
size: "sm",
|
1110
|
-
theme: "
|
1119
|
+
theme: "secondary",
|
1111
1120
|
outline: true,
|
1112
1121
|
items: (layouts || []).map(function (lay) {
|
1113
1122
|
return _objectSpread(_objectSpread({}, lay), {}, {
|
@@ -1118,7 +1127,7 @@ function MediasBrowser(_ref) {
|
|
1118
1127
|
className: 'px-3'
|
1119
1128
|
});
|
1120
1129
|
})
|
1121
|
-
}) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid,
|
1130
|
+
}) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid, {
|
1122
1131
|
size: "small",
|
1123
1132
|
theme: theme,
|
1124
1133
|
component: MediaCard,
|
@@ -1130,22 +1139,22 @@ function MediasBrowser(_ref) {
|
|
1130
1139
|
onOpenMedia(it);
|
1131
1140
|
}
|
1132
1141
|
},
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1142
|
+
selectable: selectable,
|
1143
|
+
selectedItems: selectedItems,
|
1144
|
+
onSelectionChange: onSelectionChange,
|
1145
|
+
multipleSelection: multipleSelection,
|
1137
1146
|
items: finalItems || [],
|
1138
1147
|
loading: loading
|
1139
|
-
})
|
1148
|
+
}) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, {
|
1140
1149
|
theme: theme,
|
1141
1150
|
columns: finalColumns,
|
1142
1151
|
displayPlaceholder: /*#__PURE__*/React.createElement("span", {
|
1143
1152
|
className: "text-secondary text-opacity-75"
|
1144
1153
|
}, "\u2014"),
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1154
|
+
selectable: selectable,
|
1155
|
+
selectedItems: selectedItems,
|
1156
|
+
onSelectionChange: onSelectionChange,
|
1157
|
+
multipleSelection: multipleSelection,
|
1149
1158
|
items: finalItems,
|
1150
1159
|
loading: loading,
|
1151
1160
|
actionsProps: {
|
@@ -1171,49 +1180,45 @@ function MediasBrowser(_ref) {
|
|
1171
1180
|
};
|
1172
1181
|
}
|
1173
1182
|
}
|
1174
|
-
})
|
1183
|
+
}) : null, /*#__PURE__*/React.createElement("div", {
|
1175
1184
|
className: classNames(['d-flex', 'mt-3', 'mb-1', 'justify-content-end'])
|
1176
1185
|
}, pagination)));
|
1177
1186
|
}
|
1178
1187
|
MediasBrowser.propTypes = propTypes$5;
|
1179
1188
|
MediasBrowser.defaultProps = defaultProps$5;
|
1180
1189
|
|
1181
|
-
var _excluded$4 = ["items", "value", "
|
1190
|
+
var _excluded$4 = ["items", "value", "onSelectionChange", "multipleSelection", "types", "onChange", "onClose", "withoutButtons", "className"];
|
1182
1191
|
var propTypes$4 = {
|
1183
1192
|
// eslint-disable-next-line react/forbid-prop-types
|
1184
1193
|
items: PropTypes.arrayOf(PropTypes.shape({})),
|
1185
1194
|
value: PropTypes.arrayOf(PropTypes.shape({})),
|
1195
|
+
onSelectionChange: PropTypes.func,
|
1196
|
+
multipleSelection: PropTypes.bool,
|
1186
1197
|
types: PropTypes.arrayOf(PropTypes.string),
|
1187
1198
|
onChange: PropTypes.func.isRequired,
|
1188
|
-
onConfirm: PropTypes.func.isRequired,
|
1189
1199
|
onClose: PropTypes.func,
|
1190
|
-
multiple: PropTypes.bool,
|
1191
1200
|
withoutButtons: PropTypes.bool,
|
1192
|
-
tableProps: PropTypes.shape({
|
1193
|
-
theme: PropTypes.string
|
1194
|
-
}),
|
1195
1201
|
className: PropTypes.string
|
1196
1202
|
};
|
1197
1203
|
var defaultProps$4 = {
|
1198
1204
|
items: null,
|
1199
1205
|
value: null,
|
1206
|
+
onSelectionChange: null,
|
1207
|
+
multipleSelection: false,
|
1200
1208
|
types: null,
|
1201
1209
|
onClose: null,
|
1202
|
-
multiple: false,
|
1203
1210
|
withoutButtons: false,
|
1204
|
-
tableProps: null,
|
1205
1211
|
className: null
|
1206
1212
|
};
|
1207
1213
|
function MediasPicker(_ref) {
|
1208
1214
|
var initialItems = _ref.items,
|
1209
1215
|
initialSelectedItems = _ref.value,
|
1216
|
+
parentOnSelectionChange = _ref.onSelectionChange,
|
1217
|
+
multipleSelection = _ref.multipleSelection,
|
1210
1218
|
types = _ref.types,
|
1211
1219
|
onChange = _ref.onChange,
|
1212
|
-
onConfirm = _ref.onConfirm,
|
1213
1220
|
onClose = _ref.onClose,
|
1214
|
-
multiple = _ref.multiple,
|
1215
1221
|
withoutButtons = _ref.withoutButtons,
|
1216
|
-
tableProps = _ref.tableProps,
|
1217
1222
|
className = _ref.className,
|
1218
1223
|
props = _objectWithoutProperties(_ref, _excluded$4);
|
1219
1224
|
var _useMediasForm = useMediasForm(),
|
@@ -1228,42 +1233,44 @@ function MediasPicker(_ref) {
|
|
1228
1233
|
var onItemsChange = React.useCallback(function (newPageItems) {
|
1229
1234
|
setItems(newPageItems);
|
1230
1235
|
}, [setItems]);
|
1231
|
-
var
|
1232
|
-
|
1233
|
-
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
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]);
|
1243
1252
|
var onConfirmSelection = React.useCallback(function () {
|
1244
|
-
if (
|
1245
|
-
|
1253
|
+
if (onChange !== null) {
|
1254
|
+
onChange(selectedItems);
|
1246
1255
|
}
|
1247
|
-
}, [selectedItems,
|
1256
|
+
}, [selectedItems, onChange]);
|
1248
1257
|
return /*#__PURE__*/React.createElement("div", {
|
1249
1258
|
className: className
|
1250
1259
|
}, /*#__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
|
1260
|
+
items: initialItems // TODO: fix useItems if actually using this
|
1260
1261
|
,
|
1262
|
+
selectable: true,
|
1263
|
+
selectedItems: selectedItems,
|
1264
|
+
onSelectionChange: onSelectionChange,
|
1265
|
+
multipleSelection: multipleSelection,
|
1261
1266
|
onItemsChange: onItemsChange,
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
-
|
1266
|
-
|
1267
|
+
types: types
|
1268
|
+
// extraItems={
|
1269
|
+
// !multiple && initialSelectedItems !== null
|
1270
|
+
// ? [initialSelectedItems]
|
1271
|
+
// : initialSelectedItems
|
1272
|
+
// }
|
1273
|
+
}, props)), !withoutButtons && currentMedia === null ? /*#__PURE__*/React.createElement("div", {
|
1267
1274
|
className: "d-flex w-100 align-items-end justify-content-end mt-3"
|
1268
1275
|
}, /*#__PURE__*/React.createElement("div", {
|
1269
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
|
}
|