@panneau/medias 4.0.11 → 4.0.15

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.
@@ -0,0 +1,378 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode, Dispatch, SetStateAction } from 'react';
3
+ import { Media } from '@panneau/core';
4
+ import * as _tanstack_query_core from '@tanstack/query-core';
5
+
6
+ type MediaFormField = Record<string, unknown>;
7
+ interface MediaFormProps {
8
+ value?: Media | null;
9
+ fields?: MediaFormField[] | null;
10
+ onChange?: ((newValue: Media | null) => void) | null;
11
+ onSave?: ((newValue: Media | null) => void) | null;
12
+ onReplace?: ((newValue: unknown) => void) | null;
13
+ onDelete?: (() => void) | null;
14
+ onClose?: (() => void) | null;
15
+ withDelete?: boolean;
16
+ withTrash?: boolean;
17
+ withReplace?: boolean;
18
+ className?: string | null;
19
+ children?: ReactNode | null;
20
+ }
21
+ declare function MediaForm({ value: initialValue, fields: initialFields, onChange, onSave, onReplace, onDelete, onClose, withDelete, withTrash, withReplace, className, children, }: MediaFormProps): react_jsx_runtime.JSX.Element;
22
+
23
+ type FilterItem = Record<string, unknown> & {
24
+ id?: string | null;
25
+ };
26
+ type ColumnAction = string | {
27
+ id?: string;
28
+ component?: string;
29
+ withConfirmation?: boolean;
30
+ action?: (ids: Array<string | number>) => Promise<unknown> | unknown;
31
+ [key: string]: unknown;
32
+ };
33
+ type ColumnItem = Record<string, unknown> & {
34
+ id?: string | null;
35
+ actions?: ColumnAction[];
36
+ };
37
+ type SelectionValue = Media | Media[] | null;
38
+ interface LayoutItem {
39
+ id: string;
40
+ label: ReactNode;
41
+ [key: string]: unknown;
42
+ }
43
+ interface MediasBrowserProps {
44
+ items?: Media[] | null;
45
+ extraItems?: Media[] | null;
46
+ types?: string[] | null;
47
+ permissions?: {
48
+ create?: boolean;
49
+ edit?: boolean;
50
+ delete?: boolean;
51
+ } | null;
52
+ filters?: FilterItem[] | null;
53
+ columns?: ColumnItem[] | null;
54
+ query?: Record<string, unknown> | null;
55
+ baseUrl?: string | null;
56
+ fields?: Array<Record<string, unknown>> | null;
57
+ layout?: string;
58
+ layouts?: LayoutItem[] | null;
59
+ theme?: string | null;
60
+ onMediaUploaded?: ((medias: Media[]) => Promise<Media[] | Media | null> | Media[] | Media | null) | null;
61
+ onItemsChange?: ((items: Media[] | null | undefined) => void) | null;
62
+ onLayoutChange?: ((layout: string) => void) | null;
63
+ onMediaFormOpen?: (() => void) | null;
64
+ onMediaFormClose?: (() => void) | null;
65
+ selectable?: boolean;
66
+ selectedItems?: SelectionValue;
67
+ onSelectionChange?: ((selection: SelectionValue) => void) | null;
68
+ multipleSelection?: boolean;
69
+ uppyConfig?: Record<string, unknown>;
70
+ withDelete?: boolean;
71
+ withTrash?: boolean;
72
+ withReplace?: boolean;
73
+ withStickySelection?: boolean;
74
+ withoutUpload?: boolean;
75
+ className?: string | null;
76
+ formChildren?: ReactNode | null;
77
+ }
78
+ declare function MediasBrowser({ items: initialItems, extraItems, types, permissions, baseUrl, filters, columns, fields, query: initialQuery, layout: initialLayout, layouts, theme, onMediaUploaded, onItemsChange, onLayoutChange, onMediaFormOpen, onMediaFormClose, selectable, selectedItems, onSelectionChange, multipleSelection, uppyConfig, withDelete, withTrash, withReplace, withStickySelection, withoutUpload, className, formChildren, }: MediasBrowserProps): react_jsx_runtime.JSX.Element;
79
+
80
+ type PickerSelection = Media | Media[] | null;
81
+ interface MediasPickerProps {
82
+ items?: Media[] | null;
83
+ value?: PickerSelection;
84
+ onChange?: ((selection: PickerSelection) => void) | null;
85
+ multiple?: boolean;
86
+ className?: string | null;
87
+ [key: string]: unknown;
88
+ }
89
+ declare function MediasPicker({ items: initialItems, value: initialSelectedItems, onChange, multiple, className, ...props }: MediasPickerProps): react_jsx_runtime.JSX.Element;
90
+
91
+ interface MediasApi {
92
+ get: (...args: unknown[]) => Promise<unknown> | unknown;
93
+ getTrashed: (...args: unknown[]) => Promise<unknown> | unknown;
94
+ create: (...args: unknown[]) => Promise<unknown> | unknown;
95
+ find: (...args: unknown[]) => Promise<unknown> | unknown;
96
+ update: (...args: unknown[]) => Promise<unknown> | unknown;
97
+ trash: (...args: unknown[]) => Promise<unknown> | unknown;
98
+ restore?: (...args: unknown[]) => Promise<unknown> | unknown;
99
+ delete: (...args: unknown[]) => Promise<unknown> | unknown;
100
+ }
101
+ interface MediasApiProviderProps {
102
+ api?: MediasApi | null;
103
+ children: ReactNode;
104
+ }
105
+ declare function useMediasApi(): MediasApi;
106
+ declare function MediasApiProvider({ api: providedApi, children }: MediasApiProviderProps): react_jsx_runtime.JSX.Element;
107
+
108
+ interface MediasBrowserContainerProps {
109
+ api?: MediasApi | null;
110
+ media?: Media | null;
111
+ [key: string]: unknown;
112
+ }
113
+ declare function MediasBrowserContainer({ api, media, ...props }: MediasBrowserContainerProps): react_jsx_runtime.JSX.Element;
114
+
115
+ interface MediasPickerContainerProps {
116
+ api?: MediasApi | null;
117
+ media?: Media | null;
118
+ onChange?: ((...args: unknown[]) => void) | null;
119
+ [key: string]: unknown;
120
+ }
121
+ declare function MediasPickerContainer({ api, media, onChange, ...props }: MediasPickerContainerProps): react_jsx_runtime.JSX.Element;
122
+
123
+ interface MediaContextValue {
124
+ currentMedia: Media | null;
125
+ setCurrentMedia: Dispatch<SetStateAction<Media | null>>;
126
+ }
127
+ interface MediaProviderProps {
128
+ media?: Media | null;
129
+ children: ReactNode;
130
+ }
131
+ declare function useCurrentMedia(): MediaContextValue;
132
+ declare function MediaProvider({ media: providedMedia, children }: MediaProviderProps): react_jsx_runtime.JSX.Element;
133
+
134
+ declare function useMedias(query?: any, page?: any, count?: any, opts?: {}): {
135
+ isLoading: false;
136
+ isFetching: boolean;
137
+ isRefetching: boolean;
138
+ isFetched: boolean;
139
+ pages: any;
140
+ allItems: any;
141
+ loading: boolean;
142
+ loaded: boolean;
143
+ reload: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<unknown, Error>>;
144
+ loadPage: (newPage: any) => void;
145
+ loadNextPage: () => void;
146
+ updateItem: (item: any) => void;
147
+ pagination: {
148
+ page: any;
149
+ lastPage: any;
150
+ total: any;
151
+ };
152
+ error: Error;
153
+ isError: true;
154
+ isPending: false;
155
+ isLoadingError: false;
156
+ isRefetchError: true;
157
+ isSuccess: false;
158
+ isPlaceholderData: false;
159
+ status: "error";
160
+ dataUpdatedAt: number;
161
+ errorUpdatedAt: number;
162
+ failureCount: number;
163
+ failureReason: Error;
164
+ errorUpdateCount: number;
165
+ isFetchedAfterMount: boolean;
166
+ isInitialLoading: boolean;
167
+ isPaused: boolean;
168
+ isStale: boolean;
169
+ isEnabled: boolean;
170
+ fetchStatus: _tanstack_query_core.FetchStatus;
171
+ promise: Promise<unknown>;
172
+ items: any;
173
+ } | {
174
+ isLoading: false;
175
+ isFetching: boolean;
176
+ isRefetching: boolean;
177
+ isFetched: boolean;
178
+ pages: any;
179
+ allItems: any;
180
+ loading: boolean;
181
+ loaded: boolean;
182
+ reload: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<unknown, Error>>;
183
+ loadPage: (newPage: any) => void;
184
+ loadNextPage: () => void;
185
+ updateItem: (item: any) => void;
186
+ pagination: {
187
+ page: any;
188
+ lastPage: any;
189
+ total: any;
190
+ };
191
+ error: null;
192
+ isError: false;
193
+ isPending: false;
194
+ isLoadingError: false;
195
+ isRefetchError: false;
196
+ isSuccess: true;
197
+ isPlaceholderData: false;
198
+ status: "success";
199
+ dataUpdatedAt: number;
200
+ errorUpdatedAt: number;
201
+ failureCount: number;
202
+ failureReason: Error;
203
+ errorUpdateCount: number;
204
+ isFetchedAfterMount: boolean;
205
+ isInitialLoading: boolean;
206
+ isPaused: boolean;
207
+ isStale: boolean;
208
+ isEnabled: boolean;
209
+ fetchStatus: _tanstack_query_core.FetchStatus;
210
+ promise: Promise<unknown>;
211
+ items: any;
212
+ };
213
+
214
+ declare function useMedia(id: any, opts: any): {
215
+ load: (...args: any[]) => any;
216
+ loading: boolean;
217
+ error: boolean;
218
+ story: any;
219
+ };
220
+
221
+ declare function useMediaCreate(): {
222
+ create: (data: any) => any;
223
+ creating: boolean;
224
+ };
225
+
226
+ declare function useMediaUpdate(): {
227
+ update: (id: any, data: any) => any;
228
+ updating: boolean;
229
+ };
230
+
231
+ declare function useMediaDelete(): {
232
+ mediaDelete: (id: any, data: any) => any;
233
+ deleting: boolean;
234
+ };
235
+
236
+ declare function useMediaTrash(): {
237
+ mediaTrash: (id: any, data: any) => any;
238
+ trashing: boolean;
239
+ };
240
+
241
+ declare function useMediaRestore(): {
242
+ mediaRestore: (id: any, data: any) => any;
243
+ restoring: boolean;
244
+ };
245
+
246
+ declare function useMediaReplace(): {
247
+ mediaReplace: (id: any, data: any) => any;
248
+ replacing: boolean;
249
+ };
250
+
251
+ declare const _default$2: ({
252
+ id: string;
253
+ label: react_jsx_runtime.JSX.Element;
254
+ component: string;
255
+ path: string;
256
+ sortable: boolean;
257
+ descriptionPath?: undefined;
258
+ descriptionValues?: undefined;
259
+ format?: undefined;
260
+ actions?: undefined;
261
+ } | {
262
+ id: string;
263
+ label: react_jsx_runtime.JSX.Element;
264
+ component: string;
265
+ path: string;
266
+ descriptionPath: string;
267
+ descriptionValues: {
268
+ image: react_jsx_runtime.JSX.Element;
269
+ video: react_jsx_runtime.JSX.Element;
270
+ audio: react_jsx_runtime.JSX.Element;
271
+ document: react_jsx_runtime.JSX.Element;
272
+ };
273
+ sortable: boolean;
274
+ format?: undefined;
275
+ actions?: undefined;
276
+ } | {
277
+ id: string;
278
+ label: react_jsx_runtime.JSX.Element;
279
+ component: string;
280
+ format: string;
281
+ path: string;
282
+ sortable?: undefined;
283
+ descriptionPath?: undefined;
284
+ descriptionValues?: undefined;
285
+ actions?: undefined;
286
+ } | {
287
+ id: string;
288
+ label: react_jsx_runtime.JSX.Element;
289
+ component: string;
290
+ path: string;
291
+ format: string;
292
+ sortable: boolean;
293
+ descriptionPath?: undefined;
294
+ descriptionValues?: undefined;
295
+ actions?: undefined;
296
+ } | {
297
+ id: string;
298
+ label: react_jsx_runtime.JSX.Element;
299
+ actions: string[];
300
+ component?: undefined;
301
+ path?: undefined;
302
+ sortable?: undefined;
303
+ descriptionPath?: undefined;
304
+ descriptionValues?: undefined;
305
+ format?: undefined;
306
+ })[];
307
+
308
+ declare const _default$1: ({
309
+ name: string;
310
+ label: react_jsx_runtime.JSX.Element;
311
+ type: string;
312
+ component: string;
313
+ id?: undefined;
314
+ isList?: undefined;
315
+ hideWithoutValue?: undefined;
316
+ fields?: undefined;
317
+ } | {
318
+ id: string;
319
+ component: string;
320
+ label: react_jsx_runtime.JSX.Element;
321
+ isList: boolean;
322
+ hideWithoutValue: boolean;
323
+ fields: ({
324
+ id: string;
325
+ label: react_jsx_runtime.JSX.Element;
326
+ type: string;
327
+ display: string;
328
+ name: string;
329
+ horizontal: boolean;
330
+ format?: undefined;
331
+ } | {
332
+ id: string;
333
+ label: react_jsx_runtime.JSX.Element;
334
+ type: string;
335
+ display: string;
336
+ name: string;
337
+ format: string;
338
+ horizontal: boolean;
339
+ })[];
340
+ name?: undefined;
341
+ type?: undefined;
342
+ })[];
343
+
344
+ declare const _default: ({
345
+ id: string;
346
+ component: string;
347
+ name: string;
348
+ width: number;
349
+ placeholder?: undefined;
350
+ options?: undefined;
351
+ multiple?: undefined;
352
+ } | {
353
+ id: string;
354
+ component: string;
355
+ name: string;
356
+ placeholder: react_jsx_runtime.JSX.Element;
357
+ options: {
358
+ label: react_jsx_runtime.JSX.Element;
359
+ value: string;
360
+ }[];
361
+ multiple: boolean;
362
+ width?: undefined;
363
+ })[];
364
+
365
+ interface MediasResourceBrowserProps {
366
+ resource?: string | null;
367
+ [key: string]: unknown;
368
+ }
369
+ declare function MediasResourceBrowser({ resource: resourceId, ...props }: MediasResourceBrowserProps): react_jsx_runtime.JSX.Element;
370
+
371
+ interface MediasResourcePickerProps {
372
+ resource?: string | null;
373
+ [key: string]: unknown;
374
+ }
375
+ declare function MediasResourcePicker({ resource: resourceId, ...props }: MediasResourcePickerProps): react_jsx_runtime.JSX.Element;
376
+
377
+ export { MediaForm, MediaProvider, MediasApiProvider, MediasBrowser, MediasBrowserContainer, MediasPicker, MediasPickerContainer, MediasResourceBrowser, MediasResourcePicker, _default$2 as columns, _default$1 as fields, _default as filters, useCurrentMedia, useMedia, useMediaCreate, useMediaDelete, useMediaReplace, useMediaRestore, useMediaTrash, useMediaUpdate, useMedias, useMediasApi };
378
+ export type { MediaContextValue, MediasApi };
@@ -1,8 +1,7 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import classNames from 'classnames';
4
- import PropTypes from 'prop-types';
5
- import { useContext, useMemo, createContext, useCallback, useState, useEffect } from 'react';
4
+ import { use, useMemo, createContext, useCallback, useState, useEffect } from 'react';
6
5
  import { FormattedMessage } from 'react-intl';
