@bpmn-io/diagram-js-canvas-lock

中文文档
0.1.0发布于 2026/07/01MITES Module零依赖近 30 天下载 4万

用于锁定画布的图-js插件

中文使用文档
文档目录11 节
  1. 特征
  2. 安装
  3. 使用量
  4. 与图-js- Canvas- 锁结合
  5. 1. 查询锁定状态( pull)
  6. 2. 对锁定变化的反应(推)
  7. 3. 使互动具有否决权( *.allowed (公约)
  8. 4. 样式锁定状态( CSS sook)
  9. 公共合同摘要
  10. 发展
  11. 许可证

图表-js- canvas- lock

CI

此模块扩展 图表-js- 有画布锁功能的基于编辑器.

特征

  • 程序锁定并解锁画布

安装

通过 npm 安装 :

npm install @bpmn-io/diagram-js-canvas-lock

使用量

用作扩展名 日记数字 :

import CanvasLockModule from '@bpmn-io/diagram-js-canvas-lock';

const modeler = new BpmnModeler({
  additionalModules: [
    CanvasLockModule
  ]
});

锁定并解锁画布 canvasLock 服务 :

const canvasLock = modeler.get('canvasLock');

canvasLock.lock();

canvasLock.isLocked(); // true

canvasLock.unlock();

与图-js- Canvas- 锁结合

根据设计,本模块对运行中的其他图-js插件一无所知 并肩作战 相反,它暴露了一个小而稳定的合同,任何插件都可以 整合到一起。 如果您的插件添加了交互式的 UI( 纸片、 覆盖、 菜单, ...) , 尊重锁通过下列一个或多个.

1. 查询锁定状态( pull)

保护自己的入境点 canvasLock.isLocked()数字 :

MyPad.prototype.canOpen = function(target) {
  if (this._canvasLock.isLocked()) {
    return false;
  }

  // ...
};

canvasLock 是可选的依赖性 — 通过注射器解决它, 所以您 插件在编辑器中继续工作, 没有画布锁 :

function MyPad(injector) {
  this._canvasLock = injector.get('canvasLock', false);
}

MyPad.prototype.isLocked = function() {
  return this._canvasLock && this._canvasLock.isLocked();
};

MyPad.$inject = [ 'injector' ];

2. 对锁定变化的反应(推)

订阅 canvasLock.changed 打开或恢复用户界面的事件 锁定已切换 :

eventBus.on('canvasLock.changed', function(event) {
  if (event.locked) {
    myPad.close();
  }
});

3. 使互动具有否决权(*.allowed (公约)

在图 -js公约之后,发射 <x>.allowed 打开前的事件 如果有听众返回,则保释 false. Canvas 锁(和其他特性)可以 然后在不知道您的插件的情况下否决交互:

MyPad.prototype.open = function(target) {
  if (this._eventBus.fire('myPad.open.allowed', { target: target }) === false) {
    return;
  }

  // ...
};

4. 样式锁定状态( CSS sook)

在锁定时,帆布容器载有 djs-canvas-locked 课。 用这个 以隐藏或淡化插件 :

.djs-canvas-locked .my-pad {
  display: none;
}

公共合同摘要

表面类型说明
canvasLock.lock() 编号 : unlock()API 密码切开锁.
canvasLock.isLocked()API 密码查询当前锁定状态 .
canvasLock.changed活动与 { locked } 当锁切换.
djs-canvas-lockedCSS 类锁定时添加到帆布容器中 .

发展

npm install

npm start

许可证

麻省理工学院

版本与发布记录

@bpmn-io/diagram-js-canvas-lock 共发布 1 个版本,首次发布于 2026/07/01;过去 12 个月发布了 1 个版本。

版本发布日期距今
0.1.0latest2026/07/014 个月前

关于 @bpmn-io/diagram-js-canvas-lock 的常见问题

@bpmn-io/diagram-js-canvas-lock 是什么?

用于锁定画布的图-js插件

如何安装 @bpmn-io/diagram-js-canvas-lock?

在项目目录运行 npm install @bpmn-io/diagram-js-canvas-lock,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:diagram-js(>= 15.16.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@bpmn-io/diagram-js-canvas-lock 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/bpmn-io__diagram-js-canvas-lock 是否存在。

@bpmn-io/diagram-js-canvas-lock 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@bpmn-io/diagram-js-canvas-lock 可以商用吗?

@bpmn-io/diagram-js-canvas-lock 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@bpmn-io/diagram-js-canvas-lock 的下载量有多少?

根据 npm 官方下载统计,@bpmn-io/diagram-js-canvas-lock 在 2026/10/09 – 2026/11/07 这 30 天内被下载 40,299 次,日均约 1,343 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bpmn-io/diagram-js-canvas-lock 还在维护吗?

最新版本 0.1.0 发布于 2026/07/01(4 个月前);至今共发布 1 个版本,其中过去 12 个月发布了 1 个;首次发布于 2026/07/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。