Options
All
  • Public
  • Public/Protected
  • All
Menu

组件基类 非可视化组件 支持:焦点, 拖拽

Hierarchy

Implements

Index

Constructors

Properties

Methods

Constructors

constructor

Properties

$elemt

$elemt: JQuery<HTMLElement>

组件的最外层的jquery对象 注意: 如果在运行时操作该对象会造成不可预知的错误. 谨慎!!!

Private _$elemt

_$elemt: JQuery<HTMLElement>

私有的get set _$elemt 的私有变量

active

active: boolean

设计模式下 焦点状态

background

background: string

组件背景

canChildComponentsDrag

canChildComponentsDrag: boolean

设计模式下是否允许拖拽子组件 默认: true 注意:这个是子组件不能拖了,不能接受外部拖进来的元素

canChildComponentsDragPull

canChildComponentsDragPull: boolean

设计模式下是否可以拖拽子组件到外部 默认: true

canChildComponentsDragPut

canChildComponentsDragPut: boolean

设计模式下是否可以在接受外部拖拽进来的组件 默认: true

canChildComponentsDragSort

canChildComponentsDragSort: boolean

设计模式下是否允许子组件拖拽排序 默认: true 注意:子组件选都选不到焦点但是能接受外部拖进来的元素 与 disabled差异

canChildFocus

canChildFocus: boolean

设计模式下子元素是否允许点击获取焦点包含tab按键

canCopy

canCopy: boolean

设计模式下是否允许拷贝

canCut

canCut: boolean

设计模式下是否允许剪切

canDelete

canDelete: boolean

组件设计模式下是否允许删除

canDesignModePointEvents

canDesignModePointEvents: boolean

是否允许设计模式下点击组件内部 运行模式下无效

canFocuse

canFocuse: boolean

设计模式下是否允许获取焦点

canMenu

canMenu: boolean

设计模式下是否右键选择组件时候弹出的菜单

canPaste

canPaste: boolean

设计模式下是否允许粘贴

childComponentDragFilterSelector

childComponentDragFilterSelector: string

禁止子组件的拖拽过滤字符串

childComponentDragSelector

childComponentDragSelector: string

允许子组件的拖拽过滤字符串

css

css: any

记录组件样式类型

cssString

cssString: string

自定义样式

Protected dependencies

dependencies: IDependency[] = ...

designPopMenu

designPopMenu: Contextmenu

设计模式下的右键弹出菜单

dragFilter

dragFilter: string

设计模式下不可以拖拽的jquery 类名

draggableClass

draggableClass: string

设计模式下可以拖拽的组件

draggableCompnent

draggableCompnent: any

设计模式下可以拖拽组件类

draggableInheritCompnent

draggableInheritCompnent: any

设计模式下可以拖拽的继承的父组件类

draggablextype

draggablextype: any

设计模式下可以拖拽组件xtype

enable

enable: boolean

是否可用 是否可以有焦点,事件 等等

eventsSuspended

eventsSuspended: boolean

是否事件暂停 一般是数据源初始化时候停止事件.

hide

hide: boolean

组件隐藏/显示 true 隐藏 ,则反之

hitTitle

hitTitle: string

鼠标停留时候提示信息

Readonly id

id: string

组件的id

isDropCreate

isDropCreate: boolean

设计模式下是否拖拽释放时候创建的组件 有些组件需要区分这个,来增加默认值

items

items: ComponentBase[]

子组件数组包含可视组件 (页面渲染时候会按顺序渲染这个数组) 如果需要自定义组件渲染的子组件的顺序 @see doRenderChilds

name

name: string

组件名称

Private page

page: DesignerPageBase = null

页面实例

parentCmp

parentCmp: ComponentBase

父组件

tag

tag: any

组件的可附带一些标志的 用于附带一下参数

Readonly xtype

xtype: string

组件的唯一类型标志(这个是不能重复的哦)

Methods

Private _findChildComponent

Private _findComponentExt

Protected addDependencies

addEvents

  • addEvents(...args: any[]): void
  • 注册事件绑定的

    Parameters

    • Rest ...args: any[]

      事件唯一标志字符串

    Returns void

appendChildCmp

  • 在组件数组后面增加子组件 这里只是组件的实例增加,页面并没重画

    Parameters

    Returns void

