@panneau/medias 3.0.146 → 3.0.149

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.
Files changed (3) hide show
  1. package/es/index.js +148 -81
  2. package/lib/index.js +154 -83
  3. package/package.json +2 -2
package/es/index.js CHANGED
@@ -1,13 +1,19 @@
1
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
- import React, { useContext, useMemo, useCallback, useState, useEffect } from 'react';
3
- import PropTypes from 'prop-types';
4
- import _objectSpread from '@babel/runtime/helpers/objectSpread2';
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
2
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
6
3
  import classNames from 'classnames';
4
+ import PropTypes from 'prop-types';
5
+ import React, { useContext, useMemo, useCallback, useState, useEffect } from 'react';
7
6
  import { FormattedMessage } from 'react-intl';
8
- import { PropTypes as PropTypes$1 } from '@panneau/core';
7
+ import { useDisplaysComponentsManager, useFieldComponent, usePanneauResource } from '@panneau/core/contexts';
9
8
  import { useForm, useQuery, useItemSelection } from '@panneau/core/hooks';
10
9
  import Button from '@panneau/element-button';
10
+ import Form from '@panneau/element-form';
11
+ import MediaPlayer from '@panneau/element-media-player';
12
+ import MediaPreview from '@panneau/element-media-preview';
13
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
14
+ import { get } from 'lodash';
15
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
16
+ import { PropTypes as PropTypes$1 } from '@panneau/core';
11
17
  import Buttons from '@panneau/element-buttons';
12
18
  import Grid from '@panneau/element-grid';
13
19
  import Icon from '@panneau/element-icon';
@@ -15,12 +21,6 @@ import MediaCard from '@panneau/element-media-card';
15
21
  import Pagination from '@panneau/element-pagination';
16
22
  import Table from '@panneau/element-table';
17
23
  import Filters from '@panneau/filter-filters';
18
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
19
- import { useDisplaysComponentsManager, useFieldComponent, usePanneauResource } from '@panneau/core/contexts';
20
- import Form from '@panneau/element-form';
21
- import MediaPlayer from '@panneau/element-media-player';
22
- import MediaPreview from '@panneau/element-media-preview';
23
- import { get } from 'lodash';
24
24
  import { useItems, useData, useApi } from '@panneau/data';
25
25
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
26
26
 
@@ -36,11 +36,11 @@ var apiPropTypes = PropTypes.shape({
36
36
  update: PropTypes.func.isRequired,
37
37
  "delete": PropTypes.func.isRequired
38
38
  });
39
- var propTypes$8 = {
39
+ var propTypes$9 = {
40
40
  api: apiPropTypes,
41
41
  children: PropTypes.node.isRequired
42
42
  };
43
- var defaultProps$8 = {
43
+ var defaultProps$9 = {
44
44
  api: null
45
45
  };
46
46
  function MediasApiProvider(_ref) {
@@ -54,10 +54,10 @@ function MediasApiProvider(_ref) {
54
54
  value: api
55
55
  }, children);
56
56
  }
57
- MediasApiProvider.propTypes = propTypes$8;
58
- MediasApiProvider.defaultProps = defaultProps$8;
57
+ MediasApiProvider.propTypes = propTypes$9;
58
+ MediasApiProvider.defaultProps = defaultProps$9;
59
59
 
60
- var _excluded$7 = ["items", "pageItems"];
60
+ var _excluded$8 = ["items", "pageItems"];
61
61
  var useMedias = function useMedias() {
62
62
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
63
63
  var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
@@ -75,7 +75,7 @@ var useMedias = function useMedias() {
75
75
  }, opts)),
76
76
  items = _useItems.items,
77
77
  pageItems = _useItems.pageItems,
