{"version":3,"file":"Password.cjs","sources":["../../../../../../packages/components/input/src/Password.tsx"],"sourcesContent":["import type { PropType } from 'vue';\nimport type { InputProps } from './props';\nimport { EyeInvisibleOutlined, EyeOutlined } from '@ant-design/icons-vue';\nimport { classNames, cloneElement, isValidElement, omit } from '@antdv/utils';\nimport { computed, defineComponent, shallowRef, watchEffect } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport Input from './Input';\nimport { inputProps } from './props';\n\nconst ActionMap = {\n  click: 'onClick',\n  hover: 'onMouseover',\n};\nconst defaultIconRender = (visible: boolean) => visible ? <EyeOutlined /> : <EyeInvisibleOutlined />;\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AInputPassword',\n  inheritAttrs: false,\n  props: {\n    ...inputProps(),\n    'prefixCls': String,\n    'inputPrefixCls': String,\n    'action': { type: String, default: 'click' },\n    'visibilityToggle': { type: Boolean, default: true },\n    'visible': { type: Boolean, default: undefined },\n    'onUpdate:visible': Function as PropType<(visible: boolean) => void>,\n    'iconRender': Function,\n  },\n  setup(props, { slots, attrs, expose, emit }) {\n    const visible = shallowRef(false);\n    const onVisibleChange = () => {\n      const { disabled } = props;\n      if (disabled)\n        return;\n\n      visible.value = !visible.value;\n      emit('update:visible', visible.value);\n    };\n    watchEffect(() => {\n      if (props.visible !== undefined)\n        visible.value = !!props.visible;\n    });\n    const inputRef = shallowRef();\n    const focus = () => {\n      inputRef.value?.focus();\n    };\n    const blur = () => {\n      inputRef.value?.blur();\n    };\n    expose({\n      focus,\n      blur,\n    });\n    const getIcon = (prefixCls: string) => {\n      const { action, iconRender = slots.iconRender || defaultIconRender } = props;\n      const iconTrigger = ActionMap[action] || '';\n      const icon = iconRender(visible.value);\n      const iconProps = {\n        [iconTrigger]: onVisibleChange,\n        class: `${prefixCls}-icon`,\n        key: 'passwordIcon',\n        onMousedown: (e: MouseEvent) => {\n          // Prevent focused state lost\n          // https://github.com/ant-design/ant-design/issues/15173\n          e.preventDefault();\n        },\n        onMouseup: (e: MouseEvent) => {\n          // Prevent caret position change\n          // https://github.com/ant-design/ant-design/issues/23524\n          e.preventDefault();\n        },\n      };\n      return cloneElement(isValidElement(icon) ? icon : <span>{icon}</span>, iconProps);\n    };\n    const { prefixCls, getPrefixCls } = useConfigInject('input-password', props);\n    const inputPrefixCls = computed(() => getPrefixCls('input', props.inputPrefixCls));\n    const renderPassword = () => {\n      const { size, visibilityToggle, ...restProps } = props;\n\n      const suffixIcon = visibilityToggle && getIcon(prefixCls.value);\n      const inputClassName = classNames(prefixCls.value, attrs.class, {\n        [`${prefixCls.value}-${size}`]: !!size,\n      });\n\n      const omittedProps = {\n        ...omit(restProps, ['suffix', 'iconRender', 'action']),\n        ...attrs,\n        type: visible.value ? 'text' : 'password',\n        class: inputClassName,\n        prefixCls: inputPrefixCls.value,\n        suffix: suffixIcon,\n      } as InputProps;\n\n      if (size)\n        omittedProps.size = size;\n\n      return <Input ref={inputRef} {...omittedProps} v-slots={slots} />;\n    };\n    return () => {\n      return renderPassword();\n    };\n  },\n});\n"],"names":["ActionMap","click","hover","defaultIconRender","visible","_createVNode","EyeOutlined","EyeInvisibleOutlined","defineComponent","compatConfig","MODE","name","inheritAttrs","props","inputProps","String","type","default","Boolean","undefined","Function","setup","slots","attrs","expose","emit","shallowRef","onVisibleChange","disabled","value","watchEffect","inputRef","focus","blur","getIcon","prefixCls","action","iconRender","iconTrigger","icon","iconProps","class","key","onMousedown","e","preventDefault","onMouseup","cloneElement","isValidElement","getPrefixCls","useConfigInject","inputPrefixCls","computed","renderPassword","size","visibilityToggle","restProps","suffixIcon","inputClassName","classNames","omittedProps","omit","suffix","Input"],"mappings":"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"}