appendChildHtmlElemt

  • 添加子组件的html 子类可以自定实现自定义的添加子组件的实现方式.

    Parameters

    Returns void

borcast

  • borcast(msg: string, param?: any): void
  • 给子组件广播发送消息

    Parameters

    • msg: string

      消息

    • Optional param: any

      跟随消息传递的参数

    Returns void

Private buildMenuItems

  • 构建设计模式下拉的弹出菜单

    Returns IMenuItem[]

checkCanDragMove

  • 检查是否允许拖拽到指定的组件内

    Parameters

    Returns boolean

checkDragAccept

  • 校验进来的组件是否允许拖拽进来

    Parameters

    Returns boolean

clearAllEvents

  • clearAllEvents(): void
  • 清除所有已经注册的事件处理 注意:该函数一般是页面关闭时候才调用 防止重复调用.如果是运行中调用会导致未知的异常错误

    Returns void

Private colorIsBlack

  • colorIsBlack(): boolean
  • 判断背景色是深色还是浅色

    Returns boolean

copy

  • copy(): void
  • 设计模式下复制组件 子类可以覆盖此方法来实现自定义复制

    Returns void

cut

  • cut(): void
  • 设计模式下剪切组件 子类可以覆盖此方法来实现自定义剪切

    Returns void

deserialize

  • deserialize(jsonStr: string): any
  • 反序列化

    Parameters

    • jsonStr: string

      json字符串

    Returns any

    返回组件对象

destory

  • destory(): void
  • 释放资源析构函数.组件移除之前会调用 一般不要主动调用. 该函数并没有删除和释放组件.只是调用了组件的资源释放函数

    Returns void

Protected doCanChildComponentsDragPut

  • doCanChildComponentsDragPut(): boolean
  • 设计模式下允许拖入的组件类名正则表达式 子类可以通过覆盖这个函数实现自定义下拉的弹出菜单

    reutns

    true 时候可以运行任何组件,则反之只允许匹配到的.

    Returns boolean

Protected doCanDragSort

  • doCanDragSort(): boolean
  • Returns boolean

Protected doDesigningDbClick

  • doDesigningDbClick(): void
  • 设计模式下双击组件时候触发的函数调用.

    Returns void

Protected doDestory

  • doDestory(): void
  • 释放资源函数.组件移除之前会调用 一般用于释放资源和反注册消息处理函数

    Returns void

Protected doDragEnd

  • doDragEnd(e: any): void
  • 组件结束拖拽事件 子类可以覆盖此方法实现自定义拖拽时的规则

    Parameters

    • e: any

      拖拽事件对象

    Returns void

Protected doDragPull

  • doDragPull(to: any, from: any, dragEl: any, event: any): boolean
  • 用来进行拖出元素的函数判断,可以进行复杂逻辑,在函数中 子类可以覆盖此方法来自定义是否可以在拖拽时移出组件

    Parameters

    • to: any

      目标

    • from: any

    • dragEl: any

      拖拽的对象

    • event: any

    Returns boolean

    false/true来判断是否可以移出;

Protected doDragPut

  • doDragPut(to: any, from: any, dragEl: any, event: any): boolean
  • 用来定义是否可以往组件放置,true/false 子类可以覆盖此方法来自定义是否可以在拖拽时移入组件

    Parameters

    • to: any

      目标组件

    • from: any

      源组件

    • dragEl: any

      拖拽的对象

    • event: any

    Returns boolean

    false/true来判断是否可以移入;

Protected doDragStart

  • doDragStart(e: any): void
  • 组件开始拖拽的时候事件 子类可以覆盖此方法实现自定义拖拽时的规则

    Parameters

    • e: any

    Returns void

Protected doGetClassName

  • doGetClassName(): string
  • 得到组件渲染的className 子类覆盖实现自定义

    Returns string

    返回类名字符串

doGetCss

  • doGetCss(): object
  • 子类覆盖自定义的css样式类 如果设置了 cssString 是不会调用该函数,说明已经有个性的css设置

    Returns object

Protected doGetCustomDesignerMenuItems

  • doGetCustomDesignerMenuItems(): IMenuItem[]
  • 自定义设计模式下拉的弹出菜单 子类可以通过覆盖这个函数实现自定义下拉的弹出菜单

    reutns

    返回自定义的菜单数组

    Returns IMenuItem[]

