Commit 66e2ed12 authored by haiyoucuv's avatar haiyoucuv

init

parent 94be1aed
{
"compilerOptions": {
"target": "es5",
"module": "ESNext",
"lib": [
"ES2020",
"DOM",
"DOM.Iterable"
],
"useDefineForClassFields": true,
"skipLibCheck": true,
"experimentalDecorators": true,
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
"jsx": "react-jsx",
"jsxImportSource": "react",
"strict": false,
"noImplicitAny": false,
"noUnusedLocals": false,
"noUnusedParameters": false,
"noFallthroughCasesInSwitch": true,
"paths": {
"@/*": [
"./src/*"
]
},
"allowSyntheticDefaultImports": true
},
"include": [
"src"
]
}
......@@ -20,6 +20,9 @@ importers:
'@grace/ui':
specifier: '*'
version: 1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@spark/circle-turntable':
specifier: ^1.0.3
version: 1.0.3(less@4.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.99.9(esbuild@0.25.3))
'@spark/dbdomain':
specifier: ^1.0.25
version: 1.0.25
......@@ -1658,6 +1661,12 @@ packages:
'@spark/api-common@2.0.22':
resolution: {integrity: sha512-lKTdfDhS38NrgEJaNagk1zgVX69hH8ZAi9vdpD3+G20EI5S+4W7bB/L+G9BpwsltJpeKAhOxnK0d31DGgD2zRg==}
'@spark/circle-turntable@1.0.3':
resolution: {integrity: sha512-oJBskZlBFmuNQRmg7/OfkZ+T903f9+XMosWklbhnRNKBEwckYXR+ml+c8m1YVhgGjixFwdxtGaIY8BHtYUxBbg==, tarball: http://npm.dui88.com:80/@spark%2fcircle-turntable/-/circle-turntable-1.0.3.tgz}
peerDependencies:
react: ^17.0.2
react-dom: 17.0.2
'@spark/common-helpers@1.0.26':
resolution: {integrity: sha512-bMBx2kLGgEyy4t8B6Ui5GsPxmdJmDSkoerQ8wypxZZv69pCLk39AFErZ3KqCnF1HR6FvyPl9JGOIqYcUhEEenw==}
......@@ -1791,6 +1800,12 @@ packages:
'@types/crypto-js@4.2.2':
resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==}
'@types/eslint-scope@3.7.7':
resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==, tarball: http://npm.dui88.com:80/@types%2feslint-scope/-/eslint-scope-3.7.7.tgz}
'@types/eslint@9.6.1':
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==, tarball: http://npm.dui88.com:80/@types%2feslint/-/eslint-9.6.1.tgz}
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
......@@ -1916,10 +1931,61 @@ packages:
peerDependencies:
vite: ^4.2.0 || ^5.0.0 || ^6.0.0
'@webassemblyjs/ast@1.14.1':
resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fast/-/ast-1.14.1.tgz}
'@webassemblyjs/floating-point-hex-parser@1.13.2':
resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==, tarball: http://npm.dui88.com:80/@webassemblyjs%2ffloating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz}
'@webassemblyjs/helper-api-error@1.13.2':
resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fhelper-api-error/-/helper-api-error-1.13.2.tgz}
'@webassemblyjs/helper-buffer@1.14.1':
resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fhelper-buffer/-/helper-buffer-1.14.1.tgz}
'@webassemblyjs/helper-numbers@1.13.2':
resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fhelper-numbers/-/helper-numbers-1.13.2.tgz}
'@webassemblyjs/helper-wasm-bytecode@1.13.2':
resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fhelper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz}
'@webassemblyjs/helper-wasm-section@1.14.1':
resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fhelper-wasm-section/-/helper-wasm-section-1.14.1.tgz}
'@webassemblyjs/ieee754@1.13.2':
resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fieee754/-/ieee754-1.13.2.tgz}
'@webassemblyjs/leb128@1.13.2':
resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fleb128/-/leb128-1.13.2.tgz}
'@webassemblyjs/utf8@1.13.2':
resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==, tarball: http://npm.dui88.com:80/@webassemblyjs%2futf8/-/utf8-1.13.2.tgz}
'@webassemblyjs/wasm-edit@1.14.1':
resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fwasm-edit/-/wasm-edit-1.14.1.tgz}
'@webassemblyjs/wasm-gen@1.14.1':
resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fwasm-gen/-/wasm-gen-1.14.1.tgz}
'@webassemblyjs/wasm-opt@1.14.1':
resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fwasm-opt/-/wasm-opt-1.14.1.tgz}
'@webassemblyjs/wasm-parser@1.14.1':
resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fwasm-parser/-/wasm-parser-1.14.1.tgz}
'@webassemblyjs/wast-printer@1.14.1':
resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==, tarball: http://npm.dui88.com:80/@webassemblyjs%2fwast-printer/-/wast-printer-1.14.1.tgz}
'@xmldom/xmldom@0.7.13':
resolution: {integrity: sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==}
engines: {node: '>=10.0.0'}
'@xtuc/ieee754@1.2.0':
resolution: {integrity: sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=, tarball: http://npm.dui88.com:80/@xtuc%2fieee754/-/ieee754-1.2.0.tgz}
'@xtuc/long@4.2.2':
resolution: {integrity: sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=, tarball: http://npm.dui88.com:80/@xtuc%2flong/-/long-4.2.2.tgz}
acorn-jsx@5.3.2:
resolution: {integrity: sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=}
peerDependencies:
......@@ -1938,9 +2004,25 @@ packages:
resolution: {integrity: sha512-yqXL+k5rr8+ZRpOAntkaaRgWgE5o8ESAj5DyRmVTCSoZxXmqemb9Dd7T4i5UzwuERdLAJUy6XzR9zFVuf0kzkw==}
engines: {node: '>= 4.0.0'}
ajv-formats@2.1.1:
resolution: {integrity: sha1-bmaUAGWet0lzu/LjMycYCgmWtSA=, tarball: http://npm.dui88.com:80/ajv-formats/-/ajv-formats-2.1.1.tgz}
peerDependencies:
ajv: ^8.0.0
peerDependenciesMeta:
ajv:
optional: true
ajv-keywords@5.1.0:
resolution: {integrity: sha1-adTThaRzPNvqtElkoRcKiPh/DhY=, tarball: http://npm.dui88.com:80/ajv-keywords/-/ajv-keywords-5.1.0.tgz}
peerDependencies:
ajv: ^8.8.2
ajv@6.12.6:
resolution: {integrity: sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=}
ajv@8.17.1:
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, tarball: http://npm.dui88.com:80/ajv/-/ajv-8.17.1.tgz}
ali-oss@6.22.0:
resolution: {integrity: sha512-X8CHo+wsjCBvDaEvuibFOi3SZxiCBZSRUURrXH0upoVwu3SuW3e+PTVK7xw+uN6EyTcAESqrngrQimhp8iBzsQ==}
engines: {node: '>=8'}
......@@ -2147,6 +2229,10 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
chrome-trace-event@1.0.4:
resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==, tarball: http://npm.dui88.com:80/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz}
engines: {node: '>=6.0'}
ci-info@2.0.0:
resolution: {integrity: sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=}
......@@ -2322,6 +2408,9 @@ packages:
dateformat@2.2.0:
resolution: {integrity: sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=}
db-react-helper@1.0.5:
resolution: {integrity: sha512-J4+DXr/Ah7t+/j96m73WzJ26VUfHzE5MxWj7kS62SV7iKCb5LTTcngWvn4jmpQnF54WAkhOjBt8sY6B+RkDPPA==, tarball: http://npm.dui88.com:80/db-react-helper/-/db-react-helper-1.0.5.tgz}
debug@2.6.9:
resolution: {integrity: sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=}
peerDependencies:
......@@ -2499,6 +2588,9 @@ packages:
es-get-iterator@1.1.3:
resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
es-module-lexer@1.7.0:
resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==, tarball: http://npm.dui88.com:80/es-module-lexer/-/es-module-lexer-1.7.0.tgz}
es-object-atoms@1.1.1:
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
engines: {node: '>= 0.4'}
......@@ -2538,6 +2630,10 @@ packages:
peerDependencies:
eslint: '>=8.40'
eslint-scope@5.1.1:
resolution: {integrity: sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=, tarball: http://npm.dui88.com:80/eslint-scope/-/eslint-scope-5.1.1.tgz}
engines: {node: '>=8.0.0'}
eslint-scope@8.2.0:
resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
......@@ -2572,6 +2668,10 @@ packages:
resolution: {integrity: sha1-eteWTWeauyi+5yzsY3WLHF0smSE=}
engines: {node: '>=4.0'}
estraverse@4.3.0:
resolution: {integrity: sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=, tarball: http://npm.dui88.com:80/estraverse/-/estraverse-4.3.0.tgz}
engines: {node: '>=4.0'}
estraverse@5.3.0:
resolution: {integrity: sha1-LupSkHAvJquP5TcDcP+GyWXSESM=}
engines: {node: '>=4.0'}
......@@ -2580,6 +2680,10 @@ packages:
resolution: {integrity: sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=}
engines: {node: '>=0.10.0'}
events@3.3.0:
resolution: {integrity: sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=, tarball: http://npm.dui88.com:80/events/-/events-3.3.0.tgz}
engines: {node: '>=0.8.x'}
exif-parser@0.1.12:
resolution: {integrity: sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=}
......@@ -2600,6 +2704,9 @@ packages:
fast-levenshtein@2.0.6:
resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=}
fast-uri@3.0.6:
resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==, tarball: http://npm.dui88.com:80/fast-uri/-/fast-uri-3.0.6.tgz}
fastq@1.19.0:
resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==}
......@@ -2752,6 +2859,9 @@ packages:
resolution: {integrity: sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=}
engines: {node: '>=10.13.0'}
glob-to-regexp@0.4.1:
resolution: {integrity: sha1-x1KXCHyFG5pXi9IX3VmpL1n+VG4=, tarball: http://npm.dui88.com:80/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz}
glob@10.4.5:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: true
......@@ -2849,7 +2959,7 @@ packages:
resolution: {integrity: sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=}
hx-account-info@1.0.3:
resolution: {integrity: sha512-MFuLR/RaQ6bgAEFF+h1WgZfN9XHeiuXXxeAxq7SnH2cAsttnTYwV+7EQ90z2f9fT/zRk3c2ya66qIgv8hdEWxA==, tarball: http://npm.dui88.com:80/hx-account-info/-/hx-account-info-1.0.3.tgz}
resolution: {integrity: sha512-MFuLR/RaQ6bgAEFF+h1WgZfN9XHeiuXXxeAxq7SnH2cAsttnTYwV+7EQ90z2f9fT/zRk3c2ya66qIgv8hdEWxA==}
hx-product_detail-link@1.0.6:
resolution: {integrity: sha512-kiTuzysTJDPgCE/6Yl1sH5UmkpXRjWLZA2iG/QZGRFqON6jweHHA4QDxlVeYtLHf0LktuBsVese45cLx+bD4pw==}
......@@ -3047,6 +3157,10 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jest-worker@27.5.1:
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, tarball: http://npm.dui88.com:80/jest-worker/-/jest-worker-27.5.1.tgz}
engines: {node: '>= 10.13.0'}
jimp@0.3.11:
resolution: {integrity: sha1-GHykYzGYpDcFET2CpVmuhQ8XJHo=}
......@@ -3089,9 +3203,15 @@ packages:
json-buffer@3.0.1:
resolution: {integrity: sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=}
json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=, tarball: http://npm.dui88.com:80/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz}
json-schema-traverse@0.4.1:
resolution: {integrity: sha1-afaofZUTq4u4/mO9sJecRI5oRmA=}
json-schema-traverse@1.0.0:
resolution: {integrity: sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=, tarball: http://npm.dui88.com:80/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz}
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=}
......@@ -3119,6 +3239,13 @@ packages:
resolution: {integrity: sha1-EZ3+kI/jjRXfpD7NE/oS7Igy+s4=}
engines: {node: '>=8'}
less-loader@11.1.4:
resolution: {integrity: sha512-6/GrYaB6QcW6Vj+/9ZPgKKs6G10YZai/l/eJ4SLwbzqNTBsAqt5hSLVF47TgsiBxV1P6eAU0GYRH3YRuQU9V3A==, tarball: http://npm.dui88.com:80/less-loader/-/less-loader-11.1.4.tgz}
engines: {node: '>= 14.15.0'}
peerDependencies:
less: ^3.5.0 || ^4.0.0
webpack: ^5.0.0
less@4.3.0:
resolution: {integrity: sha512-X9RyH9fvemArzfdP8Pi3irr7lor2Ok4rOttDXBhlwDg+wKQsXOXgHWduAJE1EsF7JJx0w0bcO6BC6tCKKYnXKA==}
engines: {node: '>=14'}
......@@ -3129,7 +3256,7 @@ packages:
engines: {node: '>= 0.8.0'}
light-sdk@2.0.36:
resolution: {integrity: sha512-r4OPZbYH9MEMUYXFd+gACyZLI41Jg+7OAwrh2jysKm3QayJqI5xOztJPrT7m1I+LHW56NVGSPpHvLd7wAXgbnw==, tarball: http://npm.dui88.com:80/light-sdk/-/light-sdk-2.0.36.tgz}
resolution: {integrity: sha512-r4OPZbYH9MEMUYXFd+gACyZLI41Jg+7OAwrh2jysKm3QayJqI5xOztJPrT7m1I+LHW56NVGSPpHvLd7wAXgbnw==}
lightningcss-darwin-arm64@1.29.1:
resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==, tarball: http://npm.dui88.com:80/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.1.tgz}
......@@ -3210,6 +3337,10 @@ packages:
resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
loader-runner@4.3.0:
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, tarball: http://npm.dui88.com:80/loader-runner/-/loader-runner-4.3.0.tgz}
engines: {node: '>=6.11.5'}
locate-path@5.0.0:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
engines: {node: '>=8'}
......@@ -3292,6 +3423,9 @@ packages:
merge-descriptors@1.0.3:
resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
merge-stream@2.0.0:
resolution: {integrity: sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=, tarball: http://npm.dui88.com:80/merge-stream/-/merge-stream-2.0.0.tgz}
merge2@1.4.1:
resolution: {integrity: sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=}
engines: {node: '>= 8'}
......@@ -3904,6 +4038,9 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha1-SSkii7xyTfrEPg77BYyve2z7YkM=}
randombytes@2.1.0:
resolution: {integrity: sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=, tarball: http://npm.dui88.com:80/randombytes/-/randombytes-2.1.0.tgz}
rc@1.2.8:
resolution: {integrity: sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=}
hasBin: true
......@@ -3974,6 +4111,10 @@ packages:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
require-from-string@2.0.2:
resolution: {integrity: sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=, tarball: http://npm.dui88.com:80/require-from-string/-/require-from-string-2.0.2.tgz}
engines: {node: '>=0.10.0'}
require-main-filename@2.0.0:
resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
......@@ -4023,6 +4164,10 @@ packages:
scheduler@0.23.2:
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
schema-utils@4.3.2:
resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==, tarball: http://npm.dui88.com:80/schema-utils/-/schema-utils-4.3.2.tgz}
engines: {node: '>= 10.13.0'}
sdk-base@2.0.1:
resolution: {integrity: sha1-ukAonovfJy7RHdnql+r5jgNtJMY=}
......@@ -4043,6 +4188,9 @@ packages:
engines: {node: '>=10'}
hasBin: true
serialize-javascript@6.0.2:
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, tarball: http://npm.dui88.com:80/serialize-javascript/-/serialize-javascript-6.0.2.tgz}
set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
......@@ -4168,6 +4316,10 @@ packages:
resolution: {integrity: sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=}
engines: {node: '>=8'}
supports-color@8.1.1:
resolution: {integrity: sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=, tarball: http://npm.dui88.com:80/supports-color/-/supports-color-8.1.1.tgz}
engines: {node: '>=10'}
supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
......@@ -4209,6 +4361,22 @@ packages:
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
deprecated: Renamed to terminal-size
terser-webpack-plugin@5.3.14:
resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==, tarball: http://npm.dui88.com:80/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz}
engines: {node: '>= 10.13.0'}
peerDependencies:
'@swc/core': '*'
esbuild: '*'
uglify-js: '*'
webpack: ^5.1.0
peerDependenciesMeta:
'@swc/core':
optional: true
esbuild:
optional: true
uglify-js:
optional: true
terser@5.39.0:
resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==}
engines: {node: '>=10'}
......@@ -4433,6 +4601,24 @@ packages:
yaml:
optional: true
watchpack@2.4.4:
resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==, tarball: http://npm.dui88.com:80/watchpack/-/watchpack-2.4.4.tgz}
engines: {node: '>=10.13.0'}
webpack-sources@3.3.3:
resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==, tarball: http://npm.dui88.com:80/webpack-sources/-/webpack-sources-3.3.3.tgz}
engines: {node: '>=10.13.0'}
webpack@5.99.9:
resolution: {integrity: sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==, tarball: http://npm.dui88.com:80/webpack/-/webpack-5.99.9.tgz}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
webpack-cli: '*'
peerDependenciesMeta:
webpack-cli:
optional: true
which-boxed-primitive@1.1.1:
resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
engines: {node: '>= 0.4'}
......@@ -4477,7 +4663,7 @@ packages:
engines: {node: '>=8'}
wrap-ansi@7.0.0:
resolution: {integrity: sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=, tarball: http://npm.dui88.com:80/wrap-ansi/-/wrap-ansi-7.0.0.tgz}
resolution: {integrity: sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=}
engines: {node: '>=10'}
wrap-ansi@8.1.0:
......@@ -6046,6 +6232,18 @@ snapshots:
'@spark/utils': 2.0.88
duiba-utils: 1.0.13
'@spark/circle-turntable@1.0.3(less@4.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.99.9(esbuild@0.25.3))':
dependencies:
'@babel/core': 7.26.9
db-react-helper: 1.0.5
less-loader: 11.1.4(less@4.3.0)(webpack@5.99.9(esbuild@0.25.3))
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
transitivePeerDependencies:
- less
- supports-color
- webpack
'@spark/common-helpers@1.0.26':
dependencies:
'@babel/runtime': 7.26.9
......@@ -6186,6 +6384,16 @@ snapshots:
'@types/crypto-js@4.2.2': {}
'@types/eslint-scope@3.7.7':
dependencies:
'@types/eslint': 9.6.1
'@types/estree': 1.0.7
'@types/eslint@9.6.1':
dependencies:
'@types/estree': 1.0.7
'@types/json-schema': 7.0.15
'@types/estree@1.0.6': {}
'@types/estree@1.0.7': {}
......@@ -6355,8 +6563,88 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@webassemblyjs/ast@1.14.1':
dependencies:
'@webassemblyjs/helper-numbers': 1.13.2
'@webassemblyjs/helper-wasm-bytecode': 1.13.2
'@webassemblyjs/floating-point-hex-parser@1.13.2': {}
'@webassemblyjs/helper-api-error@1.13.2': {}
'@webassemblyjs/helper-buffer@1.14.1': {}
'@webassemblyjs/helper-numbers@1.13.2':
dependencies:
'@webassemblyjs/floating-point-hex-parser': 1.13.2
'@webassemblyjs/helper-api-error': 1.13.2
'@xtuc/long': 4.2.2
'@webassemblyjs/helper-wasm-bytecode@1.13.2': {}
'@webassemblyjs/helper-wasm-section@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/helper-buffer': 1.14.1
'@webassemblyjs/helper-wasm-bytecode': 1.13.2
'@webassemblyjs/wasm-gen': 1.14.1
'@webassemblyjs/ieee754@1.13.2':
dependencies:
'@xtuc/ieee754': 1.2.0
'@webassemblyjs/leb128@1.13.2':
dependencies:
'@xtuc/long': 4.2.2
'@webassemblyjs/utf8@1.13.2': {}
'@webassemblyjs/wasm-edit@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/helper-buffer': 1.14.1
'@webassemblyjs/helper-wasm-bytecode': 1.13.2
'@webassemblyjs/helper-wasm-section': 1.14.1
'@webassemblyjs/wasm-gen': 1.14.1
'@webassemblyjs/wasm-opt': 1.14.1
'@webassemblyjs/wasm-parser': 1.14.1
'@webassemblyjs/wast-printer': 1.14.1
'@webassemblyjs/wasm-gen@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/helper-wasm-bytecode': 1.13.2
'@webassemblyjs/ieee754': 1.13.2
'@webassemblyjs/leb128': 1.13.2
'@webassemblyjs/utf8': 1.13.2
'@webassemblyjs/wasm-opt@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/helper-buffer': 1.14.1
'@webassemblyjs/wasm-gen': 1.14.1
'@webassemblyjs/wasm-parser': 1.14.1
'@webassemblyjs/wasm-parser@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/helper-api-error': 1.13.2
'@webassemblyjs/helper-wasm-bytecode': 1.13.2
'@webassemblyjs/ieee754': 1.13.2
'@webassemblyjs/leb128': 1.13.2
'@webassemblyjs/utf8': 1.13.2
'@webassemblyjs/wast-printer@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
'@xtuc/long': 4.2.2
'@xmldom/xmldom@0.7.13': {}
'@xtuc/ieee754@1.2.0': {}
'@xtuc/long@4.2.2': {}
acorn-jsx@5.3.2(acorn@8.14.0):
dependencies:
acorn: 8.14.0
......@@ -6369,6 +6657,15 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
ajv-formats@2.1.1(ajv@8.17.1):
optionalDependencies:
ajv: 8.17.1
ajv-keywords@5.1.0(ajv@8.17.1):
dependencies:
ajv: 8.17.1
fast-deep-equal: 3.1.3
ajv@6.12.6:
dependencies:
fast-deep-equal: 3.1.3
......@@ -6376,6 +6673,13 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
ajv@8.17.1:
dependencies:
fast-deep-equal: 3.1.3
fast-uri: 3.0.6
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
ali-oss@6.22.0:
dependencies:
address: 1.2.2
......@@ -6634,6 +6938,8 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
chrome-trace-event@1.0.4: {}
ci-info@2.0.0: {}
classnames@2.5.1: {}
......@@ -6832,6 +7138,8 @@ snapshots:
dateformat@2.2.0: {}
db-react-helper@1.0.5: {}
debug@2.6.9:
dependencies:
ms: 2.0.0
......@@ -7001,6 +7309,8 @@ snapshots:
isarray: 2.0.5
stop-iteration-iterator: 1.1.0
es-module-lexer@1.7.0: {}
es-object-atoms@1.1.1:
dependencies:
es-errors: 1.3.0
......@@ -7056,6 +7366,11 @@ snapshots:
dependencies:
eslint: 9.20.1(jiti@2.4.2)
eslint-scope@5.1.1:
dependencies:
esrecurse: 4.3.0
estraverse: 4.3.0
eslint-scope@8.2.0:
dependencies:
esrecurse: 4.3.0
......@@ -7120,10 +7435,14 @@ snapshots:
dependencies:
estraverse: 5.3.0
estraverse@4.3.0: {}
estraverse@5.3.0: {}
esutils@2.0.3: {}
events@3.3.0: {}
exif-parser@0.1.12: {}
extend-shallow@2.0.1:
......@@ -7144,6 +7463,8 @@ snapshots:
fast-levenshtein@2.0.6: {}
fast-uri@3.0.6: {}
fastq@1.19.0:
dependencies:
reusify: 1.0.4
......@@ -7318,6 +7639,8 @@ snapshots:
dependencies:
is-glob: 4.0.3
glob-to-regexp@0.4.1: {}
glob@10.4.5:
dependencies:
foreground-child: 3.3.1
......@@ -7598,6 +7921,12 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
jest-worker@27.5.1:
dependencies:
'@types/node': 22.13.4
merge-stream: 2.0.0
supports-color: 8.1.1
jimp@0.3.11:
dependencies:
'@babel/polyfill': 7.12.1
......@@ -7634,8 +7963,12 @@ snapshots:
json-buffer@3.0.1: {}
json-parse-even-better-errors@2.3.1: {}
json-schema-traverse@0.4.1: {}
json-schema-traverse@1.0.0: {}
json-stable-stringify-without-jsonify@1.0.1: {}
json5@2.2.3: {}
......@@ -7662,6 +7995,11 @@ snapshots:
dependencies:
package-json: 6.5.0
less-loader@11.1.4(less@4.3.0)(webpack@5.99.9(esbuild@0.25.3)):
dependencies:
less: 4.3.0
webpack: 5.99.9(esbuild@0.25.3)
less@4.3.0:
dependencies:
copy-anything: 2.0.6
......@@ -7745,6 +8083,8 @@ snapshots:
load-tsconfig@0.2.5: {}
loader-runner@4.3.0: {}
locate-path@5.0.0:
dependencies:
p-locate: 4.1.0
......@@ -7813,6 +8153,8 @@ snapshots:
merge-descriptors@1.0.3: {}
merge-stream@2.0.0: {}
merge2@1.4.1: {}
merge@2.1.1: {}
......@@ -8358,6 +8700,10 @@ snapshots:
queue-microtask@1.2.3: {}
randombytes@2.1.0:
dependencies:
safe-buffer: 5.1.2
rc@1.2.8:
dependencies:
deep-extend: 0.6.0
......@@ -8441,6 +8787,8 @@ snapshots:
require-directory@2.1.1: {}
require-from-string@2.0.2: {}
require-main-filename@2.0.0: {}
resolve-from@4.0.0: {}
......@@ -8507,6 +8855,13 @@ snapshots:
dependencies:
loose-envify: 1.4.0
schema-utils@4.3.2:
dependencies:
'@types/json-schema': 7.0.15
ajv: 8.17.1
ajv-formats: 2.1.1(ajv@8.17.1)
ajv-keywords: 5.1.0(ajv@8.17.1)
sdk-base@2.0.1:
dependencies:
get-ready: 1.0.0
......@@ -8521,6 +8876,10 @@ snapshots:
semver@7.7.1: {}
serialize-javascript@6.0.2:
dependencies:
randombytes: 2.1.0
set-blocking@2.0.0: {}
set-function-length@1.2.2:
......@@ -8690,6 +9049,10 @@ snapshots:
dependencies:
has-flag: 4.0.0
supports-color@8.1.1:
dependencies:
has-flag: 4.0.0
supports-preserve-symlinks-flag@1.0.0: {}
svg2ttf@6.0.3:
......@@ -8730,6 +9093,17 @@ snapshots:
term-size@4.0.0: {}
terser-webpack-plugin@5.3.14(esbuild@0.25.3)(webpack@5.99.9(esbuild@0.25.3)):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1
schema-utils: 4.3.2
serialize-javascript: 6.0.2
terser: 5.39.0
webpack: 5.99.9(esbuild@0.25.3)
optionalDependencies:
esbuild: 0.25.3
terser@5.39.0:
dependencies:
'@jridgewell/source-map': 0.3.6
......@@ -8941,6 +9315,44 @@ snapshots:
lightningcss: 1.29.1
terser: 5.39.0
watchpack@2.4.4:
dependencies:
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
webpack-sources@3.3.3: {}
webpack@5.99.9(esbuild@0.25.3):
dependencies:
'@types/eslint-scope': 3.7.7
'@types/estree': 1.0.7
'@types/json-schema': 7.0.15
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/wasm-edit': 1.14.1
'@webassemblyjs/wasm-parser': 1.14.1
acorn: 8.14.0
browserslist: 4.24.4
chrome-trace-event: 1.0.4
enhanced-resolve: 5.18.1
es-module-lexer: 1.7.0
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
json-parse-even-better-errors: 2.3.1
loader-runner: 4.3.0
mime-types: 2.1.35
neo-async: 2.6.2
schema-utils: 4.3.2
tapable: 2.2.1
terser-webpack-plugin: 5.3.14(esbuild@0.25.3)(webpack@5.99.9(esbuild@0.25.3))
watchpack: 2.4.4
webpack-sources: 3.3.3
transitivePeerDependencies:
- '@swc/core'
- esbuild
- uglify-js
which-boxed-primitive@1.1.1:
dependencies:
is-bigint: 1.1.0
......
......@@ -3,6 +3,7 @@ import { observer } from 'mobx-react';
import styles from './ResPage.module.less';
import { Button } from "@grace/ui";
import classNames from "classnames";
import TurnTable from "@/pages/ResPage/TurnTable/TurnTable.tsx";
@observer
class ResPage extends React.Component<any, any> {
......@@ -51,9 +52,15 @@ class ResPage extends React.Component<any, any> {
<div className={tabCls}>
<div className={styles.tabBtn1} onClick={() => this.changeTab(1)}/>
<div className={styles.tabBtn2} onClick={() => this.changeTab(2)}/>
</div>
<div style={{ display: tab == 1 ? "block" : "none" }}>
<TurnTable/>
</div>
<div style={{ display: tab == 2 ? "block" : "none" }}>
</div>
<Button className={styles.backBtn} onClick={this.clickBack}/>
</div>;
}
......
@import "../../../res.less";
.TurnTable {
.tt_box {
width: 614px;
height: 614px;
left: 68px;
top: 694px;
position: absolute;
.turntable_bg {
width: 614px;
height: 614px;
left: 0;
top: 0;
position: absolute;
.sparkBg("ResPage/转盘背景.png");
}
.prize_item {
width: 70px;
height: 70px;
text-align: center;
color: #6a2913;
font-size: 22px;
margin-bottom: 15px;
margin-left: -65px;
transform: rotateZ(-8deg);
.prize_name {
position: absolute;
left: 0;
top: -40px;
width: 100%;
font-size: 25.75px;
color: #e3a754;
.lineClamp1();
font-weight: bold;
}
.prize_img {
width: 80px;
height: 80px;
object-fit: contain;
}
}
}
.ttBtn {
position: absolute;
left: 278px;
top: 895px;
width: 193px;
height: 204px;
.webpBg("ResPage/点击抽奖.png");
}
.drawBtn {
position: absolute;
left: 167px;
top: 1361px;
width: 416px;
height: 142px;
.webpBg("ResPage/可抽奖.png");
}
}
import React from 'react';
import { observer } from 'mobx-react';
import './TurnTable.less';
import { CircleTurntable } from "@spark/circle-turntable";
// import turnTableStore from "@src/store/TurnTableStore";
import { Button, Toast } from "@grace/ui";
import { _asyncThrottle } from "@/utils/utils.ts";
@observer
class TurnTable extends React.Component {
turntableRef = null; // 大转盘
btnStarting = false; // 转盘是否启动
drawResultInfo = {};
async componentDidMount() {
// await store.getDrawInfo();
}
onStop = () => {
this.btnStarting = false;
// turnTableStore.updateInfo();
// modalStore.pushPop("PrizePanel", this.drawResultInfo);
}
// 开始抽奖
drawHandle = _asyncThrottle(async () => {
if (this.btnStarting) return false;
this.btnStarting = true;
// modalStore.pushPop("CheckPanel", {
// text: `您将消耗${drawConsumeOil}加油值进行抽奖哦`,
// ok: async () => {
// const { success, data } = await API.dbgjDraw();
// if (!success) {
// turnTableStore.updateInfo();
// return;
// }
//
// // 转盘转动开始抽奖
// this.turntableRef.launch();
// this.drawResultInfo = data;
//
// const index = turnTableStore.info.prizeInfo?.findIndex((item) => item.prizeId === this.drawResultInfo.prizeId);
// this.turntableRef.braking(index);
// },
// cancel: () => {
// this.btnStarting = false;
// },
// });
});
render() {
// const { drawConsumeOil, prizeInfo } = turnTableStore.info;
return <div className="TurnTable">
<CircleTurntable
className="tt_box"
ref={(ref) => (this.turntableRef = ref)}
options={new Array(6).fill({ prizeName: 123 })}
angleOffset={180 / 6 + 10} // 角度偏移量
radian={100} // 奖项半径
launchDuration={1000} // 启动时间
// 大转盘背景
renderBackground={<div className="turntable_bg"></div>}
// 大转盘指针
renderStartButton={<div className="ttBtn"/>}
// 渲染奖品信息
renderOption={(option) => {
return <div className="prize_item">
<div className="prize_name">{option.prizeName}</div>
<img className="prize_img" src={option.prizeImg} alt=""/>
</div>;
}}
didStop={this.onStop}
/>
<Button className="drawBtn" onClick={this.drawHandle}/>
</div>;
}
}
export default TurnTable;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment