@micromag/media-gallery 0.3.325 → 0.3.329

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.
@@ -3,9 +3,10 @@
3
3
  .micromag-media-gallery-partials-media-metadata-container{position:relative}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-image{display:block;margin:0 auto;max-height:40vh;max-width:100%;min-height:200px}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-video{background-color:#1c1c1c;height:40vh;min-height:200px;position:relative}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-video .micromag-media-gallery-partials-media-metadata-player{height:100%;left:0;position:absolute;top:0;width:100%}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-audio{bottom:0;position:absolute;width:100%}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-audio .micromag-media-gallery-partials-media-metadata-player{display:block;margin:0 auto}
4
4
  .micromag-media-gallery-forms-dropdown-section-container .micromag-media-gallery-forms-dropdown-section-dropdownToggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-block;font-family:inherit;padding:0;position:relative}.micromag-media-gallery-forms-dropdown-section-container{padding-top:5px;position:relative}.micromag-media-gallery-forms-dropdown-section-container .micromag-media-gallery-forms-dropdown-section-label{display:inline-block;font-weight:400;padding-right:5px}.micromag-media-gallery-forms-dropdown-section-container .micromag-media-gallery-forms-dropdown-section-dropdownToggle{font-weight:700}.micromag-media-gallery-forms-dropdown-section-container .micromag-media-gallery-forms-dropdown-section-dropdown{left:auto;right:0}