Protected doGetDefalutDesignerMenuItems

  • doGetDefalutDesignerMenuItems(): IMenuItem[]
  • 得到默认的设计模式下的弹出菜单

    reutns

    返回自定义的菜单数组

    Returns IMenuItem[]

Protected doGetElemtHtml

  • doGetElemtHtml(): string
  • 返回组件的html的字符串.

    子类覆盖改方法用于扩展组件的构建html字符串 该函数返回值会被getElemtHtml外包一层div

    Returns string

    返回htm的字符串.用户渲染

Protected doInsertChildCmp

  • doInsertChildCmp(childCmp: ComponentBase, index?: number): void
  • Parameters

    Returns void

Protected doInsertChildCmpAfter

Protected doOnDragMove

  • doOnDragMove(e: any, originalEvent: Event): boolean | 1 | -1
  • 组件拖拽时的事件

    Parameters

    • e: any
    • originalEvent: Event

    Returns boolean | 1 | -1

Protected doRemove

  • doRemove(isMove?: boolean): void
  • 移除自己 by gk 子类可以覆盖此方法来实现自定义移除

    Parameters

    • isMove: boolean = false

      可选参数 默认true 是否是组件移动时候的场景(这个时候无需设置最近的组件获取焦点)

    Returns void

Protected doRemoveChildComponent

  • doRemoveChildComponent(child: ComponentBase, isDestory?: boolean): void
  • 直接在子组件数组删除子组件

    Parameters

    • child: ComponentBase

      子组件

    • isDestory: boolean = false

      可选参数; 是否要释放资源,默认 false;

    Returns void

Protected doRenderBackground

  • doRenderBackground(): void
  • 渲染组件的背景颜色 子类可以通过覆盖这个函数实现自定义的背景颜色

    Returns void

Protected doRenderEnable

  • doRenderEnable(): void
  • 渲染用于属性 子类自己继承覆盖实现

    Returns void

Protected doRenderFocuse

  • doRenderFocuse(): void
  • 渲染出焦点的边框 by gk 子类可以覆盖此方法来自定义焦点

    Returns void

Protected doRenderHide

  • doRenderHide(): void
  • 渲染组件UI的是否可视 子类可以通过覆盖这个函数实现自定义的隐藏/显示

    Returns void

Protected doRenderHitTitle

  • doRenderHitTitle(): void
  • Returns void

doUpdate

  • doUpdate(): void
  • 更新组件,当修改了属性时候需要修改重新画组件的时候调用. 子类可以覆盖来自定义更新重画

    Returns void

eachChild

  • 遍历所有子组件

    Parameters

    Returns void

eachChildEx

  • eachChildEx(eachCallback: (cmp: ComponentBase) => any, onlyChild?: boolean): void
  • 遍历所有子子孙组件 如果要中断循环返回 false

    Parameters

    Returns void

extistComponent

  • extistComponent(childCmp: any): boolean
  • 判断是否存在组件

    Parameters

    • childCmp: any

      需要判断存在的组件

    Returns boolean

    成功就返回true,否则返回false

findChildComponentById

  • 通过组件id来获取子组件

    Parameters

    • cmpId: string

      组件Id

    Returns ComponentBase

    成功返回组件实例,否则返回undefine

findChildComponentByName

  • 通过组件name来获取子组件

    Parameters

    • cmpName: string

      组件name

    Returns ComponentBase

    成功返回组件实例,否则返回undefine

findChildComponents

  • findChildComponents<T>(callback: (item: ComponentBase) => Boolean): T[]
  • 通过一个回调函数的放回值来查找组件实例

    Type parameters

    • T

    Parameters

    • callback: (item: ComponentBase) => Boolean

      遍历整个函数组件树的回调,返回true时候符合条件,否则

    Returns T[]

    返回找到的找到的组件

findComponentById

  • 通过组件id来获取子子孙孙组件

    Parameters

    • cmpId: string

      组件Id

    Returns ComponentBase

    成功返回组件实例,否则返回undefine

findComponentByName

  • 通过组件name来获取子子孙孙组件

    Parameters

    • cmpName: string

      组件name

    Returns ComponentBase

    成功返回组件实例,否则返回undefine

findComponents

  • 通过组件的类来获取组件实例

    Type parameters

    • T

    Parameters

    Returns T[]

    返回找到的找到的组件数组

