@hatiolab/things-scene 10.0.0-beta.95 → 10.0.0-beta.96
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-types/things-scene/api/index.d.ts +0 -1
- package/dist-types/things-scene/api/index.d.ts.map +1 -1
- package/dist-types/things-scene/index.d.ts +0 -1
- package/dist-types/things-scene/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/things-scene-min.js +10 -10
- package/things-scene-min.js.map +1 -1
- package/things-scene.mjs +3 -3
- package/things-scene.mjs.map +1 -1
- package/dist-types/things-scene/api/bulk-create.d.ts +0 -102
- package/dist-types/things-scene/api/bulk-create.d.ts.map +0 -1
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
export type Pattern = 'grid' | 'line-h' | 'line-v';
|
|
2
|
-
export interface Area {
|
|
3
|
-
left: number;
|
|
4
|
-
top: number;
|
|
5
|
-
width: number;
|
|
6
|
-
height: number;
|
|
7
|
-
}
|
|
8
|
-
export interface BulkCreateOptions {
|
|
9
|
-
/** 복제할 원본 컴포넌트 state. id, left, top 제외하고 모두 상속. */
|
|
10
|
-
template: Record<string, any>;
|
|
11
|
-
/** 타겟 영역 (보드 좌표). */
|
|
12
|
-
area: Area;
|
|
13
|
-
/** 분포 패턴. */
|
|
14
|
-
pattern: Pattern;
|
|
15
|
-
/**
|
|
16
|
-
* 총 개수. grid 패턴에선 rows × cols 로 분해.
|
|
17
|
-
* rows/cols 가 명시되면 그것 사용, 미명시 시 area 비율과 count 로 자동 결정.
|
|
18
|
-
*/
|
|
19
|
-
count: number;
|
|
20
|
-
/** grid pattern 용 — 행 수. 미지정 시 area 비율 + count 로 자동. */
|
|
21
|
-
rows?: number;
|
|
22
|
-
/** grid pattern 용 — 열 수. 미지정 시 area 비율 + count 로 자동. */
|
|
23
|
-
cols?: number;
|
|
24
|
-
/**
|
|
25
|
-
* ID 패턴. placeholder:
|
|
26
|
-
* `{i}` — 일련번호 (0-based + idStart)
|
|
27
|
-
* `{r}` — 행 index (grid 만, 0-based + idStart)
|
|
28
|
-
* `{c}` — 열 index (grid 만, 0-based + idStart)
|
|
29
|
-
* 예: "PORT_{i}", "P_{r}_{c}", "CELL{r}{c}"
|
|
30
|
-
*/
|
|
31
|
-
idPattern: string;
|
|
32
|
-
/** ID 시작 번호. default 1. */
|
|
33
|
-
idStart?: number;
|
|
34
|
-
/** ID 숫자 자릿수 (zero-pad). 0 = 미적용. default 0. */
|
|
35
|
-
idPadding?: number;
|
|
36
|
-
/**
|
|
37
|
-
* 컴포넌트의 크기를 사용할지 (= template.width/height 그대로) 또는 cell 에
|
|
38
|
-
* 맞춰 자동 조정할지. default 'template' (원본 크기 유지).
|
|
39
|
-
*/
|
|
40
|
-
sizeMode?: 'template' | 'fit-cell';
|
|
41
|
-
}
|
|
42
|
-
export interface GeneratedModel {
|
|
43
|
-
type?: string;
|
|
44
|
-
id: string;
|
|
45
|
-
left: number;
|
|
46
|
-
top: number;
|
|
47
|
-
width: number;
|
|
48
|
-
height: number;
|
|
49
|
-
[key: string]: any;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* 타겟 영역과 총 count 로 grid 의 (rows, cols) 자동 결정.
|
|
53
|
-
* area 의 종횡비를 가능한 한 보존.
|
|
54
|
-
*/
|
|
55
|
-
export declare function deriveGridShape(count: number, area: Area, rows?: number, cols?: number): {
|
|
56
|
-
rows: number;
|
|
57
|
-
cols: number;
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* 메인 헬퍼 — 옵션을 받아 새 컴포넌트 model 배열 반환.
|
|
61
|
-
*
|
|
62
|
-
* **주의**: 반환된 model 은 `scene.add(models)` 로 추가하면 된다. ID 충돌 사전
|
|
63
|
-
* 검사는 호출 측 책임 — `findIdConflicts` 와 결합 사용.
|
|
64
|
-
*/
|
|
65
|
-
export declare function generateBulkComponents(opts: BulkCreateOptions): GeneratedModel[];
|
|
66
|
-
/**
|
|
67
|
-
* 생성될 model 의 id 중 기존 scene 의 id 와 충돌하는 것 검출.
|
|
68
|
-
* @returns 충돌하는 id 배열 (없으면 빈 배열).
|
|
69
|
-
*/
|
|
70
|
-
export declare function findIdConflicts(models: GeneratedModel[], existingIds: Iterable<string>): string[];
|
|
71
|
-
/**
|
|
72
|
-
* 템플릿의 id 문자열로부터 다음 컴포넌트들의 ID 패턴을 자동 추론.
|
|
73
|
-
*
|
|
74
|
-
* 규칙:
|
|
75
|
-
* - 끝에 숫자 있음: `"PORT_05"` → `{ pattern: "PORT_{i}", start: 6, padding: 2 }`
|
|
76
|
-
* - 끝에 숫자 없음: `"abc"` → `{ pattern: "abc_{i}", start: 1, padding: 0 }`
|
|
77
|
-
* - 빈 id: `{ pattern: "{i}", start: 1, padding: 0 }`
|
|
78
|
-
*
|
|
79
|
-
* padding 은 *leading zero* 가 있을 때만 적용:
|
|
80
|
-
* - "05" → padding 2 (= "01", "02"... 형식 유지)
|
|
81
|
-
* - "5" → padding 0 (= "1", "2"... 형식)
|
|
82
|
-
*/
|
|
83
|
-
export declare function inferIdPattern(id: string | undefined | null): {
|
|
84
|
-
pattern: string;
|
|
85
|
-
start: number;
|
|
86
|
-
padding: number;
|
|
87
|
-
};
|
|
88
|
-
/**
|
|
89
|
-
* 패턴이 매칭하는 기존 ID 들 중 *최대 번호 + 1* 반환 — 반복 bulk-create 시
|
|
90
|
-
* 시작 번호 자동 advance 용.
|
|
91
|
-
*
|
|
92
|
-
* 예:
|
|
93
|
-
* pattern = "PORT_{i}", existingIds = ["PORT_05", "PORT_12", "Other_1"]
|
|
94
|
-
* → 13 (= 12 + 1)
|
|
95
|
-
*
|
|
96
|
-
* 매칭 안 되면 fallbackStart 반환 (기본 inferIdPattern 의 start).
|
|
97
|
-
*
|
|
98
|
-
* NOTE: 현재 `{i}` placeholder 만 인식. `{r}` / `{c}` 는 grid 전용이므로 별도
|
|
99
|
-
* 처리 필요 (추후).
|
|
100
|
-
*/
|
|
101
|
-
export declare function nextAvailableStart(idPattern: string, existingIds: Iterable<string>, fallbackStart: number): number;
|
|
102
|
-
//# sourceMappingURL=bulk-create.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-create.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/bulk-create.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAElD,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,qBAAqB;IACrB,IAAI,EAAE,IAAI,CAAA;IACV,aAAa;IACb,OAAO,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,CAAA;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAWhC;AAuBD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,EAAE,CAsEhF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EAAE,EACxB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC5B,MAAM,EAAE,CAOV;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB,CAqBA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC7B,aAAa,EAAE,MAAM,GACpB,MAAM,CAoBR"}
|