78
- request = _objectWithoutProperties(_useItems, _excluded$7);
78
+ request = _objectWithoutProperties(_useItems, _excluded$8);
79
79
  return _objectSpread({
80
80
  medias: page !== null ? pageItems : items,
81
81
  allMedias: items
@@ -111,7 +111,7 @@ var useMediasRecent = function useMediasRecent(opts) {
111
111
  };
112
112
  var useMediasRecent$1 = useMediasRecent;
113
113
 
114
- var _excluded$6 = ["data"];
114
+ var _excluded$7 = ["data"];
115
115
  var useMedia = function useMedia(id, opts) {
116
116
  var api = useMediasApi();
117
117
  var loader = useCallback(function () {
@@ -119,7 +119,7 @@ var useMedia = function useMedia(id, opts) {
119
119
  }, [api, id]);
120
120
  var _useData = useData(loader, opts),
121
121
  data = _useData.data,
122
- request = _objectWithoutProperties(_useData, _excluded$6);
122
+ request = _objectWithoutProperties(_useData, _excluded$7);
123
123
  return _objectSpread({
124
124
  story: data
125
125
  }, request);
@@ -187,14 +187,14 @@ var useMediaDestroy = function useMediaDestroy() {
187
187
 
188
188
  var styles = {"mediaFrame":"panneau-medias-mediaFrame","playButton":"panneau-medias-playButton"};
189
189
 
190
- var propTypes$7 = {
190
+ var propTypes$8 = {
191
191
  value: PropTypes.shape({
192
192
  id: PropTypes.string,
193
193
  type: PropTypes.string
194
194
  }),
195
195
  className: PropTypes.string
196
196
  };
197
- var defaultProps$7 = {
197
+ var defaultProps$8 = {
198
198
  value: null,
199
199
  className: null
200
200
  };
@@ -227,11 +227,11 @@ function MediaFrame(_ref) {
227
227
  icon: "play-fill"
228
228
  }) : null));
229
229
  }
230
- MediaFrame.propTypes = propTypes$7;
231
- MediaFrame.defaultProps = defaultProps$7;
230
+ MediaFrame.propTypes = propTypes$8;
231
+ MediaFrame.defaultProps = defaultProps$8;
232
232
 
233
- var _excluded$5 = ["label", "path", "component"];
234
- var propTypes$6 = {
233
+ var _excluded$6 = ["label", "path", "component"];
234
+ var propTypes$7 = {
235
235
  value: PropTypes.shape({
236
236
  metadata: PropTypes.shape({}),
237
237
  user: PropTypes.shape({}),
@@ -246,7 +246,7 @@ var propTypes$6 = {
246
246
  })),
247
247
  className: PropTypes.string
248
248
  };
249
- var defaultProps$6 = {
249
+ var defaultProps$7 = {
250
250
  value: null,
251
251
  sections: null,
252
252
  displays: null,
@@ -302,7 +302,7 @@ function MediaMetadata(_ref) {
302
302
  path = _ref7.path,
303
303
  _ref7$component = _ref7.component,
304
304
  component = _ref7$component === void 0 ? null : _ref7$component,
305
- props = _objectWithoutProperties(_ref7, _excluded$5);
305
+ props = _objectWithoutProperties(_ref7, _excluded$6);
306
306
  var Component = displayComponents.getComponent(component || 'text');
307
307
  var itemValue = get(value, path, null);
308
308
  return Component !== null && itemValue !== null ? /*#__PURE__*/React.createElement("li", {
@@ -320,8 +320,8 @@ function MediaMetadata(_ref) {
320
320
  })));
321
321
  }));
322
322
  }
323
- MediaMetadata.propTypes = propTypes$6;
324
- MediaMetadata.defaultProps = defaultProps$6;
323
+ MediaMetadata.propTypes = propTypes$7;
324
+ MediaMetadata.defaultProps = defaultProps$7;
325
325
 
326
326
  var defaultFields = [
327
327
  // { name: 'type', label: 'Type', type: 'string', component: 'text', disabled: true },
@@ -461,7 +461,7 @@ var defaultSections = [{
461
461
  })
462
462
  }];
463
463
 
464
- var propTypes$5 = {
464
+ var propTypes$6 = {
465
465
  value: PropTypes.shape({
466
466
  id: PropTypes.string
467
467
  }),
@@ -481,7 +481,7 @@ var propTypes$5 = {
481
481
  onClose: PropTypes.func,
482
482
  className: PropTypes.string
483
483
  };
484
- var defaultProps$5 = {
484
+ var defaultProps$6 = {
485
485
  value: null,
486
486
  fields: defaultFields,
487
487
  sections: defaultSections,
@@ -613,8 +613,8 @@ function MediaForm(_ref) {
613
613
  displays: displays
614
614
  }))));
615
615
  }
616
- MediaForm.propTypes = propTypes$5;
617
- MediaForm.defaultProps = defaultProps$5;
616
+ MediaForm.propTypes = propTypes$6;
617
+ MediaForm.defaultProps = defaultProps$6;
618
618
 
619
619
  var defaultColumns = [{
620
620
  id: 'image',
@@ -813,8 +813,8 @@ var defaultFilters = [{
813
813
  name: 'search'
814
814
  }];
815
815
 
816
- var _excluded$4 = ["page", "count"];
817
- var propTypes$4 = {
816
+ var _excluded$5 = ["page", "count"];
817
+ var propTypes$5 = {
818
818
  items: PropTypes$1.medias,
819
819
  buttons: PropTypes$1.buttons,
820
820
  filters: PropTypes$1.filters,
@@ -832,7 +832,7 @@ var propTypes$4 = {
832
832
  onClearSelected: PropTypes.func,
833
833
  className: PropTypes.string
834
834
  };
835
- var defaultProps$4 = {
835
+ var defaultProps$5 = {
836
836
  items: null,
837
837
  buttons: null,
838
838
  filters: defaultFilters,
@@ -890,7 +890,7 @@ function MediasBrowser(_ref) {
890
890
  fullQueryPage = _ref2$page === void 0 ? null : _ref2$page,
891
891
  _ref2$count = _ref2.count,
892
892
  fullQueryCount = _ref2$count === void 0 ? null : _ref2$count,
893
- params = _objectWithoutProperties(_ref2, _excluded$4);
893
+ params = _objectWithoutProperties(_ref2, _excluded$5);
894
894
  return {
895
895
  page: fullQueryPage,
896
896
  count: fullQueryCount,
@@ -994,24 +994,28 @@ function MediasBrowser(_ref) {
994
994
  className: 'px-3'
995
995
  });
996
996
  })
997
- }) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid, Object.assign({}, tableProps, {
997
+ }) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid, Object.assign({
998
998
  size: "xsmall",
999
- items: items || [],
999
+ theme: theme,
1000
1000
  component: MediaCard,
1001
1001
  componentProps: {
1002
1002
  className: 'd-flex w-100',
1003
1003
  cardClassName: 'flex-grow-1',
1004
1004
  vertical: true
1005
- },
1005
+ }
1006
+ }, tableProps, {
1007
+ items: items || [],
1006
1008
  onSelectItem: onSelectItem !== null ? onSelectItem : function (it) {
1007
1009
  return onOpenMedia(it);
1008
1010
  }
1009
- })) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, Object.assign({}, tableProps, {
1011
+ })) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, Object.assign({
1012
+ theme: theme,
1010
1013
  columns: columns,
1011
- items: items,
1012
1014
  displayPlaceholder: /*#__PURE__*/React.createElement("span", {
1013
1015
  className: "text-secondary text-opacity-75"
1014
- }, "\u2014"),
1016
+ }, "\u2014")
1017
+ }, tableProps, {
1018
+ items: items,
1015
1019
  onSelectItem: onSelectItem !== null ? onSelectItem : function (it) {
1016
1020
  return onOpenMedia(it);
1017
1021
  }
@@ -1019,28 +1023,11 @@ function MediasBrowser(_ref) {
1019
1023
  className: classNames(['d-flex', 'mt-3', 'mb-1', 'justify-content-end'])
1020
1024
  }, pagination)));