getAttrEditors

  • 获取组件的属性编辑器数组 *子类可以覆盖此方法来增加自定义性编辑器

    Returns AttributeEditorBase[]

getAttrsByClassName

  • 获取组件的属性编辑器数组

    Parameters

    • clazz: any

      组件的类 (注意:这里必须是类,不能是组件的实例.)

    Returns AttributeEditorBase[]

    返回组件的属性编辑器数组

getChildComponentByType

  • getChildComponentByType<T>(classDef: any): T
  • 通过组件的类来获取子孙组件实例

    Type parameters

    • T

    Parameters

    • classDef: any

      需要查找的子孙组件的类

    Returns T

    返回找到的找到的组件

getChildComponentsByType

  • getChildComponentsByType<T>(classDef: any): T[]
  • 通过组件的类来获取子孙组件实例数组

    Type parameters

    • T

    Parameters

    • classDef: any

      需要查找的子孙组件的类

    Returns T[]

    返回组件实例数组

getComponentByType

  • getComponentByType<T>(parent: any, classDef: any): T
  • 通过组件的类来获取组件实例

    Type parameters

    • T

    Parameters

    • parent: any

      父组件

    • classDef: any

      需要查找的子组件的类

    Returns T

    返回找到的第一个组件

getComponentsByType

  • getComponentsByType<T>(parent: any, classDef: any): T[]
  • 通过子孙组件的类来获取子孙组件实例

    Type parameters

    • T

    Parameters

    • parent: any

      父组件

    • classDef: any

      需要查找的子孙组件的类定义

    Returns T[]

    返回找到的找到的组件数组

getCustomDesignerMenuItems

  • 自定义设计模式下拉的弹出菜单

    reutns

    返回自定义的菜单数组

    Returns IMenuItem[]

getCxt

  • 得到页面上下文 上下文保存了资源的权限,resid...

    Returns ScriptContext

    上下文实例

getDefalutDesignerMenuItems

  • 得到默认的设计模式下的弹出菜单

    Returns IMenuItem[]

getDesignModel

  • getDesignModel(): boolean
  • 获取设计模式: true:设计模式 否则:运行模式

    Returns boolean

    返回 true设计模式 则反之

getDesignPopMenu

  • 获取设计模式下的弹出下拉菜单

    Returns Contextmenu

    设计模式下返回菜单实例 ,则返回null

getElemt

  • getElemt(): JQuery<HTMLElement>
  • 组件的最外层的jquery对象

    Returns JQuery<HTMLElement>

    返回组件的 jquery对象

getElemtHtml

  • getElemtHtml(): string
  • 返回组件的html的字符串.

    Returns string

    返回htm的字符串.用户渲染

getId

  • getId(): string
  • 获取组件的全球唯一id

    Returns string

    返回组件的全球唯一id字符串

getIndex

  • getIndex(): number
  • 获取组件的位置索引

    Returns number

    返回组件的位置索引,不存在父亲返回 -1

getName

  • getName(): string
  • 获取组件的名称

    Returns string

    组件的名称字符串

getNameString

  • getNameString(): string
  • 获取字符串 子类可以通过覆盖这个函数来自定义 主要用于设计模式,那些需要在组件树显示自定义的组件名称

    Returns string

Private getNearCmp

  • 得到最近的最近的兄弟组件

    Returns ComponentBase

    存在返回组件实例,否则返回null

getNext

  • 得到下一个兄弟(弟弟)组件

    Returns ComponentBase

    存在返回组件实例,否则返回null

getPage

  • 得到当前组件的page 组件

    Returns DesignerPageBase

    返回找到的designerPage 组件实例

getParent

  • 获取父组件

    Returns ComponentBase

    父组件

getPrev

  • 得到前一个兄弟(哥哥)组件

    Returns ComponentBase

    存在返回组件实例,否则返回null

getSerializePropertys

  • getSerializePropertys(): {}

hasCreate

  • hasCreate(): boolean
  • 判断json对象是否被创建为组件实例

    Returns boolean

hasPasteData

  • hasPasteData(callback: (has: boolean) => void): boolean
  • 设计模式下判断是否有数据可以粘贴

    Parameters

    • callback: (has: boolean) => void
        • (has: boolean): void
        • Parameters

          • has: boolean

          Returns void

    Returns boolean

    返回true 有数据

