{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/components/visualized/charts/scrolling-bar-chart/src/index.vue"],"sourcesContent":["<template>\n  <hl-scrollbar class=\"scrolling-bar-chart-container\" :style=\"{ height, '--bar-color': barStyle?.color }\">\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\" :class=\"isEmptyFunction ? '' : 'cursor-pointer'\" :style=\"getLabelStyle(barItem)\" @click=\"labelClick(barItem)\">{{\n            labelFormatter (barItem.label)\n          }}</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 { 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<Record<string, any>>,\n      default: () => ({\n        fontSize: '1em',\n        color: '#B5CEE3',\n      }),\n    },\n    valueStyle: {\n      type: Object as PropType<Record<string, any>>,\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    labelClick: {\n      type: Function as PropType<(barItem: ScrollingBarChartData) => void>,\n      default: () => ({}),\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    const isEmptyFunction = computed(() => {\n      return props.labelClick && props.labelClick.toString().includes('({})')\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      isEmptyFunction,\n    }\n  },\n})\n</script>\n"],"names":["_createBlock","_normalizeStyle","_createElementVNode","_openBlock","_createElementBlock","_Fragment","_renderList","_normalizeClass","_toDisplayString"],"mappings":"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"}