跳转到内容

pivotick v3.0.0


拓展 / GraphUI / RailModeDefinition

接口: RailModeDefinition ​

定义于:interfaces/GraphUI.ts:440

注册到模式轨上的模式 - 集成商通过此门构建自己的“探索”或“丰富”模式。

注册模式呈现在分隔线下方的,在四种内置模式之后,按顺序排序。使用 graph.UIManager.addRailMode() 在图表生命周期中的任意时刻注册一个,或者通过 ctx.addRailMode() 从插件的 install 注册一个。要么返回一个处理器。

'pointer'模式拥有上下文工具面板:它声明tools,并且可以通过render添加任何其他内容。 'flyout' 模式改为提供 flyout 工厂,其面板在该模式处于活动状态时打开。

示例 ​

js
const dispose = graph.UIManager.addRailMode({
    id: 'explore', label: 'Explore', icon: compassSvg, shortcut: 'E',
    tools: [{ id: 'expand', label: 'Expand', icon: plusSvg, kind: 'action', run: () => … }],
})

属性 ​

defaultTool? ​

optional defaultTool: string | null

定义于:interfaces/GraphUI.ts:469

当没有任何装备时,此模式所依赖的工具。

默认值 ​

ts
null

flyout()? ​

optional flyout: (ui) => Flyout

定义于:interfaces/GraphUI.ts:515

构建此模式的弹出面板。对于 kind: 'flyout' 是必需的,否则被忽略。面板安装到弹出槽中并随模式拆卸;子类自己的 mode 必须等于此定义的 id。

参数 ​

ui ​

UIManager

返回值 ​

Flyout


icon ​

icon: string

定义于:interfaces/GraphUI.ts:449

一个 SVG 字符串,注入了 innerHTML 和 ** 未清理** — 它必须是可信的。 CSS 将其在导轨上的大小设置为 20px。


id ​

id: string

定义于:interfaces/GraphUI.ts:442

稳定身份:商店持有什么,以及轨道按钮上的data-mode。


keepPanelOpen? ​

optional keepPanelOpen: boolean

定义于:interfaces/GraphUI.ts:499

当启用此模式的工具之一时,请保持面板打开。武装通常会折叠面板,以便画布清晰 - 对于 Select 的套索来说是正确的,对于面板是工作区且其工具只说明如何提供它的模式是错误的。

默认值 ​

ts
false

kind? ​

optional kind: "pointer" | "flyout"

定义于:interfaces/GraphUI.ts:455

'pointer' 模式拥有工具面板; 'flyout' 模式打开设置覆盖层并且没有工具。

默认值 ​

ts
'pointer'

label ​

label: string

定义于:interfaces/GraphUI.ts:444

铁路按钮的标签,逐字使用。


onEnter()? ​

optional onEnter: () => void

定义于:interfaces/GraphUI.ts:517

当模式激活时调用。

返回值 ​

void


onExit()? ​

optional onExit: () => void

定义于:interfaces/GraphUI.ts:523

当离开该模式以及在活动状态下取消注册该模式时调用。解除这里设置的任何模式。不调用 UI 拆卸 - 使用您的插件已经跟踪的处理程序。

返回值 ​

void


order? ​

optional order: number

定义于:interfaces/GraphUI.ts:467

注册模式之间的显示顺序,升序。同等顺序保持注册顺序。不影响始终排在第一位的内置模式。

默认值 ​

ts
0

panelOpen? ​

optional panelOpen: boolean

定义于:interfaces/GraphUI.ts:475

第一次进入模式时是否展开工具面板。默认打开,以便可以发现该模式的工具。

默认值 ​

ts
true

panelResizable? ​

optional panelResizable: boolean

定义于:interfaces/GraphUI.ts:492

让分析人员拖动该模式的面板右边缘使其变宽或变窄。

默认关闭:图标行面板有一个右侧宽度,其上的手柄是一个不执行任何操作的控件。面板是工作区的模式——一个表单、一个列表、一组结果——是值得提供选择的地方。会话的每个模式都会记住宽度,并且不会保留,因此重新加载会再次从 panelWidth 开始。

默认值 ​

ts
false

panelWidth? ​

optional panelWidth: number

定义于:interfaces/GraphUI.ts:481

此模式的工具面板的宽度(以像素为单位)。内置宽度适合一行图标+标签;其 render 槽保存表单或列表的模式需要更多。

默认值 ​

ts
216

render()? ​

optional render: () => HTMLElement

定义于:interfaces/GraphUI.ts:509

额外的面板内容,附加在工具行的下方——滑块、搜索框、行无法表达的任何内容。每当重建面板时都会重新调用。

返回值 ​

HTMLElement


shortcut? ​

optional shortcut: string

定义于:interfaces/GraphUI.ts:461

激活模式或在其已处于活动状态时切换其面板的单个键。通过普通的键绑定管理器注册,因此已绑定的键会被隐藏(带有警告),直到删除此模式。


tools? ​

optional tools: RailTool[] | () => RailTool[]

定义于:interfaces/GraphUI.ts:504

该模式的工具,如面板中的行。当集合取决于当前选择或数据时传递函数;每次渲染时都会重新读取它。