1021
1025
  }
1022
- MediasBrowser.propTypes = propTypes$4;
1023
- MediasBrowser.defaultProps = defaultProps$4;
1024
-
1025
- var _excluded$3 = ["api"];
1026
- var propTypes$3 = {
1027
- api: apiPropTypes
1028
- };
1029
- var defaultProps$3 = {
1030
- api: null
1031
- };
1032
- function MediasBrowserContainer(_ref) {
1033
- var api = _ref.api,
1034
- props = _objectWithoutProperties(_ref, _excluded$3);
1035
- return /*#__PURE__*/React.createElement(MediasApiProvider, {
1036
- api: api
1037
- }, /*#__PURE__*/React.createElement(MediasBrowser, props));
1038
- }
1039
- MediasBrowserContainer.propTypes = propTypes$3;
1040
- MediasBrowserContainer.defaultProps = defaultProps$3;
1026
+ MediasBrowser.propTypes = propTypes$5;
1027
+ MediasBrowser.defaultProps = defaultProps$5;
1041
1028
 
1042
- var _excluded$2 = ["value", "selectedItems", "onChange", "onConfirm", "onClose", "multiple", "withoutButtons", "className"];
1043
- var propTypes$2 = {
1029
+ var _excluded$4 = ["value", "selectedItems", "onChange", "onConfirm", "onClose", "multiple", "withoutButtons", "tableProps", "className"];
1030
+ var propTypes$4 = {
1044
1031
  // eslint-disable-next-line react/forbid-prop-types
1045
1032
  value: PropTypes.arrayOf(PropTypes.shape({})),
1046
1033
  selectedItems: PropTypes.arrayOf(PropTypes.shape({})),
@@ -1049,14 +1036,18 @@ var propTypes$2 = {
1049
1036
  onClose: PropTypes.func,
1050
1037
  multiple: PropTypes.bool,
1051
1038
  withoutButtons: PropTypes.bool,
1039
+ tableProps: PropTypes.shape({
1040
+ theme: PropTypes.string
1041
+ }),
1052
1042
  className: PropTypes.string
1053
1043
  };
1054
- var defaultProps$2 = {
1044
+ var defaultProps$4 = {
1055
1045
  value: null,
1056
1046
  selectedItems: null,
1057
1047
  onClose: null,
1058
1048
  multiple: false,
1059
1049
  withoutButtons: false,
1050
+ tableProps: null,
1060
1051
  className: null
1061
1052
  };
1062
1053
  function MediasPicker(_ref) {
@@ -1067,8 +1058,9 @@ function MediasPicker(_ref) {
1067
1058
  onClose = _ref.onClose,
1068
1059
  multiple = _ref.multiple,
1069
1060
  withoutButtons = _ref.withoutButtons,
1061
+ tableProps = _ref.tableProps,
1070
1062
  className = _ref.className,
1071
- props = _objectWithoutProperties(_ref, _excluded$2);
1063
+ props = _objectWithoutProperties(_ref, _excluded$4);
1072
1064
  var _useState = useState(value),
1073
1065
  _useState2 = _slicedToArray(_useState, 2),
1074
1066
  items = _useState2[0],
@@ -1092,14 +1084,14 @@ function MediasPicker(_ref) {
1092
1084
  return /*#__PURE__*/React.createElement("div", {
1093
1085
  className: className
1094
1086
  }, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
1095
- tableProps: {
1087
+ tableProps: _objectSpread({
1096
1088
  selectable: true,
1097
1089
  multipleSelection: multiple,
1098
1090
  onSelectItem: onSelectItem,
1099
1091
  onSelectPage: onSelectPage,
1100
1092
  selectedItems: selectedItems,
1101
1093
  pageSelected: pageSelected
1102
- },
1094
+ }, tableProps),
1103
1095
  onSelectItem: onSelectItem,
1104
1096
  onItemsChange: onItemsChange,
1105
1097
  selectedCount: selectedCount,
@@ -1134,29 +1126,104 @@ function MediasPicker(_ref) {
1134
1126
  }]
1135
1127
  })))) : null);
1136
1128
  }
1137
- MediasPicker.propTypes = propTypes$2;
1138
- MediasPicker.defaultProps = defaultProps$2;
1129
+ MediasPicker.propTypes = propTypes$4;
1130
+ MediasPicker.defaultProps = defaultProps$4;
1139
1131
 
