package com.qqchen.deploy.backend.framework.annotation.formily;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
public @interface FormilyComponentProps {
    /**
     * 占位符
     */
    String placeholder() default "";

    /**
     * 是否允许清除
     */
    boolean allowClear() default false;

    /**
     * 是否允许搜索
     */
    boolean showSearch() default false;

    /**
     * 选择模式 (single/multiple)
     */
    String mode() default "single";

    /**
     * 是否启用过滤
     */
    boolean filterOption() default true;

    /**
     * 标签字段名
     */
    String labelField() default "label";

    /**
     * 值字段名
     */
    String valueField() default "value";

    /**
     * 防抖时间(ms)
     */
    int debounceTime() default 300;

    /**
     * 枚举值
     */
    String[] enum_() default {};

    /**
     * 枚举标签
     */
    String[] enumNames() default {};

    /**
     * 编辑器配置
     */
    FormilyEditorProps editor() default @FormilyEditorProps;

    /**
     * 是否加载中
     */
    boolean loading() default false;

    /**
     * 是否禁用
     */
    boolean disabled() default false;

    /**
     * 最大长度
     */
    int maxLength() default -1;

    /**
     * 最小长度
     */
    int minLength() default -1;

    /**
     * 正则表达式
     */
    String pattern() default "";
} 