feat: Essay

main
Mack 3 months ago
parent a911197b4a
commit 13530d53d4

144
package-lock.json generated

@ -8,6 +8,7 @@
"name": "queyue-h5",
"version": "0.1.0",
"dependencies": {
"html-react-parser": "^5.1.15",
"lib-flexible": "^0.3.2",
"next": "14.1.3",
"react": "^18",
@ -2794,13 +2795,13 @@
"version": "15.7.11",
"resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.11.tgz",
"integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==",
"dev": true
"devOptional": true
},
"node_modules/@types/react": {
"version": "18.2.65",
"resolved": "https://registry.npmmirror.com/@types/react/-/react-18.2.65.tgz",
"integrity": "sha512-98TsY0aW4jqx/3RqsUXwMDZSWR1Z4CUlJNue8ueS2/wcxZOsz4xmW1X8ieaWVRHcmmQM3R8xVA4XWB3dJnWwDQ==",
"dev": true,
"devOptional": true,
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@ -2820,7 +2821,7 @@
"version": "0.16.8",
"resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.8.tgz",
"integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==",
"dev": true
"devOptional": true
},
"node_modules/@types/semver": {
"version": "7.5.8",
@ -4136,7 +4137,7 @@
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"dev": true
"devOptional": true
},
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
@ -4249,6 +4250,57 @@
"node": ">=6.0.0"
}
},
"node_modules/dom-serializer": {
"version": "2.0.0",
"resolved": "https://mirrors.cloud.tencent.com/npm/dom-serializer/-/dom-serializer-2.0.0.tgz",
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.2",
"entities": "^4.2.0"
},
"funding": {
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
}
},
"node_modules/domelementtype": {
"version": "2.3.0",
"resolved": "https://mirrors.cloud.tencent.com/npm/domelementtype/-/domelementtype-2.3.0.tgz",
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/fb55"
}
]
},
"node_modules/domhandler": {
"version": "5.0.3",
"resolved": "https://mirrors.cloud.tencent.com/npm/domhandler/-/domhandler-5.0.3.tgz",
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"dependencies": {
"domelementtype": "^2.3.0"
},
"engines": {
"node": ">= 4"
},
"funding": {
"url": "https://github.com/fb55/domhandler?sponsor=1"
}
},
"node_modules/domutils": {
"version": "3.1.0",
"resolved": "https://mirrors.cloud.tencent.com/npm/domutils/-/domutils-3.1.0.tgz",
"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
"dependencies": {
"dom-serializer": "^2.0.0",
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3"
},
"funding": {
"url": "https://github.com/fb55/domutils?sponsor=1"
}
},
"node_modules/dot-prop": {
"version": "5.3.0",
"resolved": "https://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz",
@ -4298,6 +4350,17 @@
"node": ">=10.13.0"
}
},
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://mirrors.cloud.tencent.com/npm/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz",
@ -5462,6 +5525,53 @@
"node": ">= 0.4"
}
},
"node_modules/html-dom-parser": {
"version": "5.0.10",
"resolved": "https://mirrors.cloud.tencent.com/npm/html-dom-parser/-/html-dom-parser-5.0.10.tgz",
"integrity": "sha512-GwArYL3V3V8yU/mLKoFF7HlLBv80BZ2Ey1BzfVNRpAci0cEKhFHI/Qh8o8oyt3qlAMLlK250wsxLdYX4viedvg==",
"dependencies": {
"domhandler": "5.0.3",
"htmlparser2": "9.1.0"
}
},
"node_modules/html-react-parser": {
"version": "5.1.15",
"resolved": "https://mirrors.cloud.tencent.com/npm/html-react-parser/-/html-react-parser-5.1.15.tgz",
"integrity": "sha512-LRwSTseAZtdtzYbBaN0a+pJ48x4qmwPzQC5tvwAp9IvuNf7afxtTHLpCPYCsVjRKRUqhXvfjTaKJJrhctxkHJA==",
"dependencies": {
"domhandler": "5.0.3",
"html-dom-parser": "5.0.10",
"react-property": "2.0.2",
"style-to-js": "1.1.13"
},
"peerDependencies": {
"@types/react": "0.14 || 15 || 16 || 17 || 18",
"react": "0.14 || 15 || 16 || 17 || 18"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
}
},
"node_modules/htmlparser2": {
"version": "9.1.0",
"resolved": "https://mirrors.cloud.tencent.com/npm/htmlparser2/-/htmlparser2-9.1.0.tgz",
"integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
"type": "github",
"url": "https://github.com/sponsors/fb55"
}
],
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
"domutils": "^3.1.0",
"entities": "^4.5.0"
}
},
"node_modules/human-signals": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz",
@ -5545,6 +5655,11 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/inline-style-parser": {
"version": "0.2.3",
"resolved": "https://mirrors.cloud.tencent.com/npm/inline-style-parser/-/inline-style-parser-0.2.3.tgz",
"integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g=="
},
"node_modules/internal-slot": {
"version": "1.0.7",
"resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.7.tgz",
@ -7596,6 +7711,11 @@
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true
},
"node_modules/react-property": {
"version": "2.0.2",
"resolved": "https://mirrors.cloud.tencent.com/npm/react-property/-/react-property-2.0.2.tgz",
"integrity": "sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug=="
},
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
@ -8211,6 +8331,22 @@
"node": ">=8"
}
},
"node_modules/style-to-js": {
"version": "1.1.13",
"resolved": "https://mirrors.cloud.tencent.com/npm/style-to-js/-/style-to-js-1.1.13.tgz",
"integrity": "sha512-+43kvxwjrW9n5gFR40Rv98A0/Mcjew7Lt+p5Nnw1KGR9SZf/ZaKqmMwl9Enj9EnYNcJ5VzuCjejC5KZzvH2lOA==",
"dependencies": {
"style-to-object": "1.0.6"
}
},
"node_modules/style-to-object": {
"version": "1.0.6",
"resolved": "https://mirrors.cloud.tencent.com/npm/style-to-object/-/style-to-object-1.0.6.tgz",
"integrity": "sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==",
"dependencies": {
"inline-style-parser": "0.2.3"
}
},
"node_modules/styled-jsx": {
"version": "5.1.1",
"resolved": "https://registry.npmmirror.com/styled-jsx/-/styled-jsx-5.1.1.tgz",

@ -9,6 +9,7 @@
"lint": "eslint src --fix --ext .ts,.tsx,.js,.jsx,.mdx,.md,.json,.mjs --max-warnings 0"
},
"dependencies": {
"html-react-parser": "^5.1.15",
"lib-flexible": "^0.3.2",
"next": "14.1.3",
"react": "^18",

@ -0,0 +1,3 @@
img {
margin: 10px 0 !important;
}

@ -0,0 +1,68 @@
/**
*
*/
'use client';
import { useState, useEffect } from 'react';
import parse from 'html-react-parser';
import Image from 'next/image';
import FakeComment from '@/components/FakeComment';
import InviteBanner from '@/components/InviteBanner';
import SongItemById from '@/components/SongItemById';
import './page.css';
async function getEssayInfo(id: string) {
const res = await fetch(`${process.env.NEXT_PUBLIC_HOST}/luoo-music/essay/${id}`);
return res.json();
}
export default function Essay() {
const [essayInfo, setEssayInfo] = useState<any>({});
const options: any = {
replace: ({ name, attribs }: { name: string; attribs: any }) => {
if (name === 'audio') {
return <SongItemById id={attribs?.['data-song-id']} />;
}
},
};
useEffect(() => {
const { searchParams } = new URL(window.location.href);
getEssayInfo((searchParams as any)?.get('id')).then((res) => {
const aInfo = res?.data || {};
setEssayInfo(aInfo);
if (aInfo?.title) {
document.title = aInfo?.title;
}
});
}, []);
return (
<main className={`w-full flex-1 flex-col pt-[50px] pb-[82px] flex`}>
<InviteBanner />
{essayInfo?.cover && (
<div className="relative w-100vw h-264.84px">
<Image className="object-cover" unoptimized fill src={essayInfo?.cover} alt="essay-cover" />
</div>
)}
<section className="relative w-full flex-1 bg-white mt-[-10px] rounded-tl-[12px] rounded-tr-[12px] z-1 py-[17px] px-[18px] pb-[79px]">
<h2 className="font-medium text-[20px] leading-[28px]">{essayInfo?.title}</h2>
{(essayInfo?.authorName || essayInfo?.updateTime) && (
<p className="w-full flex items-center text-[12px] text-[#000000b2] leading-[16.8px] mt-[6px]">
<span>{essayInfo?.authorName}</span>
<span className="ml-[15px]">{essayInfo?.updateTime}</span>
</p>
)}
{essayInfo?.content && <div>{parse(essayInfo?.content, options)}</div>}
</section>
<FakeComment count={essayInfo?.totalCommentReplyInt} />
</main>
);
}

@ -0,0 +1,33 @@
'use client';
import ImageWithBasePath from '@/components/ImageWithBasePath';
import useNav from '@/hooks/useNav';
export default function FakeComment({ count }: { count: number }) {
const nav = useNav();
const handleClick = () => {
nav.push({ path: '/download' });
};
return (
<section className="fixed bottom-0 left-[50%] translate-x-[-50%] z-[999] w-full max-w-screen-sm flex items-center border-t-[0.8px] border-[#00000019] pt-[14px] pb-[35px] px-[18px] bg-white">
<div
className="flex-1 h-[38px] rounded-full bg-[#0000000c] px-[24px] flex items-center text-[15px] text-[#000000b2]"
onClick={handleClick}
>
</div>
<div className="relative ml-[14px]" onClick={handleClick}>
<ImageWithBasePath
className="w-[24px] h-[24px]"
width={24}
height={24}
unoptimized
src="img/icon_comment.png"
alt="icon_comment"
/>
{count > 0 && <div className="absolute top-0 left-[100%] text-[8px] text-[#00000066]">{count}</div>}
</div>
</section>
);
}

@ -0,0 +1,21 @@
'use client';
import { useState, useEffect } from 'react';
import SongList from '@/components/SongList';
async function getMusic(songId: string) {
const res = await fetch(`${process.env.NEXT_PUBLIC_HOST}/luoo-music/song/${songId}`);
return res.json();
}
export default function SongItemById({ id }: { id: string }) {
const [data, setData] = useState<ISong>();
useEffect(() => {
getMusic(id).then((res) => {
setData(res?.data);
});
}, [id]);
return <div>{data ? <SongList list={[data]} showCtrl={false} showCount={false} /> : null}</div>;
}

@ -9,7 +9,15 @@ import SongItem from '@/components/SongItem';
import { JournalAudioContext } from '@/context/JournalAudioContext';
export default function SongList({ list }: { list: ISong[] }) {
export default function SongList({
list,
showCtrl = true,
showCount = true,
}: {
list: ISong[];
showCtrl?: boolean;
showCount?: boolean;
}) {
const audioPlayerRef = useRef<IAudioPlayerRef>(null);
const [curSong, setCurSong] = useState<ISong | undefined>();
const [playing, setPlaying] = useState(false);
@ -37,9 +45,9 @@ export default function SongList({ list }: { list: ISong[] }) {
return (
<JournalAudioContext.Provider value={providerVal}>
<JournalAudioCtrlBtn />
{showCtrl && <JournalAudioCtrlBtn />}
<h5 className="mb-[12px] text-[#000000f2] text-[15px] h-[18px]">{list?.length || 0}</h5>
{showCount && <h5 className="mb-[12px] text-[#000000f2] text-[15px] h-[18px]">{list?.length || 0}</h5>}
{list?.map((song: ISong) => <SongItem key={song.id} data={song} />)}
<div className="hidden">

@ -765,10 +765,10 @@
resolved "https://registry.npmmirror.com/@csstools/utilities/-/utilities-1.0.0.tgz"
integrity sha512-tAgvZQe/t2mlvpNosA4+CkMiZ2azISW5WPAcdSalZlEjQvUfghHxfQcrCiK/7/CrfAWVxyM88kGFYO82heIGDg==
"@esbuild/win32-x64@0.19.12":
"@esbuild/darwin-x64@0.19.12":
version "0.19.12"
resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz"
integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==
resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz"
integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
version "4.4.0"
@ -895,10 +895,10 @@
dependencies:
glob "10.3.10"
"@next/swc-win32-x64-msvc@14.1.3":
"@next/swc-darwin-x64@14.1.3":
version "14.1.3"
resolved "https://registry.npmmirror.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.3.tgz"
integrity sha512-uC2DaDoWH7h1P/aJ4Fok3Xiw6P0Lo4ez7NbowW2VGNXw/Xv6tOuLUcxhBYZxsSUJtpeknCi8/fvnSpyCFp4Rcg==
resolved "https://registry.npmmirror.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.3.tgz"
integrity sha512-E/9WQeXxkqw2dfcn5UcjApFgUq73jqNKaE5bysDm58hEUdUGedVrnRhblhJM7HbCZNhtVl0j+6TXsK0PuzXTCg==
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@ -945,10 +945,10 @@
estree-walker "^2.0.2"
picomatch "^2.3.1"
"@rollup/rollup-win32-x64-msvc@4.13.0":
"@rollup/rollup-darwin-x64@4.13.0":
version "4.13.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz"
integrity sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==
resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz"
integrity sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==
"@rushstack/eslint-patch@^1.3.3":
version "1.7.2"
@ -1011,7 +1011,7 @@
dependencies:
"@types/react" "*"
"@types/react@*", "@types/react@^18":
"@types/react@*", "@types/react@^18", "@types/react@0.14 || 15 || 16 || 17 || 18":
version "18.2.65"
resolved "https://registry.npmmirror.com/@types/react/-/react-18.2.65.tgz"
integrity sha512-98TsY0aW4jqx/3RqsUXwMDZSWR1Z4CUlJNue8ueS2/wcxZOsz4xmW1X8ieaWVRHcmmQM3R8xVA4XWB3dJnWwDQ==
@ -1969,6 +1969,36 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
dom-serializer@^2.0.0:
version "2.0.0"
resolved "https://mirrors.cloud.tencent.com/npm/dom-serializer/-/dom-serializer-2.0.0.tgz"
integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
dependencies:
domelementtype "^2.3.0"
domhandler "^5.0.2"
entities "^4.2.0"
domelementtype@^2.3.0:
version "2.3.0"
resolved "https://mirrors.cloud.tencent.com/npm/domelementtype/-/domelementtype-2.3.0.tgz"
integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
domhandler@^5.0.2, domhandler@^5.0.3, domhandler@5.0.3:
version "5.0.3"
resolved "https://mirrors.cloud.tencent.com/npm/domhandler/-/domhandler-5.0.3.tgz"
integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
dependencies:
domelementtype "^2.3.0"
domutils@^3.1.0:
version "3.1.0"
resolved "https://mirrors.cloud.tencent.com/npm/domutils/-/domutils-3.1.0.tgz"
integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==
dependencies:
dom-serializer "^2.0.0"
domelementtype "^2.3.0"
domhandler "^5.0.3"
dot-prop@^5.1.0:
version "5.3.0"
resolved "https://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz"
@ -2014,6 +2044,11 @@ enhanced-resolve@^5.12.0:
graceful-fs "^4.2.4"
tapable "^2.2.0"
entities@^4.2.0, entities@^4.5.0:
version "4.5.0"
resolved "https://mirrors.cloud.tencent.com/npm/entities/-/entities-4.5.0.tgz"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz"
@ -2544,6 +2579,11 @@ fs.realpath@^1.0.0:
resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@~2.3.2, fsevents@~2.3.3:
version "2.3.3"
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz"
@ -2777,6 +2817,34 @@ hasown@^2.0.0, hasown@^2.0.1:
dependencies:
function-bind "^1.1.2"
html-dom-parser@5.0.10:
version "5.0.10"
resolved "https://mirrors.cloud.tencent.com/npm/html-dom-parser/-/html-dom-parser-5.0.10.tgz"
integrity sha512-GwArYL3V3V8yU/mLKoFF7HlLBv80BZ2Ey1BzfVNRpAci0cEKhFHI/Qh8o8oyt3qlAMLlK250wsxLdYX4viedvg==
dependencies:
domhandler "5.0.3"
htmlparser2 "9.1.0"
html-react-parser@^5.1.15:
version "5.1.15"
resolved "https://mirrors.cloud.tencent.com/npm/html-react-parser/-/html-react-parser-5.1.15.tgz"
integrity sha512-LRwSTseAZtdtzYbBaN0a+pJ48x4qmwPzQC5tvwAp9IvuNf7afxtTHLpCPYCsVjRKRUqhXvfjTaKJJrhctxkHJA==
dependencies:
domhandler "5.0.3"
html-dom-parser "5.0.10"
react-property "2.0.2"
style-to-js "1.1.13"
htmlparser2@9.1.0:
version "9.1.0"
resolved "https://mirrors.cloud.tencent.com/npm/htmlparser2/-/htmlparser2-9.1.0.tgz"
integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==
dependencies:
domelementtype "^2.3.0"
domhandler "^5.0.3"
domutils "^3.1.0"
entities "^4.5.0"
human-signals@^2.1.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz"
@ -2833,6 +2901,11 @@ ini@4.1.1:
resolved "https://registry.npmmirror.com/ini/-/ini-4.1.1.tgz"
integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==
inline-style-parser@0.2.3:
version "0.2.3"
resolved "https://mirrors.cloud.tencent.com/npm/inline-style-parser/-/inline-style-parser-0.2.3.tgz"
integrity sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==
internal-slot@^1.0.5, internal-slot@^1.0.7:
version "1.0.7"
resolved "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.7.tgz"
@ -4108,7 +4181,12 @@ react-is@^16.13.1:
resolved "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react@^18, react@^18.2.0, "react@>= 16.8.0 || 17.x.x || ^18.0.0-0":
react-property@2.0.2:
version "2.0.2"
resolved "https://mirrors.cloud.tencent.com/npm/react-property/-/react-property-2.0.2.tgz"
integrity sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==
react@^18, react@^18.2.0, "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", "react@0.14 || 15 || 16 || 17 || 18":
version "18.2.0"
resolved "https://registry.npmmirror.com/react/-/react-18.2.0.tgz"
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
@ -4529,6 +4607,20 @@ strip-json-comments@^3.1.1:
resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
style-to-js@1.1.13:
version "1.1.13"
resolved "https://mirrors.cloud.tencent.com/npm/style-to-js/-/style-to-js-1.1.13.tgz"
integrity sha512-+43kvxwjrW9n5gFR40Rv98A0/Mcjew7Lt+p5Nnw1KGR9SZf/ZaKqmMwl9Enj9EnYNcJ5VzuCjejC5KZzvH2lOA==
dependencies:
style-to-object "1.0.6"
style-to-object@1.0.6:
version "1.0.6"
resolved "https://mirrors.cloud.tencent.com/npm/style-to-object/-/style-to-object-1.0.6.tgz"
integrity sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==
dependencies:
inline-style-parser "0.2.3"
styled-jsx@5.1.1:
version "5.1.1"
resolved "https://registry.npmmirror.com/styled-jsx/-/styled-jsx-5.1.1.tgz"

Loading…
Cancel
Save