1140
- var _excluded$1 = ["api", "onChange"];
1141
- var propTypes$1 = {
1132
+ var _excluded$3 = ["api"];
1133
+ var propTypes$3 = {
1134
+ api: apiPropTypes
1135
+ };
1136
+ var defaultProps$3 = {
1137
+ api: null
1138
+ };
1139
+ function MediasBrowserContainer(_ref) {
1140
+ var api = _ref.api,
1141
+ props = _objectWithoutProperties(_ref, _excluded$3);
1142
+ return /*#__PURE__*/React.createElement(MediasApiProvider, {
1143
+ api: api
1144
+ }, /*#__PURE__*/React.createElement(MediasBrowser, props));
1145
+ }
1146
+ MediasBrowserContainer.propTypes = propTypes$3;
1147
+ MediasBrowserContainer.defaultProps = defaultProps$3;
1148
+
1149
+ var _excluded$2 = ["api", "onChange"];
1150
+ var propTypes$2 = {
1142
1151
  api: apiPropTypes,
1143
1152
  onChange: PropTypes.func.isRequired
1144
1153
  };
1145
- var defaultProps$1 = {
1154
+ var defaultProps$2 = {
1146
1155
  api: null
1147
1156
  };
1148
1157
  function MediasPickerContainer(_ref) {
1149
1158
  var api = _ref.api,
1150
1159
  onChange = _ref.onChange,
1151
- props = _objectWithoutProperties(_ref, _excluded$1);
1160
+ props = _objectWithoutProperties(_ref, _excluded$2);
1152
1161
  return /*#__PURE__*/React.createElement(MediasApiProvider, {
1153
1162
  api: api
1154
1163
  }, /*#__PURE__*/React.createElement(MediasPicker, Object.assign({}, props, {
1155
1164
  onChange: onChange
1156
1165
  })));
1157
1166
  }
1158
- MediasPickerContainer.propTypes = propTypes$1;
1159
- MediasPickerContainer.defaultProps = defaultProps$1;
1167
+ MediasPickerContainer.propTypes = propTypes$2;
1168
+ MediasPickerContainer.defaultProps = defaultProps$2;
1169
+
1170
+ var _excluded$1 = ["resource"];
1171
+ var propTypes$1 = {
1172
+ resource: PropTypes.string
1173
+ };
1174
+ var defaultProps$1 = {
1175
+ resource: 'medias'
1176
+ };
1177
+ function MediasResourceBrowser(_ref) {
1178
+ var resourceId = _ref.resource,
1179
+ props = _objectWithoutProperties(_ref, _excluded$1);
1180
+ var resource = usePanneauResource(resourceId);
1181
+ var api = useApi();
1182
+ var mediasApi = useMemo(function () {
1183
+ return {
1184
+ get: function get() {
1185
+ var _api$resources;
1186
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1187
+ args[_key] = arguments[_key];
1188
+ }
1189
+ return (_api$resources = api.resources).get.apply(_api$resources, [resource].concat(args));
1190
+ },
1191
+ find: function find() {
1192
+ var _api$resources2;
1193
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1194
+ args[_key2] = arguments[_key2];
1195
+ }
1196
+ return (_api$resources2 = api.resources).find.apply(_api$resources2, [resource].concat(args));
1197
+ },
1198
+ create: function create() {
1199
+ var _api$resources3;
1200
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1201
+ args[_key3] = arguments[_key3];
1202
+ }
1203
+ return (_api$resources3 = api.resources).create.apply(_api$resources3, [resource].concat(args));
1204
+ },
1205
+ update: function update() {
1206
+ var _api$resources4;
1207
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1208
+ args[_key4] = arguments[_key4];
1209
+ }
1210
+ return (_api$resources4 = api.resources).update.apply(_api$resources4, [resource].concat(args));
1211
+ },
1212
+ "delete": function _delete() {
1213
+ var _api$resources5;
1214
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1215
+ args[_key5] = arguments[_key5];
1216
+ }
1217
+ return (_api$resources5 = api.resources)["delete"].apply(_api$resources5, [resource].concat(args));
1218
+ }
1219
+ };
1220
+ }, [api, resource]);
1221
+ return /*#__PURE__*/React.createElement(MediasBrowserContainer, Object.assign({
1222
+ api: mediasApi
1223
+ }, props));
1224
+ }
1225
+ MediasResourceBrowser.propTypes = propTypes$1;
1226
+ MediasResourceBrowser.defaultProps = defaultProps$1;
1160
1227
 
1161
1228
  var _excluded = ["resource"];