Protected hookgetElemtHtml

  • hookgetElemtHtml(html: string): string
  • html的钩子,可以修改组件返回的HTML,正常是返回html的值 给组件修改html的机会

    Parameters

    • html: string

      组件的html源码

    Returns string

    返回html

iniCss

  • iniCss(): any
  • 初始化组件的css

    Returns any

    返回组件样式对象.

Private iniSortable

  • iniSortable(): void
  • 设计模式下初始化拖拽

    Returns void

Private initCanFocuse

  • initCanFocuse(): void
  • 设计模式下设置焦点的样式

    Returns void

Private initMouseEvent

  • initMouseEvent(): void
  • 设计模式下初始化组件点击的事件

    Returns void

Protected insertAttrEditorAfter

Protected insertAttrEditorBefore

insertChildAfterCmp

  • 在组件before后添加组件

    Parameters

    Returns void

insertChildCmp

  • 在组件数组指定的位置插入组件后面增加子组件

    Parameters

    • childCmp: ComponentBase

      子组件

    • index: number = 0

      插入的位置( 0 ~ items.length-1)

    Returns void

Protected linkEditorOnDesigningDbClick

  • linkEditorOnDesigningDbClick(atrtName: string, cmpCallback?: (item: AttributeEditorBase) => boolean): void
  • 连接双击事件到属性编辑器

    Parameters

    Returns void

move

  • 移动组件到某个位置

    Parameters

    Returns void

needName

  • needName(): void

off

  • off(eventName: string, fn: Function, scope: any): void
  • 取消注册的事件

    Parameters

    • eventName: string

      事件名

    • fn: Function

      函数过程

    • scope: any

      this的取值

    Returns void

offbyEventName

  • offbyEventName(eventName: string): void
  • 取消注册的事件

    Parameters

    • eventName: string

      事件名

    Returns void

on

  • on<T>(eventName: string, fn: T, scope: any, o?: IObserver): void
  • 注册事件处理函数 注意,如果同一个函数重复注册只生效最后一个

    Type parameters

    • T

    Parameters

    • eventName: string

      事件的名称

    • fn: T

      事件处理函数

    • scope: any

      this的取值

    • Optional o: IObserver

      参数

    Returns void

onClick

  • 注册组件的鼠标左键击事件

    Parameters

    Returns void

onKeyPress

  • 注册键盘按下弹起事件

    Parameters

    Returns void

onKeyUp

  • 注册键盘按键弹起事件

    Parameters

    Returns void

onKeydown

  • 注册键盘按下时事件

    Parameters

    Returns void

onLeftDown

  • 注册组件的鼠标左键按下

    Parameters

    Returns void

onLeftUp

  • 注册组件的鼠标左键弹起

    Parameters

    Returns void

onMessage

  • onMessage(msg: any, callback: OnMessageHandle, override?: boolean, isGlobal?: boolean): void
  • 组件注册消息处理

    Parameters

    • msg: any

      处理的消息

    • callback: OnMessageHandle

      处理函数

    • Optional override: boolean

      是否覆盖原来注册的处理函数

    • Optional isGlobal: boolean

      是否全局监听(跨域iframe监听) 默认值 = false

    Returns void

onMouseMove

  • 注册组件的鼠标移动

    Parameters

    Returns void

onPageLoad

  • onPageLoad(fn: onPageLoadHandle): void
  • 注册组件所属的Page加载完毕回调,这时候组件已经渲染 $elemt应不会出现空 可用于初始化组件

    Parameters

    • fn: onPageLoadHandle

      回调函数

    Returns void

onRightClick

  • 注册组件的鼠标右键事件

    Parameters

    Returns void

onRightDown

  • 注册组件的鼠标右键按下

    Parameters

    Returns void

onRightUp

  • 注册组件的鼠标右键弹起

    Parameters

    Returns void

paste

  • paste(): void
  • 设计模式下的粘贴组件 子类可以覆盖此方法来实现自定义粘贴

    Returns void

purgeListeners

  • purgeListeners(): void

raiseEvent

  • raiseEvent(eventName: string, ...params: any[]): boolean
  • 触发事件 变量this.eventsSuspended 控制是否可以触发 true停止触发,则反之 例如:

    ```typescript this.raiseEvent('onClick',this,param1,param2)

    ```

    Parameters

    • eventName: string

      事件名称

    • Rest ...params: any[]

      可变参数列表 如: param1,param2,param3...

    Returns boolean

    返回事件的返回值

