- name: m-group-parent
  title: 分组模式
  description: 在父子组件的模式中，有时会遇到对子组件进行分组和折叠场景。MGroup 对这种模式进行了抽象，用于快速开发和代码借鉴。
  options:
    - name: groupName
      type: string
      default: m-group
      description: 分组组件的名称
  data:
    - name: groupVMs
      type: Array<MGroup>
      default: []
      description: 分组组件集合
  attrs:
    - name: collapsible
      type: boolean
      default: false
      description: 分组是否可以折叠
    - name: accordion
      type: boolean
      default: false
      description: 是否每次只会展开一个分组
    - name: expand-trigger
      type: string
      default: click
      description: 展开/折叠的触发方式。可选值：`'click'`表示整行点击均可触发、`'click-expander'`表示仅点击小箭头时触发
  events:
    - name: toggle
      description: 展开/折叠某分组时触发
      params:
        - name: $event.expanded
          type: boolean
          description: 展开/折叠状态
        - name: $event.groupVM
          type: MGroup
          description: 分组组件
        - name: senderVM
          type: MGroupParent
          description: 发送事件实例
  methods:
    - name: toggleAll(expanded)
      description: 展开/折叠所有分组
      params:
        - name: expanded
          type: boolean
          description: 展开/折叠
- name: m-group
  mixins: m-emitter
  options:
    - name: parentName
      type: string
      default: m-parent
      description: 父组件的名称
    - name: childName
      type: string
      default: m-child
      description: 子组件的名称
  data:
    - name: parentVM
      type: MParent
      default: null
      description: 父组件实例
    - name: itemVMs
      type: Array<MChild>
      default: []
      description: 子组件集合
  attrs:
    - name: title
      type: string
      default: null
      description: 显示的标题
    - name: collapsible
      type: boolean
      default: null
      description: "`false`"
    - name: expanded
      type: boolean
      sync: true
      default: false
      description: 展开/折叠状态
    - name: disabled
      type: boolean
      default: false
      description: 是否禁用。禁用时无法展开/折叠
  slots:
    - name: default
      description: 插入`<m-child>`子组件。
    - name: title
      description: 自定义标题文本。
    - name: extra
      description: 在右侧可以附加内容。
  events:
    - name: before-toggle
      description: 展开/折叠此分组前触发
      params:
        - name: $event.expanded
          type: boolean
          description: 展开/折叠状态
        - name: $event.groupVM
          type: MGroup
          description: 分组组件
        - name: $event.preventDefault
          type: Function
          description: 阻止展开/折叠流程
        - name: senderVM
          type: MGroup
          description: 发送事件实例
    - name: toggle
      description: 展开/折叠某分组时触发
      params:
        - name: $event.expanded
          type: boolean
          description: 展开/折叠状态
        - name: $event.groupVM
          type: MGroup
          description: 分组组件
        - name: senderVM
          type: MGroup
          description: 发送事件实例
- name: m-child
  options:
    - name: groupName
      type: string
      default: m-group
      description: 分组组件的名称
