@micromag/media-gallery 0.2.396 → 0.2.401

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.
@@ -2,8 +2,8 @@
2
2
  .micromag-media-gallery-items-gallery-item-container{position:relative;overflow:hidden;cursor:pointer}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-imageButton{-webkit-appearance:none;-moz-appearance:none;appearance:none}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-image{display:block;width:100%;height:0;padding-bottom:75%;background-repeat:no-repeat;background-position:50%;background-size:cover}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-icon{width:16px;height:16px;margin-right:5px}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-footer{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-ms-flex-align:center;align-items:center;border:0;background:rgba(0,0,0,0);color:inherit;text-align:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-footer .micromag-media-gallery-items-gallery-item-label{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-footer small{font-size:.8rem}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-closeIcon,.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-infoButton{position:absolute;top:0;padding:.5rem;color:#fff;-webkit-filter:drop-shadow(0 0 .75rem #1c1c1c);filter:drop-shadow(0 0 .75rem #1C1C1C)}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-closeIcon .micromag-media-gallery-items-gallery-item-icon,.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-infoButton .micromag-media-gallery-items-gallery-item-icon{width:1rem;height:1rem;margin-right:0}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-infoButton{left:0}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-closeIcon{right:0;pointer-events:none}
3
3
 
4
4
  .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;max-width:100%;min-height:200px;max-height:40vh;margin:0 auto}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-video{position:relative;height:40vh;min-height:200px;background-color:#1c1c1c}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-video .micromag-media-gallery-partials-media-metadata-player{position:absolute;top:0;left:0;width:100%;height:100%}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-audio{position:absolute;bottom:0;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}
5
- .micromag-media-gallery-partials-navbar-container{position:relative;padding:.5rem}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-inner{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%}
5
+ .micromag-media-gallery-partials-navbar-container{position:relative;padding:.5rem}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-inner{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-mediaPreview{width:25%}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-mediaPreview img{width:100%}
6
6
  .micromag-media-gallery-forms-dropdown-section-container .micromag-media-gallery-forms-dropdown-section-dropdownToggle{display:inline-block;position:relative;padding:0;border:0;background:rgba(0,0,0,0);color:inherit;font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.micromag-media-gallery-forms-dropdown-section-container{position:relative;padding-top:5px}.micromag-media-gallery-forms-dropdown-section-container .micromag-media-gallery-forms-dropdown-section-label{display:inline-block;padding-right:5px;font-weight:400}.micromag-media-gallery-forms-dropdown-section-container .micromag-media-gallery-forms-dropdown-section-dropdownToggle{font-weight:700}
7
- .micromag-media-gallery-forms-search-filters-container{position:absolute;z-index:1;right:0;left:0;width:100%;padding:0 15px;overflow:hidden}.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}
7
+ .micromag-media-gallery-forms-search-filters-container{position:absolute;z-index:1;right:0;left:0;width:100%;padding:0 15px;overflow:hidden}.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
8
  .micromag-media-gallery-buttons-close-container{display:inline-block;position:relative;padding:0;border:0;background:rgba(0,0,0,0);color:inherit;font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}
9
- .micromag-media-gallery-partials-active-filters-container{padding:10px 0}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-heading{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;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{margin-left:5px;outline:none;font-size:.7875rem}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-activeTag{margin-top:5px;margin-right:5px}
9
+ .micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-heading{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;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{margin-left:5px;outline:none;font-size:.7875rem}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-activeTag{margin-top:5px;margin-right:5px}
package/es/index.js CHANGED
@@ -3,14 +3,14 @@ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
3
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
4
4
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
5
  import { PropTypes } from '@micromag/core';
6
- import { Card, Button, Spinner, UploadModal } from '@micromag/core/components';
6
+ import { Card, Button, Media, Spinner, UploadModal } from '@micromag/core/components';
7
7
  import { useFieldComponent, useStory } from '@micromag/core/contexts';
8
8
  import { useMediaUpdate, useMediasRecentSearches, useMediaTags, useMediaAuthors, useMedias, useMediaCreate } from '@micromag/data';
9
9
  import classNames from 'classnames';
10
10
  import PropTypes$1 from 'prop-types';
11
11
  import React, { useMemo, useCallback, useState, useEffect, useRef } from 'react';
12
12
  import { useResizeObserver } from '@micromag/core/hooks';
13
- import { faInfoCircle, faTimesCircle, faPlayCircle, faHeadphonesAlt, faSearch, faTimes, faChevronLeft, faPlus } from '@fortawesome/free-solid-svg-icons';
13
+ import { faInfoCircle, faTimesCircle, faPlayCircle, faHeadphonesAlt, faSearch, faTimes, faPlus, faChevronLeft } from '@fortawesome/free-solid-svg-icons';
14
14
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
15
15
  import uniqBy from 'lodash/uniqBy';
16
16
  import prettyBytes from 'pretty-bytes';
@@ -680,7 +680,7 @@ PropTypes$1.shape({
680
680
  usage: PropTypes$1.arrayOf(PropTypes$1.oneOf(['used', 'unused']))
681
681
  });
682
682
 
683
- var styles$4 = {"container":"micromag-media-gallery-partials-navbar-container","inner":"micromag-media-gallery-partials-navbar-inner"};
683
+ var styles$4 = {"container":"micromag-media-gallery-partials-navbar-container","inner":"micromag-media-gallery-partials-navbar-inner","mediaPreview":"micromag-media-gallery-partials-navbar-mediaPreview"};
684
684
 
685
685
  var styles$3 = {"container":"micromag-media-gallery-forms-dropdown-section-container","dropdownToggle":"micromag-media-gallery-forms-dropdown-section-dropdownToggle","label":"micromag-media-gallery-forms-dropdown-section-label"};
686
686
 
@@ -906,19 +906,21 @@ var TagSection = function TagSection(_ref) {
906
906
  TagSection.propTypes = propTypes$5;
907
907
  TagSection.defaultProps = defaultProps$5;
908
908
 
909
- var styles$2 = {"container":"micromag-media-gallery-forms-search-filters-container","section":"micromag-media-gallery-forms-search-filters-section","title":"micromag-media-gallery-forms-search-filters-title","tags":"micromag-media-gallery-forms-search-filters-tags"};
909
+ var styles$2 = {"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"};
910
910
 
911
911
  var propTypes$4 = {
912
912
  filters: PropTypes$1.object,
913
913
  // eslint-disable-line
914
914
  sections: PropTypes$1.arrayOf(PropTypes$1.object),
915
915
  onChange: PropTypes$1.func,
916
+ onClose: PropTypes$1.func,
916
917
  className: PropTypes$1.string
917
918
  };
918
919
  var defaultProps$4 = {
919
920
  filters: null,
920
921
  sections: [],
921
922
  onChange: null,
923
+ onClose: null,
922
924
  className: null
923
925
  };
924
926
 
@@ -926,7 +928,9 @@ var SearchFilters = function SearchFilters(_ref) {
926
928
  var filters = _ref.filters,
927
929
  sections = _ref.sections,
928
930
  onChange = _ref.onChange,
931
+ onClose = _ref.onClose,
929
932
  className = _ref.className;
933
+ var intl = useIntl();
930
934
  var getActive = useCallback(function (items, sectionFilters) {
931
935
  return items !== null ? items.map(function (it) {
932
936
  return _objectSpread(_objectSpread({}, it), {}, {
@@ -967,7 +971,20 @@ var SearchFilters = function SearchFilters(_ref) {
967
971
  className: classNames([styles$2.container, 'flex-nowrap', 'mt-1', _defineProperty({}, className, className !== null)])
968
972
  }, activeSections.length > 0 ? /*#__PURE__*/React.createElement("div", {
969
973
  className: classNames(['bg-light', 'flex-nowrap', 'text-dark', 'py-1', 'px-3', 'rounded'])
970
- }, activeSections.map(function (_ref3) {
974
+ }, /*#__PURE__*/React.createElement(Button, {
975
+ className: classNames([styles$2.closeBtn, 'py-1', 'px-1', 'text-dark']),
976
+ icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {
977
+ icon: faTimes
978
+ }),
979
+ onClick: onClose,
980
+ title: intl.formatMessage({
981
+ "id": "yCXMzz",
982
+ "defaultMessage": [{
983
+ "type": 0,
984
+ "value": "Close"
985
+ }]
986
+ })
987
+ }), activeSections.map(function (_ref3) {
971
988
  var value = _ref3.value,
972
989
  label = _ref3.label,
973
990
  items = _ref3.items;
@@ -1121,14 +1138,16 @@ ActiveFilters.defaultProps = defaultProps$2;
1121
1138
  var propTypes$1 = {
1122
1139
  filters: filtersValue,
1123
1140
  media: PropTypes.media,
1141
+ selectedMedia: PropTypes.media,
1124
1142
  storyId: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]),
1125
1143
  tags: PropTypes.tags,
1126
1144
  authors: PropTypes.authors,
1127
- withoutTitle: PropTypes$1.bool,
1128
1145
  withoutSource: PropTypes$1.bool,
1129
1146
  withoutType: PropTypes$1.bool,
1130
1147
  onClickAdd: PropTypes$1.func,
1131
- // onClickCancel: PropTypes.func,
1148
+ onClickItem: PropTypes$1.func,
1149
+ onClickItemInfo: PropTypes$1.func,
1150
+ // onClickCancel: PropTypes.func, // TODO: still needed?
1132
1151
  onFocusSearch: PropTypes$1.func,
1133
1152
  onFiltersChange: PropTypes$1.func,
1134
1153
  onClickBack: PropTypes$1.func,
@@ -1137,13 +1156,15 @@ var propTypes$1 = {
1137
1156
  var defaultProps$1 = {
1138
1157
  filters: null,
1139
1158
  media: null,
1159
+ selectedMedia: null,
1140
1160
  storyId: null,
1141
1161
  tags: [],
1142
1162
  authors: [],
1143
- withoutTitle: false,
1144
1163
  withoutSource: false,
1145
1164
  withoutType: true,
1146
1165
  onClickAdd: null,
1166
+ onClickItem: null,
1167
+ onClickItemInfo: null,
1147
1168
  // onClickCancel: null,
1148
1169
  onFocusSearch: null,
1149
1170
  onFiltersChange: null,
@@ -1154,17 +1175,20 @@ var defaultProps$1 = {
1154
1175
  var Navbar = function Navbar(_ref) {
1155
1176
  var filters = _ref.filters,
1156
1177
  media = _ref.media,
1178
+ selectedMedia = _ref.selectedMedia,
1157
1179
  storyId = _ref.storyId,
1158
1180
  tags = _ref.tags,
1159
1181
  authors = _ref.authors,
1160
- withoutTitle = _ref.withoutTitle,
1161
1182
  withoutSource = _ref.withoutSource,
1162
1183
  withoutType = _ref.withoutType,
1163
1184
  className = _ref.className,
1164
1185
  onClickAdd = _ref.onClickAdd,
1186
+ onClickItem = _ref.onClickItem,
1187
+ onClickItemInfo = _ref.onClickItemInfo,
1165
1188
  onFocusSearch = _ref.onFocusSearch,
1166
1189
  onFiltersChange = _ref.onFiltersChange,
1167
1190
  onClickBack = _ref.onClickBack;
1191
+ var intl = useIntl();
1168
1192
  var throttle = useRef(null);
1169
1193
 
1170
1194
  var _useState = useState(false),
@@ -1250,25 +1274,72 @@ var Navbar = function Navbar(_ref) {
1250
1274
 
1251
1275
  setOpen(true);
1252
1276
  });
1253
- var onClear = useCallback(function () {
1277
+ var onCloseFilters = useCallback(function () {
1254
1278
  setOpen(false);
1255
1279
  }, [setOpen]);
1256
1280
  var onToggleMenu = useCallback(function () {
1257
1281
  setOpen(!open);
1258
1282
  }, [open, setOpen]);
1259
- var title = !withoutTitle ? /*#__PURE__*/React.createElement(FormattedMessage, {
1260
- id: "JV5hRr",
1261
- defaultMessage: [{
1262
- "type": 0,
1263
- "value": "Media gallery"
1264
- }]
1265
- }) : null;
1266
1283
  return /*#__PURE__*/React.createElement("nav", {
1267
1284
  className: classNames([styles$4.container, 'navbar', _defineProperty({}, className, className !== null)])
1268
1285
  }, /*#__PURE__*/React.createElement("div", {
1269
1286
  className: styles$4.inner
1270
- }, !withoutSource ? /*#__PURE__*/React.createElement("div", {
1271
- className: "d-flex w-100 flex-nowrap justify-content-center"
1287
+ }, media === null ? /*#__PURE__*/React.createElement("strong", {
1288
+ className: "list-group-item rounded w-100 py-1 px-1 navbar-text d-flex align-items-center justify-content-between"
1289
+ }, selectedMedia !== null ? /*#__PURE__*/React.createElement(Button, {
1290
+ className: "d-flex px-0 py-0 align-items-center",
1291
+ onClick: function onClick() {
1292
+ return onClickItemInfo(selectedMedia);
1293
+ }
1294
+ }, /*#__PURE__*/React.createElement(Media, {
1295
+ className: styles$4.mediaPreview,
1296
+ thumbnail: selectedMedia === null || selectedMedia === void 0 ? void 0 : selectedMedia.thumbnail_url
1297
+ }), /*#__PURE__*/React.createElement("span", {
1298
+ className: "ml-2"
1299
+ }, selectedMedia.name || /*#__PURE__*/React.createElement(FormattedMessage, {
1300
+ id: "fVqgfl",
1301
+ defaultMessage: [{
1302
+ "type": 0,
1303
+ "value": "[no title]"
1304
+ }]
1305
+ }))) : /*#__PURE__*/React.createElement("span", {
1306
+ className: "pl-2"
1307
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
1308
+ id: "VspZp9",
1309
+ defaultMessage: [{
1310
+ "type": 0,
1311
+ "value": "Upload an image"
1312
+ }]
1313
+ })), selectedMedia === null ? /*#__PURE__*/React.createElement(Button, {
1314
+ theme: "primary",
1315
+ icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {
1316
+ icon: faPlus
1317
+ }),
1318
+ onClick: onClickAdd,
1319
+ title: intl.formatMessage({
1320
+ "id": "Tt4jN1",
1321
+ "defaultMessage": [{
1322
+ "type": 0,
1323
+ "value": "Add"
1324
+ }]
1325
+ })
1326
+ }) : /*#__PURE__*/React.createElement(Button, {
1327
+ theme: "primary",
1328
+ icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {
1329
+ icon: faTimes
1330
+ }),
1331
+ onClick: function onClick() {
1332
+ return onClickItem(selectedMedia);
1333
+ },
1334
+ title: intl.formatMessage({
1335
+ "id": "UG3SXh",
1336
+ "defaultMessage": [{
1337
+ "type": 0,
1338
+ "value": "Remove"
1339
+ }]
1340
+ })
1341
+ })) : null, !withoutSource && media === null ? /*#__PURE__*/React.createElement("div", {
1342
+ className: "py-2 d-flex w-100 flex-nowrap"
1272
1343
  }, /*#__PURE__*/React.createElement(DropdownSection, {
1273
1344
  items: sources,
1274
1345
  value: filters.source || null,
@@ -1286,20 +1357,8 @@ var Navbar = function Navbar(_ref) {
1286
1357
  }),
1287
1358
  onClick: onClickBack
1288
1359
  })) : null, /*#__PURE__*/React.createElement("strong", {
1289
- className: "navbar-text mr-auto w-100 d-flex align-items-center justify-content-between"
1290
- }, media !== null ? media.name : title, media === null ? /*#__PURE__*/React.createElement(Button, {
1291
- theme: "primary",
1292
- icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {
1293
- icon: faPlus
1294
- }),
1295
- onClick: onClickAdd
1296
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
1297
- id: "Tt4jN1",
1298
- defaultMessage: [{
1299
- "type": 0,
1300
- "value": "Add"
1301
- }]
1302
- })) : null)), media === null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1360
+ className: "navbar-text mr-auto w-100"
1361
+ }, media !== null ? media.name : null)), media === null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1303
1362
  className: "d-flex w-100 flex-nowrap justify-content-between"
1304
1363
  }, /*#__PURE__*/React.createElement(Search, {
1305
1364
  value: searchValue,
@@ -1307,23 +1366,15 @@ var Navbar = function Navbar(_ref) {
1307
1366
  onFocus: onSearchFocus,
1308
1367
  onClickIcon: onToggleMenu,
1309
1368
  className: classNames(['form-inline'])
1310
- }), /*#__PURE__*/React.createElement("form", {
1311
- className: classNames(['form-inline'])
1312
- }, open ? /*#__PURE__*/React.createElement(Button, {
1313
- className: "ml-2",
1314
- theme: "primary",
1315
- icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {
1316
- icon: faTimes
1317
- }),
1318
- onClick: onClear
1319
- }) : null)), open ? /*#__PURE__*/React.createElement("div", {
1369
+ })), open ? /*#__PURE__*/React.createElement("div", {
1320
1370
  className: "d-flex w-100 my-1 flex-nowrap justify-content-between"
1321
1371
  }, /*#__PURE__*/React.createElement(SearchFilters, {
1322
1372
  filters: filters,
1323
1373
  sections: sections,
1324
- onChange: onFilterChange
1374
+ onChange: onFilterChange,
1375
+ onClose: onCloseFilters
1325
1376
  })) : null) : null, hasFilter && !open && media === null ? /*#__PURE__*/React.createElement("div", {
1326
- className: "d-flex w-100 my-1 flex-nowrap justify-content-between"
1377
+ className: "list-group-item py-2 px-2 d-flex w-100 my-2 flex-nowrap justify-content-between"
1327
1378
  }, /*#__PURE__*/React.createElement(ActiveFilters, {
1328
1379
  filters: filters,
1329
1380
  sections: sections,
@@ -1371,9 +1422,9 @@ var MediaGallery = function MediaGallery(_ref) {
1371
1422
  source = _ref.source,
1372
1423
  isPicker = _ref.isPicker,
1373
1424
  isSmall = _ref.isSmall,
1374
- withoutTitle = _ref.withoutTitle,
1375
- withoutSource = _ref.withoutSource,
1376
- withoutType = _ref.withoutType,
1425
+ withoutTitle = _ref.withoutTitle;
1426
+ _ref.withoutSource;
1427
+ var withoutType = _ref.withoutType,
1377
1428
  initialMedias = _ref.medias,
1378
1429
  selectedMedia = _ref.selectedMedia,
1379
1430
  className = _ref.className,
@@ -1499,12 +1550,16 @@ var MediaGallery = function MediaGallery(_ref) {
1499
1550
  }, /*#__PURE__*/React.createElement(Navbar, {
1500
1551
  filters: filtersValue,
1501
1552
  media: metadataMedia !== null ? metadataMedia : null,
1553
+ selectedMedia: selectedMedia,
1502
1554
  onFiltersChange: onFiltersChange,
1503
1555
  onClickAdd: onClickAdd,
1556
+ onClickItem: onClickItem,
1557
+ onClickItemInfo: onClickItemInfo,
1504
1558
  onClickBack: onClickBack,
1505
1559
  onClickCancel: onClickCancel,
1506
- withoutTitle: withoutTitle,
1507
- withoutSource: withoutSource,
1560
+ withoutTitle: withoutTitle // withoutSource={withoutSource}
1561
+ ,
1562
+ withoutSource: false,
1508
1563
  withoutType: withoutType,
1509
1564
  storyId: storyId,
1510
1565
  authors: authors,
package/lib/index.js CHANGED
@@ -695,7 +695,7 @@ PropTypes__default["default"].shape({
695
695
  usage: PropTypes__default["default"].arrayOf(PropTypes__default["default"].oneOf(['used', 'unused']))
696
696
  });
697
697
 
698
- var styles$4 = {"container":"micromag-media-gallery-partials-navbar-container","inner":"micromag-media-gallery-partials-navbar-inner"};
698
+ var styles$4 = {"container":"micromag-media-gallery-partials-navbar-container","inner":"micromag-media-gallery-partials-navbar-inner","mediaPreview":"micromag-media-gallery-partials-navbar-mediaPreview"};
699
699
 
700
700
  var styles$3 = {"container":"micromag-media-gallery-forms-dropdown-section-container","dropdownToggle":"micromag-media-gallery-forms-dropdown-section-dropdownToggle","label":"micromag-media-gallery-forms-dropdown-section-label"};
701
701
 
@@ -921,19 +921,21 @@ var TagSection = function TagSection(_ref) {
921
921
  TagSection.propTypes = propTypes$5;
922
922
  TagSection.defaultProps = defaultProps$5;
923
923
 
924
- var styles$2 = {"container":"micromag-media-gallery-forms-search-filters-container","section":"micromag-media-gallery-forms-search-filters-section","title":"micromag-media-gallery-forms-search-filters-title","tags":"micromag-media-gallery-forms-search-filters-tags"};
924
+ var styles$2 = {"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"};
925
925
 
926
926
  var propTypes$4 = {
927
927
  filters: PropTypes__default["default"].object,
928
928
  // eslint-disable-line
929
929
  sections: PropTypes__default["default"].arrayOf(PropTypes__default["default"].object),
930
930
  onChange: PropTypes__default["default"].func,
931
+ onClose: PropTypes__default["default"].func,
931
932
  className: PropTypes__default["default"].string
932
933
  };
933
934
  var defaultProps$4 = {
934
935
  filters: null,
935
936
  sections: [],
936
937
  onChange: null,
938
+ onClose: null,
937
939
  className: null
938
940
  };
939
941
 
@@ -941,7 +943,9 @@ var SearchFilters = function SearchFilters(_ref) {
941
943
  var filters = _ref.filters,
942
944
  sections = _ref.sections,
943
945
  onChange = _ref.onChange,
946
+ onClose = _ref.onClose,
944
947
  className = _ref.className;
948
+ var intl = reactIntl.useIntl();
945
949
  var getActive = React.useCallback(function (items, sectionFilters) {
946
950
  return items !== null ? items.map(function (it) {
947
951
  return _objectSpread__default["default"](_objectSpread__default["default"]({}, it), {}, {
@@ -982,7 +986,20 @@ var SearchFilters = function SearchFilters(_ref) {
982
986
  className: classNames__default["default"]([styles$2.container, 'flex-nowrap', 'mt-1', _defineProperty__default["default"]({}, className, className !== null)])
983
987
  }, activeSections.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
984
988
  className: classNames__default["default"](['bg-light', 'flex-nowrap', 'text-dark', 'py-1', 'px-3', 'rounded'])
985
- }, activeSections.map(function (_ref3) {
989
+ }, /*#__PURE__*/React__default["default"].createElement(components.Button, {
990
+ className: classNames__default["default"]([styles$2.closeBtn, 'py-1', 'px-1', 'text-dark']),
991
+ icon: /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
992
+ icon: freeSolidSvgIcons.faTimes
993
+ }),
994
+ onClick: onClose,
995
+ title: intl.formatMessage({
996
+ "id": "yCXMzz",
997
+ "defaultMessage": [{
998
+ "type": 0,
999
+ "value": "Close"
1000
+ }]
1001
+ })
1002
+ }), activeSections.map(function (_ref3) {
986
1003
  var value = _ref3.value,
987
1004
  label = _ref3.label,
988
1005
  items = _ref3.items;
@@ -1136,14 +1153,16 @@ ActiveFilters.defaultProps = defaultProps$2;
1136
1153
  var propTypes$1 = {
1137
1154
  filters: filtersValue,
1138
1155
  media: core.PropTypes.media,
1156
+ selectedMedia: core.PropTypes.media,
1139
1157
  storyId: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
1140
1158
  tags: core.PropTypes.tags,
1141
1159
  authors: core.PropTypes.authors,
1142
- withoutTitle: PropTypes__default["default"].bool,
1143
1160
  withoutSource: PropTypes__default["default"].bool,
1144
1161
  withoutType: PropTypes__default["default"].bool,
1145
1162
  onClickAdd: PropTypes__default["default"].func,
1146
- // onClickCancel: PropTypes.func,
1163
+ onClickItem: PropTypes__default["default"].func,
1164
+ onClickItemInfo: PropTypes__default["default"].func,
1165
+ // onClickCancel: PropTypes.func, // TODO: still needed?
1147
1166
  onFocusSearch: PropTypes__default["default"].func,
1148
1167
  onFiltersChange: PropTypes__default["default"].func,
1149
1168
  onClickBack: PropTypes__default["default"].func,
@@ -1152,13 +1171,15 @@ var propTypes$1 = {
1152
1171
  var defaultProps$1 = {
1153
1172
  filters: null,
1154
1173
  media: null,
1174
+ selectedMedia: null,
1155
1175
  storyId: null,
1156
1176
  tags: [],
1157
1177
  authors: [],
1158
- withoutTitle: false,
1159
1178
  withoutSource: false,
1160
1179
  withoutType: true,
1161
1180
  onClickAdd: null,
1181
+ onClickItem: null,
1182
+ onClickItemInfo: null,
1162
1183
  // onClickCancel: null,
1163
1184
  onFocusSearch: null,
1164
1185
  onFiltersChange: null,
@@ -1169,17 +1190,20 @@ var defaultProps$1 = {
1169
1190
  var Navbar = function Navbar(_ref) {
1170
1191
  var filters = _ref.filters,
1171
1192
  media = _ref.media,
1193
+ selectedMedia = _ref.selectedMedia,
1172
1194
  storyId = _ref.storyId,
1173
1195
  tags = _ref.tags,
1174
1196
  authors = _ref.authors,
1175
- withoutTitle = _ref.withoutTitle,
1176
1197
  withoutSource = _ref.withoutSource,
1177
1198
  withoutType = _ref.withoutType,
1178
1199
  className = _ref.className,
1179
1200
  onClickAdd = _ref.onClickAdd,
1201
+ onClickItem = _ref.onClickItem,
1202
+ onClickItemInfo = _ref.onClickItemInfo,
1180
1203
  onFocusSearch = _ref.onFocusSearch,
1181
1204
  onFiltersChange = _ref.onFiltersChange,
1182
1205
  onClickBack = _ref.onClickBack;
1206
+ var intl = reactIntl.useIntl();
1183
1207
  var throttle = React.useRef(null);
1184
1208
 
1185
1209
  var _useState = React.useState(false),
@@ -1265,25 +1289,72 @@ var Navbar = function Navbar(_ref) {
1265
1289
 
1266
1290
  setOpen(true);
1267
1291
  });
1268
- var onClear = React.useCallback(function () {
1292
+ var onCloseFilters = React.useCallback(function () {
1269
1293
  setOpen(false);
1270
1294
  }, [setOpen]);
1271
1295
  var onToggleMenu = React.useCallback(function () {
1272
1296
  setOpen(!open);
1273
1297
  }, [open, setOpen]);
1274
- var title = !withoutTitle ? /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
1275
- id: "JV5hRr",
1276
- defaultMessage: [{
1277
- "type": 0,
1278
- "value": "Media gallery"
1279
- }]
1280
- }) : null;
1281
1298
  return /*#__PURE__*/React__default["default"].createElement("nav", {
1282
1299
  className: classNames__default["default"]([styles$4.container, 'navbar', _defineProperty__default["default"]({}, className, className !== null)])
1283
1300
  }, /*#__PURE__*/React__default["default"].createElement("div", {
1284
1301
  className: styles$4.inner
1285
- }, !withoutSource ? /*#__PURE__*/React__default["default"].createElement("div", {
1286
- className: "d-flex w-100 flex-nowrap justify-content-center"
1302
+ }, media === null ? /*#__PURE__*/React__default["default"].createElement("strong", {
1303
+ className: "list-group-item rounded w-100 py-1 px-1 navbar-text d-flex align-items-center justify-content-between"
1304
+ }, selectedMedia !== null ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
1305
+ className: "d-flex px-0 py-0 align-items-center",
1306
+ onClick: function onClick() {
1307
+ return onClickItemInfo(selectedMedia);
1308
+ }
1309
+ }, /*#__PURE__*/React__default["default"].createElement(components.Media, {
1310
+ className: styles$4.mediaPreview,
1311
+ thumbnail: selectedMedia === null || selectedMedia === void 0 ? void 0 : selectedMedia.thumbnail_url
1312
+ }), /*#__PURE__*/React__default["default"].createElement("span", {
1313
+ className: "ml-2"
1314
+ }, selectedMedia.name || /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
1315
+ id: "fVqgfl",
1316
+ defaultMessage: [{
1317
+ "type": 0,
1318
+ "value": "[no title]"
1319
+ }]
1320
+ }))) : /*#__PURE__*/React__default["default"].createElement("span", {
1321
+ className: "pl-2"
1322
+ }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
1323
+ id: "VspZp9",
1324
+ defaultMessage: [{
1325
+ "type": 0,
1326
+ "value": "Upload an image"
1327
+ }]
1328
+ })), selectedMedia === null ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
1329
+ theme: "primary",
1330
+ icon: /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
1331
+ icon: freeSolidSvgIcons.faPlus
1332
+ }),
1333
+ onClick: onClickAdd,
1334
+ title: intl.formatMessage({
1335
+ "id": "Tt4jN1",
1336
+ "defaultMessage": [{
1337
+ "type": 0,
1338
+ "value": "Add"
1339
+ }]
1340
+ })
1341
+ }) : /*#__PURE__*/React__default["default"].createElement(components.Button, {
1342
+ theme: "primary",
1343
+ icon: /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
1344
+ icon: freeSolidSvgIcons.faTimes
1345
+ }),
1346
+ onClick: function onClick() {
1347
+ return onClickItem(selectedMedia);
1348
+ },
1349
+ title: intl.formatMessage({
1350
+ "id": "UG3SXh",
1351
+ "defaultMessage": [{
1352
+ "type": 0,
1353
+ "value": "Remove"
1354
+ }]
1355
+ })
1356
+ })) : null, !withoutSource && media === null ? /*#__PURE__*/React__default["default"].createElement("div", {
1357
+ className: "py-2 d-flex w-100 flex-nowrap"
1287
1358
  }, /*#__PURE__*/React__default["default"].createElement(DropdownSection, {
1288
1359
  items: sources,
1289
1360
  value: filters.source || null,
@@ -1301,20 +1372,8 @@ var Navbar = function Navbar(_ref) {
1301
1372
  }),
1302
1373
  onClick: onClickBack
1303
1374
  })) : null, /*#__PURE__*/React__default["default"].createElement("strong", {
1304
- className: "navbar-text mr-auto w-100 d-flex align-items-center justify-content-between"
1305
- }, media !== null ? media.name : title, media === null ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
1306
- theme: "primary",
1307
- icon: /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
1308
- icon: freeSolidSvgIcons.faPlus
1309
- }),
1310
- onClick: onClickAdd
1311
- }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
1312
- id: "Tt4jN1",
1313
- defaultMessage: [{
1314
- "type": 0,
1315
- "value": "Add"
1316
- }]
1317
- })) : null)), media === null ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
1375
+ className: "navbar-text mr-auto w-100"
1376
+ }, media !== null ? media.name : null)), media === null ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
1318
1377
  className: "d-flex w-100 flex-nowrap justify-content-between"
1319
1378
  }, /*#__PURE__*/React__default["default"].createElement(Search, {
1320
1379
  value: searchValue,
@@ -1322,23 +1381,15 @@ var Navbar = function Navbar(_ref) {
1322
1381
  onFocus: onSearchFocus,
1323
1382
  onClickIcon: onToggleMenu,
1324
1383
  className: classNames__default["default"](['form-inline'])
1325
- }), /*#__PURE__*/React__default["default"].createElement("form", {
1326
- className: classNames__default["default"](['form-inline'])
1327
- }, open ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
1328
- className: "ml-2",
1329
- theme: "primary",
1330
- icon: /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
1331
- icon: freeSolidSvgIcons.faTimes
1332
- }),
1333
- onClick: onClear
1334
- }) : null)), open ? /*#__PURE__*/React__default["default"].createElement("div", {
1384
+ })), open ? /*#__PURE__*/React__default["default"].createElement("div", {
1335
1385
  className: "d-flex w-100 my-1 flex-nowrap justify-content-between"
1336
1386
  }, /*#__PURE__*/React__default["default"].createElement(SearchFilters, {
1337
1387
  filters: filters,
1338
1388
  sections: sections,
1339
- onChange: onFilterChange
1389
+ onChange: onFilterChange,
1390
+ onClose: onCloseFilters
1340
1391
  })) : null) : null, hasFilter && !open && media === null ? /*#__PURE__*/React__default["default"].createElement("div", {
1341
- className: "d-flex w-100 my-1 flex-nowrap justify-content-between"
1392
+ className: "list-group-item py-2 px-2 d-flex w-100 my-2 flex-nowrap justify-content-between"
1342
1393
  }, /*#__PURE__*/React__default["default"].createElement(ActiveFilters, {
1343
1394
  filters: filters,
1344
1395
  sections: sections,
@@ -1386,9 +1437,9 @@ var MediaGallery = function MediaGallery(_ref) {
1386
1437
  source = _ref.source,
1387
1438
  isPicker = _ref.isPicker,
1388
1439
  isSmall = _ref.isSmall,
1389
- withoutTitle = _ref.withoutTitle,
1390
- withoutSource = _ref.withoutSource,
1391
- withoutType = _ref.withoutType,
1440
+ withoutTitle = _ref.withoutTitle;
1441
+ _ref.withoutSource;
1442
+ var withoutType = _ref.withoutType,
1392
1443
  initialMedias = _ref.medias,
1393
1444
  selectedMedia = _ref.selectedMedia,
1394
1445
  className = _ref.className,
@@ -1514,12 +1565,16 @@ var MediaGallery = function MediaGallery(_ref) {
1514
1565
  }, /*#__PURE__*/React__default["default"].createElement(Navbar, {
1515
1566
  filters: filtersValue,
1516
1567
  media: metadataMedia !== null ? metadataMedia : null,
1568
+ selectedMedia: selectedMedia,
1517
1569
  onFiltersChange: onFiltersChange,
1518
1570
  onClickAdd: onClickAdd,
1571
+ onClickItem: onClickItem,
1572
+ onClickItemInfo: onClickItemInfo,
1519
1573
  onClickBack: onClickBack,
1520
1574
  onClickCancel: onClickCancel,
1521
- withoutTitle: withoutTitle,
1522
- withoutSource: withoutSource,
1575
+ withoutTitle: withoutTitle // withoutSource={withoutSource}
1576
+ ,
1577
+ withoutSource: false,
1523
1578
  withoutType: withoutType,
1524
1579
  storyId: storyId,
1525
1580
  authors: authors,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/media-gallery",
3
- "version": "0.2.396",
3
+ "version": "0.2.401",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -54,8 +54,8 @@
54
54
  "@fortawesome/fontawesome-svg-core": "^1.2.32",
55
55
  "@fortawesome/free-solid-svg-icons": "^5.15.1",
56
56
  "@fortawesome/react-fontawesome": "^0.1.13",
57
- "@micromag/core": "^0.2.396",
58
- "@micromag/data": "^0.2.396",
57
+ "@micromag/core": "^0.2.401",
58
+ "@micromag/data": "^0.2.401",
59
59
  "bootstrap": "^4.5.3",
60
60
  "bootstrap.native": "^3.0.14",
61
61
  "change-case": "^4.1.2",
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "gitHead": "480deb93475c6eefcd4c5997b4ce7c9f32e6ff7d"
72
+ "gitHead": "fd03ec6d9decc9e18d6088a36e47c7b1e0e72b4c"
73
73
  }