@scaleflex/widget-explorer 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.2.0](https://code.scaleflex.cloud/scaleflex/widget/compare/v0.1.2...v0.2.0) (2025-08-05)
7
+
8
+
9
+ ### Features
10
+
11
+ * implement the recursive remote upload for 3rd parties [FRA-1343] ([4db5cba](https://code.scaleflex.cloud/scaleflex/widget/commits/4db5cba125d155b1d1ab6cdbc68c28ae07d78f4c))
12
+
13
+
14
+
15
+
16
+
17
+ ## [0.1.2](https://code.scaleflex.cloud/scaleflex/widget/compare/v0.1.1...v0.1.2) (2025-07-30)
18
+
19
+ **Note:** Version bump only for package @scaleflex/widget-explorer
20
+
21
+
22
+
23
+
24
+
6
25
  ## [0.1.1](https://code.scaleflex.cloud/scaleflex/widget/compare/v0.1.0...v0.1.1) (2025-07-28)
7
26
 
8
27
  **Note:** Version bump only for package @scaleflex/widget-explorer
package/README.md CHANGED
@@ -804,14 +804,6 @@ Defines additional crop types & presets besides the freehand one and their prese
804
804
 
805
805
  > NOTE: The object's keys will be used the label for crop type (it is possible to be label string or i18n key string that is provided through locale object)
806
806
 
807
- ### `showRemoveBackgroundOption`
808
-
809
- <u>Type:</u> `boolean`.
810
-
811
- <u>Default:</u> `true`
812
-
813
- Remove background option will appear in context menu.
814
-
815
807
  ### `disableMultipleSelect`
816
808
 
817
809
  <u>Type:</u> `boolean`.
@@ -58,8 +58,7 @@ var DownloadWithExportButton = function DownloadWithExportButton() {
58
58
  var hideTransformation = isFolderSelected || !!unsupportedExportReason || hideDownloadVariationsOption;
59
59
  var tooltipTitle = i18n(unsupportedExportReason);
60
60
  var showDownloadButtonArrow = !disableDownloadButton && !isWidgetSmallSize && !useAssetsPicker;
61
- var isPreventedByDefaultBehavior = preventDownloadDefaultBehavior;
62
- var downloadButtonVisible = !isPreventedByDefaultBehavior;
61
+ var downloadButtonVisible = !preventDownloadDefaultBehavior;
63
62
  var downloadButtonDisabled = !checkUserPermissions([PERMISSIONS.DISPLAY]) || !checkFileFolderPermissions({
64
63
  permissionsToCheck: [PERMISSIONS.DISPLAY],
65
64
  permissionsList: firstItem === null || firstItem === void 0 ? void 0 : firstItem.permissions
@@ -33,12 +33,7 @@ var AddFiles = function AddFiles() {
33
33
  container = _useCore$opts.container,
34
34
  sassKey = _useCore$opts.sassKey;
35
35
  var isDraggingOver = useSelector(selectIsDraggingOver);
36
- var _useAssetsPicker = useAssetsPicker({
37
- securityTemplateId: securityTemplateId,
38
- container: container,
39
- sassKey: sassKey,
40
- theme: theme
41
- }),
36
+ var _useAssetsPicker = useAssetsPicker(),
42
37
  openAssetPicker = _useAssetsPicker.openAssetPicker;
43
38
  var maxNumberOfFiles = restrictions.maxNumberOfFiles,
44
39
  allowedFileTypes = restrictions.allowedFileTypes;
@@ -108,7 +103,10 @@ var AddFiles = function AddFiles() {
108
103
  openAssetPicker({
109
104
  onImport: onImportFromDam,
110
105
  hideUploadButton: true,
111
- ExploreViewComponent: ExploreViewComponent
106
+ securityTemplateId: securityTemplateId,
107
+ container: container,
108
+ sassKey: sassKey,
109
+ theme: theme
112
110
  });
113
111
  };
114
112
  return /*#__PURE__*/_jsx(Styled.AcquirerButtons, {
@@ -7,7 +7,8 @@ var ActionButtons = function ActionButtons(_ref) {
7
7
  zoomRatio = _ref.zoomRatio,
8
8
  setZoomRatio = _ref.setZoomRatio,
9
9
  setIsFileTabsHidden = _ref.setIsFileTabsHidden,
10
- isFileTabsHidden = _ref.isFileTabsHidden;
10
+ isFileTabsHidden = _ref.isFileTabsHidden,
11
+ useAssetsPicker = _ref.useAssetsPicker;
11
12
  var zoomIn = function zoomIn() {
12
13
  var nextZoomRatio = Math.min(zoomRatio + BTN_ZOOM_RATIO_PERCENTAGE, MAX_ZOOM_RATIO);
13
14
  setZoomRatio(nextZoomRatio);
@@ -52,7 +53,7 @@ var ActionButtons = function ActionButtons(_ref) {
52
53
  children: /*#__PURE__*/_jsx(Styled.PlusOutline, {})
53
54
  })
54
55
  })]
55
- }), /*#__PURE__*/_jsx(Styled.FooterActionBtn, {
56
+ }), useAssetsPicker ? /*#__PURE__*/_jsx("span", {}) : /*#__PURE__*/_jsx(Styled.FooterActionBtn, {
56
57
  size: "lg",
57
58
  color: "basic",
58
59
  isVisible: isImageOrPdf,
@@ -16,7 +16,8 @@ var Footer = function Footer(_ref) {
16
16
  isImageFile = _ref.isImageFile,
17
17
  isAudioFileAndSupportsPlayback = _ref.isAudioFileAndSupportsPlayback,
18
18
  setIsFileTabsHidden = _ref.setIsFileTabsHidden,
19
- isFileTabsHidden = _ref.isFileTabsHidden;
19
+ isFileTabsHidden = _ref.isFileTabsHidden,
20
+ useAssetsPicker = _ref.useAssetsPicker;
20
21
  var _useExplorer = useExplorer(),
21
22
  isDevEnv = _useExplorer.isDevEnv;
22
23
  var mediaPlayerPlugin = usePlugin(PLUGINS_IDS.MEDIA_PLAYER);
@@ -51,7 +52,8 @@ var Footer = function Footer(_ref) {
51
52
  setZoomRatio: setZoomRatio,
52
53
  isImageOrPdf: hasActionButtons,
53
54
  setIsFileTabsHidden: setIsFileTabsHidden,
54
- isFileTabsHidden: isFileTabsHidden
55
+ isFileTabsHidden: isFileTabsHidden,
56
+ useAssetsPicker: useAssetsPicker
55
57
  })
56
58
  });
57
59
  };
@@ -29,7 +29,8 @@ var FileWindowBody = function FileWindowBody(_ref) {
29
29
  isVariantsOpened = _ref.isVariantsOpened,
30
30
  setIsVariantsOpened = _ref.setIsVariantsOpened,
31
31
  setIsFileTabsHidden = _ref.setIsFileTabsHidden,
32
- isFileTabsHidden = _ref.isFileTabsHidden;
32
+ isFileTabsHidden = _ref.isFileTabsHidden,
33
+ useAssetsPicker = _ref.useAssetsPicker;
33
34
  var _useState = useState(DEFAULT_ZOOM_RATIO),
34
35
  _useState2 = _slicedToArray(_useState, 2),
35
36
  zoomRatio = _useState2[0],
@@ -99,7 +100,8 @@ var FileWindowBody = function FileWindowBody(_ref) {
99
100
  isVariantsOpened: isVariantsOpened,
100
101
  setIsVariantsOpened: setIsVariantsOpened,
101
102
  setIsFileTabsHidden: setIsFileTabsHidden,
102
- isFileTabsHidden: isFileTabsHidden
103
+ isFileTabsHidden: isFileTabsHidden,
104
+ useAssetsPicker: useAssetsPicker
103
105
  })]
104
106
  });
105
107
  };
