Skip to content

Commit eb89b8f

Browse files
committed
chore: use built-in pattern component
1 parent ccc8b87 commit eb89b8f

File tree

3 files changed

+42
-392
lines changed

3 files changed

+42
-392
lines changed

app/components/Chart/SplitSparkline.vue

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script setup lang="ts">
22
import { VueUiSparkline } from 'vue-data-ui/vue-ui-sparkline'
3+
import { VueUiPatternSeed } from 'vue-data-ui/vue-ui-pattern-seed'
34
import { useCssVariables } from '~/composables/useColors'
45
import {
56
type VueUiSparklineConfig,
@@ -194,19 +195,31 @@ const configs = computed(() => {
194195
<ClientOnly v-for="(config, i) in configs" :key="`config_${i}`">
195196
<div @mouseleave="resetHover" @keydown.esc="resetHover" class="w-full max-w-[400px] mx-auto">
196197
<div class="flex gap-2 place-items-center">
197-
<div class="h-3 w-3">
198-
<svg viewBox="0 0 2 2" class="w-full">
198+
<div class="h-5 w-5">
199+
<svg viewBox="0 0 30 30" class="w-full">
200+
<defs>
201+
<VueUiPatternSeed
202+
v-if="i != 0"
203+
:id="`marker_${i}`"
204+
:seed="i"
205+
:foreground-color="colors.bg!"
206+
:background-color="dataset?.[i]?.color ?? palette[i]"
207+
:max-size="CHART_PATTERN_CONFIG.maxSize"
208+
:min-size="CHART_PATTERN_CONFIG.minSize"
209+
:disambiguator="CHART_PATTERN_CONFIG.disambiguator"
210+
/>
211+
</defs>
199212
<rect
200213
x="0"
201214
y="0"
202-
width="2"
203-
height="2"
204-
rx="0.3"
205-
:fill="dataset?.[i]?.color ?? palette[i]"
215+
width="30"
216+
height="30"
217+
rx="3"
218+
:fill="i === 0 ? dataset?.[0]?.color ?? palette[0] : `url(#marker_${i})`"
206219
/>
207220
</svg>
208221
</div>
209-
{{ applyEllipsis(dataset?.[i]?.name ?? '', 28) }}
222+
{{ applyEllipsis(dataset?.[i]?.name ?? '', 27) }}
210223
</div>
211224
<VueUiSparkline
212225
:key="`${i}_${step}`"

app/components/Compare/FacetBarChart.vue

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
<script setup lang="ts">
22
import { ref, computed } from 'vue'
33
import { VueUiHorizontalBar } from 'vue-data-ui/vue-ui-horizontal-bar'
4+
import { VueUiPatternSeed } from 'vue-data-ui/vue-ui-pattern-seed'
45
import type { VueUiHorizontalBarConfig, VueUiHorizontalBarDatasetItem } from 'vue-data-ui'
56
import { getFrameworkColor, isListedFramework } from '~/utils/frameworks'
6-
import { createChartPatternSlotMarkup } from '~/utils/charts'
7+
import { createPatternDef } from 'vue-data-ui/utils'
78
import { drawSmallNpmxLogoAndTaglineWatermark } from '~/composables/useChartWatermark'
89
910
import {
@@ -227,14 +228,15 @@ const config = computed<VueUiHorizontalBarConfig>(() => {
227228
const patternId = `tooltip-pattern-${safeSeriesIndex}`
228229
const usePattern = safeSeriesIndex !== 0
229230
230-
const patternMarkup = usePattern
231-
? createChartPatternSlotMarkup({
231+
const patternDef = usePattern
232+
? createPatternDef({
232233
id: patternId,
233234
seed: safeSeriesIndex,
234235
foregroundColor: colors.value.bg!,
235-
fallbackColor: 'transparent',
236-
maxSize: 24,
237-
minSize: 16,
236+
backgroundColor: 'transparent',
237+
maxSize: CHART_PATTERN_CONFIG.maxSize,
238+
minSize: CHART_PATTERN_CONFIG.minSize,
239+
disambiguator: CHART_PATTERN_CONFIG.disambiguator,
238240
})
239241
: ''
240242
@@ -252,9 +254,7 @@ const config = computed<VueUiHorizontalBarConfig>(() => {
252254
<div class="grid grid-cols-[12px_minmax(0,1fr)_max-content] items-center gap-x-3">
253255
<div class="w-3 h-3">
254256
<svg viewBox="0 0 20 20" class="w-full h-full" aria-hidden="true">
255-
<defs>
256-
${patternMarkup}
257-
</defs>
257+
${patternDef}
258258
${markerMarkup}
259259
</svg>
260260
</div>
@@ -286,14 +286,15 @@ const config = computed<VueUiHorizontalBarConfig>(() => {
286286
</template>
287287

288288
<template #pattern="{ patternId, seriesIndex }">
289-
<ChartPatternSlot
289+
<VueUiPatternSeed
290290
v-if="seriesIndex != 0"
291291
:id="patternId"
292292
:seed="seriesIndex"
293293
:foreground-color="colors.bg!"
294-
fallback-color="transparent"
295-
:max-size="24"
296-
:min-size="16"
294+
background-color="transparent"
295+
:max-size="CHART_PATTERN_CONFIG.maxSize"
296+
:min-size="CHART_PATTERN_CONFIG.minSize"
297+
:disambiguator="CHART_PATTERN_CONFIG.disambiguator"
297298
/>
298299
</template>
299300

0 commit comments

Comments
 (0)