@micromag/media-gallery 0.3.508 → 0.3.510

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
5
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
5
6
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
7
  var classNames = require('classnames');
@@ -8,1841 +9,536 @@ var isArray = require('lodash/isArray');
8
9
  var PropTypes = require('prop-types');
9
10
  var React = require('react');
10
11
  var reactDom = require('react-dom');
11
- var reactIntl = require('react-intl');
12
+ var medias = require('@panneau/medias');
12
13
  var core = require('@micromag/core');
13
14
  var components = require('@micromag/core/components');
14
- var contexts = require('@micromag/core/contexts');
15
15
  var data = require('@micromag/data');
16
- var hooks = require('@micromag/core/hooks');
17
- var faHeadphonesAlt = require('@fortawesome/free-solid-svg-icons/faHeadphonesAlt');
18
- var faInfoCircle = require('@fortawesome/free-solid-svg-icons/faInfoCircle');
19
- var faPlayCircle = require('@fortawesome/free-solid-svg-icons/faPlayCircle');
20
- var faTimesCircle = require('@fortawesome/free-solid-svg-icons/faTimesCircle');
21
- var reactFontawesome = require('@fortawesome/react-fontawesome');
22
- var uniqBy = require('lodash/uniqBy');
23
- var prettyBytes = require('pretty-bytes');
24
- var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
25
- var faChevronLeft = require('@fortawesome/free-solid-svg-icons/faChevronLeft');
26
- var faPlus = require('@fortawesome/free-solid-svg-icons/faPlus');
27
- var faTimes = require('@fortawesome/free-solid-svg-icons/faTimes');
28
- var faSearch = require('@fortawesome/free-solid-svg-icons/faSearch');
29
- var faSpinner = require('@fortawesome/free-solid-svg-icons/faSpinner');
30
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
31
-
32
- var middleEllipsis = function middleEllipsis(string, maxLength) {
33
- if (!string) return string;
34
- if (maxLength < 1) return string;
35
- if (string.length <= maxLength) return string;
36
- if (maxLength === 1) return "".concat(string.substring(0, 1), "...");
37
- var midpoint = Math.ceil(string.length / 2);
38
- var toremove = string.length - maxLength;
39
- var lstrip = Math.ceil(toremove / 2);
40
- var rstrip = toremove - lstrip;
41
- return "".concat(string.substring(0, midpoint - lstrip), "...").concat(string.substring(midpoint + rstrip));
42
- };
43
-
44
- var styles$b = {"container":"micromag-media-gallery-items-gallery-item-container","selected":"micromag-media-gallery-items-gallery-item-selected","imageButton":"micromag-media-gallery-items-gallery-item-imageButton","image":"micromag-media-gallery-items-gallery-item-image","icon":"micromag-media-gallery-items-gallery-item-icon","footer":"micromag-media-gallery-items-gallery-item-footer","label":"micromag-media-gallery-items-gallery-item-label","infoButton":"micromag-media-gallery-items-gallery-item-infoButton","closeButton":"micromag-media-gallery-items-gallery-item-closeButton"};
45
-
46
- var propTypes$b = {
47
- item: core.PropTypes.media,
48
- width: PropTypes.number,
49
- selected: PropTypes.bool,
50
- withInfoButton: PropTypes.bool,
51
- className: PropTypes.string,
52
- onClick: PropTypes.func,
53
- onClickInfo: PropTypes.func,
54
- onClickRemove: PropTypes.func
55
- };
56
- var defaultProps$b = {
57
- item: null,
58
- width: 0,
59
- selected: false,
60
- withInfoButton: false,
61
- className: null,
62
- onClick: null,
63
- onClickInfo: null,
64
- onClickRemove: null
65
- };
66
- var GalleryItem = function GalleryItem(_ref) {
67
- var item = _ref.item,
68
- width = _ref.width,
69
- selected = _ref.selected,
70
- withInfoButton = _ref.withInfoButton,
71
- className = _ref.className,
72
- onClick = _ref.onClick,
73
- onClickInfo = _ref.onClickInfo,
74
- onClickRemove = _ref.onClickRemove;
75
- var type = item.type,
76
- _item$thumbnail_url = item.thumbnail_url,
77
- thumbnail = _item$thumbnail_url === void 0 ? null : _item$thumbnail_url,
78
- name = item.name,
79
- size = item.size;
80
- var title = name;
81
- if (width < 768) {
82
- title = middleEllipsis(name, Math.floor(Math.max(18, width / 2 / 9)));
83
- } else {
84
- title = middleEllipsis(name, Math.floor(Math.max(25, width / 3 / 8)));
85
- }
86
- return /*#__PURE__*/React.createElement(components.Card, {
87
- image: /*#__PURE__*/React.createElement("button", {
88
- className: classNames(['d-block', 'position-relative', 'p-0', 'border-0', 'w-100', 'text-start', 'bg-dark', 'text-black', styles$b.imageButton]),
89
- type: "button",
90
- onClick: onClick
91
- }, /*#__PURE__*/React.createElement("div", {
92
- className: classNames(['card-img-top', styles$b.image]),
93
- style: {
94
- backgroundImage: thumbnail !== null ? "url('".concat(thumbnail, "')") : null
95
- }
96
- })),
97
- beforeBody: /*#__PURE__*/React.createElement(React.Fragment, null, withInfoButton ? /*#__PURE__*/React.createElement(components.Button, {
98
- className: styles$b.infoButton,
99
- onClick: onClickInfo,
100
- withoutStyle: true
101
- }, /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
102
- icon: faInfoCircle.faInfoCircle,
103
- className: styles$b.icon
104
- })) : null, selected ? /*#__PURE__*/React.createElement(components.Button, {
105
- className: classNames(['text-danger', styles$b.closeButton]),
106
- onClick: onClickRemove,
107
- withoutStyle: true
108
- }, /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
109
- icon: faTimesCircle.faTimesCircle,
110
- className: styles$b.icon
111
- })) : null),
112
- footer: /*#__PURE__*/React.createElement(React.Fragment, null, type === 'video' ? /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
113
- className: styles$b.icon,
114
- icon: faPlayCircle.faPlayCircle
115
- }) : null, type === 'audio' ? /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
116
- className: styles$b.icon,
117
- icon: faHeadphonesAlt.faHeadphonesAlt
118
- }) : null, /*#__PURE__*/React.createElement("div", {
119
- className: classNames(['text-truncate', styles$b.label])
120
- }, /*#__PURE__*/React.createElement("small", null, title), size !== null ? /*#__PURE__*/React.createElement("small", {
121
- className: "text-body-secondary ms-1"
122
- }, size) : null)),
123
- theme: selected ? null : null,
124
- className: classNames([styles$b.container, _defineProperty(_defineProperty({}, styles$b.selected, selected), className, className !== null)]),
125
- footerClassName: classNames(['p-1', styles$b.footer]),
126
- onClickFooter: onClick
127
- });
128
- };
129
- GalleryItem.propTypes = propTypes$b;
130
- GalleryItem.defaultProps = defaultProps$b;
131
- var GalleryItem$1 = GalleryItem;
132
-
133
- var styles$a = {};
134
-
135
- var propTypes$a = {
136
- items: core.PropTypes.medias,
137
- selectedItem: core.PropTypes.media,
138
- withInfoButton: PropTypes.bool,
139
- isSmall: PropTypes.bool,
140
- selectedFirst: PropTypes.bool,
141
- className: PropTypes.string,
142
- onClickItem: PropTypes.func,
143
- onClickItemInfo: PropTypes.func,
144
- onClickRemoveItem: PropTypes.func
145
- };
146
- var defaultProps$a = {
147
- items: null,
148
- selectedItem: null,
149
- withInfoButton: false,
150
- isSmall: false,
151
- selectedFirst: false,
152
- className: null,
153
- onClickItem: null,
154
- onClickItemInfo: null,
155
- onClickRemoveItem: null
156
- };
157
- function Gallery(_ref) {
158
- var items = _ref.items,
159
- selectedItem = _ref.selectedItem,
160
- withInfoButton = _ref.withInfoButton,
161
- isSmall = _ref.isSmall,
162
- selectedFirst = _ref.selectedFirst,
163
- className = _ref.className,
164
- onClickItem = _ref.onClickItem,
165
- onClickItemInfo = _ref.onClickItemInfo,
166
- onClickRemoveItem = _ref.onClickRemoveItem;
167
- var _useDimensionObserver = hooks.useDimensionObserver(),
168
- ref = _useDimensionObserver.ref,
169
- width = _useDimensionObserver.width;
170
- var finalItems = React.useMemo(function () {
171
- if (selectedFirst && selectedItem !== null && typeof selectedItem.id !== 'undefined') {
172
- return [selectedItem].concat(_toConsumableArray(items.filter(function (_ref2) {
173
- var id = _ref2.id;
174
- return id !== selectedItem.id;
175
- })));
176
- }
177
- return items;
178
- }, [selectedFirst, selectedItem, items]);
179
- return /*#__PURE__*/React.createElement("div", {
180
- className: classNames([styles$a.container, 'p-2', 'pt-0', _defineProperty({}, className, className !== null)]),
181
- ref: ref
182
- }, /*#__PURE__*/React.createElement("div", {
183
- className: classNames(['row', 'mx-n1', 'row-cols-2', {
184
- 'row-cols-md-3': !isSmall
185
- }])
186
- }, finalItems.map(function (item) {
187
- return /*#__PURE__*/React.createElement("div", {
188
- className: "col px-1 py-1",
189
- key: "gallery-item-".concat(item.id)
190
- }, /*#__PURE__*/React.createElement(GalleryItem$1, {
191
- item: item,
192
- width: width,
193
- selected: selectedItem !== null && selectedItem.id === item.id,
194
- onClick: onClickItem !== null ? function () {
195
- return onClickItem(item);
196
- } : null,
197
- onClickInfo: onClickItemInfo !== null ? function () {
198
- return onClickItemInfo(item);
199
- } : null,
200
- onClickRemove: onClickRemoveItem !== null ? function () {
201
- onClickRemoveItem();
202
- } : null,
203
- withInfoButton: withInfoButton
204
- }));
205
- })));
206
- }
207
- Gallery.propTypes = propTypes$a;
208
- Gallery.defaultProps = defaultProps$a;
209
-
210
- var styles$9 = {"container":"micromag-media-gallery-partials-media-metadata-container","image":"micromag-media-gallery-partials-media-metadata-image","video":"micromag-media-gallery-partials-media-metadata-video","player":"micromag-media-gallery-partials-media-metadata-player","audio":"micromag-media-gallery-partials-media-metadata-audio","placeholder":"micromag-media-gallery-partials-media-metadata-placeholder"};
16
+ var reactIntl = require('react-intl');
17
+ var pathToRegexp = require('path-to-regexp');
211
18
 
