{"version":3,"file":"TimeUnitColumn.cjs","sources":["../../../../../../../../packages/vue-components/vc-picker/src/panels/TimePanel/TimeUnitColumn.tsx"],"sourcesContent":["import { classNames } from '@antdv/utils';\nimport {\n  defineComponent,\n  nextTick,\n  onBeforeUnmount,\n  ref,\n  shallowRef,\n  watch,\n} from 'vue';\nimport { useInjectPanel } from '../../PanelContext';\nimport { scrollTo, waitElementReady } from '../../utils/uiUtil';\n\nexport interface Unit {\n  label: any;\n  value: number;\n  disabled: boolean;\n}\n\nexport interface TimeUnitColumnProps {\n  prefixCls?: string;\n  units?: Unit[];\n  value?: number;\n  active?: boolean;\n  hideDisabledOptions?: boolean;\n  onSelect?: (value: number) => void;\n}\n\nexport default defineComponent({\n  name: 'TimeUnitColumn',\n  props: ['prefixCls', 'units', 'onSelect', 'value', 'active', 'hideDisabledOptions'],\n  setup(props) {\n    const { open } = useInjectPanel();\n\n    const ulRef = shallowRef<HTMLElement>(null);\n    const liRefs = ref(new Map<number, HTMLElement | null>());\n    const scrollRef = ref<Function>();\n\n    watch(\n      () => props.value,\n      () => {\n        const li = liRefs.value.get(props.value!);\n        if (li && open.value !== false)\n          scrollTo(ulRef.value, li.offsetTop, 120);\n      },\n    );\n    onBeforeUnmount(() => {\n      scrollRef.value?.();\n    });\n\n    watch(\n      open,\n      () => {\n        scrollRef.value?.();\n        nextTick(() => {\n          if (open.value) {\n            const li = liRefs.value.get(props.value!);\n            if (li) {\n              scrollRef.value = waitElementReady(li as any, () => {\n                scrollTo(ulRef.value!, li.offsetTop, 0);\n              });\n            }\n          }\n        });\n      },\n      { immediate: true, flush: 'post' },\n    );\n    return () => {\n      const { prefixCls, units, onSelect, value, active, hideDisabledOptions } = props;\n      const cellPrefixCls = `${prefixCls}-cell`;\n      return (\n        <ul\n          class={classNames(`${prefixCls}-column`, {\n            [`${prefixCls}-column-active`]: active,\n          })}\n          ref={ulRef}\n          style={{ position: 'relative' }}\n        >\n          {units!.map((unit) => {\n            if (hideDisabledOptions && unit.disabled)\n              return null;\n\n            return (\n              <li\n                key={unit.value}\n                ref={(element) => {\n                  liRefs.value.set(unit.value, element as HTMLElement);\n                }}\n                class={classNames(cellPrefixCls, {\n                  [`${cellPrefixCls}-disabled`]: unit.disabled,\n                  [`${cellPrefixCls}-selected`]: value === unit.value,\n                })}\n                onClick={() => {\n                  if (unit.disabled)\n                    return;\n\n                  onSelect!(unit.value);\n                }}\n              >\n                <div class={`${cellPrefixCls}-inner`}>{unit.label}</div>\n              </li>\n            );\n          })}\n        </ul>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","name","props","setup","open","useInjectPanel","ulRef","shallowRef","liRefs","ref","Map","scrollRef","watch","value","li","get","scrollTo","offsetTop","onBeforeUnmount","nextTick","waitElementReady","immediate","flush","prefixCls","units","onSelect","active","hideDisabledOptions","cellPrefixCls","_createVNode","classNames","position","map","unit","disabled","element","set","onClick","label"],"mappings":"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"}