# @aglyn/besigner 中文文档

规范地址：https://npmcn.com/package/%40aglyn/besigner/

版本：1\.19\.0
npm 元数据更新时间：2026-11-07T13:57:11.053Z
中文译文更新时间：2026-11-05T23:19:18.729Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aglyn/besigner
原文对照：https://npmcn.com/package/%40aglyn/besigner/?lang=original
项目主页：https://aglyn.com/
源码仓库：https://github.com/aglyn/aglyn

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：369 kB，99 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：9 个
- peer 依赖：react ^19\.2\.8
- 首次发布：2026-09-20T23:52:52.436Z
- 最新版本发布：2026-11-07T13:57:10.690Z
- 近 30 天下载量：9673（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：159（近 12 个月 159 个）

## 中文简介

Besigner,Aglyn的视觉编辑器的逻辑,其中没有UI:编辑器应用和界面状态,选择和徘徊,拖放规则,元素和样式剪贴板,和节点移动. 如果您在 Aglyn 节点上建起自己的编辑器, 请安装它

## 安装

```sh
npm install @aglyn/besigner
```

也可以使用：`pnpm add @aglyn/besigner`、`yarn add @aglyn/besigner`、`bun add @aglyn/besigner`

## README

# @aglyn/ 签名人

Besigner的逻辑,Aglyn的视觉编辑器,里面没有UI:编辑应用程序和 界面状态、选择和徘徊、拖放规则、元素和 样式剪贴板和节点移动。 安装它,如果你正在建造自己的 在Aglyn的节点模型上编辑 UI. 如果你想让编辑像船一样飞,就拿 `@aglyn/besigner-ui`,它基于此软件包.

> 从Aglyn monorepo出版到npm. 随后的版本 [语义版本](https://semver.org/)。 。 。 .

## 安装

```
npm install @aglyn/besigner
```

同伴依赖性 :

-   `react` (仅用于参考类型;软件包不产生)

这是"只有逻辑"的消费者故事: `@aglyn/besigner` 合并 `@aglyn/aglyn` 安装为 `react` 作为唯一的同伴。 它需要没有 `next`,没有 SDK基地,没有MUI和没有 `@aglyn/besigner-ui`. 框架同行 `@aglyn/aglyn` 这些都是可选的.

## 里面有什么东西

编辑器应用程序和接口状态 :

-   `initializeBesignerApp`, (中文(简体) ), `getBesignerApp`, (中文(简体) ), `doesBesignerAppExist` 财务报告和审定财务报表 `deleteBesignerApp` 管理命名的编辑器应用实例 (单位:千美元)`BesignerAppController`) (中文(简体) ). 没有名称,则使用默认的应用程序.
-   `BesignerInterfaceController` 持有编辑器的旗帜和面板状态. `setBesignerFlag`, (中文(简体) ), `setBesignerFlags`, (中文(简体) ), `setBesignerPanel` 财务报告和审定财务报表 `setBesignerPanels` 更新给给定的应用程序 .
-   该状态的常数和类型: `InteractionModeFlag`, (中文(简体) ), `BesignerDeviceFlag`, (中文(简体) ), `BesignerPanelViewFlag`, (中文(简体) ), `BesignerPanelTabFlag`, (中文(简体) ), `BesignerContext` 和旗和面板键类型.

管理者,在 `@aglyn/aglyn`数字 :