1162
1229
  var propTypes = {
@@ -1165,7 +1232,7 @@ var propTypes = {
1165
1232
  var defaultProps = {
1166
1233
  resource: 'medias'
1167
1234
  };
1168
- function MediasResourceBrowser(_ref) {
1235
+ function MediasResourcePicker(_ref) {
1169
1236
  var resourceId = _ref.resource,
1170
1237
  props = _objectWithoutProperties(_ref, _excluded);
1171
1238
  var resource = usePanneauResource(resourceId);
@@ -1209,11 +1276,11 @@ function MediasResourceBrowser(_ref) {
1209
1276
  }
1210
1277
  };
1211
1278
  }, [api, resource]);
1212
- return /*#__PURE__*/React.createElement(MediasBrowserContainer, Object.assign({
1279
+ return /*#__PURE__*/React.createElement(MediasPickerContainer, Object.assign({
1213
1280
  api: mediasApi
1214
1281
  }, props));
1215
1282
  }
1216
- MediasResourceBrowser.propTypes = propTypes;
1217
- MediasResourceBrowser.defaultProps = defaultProps;
1283
+ MediasResourcePicker.propTypes = propTypes;
1284
+ MediasResourcePicker.defaultProps = defaultProps;
1218
1285
 
1219
- export { MediaForm, MediasApiProvider, MediasBrowser, MediasPicker, MediasPickerContainer, MediasResourceBrowser, apiPropTypes, MediasBrowserContainer as default, useMedia$1 as useMedia, useMediaCreate$1 as useMediaCreate, useMediaUpdate$1 as useMediaUpdate, useMedias$1 as useMedias, useMediasApi, useMediasRecent$1 as useMediasRecentSearches };
1286
+ export { MediaForm, MediasApiProvider, MediasBrowser, MediasBrowserContainer, MediasPicker, MediasPickerContainer, MediasResourceBrowser, MediasResourcePicker, apiPropTypes, defaultColumns as columns, defaultFields as fields, defaultFilters as filters, defaultDisplays as metadataDisplays, defaultSections as metadataSections, useMedia$1 as useMedia, useMediaCreate$1 as useMediaCreate, useMediaUpdate$1 as useMediaUpdate, useMedias$1 as useMedias, useMediasApi, useMediasRecent$1 as useMediasRecentSearches };
package/lib/index.js CHANGED
@@ -1,17 +1,21 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
- var React = require('react');
7
- var PropTypes = require('prop-types');
8
- var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
9
4
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
10
5
  var classNames = require('classnames');
6
+ var PropTypes = require('prop-types');
7
+ var React = require('react');
11
8
  var reactIntl = require('react-intl');
12
- var core = require('@panneau/core');
9
+ var contexts = require('@panneau/core/contexts');
13
10
  var hooks = require('@panneau/core/hooks');
14
11
  var Button = require('@panneau/element-button');
12
+ var Form = require('@panneau/element-form');
13
+ var MediaPlayer = require('@panneau/element-media-player');
14
+ var MediaPreview = require('@panneau/element-media-preview');
15
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
16
+ var lodash = require('lodash');
17
+ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
18
+ var core = require('@panneau/core');
15
19
  var Buttons = require('@panneau/element-buttons');
16
20
  var Grid = require('@panneau/element-grid');
17
21
  var Icon = require('@panneau/element-icon');
@@ -19,12 +23,6 @@ var MediaCard = require('@panneau/element-media-card');
19
23
  var Pagination = require('@panneau/element-pagination');
20
24
  var Table = require('@panneau/element-table');
21
25
  var Filters = require('@panneau/filter-filters');
22
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
23
- var contexts = require('@panneau/core/contexts');
24
- var Form = require('@panneau/element-form');
25
- var MediaPlayer = require('@panneau/element-media-player');
26
- var MediaPreview = require('@panneau/element-media-preview');
27
- var lodash = require('lodash');
28
26
  var data = require('@panneau/data');
29
27
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
30
28
 
@@ -40,11 +38,11 @@ var apiPropTypes = PropTypes.shape({
40
38
  update: PropTypes.func.isRequired,
41
39
  "delete": PropTypes.func.isRequired
42
40
  });
43
- var propTypes$8 = {
41
+ var propTypes$9 = {
44
42
  api: apiPropTypes,
45
43
  children: PropTypes.node.isRequired
46
44
  };
47
- var defaultProps$8 = {
45
+ var defaultProps$9 = {
48
46
  api: null
49
47
  };
50
48
  function MediasApiProvider(_ref) {
@@ -58,10 +56,10 @@ function MediasApiProvider(_ref) {
58
56
  value: api
59
57
  }, children);
60
58
  }
61
- MediasApiProvider.propTypes = propTypes$8;
62
- MediasApiProvider.defaultProps = defaultProps$8;
59
+ MediasApiProvider.propTypes = propTypes$9;
60
+ MediasApiProvider.defaultProps = defaultProps$9;
63
61
 
64
- var _excluded$7 = ["items", "pageItems"];
62
+ var _excluded$8 = ["items", "pageItems"];
65
63
  var useMedias = function useMedias() {
66
64
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
67
65
  var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
@@ -79,7 +77,7 @@ var useMedias = function useMedias() {
79
77
  }, opts)),
80
78
  items = _useItems.items,
81
79
  pageItems = _useItems.pageItems,
82
- request = _objectWithoutProperties(_useItems, _excluded$7);
80
+ request = _objectWithoutProperties(_useItems, _excluded$8);
83
81
  return _objectSpread({
84
82
  medias: page !== null ? pageItems : items,
85
83
  allMedias: items
@@ -115,7 +113,7 @@ var useMediasRecent = function useMediasRecent(opts) {
115
113
  };
116
114
  var useMediasRecent$1 = useMediasRecent;
117
115
 
118
- var _excluded$6 = ["data"];
116
+ var _excluded$7 = ["data"];
119
117
  var useMedia = function useMedia(id, opts) {
120
118
  var api = useMediasApi();
121
119
  var loader = React.useCallback(function () {
@@ -123,7 +121,7 @@ var useMedia = function useMedia(id, opts) {
123
121
  }, [api, id]);
124
122
  var _useData = data.useData(loader, opts),
125
123
  data$1 = _useData.data,
126
- request = _objectWithoutProperties(_useData, _excluded$6);
124
+ request = _objectWithoutProperties(_useData, _excluded$7);
127
125
  return _objectSpread({
128
126
  story: data$1
129
127
  }, request);
@@ -191,14 +189,14 @@ var useMediaDestroy = function useMediaDestroy() {
191
189
 
192
190
  var styles = {"mediaFrame":"panneau-medias-mediaFrame","playButton":"panneau-medias-playButton"};
193
191
 
194
- var propTypes$7 = {
192
+ var propTypes$8 = {
195
193
  value: PropTypes.shape({
196
194
  id: PropTypes.string,
197
195
  type: PropTypes.string
198
196
  }),
199
197
  className: PropTypes.string
200
198
  };
201
- var defaultProps$7 = {
199
+ var defaultProps$8 = {
202
200
  value: null,
203
201
  className: null
204
202
  };
@@ -231,11 +229,11 @@ function MediaFrame(_ref) {
231
229
  icon: "play-fill"
232
230
  }) : null));
233
231
  }
234
- MediaFrame.propTypes = propTypes$7;
235
- MediaFrame.defaultProps = defaultProps$7;
232
+ MediaFrame.propTypes = propTypes$8;
233
+ MediaFrame.defaultProps = defaultProps$8;
236
234
 
237
- var _excluded$5 = ["label", "path", "component"];
238
- var propTypes$6 = {
235
+ var _excluded$6 = ["label", "path", "component"];
236
+ var propTypes$7 = {
239
237
  value: PropTypes.shape({
240
238
  metadata: PropTypes.shape({}),
241
239
  user: PropTypes.shape({}),
@@ -250,7 +248,7 @@ var propTypes$6 = {
250
248
  })),
251
249
  className: PropTypes.string
252
250
  };
253
- var defaultProps$6 = {
251
+ var defaultProps$7 = {
254
252
  value: null,
255
253
  sections: null,
256
254
  displays: null,
@@ -306,7 +304,7 @@ function MediaMetadata(_ref) {
306
304
  path = _ref7.path,
307
305
  _ref7$component = _ref7.component,
308
306
  component = _ref7$component === void 0 ? null : _ref7$component,
309
- props = _objectWithoutProperties(_ref7, _excluded$5);
307
+ props = _objectWithoutProperties(_ref7, _excluded$6);
310
308
  var Component = displayComponents.getComponent(component || 'text');
311
309
  var itemValue = lodash.get(value, path, null);
312
310
  return Component !== null && itemValue !== null ? /*#__PURE__*/React.createElement("li", {
@@ -324,8 +322,8 @@ function MediaMetadata(_ref) {
324
322
  })));
325
323
  }));
326
324
  }
327
- MediaMetadata.propTypes = propTypes$6;
328
- MediaMetadata.defaultProps = defaultProps$6;
325
+ MediaMetadata.propTypes = propTypes$7;
326
+ MediaMetadata.defaultProps = defaultProps$7;
329
327
 
330
328
  var defaultFields = [
331
329
  // { name: 'type', label: 'Type', type: 'string', component: 'text', disabled: true },
@@ -465,7 +463,7 @@ var defaultSections = [{
465
463
  })
466
464
  }];
467
465
 
468
- var propTypes$5 = {
466
+ var propTypes$6 = {
469
467
  value: PropTypes.shape({
470
468
  id: PropTypes.string
471
469
  }),
@@ -485,7 +483,7 @@ var propTypes$5 = {
485
483
  onClose: PropTypes.func,
486
484
  className: PropTypes.string
487
485
  };
488
- var defaultProps$5 = {
486
+ var defaultProps$6 = {
489
487
  value: null,
490
488
  fields: defaultFields,
491
489
  sections: defaultSections,
@@ -617,8 +615,8 @@ function MediaForm(_ref) {
617
615
  displays: displays
618
616
  }))));
619
617
  }
620
- MediaForm.propTypes = propTypes$5;
621
- MediaForm.defaultProps = defaultProps$5;
618
+ MediaForm.propTypes = propTypes$6;
619
+ MediaForm.defaultProps = defaultProps$6;
622
620
 
623
621
  var defaultColumns = [{
624
622
  id: 'image',
@@ -817,8 +815,8 @@ var defaultFilters = [{
817
815
  name: 'search'
818
816
  }];
819
817
 
820
- var _excluded$4 = ["page", "count"];
821
- var propTypes$4 = {
818
+ var _excluded$5 = ["page", "count"];
819
+ var propTypes$5 = {
822
820
  items: core.PropTypes.medias,
823
821
  buttons: core.PropTypes.buttons,
824
822
  filters: core.PropTypes.filters,
@@ -836,7 +834,7 @@ var propTypes$4 = {
836
834
  onClearSelected: PropTypes.func,
837
835
  className: PropTypes.string
838
836
  };
839
- var defaultProps$4 = {
837
+ var defaultProps$5 = {
840
838
  items: null,
841
839
  buttons: null,
842
840
  filters: defaultFilters,
@@ -894,7 +892,7 @@ function MediasBrowser(_ref) {
894
892
  fullQueryPage = _ref2$page === void 0 ? null : _ref2$page,
895
893
  _ref2$count = _ref2.count,
896
894
  fullQueryCount = _ref2$count === void 0 ? null : _ref2$count,
897
- params = _objectWithoutProperties(_ref2, _excluded$4);
895
+ params = _objectWithoutProperties(_ref2, _excluded$5);
898
896
  return {
899
897
  page: fullQueryPage,
900
898
  count: fullQueryCount,
@@ -998,24 +996,28 @@ function MediasBrowser(_ref) {
998
996
  className: 'px-3'
999
997
  });
1000
998
  })
1001
- }) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid, Object.assign({}, tableProps, {
999
+ }) : null, pagination), layout === 'grid' ? /*#__PURE__*/React.createElement(Grid, Object.assign({
1002
1000
  size: "xsmall",
1003
- items: items || [],
1001
+ theme: theme,
1004
1002
  component: MediaCard,
1005
1003
  componentProps: {
1006
1004
  className: 'd-flex w-100',
1007
1005
  cardClassName: 'flex-grow-1',
1008
1006
  vertical: true
1009
- },
1007
+ }
1008
+ }, tableProps, {
1009
+ items: items || [],
1010
1010
  onSelectItem: onSelectItem !== null ? onSelectItem : function (it) {
1011
1011
  return onOpenMedia(it);
1012
1012
  }
1013
- })) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, Object.assign({}, tableProps, {
1013
+ })) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, Object.assign({
1014
+ theme: theme,
1014
1015
  columns: columns,
1015
- items: items,
1016
1016
  displayPlaceholder: /*#__PURE__*/React.createElement("span", {
1017
1017
  className: "text-secondary text-opacity-75"
1018
- }, "\u2014"),
1018
+ }, "\u2014")
1019
+ }, tableProps, {
1020
+ items: items,
1019
1021
  onSelectItem: onSelectItem !== null ? onSelectItem : function (it) {
1020
1022
  return onOpenMedia(it);
1021
1023
  }
@@ -1023,28 +1025,11 @@ function MediasBrowser(_ref) {
1023
1025
  className: classNames(['d-flex', 'mt-3', 'mb-1', 'justify-content-end'])
1024
1026
  }, pagination)));
