@panneau/field-upload 3.0.91 → 3.0.95

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.
Files changed (3) hide show
  1. package/es/index.js +15 -97
  2. package/lib/index.js +15 -99
  3. package/package.json +3 -4
package/es/index.js CHANGED
@@ -2,14 +2,10 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
3
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
4
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
5
- import { faTimes, faFileVideo, faFileImage, faFileAudio } from '@fortawesome/free-solid-svg-icons';
6
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
7
5
  import { Dashboard, DashboardModal } from '@uppy/react';
8
6
  import classNames from 'classnames';
9
- import get from 'lodash/get';
10
7
  import isArray from 'lodash/isArray';
11
8
  import isObject from 'lodash/isObject';
12
- import prettyBytes from 'pretty-bytes';
13
9
  import PropTypes from 'prop-types';
14
10
  import React, { useCallback, useMemo, useState } from 'react';
15
11
  import { FormattedMessage } from 'react-intl';
@@ -17,6 +13,7 @@ import { PropTypes as PropTypes$1 } from '@panneau/core';
17
13
  import { useResourceQuery } from '@panneau/core/hooks';
18
14
  import Button from '@panneau/element-button';
19
15
  import Label from '@panneau/element-label';
16
+ import { MediaCards } from '@panneau/element-media-card';
20
17
  import ResourceItemsList from '@panneau/list-resource-items';
21
18
  import Dialog from '@panneau/modal-dialog';
22
19
  import { useUppy } from '@panneau/uppy';
