fix(B07): 잠금 도면층을 집던 경로 다섯 곳을 마저 닫는다

앞선 감사가 불완전했다. 같은 부류로 도각·원지반을 건드리던 곳이 더 있었다.

- select-tool.helpers pickEntityAt: 클릭 선택 후보에 잠금 객체가 섞여
  도각을 물면 아무 일도 안 일어나는 죽은 클릭이 됐다.
- eraser-tool: 자르기의 교차점 계산이 도각 선을 절단 경계로 썼다.
- property-tools OVERKILL: 선택이 없으면 전체가 대상이라 도각까지 지웠다.
- text-tools 찾기/바꾸기: 도각 표제란 글자를 바꿔 버렸다.
- selection-tools 유형/유사 선택: 잠금 객체까지 세어 토스트 개수가 틀렸다.

전부 getPickableEntities()로 바꾼다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-31 15:48:08 +09:00
co-authored by Claude Opus 5
parent 008b0ede14
commit 9bf6de9b10
5 changed files with 27 additions and 11 deletions
@@ -2,7 +2,7 @@
import { toast } from 'react-toastify';
import type { Entity } from '../../entities/Entity';
import { hideEntities, isolateEntities, showAllEntities } from '../../helpers/visibility';
import { getEntities, setEntities, setSelectedEntityIds } from '../../state';
import { getEntities, getPickableEntities, setEntities, setSelectedEntityIds } from '../../state';
import { Tool } from '../../tools';
import { createSequenceTool } from '../factories/sequence-tool';
@@ -12,12 +12,13 @@ export const qSelectToolStateMachine = createSequenceTool({
steps: [
{
kind: 'text',
instructions: '선택할 객체 유형을 입력하십시오 (Line · Circle · Arc · Text · PolyLine · Hatch).',
instructions:
'선택할 객체 유형을 입력하십시오 (Line · Circle · Arc · Text · PolyLine · Hatch).',
},
],
commit: (input) => {
const wanted = input.text(0).trim().toLowerCase();
const matched = getEntities().filter(
const matched = getPickableEntities().filter(
(entity) => entity.getType().toLowerCase() === wanted
);
if (!matched.length) {
@@ -35,7 +36,7 @@ export const selectSimilarToolStateMachine = createSequenceTool({
steps: [{ kind: 'entity', instructions: '기준이 될 객체를 선택하십시오.' }],
commit: (input) => {
const reference = input.entity(0);
const similar = getEntities().filter(
const similar = getPickableEntities().filter(
(entity) =>
entity.getType() === reference.getType() &&
entity.lineColor === reference.lineColor &&