Merge branch 'develop' into feature/login-nextjs
This commit is contained in:
commit
9fbfe2be15
@ -35,8 +35,8 @@ import { observer, inject } from "mobx-react";
|
|||||||
|
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { GroupParams } from "./types";
|
|
||||||
import { createGroup } from "@docspace/shared/api/groups";
|
import { createGroup } from "@docspace/shared/api/groups";
|
||||||
|
import { GroupParams } from "./types";
|
||||||
import GroupNameParam from "./sub-components/GroupNameParam";
|
import GroupNameParam from "./sub-components/GroupNameParam";
|
||||||
import HeadOfGroup from "./sub-components/HeadOfGroupParam";
|
import HeadOfGroup from "./sub-components/HeadOfGroupParam";
|
||||||
import MembersParam from "./sub-components/MembersParam";
|
import MembersParam from "./sub-components/MembersParam";
|
||||||
@ -104,88 +104,88 @@ const CreateGroupDialog = ({
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
if (selectGroupMangerPanelIsVisible)
|
|
||||||
return (
|
|
||||||
<SelectGroupManagerPanel
|
|
||||||
isVisible={selectGroupMangerPanelIsVisible}
|
|
||||||
onClose={onHideSelectGroupManagerPanel}
|
|
||||||
onParentPanelClose={onClose}
|
|
||||||
setGroupManager={setGroupManager}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
if (selectMembersPanelIsVisible)
|
|
||||||
return (
|
|
||||||
<SelectGroupMembersPanel
|
|
||||||
isVisible={selectMembersPanelIsVisible}
|
|
||||||
onClose={onHideSelectMembersPanel}
|
|
||||||
onParentPanelClose={onClose}
|
|
||||||
groupManager={groupParams.groupManager}
|
|
||||||
groupMembers={groupParams.groupMembers}
|
|
||||||
setGroupMembers={setGroupMembers}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalDialog
|
<>
|
||||||
displayType={ModalDialogType.aside}
|
<ModalDialog
|
||||||
withBodyScroll
|
displayType={ModalDialogType.aside}
|
||||||
visible={visible}
|
withBodyScroll
|
||||||
onClose={onClose}
|
visible={visible}
|
||||||
withFooterBorder
|
onClose={onClose}
|
||||||
// isScrollLocked={isScrollLocked}
|
withFooterBorder
|
||||||
// isOauthWindowOpen={isOauthWindowOpen}
|
// isScrollLocked={isScrollLocked}
|
||||||
>
|
// isOauthWindowOpen={isOauthWindowOpen}
|
||||||
<ModalDialog.Header>
|
>
|
||||||
{t("PeopleTranslations:CreateGroup")}
|
<ModalDialog.Header>
|
||||||
</ModalDialog.Header>
|
{t("PeopleTranslations:CreateGroup")}
|
||||||
|
</ModalDialog.Header>
|
||||||
|
|
||||||
<ModalDialog.Body>
|
<ModalDialog.Body>
|
||||||
<GroupNameParam
|
<GroupNameParam
|
||||||
groupName={groupParams.groupName}
|
groupName={groupParams.groupName}
|
||||||
onChangeGroupName={onChangeGroupName}
|
onChangeGroupName={onChangeGroupName}
|
||||||
/>
|
/>
|
||||||
<HeadOfGroup
|
<HeadOfGroup
|
||||||
groupManager={groupParams.groupManager}
|
groupManager={groupParams.groupManager}
|
||||||
|
setGroupManager={setGroupManager}
|
||||||
|
groupMembers={groupParams.groupMembers}
|
||||||
|
setGroupMembers={setGroupMembers}
|
||||||
|
onShowSelectGroupManagerPanel={onShowSelectGroupManagerPanel}
|
||||||
|
/>
|
||||||
|
<MembersParam
|
||||||
|
groupManager={groupParams.groupManager}
|
||||||
|
groupMembers={groupParams.groupMembers}
|
||||||
|
setGroupMembers={setGroupMembers}
|
||||||
|
onShowSelectMembersPanel={onShowSelectMembersPanel}
|
||||||
|
/>
|
||||||
|
</ModalDialog.Body>
|
||||||
|
|
||||||
|
<ModalDialog.Footer>
|
||||||
|
<Button
|
||||||
|
id="create-group-modal_submit"
|
||||||
|
tabIndex={5}
|
||||||
|
label={t("Common:Create")}
|
||||||
|
size={ButtonSize.normal}
|
||||||
|
primary
|
||||||
|
scale
|
||||||
|
onClick={onCreateGroup}
|
||||||
|
isDisabled={
|
||||||
|
!groupParams.groupName ||
|
||||||
|
(!groupParams.groupManager && !groupParams.groupMembers.length)
|
||||||
|
}
|
||||||
|
isLoading={isLoading}
|
||||||
|
/>
|
||||||
|
<Button
|
||||||
|
id="create-group-modal_cancel"
|
||||||
|
tabIndex={5}
|
||||||
|
label={t("Common:CancelButton")}
|
||||||
|
size={ButtonSize.normal}
|
||||||
|
scale
|
||||||
|
isDisabled={isLoading}
|
||||||
|
onClick={onClose}
|
||||||
|
/>
|
||||||
|
</ModalDialog.Footer>
|
||||||
|
</ModalDialog>
|
||||||
|
|
||||||
|
{selectGroupMangerPanelIsVisible && (
|
||||||
|
<SelectGroupManagerPanel
|
||||||
|
isVisible={selectGroupMangerPanelIsVisible}
|
||||||
|
onClose={onHideSelectGroupManagerPanel}
|
||||||
|
onParentPanelClose={onClose}
|
||||||
setGroupManager={setGroupManager}
|
setGroupManager={setGroupManager}
|
||||||
groupMembers={groupParams.groupMembers}
|
|
||||||
setGroupMembers={setGroupMembers}
|
|
||||||
onShowSelectGroupManagerPanel={onShowSelectGroupManagerPanel}
|
|
||||||
/>
|
/>
|
||||||
<MembersParam
|
)}
|
||||||
|
|
||||||
|
{selectMembersPanelIsVisible && (
|
||||||
|
<SelectGroupMembersPanel
|
||||||
|
isVisible={selectMembersPanelIsVisible}
|
||||||
|
onClose={onHideSelectMembersPanel}
|
||||||
|
onParentPanelClose={onClose}
|
||||||
groupManager={groupParams.groupManager}
|
groupManager={groupParams.groupManager}
|
||||||
groupMembers={groupParams.groupMembers}
|
groupMembers={groupParams.groupMembers}
|
||||||
setGroupMembers={setGroupMembers}
|
setGroupMembers={setGroupMembers}
|
||||||
onShowSelectMembersPanel={onShowSelectMembersPanel}
|
|
||||||
/>
|
/>
|
||||||
</ModalDialog.Body>
|
)}
|
||||||
|
</>
|
||||||
<ModalDialog.Footer>
|
|
||||||
<Button
|
|
||||||
id="create-group-modal_submit"
|
|
||||||
tabIndex={5}
|
|
||||||
label={t("Common:Create")}
|
|
||||||
size={ButtonSize.normal}
|
|
||||||
primary
|
|
||||||
scale
|
|
||||||
onClick={onCreateGroup}
|
|
||||||
isDisabled={
|
|
||||||
!groupParams.groupName ||
|
|
||||||
(!groupParams.groupManager && !groupParams.groupMembers.length)
|
|
||||||
}
|
|
||||||
isLoading={isLoading}
|
|
||||||
/>
|
|
||||||
<Button
|
|
||||||
id="create-group-modal_cancel"
|
|
||||||
tabIndex={5}
|
|
||||||
label={t("Common:CancelButton")}
|
|
||||||
size={ButtonSize.normal}
|
|
||||||
scale
|
|
||||||
isDisabled={isLoading}
|
|
||||||
onClick={onClose}
|
|
||||||
/>
|
|
||||||
</ModalDialog.Footer>
|
|
||||||
</ModalDialog>
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -155,87 +155,87 @@ const EditGroupDialog = ({
|
|||||||
.finally(() => setFetchMembersIsLoading(false));
|
.finally(() => setFetchMembersIsLoading(false));
|
||||||
}, [group.id]);
|
}, [group.id]);
|
||||||
|
|
||||||
if (selectGroupMangerPanelIsVisible)
|
|
||||||
return (
|
|
||||||
<SelectGroupManagerPanel
|
|
||||||
isVisible={selectGroupMangerPanelIsVisible}
|
|
||||||
onClose={onHideSelectGroupManagerPanel}
|
|
||||||
onParentPanelClose={onClose}
|
|
||||||
setGroupManager={setGroupManager}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
if (selectMembersPanelIsVisible)
|
|
||||||
return (
|
|
||||||
<SelectGroupMembersPanel
|
|
||||||
isVisible={selectMembersPanelIsVisible}
|
|
||||||
onClose={onHideSelectMembersPanel}
|
|
||||||
onParentPanelClose={onClose}
|
|
||||||
groupManager={groupParams.groupManager}
|
|
||||||
groupMembers={groupParams.groupMembers}
|
|
||||||
setGroupMembers={setGroupMembers}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalDialog
|
<>
|
||||||
displayType="aside"
|
<ModalDialog
|
||||||
withBodyScroll
|
displayType="aside"
|
||||||
visible={visible}
|
withBodyScroll
|
||||||
onClose={onClose}
|
visible={visible}
|
||||||
withFooterBorder
|
onClose={onClose}
|
||||||
// isScrollLocked={isScrollLocked}
|
withFooterBorder
|
||||||
// isOauthWindowOpen={isOauthWindowOpen}
|
// isScrollLocked={isScrollLocked}
|
||||||
>
|
// isOauthWindowOpen={isOauthWindowOpen}
|
||||||
<ModalDialog.Header>
|
>
|
||||||
{t("PeopleTranslations:EditGroup")}
|
<ModalDialog.Header>
|
||||||
</ModalDialog.Header>
|
{t("PeopleTranslations:EditGroup")}
|
||||||
|
</ModalDialog.Header>
|
||||||
|
|
||||||
<ModalDialog.Body>
|
<ModalDialog.Body>
|
||||||
<GroupNameParam
|
<GroupNameParam
|
||||||
groupName={groupParams.groupName}
|
groupName={groupParams.groupName}
|
||||||
onChangeGroupName={onChangeGroupName}
|
onChangeGroupName={onChangeGroupName}
|
||||||
/>
|
/>
|
||||||
<HeadOfGroup
|
<HeadOfGroup
|
||||||
groupManager={groupParams.groupManager}
|
|
||||||
setGroupManager={setGroupManager}
|
|
||||||
groupMembers={groupParams.groupMembers}
|
|
||||||
setGroupMembers={setGroupMembers}
|
|
||||||
onShowSelectGroupManagerPanel={onShowSelectGroupManagerPanel}
|
|
||||||
/>
|
|
||||||
{!isFetchMembersLoading && (
|
|
||||||
<MembersParam
|
|
||||||
groupManager={groupParams.groupManager}
|
groupManager={groupParams.groupManager}
|
||||||
|
setGroupManager={setGroupManager}
|
||||||
groupMembers={groupParams.groupMembers}
|
groupMembers={groupParams.groupMembers}
|
||||||
setGroupMembers={setGroupMembers}
|
setGroupMembers={setGroupMembers}
|
||||||
onShowSelectMembersPanel={onShowSelectMembersPanel}
|
onShowSelectGroupManagerPanel={onShowSelectGroupManagerPanel}
|
||||||
/>
|
/>
|
||||||
)}
|
{!isFetchMembersLoading && (
|
||||||
</ModalDialog.Body>
|
<MembersParam
|
||||||
|
groupManager={groupParams.groupManager}
|
||||||
|
groupMembers={groupParams.groupMembers}
|
||||||
|
setGroupMembers={setGroupMembers}
|
||||||
|
onShowSelectMembersPanel={onShowSelectMembersPanel}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</ModalDialog.Body>
|
||||||
|
|
||||||
<ModalDialog.Footer>
|
<ModalDialog.Footer>
|
||||||
<Button
|
<Button
|
||||||
id="edit-group-modal_submit"
|
id="edit-group-modal_submit"
|
||||||
tabIndex={5}
|
tabIndex={5}
|
||||||
label={t("Common:SaveButton")}
|
label={t("Common:SaveButton")}
|
||||||
size="normal"
|
size="normal"
|
||||||
primary
|
primary
|
||||||
scale
|
scale
|
||||||
onClick={onEditGroup}
|
onClick={onEditGroup}
|
||||||
isDisabled={notEnoughGroupParamsToEdit || groupParamsNotChanged}
|
isDisabled={notEnoughGroupParamsToEdit || groupParamsNotChanged}
|
||||||
isLoading={isCreateGroupLoading}
|
isLoading={isCreateGroupLoading}
|
||||||
|
/>
|
||||||
|
<Button
|
||||||
|
id="edit-group-modal_cancel"
|
||||||
|
tabIndex={5}
|
||||||
|
label={t("Common:CancelButton")}
|
||||||
|
size="normal"
|
||||||
|
scale
|
||||||
|
isDisabled={isCreateGroupLoading}
|
||||||
|
onClick={onClose}
|
||||||
|
/>
|
||||||
|
</ModalDialog.Footer>
|
||||||
|
</ModalDialog>
|
||||||
|
|
||||||
|
{selectGroupMangerPanelIsVisible && (
|
||||||
|
<SelectGroupManagerPanel
|
||||||
|
isVisible={selectGroupMangerPanelIsVisible}
|
||||||
|
onClose={onHideSelectGroupManagerPanel}
|
||||||
|
onParentPanelClose={onClose}
|
||||||
|
setGroupManager={setGroupManager}
|
||||||
/>
|
/>
|
||||||
<Button
|
)}
|
||||||
id="edit-group-modal_cancel"
|
|
||||||
tabIndex={5}
|
{selectMembersPanelIsVisible && (
|
||||||
label={t("Common:CancelButton")}
|
<SelectGroupMembersPanel
|
||||||
size="normal"
|
isVisible={selectMembersPanelIsVisible}
|
||||||
scale
|
onClose={onHideSelectMembersPanel}
|
||||||
isDisabled={isCreateGroupLoading}
|
onParentPanelClose={onClose}
|
||||||
onClick={onClose}
|
groupManager={groupParams.groupManager}
|
||||||
|
groupMembers={groupParams.groupMembers}
|
||||||
|
setGroupMembers={setGroupMembers}
|
||||||
/>
|
/>
|
||||||
</ModalDialog.Footer>
|
)}
|
||||||
</ModalDialog>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -59,8 +59,10 @@ const SelectGroupManagerPanel = ({
|
|||||||
onParentPanelClose={onParentPanelClose}
|
onParentPanelClose={onParentPanelClose}
|
||||||
setDataItems={onSelectGroupManager}
|
setDataItems={onSelectGroupManager}
|
||||||
accessOptions={accessOptions}
|
accessOptions={accessOptions}
|
||||||
isEncrypted={true}
|
isEncrypted
|
||||||
defaultAccess={ShareAccessRights.FullAccess}
|
defaultAccess={ShareAccessRights.FullAccess}
|
||||||
|
withoutBackground
|
||||||
|
withBlur={false}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
@ -84,6 +84,8 @@ const SelectGroupMembersPanel = ({
|
|||||||
withAccessRights={false}
|
withAccessRights={false}
|
||||||
isEncrypted
|
isEncrypted
|
||||||
defaultAccess={ShareAccessRights.FullAccess}
|
defaultAccess={ShareAccessRights.FullAccess}
|
||||||
|
withoutBackground
|
||||||
|
withBlur={false}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
@ -1798,6 +1798,14 @@ class ContextOptionsStore {
|
|||||||
isSeparator: true,
|
isSeparator: true,
|
||||||
disabled: !deleteItems || isRootThirdPartyFolder,
|
disabled: !deleteItems || isRootThirdPartyFolder,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
key: "remove-from-recent",
|
||||||
|
label: t("RemoveFromList"),
|
||||||
|
icon: RemoveOutlineSvgUrl,
|
||||||
|
onClick: () =>
|
||||||
|
this.filesActionsStore.onClickRemoveFromRecent(selection),
|
||||||
|
disabled: !this.treeFoldersStore.isRecentTab,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
key: "delete",
|
key: "delete",
|
||||||
label: t("Common:Delete"),
|
label: t("Common:Delete"),
|
||||||
|
@ -28,6 +28,10 @@
|
|||||||
|
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const pkg = require("./package.json");
|
const pkg = require("./package.json");
|
||||||
|
const BannerPlugin = require("webpack").BannerPlugin;
|
||||||
|
const TerserPlugin = require("terser-webpack-plugin");
|
||||||
|
|
||||||
|
const version = pkg.version;
|
||||||
|
|
||||||
const nextConfig = {
|
const nextConfig = {
|
||||||
basePath: "/doceditor",
|
basePath: "/doceditor",
|
||||||
@ -56,8 +60,52 @@ const nextConfig = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getBuildDate = () => {
|
||||||
|
const timeElapsed = Date.now();
|
||||||
|
const today = new Date(timeElapsed);
|
||||||
|
return JSON.stringify(today.toISOString().split(".")[0] + "Z");
|
||||||
|
};
|
||||||
|
|
||||||
|
const getBuildYear = () => {
|
||||||
|
const timeElapsed = Date.now();
|
||||||
|
const today = new Date(timeElapsed);
|
||||||
|
return today.getFullYear();
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
webpack(config) {
|
webpack(config) {
|
||||||
|
config.devtool = "source-map";
|
||||||
|
|
||||||
|
if (config.mode === "production") {
|
||||||
|
config.optimization = {
|
||||||
|
splitChunks: { chunks: "all" },
|
||||||
|
minimize: true,
|
||||||
|
minimizer: [
|
||||||
|
new TerserPlugin({
|
||||||
|
terserOptions: {
|
||||||
|
format: {
|
||||||
|
comments: /\*\s*\(c\)\s+Copyright\s+Ascensio\s+System\s+SIA/i,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
extractComments: false,
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
config.plugins.push(
|
||||||
|
new BannerPlugin({
|
||||||
|
raw: true,
|
||||||
|
banner: `/*
|
||||||
|
* (c) Copyright Ascensio System SIA 2009-${getBuildYear()}. All rights reserved
|
||||||
|
*
|
||||||
|
* https://www.onlyoffice.com/
|
||||||
|
*
|
||||||
|
* Version: ${version} (build: ${getBuildDate()})
|
||||||
|
*/`,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Grab the existing rule that handles SVG imports
|
// Grab the existing rule that handles SVG imports
|
||||||
const fileLoaderRule = config.module.rules.find((rule) =>
|
const fileLoaderRule = config.module.rules.find((rule) =>
|
||||||
rule.test?.test?.(".svg"),
|
rule.test?.test?.(".svg"),
|
||||||
|
@ -122,7 +122,7 @@ const template: Template = (
|
|||||||
|
|
||||||
const page = `
|
const page = `
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en" translate="no">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title> ${documentTitle} </title>
|
<title> ${documentTitle} </title>
|
||||||
@ -132,6 +132,7 @@ const template: Template = (
|
|||||||
content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, viewport-fit=cover"
|
content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, viewport-fit=cover"
|
||||||
/>
|
/>
|
||||||
<meta name="theme-color" content="#000000" />
|
<meta name="theme-color" content="#000000" />
|
||||||
|
<meta name="google" content="notranslate" />
|
||||||
<link rel="stylesheet preload" href=${fontsCssUrl} as="style" type="text/css" crossorigin/>
|
<link rel="stylesheet preload" href=${fontsCssUrl} as="style" type="text/css" crossorigin/>
|
||||||
|
|
||||||
<link id="favicon" rel="shortcut icon" href=${favicon} />
|
<link id="favicon" rel="shortcut icon" href=${favicon} />
|
||||||
|
@ -34,6 +34,7 @@ const { CleanWebpackPlugin } = require("clean-webpack-plugin");
|
|||||||
const ExternalTemplateRemotesPlugin = require("external-remotes-plugin");
|
const ExternalTemplateRemotesPlugin = require("external-remotes-plugin");
|
||||||
const CopyPlugin = require("copy-webpack-plugin");
|
const CopyPlugin = require("copy-webpack-plugin");
|
||||||
const TerserPlugin = require("terser-webpack-plugin");
|
const TerserPlugin = require("terser-webpack-plugin");
|
||||||
|
const BannerPlugin = require("webpack").BannerPlugin;
|
||||||
|
|
||||||
const minifyJson = require("@docspace/shared/utils/minifyJson");
|
const minifyJson = require("@docspace/shared/utils/minifyJson");
|
||||||
const sharedDeps = require("@docspace/shared/constants/sharedDependencies");
|
const sharedDeps = require("@docspace/shared/constants/sharedDependencies");
|
||||||
@ -42,6 +43,7 @@ const baseConfig = require("./webpack.base.js");
|
|||||||
const runtime = require("../../runtime.json");
|
const runtime = require("../../runtime.json");
|
||||||
const pkg = require("../package.json");
|
const pkg = require("../package.json");
|
||||||
const deps = pkg.dependencies || {};
|
const deps = pkg.dependencies || {};
|
||||||
|
const version = pkg.version;
|
||||||
const dateHash = runtime?.date || "";
|
const dateHash = runtime?.date || "";
|
||||||
|
|
||||||
for (let dep in sharedDeps) {
|
for (let dep in sharedDeps) {
|
||||||
@ -169,13 +171,35 @@ const clientConfig = {
|
|||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getBuildDate = () => {
|
||||||
|
const timeElapsed = Date.now();
|
||||||
|
const today = new Date(timeElapsed);
|
||||||
|
return JSON.stringify(today.toISOString().split(".")[0] + "Z");
|
||||||
|
};
|
||||||
|
|
||||||
|
const getBuildYear = () => {
|
||||||
|
const timeElapsed = Date.now();
|
||||||
|
const today = new Date(timeElapsed);
|
||||||
|
return today.getFullYear();
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = (env, argv) => {
|
module.exports = (env, argv) => {
|
||||||
if (argv.mode === "production") {
|
if (argv.mode === "production") {
|
||||||
|
clientConfig.devtool = "source-map";
|
||||||
clientConfig.mode = "production";
|
clientConfig.mode = "production";
|
||||||
clientConfig.optimization = {
|
clientConfig.optimization = {
|
||||||
splitChunks: { chunks: "all" },
|
splitChunks: { chunks: "all" },
|
||||||
minimize: !env.minimize,
|
minimize: !env.minimize,
|
||||||
minimizer: [new TerserPlugin()],
|
minimizer: [
|
||||||
|
new TerserPlugin({
|
||||||
|
terserOptions: {
|
||||||
|
format: {
|
||||||
|
comments: /\*\s*\(c\)\s+Copyright\s+Ascensio\s+System\s+SIA/i,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
extractComments: false,
|
||||||
|
}),
|
||||||
|
],
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
clientConfig.mode = "development";
|
clientConfig.mode = "development";
|
||||||
@ -200,6 +224,16 @@ module.exports = (env, argv) => {
|
|||||||
}`
|
}`
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
|
new BannerPlugin({
|
||||||
|
raw: true,
|
||||||
|
banner: `/*
|
||||||
|
* (c) Copyright Ascensio System SIA 2009-${getBuildYear()}. All rights reserved
|
||||||
|
*
|
||||||
|
* https://www.onlyoffice.com/
|
||||||
|
*
|
||||||
|
* Version: ${version} (build: ${getBuildDate()})
|
||||||
|
*/`,
|
||||||
|
}),
|
||||||
];
|
];
|
||||||
|
|
||||||
return merge(baseConfig, clientConfig);
|
return merge(baseConfig, clientConfig);
|
||||||
|
@ -146,6 +146,16 @@ const SubMenu = (props: {
|
|||||||
|
|
||||||
if (subMenuRef.current) {
|
if (subMenuRef.current) {
|
||||||
subMenuRef.current.style.top = "0px";
|
subMenuRef.current.style.top = "0px";
|
||||||
|
|
||||||
|
const submenuRects = subMenuRef.current.getBoundingClientRect();
|
||||||
|
|
||||||
|
if (submenuRects.bottom > viewport.height) {
|
||||||
|
const submenuMargin = 16;
|
||||||
|
const topOffset = submenuRects.bottom - viewport.height + submenuMargin;
|
||||||
|
|
||||||
|
subMenuRef.current.style.top = `${-1 * topOffset}px`;
|
||||||
|
}
|
||||||
|
|
||||||
if (isRtl) {
|
if (isRtl) {
|
||||||
if (subListWidth < parseInt(`${containerOffset.left}`, 10)) {
|
if (subListWidth < parseInt(`${containerOffset.left}`, 10)) {
|
||||||
subMenuRef.current.style.left = `${-1 * subListWidth}px`;
|
subMenuRef.current.style.left = `${-1 * subListWidth}px`;
|
||||||
|
@ -427,11 +427,11 @@ const FilterBlock = ({
|
|||||||
const isEqualFilter = () => {
|
const isEqualFilter = () => {
|
||||||
let isEqual = true;
|
let isEqual = true;
|
||||||
|
|
||||||
if (
|
// if (
|
||||||
filterValues.length === 0 ||
|
// filterValues.length === 0 ||
|
||||||
selectedFilterValue.length > filterValues.length
|
// selectedFilterValue.length > filterValues.length
|
||||||
)
|
// )
|
||||||
return !isEqual;
|
// return !isEqual;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
(selectedFilterValue.length === 0 && filterValues.length > 0) ||
|
(selectedFilterValue.length === 0 && filterValues.length > 0) ||
|
||||||
@ -477,7 +477,7 @@ const FilterBlock = ({
|
|||||||
return !isEqual;
|
return !isEqual;
|
||||||
};
|
};
|
||||||
|
|
||||||
const showFooter = isEqualFilter();
|
const showFooter = isLoading ? false : isEqualFilter();
|
||||||
|
|
||||||
const filterBlockComponent = (
|
const filterBlockComponent = (
|
||||||
<>
|
<>
|
||||||
|
Loading…
Reference in New Issue
Block a user