212
- var propTypes$9 = {
213
- media: core.PropTypes.media,
214
- tags: core.PropTypes.tags,
215
- onChange: PropTypes.func,
216
- onClickClose: PropTypes.func,
217
- onClickSave: PropTypes.func,
218
- onClickDelete: PropTypes.func,
219
- className: PropTypes.string
220
- };
221
- var defaultProps$9 = {
222
- media: null,
223
- tags: [],
224
- onChange: null,
225
- onClickClose: null,
226
- onClickSave: null,
227
- onClickDelete: null,
228
- className: null
229
- };
230
- function MediaMetadata(_ref) {
231
- var media = _ref.media,
232
- allTags = _ref.tags,
233
- onChange = _ref.onChange,
234
- onClickClose = _ref.onClickClose,
235
- onClickSave = _ref.onClickSave,
236
- onClickDelete = _ref.onClickDelete,
237
- className = _ref.className;
238
- var _ref2 = media || {},
239
- mediaId = _ref2.id,
240
- type = _ref2.type,
241
- _ref2$url = _ref2.url,
242
- url = _ref2$url === void 0 ? null : _ref2$url,
243
- _ref2$thumbnail_url = _ref2.thumbnail_url,
244
- thumbnail = _ref2$thumbnail_url === void 0 ? null : _ref2$thumbnail_url,
245
- _ref2$name = _ref2.name,
246
- mediaName = _ref2$name === void 0 ? null : _ref2$name,
247
- _ref2$metadata = _ref2.metadata,
248
- metadata = _ref2$metadata === void 0 ? {} : _ref2$metadata;
249
- var _ref3 = metadata || {},
250
- _ref3$filename = _ref3.filename,
251
- filename = _ref3$filename === void 0 ? null : _ref3$filename,
252
- _ref3$size = _ref3.size,
253
- size = _ref3$size === void 0 ? null : _ref3$size,
254
- _ref3$width = _ref3.width,
255
- width = _ref3$width === void 0 ? null : _ref3$width,
256
- _ref3$height = _ref3.height,
257
- height = _ref3$height === void 0 ? null : _ref3$height,
258
- _ref3$duration = _ref3.duration,
259
- duration = _ref3$duration === void 0 ? null : _ref3$duration,
260
- _ref3$user = _ref3.user,
261
- user = _ref3$user === void 0 ? null : _ref3$user,
262
- _ref3$description = _ref3.description,
263
- mediaDescription = _ref3$description === void 0 ? null : _ref3$description,
264
- _ref3$tags = _ref3.tags,
265
- mediaTags = _ref3$tags === void 0 ? [] : _ref3$tags;
266
- var _useMediaUpdate = data.useMediaUpdate(),
267
- update = _useMediaUpdate.update;
268
- var _useMediaRequestDelet = data.useMediaRequestDelete(),
269
- requestDeleteMedia = _useMediaRequestDelet.requestDeleteMedia;
270
- var _useMediaDelete = data.useMediaDelete(),
271
- deleteMedia = _useMediaDelete.deleteMedia;
272
- var getOptionLabel = React.useCallback(function (_ref4) {
273
- var name = _ref4.name;
274
- return name;
275
- }, []);
276
- var getOptionValue = React.useCallback(function (_ref5) {
277
- var name = _ref5.name;
278
- return name;
279
- }, []);
280
- var getNewOptionData = React.useCallback(function (inputValue) {
281
- return {
282
- name: inputValue
283
- };
284
- }, []);
285
- var finalTags = React.useMemo(function () {
286
- return allTags !== null ? uniqBy(mediaTags.concat(allTags), function (_ref6) {
287
- var id = _ref6.id;
288
- return id;
289
- }) : mediaTags;
290
- }, [mediaTags, allTags]);
291
- var _useState = React.useState(mediaName),
292
- _useState2 = _slicedToArray(_useState, 2),
293
- name = _useState2[0],
294
- setName = _useState2[1];
295
- var _useState3 = React.useState(mediaDescription),
296
- _useState4 = _slicedToArray(_useState3, 2),
297
- description = _useState4[0],
298
- setDescription = _useState4[1];
299
- var _useState5 = React.useState(mediaTags.map(getOptionValue)),
300
- _useState6 = _slicedToArray(_useState5, 2),
301
- tags = _useState6[0],
302
- setTags = _useState6[1];
303
- var _useState7 = React.useState(false),
304
- _useState8 = _slicedToArray(_useState7, 2),
305
- changed = _useState8[0],
306
- setChanged = _useState8[1];
307
- var onTagChange = React.useCallback(function (val) {
308
- setTags(val);
309
- setChanged(true);
310
- }, [tags, setTags, setChanged]);
311
- var onNameChange = React.useCallback(function (val) {
312
- setName(val);
313
- setChanged(true);
314
- }, [tags, setName, setChanged]);
315
- var onDescriptionChange = React.useCallback(function (val) {
316
- setDescription(val);
317
- setChanged(true);
318
- }, [tags, setDescription, setChanged]);
319
- var _useState9 = React.useState(null),
320
- _useState10 = _slicedToArray(_useState9, 2),
321
- saveState = _useState10[0],
322
- setSaveState = _useState10[1];
323
- var onSave = React.useCallback(function () {
324
- return update(mediaId, {
325
- name: name,
326
- tags: tags,
327
- description: description
328
- }).then(function (response) {
329
- setChanged(false);
330
- setSaveState(null);
331
- if (onClickSave !== null) {
332
- onClickSave();
333
- }
334
- if (onChange !== null) {
335
- onChange(response);
336
- }
337
- })["catch"](function () {
338
- setSaveState(false);
339
- });
340
- }, [mediaId, name, tags, description, metadata, update, onChange, onClickSave, onClickClose, setChanged, setSaveState]);
341
- var _useState11 = React.useState(null),
342
- _useState12 = _slicedToArray(_useState11, 2),
343
- deletedState = _useState12[0],
344
- setDeletedState = _useState12[1];
345
- var _useState13 = React.useState(null),
346
- _useState14 = _slicedToArray(_useState13, 2),
347
- confirmation = _useState14[0],
348
- setConfirmation = _useState14[1];
349
- React.useEffect(function () {
350
- setDeletedState(null);
351
- setConfirmation(null);
352
- }, [mediaId, setDeletedState, setConfirmation]);
353
- var onConfirm = React.useCallback(function () {
354
- requestDeleteMedia(mediaId).then(function (response) {
355
- var _ref7 = response || {},
356
- state = _ref7.state,
357
- _ref7$items = _ref7.items,
358
- items = _ref7$items === void 0 ? [] : _ref7$items;
359
- if (state === 'needs_confirmation') {
360
- setConfirmation(items || []);
361
- } else {
362
- setConfirmation(null);
363
- }
364
- })["catch"](function () {
365
- setConfirmation(null);
366
- });
367
- }, [mediaId, requestDeleteMedia, setConfirmation]);
368
- var onDelete = React.useCallback(function () {
369
- deleteMedia(mediaId).then(function () {
370
- setChanged(false);
371
- setDeletedState(true);
372
- setConfirmation(null);
373
- if (onClickDelete !== null) {
374
- onClickDelete(mediaId);
375
- }
376
- })["catch"](function () {
377
- setDeletedState(false);
378
- setConfirmation(null);
379
- });
380
- }, [mediaId, deleteMedia, onClickDelete, setChanged, setDeletedState, setConfirmation]);
381
- var onCancelDelete = React.useCallback(function () {
382
- setConfirmation(null);
383
- setDeletedState(null);
384
- }, [setConfirmation, setDeletedState]);
385
- React.useEffect(function () {
386
- if (media !== null) {
387
- setTags(mediaTags);
388
- setName(mediaName);
389
- setDescription(mediaDescription);
390
- } else {
391
- setTags([]);
392
- setName(null);
393
- setDescription(null);
394
- }
395
- setChanged(false);
396
- }, [media, setTags, setName, setDescription, setChanged]);
397
- var TextField = contexts.useFieldComponent('text');
398
- var TokensField = contexts.useFieldComponent('tokens');
399
- return /*#__PURE__*/React.createElement("div", {
400
- className: classNames([styles$9.container, _defineProperty({}, className, className)])
401
- }, /*#__PURE__*/React.createElement("div", {
402
- className: classNames(['position-relative', _defineProperty({
403
- 'bg-light': type === 'audio',
404
- 'bg-black': type === 'image'
405
- }, styles$9.video, type === 'video')])
406
- }, type === 'video' ? /*#__PURE__*/React.createElement("video", {
407
- className: styles$9.player,
408
- controls: true,
409
- src: url
410
- }) : null, type === 'audio' ? /*#__PURE__*/React.createElement("div", {
411
- className: styles$9.audio
412
- }, /*#__PURE__*/React.createElement("audio", {
413
- className: styles$9.player,
414
- controls: true,
415
- src: url
416
- })) : null, type !== 'video' && thumbnail !== null ? /*#__PURE__*/React.createElement("img", {
417
- src: thumbnail,
418
- className: styles$9.image,
419
- alt: filename
420
- }) : /*#__PURE__*/React.createElement("div", {
421
- className: styles$9.placeholder
422
- })), /*#__PURE__*/React.createElement("div", {
423
- className: "p-2"
424
- }, /*#__PURE__*/React.createElement("div", {
425
- className: "tags mb-4"
426
- }, /*#__PURE__*/React.createElement("div", {
427
- className: "my-3"
428
- }, /*#__PURE__*/React.createElement("h6", null, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
429
- id: "kBz8vF",
430
- defaultMessage: [{
431
- "type": 0,
432
- "value": "Name"
433
- }]
434
- })), /*#__PURE__*/React.createElement(TextField, {
435
- value: name,
436
- onChange: onNameChange
437
- })), /*#__PURE__*/React.createElement("div", {
438
- className: "my-3"
439
- }, /*#__PURE__*/React.createElement("h6", {
440
- className: "mb-0"
441
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
442
- id: "YJZtWR",
443
- defaultMessage: [{
444
- "type": 0,
445
- "value": "Description"
446
- }]
447
- })), /*#__PURE__*/React.createElement("p", {
448
- className: "mb-1"
449
- }, /*#__PURE__*/React.createElement("small", null, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
450
- id: "EDFyUp",
451
- defaultMessage: [{
452
- "type": 0,
453
- "value": "Alternative text (accessibility)"
454
- }]
455
- }))), /*#__PURE__*/React.createElement(TextField, {
456
- value: description,
457
- onChange: onDescriptionChange
458
- })), /*#__PURE__*/React.createElement("div", {
459
- className: "my-3"
460
- }, /*#__PURE__*/React.createElement("h6", null, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
461
- id: "4fHMVj",
462
- defaultMessage: [{
463
- "type": 0,
464
- "value": "Tags"
465
- }]
466
- })), /*#__PURE__*/React.createElement(TokensField, {
467
- value: tags,
468
- options: finalTags
469
- // loadOptions={loadTags}
470
- ,
471
- getOptionLabel: getOptionLabel,
472
- getOptionValue: getOptionValue,
473
- getNewOptionData: getNewOptionData,
474
- onChange: onTagChange
475
- })), changed ? /*#__PURE__*/React.createElement(components.Button, {
476
- theme: "primary",
477
- onClick: onSave
478
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
479
- id: "qIw1nW",
480
- defaultMessage: [{
481
- "type": 0,
482
- "value": "Save"
483
- }]
484
- })) : null, saveState === false ? /*#__PURE__*/React.createElement("p", {
485
- className: "pt-1 text-danger"
486
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
487
- id: "DYjRd/",
488
- defaultMessage: [{
489
- "type": 0,
490
- "value": "Sorry, this media could not be saved."
491
- }]
492
- })) : null), /*#__PURE__*/React.createElement("h6", null, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
493
- id: "c9VwT/",
494
- defaultMessage: [{
495
- "type": 0,
496
- "value": "Technical details"
497
- }]
498
- })), /*#__PURE__*/React.createElement("ul", {
499
- className: "list-group"
500
- }, type !== null ? /*#__PURE__*/React.createElement("li", {
501
- className: "list-group-item py-2 px-2"
502
- }, /*#__PURE__*/React.createElement("div", {
503
- className: "row"
504
- }, /*#__PURE__*/React.createElement("div", {
505
- className: "col-4 text-body-secondary"
506
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
507
- id: "OkNUmk",
19
+ var defaultColumns = [{
20
+ id: 'image',
21
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
22
+ id: "UbxbKP",
508
23
  defaultMessage: [{
509
24
  "type": 0,
510
- "value": "Type"
25
+ "value": "Preview"
511
26
  }]
512
- })), /*#__PURE__*/React.createElement("div", {
513
- className: "col text-capitalize"
514
- }, /*#__PURE__*/React.createElement("small", null, type)))) : null, filename !== null ? /*#__PURE__*/React.createElement("li", {
515
- className: "list-group-item py-2 px-2"
516
- }, /*#__PURE__*/React.createElement("div", {
517
- className: "row"
518
- }, /*#__PURE__*/React.createElement("div", {
519
- className: "col-4 text-body-secondary"
520
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
521
- id: "aovRFH",
522
- defaultMessage: [{
523
- "type": 0,
524
- "value": "Filename"
525
- }]
526
- })), /*#__PURE__*/React.createElement("div", {
527
- className: "col"
528
- }, /*#__PURE__*/React.createElement("small", null, filename)))) : null, duration ? /*#__PURE__*/React.createElement("li", {
529
- className: "list-group-item py-2 px-2"
530
- }, /*#__PURE__*/React.createElement("div", {
531
- className: "row"
532
- }, /*#__PURE__*/React.createElement("div", {
533
- className: "col-4 text-body-secondary"
534
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
535
- id: "eoW0tZ",
27
+ }),
28
+ component: 'image',
29
+ path: 'thumbnail_url',
30
+ sortable: false
31
+ }, {
32
+ id: 'name',
33
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
34
+ id: "WX83V9",
536
35
  defaultMessage: [{
537
36
  "type": 0,
538
- "value": "Duration"
37
+ "value": "File name"
539
38
  }]
540
- })), /*#__PURE__*/React.createElement("div", {
541
- className: "col"
542
- }, /*#__PURE__*/React.createElement("small", null, duration)))) : null, width !== null || height !== null ? /*#__PURE__*/React.createElement("li", {
543
- className: "list-group-item py-2 px-2"
544
- }, /*#__PURE__*/React.createElement("div", {
545
- className: "row"
546
- }, /*#__PURE__*/React.createElement("div", {
547
- className: "col-4 text-body-secondary"
548
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
549
- id: "mv37oK",
39
+ }),
40
+ component: 'text-description',
41
+ path: 'name',
42
+ descriptionPath: 'type',
43
+ descriptionValues: {
44
+ image: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
45
+ id: "AwDQvD",
46
+ defaultMessage: [{
47
+ "type": 0,
48
+ "value": "Image"
49
+ }]
50
+ }),
51
+ video: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
52
+ id: "mQiyAm",
53
+ defaultMessage: [{
54
+ "type": 0,
55
+ "value": "Video"
56
+ }]
57
+ }),
58
+ audio: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
59
+ id: "XnyI69",
60
+ defaultMessage: [{
61
+ "type": 0,
62
+ "value": "Audio"
63
+ }]
64
+ }),
65
+ document: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
66
+ id: "1dqmFw",
67
+ defaultMessage: [{
68
+ "type": 0,
69
+ "value": "Document"
70
+ }]
71
+ })
72
+ },
73
+ sortable: true
74
+ }, {
75
+ id: 'dimensions',
76
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
77
+ id: "eCe9ZY",
550
78
  defaultMessage: [{
551
79
  "type": 0,
552
- "value": "Dimension"
80
+ "value": "Dimensions"
553
81
  }]
554
- })), /*#__PURE__*/React.createElement("div", {
555
- className: "col"
556
- }, /*#__PURE__*/React.createElement("small", null, width, "x", height)))) : null, size !== null ? /*#__PURE__*/React.createElement("li", {
557
- className: "list-group-item py-2 px-2"
558
- }, /*#__PURE__*/React.createElement("div", {
559
- className: "row"
560
- }, /*#__PURE__*/React.createElement("div", {
561
- className: "col-4 text-body-secondary"
562
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
563
- id: "liyV7Y",
82
+ }),
83
+ component: 'unit',
84
+ format: 'dimensions',
85
+ path: 'metadata'
86
+ }, {
87
+ id: 'size',
88
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
89
+ id: "c3hu9o",
564
90
  defaultMessage: [{
565
91
  "type": 0,
566
92
  "value": "Size"
567
93
  }]
568
- })), /*#__PURE__*/React.createElement("div", {
569
- className: "col"
570
- }, /*#__PURE__*/React.createElement("small", null, prettyBytes(size))))) : null, description !== null ? /*#__PURE__*/React.createElement("li", {
571
- className: "list-group-item py-2 px-2"
572
- }, /*#__PURE__*/React.createElement("div", {
573
- className: "row"
574
- }, /*#__PURE__*/React.createElement("div", {
575
- className: "col-4 text-body-secondary"
576
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
577
- id: "7uyslu",
578
- defaultMessage: [{
579
- "type": 0,
580
- "value": "Description"
581
- }]
582
- })), /*#__PURE__*/React.createElement("div", {
583
- className: "col"
584
- }, /*#__PURE__*/React.createElement("small", null, description)))) : null, user !== null && user.name ? /*#__PURE__*/React.createElement("li", {
585
- className: "list-group-item py-2 px-2"
586
- }, /*#__PURE__*/React.createElement("div", {
587
- className: "row"
588
- }, /*#__PURE__*/React.createElement("div", {
589
- className: "col-4 text-body-secondary"
590
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
591
- id: "sUR1xV",
94
+ }),
95
+ component: 'unit',
96
+ format: 'bytes',
97
+ path: 'metadata.size'
98
+ }, {
99
+ id: 'duration',
100
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
101
+ id: "002oWQ",
592
102
  defaultMessage: [{
593
103
  "type": 0,
594
- "value": "Author"
104
+ "value": "Duration"
595
105
  }]
596
- })), /*#__PURE__*/React.createElement("div", {
597
- className: "col"
598
- }, /*#__PURE__*/React.createElement("small", null, user.name)))) : null), /*#__PURE__*/React.createElement("div", {
599
- className: "py-3"
600
- }, confirmation !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, confirmation.length > 0 ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("p", {
601
- className: "pt-1 text-danger"
602
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
603
- id: "2FD6tj",
106
+ }),
107
+ component: 'unit',
108
+ format: 'duration',
109
+ path: 'metadata.duration'
110
+ },
111
+ // {
112
+ // id: 'author',
113
+ // label: <FormattedMessage defaultMessage="Added by" description="Field name" />,
114
+ // component: 'avatar',
115
+ // path: 'metadata.author',
116
+ // namePath: 'name',
117
+ // withoutName: true,
118
+ // },
119
+ {
120
+ id: 'created_at',
121
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
122
+ id: "OzYWZz",
604
123
  defaultMessage: [{
605
124
  "type": 0,
606
- "value": "This media is used by the following documents:"
125
+ "value": "Created at"
607
126
  }]
608
- })), /*#__PURE__*/React.createElement("ul", null, confirmation.map(function (it, i) {
609
- return /*#__PURE__*/React.createElement("li", {
610
- key: "".concat(it, "-").concat(i + 1),
611
- className: "text-danger"
612
- }, it);
613
- }))) : null, /*#__PURE__*/React.createElement("p", {
614
- className: "pt-1 text-danger"
615
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
616
- id: "wy2g+x",
127
+ }),
128
+ component: 'date',
129
+ path: 'created_at',
130
+ format: 'yyyy-MM-dd hh:ss',
131
+ sortable: true
132
+ }, {
133
+ id: 'actions',
134
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
135
+ id: "rtwfuZ",
617
136
  defaultMessage: [{
618
137
  "type": 0,
619
- "value": "Are you sure you want to continue?"
138
+ "value": "Actions"
620
139
  }]
621
- }))) : null, /*#__PURE__*/React.createElement("div", {
622
- className: "d-flex"
623
- }, /*#__PURE__*/React.createElement(components.Button, {
624
- className: "me-2",
625
- theme: "danger",
626
- outline: true,
627
- onClick: confirmation === null ? onConfirm : onDelete
628
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
629
- id: "/KQ87r",
140
+ }),
141
+ actions: ['edit', 'delete']
142
+ // component: ItemActions,
143
+ // label: 'Edit',
144
+ // url: '/edit/1',
145
+ }
146
+ // {
147
+ // id: 'status',
148
+ // label: <FormattedMessage defaultMessage="Status" description="Field name" />,
149
+ // component: 'text',
150
+ // path: 'metadata.status',
151
+ // },
152
+ ];
153
+
154
+ var defaultFields = [{
155
+ name: 'name',
156
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
157
+ id: "WX83V9",
630
158
  defaultMessage: [{
631
159
  "type": 0,
632
- "value": "Delete media"
160
+ "value": "File name"
633
161
  }]
634
- })), confirmation !== null ? /*#__PURE__*/React.createElement(components.Button, {
635
- theme: "primary",
636
- outline: true,
637
- onClick: onCancelDelete
638
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
639
- id: "Xb6r3F",
162
+ }),
163
+ type: 'text',
164
+ component: 'text'
165
+ }, {
166
+ name: 'description',
167
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
168
+ id: "ygNvmz",
640
169
  defaultMessage: [{
641
170
  "type": 0,
642
- "value": "Cancel"
171
+ "value": "Description"
643
172
  }]
644
- })) : null), deletedState === false ? /*#__PURE__*/React.createElement("p", {
645
- className: "pt-1 text-danger"
646
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
647
- id: "rqbRV2",
173
+ }),
174
+ type: 'text',
175
+ component: 'text'
176
+ }, {
177
+ id: 'info',
178
+ component: 'fields',
179
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
180
+ id: "3RT69u",
648
181
  defaultMessage: [{
649
182
  "type": 0,
650
- "value": "Sorry, this media could not be deleted."
183
+ "value": "Informations"
651
184
  }]
652
- })) : null)));
653
- }
654
- MediaMetadata.propTypes = propTypes$9;
655
- MediaMetadata.defaultProps = defaultProps$9;
656
-
657
- var useSearchFilters = function useSearchFilters(_ref) {
658
- var _ref$recent = _ref.recent,
659
- recent = _ref$recent === void 0 ? [] : _ref$recent,
660
- _ref$tags = _ref.tags,
661
- tags = _ref$tags === void 0 ? [] : _ref$tags,
662
- _ref$team = _ref.team,
663
- team = _ref$team === void 0 ? [] : _ref$team,
664
- _ref$sources = _ref.sources,
665
- upstreamSources = _ref$sources === void 0 ? [] : _ref$sources,
666
- _ref$withType = _ref.withType,
667
- withType = _ref$withType === void 0 ? false : _ref$withType,
668
- _ref$storyId = _ref.storyId,
669
- storyId = _ref$storyId === void 0 ? null : _ref$storyId;
670
- var sources = [].concat(_toConsumableArray(storyId !== null ? [{
671
- label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
672
- id: "eiaIIB",
673
- defaultMessage: [{
674
- "type": 0,
675
- "value": "This Micromag"
676
- }]
677
- }),
678
- value: "document-".concat(storyId)
679
- }] : []), [{
680
- label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
681
- id: "xAzv6g",
682
- defaultMessage: [{
683
- "type": 0,
684
- "value": "All sources"
685
- }]
686
- }),
687
- value: 'all'
688
- }], _toConsumableArray(team !== null && team.length > 0 ? [{
689
- label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
690
- id: "/62oe4",
691
- defaultMessage: [{
692
- "type": 0,
693
- "value": "My files"
694
- }]
695
- }),
696
- value: 'user'
697
- }] : []), _toConsumableArray(upstreamSources)).filter(function (it) {
698
- return it !== null;
699
- });
700
- var types = [{
701
- label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
702
- id: "2J05S0",
703
- defaultMessage: [{
704
- "type": 0,
705
- "value": "Images"
706
- }]
707
- }),
708
- value: 'image'
709
- }, {
710
- label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
711
- id: "QBlqW9",
712
- defaultMessage: [{
713
- "type": 0,
714
- "value": "Videos"
715
- }]
716
- }),
717
- value: 'video'
718
- }, {
719
- label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
720
- id: "PNMMo/",
721
- defaultMessage: [{
722
- "type": 0,
723
- "value": "Audios"
724
- }]
725
- }),
726
- value: 'audio'
727
- }];
728
- var usage = [{
185
+ }),
186
+ isList: true,
187
+ hideWithoutValue: true,
188
+ fields: [{
189
+ id: 'user',
729
190
  label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
730
- id: "tmfbUn",
191
+ id: "yByaBh",
731
192
  defaultMessage: [{
732
193
  "type": 0,
733
- "value": "Unused"
194
+ "value": "Added by"
734
195
  }]
735
196
  }),
