@panneau/medias 4.0.8 → 4.0.14

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 const 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 const 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, createContext, useMemo, 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,23 +26,10 @@ 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
31
  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
32
+ return use(MediasApiContext);
49
33
  };
50
34
  function MediasApiProvider(_ref) {
51
35
  var _ref$api = _ref.api,
@@ -55,12 +39,11 @@ 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
49
  var useMedias = function useMedias() {
@@ -228,14 +211,6 @@ var useMediaReplace = function useMediaReplace() {
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,17 +621,10 @@ function MediaForm(_ref) {
667
621
  })]
668
622
  });
669
623
  }
670
- MediaForm.propTypes = propTypes$7;
671
624
 
672
625
  var MediaContext = /*#__PURE__*/createContext(null);
673
626
  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
627
+ return use(MediaContext);
681
628
  };
682
629
  function MediaProvider(_ref) {
683
630
  var _ref$media = _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) {
@@ -1463,7 +1365,7 @@ function MediasBrowser(_ref) {
1463
1365
  // empty={emptyWithSticky}
1464
1366
  ,
1465
1367
  actionsProps: {
1466
- getDeletePropsFromItem: function getDeletePropsFromItem() {
1368
+ getDeletePropsFromValue: function getDeletePropsFromValue() {
1467
1369
  return {
1468
1370
  href: null,
1469
1371
  withConfirmation: true,
@@ -1474,7 +1376,7 @@ function MediasBrowser(_ref) {
1474
1376
  }
1475
1377
  };
1476
1378
  },
1477
- getEditPropsFromItem: function getEditPropsFromItem(it) {
1379
+ getEditPropsFromValue: function getEditPropsFromValue(it) {
1478
1380
  return {
1479
1381
  href: null,
1480
1382
  onClick: function onClick() {
@@ -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.8",
3
+ "version": "4.0.14",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -26,53 +26,56 @@
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",
31
+ "style": "./assets/css/styles.css",
30
32
  "exports": {
31
- ".": "./es/index.js",
33
+ ".": {
34
+ "default": "./dist/index.js",
35
+ "types": "./dist/index.d.ts"
36
+ },
32
37
  "./assets/css/styles": "./assets/css/styles.css",
33
38
  "./assets/css/styles.css": "./assets/css/styles.css"
34
39
  },
35
40
  "files": [
36
- "lib",
37
- "es",
41
+ "dist",
38
42
  "assets"
39
43
  ],
40
44
  "scripts": {
41
45
  "prepublishOnly": "npm run build",
42
- "build": "../../scripts/prepare-package.sh"
46
+ "build": "../../scripts/prepare-package.sh --types"
43
47
  },
44
48
  "devDependencies": {
45
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
46
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
49
+ "react": "^19.0.0",
50
+ "react-dom": "^19.0.0"
47
51
  },
48
52
  "peerDependencies": {
49
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
50
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
53
+ "react": "^19.0.0",
54
+ "react-dom": "^19.0.0"
51
55
  },
52
56
  "dependencies": {
53
57
  "@babel/runtime": "^7.12.5",
54
- "@panneau/core": "^4.0.8",
55
- "@panneau/data": "^4.0.8",
56
- "@panneau/display-image": "^4.0.8",
57
- "@panneau/element-button": "^4.0.8",
58
- "@panneau/element-buttons": "^4.0.8",
59
- "@panneau/element-form": "^4.0.8",
60
- "@panneau/element-form-status": "^4.0.8",
61
- "@panneau/element-grid": "^4.0.8",
62
- "@panneau/element-icon": "^4.0.8",
63
- "@panneau/element-media-card": "^4.0.8",
64
- "@panneau/element-media-player": "^4.0.8",
65
- "@panneau/element-pagination": "^4.0.8",
66
- "@panneau/element-table": "^4.0.8",
67
- "@panneau/field-upload": "^4.0.8",
68
- "@panneau/filter-filters": "^4.0.8",
58
+ "@panneau/core": "^4.0.14",
59
+ "@panneau/data": "^4.0.14",
60
+ "@panneau/display-image": "^4.0.14",
61
+ "@panneau/element-button": "^4.0.14",
62
+ "@panneau/element-buttons": "^4.0.14",
63
+ "@panneau/element-form": "^4.0.14",
64
+ "@panneau/element-form-status": "^4.0.14",
65
+ "@panneau/element-grid": "^4.0.14",
66
+ "@panneau/element-icon": "^4.0.14",
67
+ "@panneau/element-media-card": "^4.0.14",
68
+ "@panneau/element-media-player": "^4.0.14",
69
+ "@panneau/element-pagination": "^4.0.14",
70
+ "@panneau/element-table": "^4.0.14",
71
+ "@panneau/field-upload": "^4.0.14",
72
+ "@panneau/filter-filters": "^4.0.14",
69
73
  "classnames": "^2.5.1",
70
- "lodash-es": "^4.17.21",
71
- "prop-types": "^15.7.2",
74
+ "lodash": "^4.17.21",
72
75
  "react-intl": "^5.15.8 || ^6.0.0 || ^7.0.0"
73
76
  },
74
77
  "publishConfig": {
75
78
  "access": "public"
76
79
  },
77
- "gitHead": "c9fa22382cc63416e2bfaac780f31794b11c8c64"
80
+ "gitHead": "ce35c2ddb30a7be2efe951882d9826dca577f5d4"
78
81
  }