7
6
  import { useFieldComponent, usePanneauResource } from '@panneau/core/contexts';
8
7
  import { useForm, useQuery } from '@panneau/core/hooks';
@@ -16,9 +15,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
16
15
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
17
16
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
18
17
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
19
- import isArray from 'lodash-es/isArray';
20
- import uniqBy from 'lodash-es/uniqBy';
21
- import { PropTypes as PropTypes$1 } from '@panneau/core';
18
+ import uniqBy from 'lodash/uniqBy';
22
19
  import Buttons from '@panneau/element-buttons';
23
20
  import Grid from '@panneau/element-grid';
24
21
  import Icon from '@panneau/element-icon';
@@ -29,24 +26,11 @@ import Filters from '@panneau/filter-filters';
29
26
  import { useItemsStore, useData, useApi } from '@panneau/data';
30
27
 
31
28
  /* eslint-disable react/jsx-props-no-spreading */
29
+
32
30
  var MediasApiContext = /*#__PURE__*/createContext(null);
33
- var useMediasApi = function useMediasApi() {
34
- return useContext(MediasApiContext);
35
- };
36
- var apiPropTypes = PropTypes.shape({
37
- get: PropTypes.func.isRequired,
38
- getTrashed: PropTypes.func.isRequired,
39
- create: PropTypes.func.isRequired,
40
- find: PropTypes.func.isRequired,
41
- update: PropTypes.func.isRequired,
42
- trash: PropTypes.func.isRequired,
43
- restore: PropTypes.func.isRequired,
44
- "delete": PropTypes.func.isRequired
45
- });
46
- var propTypes$9 = {
47
- api: apiPropTypes,
48
- children: PropTypes.node.isRequired
49
- };
31
+ function useMediasApi() {
32
+ return use(MediasApiContext);
33
+ }
50
34
  function MediasApiProvider(_ref) {
51
35
  var _ref$api = _ref.api,
52
36
  providedApi = _ref$api === void 0 ? null : _ref$api,
@@ -55,15 +39,14 @@ function MediasApiProvider(_ref) {
55
39
  var api = useMemo(function () {
56
40
  return providedApi || previousApi;
57
41
  }, [providedApi, previousApi]);
58
- return /*#__PURE__*/jsx(MediasApiContext.Provider, {
42
+ return /*#__PURE__*/jsx(MediasApiContext, {
59
43
  value: api,
60
44
  children: children
61
45
  });
62
46
  }
63
- MediasApiProvider.propTypes = propTypes$9;
64
47
 
65
48
  var _excluded$7 = ["items"];
66
- var useMedias = function useMedias() {
49
+ function useMedias() {
67
50
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
68
51
  var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
69
52
  var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
@@ -96,10 +79,10 @@ var useMedias = function useMedias() {
96
79
  return _objectSpread({
97
80
  items: items
98
81
  }, props);
99
- };
82
+ }
100
83
 
101
84
  var _excluded$6 = ["data"];
102
- var useMedia = function useMedia(id, opts) {
85
+ function useMedia(id, opts) {
103
86
  var api = useMediasApi();
104
87
  var loader = useCallback(function () {
105
88
  return api.find(id);
@@ -110,9 +93,9 @@ var useMedia = function useMedia(id, opts) {
110
93
  return _objectSpread({
111
94
  story: data
112
95
  }, request);
113
- };
96
+ }
114
97
 
115
- var useMediaCreate = function useMediaCreate() {
98
+ function useMediaCreate() {
116
99
  var _useState = useState(false),
117
100
  _useState2 = _slicedToArray(_useState, 2),
118
101
  creating = _useState2[0],
@@ -129,9 +112,9 @@ var useMediaCreate = function useMediaCreate() {
129
112
  create: create,
130
113
  creating: creating
131
114
  };
132
- };
115
+ }
133
116
 
134
- var useMediaUpdate = function useMediaUpdate() {
117
+ function useMediaUpdate() {
135
118
  var _useState = useState(false),
136
119
  _useState2 = _slicedToArray(_useState, 2),
137
120
  updating = _useState2[0],
@@ -148,9 +131,9 @@ var useMediaUpdate = function useMediaUpdate() {
148
131
  update: update,
149
132
  updating: updating
150
133
  };
151
- };
134
+ }
152
135
 
153
- var useMediaDelete = function useMediaDelete() {
136
+ function useMediaDelete() {
154
137
  var _useState = useState(false),
155
138
  _useState2 = _slicedToArray(_useState, 2),
156
139
  deleting = _useState2[0],
@@ -167,9 +150,9 @@ var useMediaDelete = function useMediaDelete() {
167
150
  mediaDelete: mediaDelete,
168
151
  deleting: deleting
169
152
  };
170
- };
153
+ }
171
154
 
172
- var useMediaTrash = function useMediaTrash() {
155
+ function useMediaTrash() {
173
156
  var _useState = useState(false),
174
157
  _useState2 = _slicedToArray(_useState, 2),
175
158
  trashing = _useState2[0],
@@ -186,9 +169,9 @@ var useMediaTrash = function useMediaTrash() {
186
169
  mediaTrash: mediaTrash,
187
170
  trashing: trashing
188
171
  };
189
- };
172
+ }
190
173
 
191
- var useMediaRestore = function useMediaRestore() {
174
+ function useMediaRestore() {
192
175
  var _useState = useState(false),
193
176
  _useState2 = _slicedToArray(_useState, 2),
194
177
  restoring = _useState2[0],
@@ -205,9 +188,9 @@ var useMediaRestore = function useMediaRestore() {
205
188
  mediaRestore: mediaRestore,
206
189
  restoring: restoring
207
190
  };
208
- };
191
+ }
209
192
 
210
- var useMediaReplace = function useMediaReplace() {
193
+ function useMediaReplace() {
211
194
  var _useState = useState(false),
212
195
  _useState2 = _slicedToArray(_useState, 2),
213
196
  replacing = _useState2[0],
@@ -224,18 +207,10 @@ var useMediaReplace = function useMediaReplace() {
224
207
  mediaReplace: mediaReplace,
225
208
  replacing: replacing
226
209
  };
227
- };
210
+ }
228
211
 
229
212
  var styles = {"mediaFrame":"panneau-medias-mediaFrame"};
230
213
 
231
- var propTypes$8 = {
232
- value: PropTypes.shape({
233
- id: PropTypes.string,
234
- type: PropTypes.string
235
- }),
236
- showPlayer: PropTypes.bool,
237
- className: PropTypes.string
238
- };
239
214
  function MediaFrame(_ref) {
240
215
  var _ref$value = _ref.value,
241
216
  value = _ref$value === void 0 ? null : _ref$value,
@@ -262,13 +237,10 @@ function MediaFrame(_ref) {
262
237
  }) : /*#__PURE__*/jsx(ImageDisplay, {
263
238
  className: "w-100",
264
239
  value: value,
265
- maxWidth: "100%",
266
- maxHeight: "100%",
267
240
  onClick: type === 'video' || type === 'audio' ? onClick : null
268
241
  })
269
242
  });
270
243
  }
271
- MediaFrame.propTypes = propTypes$8;
272
244
 
273
245
  var defaultFields = [{
274
246
  name: 'name',
@@ -418,24 +390,6 @@ var defaultFields = [{
418
390
  }]
419
391
  }];
420
392
 
421
- var propTypes$7 = {
422
- value: PropTypes.shape({
423
- id: PropTypes.string
424
- }),
425
- fields: PropTypes.arrayOf(PropTypes.shape({
426
- name: PropTypes.string
427
- })),
428
- onChange: PropTypes.func,
429
- onSave: PropTypes.func,
430
- onReplace: PropTypes.func,
431
- onDelete: PropTypes.func,
432
- onClose: PropTypes.func,
433
- withDelete: PropTypes.bool,
434
- withTrash: PropTypes.bool,
435
- withReplace: PropTypes.bool,
436
- className: PropTypes.string,
437
- children: PropTypes.node
438
- };
439
393
  function MediaForm(_ref) {
440
394
  var _ref$value = _ref.value,
441
395
  initialValue = _ref$value === void 0 ? null : _ref$value,
@@ -532,7 +486,7 @@ function MediaForm(_ref) {
532
486
  mediaReplace(id, data).then(onReplace);
533
487
  }, [initialValue, onReplace]);
534
488
  var postForm = useCallback(function (action, data) {
535
- return initialValue !== null ? update(initialValue.id, data) : new Promise();
489
+ return initialValue !== null ? update(initialValue.id, data) : Promise.resolve(null);
536
490
  }, [initialValue, update]);
537
491
  var _useForm = useForm({
538
492
  fields: initialFields,
@@ -667,18 +621,11 @@ function MediaForm(_ref) {
667
621
  })]
668
622
  });
669
623
  }
670
- MediaForm.propTypes = propTypes$7;
671
624
 
672
625
  var MediaContext = /*#__PURE__*/createContext(null);
673
- var useCurrentMedia = function useCurrentMedia() {
674
- return useContext(MediaContext);
675
- };
676
- var propTypes$6 = {
677
- media: PropTypes.shape({
678
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
679
- }),
680
- children: PropTypes.node.isRequired
681
- };
626
+ function useCurrentMedia() {
627
+ return use(MediaContext);
628
+ }
682
629
  function MediaProvider(_ref) {
683
630
  var _ref$media = _ref.media,
684
631
  providedMedia = _ref$media === void 0 ? null : _ref$media,
@@ -693,12 +640,11 @@ function MediaProvider(_ref) {
693
640
  setCurrentMedia: setCurrentMedia
694
641
  };
695
642
  }, [currentMedia, setCurrentMedia]);