736
- value: 'unused'
197
+ type: 'display',
198
+ display: 'avatar',
199
+ name: 'user',
200
+ horizontal: true
737
201
  }, {
202
+ id: 'created_at',
738
203
  label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
739
- id: "AQ8Aig",
204
+ id: "PN+75e",
740
205
  defaultMessage: [{
741
206
  "type": 0,
742
- "value": "Used"
207
+ "value": "Created at"
743
208
  }]
744
209
  }),
745
- value: 'used'
746
- }];
747
- var sections = [withType ? {
748
- value: 'types',
749
- label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
750
- id: "/ca7BX",
751
- defaultMessage: [{
752
- "type": 0,
753
- "value": "Types"
754
- }]
755
- }),
756
- items: types
757
- } : null, {
758
- value: 'recent',
210
+ type: 'display',
211
+ display: 'date',
212
+ name: 'created_at',
213
+ format: 'yyyy-MM-dd hh:ss',
214
+ horizontal: true
215
+ }]
216
+ }, {
217
+ id: 'technical',
218
+ component: 'fields',
219
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
220
+ id: "xKUOLG",
221
+ defaultMessage: [{
222
+ "type": 0,
223
+ "value": "Technical details"
224
+ }]
225
+ }),
226
+ isList: true,
227
+ hideWithoutValue: true,
228
+ fields: [{
229
+ id: 'format',
759
230
  label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
760
- id: "vYunz+",
231
+ id: "JuxiUN",
761
232
  defaultMessage: [{
762
233
  "type": 0,
763
- "value": "Recent searches"
234
+ "value": "Format"
764
235
  }]
765
236
  }),
