{"version":3,"file":"Segmented.cjs","sources":["../../../../../../packages/components/segmented/src/Segmented.tsx"],"sourcesContent":["import type { ChangeEvent, CustomSlotsType } from '@antdv/types';\nimport type { SegmentedBaseOption, SegmentedOptionType, SegmentedValue } from './interface';\nimport { classNames, initDefaultProps } from '@antdv/utils';\nimport { computed, defineComponent, shallowRef } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport useStyle from '../style';\nimport MotionThumb from './MotionThumb';\nimport SegmentedOption from './Options';\nimport { segmentedProps } from './props';\n\nfunction normalizeOptions(options: Array<SegmentedOptionType | string | number>) {\n  return options.map((option) => {\n    if (typeof option === 'object' && option !== null)\n      return option;\n\n    return {\n      label: option?.toString(),\n      title: option?.toString(),\n      value: option as unknown as SegmentedBaseOption['value'],\n    };\n  });\n}\n\nexport default defineComponent({\n  name: 'ASegmented',\n  inheritAttrs: false,\n  props: initDefaultProps(segmentedProps(), {\n    options: [],\n    motionName: 'thumb-motion',\n  }),\n  slots: Object as CustomSlotsType<{\n    label: SegmentedBaseOption\n  }>,\n  setup(props, { emit, slots, attrs }) {\n    const { prefixCls, direction, size } = useConfigInject('segmented', props);\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n    const rootRef = shallowRef<HTMLDivElement>();\n    const thumbShow = shallowRef(false);\n\n    const segmentedOptions = computed(() => normalizeOptions(props.options));\n    const handleChange = (_event: ChangeEvent, val: SegmentedValue) => {\n      if (props.disabled)\n        return;\n\n      emit('update:value', val);\n      emit('change', val);\n    };\n    return () => {\n      const pre = prefixCls.value;\n      return wrapSSR(\n        <div\n          {...attrs}\n          class={classNames(\n            pre,\n            {\n              [hashId.value]: true,\n              [`${pre}-block`]: props.block,\n              [`${pre}-disabled`]: props.disabled,\n              [`${pre}-lg`]: size.value === 'large',\n              [`${pre}-sm`]: size.value === 'small',\n              [`${pre}-rtl`]: direction.value === 'rtl',\n            },\n            attrs.class,\n          )}\n          ref={rootRef}\n        >\n          <div class={`${pre}-group`}>\n            <MotionThumb\n              containerRef={rootRef}\n              prefixCls={pre}\n              value={props.value}\n              motionName={`${pre}-${props.motionName}`}\n              direction={direction.value}\n              getValueIndex={val => segmentedOptions.value.findIndex(n => n.value === val)}\n              onMotionStart={() => {\n                thumbShow.value = true;\n              }}\n              onMotionEnd={() => {\n                thumbShow.value = false;\n              }}\n            />\n            {segmentedOptions.value.map(segmentedOption => (\n              <SegmentedOption\n                key={segmentedOption.value}\n                prefixCls={pre}\n                checked={segmentedOption.value === props.value}\n                onChange={handleChange}\n                {...segmentedOption}\n                className={classNames(segmentedOption.className, `${pre}-item`, {\n                  [`${pre}-item-selected`]:\n                    segmentedOption.value === props.value && !thumbShow.value,\n                })}\n                disabled={!!props.disabled || !!segmentedOption.disabled}\n                v-slots={slots}\n              />\n            ))}\n          </div>\n        </div>,\n      );\n    };\n  },\n});\n"],"names":["normalizeOptions","options","map","option","label","toString","title","value","defineComponent","name","inheritAttrs","props","initDefaultProps","segmentedProps","motionName","slots","Object","setup","emit","attrs","prefixCls","direction","size","useConfigInject","wrapSSR","hashId","useStyle","rootRef","shallowRef","thumbShow","segmentedOptions","computed","handleChange","_event","val","disabled","pre","_createVNode","classNames","block","class","MotionThumb","findIndex","n","onMotionStart","onMotionEnd","segmentedOption","SegmentedOption","className"],"mappings":";;;;;;;;;;;;;;AAUA,SAASA,iBAAiBC,OAAuD,EAAA;AAC/E,EAAOA,OAAAA,OAAAA,CAAQC,IAAKC,CAAW,MAAA,KAAA;AAC7B,IAAI,IAAA,OAAOA,MAAW,KAAA,QAAA,IAAYA,MAAW,KAAA,IAAA;AAC3C,MAAOA,OAAAA,MAAAA,CAAAA;AAET,IAAO,OAAA;AAAA,MACLC,OAAOD,MAAQE,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAAA,CAAAA,QAAAA,EAAAA;AAAAA,MACfC,OAAOH,MAAQE,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAAA,CAAAA,QAAAA,EAAAA;AAAAA,MACfE,KAAOJ,EAAAA,MAAAA;AAAAA,KACT,CAAA;AAAA,GACD,CAAA,CAAA;AACH,CAAA;AAEA,iCAA+BK,mBAAA,CAAA;AAAA,EAC7BC,IAAM,EAAA,YAAA;AAAA,EACNC,YAAc,EAAA,KAAA;AAAA,EACdC,KAAAA,EAAOC,iCAAiBC,CAAAA,oBAAAA,EAAkB,EAAA;AAAA,IACxCZ,SAAS,EAAE;AAAA,IACXa,UAAY,EAAA,cAAA;AAAA,GACb,CAAA;AAAA,EACDC,KAAOC,EAAAA,MAAAA;AAAAA,EAGPC,MAAMN,KAAO,EAAA;AAAA,IAAEO,IAAAA;AAAAA,IAAMH,KAAAA;AAAAA,IAAOI,KAAAA;AAAAA,GAAS,EAAA;AACnC,IAAM,MAAA;AAAA,MAAEC,SAAAA;AAAAA,MAAWC,SAAAA;AAAAA,MAAWC,IAAAA;AAAAA,KAAK,GAAIC,uBAAgB,CAAA,WAAA,EAAaZ,KAAK,CAAA,CAAA;AACzE,IAAA,MAAM,CAACa,OAAAA,EAASC,MAAM,CAAA,GAAIC,cAASN,SAAS,CAAA,CAAA;AAC5C,IAAA,MAAMO,UAAUC,cAA2B,EAAA,CAAA;AAC3C,IAAMC,MAAAA,SAAAA,GAAYD,eAAW,KAAK,CAAA,CAAA;AAElC,IAAA,MAAME,mBAAmBC,YAAS,CAAA,MAAM/B,gBAAiBW,CAAAA,KAAAA,CAAMV,OAAO,CAAC,CAAA,CAAA;AACvE,IAAM+B,MAAAA,YAAAA,GAAeA,CAACC,MAAAA,EAAqBC,GAAwB,KAAA;AACjE,MAAA,IAAIvB,KAAMwB,CAAAA,QAAAA;AACR,QAAA,OAAA;AAEFjB,MAAAA,IAAAA,CAAK,gBAAgBgB,GAAG,CAAA,CAAA;AACxBhB,MAAAA,IAAAA,CAAK,UAAUgB,GAAG,CAAA,CAAA;AAAA,KACpB,CAAA;AACA,IAAA,OAAO,MAAM;AACX,MAAA,MAAME,MAAMhB,SAAUb,CAAAA,KAAAA,CAAAA;AACtB,MAAOiB,OAAAA,OAAAA,CAAOa,gBAAA,KAAA,EAAA;AAAA,QAAA,GAENlB,KAAAA;AAAAA,QAAK,OAAA,EACFmB,kBACLF,GACA,EAAA;AAAA,UACE,CAACX,MAAOlB,CAAAA,KAAK,GAAG,IAAA;AAAA,UAChB,CAAE,CAAA,EAAE6B,GAAI,CAAA,MAAA,CAAO,GAAGzB,KAAM4B,CAAAA,KAAAA;AAAAA,UACxB,CAAE,CAAA,EAAEH,GAAI,CAAA,SAAA,CAAU,GAAGzB,KAAMwB,CAAAA,QAAAA;AAAAA,UAC3B,CAAE,CAAEC,EAAAA,GAAI,CAAI,GAAA,CAAA,GAAGd,KAAKf,KAAU,KAAA,OAAA;AAAA,UAC9B,CAAE,CAAE6B,EAAAA,GAAI,CAAI,GAAA,CAAA,GAAGd,KAAKf,KAAU,KAAA,OAAA;AAAA,UAC9B,CAAE,CAAE6B,EAAAA,GAAI,CAAK,IAAA,CAAA,GAAGf,UAAUd,KAAU,KAAA,KAAA;AAAA,SACtC,EACAY,MAAMqB,KACR,CAAA;AAAA,QAAC,KACIb,EAAAA,OAAAA;AAAAA,OAAO,EAAA,CAAAU,eAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAEC,GAAED,GAAI,CAAA,MAAA,CAAA;AAAA,OAAO,EAAAC,CAAAA,eAAAA,CAAAI,mBAAA,EAAA;AAAA,QAAA,cAERd,EAAAA,OAAAA;AAAAA,QAAO,WACVS,EAAAA,GAAAA;AAAAA,QAAG,SACPzB,KAAMJ,CAAAA,KAAAA;AAAAA,QAAK,YACL,EAAA,CAAA,EAAE6B,GAAI,CAAA,CAAA,EAAGzB,MAAMG,UAAW,CAAA,CAAA;AAAA,QAAC,aAC7BO,SAAUd,CAAAA,KAAAA;AAAAA,QAAK,eAAA,EACX2B,SAAOJ,gBAAiBvB,CAAAA,KAAAA,CAAMmC,UAAUC,CAAKA,CAAAA,KAAAA,CAAAA,CAAEpC,UAAU2B,GAAG,CAAA;AAAA,QAAC,iBAC7DU,MAAM;AACnBf,UAAAA,SAAAA,CAAUtB,KAAQ,GAAA,IAAA,CAAA;AAAA,SACpB;AAAA,QAAC,eACYsC,MAAM;AACjBhB,UAAAA,SAAAA,CAAUtB,KAAQ,GAAA,KAAA,CAAA;AAAA,SACpB;AAAA,OAAC,EAEFuB,IAAAA,CAAAA,EAAAA,gBAAAA,CAAiBvB,MAAML,GAAI4C,CAAAA,CAAAA,eAAAA,KAAeT,gBAAAU,eAAA,EAAA;AAAA,QAAA,OAElCD,eAAgBvC,CAAAA,KAAAA;AAAAA,QAAK,WACf6B,EAAAA,GAAAA;AAAAA,QAAG,SAAA,EACLU,eAAgBvC,CAAAA,KAAAA,KAAUI,KAAMJ,CAAAA,KAAAA;AAAAA,QAAK,UACpCyB,EAAAA,YAAAA;AAAAA,QAAY,GAClBc,eAAAA;AAAAA,QAAe,aACRR,iBAAWQ,CAAAA,eAAAA,CAAgBE,SAAY,EAAA,CAAA,EAAEZ,GAAI,CAAQ,KAAA,CAAA,EAAA;AAAA,UAC9D,CAAE,CAAEA,EAAAA,GAAI,CAAe,cAAA,CAAA,GACrBU,gBAAgBvC,KAAUI,KAAAA,KAAAA,CAAMJ,KAAS,IAAA,CAACsB,SAAUtB,CAAAA,KAAAA;AAAAA,SACvD,CAAA;AAAA,QAAC,YACQ,CAAC,CAACI,MAAMwB,QAAY,IAAA,CAAC,CAACW,eAAgBX,CAAAA,QAAAA;AAAAA,SACvCpB,KAAK,CAEjB,CAAC,CAAA,CAAA,CAAA,CAGR,CAAA,CAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}