{"version":3,"file":"input.mjs","sources":["../../../../../../packages/components/input/src/input.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport { UPDATE_MODEL_EVENT } from '@vuesax-alpha/constants'\nimport { useColorProp } from '@vuesax-alpha/hooks'\nimport {\n  buildProps,\n  definePropType,\n  isNumber,\n  isString,\n} from '@vuesax-alpha/utils'\n\nimport type { ExtractPropTypes, StyleValue } from 'vue'\nimport type { EmitFn } from '@vuesax-alpha/utils'\nimport type Input from './input.vue'\n\nexport type InputValue = string | number | null | undefined\n\nexport const inputProps = buildProps({\n  /**\n   * @description native input readonly\n   */\n  clearable: {\n    type: Boolean,\n    default: false,\n  },\n\n  /**\n   * @description Component color - Accept Vuesax's color, Hex, rgb\n   */\n  color: useColorProp,\n\n  /**\n   * @description whether Input is disabled\n   */\n  disabled: { type: Boolean },\n\n  /**\n   * @description put the icon to the back of the input\n   */\n  iconAfter: { type: Boolean },\n\n  /**\n   * @description input id\n   */\n  id: {\n    type: String,\n    default: null,\n  },\n\n  /**\n   * @description input style\n   * @enum `border` | `shadow` | `transparent`\n   */\n  inputStyle: {\n    type: String,\n    values: ['border', 'shadow', 'transparent'] as const,\n    default: null,\n  },\n\n  /**\n   * @description label is placeholder when input empty\n   */\n  labelFloat: {\n    type: Boolean,\n    default: false,\n  },\n\n  /**\n   * @description a label above the component.\n   */\n  label: {\n    type: String,\n    default: null,\n  },\n\n  /**\n   * @description Add a loading animation to the input.\n   */\n  loading: { type: Boolean },\n\n  /**\n   * @description binding value\n   */\n  modelValue: {\n    type: definePropType<InputValue>([String, Number]),\n    default: '',\n  },\n\n  /**\n   * @description input placeholder\n   */\n  placeholder: {\n    type: String,\n    default: null,\n  },\n\n  /**\n   * @description progress bar starting in red and ending in green.\n   */\n  progress: { type: Number },\n\n  /**\n   * @description input shape\n   * @enum `rounded` | `square`\n   */\n  shape: {\n    type: String,\n    values: ['rounded', 'square'] as const,\n    default: 'rounded',\n  },\n\n  /**\n   * @description add toggleable password icon\n   */\n  showPassword: {\n    type: Boolean,\n    default: false,\n  },\n\n  /**\n   * @description Change the background color of the component by changing its status.\n   */\n  state: useColorProp,\n\n  /**\n   * @description set text input to white color\n   */\n  textWhite: { type: Boolean },\n\n  /**\n   * @description type of input, native input type.\n   */\n  type: {\n    type: String,\n    default: 'text',\n  },\n  /** @description input wrapper classes */\n  wrapClasses: {\n    type: String,\n  },\n  /** @description input wrapper styles */\n  wrapStyles: {\n    type: definePropType<StyleValue>([String, Object, Array]),\n  },\n\n  /**\n   * @description set input width 100%\n   */\n  block: { type: Boolean },\n\n  /** @deprecated */\n  border: Boolean,\n  /** @deprecated */\n  labelPlaceholder: String,\n  /** @deprecated */\n  shadow: Boolean,\n  /** @deprecated */\n  square: Boolean,\n  /** @deprecated */\n  transparent: Boolean,\n} as const)\n\nexport const inputEmits = {\n  [UPDATE_MODEL_EVENT]: (text: InputValue) =>\n    isString(text) || isNumber(text) || isNil(text),\n  /**\n   * @description triggers when clicking the icon\n   */\n  clickIcon: (evt: Event) => evt instanceof Event,\n  /**\n   * @description triggers when the Input is cleared by clicking the clear button\n   */\n  mouseleave: (evt: MouseEvent) => evt instanceof MouseEvent,\n  mouseenter: (evt: MouseEvent) => evt instanceof MouseEvent,\n  clear: () => true,\n  input: (value: string) => !isNil(value),\n  change: (value: string) => isString(value),\n  focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n  blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n\n  // NOTE: when autofill by browser, the keydown event is instanceof Event, not KeyboardEvent\n  keydown: (evt: KeyboardEvent | Event) => evt instanceof Event,\n}\n\nexport type InputEmits = typeof inputEmits\nexport type InputEmitsFn = EmitFn<InputEmits>\nexport type InputProps = ExtractPropTypes<typeof inputProps>\nexport type InputInstance = InstanceType<typeof Input>\n"],"names":[],"mappings":"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"}