766
- items: recent
237
+ type: 'display',
238
+ display: 'unit',
239
+ format: 'format',
240
+ name: 'format',
241
+ horizontal: true
767
242
  }, {
768
- value: 'tags',
243
+ id: 'dimensions',
769
244
  label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
770
- id: "/OM5UY",
245
+ id: "rmJBin",
771
246
  defaultMessage: [{
772
247
  "type": 0,
773
- "value": "Tags"
248
+ "value": "Dimensions"
774
249
  }]
775
250
  }),
776
- items: tags
251
+ type: 'display',
252
+ display: 'unit',
253
+ format: 'dimensions',
254
+ name: 'metadata',
255
+ horizontal: true
777
256
  }, {
778
- value: 'users',
257
+ id: 'size',
779
258
  label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
780
- id: "pfvDzR",
259
+ id: "g2CRt5",
781
260
  defaultMessage: [{
782
261
  "type": 0,
783
- "value": "Added by"
262
+ "value": "Size"
784
263
  }]
785
264
  }),
786
- items: team
265
+ type: 'display',
266
+ display: 'unit',
267
+ format: 'bytes',
268
+ name: 'metadata.size',
269
+ horizontal: true
787
270
  }, {
788
- value: 'usage',
271
+ id: 'duration',
789
272
  label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
790
- id: "mOSkbf",
273
+ id: "wU++NJ",
791
274
  defaultMessage: [{
792
275
  "type": 0,
793
- "value": "Usage"
276
+ "value": "Duration"
794
277
  }]
795
278
  }),
796
- items: usage
797
- }].filter(function (it) {
798
- return it !== null;
799
- });
800
- return {
801
- sources: sources,
802
- sections: sections,
803
- types: types
804
- };
805
- };
806
-
807
- // eslint-disable-next-line import/prefer-default-export
808
- var filtersValue = PropTypes.shape({
809
- search: PropTypes.string
810
- });
811
- PropTypes.shape({
812
- types: PropTypes.arrayOf(PropTypes.string),
813
- tags: PropTypes.arrayOf(PropTypes.string),
814
- users: PropTypes.arrayOf(PropTypes.string),
815
- usage: PropTypes.arrayOf(PropTypes.oneOf(['used', 'unused']))
279
+ type: 'display',
280
+ display: 'unit',
281
+ format: 'duration',
282
+ name: 'metadata.duration',
283
+ horizontal: true
284
+ }]
285
+ }];
286
+
287
+ /* eslint-disable react/jsx-props-no-spreading */
288
+ var RoutesContext = /*#__PURE__*/React.createContext(null);
289
+ var useRoutesContext = function useRoutesContext() {
290
+ return React.useContext(RoutesContext);
291
+ };
292
+ ({
293
+ children: PropTypes.node.isRequired,
294
+ routes: PropTypes.objectOf(PropTypes.string).isRequired,
295
+ basePath: PropTypes.string
816
296
  });
817
-
818
- var styles$8 = {"container":"micromag-media-gallery-forms-dropdown-section-container","dropdownToggle":"micromag-media-gallery-forms-dropdown-section-dropdownToggle","label":"micromag-media-gallery-forms-dropdown-section-label","dropdown":"micromag-media-gallery-forms-dropdown-section-dropdown"};
819
-
820
- var propTypes$8 = {
821
- value: PropTypes.string,
822
- items: PropTypes.arrayOf(PropTypes.shape({
823
- label: core.PropTypes.label,
824
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
825
- active: PropTypes.bool
826
- })),
827
- onChange: PropTypes.func,
828
- className: PropTypes.string
829
- };
830
- var defaultProps$8 = {
831
- value: null,
832
- items: null,
833
- onChange: null,
834
- className: null
835
- };
836
- function DropdownSection(_ref) {
837
- var value = _ref.value,
838
- items = _ref.items,
839
- onChange = _ref.onChange,
840
- className = _ref.className;
841
- var _useState = React.useState(false),
842
- _useState2 = _slicedToArray(_useState, 2),
843
- open = _useState2[0],
844
- setOpen = _useState2[1];
845
- var currentItem = items.find(function (i) {
846
- return i.value === value;
847
- });
848
- var onOpen = React.useCallback(function () {
849
- setOpen(!open);
850
- }, [open, setOpen]);
851
- var onBlur = React.useCallback(function () {
852
- // Work around the event call order
853
- setTimeout(function () {
854
- setOpen(false);
855
- }, 300);
856
- }, [setOpen]);
857
- var onItemClick = React.useCallback(function (e) {
858
- var val = e.target.dataset.value || null;
859
- setOpen(false);
860
- onChange(val);
861
- }, [setOpen]);
862
- return items !== null && items.length > 1 ? /*#__PURE__*/React.createElement("div", {
863
- className: classNames([styles$8.container, 'dropdown', _defineProperty({}, className, className !== null)])
864
- }, /*#__PURE__*/React.createElement("span", {
865
- className: styles$8.label
866
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
867
- id: "9ZdD+Q",
868
- defaultMessage: [{
869
- "type": 0,
870
- "value": "Library for"
871
- }]
872
- })), /*#__PURE__*/React.createElement("button", {
873
- className: classNames([styles$8.dropdownToggle, 'dropdown-toggle', {
874
- open: open === true
875
- }]),
876
- type: "button",
877
- onClick: onOpen,
878
- onBlur: onBlur
879
- }, (currentItem ? currentItem.label : null) || /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
880
- id: "15GBmG",
881
- defaultMessage: [{
882
- "type": 0,
883
- "value": "All"
884
- }]
885
- })), /*#__PURE__*/React.createElement("div", {
886
- className: classNames([styles$8.dropdown, 'dropdown-menu', {
887
- show: open === true
888
- }])
889
- }, items.map(function (_ref3) {
890
- var label = _ref3.label,
891
- itemValue = _ref3.value;
892
- var itemClassNames = classNames(['dropdown-item', {
893
- active: itemValue === value
894
- }]);
895
- return /*#__PURE__*/React.createElement("button", {
896
- className: itemClassNames,
897
- type: "button",
898
- key: "drop-".concat(itemValue),
899
- onClick: onItemClick,
900
- "data-value": itemValue
901
- }, label);
902
- }))) : null;
297
+ var compilers = {};
298
+ function generatePath(fullPath, data) {
299
+ var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
300
+ var fullUrlMatches = fullPath.match(/^(https?:\/\/)/);
301
+ if (typeof compilers[fullPath] === 'undefined') {
302
+ compilers[fullPath] = pathToRegexp.compile(fullPath.replace(/^(https?:\/\/)/, ''), opts);
303
+ }
304
+ var compiler = compilers[fullPath];
305
+ return fullUrlMatches !== null ? "".concat(fullUrlMatches[1]).concat(compiler(data)) : compiler(data);
903
306
  }