-   `focus` 是选择、徘徊和扩展树的状态: `setSelectedNode`, (中文(简体) ), `getSelected`, (中文(简体) ), `rangeSelectNode`, (中文(简体) ), `clearSelection`, (中文(简体) ), `setHoveredNode`, (中文(简体) ), `expandNode`, (中文(简体) ), `collapseNode` 还有其他.
-   `dnd` 是一个 `DndManager` 实例跟踪当前拖放目标 空降区。 再说一遍 `confirmValidLinealRelationship`检查 (b) 某一项目是否属于某一父项目(线性规则), 和空投区域几何帮助,例如 `determineDropRegion`。 。 。 .
-   `clipboard` 副本和粘贴元素(`copyNodes`, (中文(简体) ), `pasteInto`, (中文(简体) ), `hasContent`, (中文(简体) ), `clear`),以及 `styleClipboard` 样式也一样。 这个 剪贴板镜像本身进入 `localStorage`。 。 。 .
-   `moveNodeIn`, (中文(简体) ), `moveNodeOut`, (中文(简体) ), `canMoveNodeIn`, (中文(简体) ), `canMoveNodeOut`, (中文(简体) ), `resolveMoveIn` 财务报告和审定财务报表 `resolveMoveOut` 将节点一个关卡移动入或出 它的邻居.
-   `pick` 是“ 在画布上选择一个元素” 模式 : `startPick`, (中文(简体) ), `cancelPick`, (中文(简体) ), `isPicking`, (中文(简体) ), `handlePickClick`。 。 。 .
-   `refs` 将节点ID图到他们完成的DOM refs上,一个UI填充.
-   `isTextEntryElement` 财务报告和审定财务报表 `isTextEntryFocused` 告诉快捷键处理器 用户正在输入.
-   `devicePreviewWidth` 财务报告和审定财务报表 `isRootElementId` 他们是小帮手.

每个文件下 `src/lib` 也可以通过子路径达到,例如 `@aglyn/besigner/focus-manager/focus-manager`。 。 。 .

## 使用量

```ts
import { canvas } from '@aglyn/aglyn'
import {
  canMoveNodeOut,
  clipboard,
  focus,
  initializeBesignerApp,
  moveNodeOut,
} from '@aglyn/besigner'

const app = initializeBesignerApp()

// `nodes` is a NodesMap loaded from a stored screen version
canvas.setNodes(nodes)

const [first] = canvas.rootNode.children
focus.setSelectedNode(first)

clipboard.copyNodes(focus.getSelected())
const pasted = clipboard.pasteInto(canvas.rootNode)
if (pasted.error) console.warn(pasted.error)

if (canMoveNodeOut(first)) moveNodeOut(first)
```

一个完整的应用程序是这样构建的, 有自己的大纲、工具栏和预览, 实值 [`examples/consumers/logic-only`](https://github.com/aglyn/aglyn/tree/main/examples/consumers/logic-only) 在单体。 它安装这个软件包 `@aglyn/aglyn` 从 npm 改为 `react` aglyn的CI在浏览器里建立并运行它 在每一个释放.

## 怎样才合适

这是 `besigner` 包映射的范围:设计者的逻辑, 无需UI即可发布. 进口核心`@aglyn/aglyn`)和 常规 `@aglyn/shared-*` 只有软件包。 它从不进口设计师UI 渲染器或插件 . `@aglyn/besigner-ui` 上面是反应表面,还有 插件也可能导入它 .

## 许可证

阿帕奇2.0 (英语). 资料来源: [https://github.com/aglyn/aglyn/tree/main/libs/besigner/core 页面存档备份,存于互联网档案馆](https://github.com/aglyn/aglyn/tree/main/libs/besigner/core)

## 常见问题

### @aglyn/besigner 是什么？

Besigner,Aglyn的视觉编辑器的逻辑,其中没有UI:编辑器应用和界面状态,选择和徘徊,拖放规则,元素和样式剪贴板,和节点移动\. 如果您在 Aglyn 节点上建起自己的编辑器, 请安装它

### 如何安装 @aglyn/besigner？

在项目目录运行 npm install @aglyn/besigner，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（^19\.2\.8）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @aglyn/besigner 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @aglyn/besigner 支持 ESM 还是 CommonJS？

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

### @aglyn/besigner 可以商用吗？

@aglyn/besigner 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @aglyn/besigner 的下载量有多少？

根据 npm 官方下载统计，@aglyn/besigner 在 2026/10/05 – 2026/11/03 这 30 天内被下载 9,673 次，日均约 322 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aglyn/besigner 还在维护吗？

最新版本 1\.19\.0 发布于 2026/11/07（今天）；至今共发布 159 个版本，其中过去 12 个月发布了 159 个；首次发布于 2026/09/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