5
5
  .micromag-media-gallery-forms-search-container{position:relative}.micromag-media-gallery-forms-search-container .micromag-media-gallery-forms-search-input{background-color:#2b2b2b}.micromag-media-gallery-forms-search-container .micromag-media-gallery-forms-search-input.micromag-media-gallery-forms-search-active,.micromag-media-gallery-forms-search-container .micromag-media-gallery-forms-search-input:focus{background-color:#2b2b2b!important;-webkit-box-shadow:none!important;box-shadow:none!important;color:#fff!important;outline:none!important}.micromag-media-gallery-forms-search-container .micromag-media-gallery-forms-search-input ::-webkit-input-placeholder{background-color:#2b2b2b!important}.micromag-media-gallery-forms-search-container .micromag-media-gallery-forms-search-input ::-moz-placeholder{background-color:#2b2b2b!important}.micromag-media-gallery-forms-search-container .micromag-media-gallery-forms-search-input :-ms-input-placeholder{background-color:#2b2b2b!important}.micromag-media-gallery-forms-search-container .micromag-media-gallery-forms-search-input ::-ms-input-placeholder{background-color:#2b2b2b!important}.micromag-media-gallery-forms-search-container .micromag-media-gallery-forms-search-input ::placeholder{background-color:#2b2b2b!important}
6
+ .micromag-media-gallery-forms-tag-dropdown-container .micromag-media-gallery-forms-tag-dropdown-select{font-size:.8rem;padding:.25rem .5rem}
6
7
  .micromag-media-gallery-forms-tag-section-container .micromag-media-gallery-forms-tag-section-tag{font-size:.75rem;line-height:1.1}
7
- .micromag-media-gallery-forms-search-filters-container{left:0;overflow:hidden;padding:0 10px;position:absolute;right:0;width:100%;z-index:1}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-closeBtn{position:absolute;right:24px}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-section{border-bottom:1px solid #adadad}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-section:last-child{border-bottom:0}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-title{color:#adadad;font-size:.7875rem;font-weight:600;text-transform:uppercase}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-tags{overflow-x:auto}
8
+ .micromag-media-gallery-forms-search-filters-container{left:0;overflow:hidden;padding:0 10px;position:absolute;right:0;width:100%;z-index:1}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-closeBtn{-ms-flex-align:center;-ms-flex-pack:center;align-items:center;border:0!important;display:-ms-flexbox;display:flex;height:24px;justify-content:center;position:absolute;right:10px;top:0;-webkit-transition:opacity .15s ease-out;-o-transition:opacity .15s ease-out;transition:opacity .15s ease-out;width:24px}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-closeBtn:hover{opacity:.8}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-section{border-bottom:1px solid #adadad}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-section:last-child{border-bottom:0}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-title{color:#adadad;font-size:.7875rem;font-weight:600;text-transform:uppercase}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-tags{overflow-x:auto}
8
9
  .micromag-media-gallery-buttons-close-container{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-block;font-family:inherit;padding:0;position:relative}
9
10
  .micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-heading{-ms-flex-pack:justify;display:-ms-flexbox;display:flex;justify-content:space-between}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-title{color:#adadad;font-size:.7875rem;font-weight:600;text-transform:uppercase}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-resetButton{font-size:.7875rem;margin-left:5px;outline:none}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-activeTag{margin-right:5px;margin-top:5px}
10
11
  .micromag-media-gallery-partials-navbar-container{max-width:100%;max-width:320px;padding:.5rem;position:relative}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-inner{-ms-flex-align:start;-ms-flex-pack:center;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;justify-content:center;width:100%}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-mediaPreview{display:block;margin-right:5px;width:100px}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-mediaPreview img{display:block;width:100%}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-mediaLabel{display:block;min-width:0}
11
- .micromag-media-gallery-container .micromag-media-gallery-mediaMetadata,.micromag-media-gallery-container.micromag-media-gallery-metadataOpened .micromag-media-gallery-gallery{left:0;position:absolute;top:0;width:100%}.micromag-media-gallery-container{position:relative}.micromag-media-gallery-container .micromag-media-gallery-content{overflow:hidden;position:relative;width:100%}.micromag-media-gallery-container .micromag-media-gallery-gallery,.micromag-media-gallery-container .micromag-media-gallery-mediaMetadata{-webkit-transition:-webkit-transform .2s ease-out;transition:-webkit-transform .2s ease-out;-o-transition:transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out,-webkit-transform .2s ease-out}.micromag-media-gallery-container .micromag-media-gallery-mediaMetadata{-webkit-transform:translate(100%);-ms-transform:translate(100%);transform:translate(100%)}.micromag-media-gallery-container .micromag-media-gallery-loading{margin:.5rem 1rem}.micromag-media-gallery-container.micromag-media-gallery-metadataOpened .micromag-media-gallery-gallery{-webkit-transform:translate(-100%);-ms-transform:translate(-100%);transform:translate(-100%)}.micromag-media-gallery-container.micromag-media-gallery-metadataOpened .micromag-media-gallery-mediaMetadata{position:static;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0);width:auto}
12
+ .micromag-media-gallery-container .micromag-media-gallery-mediaMetadata,.micromag-media-gallery-container.micromag-media-gallery-metadataOpened .micromag-media-gallery-gallery{left:0;position:absolute;top:0;width:100%}.micromag-media-gallery-container{position:relative}.micromag-media-gallery-container .micromag-media-gallery-content{overflow:hidden;position:relative;width:100%}.micromag-media-gallery-container .micromag-media-gallery-gallery,.micromag-media-gallery-container .micromag-media-gallery-mediaMetadata{-webkit-transition:-webkit-transform .2s ease-out;transition:-webkit-transform .2s ease-out;-o-transition:transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out,-webkit-transform .2s ease-out}.micromag-media-gallery-container .micromag-media-gallery-mediaMetadata{-webkit-transform:translate(100%);-ms-transform:translate(100%);transform:translate(100%)}.micromag-media-gallery-container .micromag-media-gallery-loading{display:block;margin:.5rem auto}.micromag-media-gallery-container.micromag-media-gallery-metadataOpened .micromag-media-gallery-gallery{-webkit-transform:translate(-100%);-ms-transform:translate(-100%);transform:translate(-100%)}.micromag-media-gallery-container.micromag-media-gallery-metadataOpened .micromag-media-gallery-mediaMetadata{position:static;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0);width:auto}
package/es/index.js CHANGED
@@ -7,10 +7,11 @@ import isArray from 'lodash/isArray';
7
7
  import PropTypes$1 from 'prop-types';
8
8
  import React, { useMemo, useCallback, useState, useEffect, useRef } from 'react';
9
9
  import { createPortal } from 'react-dom';
10
+ import { FormattedMessage, useIntl } from 'react-intl';
10
11
  import { PropTypes } from '@micromag/core';
11
12
  import { Card, Button, Media, Spinner, UploadModal } from '@micromag/core/components';
12
13
  import { useFieldComponent, useStory } from '@micromag/core/contexts';
13
- import { useMediaUpdate, useMediasRecentSearches, useMediaTags, useMediaAuthors, useMedias, useMediaCreate } from '@micromag/data';
14
+ import { useMediaUpdate, useMediaDelete, useMediasRecentSearches, useMediaTags, useMediaAuthors, useMedias, useMediaCreate } from '@micromag/data';
14
15
  import { useDimensionObserver } from '@micromag/core/hooks';
15
16
  import { faHeadphonesAlt } from '@fortawesome/free-solid-svg-icons/faHeadphonesAlt';
16
17
  import { faInfoCircle } from '@fortawesome/free-solid-svg-icons/faInfoCircle';
@@ -19,7 +20,6 @@ import { faTimesCircle } from '@fortawesome/free-solid-svg-icons/faTimesCircle';
19
20
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
20
21
  import uniqBy from 'lodash/uniqBy';
21
22
  import prettyBytes from 'pretty-bytes';
22
- import { FormattedMessage, useIntl } from 'react-intl';
23
23
  import { faChevronLeft } from '@fortawesome/free-solid-svg-icons/faChevronLeft';
24
24
  import { faPlus } from '@fortawesome/free-solid-svg-icons/faPlus';
25
25
  import { faTimes } from '@fortawesome/free-solid-svg-icons/faTimes';
@@ -39,9 +39,9 @@ var middleEllipsis = function middleEllipsis(string, maxLength) {
39
39
  return "".concat(string.substring(0, midpoint - lstrip), "...").concat(string.substring(midpoint + rstrip));
40
40
  };
41
41
 
42
- var styles$a = {"container":"micromag-media-gallery-items-gallery-item-container","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","closeIcon":"micromag-media-gallery-items-gallery-item-closeIcon"};
42
+ var styles$b = {"container":"micromag-media-gallery-items-gallery-item-container","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","closeIcon":"micromag-media-gallery-items-gallery-item-closeIcon"};
43
43
 
44
- var propTypes$a = {
44
+ var propTypes$b = {
45
45
  item: PropTypes.media,
46
46
  width: PropTypes$1.number,
47
47
  selected: PropTypes$1.bool,
@@ -50,7 +50,7 @@ var propTypes$a = {
50
50
  onClick: PropTypes$1.func,
51
51
  onClickInfo: PropTypes$1.func
52
52
  };
53
- var defaultProps$a = {
53
+ var defaultProps$b = {
54
54
  item: null,
55
55
  width: 0,
56
56
  selected: false,
@@ -81,50 +81,50 @@ var GalleryItem = function GalleryItem(_ref) {
81
81
  return /*#__PURE__*/React.createElement(Card, {
82
82
  image: /*#__PURE__*/React.createElement("button", {
83
83
  type: "button",
84
- className: classNames(['d-block', 'position-relative', 'p-0', 'border-0', 'w-100', 'text-start', 'bg-dark', 'text-black', styles$a.imageButton]),
84
+ className: classNames(['d-block', 'position-relative', 'p-0', 'border-0', 'w-100', 'text-start', 'bg-dark', 'text-black', styles$b.imageButton]),
85
85
  onClick: onClick
86
86
  }, /*#__PURE__*/React.createElement("div", {
87
- className: classNames(['card-img-top', styles$a.image]),
87
+ className: classNames(['card-img-top', styles$b.image]),
88
88
  style: {
89
89
  backgroundImage: thumbnail !== null ? "url('".concat(thumbnail, "')") : null
90
90
  }
91
91
  })),
92
92
  beforeBody: /*#__PURE__*/React.createElement(React.Fragment, null, withInfoButton ? /*#__PURE__*/React.createElement(Button, {
93
- className: styles$a.infoButton,
93
+ className: styles$b.infoButton,
94
94
  onClick: onClickInfo,
95
95
  withoutStyle: true
96
96
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
97
97
  icon: faInfoCircle,
98
- className: styles$a.icon
98
+ className: styles$b.icon
99
99
  })) : null, selected ? /*#__PURE__*/React.createElement("div", {
100
- className: classNames(['text-danger', styles$a.closeIcon])
100
+ className: classNames(['text-danger', styles$b.closeIcon])
101
101
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
102
102
  icon: faTimesCircle,
103
- className: styles$a.icon
103
+ className: styles$b.icon
104
104
  })) : null),
105
105
  footer: /*#__PURE__*/React.createElement(React.Fragment, null, type === 'video' ? /*#__PURE__*/React.createElement(FontAwesomeIcon, {
106
- className: styles$a.icon,
106
+ className: styles$b.icon,
107
107
  icon: faPlayCircle
108
108
  }) : null, type === 'audio' ? /*#__PURE__*/React.createElement(FontAwesomeIcon, {
109
- className: styles$a.icon,
109
+ className: styles$b.icon,
110
110
  icon: faHeadphonesAlt
111
111
  }) : null, /*#__PURE__*/React.createElement("div", {
112
- className: classNames(['text-truncate', styles$a.label])
112
+ className: classNames(['text-truncate', styles$b.label])
113
113
  }, /*#__PURE__*/React.createElement("small", null, title), size !== null ? /*#__PURE__*/React.createElement("small", {
114
114
  className: "text-muted ms-1"
115
115
  }, size) : null)),
116
116
  theme: selected ? 'primary' : null,
117
- className: classNames([styles$a.container, _defineProperty({}, className, className !== null)]),
118
- footerClassName: classNames(['p-1', styles$a.footer]),
117
+ className: classNames([styles$b.container, _defineProperty({}, className, className !== null)]),
118
+ footerClassName: classNames(['p-1', styles$b.footer]),
119
119
  onClickFooter: onClick
120
120
  });
121
121
  };
122
- GalleryItem.propTypes = propTypes$a;
123
- GalleryItem.defaultProps = defaultProps$a;
122
+ GalleryItem.propTypes = propTypes$b;
123
+ GalleryItem.defaultProps = defaultProps$b;
124
124
 
125
- var styles$9 = {};
125
+ var styles$a = {};
126
126
 
127
- var propTypes$9 = {
127
+ var propTypes$a = {
128
128
  items: PropTypes.medias,
129
129
  selectedItem: PropTypes.media,
130
130
  withInfoButton: PropTypes$1.bool,
@@ -134,7 +134,7 @@ var propTypes$9 = {
134
134
  onClickItem: PropTypes$1.func,
135
135
  onClickItemInfo: PropTypes$1.func
136
136
  };
137
- var defaultProps$9 = {
137
+ var defaultProps$a = {
138
138
  items: null,
139
139
  selectedItem: null,
140
140
  withInfoButton: false,
@@ -166,7 +166,7 @@ function Gallery(_ref) {
166
166
  return items;
167
167
  }, [selectedFirst, selectedItem, items]);
168
168
  return /*#__PURE__*/React.createElement("div", {
169
- className: classNames([styles$9.container, 'p-2', _defineProperty({}, className, className !== null)]),
169
+ className: classNames([styles$a.container, 'p-2', _defineProperty({}, className, className !== null)]),
170
170
  ref: ref
171
171
  }, /*#__PURE__*/React.createElement("div", {
172
172
  className: classNames(['row', 'mx-n1', 'row-cols-2', {
@@ -190,24 +190,27 @@ function Gallery(_ref) {
190
190
  }));
191
191
  })));
192
192
  }
193
- Gallery.propTypes = propTypes$9;
194
- Gallery.defaultProps = defaultProps$9;
193
+ Gallery.propTypes = propTypes$a;
194
+ Gallery.defaultProps = defaultProps$a;
195
195
 
196
- var styles$8 = {"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"};
196
+ 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"};
197
197
 
198
- var propTypes$8 = {
198
+ var propTypes$9 = {
199
199
  media: PropTypes.media,
200
200
  tags: PropTypes.tags,
201
+ onClickClose: PropTypes$1.func,
201
202
  className: PropTypes$1.string
202
203
  };
203
- var defaultProps$8 = {
204
+ var defaultProps$9 = {
204
205
  media: null,
205
206
  tags: [],
207
+ onClickClose: null,
206
208
  className: null
207
209
  };
208
210
  function MediaMetadata(_ref) {
209
211
  var media = _ref.media,
210
212
  allTags = _ref.tags,
213
+ onClickClose = _ref.onClickClose,
211
214
  className = _ref.className;
212
215
  var _ref2 = media || {},
213
216
  mediaId = _ref2.id,
@@ -239,6 +242,8 @@ function MediaMetadata(_ref) {
239
242
  mediaTags = _ref3$tags === void 0 ? [] : _ref3$tags;
240
243
  var _useMediaUpdate = useMediaUpdate(),
241
244
  update = _useMediaUpdate.update;
245
+ var _useMediaDelete = useMediaDelete(),
246
+ deleteMedia = _useMediaDelete.deleteMedia;
242
247
  var getOptionLabel = useCallback(function (_ref4) {
243
248
  var name = _ref4.name;
244
249
  return name;
@@ -293,8 +298,29 @@ function MediaMetadata(_ref) {
293
298
  description: description
294
299
  }).then(function () {
295
300
  setChanged(false);
301
+ if (onClickClose !== null) {
302
+ onClickClose();
303
+ }
304
+ });
305
+ }, [mediaId, name, tags, description, metadata, update, onClickClose]);
306
+ var _useState9 = useState(null),
307
+ _useState10 = _slicedToArray(_useState9, 2),
308
+ deletedState = _useState10[0],
309
+ setDeletedState = _useState10[1];
310
+ useEffect(function () {
311
+ setDeletedState(null);
312
+ }, [mediaId]);
313
+ var onDelete = useCallback(function () {
314
+ return deleteMedia(mediaId).then(function () {
315
+ setChanged(false);
316
+ setDeletedState(true);
317
+ if (onClickClose !== null) {
318
+ onClickClose();
319
+ }
320
+ })["catch"](function () {
321
+ setDeletedState(false);
296
322
  });
297
- }, [mediaId, name, tags, description, metadata, update]);
323
+ }, [mediaId, deleteMedia, onClickClose]);
298
324
  useEffect(function () {
299
325
  if (media !== null) {
300
326
  setTags(mediaTags);
@@ -310,25 +336,25 @@ function MediaMetadata(_ref) {
310
336
  var TextField = useFieldComponent('text');
311
337
  var TokensField = useFieldComponent('tokens');
312
338
  return /*#__PURE__*/React.createElement("div", {
313
- className: classNames([styles$8.container, _defineProperty({}, className, className)])
339
+ className: classNames([styles$9.container, _defineProperty({}, className, className)])
314
340
  }, /*#__PURE__*/React.createElement("div", {
315
341
  className: classNames(['position-relative', _defineProperty({
316
342
  'bg-light': type === 'audio',
317
343
  'bg-black': type === 'image'
318
- }, styles$8.video, type === 'video')])
344
+ }, styles$9.video, type === 'video')])
319
345
  }, type === 'video' ? /*#__PURE__*/React.createElement("video", {
320
- className: styles$8.player,
346
+ className: styles$9.player,
321
347
  controls: true,
322
348
  src: url
323
349
  }) : null, type === 'audio' ? /*#__PURE__*/React.createElement("div", {
324
- className: styles$8.audio
350
+ className: styles$9.audio
325
351
  }, /*#__PURE__*/React.createElement("audio", {
326
- className: styles$8.player,
352
+ className: styles$9.player,
327
353
  controls: true,
328
354
  src: url
329
355
  })) : null, type !== 'video' ? /*#__PURE__*/React.createElement("img", {
330
356
  src: thumbnail,
331
- className: styles$8.image,
357
+ className: styles$9.image,
332
358
  alt: filename
333
359
  }) : null), /*#__PURE__*/React.createElement("div", {
334
360
  className: "p-2"
@@ -498,10 +524,30 @@ function MediaMetadata(_ref) {
498
524
  }]
499
525
  })), /*#__PURE__*/React.createElement("div", {
500
526
  className: "col"
501
- }, /*#__PURE__*/React.createElement("small", null, user.name)))) : null)));
527
+ }, /*#__PURE__*/React.createElement("small", null, user.name)))) : null), /*#__PURE__*/React.createElement("div", {
528
+ className: "py-3"
529
+ }, /*#__PURE__*/React.createElement(Button, {
530
+ theme: "danger",
531
+ outline: true,
532
+ onClick: onDelete
533
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
534
+ id: "/KQ87r",
535
+ defaultMessage: [{
536
+ "type": 0,
537
+ "value": "Delete media"
538
+ }]
539
+ })), deletedState === false ? /*#__PURE__*/React.createElement("p", {
540
+ className: "pt-1 text-danger"
541
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
542
+ id: "k+edUi",
543
+ defaultMessage: [{
544
+ "type": 0,
545
+ "value": "Sorry, this media is in use and could not be deleted."
546
+ }]
547
+ })) : null)));
502
548
  }