904
- DropdownSection.propTypes = propTypes$8;
905
- DropdownSection.defaultProps = defaultProps$8;
906
-
907
- var styles$7 = {"container":"micromag-media-gallery-forms-search-container","input":"micromag-media-gallery-forms-search-input","active":"micromag-media-gallery-forms-search-active"};
908
-
909
- var propTypes$7 = {
910
- value: PropTypes.string,
911
- loading: PropTypes.bool,
912
- onChange: PropTypes.func,
913
- onFocus: PropTypes.func,
914
- onBlur: PropTypes.func,
915
- onClickIcon: PropTypes.func,
916
- className: PropTypes.string
917
- };
918
- var defaultProps$7 = {
919
- value: null,
920
- loading: false,
921
- onChange: null,
922
- onFocus: null,
923
- onBlur: null,
924
- onClickIcon: null,
925
- className: null
926
- };
927
- var Search = function Search(_ref) {
928
- var value = _ref.value,
929
- loading = _ref.loading,
930
- onChange = _ref.onChange,
931
- onFocus = _ref.onFocus,
932
- onBlur = _ref.onBlur,
933
- onClickIcon = _ref.onClickIcon,
934
- className = _ref.className;
935
- var intl = reactIntl.useIntl();
936
- var onSearchChange = React.useCallback(function (e) {
937
- var newValue = e.currentTarget.value.length > 0 ? e.currentTarget.value : null;
938
- if (onChange !== null) {
939
- onChange(newValue);
940
- }
941
- }, [onChange]);
942
- React.useCallback(function () {
943
- if (onChange !== null) {
944
- onChange('');
945
- }
946
- }, [onChange]);
947
- var onClickSearchIcon = React.useCallback(function () {
948
- if (onClickIcon !== null) {
949
- onClickIcon();
950
- }
951
- }, [onClickIcon]);
952
- return /*#__PURE__*/React.createElement("form", {
953
- method: "post",
954
- className: classNames([styles$7.container, 'w-100', 'border', 'border-dark', 'rounded', _defineProperty({}, className, className !== null)]),
955
- onSubmit: function onSubmit(e) {
956
- return e.preventDefault();
957
- }
958
- }, /*#__PURE__*/React.createElement("div", {
959
- className: "input-group w-100"
960
- }, /*#__PURE__*/React.createElement("button", {
961
- type: "button",
962
- className: "btn",
963
- onClick: onClickSearchIcon
964
- }, /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
965
- icon: loading ? faSpinner.faSpinner : faSearch.faSearch,
966
- spin: loading
967
- })), /*#__PURE__*/React.createElement("input", {
968
- className: classNames([styles$7.input, 'form-control', {
969
- 'bg-light': !!value,
970
- 'text-dark': value
971
- }]),
972
- type: "text",
973
- value: value || '',
974
- placeholder: intl.formatMessage({
975
- id: "n/SxMs",
976
- defaultMessage: [{
977
- "type": 0,
978
- "value": "Search medias"
979
- }]
980
- }),
981
- onChange: onSearchChange,
982
- onFocus: onFocus,
983
- onBlur: onBlur
984
- }), null));
985
- };
986
- Search.propTypes = propTypes$7;
987
- Search.defaultProps = defaultProps$7;
988
- var SearchForm = Search;
989
-
990
- var styles$6 = {"container":"micromag-media-gallery-forms-tag-dropdown-container","select":"micromag-media-gallery-forms-tag-dropdown-select"};
991
-
992
- var propTypes$6 = {
993
- tags: PropTypes.arrayOf(PropTypes.shape({
994
- label: PropTypes.string,
995
- value: PropTypes.oneOf([PropTypes.string, PropTypes.node]),
996
- active: PropTypes.bool
997
- })),
998
- parent: PropTypes.string,
999
- onChange: PropTypes.func,
1000
- className: PropTypes.string
1001
- };
1002
- var defaultProps$6 = {
1003
- tags: null,
1004
- parent: null,
1005
- onChange: null,
1006
- className: null
1007
- };
1008
- var TagDropdown = function TagDropdown(_ref) {
1009
- var tags = _ref.tags,
1010
- parent = _ref.parent,
1011
- onChange = _ref.onChange,
1012
- className = _ref.className;
1013
- var onItemChange = React.useCallback(function (e) {
1014
- var val = e.target.dataset.value || null;
1015
- onChange(val, parent);
1016
- }, [onChange, parent]);
1017
- return /*#__PURE__*/React.createElement("div", {
1018
- className: classNames([styles$6.container, 'd-flex', 'mt-1', _defineProperty({}, className, className !== null)])
1019
- }, /*#__PURE__*/React.createElement("select", {
1020
- className: classNames(['form-select', styles$6.select])
1021
- }, tags !== null ? tags.map(function (_ref3) {
1022
- var label = _ref3.label,
1023
- value = _ref3.value,
1024
- active = _ref3.active;
1025
- var itemClassNames = classNames([styles$6.tag, 'fs-6', {
1026
- 'btn-primary': active === true
1027
- }]);
1028
- return /*#__PURE__*/React.createElement("option", {
1029
- className: itemClassNames,
1030
- type: "button",
1031
- key: "option-".concat(value),
1032
- onClick: onItemChange,
1033
- "data-value": value,
1034
- value: value
1035
- }, label);
1036
- }) : null));
1037
- };
1038
- TagDropdown.propTypes = propTypes$6;
1039
- TagDropdown.defaultProps = defaultProps$6;
1040
- var TagDropdown$1 = TagDropdown;
1041
-
1042
- var styles$5 = {"container":"micromag-media-gallery-forms-tag-section-container","tag":"micromag-media-gallery-forms-tag-section-tag"};
1043
-
1044
- var propTypes$5 = {
1045
- tags: PropTypes.arrayOf(PropTypes.shape({
1046
- label: PropTypes.string,
1047
- value: PropTypes.oneOf([PropTypes.string, PropTypes.node]),
1048
- active: PropTypes.bool
1049
- })),
1050
- parent: PropTypes.string,
1051
- onChange: PropTypes.func,
1052
- className: PropTypes.string
1053
- };
1054
- var defaultProps$5 = {
1055
- tags: null,
1056
- parent: null,
1057
- onChange: null,
1058
- className: null
1059
- };
1060
- var TagSection = function TagSection(_ref) {
1061
- var tags = _ref.tags,
1062
- parent = _ref.parent,
1063
- onChange = _ref.onChange,
1064
- className = _ref.className;
1065
- var onItemChange = React.useCallback(function (e) {
1066
- var val = e.target.dataset.value || null;
1067
- onChange(val, parent);
1068
- }, [onChange, parent]);
1069
- return /*#__PURE__*/React.createElement("div", {
1070
- className: classNames([styles$5.container, 'd-flex', 'mt-1', _defineProperty({}, className, className !== null)])
1071
- }, tags !== null ? tags.map(function (_ref3) {
1072
- var label = _ref3.label,
1073
- value = _ref3.value,
1074
- active = _ref3.active;
1075
- var itemClassNames = classNames([styles$5.tag, 'btn', 'btn-sm', 'mb-1', 'me-1', 'p-1', 'btn-secondary', 'text-truncate', {
1076
- 'btn-primary': active === true
1077
- // 'btn-outline-light': active === false,
1078
- }]);
1079
- return /*#__PURE__*/React.createElement("button", {
1080
- className: itemClassNames,
1081
- type: "button",
1082
- key: "tag-".concat(value),
1083
- onClick: onItemChange,
1084
- "data-value": value
1085
- }, label);
1086
- }) : null);
1087
- };
1088
- TagSection.propTypes = propTypes$5;
1089
- TagSection.defaultProps = defaultProps$5;
1090
- var TagSection$1 = TagSection;
1091
-
1092
- var styles$4 = {"container":"micromag-media-gallery-forms-search-filters-container","closeBtn":"micromag-media-gallery-forms-search-filters-closeBtn","section":"micromag-media-gallery-forms-search-filters-section","title":"micromag-media-gallery-forms-search-filters-title","tags":"micromag-media-gallery-forms-search-filters-tags"};
1093
-
1094
- var propTypes$4 = {
1095
- filters: PropTypes.object,
1096
- // eslint-disable-line
1097
- sections: PropTypes.arrayOf(PropTypes.shape({})),
1098
- onChange: PropTypes.func,
1099
- onClose: PropTypes.func,
1100
- className: PropTypes.string
1101
- };
1102
- var defaultProps$4 = {
1103
- filters: null,
1104
- sections: [],
1105
- onChange: null,
1106
- onClose: null,
1107
- className: null
1108
- };
1109
- var SearchFilters = function SearchFilters(_ref) {
1110
- var filters = _ref.filters,
1111
- sections = _ref.sections,
1112
- onChange = _ref.onChange,
1113
- onClose = _ref.onClose,
1114
- className = _ref.className;
1115
- var intl = reactIntl.useIntl();
1116
- var getActive = React.useCallback(function (items, sectionFilters) {
1117
- return items !== null ? items.map(function (it) {
1118
- return _objectSpread(_objectSpread({}, it), {}, {
1119
- active: sectionFilters ? !!sectionFilters.find(function (f) {
1120
- return f === it.value;
1121
- }) : false
1122
- });
1123
- }) : [];
1124
- }, []);
1125
- var activeSections = React.useMemo(function () {
1126
- return sections.map(function (section) {
1127
- return _objectSpread(_objectSpread({}, section), {}, {
1128
- items: getActive(section.items, filters[section.value])
1129
- });
1130
- });
1131
- }, [getActive, sections, filters]);
1132
- var onSectionChange = React.useCallback(function (data, section) {
1133
- var val = filters[section] ? filters[section] : [];
1134
- var found = !!val.find(function (f) {
1135
- return f === data;
1136
- });
1137
- if (found) {
1138
- onChange(section, val.filter(function (f) {
1139
- return f !== data;
1140
- }));
1141
- } else if (data) {
1142
- if (section === 'recent') {
1143
- onChange('search', data);
1144
- } else if (section === 'usage') {
1145
- onChange(section, [data]);
1146
- } else {
1147
- onChange(section, [].concat(_toConsumableArray(val), [data]));
1148
- }
307
+ var useUrlGeneratorPathToRepexp = function useUrlGeneratorPathToRepexp() {
308
+ var _ref2 = useRoutesContext() || {},
309
+ _ref2$routes = _ref2.routes,
310
+ routes = _ref2$routes === void 0 ? null : _ref2$routes,
311
+ _ref2$basePath = _ref2.basePath,
312
+ basePath = _ref2$basePath === void 0 ? null : _ref2$basePath;
313
+ var urlGenerator = React.useCallback(function (key, data, opts) {
314
+ var path = routes !== null ? routes[key] || null : null;
315
+ if (path === null) {
316
+ return null;
1149
317
  }
1150
- }, [filters, onChange]);
1151
- return /*#__PURE__*/React.createElement("div", {
1152
- className: classNames([styles$4.container, 'flex-nowrap', 'mt-1', _defineProperty({}, className, className !== null)])
1153
- }, activeSections.length > 0 ? /*#__PURE__*/React.createElement("div", {
1154
- className: classNames(['bg-dark', 'flex-nowrap', 'text-dark', 'py-1', 'px-3', 'rounded'])
1155
- }, /*#__PURE__*/React.createElement(components.Button, {
1156
- className: classNames([styles$4.closeBtn, 'py-1', 'px-1', 'text-light']),
1157
- icon: /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
1158
- icon: faTimes.faTimes
1159
- }),
1160
- onClick: onClose,
1161
- title: intl.formatMessage({
1162
- id: "yCXMzz",
318
+ var url = generatePath(path, data, opts);
319
+ return basePath !== null ? "".concat(basePath.replace(/\/$/, ''), "/").concat(url.replace(/^\//, '')) : url;
320
+ }, [routes, basePath]);
321
+ return urlGenerator;
322
+ };
323
+ var useUrlGeneratorPathToRegexp = useUrlGeneratorPathToRepexp;
324
+
325
+ function filters() {
326
+ var route = useUrlGeneratorPathToRegexp();
327
+ return [{
328
+ id: 'search',
329
+ component: 'search',
330
+ name: 'search'
331
+ }, {
332
+ id: 'types',
333
+ component: 'select',
334
+ name: 'types',
335
+ placeholder: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
336
+ id: "9/t5wK",
1163
337
  defaultMessage: [{
1164
338
  "type": 0,
1165
- "value": "Close"
339
+ "value": "Type"
1166
340
  }]
1167
- })
1168
- }), activeSections.map(function (_ref3) {
1169
- var value = _ref3.value,
1170
- label = _ref3.label,
1171
- items = _ref3.items;
1172
- return items.length > 0 ? /*#__PURE__*/React.createElement("div", {
1173
- key: "filter-".concat(value),
1174
- className: classNames([styles$4.section, 'py-2'])
1175
- }, /*#__PURE__*/React.createElement("p", {
1176
- className: classNames([styles$4.title, 'm-0'])
1177
- }, label), value === 'tags' || value === 'recent' || value === 'users' ? /*#__PURE__*/React.createElement(TagDropdown$1, {
1178
- className: classNames([styles$4.tags]),
1179
- tags: items,
1180
- parent: value,
1181
- onChange: onSectionChange
1182
- }) : /*#__PURE__*/React.createElement(TagSection$1, {
1183
- className: classNames([styles$4.tags]),
1184
- tags: items,
1185
- parent: value,
1186
- onChange: onSectionChange
1187
- })) : null;
1188
- })) : null);
1189
- };
1190
- SearchFilters.propTypes = propTypes$4;
1191
- SearchFilters.defaultProps = defaultProps$4;
1192
- var SearchFilters$1 = SearchFilters;
1193
-
1194
- var styles$3 = {"container":"micromag-media-gallery-buttons-close-container"};
1195
-
1196
- var _excluded = ["className"];
1197
- var propTypes$3 = {
1198
- className: PropTypes.string
1199
- };
1200
- var defaultProps$3 = {
1201
- className: null
1202
- };
1203
- var CloseButton = function CloseButton(_ref) {
1204
- var className = _ref.className,
1205
- props = _objectWithoutProperties(_ref, _excluded);
1206
- return /*#__PURE__*/React.createElement(components.Button, Object.assign({
1207
- className: classNames([styles$3.container, _defineProperty({}, className, className !== null)]),
1208
- withoutStyle: true,
1209
- icon: /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
1210
- icon: faTimes.faTimes,
1211
- className: styles$3.icon
1212
341
  }),
1213
- iconPosition: "right"
1214
- }, props));
1215
- };
1216
- CloseButton.propTypes = propTypes$3;
1217
- CloseButton.defaultProps = defaultProps$3;
1218
- var CloseButton$1 = CloseButton;
1219
-
1220
- var styles$2 = {"container":"micromag-media-gallery-partials-active-filters-container","heading":"micromag-media-gallery-partials-active-filters-heading","title":"micromag-media-gallery-partials-active-filters-title","resetButton":"micromag-media-gallery-partials-active-filters-resetButton","activeTag":"micromag-media-gallery-partials-active-filters-activeTag"};
1221
-
1222
- var propTypes$2 = {
1223
- filters: PropTypes.shape({
1224
- types: PropTypes.arrayOf(PropTypes.string),
1225
- tags: PropTypes.arrayOf(PropTypes.string),
1226
- users: PropTypes.arrayOf(PropTypes.string),
1227
- usage: PropTypes.arrayOf(PropTypes.oneOf(['used', 'unused']))
1228
- }),
1229
- onChange: PropTypes.func,
1230
- onReset: PropTypes.func,
1231
- sections: PropTypes.arrayOf(PropTypes.shape({})),
1232
- className: PropTypes.string
1233
- };
1234
- var defaultProps$2 = {
1235
- filters: null,
1236
- onChange: null,
1237
- onReset: null,
1238
- sections: [],
1239
- className: null
1240
- };
1241
- function ActiveFilters(_ref) {
1242
- var filters = _ref.filters,
1243
- onChange = _ref.onChange,
1244
- onReset = _ref.onReset,
1245
- sections = _ref.sections,
1246
- className = _ref.className;
1247
- var handleReset = React.useCallback(function () {
1248
- if (onReset !== null) {
1249
- onReset();
1250
- }
1251
- }, [onReset]);
1252
- var removeFilter = React.useCallback(function (key, activeValue) {
1253
- var newFilterValue = filters[key].filter(function (it) {
1254
- return it !== activeValue;
1255
- });
1256
- var newValue = newFilterValue.length > 0 ? newFilterValue : null;
1257
- if (onChange !== null) {
1258
- onChange(key, newValue);
1259
- }
1260
- }, [onChange, filters]);
1261
- var hasValue = Object.keys(filters).reduce(function (oneHasValue, key) {
1262
- return oneHasValue || filters[key] !== null;
1263
- }, false);
1264
- return /*#__PURE__*/React.createElement("div", {
1265
- className: classNames(['w-100', styles$2.container, _defineProperty({}, className, className)])
1266
- }, hasValue ? /*#__PURE__*/React.createElement("div", {
1267
- className: styles$2.heading
1268
- }, /*#__PURE__*/React.createElement("div", {
1269
- className: styles$2.title
1270
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1271
- id: "t2cFdl",
1272
- defaultMessage: [{
1273
- "type": 0,
1274
- "value": "Active filters"
1275
- }]
1276
- })), /*#__PURE__*/React.createElement(CloseButton$1, {
1277
- className: styles$2.resetButton,
1278
- onClick: handleReset
1279
- }, /*#__PURE__*/React.createElement("u", null, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1280
- id: "/T/UDH",
1281
- defaultMessage: [{
1282
- "type": 0,
1283
- "value": "Remove all"
1284
- }]
1285
- })))) : null, filters !== null ? Object.keys(filters).map(function (key) {
1286
- var section = sections.find(function (s) {
1287
- return s.value === key;
1288
- });
1289
- return section && filters[key] !== null ? filters[key].map(function (activeValue) {
1290
- var current = section.items.find(function (s) {
1291
- return s.value === activeValue;
1292
- });
1293
- var _ref3 = current || {},
1294
- _ref3$label = _ref3.label,
1295
- label = _ref3$label === void 0 ? '' : _ref3$label;
1296
- return /*#__PURE__*/React.createElement(components.Button, {
1297
- className: styles$2.activeTag,
1298
- key: "filter-button-".concat(activeValue),
1299
- type: "submit",
1300
- size: "sm",
1301
- label: /*#__PURE__*/React.createElement("span", null, section.label, " : ", label),
1302
- theme: "secondary",
1303
- icon: /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
1304
- icon: faTimes.faTimes
1305
- }),
1306
- iconPosition: "right",
1307
- onClick: function onClick() {
1308
- return removeFilter(key, activeValue);
1309
- }
1310
- });
1311
- }) : null;
1312
- }) : null);
1313
- }
1314
- ActiveFilters.propTypes = propTypes$2;
1315
- ActiveFilters.defaultProps = defaultProps$2;
1316
-
1317
- var styles$1 = {"container":"micromag-media-gallery-partials-navbar-container","inner":"micromag-media-gallery-partials-navbar-inner","mediaPreview":"micromag-media-gallery-partials-navbar-mediaPreview","thumbnail":"micromag-media-gallery-partials-navbar-thumbnail","mediaLabel":"micromag-media-gallery-partials-navbar-mediaLabel"};
1318
-
1319
- var propTypes$1 = {
1320
- types: PropTypes.arrayOf(PropTypes.string),
1321
- filters: filtersValue,
1322
- media: core.PropTypes.media,
1323
- selectedMedia: core.PropTypes.media,
1324
- storyId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
1325
- tags: core.PropTypes.tags,
1326
- authors: PropTypes.arrayOf(PropTypes.shape({
1327
- name: PropTypes.string
1328
- })),
1329
- loading: PropTypes.bool,
1330
- withoutSource: PropTypes.bool,
1331
- withoutType: PropTypes.bool,
1332
- onClickAdd: PropTypes.func,
1333
- onClickItem: PropTypes.func,
1334
- onClickItemInfo: PropTypes.func,
1335
- onClickClear: PropTypes.func,
1336
- // TODO: still needed?
1337
- onFocusSearch: PropTypes.func,
1338
- onFiltersChange: PropTypes.func,
1339
- onClickBack: PropTypes.func,
1340
- className: PropTypes.string
1341
- };
1342
- var defaultProps$1 = {
1343
- types: null,
1344
- filters: null,
1345
- media: null,
1346
- selectedMedia: null,
1347
- storyId: null,
1348
- tags: [],
1349
- authors: [],
1350
- loading: false,
1351
- withoutSource: false,
1352
- withoutType: true,
1353
- onClickAdd: null,
1354
- onClickItem: null,
1355
- onClickItemInfo: null,
1356
- onClickClear: null,
1357
- onFocusSearch: null,
1358
- onFiltersChange: null,
1359
- onClickBack: null,
1360
- className: null
1361
- };
1362
- function Navbar(_ref) {
1363
- var types = _ref.types,
1364
- filters = _ref.filters,
1365
- media = _ref.media,
1366
- selectedMedia = _ref.selectedMedia,
1367
- storyId = _ref.storyId,
1368
- tags = _ref.tags,
1369
- authors = _ref.authors,
1370
- loading = _ref.loading,
1371
- withoutSource = _ref.withoutSource,
1372
- withoutType = _ref.withoutType,
1373
- className = _ref.className,
1374
- onClickAdd = _ref.onClickAdd,
1375
- onClickItem = _ref.onClickItem,
1376
- onClickItemInfo = _ref.onClickItemInfo,
1377
- onClickClear = _ref.onClickClear,
1378
- onFocusSearch = _ref.onFocusSearch,
1379
- onFiltersChange = _ref.onFiltersChange,
1380
- onClickBack = _ref.onClickBack;
1381
- var intl = reactIntl.useIntl();
1382
- var throttle = React.useRef(null);
1383
- var _useState = React.useState(false),
1384
- _useState2 = _slicedToArray(_useState, 2),
1385
- open = _useState2[0],
1386
- setOpen = _useState2[1];
1387
-
1388
- // TODO: get data from api for real testing
1389
-
1390
- var _useMediasRecentSearc = data.useMediasRecentSearches(),
1391
- getSearches = _useMediasRecentSearc.getSearches,
1392
- createSearch = _useMediasRecentSearc.createSearch;
1393
- var recent = React.useMemo(function () {
1394
- return getSearches();
1395
- }, [getSearches]);
1396
- var _useSearchFilters = useSearchFilters({
1397
- recent: recent.map(function (val) {
1398
- return {
1399
- value: val,
1400
- label: val
1401
- };
342
+ options: [{
343
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
344
+ id: "yHAmDD",
345
+ defaultMessage: [{
346
+ "type": 0,
347
+ "value": "Image"
348
+ }]
1402
349
  }),
1403
- tags: tags !== null ? tags.map(function (t) {
1404
- return {
1405
- value: t.name,
1406
- label: t.name
1407
- };
1408
- }) : [],
1409
- team: authors || [],
1410
- withType: !withoutType,
1411
- storyId: storyId
1412
- }),
1413
- sources = _useSearchFilters.sources,
1414
- sections = _useSearchFilters.sections;
1415
- var searchValue = filters !== null ? filters.search || null : null;
1416
- var hasFilter = filters !== null ? Object.keys(filters).reduce(function (acc, val) {
1417
- if (val !== 'type' && val !== 'search' && val !== 'source' && filters[val] !== null && filters[val].length > 0) {
1418
- return true;
1419
- }
1420
- return acc;
1421
- }, false) : false;
1422
- var onFilterChange = React.useCallback(function (type, value) {
1423
- var isOpen = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1424
- var newFiltersValue = _objectSpread(_objectSpread({}, filters), {}, _defineProperty({}, type, value));
1425
- if (onFiltersChange !== null) {
1426
- onFiltersChange(newFiltersValue);
1427
- }
1428
- setOpen(isOpen);
1429
- }, [filters, onFiltersChange, setOpen]);
1430
- var onFiltersReset = React.useCallback(function () {
1431
- onFiltersChange({
1432
- type: filters.type || null,
1433
- search: filters.search || null,
1434
- source: filters.source || null
1435
- });
1436
- setOpen(false);
1437
- }, [filters, onFiltersChange]);
1438
- var onSearchChange = React.useCallback(function (value) {
1439
- if (throttle.current !== null) {
1440
- clearTimeout(throttle.current);
1441
- }
1442
- throttle.current = setTimeout(function () {
1443
- createSearch(value);
1444
- throttle.current = null;
1445
- }, 5000);
1446
- onFilterChange('search', value, !!value);
1447
- setOpen(false);
1448
- }, [onFilterChange, createSearch, setOpen, throttle]);
1449
- var onSourceChange = React.useCallback(function (value) {
1450
- onFilterChange('source', value);
1451
- }, [onFilterChange]);
1452
- var onSearchFocus = React.useCallback(function () {
1453
- if (onFocusSearch !== null) {
1454
- onFocusSearch();
1455
- }
1456
- }, [onFocusSearch]);
1457
- var onCloseFilters = React.useCallback(function () {
1458
- setOpen(false);
1459
- }, [setOpen]);
1460
- var onToggleMenu = React.useCallback(function () {
1461
- setOpen(!open);
1462
- }, [open, setOpen]);
1463
- var onClickRemove = React.useCallback(function () {
1464
- if (onClickClear !== null) {
1465
- onClickClear();
1466
- } else if (onClickItem !== null) {
1467
- onClickItem(null);
1468
- }
1469
- }, [onClickClear, onClickItem]);
1470
- var uploadMessage = React.useMemo(function () {
1471
- var message = /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1472
- id: "3Ap0C1",
350
+ value: 'image'
351
+ }, {
352
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
353
+ id: "xSERPA",
354
+ defaultMessage: [{
355
+ "type": 0,
356
+ "value": "Video"
357
+ }]
358
+ }),
359
+ value: 'video'
360
+ }, {
361
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
362
+ id: "yQRtgx",
363
+ defaultMessage: [{
364
+ "type": 0,
365
+ "value": "Audio"
366
+ }]
367
+ }),
368
+ value: 'audio'
369
+ }],
370
+ multiple: true
371
+ }, {
372
+ id: 'source',
373
+ component: 'select',
374
+ placeholder: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
375
+ id: "Pc4AD8",
1473
376
  defaultMessage: [{
1474
377
  "type": 0,
1475
- "value": "Upload a media"
378
+ "value": "Source"
1476
379
  }]
1477
- });
1478
- if (types !== null) {
1479
- if (types.indexOf('video') !== -1 && types.indexOf('image') !== -1) {
1480
- message = /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1481
- id: "KK5teQ",
1482
- defaultMessage: [{
1483
- "type": 0,
1484
- "value": "Upload a visual file"
1485
- }]
1486
- });
1487
- } else if (types.indexOf('video') !== -1) {
1488
- message = /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1489
- id: "WeD4nB",
1490
- defaultMessage: [{
1491
- "type": 0,
1492
- "value": "Upload a video file"
1493
- }]
1494
- });
1495
- } else if (types.indexOf('image') !== -1) {
1496
- message = /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1497
- id: "KdAKt7",
1498
- defaultMessage: [{
1499
- "type": 0,
1500
- "value": "Upload an image file"
1501
- }]
1502
- });
1503
- } else if (types.indexOf('audio') !== -1) {
1504
- message = /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1505
- id: "6W4St0",
1506
- defaultMessage: [{
1507
- "type": 0,
1508
- "value": "Upload an audio file"
1509
- }]
1510
- });
1511
- } else if (types.indexOf('subtitle') !== -1) {
1512
- message = /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1513
- id: "BAfC6s",
1514
- defaultMessage: [{
1515
- "type": 0,
1516
- "value": "Upload a closed captions file"
1517
- }]
1518
- });
1519
- }
1520
- }
1521
- return message;
1522
- }, [types]);
1523
- return /*#__PURE__*/React.createElement("nav", {
1524
- className: classNames([styles$1.container, 'navbar', _defineProperty({}, className, className !== null)])
1525
- }, /*#__PURE__*/React.createElement("div", {
1526
- className: classNames([styles$1.inner])
1527
- }, media === null ? /*#__PURE__*/React.createElement("div", {
1528
- className: classNames(['list-group-item rounded w-100 mw-100 navbar-text mb-2', {
1529
- 'border border-primary bg-dark py-2 px-2': selectedMedia !== null
1530
- }])
1531
- }, selectedMedia !== null ? /*#__PURE__*/React.createElement("div", {
1532
- className: ""
1533
- }, /*#__PURE__*/React.createElement("div", {
1534
- className: "d-flex align-items-center mb-2 overflow-hidden"
1535
- }, /*#__PURE__*/React.createElement(components.Media, {
1536
- className: styles$1.mediaPreview,
1537
- thumbnailClassName: styles$1.thumbnail,
1538
- thumbnail: selectedMedia === null || selectedMedia === void 0 ? void 0 : selectedMedia.thumbnail_url,
1539
- thumbnailAlign: "center"
1540
- }), /*#__PURE__*/React.createElement("span", {
1541
- className: classNames([styles$1.mediaLabel, 'd-inline-block', 'text-break', 'mx-1', 'me-2'])
1542
- }, selectedMedia.name || /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1543
- id: "fVqgfl",
1544
- defaultMessage: [{
1545
- "type": 0,
1546
- "value": "[no title]"
1547
- }]
1548
- }))), /*#__PURE__*/React.createElement("div", {
1549
- className: "d-flex w-100 align-content-center justify-content-between"
1550
- }, /*#__PURE__*/React.createElement(components.Button, {
1551
- onClick: function onClick() {
1552
- return onClickItemInfo(selectedMedia);
1553
- },
1554
- theme: "secondary",
1555
- size: "sm",
1556
- iconPosition: "right",
1557
- icon: /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
1558
- icon: faInfoCircle.faInfoCircle
1559
380
  }),
1560
- outline: true
1561
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1562
- id: "iCf/MP",
1563
- defaultMessage: [{
1564
- "type": 0,
1565
- "value": "Edit"
381
+ name: 'source',
382
+ options: [{
383
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
384
+ id: "DYxnlo",
385
+ defaultMessage: [{
386
+ "type": 0,
387
+ "value": "All"
388
+ }]
389
+ }),
390
+ value: 'all'
391
+ }, {
392
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
393
+ id: "AgH3AR",
394
+ defaultMessage: [{
395
+ "type": 0,
396
+ "value": "This micromag"
397
+ }]
398
+ }),
399
+ value: 'document-1'
1566
400
  }]
1567
- })), /*#__PURE__*/React.createElement(components.Button, {
1568
- theme: "secondary",
1569
- size: "sm",
1570
- outline: true,
1571
- iconPosition: "right",
1572
- icon: /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
1573
- icon: faTimes.faTimes
1574
- }),
1575
- onClick: onClickRemove,
1576
- title: intl.formatMessage({
1577
- id: "UG3SXh",
401
+ }, {
402
+ id: 'authors',
403
+ component: 'select',
404
+ name: 'authors',
405
+ placeholder: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
406
+ id: "7oXkoj",
1578
407
  defaultMessage: [{
1579
408
  "type": 0,
1580
- "value": "Remove"
409
+ "value": "Authors"
1581
410
  }]
1582
- })
1583
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1584
- id: "8TbpT7",
1585
- defaultMessage: [{
1586
- "type": 0,
1587
- "value": "Remove"
1588
- }]
1589
- })))) : /*#__PURE__*/React.createElement(components.Button, {
1590
- className: "w-100",
1591
- theme: "primary",
1592
- icon: /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
1593
- icon: faPlus.faPlus
1594
411
  }),