1025
1027
  }
1026
- MediasBrowser.propTypes = propTypes$4;
1027
- MediasBrowser.defaultProps = defaultProps$4;
1028
-
1029
- var _excluded$3 = ["api"];
1030
- var propTypes$3 = {
1031
- api: apiPropTypes
1032
- };
1033
- var defaultProps$3 = {
1034
- api: null
1035
- };
1036
- function MediasBrowserContainer(_ref) {
1037
- var api = _ref.api,
1038
- props = _objectWithoutProperties(_ref, _excluded$3);
1039
- return /*#__PURE__*/React.createElement(MediasApiProvider, {
1040
- api: api
1041
- }, /*#__PURE__*/React.createElement(MediasBrowser, props));
1042
- }
1043
- MediasBrowserContainer.propTypes = propTypes$3;
1044
- MediasBrowserContainer.defaultProps = defaultProps$3;
1028
+ MediasBrowser.propTypes = propTypes$5;
1029
+ MediasBrowser.defaultProps = defaultProps$5;
1045
1030
 
1046
- var _excluded$2 = ["value", "selectedItems", "onChange", "onConfirm", "onClose", "multiple", "withoutButtons", "className"];
1047
- var propTypes$2 = {
1031
+ var _excluded$4 = ["value", "selectedItems", "onChange", "onConfirm", "onClose", "multiple", "withoutButtons", "tableProps", "className"];
1032
+ var propTypes$4 = {
1048
1033
  // eslint-disable-next-line react/forbid-prop-types
1049
1034
  value: PropTypes.arrayOf(PropTypes.shape({})),
1050
1035
  selectedItems: PropTypes.arrayOf(PropTypes.shape({})),
@@ -1053,14 +1038,18 @@ var propTypes$2 = {
1053
1038
  onClose: PropTypes.func,
1054
1039
  multiple: PropTypes.bool,
1055
1040
  withoutButtons: PropTypes.bool,
1041
+ tableProps: PropTypes.shape({
1042
+ theme: PropTypes.string
1043
+ }),
1056
1044
  className: PropTypes.string
1057
1045
  };
1058
- var defaultProps$2 = {
1046
+ var defaultProps$4 = {
1059
1047
  value: null,
1060
1048
  selectedItems: null,
1061
1049
  onClose: null,
1062
1050
  multiple: false,
1063
1051
  withoutButtons: false,
1052
+ tableProps: null,
1064
1053
  className: null
1065
1054
  };
1066
1055
  function MediasPicker(_ref) {
@@ -1071,8 +1060,9 @@ function MediasPicker(_ref) {
1071
1060
  onClose = _ref.onClose,
1072
1061
  multiple = _ref.multiple,
1073
1062
  withoutButtons = _ref.withoutButtons,
1063
+ tableProps = _ref.tableProps,
1074
1064
  className = _ref.className,
1075
- props = _objectWithoutProperties(_ref, _excluded$2);
1065
+ props = _objectWithoutProperties(_ref, _excluded$4);
1076
1066
  var _useState = React.useState(value),
1077
1067
  _useState2 = _slicedToArray(_useState, 2),
1078
1068
  items = _useState2[0],
@@ -1096,14 +1086,14 @@ function MediasPicker(_ref) {
1096
1086
  return /*#__PURE__*/React.createElement("div", {
1097
1087
  className: className
1098
1088
  }, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
1099
- tableProps: {
1089
+ tableProps: _objectSpread({
1100
1090
  selectable: true,
1101
1091
  multipleSelection: multiple,
1102
1092
  onSelectItem: onSelectItem,
1103
1093
  onSelectPage: onSelectPage,
1104
1094
  selectedItems: selectedItems,
1105
1095
  pageSelected: pageSelected
1106
- },
1096
+ }, tableProps),
1107
1097
  onSelectItem: onSelectItem,
1108
1098
  onItemsChange: onItemsChange,
1109
1099
  selectedCount: selectedCount,
@@ -1138,29 +1128,104 @@ function MediasPicker(_ref) {
1138
1128
  }]
1139
1129
  })))) : null);