@@ -73,19 +73,11 @@ var CustomMetadataSection = function CustomMetadataSection(_ref) {
73
73
  securityTemplateId = _useCore$opts.securityTemplateId,
74
74
  container = _useCore$opts.container,
75
75
  sassKey = _useCore$opts.sassKey;
76
- var _useAssetsPicker = useAssetsPicker({
77
- securityTemplateId: securityTemplateId,
78
- container: container,
79
- sassKey: sassKey,
80
- theme: theme
81
- }),
76
+ var _useAssetsPicker = useAssetsPicker(),
82
77
  openAssetPicker = _useAssetsPicker.openAssetPicker;
83
78
  var _useExplorer = useExplorer(),
84
79
  info = _useExplorer.info,
85
- i18nArray = _useExplorer.i18nArray,
86
- _useExplorer$opts = _useExplorer.opts,
87
- _useExplorer$opts2 = _useExplorer$opts === void 0 ? {} : _useExplorer$opts,
88
- ExploreViewComponent = _useExplorer$opts2.ExploreViewComponent;
80
+ i18nArray = _useExplorer.i18nArray;
89
81
  var locateFile = useLocateFile();
90
82
  var deleteModal = useDeleteModal(true);
91
83
  var triggerDownloadConsentModal = useDownloadConsentModal();
@@ -96,6 +88,17 @@ var CustomMetadataSection = function CustomMetadataSection(_ref) {
96
88
  var isAttachmentsField = function isAttachmentsField(field) {
97
89
  return field.type === ATTACHMENTS_ASSETS;
98
90
  };
91
+ var triggerAssetsPicker = function triggerAssetsPicker() {
92
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
93
+ args[_key] = arguments[_key];
94
+ }
95
+ return openAssetPicker(_objectSpread({
96
+ securityTemplateId: securityTemplateId,
97
+ container: container,
98
+ sassKey: sassKey,
99
+ theme: theme
100
+ }, args));
101
+ };
99
102
  var copyFileLink = function copyFileLink(fileToCopy) {
100
103
  dispatch(copyFileCdnLink(fileToCopy));
101
104
  };
@@ -143,7 +146,7 @@ var CustomMetadataSection = function CustomMetadataSection(_ref) {
143
146
  onChange: onChange,
144
147
  editedDetails: editedDetails,
145
148
  meta: meta,
146
- openAssetPicker: openAssetPicker,
149
+ openAssetPicker: triggerAssetsPicker,
147
150
  info: info,
148
151
  originalFile: file,
149
152
  locateFile: locateFile,
@@ -154,8 +157,7 @@ var CustomMetadataSection = function CustomMetadataSection(_ref) {
154
157
  fetchFileByUuid: fetchFileByUuid,
155
158
  field: field,
156
159
  smallerFont: smallerFont,
157
- copyCdnLink: copyFileLink,
158
- assetsPickerExploreViewComponent: ExploreViewComponent
160
+ copyCdnLink: copyFileLink
159
161
  });
160
162
  };