1595
- onClick: onClickAdd,
1596
- title: intl.formatMessage({
1597
- id: "Tt4jN1",
412
+ requestUrl: route('medias.authors') || '/api/medias/authors',
413
+ itemLabelPath: 'name',
414
+ itemValuePath: 'id',
415
+ multiple: true
416
+ }, {
417
+ id: 'tags',
418
+ component: 'select',
419
+ name: 'tags',
420
+ placeholder: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
421
+ id: "9mXl24",
1598
422
  defaultMessage: [{
1599
423
  "type": 0,
1600
- "value": "Add"
424
+ "value": "Tags"
1601
425
  }]
1602
- })
1603
- }, /*#__PURE__*/React.createElement("span", {
1604
- className: "ps-2"
1605
- }, uploadMessage))) : null, !withoutSource && media === null && sources !== null && sources.length > 1 ? /*#__PURE__*/React.createElement("div", {
1606
- className: "mb-2 d-flex w-100 align-items-center flex-nowrap"
1607
- }, /*#__PURE__*/React.createElement(DropdownSection, {
1608
- items: sources,
1609
- value: filters.source || null,
1610
- onChange: onSourceChange
1611
- })) : null, media !== null ? /*#__PURE__*/React.createElement("div", {
1612
- className: "w-100 d-flex flex-nowrap justify-content-between"
1613
- }, /*#__PURE__*/React.createElement("form", {
1614
- className: classNames(['d-flex', 'me-2'])
1615
- }, /*#__PURE__*/React.createElement(components.Button, {
1616
- theme: "secondary",
1617
- outline: true,
1618
- size: "sm",
1619
- icon: /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
1620
- icon: faChevronLeft.faChevronLeft
1621
426
  }),
1622
- onClick: onClickBack
1623
- })), /*#__PURE__*/React.createElement("strong", {
1624
- className: "navbar-text me-auto w-100 text-truncate text-light"
1625
- }, media !== null ? media.name : null)) : null, media === null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1626
- className: "d-flex w-100 flex-nowrap justify-content-between"
1627
- }, /*#__PURE__*/React.createElement(SearchForm, {
1628
- value: searchValue,
1629
- onChange: onSearchChange,
1630
- onFocus: onSearchFocus,
1631
- onClickIcon: onToggleMenu,
1632
- loading: loading,
1633
- className: classNames(['d-flex'])
1634
- })), open ? /*#__PURE__*/React.createElement("div", {
1635
- className: "d-flex w-100 my-1 flex-nowrap justify-content-between"
1636
- }, /*#__PURE__*/React.createElement(SearchFilters$1, {
1637
- filters: filters,
1638
- sections: sections,
1639
- onChange: onFilterChange,
1640
- onClose: onCloseFilters
1641
- })) : null) : null, hasFilter && !open && media === null ? /*#__PURE__*/React.createElement("div", {
1642
- className: "list-group-item py-2 px-2 d-flex w-100 my-2 flex-nowrap justify-content-between"
1643
- }, /*#__PURE__*/React.createElement(ActiveFilters, {
1644
- filters: filters,
1645
- sections: sections,
1646
- onChange: onFilterChange,
1647
- onReset: onFiltersReset
1648
- })) : null));
427
+ requestUrl: route('medias.tags') || '/api/medias/tags',
428
+ itemLabelPath: 'name',
429
+ itemValuePath: 'id',
430
+ multiple: true,
431
+ paginated: true
432
+ }];
1649
433
  }
