@ bimetal/ kanban- 无头
犬科,框架-不可知论 kanban 控制器 - 2号案例
BIMETAL 组成家族. 建造在 @bimetal/headless-core 完全一样
日历控制器, 因此它共享身份稳定 getSnapshot编号 :subscribe
合同和错误-状态表面;框架约束是纯粹的约束.
createKanbanController({ store, boardId, config }) 拥有每个棋盘
交互决定 :
- 对话框 —— 说
openCreateCard编号 :openEditCard编号 :saveCard编号 :deleteCard。 。 。 . - 拖放( D) —— 说
dropCard(cardId, toColumnId, toIndex)编号 :reorderCard, (中文(简体) ), 与startDrag编号 :updateDragPreview编号 :endDrag用于现场预览. - 指针拖曳 —— 说
pointerDownCard编号 :pointerMoveCard编号 :pointerUpCard编号 :pointerCancelCard。鼠标拖动后 4 px. Atouch或者说pen指针 (通过)e.pointerType) 只有在config.touchHoldMs(默认450毫秒)不动. 浏览器的刷子 滚动( 卡片有touch-action: pan-x pan-y) (中文(简体) ). 一拿到一张卡片,touchMoveCard(e)停止滚动; 在touchmove与{ passive: false }。 。 。 .contextMenuCard(e)保留长压菜单 (双金属363).touchHoldMs: 0在触地得分时取出卡片; 刷取 开始于一纸牌,然后拖动它而不滚动(bimetal-386). - WIP - 错误状态 - 被拒绝的创建/移动(WIP限制)表面为
snapshot.lastAction永远不要扔进装订箱里. - 撤销 —— 说
undo()恢复整个董事会的一步;Ctrl/Cmd+Z通过handleKeydown。 。 。 . - 过滤/ 选择 —— 说
setFilter, (中文(简体) ),selectCard编号 :clearSelection。 。 。 . - 激活 ——卡片点击(不是按下拖放的点击)和
Enter离开 结束activateCard: 它选择了卡片( e)onSelectionChange火烧了 调用可选onCardActivate(cardId)钩. 用钩子,或用config.cardDialog: false,内置编辑对话框不打开——用于 在自己的详细视图中显示卡片的主机(master-detail). - 锁定 —— 说
config.readOnly锁定一切, 移动包含.config.lockStructure(栏:增加、重命名、重排、删除、WIP)和config.lockCardContent(卡:创建,编辑,删除) 锁更细并保存 按指针和键盘移动牌; 撤消/重做在任意锁下被关闭 。 这个 快照携带canEditStructure编号 :canEditCards编号 :undoRedoAvailable, (中文(简体) ), 捆绑者们以这等人的衣食遮盖他们的衣食.
切线与日历控制器相同: DOM 测量和
听者注册属于框架 if 属于这里.