生态产品多个设计器现已发布候选版本

查看生态总览
跳转到内容

模型层 core ​

@xihan-flow/core 是纯 TypeScript 的模型层:流程定义的类型、读入检查、校验、编辑操作、连线几何、节点类型登记与扩展合并,不依赖 DOM,浏览器、Node.js 与其它 JavaScript 运行环境里都能用。流程定义的字段见流程定义类型,问题码见问题码。下表按源码模块列出全部导出。

全部导出 ​

extensions ​

名称种类说明
createFlowModel函数合出流程模型:内置扩展 FLOW_CORE_EXTENSION 在前,extensions 按顺序在后。
FLOW_CORE_EXTENSION常量内置扩展:连线的标签与虚线。
FLOW_EXTENSION_SPACES常量流程各层扩展共用的名字空间:节点类型、连线属性路径与流程定义级属性路径。
FlowCoreExtension接口流程 core 层的扩展:节点类型、连线属性、流程定义级属性、编辑方式与规则。
FlowModel接口一组扩展合出的流程模型:节点类型、连线与流程定义级属性、编辑方式。
FlowRuleContext接口规则拿到的上下文:合并后的节点类型。
patchExtensionData函数某个扩展的数据写进对象原有的 extensions 后的新值,交给 updateNode / updateEdge / updateDocument 的 patch.extensions:别的扩展的数据原样保留;data 为 undefined 时去掉这一块,去完为空时为 null(即删掉 extensions 字段)。

geometry ​

名称种类说明
computeEdgeGeometry函数求全部连线的折线:带折点的连线依次穿过折点,其余交给 route;两端都以端口位置为起止。
FlowEdgeAnchor接口连线的一端:端口位置与离开(起点)或进入(终点)节点的那一边。
FlowEdgeGeometry接口一条连线的几何;端点解析不出时 points 为空、anchored 为 false。
FlowEdgeRouter类型路由器:给出从起点锚点到终点锚点的完整折线(含两端)。
FlowRouteRequest接口路由器的输入:两端锚点与要绕开的节点框。
resolveEdgeAnchor函数解析连线一端的锚点;节点不存在、类型未知或没有可用端口时返回 undefined。

issues ​

名称种类说明
FlowEdgeEnd类型连线的一端。
FlowIssue类型一条问题:问题码、从文档根算起的路径、所在对象(节点为 { kind: 'node', id },连线为 { kind: 'edge', id })、严重程度与参数,不带文案。
FlowIssueCode类型全部问题码。
FlowSchemaIssueCode类型读取未知输入时的结构问题码:通用问题码之外只有版本不受支持。
FlowValidationIssueCode类型按节点类型登记表校验文档时的问题码;required 与取值问题码来自节点属性检查。

operations ​

名称种类说明
applyOperation函数应用一个编辑操作,返回新文档与逆操作,不修改输入文档;未改动的节点与连线沿用原引用。
applyOperations函数依次应用一组操作;逆操作为各操作逆操作按反序拼接。
FlowDocumentPatch接口文档字段补丁:缺省表示不变,null 表示删除该字段。
FlowEdgePatch接口连线字段补丁:缺省表示不变,null 表示删除该字段。
FlowNodePatch接口节点字段补丁:缺省表示不变,null 表示删除该字段。
FlowNodePosition接口节点的新位置。
FlowOperation类型编辑操作;所有操作都是纯 JSON。
FlowOperationError类操作无法应用时抛出的错误;文档保持不变。
FlowOperationErrorCode类型操作失败原因。
FlowOperationResult接口应用操作的结果:新文档与按顺序应用即可撤销的逆操作;没有带来变化时文档是传入的同一引用、逆操作为空。
FlowOperationType类型操作类型名。

read ​

名称种类说明
FlowReadResult类型读取结果:成功时给出规范化后的文档副本,失败时给出全部结构问题。
readDocument函数把未知输入读成文档:逐项检查字段类型、必填项与多余字段,返回不与输入共享引用的副本。

registry ​

名称种类说明
createNode函数按节点类型新建节点:尺寸、标签与 data 取类型默认值,init 中给出的字段优先;再把属性描述的缺省值写进还没有值的路径。
createNodeTypeRegistry函数创建节点类型登记表;定义不合法时抛错。
findPort函数查找节点类型上的端口。
FlowConnectionRule接口连接约束。
FlowEdgeStyleRule接口按连线数据给的外观:when 对连线本身求值,满足时并上 style。
FlowNodeDefaults接口新建节点时的默认值。
FlowNodeInit接口新建节点的参数。
FlowNodeType接口规范化后的节点类型:端口展开为具名端口列表。
FlowNodeTypeDefinition接口节点类型定义:同时驱动物料面板、属性面板、连线约束与结构校验。
FlowNodeTypeRegistry接口节点类型登记表。
FlowPort接口规范化后的端口。
FlowPortDefinition接口具名端口定义。
FlowPortDirection类型端口方向:只入、只出或双向。
FlowPortPreset类型端口预设:in 为左侧入口 in,out 为右侧出口 out,both 为两者都有,none 为无端口。
FlowPortSide类型端口所在的节点边。
FlowPropertyControl类型节点属性的编辑方式:内建的编辑方式之外,扩展可以登记自己的种类(如受理人选择),编辑器由设计器层的扩展提供。
FlowPropertyDescriptor类型节点属性描述:path 相对节点本身,如 ['data', 'properties', 'Url']、['label']。
getPortPosition函数计算端口在世界坐标系中的位置。
portAllows函数判断端口能否作为连线的指定一端:起点需可出,终点需可入。
resolveEdgeStyle函数连线此刻的外观:源节点类型的 outgoingEdgeStyles 按先后并上满足条件的,连线自己写的 style 再逐项压过;源节点类型未知时只有连线自己写的。

schema ​

名称种类说明
createDocument函数创建空文档。
FLOW_DOCUMENT_VERSION常量当前文档 schema 版本。
FlowDocument接口流程图文档;数组顺序即绘制层级,靠后的在上层。
FlowEdge接口连线:起止端点、标签、外观、业务数据与可选折点。
FlowEdgeStyle接口连线外观。
FlowEndpoint接口连线端点:节点与可选端口。
FlowNode接口节点:左上角坐标、尺寸、可选标签与业务数据。
FlowPoint接口世界坐标系中的点。
FlowRect接口轴对齐矩形。
FlowSize接口尺寸。

validate ​

名称种类说明
checkConnection函数检查在 source 与 target 之间新增一条连线是否违反端口与连接约束,返回全部问题;空数组表示允许连接。
DEFAULT_ISSUE_SEVERITY常量各问题码的缺省严重程度。
FlowConnectionCheckOptions接口连接检查选项。
FlowConnectionIssueCode类型连接检查可能给出的问题码。
FlowConnectionProblem接口一条连接问题;end 指出问题出在哪一端,自环问题不带 end。
FlowValidateOptions接口校验选项。
resolveEndpointPort函数解析端点实际连接的端口:指定了端口时按 id 查找,否则取第一个允许该端的端口。
validateDocument函数按扩展合出的流程模型校验文档结构,返回全部问题,每条都带上严重程度。

Released under The MIT License