1650
- Navbar.propTypes = propTypes$1;
1651
- Navbar.defaultProps = defaultProps$1;
1652
434
 
1653
- var styles = {"container":"micromag-media-gallery-container","metadataOpened":"micromag-media-gallery-metadataOpened","gallery":"micromag-media-gallery-gallery","mediaMetadata":"micromag-media-gallery-mediaMetadata","content":"micromag-media-gallery-content","loading":"micromag-media-gallery-loading"};
435
+ var styles = {"container":"micromag-media-gallery-new-media-gallery-container","browser":"micromag-media-gallery-new-media-gallery-browser"};
436
+
437
+ // const videoTypes = ['video', 'image/gif'];
1654
438
 
1655
- var videoTypes = ['video', 'image/gif'];
1656
439
  var propTypes = {
1657
- type: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
440
+ value: PropTypes.shape({
441
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
442
+ }),
443
+ types: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
1658
444
  source: PropTypes.string,
445
+ filters: PropTypes.arrayOf(PropTypes.shape({
446
+ id: PropTypes.string
447
+ })),
448
+ fields: PropTypes.arrayOf(PropTypes.shape({
449
+ id: PropTypes.string
450
+ })),
451
+ columns: PropTypes.arrayOf(PropTypes.shape({
452
+ id: PropTypes.string
453
+ })),
1659
454
  isPicker: PropTypes.bool,
1660
- isSmall: PropTypes.bool,
1661
- withoutTitle: PropTypes.bool,
1662
- withoutSource: PropTypes.bool,
1663
- withoutType: PropTypes.bool,
455
+ multiple: PropTypes.bool,
1664
456
  medias: core.PropTypes.medias,
1665
- selectedMedia: core.PropTypes.media,
457
+ buttons: PropTypes.arrayOf(PropTypes.shape({})),
1666
458
  className: PropTypes.string,
1667
- navbarClassName: PropTypes.string,
1668
- onChange: PropTypes.func,
1669
- onClickMedia: PropTypes.func,
1670
- onClearMedia: PropTypes.func
459
+ onChange: PropTypes.func
1671
460
  };
1672
461
  var defaultProps = {
1673
- type: null,
462
+ value: null,
463
+ types: null,
1674
464
  source: 'all',
465
+ filters: null,
466
+ fields: defaultFields,
467
+ columns: defaultColumns,
1675
468
  isPicker: false,
1676
- isSmall: false,
1677
- withoutTitle: false,
1678
- withoutSource: false,
1679
- withoutType: true,
469
+ multiple: false,
1680
470
  medias: null,
1681
- selectedMedia: null,
471
+ buttons: null,
1682
472
  className: null,
1683
- navbarClassName: null,
1684
- onChange: null,
1685
- onClickMedia: null,
1686
- onClearMedia: null
473
+ onChange: null
1687
474
  };
