{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/components/visualized/charts/scrolling-bar-chart/src/index.vue"],"sourcesContent":["<template>\n  <hl-scrollbar\n    class=\"scrolling-bar-chart-container\"\n    :style=\"{ height, '--bar-color': barStyle?.color }\"\n  >\n    <div class=\"scrolling-bar-chart\">\n      <div\n        v-for=\"(barItem, idx) in chartData\"\n        :key=\"idx\"\n        class=\"bar-item\"\n        :style=\"`${margin ? 'margin: ' + margin : '' }`\"\n      >\n        <div class=\"label-value m-b-xxs\">\n          <span class=\"label\" :style=\"getLabelStyle(barItem)\">{{ labelFormatter(barItem.label) }}</span>\n          <span class=\"value\" :style=\"getValueStyle(barItem)\">{{ valueFormatter(getBarItemTotal(barItem)) }}</span>\n        </div>\n        <div\n          :class=\"['bar-bg', isStack ? 'stack' : '']\"\n          :style=\"{\n            backgroundColor: barItem?.barStyle?.backgroundColor || barStyle?.backgroundColor,\n            height: barItem?.barStyle?.width || barStyle?.width\n          }\"\n        >\n          <template v-if=\"isStack\">\n            <div\n              v-for=\"(subBarItem, sidx) in barItem.value\"\n              :key=\"sidx\"\n              class=\"bar\"\n              :style=\"{\n                background: subBarItem?.barStyle?.color || barStyle?.color,\n                width: `${subBarItem.value / maxVal * 100}%`\n              }\"\n            ></div>\n          </template>\n          <div\n            v-else\n            class=\"bar\"\n            :style=\"{\n              background: barItem?.barStyle?.color || barStyle?.color,\n              width: `${barItem.value / maxVal * 100}%`\n            }\"\n          ></div>\n        </div>\n      </div>\n    </div>\n  </hl-scrollbar>\n</template>\n<script lang=\"ts\">\nimport { CSSProperties, defineComponent, PropType, computed } from 'vue'\nimport { HlScrollbar } from 'hongluan-ui'\nimport type { ScrollingBarChartData } from './types'\n\nexport default defineComponent({\n  name: 'VScrollingBarChart',\n  components: { HlScrollbar },\n  props: {\n    height: {\n      type: String,\n      required: true,\n    },\n    margin: {\n      type: String,\n      default: '',\n    },\n    barStyle: {\n      type: Object as PropType<{ width: string; color: string; backgroundColor: string; }>,\n      default: () => ({\n        width: '1em',\n        color: '#71F8FC',\n        backgroundColor: 'rgba(47,71,110,0.12)',\n      }),\n    },\n    labelStyle: {\n      type: Object as PropType<CSSProperties>,\n      default: () => ({\n        fontSize: '1em',\n        color: '#B5CEE3',\n      }),\n    },\n    valueStyle: {\n      type: Object as PropType<CSSProperties>,\n      default: () => ({\n        fontSize: '1.2em',\n        color: '#B5CEE3',\n      }),\n    },\n    chartData: {\n      type: Array as PropType<ScrollingBarChartData[]>,\n      default: () => [],\n    },\n    labelFormatter: {\n      type: Function as PropType<(label: string) => string>,\n      default: (label: string) => label,\n    },\n    valueFormatter: {\n      type: Function as PropType<(value: number) => string>,\n      default: (value: number) => value,\n    },\n  },\n  setup(props) {\n    const isStack = computed(() => props.chartData.every(d => Array.isArray(d.value)))\n    const maxVal = computed(() => {\n      if (isStack.value) {\n        return Math.max(\n          ...props.chartData.map(d =>\n            (d.value as ScrollingBarChartData[]).reduce((prev, cur) => prev + (cur.value as number), 0),\n          ),\n        )\n      } else {\n        return Math.max(...props.chartData.map(d => (d.value as number)))\n      }\n    })\n\n    const getLabelStyle = (charItem: ScrollingBarChartData) => ({ ...props.labelStyle, ...(charItem?.labelStyle ?? {}) })\n    const getValueStyle = (charItem: ScrollingBarChartData) => ({ ...props.valueStyle, ...(charItem?.valueStyle ?? {}) })\n    const getBarItemTotal = (charItem: ScrollingBarChartData) => isStack.value ? (charItem.value as ScrollingBarChartData[]).reduce((prev, cur) => prev + (cur.value as number), 0) : charItem.value\n\n    return {\n      maxVal,\n      isStack,\n      getLabelStyle,\n      getValueStyle,\n      getBarItemTotal,\n    }\n  },\n})\n</script>\n"],"names":["_createBlock","_normalizeStyle","_createElementVNode","_openBlock","_createElementBlock","_Fragment","_renderList","_toDisplayString","_normalizeClass"],"mappings":"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"}