@@ -296,93 +293,14 @@ var UploadField = function UploadField(_ref) {
296
293
  return /*#__PURE__*/React.createElement("div", {
297
294
  className: classNames([styles.container, _defineProperty({}, className, className !== null)])
298
295
  // ref={containerRef}
299
- }, values !== null ? values.map(function (media, idx) {
300
- var _media$id = media.id,
301
- id = _media$id === void 0 ? null : _media$id,
302
- _media$filename = media.filename,
303
- filename = _media$filename === void 0 ? null : _media$filename,
304
- _media$size = media.size,
305
- fileSize = _media$size === void 0 ? 0 : _media$size,
306
- _media$thumbnail_url = media.thumbnail_url,
307
- thumbnailUrl = _media$thumbnail_url === void 0 ? null : _media$thumbnail_url,
308
- _media$preview = media.preview,
309
- preview = _media$preview === void 0 ? null : _media$preview,
310
- _media$data = media.data,
311
- data = _media$data === void 0 ? {} : _media$data,
312
- type = media.type;
313
- var _ref6 = data || {},
314
- _ref6$file = _ref6.file,
315
- file = _ref6$file === void 0 ? null : _ref6$file;
316
- var faIcon = null;
317
- switch (type) {
318
- case 'audio':
319
- faIcon = faFileAudio;
320
- break;
321
- case 'image':
322
- faIcon = faFileImage;
323
- break;
324
- case 'video':
325
- faIcon = faFileVideo;
326
- break;
327
- }
328
- var name = (namePath !== null ? get(media || {}, namePath) : null) || filename || file;
329
- var thumbnail = (thumbnailPath !== null ? get(media || {}, thumbnailPath) : null) || thumbnailUrl || preview;
330
- var size = (sizePath !== null ? get(media || {}, sizePath) : null) || fileSize;
331
- var hasThumbnail = preview !== null || thumbnail !== null;
332
- return /*#__PURE__*/React.createElement("div", {
333
- className: "card mb-1",
334
- key: "media-".concat(id),
335
- style: {
336
- maxWidth: 500
337
- }
338
- }, /*#__PURE__*/React.createElement("div", {
339
- className: "d-flex align-items-center"
340
- }, hasThumbnail || faIcon !== null ? /*#__PURE__*/React.createElement("div", {
341
- className: "p-2 text-center",
342
- style: hasThumbnail ? {
343
- width: 100,
344
- backgroundImage: 'linear-gradient(45deg, #eee 25%, transparent 25%), linear-gradient(-45deg, #eee 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #eee 75%), linear-gradient(-45deg, transparent 75%, #eee 75%)',
345
- backgroundSize: '20px 20px',
346
- backgroundPosition: '0 0, 0 10px, 10px -10px, -10px 0'
347
- } : {
348
- width: 100
349
- }
350
- }, !hasThumbnail && faIcon !== null ? /*#__PURE__*/React.createElement(FontAwesomeIcon, {
351
- icon: faIcon,
352
- className: "m-auto fs-3"
353
- }) : null, hasThumbnail ? /*#__PURE__*/React.createElement("img", {
354
- className: "img-fluid",
355
- src: thumbnail,
356
- alt: "thumbnail",
357
- style: {
358
- maxHeight: 75
359
- }
360
- }) : null) : null, /*#__PURE__*/React.createElement("div", {
361
- className: "flex-grow-1"
362
- }, /*#__PURE__*/React.createElement("div", {
363
- className: "card-body"
364
- }, /*#__PURE__*/React.createElement("h5", {
365
- className: classNames(['card-title', 'text-break', 'fs-6', {
366
- 'mb-1': size !== null && size > 0,
367
- 'mb-0': size === null || size <= 0
368
- }])
369
- }, name), size !== null && size > 0 ? /*#__PURE__*/React.createElement("p", {
370
- className: "card-text text-muted small"
371
- }, prettyBytes(size)) : null)), /*#__PURE__*/React.createElement("div", {
372
- className: "p-2"
373
- }, /*#__PURE__*/React.createElement(Button, {
374
- type: "button",
375
- size: "sm",
376
- theme: "secondary",
377
- outline: true,
378
- onClick: function onClick() {
379
- return onClickRemove(idx);
380
- },
381
- disabled: disabled
382
- }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
383
- icon: faTimes
384
- })))));
385
- }) : null, (!hasMedia || allowMultipleUploads) && withButton ? /*#__PURE__*/React.createElement("div", {
296
+ }, /*#__PURE__*/React.createElement(MediaCards, {
297
+ value: values,
298
+ namePath: namePath,
299
+ thumbnailPath: thumbnailPath,
300
+ sizePath: sizePath,
301
+ disabled: disabled,
302
+ onClickRemove: onClickRemove
303
+ }), (!hasMedia || allowMultipleUploads) && withButton ? /*#__PURE__*/React.createElement("div", {
386
304
  className: "row"
387
305
  }, /*#__PURE__*/React.createElement("div", {
388
306
  className: "col-auto"
@@ -471,13 +389,13 @@ var UploadField = function UploadField(_ref) {
471
389
  actionsProps: {
472
390
  onClickSelect: onClickSelect,
473
391
  getSelectPropsFromItem: function getSelectPropsFromItem(item) {
474
- var _ref7 = item || {},
475
- _ref7$id = _ref7.id,
476
- itemId = _ref7$id === void 0 ? null : _ref7$id;
392
+ var _ref6 = item || {},
393
+ _ref6$id = _ref6.id,
394
+ itemId = _ref6$id === void 0 ? null : _ref6$id;
477
395
  var found = (modalItems || []).find(function () {
478
- var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
479
- _ref8$id = _ref8.id,
480
- modalItemId = _ref8$id === void 0 ? null : _ref8$id;
396
+ var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
397
+ _ref7$id = _ref7.id,
398
+ modalItemId = _ref7$id === void 0 ? null : _ref7$id;
481
399
  return modalItemId === itemId;
482
400
  });
483
401
  return {
package/lib/index.js CHANGED
@@ -6,14 +6,10 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
6
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
7
7
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
8
8
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
9
- var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
10
- var reactFontawesome = require('@fortawesome/react-fontawesome');
11
9
  var react = require('@uppy/react');
12
10
  var classNames = require('classnames');
13
- var get = require('lodash/get');
14
11
  var isArray = require('lodash/isArray');
15
12
  var isObject = require('lodash/isObject');
16
- var prettyBytes = require('pretty-bytes');
17
13
  var PropTypes = require('prop-types');
18
14
  var React = require('react');
19
15
  var reactIntl = require('react-intl');
@@ -21,6 +17,7 @@ var core = require('@panneau/core');
21
17
  var hooks = require('@panneau/core/hooks');
22
18
  var Button = require('@panneau/element-button');
23
19
  var Label = require('@panneau/element-label');
20
+ var elementMediaCard = require('@panneau/element-media-card');
24
21
  var ResourceItemsList = require('@panneau/list-resource-items');
25
22
  var Dialog = require('@panneau/modal-dialog');
26
23
  var uppy = require('@panneau/uppy');
@@ -36,10 +33,8 @@ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumab
36
33
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
37
34
  var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
38
35
  var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
39
- var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
40
36
  var isArray__default = /*#__PURE__*/_interopDefaultLegacy(isArray);
41
37
  var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
42
- var prettyBytes__default = /*#__PURE__*/_interopDefaultLegacy(prettyBytes);
43
38
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
44
39
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
45
40
  var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
@@ -318,93 +313,14 @@ var UploadField = function UploadField(_ref) {
318
313
  return /*#__PURE__*/React__default["default"].createElement("div", {
319
314
  className: classNames__default["default"]([styles.container, _defineProperty__default["default"]({}, className, className !== null)])
320
315
  // ref={containerRef}
321
- }, values !== null ? values.map(function (media, idx) {
322
- var _media$id = media.id,
323
- id = _media$id === void 0 ? null : _media$id,
324
- _media$filename = media.filename,
325
- filename = _media$filename === void 0 ? null : _media$filename,
326
- _media$size = media.size,
327
- fileSize = _media$size === void 0 ? 0 : _media$size,
328
- _media$thumbnail_url = media.thumbnail_url,
329
- thumbnailUrl = _media$thumbnail_url === void 0 ? null : _media$thumbnail_url,
330
- _media$preview = media.preview,
331
- preview = _media$preview === void 0 ? null : _media$preview,
332
- _media$data = media.data,
333
- data = _media$data === void 0 ? {} : _media$data,
334
- type = media.type;
335
- var _ref6 = data || {},
336
- _ref6$file = _ref6.file,
337
- file = _ref6$file === void 0 ? null : _ref6$file;
338
- var faIcon = null;
339
- switch (type) {
340
- case 'audio':
341
- faIcon = freeSolidSvgIcons.faFileAudio;
342
- break;
343
- case 'image':
344
- faIcon = freeSolidSvgIcons.faFileImage;
345
- break;
346
- case 'video':
347
- faIcon = freeSolidSvgIcons.faFileVideo;
348
- break;
349
- }
350
- var name = (namePath !== null ? get__default["default"](media || {}, namePath) : null) || filename || file;
351
- var thumbnail = (thumbnailPath !== null ? get__default["default"](media || {}, thumbnailPath) : null) || thumbnailUrl || preview;
352
- var size = (sizePath !== null ? get__default["default"](media || {}, sizePath) : null) || fileSize;
353
- var hasThumbnail = preview !== null || thumbnail !== null;
354
- return /*#__PURE__*/React__default["default"].createElement("div", {
355
- className: "card mb-1",
356
- key: "media-".concat(id),
357
- style: {
358
- maxWidth: 500
359
- }
360
- }, /*#__PURE__*/React__default["default"].createElement("div", {
361
- className: "d-flex align-items-center"
362
- }, hasThumbnail || faIcon !== null ? /*#__PURE__*/React__default["default"].createElement("div", {
363
- className: "p-2 text-center",
364
- style: hasThumbnail ? {
365
- width: 100,
366
- backgroundImage: 'linear-gradient(45deg, #eee 25%, transparent 25%), linear-gradient(-45deg, #eee 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #eee 75%), linear-gradient(-45deg, transparent 75%, #eee 75%)',
367
- backgroundSize: '20px 20px',
368
- backgroundPosition: '0 0, 0 10px, 10px -10px, -10px 0'
369
- } : {
370
- width: 100
371
- }
372
- }, !hasThumbnail && faIcon !== null ? /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
373
- icon: faIcon,
374
- className: "m-auto fs-3"
375
- }) : null, hasThumbnail ? /*#__PURE__*/React__default["default"].createElement("img", {
376
- className: "img-fluid",
377
- src: thumbnail,
378
- alt: "thumbnail",
379
- style: {
380
- maxHeight: 75
381
- }
382
- }) : null) : null, /*#__PURE__*/React__default["default"].createElement("div", {
383
- className: "flex-grow-1"
384
- }, /*#__PURE__*/React__default["default"].createElement("div", {
385
- className: "card-body"
386
- }, /*#__PURE__*/React__default["default"].createElement("h5", {
387
- className: classNames__default["default"](['card-title', 'text-break', 'fs-6', {
388
- 'mb-1': size !== null && size > 0,
389
- 'mb-0': size === null || size <= 0
390
- }])
391
- }, name), size !== null && size > 0 ? /*#__PURE__*/React__default["default"].createElement("p", {
392
- className: "card-text text-muted small"
393
- }, prettyBytes__default["default"](size)) : null)), /*#__PURE__*/React__default["default"].createElement("div", {
394
- className: "p-2"
395
- }, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
396
- type: "button",
397
- size: "sm",
398
- theme: "secondary",
399
- outline: true,
400
- onClick: function onClick() {
401
- return onClickRemove(idx);
402
- },
403
- disabled: disabled
404
- }, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
405
- icon: freeSolidSvgIcons.faTimes
406
- })))));
407
- }) : null, (!hasMedia || allowMultipleUploads) && withButton ? /*#__PURE__*/React__default["default"].createElement("div", {
316
+ }, /*#__PURE__*/React__default["default"].createElement(elementMediaCard.MediaCards, {
317
+ value: values,
318
+ namePath: namePath,
319
+ thumbnailPath: thumbnailPath,
320
+ sizePath: sizePath,
321
+ disabled: disabled,
322
+ onClickRemove: onClickRemove
323
+ }), (!hasMedia || allowMultipleUploads) && withButton ? /*#__PURE__*/React__default["default"].createElement("div", {
408
324
  className: "row"
409
325
  }, /*#__PURE__*/React__default["default"].createElement("div", {
410
326
  className: "col-auto"
@@ -493,13 +409,13 @@ var UploadField = function UploadField(_ref) {
493
409
  actionsProps: {
494
410
  onClickSelect: onClickSelect,
495
411
  getSelectPropsFromItem: function getSelectPropsFromItem(item) {
496
- var _ref7 = item || {},
497
- _ref7$id = _ref7.id,
498
- itemId = _ref7$id === void 0 ? null : _ref7$id;
412
+ var _ref6 = item || {},
413
+ _ref6$id = _ref6.id,
414
+ itemId = _ref6$id === void 0 ? null : _ref6$id;
499
415
  var found = (modalItems || []).find(function () {
500
- var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
501
- _ref8$id = _ref8.id,
502
- modalItemId = _ref8$id === void 0 ? null : _ref8$id;
416
+ var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
417
+ _ref7$id = _ref7.id,
418
+ modalItemId = _ref7$id === void 0 ? null : _ref7$id;
503
419
  return modalItemId === itemId;
504
420
  });
505
421
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/field-upload",
3
- "version": "3.0.91",
3
+ "version": "3.0.95",
4
4
  "description": "An Upload field",
5
5
  "keywords": [
6
6
  "javascript"
@@ -59,8 +59,8 @@
59
59
  "@fortawesome/react-fontawesome": "^0.1.14",
60
60
  "@panneau/core": "^3.0.45",
61
61
  "@panneau/element-button": "^3.0.55",
62
- "@panneau/element-card": "^3.0.75",
63
62
  "@panneau/element-label": "^3.0.45",
63
+ "@panneau/element-media-card": "^3.0.95",
64
64
  "@panneau/list-resource-items": "^3.0.91",
65
65
  "@panneau/modal-dialog": "^3.0.77",
66
66
  "@panneau/themes": "^3.0.55",
@@ -75,12 +75,11 @@
75
75
  "@uppy/utils": "^5.5.0",
76
76
  "classnames": "^2.2.6",
77
77
  "lodash": "^4.17.21",
78
- "pretty-bytes": "^5.4.1",
79
78
  "prop-types": "^15.7.2",
80
79
  "react-intl": "^5.15.8||^6.0.0"
81
80
  },
82
81
  "publishConfig": {
83
82
  "access": "public"
84
83
  },
85
- "gitHead": "a8a807211fd09f324a306d105e1b46f211f94b09"
84
+ "gitHead": "599e92b3a8564b896e6361ce9f44be9d664bd93b"
86
85
  }