跳转到内容

pivotick v3.0.0


拓展 / 拓展 / PivotDefinition

接口: PivotDefinition ​

定义于:interfaces/Pivot.ts:21

一种可运行的丰富功能:它的名称、运行的内容、如何宣传现有内容以及如何获取它。

拓展是两个函数和一些元数据。 PivotDefinition.summarize 是廉价的“那里有什么”调用,其方面成为缩小控制范围; PivotDefinition.fetch才是真正的。结果是 候选者 — 为分类而上演,永远不会在画布上 — 除非拓展声明 PivotDefinition.autoIngest。

属性 ​

appliesTo()? ​

optional appliesTo: (nodes) => boolean | Node[]

定义于:interfaces/Pivot.ts:54

该拓展是否适用于给定的原点,以及适用于多少。每次原点更改时都要重新读取,因此它必须是同步的且成本低廉。省略它,拓展适用于所有事物。当origin为'none'时不咨询。

返回一个 boolean 作为关于整个原点的规则 - “仅选择两个或更多”,“从不在音符上”。对于一次读取一个节点的规则,返回它应用于的节点,这是丰富的正常情况:混合域和IP的选择仍然提供仅域提供商,而不是单独的域。空数组的含义与 false 相同。

无论它保留什么,都是调用提供者的来源 - summarize 和 fetch 永远不会看到被拒绝的节点。

ts
appliesTo: nodes => nodes.length >= 2                          // whole origin
appliesTo: nodes => nodes.filter(n => accepted.has(typeOf(n))) // per node

参数 ​

nodes ​

Node[]

返回值 ​

boolean | Node[]


autoIngest? ​

optional autoIngest: boolean

定义于:interfaces/Pivot.ts:96

直接着陆结果,而不是将其分期进行分类。对于小的、可信的结果——将事件扩展到其对象——而不是分析师想要挑选的任何东西。该上限仍然适用。

true 和 false 都是答案,无论运行如何开始,都成立。不设置它与不是与false相同:它表示拓展没有视图,因此一键运行可能会单独决定大小 - 请参阅PivotRunOptions。autoIngestUpTo。以任何其他方式运行仍处于舞台状态。

默认值 ​

ts
undefined — stages, unless the run itself sets a size to land under

autoSave? ​

optional autoSave: boolean

定义于:interfaces/Pivot.ts:129

每次跑步落地后立即写下,无需任何手势。对于其结果已经是源系统自己的数据的拓展(将事件扩展到其对象),其中保存是更新而不是决策。

保存在摄取解析之后运行,而不是在摄取解析内部运行,因此缓慢的后端永远不会支撑画布;其结果由通知者报告。

默认值 ​

ts
false

fetch() ​

fetch: (nodes, narrowing, ctx) => PivotResult | Promise<PivotResult>

定义于:interfaces/Pivot.ts:84

真实价值因分析师的选择而缩小。

参数 ​

nodes ​

Node[]

narrowing ​

PivotNarrowing

ctx ​

PivotContext

返回值 ​

PivotResult | Promise<PivotResult>


icon? ​

optional icon: string

定义于:interfaces/Pivot.ts:27

SVG 字符串,注入 innerHTML 且未经清理——它必须是可信的。


id ​

id: string

定义于:interfaces/Pivot.ts:23

稳定身份:注册表项的内容以及摄取时写入的出处标签。


label ​

label: string

定义于:interfaces/Pivot.ts:25

标签,逐字使用(因此可以翻译)。


maxCandidates? ​

optional maxCandidates: number

定义于:interfaces/Pivot.ts:104

当广告计数超过此值时拒绝获取。提供者不知道的计数 (total: null) 永远不会被拒绝。没有库默认值:声明没有上限的拓展永远不会被 1 门控(PivotManagerLike。candidateCeiling 的绝对上限仍然适用于 fetch 返回的值)。


optional menuChoices: (nodes) => PivotMenuChoice[]

定义于:interfaces/Pivot.ts:72

上下文菜单的选项。对于任何一个,拓展的行都会打开一个子菜单,每个选项一行,每个选项都在缩小的位置上运行拓展,最后一行打开拓展面板。接收拓展适用的节点。同步且便宜,如 appliesTo:每次打开菜单时都会运行。

返回 [],或省略钩子,以获得没有变窄的普通行。

参数 ​

nodes ​

Node[]

返回值 ​

PivotMenuChoice[]

示例 ​

ts
// Enrich an object through one of its attributes.
menuChoices: ([object]) => attributesOf(object).map(a => ({
    label: `${a.type}: ${a.value}`,
    narrowing: { attribute: [a.id] },
}))

origin? ​

optional origin: "none" | "selection"

定义于:interfaces/Pivot.ts:34

这个拓展运行的基础是什么。 'selection' 拓展需要一个原点——分析师指向的节点; 'none' 拓展根本不需要任何节点(搜索、导入、暂存托盘)并接收 []。

默认值 ​

ts
'selection'

save()? ​

optional save: (payload, ctx) => PivotSaveOutcome | Promise<PivotSaveOutcome>

定义于:interfaces/Pivot.ts:119

将摄取的运行结果写回到源系统 - 合约的一半不是只读的。

省略它,该拓展表的结果是不可保存:它们永远不会进入分类帐,永远不会被算作未保存,并且不会为它们显示“保存”。对无法写入任何地方的派生数据进行的枢转应该忽略它,而不是声明一个失败的数据。

库永远不会单独调用 - 显式的 PivotManagerLike.save 或 PivotDefinition.autoSave。消费者执行写入;图书馆只是询问并记录答案。

参数 ​

payload ​

PivotSavePayload

ctx ​

PivotSaveContext

返回值 ​

PivotSaveOutcome | Promise<PivotSaveOutcome>


summarize()? ​

optional summarize: (nodes, narrowing, ctx) => PivotSummary | Promise<PivotSummary>

定义于:interfaces/Pivot.ts:82

便宜的“外面有什么”。在任何窄化存在之前用 {} 调用,并在原点或窄化发生变化时重新运行;它的各个方面成为缩小控制范围,其 total 是判断上限的数字。

省略它,拓展不会提供广告计数,也不会缩小 - 合法,但是 PivotDefinition.fetch 必须安全地调用盲注,因为没有任何东西可以控制它。

参数 ​

nodes ​

Node[]

narrowing ​

PivotNarrowing

ctx ​

PivotContext

返回值 ​

PivotSummary | Promise<PivotSummary>