1140
1130
  }
1141
- MediasPicker.propTypes = propTypes$2;
1142
- MediasPicker.defaultProps = defaultProps$2;
1131
+ MediasPicker.propTypes = propTypes$4;
1132
+ MediasPicker.defaultProps = defaultProps$4;
1143
1133
 
1144
- var _excluded$1 = ["api", "onChange"];
1145
- var propTypes$1 = {
1134
+ var _excluded$3 = ["api"];
1135
+ var propTypes$3 = {
1136
+ api: apiPropTypes
1137
+ };
1138
+ var defaultProps$3 = {
1139
+ api: null
1140
+ };
1141
+ function MediasBrowserContainer(_ref) {
1142
+ var api = _ref.api,
1143
+ props = _objectWithoutProperties(_ref, _excluded$3);
1144
+ return /*#__PURE__*/React.createElement(MediasApiProvider, {
1145
+ api: api
1146
+ }, /*#__PURE__*/React.createElement(MediasBrowser, props));
1147
+ }
1148
+ MediasBrowserContainer.propTypes = propTypes$3;
1149
+ MediasBrowserContainer.defaultProps = defaultProps$3;
1150
+
1151
+ var _excluded$2 = ["api", "onChange"];
1152
+ var propTypes$2 = {
1146
1153
  api: apiPropTypes,
1147
1154
  onChange: PropTypes.func.isRequired
1148
1155
  };
1149
- var defaultProps$1 = {
1156
+ var defaultProps$2 = {
1150
1157
  api: null
1151
1158
  };
1152
1159
  function MediasPickerContainer(_ref) {
1153
1160
  var api = _ref.api,
1154
1161
  onChange = _ref.onChange,
1155
- props = _objectWithoutProperties(_ref, _excluded$1);
1162
+ props = _objectWithoutProperties(_ref, _excluded$2);
1156
1163
  return /*#__PURE__*/React.createElement(MediasApiProvider, {
1157
1164
  api: api
1158
1165
  }, /*#__PURE__*/React.createElement(MediasPicker, Object.assign({}, props, {
1159
1166
  onChange: onChange
1160
1167
  })));
1161
1168
  }
1162
- MediasPickerContainer.propTypes = propTypes$1;
1163
- MediasPickerContainer.defaultProps = defaultProps$1;
1169
+ MediasPickerContainer.propTypes = propTypes$2;
1170
+ MediasPickerContainer.defaultProps = defaultProps$2;
1171
+
1172
+ var _excluded$1 = ["resource"];
1173
+ var propTypes$1 = {
1174
+ resource: PropTypes.string
1175
+ };
1176
+ var defaultProps$1 = {
1177
+ resource: 'medias'
1178
+ };
1179
+ function MediasResourceBrowser(_ref) {
1180
+ var resourceId = _ref.resource,
1181
+ props = _objectWithoutProperties(_ref, _excluded$1);
1182
+ var resource = contexts.usePanneauResource(resourceId);
1183
+ var api = data.useApi();
1184
+ var mediasApi = React.useMemo(function () {
1185
+ return {
1186
+ get: function get() {
1187
+ var _api$resources;
1188
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1189
+ args[_key] = arguments[_key];
1190
+ }
1191
+ return (_api$resources = api.resources).get.apply(_api$resources, [resource].concat(args));
1192
+ },
1193
+ find: function find() {
1194
+ var _api$resources2;
1195
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1196
+ args[_key2] = arguments[_key2];
1197
+ }
1198
+ return (_api$resources2 = api.resources).find.apply(_api$resources2, [resource].concat(args));
1199
+ },
1200
+ create: function create() {
1201
+ var _api$resources3;
1202
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1203
+ args[_key3] = arguments[_key3];
1204
+ }
1205
+ return (_api$resources3 = api.resources).create.apply(_api$resources3, [resource].concat(args));
1206
+ },
1207
+ update: function update() {
1208
+ var _api$resources4;
1209
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1210
+ args[_key4] = arguments[_key4];
1211
+ }
1212
+ return (_api$resources4 = api.resources).update.apply(_api$resources4, [resource].concat(args));
1213
+ },
1214
+ "delete": function _delete() {
1215
+ var _api$resources5;
1216
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1217
+ args[_key5] = arguments[_key5];
1218
+ }
1219
+ return (_api$resources5 = api.resources)["delete"].apply(_api$resources5, [resource].concat(args));
1220
+ }
1221
+ };
1222
+ }, [api, resource]);
1223
+ return /*#__PURE__*/React.createElement(MediasBrowserContainer, Object.assign({
1224
+ api: mediasApi
1225
+ }, props));
1226
+ }
1227
+ MediasResourceBrowser.propTypes = propTypes$1;
1228
+ MediasResourceBrowser.defaultProps = defaultProps$1;
1164
1229
 
