{"version":3,"file":"progress.mjs","sources":["../../../../../../../packages/components/progress/src/progress.tsx"],"sourcesContent":["import { type ExtractPropTypes, computed, defineComponent } from 'vue'\nimport {\n  type Numeric,\n  addUnit,\n  createNamespace,\n  numericProp,\n  truthProp,\n} from '@xzx-design/utils'\n\nconst [name, bem] = createNamespace('progress')\n\nexport const progressProps = {\n  color: String,\n  inactive: Boolean,\n  pivotText: String,\n  textColor: String,\n  showPivot: truthProp,\n  trackColor: String,\n  strokeWidth: numericProp,\n  percentage: {\n    type: numericProp,\n    default: 0,\n    validator: (value: Numeric) => +value >= 0 && +value <= 100,\n  },\n}\n\nexport type ProgressProps = ExtractPropTypes<typeof progressProps>\n\nexport default defineComponent({\n  name,\n\n  props: progressProps,\n\n  setup(props) {\n    const background = computed(() =>\n      props.inactive ? undefined : props.color\n    )\n\n    const renderPivot = () => {\n      const { textColor, pivotText, percentage } = props\n      const text = pivotText ?? `${percentage}%`\n\n      if (props.showPivot && text) {\n        const style = {\n          color: textColor,\n          left: `${+percentage}%`,\n        }\n\n        return (\n          <span\n            style={style}\n            class={bem('pivot', { inactive: props.inactive })}\n          >\n            {text}\n          </span>\n        )\n      }\n    }\n\n    return () => {\n      const { trackColor, percentage, strokeWidth } = props\n      const rootStyle = {\n        background: trackColor,\n        height: addUnit(strokeWidth),\n      }\n      const portionStyle = {\n        width: `${percentage}%`,\n        background: background.value,\n      }\n\n      return (\n        <div class={bem()}>\n          <div class={bem('wrapper')} style={rootStyle}>\n            <span\n              class={bem('portion', { inactive: props.inactive })}\n              style={portionStyle}\n            />\n          </div>\n          {renderPivot()}\n        </div>\n      )\n    }\n  },\n})\n"],"names":["name","bem","createNamespace","progressProps","color","String","inactive","Boolean","pivotText","textColor","showPivot","truthProp","trackColor","strokeWidth","numericProp","percentage","type","default","validator","value","defineComponent","props","setup","background","computed","undefined","renderPivot","text","style","left","_createVNode","rootStyle","height","addUnit","portionStyle","width"],"mappings":"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"}