1688
475
  function MediaGallery(_ref) {
1689
- var type = _ref.type,
476
+ var value = _ref.value,
477
+ types = _ref.types,
1690
478
  source = _ref.source,
479
+ filters$1 = _ref.filters,
480
+ fields = _ref.fields,
481
+ columns = _ref.columns,
1691
482
  isPicker = _ref.isPicker,
1692
- isSmall = _ref.isSmall,
1693
- withoutTitle = _ref.withoutTitle,
1694
- withoutSource = _ref.withoutSource,
1695
- withoutType = _ref.withoutType,
483
+ multiple = _ref.multiple,
1696
484
  initialMedias = _ref.medias,
1697
- selectedMedia = _ref.selectedMedia,
485
+ buttons = _ref.buttons,
1698
486
  className = _ref.className,
1699
- navbarClassName = _ref.navbarClassName,
1700
- onChange = _ref.onChange,
1701
- onClickMedia = _ref.onClickMedia,
1702
- onClearMedia = _ref.onClearMedia;
1703
- var intl = reactIntl.useIntl();
1704
- // Base state for filters
1705
- var defaultFilters = {
1706
- type: type,
1707
- source: source
1708
- };
1709
-
1710
- // Filters
1711
- var throttle = React.useRef(null);
1712
- var _useState = React.useState(defaultFilters),
1713
- _useState2 = _slicedToArray(_useState, 2),
1714
- queryValue = _useState2[0],
1715
- setQueryValue = _useState2[1];
1716
- var _useState3 = React.useState(defaultFilters),
1717
- _useState4 = _slicedToArray(_useState3, 2),
1718
- filtersValue = _useState4[0],
1719
- setFiltersValue = _useState4[1];
1720
- var story = contexts.useStory();
1721
- var _ref2 = story || {},
1722
- _ref2$id = _ref2.id,
1723
- storyId = _ref2$id === void 0 ? null : _ref2$id;
1724
- var _useMediaTags = data.useMediaTags(),
1725
- tags = _useMediaTags.tags;
1726
- var _useMediaAuthors = data.useMediaAuthors(),
1727
- authors = _useMediaAuthors.authors;
1728
- var onFiltersChange = React.useCallback(function (value) {
1729
- if (throttle.current !== null) {
1730
- clearTimeout(throttle.current);
1731
- }
1732
- throttle.current = setTimeout(function () {
1733
- setQueryValue(value);
1734
- throttle.current = null;
1735
- }, 500);
1736
- setFiltersValue(value);
1737
- }, [setFiltersValue, setQueryValue, throttle]);
1738
- var _useState5 = React.useState(initialMedias),
1739
- _useState6 = _slicedToArray(_useState5, 2),
1740
- defaultItems = _useState6[0],
1741
- setDefaultItems = _useState6[1];
1742
-
1743
- // Items
1744
- var _useMedias = data.useMedias(queryValue, 1, 30, {
1745
- pages: defaultItems
1746
- }),
1747
- loadedMedias = _useMedias.items,
1748
- _useMedias$loading = _useMedias.loading,
1749
- loading = _useMedias$loading === void 0 ? false : _useMedias$loading,
1750
- _useMedias$loadNextPa = _useMedias.loadNextPage,
1751
- loadNextPage = _useMedias$loadNextPa === void 0 ? null : _useMedias$loadNextPa,
1752
- _useMedias$allLoaded = _useMedias.allLoaded,
1753
- allLoaded = _useMedias$allLoaded === void 0 ? false : _useMedias$allLoaded;
1754
-
1755
- // Temporary type filter
1756
- var _useState7 = React.useState([]),
1757
- _useState8 = _slicedToArray(_useState7, 2),
1758
- addedMedias = _useState8[0],
1759
- setAddedMedias = _useState8[1];
1760
- var medias = React.useMemo(function () {
1761
- var allMedias = [].concat(_toConsumableArray(addedMedias), _toConsumableArray(loadedMedias || []));
1762
- return allMedias.length > 0 ? allMedias : null;
1763
- }, [loadedMedias, addedMedias]);
1764
-
1765
- // Medias
1766
- var _useState9 = React.useState(null),
1767
- _useState10 = _slicedToArray(_useState9, 2),
1768
- metadataMedia = _useState10[0],
1769
- setMetadataMedia = _useState10[1];
1770
- var onClickItem = React.useCallback(function (media) {
1771
- var _ref3 = media || {},
1772
- _ref3$id = _ref3.id,
1773
- mediaId = _ref3$id === void 0 ? null : _ref3$id;
1774
- var _ref4 = selectedMedia || {},
1775
- _ref4$id = _ref4.id,
1776
- selectedId = _ref4$id === void 0 ? null : _ref4$id;
1777
- var different = mediaId !== selectedId;
1778
- if (!isPicker) {
1779
- setMetadataMedia(media);
1780
- } else if (onClickMedia !== null) {
1781
- if (different) {
1782
- onClickMedia(media);
487
+ onChange = _ref.onChange;
488
+ var api = data.useApi();
489
+ var mediasApi = React.useMemo(function () {
490
+ return {
491
+ get: function get() {
492
+ var _api$medias;
493
+ return (_api$medias = api.medias).get.apply(_api$medias, arguments);
494
+ },
495
+ getTrashed: function getTrashed() {
496
+ var _api$medias2;
497
+ return (_api$medias2 = api.medias).get.apply(_api$medias2, arguments);
498
+ },
499
+ find: function find() {
500
+ var _api$medias3;
501
+ return (_api$medias3 = api.medias).find.apply(_api$medias3, arguments);
502
+ },
503
+ create: function create() {
504
+ var _api$medias4;
505
+ return (_api$medias4 = api.medias).create.apply(_api$medias4, arguments);
506
+ },
507
+ update: function update() {
508
+ var _api$medias5;
509
+ return (_api$medias5 = api.medias).update.apply(_api$medias5, arguments);
510
+ },
511
+ "delete": function _delete() {
512
+ var _api$medias6;
513
+ return (_api$medias6 = api.medias)["delete"].apply(_api$medias6, arguments);
514
+ },
515
+ trash: function trash() {
516
+ var _api$medias7;
517
+ return (_api$medias7 = api.medias)["delete"].apply(_api$medias7, arguments);
1783
518
  }
1784
- }
1785
- }, [isPicker, setMetadataMedia, onClickMedia, selectedMedia]);
1786
- var onClickRemoveItem = React.useCallback(function () {
1787
- setMetadataMedia(null);
1788
- if (onClickMedia !== null) {
1789
- onClickMedia(null);
1790
- }
1791
- }, [isPicker, setMetadataMedia, onClickMedia]);
1792
- var onClickItemInfo = React.useCallback(function (media) {
1793
- return setMetadataMedia(media);
1794
- }, [setMetadataMedia]);
1795
- var onMetadataClickClose = React.useCallback(function () {
1796
- setMetadataMedia(null);
1797
- }, [setMetadataMedia]);
1798
- var onMetadataClickDelete = React.useCallback(function () {
1799
- var mediaId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1800
- var _ref5 = selectedMedia || {},
1801
- _ref5$id = _ref5.id,
1802
- selectedId = _ref5$id === void 0 ? null : _ref5$id;
1803
- if (mediaId !== null && mediaId === selectedId && onClickMedia !== null) {
1804
- onClickMedia(null);
1805
- }
1806
- setMetadataMedia(null);
1807
- }, [setMetadataMedia, onClickMedia, selectedMedia]);
1808
- var onMetadataChange = React.useCallback(function (val) {
1809
- setMetadataMedia(val);
1810
- var _ref6 = val || {},
1811
- _ref6$id = _ref6.id,
1812
- mediaId = _ref6$id === void 0 ? null : _ref6$id;
1813
- var _ref7 = selectedMedia || {},
1814
- _ref7$id = _ref7.id,
1815
- selectedId = _ref7$id === void 0 ? null : _ref7$id;
1816
- if (onChange !== null && mediaId === selectedId) {
1817
- onChange(val);
1818
- }
1819
- }, [setMetadataMedia, selectedMedia, onChange]);
1820
- React.useEffect(function () {
1821
- if (metadataMedia !== null) {
1822
- window.scrollTo(0, 0);
1823
- }
1824
- }, [metadataMedia]);
1825
-
1826
- // Navigation
1827
- var onClickBack = React.useCallback(function () {
1828
- setMetadataMedia(null);
1829
- }, [setMetadataMedia, setDefaultItems, setQueryValue]);
519
+ };
520
+ }, [api]);
1830
521
 
1831
522
  // Upload modal
1832
- var _useState11 = React.useState(false),
1833
- _useState12 = _slicedToArray(_useState11, 2),
1834
- uploading = _useState12[0],
1835
- setUploading = _useState12[1];
1836
- var _useState13 = React.useState(false),
1837
- _useState14 = _slicedToArray(_useState13, 2),
1838
- uploadModalOpened = _useState14[0],
1839
- setUploadModalOpened = _useState14[1];
1840
- var _useMediaCreate = data.useMediaCreate(),
1841
- createMedia = _useMediaCreate.create;
1842
- var onClickAdd = React.useCallback(function () {
523
+ var _useState = React.useState([]),
524
+ _useState2 = _slicedToArray(_useState, 2),
525
+ addedMedias = _useState2[0],
526
+ setAddedMedias = _useState2[1];
527
+ var _useState3 = React.useState(false),
528
+ _useState4 = _slicedToArray(_useState3, 2);
529
+ _useState4[0];
530
+ var setUploading = _useState4[1];
531
+ var _useState5 = React.useState(false),
532
+ _useState6 = _slicedToArray(_useState5, 2),
533
+ uploadModalOpened = _useState6[0],
534
+ setUploadModalOpened = _useState6[1];
535
+ React.useCallback(function () {
1843
536
  return setUploadModalOpened(true);
1844
537
  }, [setUploadModalOpened]);
538
+ var _useMediaCreate = data.useMediaCreate(),
539
+ createMedia = _useMediaCreate.create;
1845
540
  var onUploadCompleted = React.useCallback(function (newMedias) {
541
+ console.log('newMedias', newMedias);
1846
542
  setUploading(true);
1847
543
  Promise.all(newMedias.map(createMedia)).then(function (newAddedMedias) {
1848
544
  setUploading(false);
@@ -1852,67 +548,75 @@ function MediaGallery(_ref) {
1852
548
  var onUploadRequestClose = React.useCallback(function () {
1853
549
  return setUploadModalOpened(false);
1854
550
  }, [setUploadModalOpened]);
551
+ var partialFilters = filters$1 || filters() || [];
552
+ var finalFilters = React.useMemo(function () {
553
+ return partialFilters.map(function (filter) {
554
+ var _ref2 = filter || {},
555
+ _ref2$id = _ref2.id,
556
+ id = _ref2$id === void 0 ? null : _ref2$id;
557
+ if (id === 'sources') {
558
+ return filter;
559
+ }
560
+ // if (id === 'tags' && tags !== null) {
561
+ // return { ...filter, options: tags };
562
+ // }
563
+ return filter;
564
+ }).concat();
565
+ }, [partialFilters]);
566
+ var _useState7 = React.useState(source !== null ? {
567
+ source: source
568
+ } : null),
569
+ _useState8 = _slicedToArray(_useState7, 2),
570
+ query = _useState8[0],
571
+ setQuery = _useState8[1];
572
+ var finalQuery = React.useMemo(function () {
573
+ setQuery(_objectSpread(_objectSpread({}, query || null), source !== null ? {
574
+ source: source
575
+ } : null));
576
+ }, [source, setQuery]);
577
+ var finalValue = React.useMemo(function () {
578
+ if (addedMedias === null || addedMedias.length === 0) {
579
+ return value;
580
+ }
581
+ console.log('finalValue', addedMedias);
582
+ var allMedias = [].concat(_toConsumableArray(addedMedias), _toConsumableArray(isArray(value) ? value || [] : [value]));
583
+ return allMedias.length > 0 ? allMedias : null;
584
+ }, [value, addedMedias]);
1855
585
  return /*#__PURE__*/React.createElement("div", {
1856
- className: classNames([styles.container, _defineProperty(_defineProperty({}, styles.metadataOpened, metadataMedia !== null), className, className)])
1857
- }, /*#__PURE__*/React.createElement(Navbar, {
1858
- types: isArray(type) ? type : [type],
1859
- filters: filtersValue,
1860
- media: metadataMedia !== null ? metadataMedia : null,
1861
- selectedMedia: selectedMedia,
1862
- onFiltersChange: onFiltersChange,
1863
- onClickAdd: onClickAdd,
1864
- onClickItem: onClickItem,
1865
- onClickItemInfo: onClickItemInfo,
1866
- onClickBack: onClickBack,
1867
- onClickClear: onClearMedia,
1868
- withoutTitle: withoutTitle,
1869
- withoutSource: withoutSource,
1870
- withoutType: withoutType,
1871
- storyId: storyId,
1872
- authors: authors,
1873
- tags: tags,
1874
- loading: loading || uploading,
1875
- className: navbarClassName
1876
- }), /*#__PURE__*/React.createElement("div", {
1877
- className: styles.content
1878
- }, /*#__PURE__*/React.createElement("div", {
1879
- className: styles.gallery
1880
- }, medias !== null && !uploading ? /*#__PURE__*/React.createElement(Gallery, {
1881
- items: medias,
1882
- selectedItem: selectedMedia,
1883
- selectedFirst: true,
1884
- withInfoButton: isPicker,
1885
- isSmall: isSmall,
1886
- onClickItem: onClickItem,
1887
- onClickItemInfo: onClickItemInfo,
1888
- onClickRemoveItem: onClickRemoveItem
1889
- }) : null, !allLoaded ? /*#__PURE__*/React.createElement("div", {
1890
- className: "w-100 mb-2"
1891
- }, loading || uploading ? /*#__PURE__*/React.createElement(components.Spinner, {
1892
- className: styles.loading
1893
- }) : null, !loading && !uploading ? /*#__PURE__*/React.createElement(components.Button, {
1894
- className: "d-block mx-auto",
1895
- theme: "secondary",
1896
- outline: true,
1897
- onClick: loadNextPage
1898
- }, intl.formatMessage({
1899
- id: "ur6G0U",
1900
- defaultMessage: [{
1901
- "type": 0,
1902
- "value": "Load more"
1903
- }]
1904
- })) : null) : null), /*#__PURE__*/React.createElement("div", {
1905
- className: styles.mediaMetadata
1906
- }, /*#__PURE__*/React.createElement(MediaMetadata, {
1907
- media: metadataMedia,
1908
- tags: tags,
1909
- onChange: onMetadataChange,
1910
- onClickClose: onMetadataClickClose
1911
- // onClickSave={onMetadataClickSave}
1912
- ,
1913
- onClickDelete: onMetadataClickDelete
1914
- }))), /*#__PURE__*/reactDom.createPortal( /*#__PURE__*/React.createElement(components.UploadModal, {
1915
- type: type === 'video' ? videoTypes : type,
586
+ className: classNames([styles.container, _defineProperty({}, className, className)])
587
+ }, isPicker ? /*#__PURE__*/React.createElement(medias.MediasPickerContainer, {
588
+ className: styles.browser,
589
+ api: mediasApi,
590
+ value: finalValue,
591
+ theme: "dark",
592
+ types: types,
593
+ query: finalQuery,
594
+ multiple: multiple,
595
+ items: initialMedias,
596
+ filters: finalFilters,
597
+ fields: fields,
598
+ columns: columns,
599
+ onChange: onChange,
600
+ buttons: buttons,
601
+ buttonsClassName: "ms-xl-auto",
602
+ withStickySelection: true
603
+ }) : /*#__PURE__*/React.createElement(medias.MediasBrowserContainer, {
604
+ className: styles.browser,
605
+ api: mediasApi,
606
+ value: finalValue,
607
+ theme: "dark",
608
+ types: types,
609
+ query: finalQuery,
610
+ multiple: multiple,
611
+ items: initialMedias,
612
+ filters: finalFilters,
613
+ fields: fields,
614
+ columns: columns,
615
+ buttons: buttons,
616
+ buttonsClassName: "ms-xl-auto",
617
+ withStickySelection: true
618
+ }), /*#__PURE__*/reactDom.createPortal( /*#__PURE__*/React.createElement(components.UploadModal, {
619
+ types: types,
1916
620
  opened: uploadModalOpened,
1917
621
  onUploaded: onUploadCompleted,
1918
622
  onRequestClose: onUploadRequestClose