161
163
  return /*#__PURE__*/_jsx(StyledMetadataTab.TableContainer, {
@@ -168,7 +168,8 @@ var FileWindow = function FileWindow(_ref) {
168
168
  isVariantsOpened: isVariantsOpened,
169
169
  setIsVariantsOpened: setIsVariantsOpened,
170
170
  isFileTabsHidden: isFileTabsHidden,
171
- setIsFileTabsHidden: setIsFileTabsHidden
171
+ setIsFileTabsHidden: setIsFileTabsHidden,
172
+ useAssetsPicker: useAssetsPicker
172
173
  };
173
174
  if (useAssetsPicker || isFileTabsHidden) {
174
175
  return /*#__PURE__*/_jsxs(StyledFileWindow.Wrapper, {
@@ -32,6 +32,10 @@ var PickerPanelContent = function PickerPanelContent(_ref) {
32
32
  var addPanelSelection = function addPanelSelection() {
33
33
  return pluginOfThePanel === null || pluginOfThePanel === void 0 ? void 0 : pluginOfThePanel.addSelectedItems();
34
34
  };
35
+ var renderPanelUploadActionButtons = function renderPanelUploadActionButtons() {
36
+ var _pluginOfThePanel$vie, _pluginOfThePanel$vie2;
37
+ return pluginOfThePanel === null || pluginOfThePanel === void 0 ? void 0 : (_pluginOfThePanel$vie = pluginOfThePanel.view) === null || _pluginOfThePanel$vie === void 0 ? void 0 : (_pluginOfThePanel$vie2 = _pluginOfThePanel$vie.renderPanelUploadActionButtons) === null || _pluginOfThePanel$vie2 === void 0 ? void 0 : _pluginOfThePanel$vie2.call(_pluginOfThePanel$vie);
38
+ };
35
39
  var openAddPanelAndCloseOthers = useCallback(function () {
36
40
  dispatch(pickerPanelUpdated({
37
41
  pickerPanel: false
@@ -88,7 +92,8 @@ var PickerPanelContent = function PickerPanelContent(_ref) {
88
92
  panelGetPrevFolder: panelGetPrevFolder,
89
93
  onCancelClick: openAddPanelAndCloseOthers,
90
94
  panelAuthenticated: panelAuthenticated && !hideActionButtons,
91
- panelLoading: panelLoading
95
+ panelLoading: panelLoading,
96
+ renderPanelUploadActionButtons: renderPanelUploadActionButtons
92
97
  })]
93
98
  });
94
99
  };
@@ -30,7 +30,8 @@ var UploadBar = function UploadBar(_ref) {
30
30
  panelGetPrevFolder = _ref.panelGetPrevFolder,
31
31
  panelAuthenticated = _ref.panelAuthenticated,
32
32
  panelLoading = _ref.panelLoading,
33
- onCancelClick = _ref.onCancelClick;
33
+ onCancelClick = _ref.onCancelClick,
34
+ renderPanelUploadActionButtons = _ref.renderPanelUploadActionButtons;
34
35
  var dispatch = useDispatch();
35
36
  var _useCore = useCore(),
36
37
  restrictions = _useCore.opts.restrictions;
@@ -196,7 +197,7 @@ var UploadBar = function UploadBar(_ref) {
196
197
  "aria-label": "Modal actions",
197
198
  className: "filerobot-Explorer-uploadBar",
198
199
  children: [/*#__PURE__*/_jsxs(Styled.ActionWrapper, {
199
- children: [/*#__PURE__*/_jsx(Styled.ActionButton, {
200
+ children: [renderPanelUploadActionButtons === null || renderPanelUploadActionButtons === void 0 ? void 0 : renderPanelUploadActionButtons(), /*#__PURE__*/_jsx(Styled.ActionButton, {
200
201
  className: "filerobot-Explorer-cancel",
201
202
  size: "lg",
202
203
  color: "basic",
@@ -1349,5 +1349,6 @@ export default {
1349
1349
  galleryRoleSelectorStandardTabLabel: 'Standard',
1350
1350
  galleryRoleSelectorCustomTabLabel: 'Custom',
1351
1351
  galleryRoleSelectorLessRolePermsTooltip: 'This role has less permissions than the default access',
1352
- explorerGridFileOptionsOverlaySelectBtn: 'Select'
1352
+ explorerGridFileOptionsOverlaySelectBtn: 'Select',
1353
+ explorer3rdPartyUploadIncludeSubFolders: 'Include subfolders'
1353
1354
  };
@@ -1,10 +1,5 @@
1
+ var _excluded = ["securityTemplateId", "container", "sassKey", "theme", "language", "onImport", "multiSelect", "maxCountOfSelectedFiles", "mutedFilesUuids", "hideUploadButton", "forceFilters", "rootFolderPath", "views", "allowedUploadFileTypes", "onClickUploadButton", "acquirers", "assetsPickerModelTitle", "pluginsToUse", "moreCoreConfig", "moreExplorerConfig", "moreXhrUploadConfig", "moreProgressPanelConfig", "onOpen", "onClose"];
1
2
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["onImport", "multiSelect", "maxCountOfSelectedFiles", "mutedFilesUuids", "hideUploadButton", "forceFilters", "rootFolderPath", "views", "allowedUploadFileTypes", "onClickUploadButton", "ExploreViewComponent", "acquirers", "assetsPickerModelTitle"];
3
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
6
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
3
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
9
4
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
10
5
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
@@ -13,17 +8,21 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
13
8
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
14
9
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
15
10
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
16
  import { useRef } from 'react';
17
17
  import Filerobot from '@scaleflex/widget-core';
18
18
  import { VIEW_IDS, PLUGINS_IDS } from '@scaleflex/widget-utils/lib/constants';
19
+ import isFunction from '@scaleflex/widget-utils/lib/isFunction';
20
+ import Explorer from '../index';
21
+ import ExploreViewComponent from '../components/ExploreView';
19
22
 
20
23
  // We are importing Explorer dynamically to avoid issue with redux slice initialization
21
24
  // Using a promise-based approach to ensure proper loading
22
- var loadExplorer = function loadExplorer() {
23
- return import('../index').then(function (module) {
24
- return module["default"];
25
- });
26
- };
25
+
27
26
  var DEFAULT_VIEWS = [VIEW_IDS.ASSETS, VIEW_IDS.FOLDERS];
28
27
  var getConfigs = function getConfigs(_ref) {
29
28
  var container = _ref.container,
@@ -40,24 +39,28 @@ var getConfigs = function getConfigs(_ref) {
40
39
  views = _ref.views,
41
40
  allowedUploadFileTypes = _ref.allowedUploadFileTypes,
42
41
  onClickUploadButton = _ref.onClickUploadButton,
43
- ExploreViewComponent = _ref.ExploreViewComponent,
44
42
  _ref$assetsPickerMode = _ref.assetsPickerModelTitle,
45
- assetsPickerModelTitle = _ref$assetsPickerMode === void 0 ? 'explorerTopSectionImportFileTitle' : _ref$assetsPickerMode;
43
+ assetsPickerModelTitle = _ref$assetsPickerMode === void 0 ? 'explorerTopSectionImportFileTitle' : _ref$assetsPickerMode,
44
+ _ref$moreCoreConfig = _ref.moreCoreConfig,
45
+ moreCoreConfig = _ref$moreCoreConfig === void 0 ? {} : _ref$moreCoreConfig,
46
+ _ref$moreExplorerConf = _ref.moreExplorerConfig,
47
+ moreExplorerConfig = _ref$moreExplorerConf === void 0 ? {} : _ref$moreExplorerConf,
48
+ language = _ref.language;
46
49
  return {
47
- core: {
50
+ core: _objectSpread({
48
51
  container: container,
49
52
  securityTemplateId: securityTemplateId,
50
53
  sassKey: sassKey,
51
54
  theme: theme,
55
+ language: language,
52
56
  restrictions: {
53
57
  allowedFileTypes: allowedUploadFileTypes
54
58
  }
55
- },
56
- explorer: {
59
+ }, moreCoreConfig),
60
+ explorer: _objectSpread({
57
61
  hideUploadButton: hideUploadButton,
58
62
  forceFilters: forceFilters,
59
63
  view: VIEW_IDS.ASSETS,
60
- showRemoveBackgroundOption: false,
61
64
  width: '90vw',
62
65
  height: '90vh',
63
66
  target: null,
@@ -75,78 +78,93 @@ var getConfigs = function getConfigs(_ref) {
75
78
  disableMultipleSelect: !multiSelect,
76
79
  maxCountOfSelectedFiles: maxCountOfSelectedFiles,
77
80
  mutedFilesUuids: mutedFilesUuids,
78
- preventDownloadDefaultBehavior: true,
79
81
  config: {
80
82
  rootFolderPath: rootFolderPath
81
83
  },
82
84
  views: views,
83
85
  onClickUploadButton: onClickUploadButton,
84
86
  ExploreViewComponent: ExploreViewComponent
85
- }
87
+ }, moreExplorerConfig)
86
88
  };
87
89
  };
88
- var useAssetsPicker = function useAssetsPicker(_ref2) {
89
- var securityTemplateId = _ref2.securityTemplateId,
90
- container = _ref2.container,
91
- sassKey = _ref2.sassKey,
92
- theme = _ref2.theme;
90
+ var useAssetsPicker = function useAssetsPicker() {
93
91
  var filerobotInstance = useRef(null);
94
92
  var getExplorerPlugin = function getExplorerPlugin(filerobot) {
95
- var _ref3;
96
- return (_ref3 = filerobot !== null && filerobot !== void 0 ? filerobot : filerobotInstance.current) === null || _ref3 === void 0 ? void 0 : _ref3.getPlugin(PLUGINS_IDS.EXPLORER);
93
+ var _ref2;
94
+ return (_ref2 = filerobot !== null && filerobot !== void 0 ? filerobot : filerobotInstance.current) === null || _ref2 === void 0 ? void 0 : _ref2.getPlugin(PLUGINS_IDS.EXPLORER);
97
95
  };
98
- var closeAssetsPicker = function closeAssetsPicker() {
99
- var _getExplorerPlugin;
96
+ var closeAssetsPicker = function closeAssetsPicker(onCloseCbk) {
97
+ var _getExplorerPlugin, _filerobotInstance$cu, _filerobotInstance$cu2;
100
98
  (_getExplorerPlugin = getExplorerPlugin()) === null || _getExplorerPlugin === void 0 ? void 0 : _getExplorerPlugin.closeModal();
101
- if (filerobotInstance.current) {
102
- filerobotInstance.current.close();
103
- }
99
+ (_filerobotInstance$cu = filerobotInstance.current) === null || _filerobotInstance$cu === void 0 ? void 0 : (_filerobotInstance$cu2 = _filerobotInstance$cu.close) === null || _filerobotInstance$cu2 === void 0 ? void 0 : _filerobotInstance$cu2.call(_filerobotInstance$cu);
104
100
  filerobotInstance.current = null;
101
+ onCloseCbk === null || onCloseCbk === void 0 ? void 0 : onCloseCbk();
105
102
  };
106
- var onFileAdd = function onFileAdd(_ref4) {
107
- var nextFiles = _ref4.nextFiles,
108
- onImport = _ref4.onImport;
103
+ var onFileAdd = function onFileAdd(_ref3) {
104
+ var nextFiles = _ref3.nextFiles,
105
+ onImport = _ref3.onImport,
106
+ onCloseCbk = _ref3.onCloseCbk;
109
107
  if (!onImport) return;
110
108
  onImport(nextFiles);
111
- closeAssetsPicker();
109
+ closeAssetsPicker(onCloseCbk);
112
110
  };
113
- var handleExport = function handleExport(_ref5) {
114
- var files = _ref5.files,
115
- onImport = _ref5.onImport,
116
- multiSelect = _ref5.multiSelect;
111
+ var handleExport = function handleExport(_ref4) {
112
+ var files = _ref4.files,
113
+ onImport = _ref4.onImport,
114
+ multiSelect = _ref4.multiSelect,
115
+ onCloseCbk = _ref4.onCloseCbk;
117
116
  var _files = _slicedToArray(files, 1),
118
117
  file = _files[0].file;
119
118
  var nextFiles = multiSelect ? files : file;
120
119
  onFileAdd({
121
120
  nextFiles: nextFiles,
122
- onImport: onImport
121
+ onImport: onImport,
122
+ onCloseCbk: onCloseCbk
123
123
  });
124
124
  };
125
125
  var openAssetPicker = async function openAssetPicker() {
126
- var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
127
- onImport = _ref6.onImport,
128
- multiSelect = _ref6.multiSelect,
129
- maxCountOfSelectedFiles = _ref6.maxCountOfSelectedFiles,
130
- _ref6$mutedFilesUuids = _ref6.mutedFilesUuids,
131
- mutedFilesUuids = _ref6$mutedFilesUuids === void 0 ? [] : _ref6$mutedFilesUuids,
132
- _ref6$hideUploadButto = _ref6.hideUploadButton,
133
- hideUploadButton = _ref6$hideUploadButto === void 0 ? false : _ref6$hideUploadButto,
134
- _ref6$forceFilters = _ref6.forceFilters,
135
- forceFilters = _ref6$forceFilters === void 0 ? false : _ref6$forceFilters,
136
- _ref6$rootFolderPath = _ref6.rootFolderPath,
137
- rootFolderPath = _ref6$rootFolderPath === void 0 ? '/' : _ref6$rootFolderPath,
138
- _ref6$views = _ref6.views,
139
- views = _ref6$views === void 0 ? DEFAULT_VIEWS : _ref6$views,
140
- _ref6$allowedUploadFi = _ref6.allowedUploadFileTypes,
141
- allowedUploadFileTypes = _ref6$allowedUploadFi === void 0 ? null : _ref6$allowedUploadFi,
142
- onClickUploadButton = _ref6.onClickUploadButton,
143
- _ref6$ExploreViewComp = _ref6.ExploreViewComponent,
144
- ExploreViewComponent = _ref6$ExploreViewComp === void 0 ? null : _ref6$ExploreViewComp,
145
- _ref6$acquirers = _ref6.acquirers,
146
- acquirers = _ref6$acquirers === void 0 ? [] : _ref6$acquirers,
147
- assetsPickerModelTitle = _ref6.assetsPickerModelTitle,
148
- rest = _objectWithoutProperties(_ref6, _excluded);
149
- if (!window || filerobotInstance.current) return;
126
+ var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
127
+ securityTemplateId = _ref5.securityTemplateId,
128
+ container = _ref5.container,
129
+ sassKey = _ref5.sassKey,
130
+ theme = _ref5.theme,
131
+ language = _ref5.language,
132
+ onImport = _ref5.onImport,
133
+ multiSelect = _ref5.multiSelect,
134
+ maxCountOfSelectedFiles = _ref5.maxCountOfSelectedFiles,
135
+ _ref5$mutedFilesUuids = _ref5.mutedFilesUuids,
136
+ mutedFilesUuids = _ref5$mutedFilesUuids === void 0 ? [] : _ref5$mutedFilesUuids,
137
+ _ref5$hideUploadButto = _ref5.hideUploadButton,
138
+ hideUploadButton = _ref5$hideUploadButto === void 0 ? false : _ref5$hideUploadButto,
139
+ _ref5$forceFilters = _ref5.forceFilters,
140
+ forceFilters = _ref5$forceFilters === void 0 ? false : _ref5$forceFilters,
141
+ _ref5$rootFolderPath = _ref5.rootFolderPath,
142
+ rootFolderPath = _ref5$rootFolderPath === void 0 ? '/' : _ref5$rootFolderPath,
143
+ _ref5$views = _ref5.views,
144
+ views = _ref5$views === void 0 ? DEFAULT_VIEWS : _ref5$views,
145
+ _ref5$allowedUploadFi = _ref5.allowedUploadFileTypes,
146
+ allowedUploadFileTypes = _ref5$allowedUploadFi === void 0 ? null : _ref5$allowedUploadFi,
147
+ onClickUploadButton = _ref5.onClickUploadButton,
148
+ _ref5$acquirers = _ref5.acquirers,
149
+ acquirers = _ref5$acquirers === void 0 ? [] : _ref5$acquirers,
150
+ assetsPickerModelTitle = _ref5.assetsPickerModelTitle,
151
+ _ref5$pluginsToUse = _ref5.pluginsToUse,
152
+ pluginsToUse = _ref5$pluginsToUse === void 0 ? [] : _ref5$pluginsToUse,
153
+ _ref5$moreCoreConfig = _ref5.moreCoreConfig,
154
+ moreCoreConfig = _ref5$moreCoreConfig === void 0 ? {} : _ref5$moreCoreConfig,
155
+ _ref5$moreExplorerCon = _ref5.moreExplorerConfig,
156
+ moreExplorerConfig = _ref5$moreExplorerCon === void 0 ? {} : _ref5$moreExplorerCon,
157
+ _ref5$moreXhrUploadCo = _ref5.moreXhrUploadConfig,
158
+ moreXhrUploadConfig = _ref5$moreXhrUploadCo === void 0 ? {} : _ref5$moreXhrUploadCo,
159
+ _ref5$moreProgressPan = _ref5.moreProgressPanelConfig,
160
+ moreProgressPanelConfig = _ref5$moreProgressPan === void 0 ? {} : _ref5$moreProgressPan,
161
+ onOpen = _ref5.onOpen,
162
+ onClose = _ref5.onClose,
163
+ rest = _objectWithoutProperties(_ref5, _excluded);
164
+ if (!window) return;
165
+ if (filerobotInstance.current) {
166
+ closeAssetsPicker();
167
+ }
150
168
  var _getConfigs = getConfigs(_objectSpread({
151
169
  container: container,
152
170
  securityTemplateId: securityTemplateId,
@@ -161,65 +179,92 @@ var useAssetsPicker = function useAssetsPicker(_ref2) {
161
179
  forceFilters: forceFilters,
162
180
  allowedUploadFileTypes: allowedUploadFileTypes,
163
181
  onClickUploadButton: onClickUploadButton,
164
- ExploreViewComponent: ExploreViewComponent,
165
- assetsPickerModelTitle: assetsPickerModelTitle
182
+ assetsPickerModelTitle: assetsPickerModelTitle,
183
+ moreCoreConfig: moreCoreConfig,
184
+ moreExplorerConfig: moreExplorerConfig,
185
+ language: language
166
186
  }, rest)),
167
187
  core = _getConfigs.core,
168
188
  explorer = _getConfigs.explorer;
169
189
  var filerobot = Filerobot(core);
170
-
171
- // Load Explorer module dynamically
172
- try {
173
- var Explorer = await loadExplorer();
174
- filerobot.use(Explorer, explorer);
175
- } catch (error) {
176
- console.error('Failed to load Explorer module:', error);
177
- return;
178
- }
190
+ filerobot.use(Explorer, explorer);
191
+ pluginsToUse.forEach(function (_ref6) {
192
+ var plugin = _ref6.plugin,
193
+ _ref6$config = _ref6.config,
194
+ config = _ref6$config === void 0 ? {} : _ref6$config;
195
+ filerobot.use(plugin, config);
196
+ });
179
197
  if (!hideUploadButton) {
180
198
  import('@scaleflex/widget-xhr-upload').then(function (module) {
181
199
  var XHRUpload = module["default"];
182
- filerobot.use(XHRUpload);
200
+ filerobot.use(XHRUpload, moreXhrUploadConfig);
183
201
  });
184
202
  import('@scaleflex/widget-progress-panel').then(function (module) {
185
203
  var ProgressPanel = module["default"];
186
- filerobot.use(ProgressPanel);
204
+ filerobot.use(ProgressPanel, moreProgressPanelConfig);
187
205
  });
188
206
  }
189
- if (acquirers.includes(PLUGINS_IDS.URL)) {
207
+ var urlPlugin = acquirers.find(function () {
208
+ var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
209
+ id = _ref7.id;
210
+ return id === PLUGINS_IDS.URL;
211
+ });
212
+ if (urlPlugin) {
190
213
  import('@scaleflex/widget-url').then(function (module) {
191
214
  var Url = module["default"];
192
- filerobot.use(Url);
215
+ filerobot.use(Url, urlPlugin.config);
193
216
  });
194
217
  }
195
- if (acquirers.includes(PLUGINS_IDS.GOOGLE_DRIVE)) {
218
+ var googleDrivePlugin = acquirers.find(function () {
219
+ var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
220
+ id = _ref8.id;
221
+ return id === PLUGINS_IDS.GOOGLE_DRIVE;
222
+ });
223
+ if (googleDrivePlugin) {
196
224
  import('@scaleflex/widget-google-drive').then(function (module) {
197
225
  var GoogleDrive = module["default"];
198
- filerobot.use(GoogleDrive);
226
+ filerobot.use(GoogleDrive, googleDrivePlugin.config);
199
227
  });
200
228
  }
201
- if (acquirers.includes(PLUGINS_IDS.DROPBOX)) {
229
+ var dropboxPlugin = acquirers.find(function () {
230
+ var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
231
+ id = _ref9.id;
232
+ return id === PLUGINS_IDS.DROPBOX;
233
+ });
234
+ if (dropboxPlugin) {
202
235
  import('@scaleflex/widget-dropbox').then(function (module) {
203
236
  var Dropbox = module["default"];
204
- filerobot.use(Dropbox);
237
+ filerobot.use(Dropbox, dropboxPlugin.config);
205
238
  });
206
239
  }
207
- if (acquirers.includes(PLUGINS_IDS.ONE_DRIVE)) {
240
+ var oneDrivePlugin = acquirers.find(function () {
241
+ var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
242
+ id = _ref10.id;
243
+ return id === PLUGINS_IDS.ONE_DRIVE;
244
+ });
245
+ if (oneDrivePlugin) {
208
246
  import('@scaleflex/widget-onedrive').then(function (module) {
209
247
  var OneDrive = module["default"];
210
- filerobot.use(OneDrive);
248
+ filerobot.use(OneDrive, oneDrivePlugin.config);
211
249
  });
212
250
  }
213
251
  filerobot.on('export', function (files) {
214
252
  return handleExport({
215
253
  files: files,
216
254
  onImport: onImport,
217
- multiSelect: multiSelect
255
+ multiSelect: multiSelect,
256
+ onCloseCbk: onClose
218
257
  });
219
258
  });
220
- filerobot.on('explorer:modal-close', closeAssetsPicker);
259
+ filerobot.once('explorer:modal-close', function () {
260
+ return closeAssetsPicker(onClose);
261
+ });
221
262
  filerobotInstance.current = filerobot;
222
263
  getExplorerPlugin(filerobot).openModal();
264
+ if (isFunction(onOpen)) {
265
+ filerobot.once('explorer:modal-open', onOpen);
266
+ }
267
+ return filerobot;
223
268
  };
224
269
  return {
225
270
  openAssetPicker: openAssetPicker,
package/lib/index.js CHANGED
@@ -1253,7 +1253,6 @@ var Explorer = /*#__PURE__*/function (_Plugin) {
1253
1253
  showBar: true,
1254
1254
  hideDownloadButtonIcon: false,
1255
1255
  hideHeaderBar: false,
1256
- showRemoveBackgroundOption: true,
1257
1256
  hideLeftSideBar: false,
1258
1257
  facetedSearchEnabled: false,
1259
1258
  facetedSearchSidebarExpanded: true,
@@ -88,14 +88,14 @@ var handleUploadError = function handleUploadError(_ref3) {
88
88
  if (_typeof(error) === 'object' && error.message) {
89
89
  var _response$body3;
90
90
  var newError = new Error(error.message);
91
- newError.details = error.message;
91
+ newError.details = error.cause || error.message;
92
92
  if (error.details) {
93
93
  newError.details += ' ' + error.details;
94
94
  }
95
95
  if (response !== null && response !== void 0 && (_response$body3 = response.body) !== null && _response$body3 !== void 0 && _response$body3.msg) {
96
96
  var _response$body4;
97
97
  newError.message = "".concat(file.name, ": ").concat(response === null || response === void 0 ? void 0 : (_response$body4 = response.body) === null || _response$body4 === void 0 ? void 0 : _response$body4.msg);
98
- } else {
98
+ } else if (!newError.message) {
99
99
  newError.message = filerobot.i18n('filerobotFailedToUploadError', {
100
100
  file: file.name
101
101
  });
@@ -1,6 +1,6 @@
1
1
  import toArray from '@scaleflex/widget-utils/lib/toArray';
2
2
  import getActiveOverlayEl from './getActiveOverlayEl';
3
- import FOCUSABLE_ELEMENTS from '@scaleflex/widget-utils/lib//FOCUSABLE_ELEMENTS';
3
+ import FOCUSABLE_ELEMENTS from '@scaleflex/widget-utils/lib/FOCUSABLE_ELEMENTS';
4
4
  function focusOnFirstNode(event, nodes) {
5
5
  var node = nodes[0];
6
6
  if (node) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scaleflex/widget-explorer",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Scaleflex explorer for the files uploaded on filerobot, handling them & upload new files.",
5
5
  "main": "lib/index.js",
6
6
  "style": "dist/style.min.css",
@@ -18,12 +18,12 @@
18
18
  "@scaleflex/icons": "^3.0.0-beta.11",
19
19
  "@scaleflex/react-url-builder": "^0.0.72",
20
20
  "@scaleflex/ui": "^3.0.0-beta.11",
21
- "@scaleflex/widget-common": "^0.1.1",
22
- "@scaleflex/widget-icons": "^0.1.1",
23
- "@scaleflex/widget-informer": "^0.1.1",
24
- "@scaleflex/widget-provider-views": "^0.1.1",
25
- "@scaleflex/widget-thumbnail-generator": "^0.1.1",
26
- "@scaleflex/widget-utils": "^0.1.1",
21
+ "@scaleflex/widget-common": "^0.2.0",
22
+ "@scaleflex/widget-icons": "^0.2.0",
23
+ "@scaleflex/widget-informer": "^0.2.0",
24
+ "@scaleflex/widget-provider-views": "^0.2.0",
25
+ "@scaleflex/widget-thumbnail-generator": "^0.2.0",
26
+ "@scaleflex/widget-utils": "^0.2.0",
27
27
  "@transloadit/prettier-bytes": "0.1.0",
28
28
  "akamai-filerobot-converter": "^0.1.6",
29
29
  "classnames": "^2.2.6",
@@ -51,5 +51,5 @@
51
51
  "react-konva": ">=19.0.3"
52
52
  },
53
53
  "license": "MIT",
54
- "gitHead": "033a120c03dbd1e8f371975285511f89e828cb9c"
54
+ "gitHead": "26ec7e315c676a2b2060361f58082fc275a2d7bf"
55
55
  }
package/types/index.d.ts CHANGED
@@ -46,7 +46,6 @@ declare module Explorer {
46
46
  height?: number | string;
47
47
  showBar?: boolean;
48
48
  hideDownloadButtonIcon?: boolean;
49
- showRemoveBackgroundOption?: boolean;
50
49
  hideModalAfterExport?: boolean;
51
50
  closeAfterImageEdit?: boolean;
52
51
  showDragDropPanel?: boolean;