111
This commit is contained in:
@@ -1,92 +0,0 @@
|
||||
{
|
||||
"cmake" :
|
||||
{
|
||||
"generator" :
|
||||
{
|
||||
"multiConfig" : false,
|
||||
"name" : "Ninja"
|
||||
},
|
||||
"paths" :
|
||||
{
|
||||
"cmake" : "D:/Android/Sdk/cmake/3.22.1/bin/cmake.exe",
|
||||
"cpack" : "D:/Android/Sdk/cmake/3.22.1/bin/cpack.exe",
|
||||
"ctest" : "D:/Android/Sdk/cmake/3.22.1/bin/ctest.exe",
|
||||
"root" : "D:/Android/Sdk/cmake/3.22.1/share/cmake-3.22"
|
||||
},
|
||||
"version" :
|
||||
{
|
||||
"isDirty" : true,
|
||||
"major" : 3,
|
||||
"minor" : 22,
|
||||
"patch" : 1,
|
||||
"string" : "3.22.1-g37088a8-dirty",
|
||||
"suffix" : "g37088a8"
|
||||
}
|
||||
},
|
||||
"objects" :
|
||||
[
|
||||
{
|
||||
"jsonFile" : "codemodel-v2-38fc593c901f4394c494.json",
|
||||
"kind" : "codemodel",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"jsonFile" : "cache-v2-73a14c1ca63f3ef94f50.json",
|
||||
"kind" : "cache",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"jsonFile" : "cmakeFiles-v1-b43cc898f77541085de5.json",
|
||||
"kind" : "cmakeFiles",
|
||||
"version" :
|
||||
{
|
||||
"major" : 1,
|
||||
"minor" : 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"reply" :
|
||||
{
|
||||
"client-agp" :
|
||||
{
|
||||
"cache-v2" :
|
||||
{
|
||||
"jsonFile" : "cache-v2-73a14c1ca63f3ef94f50.json",
|
||||
"kind" : "cache",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 0
|
||||
}
|
||||
},
|
||||
"cmakeFiles-v1" :
|
||||
{
|
||||
"jsonFile" : "cmakeFiles-v1-b43cc898f77541085de5.json",
|
||||
"kind" : "cmakeFiles",
|
||||
"version" :
|
||||
{
|
||||
"major" : 1,
|
||||
"minor" : 0
|
||||
}
|
||||
},
|
||||
"codemodel-v2" :
|
||||
{
|
||||
"jsonFile" : "codemodel-v2-38fc593c901f4394c494.json",
|
||||
"kind" : "codemodel",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,27 +2,27 @@ C/C++ Structured LogL
|
||||
J
|
||||
HD:\flutter\packages\flutter_tools\gradle\src\main\scripts\CMakeLists.txtC
|
||||
A
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ”ºæàÚ3§ €†»õÏ3
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ¿É œÛ3§ €†»õÏ3
|
||||
}
|
||||
{D:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\additional_project_files.txt •ºæàÚ3 …ÞõÞÚ3|
|
||||
{D:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\additional_project_files.txt ÀÉ œÛ3 ªÜ¨‹Û3|
|
||||
z
|
||||
xD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\android_gradle_build.json •ºæàÚ3Û šÞõÞÚ3<EFBFBD>
|
||||
xD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\android_gradle_build.json ÀÉ œÛ3Û ¼Ü¨‹Û3<EFBFBD>
|
||||
|
||||
}D:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\android_gradle_build_mini.json •ºæàÚ3ò ¸ÞõÞÚ3n
|
||||
}D:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\android_gradle_build_mini.json ÀÉ œÛ3ò Ìܨ‹Û3n
|
||||
l
|
||||
jD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\build.ninja •ºæàÚ3¯¬ ‡ÝõÞÚ3r
|
||||
jD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\build.ninja ÀÉ œÛ3¯¬ œÛ¨‹Û3r
|
||||
p
|
||||
nD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\build.ninja.txt •ºæàÚ3w
|
||||
nD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\build.ninja.txt ÀÉ œÛ3w
|
||||
u
|
||||
sD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\build_file_index.txt •ºæàÚ3
|
||||
sD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\build_file_index.txt ÀÉ œÛ3
|
||||
H Ìܨ‹Û3x
|
||||
v
|
||||
v
|
||||
tD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\compile_commands.json ÁÉ œÛ3 |
|
||||
z
|
||||
z
|
||||
xD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\compile_commands.json.bin ÁÉ œÛ3
|
||||
ƒ
|
||||
€
|
||||
€
|
||||
~D:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\metadata_generation_command.txt ÁÉ œÛ3¢ Ìܨ‹Û3u
|
||||
s
|
||||
s
|
||||
qD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\arm64-v8a\prefab_config.json ÁÉ œÛ3
|
||||
( ¿ÞõÞÚ3z
|
||||
( Ìܨ‹Û3z
|
||||
@@ -1,92 +0,0 @@
|
||||
{
|
||||
"cmake" :
|
||||
{
|
||||
"generator" :
|
||||
{
|
||||
"multiConfig" : false,
|
||||
"name" : "Ninja"
|
||||
},
|
||||
"paths" :
|
||||
{
|
||||
"cmake" : "D:/Android/Sdk/cmake/3.22.1/bin/cmake.exe",
|
||||
"cpack" : "D:/Android/Sdk/cmake/3.22.1/bin/cpack.exe",
|
||||
"ctest" : "D:/Android/Sdk/cmake/3.22.1/bin/ctest.exe",
|
||||
"root" : "D:/Android/Sdk/cmake/3.22.1/share/cmake-3.22"
|
||||
},
|
||||
"version" :
|
||||
{
|
||||
"isDirty" : true,
|
||||
"major" : 3,
|
||||
"minor" : 22,
|
||||
"patch" : 1,
|
||||
"string" : "3.22.1-g37088a8-dirty",
|
||||
"suffix" : "g37088a8"
|
||||
}
|
||||
},
|
||||
"objects" :
|
||||
[
|
||||
{
|
||||
"jsonFile" : "codemodel-v2-4ff30a6aeb3659ecdb49.json",
|
||||
"kind" : "codemodel",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"jsonFile" : "cache-v2-b19e54b3bce35aa998e2.json",
|
||||
"kind" : "cache",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"jsonFile" : "cmakeFiles-v1-4617961e6da48ad78ceb.json",
|
||||
"kind" : "cmakeFiles",
|
||||
"version" :
|
||||
{
|
||||
"major" : 1,
|
||||
"minor" : 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"reply" :
|
||||
{
|
||||
"client-agp" :
|
||||
{
|
||||
"cache-v2" :
|
||||
{
|
||||
"jsonFile" : "cache-v2-b19e54b3bce35aa998e2.json",
|
||||
"kind" : "cache",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 0
|
||||
}
|
||||
},
|
||||
"cmakeFiles-v1" :
|
||||
{
|
||||
"jsonFile" : "cmakeFiles-v1-4617961e6da48ad78ceb.json",
|
||||
"kind" : "cmakeFiles",
|
||||
"version" :
|
||||
{
|
||||
"major" : 1,
|
||||
"minor" : 0
|
||||
}
|
||||
},
|
||||
"codemodel-v2" :
|
||||
{
|
||||
"jsonFile" : "codemodel-v2-4ff30a6aeb3659ecdb49.json",
|
||||
"kind" : "codemodel",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,27 +2,27 @@ C/C++ Structured LogL
|
||||
J
|
||||
HD:\flutter\packages\flutter_tools\gradle\src\main\scripts\CMakeLists.txtC
|
||||
A
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ÚºæàÚ3§ €†»õÏ3<C38F>
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ´Ê œÛ3§ €†»õÏ3<C38F>
|
||||
|
||||
}D:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\additional_project_files.txt ÚºæàÚ3 ç‚öÞÚ3~
|
||||
}D:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\additional_project_files.txt µÊ œÛ3 áþ¨‹Û3~
|
||||
|
|
||||
zD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\android_gradle_build.json ÚºæàÚ3ß ì‚öÞÚ3„
|
||||
zD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\android_gradle_build.json µÊ œÛ3ß äþ¨‹Û3„
|
||||
<EFBFBD>
|
||||
D:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\android_gradle_build_mini.json ÚºæàÚ3ö ô‚öÞÚ3p
|
||||
D:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\android_gradle_build_mini.json µÊ œÛ3ö éþ¨‹Û3p
|
||||
n
|
||||
lD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\build.ninja ÚºæàÚ3¹¬ Ý€öÞÚ3t
|
||||
lD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\build.ninja µÊ œÛ3¹¬ ‚þ¨‹Û3t
|
||||
r
|
||||
pD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\build.ninja.txt ÚºæàÚ3y
|
||||
pD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\build.ninja.txt µÊ œÛ3y
|
||||
w
|
||||
uD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\build_file_index.txt ÚºæàÚ3
|
||||
uD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\build_file_index.txt µÊ œÛ3
|
||||
H íþ¨‹Û3z
|
||||
x
|
||||
x
|
||||
vD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\compile_commands.json µÊ œÛ3 ~
|
||||
|
|
||||
|
|
||||
zD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\compile_commands.json.bin ¶Ê œÛ3
|
||||
†
|
||||
ƒ
|
||||
ƒ
|
||||
€D:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\metadata_generation_command.txt ¶Ê œÛ3¬ êþ¨‹Û3w
|
||||
u
|
||||
u
|
||||
sD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\armeabi-v7a\prefab_config.json ¶Ê œÛ3
|
||||
( ø‚öÞÚ3|
|
||||
( ëþ¨‹Û3|
|
||||
@@ -1,92 +0,0 @@
|
||||
{
|
||||
"cmake" :
|
||||
{
|
||||
"generator" :
|
||||
{
|
||||
"multiConfig" : false,
|
||||
"name" : "Ninja"
|
||||
},
|
||||
"paths" :
|
||||
{
|
||||
"cmake" : "D:/Android/Sdk/cmake/3.22.1/bin/cmake.exe",
|
||||
"cpack" : "D:/Android/Sdk/cmake/3.22.1/bin/cpack.exe",
|
||||
"ctest" : "D:/Android/Sdk/cmake/3.22.1/bin/ctest.exe",
|
||||
"root" : "D:/Android/Sdk/cmake/3.22.1/share/cmake-3.22"
|
||||
},
|
||||
"version" :
|
||||
{
|
||||
"isDirty" : true,
|
||||
"major" : 3,
|
||||
"minor" : 22,
|
||||
"patch" : 1,
|
||||
"string" : "3.22.1-g37088a8-dirty",
|
||||
"suffix" : "g37088a8"
|
||||
}
|
||||
},
|
||||
"objects" :
|
||||
[
|
||||
{
|
||||
"jsonFile" : "codemodel-v2-b72a30b21426bc55a175.json",
|
||||
"kind" : "codemodel",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"jsonFile" : "cache-v2-5408d0a8fad6d70b672e.json",
|
||||
"kind" : "cache",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"jsonFile" : "cmakeFiles-v1-0e3daad7a23f9a1bab87.json",
|
||||
"kind" : "cmakeFiles",
|
||||
"version" :
|
||||
{
|
||||
"major" : 1,
|
||||
"minor" : 0
|
||||
}
|
||||
}
|
||||
],
|
||||
"reply" :
|
||||
{
|
||||
"client-agp" :
|
||||
{
|
||||
"cache-v2" :
|
||||
{
|
||||
"jsonFile" : "cache-v2-5408d0a8fad6d70b672e.json",
|
||||
"kind" : "cache",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 0
|
||||
}
|
||||
},
|
||||
"cmakeFiles-v1" :
|
||||
{
|
||||
"jsonFile" : "cmakeFiles-v1-0e3daad7a23f9a1bab87.json",
|
||||
"kind" : "cmakeFiles",
|
||||
"version" :
|
||||
{
|
||||
"major" : 1,
|
||||
"minor" : 0
|
||||
}
|
||||
},
|
||||
"codemodel-v2" :
|
||||
{
|
||||
"jsonFile" : "codemodel-v2-b72a30b21426bc55a175.json",
|
||||
"kind" : "codemodel",
|
||||
"version" :
|
||||
{
|
||||
"major" : 2,
|
||||
"minor" : 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,27 +2,27 @@ C/C++ Structured LogL
|
||||
J
|
||||
HD:\flutter\packages\flutter_tools\gradle\src\main\scripts\CMakeLists.txtC
|
||||
A
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint „»æàÚ3§ €†»õÏ3|
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint žË œÛ3§ €†»õÏ3|
|
||||
z
|
||||
xD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\additional_project_files.txt „»æàÚ3 Â¥öÞÚ3y
|
||||
xD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\additional_project_files.txt žË œÛ3 Ê›©‹Û3y
|
||||
w
|
||||
uD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\android_gradle_build.json „»æàÚ3Õ Å¥öÞÚ3~
|
||||
uD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\android_gradle_build.json žË œÛ3Õ Ê›©‹Û3~
|
||||
|
|
||||
zD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\android_gradle_build_mini.json „»æàÚ3ì Ê¥öÞÚ3k
|
||||
zD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\android_gradle_build_mini.json žË œÛ3ì Ê›©‹Û3k
|
||||
i
|
||||
gD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\build.ninja „»æàÚ3 ¬ Ù¤öÞÚ3o
|
||||
gD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\build.ninja žË œÛ3 ¬ éš©‹Û3o
|
||||
m
|
||||
kD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\build.ninja.txt „»æàÚ3t
|
||||
kD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\build.ninja.txt žË œÛ3t
|
||||
r
|
||||
pD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\build_file_index.txt „»æàÚ3
|
||||
pD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\build_file_index.txt žË œÛ3
|
||||
H ß›©‹Û3u
|
||||
s
|
||||
s
|
||||
qD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\compile_commands.json žË œÛ3 y
|
||||
w
|
||||
w
|
||||
uD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\compile_commands.json.bin žË œÛ3
|
||||
|
||||
}
|
||||
}
|
||||
{D:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\metadata_generation_command.txt žË œÛ3“ Ù›©‹Û3r
|
||||
p
|
||||
p
|
||||
nD:\workspace\project\com-rattan-spccloud\flutter_monisuo\build\.cxx\release\f33272t1\x86_64\prefab_config.json ŸË œÛ3
|
||||
( Í¥öÞÚ3w
|
||||
( Ü›©‹Û3w
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
{"version":2,"files":[{"path":"D:\\workspace\\project\\com-rattan-spccloud\\flutter_monisuo\\.dart_tool\\package_config.json","hash":"8492f1af9d61d9cb356385ac5e730b1a"},{"path":"D:\\workspace\\project\\com-rattan-spccloud\\flutter_monisuo\\build\\9a5d09bec60a9bd952a3f584c1b9bd3b\\dart_build_result.json","hash":"abad6946806a19160b529028b16df544"},{"path":"D:\\flutter\\packages\\flutter_tools\\lib\\src\\build_system\\targets\\native_assets.dart","hash":"f78c405bcece3968277b212042da9ed6"}]}
|
||||
{"version":2,"files":[{"path":"D:\\workspace\\project\\com-rattan-spccloud\\flutter_monisuo\\.dart_tool\\package_config.json","hash":"8492f1af9d61d9cb356385ac5e730b1a"},{"path":"D:\\workspace\\project\\com-rattan-spccloud\\flutter_monisuo\\build\\9a5d09bec60a9bd952a3f584c1b9bd3b\\dart_build_result.json","hash":"340979e72a4932089cf59f962bed749f"},{"path":"D:\\flutter\\packages\\flutter_tools\\lib\\src\\build_system\\targets\\native_assets.dart","hash":"f78c405bcece3968277b212042da9ed6"}]}
|
||||
@@ -1 +1 @@
|
||||
{"build_start":"2026-04-20T03:04:58.279232","build_end":"2026-04-20T03:04:58.279232","dependencies":[],"code_assets":[],"data_assets":[]}
|
||||
{"build_start":"2026-04-22T00:15:31.805657","build_end":"2026-04-22T00:15:31.805657","dependencies":[],"code_assets":[],"data_assets":[]}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":2,"files":[{"path":"D:\\flutter\\bin\\cache\\dart-sdk\\version","hash":"800169ad7335b889bf428af171476466"},{"path":"D:\\build_temp\\flutter_monisuo\\pubspec.yaml","hash":"e39ca35666e4265834ad07e86c910235"},{"path":"D:\\build_temp\\flutter_monisuo\\.dart_tool\\package_config.json","hash":"8492f1af9d61d9cb356385ac5e730b1a"},{"path":"d:\\build_temp\\flutter_monisuo\\.dart_tool\\package_config.json","hash":"8492f1af9d61d9cb356385ac5e730b1a"},{"path":"D:\\flutter\\packages\\flutter_tools\\lib\\src\\build_system\\targets\\native_assets.dart","hash":"f78c405bcece3968277b212042da9ed6"},{"path":"D:\\build_temp\\flutter_monisuo\\build\\a710e02815af03bf23068e9563234b44\\dart_build_result.json","hash":"aa09beae3d09be799be88eec9819065d"}]}
|
||||
@@ -1 +0,0 @@
|
||||
{"inputs":[],"outputs":[]}
|
||||
@@ -1 +0,0 @@
|
||||
D:\\build_temp\\flutter_monisuo\\build\\a710e02815af03bf23068e9563234b44\\dart_build_result.json:
|
||||
@@ -1 +0,0 @@
|
||||
{"inputs":["D:\\flutter\\packages\\flutter_tools\\lib\\src\\build_system\\targets\\native_assets.dart","D:\\build_temp\\flutter_monisuo\\.dart_tool\\package_config.json"],"outputs":["D:\\build_temp\\flutter_monisuo\\build\\a710e02815af03bf23068e9563234b44\\dart_build_result.json","D:\\build_temp\\flutter_monisuo\\build\\a710e02815af03bf23068e9563234b44\\dart_build_result.json"]}
|
||||
@@ -1 +0,0 @@
|
||||
{"build_start":"2026-04-20T02:47:22.829545","build_end":"2026-04-20T02:47:22.829545","dependencies":[],"code_assets":[],"data_assets":[]}
|
||||
@@ -1 +0,0 @@
|
||||
{"inputs":[],"outputs":[]}
|
||||
@@ -1 +0,0 @@
|
||||
{"inputs":[],"outputs":[]}
|
||||
@@ -1 +0,0 @@
|
||||
["D:\\build_temp\\flutter_monisuo\\build\\a710e02815af03bf23068e9563234b44\\dart_build_result.json"]
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#Tue Apr 21 02:14:48 CST 2026
|
||||
#Wed Apr 22 12:54:14 CST 2026
|
||||
base.0=D\:\\workspace\\project\\com-rattan-spccloud\\flutter_monisuo\\build\\app\\intermediates\\dex\\release\\minifyReleaseWithR8\\classes.dex
|
||||
renamed.0=classes.dex
|
||||
path.0=classes.dex
|
||||
|
||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#Tue Apr 21 01:09:12 CST 2026
|
||||
#Wed Apr 22 03:01:01 CST 2026
|
||||
com.example.flutter_monisuo.app-appcompat-1.1.0-26\:/drawable-xhdpi-v4/abc_text_select_handle_left_mtrl_dark.png=D\:\\workspace\\project\\com-rattan-spccloud\\flutter_monisuo\\build\\app\\intermediates\\merged_res\\release\\mergeReleaseResources\\drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat
|
||||
com.example.flutter_monisuo.app-appcompat-1.1.0-26\:/color/abc_primary_text_material_light.xml=D\:\\workspace\\project\\com-rattan-spccloud\\flutter_monisuo\\build\\app\\intermediates\\merged_res\\release\\mergeReleaseResources\\color_abc_primary_text_material_light.xml.flat
|
||||
com.example.flutter_monisuo.app-appcompat-1.1.0-26\:/drawable-hdpi-v4/abc_text_select_handle_left_mtrl_dark.png=D\:\\workspace\\project\\com-rattan-spccloud\\flutter_monisuo\\build\\app\\intermediates\\merged_res\\release\\mergeReleaseResources\\drawable-hdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#Tue Apr 21 01:09:20 CST 2026
|
||||
#Wed Apr 22 03:01:14 CST 2026
|
||||
com.example.flutter_monisuo.app-main-0\:/mipmap-xhdpi/ic_launcher.png=D\:\\workspace\\project\\com-rattan-spccloud\\flutter_monisuo\\build\\app\\intermediates\\packaged_res\\release\\packageReleaseResources\\mipmap-xhdpi-v4\\ic_launcher.png
|
||||
com.example.flutter_monisuo.app-main-0\:/mipmap-xxhdpi/ic_launcher.png=D\:\\workspace\\project\\com-rattan-spccloud\\flutter_monisuo\\build\\app\\intermediates\\packaged_res\\release\\packageReleaseResources\\mipmap-xxhdpi-v4\\ic_launcher.png
|
||||
com.example.flutter_monisuo.app-main-0\:/drawable-v21/launch_background.xml=D\:\\workspace\\project\\com-rattan-spccloud\\flutter_monisuo\\build\\app\\intermediates\\packaged_res\\release\\packageReleaseResources\\drawable-v21\\launch_background.xml
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
{"options":{"hasObfuscationDictionary":false,"hasClassObfuscationDictionary":false,"hasPackageObfuscationDictionary":false,"keepAttributes":{"isAnnotationDefaultKept":true,"isEnclosingMethodKept":true,"isExceptionsKept":false,"isInnerClassesKept":true,"isLocalVariableTableKept":false,"isLocalVariableTypeTableKept":false,"isMethodParametersKept":false,"isPermittedSubclassesKept":false,"isRuntimeInvisibleAnnotationsKept":true,"isRuntimeInvisibleParameterAnnotationsKept":true,"isRuntimeInvisibleTypeAnnotationsKept":true,"isRuntimeVisibleAnnotationsKept":true,"isRuntimeVisibleParameterAnnotationsKept":true,"isRuntimeVisibleTypeAnnotationsKept":true,"isSignatureKept":true,"isSourceDebugExtensionKept":false,"isSourceDirKept":false,"isSourceFileKept":false,"isStackMapTableKept":false},"isAccessModificationEnabled":true,"isFlattenPackageHierarchyEnabled":false,"isObfuscationEnabled":true,"isOptimizationsEnabled":true,"isProGuardCompatibilityModeEnabled":false,"isProtoLiteOptimizationEnabled":false,"isRepackageClassesEnabled":false,"isShrinkingEnabled":true,"apiModeling":{},"minApiLevel":"24","isDebugModeEnabled":false},"baselineProfileRewriting":{},"compilation":{"buildTimeNs":26972784900,"numberOfThreads":8},"dexFiles":[{"checksum":"8e655b4e8f95ac7bcca24e9527390c40a05343f0ea12cda9eb1804d248418ddf","startup":false}],"stats":{"noObfuscationPercentage":10.58,"noOptimizationPercentage":11.67,"noShrinkingPercentage":10.68},"featureSplits":{"featureSplits":[{"dexFiles":[]}],"isolatedSplits":false},"resourceOptimization":{"isOptimizedShrinkingEnabled":false},"version":"8.11.18"}
|
||||
{"options":{"hasObfuscationDictionary":false,"hasClassObfuscationDictionary":false,"hasPackageObfuscationDictionary":false,"keepAttributes":{"isAnnotationDefaultKept":true,"isEnclosingMethodKept":true,"isExceptionsKept":false,"isInnerClassesKept":true,"isLocalVariableTableKept":false,"isLocalVariableTypeTableKept":false,"isMethodParametersKept":false,"isPermittedSubclassesKept":false,"isRuntimeInvisibleAnnotationsKept":true,"isRuntimeInvisibleParameterAnnotationsKept":true,"isRuntimeInvisibleTypeAnnotationsKept":true,"isRuntimeVisibleAnnotationsKept":true,"isRuntimeVisibleParameterAnnotationsKept":true,"isRuntimeVisibleTypeAnnotationsKept":true,"isSignatureKept":true,"isSourceDebugExtensionKept":false,"isSourceDirKept":false,"isSourceFileKept":false,"isStackMapTableKept":false},"isAccessModificationEnabled":true,"isFlattenPackageHierarchyEnabled":false,"isObfuscationEnabled":true,"isOptimizationsEnabled":true,"isProGuardCompatibilityModeEnabled":false,"isProtoLiteOptimizationEnabled":false,"isRepackageClassesEnabled":false,"isShrinkingEnabled":true,"apiModeling":{},"minApiLevel":"24","isDebugModeEnabled":false},"baselineProfileRewriting":{},"compilation":{"buildTimeNs":94495792601,"numberOfThreads":8},"dexFiles":[{"checksum":"8e655b4e8f95ac7bcca24e9527390c40a05343f0ea12cda9eb1804d248418ddf","startup":false}],"stats":{"noObfuscationPercentage":10.58,"noOptimizationPercentage":11.67,"noShrinkingPercentage":10.68},"featureSplits":{"featureSplits":[{"dexFiles":[]}],"isolatedSplits":false},"resourceOptimization":{"isOptimizedShrinkingEnabled":false},"version":"8.11.18"}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
2ac451d5eb7811c9fe091a50c5640a8b368da372
|
||||
8d625816be2cd0ba8f6baa0ee550f79f40205db3
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1114,7 +1114,7 @@ library {
|
||||
}
|
||||
library {
|
||||
digests {
|
||||
sha256: "\352%\345\235\262*bF\367\265\257\215q\227\223`H\250`\217[C\250\250\311O\020E\324\223\372\006"
|
||||
sha256: "7i\203e\\\bb\216\212\310\353\024\030\371\002\004&m\337\362\251\345\353\023\315\305\261i-P\000\a"
|
||||
}
|
||||
}
|
||||
library_dependencies {
|
||||
|
||||
@@ -64,6 +64,9 @@ class ApiEndpoints {
|
||||
/// 撤销限价委托
|
||||
static const String tradeCancel = '/api/trade/cancel';
|
||||
|
||||
/// 今日买入配额
|
||||
static const String buyQuota = '/api/trade/buy-quota';
|
||||
|
||||
// ==================== 資產模塊 ====================
|
||||
|
||||
/// 獲取資產總覽
|
||||
@@ -92,6 +95,9 @@ class ApiEndpoints {
|
||||
/// 申請提現
|
||||
static const String withdraw = '/api/fund/withdraw';
|
||||
|
||||
/// 提现前检查(45天规则)
|
||||
static const String withdrawCheck = '/api/fund/withdraw/check';
|
||||
|
||||
/// 取消訂單
|
||||
static const String cancelOrder = '/api/fund/cancel';
|
||||
|
||||
|
||||
@@ -122,20 +122,26 @@ class AccountTrade {
|
||||
class AccountFlow {
|
||||
final int id;
|
||||
final int userId;
|
||||
final String flowNo;
|
||||
final String flowType;
|
||||
final String amount;
|
||||
final String balanceBefore;
|
||||
final String balanceAfter;
|
||||
final String coinCode;
|
||||
final String relatedOrderNo;
|
||||
final String remark;
|
||||
final DateTime? createTime;
|
||||
|
||||
AccountFlow({
|
||||
required this.id,
|
||||
required this.userId,
|
||||
required this.flowNo,
|
||||
required this.flowType,
|
||||
required this.amount,
|
||||
required this.balanceBefore,
|
||||
required this.balanceAfter,
|
||||
required this.coinCode,
|
||||
required this.relatedOrderNo,
|
||||
required this.remark,
|
||||
this.createTime,
|
||||
});
|
||||
@@ -144,10 +150,13 @@ class AccountFlow {
|
||||
return AccountFlow(
|
||||
id: json['id'] as int? ?? 0,
|
||||
userId: json['userId'] as int? ?? 0,
|
||||
flowNo: json['flowNo']?.toString() ?? '',
|
||||
flowType: json['flowType']?.toString() ?? '',
|
||||
amount: json['amount']?.toString() ?? '0.00',
|
||||
balanceBefore: json['balanceBefore']?.toString() ?? '0.00',
|
||||
balanceAfter: json['balanceAfter']?.toString() ?? '0.00',
|
||||
coinCode: json['coinCode']?.toString() ?? 'USDT',
|
||||
relatedOrderNo: json['relatedOrderNo']?.toString() ?? '',
|
||||
remark: json['remark']?.toString() ?? '',
|
||||
createTime: json['createTime'] != null
|
||||
? DateTime.tryParse(json['createTime'])
|
||||
|
||||
@@ -107,8 +107,7 @@ class Coin {
|
||||
/// 格式化價格顯示
|
||||
String get formattedPrice {
|
||||
if (price >= 1000) return price.toStringAsFixed(2);
|
||||
if (price >= 1) return price.toStringAsFixed(4);
|
||||
return price.toStringAsFixed(6);
|
||||
return price.toStringAsFixed(4);
|
||||
}
|
||||
|
||||
/// 格式化漲跌幅
|
||||
|
||||
@@ -47,6 +47,13 @@ class FundService {
|
||||
);
|
||||
}
|
||||
|
||||
/// 提现前检查(45天规则)
|
||||
Future<ApiResponse<Map<String, dynamic>>> withdrawCheck() async {
|
||||
return _client.get<Map<String, dynamic>>(
|
||||
ApiEndpoints.withdrawCheck,
|
||||
);
|
||||
}
|
||||
|
||||
/// 申請提現
|
||||
Future<ApiResponse<Map<String, dynamic>>> withdraw({
|
||||
required String amount,
|
||||
|
||||
@@ -14,16 +14,21 @@ class TradeService {
|
||||
required String coinCode,
|
||||
required String price,
|
||||
required String quantity,
|
||||
int orderType = 1, // 1=市价单, 2=限价单
|
||||
int orderType = 1,
|
||||
String? tradeCode,
|
||||
}) async {
|
||||
final data = <String, dynamic>{
|
||||
'coinCode': coinCode,
|
||||
'price': price,
|
||||
'quantity': quantity,
|
||||
'orderType': orderType,
|
||||
};
|
||||
if (tradeCode != null && tradeCode.isNotEmpty) {
|
||||
data['tradeCode'] = tradeCode;
|
||||
}
|
||||
return _client.post<Map<String, dynamic>>(
|
||||
ApiEndpoints.buy,
|
||||
data: {
|
||||
'coinCode': coinCode,
|
||||
'price': price,
|
||||
'quantity': quantity,
|
||||
'orderType': orderType,
|
||||
},
|
||||
data: data,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -88,4 +93,9 @@ class TradeService {
|
||||
data: {'orderNo': orderNo},
|
||||
);
|
||||
}
|
||||
|
||||
/// 獲取今日買入配額
|
||||
Future<ApiResponse<Map<String, dynamic>>> getBuyQuota() async {
|
||||
return _client.get<Map<String, dynamic>>(ApiEndpoints.buyQuota);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -284,6 +284,17 @@ class AssetProvider extends ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
/// 提现前检查(45天规则)
|
||||
Future<Map<String, dynamic>?> withdrawCheck() async {
|
||||
try {
|
||||
final response = await _fundService.withdrawCheck();
|
||||
if (response.success && response.data != null) {
|
||||
return response.data;
|
||||
}
|
||||
} catch (_) {}
|
||||
return null;
|
||||
}
|
||||
|
||||
/// 刷新所有資產數據(带去重)
|
||||
Future<void> refreshAll({bool force = false}) async {
|
||||
if (_refreshAllCompleter != null && !_refreshAllCompleter!.isCompleted) {
|
||||
|
||||
@@ -56,8 +56,8 @@ class _DepositPageState extends State<DepositPage> {
|
||||
ToastUtils.showError('單筆最低充值 1000 USDT');
|
||||
return;
|
||||
}
|
||||
if (n % 1000 != 0) {
|
||||
ToastUtils.showError('充值金額必須為1000的整數倍');
|
||||
if (n > 8000) {
|
||||
ToastUtils.showError('單筆最高充值 8000 USDT');
|
||||
return;
|
||||
}
|
||||
if (_isSubmitting) return;
|
||||
@@ -273,7 +273,7 @@ class _DepositPageState extends State<DepositPage> {
|
||||
size: 13, color: colorScheme.onSurfaceVariant),
|
||||
const SizedBox(width: 6),
|
||||
Text(
|
||||
'單筆最低充值 1000 USDT',
|
||||
'每人僅限充值一次,最低 1000 最高 8000 USDT',
|
||||
style: AppTextStyles.bodySmall(context).copyWith(
|
||||
color: colorScheme.onSurfaceVariant,
|
||||
),
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:lucide_icons_flutter/lucide_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import '../../../core/network/api_response.dart';
|
||||
import '../../../core/theme/app_theme.dart';
|
||||
import '../../../core/theme/app_spacing.dart';
|
||||
import '../../../core/utils/toast_utils.dart';
|
||||
@@ -82,6 +83,28 @@ class _WithdrawPageState extends State<WithdrawPage> {
|
||||
}
|
||||
if (_isSubmitting) return;
|
||||
|
||||
// 45天规则检查
|
||||
try {
|
||||
final checkResult = await context.read<AssetProvider>().withdrawCheck();
|
||||
if (checkResult != null && checkResult['isWithin45Days'] == true) {
|
||||
if (!mounted) return;
|
||||
final days = checkResult['depositDays'] ?? 0;
|
||||
final confirmed = await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (ctx) => AlertDialog(
|
||||
title: const Text('本金未滿45天提示'),
|
||||
content: Text('您的充值本金尚未滿45天(已$days天)。'
|
||||
'本金部分提現可能受到限制,是否繼續?'),
|
||||
actions: [
|
||||
TextButton(onPressed: () => Navigator.pop(ctx, false), child: const Text('取消')),
|
||||
TextButton(onPressed: () => Navigator.pop(ctx, true), child: const Text('確認提現')),
|
||||
],
|
||||
),
|
||||
);
|
||||
if (confirmed != true) return;
|
||||
}
|
||||
} catch (_) {}
|
||||
|
||||
setState(() => _isSubmitting = true);
|
||||
try {
|
||||
final response = await context.read<AssetProvider>().withdraw(
|
||||
|
||||
@@ -6,11 +6,12 @@ import '../../../core/theme/app_color_scheme.dart';
|
||||
import '../../../core/theme/app_theme_extension.dart';
|
||||
import '../../../core/theme/app_spacing.dart';
|
||||
import '../../../data/models/account_models.dart';
|
||||
import '../../../core/network/api_response.dart';
|
||||
import '../../../data/services/asset_service.dart';
|
||||
import '../../../data/services/bonus_service.dart';
|
||||
import '../../../providers/asset_provider.dart';
|
||||
import '../../components/coin_icon.dart';
|
||||
|
||||
/// 賬單頁面 — 代幣盈虧賬單 + 新人福利賬單 + 推廣福利賬單
|
||||
/// 賬單頁面 — 充提記錄 + 新人福利 + 推廣福利
|
||||
class BillsPage extends StatefulWidget {
|
||||
const BillsPage({super.key});
|
||||
|
||||
@@ -22,6 +23,7 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
late TabController _tabController;
|
||||
List<AccountTrade> _holdings = [];
|
||||
List<Map<String, dynamic>> _welfareRecords = [];
|
||||
List<AccountFlow> _flowRecords = [];
|
||||
bool _isLoading = true;
|
||||
|
||||
@override
|
||||
@@ -42,10 +44,16 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
try {
|
||||
final provider = context.read<AssetProvider>();
|
||||
final bonusService = context.read<BonusService>();
|
||||
final assetService = context.read<AssetService>();
|
||||
|
||||
// 並行加載持倉和福利記錄
|
||||
await provider.loadTradeAccount(force: true);
|
||||
final welfareResponse = await bonusService.getWelfareStatus();
|
||||
final results = await Future.wait([
|
||||
provider.loadTradeAccount(force: true),
|
||||
bonusService.getWelfareStatus(),
|
||||
assetService.getFlow(pageNum: 1, pageSize: 50),
|
||||
]);
|
||||
|
||||
final welfareResponse = results[1] as ApiResponse;
|
||||
final flowResponse = results[2] as ApiResponse<Map<String, dynamic>>;
|
||||
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
@@ -53,6 +61,12 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
if (welfareResponse.success && welfareResponse.data != null) {
|
||||
_welfareRecords = _parseWelfareRecords(welfareResponse.data!);
|
||||
}
|
||||
if (flowResponse.success && flowResponse.data != null) {
|
||||
final list = flowResponse.data!['list'] as List<dynamic>? ?? [];
|
||||
_flowRecords = list
|
||||
.map((e) => AccountFlow.fromJson(e as Map<String, dynamic>))
|
||||
.toList();
|
||||
}
|
||||
_isLoading = false;
|
||||
});
|
||||
}
|
||||
@@ -69,12 +83,10 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
List<Map<String, dynamic>> _parseWelfareRecords(Map<String, dynamic> data) {
|
||||
final records = <Map<String, dynamic>>[];
|
||||
|
||||
// 新人福利
|
||||
final newUser = data['newUserBonus'] as Map<String, dynamic>?;
|
||||
if (newUser != null) {
|
||||
final claimed = newUser['claimed'] as bool? ?? false;
|
||||
final eligible = newUser['eligible'] as bool? ?? false;
|
||||
// 狀態: 1=已領取, 0=可領取(待領取), 2=不可用(未解鎖)
|
||||
final int status;
|
||||
if (claimed) {
|
||||
status = 1;
|
||||
@@ -92,7 +104,6 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
});
|
||||
}
|
||||
|
||||
// 推廣福利列表
|
||||
final referralRewards = data['referralRewards'] as List<dynamic>? ?? [];
|
||||
for (var r in referralRewards) {
|
||||
final map = r as Map<String, dynamic>;
|
||||
@@ -100,7 +111,6 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
final milestones = map['milestones'] as List<dynamic>? ?? [];
|
||||
final claimableCount = map['claimableCount'] as int? ?? 0;
|
||||
|
||||
// 每個 milestone 生成一條記錄
|
||||
for (var m in milestones) {
|
||||
final ms = m as Map<String, dynamic>;
|
||||
final earned = ms['earned'] as bool? ?? false;
|
||||
@@ -109,11 +119,11 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
|
||||
final int status;
|
||||
if (earned) {
|
||||
status = 1; // 已領取
|
||||
status = 1;
|
||||
} else if (claimable) {
|
||||
status = 0; // 可領取
|
||||
status = 0;
|
||||
} else {
|
||||
status = 2; // 未達標
|
||||
status = 2;
|
||||
}
|
||||
records.add({
|
||||
'type': 'referral',
|
||||
@@ -124,7 +134,6 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
});
|
||||
}
|
||||
|
||||
// 如果沒有 milestone 但有 claimableCount,也生成記錄
|
||||
if (milestones.isEmpty && claimableCount > 0) {
|
||||
records.add({
|
||||
'type': 'referral',
|
||||
@@ -158,13 +167,15 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
centerTitle: true,
|
||||
bottom: TabBar(
|
||||
controller: _tabController,
|
||||
isScrollable: true,
|
||||
labelColor: colorScheme.primary,
|
||||
unselectedLabelColor: colorScheme.onSurfaceVariant,
|
||||
indicatorColor: colorScheme.primary,
|
||||
labelStyle: AppTextStyles.headlineMedium(context).copyWith(fontWeight: FontWeight.w600),
|
||||
unselectedLabelStyle: AppTextStyles.headlineMedium(context),
|
||||
tabAlignment: TabAlignment.start,
|
||||
tabs: const [
|
||||
Tab(text: '代幣盈虧'),
|
||||
Tab(text: '充提記錄'),
|
||||
Tab(text: '新人福利'),
|
||||
Tab(text: '推廣福利'),
|
||||
],
|
||||
@@ -175,7 +186,7 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
: TabBarView(
|
||||
controller: _tabController,
|
||||
children: [
|
||||
_buildCoinProfitTab(),
|
||||
_buildFlowTab(),
|
||||
_buildWelfareTab('new_user'),
|
||||
_buildWelfareTab('referral'),
|
||||
],
|
||||
@@ -184,161 +195,261 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 代幣盈虧賬單
|
||||
// 充提記錄
|
||||
// ============================================
|
||||
Widget _buildCoinProfitTab() {
|
||||
final colorScheme = Theme.of(context).colorScheme;
|
||||
|
||||
if (_holdings.isEmpty) {
|
||||
return _buildEmptyState(LucideIcons.wallet, '暫無持倉記錄');
|
||||
Widget _buildFlowTab() {
|
||||
if (_flowRecords.isEmpty) {
|
||||
return _buildEmptyState(LucideIcons.receipt, '暫無流水記錄');
|
||||
}
|
||||
|
||||
// 彙總統計
|
||||
double totalCost = 0;
|
||||
double totalValue = 0;
|
||||
double totalProfit = 0;
|
||||
for (var h in _holdings) {
|
||||
totalCost += double.tryParse(h.totalCost) ?? 0;
|
||||
totalValue += double.tryParse(h.currentValue) ?? 0;
|
||||
totalProfit += double.tryParse(h.profit) ?? 0;
|
||||
}
|
||||
final profitRate = totalCost > 0 ? (totalProfit / totalCost * 100) : 0.0;
|
||||
final isProfit = totalProfit >= 0;
|
||||
final profitColor = isProfit ? context.appColors.up : context.appColors.down;
|
||||
|
||||
return RefreshIndicator(
|
||||
onRefresh: _loadData,
|
||||
child: ListView(
|
||||
child: ListView.builder(
|
||||
padding: const EdgeInsets.all(AppSpacing.md),
|
||||
children: [
|
||||
// 彙總卡片
|
||||
Container(
|
||||
padding: const EdgeInsets.all(AppSpacing.lg),
|
||||
decoration: BoxDecoration(
|
||||
color: _isDark ? AppColorScheme.darkSurfaceContainer : AppColorScheme.lightSurfaceLowest,
|
||||
borderRadius: BorderRadius.circular(AppRadius.xl),
|
||||
border: Border.all(
|
||||
color: _isDark
|
||||
? AppColorScheme.darkOutlineVariant.withValues(alpha: 0.15)
|
||||
: AppColorScheme.lightOutlineVariant.withValues(alpha: 0.5),
|
||||
),
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
Text('總盈虧 (USDT)', style: AppTextStyles.bodyMedium(context).copyWith(
|
||||
color: colorScheme.onSurfaceVariant,
|
||||
)),
|
||||
const SizedBox(height: AppSpacing.xs),
|
||||
Text(
|
||||
'${isProfit ? '+' : ''}${totalProfit.toStringAsFixed(2)}',
|
||||
style: AppTextStyles.displaySmall(context).copyWith(
|
||||
fontWeight: FontWeight.bold,
|
||||
color: profitColor,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: AppSpacing.sm),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
_buildSummaryItem('總成本', totalCost.toStringAsFixed(2)),
|
||||
Container(width: 1, height: 16, color: colorScheme.outlineVariant.withValues(alpha: 0.3)),
|
||||
_buildSummaryItem('總市值', totalValue.toStringAsFixed(2)),
|
||||
Container(width: 1, height: 16, color: colorScheme.outlineVariant.withValues(alpha: 0.3)),
|
||||
_buildSummaryItem('收益率', '${profitRate >= 0 ? '+' : ''}${profitRate.toStringAsFixed(2)}%'),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
itemCount: _flowRecords.length,
|
||||
itemBuilder: (context, index) => _buildFlowCard(_flowRecords[index]),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
IconData _flowIcon(String flowType) {
|
||||
switch (flowType) {
|
||||
case '1':
|
||||
return LucideIcons.arrowDownToLine;
|
||||
case '2':
|
||||
return LucideIcons.arrowUpFromLine;
|
||||
case '3':
|
||||
case '4':
|
||||
return LucideIcons.repeat;
|
||||
case '5':
|
||||
return LucideIcons.shoppingCart;
|
||||
case '6':
|
||||
return LucideIcons.tag;
|
||||
case '7':
|
||||
return LucideIcons.gift;
|
||||
default:
|
||||
return LucideIcons.circleDot;
|
||||
}
|
||||
}
|
||||
|
||||
Color _flowIconColor(String flowType) {
|
||||
switch (flowType) {
|
||||
case '1':
|
||||
case '3':
|
||||
case '6':
|
||||
return context.appColors.up;
|
||||
case '2':
|
||||
case '4':
|
||||
case '5':
|
||||
return context.appColors.down;
|
||||
case '7':
|
||||
return Theme.of(context).colorScheme.primary;
|
||||
default:
|
||||
return Theme.of(context).colorScheme.onSurfaceVariant;
|
||||
}
|
||||
}
|
||||
|
||||
Color _flowAmountColor(bool isPositive) {
|
||||
return isPositive ? context.appColors.up : context.appColors.down;
|
||||
}
|
||||
|
||||
Widget _buildFlowCard(AccountFlow flow) {
|
||||
final colorScheme = Theme.of(context).colorScheme;
|
||||
final amount = double.tryParse(flow.amount) ?? 0;
|
||||
final isPositive = amount >= 0;
|
||||
final iconColor = _flowIconColor(flow.flowType);
|
||||
final amountColor = _flowAmountColor(isPositive);
|
||||
final balanceBefore = double.tryParse(flow.balanceBefore) ?? 0;
|
||||
final balanceAfter = double.tryParse(flow.balanceAfter) ?? 0;
|
||||
|
||||
return GestureDetector(
|
||||
onTap: () => _showFlowDetail(flow),
|
||||
child: Container(
|
||||
margin: const EdgeInsets.only(bottom: AppSpacing.sm),
|
||||
padding: const EdgeInsets.all(AppSpacing.md),
|
||||
decoration: BoxDecoration(
|
||||
color: _isDark ? AppColorScheme.darkSurfaceContainer : AppColorScheme.lightSurfaceLowest,
|
||||
borderRadius: BorderRadius.circular(AppRadius.lg),
|
||||
border: Border.all(
|
||||
color: _isDark
|
||||
? AppColorScheme.darkOutlineVariant.withValues(alpha: 0.15)
|
||||
: AppColorScheme.lightOutlineVariant.withValues(alpha: 0.5),
|
||||
),
|
||||
const SizedBox(height: AppSpacing.md),
|
||||
|
||||
// 各幣種盈虧明細
|
||||
..._holdings.map((h) => _buildCoinProfitCard(h)),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildSummaryItem(String label, String value) {
|
||||
final colorScheme = Theme.of(context).colorScheme;
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: AppSpacing.md),
|
||||
child: Column(
|
||||
children: [
|
||||
Text(label, style: AppTextStyles.bodySmall(context).copyWith(
|
||||
color: colorScheme.onSurfaceVariant,
|
||||
)),
|
||||
const SizedBox(height: 2),
|
||||
Text(value, style: AppTextStyles.labelMedium(context).copyWith(
|
||||
fontWeight: FontWeight.w600,
|
||||
)),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildCoinProfitCard(AccountTrade h) {
|
||||
final colorScheme = Theme.of(context).colorScheme;
|
||||
final profit = double.tryParse(h.profit) ?? 0;
|
||||
final isProfit = profit >= 0;
|
||||
final profitColor = isProfit ? context.appColors.up : context.appColors.down;
|
||||
|
||||
return Container(
|
||||
margin: const EdgeInsets.only(bottom: AppSpacing.sm),
|
||||
padding: const EdgeInsets.all(AppSpacing.md),
|
||||
decoration: BoxDecoration(
|
||||
color: _isDark ? AppColorScheme.darkSurfaceContainer : AppColorScheme.lightSurfaceLowest,
|
||||
borderRadius: BorderRadius.circular(AppRadius.lg),
|
||||
border: Border.all(
|
||||
color: _isDark
|
||||
? AppColorScheme.darkOutlineVariant.withValues(alpha: 0.15)
|
||||
: AppColorScheme.lightOutlineVariant.withValues(alpha: 0.5),
|
||||
),
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
// 幣名 + 盈虧金額
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Row(
|
||||
child: Row(
|
||||
children: [
|
||||
Container(
|
||||
width: 40,
|
||||
height: 40,
|
||||
decoration: BoxDecoration(
|
||||
color: iconColor.withValues(alpha: 0.1),
|
||||
borderRadius: BorderRadius.circular(AppRadius.md),
|
||||
),
|
||||
child: Icon(_flowIcon(flow.flowType), size: 18, color: iconColor),
|
||||
),
|
||||
const SizedBox(width: AppSpacing.sm),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
CoinIcon(symbol: h.coinCode, size: 32),
|
||||
const SizedBox(width: AppSpacing.sm),
|
||||
Text(h.coinCode, style: AppTextStyles.headlineMedium(context).copyWith(
|
||||
fontWeight: FontWeight.bold,
|
||||
)),
|
||||
const SizedBox(width: AppSpacing.xs),
|
||||
Text('x ${double.tryParse(h.quantity)?.toStringAsFixed(4) ?? h.quantity}',
|
||||
style: AppTextStyles.bodySmall(context).copyWith(color: colorScheme.onSurfaceVariant),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
flow.flowTypeText,
|
||||
style: AppTextStyles.headlineMedium(context).copyWith(
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'${isPositive ? '+' : ''}${amount.toStringAsFixed(2)} ${flow.coinCode}',
|
||||
style: AppTextStyles.headlineMedium(context).copyWith(
|
||||
color: amountColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'餘額 ${balanceBefore.toStringAsFixed(2)} → ${balanceAfter.toStringAsFixed(2)}',
|
||||
style: AppTextStyles.bodySmall(context).copyWith(
|
||||
color: colorScheme.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
_formatTime(flow.createTime),
|
||||
style: AppTextStyles.bodySmall(context).copyWith(
|
||||
color: colorScheme.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
Text(
|
||||
'${isProfit ? '+' : ''}${profit.toStringAsFixed(2)} USDT',
|
||||
style: AppTextStyles.headlineMedium(context).copyWith(
|
||||
color: profitColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
Icon(
|
||||
LucideIcons.chevronRight,
|
||||
size: 16,
|
||||
color: colorScheme.onSurfaceVariant.withValues(alpha: 0.4),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void _showFlowDetail(AccountFlow flow) {
|
||||
final colorScheme = Theme.of(context).colorScheme;
|
||||
final amount = double.tryParse(flow.amount) ?? 0;
|
||||
final isPositive = amount >= 0;
|
||||
final amountColor = _flowAmountColor(isPositive);
|
||||
final iconColor = _flowIconColor(flow.flowType);
|
||||
final balanceBefore = double.tryParse(flow.balanceBefore) ?? 0;
|
||||
final balanceAfter = double.tryParse(flow.balanceAfter) ?? 0;
|
||||
|
||||
showModalBottomSheet(
|
||||
context: context,
|
||||
backgroundColor: _isDark ? AppColorScheme.darkSurfaceContainer : AppColorScheme.lightSurfaceLowest,
|
||||
shape: const RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.vertical(top: Radius.circular(AppRadius.xl)),
|
||||
),
|
||||
builder: (context) => SafeArea(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(AppSpacing.lg),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Center(
|
||||
child: Container(
|
||||
width: 40,
|
||||
height: 4,
|
||||
margin: const EdgeInsets.only(bottom: AppSpacing.md),
|
||||
decoration: BoxDecoration(
|
||||
color: colorScheme.outlineVariant.withValues(alpha: 0.4),
|
||||
borderRadius: BorderRadius.circular(2),
|
||||
),
|
||||
),
|
||||
),
|
||||
Center(
|
||||
child: Container(
|
||||
width: 56,
|
||||
height: 56,
|
||||
decoration: BoxDecoration(
|
||||
color: iconColor.withValues(alpha: 0.1),
|
||||
borderRadius: BorderRadius.circular(AppRadius.lg),
|
||||
),
|
||||
child: Icon(_flowIcon(flow.flowType), size: 24, color: iconColor),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: AppSpacing.md),
|
||||
Center(
|
||||
child: Text(
|
||||
'${isPositive ? '+' : ''}${amount.toStringAsFixed(2)} ${flow.coinCode}',
|
||||
style: AppTextStyles.displaySmall(context).copyWith(
|
||||
color: amountColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
),
|
||||
Center(
|
||||
child: Text(
|
||||
flow.flowTypeText,
|
||||
style: AppTextStyles.bodyMedium(context).copyWith(
|
||||
color: colorScheme.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: AppSpacing.lg),
|
||||
_buildDetailRow('流水號', flow.flowNo.isNotEmpty ? flow.flowNo : '-'),
|
||||
_buildDetailRow('幣種', flow.coinCode),
|
||||
_buildDetailRow(
|
||||
'變動前餘額',
|
||||
'${balanceBefore.toStringAsFixed(2)} ${flow.coinCode}',
|
||||
),
|
||||
_buildDetailRow(
|
||||
'變動後餘額',
|
||||
'${balanceAfter.toStringAsFixed(2)} ${flow.coinCode}',
|
||||
),
|
||||
if (flow.relatedOrderNo.isNotEmpty)
|
||||
_buildDetailRow('關聯訂單', flow.relatedOrderNo),
|
||||
if (flow.remark.isNotEmpty)
|
||||
_buildDetailRow('備註', flow.remark),
|
||||
_buildDetailRow('時間', _formatTimeFull(flow.createTime)),
|
||||
const SizedBox(height: AppSpacing.md),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: AppSpacing.sm),
|
||||
// 明細行
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text('均價: ${h.avgPrice}', style: AppTextStyles.bodySmall(context).copyWith(
|
||||
color: colorScheme.onSurfaceVariant,
|
||||
)),
|
||||
Text('市值: ${h.currentValue} USDT', style: AppTextStyles.bodySmall(context).copyWith(
|
||||
color: colorScheme.onSurfaceVariant,
|
||||
)),
|
||||
Text(h.formattedProfitRate, style: AppTextStyles.bodySmall(context).copyWith(
|
||||
color: profitColor,
|
||||
fontWeight: FontWeight.w600,
|
||||
)),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildDetailRow(String label, String value) {
|
||||
final colorScheme = Theme.of(context).colorScheme;
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: AppSpacing.xs),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
label,
|
||||
style: AppTextStyles.bodyMedium(context).copyWith(
|
||||
color: colorScheme.onSurfaceVariant,
|
||||
),
|
||||
),
|
||||
Flexible(
|
||||
child: Text(
|
||||
value,
|
||||
style: AppTextStyles.bodyMedium(context).copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
textAlign: TextAlign.right,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -375,7 +486,6 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
final amount = double.tryParse(record['amount']?.toString() ?? '0') ?? 0;
|
||||
final status = record['status'] as int? ?? 0;
|
||||
|
||||
// status: 0=待領取, 1=已領取, 2=未達標
|
||||
String statusText;
|
||||
Color statusColor;
|
||||
switch (status) {
|
||||
@@ -477,9 +587,18 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
String _formatTime(dynamic time) {
|
||||
if (time == null) return '-';
|
||||
if (time is DateTime) {
|
||||
return '${time.year}-${time.month.toString().padLeft(2, '0')}-${time.day.toString().padLeft(2, '0')} '
|
||||
return '${time.month.toString().padLeft(2, '0')}-${time.day.toString().padLeft(2, '0')} '
|
||||
'${time.hour.toString().padLeft(2, '0')}:${time.minute.toString().padLeft(2, '0')}';
|
||||
}
|
||||
return time.toString();
|
||||
}
|
||||
|
||||
String _formatTimeFull(dynamic time) {
|
||||
if (time == null) return '-';
|
||||
if (time is DateTime) {
|
||||
return '${time.year}-${time.month.toString().padLeft(2, '0')}-${time.day.toString().padLeft(2, '0')} '
|
||||
'${time.hour.toString().padLeft(2, '0')}:${time.minute.toString().padLeft(2, '0')}:${time.second.toString().padLeft(2, '0')}';
|
||||
}
|
||||
return time.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -305,7 +305,7 @@ class _WelfareCenterPageState extends State<WelfareCenterPage> {
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
'+100 USDT',
|
||||
'+${newUserBonus?['amount'] ?? '100'} USDT',
|
||||
style: AppTextStyles.displayLarge(context).copyWith(
|
||||
fontWeight: FontWeight.w800,
|
||||
color: claimed ? Theme.of(context).colorScheme.onSurfaceVariant : profitGreen,
|
||||
@@ -809,7 +809,7 @@ class _WelfareCenterPageState extends State<WelfareCenterPage> {
|
||||
style: AppTextStyles.headlineSmall(context),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
_buildRuleItem('新用戶首次充值完成後可領取 100 USDT(一次性)'),
|
||||
_buildRuleItem('充值金額每滿 1,000 USDT 獎勵 100 USDT(如充值 3,000 領取 300)'),
|
||||
_buildRuleItem('邀請好友累計充值每滿 1,000 USDT,獎勵 100 USDT(最多8次/人)'),
|
||||
_buildRuleItem('好友推廣的用戶充值每滿 1,000 USDT,額外獎勵 50 USDT(最多8次/人)'),
|
||||
_buildRuleItem('獎勵直接發放至資金賬戶'),
|
||||
@@ -843,7 +843,7 @@ class _WelfareCenterPageState extends State<WelfareCenterPage> {
|
||||
if (response.success) {
|
||||
context.read<AssetProvider>().refreshAll(force: true);
|
||||
context.read<AppEventBus>().fire(AppEventType.assetChanged);
|
||||
ToastUtils.showSuccess('領取成功!100 USDT 已到賬');
|
||||
ToastUtils.showSuccess('領取成功!獎勵已到賬');
|
||||
_loadData();
|
||||
} else {
|
||||
ToastUtils.showError(response.message ?? '領取失敗');
|
||||
@@ -865,7 +865,7 @@ class _WelfareCenterPageState extends State<WelfareCenterPage> {
|
||||
if (response.success) {
|
||||
context.read<AssetProvider>().refreshAll(force: true);
|
||||
context.read<AppEventBus>().fire(AppEventType.assetChanged);
|
||||
ToastUtils.showSuccess('領取成功!100 USDT 已到賬');
|
||||
ToastUtils.showSuccess('領取成功!獎勵已到賬');
|
||||
_loadData();
|
||||
} else {
|
||||
ToastUtils.showError(response.message ?? '領取失敗');
|
||||
|
||||
@@ -117,8 +117,7 @@ class PriceCard extends StatelessWidget {
|
||||
String _fmt(double? v) {
|
||||
if (v == null) return '--';
|
||||
if (v >= 1000) return v.toStringAsFixed(2);
|
||||
if (v >= 1) return v.toStringAsFixed(4);
|
||||
return v.toStringAsFixed(6);
|
||||
return v.toStringAsFixed(4);
|
||||
}
|
||||
|
||||
String _fmtVol(double? v) {
|
||||
|
||||
@@ -55,6 +55,15 @@ class SplitTradeForm extends StatefulWidget {
|
||||
class _SplitTradeFormState extends State<SplitTradeForm>
|
||||
with SingleTickerProviderStateMixin {
|
||||
late TabController _tabController;
|
||||
double _currentPercent = 0.0;
|
||||
|
||||
String _fmtAvailable(String raw) {
|
||||
final v = double.tryParse(raw);
|
||||
if (v == null || v == 0) return '0';
|
||||
if (v >= 1) return v.toStringAsFixed(2);
|
||||
if (v >= 0.01) return v.toStringAsFixed(4);
|
||||
return v.toStringAsFixed(6);
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -256,11 +265,21 @@ class _SplitTradeFormState extends State<SplitTradeForm>
|
||||
),
|
||||
const SizedBox(height: AppSpacing.xs),
|
||||
|
||||
// 可用余额
|
||||
Text(
|
||||
'可用: $available ${_isBuy ? 'USDT' : (widget.coin?.code ?? '')}',
|
||||
style: AppTextStyles.bodySmall(context)
|
||||
.copyWith(color: context.colors.onSurfaceVariant),
|
||||
// 可用余额 + 手续费
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'可用: ${_fmtAvailable(available)} ${_isBuy ? 'USDT' : (widget.coin?.code ?? '')}',
|
||||
style: AppTextStyles.bodySmall(context)
|
||||
.copyWith(color: context.colors.onSurfaceVariant),
|
||||
),
|
||||
Text(
|
||||
'手续费: 0%',
|
||||
style: AppTextStyles.bodySmall(context)
|
||||
.copyWith(color: context.colors.onSurfaceVariant),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: AppSpacing.sm),
|
||||
|
||||
@@ -276,7 +295,29 @@ class _SplitTradeFormState extends State<SplitTradeForm>
|
||||
_pctBtn(context, '100%', 1.0, onFillPercent),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: AppSpacing.sm),
|
||||
const SizedBox(height: 2),
|
||||
|
||||
// 滑块选择仓位
|
||||
SliderTheme(
|
||||
data: SliderThemeData(
|
||||
trackHeight: 3,
|
||||
thumbShape: const RoundSliderThumbShape(enabledThumbRadius: 6),
|
||||
overlayShape: const RoundSliderOverlayShape(overlayRadius: 12),
|
||||
activeTrackColor: accentColor,
|
||||
inactiveTrackColor: context.colors.surfaceContainerHighest,
|
||||
thumbColor: accentColor,
|
||||
),
|
||||
child: Slider(
|
||||
value: _currentPercent.clamp(0.0, 1.0),
|
||||
onChanged: (v) {
|
||||
setState(() => _currentPercent = v);
|
||||
onFillPercent(v);
|
||||
},
|
||||
min: 0.0,
|
||||
max: 1.0,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: AppSpacing.xs),
|
||||
|
||||
// 提交按钮
|
||||
SizedBox(
|
||||
@@ -296,7 +337,7 @@ class _SplitTradeFormState extends State<SplitTradeForm>
|
||||
child: FittedBox(
|
||||
fit: BoxFit.scaleDown,
|
||||
child: Text(
|
||||
'${_isBuy ? '买入' : '卖出'} ${widget.coin?.code ?? ''}',
|
||||
'${_isBuy ? '買入' : '賣出'} ${widget.coin?.code ?? ''}',
|
||||
style: AppTextStyles.labelLarge(context)
|
||||
.copyWith(color: Colors.white, fontWeight: FontWeight.w700),
|
||||
),
|
||||
@@ -308,20 +349,26 @@ class _SplitTradeFormState extends State<SplitTradeForm>
|
||||
}
|
||||
|
||||
Widget _pctBtn(BuildContext context, String label, double pct, ValueChanged<double> onTap) {
|
||||
final isActive = (_currentPercent - pct).abs() < 0.01;
|
||||
return Expanded(
|
||||
child: GestureDetector(
|
||||
onTap: () => onTap(pct),
|
||||
onTap: () {
|
||||
setState(() => _currentPercent = pct);
|
||||
onTap(pct);
|
||||
},
|
||||
child: Container(
|
||||
height: 28,
|
||||
height: 26,
|
||||
decoration: BoxDecoration(
|
||||
color: context.colors.surfaceContainerHighest.withValues(alpha: 0.4),
|
||||
color: isActive
|
||||
? context.colors.primary.withValues(alpha: 0.15)
|
||||
: context.colors.surfaceContainerHighest.withValues(alpha: 0.4),
|
||||
borderRadius: BorderRadius.circular(AppRadius.sm),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(label,
|
||||
style: AppTextStyles.bodySmall(context).copyWith(
|
||||
color: context.colors.onSurfaceVariant,
|
||||
fontWeight: FontWeight.w500)),
|
||||
color: isActive ? context.colors.primary : context.colors.onSurfaceVariant,
|
||||
fontWeight: isActive ? FontWeight.w600 : FontWeight.w500)),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -37,6 +37,7 @@ class _TradePageState extends State<TradePage>
|
||||
bool _isSellSubmitting = false;
|
||||
int _orderType = 1;
|
||||
double _realtimePrice = 0;
|
||||
double _currentBuyPercent = 0.0;
|
||||
|
||||
final _buyPriceController = TextEditingController();
|
||||
final _buyQuantityController = TextEditingController();
|
||||
@@ -695,10 +696,9 @@ class _TradePageState extends State<TradePage>
|
||||
if (_selectedCoin == null) return false;
|
||||
final qty = double.tryParse(_buyQuantityController.text) ?? 0;
|
||||
if (qty <= 0) return false;
|
||||
final price = double.tryParse(_buyPriceController.text) ?? 0;
|
||||
final amount = price * qty;
|
||||
// 只要有余额就可以买,后端会微调价格确保成交
|
||||
final available = double.tryParse(_availableUsdt) ?? 0;
|
||||
return amount <= available;
|
||||
return available > 0;
|
||||
}
|
||||
|
||||
bool _canSell() {
|
||||
@@ -710,13 +710,12 @@ class _TradePageState extends State<TradePage>
|
||||
}
|
||||
|
||||
void _buyFillPercent(double pct) {
|
||||
_currentBuyPercent = pct;
|
||||
final price = _orderType == 1 ? _realtimePrice : (double.tryParse(_buyPriceController.text) ?? 0);
|
||||
final available = double.tryParse(_availableUsdt) ?? 0;
|
||||
if (price <= 0) return;
|
||||
// 100%时留极小余量防精度误差
|
||||
final safePct = pct >= 1.0 ? 0.9999 : pct;
|
||||
final qty = (available / price) * safePct;
|
||||
_buyQuantityController.text = qty < 0.0001 ? '' : ((qty * 10000).truncateToDouble() / 10000).toStringAsFixed(4);
|
||||
final qty = (available / price * pct * 10000).truncateToDouble() / 10000;
|
||||
_buyQuantityController.text = qty < 0.0001 ? '' : qty.toStringAsFixed(4);
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
@@ -732,11 +731,24 @@ class _TradePageState extends State<TradePage>
|
||||
final priceController = isBuy ? _buyPriceController : _sellPriceController;
|
||||
final qtyController = isBuy ? _buyQuantityController : _sellQuantityController;
|
||||
|
||||
final price = priceController.text;
|
||||
String price = priceController.text;
|
||||
final quantity = qtyController.text;
|
||||
final coinCode = _selectedCoin!.code;
|
||||
final typeLabel = _orderType == 1 ? '市价单' : '限价单';
|
||||
|
||||
// 买入时:按所选仓位百分比重算价格,确保 价格×数量=仓位金额
|
||||
if (isBuy && _currentBuyPercent > 0) {
|
||||
final available = double.tryParse(_availableUsdt) ?? 0;
|
||||
final qty = double.tryParse(quantity) ?? 0;
|
||||
if (qty > 0 && available > 0) {
|
||||
final positionAmount = available * _currentBuyPercent;
|
||||
final adjustedPrice = positionAmount / qty;
|
||||
price = adjustedPrice.toStringAsFixed(8);
|
||||
}
|
||||
}
|
||||
|
||||
final displayAmount = ((double.tryParse(price) ?? 0) * (double.tryParse(quantity) ?? 0)).toStringAsFixed(2);
|
||||
|
||||
final confirmed = await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (ctx) => ConfirmDialog(
|
||||
@@ -744,7 +756,7 @@ class _TradePageState extends State<TradePage>
|
||||
coinCode: coinCode,
|
||||
price: price,
|
||||
quantity: quantity,
|
||||
amount: ((double.tryParse(price) ?? 0) * (double.tryParse(quantity) ?? 0)).toStringAsFixed(2),
|
||||
amount: displayAmount,
|
||||
),
|
||||
);
|
||||
|
||||
@@ -757,20 +769,39 @@ class _TradePageState extends State<TradePage>
|
||||
|
||||
try {
|
||||
final tradeService = context.read<TradeService>();
|
||||
final response = isBuy
|
||||
var response = isBuy
|
||||
? await tradeService.buy(coinCode: coinCode, price: price, quantity: quantity, orderType: _orderType)
|
||||
: await tradeService.sell(coinCode: coinCode, price: price, quantity: quantity, orderType: _orderType);
|
||||
|
||||
if (!mounted) return;
|
||||
|
||||
// 买入次数用完 → 弹出交易码输入框重试
|
||||
if (isBuy && !response.success &&
|
||||
(response.message?.contains('次數') == true || response.message?.contains('交易碼') == true)) {
|
||||
final code = await _showTradeCodeDialog(response.message ?? '請輸入交易碼');
|
||||
if (code != null && code.isNotEmpty && mounted) {
|
||||
response = await tradeService.buy(
|
||||
coinCode: coinCode, price: price, quantity: quantity,
|
||||
orderType: _orderType, tradeCode: code,
|
||||
);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!mounted) return;
|
||||
|
||||
if (response.success) {
|
||||
qtyController.clear();
|
||||
context.read<AssetProvider>().refreshAll(force: true);
|
||||
context.read<AppEventBus>().fire(AppEventType.assetChanged);
|
||||
_loadPendingOrders();
|
||||
final msg = _orderType == 2
|
||||
? '$typeLabel委托成功: $quantity $coinCode @ $price USDT'
|
||||
: '$typeLabel: $quantity $coinCode @ $price USDT';
|
||||
final resultAmount = response.data?['amount'];
|
||||
final resultQty = response.data?['quantity'];
|
||||
final resultPrice = response.data?['price'];
|
||||
final msg = isBuy
|
||||
? '買入 ${resultQty ?? quantity} $coinCode\n成交金額: ${resultAmount != null ? (double.tryParse(resultAmount.toString())?.toStringAsFixed(2) ?? displayAmount) : displayAmount} USDT'
|
||||
: '賣出 ${resultQty ?? quantity} $coinCode\n成交金額: ${resultAmount != null ? (double.tryParse(resultAmount.toString())?.toStringAsFixed(2) ?? displayAmount) : displayAmount} USDT';
|
||||
_showResultDialog(true, isBuy ? '買入成功' : '賣出成功', msg);
|
||||
} else {
|
||||
_showResultDialog(false, '交易失敗', response.message ?? '請稍後重試');
|
||||
@@ -787,6 +818,51 @@ class _TradePageState extends State<TradePage>
|
||||
}
|
||||
}
|
||||
|
||||
Future<String?> _showTradeCodeDialog(String hint) {
|
||||
final controller = TextEditingController();
|
||||
return showDialog<String>(
|
||||
context: context,
|
||||
barrierDismissible: false,
|
||||
builder: (ctx) => AlertDialog(
|
||||
title: const Text('需要交易碼'),
|
||||
content: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(hint, style: AppTextStyles.bodySmall(ctx)),
|
||||
const SizedBox(height: AppSpacing.md),
|
||||
TextField(
|
||||
controller: controller,
|
||||
autofocus: true,
|
||||
textCapitalization: TextCapitalization.characters,
|
||||
style: AppTextStyles.headlineMedium(ctx),
|
||||
keyboardType: TextInputType.text,
|
||||
decoration: InputDecoration(
|
||||
hintText: '請輸入交易碼',
|
||||
filled: true,
|
||||
fillColor: ctx.colors.surfaceContainerHighest.withValues(alpha: 0.3),
|
||||
border: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.circular(AppRadius.sm),
|
||||
borderSide: BorderSide.none,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () => Navigator.of(ctx).pop(null),
|
||||
child: const Text('取消'),
|
||||
),
|
||||
ElevatedButton(
|
||||
onPressed: () => Navigator.of(ctx).pop(controller.text.trim()),
|
||||
child: const Text('確認'),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void _showResultDialog(bool success, String title, String message) {
|
||||
showDialog(
|
||||
context: context,
|
||||
|
||||
1
monisuo-admin/dist/assets/Alert-IVeByMOV.js
vendored
1
monisuo-admin/dist/assets/Alert-IVeByMOV.js
vendored
@@ -1 +0,0 @@
|
||||
import{D as e,Dt as t,G as n,H as r,Tt as i,w as a}from"./iconify-DYZHDLa8.js";import{t as o}from"./ui-vendor-Za4p7XTd.js";import{J as s}from"./index-Uji7rFqr.js";var c=e({__name:`AlertDescription`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let o=e;return(e,c)=>(r(),a(`div`,{"data-slot":`alert-description`,class:t(i(s)(`text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed`,o.class))},[n(e.$slots,`default`)],2))}}),l=e({__name:`AlertTitle`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let o=e;return(e,c)=>(r(),a(`div`,{"data-slot":`alert-title`,class:t(i(s)(`col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight`,o.class))},[n(e.$slots,`default`)],2))}}),u=o(`relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current`,{variants:{variant:{default:`bg-card text-card-foreground`,destructive:`text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90`}},defaultVariants:{variant:`default`}}),d=e({__name:`Alert`,props:{class:{type:[Boolean,null,String,Object,Array]},variant:{}},setup(e){let o=e;return(c,l)=>(r(),a(`div`,{"data-slot":`alert`,class:t(i(s)(i(u)({variant:e.variant}),o.class)),role:`alert`},[n(c.$slots,`default`)],2))}});export{l as n,c as r,d as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{C as e,D as t,G as n,H as r,I as i,S as a,Tt as o,gt as s,it as c,tt as l}from"./iconify-DYZHDLa8.js";import{E as u,w as d}from"./vue-vendor-DjtlKxRy.js";import{J as f}from"./index-Uji7rFqr.js";import{r as p}from"./button-BuRmTYve.js";import{t as m}from"./useForwardExpose-B0BXtanw.js";import{r as h}from"./AvatarImage-2cn_wg2h.js";var g=t({__name:`AvatarFallback`,props:{delayMs:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let i=t,u=h();m();let f=s(i.delayMs===void 0);return l(e=>{if(i.delayMs&&d){let t=window.setTimeout(()=>{f.value=!0},i.delayMs);e(()=>{window.clearTimeout(t)})}}),(t,i)=>f.value&&o(u).imageLoadingStatus.value!==`loaded`?(r(),a(o(p),{key:0,"as-child":t.asChild,as:t.as},{default:c(()=>[n(t.$slots,`default`)]),_:3},8,[`as-child`,`as`])):e(`v-if`,!0)}}),_=t({__name:`AvatarFallback`,props:{delayMs:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,s=u(t,`class`);return(e,l)=>(r(),a(o(g),i({"data-slot":`avatar-fallback`},o(s),{class:o(f)(`bg-muted flex size-full items-center justify-center rounded-full`,t.class)}),{default:c(()=>[n(e.$slots,`default`)]),_:3},16,[`class`]))}});export{_ as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{B as e,D as t,Dt as n,G as r,H as i,I as a,S as o,St as s,Tt as c,at as l,b as u,d,et as f,gt as p,it as m,tt as h,z as g}from"./iconify-DYZHDLa8.js";import{w as _}from"./vue-vendor-DjtlKxRy.js";import{J as v}from"./index-Uji7rFqr.js";import{O as y}from"./Teleport-BIYegdAM.js";import{r as b}from"./button-BuRmTYve.js";import{t as x}from"./useForwardExpose-B0BXtanw.js";var[S,C]=y(`AvatarRoot`),w=t({__name:`AvatarRoot`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return x(),C({imageLoadingStatus:p(`idle`)}),(e,t)=>(i(),o(c(b),{"as-child":e.asChild,as:e.as},{default:m(()=>[r(e.$slots,`default`)]),_:3},8,[`as-child`,`as`]))}});function T(e,t){return e?t?(e.src!==t&&(e.src=t),e.complete&&e.naturalWidth>0?`loaded`:`loading`):`error`:`idle`}function E(t,{referrerPolicy:n,crossOrigin:r}={}){let i=p(!1),a=p(null),o=u(()=>i.value?(!a.value&&_&&(a.value=new window.Image),a.value):null),s=p(T(o.value,t.value)),c=e=>()=>{i.value&&(s.value=e)};return g(()=>{i.value=!0,h(e=>{let i=o.value;if(!i)return;s.value=T(i,t.value);let a=c(`loaded`),l=c(`error`);i.addEventListener(`load`,a),i.addEventListener(`error`,l),n?.value&&(i.referrerPolicy=n.value),typeof r?.value==`string`&&(i.crossOrigin=r.value),e(()=>{i.removeEventListener(`load`,a),i.removeEventListener(`error`,l)})})}),e(()=>{i.value=!1}),s}var D=t({__name:`AvatarImage`,props:{src:{type:String,required:!0},referrerPolicy:{type:null,required:!1},crossOrigin:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`img`}},emits:[`loadingStatusChange`],setup(e,{emit:t}){let n=e,a=t,{src:u,referrerPolicy:p,crossOrigin:h}=s(n);x();let g=S(),_=E(u,{referrerPolicy:p,crossOrigin:h});return f(_,e=>{a(`loadingStatusChange`,e),e!==`idle`&&(g.imageLoadingStatus.value=e)},{immediate:!0}),(e,t)=>l((i(),o(c(b),{role:`img`,"as-child":e.asChild,as:e.as,src:c(u),referrerpolicy:c(p),crossorigin:c(h)},{default:m(()=>[r(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`src`,`referrerpolicy`,`crossorigin`])),[[d,c(_)===`loaded`]])}}),O=t({__name:`Avatar`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,a)=>(i(),o(c(w),{"data-slot":`avatar`,class:n(c(v)(`relative flex size-8 shrink-0 overflow-hidden rounded-full`,t.class))},{default:m(()=>[r(e.$slots,`default`)]),_:3},8,[`class`]))}}),k=t({__name:`AvatarImage`,props:{src:{},referrerPolicy:{},crossOrigin:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(i(),o(c(D),a({"data-slot":`avatar-image`},t,{class:`aspect-square size-full`}),{default:m(()=>[r(e.$slots,`default`)]),_:3},16))}});export{O as n,S as r,k as t};
|
||||
1
monisuo-admin/dist/assets/Badge-RIbvVUq1.js
vendored
1
monisuo-admin/dist/assets/Badge-RIbvVUq1.js
vendored
@@ -1 +0,0 @@
|
||||
import{D as e,G as t,H as n,I as r,S as i,Tt as a,it as o}from"./iconify-DYZHDLa8.js";import{t as s}from"./ui-vendor-Za4p7XTd.js";import{E as c}from"./vue-vendor-DjtlKxRy.js";import{J as l}from"./index-Uji7rFqr.js";import{r as u}from"./button-BuRmTYve.js";var d=s(`inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90`,secondary:`border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90`,destructive:`border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60`,outline:`text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground`}},defaultVariants:{variant:`default`}}),f=e({__name:`Badge`,props:{asChild:{type:Boolean},as:{},variant:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let s=e,f=c(s,`class`);return(c,p)=>(n(),i(a(u),r({"data-slot":`badge`,class:a(l)(a(d)({variant:e.variant}),s.class)},a(f)),{default:o(()=>[t(c.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
|
||||
1
monisuo-admin/dist/assets/Card-mLutrMBs.js
vendored
1
monisuo-admin/dist/assets/Card-mLutrMBs.js
vendored
@@ -1 +0,0 @@
|
||||
import{D as e,Dt as t,G as n,H as r,Tt as i,w as a}from"./iconify-DYZHDLa8.js";import{J as o}from"./index-Uji7rFqr.js";var s=e({__name:`Card`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let s=e;return(e,c)=>(r(),a(`div`,{"data-slot":`card`,class:t(i(o)(`bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm`,s.class))},[n(e.$slots,`default`)],2))}});export{s as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{D as e,Dt as t,G as n,H as r,Tt as i,w as a}from"./iconify-DYZHDLa8.js";import{J as o}from"./index-Uji7rFqr.js";var s=e({__name:`CardContent`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let s=e;return(e,c)=>(r(),a(`div`,{"data-slot":`card-content`,class:t(i(o)(`px-6`,s.class))},[n(e.$slots,`default`)],2))}});export{s as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{D as e,Dt as t,G as n,H as r,Tt as i,w as a}from"./iconify-DYZHDLa8.js";import{J as o}from"./index-Uji7rFqr.js";var s=e({__name:`CardHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let s=e;return(e,c)=>(r(),a(`div`,{"data-slot":`card-header`,class:t(i(o)(`@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6`,s.class))},[n(e.$slots,`default`)],2))}}),c=e({__name:`CardDescription`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let s=e;return(e,c)=>(r(),a(`p`,{"data-slot":`card-description`,class:t(i(o)(`text-muted-foreground text-sm`,s.class))},[n(e.$slots,`default`)],2))}}),l=e({__name:`CardTitle`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let s=e;return(e,c)=>(r(),a(`h3`,{"data-slot":`card-title`,class:t(i(o)(`leading-none font-semibold`,s.class))},[n(e.$slots,`default`)],2))}});export{c as n,s as r,l as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{C as e,D as t,E as n,G as r,H as i,I as a,Ot as o,S as s,Tt as c,b as l,f as u,it as d,k as f,p,q as m}from"./iconify-DYZHDLa8.js";import{o as h}from"./SelectValue-Dhq6ao6U.js";import{E as g,y as _}from"./vue-vendor-DjtlKxRy.js";import{J as v}from"./index-Uji7rFqr.js";import{n as y,r as b}from"./VisuallyHidden-CeN_p2Md.js";import{O as x,T as S,g as C,y as w}from"./Teleport-BIYegdAM.js";import{r as T}from"./button-BuRmTYve.js";import{t as E}from"./useForwardExpose-B0BXtanw.js";import{t as D}from"./VisuallyHiddenInput-dn3LBkPE.js";import{t as O}from"./RovingFocusItem-BIHcXQd-.js";function k(e,t){return S(e)?!1:Array.isArray(e)?e.some(e=>b(e,t)):b(e,t)}var[A,j]=x(`CheckboxGroupRoot`);function M(e){return e===`indeterminate`}function N(e){return M(e)?`indeterminate`:e?`checked`:`unchecked`}var[P,F]=x(`CheckboxRoot`),I=t({inheritAttrs:!1,__name:`CheckboxRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:`on`},id:{type:String,required:!1},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(t,{emit:n}){let o=t,f=n,{forwardRef:h,currentElement:g}=E(),v=A(null),x=_(o,`modelValue`,f,{defaultValue:o.defaultValue??o.falseValue,passive:o.modelValue===void 0}),C=l(()=>v?.disabled.value||o.disabled),w=l(()=>b(x.value,o.trueValue)),j=l(()=>S(v?.modelValue.value)?x.value===`indeterminate`?`indeterminate`:w.value:k(v.modelValue.value,o.value));function P(){if(S(v?.modelValue.value))x.value===`indeterminate`?x.value=o.trueValue:x.value=w.value?o.falseValue:o.trueValue;else{let e=[...v.modelValue.value||[]];if(k(e,o.value)){let t=e.findIndex(e=>b(e,o.value));e.splice(t,1)}else e.push(o.value);v.modelValue.value=e}}let I=y(g),L=l(()=>o.id&&g.value?document.querySelector(`[for="${o.id}"]`)?.innerText:void 0);return F({disabled:C,state:j}),(t,n)=>(i(),s(m(c(v)?.rovingFocus.value?c(O):c(T)),a(t.$attrs,{id:t.id,ref:c(h),role:`checkbox`,"as-child":t.asChild,as:t.as,type:t.as===`button`?`button`:void 0,"aria-checked":c(M)(j.value)?`mixed`:j.value,"aria-required":t.required,"aria-label":t.$attrs[`aria-label`]||L.value,"data-state":c(N)(j.value),"data-disabled":C.value?``:void 0,disabled:C.value,focusable:c(v)?.rovingFocus.value?!C.value:void 0,onKeydown:u(p(()=>{},[`prevent`]),[`enter`]),onClick:P}),{default:d(()=>[r(t.$slots,`default`,{modelValue:c(x),state:j.value}),c(I)&&t.name&&!c(v)?(i(),s(c(D),{key:0,type:`checkbox`,checked:!!j.value,name:t.name,value:t.value,disabled:C.value,required:t.required},null,8,[`checked`,`name`,`value`,`disabled`,`required`])):e(`v-if`,!0)]),_:3},16,[`id`,`as-child`,`as`,`type`,`aria-checked`,`aria-required`,`aria-label`,`data-state`,`data-disabled`,`disabled`,`focusable`,`onKeydown`]))}}),L=t({__name:`CheckboxIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let{forwardRef:t}=E(),o=P();return(e,l)=>(i(),s(c(C),{present:e.forceMount||c(M)(c(o).state.value)||c(o).state.value===!0},{default:d(()=>[n(c(T),a({ref:c(t),"data-state":c(N)(c(o).state.value),"data-disabled":c(o).disabled.value?``:void 0,style:{pointerEvents:`none`},"as-child":e.asChild,as:e.as},e.$attrs),{default:d(()=>[r(e.$slots,`default`)]),_:3},16,[`data-state`,`data-disabled`,`as-child`,`as`])]),_:3},8,[`present`]))}}),R=t({__name:`Checkbox`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},value:{},id:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:t}){let l=e,u=t,p=w(g(l,`class`),u);return(e,t)=>(i(),s(c(I),a({"data-slot":`checkbox`},c(p),{class:c(v)(`peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50`,l.class)}),{default:d(t=>[n(c(L),{"data-slot":`checkbox-indicator`,class:`grid place-content-center text-current transition-none`},{default:d(()=>[r(e.$slots,`default`,o(f(t)),()=>[n(c(h),{class:`size-3.5`})])]),_:2},1024)]),_:3},16,[`class`]))}});export{R as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{D as e,G as t,H as n,I as r,S as i,Tt as a,it as o}from"./iconify-DYZHDLa8.js";import{u as s}from"./DialogTitle-CMQDEO8n.js";var c=e({__name:`DialogClose`,props:{asChild:{type:Boolean},as:{}},setup(e){let c=e;return(e,l)=>(n(),i(a(s),r({"data-slot":`dialog-close`},c),{default:o(()=>[t(e.$slots,`default`)]),_:3},16))}});export{c as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{D as e,G as t,H as n,I as r,S as i,Tt as a,it as o}from"./iconify-DYZHDLa8.js";import{E as s}from"./vue-vendor-DjtlKxRy.js";import{J as c}from"./index-Uji7rFqr.js";import{b as l}from"./Teleport-BIYegdAM.js";import{r as u}from"./button-BuRmTYve.js";import{t as d}from"./useForwardExpose-B0BXtanw.js";import{f}from"./DialogTitle-CMQDEO8n.js";var p=e({__name:`DialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(e){let s=e;d();let c=f();return(e,l)=>(n(),i(a(u),r(s,{id:a(c).descriptionId}),{default:o(()=>[t(e.$slots,`default`)]),_:3},16,[`id`]))}}),m=e({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let u=e,d=l(s(u,`class`));return(e,s)=>(n(),i(a(p),r({"data-slot":`dialog-description`},a(d),{class:a(c)(`text-muted-foreground text-sm`,u.class)}),{default:o(()=>[t(e.$slots,`default`)]),_:3},16,[`class`]))}});export{p as n,m as t};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{D as e,E as t,G as n,H as r,I as i,Ot as a,S as o,Tt as s,gt as c,it as l,k as u}from"./iconify-DYZHDLa8.js";import{E as d}from"./vue-vendor-DjtlKxRy.js";import{J as f}from"./index-Uji7rFqr.js";import{O as p,_ as m,b as h,d as g,g as _,l as v}from"./Teleport-BIYegdAM.js";import{r as y}from"./button-BuRmTYve.js";import{t as b}from"./useForwardExpose-B0BXtanw.js";var[x,S]=p([`MenuCheckboxItem`,`MenuRadioItem`],`MenuItemIndicatorContext`),C=e({__name:`MenuItemIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let i=x({modelValue:c(!1)});return(e,a)=>(r(),o(s(_),{present:e.forceMount||s(g)(s(i).modelValue.value)||s(i).modelValue.value===!0},{default:l(()=>[t(s(y),{as:e.as,"as-child":e.asChild,"data-state":s(v)(s(i).modelValue.value)},{default:l(()=>[n(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`])]),_:3},8,[`present`]))}}),[w,T]=p(`MenuGroup`),E=e({__name:`MenuGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,a=m(void 0,`reka-menu-group`);return T({id:a}),(e,c)=>(r(),o(s(y),i({role:`group`},t,{"aria-labelledby":s(a)}),{default:l(()=>[n(e.$slots,`default`)]),_:3},16,[`aria-labelledby`]))}}),D=e({__name:`MenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,a=w({id:``});return(e,c)=>(r(),o(s(y),i(t,{id:s(a).id||void 0}),{default:l(()=>[n(e.$slots,`default`)]),_:3},16,[`id`]))}}),O=e({__name:`MenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,a)=>(r(),o(s(y),i(t,{role:`separator`,"aria-orientation":`horizontal`}),{default:l(()=>[n(e.$slots,`default`)]),_:3},16))}}),k=e({__name:`DropdownMenuItemIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return b(),(e,i)=>(r(),o(s(C),a(u(t)),{default:l(()=>[n(e.$slots,`default`)]),_:3},16))}}),A=e({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return b(),(e,i)=>(r(),o(s(D),a(u(t)),{default:l(()=>[n(e.$slots,`default`)]),_:3},16))}}),j=e({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return b(),(e,i)=>(r(),o(s(O),a(u(t)),{default:l(()=>[n(e.$slots,`default`)]),_:3},16))}}),M=e({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=d(t,`class`);return(e,a)=>(r(),o(s(j),i({"data-slot":`dropdown-menu-separator`},s(n),{class:s(f)(`bg-border -mx-1 my-1 h-px`,t.class)}),null,16,[`class`]))}}),N=e({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},inset:{type:Boolean}},setup(e){let t=e,a=h(d(t,`class`,`inset`));return(c,u)=>(r(),o(s(A),i({"data-slot":`dropdown-menu-label`,"data-inset":e.inset?``:void 0},s(a),{class:s(f)(`px-2 py-1.5 text-sm font-medium data-[inset]:pl-8`,t.class)}),{default:l(()=>[n(c.$slots,`default`)]),_:3},16,[`data-inset`,`class`]))}});export{S as a,E as i,M as n,k as r,N as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{D as e,E as t,G as n,H as r,I as i,Ot as a,S as o,St as s,Tt as c,b as l,it as u,k as d,x as f}from"./iconify-DYZHDLa8.js";import{t as p}from"./circle-CK69KO4g.js";import{E as m,y as h}from"./vue-vendor-DjtlKxRy.js";import{J as g}from"./index-Uji7rFqr.js";import{O as _,b as v,l as y,x as b,y as x}from"./Teleport-BIYegdAM.js";import{a as S}from"./DropdownMenuTrigger-GJTdpRDr.js";import{t as C}from"./useForwardExpose-B0BXtanw.js";import{a as w,i as T,r as E}from"./DropdownMenuLabel-BHmU9FEw.js";var[D,O]=_(`MenuRadioGroup`),k=e({__name:`MenuRadioGroup`,props:{modelValue:{type:null,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let i=e,s=t,l=v(m(i,[`modelValue`])),f=h(i,`modelValue`,s);return O({modelValue:f,onValueChange:e=>{f.value=e}}),(e,t)=>(r(),o(T,a(d(c(l))),{default:u(()=>[n(e.$slots,`default`,{modelValue:c(f)})]),_:3},16))}}),A=e({__name:`MenuRadioItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let a=e,d=t,f=v(m(a,[`value`])),{value:p}=s(a),h=D(),g=l(()=>h.modelValue.value===p?.value);return w({modelValue:g}),(e,t)=>(r(),o(S,i({role:`menuitemradio`},c(f),{"aria-checked":g.value,"data-state":c(y)(g.value),onSelect:t[0]||=async e=>{d(`select`,e),c(h).onValueChange(c(p))}}),{default:u(()=>[n(e.$slots,`default`)]),_:3},16,[`aria-checked`,`data-state`]))}}),j=e({__name:`DropdownMenuRadioGroup`,props:{modelValue:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let i=e,s=b(t);return C(),(e,t)=>(r(),o(c(k),a(d({...i,...c(s)})),{default:u(()=>[n(e.$slots,`default`)]),_:3},16))}}),M=e({__name:`DropdownMenuRadioItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let i=x(e,t);return C(),(e,t)=>(r(),o(c(A),a(d(c(i))),{default:u(()=>[n(e.$slots,`default`)]),_:3},16))}}),N=e({__name:`DropdownMenuRadioGroup`,props:{modelValue:{},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let a=x(e,t);return(e,t)=>(r(),o(c(j),i({"data-slot":`dropdown-menu-radio-group`},c(a)),{default:u(()=>[n(e.$slots,`default`)]),_:3},16))}}),P={class:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`},F=e({__name:`DropdownMenuRadioItem`,props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`select`],setup(e,{emit:a}){let s=e,l=a,d=x(m(s,`class`),l);return(e,a)=>(r(),o(c(M),i({"data-slot":`dropdown-menu-radio-item`},c(d),{class:c(g)(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,s.class)}),{default:u(()=>[f(`span`,P,[t(c(E),null,{default:u(()=>[n(e.$slots,`indicator-icon`,{},()=>[t(c(p),{class:`size-2 fill-current`})])]),_:3})]),n(e.$slots,`default`)]),_:3},16,[`class`]))}});export{N as n,F as t};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
monisuo-admin/dist/assets/Input-DFmzhatB.js
vendored
1
monisuo-admin/dist/assets/Input-DFmzhatB.js
vendored
@@ -1 +0,0 @@
|
||||
import{D as e,Dt as t,H as n,Tt as r,at as i,dt as a,u as o,w as s}from"./iconify-DYZHDLa8.js";import{y as c}from"./vue-vendor-DjtlKxRy.js";import{J as l}from"./index-Uji7rFqr.js";var u=e({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:u}){let d=e,f=c(d,`modelValue`,u,{passive:!0,defaultValue:d.defaultValue});return(e,c)=>i((n(),s(`input`,{"onUpdate:modelValue":c[0]||=e=>a(f)?f.value=e:null,"data-slot":`input`,class:t(r(l)(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,d.class))},null,2)),[[o,r(f)]])}});export{u as t};
|
||||
1
monisuo-admin/dist/assets/Label-BOs1t85p.js
vendored
1
monisuo-admin/dist/assets/Label-BOs1t85p.js
vendored
@@ -1 +0,0 @@
|
||||
import{D as e,G as t,H as n,I as r,S as i,Tt as a,it as o}from"./iconify-DYZHDLa8.js";import{E as s}from"./vue-vendor-DjtlKxRy.js";import{J as c}from"./index-Uji7rFqr.js";import{r as l}from"./button-BuRmTYve.js";import{t as u}from"./useForwardExpose-B0BXtanw.js";var d=e({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(e){let s=e;return u(),(e,c)=>(n(),i(a(l),r(s,{onMousedown:c[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:o(()=>[t(e.$slots,`default`)]),_:3},16))}}),f=e({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let l=e,u=s(l,`class`);return(e,s)=>(n(),i(a(d),r({"data-slot":`label`},a(u),{class:a(c)(`flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,l.class)}),{default:o(()=>[t(e.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{D as e,E as t,G as n,H as r,S as i,St as a,Tt as o,gt as s,it as c}from"./iconify-DYZHDLa8.js";import{y as l}from"./vue-vendor-DjtlKxRy.js";import{D as u,O as d}from"./Teleport-BIYegdAM.js";import{r as f}from"./button-BuRmTYve.js";import{o as p,u as m}from"./PopperContent-BqlvlxQe.js";var h=`rovingFocusGroup.onEntryFocus`,g={bubbles:!1,cancelable:!0},_={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function v(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function y(e,t,n){let r=v(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return _[r]}function b(e,t=!1){let n=u();for(let r of e)if(r===n||(r.focus({preventScroll:t}),u()!==n))return}function x(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[S,C]=d(`RovingFocusGroup`),w=e({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:u,emit:d}){let _=e,v=d,{loop:y,orientation:x,dir:S}=a(_),w=m(S),T=l(_,`currentTabStopId`,v,{defaultValue:_.defaultCurrentTabStopId,passive:_.currentTabStopId===void 0}),E=s(!1),D=s(!1),O=s(0),{getItems:k,CollectionSlot:A}=p({isProvider:!0});function j(e){let t=!D.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!E.value){let t=new CustomEvent(h,g);if(e.currentTarget.dispatchEvent(t),v(`entryFocus`,t),!t.defaultPrevented){let e=k().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);b([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===T.value),...e].filter(Boolean),_.preventScrollOnEntryFocus)}}D.value=!1}function M(){setTimeout(()=>{D.value=!1},1)}return u({getItems:k}),C({loop:y,dir:w,orientation:x,currentTabStopId:T,onItemFocus:e=>{T.value=e},onItemShiftTab:()=>{E.value=!0},onFocusableItemAdd:()=>{O.value++},onFocusableItemRemove:()=>{O.value--}}),(e,a)=>(r(),i(o(A),null,{default:c(()=>[t(o(f),{tabindex:E.value||O.value===0?-1:0,"data-orientation":o(x),as:e.as,"as-child":e.asChild,dir:o(w),style:{outline:`none`},onMousedown:a[0]||=e=>D.value=!0,onMouseup:M,onFocus:j,onBlur:a[1]||=e=>E.value=!1},{default:c(()=>[n(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}});export{x as a,y as i,S as n,b as r,w as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{B as e,D as t,E as n,G as r,H as i,L as a,S as o,Tt as s,b as c,it as l,z as u}from"./iconify-DYZHDLa8.js";import{_ as d}from"./Teleport-BIYegdAM.js";import{r as f}from"./button-BuRmTYve.js";import{o as p}from"./PopperContent-BqlvlxQe.js";import{a as m,i as h,n as g,r as _}from"./RovingFocusGroup-DF8fLFe7.js";var v=t({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let v=t,y=g(),b=d(),x=c(()=>v.tabStopId||b),S=c(()=>y.currentTabStopId.value===x.value),{getItems:C,CollectionItem:w}=p();u(()=>{v.focusable&&y.onFocusableItemAdd()}),e(()=>{v.focusable&&y.onFocusableItemRemove()});function T(e){if(e.key===`Tab`&&e.shiftKey){y.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=h(e,y.orientation.value,y.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!v.allowShiftKey&&e.shiftKey)return;e.preventDefault();let n=[...C().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=y.loop.value?m(n,r+1):n.slice(r+1)}a(()=>_(n))}}return(e,t)=>(i(),o(s(w),null,{default:l(()=>[n(s(f),{tabindex:S.value?0:-1,"data-orientation":s(y).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:t[0]||=t=>{e.focusable?s(y).onItemFocus(x.value):t.preventDefault()},onFocus:t[1]||=e=>s(y).onItemFocus(x.value),onKeydown:T},{default:l(()=>[r(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}});export{v as t};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{D as e,G as t,H as n,I as r,Ot as i,S as a,Tt as o,b as s,it as c,k as l}from"./iconify-DYZHDLa8.js";import{E as u}from"./vue-vendor-DjtlKxRy.js";import{J as d}from"./index-Uji7rFqr.js";import{r as f}from"./button-BuRmTYve.js";var p=e({__name:`BaseSeparator`,props:{orientation:{type:String,required:!1,default:`horizontal`},decorative:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let i=e,l=[`horizontal`,`vertical`];function u(e){return l.includes(e)}let d=s(()=>u(i.orientation)?i.orientation:`horizontal`),p=s(()=>d.value===`vertical`?i.orientation:void 0),m=s(()=>i.decorative?{role:`none`}:{"aria-orientation":p.value,role:`separator`});return(e,i)=>(n(),a(o(f),r({as:e.as,"as-child":e.asChild,"data-orientation":d.value},m.value),{default:c(()=>[t(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`data-orientation`]))}}),m=e({__name:`Separator`,props:{orientation:{type:String,required:!1,default:`horizontal`},decorative:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let r=e;return(e,o)=>(n(),a(p,i(l(r)),{default:c(()=>[t(e.$slots,`default`)]),_:3},16))}}),h=e({__name:`Separator`,props:{orientation:{default:`horizontal`},decorative:{type:Boolean,default:!0},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,i=u(t,`class`);return(e,s)=>(n(),a(o(m),r({"data-slot":`separator`},o(i),{class:o(d)(`bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px`,t.class)}),null,16,[`class`]))}});export{m as n,h as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{D as e,Dt as t,G as n,H as r,Tt as i,w as a,x as o}from"./iconify-DYZHDLa8.js";import{J as s}from"./index-Uji7rFqr.js";var c={"data-slot":`table-container`,class:`relative w-full overflow-auto`},l=e({__name:`Table`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let l=e;return(e,u)=>(r(),a(`div`,c,[o(`table`,{"data-slot":`table`,class:t(i(s)(`w-full caption-bottom text-sm`,l.class))},[n(e.$slots,`default`)],2)]))}}),u=e({__name:`TableBody`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let o=e;return(e,c)=>(r(),a(`tbody`,{"data-slot":`table-body`,class:t(i(s)(`[&_tr:last-child]:border-0`,o.class))},[n(e.$slots,`default`)],2))}}),d=e({__name:`TableCell`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let o=e;return(e,c)=>(r(),a(`td`,{"data-slot":`table-cell`,class:t(i(s)(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,o.class))},[n(e.$slots,`default`)],2))}}),f=e({__name:`TableHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let o=e;return(e,c)=>(r(),a(`thead`,{"data-slot":`table-header`,class:t(i(s)(`[&_tr]:border-b`,o.class))},[n(e.$slots,`default`)],2))}}),p=e({__name:`TableRow`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let o=e;return(e,c)=>(r(),a(`tr`,{"data-slot":`table-row`,class:t(i(s)(`hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors`,o.class))},[n(e.$slots,`default`)],2))}}),m=e({__name:`TableHead`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let o=e;return(e,c)=>(r(),a(`th`,{"data-slot":`table-head`,class:t(i(s)(`text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,o.class))},[n(e.$slots,`default`)],2))}});export{u as a,d as i,p as n,l as o,f as r,m as t};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{Ct as e,D as t,G as n,H as r,S as i,Tt as a,b as o,it as s}from"./iconify-DYZHDLa8.js";import{u as c}from"./vue-vendor-DjtlKxRy.js";import{r as l}from"./button-BuRmTYve.js";function u(e){return typeof e==`string`?`'${e}'`:new d().serialize(e)}var d=function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?e.localeCompare(t):n===`number`&&r===`number`?e-t:String.prototype.localeCompare.call(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}return this.serializeObjectEntries(r,Object.entries(e))}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t?.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e}();function f(e,t){return e===t||u(e)===u(t)}function p(t){return o(()=>e(t)?!!c(t)?.closest(`form`):!0)}var m=t({__name:`VisuallyHidden`,props:{feature:{type:String,required:!1,default:`focusable`},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(r(),i(a(l),{as:e.as,"as-child":e.asChild,"aria-hidden":e.feature===`focusable`?`true`:void 0,"data-hidden":e.feature===`fully-hidden`?``:void 0,tabindex:e.feature===`fully-hidden`?`-1`:void 0,style:{position:`absolute`,border:0,width:`1px`,height:`1px`,padding:0,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,clipPath:`inset(50%)`,whiteSpace:`nowrap`,wordWrap:`normal`,top:`-1px`,left:`-1px`}},{default:s(()=>[n(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`aria-hidden`,`data-hidden`,`tabindex`]))}});export{p as n,f as r,m as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{C as e,D as t,H as n,I as r,S as i,W as a,b as o,et as s,h as c,w as l}from"./iconify-DYZHDLa8.js";import{t as u}from"./VisuallyHidden-CeN_p2Md.js";import{s as d}from"./PopperContent-BqlvlxQe.js";var f=t({inheritAttrs:!1,__name:`VisuallyHiddenInputBubble`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(e){let t=e,{primitiveElement:a,currentElement:c}=d();return s(o(()=>t.checked??t.value),(e,t)=>{if(!c.value)return;let n=c.value,r=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(r,`value`).set;if(i&&e!==t){let t=new Event(`input`,{bubbles:!0}),r=new Event(`change`,{bubbles:!0});i.call(n,e),n.dispatchEvent(t),n.dispatchEvent(r)}}),(e,o)=>(n(),i(u,r({ref_key:`primitiveElement`,ref:a},{...t,...e.$attrs},{as:`input`}),null,16))}}),p=t({inheritAttrs:!1,__name:`VisuallyHiddenInput`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(t){let s=t,u=o(()=>typeof s.value==`object`&&Array.isArray(s.value)&&s.value.length===0&&s.required),d=o(()=>typeof s.value==`string`||typeof s.value==`number`||typeof s.value==`boolean`||s.value===null||s.value===void 0?[{name:s.name,value:s.value}]:typeof s.value==`object`&&Array.isArray(s.value)?s.value.flatMap((e,t)=>typeof e==`object`?Object.entries(e).map(([e,n])=>({name:`${s.name}[${t}][${e}]`,value:n})):{name:`${s.name}[${t}]`,value:e}):s.value!==null&&typeof s.value==`object`&&!Array.isArray(s.value)?Object.entries(s.value).map(([e,t])=>({name:`${s.name}[${e}]`,value:t})):[]);return(t,o)=>(n(),l(c,null,[e(` We render single input if it's required `),u.value?(n(),i(f,r({key:t.name},{...s,...t.$attrs},{name:t.name,value:t.value}),null,16,[`name`,`value`])):(n(!0),l(c,{key:1},a(d.value,e=>(n(),i(f,r({key:e.name},{ref_for:!0},{...s,...t.$attrs},{name:e.name,value:e.value}),null,16,[`name`,`value`]))),128))],2112))}});export{p as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{At as e,D as t,E as n,G as r,H as i,T as a,it as o,w as s,x as c}from"./iconify-DYZHDLa8.js";import{n as l}from"./button-BuRmTYve.js";import{t as u}from"./route-block-DB3S2hJK.js";var d={class:`max-w-2xl mx-auto text-center`},f={class:`font-bold text-8xl`},p={class:`mt-4 text-2xl font-bold`},m={class:`text-stone-400`},h={class:`mt-8`},g={class:`flex justify-center gap-2`},_=t({__name:`custom-error`,props:{code:{},subtitle:{},error:{}},setup(t){return(u,_)=>{let v=l;return i(),s(`div`,d,[c(`h1`,f,e(t.code),1),c(`h2`,p,e(t.subtitle),1),c(`p`,m,e(t.error),1),c(`footer`,h,[r(u.$slots,`default`,{},()=>[c(`div`,g,[n(v,{variant:`outline`,onClick:_[0]||=e=>u.$router.back()},{default:o(()=>[..._[2]||=[a(` Go Back `,-1)]]),_:1}),n(v,{onClick:_[1]||=e=>u.$router.push(`/`)},{default:o(()=>[..._[3]||=[a(` Back to Home `,-1)]]),_:1})])])])])}}}),v={class:`flex items-center justify-center h-screen`},y=t({__name:`[...path]`,setup(e){return(e,t)=>(i(),s(`div`,v,[n(_,{code:404,subtitle:`Page Not Found`,error:`The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.`})]))}});typeof u==`function`&&u(y);var b=y;export{b as default};
|
||||
1
monisuo-admin/dist/assets/admins-BbJ2SqnF.js
vendored
1
monisuo-admin/dist/assets/admins-BbJ2SqnF.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
monisuo-admin/dist/assets/auth-CE0QuSQ0.js
vendored
1
monisuo-admin/dist/assets/auth-CE0QuSQ0.js
vendored
@@ -1 +0,0 @@
|
||||
import{H as e,K as t,S as n}from"./iconify-DYZHDLa8.js";import{K as r}from"./index-Uji7rFqr.js";import{t as i}from"./route-block-DB3S2hJK.js";var a={};function o(r,i){let a=t(`router-view`);return e(),n(a)}typeof i==`function`&&i(a);var s=r(a,[[`render`,o]]);export{s as default};
|
||||
1
monisuo-admin/dist/assets/blank-ByXMvy74.js
vendored
1
monisuo-admin/dist/assets/blank-ByXMvy74.js
vendored
@@ -1 +0,0 @@
|
||||
import{H as e,K as t,S as n}from"./iconify-DYZHDLa8.js";import{K as r}from"./index-Uji7rFqr.js";var i={};function a(r,i){let a=t(`router-view`);return e(),n(a)}var o=r(i,[[`render`,a]]);export{o as default};
|
||||
1
monisuo-admin/dist/assets/button-BuRmTYve.js
vendored
1
monisuo-admin/dist/assets/button-BuRmTYve.js
vendored
@@ -1 +0,0 @@
|
||||
import{A as e,D as t,Dt as n,G as r,H as i,I as a,S as o,Tt as s,h as c,it as l,m as u,y as d}from"./iconify-DYZHDLa8.js";import{t as f}from"./ui-vendor-Za4p7XTd.js";import{J as p}from"./index-Uji7rFqr.js";function m(e){return e?e.flatMap(e=>e.type===c?m(e.children):[e]):[]}var h=t({name:`PrimitiveSlot`,inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;let e=m(n.default()),r=e.findIndex(e=>e.type!==u);if(r===-1)return e;let i=e[r];delete i.props?.ref;let o=i.props?a(t,i.props):t,s=d({...i,props:{}},o);return e.length===1?s:(e[r]=s,e)}}}),g=[`area`,`img`,`input`],_=t({name:`Primitive`,inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},as:{type:[String,Object],default:`div`}},setup(t,{attrs:n,slots:r}){let i=t.asChild?`template`:t.as;return typeof i==`string`&&g.includes(i)?()=>e(i,n):i===`template`?()=>e(h,n,{default:r.default}):()=>e(t.as,n,{default:r.default})}}),v=t({__name:`Button`,props:{variant:{},size:{},class:{type:[Boolean,null,String,Object,Array]},asChild:{type:Boolean},as:{default:`button`}},setup(e){let t=e;return(a,c)=>(i(),o(s(_),{"data-slot":`button`,as:e.as,"as-child":e.asChild,class:n(s(p)(s(y)({variant:e.variant,size:e.size}),t.class))},{default:l(()=>[r(a.$slots,`default`)]),_:3},8,[`as`,`as-child`,`class`]))}}),y=f(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60`,outline:`border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-9 px-4 py-2 has-[>svg]:px-3`,sm:`h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5`,lg:`h-10 rounded-md px-6 has-[>svg]:px-4`,icon:`size-9`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});export{m as a,h as i,v as n,_ as r,y as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{t as e}from"./createLucideIcon-KbkxXQD8.js";var t=e(`chevrons-up-down`,[[`path`,{d:`m7 15 5 5 5-5`,key:`1hf1tw`}],[`path`,{d:`m7 9 5-5 5 5`,key:`sgt6xg`}]]);export{t};
|
||||
1
monisuo-admin/dist/assets/circle-CK69KO4g.js
vendored
1
monisuo-admin/dist/assets/circle-CK69KO4g.js
vendored
@@ -1 +0,0 @@
|
||||
import{t as e}from"./createLucideIcon-KbkxXQD8.js";var t=e(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]);export{t};
|
||||
@@ -1 +0,0 @@
|
||||
import{t as e}from"./createLucideIcon-KbkxXQD8.js";var t=e(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),n=e(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),r=e(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),i=e(`circle-plus`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}],[`path`,{d:`M12 8v8`,key:`napkw2`}]]);export{t as i,r as n,n as r,i as t};
|
||||
1
monisuo-admin/dist/assets/coins-BGJqlTvD.js
vendored
1
monisuo-admin/dist/assets/coins-BGJqlTvD.js
vendored
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{A as e}from"./iconify-DYZHDLa8.js";var t=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},n=e=>e===``,r=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),i=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),a=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),o=e=>{let t=a(e);return t.charAt(0).toUpperCase()+t.slice(1)},s={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},c=({name:a,iconNode:c,absoluteStrokeWidth:l,"absolute-stroke-width":u,strokeWidth:d,"stroke-width":f,size:p=s.width,color:m=s.stroke,...h},{slots:g})=>e(`svg`,{...s,...h,width:p,height:p,stroke:m,"stroke-width":n(l)||n(u)||l===!0||u===!0?Number(d||f||s[`stroke-width`])*24/Number(p):d||f||s[`stroke-width`],class:r(`lucide`,h.class,...a?[`lucide-${i(o(a))}-icon`,`lucide-${i(a)}`]:[`lucide-icon`]),...!g.default&&!t(h)&&{"aria-hidden":`true`}},[...c.map(t=>e(...t)),...g.default?[g.default()]:[]]),l=(t,n)=>(r,{slots:i,attrs:a})=>e(c,{...a,...r,iconNode:n,name:t},i);export{l as t};
|
||||
316
monisuo-admin/dist/assets/dashboard-NuBCWisZ.js
vendored
316
monisuo-admin/dist/assets/dashboard-NuBCWisZ.js
vendored
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user