- name: u-tree-select-new
  title: 树选择
  description: 树选择
  icon: tree-view
  labels:
    - Selector
  attrs:
    - name: data-source
      title: 数据源
      type: Array<Item> | Function | object | DataSource
      designer-value: "[{}, {}, {}]"
      description: 展示数据的输入源，可设置为集合类型变量（List<T>）或输出参数为集合类型的逻辑。
      group: 数据属性
      brifeDoc: ""
      docDescription: 支持动态绑定集合类型变量（List\<T>）或输出参数为集合类型的
      tooltipLink: ""
    - name: data-schema
      title: 数据类型
      type: schema
      description: 数据源返回的数据结构的类型，自动识别类型进行展示说明
      group: 数据属性
      compType: dataTypeSelect
      brifeDoc: ""
      docDescription: 该属性为只读状态，当数据源动态绑定集合List<T>后，会自动识别T的类型并进行展示
      tooltipLink: ""
    - name: text-field
      title: 文本字段
      display: property-select
      type: string
      default: text
      group: 数据属性
      description: 集合的元素类型中，用于显示文本的属性名称
    - name: value-field
      title: 值字段
      display: property-select
      type: string
      default: value
      description: 集合的元素类型中，用于标识选中值的属性
      group: 数据属性
      brifeDoc: ""
      docDescription: 集合的元素类型中，用于标识选中值的属性
      tooltipLink: ""
    - name: parent-field
      title: 父级值字段
      display: property-select
      type: string
      default: ""
      description: 集合的元素类型中，用于标识父节点的属性
      group: 数据属性
      brifeDoc: ""
      docDescription: 集合的元素类型中，用于标识父节点的属性
      tooltipLink: ""
    - name: children-field
      title: 子级值字段
      type: string
      display: property-select
      default: children
      description: 集合的元素类型中，用于标识子节点的属性，默认为children
      group: 数据属性
      brifeDoc: ""
      docDescription: 集合的元素类型中，用于标识子节点的属性
      tooltipLink: ""
    - name: expanded-field
      title: 节点是否展开字段 
      display: property-select
      type: string
      default: expanded
      description: 集合的元素类型中，用于标识节点是否展开的属性，默认为expanded
      group: 数据属性
      brifeDoc: ""
      docDescription: 集合的元素类型中，用于标识子节点的属性
      tooltipLink: ""
    - name: value
      title: 选中值
      type: any
      sync: true
      model: true
      description: 选择后，所选中的值
      group: 数据属性
      brifeDoc: ""
      docDescription: 通过组件进行选择后，最终选中的值，支持双向绑定到变量
      tooltipLink: ""
    - name: checkable
      title: 可多选
      type: boolean
      default: false
      description: 设置是否开启多选模式，显示多选框
      group: 交互属性
      brifeDoc: ""
      docDescription: 开启后支持选中多项。默认关闭
      tooltipLink: ""
    - name: placeholder
      title: 占位符
      type: string
      default: 请选择
      description: 为空时显示的占位符文本
    - name: check-controlled
      title: 父子节点独立选择
      type: boolean
      default: false
      description: 开启后父节点选择不会全选子节点，子节点选择不会联动父节点
      group: 交互属性
      brifeDoc: ""
      docDescription: 开启后父节点选择不会全选子节点，子节点选择不会联动父节点
      tooltipLink: ""
    - name: disabled-field
      title:  不可选择字段 
      type: string
      display: property-select
      default: "disabled"
      description: 集合的元素类型中，用于标识节点的disabled属性
      group: 交互属性
      brifeDoc: ""
      docDescription: 集合的元素类型中，用于标识父级字段的属性，支持自定义变更
      tooltipLink: ""
    - name: clearable
      title: 可清除
      type: boolean
      default: false
      description: 设置是否开启可清除模式
      group: 交互属性
      brifeDoc: ""
      docDescription: 开启后支持清除按钮。默认关闭
      tooltipLink: ""
    - name: render-optimize
      title: 只渲染激活节点
      type: boolean
      default: false
      description: 设置只渲染tree激活子节点，用于渲染性能提升。
      group: 交互属性
      brifeDoc: ""
      docDescription: 开启后只渲染激活节点，默认关闭。
    - name: append-to
      title: 弹出层位置依据
      type: string
      default: reference
      description: 设置弹出层依据哪个元素定位位置，可选值：`'body'`表示添加到 document.body，`'reference'`表示添加到参考元素中。
      options:
        - value: reference
          title: 引用元素下
        - value: body
          title: 全局body
      group: 主要属性
      brifeDoc: ""
      docDescription: 设置弹出层在html里的位置，支持引用元素下、全局body设置。当把当前组件放入某个组件，而组件overflow是hidden的时候，需要设置为全局body
    - name: disabled
      title: 禁用
      type: boolean
      default: false
      description: 置灰显示，且禁止任何交互（焦点、点击、选择、输入等）
      group: 状态属性
      brifeDoc: ""
      docDescription: ""
      tooltipLink: ""
    - name: width
      title: 宽度
      type: string
      options:
        - value: full
          title: 占满
        - value: huge
          title: 巨大
        - value: large
          title: 大
        - value: medium
          title: 中型
        - value: normal
          title: 正常
        - value: small
          title: 小
        - value: mini
          title: 迷你
      default: normal
      description: 设置选择框宽度大小
      group: 样式属性
      brifeDoc: ""
      docDescription: 设置选择框宽度大小，支持占满、巨大、大、中型、正常、小共6种模式
      tooltipLink: ""
    - name: height
      title: 高度
      type: string
      options:
        - value: full
          title: 占满
        - value: huge
          title: 巨大
        - value: large
          title: 大
        - value: medium
          title: 中型
        - value: normal
          title: 正常
        - value: small
          title: 小
        - value: mini
          title: 迷你
      default: normal
      description: 设置选择框高度大小
      group: 样式属性
      brifeDoc: ""
      docDescription: 设置选择框高度大小，支持占满、巨大、大、中型、正常、小共6种模式
      tooltipLink: ""
  slots:
    - concept: Slot
      name: default
      description: 插入`<u-tree-view-node-new>`子组件
      support:
        - name: u-tree-view-node
          title: 子节点
          snippet: "<u-tree-view-node-new><template
            #item>选项</template></u-tree-view-node-new>"
    - concept: Slot
      name: item
      description: 自定义选项的结构和样式
      slotProps:
        concept: Param
        name: current
        typeAnnotation:
          concept: TypeAnnotation
          typeKind: generic
          typeNamespace: nasl.ui
          typeName: Current
          typeArguments:
            - concept: TypeAnnotation
              typeKind: typeParam
              typeName: T
  events:
    - name: change
      description: 修改时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/TreeChangeEvent"
        - name: $event.param1
          type: string
          description: 参数1
        - name: $event.param2
          type: number
          description: 参数2
    - name: select
      title: 选择后
      description: 选择某一项时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/TreeChangeEvent"
        - name: $event.value
          type: any
          description: 改变后的值
        - name: $event.oldValue
          type: any
          description: 旧的值
        - name: $event.node
          type: object
          description: 选择项相关对象
        - name: $event.oldNode
          type: object
          description: 旧的选择项相关对象
        - name: $event.nodeVM
          type: UTreeViewNode
          description: 选择项子组件
        - name: $event.oldVM
          type: UTreeViewNode
          description: 旧的选择项子组件
        - name: senderVM
          type: UTreeView
          description: 发送事件实例
    - name: check
      title: 选中或取消后
      description: 选中/取消节点时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/CheckedEvent"
        - name: $event.checked
          type: boolean
          description: 选中/取消状态
        - name: $event.oldChecked
          type: boolean
          description: 旧的选中/取消状态
        - name: $event.values
          type: Array
          description: 所有选中节点的值
        - name: $event.node
          type: object
          description: 节点相关对象
        - name: $event.nodeVM
          type: UTreeViewNode
          description: 节点组件
        - name: senderVM
          type: UTreeView
          description: 发送事件实例
    - name: before-load
      title: 加载前
      description: 加载前触发
      advanced: true
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/EventTarget"
        - name: $event.preventDefault
          type: Function
          description: 阻止加载流程
        - name: senderVM
          type: UTableView
          description: 发送事件实例
    - name: load
      title: 加载后
      description: 加载后触发
      params:
        - name: $event
          type: "null"
          description: 无
        - name: senderVM
          type: UTableView
          description: 发送事件实例
    - name: before-clear
      title: 清空前
      description: 清空前触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/ChangeEvent"
        - name: $event.value
          type: any
          description: 改变后的值
        - name: $event.oldValue
          type: any
          description: 旧的值
        - name: $event.preventDefault
          type: Function
          description: 阻止清空流程
        - name: senderVM
          type: UTreeView
          description: 发送事件实例
    - name: clear
      title: 清空后
      description: 清空时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/ChangeEvent"
        - name: $event.value
          type: any
          description: 改变后的值
        - name: $event.oldValue
          type: any
          description: 旧的值
        - name: senderVM
          type: UTreeView
          description: 发送事件实例

  methods:
    - name: reload
      description: 重新加载
      params: []
