feat: pin message
This commit is contained in:
+11
-12
@@ -13,16 +13,15 @@
|
||||
"@tippyjs/react": "^4.2.6",
|
||||
"@toast-ui/editor": "^3.1.5",
|
||||
"@toast-ui/editor-plugin-code-syntax-highlight": "^3.0.0",
|
||||
"@toast-ui/react-editor": "^3.1.3",
|
||||
"@toast-ui/react-editor": "^3.1.5",
|
||||
"@udecode/plate": "^10.6.3",
|
||||
"@uiball/loaders": "^1.2.4",
|
||||
"animate.css": "^4.1.1",
|
||||
"axios": "^0.26.1",
|
||||
"babel-loader": "^8.2.5",
|
||||
"babel-plugin-named-asset-import": "^0.3.8",
|
||||
"babel-preset-react-app": "^10.0.1",
|
||||
"bfj": "^7.0.2",
|
||||
"browserslist": "^4.20.2",
|
||||
"browserslist": "^4.20.3",
|
||||
"camelcase": "^6.3.0",
|
||||
"case-sensitive-paths-webpack-plugin": "^2.4.0",
|
||||
"css-loader": "^6.7.1",
|
||||
@@ -43,13 +42,13 @@
|
||||
"localforage": "^1.10.0",
|
||||
"masonry-layout": "^4.2.2",
|
||||
"mini-css-extract-plugin": "^2.6.0",
|
||||
"re-resizable": "^6.9.8",
|
||||
"react": "^18.0.0",
|
||||
"re-resizable": "^6.9.9",
|
||||
"react": "^18.1.0",
|
||||
"react-circular-progressbar": "^2.0.4",
|
||||
"react-dev-utils": "^12.0.1",
|
||||
"react-dnd": "16.0.1",
|
||||
"react-dnd-html5-backend": "16.0.1",
|
||||
"react-dom": "^18.0.0",
|
||||
"react-dom": "^18.1.0",
|
||||
"react-google-login": "^5.2.2",
|
||||
"react-helmet": "^6.1.0",
|
||||
"react-hot-toast": "^2.2.0",
|
||||
@@ -57,7 +56,7 @@
|
||||
"react-linkify": "^1.0.0-alpha",
|
||||
"react-pdf": "^5.7.2",
|
||||
"react-redux": "^8.0.1",
|
||||
"react-refresh": "0.12.0",
|
||||
"react-refresh": "0.13.0",
|
||||
"react-router-dom": "6",
|
||||
"react-string-replace": "^1.0.0",
|
||||
"react-textarea-autosize": "^8.3.3",
|
||||
@@ -65,11 +64,11 @@
|
||||
"resolve": "^1.22.0",
|
||||
"rooks": "^5.11.0",
|
||||
"semver": "^7.3.7",
|
||||
"slate": "^0.77.2",
|
||||
"slate": "^0.78.0",
|
||||
"slate-auto-replace": "^0.12.1",
|
||||
"slate-history": "^0.66.0",
|
||||
"slate-hyperscript": "^0.77.0",
|
||||
"slate-react": "^0.77.3",
|
||||
"slate-react": "^0.77.4",
|
||||
"source-map-loader": "^3.0.1",
|
||||
"style-loader": "^3.3.1",
|
||||
"styled-components": "^5.3.5",
|
||||
@@ -117,15 +116,15 @@
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-prettier": "^4.0.0",
|
||||
"eslint-plugin-react": "^7.29.4",
|
||||
"eslint-plugin-react-hooks": "^4.4.0",
|
||||
"eslint-plugin-react-hooks": "^4.5.0",
|
||||
"gh-pages": "^3.2.3",
|
||||
"husky": "^7.0.4",
|
||||
"lint-staged": "^12.4.0",
|
||||
"lint-staged": "^12.4.1",
|
||||
"patch-package": "^6.4.7",
|
||||
"postcss": "^8.4.12",
|
||||
"postcss-flexbugs-fixes": "^5.0.2",
|
||||
"postcss-loader": "^6.2.1",
|
||||
"postcss-preset-env": "^7.4.3",
|
||||
"postcss-preset-env": "^7.4.4",
|
||||
"postinstall-postinstall": "^2.1.0",
|
||||
"prettier": "^2.6.2"
|
||||
}
|
||||
|
||||
@@ -79,6 +79,28 @@ const channelsSlice = createSlice({
|
||||
break;
|
||||
}
|
||||
},
|
||||
updatePinMessage(state, action) {
|
||||
const { gid, mid, msg } = action.payload;
|
||||
let msgs = state.byId[gid]?.pinned_messages;
|
||||
if (!msgs) return;
|
||||
if (msg) {
|
||||
if (!msgs) {
|
||||
msgs = [msg];
|
||||
} else {
|
||||
const idx = msgs.findIndex((msg) => msg.mid == mid);
|
||||
if (idx > -1) {
|
||||
msgs.splice(idx, 1);
|
||||
}
|
||||
msgs.push(msg);
|
||||
}
|
||||
} else {
|
||||
// remove
|
||||
const idx = msgs.findIndex((msg) => msg.mid == mid);
|
||||
if (idx > -1) {
|
||||
msgs.splice(idx, 1);
|
||||
}
|
||||
}
|
||||
},
|
||||
removeChannel(state, action) {
|
||||
const gid = action.payload;
|
||||
const idx = state.ids.findIndex((i) => i == gid);
|
||||
@@ -90,6 +112,7 @@ const channelsSlice = createSlice({
|
||||
},
|
||||
});
|
||||
export const {
|
||||
updatePinMessage,
|
||||
resetChannels,
|
||||
fullfillChannels,
|
||||
addChannel,
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
<svg width="160" height="160" viewBox="0 0 160 160" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M79.9997 13.3642C116.819 13.3642 146.666 43.2118 146.666 80.0308C146.666 116.85 116.819 146.698 79.9997 146.698C43.1807 146.698 13.333 116.85 13.333 80.0308C13.333 43.2118 43.1807 13.3642 79.9997 13.3642ZM79.9997 23.3642C48.7035 23.3642 23.333 48.7347 23.333 80.0308C23.333 111.327 48.7035 136.698 79.9997 136.698C111.296 136.698 136.666 111.327 136.666 80.0308C136.666 48.7347 111.296 23.3642 79.9997 23.3642ZM79.9997 86.6667C88.284 86.6667 94.9997 93.3824 94.9997 101.667C94.9997 109.951 88.284 116.667 79.9997 116.667C71.7154 116.667 64.9997 109.951 64.9997 101.667C64.9997 93.3824 71.7154 86.6667 79.9997 86.6667ZM60.0027 58.3411C64.6024 58.3411 68.3313 62.0699 68.3313 66.6697C68.3313 71.2694 64.6024 74.9983 60.0027 74.9983C55.4029 74.9983 51.6741 71.2694 51.6741 66.6697C51.6741 62.0699 55.4029 58.3411 60.0027 58.3411ZM100.003 58.3411C104.602 58.3411 108.331 62.0699 108.331 66.6697C108.331 71.2694 104.602 74.9983 100.003 74.9983C95.4029 74.9983 91.6741 71.2694 91.6741 66.6697C91.6741 62.0699 95.4029 58.3411 100.003 58.3411Z" fill="#D0D5DD"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -8,7 +8,7 @@ import { updateSelectMessages } from "../../../app/slices/ui";
|
||||
import { addReplyingMessage } from "../../../app/slices/message";
|
||||
import StyledMenu from "../styled/Menu";
|
||||
import Tooltip from "../../component/Tooltip";
|
||||
import DeleteMessageConfirm from "./DeleteMessageConfirm";
|
||||
import DeleteMessageConfirm from "../DeleteMessageConfirm";
|
||||
import EmojiPicker from "./EmojiPicker";
|
||||
import replyIcon from "../../../assets/icons/reply.svg?url";
|
||||
import reactIcon from "../../../assets/icons/reaction.svg?url";
|
||||
@@ -17,6 +17,7 @@ import editIcon from "../../../assets/icons/edit.svg?url";
|
||||
import moreIcon from "../../../assets/icons/more.svg?url";
|
||||
import ForwardModal from "../ForwardModal";
|
||||
import PinMessageModal from "./PinMessageModal";
|
||||
import usePinMessage from "../../hook/usePinMessage";
|
||||
const StyledCmds = styled.ul`
|
||||
z-index: 9999;
|
||||
position: absolute;
|
||||
@@ -63,6 +64,9 @@ export default function Commands({
|
||||
const [deleteModalVisible, setDeleteModalVisible] = useState(false);
|
||||
const [forwardModalVisible, setForwardModalVisible] = useState(false);
|
||||
const [tippyVisible, setTippyVisible] = useState(false);
|
||||
const { canPin } = usePinMessage(
|
||||
context == "channel" ? contextId : undefined
|
||||
);
|
||||
const currUid = useSelector((store) => store.authData.uid);
|
||||
const cmdsRef = useRef(null);
|
||||
const handleReply = (fromMenu) => {
|
||||
@@ -92,6 +96,7 @@ export default function Commands({
|
||||
dispatch(updateSelectMessages({ context, id: contextId, data: mid }));
|
||||
hideAll();
|
||||
};
|
||||
const enablePin = context == "channel" && canPin;
|
||||
return (
|
||||
<StyledCmds
|
||||
ref={cmdsRef}
|
||||
@@ -139,7 +144,7 @@ export default function Commands({
|
||||
content={
|
||||
<StyledMenu className="menu">
|
||||
{/* <li className="item">Edit Message</li> */}
|
||||
{context == "channel" && (
|
||||
{enablePin && (
|
||||
<li className="item underline" onClick={togglePinModal}>
|
||||
Pin Message
|
||||
</li>
|
||||
@@ -169,7 +174,7 @@ export default function Commands({
|
||||
</Tippy>
|
||||
|
||||
{deleteModalVisible && (
|
||||
<DeleteMessageConfirm closeModal={toggleDeleteModal} mid={mid} />
|
||||
<DeleteMessageConfirm closeModal={toggleDeleteModal} mids={mid} />
|
||||
)}
|
||||
{forwardModalVisible && (
|
||||
<ForwardModal mids={[mid]} closeModal={toggleForwardModal} />
|
||||
|
||||
@@ -33,9 +33,11 @@ export default function useNormalizeMessage() {
|
||||
: "";
|
||||
let user = { ...(data.users[from_user] || {}) };
|
||||
user.avatar =
|
||||
typeof user.avatar !== "undefined"
|
||||
user.avatar !== null
|
||||
? `${BASE_URL}/resource/archive/attachment?file_path=${filePath}&attachment_id=${user.avatar}`
|
||||
: "";
|
||||
|
||||
console.log("user data", transformedContent, user);
|
||||
return {
|
||||
user,
|
||||
content: transformedContent,
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
import { useState, useEffect } from "react";
|
||||
import { useSelector } from "react-redux";
|
||||
import {
|
||||
usePinMessageMutation,
|
||||
useUnpinMessageMutation,
|
||||
} from "../../app/services/message";
|
||||
export default function usePinMessage(cid = null) {
|
||||
const [pins, setPins] = useState([]);
|
||||
const { channel, loginUser } = useSelector((store) => {
|
||||
return {
|
||||
channel: store.channels.byId[cid],
|
||||
loginUser: store.contacts.byId[store.authData.uid],
|
||||
};
|
||||
});
|
||||
const [pin, { isError, isLoading, isSuccess }] = usePinMessageMutation();
|
||||
const [
|
||||
unpin,
|
||||
{ isError: isUnpinError, isLoading: isUnpining, isSuccess: isUnpinSuccess },
|
||||
] = useUnpinMessageMutation();
|
||||
const pinMessage = (mid) => {
|
||||
if (!mid || !cid) return;
|
||||
pin({ mid, gid: +cid });
|
||||
};
|
||||
const unpinMessage = (mid) => {
|
||||
if (!mid || !cid) return;
|
||||
unpin({ mid, gid: +cid });
|
||||
};
|
||||
useEffect(() => {
|
||||
if (channel) {
|
||||
setPins(channel.pinned_messages);
|
||||
}
|
||||
}, [channel]);
|
||||
|
||||
return {
|
||||
pins,
|
||||
canPin: loginUser.is_admin || channel?.owner == loginUser.uid,
|
||||
pinMessage,
|
||||
unpinMessage,
|
||||
isError,
|
||||
isPining: isLoading,
|
||||
isSuccess,
|
||||
isUnpinError,
|
||||
isUnpining,
|
||||
isUnpinSuccess,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
// import React from "react";
|
||||
// import { useSelector } from "react-redux";
|
||||
import styled from "styled-components";
|
||||
import usePinMessage from "../../../common/hook/usePinMessage";
|
||||
import PreviewMessage from "../../../common/component/Message/PreviewMessage";
|
||||
import IconSurprise from "../../../assets/icons/emoji.suprise.svg";
|
||||
// import IconForward from "../../../assets/icons/forward.svg";
|
||||
import IconClose from "../../../assets/icons/close.svg";
|
||||
const Styled = styled.div`
|
||||
padding: 16px;
|
||||
background: #f9fafb;
|
||||
filter: drop-shadow(0px 25px 50px rgba(31, 41, 55, 0.25));
|
||||
border-radius: 12px;
|
||||
width: 406px;
|
||||
> .head {
|
||||
font-weight: 600;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
color: #344054;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
> .none {
|
||||
padding: 16px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
.tip {
|
||||
width: 240px;
|
||||
font-weight: 600;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
text-align: center;
|
||||
color: #475467;
|
||||
}
|
||||
}
|
||||
> .list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
.pin {
|
||||
position: relative;
|
||||
border: 1px solid #f2f4f7;
|
||||
border-radius: var(--br);
|
||||
> .preview {
|
||||
background: none;
|
||||
.down img {
|
||||
width: 100% !important;
|
||||
height: auto !important;
|
||||
}
|
||||
}
|
||||
> .opts {
|
||||
visibility: hidden;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
right: 4px;
|
||||
padding: 4px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.08);
|
||||
border-radius: 6px;
|
||||
.btn {
|
||||
display: flex;
|
||||
background: none;
|
||||
border: none;
|
||||
svg {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
path {
|
||||
fill-opacity: 1;
|
||||
fill: #667085;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&:hover .opts {
|
||||
visibility: visible;
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
export default function PinList({ id }) {
|
||||
const { pins, unpinMessage, canPin } = usePinMessage(id);
|
||||
const handleUnpin = (evt) => {
|
||||
const { mid } = evt.currentTarget.dataset;
|
||||
console.log("unpin msg", mid);
|
||||
unpinMessage(+mid);
|
||||
};
|
||||
const noPins = pins.length == 0;
|
||||
return (
|
||||
<Styled>
|
||||
<h4 className="head">Pinned Message({pins.length})</h4>
|
||||
|
||||
{noPins ? (
|
||||
<div className="none">
|
||||
<IconSurprise />
|
||||
<div className="tip">
|
||||
This channel doesn’t have any pinned message yet.
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
<ul className="list">
|
||||
{pins.map(({ mid }) => {
|
||||
return (
|
||||
<li key={mid} className="pin">
|
||||
<PreviewMessage mid={mid} />
|
||||
<div className="opts">
|
||||
{/* <button
|
||||
className="btn"
|
||||
data-mid={mid}
|
||||
// onClick={handleUnpin}
|
||||
>
|
||||
<IconForward />
|
||||
</button> */}
|
||||
{canPin && (
|
||||
<button
|
||||
className="btn"
|
||||
data-mid={mid}
|
||||
onClick={handleUnpin}
|
||||
>
|
||||
<IconClose />
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
</li>
|
||||
);
|
||||
})}
|
||||
</ul>
|
||||
)}
|
||||
</Styled>
|
||||
);
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import { useState } from "react";
|
||||
import { useDebounce } from "rooks";
|
||||
import { useSelector } from "react-redux";
|
||||
import PinList from "./PinList";
|
||||
import { useReadMessageMutation } from "../../../app/services/message";
|
||||
import useChatScroll from "../../../common/hook/useChatScroll";
|
||||
import ChannelIcon from "../../../common/component/ChannelIcon";
|
||||
@@ -9,7 +10,7 @@ import Contact from "../../../common/component/Contact";
|
||||
import Layout from "../Layout";
|
||||
import { renderMessageFragment } from "../utils";
|
||||
import EditIcon from "../../../assets/icons/edit.svg";
|
||||
import alertIcon from "../../../assets/icons/alert.svg?url";
|
||||
// import alertIcon from "../../../assets/icons/alert.svg?url";
|
||||
import peopleIcon from "../../../assets/icons/people.svg?url";
|
||||
import pinIcon from "../../../assets/icons/pin.svg?url";
|
||||
// import searchIcon from "../../../assets/icons/search.svg?url";
|
||||
@@ -25,8 +26,10 @@ import {
|
||||
} from "./styled";
|
||||
import ChannelInviteModal from "../../../common/component/ChannelInviteModal";
|
||||
import { NavLink, useLocation } from "react-router-dom";
|
||||
import Tippy from "@tippyjs/react";
|
||||
|
||||
export default function ChannelChat({ cid = "", dropFiles = [] }) {
|
||||
const [toolVisible, setToolVisible] = useState("");
|
||||
const { pathname } = useLocation();
|
||||
const [updateReadIndex] = useReadMessageMutation();
|
||||
const updateReadDebounced = useDebounce(updateReadIndex, 300);
|
||||
@@ -70,6 +73,7 @@ export default function ChannelChat({ cid = "", dropFiles = [] }) {
|
||||
const addVisible = loginUser?.is_admin || owner == loginUid;
|
||||
console.log("channel message list", msgIds);
|
||||
const readIndex = footprint.readChannels[cid];
|
||||
const pinCount = data?.pinned_messages?.length || 0;
|
||||
return (
|
||||
<>
|
||||
{addMemberModalVisible && (
|
||||
@@ -93,16 +97,40 @@ export default function ChannelChat({ cid = "", dropFiles = [] }) {
|
||||
<img src={headphoneIcon} alt="opt icon" />
|
||||
</Tooltip>
|
||||
</li>
|
||||
<li className="tool">
|
||||
{/* <li className="tool">
|
||||
<Tooltip tip="Notifications" placement="left">
|
||||
<img src={alertIcon} alt="opt icon" />
|
||||
</Tooltip>
|
||||
</li>
|
||||
<li className="tool">
|
||||
<Tooltip tip="Pin" placement="left">
|
||||
<img src={pinIcon} alt="opt icon" />
|
||||
</Tooltip>
|
||||
</li>
|
||||
</li> */}
|
||||
<Tooltip
|
||||
tip="Pin"
|
||||
placement="left"
|
||||
disabled={toolVisible == "pin"}
|
||||
>
|
||||
<Tippy
|
||||
onShow={() => {
|
||||
setToolVisible("pin");
|
||||
}}
|
||||
onHide={() => {
|
||||
setToolVisible("");
|
||||
}}
|
||||
delay={[0, 0]}
|
||||
duration={0}
|
||||
placement="left-start"
|
||||
popperOptions={{ strategy: "fixed" }}
|
||||
offset={[0, 80]}
|
||||
interactive
|
||||
trigger="click"
|
||||
content={<PinList id={cid} />}
|
||||
>
|
||||
<li
|
||||
className={`tool ${pinCount > 0 ? "badge" : ""}`}
|
||||
data-count={pinCount}
|
||||
>
|
||||
<img src={pinIcon} alt="opt icon" />
|
||||
</li>
|
||||
</Tippy>
|
||||
</Tooltip>
|
||||
<li className="tool" onClick={toggleMembersVisible}>
|
||||
<Tooltip tip="Channel Members" placement="left">
|
||||
<img src={peopleIcon} alt="opt icon" />
|
||||
|
||||
@@ -65,7 +65,28 @@ const Styled = styled.article`
|
||||
.tools {
|
||||
gap: 24px;
|
||||
.tool {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
&.badge:after {
|
||||
position: absolute;
|
||||
top: -8px;
|
||||
right: -8px;
|
||||
content: attr(data-count);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
|
||||
border-radius: 50%;
|
||||
background-color: #22ccee;
|
||||
color: #fff;
|
||||
font-weight: 900;
|
||||
font-size: 10px;
|
||||
line-height: 10px;
|
||||
text-align: center;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.apps {
|
||||
|
||||
@@ -1190,9 +1190,9 @@
|
||||
dependencies:
|
||||
"@cspotcode/source-map-consumer" "0.8.0"
|
||||
|
||||
"@csstools/postcss-color-function@^1.0.3":
|
||||
"@csstools/postcss-color-function@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/@csstools%2fpostcss-color-function/-/postcss-color-function-1.1.0.tgz#229966327747f58fbe586de35daa139db3ce1e5d"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/@csstools%2fpostcss-color-function/-/postcss-color-function-1.1.0.tgz#229966327747f58fbe586de35daa139db3ce1e5d"
|
||||
integrity sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==
|
||||
dependencies:
|
||||
"@csstools/postcss-progressive-custom-properties" "^1.1.0"
|
||||
@@ -1220,9 +1220,9 @@
|
||||
"@csstools/postcss-progressive-custom-properties" "^1.1.0"
|
||||
postcss-value-parser "^4.2.0"
|
||||
|
||||
"@csstools/postcss-is-pseudo-class@^2.0.1":
|
||||
"@csstools/postcss-is-pseudo-class@^2.0.2":
|
||||
version "2.0.2"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/@csstools%2fpostcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.2.tgz#a834ca11a43d6ed9bc9e3ff53c80d490a4b1aaad"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/@csstools%2fpostcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.2.tgz#a834ca11a43d6ed9bc9e3ff53c80d490a4b1aaad"
|
||||
integrity sha512-L9h1yxXMj7KpgNzlMrw3isvHJYkikZgZE4ASwssTnGEH8tm50L6QsM9QQT5wR4/eO5mU0rN5axH7UzNxEYg5CA==
|
||||
dependencies:
|
||||
postcss-selector-parser "^6.0.10"
|
||||
@@ -1234,9 +1234,9 @@
|
||||
dependencies:
|
||||
postcss-value-parser "^4.2.0"
|
||||
|
||||
"@csstools/postcss-oklab-function@^1.0.2":
|
||||
"@csstools/postcss-oklab-function@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/@csstools%2fpostcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz#e9a269487a292e0930760948e923e1d46b638ee6"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/@csstools%2fpostcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz#e9a269487a292e0930760948e923e1d46b638ee6"
|
||||
integrity sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==
|
||||
dependencies:
|
||||
"@csstools/postcss-progressive-custom-properties" "^1.1.0"
|
||||
@@ -2032,20 +2032,6 @@
|
||||
dependencies:
|
||||
prismjs "^1.23.0"
|
||||
|
||||
"@toast-ui/editor@^3.1.3":
|
||||
version "3.1.4"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/@toast-ui%2feditor/-/editor-3.1.4.tgz#7f011a138c3aae6c7521b0025146ab202daa8d6b"
|
||||
integrity sha512-n+QbUVkiCWD5Qavm1wd198lga64uPj0F/3e7ZHfK+aU07xW+hUjsCnp+C+iIPGaiiQ3OL9I0oNRLW7PwbRn9Ug==
|
||||
dependencies:
|
||||
dompurify "^2.3.3"
|
||||
prosemirror-commands "^1.1.9"
|
||||
prosemirror-history "^1.1.3"
|
||||
prosemirror-inputrules "^1.1.3"
|
||||
prosemirror-keymap "^1.1.4"
|
||||
prosemirror-model "^1.14.1"
|
||||
prosemirror-state "^1.3.4"
|
||||
prosemirror-view "^1.18.7"
|
||||
|
||||
"@toast-ui/editor@^3.1.5":
|
||||
version "3.1.5"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/@toast-ui%2feditor/-/editor-3.1.5.tgz#b47c3d94c23a4f0f6a653975b0b4b35b0035d31f"
|
||||
@@ -2060,12 +2046,12 @@
|
||||
prosemirror-state "^1.3.4"
|
||||
prosemirror-view "^1.18.7"
|
||||
|
||||
"@toast-ui/react-editor@^3.1.3":
|
||||
version "3.1.3"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/@toast-ui%2freact-editor/-/react-editor-3.1.3.tgz#5d55ecf08df4c6a230c104f5e4dbab9212107941"
|
||||
integrity sha512-k5W53y/R3cZvSH3UfDgeT8L1k8MpRri4O9hcTeuXtnbkkCtPQjt0m696tKrZvSXRNeqa4mKT0m8uNbHJAqWD4g==
|
||||
"@toast-ui/react-editor@^3.1.5":
|
||||
version "3.1.5"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/@toast-ui%2freact-editor/-/react-editor-3.1.5.tgz#5254a09944903c06ab3ce7184d2c939ae2219dd9"
|
||||
integrity sha512-CD8jQ385gtR2XsJExk7J3A9g8X+kabY71MVVim7NVaBrOut+Kl0tZUZFC3LeViggMVWgc4qE/DEtEqX2pIKG8A==
|
||||
dependencies:
|
||||
"@toast-ui/editor" "^3.1.3"
|
||||
"@toast-ui/editor" "^3.1.5"
|
||||
|
||||
"@trysound/sax@0.2.0":
|
||||
version "0.2.0"
|
||||
@@ -3297,18 +3283,6 @@ at-least-node@^1.0.0:
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
|
||||
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
|
||||
|
||||
autoprefixer@^10.4.4:
|
||||
version "10.4.4"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/autoprefixer/-/autoprefixer-10.4.4.tgz#3e85a245b32da876a893d3ac2ea19f01e7ea5a1e"
|
||||
integrity sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==
|
||||
dependencies:
|
||||
browserslist "^4.20.2"
|
||||
caniuse-lite "^1.0.30001317"
|
||||
fraction.js "^4.2.0"
|
||||
normalize-range "^0.1.2"
|
||||
picocolors "^1.0.0"
|
||||
postcss-value-parser "^4.2.0"
|
||||
|
||||
autoprefixer@^10.4.5:
|
||||
version "10.4.5"
|
||||
resolved "https://mirrors.tencent.com/npm/autoprefixer/-/autoprefixer-10.4.5.tgz#662193c744094b53d3637f39be477e07bd904998"
|
||||
@@ -3321,13 +3295,6 @@ autoprefixer@^10.4.5:
|
||||
picocolors "^1.0.0"
|
||||
postcss-value-parser "^4.2.0"
|
||||
|
||||
axios@^0.26.1:
|
||||
version "0.26.1"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9"
|
||||
integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
|
||||
dependencies:
|
||||
follow-redirects "^1.14.8"
|
||||
|
||||
babel-loader@^8.2.5:
|
||||
version "8.2.5"
|
||||
resolved "https://mirrors.tencent.com/npm/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e"
|
||||
@@ -3535,6 +3502,17 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4
|
||||
node-releases "^2.0.2"
|
||||
picocolors "^1.0.0"
|
||||
|
||||
browserslist@^4.20.3:
|
||||
version "4.20.3"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf"
|
||||
integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30001332"
|
||||
electron-to-chromium "^1.4.118"
|
||||
escalade "^3.1.1"
|
||||
node-releases "^2.0.3"
|
||||
picocolors "^1.0.0"
|
||||
|
||||
buffer-from@^1.0.0:
|
||||
version "1.1.2"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
||||
@@ -4462,6 +4440,11 @@ ejs@^3.1.6:
|
||||
dependencies:
|
||||
jake "^10.8.5"
|
||||
|
||||
electron-to-chromium@^1.4.118:
|
||||
version "1.4.123"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/electron-to-chromium/-/electron-to-chromium-1.4.123.tgz#de88ea7fd29d7c868e63c88f129e91494bcf3266"
|
||||
integrity sha512-0pHGE53WkYoFbsgwYcVKEpWa6jbzlvkohIEA2CUoZ9b5KC+w/zlMiQHvW/4IBcOh7YoEFqRNavgTk02TBoUTUw==
|
||||
|
||||
electron-to-chromium@^1.4.84:
|
||||
version "1.4.118"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/electron-to-chromium/-/electron-to-chromium-1.4.118.tgz#2d917c71712dac9652cc01af46c7d0bd51552974"
|
||||
@@ -4651,10 +4634,10 @@ eslint-plugin-prettier@^4.0.0:
|
||||
dependencies:
|
||||
prettier-linter-helpers "^1.0.0"
|
||||
|
||||
eslint-plugin-react-hooks@^4.4.0:
|
||||
version "4.4.0"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz#71c39e528764c848d8253e1aa2c7024ed505f6c4"
|
||||
integrity sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==
|
||||
eslint-plugin-react-hooks@^4.5.0:
|
||||
version "4.5.0"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.5.0.tgz#5f762dfedf8b2cf431c689f533c9d3fa5dcf25ad"
|
||||
integrity sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==
|
||||
|
||||
eslint-plugin-react@^7.29.4:
|
||||
version "7.29.4"
|
||||
@@ -5088,7 +5071,7 @@ flatted@^3.1.0:
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3"
|
||||
integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
|
||||
|
||||
follow-redirects@^1.0.0, follow-redirects@^1.14.8:
|
||||
follow-redirects@^1.0.0:
|
||||
version "1.14.9"
|
||||
resolved "https://mirrors.tencent.com/npm/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7"
|
||||
integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==
|
||||
@@ -6196,10 +6179,10 @@ linkifyjs@^3.0.5:
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/linkifyjs/-/linkifyjs-3.0.5.tgz#99e51a3a0c0e232fcb63ebb89eea3ff923378f34"
|
||||
integrity sha512-1Y9XQH65eQKA9p2xtk+zxvnTeQBG7rdAXSkUG97DmuI/Xhji9uaUzaWxRj6rf9YC0v8KKHkxav7tnLX82Sz5Fg==
|
||||
|
||||
lint-staged@^12.4.0:
|
||||
version "12.4.0"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/lint-staged/-/lint-staged-12.4.0.tgz#1fb8c73ac7a1c670b87bd2c1bf1e302c866e77af"
|
||||
integrity sha512-3X7MR0h9b7qf4iXf/1n7RlVAx+EzpAZXoCEMhVSpaBlgKDfH2ewf+QUm7BddFyq29v4dgPP+8+uYpWuSWx035A==
|
||||
lint-staged@^12.4.1:
|
||||
version "12.4.1"
|
||||
resolved "https://mirrors.tencent.com/npm/lint-staged/-/lint-staged-12.4.1.tgz#63fa27bfc8a33515f6902f63f6670864f1fb233c"
|
||||
integrity sha512-PTXgzpflrQ+pODQTG116QNB+Q6uUTDg5B5HqGvNhoQSGt8Qy+MA/6zSnR8n38+sxP5TapzeQGTvoKni0KRS8Vg==
|
||||
dependencies:
|
||||
cli-truncate "^3.1.0"
|
||||
colorette "^2.0.16"
|
||||
@@ -6678,7 +6661,7 @@ node-forge@^1:
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
|
||||
integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
|
||||
|
||||
node-releases@^2.0.2:
|
||||
node-releases@^2.0.2, node-releases@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96"
|
||||
integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==
|
||||
@@ -7206,9 +7189,9 @@ postcss-custom-media@^8.0.0:
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz#1be6aff8be7dc9bf1fe014bde3b71b92bb4552f1"
|
||||
integrity sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==
|
||||
|
||||
postcss-custom-properties@^12.1.5:
|
||||
postcss-custom-properties@^12.1.7:
|
||||
version "12.1.7"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz#ca470fd4bbac5a87fd868636dafc084bc2a78b41"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz#ca470fd4bbac5a87fd868636dafc084bc2a78b41"
|
||||
integrity sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==
|
||||
dependencies:
|
||||
postcss-value-parser "^4.2.0"
|
||||
@@ -7303,9 +7286,9 @@ postcss-initial@^4.0.1:
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42"
|
||||
integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==
|
||||
|
||||
postcss-lab-function@^4.1.2:
|
||||
postcss-lab-function@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz#e054e662c6480202f5760887ec1ae0d153357123"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz#e054e662c6480202f5760887ec1ae0d153357123"
|
||||
integrity sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==
|
||||
dependencies:
|
||||
"@csstools/postcss-progressive-custom-properties" "^1.1.0"
|
||||
@@ -7408,9 +7391,9 @@ postcss-modules-values@^4.0.0:
|
||||
dependencies:
|
||||
icss-utils "^5.0.0"
|
||||
|
||||
postcss-nesting@^10.1.3:
|
||||
postcss-nesting@^10.1.4:
|
||||
version "10.1.4"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/postcss-nesting/-/postcss-nesting-10.1.4.tgz#80de9d1c2717bc44df918dd7f118929300192a7a"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/postcss-nesting/-/postcss-nesting-10.1.4.tgz#80de9d1c2717bc44df918dd7f118929300192a7a"
|
||||
integrity sha512-2ixdQ59ik/Gt1+oPHiI1kHdwEI8lLKEmui9B1nl6163ANLC+GewQn7fXMxJF2JSb4i2MKL96GU8fIiQztK4TTA==
|
||||
dependencies:
|
||||
postcss-selector-parser "^6.0.10"
|
||||
@@ -7508,21 +7491,21 @@ postcss-place@^7.0.4:
|
||||
dependencies:
|
||||
postcss-value-parser "^4.2.0"
|
||||
|
||||
postcss-preset-env@^7.4.3:
|
||||
version "7.4.3"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz#fb1c8b4cb405da042da0ddb8c5eda7842c08a449"
|
||||
integrity sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==
|
||||
postcss-preset-env@^7.4.4:
|
||||
version "7.4.4"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/postcss-preset-env/-/postcss-preset-env-7.4.4.tgz#069e34e31e2a7345154da7936b9fc1fcbdbd6d43"
|
||||
integrity sha512-MqzSEx/QsvOk562iV9mLTgIvLFEOq1os9QBQfkgnq8TW6yKhVFPGh0gdXSK5ZlmjuNQEga6/x833e86XZF/lug==
|
||||
dependencies:
|
||||
"@csstools/postcss-color-function" "^1.0.3"
|
||||
"@csstools/postcss-color-function" "^1.1.0"
|
||||
"@csstools/postcss-font-format-keywords" "^1.0.0"
|
||||
"@csstools/postcss-hwb-function" "^1.0.0"
|
||||
"@csstools/postcss-ic-unit" "^1.0.0"
|
||||
"@csstools/postcss-is-pseudo-class" "^2.0.1"
|
||||
"@csstools/postcss-is-pseudo-class" "^2.0.2"
|
||||
"@csstools/postcss-normalize-display-values" "^1.0.0"
|
||||
"@csstools/postcss-oklab-function" "^1.0.2"
|
||||
"@csstools/postcss-oklab-function" "^1.1.0"
|
||||
"@csstools/postcss-progressive-custom-properties" "^1.3.0"
|
||||
autoprefixer "^10.4.4"
|
||||
browserslist "^4.20.2"
|
||||
autoprefixer "^10.4.5"
|
||||
browserslist "^4.20.3"
|
||||
css-blank-pseudo "^3.0.3"
|
||||
css-has-pseudo "^3.0.4"
|
||||
css-prefers-color-scheme "^6.0.3"
|
||||
@@ -7533,7 +7516,7 @@ postcss-preset-env@^7.4.3:
|
||||
postcss-color-hex-alpha "^8.0.3"
|
||||
postcss-color-rebeccapurple "^7.0.2"
|
||||
postcss-custom-media "^8.0.0"
|
||||
postcss-custom-properties "^12.1.5"
|
||||
postcss-custom-properties "^12.1.7"
|
||||
postcss-custom-selectors "^6.0.0"
|
||||
postcss-dir-pseudo-class "^6.0.4"
|
||||
postcss-double-position-gradients "^3.1.1"
|
||||
@@ -7544,22 +7527,22 @@ postcss-preset-env@^7.4.3:
|
||||
postcss-gap-properties "^3.0.3"
|
||||
postcss-image-set-function "^4.0.6"
|
||||
postcss-initial "^4.0.1"
|
||||
postcss-lab-function "^4.1.2"
|
||||
postcss-lab-function "^4.2.0"
|
||||
postcss-logical "^5.0.4"
|
||||
postcss-media-minmax "^5.0.0"
|
||||
postcss-nesting "^10.1.3"
|
||||
postcss-nesting "^10.1.4"
|
||||
postcss-opacity-percentage "^1.1.2"
|
||||
postcss-overflow-shorthand "^3.0.3"
|
||||
postcss-page-break "^3.0.4"
|
||||
postcss-place "^7.0.4"
|
||||
postcss-pseudo-class-any-link "^7.1.1"
|
||||
postcss-pseudo-class-any-link "^7.1.2"
|
||||
postcss-replace-overflow-wrap "^4.0.0"
|
||||
postcss-selector-not "^5.0.0"
|
||||
postcss-value-parser "^4.2.0"
|
||||
|
||||
postcss-pseudo-class-any-link@^7.1.1:
|
||||
postcss-pseudo-class-any-link@^7.1.2:
|
||||
version "7.1.2"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.2.tgz#81ec491aa43f97f9015e998b7a14263b4630bdf0"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.2.tgz#81ec491aa43f97f9015e998b7a14263b4630bdf0"
|
||||
integrity sha512-76XzEQv3g+Vgnz3tmqh3pqQyRojkcJ+pjaePsyhcyf164p9aZsu3t+NWxkZYbcHLK1ju5Qmalti2jPI5IWCe5w==
|
||||
dependencies:
|
||||
postcss-selector-parser "^6.0.10"
|
||||
@@ -7852,13 +7835,18 @@ raw-body@2.4.3:
|
||||
iconv-lite "0.4.24"
|
||||
unpipe "1.0.0"
|
||||
|
||||
re-resizable@^6.9.0, re-resizable@^6.9.1, re-resizable@^6.9.8:
|
||||
re-resizable@^6.9.0, re-resizable@^6.9.1:
|
||||
version "6.9.8"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/re-resizable/-/re-resizable-6.9.8.tgz#d9e8a785be18ab60921751e03a775096642ccd20"
|
||||
integrity sha512-eHqU6DngM6zQOM50cx7CEmjBK+sFh5o/mzkfn9mDGnjtJsB2iFPKfGQPFtRBhuEIgeE03H61aVVEBOV+U2ZkrA==
|
||||
dependencies:
|
||||
fast-memoize "^2.5.1"
|
||||
|
||||
re-resizable@^6.9.9:
|
||||
version "6.9.9"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/re-resizable/-/re-resizable-6.9.9.tgz#99e8b31c67a62115dc9c5394b7e55892265be216"
|
||||
integrity sha512-l+MBlKZffv/SicxDySKEEh42hR6m5bAHfNu3Tvxks2c4Ah+ldnWjfnVRwxo/nxF27SsUsxDS0raAzFuJNKABXA==
|
||||
|
||||
react-circular-progressbar@^2.0.4:
|
||||
version "2.0.4"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/react-circular-progressbar/-/react-circular-progressbar-2.0.4.tgz#5b04a9cf6be8c522c180e4e99ec6db63677335b0"
|
||||
@@ -7930,13 +7918,13 @@ react-dnd@^14.0.2:
|
||||
fast-deep-equal "^3.1.3"
|
||||
hoist-non-react-statics "^3.3.2"
|
||||
|
||||
react-dom@^18.0.0:
|
||||
version "18.0.0"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/react-dom/-/react-dom-18.0.0.tgz#26b88534f8f1dbb80853e1eabe752f24100d8023"
|
||||
integrity sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==
|
||||
react-dom@^18.1.0:
|
||||
version "18.1.0"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/react-dom/-/react-dom-18.1.0.tgz#7f6dd84b706408adde05e1df575b3a024d7e8a2f"
|
||||
integrity sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==
|
||||
dependencies:
|
||||
loose-envify "^1.1.0"
|
||||
scheduler "^0.21.0"
|
||||
scheduler "^0.22.0"
|
||||
|
||||
react-error-overlay@^6.0.11:
|
||||
version "6.0.11"
|
||||
@@ -8037,10 +8025,10 @@ react-redux@^8.0.1:
|
||||
react-is "^18.0.0"
|
||||
use-sync-external-store "^1.0.0"
|
||||
|
||||
react-refresh@0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/react-refresh/-/react-refresh-0.12.0.tgz#28ac0a2c30ef2bb3433d5fd0621e69a6d774c3a4"
|
||||
integrity sha512-suLIhrU2IHKL5JEKR/fAwJv7bbeq4kJ+pJopf77jHwuR+HmJS/HbrPIGsTBUVfw7tXPOmYv7UJ7PCaN49e8x4A==
|
||||
react-refresh@0.13.0:
|
||||
version "0.13.0"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/react-refresh/-/react-refresh-0.13.0.tgz#cbd01a4482a177a5da8d44c9755ebb1f26d5a1c1"
|
||||
integrity sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==
|
||||
|
||||
react-router-dom@6:
|
||||
version "6.3.0"
|
||||
@@ -8109,10 +8097,10 @@ react-window@^1.8.7:
|
||||
"@babel/runtime" "^7.0.0"
|
||||
memoize-one ">=3.1.1 <6"
|
||||
|
||||
react@^18.0.0:
|
||||
version "18.0.0"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/react/-/react-18.0.0.tgz#b468736d1f4a5891f38585ba8e8fb29f91c3cb96"
|
||||
integrity sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==
|
||||
react@^18.1.0:
|
||||
version "18.1.0"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890"
|
||||
integrity sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==
|
||||
dependencies:
|
||||
loose-envify "^1.1.0"
|
||||
|
||||
@@ -8446,10 +8434,10 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
|
||||
resolved "http://mirrors.tencent.com/npm/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
|
||||
scheduler@^0.21.0:
|
||||
version "0.21.0"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/scheduler/-/scheduler-0.21.0.tgz#6fd2532ff5a6d877b6edb12f00d8ab7e8f308820"
|
||||
integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==
|
||||
scheduler@^0.22.0:
|
||||
version "0.22.0"
|
||||
resolved "https://mirrors.cloud.tencent.com/npm/scheduler/-/scheduler-0.22.0.tgz#83a5d63594edf074add9a7198b1bae76c3db01b8"
|
||||
integrity sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==
|
||||
dependencies:
|
||||
loose-envify "^1.1.0"
|
||||
|
||||
@@ -8723,10 +8711,10 @@ slate-hyperscript@^0.77.0:
|
||||
dependencies:
|
||||
is-plain-object "^5.0.0"
|
||||
|
||||
slate-react@^0.77.3:
|
||||
version "0.77.3"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/slate-react/-/slate-react-0.77.3.tgz#6882bc22f501d503f90015925bcbdce3f7462a16"
|
||||
integrity sha512-j7DeGHJMwePT6OeCX/nqkTXcrbo0599UyBQsP+knoqlrW/SRLuyCrj4rgOo6hbahOLlTR6wvKshW9p6KAs+uJA==
|
||||
slate-react@^0.77.4:
|
||||
version "0.77.4"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/slate-react/-/slate-react-0.77.4.tgz#b2532b57e47c4e088b1583ed8befc6e238a15ad5"
|
||||
integrity sha512-e3gYuEhjbEX4IhydC4kWZgcvH5fgJkJMuu9paarO6gdW5vRRSWnys/EbOs5ALp4e9NWr5u1XzQkJnbpyW5AqBA==
|
||||
dependencies:
|
||||
"@types/is-hotkey" "^0.1.1"
|
||||
"@types/lodash" "^4.14.149"
|
||||
@@ -8737,10 +8725,10 @@ slate-react@^0.77.3:
|
||||
scroll-into-view-if-needed "^2.2.20"
|
||||
tiny-invariant "1.0.6"
|
||||
|
||||
slate@^0.77.2:
|
||||
version "0.77.2"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/slate/-/slate-0.77.2.tgz#ba66ac32d96f5e6f6793a53727930248ec2279fc"
|
||||
integrity sha512-raG/eyYyRDThz+r/opUD+wxWxwXQi4fH0ViZh41x8qBu8uOPMTBYl10RA7KsF8IK48DS207uPrvWGGBsnMCLwg==
|
||||
slate@^0.78.0:
|
||||
version "0.78.0"
|
||||
resolved "http://mirrors.cloud.tencent.com/npm/slate/-/slate-0.78.0.tgz#cd0328d22b0a99c543987d2a2dd30903bb950ee9"
|
||||
integrity sha512-VwQ0RafT3JPf9SFrXI02Dh3S4Iz9en7d1nn50C/LJjjqjfgv+a2ORbgWMdYjhycPYldaxJwcI3OpP9D1g4SXEg==
|
||||
dependencies:
|
||||
immer "^9.0.6"
|
||||
is-plain-object "^5.0.0"
|
||||
|
||||
Reference in New Issue
Block a user