Protected raiseScriptEvent

  • raiseScriptEvent<T>(script: string, args?: any[]): any
  • 触发脚本事件函数

    Type parameters

    • T

    Parameters

    • script: string

      脚本

    • args: any[] = ...

      参数数组

    Returns any

    返回脚本内返回的值

relayEvents

  • relayEvents(o: IObserver, events: string[]): void
  • 接管事件, 可以把事件接管到当前this的事件 如: this.relayEvents(this.proxy, [DataSourceEventType.loadexception]);

    Parameters

    • o: IObserver

      需要接管的实例

    • events: string[]

      事件名数组

    Returns void

remove

  • remove(): void
  • 移除自己

    Returns void

removeAllChildComponent

  • removeAllChildComponent(): void
  • 清除所有子组件

    Returns void

removeChildComponent

  • removeChildComponent(cmp: ComponentBase, isDestory?: boolean): void
  • 移除下一级的子组件

    Parameters

    • cmp: ComponentBase

      需要移除的组件实例

    • isDestory: boolean = false

      可选参数; 是否要释放资源,默认 false;

    Returns void

removeChildComponentById

  • removeChildComponentById(cmpId: string): void
  • 移除子组件通过组件id

    Parameters

    • cmpId: string

      组件Id

    Returns void

removeChildComponentByName

  • removeChildComponentByName(cmpName: string): void
  • 移除子组件通过组件Name

    Parameters

    • cmpName: string

      组件名称

    Returns void

removeChildComponentExt

  • removeChildComponentExt(callback: (item: ComponentBase) => boolean, isDestory?: boolean): void
  • 移除下一级的子组件

    Parameters

    • callback: (item: ComponentBase) => boolean

      移除每个组件时候的回调,注意会回调多次

    • isDestory: boolean = false

      可选参数; 是否要释放资源,默认 false;

    Returns void

render

  • 渲染组件的函数

    Parameters

    Returns void

resumeEvents

  • resumeEvents(): void

select

  • select(): void
  • 设计模式下组件获取焦点

    Returns void

serialize

  • serialize(space?: any): any
  • 组件序列化

    Parameters

    • space: any = ...

      可选参数 输出的格式的缩进参数. 如:每行缩进两个空格 serialize(2)

    Returns any

    返回json字符串

setBackground

  • setBackground(value: string): void
  • 设置背景颜色

    Parameters

    • value: string

    Returns void

setCss

  • setCss(value: object): void
  • 设置组件的css

    Parameters

    • value: object

    Returns void

Protected setDefaultValues

  • setDefaultValues(): void

setEnable

  • setEnable(value: boolean): void
  • 设置是否可用 true 可以用,接收点击,焦点,否则不允许接受焦点

    Parameters

    • value: boolean

    Returns void

setHide

  • setHide(value: boolean): void
  • 设置隐藏

    Parameters

    • value: boolean

      true 组件隐藏,否则显示

    Returns void

setName

  • setName(value: string): void
  • 设置组件名称

    Parameters

    • value: string

      组件名

    Returns void

setPage

  • 设置页面实例,一般用于静态渲染时候getPage为空

    Parameters

    Returns void

setParent

  • 设置父组件

    Parameters

    • parent: ComponentBase

      父组件实例 非空时候设置组件的父组件, null,undefine 移除父组件

    • index: number = 0

      插入的子元素的位置( 0 ~ items.length-1)

    Returns void

setParentAfter

  • 设置父组件 ,在before后面插入组件

    Parameters

    • parent: ComponentBase

      父组件实例 非空时候设置组件的父组件, null,undefine 移除父组件

    • before: ComponentBase

      在before后面插入组件

    Returns void

Protected stopEventPropagation

  • stopEventPropagation(e: any): void
  • 停止事件的传播 注意这个事件是针对dom的html事件,而不是组件的事件

    Parameters

    • e: any

      事件对象

    Returns void

suspendEvents

  • suspendEvents(): void

Static getDesignmodel

  • getDesignmodel(): boolean
  • 获取设计模式

    Returns boolean

    true:设计模式 否则:运行模式

Generated using TypeDoc