1165
1230
  var _excluded = ["resource"];
1166
1231
  var propTypes = {
@@ -1169,7 +1234,7 @@ var propTypes = {
1169
1234
  var defaultProps = {
1170
1235
  resource: 'medias'
1171
1236
  };
1172
- function MediasResourceBrowser(_ref) {
1237
+ function MediasResourcePicker(_ref) {
1173
1238
  var resourceId = _ref.resource,
1174
1239
  props = _objectWithoutProperties(_ref, _excluded);
1175
1240
  var resource = contexts.usePanneauResource(resourceId);
@@ -1213,21 +1278,27 @@ function MediasResourceBrowser(_ref) {
1213
1278
  }
1214
1279
  };
1215
1280
  }, [api, resource]);
1216
- return /*#__PURE__*/React.createElement(MediasBrowserContainer, Object.assign({
1281
+ return /*#__PURE__*/React.createElement(MediasPickerContainer, Object.assign({
1217
1282
  api: mediasApi
1218
1283
  }, props));
1219
1284
  }
1220
- MediasResourceBrowser.propTypes = propTypes;
1221
- MediasResourceBrowser.defaultProps = defaultProps;
1285
+ MediasResourcePicker.propTypes = propTypes;
1286
+ MediasResourcePicker.defaultProps = defaultProps;
1222
1287
 
1223
1288
  exports.MediaForm = MediaForm;
1224
1289
  exports.MediasApiProvider = MediasApiProvider;
1225
1290
  exports.MediasBrowser = MediasBrowser;
1291
+ exports.MediasBrowserContainer = MediasBrowserContainer;
1226
1292
  exports.MediasPicker = MediasPicker;
1227
1293
  exports.MediasPickerContainer = MediasPickerContainer;
1228
1294
  exports.MediasResourceBrowser = MediasResourceBrowser;
1295
+ exports.MediasResourcePicker = MediasResourcePicker;
1229
1296
  exports.apiPropTypes = apiPropTypes;
1230
- exports.default = MediasBrowserContainer;
1297
+ exports.columns = defaultColumns;
1298
+ exports.fields = defaultFields;
1299
+ exports.filters = defaultFilters;
1300
+ exports.metadataDisplays = defaultDisplays;
1301
+ exports.metadataSections = defaultSections;
1231
1302
  exports.useMedia = useMedia$1;
1232
1303
  exports.useMediaCreate = useMediaCreate$1;
1233
1304
  exports.useMediaUpdate = useMediaUpdate$1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/medias",
3
- "version": "3.0.146",
3
+ "version": "3.0.149",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -67,5 +67,5 @@
67
67
  "publishConfig": {
68
68
  "access": "public"
69
69
  },
70
- "gitHead": "6cb6250299f5e725b74a20195fe6e66fe803bafc"
70
+ "gitHead": "a78f4ff7c15fb1d37b37a0b1391dca0616023dfc"
71
71
  }