@scaleflex/widget-explorer 4.5.0 → 4.5.4
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 +35 -0
- package/README.md +21 -3
- package/dist/style.css +2 -0
- package/dist/style.min.css +1 -1
- package/lib/components/ActionBar/DownloadWithExportButton.js +32 -4
- package/lib/components/AssetsList/ListView/AssetsSection/AssetsSectionTableRow.js +1 -1
- package/lib/components/Breadcrumbs/index.js +114 -6
- package/lib/components/CollectionsView/CollectionFolderIcon.js +35 -0
- package/lib/components/CollectionsView/CollectionVirtualFoldersTree/CollectionTreeSkeletion.js +26 -0
- package/lib/components/CollectionsView/CollectionVirtualFoldersTree/CollectionVirtualFoldersTree.styled.js +52 -0
- package/lib/components/CollectionsView/CollectionVirtualFoldersTree/CollectionVirtualFoldersTree.utils.js +24 -0
- package/lib/components/CollectionsView/CollectionVirtualFoldersTree/Folder.js +88 -0
- package/lib/components/CollectionsView/CollectionVirtualFoldersTree/Tree.js +50 -0
- package/lib/components/CollectionsView/CollectionVirtualFoldersTree/index.js +75 -0
- package/lib/components/CollectionsView/CollectionsSkeleton.js +30 -0
- package/lib/components/CollectionsView/CollectionsTree/ActiveCollectionContent.js +61 -0
- package/lib/components/CollectionsView/CollectionsTree/CollectionTreeItem.js +44 -0
- package/lib/components/CollectionsView/CollectionsTree/CollectionsContent.js +130 -0
- package/lib/components/CollectionsView/CollectionsTree/CollectionsTree.styled.js +84 -0
- package/lib/components/CollectionsView/CollectionsTree/index.js +47 -0
- package/lib/components/CollectionsView/CollectionsView.styled.js +38 -0
- package/lib/components/CollectionsView/VirtualFoldersGrid.js +67 -0
- package/lib/components/CollectionsView/index.js +188 -0
- package/lib/components/Details/Details.constants.js +1 -0
- package/lib/components/EmptyViewPlaceholder/EmptyViewPlaceholder.styled.js +1 -1
- package/lib/components/FileItem/FileInfo/index.js +8 -2
- package/lib/components/FileWindowPanel/FileTabs/VariationsTab/VariationsTabNavigator.js +1 -7
- package/lib/components/FileWindowPanel/FileTabs/VariationsTab/index.js +4 -1
- package/lib/components/FileWindowPanel/Header/index.js +9 -0
- package/lib/components/Filters/hooks/useFilters.js +3 -2
- package/lib/components/HeaderBar/index.js +6 -2
- package/lib/components/LabelsView/LabelsTree/LabelsTree.styled.js +86 -0
- package/lib/components/LabelsView/LabelsTree/LabelsTreeSkeleton.js +21 -0
- package/lib/components/LabelsView/LabelsTree/index.js +128 -0
- package/lib/components/LabelsView/LabelsView.styled.js +10 -0
- package/lib/components/LabelsView/index.js +139 -0
- package/lib/components/Modals/DownloadConsent/DownloadConsent.hooks.js +11 -0
- package/lib/components/Modals/TransformedDownload/TransformedDownload.hooks.js +9 -0
- package/lib/components/Views/Views.constants.js +30 -4
- package/lib/components/Views/index.js +11 -4
- package/lib/components/common/FileMetadataFieldValue/GeneralMetadataFieldValue.js +1 -1
- package/lib/components/common/Sort/Sort.constants.js +28 -1
- package/lib/defaultLocale.js +36 -1
- package/lib/slices/collections.slice.js +714 -0
- package/lib/slices/common.slice.js +15 -52
- package/lib/slices/files.slice.js +6 -3
- package/lib/slices/index.js +5 -1
- package/lib/slices/labels.slice.js +652 -0
- package/lib/slices/views.slice.js +12 -0
- package/lib/utils/prepareSearchUrl.js +10 -0
- package/package.json +8 -8
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
|
|
2
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
3
|
+
import styled from 'styled-components';
|
|
4
|
+
import { FV, PC, PSH } from '@scaleflex/widget-common';
|
|
5
|
+
import { IconButton, Button } from '@scaleflex/ui/core';
|
|
6
|
+
var Container = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n"])));
|
|
7
|
+
var Header = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: sticky;\n top: 0;\n display: flex;\n flex-direction: column;\n align-items: baseline;\n gap: 16px;\n background: ", ";\n padding: 32px 24px 16px;\n z-index: 1;\n\n // TODO: Remove this hotfix when UI lib fixed Search fullWidth prop\n .SfxSearch-root {\n width: 100%;\n }\n"])), function (_ref) {
|
|
8
|
+
var palette = _ref.theme.palette;
|
|
9
|
+
return palette[PC.BackgroundStateless];
|
|
10
|
+
});
|
|
11
|
+
var AddCollectionBtn = styled(Button)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin: 0 24px 8px;\n padding: 10px 0 !important;\n width: max-content;\n\n .SfxButton-StartIcon {\n margin-right: 4px;\n }\n\n .SfxButton-Body {\n align-items: baseline;\n }\n"])));
|
|
12
|
+
var BackToAllCollectionsBtn = styled(Button)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n ", ";\n"])), function (_ref2) {
|
|
13
|
+
var theme = _ref2.theme;
|
|
14
|
+
return theme.typography.font[FV.ButtonLgEmphasis];
|
|
15
|
+
});
|
|
16
|
+
var SettingsWrapper = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 0;\n gap: 10px;\n padding: 0 24px 10px 24px;\n width: 100%;\n"])));
|
|
17
|
+
var NameLabel = styled.span(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n ", "\n color: ", ";\n"])), function (_ref3) {
|
|
18
|
+
var font = _ref3.theme.typography.font;
|
|
19
|
+
return font[FV.LabelMedium];
|
|
20
|
+
}, function (_ref4) {
|
|
21
|
+
var palette = _ref4.theme.palette;
|
|
22
|
+
return palette[PC.LinkStateless];
|
|
23
|
+
});
|
|
24
|
+
var SortingWrapper = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n flex-grow: 1;\n gap: 4px;\n height: 32px;\n"])));
|
|
25
|
+
var SettingsBtnWrapper = styled(IconButton)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n width: 36px;\n height: 36px;\n padding: 1px 6px;\n border: 1px solid ", ";\n box-shadow: ", ";\n background: ", ";\n"])), function (_ref5) {
|
|
26
|
+
var palette = _ref5.theme.palette;
|
|
27
|
+
return palette[PC.IconsPrimary];
|
|
28
|
+
}, function (_ref6) {
|
|
29
|
+
var theme = _ref6.theme;
|
|
30
|
+
return theme.shadows[PSH.ShadowMd];
|
|
31
|
+
}, function (_ref7) {
|
|
32
|
+
var palette = _ref7.theme.palette;
|
|
33
|
+
return palette[PC.BackgroundStateless];
|
|
34
|
+
});
|
|
35
|
+
var Content = styled.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n padding: 0 24px 16px;\n overflow-y: auto;\n"])));
|
|
36
|
+
var Title = styled.div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n ", "\n color: ", ";\n max-width: 90%;\n"])), function (_ref8) {
|
|
37
|
+
var font = _ref8.theme.typography.font;
|
|
38
|
+
return font[FV.TitleH4];
|
|
39
|
+
}, function (_ref9) {
|
|
40
|
+
var palette = _ref9.theme.palette;
|
|
41
|
+
return palette[PC.TextPrimary];
|
|
42
|
+
});
|
|
43
|
+
var ItemIcon = styled.div(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n display: flex;\n\n svg {\n color: ", ";\n margin-right: 2px;\n }\n"])), function (_ref10) {
|
|
44
|
+
var palette = _ref10.theme.palette;
|
|
45
|
+
return palette[PC.IconsSecondary];
|
|
46
|
+
});
|
|
47
|
+
var ItemLabel = styled.div(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n ", "\n color: ", ";\n"])), function (_ref11) {
|
|
48
|
+
var font = _ref11.theme.typography.font;
|
|
49
|
+
return font[FV.LabelMedium];
|
|
50
|
+
}, function (_ref12) {
|
|
51
|
+
var palette = _ref12.theme.palette;
|
|
52
|
+
return palette[PC.TextPrimary];
|
|
53
|
+
});
|
|
54
|
+
var Item = styled.div(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n height: 36px;\n gap: ", ";\n cursor: pointer;\n border-radius: 4px;\n padding: ", ";\n\n span {\n border-radius: 4px;\n }\n\n &:hover {\n background: ", ";\n }\n\n ", "\n"])), function (_ref13) {
|
|
55
|
+
var gap = _ref13.gap;
|
|
56
|
+
return gap || '6px';
|
|
57
|
+
}, function (_ref14) {
|
|
58
|
+
var _ref14$padding = _ref14.padding,
|
|
59
|
+
padding = _ref14$padding === void 0 ? '0 12px' : _ref14$padding;
|
|
60
|
+
return padding;
|
|
61
|
+
}, function (_ref15) {
|
|
62
|
+
var palette = _ref15.theme.palette;
|
|
63
|
+
return palette[PC.BackgroundHover];
|
|
64
|
+
}, function (_ref16) {
|
|
65
|
+
var $active = _ref16.$active,
|
|
66
|
+
palette = _ref16.theme.palette;
|
|
67
|
+
return $active ? "\n background: ".concat(palette[PC.BackgroundActive], " !important;\n\n ").concat(ItemLabel, " {\n color: ").concat(palette[PC.AccentStateless], ";\n }\n\n ").concat(ItemIcon, " {\n svg {\n color: ").concat(palette[PC.AccentStateless], ";\n }\n }\n ") : '';
|
|
68
|
+
});
|
|
69
|
+
var Styled = {
|
|
70
|
+
Container: Container,
|
|
71
|
+
Header: Header,
|
|
72
|
+
AddCollectionBtn: AddCollectionBtn,
|
|
73
|
+
BackToAllCollectionsBtn: BackToAllCollectionsBtn,
|
|
74
|
+
SettingsWrapper: SettingsWrapper,
|
|
75
|
+
SortingWrapper: SortingWrapper,
|
|
76
|
+
NameLabel: NameLabel,
|
|
77
|
+
SettingsBtnWrapper: SettingsBtnWrapper,
|
|
78
|
+
Content: Content,
|
|
79
|
+
Title: Title,
|
|
80
|
+
Item: Item,
|
|
81
|
+
ItemIcon: ItemIcon,
|
|
82
|
+
ItemLabel: ItemLabel
|
|
83
|
+
};
|
|
84
|
+
export default Styled;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
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; }
|
|
5
|
+
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; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
|
+
import { useEffect, useState } from 'react';
|
|
8
|
+
import { useSelector, useDispatch } from 'react-redux';
|
|
9
|
+
import { FMAW_URL_QUERY_PARAMS } from '@scaleflex/widget-utils/lib/constants';
|
|
10
|
+
import { fetchCollectionVirtualFolders, selectActiveCollection } from '../../../slices/collections.slice';
|
|
11
|
+
import { useExplorer } from '../../../hooks';
|
|
12
|
+
import CollectionsContent from './CollectionsContent';
|
|
13
|
+
import ActiveCollectionContent from './ActiveCollectionContent';
|
|
14
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
+
var CollectionsTree = function CollectionsTree() {
|
|
16
|
+
var dispatch = useDispatch();
|
|
17
|
+
var _useExplorer = useExplorer(),
|
|
18
|
+
getUrlQueryParam = _useExplorer.getUrlQueryParam;
|
|
19
|
+
var activeCollection = useSelector(selectActiveCollection);
|
|
20
|
+
var _useState = useState(true),
|
|
21
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
22
|
+
showActiveCollection = _useState2[0],
|
|
23
|
+
setShowActiveCollection = _useState2[1];
|
|
24
|
+
useEffect(function () {
|
|
25
|
+
var foundCollectionUuid = getUrlQueryParam(FMAW_URL_QUERY_PARAMS.VIEW_ITEM);
|
|
26
|
+
if (foundCollectionUuid) {
|
|
27
|
+
setShowActiveCollection(false);
|
|
28
|
+
}
|
|
29
|
+
}, []);
|
|
30
|
+
if (activeCollection && !showActiveCollection) {
|
|
31
|
+
return /*#__PURE__*/_jsx(ActiveCollectionContent, {
|
|
32
|
+
onClickBack: function onClickBack() {
|
|
33
|
+
return setShowActiveCollection(true);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
var handleActiveCollection = function handleActiveCollection(collectionUuid) {
|
|
38
|
+
setShowActiveCollection(false);
|
|
39
|
+
dispatch(fetchCollectionVirtualFolders({
|
|
40
|
+
collectionUuid: collectionUuid
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
43
|
+
return /*#__PURE__*/_jsx(CollectionsContent, {
|
|
44
|
+
activateCollection: handleActiveCollection
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
export default CollectionsTree;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
2
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
3
|
+
import styled from 'styled-components';
|
|
4
|
+
import { FV, PC } from '@scaleflex/widget-common';
|
|
5
|
+
import { Button } from '@scaleflex/ui/core';
|
|
6
|
+
var AddCollectionButton = styled(Button)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 160px;\n"])));
|
|
7
|
+
var Item = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: relative;\n cursor: pointer;\n\n > svg {\n width: 100%;\n height: 100%;\n }\n"])));
|
|
8
|
+
var ItemTitle = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n ", "\n text-align: left;\n padding: 12px;\n position: absolute;\n bottom: 0px;\n"])), function (_ref) {
|
|
9
|
+
var font = _ref.theme.typography.font;
|
|
10
|
+
return font[FV.LabelMedium];
|
|
11
|
+
});
|
|
12
|
+
var BrowserList = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n height: ", ";\n background-color: ", ";\n overflow: auto;\n padding: ", "; // Replaced 100px with 0 as it causes issue in virtual grid scrolling (and maybe the padding is not needed anymore?)\n\n [data-filerobot-floaty=\"true\"] & {\n &-collections {\n padding-left: 48px;\n padding-right: 48px;\n }\n\n &-labels {\n padding-left: 48px;\n padding-right: 48px;\n }\n }\n\n .SfxTableContainer-root {\n overflow-x: unset !important;\n }\n"])), function (_ref2) {
|
|
13
|
+
var isWidgetSmallSize = _ref2.isWidgetSmallSize,
|
|
14
|
+
topSectionHeight = _ref2.topSectionHeight,
|
|
15
|
+
height = _ref2.height;
|
|
16
|
+
return !isWidgetSmallSize && topSectionHeight && !height ? "calc(100% - ".concat(topSectionHeight, "px)") : '100%';
|
|
17
|
+
}, function (_ref3) {
|
|
18
|
+
var palette = _ref3.theme.palette;
|
|
19
|
+
return palette[PC.BackgroundStateless];
|
|
20
|
+
}, function (_ref4) {
|
|
21
|
+
var withSidePadding = _ref4.withSidePadding;
|
|
22
|
+
return "0 ".concat(withSidePadding ? '24px' : 0, " 24px");
|
|
23
|
+
});
|
|
24
|
+
var ItemCategoryList = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n list-style: none;\n padding: 0;\n width: 100%;\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(214px, 1fr));\n gap: 16px;\n\n // <= 1084px\n // media query\n ", " {\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 8px;\n }\n\n // <= 1084px\n // container\n ", " & {\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 8px;\n }\n\n ", " & {\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 8px;\n }\n"])), function (props) {
|
|
25
|
+
return props.theme.breakpoints.down('lg');
|
|
26
|
+
}, function (props) {
|
|
27
|
+
return props.theme.breakpoints.classes.md;
|
|
28
|
+
}, function (props) {
|
|
29
|
+
return props.theme.breakpoints.classes.sm;
|
|
30
|
+
});
|
|
31
|
+
var Styled = {
|
|
32
|
+
AddCollectionButton: AddCollectionButton,
|
|
33
|
+
Item: Item,
|
|
34
|
+
ItemTitle: ItemTitle,
|
|
35
|
+
BrowserList: BrowserList,
|
|
36
|
+
ItemCategoryList: ItemCategoryList
|
|
37
|
+
};
|
|
38
|
+
export default Styled;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
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
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
6
|
+
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); }
|
|
7
|
+
import { useDispatch, useSelector } from 'react-redux';
|
|
8
|
+
import { NoCollections } from '@scaleflex/icons';
|
|
9
|
+
import { EllipsedText } from '@scaleflex/ui/core';
|
|
10
|
+
import { useExplorerI18n, useIsSmallScreen } from '../../hooks';
|
|
11
|
+
import { fetchCollectionsFiles, selectCollectionsActiveVirtualFolder, selectCollectionsActiveVirtualFolderSortedChildren, selectSortedCollectionsActiveVirtualFoldersArray } from '../../slices/collections.slice';
|
|
12
|
+
import { selectTopSectionHeight } from '../../slices/topSection.slice';
|
|
13
|
+
import CollectionFolderIcon from './CollectionFolderIcon';
|
|
14
|
+
import NoItems from '../NoItems';
|
|
15
|
+
import Styled from './CollectionsView.styled';
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
var VirtualFoldersGrid = function VirtualFoldersGrid() {
|
|
18
|
+
var dispatch = useDispatch();
|
|
19
|
+
var i18n = useExplorerI18n();
|
|
20
|
+
var activeVirtualFolders = useSelector(selectSortedCollectionsActiveVirtualFoldersArray);
|
|
21
|
+
var activeVirtualFolderChildren = useSelector(selectCollectionsActiveVirtualFolderSortedChildren);
|
|
22
|
+
var topSectionHeight = useSelector(selectTopSectionHeight);
|
|
23
|
+
var isWidgetSmallSize = useIsSmallScreen();
|
|
24
|
+
var activeCollectionVirtualFolder = useSelector(selectCollectionsActiveVirtualFolder);
|
|
25
|
+
var items = activeVirtualFolderChildren.length ? activeVirtualFolderChildren : activeVirtualFolders;
|
|
26
|
+
var activateFolder = function activateFolder(folder) {
|
|
27
|
+
var nextFolder = folder ? _objectSpread(_objectSpread({}, folder), {}, {
|
|
28
|
+
parent: activeCollectionVirtualFolder
|
|
29
|
+
}) : null;
|
|
30
|
+
dispatch(fetchCollectionsFiles({
|
|
31
|
+
folder: nextFolder,
|
|
32
|
+
offset: 0
|
|
33
|
+
}));
|
|
34
|
+
};
|
|
35
|
+
return /*#__PURE__*/_jsx(Styled.BrowserList, {
|
|
36
|
+
isWidgetSmallSize: isWidgetSmallSize,
|
|
37
|
+
topSectionHeight: topSectionHeight,
|
|
38
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
39
|
+
className: "filerobot-Provider-ItemCategory-wrapper",
|
|
40
|
+
style: {
|
|
41
|
+
padding: '0px 24px'
|
|
42
|
+
},
|
|
43
|
+
children: items.length > 0 ? /*#__PURE__*/_jsx(Styled.ItemCategoryList, {
|
|
44
|
+
children: items.map(function (item) {
|
|
45
|
+
return /*#__PURE__*/_jsxs(Styled.Item, {
|
|
46
|
+
onClick: function onClick() {
|
|
47
|
+
return activateFolder(item);
|
|
48
|
+
},
|
|
49
|
+
children: [/*#__PURE__*/_jsx(CollectionFolderIcon, {}), /*#__PURE__*/_jsx(Styled.ItemTitle, {
|
|
50
|
+
children: /*#__PURE__*/_jsx(EllipsedText, {
|
|
51
|
+
maxLinesCount: 1,
|
|
52
|
+
children: item.name
|
|
53
|
+
})
|
|
54
|
+
})]
|
|
55
|
+
}, item.path);
|
|
56
|
+
})
|
|
57
|
+
}) : /*#__PURE__*/_jsx(NoItems, {
|
|
58
|
+
primary: i18n('collectionsTreeNoGroupsFoldersLabel'),
|
|
59
|
+
icon: NoCollections,
|
|
60
|
+
iconHeight: 60,
|
|
61
|
+
iconWidth: 150,
|
|
62
|
+
mt: 150
|
|
63
|
+
})
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
export default VirtualFoldersGrid;
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
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
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
6
|
+
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); }
|
|
7
|
+
import { useDispatch, useSelector } from 'react-redux';
|
|
8
|
+
import { NoAssets } from '@scaleflex/icons';
|
|
9
|
+
import { useExplorer, useIsSmallScreen } from '../../hooks';
|
|
10
|
+
import { selectActiveCollection, selectIsActiveVirtualFolderLoading, selectIsIntermediateVirtualFolder, selectCollectionsSortOrder, selectCollectionsSortBy, collectionsSortingUpdated, fetchCollectionsFiles, selectCollectionsError, activateFirstCollection, selectCollectionsActiveVirtualFolder, fetchCollectionVirtualFolders, selectIsCollectionsLoading, selectIsCollectionTreeOpened, toggleCollectionsTree, activateCollectionsView, selectCollectionsUuids } from '../../slices/collections.slice';
|
|
11
|
+
import { selectIsDetailsViewOpened, detailsViewToggled } from '../../slices/panels.slice';
|
|
12
|
+
import CollectionsTree from './CollectionsTree';
|
|
13
|
+
import VirtualFoldersGrid from './VirtualFoldersGrid';
|
|
14
|
+
import Drawer from '../Drawer';
|
|
15
|
+
import TopSection from '../TopSection';
|
|
16
|
+
import AssetsList from '../AssetsList';
|
|
17
|
+
import Details from '../Details';
|
|
18
|
+
import AssetsViewStyled from '../AssetsView/AssetsView.styled';
|
|
19
|
+
import Sort from '../common/Sort';
|
|
20
|
+
import { COLLECTIONS_FOLDERS_SORT_OPTIONS } from '../common/Sort/Sort.constants';
|
|
21
|
+
import { searchOrListViewFiles, selectIsListLayout } from '../../slices/views.slice';
|
|
22
|
+
import ErroredViewPlaceholder from '../Views/ErroredViewPlaceholder';
|
|
23
|
+
import GridLayoutCollectionsSkeleton from './CollectionsSkeleton';
|
|
24
|
+
import { DETAILS_SIDEBAR_WIDTHS } from '../Details/Details.constants';
|
|
25
|
+
import NoItems from '../NoItems';
|
|
26
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
27
|
+
var EMPTY_COLLECTIONS_VIEW_PLACEHOLDER_DATA = {
|
|
28
|
+
titleI18nKey: 'explorerCollectionsViewNoCollectionsLabel',
|
|
29
|
+
hintI18nKeys: ['explorerCollectionsViewNoCollectionsHint']
|
|
30
|
+
};
|
|
31
|
+
var CollectionsView = function CollectionsView() {
|
|
32
|
+
var dispatch = useDispatch();
|
|
33
|
+
var _useExplorer = useExplorer(),
|
|
34
|
+
i18n = _useExplorer.i18n,
|
|
35
|
+
opts = _useExplorer.opts;
|
|
36
|
+
var isDetailsViewOpened = useSelector(selectIsDetailsViewOpened);
|
|
37
|
+
var isCollectionTreeOpened = useSelector(selectIsCollectionTreeOpened);
|
|
38
|
+
var isCollectionsLoading = useSelector(selectIsCollectionsLoading);
|
|
39
|
+
var isActiveCollectionVirtualFoldersLoading = useSelector(selectIsActiveVirtualFolderLoading);
|
|
40
|
+
var isNoCollectionsFound = useSelector(function (state) {
|
|
41
|
+
return selectCollectionsUuids(state).length === 0;
|
|
42
|
+
});
|
|
43
|
+
var activeCollection = useSelector(selectActiveCollection);
|
|
44
|
+
var isCollectionIntermediateVirtualFolder = useSelector(selectIsIntermediateVirtualFolder);
|
|
45
|
+
var hasActiveCollectionVirtualFolder = useSelector(function (state) {
|
|
46
|
+
return !!selectCollectionsActiveVirtualFolder(state);
|
|
47
|
+
});
|
|
48
|
+
var sortOrder = useSelector(selectCollectionsSortOrder);
|
|
49
|
+
var sortBy = useSelector(selectCollectionsSortBy);
|
|
50
|
+
var isListLayout = useSelector(selectIsListLayout);
|
|
51
|
+
var error = useSelector(selectCollectionsError);
|
|
52
|
+
var isWidgetSmallSize = useIsSmallScreen();
|
|
53
|
+
var floaty = opts.floaty,
|
|
54
|
+
hideHeaderBar = opts.hideHeaderBar,
|
|
55
|
+
noItemsBrowser = opts.noItemsBrowser,
|
|
56
|
+
showBar = opts.showBar,
|
|
57
|
+
hideLeftSideBar = opts.hideLeftSideBar;
|
|
58
|
+
var fetchNextCollectionFiles = function fetchNextCollectionFiles() {
|
|
59
|
+
return dispatch(fetchCollectionsFiles());
|
|
60
|
+
};
|
|
61
|
+
var applyLeftSideNavigation = function applyLeftSideNavigation(child, closeFunc) {
|
|
62
|
+
return /*#__PURE__*/_jsx(Drawer, {
|
|
63
|
+
direction: "e",
|
|
64
|
+
position: "left",
|
|
65
|
+
closeFn: closeFunc,
|
|
66
|
+
noTopMargin: true,
|
|
67
|
+
showCloseIcon: isCollectionTreeOpened,
|
|
68
|
+
children: child
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
var applyRightSideNavigation = function applyRightSideNavigation(child, closeFunc) {
|
|
72
|
+
return /*#__PURE__*/_jsx(Drawer, _objectSpread(_objectSpread({
|
|
73
|
+
direction: "w",
|
|
74
|
+
position: "right",
|
|
75
|
+
closeFn: closeFunc,
|
|
76
|
+
style: {
|
|
77
|
+
overflow: floaty && 'inherit'
|
|
78
|
+
},
|
|
79
|
+
showCloseIcon: !floaty || isDetailsViewOpened
|
|
80
|
+
}, DETAILS_SIDEBAR_WIDTHS), {}, {
|
|
81
|
+
children: child
|
|
82
|
+
}));
|
|
83
|
+
};
|
|
84
|
+
var renderLeftSideNavigation = function renderLeftSideNavigation() {
|
|
85
|
+
return isCollectionTreeOpened && applyLeftSideNavigation(/*#__PURE__*/_jsx(CollectionsTree, {}), function () {
|
|
86
|
+
return dispatch(toggleCollectionsTree());
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
var renderRightSideNavigation = function renderRightSideNavigation() {
|
|
90
|
+
return isDetailsViewOpened && applyRightSideNavigation(/*#__PURE__*/_jsx(Details, {}), function () {
|
|
91
|
+
return dispatch(detailsViewToggled());
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
// TODO: Split those skeletons and maybe them separate and show the files/folders alone besides the other items skelecton if loaded
|
|
96
|
+
var renderContent = function renderContent() {
|
|
97
|
+
if (isCollectionsLoading || isActiveCollectionVirtualFoldersLoading) {
|
|
98
|
+
return /*#__PURE__*/_jsx(GridLayoutCollectionsSkeleton, {});
|
|
99
|
+
}
|
|
100
|
+
if (isCollectionIntermediateVirtualFolder) {
|
|
101
|
+
return /*#__PURE__*/_jsx(VirtualFoldersGrid, {});
|
|
102
|
+
}
|
|
103
|
+
if (isNoCollectionsFound) {
|
|
104
|
+
return /*#__PURE__*/_jsx(NoItems, {
|
|
105
|
+
primary: i18n('collectionsNoActivePrimaryPlaceholder'),
|
|
106
|
+
secondary: i18n('collectionsNoActiveSecondaryPlaceholder'),
|
|
107
|
+
icon: NoAssets,
|
|
108
|
+
iconWidth: 130,
|
|
109
|
+
iconHeight: 55,
|
|
110
|
+
size: 130,
|
|
111
|
+
mt: 150
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return /*#__PURE__*/_jsx(AssetsList, {
|
|
115
|
+
isInitialLoading: isCollectionsLoading,
|
|
116
|
+
fetchNextFiles: fetchNextCollectionFiles,
|
|
117
|
+
sortProps: sortProps,
|
|
118
|
+
emptyViewPlaceholderData: _objectSpread({}, EMPTY_COLLECTIONS_VIEW_PLACEHOLDER_DATA),
|
|
119
|
+
noTopMargin: true
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
var handleChangeSort = function handleChangeSort(sortedBy, order) {
|
|
123
|
+
if (!isCollectionIntermediateVirtualFolder) {
|
|
124
|
+
// Fetch files again with the new sort
|
|
125
|
+
dispatch(fetchCollectionsFiles({
|
|
126
|
+
sortBy: sortedBy,
|
|
127
|
+
sortOrder: order,
|
|
128
|
+
offset: 0
|
|
129
|
+
}));
|
|
130
|
+
} else {
|
|
131
|
+
dispatch(collectionsSortingUpdated({
|
|
132
|
+
sortBy: sortedBy,
|
|
133
|
+
order: order
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
var openFirstCollection = function openFirstCollection() {
|
|
138
|
+
dispatch(activateFirstCollection());
|
|
139
|
+
};
|
|
140
|
+
var handleCollectionsRefresh = function handleCollectionsRefresh() {
|
|
141
|
+
if (!activeCollection) {
|
|
142
|
+
return dispatch(activateCollectionsView({
|
|
143
|
+
skipViewDispatch: true
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
if (!hasActiveCollectionVirtualFolder) {
|
|
147
|
+
return dispatch(fetchCollectionVirtualFolders());
|
|
148
|
+
}
|
|
149
|
+
return dispatch(searchOrListViewFiles());
|
|
150
|
+
};
|
|
151
|
+
var sortProps = _objectSpread({
|
|
152
|
+
onChange: handleChangeSort,
|
|
153
|
+
useFilesSort: true
|
|
154
|
+
}, isCollectionIntermediateVirtualFolder && {
|
|
155
|
+
options: COLLECTIONS_FOLDERS_SORT_OPTIONS,
|
|
156
|
+
sortBy: sortBy,
|
|
157
|
+
sortOrder: sortOrder,
|
|
158
|
+
useFilesSort: false
|
|
159
|
+
});
|
|
160
|
+
var SortElement = !!activeCollection && /*#__PURE__*/_jsx(Sort, _objectSpread({}, sortProps));
|
|
161
|
+
var renderTopSection = function renderTopSection(hideTopSection) {
|
|
162
|
+
return /*#__PURE__*/_jsx(TopSection, {
|
|
163
|
+
showTopBar: showBar && !noItemsBrowser,
|
|
164
|
+
showHeaderBar: !hideHeaderBar,
|
|
165
|
+
SortElement: SortElement,
|
|
166
|
+
hideTopSection: hideTopSection,
|
|
167
|
+
showFilters: hasActiveCollectionVirtualFolder && !isCollectionIntermediateVirtualFolder,
|
|
168
|
+
showLayoutAndDetailsBtns: hasActiveCollectionVirtualFolder && !isCollectionIntermediateVirtualFolder,
|
|
169
|
+
onRefresh: handleCollectionsRefresh
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
173
|
+
children: [renderTopSection(!isWidgetSmallSize), /*#__PURE__*/_jsxs(AssetsViewStyled.BrowserBody, {
|
|
174
|
+
className: "filerobot-ProviderBrowser-body".concat(isListLayout ? ' filerobot-ProviderBrowser-body-list' : ''),
|
|
175
|
+
children: [!hideLeftSideBar && renderLeftSideNavigation(), /*#__PURE__*/_jsxs(AssetsViewStyled.ViewBody, {
|
|
176
|
+
className: "filerobot-ProviderBrowser-mainContent",
|
|
177
|
+
children: [renderTopSection(isWidgetSmallSize), !isCollectionsLoading && !isActiveCollectionVirtualFoldersLoading && error ? /*#__PURE__*/_jsx(ErroredViewPlaceholder, {
|
|
178
|
+
title: (error === null || error === void 0 ? void 0 : error.message) || error,
|
|
179
|
+
description: error === null || error === void 0 ? void 0 : error.details,
|
|
180
|
+
backTo: openFirstCollection,
|
|
181
|
+
backToLabel: i18n('collectionsViewGoToFirstCollection'),
|
|
182
|
+
error: error
|
|
183
|
+
}) : renderContent()]
|
|
184
|
+
}), renderRightSideNavigation()]
|
|
185
|
+
})]
|
|
186
|
+
});
|
|
187
|
+
};
|
|
188
|
+
export default CollectionsView;
|
|
@@ -3,7 +3,7 @@ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.fre
|
|
|
3
3
|
import styled, { css } from 'styled-components';
|
|
4
4
|
import { FV, PC } from '@scaleflex/widget-common';
|
|
5
5
|
import { NoFiles } from '@scaleflex/icons';
|
|
6
|
-
var Wrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", "\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content:
|
|
6
|
+
var Wrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", "\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n text-align: center;\n gap: 24px;\n flex-grow: 1;\n"])), function (_ref) {
|
|
7
7
|
var isSmallScreen = _ref.isSmallScreen;
|
|
8
8
|
return isSmallScreen ? 'height: 100%;' : 'padding-top: 150px;';
|
|
9
9
|
});
|
|
@@ -5,7 +5,7 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
|
|
|
5
5
|
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; } }
|
|
6
6
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
7
|
import { useState, useEffect } from 'react';
|
|
8
|
-
import { useSelector } from 'react-redux';
|
|
8
|
+
import { useSelector, useDispatch } from 'react-redux';
|
|
9
9
|
import { useTheme } from '@scaleflex/ui/theme/hooks';
|
|
10
10
|
import { EllipsedText, TooltipV2 } from '@scaleflex/ui/core';
|
|
11
11
|
import LabelIcon from '@scaleflex/icons/label';
|
|
@@ -23,8 +23,9 @@ import { ScaleflexWidget } from '@scaleflex/widget-core';
|
|
|
23
23
|
import isUploadableFile from '@scaleflex/widget-utils/lib/isUploadableFile';
|
|
24
24
|
import FileName from './FileName';
|
|
25
25
|
import Styled from './FileInfo.styled';
|
|
26
|
-
import { selectFileLabels } from '../../../slices/
|
|
26
|
+
import { activateLabel, selectFileLabels } from '../../../slices/labels.slice';
|
|
27
27
|
import { useExplorer, useToLocaleNumber } from '../../../hooks';
|
|
28
|
+
import { selectIsLabelsViewAvailable } from '../../../slices/views.slice';
|
|
28
29
|
import { selectActiveRegionalLang } from '../../../slices/metadata.slice';
|
|
29
30
|
import { selectCurrentFolder } from '../../../slices/folders.slice';
|
|
30
31
|
import FileMetadata from './FileMetadata';
|
|
@@ -50,12 +51,14 @@ var FileInfo = function FileInfo(_ref) {
|
|
|
50
51
|
disableFileResolutionFallback = _useExplorer$opts.disableFileResolutionFallback,
|
|
51
52
|
thumbnailMetadataKeys = _useExplorer$opts.thumbnailMetadataKeys,
|
|
52
53
|
isFastToken = _useExplorer$opts.isFastToken;
|
|
54
|
+
var dispatch = useDispatch();
|
|
53
55
|
var toLocaleNumber = useToLocaleNumber();
|
|
54
56
|
var showUploadsPanel = useSelector(function (state) {
|
|
55
57
|
return selectUploadsCount(state) > 0;
|
|
56
58
|
});
|
|
57
59
|
var theme = useTheme();
|
|
58
60
|
var iconPrimaryColor = theme.palette[PC.IconsPrimary];
|
|
61
|
+
var isLabelsViewAvailable = useSelector(selectIsLabelsViewAvailable);
|
|
59
62
|
var currentLanguage = useSelector(selectActiveRegionalLang);
|
|
60
63
|
var currentFolder = useSelector(selectCurrentFolder);
|
|
61
64
|
var visibility = getVisibilityObject((file === null || file === void 0 ? void 0 : file.visibility) || getFileInheritedVisibility(currentFolder));
|
|
@@ -108,6 +111,9 @@ var FileInfo = function FileInfo(_ref) {
|
|
|
108
111
|
return /*#__PURE__*/_jsx(Styled.ClickableText, {
|
|
109
112
|
color: "link-basic-primary",
|
|
110
113
|
size: "sm",
|
|
114
|
+
onClick: isLabelsViewAvailable ? function () {
|
|
115
|
+
return dispatch(activateLabel(label));
|
|
116
|
+
} : undefined,
|
|
111
117
|
startIcon: /*#__PURE__*/_jsx(LabelIcon, {
|
|
112
118
|
color: (label === null || label === void 0 ? void 0 : label.color) || iconPrimaryColor,
|
|
113
119
|
size: 14
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useCallback
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
2
|
import { useDispatch } from 'react-redux';
|
|
3
3
|
import { VARIATIONS_TAB_IDS } from './Variations.constants';
|
|
4
4
|
import { filesVariationsUpdated } from '../../../../slices/files.slice';
|
|
@@ -25,12 +25,6 @@ var VariationsTabNavigator = function VariationsTabNavigator(_ref) {
|
|
|
25
25
|
dispatch(filesVariationsUpdated(firstVariant));
|
|
26
26
|
setActiveTabId(newTabId);
|
|
27
27
|
}, [dispatch]);
|
|
28
|
-
useEffect(function () {
|
|
29
|
-
if (activeTabId === VARIATIONS_TAB_IDS.AUTOMATIC) {
|
|
30
|
-
var firstVariant = getActiveVariant(activeTabId);
|
|
31
|
-
dispatch(filesVariationsUpdated(firstVariant));
|
|
32
|
-
}
|
|
33
|
-
}, []);
|
|
34
28
|
return /*#__PURE__*/_jsx(VariationsTabs, {
|
|
35
29
|
i18n: i18n,
|
|
36
30
|
activeTabId: activeTabId,
|
|
@@ -491,7 +491,10 @@ var VariationsTab = function VariationsTab(_ref) {
|
|
|
491
491
|
dispatch(filesVariationsUpdated(mainVariants[0]));
|
|
492
492
|
}, setIsLoading);
|
|
493
493
|
} else {
|
|
494
|
-
|
|
494
|
+
var activeVariant = activeVariationsTabId === VARIATIONS_TAB_IDS.AUTOMATIC ? selectedVariant && (presetsVariants === null || presetsVariants === void 0 ? void 0 : presetsVariants.find(function (variant) {
|
|
495
|
+
return variant.name === selectedVariant.name;
|
|
496
|
+
})) || (presetsVariants === null || presetsVariants === void 0 ? void 0 : presetsVariants[0]) : mainFile;
|
|
497
|
+
dispatch(filesVariationsUpdated(activeVariant));
|
|
495
498
|
setIsLoading(false);
|
|
496
499
|
}
|
|
497
500
|
if (mainFile.removedBackground && !mainFile.info.remove_background) {
|
|
@@ -11,6 +11,8 @@ import { RegionalVariantFilters } from '@scaleflex/widget-common';
|
|
|
11
11
|
import isUploadableFile from '@scaleflex/widget-utils/lib/isUploadableFile';
|
|
12
12
|
import { fileWindowUpdated } from '../../../slices/panels.slice';
|
|
13
13
|
import { metadataRegionalFiltersSet, selectMetadataRegionalFilters, selectMetadataRegionalGroups, selectMetadataVersion } from '../../../slices/metadata.slice';
|
|
14
|
+
import { labelsSelectionToggled } from '../../../slices/labels.slice';
|
|
15
|
+
import { collectionsDeselected } from '../../../slices/collections.slice';
|
|
14
16
|
import BeforeUploadActionButtons from './BeforeUploadActionBtns';
|
|
15
17
|
import AfterUploadActionBtns from './AfterUploadActionBtns';
|
|
16
18
|
import { useExplorer } from '../../../hooks';
|
|
@@ -38,8 +40,15 @@ var FileWindowHeader = function FileWindowHeader(_ref) {
|
|
|
38
40
|
var name = previewedFile.name;
|
|
39
41
|
var useAssetsPicker = opts.useAssetsPicker;
|
|
40
42
|
var isFileLoading = originalFile.loading;
|
|
43
|
+
var handleClearSelection = function handleClearSelection() {
|
|
44
|
+
dispatch(labelsSelectionToggled({
|
|
45
|
+
uuids: []
|
|
46
|
+
}));
|
|
47
|
+
dispatch(collectionsDeselected());
|
|
48
|
+
};
|
|
41
49
|
var closeFileWindow = function closeFileWindow() {
|
|
42
50
|
alertUnsavedChangesFirst(function () {
|
|
51
|
+
handleClearSelection();
|
|
43
52
|
dispatch(fileWindowUpdated(null));
|
|
44
53
|
});
|
|
45
54
|
};
|
|
@@ -2,9 +2,10 @@ import { useEffect, useMemo } from 'react';
|
|
|
2
2
|
import { useSelector, useDispatch } from 'react-redux';
|
|
3
3
|
import { useUpdateEffect } from '@scaleflex/widget-common/lib/hooks';
|
|
4
4
|
import { DATE_OPTIONS_RANGE, FILTER_SECTION_KEYS } from '../Filters.constants';
|
|
5
|
-
import { selectIsFoldersView, selectIsAssetsView } from '../../../slices/views.slice';
|
|
5
|
+
import { selectIsFoldersView, selectIsAssetsView, selectIsLabelsView, selectIsCollectionsView } from '../../../slices/views.slice';
|
|
6
6
|
import { getFilters, selectAppliedFilters, selectIsFiltersLoaded } from '../../../slices/filters.slice';
|
|
7
7
|
import { selectActiveRegionalLang, selectIsM0LegacyMeta, selectMetaMappedLicenseExpireDateField } from '../../../slices/metadata.slice';
|
|
8
|
+
import { selectIsCollectionsActivated } from '../../../slices/collections.slice';
|
|
8
9
|
var useFilters = function useFilters() {
|
|
9
10
|
var dispatch = useDispatch();
|
|
10
11
|
var appliedFilters = useSelector(selectAppliedFilters);
|
|
@@ -12,7 +13,7 @@ var useFilters = function useFilters() {
|
|
|
12
13
|
var activeRegionalLang = useSelector(selectActiveRegionalLang);
|
|
13
14
|
var isFiltersLoaded = useSelector(selectIsFiltersLoaded);
|
|
14
15
|
var isFiltersAvailableView = useSelector(function (state) {
|
|
15
|
-
return selectIsAssetsView(state) || selectIsFoldersView(state);
|
|
16
|
+
return selectIsAssetsView(state) || selectIsFoldersView(state) || selectIsLabelsView(state) || selectIsCollectionsView(state) && selectIsCollectionsActivated(state);
|
|
16
17
|
});
|
|
17
18
|
var isFoldersFilterShown = useSelector(function (state) {
|
|
18
19
|
return !selectIsFoldersView(state);
|
|
@@ -8,7 +8,7 @@ import BreadcrumbsSkeleton from '../Breadcrumbs/BreadcrumbsSkeleton';
|
|
|
8
8
|
import RightSide from './RightSide';
|
|
9
9
|
import Breadcrumbs from '../Breadcrumbs';
|
|
10
10
|
import FacetedSearchToggleButton from './FacetedSearchToggleButton';
|
|
11
|
-
import { selectActiveView, selectIsAssetsView, selectIsSearchMode } from '../../slices/views.slice';
|
|
11
|
+
import { selectActiveView, selectIsAssetsView, selectIsSearchMode, selectIsLabelsView, selectIsCollectionsView } from '../../slices/views.slice';
|
|
12
12
|
import { selectIsFoldersTreeOpened } from '../../slices/folders.slice';
|
|
13
13
|
import { selectIsAiSearch } from '../../slices/search.slice';
|
|
14
14
|
import Styled from './HeaderBar.styled';
|
|
@@ -36,6 +36,8 @@ var HeaderBar = function HeaderBar(_ref) {
|
|
|
36
36
|
var filesError = useSelector(selectFilesError);
|
|
37
37
|
var isSearchMode = useSelector(selectIsSearchMode);
|
|
38
38
|
var isAiSearch = useSelector(selectIsAiSearch);
|
|
39
|
+
var isLabelsView = useSelector(selectIsLabelsView);
|
|
40
|
+
var isCollectionsView = useSelector(selectIsCollectionsView);
|
|
39
41
|
var isBreadcrumbsView = BREADCRUMBS_VIEWS.includes(activeView);
|
|
40
42
|
var showBreadcrumbsLoading = !isSearchMode && isFilesLoading;
|
|
41
43
|
var showBreadcrumbs = opts.showBreadcrumbs,
|
|
@@ -66,7 +68,9 @@ var HeaderBar = function HeaderBar(_ref) {
|
|
|
66
68
|
return /*#__PURE__*/_jsxs(Styled.HeaderBar, {
|
|
67
69
|
showFoldersTreeIcon: !showFoldersTree && !isAssetsView,
|
|
68
70
|
className: classNames('filerobot-ProviderBrowser-headerBar', {
|
|
69
|
-
'filerobot-ProviderBrowser-headerBar--simple': !showBreadcrumbs
|
|
71
|
+
'filerobot-ProviderBrowser-headerBar--simple': !showBreadcrumbs,
|
|
72
|
+
'filerobot-ProviderBrowser-headerBar--labelsView': isLabelsView,
|
|
73
|
+
'filerobot-ProviderBrowser-headerBar--collectionsView': isCollectionsView
|
|
70
74
|
}),
|
|
71
75
|
children: [renderViewBar(), showSortComponent && SortElement, /*#__PURE__*/_jsx(RightSide, {
|
|
72
76
|
onRefresh: onRefresh,
|