-
收入
+
收入(元)
-
- {{ thisIncome }} (元)
+
+ {{ thisIncome || 0 }}
-
支出
+
支出(元)
-
- {{ thisExpense }} (元)
+
+ {{ thisExpense || 0 }}
占比
-
- {{ thisShare }} (%)
+
+ {{ thisShare || 0 }}%
@@ -60,7 +60,6 @@ const selectedMap = ref
>({});
const totalAmountText = computed(() => {
if (!listAccount.value.length) return '0.00';
-
let total = 0;
listAccount.value.forEach(item => {
const name = item.accountName || '未知账户';
@@ -79,16 +78,14 @@ const formatPercent = (value: number) => {
const generateRandomColors = (count: number): string[] => {
const colorLibrary = [
- '#1890ff', '#52c41a', '#f5a623', '#fa8c16', '#722ed1', '#eb2f96',
- '#13c2c2', '#2f54eb', '#f7ba1e', '#f5222d', '#8543e0', '#0fc6c2',
- '#7cb305', '#ff7a45', '#ff4d4f', '#6b778c', '#5d7092', '#91d5ff'
+ '#40c4ff', '#20a0ff', '#096dd9', '#1890ff', '#69b1ff', '#8cc5ff',
+ '#91d5ff', '#b3d9f2', '#e6f7ff', '#0050b3', '#13c2c2', '#0fc6c2',
+ '#722ed1', '#52c41a', '#f5a623', '#fa8c16', '#eb2f96', '#2f54eb'
];
-
if (count <= colorLibrary.length) return colorLibrary.slice(0, count);
-
const colors = [...colorLibrary];
while (colors.length < count) {
- const hue = Math.floor(Math.random() * 360);
+ const hue = Math.floor(Math.random() * 60) + 180;
colors.push(`hsl(${hue}, 75%, 55%)`);
}
return colors;
@@ -105,10 +102,7 @@ const getThisData = async (params?: Record) => {
thisExpense.value = Number(res?.[0]?.index02) || 0;
thisShare.value = Number(res?.[0]?.index04) || 0;
} catch (error) {
- console.error('获取收支数据失败:', error);
- thisIncome.value = 0;
- thisExpense.value = 0;
- thisShare.value = 0;
+ console.error(error);
}
};
@@ -116,66 +110,59 @@ const fetchList = async () => {
try {
const res = await erpAccountListAll();
listAccount.value = res || [];
+ listAccount.value.forEach(item => {
+ const name = item.accountName || '未知账户';
+ if (selectedMap.value[name] === undefined) {
+ selectedMap.value[name] = true;
+ }
+ });
} catch (error) {
- console.error('获取账户列表失败:', error);
+ console.error(error);
listAccount.value = [];
}
};
const buildChartOption = (): EChartsOption => {
- if (!listAccount.value.length) {
- return {
- title: { text: '暂无账户数据', left: 'center', top: 'middle', textStyle: { fontSize: 14, color: '#999' } },
- tooltip: { trigger: 'item' },
- legend: { show: false },
- series: []
- };
- }
-
- const pieData = listAccount.value
+ const allPieData = listAccount.value
.map(item => ({
name: item.accountName || '未知账户',
value: Number(item.currentBalance) || 0
}))
.filter(item => item.value > 0 && item.name);
- if (!pieData.length) {
- return {
- title: { text: '暂无有效账户金额数据', left: 'center', top: 'middle', textStyle: { fontSize: 14, color: '#999' } },
- tooltip: { trigger: 'item' },
- legend: { show: false },
- series: []
- };
- }
+ const filteredPieData = allPieData.filter(item => selectedMap.value[item.name] !== false);
+ const colors = generateRandomColors(allPieData.length);
+ const filteredTotal = filteredPieData.reduce((sum, item) => sum + item.value, 0);
- const colors = generateRandomColors(pieData.length);
- const total = pieData.reduce((sum, item) => sum + item.value, 0);
-
const selected: Record = {};
- pieData.forEach(item => {
+ allPieData.forEach(item => {
selected[item.name] = selectedMap.value[item.name] !== false;
});
return {
tooltip: {
trigger: 'item',
- formatter: ({ name, value, percent }: any) => `${name}: ${value} 元 (${(percent * 100).toFixed(1)}%)`,
- textStyle: { fontSize: 11 },
+ formatter: ({ name, value }: any) => {
+ const percent = filteredTotal > 0 ? (value / filteredTotal) * 100 : 0;
+ return `${name}: ${value} 元 (${percent.toFixed(1)}%)`;
+ },
+ textStyle: { fontSize: 11, color: '#fff' },
padding: 8,
- backgroundColor: '#fff',
- borderColor: '#e8e8e8',
+ backgroundColor: 'rgba(9, 30, 58, 0.9)',
+ borderColor: 'rgba(32, 160, 255, 0.5)',
borderWidth: 1,
- borderRadius: 4
+ borderRadius: 4,
},
legend: {
+ show: true,
orient: 'vertical',
right: 10,
top: 'center',
- textStyle: { fontSize: 11, color: '#666' },
+ textStyle: { fontSize: 11, color: '#a0cfff' },
itemWidth: 10,
itemHeight: 10,
itemGap: 8,
- selected: selected,
+ selected,
formatter: (name: string) => name.length > 8 ? `${name.slice(0, 8)}...` : name
},
series: [{
@@ -184,28 +171,33 @@ const buildChartOption = (): EChartsOption => {
radius: ['30%', '70%'],
center: ['40%', '50%'],
avoidLabelOverlap: true,
- itemStyle: { borderRadius: 6, borderColor: '#fff', borderWidth: 1 },
+ itemStyle: {
+ borderRadius: 6,
+ borderColor: 'rgba(9, 30, 58, 0.8)',
+ borderWidth: 1
+ },
label: {
show: true,
fontSize: 11,
+ color: '#40c4ff',
+ distance: 10,
formatter: (params: any) => {
- if (total <= 0) return params.name;
- return `${params.name} ${formatPercent((params.value / total) * 100)}`;
- },
- color: '#333',
- distance: 10
+ if (filteredTotal <= 0) return params.name;
+ const percent = (params.value / filteredTotal) * 100;
+ return `${params.name} ${formatPercent(percent)}`;
+ }
},
labelLine: {
show: true,
length: 10,
length2: 8,
smooth: 0.2,
- lineStyle: { width: 1, color: '#999' }
+ lineStyle: { width: 1, color: '#91d5ff' }
},
- data: pieData.map((item, index) => ({
+ data: allPieData.map((item, index) => ({
name: item.name,
value: item.value,
- itemStyle: { color: colors[index] }
+ itemStyle: { color: colors[index] },
}))
}]
};
@@ -213,27 +205,16 @@ const buildChartOption = (): EChartsOption => {
const initChart = () => {
if (!chartDom.value) return;
-
if (myChart) {
- myChart.off('legendselectchanged');
myChart.dispose();
myChart = null;
}
-
- try {
- myChart = echarts.init(chartDom.value);
-
- myChart.on('legendselectchanged', (params: any) => {
- if (params && params.name !== undefined) {
- selectedMap.value[params.name] = params.selected[params.name];
- }
- });
-
- const option = buildChartOption();
- myChart.setOption(option);
- } catch (e) {
- console.error('初始化图表失败:', e);
- }
+ myChart = echarts.init(chartDom.value);
+ myChart.on('legendselectchanged', (params: any) => {
+ selectedMap.value[params.name] = params.selected[params.name];
+ myChart?.setOption(buildChartOption());
+ });
+ myChart.setOption(buildChartOption());
};
const resizeChart = () => {
@@ -244,7 +225,11 @@ const resizeChart = () => {
};
watch(() => props.formParams, async () => {
- await Promise.all([fetchList(), getThisData()]);
+ await getThisData();
+}, { deep: true });
+
+watch([listAccount, selectedMap], () => {
+ nextTick(() => myChart?.setOption(buildChartOption()));
}, { deep: true });
onMounted(async () => {
@@ -258,12 +243,8 @@ onMounted(async () => {
onUnmounted(() => {
if (resizeTimer) clearTimeout(resizeTimer);
window.removeEventListener('resize', resizeChart);
- if (myChart) {
- myChart.off('legendselectchanged');
- myChart.dispose();
- myChart = null;
- }
- selectedMap.value = {};
+ myChart?.dispose();
+ myChart = null;
});
@@ -272,17 +253,27 @@ onUnmounted(() => {
width: 100% !important;
height: 100% !important;
box-sizing: border-box !important;
- border-radius: 8px;
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
+ border-radius: 4px !important;
+ box-shadow: 0 0 15px rgba(32, 160, 255, 0.1) !important;
margin: 0 !important;
padding: 0 !important;
+ background: rgba(9, 30, 58, 0.8) !important;
+ border: 1px solid rgba(32, 160, 255, 0.3) !important;
}
:deep(.ant-card-head) {
padding: 0 16px !important;
- border-bottom: 1px solid #f0f0f0;
+ border-bottom: 1px solid rgba(32, 160, 255, 0.2) !important;
height: 56px !important;
line-height: 56px !important;
+ background: rgba(18, 60, 110, 0.7) !important;
+ border-radius: 8px 8px 0 0 !important;
+}
+
+:deep(.ant-card-head-title) {
+ color: #20a0ff !important;
+ font-weight: 600 !important;
+ text-shadow: 0 0 5px rgba(32, 160, 255, 0.2) !important;
}
:deep(.ant-card-body) {
@@ -293,17 +284,19 @@ onUnmounted(() => {
box-sizing: border-box !important;
overflow: hidden !important;
display: flex;
+ background: transparent !important;
}
.total-amount {
font-size: 14px;
- color: #333;
+ color: #a0cfff;
font-weight: 500;
}
.amount-value {
- color: #1890ff;
+ color: #40c4ff;
font-weight: 600;
+ text-shadow: 0 0 5px rgba(64, 196, 255, 0.5);
}
.layout-container {
@@ -316,53 +309,68 @@ onUnmounted(() => {
overflow: hidden !important;
align-items: center;
justify-content: flex-start;
+ background: transparent !important;
}
.left-panel {
width: 150px;
display: flex;
flex-direction: column;
- gap: 4px;
+ gap: 8px;
flex-shrink: 0;
overflow-y: auto;
overflow-x: hidden;
padding-right: 4px;
box-sizing: border-box;
- max-height: 100%;
+ height: 100%;
}
.stat-card {
- background-color: #f0f7ff;
- border-radius: 8px;
- padding: 4px;
- border: 1px solid #e6f4ff;
- flex-shrink: 0;
- min-height: 0;
+ background-color: rgba(18, 60, 110, 0.7) !important;
+ border-radius: 12px;
+ padding: 2px 4px;
+ border: 1px solid rgba(32, 160, 255, 0.3) !important;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ box-shadow: 0 0 10px rgba(32, 160, 255, 0.1) !important;
+ transition: all 0.2s ease;
+}
+
+.stat-card:hover {
+ border-color: rgba(64, 196, 255, 0.5) !important;
+ box-shadow: 0 0 15px rgba(32, 160, 255, 0.2) !important;
}
.stat-title {
font-size: 12px;
font-weight: 400;
- color: #1f2937;
- margin-bottom: 8px;
+ color: #a0cfff;
+ margin-bottom: 2px;
display: block;
}
.stat-content {
display: flex;
+ width: 100%;
align-items: center;
gap: 8px;
+ flex: 1;
+ align-items: center;
+ justify-content: center;
}
:deep(.stat-content .icon) {
flex-shrink: 0;
+ filter: hue-rotate(180deg) saturate(1.5);
}
.stat-value {
font-size: 14px;
font-weight: 600;
- color: #1890ff;
+ color: #40c4ff;
margin-left: auto;
+ text-shadow: 0 0 5px rgba(64, 196, 255, 0.3);
}
.right-panel {
@@ -372,6 +380,9 @@ onUnmounted(() => {
min-width: 0;
overflow: hidden !important;
max-height: 100%;
+ background: rgba(9, 30, 58, 0.5) !important;
+ border-radius: 20px;
+ border: 1px solid rgba(32, 160, 255, 0.2) !important;
}
.chart-container {
@@ -379,15 +390,16 @@ onUnmounted(() => {
height: 100% !important;
min-height: 0 !important;
box-sizing: border-box !important;
+ padding: 2px;
}
:deep(.left-panel::-webkit-scrollbar) {
width: 4px;
- background: transparent;
+ background: rgba(9, 30, 58, 0.3);
}
:deep(.left-panel::-webkit-scrollbar-thumb) {
- background: #d9d9d9;
+ background: rgba(32, 160, 255, 0.5);
border-radius: 2px;
}
@@ -400,7 +412,7 @@ onUnmounted(() => {
align-items: center;
justify-content: center;
}
-
+
.left-panel {
width: 100%;
height: auto !important;
@@ -411,22 +423,16 @@ onUnmounted(() => {
padding-right: 0;
padding-bottom: 4px;
}
-
+
.stat-card {
min-width: 120px;
+ flex: 1;
+ min-height: 80px;
}
-
+
.right-panel {
height: calc(100% - 132px) !important;
min-height: 200px;
}
-
- :deep(.echarts-legend) {
- top: auto !important;
- bottom: 10px !important;
- left: 0 !important;
- right: 0 !important;
- orient: 'horizontal' !important;
- }
}
\ No newline at end of file
diff --git a/web-vue/packages/erp/views/erp/green/components/ChartQuarter.vue b/web-vue/packages/erp/views/erp/green/components/ChartQuarter.vue
index 671c6f92..6b53e72e 100644
--- a/web-vue/packages/erp/views/erp/green/components/ChartQuarter.vue
+++ b/web-vue/packages/erp/views/erp/green/components/ChartQuarter.vue
@@ -1,13 +1,12 @@
-
-
+
+
\ No newline at end of file
diff --git a/web-vue/packages/erp/views/erp/green/components/ChartRank.vue b/web-vue/packages/erp/views/erp/green/components/ChartRank.vue
index 08d3be19..05135493 100644
--- a/web-vue/packages/erp/views/erp/green/components/ChartRank.vue
+++ b/web-vue/packages/erp/views/erp/green/components/ChartRank.vue
@@ -1,6 +1,6 @@
-
-
+
+
@@ -19,24 +19,20 @@ const chartDom = ref(null);
let chartInstance: echarts.ECharts | null = null;
let resizeTimer: number | null = null;
-// 格式化数字
const formatNumber = (num: string | undefined): number => {
if (!num) return 0;
const parsed = Number(num);
return isNaN(parsed) ? 0 : parsed;
};
-// 格式化金额显示
const formatMoney = (num: number): string => {
return num.toLocaleString('zh-CN');
};
-// 转换为万元单位
const toTenThousandYuan = (num: number): number => {
return Number((num / 10000).toFixed(2));
};
-// 按序号排序
const sortBySeq = (data: BizItemInfo[]): BizItemInfo[] => {
return data.sort((a, b) => {
const seqA = a.seq ? parseInt(a.seq, 10) : 999;
@@ -45,7 +41,6 @@ const sortBySeq = (data: BizItemInfo[]): BizItemInfo[] => {
});
};
-// 获取数据列表
const fetchDataList = async (params?: Record) => {
try {
const reqParams = {
@@ -62,86 +57,77 @@ const fetchDataList = async (params?: Record) => {
}
};
-// 获取排名对应的渐变颜色
const getRankColorGradient = (rank: number) => {
+ if (rank === 1) {
+ return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
+ { offset: 0, color: '#ff4d4f' },
+ { offset: 0.5, color: '#ff7875' },
+ { offset: 1, color: '#ff8c8c' }
+ ]);
+ } else if (rank === 2) {
+ return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
+ { offset: 0, color: '#ffa940' },
+ { offset: 0.5, color: '#ffc069' },
+ { offset: 1, color: '#ffd08f' }
+ ]);
+ } else if (rank === 3) {
+ return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
+ { offset: 0, color: '#ffec3d' },
+ { offset: 0.5, color: '#fff566' },
+ { offset: 1, color: '#fff98f' }
+ ]);
+ } else {
+ return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
+ { offset: 0, color: '#40a9ff' },
+ { offset: 0.5, color: '#69c0ff' },
+ { offset: 1, color: '#91d5ff' }
+ ]);
+ }
+};
+
+const getRankEmphasisColor = (rank: number) => {
if (rank === 1) {
return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{ offset: 0, color: '#f5222d' },
- { offset: 0.5, color: '#ff4d4f' },
- { offset: 1, color: '#ff7875' }
+ { offset: 1, color: '#ff4d4f' }
]);
} else if (rank === 2) {
return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{ offset: 0, color: '#fa8c16' },
- { offset: 0.5, color: '#ffa940' },
- { offset: 1, color: '#ffc069' }
+ { offset: 1, color: '#ffa940' }
]);
} else if (rank === 3) {
return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{ offset: 0, color: '#fadb14' },
- { offset: 0.5, color: '#ffec3d' },
- { offset: 1, color: '#fff566' }
+ { offset: 1, color: '#ffec3d' }
]);
} else {
return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{ offset: 0, color: '#1890ff' },
- { offset: 0.5, color: '#40a9ff' },
- { offset: 1, color: '#69c0ff' }
+ { offset: 1, color: '#40a9ff' }
]);
}
};
-// 获取hover时的强调色
-const getRankEmphasisColor = (rank: number) => {
- if (rank === 1) {
- return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
- { offset: 0, color: '#cf1322' },
- { offset: 1, color: '#f5222d' }
- ]);
- } else if (rank === 2) {
- return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
- { offset: 0, color: '#d46b08' },
- { offset: 1, color: '#fa8c16' }
- ]);
- } else if (rank === 3) {
- return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
- { offset: 0, color: '#d4b106' },
- { offset: 1, color: '#fadb14' }
- ]);
- } else {
- return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
- { offset: 0, color: '#096dd9' },
- { offset: 1, color: '#1890ff' }
- ]);
- }
-};
-
-// 初始化/更新图表
const initChart = () => {
- // 确保DOM元素存在
if (!chartDom.value) return;
- // 初始化图表实例(避免重复创建)
if (!chartInstance) {
chartInstance = echarts.init(chartDom.value);
}
- // 无数据时显示提示
if (rawData.value.length === 0) {
chartInstance.setOption({
+ backgroundColor: 'transparent',
title: {
left: 'center',
top: '50%',
- text: '暂无排名数据',
- textStyle: { fontSize: 18, color: '#333' }
+ textStyle: { fontSize: 18, color: '#a0cfff' }
},
- tooltip: { trigger: 'axis' },
- padding: [2, 2, 2, 2]
- }, true); // 第二个参数设为true,强制更新
+ }, true);
return;
}
- // 处理图表数据
const categories = rawData.value.map(item => item.xaxis || '').reverse();
const rawAmountData = rawData.value.map(item => formatNumber(item.index01)).reverse();
const amountData = rawAmountData.map(num => toTenThousandYuan(num));
@@ -151,46 +137,45 @@ const initChart = () => {
}).reverse();
const rankData = rawData.value.map(item => parseInt(item.seq || '0', 10)).reverse();
- // 图表配置项
const option = {
- padding: [2, 2, 2, 2],
+ backgroundColor: 'transparent',
tooltip: {
trigger: 'axis',
- axisPointer: { type: 'shadow' },
- textStyle: { fontSize: 12 },
+ axisPointer: { type: 'shadow', lineStyle: { color: '#40c4ff' } },
+ textStyle: { fontSize: 12, color: '#fff' },
padding: 12,
- backgroundColor: '#fff',
- borderColor: '#e8e8e8',
+ backgroundColor: 'rgba(9, 30, 58, 0.95)',
+ borderColor: 'rgba(32, 160, 255, 0.3)',
borderWidth: 1,
formatter: (params: any) => {
const index = params[0].dataIndex;
return `
- ${categories[index]}
- 排名:${rankData[index]}名
- 支出:${formatMoney(rawAmountData[index])} 元
- 占比:${ratioData[index]}%
+ ${categories[index]}
+ 排名:${rankData[index]}名
+ 支出:${formatMoney(rawAmountData[index])} 元
+ 占比:${ratioData[index]}%
`;
}
},
grid: {
- left: '2%',
- right: '18%',
- top: '2%',
- bottom: '2%',
+ left: 10,
+ right: 120,
+ top: 10,
+ bottom: 12,
containLabel: true
},
xAxis: [
{
type: 'value',
name: '支出金额 (万元)',
- nameTextStyle: { fontSize: 11, color: '#666' },
+ nameTextStyle: { fontSize: 11, color: '#a0cfff' },
axisLabel: {
fontSize: 10,
- color: '#666',
+ color: '#a0cfff',
formatter: (value: number) => value.toFixed(1)
},
- axisLine: { lineStyle: { color: '#e8e8e8' } },
- splitLine: { lineStyle: { color: '#f5f5f5' } }
+ axisLine: { lineStyle: { color: 'rgba(32, 160, 255, 0.3)' } },
+ splitLine: { lineStyle: { color: 'rgba(32, 160, 255, 0.1)' } }
}
],
yAxis: [
@@ -199,7 +184,7 @@ const initChart = () => {
data: categories,
axisLabel: {
fontSize: 11,
- color: '#333',
+ color: '#a0cfff',
formatter: (name: string, index: number) => {
const shortName = name.length > 8 ? `${name.substring(0, 8)}...` : name;
return `${rankData[index]} ${shortName}`;
@@ -209,7 +194,7 @@ const initChart = () => {
axisTick: { show: false },
splitLine: {
lineStyle: {
- color: ['#fafafa', '#fff'],
+ color: 'rgba(32, 160, 255, 0.1)',
type: 'solid'
}
}
@@ -223,29 +208,33 @@ const initChart = () => {
barWidth: 12,
itemStyle: {
borderRadius: [0, 4, 4, 0],
- color: (params: any) => getRankColorGradient(rankData[params.dataIndex])
+ color: (params: any) => getRankColorGradient(rankData[params.dataIndex]),
+ borderColor: 'rgba(255,255,255,0.2)',
+ borderWidth: 0.5
},
label: {
show: true,
position: 'right',
fontSize: 10,
- color: '#666',
- formatter: (params: any) => `${params.data}万元 (${ratioData[params.dataIndex]}%)`
+ color: '#40c4ff',
+ formatter: (params: any) => `${params.data}万元 (${ratioData[params.dataIndex]}%)`,
+ textShadowColor: 'rgba(0,0,0,0.3)',
+ textShadowBlur: 1
},
emphasis: {
itemStyle: {
- color: (params: any) => getRankEmphasisColor(rankData[params.dataIndex])
+ color: (params: any) => getRankEmphasisColor(rankData[params.dataIndex]),
+ shadowColor: 'rgba(255,255,255,0.2)',
+ shadowBlur: 5
}
}
}
]
};
- // 设置配置项,强制更新(关键:第二个参数为true)
chartInstance.setOption(option, true);
};
-// 防抖调整图表大小
const resizeChart = () => {
if (chartInstance) {
chartInstance.resize({
@@ -262,7 +251,6 @@ const debounceResize = () => {
resizeTimer = window.setTimeout(resizeChart, 100);
};
-// 监听formParams变化,重新获取数据
watch(
() => props.formParams,
(newParams) => {
@@ -273,28 +261,20 @@ watch(
{ deep: true, immediate: true }
);
-// 监听数据变化,更新图表(使用watchEffect更高效)
watchEffect(() => {
- // 当rawData或chartDom变化时,重新初始化图表
if (rawData.value || chartDom.value) {
initChart();
}
});
-// 生命周期
onMounted(() => {
- // 初始加载数据
fetchDataList(props.formParams);
- // 监听窗口大小变化
window.addEventListener('resize', debounceResize);
});
onUnmounted(() => {
- // 清理定时器
if (resizeTimer) clearTimeout(resizeTimer);
- // 移除事件监听
window.removeEventListener('resize', debounceResize);
- // 销毁图表实例
if (chartInstance) {
chartInstance.dispose();
chartInstance = null;
@@ -303,78 +283,66 @@ onUnmounted(() => {
\ No newline at end of file
diff --git a/web-vue/packages/erp/views/erp/green/components/ChartYear.vue b/web-vue/packages/erp/views/erp/green/components/ChartYear.vue
index 1bb3a165..6ba5019c 100644
--- a/web-vue/packages/erp/views/erp/green/components/ChartYear.vue
+++ b/web-vue/packages/erp/views/erp/green/components/ChartYear.vue
@@ -1,20 +1,18 @@
-
-
+
+
\ No newline at end of file
diff --git a/web-vue/pnpm-lock.yaml b/web-vue/pnpm-lock.yaml
index f9197486..e2df3b03 100644
--- a/web-vue/pnpm-lock.yaml
+++ b/web-vue/pnpm-lock.yaml
@@ -171,6 +171,9 @@ importers:
rimraf:
specifier: 6.0.1
version: 6.0.1
+ sass-embedded:
+ specifier: ^1.97.3
+ version: 1.97.3
stylelint:
specifier: 16.25.0
version: 16.25.0(typescript@5.9.3)
@@ -203,10 +206,10 @@ importers:
version: 5.9.3
unocss:
specifier: 66.5.3
- version: 66.5.3(postcss@8.5.6)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ version: 66.5.3(postcss@8.5.6)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
vite:
specifier: 7.1.9
- version: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ version: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
packages/assets: {}
@@ -325,16 +328,16 @@ importers:
version: 1.15.8
'@vitejs/plugin-vue':
specifier: 6.0.1
- version: 6.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))
+ version: 6.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))
rollup-plugin-visualizer:
specifier: 6.0.4
version: 6.0.4(rollup@4.53.3)
vite-plugin-dts:
specifier: 4.5.4
- version: 4.5.4(@types/node@24.7.2)(rollup@4.53.3)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ version: 4.5.4(@types/node@24.7.2)(rollup@4.53.3)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
vite-plugin-theme-vite3:
specifier: 2.0.1
- version: 2.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ version: 2.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
packages/dbm:
dependencies:
@@ -381,13 +384,13 @@ importers:
devDependencies:
'@vitejs/plugin-vue':
specifier: 6.0.1
- version: 6.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))
+ version: 6.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))
vite-plugin-dts:
specifier: 4.5.4
- version: 4.5.4(@types/node@24.7.2)(rollup@4.53.3)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ version: 4.5.4(@types/node@24.7.2)(rollup@4.53.3)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
vitest:
specifier: 3.2.4
- version: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ version: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
packages/erp:
dependencies:
@@ -478,13 +481,13 @@ importers:
version: 11.0.4
'@vitejs/plugin-legacy':
specifier: 7.2.1
- version: 7.2.1(terser@5.44.1)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ version: 7.2.1(terser@5.44.1)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
'@vitejs/plugin-vue':
specifier: 6.0.1
- version: 6.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))
+ version: 6.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))
'@vitejs/plugin-vue-jsx':
specifier: 5.1.1
- version: 5.1.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))
+ version: 5.1.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))
dotenv:
specifier: 17.2.3
version: 17.2.3
@@ -499,28 +502,28 @@ importers:
version: 6.0.4(rollup@4.53.3)
unbuild:
specifier: 3.6.1
- version: 3.6.1(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))
+ version: 3.6.1(sass@1.97.3)(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))
unocss:
specifier: 66.5.3
- version: 66.5.3(postcss@8.5.6)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ version: 66.5.3(postcss@8.5.6)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
vite-plugin-compression:
specifier: 0.5.1
- version: 0.5.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ version: 0.5.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
vite-plugin-html:
specifier: 3.2.2
- version: 3.2.2(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ version: 3.2.2(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
vite-plugin-mkcert:
specifier: 1.17.9
- version: 1.17.9(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ version: 1.17.9(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
vite-plugin-monaco-editor-esm:
specifier: 2.0.2
version: 2.0.2(monaco-editor@0.54.0)
vite-plugin-theme-vite3:
specifier: 2.0.1
- version: 2.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ version: 2.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
vite-plugin-vue-setup-extend:
specifier: 0.4.0
- version: 0.4.0(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ version: 0.4.0(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
web: {}
@@ -1079,6 +1082,9 @@ packages:
resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
engines: {node: '>=6.9.0'}
+ '@bufbuild/protobuf@2.11.0':
+ resolution: {integrity: sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==}
+
'@cacheable/memory@2.0.6':
resolution: {integrity: sha512-7e8SScMocHxcAb8YhtkbMhGG+EKLRIficb1F5sjvhSYsWTZGxvg4KIDp8kgxnV2PUJ3ddPe6J9QESjKvBWRDkg==}
@@ -1777,6 +1783,94 @@ packages:
'@paralleldrive/cuid2@2.3.1':
resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==}
+ '@parcel/watcher-android-arm64@2.5.6':
+ resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ '@parcel/watcher-darwin-arm64@2.5.6':
+ resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@parcel/watcher-darwin-x64@2.5.6':
+ resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@parcel/watcher-freebsd-x64@2.5.6':
+ resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@parcel/watcher-linux-arm-glibc@2.5.6':
+ resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm-musl@2.5.6':
+ resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.6':
+ resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm64-musl@2.5.6':
+ resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-x64-glibc@2.5.6':
+ resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-x64-musl@2.5.6':
+ resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-win32-arm64@2.5.6':
+ resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@parcel/watcher-win32-ia32@2.5.6':
+ resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@parcel/watcher-win32-x64@2.5.6':
+ resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@parcel/watcher@2.5.6':
+ resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==}
+ engines: {node: '>= 10.0.0'}
+
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@@ -2931,6 +3025,10 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
+ chokidar@4.0.3:
+ resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+ engines: {node: '>= 14.16.0'}
+
citty@0.1.6:
resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==}
@@ -2977,6 +3075,9 @@ packages:
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+ colorjs.io@0.5.2:
+ resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==}
+
combined-stream@1.0.8:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'}
@@ -3261,6 +3362,10 @@ packages:
resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==}
engines: {node: '>=12.20'}
+ detect-libc@2.1.2:
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
+ engines: {node: '>=8'}
+
detect-newline@4.0.1:
resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -3776,6 +3881,7 @@ packages:
glob@10.5.0:
resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
hasBin: true
glob@11.1.0:
@@ -3943,6 +4049,9 @@ packages:
immer@9.0.21:
resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
+ immutable@5.1.4:
+ resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==}
+
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
@@ -4507,6 +4616,9 @@ packages:
no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+ node-addon-api@7.1.1:
+ resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
+
node-fetch-native@1.6.7:
resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
@@ -5068,6 +5180,10 @@ packages:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
+ readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+ engines: {node: '>= 14.18.0'}
+
regenerate-unicode-properties@10.2.2:
resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==}
engines: {node: '>=4'}
@@ -5173,6 +5289,9 @@ packages:
run-series@1.1.9:
resolution: {integrity: sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==}
+ rxjs@7.8.2:
+ resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
+
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -5183,6 +5302,128 @@ packages:
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+ sass-embedded-all-unknown@1.97.3:
+ resolution: {integrity: sha512-t6N46NlPuXiY3rlmG6/+1nwebOBOaLFOOVqNQOC2cJhghOD4hh2kHNQQTorCsbY9S1Kir2la1/XLBwOJfui0xg==}
+ cpu: ['!arm', '!arm64', '!riscv64', '!x64']
+
+ sass-embedded-android-arm64@1.97.3:
+ resolution: {integrity: sha512-aiZ6iqiHsUsaDx0EFbbmmA0QgxicSxVVN3lnJJ0f1RStY0DthUkquGT5RJ4TPdaZ6ebeJWkboV4bra+CP766eA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ sass-embedded-android-arm@1.97.3:
+ resolution: {integrity: sha512-cRTtf/KV/q0nzGZoUzVkeIVVFv3L/tS1w4WnlHapphsjTXF/duTxI8JOU1c/9GhRPiMdfeXH7vYNcMmtjwX7jg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [android]
+
+ sass-embedded-android-riscv64@1.97.3:
+ resolution: {integrity: sha512-zVEDgl9JJodofGHobaM/q6pNETG69uuBIGQHRo789jloESxxZe82lI3AWJQuPmYCOG5ElfRthqgv89h3gTeLYA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [riscv64]
+ os: [android]
+
+ sass-embedded-android-x64@1.97.3:
+ resolution: {integrity: sha512-3ke0le7ZKepyXn/dKKspYkpBC0zUk/BMciyP5ajQUDy4qJwobd8zXdAq6kOkdiMB+d9UFJOmEkvgFJHl3lqwcw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [android]
+
+ sass-embedded-darwin-arm64@1.97.3:
+ resolution: {integrity: sha512-fuqMTqO4gbOmA/kC5b9y9xxNYw6zDEyfOtMgabS7Mz93wimSk2M1quQaTJnL98Mkcsl2j+7shNHxIS/qpcIDDA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ sass-embedded-darwin-x64@1.97.3:
+ resolution: {integrity: sha512-b/2RBs/2bZpP8lMkyZ0Px0vkVkT8uBd0YXpOwK7iOwYkAT8SsO4+WdVwErsqC65vI5e1e5p1bb20tuwsoQBMVA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ sass-embedded-linux-arm64@1.97.3:
+ resolution: {integrity: sha512-IP1+2otCT3DuV46ooxPaOKV1oL5rLjteRzf8ldZtfIEcwhSgSsHgA71CbjYgLEwMY9h4jeal8Jfv3QnedPvSjg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: glibc
+
+ sass-embedded-linux-arm@1.97.3:
+ resolution: {integrity: sha512-2lPQ7HQQg4CKsH18FTsj2hbw5GJa6sBQgDsls+cV7buXlHjqF8iTKhAQViT6nrpLK/e8nFCoaRgSqEC8xMnXuA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: glibc
+
+ sass-embedded-linux-musl-arm64@1.97.3:
+ resolution: {integrity: sha512-Lij0SdZCsr+mNRSyDZ7XtJpXEITrYsaGbOTz5e6uFLJ9bmzUbV7M8BXz2/cA7bhfpRPT7/lwRKPdV4+aR9Ozcw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: musl
+
+ sass-embedded-linux-musl-arm@1.97.3:
+ resolution: {integrity: sha512-cBTMU68X2opBpoYsSZnI321gnoaiMBEtc+60CKCclN6PCL3W3uXm8g4TLoil1hDD6mqU9YYNlVG6sJ+ZNef6Lg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: musl
+
+ sass-embedded-linux-musl-riscv64@1.97.3:
+ resolution: {integrity: sha512-sBeLFIzMGshR4WmHAD4oIM7WJVkSoCIEwutzptFtGlSlwfNiijULp+J5hA2KteGvI6Gji35apR5aWj66wEn/iA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [riscv64]
+ os: [linux]
+ libc: musl
+
+ sass-embedded-linux-musl-x64@1.97.3:
+ resolution: {integrity: sha512-/oWJ+OVrDg7ADDQxRLC/4g1+Nsz1g4mkYS2t6XmyMJKFTFK50FVI2t5sOdFH+zmMp+nXHKM036W94y9m4jjEcw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: musl
+
+ sass-embedded-linux-riscv64@1.97.3:
+ resolution: {integrity: sha512-l3IfySApLVYdNx0Kjm7Zehte1CDPZVcldma3dZt+TfzvlAEerM6YDgsk5XEj3L8eHBCgHgF4A0MJspHEo2WNfA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [riscv64]
+ os: [linux]
+ libc: glibc
+
+ sass-embedded-linux-x64@1.97.3:
+ resolution: {integrity: sha512-Kwqwc/jSSlcpRjULAOVbndqEy2GBzo6OBmmuBVINWUaJLJ8Kczz3vIsDUWLfWz/kTEw9FHBSiL0WCtYLVAXSLg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: glibc
+
+ sass-embedded-unknown-all@1.97.3:
+ resolution: {integrity: sha512-/GHajyYJmvb0IABUQHbVHf1nuHPtIDo/ClMZ81IDr59wT5CNcMe7/dMNujXwWugtQVGI5UGmqXWZQCeoGnct8Q==}
+ os: ['!android', '!darwin', '!linux', '!win32']
+
+ sass-embedded-win32-arm64@1.97.3:
+ resolution: {integrity: sha512-RDGtRS1GVvQfMGAmVXNxYiUOvPzn9oO1zYB/XUM9fudDRnieYTcUytpNTQZLs6Y1KfJxgt5Y+giRceC92fT8Uw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ sass-embedded-win32-x64@1.97.3:
+ resolution: {integrity: sha512-SFRa2lED9UEwV6vIGeBXeBOLKF+rowF3WmNfb/BzhxmdAsKofCXrJ8ePW7OcDVrvNEbTOGwhsReIsF5sH8fVaw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ sass-embedded@1.97.3:
+ resolution: {integrity: sha512-eKzFy13Nk+IRHhlAwP3sfuv+PzOrvzUkwJK2hdoCKYcWGSdmwFpeGpWmyewdw8EgBnsKaSBtgf/0b2K635ecSA==}
+ engines: {node: '>=16.0.0'}
+ hasBin: true
+
+ sass@1.97.3:
+ resolution: {integrity: sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
sax@1.4.3:
resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==}
@@ -5521,6 +5762,14 @@ packages:
engines: {node: '>=16'}
hasBin: true
+ sync-child-process@1.0.2:
+ resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==}
+ engines: {node: '>=16.0.0'}
+
+ sync-message-port@1.2.0:
+ resolution: {integrity: sha512-gAQ9qrUN/UCypHtGFbbe7Rc/f9bzO88IwrG8TDo/aMKAApKyD6E3W4Cm0EfhfBb6Z6SKt59tTCTfD+n1xmAvMg==}
+ engines: {node: '>=16.0.0'}
+
synckit@0.11.11:
resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -5832,6 +6081,9 @@ packages:
v8-compile-cache-lib@3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+ varint@6.0.0:
+ resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==}
+
vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
@@ -6908,6 +7160,8 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.28.5
+ '@bufbuild/protobuf@2.11.0': {}
+
'@cacheable/memory@2.0.6':
dependencies:
'@cacheable/utils': 2.3.2
@@ -7489,6 +7743,67 @@ snapshots:
dependencies:
'@noble/hashes': 1.8.0
+ '@parcel/watcher-android-arm64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-darwin-arm64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-darwin-x64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-freebsd-x64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm-glibc@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm-musl@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-musl@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-x64-glibc@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-x64-musl@2.5.6':
+ optional: true
+
+ '@parcel/watcher-win32-arm64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-win32-ia32@2.5.6':
+ optional: true
+
+ '@parcel/watcher-win32-x64@2.5.6':
+ optional: true
+
+ '@parcel/watcher@2.5.6':
+ dependencies:
+ detect-libc: 2.1.2
+ is-glob: 4.0.3
+ node-addon-api: 7.1.1
+ picomatch: 4.0.3
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.5.6
+ '@parcel/watcher-darwin-arm64': 2.5.6
+ '@parcel/watcher-darwin-x64': 2.5.6
+ '@parcel/watcher-freebsd-x64': 2.5.6
+ '@parcel/watcher-linux-arm-glibc': 2.5.6
+ '@parcel/watcher-linux-arm-musl': 2.5.6
+ '@parcel/watcher-linux-arm64-glibc': 2.5.6
+ '@parcel/watcher-linux-arm64-musl': 2.5.6
+ '@parcel/watcher-linux-x64-glibc': 2.5.6
+ '@parcel/watcher-linux-x64-musl': 2.5.6
+ '@parcel/watcher-win32-arm64': 2.5.6
+ '@parcel/watcher-win32-ia32': 2.5.6
+ '@parcel/watcher-win32-x64': 2.5.6
+ optional: true
+
'@pkgjs/parseargs@0.11.0':
optional: true
@@ -8082,13 +8397,13 @@ snapshots:
'@typescript-eslint/types': 8.49.0
eslint-visitor-keys: 4.2.1
- '@unocss/astro@66.5.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))':
+ '@unocss/astro@66.5.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))':
dependencies:
'@unocss/core': 66.5.3
'@unocss/reset': 66.5.3
- '@unocss/vite': 66.5.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ '@unocss/vite': 66.5.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
optionalDependencies:
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
'@unocss/cli@66.5.3':
dependencies:
@@ -8239,7 +8554,7 @@ snapshots:
dependencies:
'@unocss/core': 66.5.3
- '@unocss/vite@66.5.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))':
+ '@unocss/vite@66.5.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))':
dependencies:
'@jridgewell/remapping': 2.3.5
'@unocss/config': 66.5.3
@@ -8250,7 +8565,7 @@ snapshots:
pathe: 2.0.3
tinyglobby: 0.2.15
unplugin-utils: 0.3.1
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
'@uppy/companion-client@2.2.2':
dependencies:
@@ -8281,7 +8596,7 @@ snapshots:
'@uppy/utils': 4.1.3
nanoid: 3.3.11
- '@vitejs/plugin-legacy@7.2.1(terser@5.44.1)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))':
+ '@vitejs/plugin-legacy@7.2.1(terser@5.44.1)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))':
dependencies:
'@babel/core': 7.28.5
'@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5)
@@ -8296,26 +8611,26 @@ snapshots:
regenerator-runtime: 0.14.1
systemjs: 6.15.1
terser: 5.44.1
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
- '@vitejs/plugin-vue-jsx@5.1.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))':
+ '@vitejs/plugin-vue-jsx@5.1.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))':
dependencies:
'@babel/core': 7.28.5
'@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5)
'@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5)
'@rolldown/pluginutils': 1.0.0-beta.54
'@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.5)
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
vue: 3.5.22(typescript@5.9.3)
transitivePeerDependencies:
- supports-color
- '@vitejs/plugin-vue@6.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))':
+ '@vitejs/plugin-vue@6.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.22(typescript@5.9.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-beta.29
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
vue: 3.5.22(typescript@5.9.3)
'@vitest/expect@3.2.4':
@@ -8326,13 +8641,13 @@ snapshots:
chai: 5.3.3
tinyrainbow: 2.0.0
- '@vitest/mocker@3.2.4(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))':
+ '@vitest/mocker@3.2.4(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))':
dependencies:
'@vitest/spy': 3.2.4
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
'@vitest/pretty-format@3.2.4':
dependencies:
@@ -8961,6 +9276,11 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ chokidar@4.0.3:
+ dependencies:
+ readdirp: 4.1.2
+ optional: true
+
citty@0.1.6:
dependencies:
consola: 3.4.2
@@ -9009,6 +9329,8 @@ snapshots:
colorette@2.0.20: {}
+ colorjs.io@0.5.2: {}
+
combined-stream@1.0.8:
dependencies:
delayed-stream: 1.0.0
@@ -9254,6 +9576,9 @@ snapshots:
detect-indent@7.0.2: {}
+ detect-libc@2.1.2:
+ optional: true
+
detect-newline@4.0.1: {}
dezalgo@1.0.4:
@@ -10043,6 +10368,8 @@ snapshots:
immer@9.0.21: {}
+ immutable@5.1.4: {}
+
import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
@@ -10506,7 +10833,7 @@ snapshots:
mkdirp@1.0.4: {}
- mkdist@2.4.1(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3)):
+ mkdist@2.4.1(sass@1.97.3)(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3)):
dependencies:
autoprefixer: 10.4.21(postcss@8.5.6)
citty: 0.1.6
@@ -10522,6 +10849,7 @@ snapshots:
semver: 7.7.3
tinyglobby: 0.2.15
optionalDependencies:
+ sass: 1.97.3
typescript: 5.9.3
vue: 3.5.22(typescript@5.9.3)
vue-tsc: 3.1.1(typescript@5.9.3)
@@ -10587,6 +10915,9 @@ snapshots:
lower-case: 2.0.2
tslib: 2.8.1
+ node-addon-api@7.1.1:
+ optional: true
+
node-fetch-native@1.6.7: {}
node-html-parser@5.4.2:
@@ -11172,6 +11503,9 @@ snapshots:
dependencies:
picomatch: 2.3.1
+ readdirp@4.1.2:
+ optional: true
+
regenerate-unicode-properties@10.2.2:
dependencies:
regenerate: 1.4.2
@@ -11290,6 +11624,10 @@ snapshots:
run-series@1.1.9: {}
+ rxjs@7.8.2:
+ dependencies:
+ tslib: 2.8.1
+
safe-buffer@5.2.1: {}
safe-regex-test@1.1.0:
@@ -11300,6 +11638,102 @@ snapshots:
safer-buffer@2.1.2: {}
+ sass-embedded-all-unknown@1.97.3:
+ dependencies:
+ sass: 1.97.3
+ optional: true
+
+ sass-embedded-android-arm64@1.97.3:
+ optional: true
+
+ sass-embedded-android-arm@1.97.3:
+ optional: true
+
+ sass-embedded-android-riscv64@1.97.3:
+ optional: true
+
+ sass-embedded-android-x64@1.97.3:
+ optional: true
+
+ sass-embedded-darwin-arm64@1.97.3:
+ optional: true
+
+ sass-embedded-darwin-x64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-arm64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-arm@1.97.3:
+ optional: true
+
+ sass-embedded-linux-musl-arm64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-musl-arm@1.97.3:
+ optional: true
+
+ sass-embedded-linux-musl-riscv64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-musl-x64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-riscv64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-x64@1.97.3:
+ optional: true
+
+ sass-embedded-unknown-all@1.97.3:
+ dependencies:
+ sass: 1.97.3
+ optional: true
+
+ sass-embedded-win32-arm64@1.97.3:
+ optional: true
+
+ sass-embedded-win32-x64@1.97.3:
+ optional: true
+
+ sass-embedded@1.97.3:
+ dependencies:
+ '@bufbuild/protobuf': 2.11.0
+ colorjs.io: 0.5.2
+ immutable: 5.1.4
+ rxjs: 7.8.2
+ supports-color: 8.1.1
+ sync-child-process: 1.0.2
+ varint: 6.0.0
+ optionalDependencies:
+ sass-embedded-all-unknown: 1.97.3
+ sass-embedded-android-arm: 1.97.3
+ sass-embedded-android-arm64: 1.97.3
+ sass-embedded-android-riscv64: 1.97.3
+ sass-embedded-android-x64: 1.97.3
+ sass-embedded-darwin-arm64: 1.97.3
+ sass-embedded-darwin-x64: 1.97.3
+ sass-embedded-linux-arm: 1.97.3
+ sass-embedded-linux-arm64: 1.97.3
+ sass-embedded-linux-musl-arm: 1.97.3
+ sass-embedded-linux-musl-arm64: 1.97.3
+ sass-embedded-linux-musl-riscv64: 1.97.3
+ sass-embedded-linux-musl-x64: 1.97.3
+ sass-embedded-linux-riscv64: 1.97.3
+ sass-embedded-linux-x64: 1.97.3
+ sass-embedded-unknown-all: 1.97.3
+ sass-embedded-win32-arm64: 1.97.3
+ sass-embedded-win32-x64: 1.97.3
+
+ sass@1.97.3:
+ dependencies:
+ chokidar: 4.0.3
+ immutable: 5.1.4
+ source-map-js: 1.2.1
+ optionalDependencies:
+ '@parcel/watcher': 2.5.6
+ optional: true
+
sax@1.4.3: {}
scroll-into-view-if-needed@2.2.31:
@@ -11655,6 +12089,12 @@ snapshots:
picocolors: 1.1.1
sax: 1.4.3
+ sync-child-process@1.0.2:
+ dependencies:
+ sync-message-port: 1.2.0
+
+ sync-message-port@1.2.0: {}
+
synckit@0.11.11:
dependencies:
'@pkgr/core': 0.2.9
@@ -11843,7 +12283,7 @@ snapshots:
ufo@1.6.1: {}
- unbuild@3.6.1(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3)):
+ unbuild@3.6.1(sass@1.97.3)(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3)):
dependencies:
'@rollup/plugin-alias': 5.1.1(rollup@4.53.3)
'@rollup/plugin-commonjs': 28.0.9(rollup@4.53.3)
@@ -11859,7 +12299,7 @@ snapshots:
hookable: 5.5.3
jiti: 2.6.1
magic-string: 0.30.21
- mkdist: 2.4.1(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))
+ mkdist: 2.4.1(sass@1.97.3)(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))
mlly: 1.8.0
pathe: 2.0.3
pkg-types: 2.3.0
@@ -11911,9 +12351,9 @@ snapshots:
universalify@2.0.1: {}
- unocss@66.5.3(postcss@8.5.6)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)):
+ unocss@66.5.3(postcss@8.5.6)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)):
dependencies:
- '@unocss/astro': 66.5.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ '@unocss/astro': 66.5.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
'@unocss/cli': 66.5.3
'@unocss/core': 66.5.3
'@unocss/postcss': 66.5.3(postcss@8.5.6)
@@ -11931,9 +12371,9 @@ snapshots:
'@unocss/transformer-compile-class': 66.5.3
'@unocss/transformer-directives': 66.5.3
'@unocss/transformer-variant-group': 66.5.3
- '@unocss/vite': 66.5.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ '@unocss/vite': 66.5.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
optionalDependencies:
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- postcss
- supports-color
@@ -11969,19 +12409,21 @@ snapshots:
v8-compile-cache-lib@3.0.1: {}
+ varint@6.0.0: {}
+
vary@1.1.2: {}
vditor@3.11.2:
dependencies:
diff-match-patch: 1.0.5
- vite-node@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2):
+ vite-node@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2):
dependencies:
cac: 6.7.14
debug: 4.4.3(supports-color@5.5.0)
es-module-lexer: 1.7.0
pathe: 2.0.3
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -11996,16 +12438,16 @@ snapshots:
- tsx
- yaml
- vite-plugin-compression@0.5.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)):
+ vite-plugin-compression@0.5.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)):
dependencies:
chalk: 4.1.2
debug: 4.4.3(supports-color@5.5.0)
fs-extra: 10.1.0
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
- vite-plugin-dts@4.5.4(@types/node@24.7.2)(rollup@4.53.3)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)):
+ vite-plugin-dts@4.5.4(@types/node@24.7.2)(rollup@4.53.3)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)):
dependencies:
'@microsoft/api-extractor': 7.55.2(@types/node@24.7.2)
'@rollup/pluginutils': 5.3.0(rollup@4.53.3)
@@ -12018,13 +12460,13 @@ snapshots:
magic-string: 0.30.21
typescript: 5.9.3
optionalDependencies:
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- '@types/node'
- rollup
- supports-color
- vite-plugin-html@3.2.2(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)):
+ vite-plugin-html@3.2.2(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)):
dependencies:
'@rollup/pluginutils': 4.2.1
colorette: 2.0.20
@@ -12038,14 +12480,14 @@ snapshots:
html-minifier-terser: 6.1.0
node-html-parser: 5.4.2
pathe: 0.2.0
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
- vite-plugin-mkcert@1.17.9(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)):
+ vite-plugin-mkcert@1.17.9(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)):
dependencies:
axios: 1.12.2(debug@4.4.3)
debug: 4.4.3(supports-color@5.5.0)
picocolors: 1.1.1
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
@@ -12053,7 +12495,7 @@ snapshots:
dependencies:
monaco-editor: 0.54.0
- vite-plugin-theme-vite3@2.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)):
+ vite-plugin-theme-vite3@2.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)):
dependencies:
'@types/node': 24.1.0
'@types/tinycolor2': 1.4.6
@@ -12063,17 +12505,17 @@ snapshots:
esbuild-plugin-alias: 0.2.1
picocolors: 1.1.1
tinycolor2: 1.6.0
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
- vite-plugin-vue-setup-extend@0.4.0(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)):
+ vite-plugin-vue-setup-extend@0.4.0(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)):
dependencies:
'@vue/compiler-sfc': 3.5.22
magic-string: 0.25.9
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
- vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2):
+ vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2):
dependencies:
esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.3)
@@ -12086,14 +12528,16 @@ snapshots:
fsevents: 2.3.3
jiti: 2.6.1
less: 4.4.2
+ sass: 1.97.3
+ sass-embedded: 1.97.3
terser: 5.44.1
yaml: 2.8.2
- vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2):
+ vitest@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2):
dependencies:
'@types/chai': 5.2.3
'@vitest/expect': 3.2.4
- '@vitest/mocker': 3.2.4(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2))
+ '@vitest/mocker': 3.2.4(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
@@ -12111,8 +12555,8 @@ snapshots:
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
- vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
- vite-node: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(yaml@2.8.2)
+ vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
+ vite-node: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.44.1)(yaml@2.8.2)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 24.7.2