503
- MediaMetadata.propTypes = propTypes$8;
504
- MediaMetadata.defaultProps = defaultProps$8;
549
+ MediaMetadata.propTypes = propTypes$9;
550
+ MediaMetadata.defaultProps = defaultProps$9;
505
551
 
506
552
  var useSearchFilters = function useSearchFilters(_ref) {
507
553
  var _ref$recent = _ref.recent,
@@ -664,9 +710,9 @@ PropTypes$1.shape({
664
710
  usage: PropTypes$1.arrayOf(PropTypes$1.oneOf(['used', 'unused']))
665
711
  });
666
712
 
667
- var styles$7 = {"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"};
713
+ 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"};
668
714
 
669
- var propTypes$7 = {
715
+ var propTypes$8 = {
670
716
  value: PropTypes$1.string,
671
717
  items: PropTypes$1.arrayOf(PropTypes$1.shape({
672
718
  label: PropTypes.label,
@@ -676,7 +722,7 @@ var propTypes$7 = {
676
722
  onChange: PropTypes$1.func,
677
723
  className: PropTypes$1.string
678
724
  };
679
- var defaultProps$7 = {
725
+ var defaultProps$8 = {
680
726
  value: null,
681
727
  items: null,
682
728
  onChange: null,
@@ -709,9 +755,9 @@ function DropdownSection(_ref) {
709
755
  onChange(val);
710
756
  }, [setOpen]);
711
757
  return items !== null && items.length > 1 ? /*#__PURE__*/React.createElement("div", {
712
- className: classNames([styles$7.container, 'dropdown', _defineProperty({}, className, className !== null)])
758
+ className: classNames([styles$8.container, 'dropdown', _defineProperty({}, className, className !== null)])
713
759
  }, /*#__PURE__*/React.createElement("span", {
714
- className: styles$7.label
760
+ className: styles$8.label
715
761
  }, /*#__PURE__*/React.createElement(FormattedMessage, {
716
762
  id: "9ZdD+Q",
717
763
  defaultMessage: [{
@@ -719,7 +765,7 @@ function DropdownSection(_ref) {
719
765
  "value": "Library for"
720
766
  }]
721
767
  })), /*#__PURE__*/React.createElement("button", {
722
- className: classNames([styles$7.dropdownToggle, 'dropdown-toggle', {
768
+ className: classNames([styles$8.dropdownToggle, 'dropdown-toggle', {
723
769
  open: open === true
724
770
  }]),
725
771
  type: "button",
@@ -732,7 +778,7 @@ function DropdownSection(_ref) {
732
778
  "value": "All"
733
779
  }]
734
780
  })), /*#__PURE__*/React.createElement("div", {
735
- className: classNames([styles$7.dropdown, 'dropdown-menu', {
781
+ className: classNames([styles$8.dropdown, 'dropdown-menu', {
736
782
  show: open === true
737
783
  }])
738
784
  }, items.map(function (_ref3) {
@@ -750,12 +796,12 @@ function DropdownSection(_ref) {
750
796
  }, label);
751
797
  }))) : null;
752
798
  }
753
- DropdownSection.propTypes = propTypes$7;
754
- DropdownSection.defaultProps = defaultProps$7;
799
+ DropdownSection.propTypes = propTypes$8;
800
+ DropdownSection.defaultProps = defaultProps$8;
755
801
 
756
- var styles$6 = {"container":"micromag-media-gallery-forms-search-container","input":"micromag-media-gallery-forms-search-input","active":"micromag-media-gallery-forms-search-active"};
802
+ var styles$7 = {"container":"micromag-media-gallery-forms-search-container","input":"micromag-media-gallery-forms-search-input","active":"micromag-media-gallery-forms-search-active"};
757
803
 
758
- var propTypes$6 = {
804
+ var propTypes$7 = {
759
805
  value: PropTypes$1.string,
760
806
  loading: PropTypes$1.bool,
761
807
  onChange: PropTypes$1.func,
@@ -764,7 +810,7 @@ var propTypes$6 = {
764
810
  onClickIcon: PropTypes$1.func,
765
811
  className: PropTypes$1.string
766
812
  };
767
- var defaultProps$6 = {
813
+ var defaultProps$7 = {
768
814
  value: null,
769
815
  loading: false,
770
816
  onChange: null,
@@ -800,7 +846,7 @@ var Search = function Search(_ref) {
800
846
  }, [onClickIcon]);
801
847
  return /*#__PURE__*/React.createElement("form", {
802
848
  method: "post",
803
- className: classNames([styles$6.container, 'w-100', 'border', 'border-dark', 'rounded', _defineProperty({}, className, className !== null)]),
849
+ className: classNames([styles$7.container, 'w-100', 'border', 'border-dark', 'rounded', _defineProperty({}, className, className !== null)]),
804
850
  onSubmit: function onSubmit(e) {
805
851
  return e.preventDefault();
806
852
  }
@@ -813,7 +859,7 @@ var Search = function Search(_ref) {
813
859
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
814
860
  icon: loading ? faSpinner : faSearch
815
861
  })), /*#__PURE__*/React.createElement("input", {
816
- className: classNames([styles$6.input, 'form-control', {
862
+ className: classNames([styles$7.input, 'form-control', {
817
863
  'bg-light': !!value,
818
864
  'text-dark': value
819
865
  }]),
@@ -831,8 +877,59 @@ var Search = function Search(_ref) {
831
877
  onBlur: onBlur
832
878
  }), null));
833
879
  };
834
- Search.propTypes = propTypes$6;
835
- Search.defaultProps = defaultProps$6;
880
+ Search.propTypes = propTypes$7;
881
+ Search.defaultProps = defaultProps$7;
882
+
883
+ var styles$6 = {"container":"micromag-media-gallery-forms-tag-dropdown-container","select":"micromag-media-gallery-forms-tag-dropdown-select"};
884
+
885
+ var propTypes$6 = {
886
+ tags: PropTypes$1.arrayOf(PropTypes$1.shape({
887
+ label: PropTypes$1.string,
888
+ value: PropTypes$1.oneOf([PropTypes$1.string, PropTypes$1.node]),
889
+ active: PropTypes$1.bool
890
+ })),
891
+ parent: PropTypes$1.string,
892
+ onChange: PropTypes$1.func,
893
+ className: PropTypes$1.string
894
+ };
895
+ var defaultProps$6 = {
896
+ tags: null,
897
+ parent: null,
898
+ onChange: null,
899
+ className: null
900
+ };
901
+ var TagDropdown = function TagDropdown(_ref) {
902
+ var tags = _ref.tags,
903
+ parent = _ref.parent,
904
+ onChange = _ref.onChange,
905
+ className = _ref.className;
906
+ var onItemChange = useCallback(function (e) {
907
+ var val = e.target.dataset.value || null;
908
+ onChange(val, parent);
909
+ }, [onChange, parent]);
910
+ return /*#__PURE__*/React.createElement("div", {
911
+ className: classNames([styles$6.container, 'd-flex', 'mt-1', _defineProperty({}, className, className !== null)])
912
+ }, /*#__PURE__*/React.createElement("select", {
913
+ className: classNames(['form-select', styles$6.select])
914
+ }, tags !== null ? tags.map(function (_ref3) {
915
+ var label = _ref3.label,
916
+ value = _ref3.value,
917
+ active = _ref3.active;
918
+ var itemClassNames = classNames([styles$6.tag, 'fs-6', {
919
+ 'btn-primary': active === true
920
+ }]);
921
+ return /*#__PURE__*/React.createElement("option", {
922
+ className: itemClassNames,
923
+ type: "button",
924
+ key: "option-".concat(value),
925
+ onClick: onItemChange,
926
+ "data-value": value,
927
+ value: value
928
+ }, label);
929
+ }) : null));
930
+ };
931
+ TagDropdown.propTypes = propTypes$6;
932
+ TagDropdown.defaultProps = defaultProps$6;
836
933
 
837
934
  var styles$5 = {"container":"micromag-media-gallery-forms-tag-section-container","tag":"micromag-media-gallery-forms-tag-section-tag"};
838
935
 
@@ -867,7 +964,7 @@ var TagSection = function TagSection(_ref) {
867
964
  var label = _ref3.label,
868
965
  value = _ref3.value,
869
966
  active = _ref3.active;
870
- var itemClassNames = classNames([styles$5.tag, 'btn', 'btn-sm', 'mb-1', 'me-1', 'p-1', 'btn-dark', {
967
+ var itemClassNames = classNames([styles$5.tag, 'btn', 'btn-sm', 'mb-1', 'me-1', 'p-1', 'btn-secondary', 'text-truncate', {
871
968
  'btn-primary': active === true
872
969
  // 'btn-outline-light': active === false,
873
970
  }]);
@@ -946,9 +1043,9 @@ var SearchFilters = function SearchFilters(_ref) {
946
1043
  return /*#__PURE__*/React.createElement("div", {
947
1044
  className: classNames([styles$4.container, 'flex-nowrap', 'mt-1', _defineProperty({}, className, className !== null)])
948
1045
  }, activeSections.length > 0 ? /*#__PURE__*/React.createElement("div", {
949
- className: classNames(['bg-light', 'flex-nowrap', 'text-dark', 'py-1', 'px-3', 'rounded'])
1046
+ className: classNames(['bg-dark', 'flex-nowrap', 'text-dark', 'py-1', 'px-3', 'rounded'])
950
1047
  }, /*#__PURE__*/React.createElement(Button, {
951
- className: classNames([styles$4.closeBtn, 'py-1', 'px-1', 'text-dark']),
1048
+ className: classNames([styles$4.closeBtn, 'py-1', 'px-1', 'text-light']),
952
1049
  icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {
953
1050
  icon: faTimes
954
1051
  }),
@@ -969,7 +1066,12 @@ var SearchFilters = function SearchFilters(_ref) {
969
1066
  className: classNames([styles$4.section, 'py-2'])
970
1067
  }, /*#__PURE__*/React.createElement("p", {
971
1068
  className: classNames([styles$4.title, 'm-0'])
972
- }, label), /*#__PURE__*/React.createElement(TagSection, {
1069
+ }, label), value === 'tags' || value === 'recent' || value === 'users' ? /*#__PURE__*/React.createElement(TagDropdown, {
1070
+ className: classNames([styles$4.tags]),
1071
+ tags: items,
1072
+ parent: value,
1073
+ onChange: onSectionChange
1074
+ }) : /*#__PURE__*/React.createElement(TagSection, {
973
1075
  className: classNames([styles$4.tags]),
974
1076
  tags: items,
975
1077
  parent: value,
@@ -1111,7 +1213,9 @@ var propTypes$1 = {
1111
1213
  selectedMedia: PropTypes.media,
1112
1214
  storyId: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]),
1113
1215
  tags: PropTypes.tags,
1114
- authors: PropTypes.authors,
1216
+ authors: PropTypes$1.arrayOf(PropTypes$1.shape({
1217
+ name: PropTypes$1.string
1218
+ })),
1115
1219
  loading: PropTypes$1.bool,
1116
1220
  withoutSource: PropTypes$1.bool,
1117
1221
  withoutType: PropTypes$1.bool,
@@ -1457,6 +1561,7 @@ function MediaGallery(_ref) {
1457
1561
  navbarClassName = _ref.navbarClassName,
1458
1562
  onClickMedia = _ref.onClickMedia,
1459
1563
  onClearMedia = _ref.onClearMedia;
1564
+ var intl = useIntl();
1460
1565
  // Base state for filters
1461
1566
  var defaultFilters = {
1462
1567
  type: type,
@@ -1493,12 +1598,16 @@ function MediaGallery(_ref) {
1493
1598
  }, [setFiltersValue, setQueryValue, throttle]);
1494
1599
 
1495
1600
  // Items
1496
- var _useMedias = useMedias(queryValue, 1, 100, _objectSpread({}, initialMedias !== null ? {
1601
+ var _useMedias = useMedias(queryValue, 1, 30, _objectSpread({}, initialMedias !== null ? {
1497
1602
  items: initialMedias
1498
1603
  } : null)),
1499
1604
  loadedMedias = _useMedias.allMedias,
1500
1605
  _useMedias$loading = _useMedias.loading,
1501
- loading = _useMedias$loading === void 0 ? false : _useMedias$loading;
1606
+ loading = _useMedias$loading === void 0 ? false : _useMedias$loading,
1607
+ _useMedias$loadNextPa = _useMedias.loadNextPage,
1608
+ loadNextPage = _useMedias$loadNextPa === void 0 ? null : _useMedias$loadNextPa,
1609
+ _useMedias$allLoaded = _useMedias.allLoaded,
1610
+ allLoaded = _useMedias$allLoaded === void 0 ? false : _useMedias$allLoaded;
1502
1611
 
1503
1612
  // Temporary type filter
1504
1613
  var _useState5 = useState([]),
@@ -1522,13 +1631,19 @@ function MediaGallery(_ref) {
1522
1631
  onClickMedia(media);
1523
1632
  }
1524
1633
  }, [isPicker, setMetadataMedia, onClickMedia]);
1634
+ var refresh = useCallback(function () {
1635
+ // TODO: refactor useItems to enable this
1636
+ // setPageNumber(1);
1637
+ // setQueryValue({ ...defaultFilters, ...queryValue });
1638
+ }, [defaultFilters, queryValue, setQueryValue]);
1525
1639
  var onClickItemInfo = useCallback(function (media) {
1526
1640
  return setMetadataMedia(media);
1527
1641
  }, [setMetadataMedia]);
1528
1642
  var onMetadataClickClose = useCallback(function () {
1529
- return setMetadataMedia(null);
1530
- }, [setMetadataMedia]);
1531
-
1643
+ setMetadataMedia(null);
1644
+ refresh();
1645
+ }, [refresh, setMetadataMedia]);
1646
+ // console.log(loadedMedias);
1532
1647
  // Navigation
1533
1648
  var onClickBack = useCallback(function () {
1534
1649
  return setMetadataMedia(null);
@@ -1597,9 +1712,22 @@ function MediaGallery(_ref) {
1597
1712
  isSmall: isSmall,
1598
1713
  onClickItem: onClickItem,
1599
1714
  onClickItemInfo: onClickItemInfo
1600
- }) : null, loading || uploading ? /*#__PURE__*/React.createElement(Spinner, {
1715
+ }) : null, !allLoaded ? /*#__PURE__*/React.createElement("div", {
1716
+ className: "w-100 mb-2"
1717
+ }, loading || uploading ? /*#__PURE__*/React.createElement(Spinner, {
1601
1718
  className: styles.loading
1602
- }) : null), /*#__PURE__*/React.createElement("div", {
1719
+ }) : null, /*#__PURE__*/React.createElement(Button, {
1720
+ className: "d-block mx-auto",
1721
+ theme: "secondary",
1722
+ outline: true,
1723
+ onClick: loadNextPage
1724
+ }, intl.formatMessage({
1725
+ id: "ur6G0U",
1726
+ defaultMessage: [{
1727
+ "type": 0,
1728
+ "value": "Load more"
1729
+ }]
1730
+ }))) : null), /*#__PURE__*/React.createElement("div", {
1603
1731
  className: styles.mediaMetadata
1604
1732
  }, /*#__PURE__*/React.createElement(MediaMetadata, {
1605
1733
  media: metadataMedia,
package/lib/index.js CHANGED
@@ -9,6 +9,7 @@ var isArray = require('lodash/isArray');
9
9
  var PropTypes = require('prop-types');
10
10
  var React = require('react');
11
11
  var reactDom = require('react-dom');
12
+ var reactIntl = require('react-intl');
12
13
  var core = require('@micromag/core');
13
14
  var components = require('@micromag/core/components');
14
15
  var contexts = require('@micromag/core/contexts');
@@ -21,7 +22,6 @@ var faTimesCircle = require('@fortawesome/free-solid-svg-icons/faTimesCircle');
21
22
  var reactFontawesome = require('@fortawesome/react-fontawesome');
22
23
  var uniqBy = require('lodash/uniqBy');
23
24
  var prettyBytes = require('pretty-bytes');
24
- var reactIntl = require('react-intl');
25
25
  var faChevronLeft = require('@fortawesome/free-solid-svg-icons/faChevronLeft');
26
26
  var faPlus = require('@fortawesome/free-solid-svg-icons/faPlus');
27
27
  var faTimes = require('@fortawesome/free-solid-svg-icons/faTimes');
@@ -55,9 +55,9 @@ var middleEllipsis = function middleEllipsis(string, maxLength) {
55
55
  return "".concat(string.substring(0, midpoint - lstrip), "...").concat(string.substring(midpoint + rstrip));
56
56
  };
57
57
 
58
- var styles$a = {"container":"micromag-media-gallery-items-gallery-item-container","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","closeIcon":"micromag-media-gallery-items-gallery-item-closeIcon"};
58
+ var styles$b = {"container":"micromag-media-gallery-items-gallery-item-container","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","closeIcon":"micromag-media-gallery-items-gallery-item-closeIcon"};
59
59
 
60
- var propTypes$a = {
60
+ var propTypes$b = {
61
61
  item: core.PropTypes.media,
62
62
  width: PropTypes__default["default"].number,
63
63
  selected: PropTypes__default["default"].bool,
@@ -66,7 +66,7 @@ var propTypes$a = {
66
66
  onClick: PropTypes__default["default"].func,
67
67
  onClickInfo: PropTypes__default["default"].func
68
68
  };
69
- var defaultProps$a = {
69
+ var defaultProps$b = {
70
70
  item: null,
71
71
  width: 0,
72
72
  selected: false,
@@ -97,50 +97,50 @@ var GalleryItem = function GalleryItem(_ref) {
97
97
  return /*#__PURE__*/React__default["default"].createElement(components.Card, {
98
98
  image: /*#__PURE__*/React__default["default"].createElement("button", {
99
99
  type: "button",
100
- className: classNames__default["default"](['d-block', 'position-relative', 'p-0', 'border-0', 'w-100', 'text-start', 'bg-dark', 'text-black', styles$a.imageButton]),
100
+ className: classNames__default["default"](['d-block', 'position-relative', 'p-0', 'border-0', 'w-100', 'text-start', 'bg-dark', 'text-black', styles$b.imageButton]),
101
101
  onClick: onClick
102
102
  }, /*#__PURE__*/React__default["default"].createElement("div", {
103
- className: classNames__default["default"](['card-img-top', styles$a.image]),
103
+ className: classNames__default["default"](['card-img-top', styles$b.image]),
104
104
  style: {
105
105
  backgroundImage: thumbnail !== null ? "url('".concat(thumbnail, "')") : null
106
106
  }
107
107
  })),
108
108
  beforeBody: /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, withInfoButton ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
109
- className: styles$a.infoButton,
109
+ className: styles$b.infoButton,
110
110
  onClick: onClickInfo,
111
111
  withoutStyle: true
112
112
  }, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
113
113
  icon: faInfoCircle.faInfoCircle,
114
- className: styles$a.icon
114
+ className: styles$b.icon
115
115
  })) : null, selected ? /*#__PURE__*/React__default["default"].createElement("div", {
116
- className: classNames__default["default"](['text-danger', styles$a.closeIcon])
116
+ className: classNames__default["default"](['text-danger', styles$b.closeIcon])
117
117
  }, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
118
118
  icon: faTimesCircle.faTimesCircle,
119
- className: styles$a.icon
119
+ className: styles$b.icon
120
120
  })) : null),
121
121
  footer: /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, type === 'video' ? /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
122
- className: styles$a.icon,
122
+ className: styles$b.icon,
123
123
  icon: faPlayCircle.faPlayCircle
124
124
  }) : null, type === 'audio' ? /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
125
- className: styles$a.icon,
125
+ className: styles$b.icon,
126
126
  icon: faHeadphonesAlt.faHeadphonesAlt
127
127
  }) : null, /*#__PURE__*/React__default["default"].createElement("div", {
128
- className: classNames__default["default"](['text-truncate', styles$a.label])
128
+ className: classNames__default["default"](['text-truncate', styles$b.label])
129
129
  }, /*#__PURE__*/React__default["default"].createElement("small", null, title), size !== null ? /*#__PURE__*/React__default["default"].createElement("small", {
130
130
  className: "text-muted ms-1"
131
131
  }, size) : null)),
132
132
  theme: selected ? 'primary' : null,
133
- className: classNames__default["default"]([styles$a.container, _defineProperty__default["default"]({}, className, className !== null)]),
134
- footerClassName: classNames__default["default"](['p-1', styles$a.footer]),
133
+ className: classNames__default["default"]([styles$b.container, _defineProperty__default["default"]({}, className, className !== null)]),
134
+ footerClassName: classNames__default["default"](['p-1', styles$b.footer]),
135
135
  onClickFooter: onClick
136
136
  });
137
137
  };
138
- GalleryItem.propTypes = propTypes$a;
139
- GalleryItem.defaultProps = defaultProps$a;
138
+ GalleryItem.propTypes = propTypes$b;
139
+ GalleryItem.defaultProps = defaultProps$b;
140
140
 
141
- var styles$9 = {};
141
+ var styles$a = {};
142
142
 
143
- var propTypes$9 = {
143
+ var propTypes$a = {
144
144
  items: core.PropTypes.medias,
145
145
  selectedItem: core.PropTypes.media,
146
146
  withInfoButton: PropTypes__default["default"].bool,
@@ -150,7 +150,7 @@ var propTypes$9 = {
150
150
  onClickItem: PropTypes__default["default"].func,
151
151
  onClickItemInfo: PropTypes__default["default"].func
152
152
  };
153
- var defaultProps$9 = {
153
+ var defaultProps$a = {
154
154
  items: null,
155
155
  selectedItem: null,
156
156
  withInfoButton: false,
@@ -182,7 +182,7 @@ function Gallery(_ref) {
182
182
  return items;
183
183
  }, [selectedFirst, selectedItem, items]);
184
184
  return /*#__PURE__*/React__default["default"].createElement("div", {
185
- className: classNames__default["default"]([styles$9.container, 'p-2', _defineProperty__default["default"]({}, className, className !== null)]),
185
+ className: classNames__default["default"]([styles$a.container, 'p-2', _defineProperty__default["default"]({}, className, className !== null)]),
186
186
  ref: ref
187
187
  }, /*#__PURE__*/React__default["default"].createElement("div", {
188
188
  className: classNames__default["default"](['row', 'mx-n1', 'row-cols-2', {
@@ -206,24 +206,27 @@ function Gallery(_ref) {
206
206
  }));
207
207
  })));
208
208
  }
209
- Gallery.propTypes = propTypes$9;
210
- Gallery.defaultProps = defaultProps$9;
209
+ Gallery.propTypes = propTypes$a;
210
+ Gallery.defaultProps = defaultProps$a;
211
211
 
212
- var styles$8 = {"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"};
212
+ 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"};
213
213
 
214
- var propTypes$8 = {
214
+ var propTypes$9 = {
215
215
  media: core.PropTypes.media,
216
216
  tags: core.PropTypes.tags,
217
+ onClickClose: PropTypes__default["default"].func,
217
218
  className: PropTypes__default["default"].string
218
219
  };
219
- var defaultProps$8 = {
220
+ var defaultProps$9 = {
220
221
  media: null,
221
222
  tags: [],
223
+ onClickClose: null,
222
224
  className: null
223
225
  };
224
226
  function MediaMetadata(_ref) {
225
227
  var media = _ref.media,
226
228
  allTags = _ref.tags,
229
+ onClickClose = _ref.onClickClose,
227
230
  className = _ref.className;
228
231
  var _ref2 = media || {},
229
232
  mediaId = _ref2.id,
@@ -255,6 +258,8 @@ function MediaMetadata(_ref) {
255
258
  mediaTags = _ref3$tags === void 0 ? [] : _ref3$tags;
256
259
  var _useMediaUpdate = data.useMediaUpdate(),
257
260
  update = _useMediaUpdate.update;
261
+ var _useMediaDelete = data.useMediaDelete(),
262
+ deleteMedia = _useMediaDelete.deleteMedia;
258
263
  var getOptionLabel = React.useCallback(function (_ref4) {
259
264
  var name = _ref4.name;
260
265
  return name;
@@ -309,8 +314,29 @@ function MediaMetadata(_ref) {
309
314
  description: description
310
315
  }).then(function () {
311
316
  setChanged(false);
317
+ if (onClickClose !== null) {
318
+ onClickClose();
319
+ }
320
+ });
321
+ }, [mediaId, name, tags, description, metadata, update, onClickClose]);
322
+ var _useState9 = React.useState(null),
323
+ _useState10 = _slicedToArray__default["default"](_useState9, 2),
324
+ deletedState = _useState10[0],
325
+ setDeletedState = _useState10[1];
326
+ React.useEffect(function () {
327
+ setDeletedState(null);
328
+ }, [mediaId]);
329
+ var onDelete = React.useCallback(function () {
330
+ return deleteMedia(mediaId).then(function () {
331
+ setChanged(false);
332
+ setDeletedState(true);
333
+ if (onClickClose !== null) {
334
+ onClickClose();
335
+ }
336
+ })["catch"](function () {
337
+ setDeletedState(false);
312
338
  });
313
- }, [mediaId, name, tags, description, metadata, update]);
339
+ }, [mediaId, deleteMedia, onClickClose]);
314
340
  React.useEffect(function () {
315
341
  if (media !== null) {
316
342
  setTags(mediaTags);
@@ -326,25 +352,25 @@ function MediaMetadata(_ref) {
326
352
  var TextField = contexts.useFieldComponent('text');
327
353
  var TokensField = contexts.useFieldComponent('tokens');
328
354
  return /*#__PURE__*/React__default["default"].createElement("div", {
329
- className: classNames__default["default"]([styles$8.container, _defineProperty__default["default"]({}, className, className)])
355
+ className: classNames__default["default"]([styles$9.container, _defineProperty__default["default"]({}, className, className)])
330
356
  }, /*#__PURE__*/React__default["default"].createElement("div", {
331
357
  className: classNames__default["default"](['position-relative', _defineProperty__default["default"]({
332
358
  'bg-light': type === 'audio',
333
359
  'bg-black': type === 'image'
334
- }, styles$8.video, type === 'video')])
360
+ }, styles$9.video, type === 'video')])
335
361
  }, type === 'video' ? /*#__PURE__*/React__default["default"].createElement("video", {
336
- className: styles$8.player,
362
+ className: styles$9.player,
337
363
  controls: true,
338
364
  src: url
339
365
  }) : null, type === 'audio' ? /*#__PURE__*/React__default["default"].createElement("div", {
340
- className: styles$8.audio
366
+ className: styles$9.audio
341
367
  }, /*#__PURE__*/React__default["default"].createElement("audio", {
342
- className: styles$8.player,
368
+ className: styles$9.player,
343
369
  controls: true,
344
370
  src: url
345
371
  })) : null, type !== 'video' ? /*#__PURE__*/React__default["default"].createElement("img", {
346
372
  src: thumbnail,
347
- className: styles$8.image,
373
+ className: styles$9.image,
348
374
  alt: filename
349
375
  }) : null), /*#__PURE__*/React__default["default"].createElement("div", {
350
376
  className: "p-2"
@@ -514,10 +540,30 @@ function MediaMetadata(_ref) {
514
540
  }]
515
541
  })), /*#__PURE__*/React__default["default"].createElement("div", {
516
542
  className: "col"
517
- }, /*#__PURE__*/React__default["default"].createElement("small", null, user.name)))) : null)));
543
+ }, /*#__PURE__*/React__default["default"].createElement("small", null, user.name)))) : null), /*#__PURE__*/React__default["default"].createElement("div", {
544
+ className: "py-3"
545
+ }, /*#__PURE__*/React__default["default"].createElement(components.Button, {
546
+ theme: "danger",
547
+ outline: true,
548
+ onClick: onDelete
549
+ }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
550
+ id: "/KQ87r",
551
+ defaultMessage: [{
552
+ "type": 0,
553
+ "value": "Delete media"
554
+ }]
555
+ })), deletedState === false ? /*#__PURE__*/React__default["default"].createElement("p", {
556
+ className: "pt-1 text-danger"
557
+ }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
558
+ id: "k+edUi",
559
+ defaultMessage: [{
560
+ "type": 0,
561
+ "value": "Sorry, this media is in use and could not be deleted."
562
+ }]
563
+ })) : null)));
518
564
  }
519
- MediaMetadata.propTypes = propTypes$8;
520
- MediaMetadata.defaultProps = defaultProps$8;
565
+ MediaMetadata.propTypes = propTypes$9;
566
+ MediaMetadata.defaultProps = defaultProps$9;
521
567
 
522
568
  var useSearchFilters = function useSearchFilters(_ref) {
523
569
  var _ref$recent = _ref.recent,
@@ -680,9 +726,9 @@ PropTypes__default["default"].shape({
680
726
  usage: PropTypes__default["default"].arrayOf(PropTypes__default["default"].oneOf(['used', 'unused']))
681
727
  });
682
728
 
683
- var styles$7 = {"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"};
729
+ 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"};
684
730
 
685
- var propTypes$7 = {
731
+ var propTypes$8 = {
686
732
  value: PropTypes__default["default"].string,
687
733
  items: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
688
734
  label: core.PropTypes.label,
@@ -692,7 +738,7 @@ var propTypes$7 = {
692
738
  onChange: PropTypes__default["default"].func,
693
739
  className: PropTypes__default["default"].string
694
740
  };
695
- var defaultProps$7 = {
741
+ var defaultProps$8 = {
696
742
  value: null,
697
743
  items: null,
698
744
  onChange: null,
@@ -725,9 +771,9 @@ function DropdownSection(_ref) {
725
771
  onChange(val);
726
772
  }, [setOpen]);
727
773
  return items !== null && items.length > 1 ? /*#__PURE__*/React__default["default"].createElement("div", {
728
- className: classNames__default["default"]([styles$7.container, 'dropdown', _defineProperty__default["default"]({}, className, className !== null)])
774
+ className: classNames__default["default"]([styles$8.container, 'dropdown', _defineProperty__default["default"]({}, className, className !== null)])
729
775
  }, /*#__PURE__*/React__default["default"].createElement("span", {
730
- className: styles$7.label
776
+ className: styles$8.label
731
777
  }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
732
778
  id: "9ZdD+Q",
733
779
  defaultMessage: [{
@@ -735,7 +781,7 @@ function DropdownSection(_ref) {
735
781
  "value": "Library for"
736
782
  }]
737
783
  })), /*#__PURE__*/React__default["default"].createElement("button", {
738
- className: classNames__default["default"]([styles$7.dropdownToggle, 'dropdown-toggle', {
784
+ className: classNames__default["default"]([styles$8.dropdownToggle, 'dropdown-toggle', {
739
785
  open: open === true
740
786
  }]),
741
787
  type: "button",
@@ -748,7 +794,7 @@ function DropdownSection(_ref) {
748
794
  "value": "All"
749
795
  }]
750
796
  })), /*#__PURE__*/React__default["default"].createElement("div", {
751
- className: classNames__default["default"]([styles$7.dropdown, 'dropdown-menu', {
797
+ className: classNames__default["default"]([styles$8.dropdown, 'dropdown-menu', {
752
798
  show: open === true
753
799
  }])
754
800
  }, items.map(function (_ref3) {
@@ -766,12 +812,12 @@ function DropdownSection(_ref) {
766
812
  }, label);
767
813
  }))) : null;
768
814
  }
769
- DropdownSection.propTypes = propTypes$7;
770
- DropdownSection.defaultProps = defaultProps$7;
815
+ DropdownSection.propTypes = propTypes$8;
816
+ DropdownSection.defaultProps = defaultProps$8;
771
817
 
772
- var styles$6 = {"container":"micromag-media-gallery-forms-search-container","input":"micromag-media-gallery-forms-search-input","active":"micromag-media-gallery-forms-search-active"};
818
+ var styles$7 = {"container":"micromag-media-gallery-forms-search-container","input":"micromag-media-gallery-forms-search-input","active":"micromag-media-gallery-forms-search-active"};
773
819
 
774
- var propTypes$6 = {
820
+ var propTypes$7 = {
775
821
  value: PropTypes__default["default"].string,
776
822
  loading: PropTypes__default["default"].bool,
777
823
  onChange: PropTypes__default["default"].func,
@@ -780,7 +826,7 @@ var propTypes$6 = {
780
826
  onClickIcon: PropTypes__default["default"].func,
781
827
  className: PropTypes__default["default"].string
782
828
  };
783
- var defaultProps$6 = {
829
+ var defaultProps$7 = {
784
830
  value: null,
785
831
  loading: false,
786
832
  onChange: null,
@@ -816,7 +862,7 @@ var Search = function Search(_ref) {
816
862
  }, [onClickIcon]);
817
863
  return /*#__PURE__*/React__default["default"].createElement("form", {
818
864
  method: "post",
819
- className: classNames__default["default"]([styles$6.container, 'w-100', 'border', 'border-dark', 'rounded', _defineProperty__default["default"]({}, className, className !== null)]),
865
+ className: classNames__default["default"]([styles$7.container, 'w-100', 'border', 'border-dark', 'rounded', _defineProperty__default["default"]({}, className, className !== null)]),
820
866
  onSubmit: function onSubmit(e) {
821
867
  return e.preventDefault();
822
868
  }
@@ -829,7 +875,7 @@ var Search = function Search(_ref) {
829
875
  }, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
830
876
  icon: loading ? faSpinner.faSpinner : faSearch.faSearch
831
877
  })), /*#__PURE__*/React__default["default"].createElement("input", {
832
- className: classNames__default["default"]([styles$6.input, 'form-control', {
878
+ className: classNames__default["default"]([styles$7.input, 'form-control', {
833
879
  'bg-light': !!value,
834
880
  'text-dark': value
835
881
  }]),
@@ -847,8 +893,59 @@ var Search = function Search(_ref) {
847
893
  onBlur: onBlur
848
894
  }), null));
849
895
  };
850
- Search.propTypes = propTypes$6;
851
- Search.defaultProps = defaultProps$6;
896
+ Search.propTypes = propTypes$7;
897
+ Search.defaultProps = defaultProps$7;
898
+
899
+ var styles$6 = {"container":"micromag-media-gallery-forms-tag-dropdown-container","select":"micromag-media-gallery-forms-tag-dropdown-select"};
900
+
901
+ var propTypes$6 = {
902
+ tags: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
903
+ label: PropTypes__default["default"].string,
904
+ value: PropTypes__default["default"].oneOf([PropTypes__default["default"].string, PropTypes__default["default"].node]),
905
+ active: PropTypes__default["default"].bool
906
+ })),
907
+ parent: PropTypes__default["default"].string,
908
+ onChange: PropTypes__default["default"].func,
909
+ className: PropTypes__default["default"].string
910
+ };
911
+ var defaultProps$6 = {
912
+ tags: null,
913
+ parent: null,
914
+ onChange: null,
915
+ className: null
916
+ };
917
+ var TagDropdown = function TagDropdown(_ref) {
918
+ var tags = _ref.tags,
919
+ parent = _ref.parent,
920
+ onChange = _ref.onChange,
921
+ className = _ref.className;
922
+ var onItemChange = React.useCallback(function (e) {
923
+ var val = e.target.dataset.value || null;
924
+ onChange(val, parent);
925
+ }, [onChange, parent]);
926
+ return /*#__PURE__*/React__default["default"].createElement("div", {
927
+ className: classNames__default["default"]([styles$6.container, 'd-flex', 'mt-1', _defineProperty__default["default"]({}, className, className !== null)])
928
+ }, /*#__PURE__*/React__default["default"].createElement("select", {
929
+ className: classNames__default["default"](['form-select', styles$6.select])
930
+ }, tags !== null ? tags.map(function (_ref3) {
931
+ var label = _ref3.label,
932
+ value = _ref3.value,
933
+ active = _ref3.active;
934
+ var itemClassNames = classNames__default["default"]([styles$6.tag, 'fs-6', {
935
+ 'btn-primary': active === true
936
+ }]);
937
+ return /*#__PURE__*/React__default["default"].createElement("option", {
938
+ className: itemClassNames,
939
+ type: "button",
940
+ key: "option-".concat(value),
941
+ onClick: onItemChange,
942
+ "data-value": value,
943
+ value: value
944
+ }, label);
945
+ }) : null));
946
+ };
947
+ TagDropdown.propTypes = propTypes$6;
948
+ TagDropdown.defaultProps = defaultProps$6;
852
949
 
853
950
  var styles$5 = {"container":"micromag-media-gallery-forms-tag-section-container","tag":"micromag-media-gallery-forms-tag-section-tag"};
854
951
 
@@ -883,7 +980,7 @@ var TagSection = function TagSection(_ref) {
883
980
  var label = _ref3.label,
884
981
  value = _ref3.value,
885
982
  active = _ref3.active;
886
- var itemClassNames = classNames__default["default"]([styles$5.tag, 'btn', 'btn-sm', 'mb-1', 'me-1', 'p-1', 'btn-dark', {
983
+ var itemClassNames = classNames__default["default"]([styles$5.tag, 'btn', 'btn-sm', 'mb-1', 'me-1', 'p-1', 'btn-secondary', 'text-truncate', {
887
984
  'btn-primary': active === true
888
985
  // 'btn-outline-light': active === false,
889
986
  }]);
@@ -962,9 +1059,9 @@ var SearchFilters = function SearchFilters(_ref) {
962
1059
  return /*#__PURE__*/React__default["default"].createElement("div", {
963
1060
  className: classNames__default["default"]([styles$4.container, 'flex-nowrap', 'mt-1', _defineProperty__default["default"]({}, className, className !== null)])
964
1061
  }, activeSections.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
965
- className: classNames__default["default"](['bg-light', 'flex-nowrap', 'text-dark', 'py-1', 'px-3', 'rounded'])
1062
+ className: classNames__default["default"](['bg-dark', 'flex-nowrap', 'text-dark', 'py-1', 'px-3', 'rounded'])
966
1063
  }, /*#__PURE__*/React__default["default"].createElement(components.Button, {
967
- className: classNames__default["default"]([styles$4.closeBtn, 'py-1', 'px-1', 'text-dark']),
1064
+ className: classNames__default["default"]([styles$4.closeBtn, 'py-1', 'px-1', 'text-light']),
968
1065
  icon: /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
969
1066
  icon: faTimes.faTimes
970
1067
  }),
@@ -985,7 +1082,12 @@ var SearchFilters = function SearchFilters(_ref) {
985
1082
  className: classNames__default["default"]([styles$4.section, 'py-2'])
986
1083
  }, /*#__PURE__*/React__default["default"].createElement("p", {
987
1084
  className: classNames__default["default"]([styles$4.title, 'm-0'])
988
- }, label), /*#__PURE__*/React__default["default"].createElement(TagSection, {
1085
+ }, label), value === 'tags' || value === 'recent' || value === 'users' ? /*#__PURE__*/React__default["default"].createElement(TagDropdown, {
1086
+ className: classNames__default["default"]([styles$4.tags]),
1087
+ tags: items,
1088
+ parent: value,
1089
+ onChange: onSectionChange
1090
+ }) : /*#__PURE__*/React__default["default"].createElement(TagSection, {
989
1091
  className: classNames__default["default"]([styles$4.tags]),
990
1092
  tags: items,
991
1093
  parent: value,
@@ -1127,7 +1229,9 @@ var propTypes$1 = {
1127
1229
  selectedMedia: core.PropTypes.media,
1128
1230
  storyId: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
1129
1231
  tags: core.PropTypes.tags,
1130
- authors: core.PropTypes.authors,
1232
+ authors: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
1233
+ name: PropTypes__default["default"].string
1234
+ })),
1131
1235
  loading: PropTypes__default["default"].bool,
1132
1236
  withoutSource: PropTypes__default["default"].bool,
1133
1237
  withoutType: PropTypes__default["default"].bool,
@@ -1473,6 +1577,7 @@ function MediaGallery(_ref) {
1473
1577
  navbarClassName = _ref.navbarClassName,
1474
1578
  onClickMedia = _ref.onClickMedia,
1475
1579
  onClearMedia = _ref.onClearMedia;
1580
+ var intl = reactIntl.useIntl();
1476
1581
  // Base state for filters
1477
1582
  var defaultFilters = {
1478
1583
  type: type,
@@ -1509,12 +1614,16 @@ function MediaGallery(_ref) {
1509
1614
  }, [setFiltersValue, setQueryValue, throttle]);
1510
1615
 
1511
1616
  // Items
1512
- var _useMedias = data.useMedias(queryValue, 1, 100, _objectSpread__default["default"]({}, initialMedias !== null ? {
1617
+ var _useMedias = data.useMedias(queryValue, 1, 30, _objectSpread__default["default"]({}, initialMedias !== null ? {
1513
1618
  items: initialMedias
1514
1619
  } : null)),
1515
1620
  loadedMedias = _useMedias.allMedias,
1516
1621
  _useMedias$loading = _useMedias.loading,
1517
- loading = _useMedias$loading === void 0 ? false : _useMedias$loading;
1622
+ loading = _useMedias$loading === void 0 ? false : _useMedias$loading,
1623
+ _useMedias$loadNextPa = _useMedias.loadNextPage,
1624
+ loadNextPage = _useMedias$loadNextPa === void 0 ? null : _useMedias$loadNextPa,
1625
+ _useMedias$allLoaded = _useMedias.allLoaded,
1626
+ allLoaded = _useMedias$allLoaded === void 0 ? false : _useMedias$allLoaded;
1518
1627
 
1519
1628
  // Temporary type filter
1520
1629
  var _useState5 = React.useState([]),
@@ -1538,13 +1647,19 @@ function MediaGallery(_ref) {
1538
1647
  onClickMedia(media);
1539
1648
  }
1540
1649
  }, [isPicker, setMetadataMedia, onClickMedia]);
1650
+ var refresh = React.useCallback(function () {
1651
+ // TODO: refactor useItems to enable this
1652
+ // setPageNumber(1);
1653
+ // setQueryValue({ ...defaultFilters, ...queryValue });
1654
+ }, [defaultFilters, queryValue, setQueryValue]);
1541
1655
  var onClickItemInfo = React.useCallback(function (media) {
1542
1656
  return setMetadataMedia(media);
1543
1657
  }, [setMetadataMedia]);
1544
1658
  var onMetadataClickClose = React.useCallback(function () {
1545
- return setMetadataMedia(null);
1546
- }, [setMetadataMedia]);
1547
-
1659
+ setMetadataMedia(null);
1660
+ refresh();
1661
+ }, [refresh, setMetadataMedia]);
1662
+ // console.log(loadedMedias);
1548
1663
  // Navigation
1549
1664
  var onClickBack = React.useCallback(function () {
1550
1665
  return setMetadataMedia(null);
@@ -1613,9 +1728,22 @@ function MediaGallery(_ref) {
1613
1728
  isSmall: isSmall,
1614
1729
  onClickItem: onClickItem,
1615
1730
  onClickItemInfo: onClickItemInfo
1616
- }) : null, loading || uploading ? /*#__PURE__*/React__default["default"].createElement(components.Spinner, {
1731
+ }) : null, !allLoaded ? /*#__PURE__*/React__default["default"].createElement("div", {
1732
+ className: "w-100 mb-2"
1733
+ }, loading || uploading ? /*#__PURE__*/React__default["default"].createElement(components.Spinner, {
1617
1734
  className: styles.loading
1618
- }) : null), /*#__PURE__*/React__default["default"].createElement("div", {
1735
+ }) : null, /*#__PURE__*/React__default["default"].createElement(components.Button, {
1736
+ className: "d-block mx-auto",
1737
+ theme: "secondary",
1738
+ outline: true,
1739
+ onClick: loadNextPage
1740
+ }, intl.formatMessage({
1741
+ id: "ur6G0U",
1742
+ defaultMessage: [{
1743
+ "type": 0,
1744
+ "value": "Load more"
1745
+ }]
1746
+ }))) : null), /*#__PURE__*/React__default["default"].createElement("div", {
1619
1747
  className: styles.mediaMetadata
1620
1748
  }, /*#__PURE__*/React__default["default"].createElement(MediaMetadata, {
1621
1749
  media: metadataMedia,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/media-gallery",
3
- "version": "0.3.325",
3
+ "version": "0.3.329",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -59,8 +59,8 @@
59
59
  "@fortawesome/fontawesome-svg-core": "^1.2.32",
60
60
  "@fortawesome/free-solid-svg-icons": "^5.15.1",
61
61
  "@fortawesome/react-fontawesome": "^0.1.13",
62
- "@micromag/core": "^0.3.325",
63
- "@micromag/data": "^0.3.325",
62
+ "@micromag/core": "^0.3.329",
63
+ "@micromag/data": "^0.3.329",
64
64
  "bootstrap": "5.2.0-beta1",
65
65
  "change-case": "^4.1.2",
66
66
  "classnames": "^2.2.6",
@@ -73,5 +73,5 @@
73
73
  "publishConfig": {
74
74
  "access": "public"
75
75
  },
76
- "gitHead": "ce577e420f569aa7589ab2ae76eff2d99778ce86"
76
+ "gitHead": "2bfbc2ca564fd104e1df42dfa9314668fe48a000"
77
77
  }