696
- return /*#__PURE__*/jsx(MediaContext.Provider, {
643
+ return /*#__PURE__*/jsx(MediaContext, {
697
644
  value: values,
698
645
  children: children
699
646
  });
700
647
  }
701
- MediaProvider.propTypes = propTypes$6;
702
648
 
703
649
  var defaultColumns = [{
704
650
  id: 'image',
@@ -911,7 +857,7 @@ var defaultFilters = [{
911
857
  ];
912
858
 
913
859
  var _excluded$5 = ["page", "count"],
914
- _excluded2 = ["types", "trashed"];
860
+ _excluded2 = ["trashed"];
915
861
  var DEFAULT_LAYOUTS = [{
916
862
  id: 'table',
917
863
  label: /*#__PURE__*/jsx(Icon, {
@@ -924,41 +870,6 @@ var DEFAULT_LAYOUTS = [{
924
870
  })
925
871
  }];
926
872
  var DEFAULT_UPPY_CONFIG = {};
927
- var propTypes$5 = {
928
- items: PropTypes$1.medias,
929
- extraItems: PropTypes$1.medias,
930
- types: PropTypes.arrayOf(PropTypes.string),
931
- permissions: PropTypes.shape({
932
- create: PropTypes.bool,
933
- edit: PropTypes.bool,
934
- "delete": PropTypes.bool
935
- }),
936
- filters: PropTypes$1.filters,
937
- columns: PropTypes$1.tableColumns,
938
- query: PropTypes.shape({}),
939
- baseUrl: PropTypes.string,
940
- fields: PropTypes$1.fields,
941
- layout: PropTypes.string,
942
- layouts: PropTypes.arrayOf(PropTypes.shape({})),
943
- theme: PropTypes.string,
944
- onMediaUploaded: PropTypes.func,
945
- onItemsChange: PropTypes.func,
946
- onLayoutChange: PropTypes.func,
947
- onMediaFormOpen: PropTypes.func,
948
- onMediaFormClose: PropTypes.func,
949
- selectable: PropTypes.bool,
950
- selectedItems: PropTypes.oneOfType([PropTypes.shape({}), PropTypes.arrayOf(PropTypes.shape({}))]),
951
- onSelectionChange: PropTypes.func,
952
- multipleSelection: PropTypes.bool,
953
- uppyConfig: PropTypes.shape({}),
954
- withDelete: PropTypes.bool,
955
- withTrash: PropTypes.bool,
956
- withReplace: PropTypes.bool,
957
- withStickySelection: PropTypes.bool,
958
- withoutUpload: PropTypes.bool,
959
- className: PropTypes.string,
960
- formChildren: PropTypes.node
961
- };
962
873
  function MediasBrowser(_ref) {
963
874
  var _ref$items = _ref.items,
964
875
  initialItems = _ref$items === void 0 ? null : _ref$items,
@@ -1060,11 +971,8 @@ function MediasBrowser(_ref) {
1060
971
  _ref3$delete = _ref3["delete"],
1061
972
  canDelete = _ref3$delete === void 0 ? true : _ref3$delete;
1062
973
  var canUpload = canCreate && !withoutUpload;
1063
-
1064
- // eslint-disable-next-line no-unused-vars
1065
- var _ref4 = query || {};
1066
- _ref4.types;
1067
- var _ref4$trashed = _ref4.trashed,
974
+ var _ref4 = query || {},
975
+ _ref4$trashed = _ref4.trashed,
1068
976
  trashed = _ref4$trashed === void 0 ? null : _ref4$trashed,
1069
977
  queryWithoutTypes = _objectWithoutProperties(_ref4, _excluded2);
1070
978
  var _useMediaTrash = useMediaTrash(),
@@ -1155,20 +1063,16 @@ function MediasBrowser(_ref) {
1155
1063
  var onTrashMedia = useCallback(function (id) {
1156
1064
  return !showTrashed && withTrash ? mediaTrash(id).then(function () {
1157
1065
  if (!multipleSelection) {
1158
- var _ref5 = selectedItems || {},
1159
- _ref5$id = _ref5.id,
1160
- selectedId = _ref5$id === void 0 ? null : _ref5$id;
1161
- if (selectedId !== null && selectedId === id) {
1066
+ var selectedId = selectedItems !== null && !Array.isArray(selectedItems) ? selectedItems.id || null : null;
1067
+ if (selectedId !== null && selectedId === id && onSelectionChange !== null) {
1162
1068
  onSelectionChange(null);
1163
1069
  }
1164
1070
  }
1165
1071
  // Todo remove from mult selection
1166
1072
  }).then(reload) : mediaDelete(id).then(function () {
1167
1073
  if (!multipleSelection) {
1168
- var _ref6 = selectedItems || {},
1169
- _ref6$id = _ref6.id,
1170
- selectedId = _ref6$id === void 0 ? null : _ref6$id;
1171
- if (selectedId !== null && selectedId === id) {
1074
+ var selectedId = selectedItems !== null && !Array.isArray(selectedItems) ? selectedItems.id || null : null;
1075
+ if (selectedId !== null && selectedId === id && onSelectionChange !== null) {
1172
1076
  onSelectionChange(null);
1173
1077
  }
1174
1078
  }
@@ -1184,16 +1088,14 @@ function MediasBrowser(_ref) {
1184
1088
  uploadProcessing = _useState0[0],
1185
1089
  setUploadProcessing = _useState0[1];
1186
1090
  var onUploadedMediaChanged = useCallback(function (newMedias) {
1187
- var uploadedNewMedias = (isArray(newMedias) ? [].concat(_toConsumableArray(newMedias), _toConsumableArray(uploadedMedias || [])) : [newMedias].concat(_toConsumableArray(uploadedMedias || []))).filter(function (it) {
1091
+ var uploadedNewMedias = (Array.isArray(newMedias) ? [].concat(_toConsumableArray(newMedias), _toConsumableArray(uploadedMedias || [])) : [newMedias].concat(_toConsumableArray(uploadedMedias || []))).filter(function (it) {
1188
1092
  return it !== null;
1189
1093
  });
1190
1094
  setUploadedMedias(uploadedNewMedias);
1191
1095
  if (onSelectionChange !== null) {
1192
- var _ref7 = newMedias || [],
1193
- _ref8 = _slicedToArray(_ref7, 1),
1194
- _ref8$ = _ref8[0],
1195
- firstMedia = _ref8$ === void 0 ? null : _ref8$;
1196
- onSelectionChange(multipleSelection && isArray(newMedias) ? newMedias : firstMedia);
1096
+ var _newMedias$;
1097
+ var firstMedia = Array.isArray(newMedias) ? (_newMedias$ = newMedias[0]) !== null && _newMedias$ !== void 0 ? _newMedias$ : null : newMedias !== null && newMedias !== void 0 ? newMedias : null;
1098
+ onSelectionChange(multipleSelection && Array.isArray(newMedias) ? newMedias : firstMedia);
1197
1099
  onQueryReset();
1198
1100
  reload().then(function () {
1199
1101
  setUploadedMedias(null);
@@ -1206,13 +1108,13 @@ function MediasBrowser(_ref) {
1206
1108
  setShowTrashed(false);
1207
1109
  }
1208
1110
  if (medias === null) return;
1209
- var rawMedias = (isArray(medias) ? medias : [medias]).filter(function (it) {
1111
+ var rawMedias = (Array.isArray(medias) ? medias : [medias]).filter(function (it) {
1210
1112
  return it !== null;
1211
1113
  });
1212
1114
  if (onMediaUploaded !== null) {
1213
1115
  setUploadProcessing(true);
1214
- onMediaUploaded(rawMedias).then(function (newMedias) {
1215
- onUploadedMediaChanged(newMedias);
1116
+ Promise.resolve(onMediaUploaded(rawMedias)).then(function (newMedias) {
1117
+ onUploadedMediaChanged(newMedias || null);
1216
1118
  setUploadProcessing(false);
1217
1119
  })["catch"](function () {
1218
1120
  setUploadProcessing(false);
@@ -1251,9 +1153,9 @@ function MediasBrowser(_ref) {
1251
1153
  }]) : filters;
1252
1154
  if (types !== null && partialFilters !== null) {
1253
1155
  return (partialFilters || []).map(function (filter) {
1254
- var _ref9 = filter || {},
1255
- _ref9$id = _ref9.id,
1256
- id = _ref9$id === void 0 ? null : _ref9$id;
1156
+ var _ref5 = filter || {},
1157
+ _ref5$id = _ref5.id,
1158
+ id = _ref5$id === void 0 ? null : _ref5$id;
1257
1159
  return id === 'types' ? _objectSpread(_objectSpread({}, filter), {}, {
1258
1160
  disabled: true
1259
1161
  }) : filter;
@@ -1263,9 +1165,9 @@ function MediasBrowser(_ref) {
1263
1165
  }, [filters, types, withTrash, showTrashed, uploadProcessing, onClickTrash]);
1264
1166
  var partialColumns = useMemo(function () {
1265
1167
  return withTrash && showTrashed ? (columns || []).map(function (column) {
1266
- var _ref0 = column || {},
1267
- _ref0$id = _ref0.id,
1268
- columnId = _ref0$id === void 0 ? null : _ref0$id;
1168
+ var _ref6 = column || {},
1169
+ _ref6$id = _ref6.id,
1170
+ columnId = _ref6$id === void 0 ? null : _ref6$id;
1269
1171
  if (columnId === 'created_at') {
1270
1172
  return _objectSpread(_objectSpread({}, column), {}, {
1271
1173
  path: 'deleted_at',
@@ -1279,9 +1181,9 @@ function MediasBrowser(_ref) {
1279
1181
  });
1280
1182
  }
1281
1183
  if (columnId === 'actions') {
1282
- var _ref1 = column || {},
1283
- _ref1$actions = _ref1.actions,
1284
- actions = _ref1$actions === void 0 ? [] : _ref1$actions;
1184
+ var _ref7 = column || {},
1185
+ _ref7$actions = _ref7.actions,
1186
+ actions = _ref7$actions === void 0 ? [] : _ref7$actions;
1285
1187
  return _objectSpread(_objectSpread({}, column), {}, {
1286
1188
  actions: (actions || []).reduce(function (acc, action) {
1287
1189
  if (action === 'delete') {
@@ -1306,13 +1208,13 @@ function MediasBrowser(_ref) {
1306
1208
  }, [columns, withTrash, showTrashed]);
1307
1209
  var finalColumns = useMemo(function () {
1308
1210
  return (partialColumns || []).map(function (column) {
1309
- var _ref10 = column || {},
1310
- _ref10$id = _ref10.id,
1311
- columnId = _ref10$id === void 0 ? null : _ref10$id;
1211
+ var _ref8 = column || {},
1212
+ _ref8$id = _ref8.id,
1213
+ columnId = _ref8$id === void 0 ? null : _ref8$id;
1312
1214
  if (columnId === 'actions') {
1313
- var _ref11 = column || {},
1314
- _ref11$actions = _ref11.actions,
1315
- actions = _ref11$actions === void 0 ? [] : _ref11$actions;
1215
+ var _ref9 = column || {},
1216
+ _ref9$actions = _ref9.actions,
1217
+ actions = _ref9$actions === void 0 ? [] : _ref9$actions;
1316
1218
  var availableActions = actions.filter(function (act) {
1317
1219
  return act !== 'delete' || canDelete;
1318
1220
  }).filter(function (act) {
@@ -1345,9 +1247,9 @@ function MediasBrowser(_ref) {
1345
1247
  var _item$id = item.id,
1346
1248
  itemId = _item$id === void 0 ? null : _item$id;
1347
1249
  return (allItems || []).find(function () {
1348
- var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1349
- _ref12$id = _ref12.id,
1350
- otherId = _ref12$id === void 0 ? null : _ref12$id;
1250
+ var _ref0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1251
+ _ref0$id = _ref0.id,
1252
+ otherId = _ref0$id === void 0 ? null : _ref0$id;
1351
1253
  return otherId === itemId;
1352
1254
  }) || item || null;
1353
1255
  }).filter(function (it) {
@@ -1490,16 +1392,8 @@ function MediasBrowser(_ref) {
1490
1392
  })
1491
1393
  });
1492
1394
  }
1493
- MediasBrowser.propTypes = propTypes$5;
1494
1395
 
1495
1396
  var _excluded$4 = ["items", "value", "onChange", "multiple", "className"];
1496
- var propTypes$4 = {
1497
- items: PropTypes.arrayOf(PropTypes.shape({})),
1498
- value: PropTypes.oneOfType([PropTypes.shape({}), PropTypes.arrayOf(PropTypes.shape({}))]),
1499
- multiple: PropTypes.bool,
1500
- onChange: PropTypes.func.isRequired,
1501
- className: PropTypes.string
1502
- };
1503
1397
  function MediasPicker(_ref) {
1504
1398
  var _ref$items = _ref.items,
1505
1399
  initialItems = _ref$items === void 0 ? null : _ref$items,
@@ -1516,7 +1410,7 @@ function MediasPicker(_ref) {
1516
1410
  if (initialSelectedItems === null) {
1517
1411
  return null;
1518
1412
  }
1519
- return isArray(initialSelectedItems) ? initialSelectedItems : [initialSelectedItems];
1413
+ return Array.isArray(initialSelectedItems) ? initialSelectedItems : [initialSelectedItems];
1520
1414
  }, []);
1521
1415
 
1522
1416
  // Mostly for testing
@@ -1550,15 +1444,8 @@ function MediasPicker(_ref) {
1550
1444
  }, props))
1551
1445
  });
1552
1446
  }
1553
- MediasPicker.propTypes = propTypes$4;
1554
1447
 
1555
1448
  var _excluded$3 = ["api", "media"];
1556
- var propTypes$3 = {
1557
- api: apiPropTypes,
1558
- media: PropTypes.shape({
1559
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1560
- })
1561
- };
1562
1449
  function MediasBrowserContainer(_ref) {
1563
1450
  var _ref$api = _ref.api,
1564
1451
  api = _ref$api === void 0 ? null : _ref$api,
@@ -1573,22 +1460,15 @@ function MediasBrowserContainer(_ref) {
1573
1460
  })
1574
1461
  });
1575
1462
  }
1576
- MediasBrowserContainer.propTypes = propTypes$3;
1577
1463
 
1578
1464
  var _excluded$2 = ["api", "media", "onChange"];
1579
- var propTypes$2 = {
1580
- api: apiPropTypes,
1581
- media: PropTypes.shape({
1582
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1583
- }),
1584
- onChange: PropTypes.func.isRequired
1585
- };
1586
1465
  function MediasPickerContainer(_ref) {
1587
1466
  var _ref$api = _ref.api,
1588
1467
  api = _ref$api === void 0 ? null : _ref$api,
1589
1468
  _ref$media = _ref.media,
1590
1469
  media = _ref$media === void 0 ? null : _ref$media,
1591
- onChange = _ref.onChange,
1470
+ _ref$onChange = _ref.onChange,
1471
+ onChange = _ref$onChange === void 0 ? null : _ref$onChange,
1592
1472
  props = _objectWithoutProperties(_ref, _excluded$2);
1593
1473
  return /*#__PURE__*/jsx(MediasApiProvider, {
1594
1474
  api: api,
@@ -1600,12 +1480,8 @@ function MediasPickerContainer(_ref) {
1600
1480
  })
1601
1481
  });
1602
1482
  }
1603
- MediasPickerContainer.propTypes = propTypes$2;
1604
1483
 
1605
1484
  var _excluded$1 = ["resource"];
1606
- var propTypes$1 = {
1607
- resource: PropTypes.string
1608
- };
1609
1485
  function MediasResourceBrowser(_ref) {
1610
1486
  var _ref$resource = _ref.resource,
1611
1487
  resourceId = _ref$resource === void 0 ? 'medias' : _ref$resource,
@@ -1669,12 +1545,8 @@ function MediasResourceBrowser(_ref) {
1669
1545
  api: mediasApi
1670
1546
  }, props));
1671
1547
  }
1672
- MediasResourceBrowser.propTypes = propTypes$1;
1673
1548
 
1674
1549
  var _excluded = ["resource"];
1675
- var propTypes = {
1676
- resource: PropTypes.string
1677
- };
1678
1550
  function MediasResourcePicker(_ref) {
1679
1551
  var _ref$resource = _ref.resource,
1680
1552
  resourceId = _ref$resource === void 0 ? 'medias' : _ref$resource,
@@ -1754,6 +1626,5 @@ function MediasResourcePicker(_ref) {
1754
1626
  columns: columns
1755
1627
  } : null), props));
1756
1628
  }
1757
- MediasResourcePicker.propTypes = propTypes;
1758
1629
 
1759
- export { MediaForm, MediaProvider, MediasApiProvider, MediasBrowser, MediasBrowserContainer, MediasPicker, MediasPickerContainer, MediasResourceBrowser, MediasResourcePicker, apiPropTypes, defaultColumns as columns, defaultFields as fields, defaultFilters as filters, useCurrentMedia, useMedia, useMediaCreate, useMediaDelete, useMediaReplace, useMediaRestore, useMediaTrash, useMediaUpdate, useMedias, useMediasApi };
1630
+ export { MediaForm, MediaProvider, MediasApiProvider, MediasBrowser, MediasBrowserContainer, MediasPicker, MediasPickerContainer, MediasResourceBrowser, MediasResourcePicker, defaultColumns as columns, defaultFields as fields, defaultFilters as filters, useCurrentMedia, useMedia, useMediaCreate, useMediaDelete, useMediaReplace, useMediaRestore, useMediaTrash, useMediaUpdate, useMedias, useMediasApi };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/medias",
3
- "version": "4.0.11",
3
+ "version": "4.0.15",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -26,21 +26,24 @@
26
26
  ],
27
27
  "license": "ISC",
28
28
  "type": "module",
29
- "module": "es/index.js",
29
+ "module": "dist/index.js",
30
+ "types": "dist/index.d.ts",
30
31
  "style": "./assets/css/styles.css",
31
32
  "exports": {
32
- ".": "./es/index.js",
33
+ ".": {
34
+ "default": "./dist/index.js",
35
+ "types": "./dist/index.d.ts"
36
+ },
33
37
  "./assets/css/styles": "./assets/css/styles.css",
34
38
  "./assets/css/styles.css": "./assets/css/styles.css"
35
39
  },
36
40
  "files": [
37
- "lib",
38
- "es",
41
+ "dist",
39
42
  "assets"
40
43
  ],
41
44
  "scripts": {
42
45
  "prepublishOnly": "npm run build",
43
- "build": "../../scripts/prepare-package.sh"
46
+ "build": "../../scripts/prepare-package.sh --types"
44
47
  },
45
48
  "devDependencies": {
46
49
  "react": "^19.0.0",
@@ -52,28 +55,27 @@
52
55
  },
53
56
  "dependencies": {
54
57
  "@babel/runtime": "^7.12.5",
55
- "@panneau/core": "^4.0.11",
56
- "@panneau/data": "^4.0.11",
57
- "@panneau/display-image": "^4.0.11",
58
- "@panneau/element-button": "^4.0.11",
59
- "@panneau/element-buttons": "^4.0.11",
60
- "@panneau/element-form": "^4.0.11",
61
- "@panneau/element-form-status": "^4.0.11",
62
- "@panneau/element-grid": "^4.0.11",
63
- "@panneau/element-icon": "^4.0.11",
64
- "@panneau/element-media-card": "^4.0.11",
65
- "@panneau/element-media-player": "^4.0.11",
66
- "@panneau/element-pagination": "^4.0.11",
67
- "@panneau/element-table": "^4.0.11",
68
- "@panneau/field-upload": "^4.0.11",
69
- "@panneau/filter-filters": "^4.0.11",
58
+ "@panneau/core": "^4.0.15",
59
+ "@panneau/data": "^4.0.15",
60
+ "@panneau/display-image": "^4.0.15",
61
+ "@panneau/element-button": "^4.0.15",
62
+ "@panneau/element-buttons": "^4.0.15",
63
+ "@panneau/element-form": "^4.0.15",
64
+ "@panneau/element-form-status": "^4.0.15",
65
+ "@panneau/element-grid": "^4.0.15",
66
+ "@panneau/element-icon": "^4.0.15",
67
+ "@panneau/element-media-card": "^4.0.15",
68
+ "@panneau/element-media-player": "^4.0.15",
69
+ "@panneau/element-pagination": "^4.0.15",
70
+ "@panneau/element-table": "^4.0.15",
71
+ "@panneau/field-upload": "^4.0.15",
72
+ "@panneau/filter-filters": "^4.0.15",
70
73
  "classnames": "^2.5.1",
71
- "lodash-es": "^4.17.21",
72
- "prop-types": "^15.7.2",
74
+ "lodash": "^4.17.21",
73
75
  "react-intl": "^5.15.8 || ^6.0.0 || ^7.0.0"
74
76
  },
75
77
  "publishConfig": {
76
78
  "access": "public"
77
79
  },
78
- "gitHead": "fe8264ed2815da0b5a40339dec99999c6fe70751"
80
+ "gitHead": "83c02ca2f26e02383ef452ffcafda984d0b211cd"
79
81
  }