@operato/scene-storage 10.0.0-beta.48 → 10.0.0-beta.50
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/CHANGELOG.md +16 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/picking-station-3d.d.ts +20 -0
- package/dist/picking-station-3d.js +162 -0
- package/dist/picking-station-3d.js.map +1 -0
- package/dist/picking-station.d.ts +56 -0
- package/dist/picking-station.js +212 -0
- package/dist/picking-station.js.map +1 -0
- package/dist/rack-capability.d.ts +11 -0
- package/dist/rack-capability.js +25 -0
- package/dist/rack-capability.js.map +1 -0
- package/dist/rack-grid.js +3 -10
- package/dist/rack-grid.js.map +1 -1
- package/dist/spot.d.ts +19 -1
- package/dist/spot.js +63 -1
- package/dist/spot.js.map +1 -1
- package/dist/stockpile-3d.d.ts +55 -0
- package/dist/stockpile-3d.js +387 -0
- package/dist/stockpile-3d.js.map +1 -0
- package/dist/stockpile-grid-3d.d.ts +30 -0
- package/dist/stockpile-grid-3d.js +301 -0
- package/dist/stockpile-grid-3d.js.map +1 -0
- package/dist/stockpile-grid.d.ts +88 -0
- package/dist/stockpile-grid.js +429 -0
- package/dist/stockpile-grid.js.map +1 -0
- package/dist/stockpile.d.ts +133 -0
- package/dist/stockpile.js +439 -0
- package/dist/stockpile.js.map +1 -0
- package/dist/storage-rack.d.ts +12 -0
- package/dist/storage-rack.js +20 -10
- package/dist/storage-rack.js.map +1 -1
- package/dist/templates/index.d.ts +80 -0
- package/dist/templates/index.js +7 -1
- package/dist/templates/index.js.map +1 -1
- package/dist/templates/picking-station.d.ts +20 -0
- package/dist/templates/picking-station.js +22 -0
- package/dist/templates/picking-station.js.map +1 -0
- package/dist/templates/stockpile-grid.d.ts +37 -0
- package/dist/templates/stockpile-grid.js +38 -0
- package/dist/templates/stockpile-grid.js.map +1 -0
- package/dist/templates/stockpile.d.ts +29 -0
- package/dist/templates/stockpile.js +31 -0
- package/dist/templates/stockpile.js.map +1 -0
- package/package.json +3 -3
- package/src/index.ts +14 -0
- package/src/picking-station-3d.ts +164 -0
- package/src/picking-station.ts +243 -0
- package/src/rack-capability.ts +26 -0
- package/src/rack-grid.ts +3 -8
- package/src/spot.ts +62 -0
- package/src/stockpile-3d.ts +412 -0
- package/src/stockpile-grid-3d.ts +327 -0
- package/src/stockpile-grid.ts +456 -0
- package/src/stockpile.ts +508 -0
- package/src/storage-rack.ts +21 -8
- package/src/templates/index.ts +7 -1
- package/src/templates/picking-station.ts +23 -0
- package/src/templates/stockpile-grid.ts +39 -0
- package/src/templates/stockpile.ts +32 -0
- package/test/test-rack-capability.ts +51 -0
- package/translations/en.json +18 -6
- package/translations/ja.json +18 -6
- package/translations/ko.json +17 -5
- package/translations/ms.json +18 -6
- package/translations/zh.json +17 -5
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Rack 적재 mover 능력 판정 — rackAcceptsMoverTool 순수 로직 검증.
|
|
3
|
+
*
|
|
4
|
+
* storage-rack.canAcceptFromMover 가 이 함수에 위임. "AMR(agv-deck)은 rack 선반
|
|
5
|
+
* 직접 적재 불가 → 거부" 가 정확히 동작해야 transfer planner 가 in-port 경유를
|
|
6
|
+
* 자동 선택한다 (텔레포트 방지의 핵심).
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import 'should'
|
|
10
|
+
import { rackAcceptsMoverTool } from '../src/rack-capability.js'
|
|
11
|
+
|
|
12
|
+
describe('rackAcceptsMoverTool — 적재 mover 능력 게이트', () => {
|
|
13
|
+
it('★ agv-deck (AMR) 거부 — 평탄데크는 선반 직접 적재 불가 ★', () => {
|
|
14
|
+
rackAcceptsMoverTool('agv-deck').should.be.false()
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
it('gripper (crane) 허용', () => {
|
|
18
|
+
rackAcceptsMoverTool('gripper').should.be.true()
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
it('forklift-fork (지게차) 허용', () => {
|
|
22
|
+
rackAcceptsMoverTool('forklift-fork').should.be.true()
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
it('stacker / shuttle (미니로드) 허용', () => {
|
|
26
|
+
rackAcceptsMoverTool('stacker').should.be.true()
|
|
27
|
+
rackAcceptsMoverTool('shuttle').should.be.true()
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
it('toolType 없음 (능력 미상) → 허용 (보수적 통과)', () => {
|
|
31
|
+
rackAcceptsMoverTool(undefined).should.be.true()
|
|
32
|
+
rackAcceptsMoverTool(null).should.be.true()
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
it('blockedTools override — 빈 배열이면 모두 허용', () => {
|
|
36
|
+
rackAcceptsMoverTool('agv-deck', []).should.be.true()
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
it('blockedTools 명시 — gripper 도 거부 가능', () => {
|
|
40
|
+
rackAcceptsMoverTool('gripper', ['gripper', 'agv-deck']).should.be.false()
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
it('blockedTools 가 배열 아님 (잘못된 값) → 허용', () => {
|
|
44
|
+
rackAcceptsMoverTool('agv-deck', 'invalid' as any).should.be.true()
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
it('default blockedTools 는 agv-deck 만 — 다른 평탄류 영향 없음', () => {
|
|
48
|
+
// 'agv' 같은 변형은 default 에 없으므로 허용 (사용자가 명시해야 거부)
|
|
49
|
+
rackAcceptsMoverTool('agv').should.be.true()
|
|
50
|
+
})
|
|
51
|
+
})
|
package/translations/en.json
CHANGED
|
@@ -10,12 +10,10 @@
|
|
|
10
10
|
"component.mobile-storage-rack": "mobile storage rack",
|
|
11
11
|
"component.spot": "spot",
|
|
12
12
|
"component.generic-container": "container",
|
|
13
|
-
|
|
14
13
|
"label.tracking-id": "tracking id",
|
|
15
14
|
"label.material": "material",
|
|
16
15
|
"label.depth": "depth",
|
|
17
16
|
"label.fill": "fill",
|
|
18
|
-
|
|
19
17
|
"label.bays": "bays",
|
|
20
18
|
"label.levels": "levels",
|
|
21
19
|
"label.rows": "rows",
|
|
@@ -39,8 +37,7 @@
|
|
|
39
37
|
"label.stock-scale": "stock scale",
|
|
40
38
|
"label.legend-target": "legend target",
|
|
41
39
|
"label.shelf-base-height": "shelf base height",
|
|
42
|
-
|
|
43
|
-
"label.status": "status",
|
|
40
|
+
"label.status": "Status",
|
|
44
41
|
"label.simulate": "simulate",
|
|
45
42
|
"label.speed": "speed",
|
|
46
43
|
"label.bound-holders": "bound holders",
|
|
@@ -51,7 +48,6 @@
|
|
|
51
48
|
"label.fork-extension": "fork extension",
|
|
52
49
|
"label.fork-lift": "fork lift",
|
|
53
50
|
"label.pocket-depth": "pocket depth",
|
|
54
|
-
|
|
55
51
|
"option.idle": "idle",
|
|
56
52
|
"option.moving": "moving",
|
|
57
53
|
"option.loading": "loading",
|
|
@@ -64,5 +60,21 @@
|
|
|
64
60
|
"option.multi": "multi",
|
|
65
61
|
"option.bulk": "bulk",
|
|
66
62
|
"option.wood": "wood",
|
|
67
|
-
"option.plastic": "plastic"
|
|
63
|
+
"option.plastic": "plastic",
|
|
64
|
+
"component.stockpile": "Stockpile",
|
|
65
|
+
"component.stockpile-grid": "Stockpile Grid",
|
|
66
|
+
"label.stack-pattern": "Stack Pattern",
|
|
67
|
+
"label.carrier-preset": "Carrier Preset",
|
|
68
|
+
"label.carrier-width": "Carrier Width",
|
|
69
|
+
"label.carrier-height": "Carrier Height",
|
|
70
|
+
"label.carrier-depth": "Carrier Depth",
|
|
71
|
+
"label.carrier-gap": "Carrier Gap",
|
|
72
|
+
"label.capacity": "Capacity",
|
|
73
|
+
"label.stack-height-limit": "Stack Height Limit",
|
|
74
|
+
"label.pick-policy": "Pick Policy",
|
|
75
|
+
"label.cols": "Columns",
|
|
76
|
+
"label.cell-width": "Cell Width",
|
|
77
|
+
"label.cell-height": "Cell Height",
|
|
78
|
+
"component.picking-station": "Picking Station",
|
|
79
|
+
"label.processing-time-ms": "Processing Time (ms)"
|
|
68
80
|
}
|
package/translations/ja.json
CHANGED
|
@@ -10,12 +10,10 @@
|
|
|
10
10
|
"component.mobile-storage-rack": "移動式ラック",
|
|
11
11
|
"component.spot": "スポット",
|
|
12
12
|
"component.generic-container": "コンテナ",
|
|
13
|
-
|
|
14
13
|
"label.tracking-id": "追跡ID",
|
|
15
14
|
"label.material": "材質",
|
|
16
15
|
"label.depth": "深さ",
|
|
17
16
|
"label.fill": "塗りつぶし",
|
|
18
|
-
|
|
19
17
|
"label.bays": "ベイ数",
|
|
20
18
|
"label.levels": "段数",
|
|
21
19
|
"label.rows": "行",
|
|
@@ -39,8 +37,7 @@
|
|
|
39
37
|
"label.stock-scale": "在庫スケール",
|
|
40
38
|
"label.legend-target": "凡例対象",
|
|
41
39
|
"label.shelf-base-height": "棚の基準高さ",
|
|
42
|
-
|
|
43
|
-
"label.status": "状態",
|
|
40
|
+
"label.status": "ステータス",
|
|
44
41
|
"label.simulate": "シミュレーション",
|
|
45
42
|
"label.speed": "速度",
|
|
46
43
|
"label.bound-holders": "バインドホルダー",
|
|
@@ -51,7 +48,6 @@
|
|
|
51
48
|
"label.fork-extension": "フォーク伸縮",
|
|
52
49
|
"label.fork-lift": "フォーク昇降",
|
|
53
50
|
"label.pocket-depth": "ポケットの深さ",
|
|
54
|
-
|
|
55
51
|
"option.idle": "待機",
|
|
56
52
|
"option.moving": "移動中",
|
|
57
53
|
"option.loading": "積込中",
|
|
@@ -64,5 +60,21 @@
|
|
|
64
60
|
"option.multi": "マルチ",
|
|
65
61
|
"option.bulk": "バルク",
|
|
66
62
|
"option.wood": "木製",
|
|
67
|
-
"option.plastic": "プラスチック"
|
|
63
|
+
"option.plastic": "プラスチック",
|
|
64
|
+
"component.stockpile": "平地保管",
|
|
65
|
+
"component.stockpile-grid": "平地保管グリッド",
|
|
66
|
+
"label.stack-pattern": "積み方",
|
|
67
|
+
"label.carrier-preset": "キャリア種類",
|
|
68
|
+
"label.carrier-width": "キャリア幅",
|
|
69
|
+
"label.carrier-height": "キャリア高さ",
|
|
70
|
+
"label.carrier-depth": "キャリア奥行",
|
|
71
|
+
"label.carrier-gap": "キャリア間隔",
|
|
72
|
+
"label.capacity": "収容量",
|
|
73
|
+
"label.stack-height-limit": "段数制限",
|
|
74
|
+
"label.pick-policy": "取出方針",
|
|
75
|
+
"label.cols": "列数",
|
|
76
|
+
"label.cell-width": "セル幅",
|
|
77
|
+
"label.cell-height": "セル高さ",
|
|
78
|
+
"component.picking-station": "ピッキングステーション",
|
|
79
|
+
"label.processing-time-ms": "処理時間 (ms)"
|
|
68
80
|
}
|
package/translations/ko.json
CHANGED
|
@@ -10,12 +10,10 @@
|
|
|
10
10
|
"component.mobile-storage-rack": "이동형 저장 랙",
|
|
11
11
|
"component.spot": "스팟",
|
|
12
12
|
"component.generic-container": "컨테이너",
|
|
13
|
-
|
|
14
13
|
"label.tracking-id": "추적 ID",
|
|
15
14
|
"label.material": "재질",
|
|
16
15
|
"label.depth": "깊이",
|
|
17
16
|
"label.fill": "채움",
|
|
18
|
-
|
|
19
17
|
"label.bays": "베이 수",
|
|
20
18
|
"label.levels": "단수",
|
|
21
19
|
"label.rows": "행",
|
|
@@ -39,7 +37,6 @@
|
|
|
39
37
|
"label.stock-scale": "재고 크기",
|
|
40
38
|
"label.legend-target": "범례 대상",
|
|
41
39
|
"label.shelf-base-height": "선반 시작 높이",
|
|
42
|
-
|
|
43
40
|
"label.status": "상태",
|
|
44
41
|
"label.simulate": "시뮬레이션",
|
|
45
42
|
"label.speed": "속도",
|
|
@@ -51,7 +48,6 @@
|
|
|
51
48
|
"label.fork-extension": "포크 신축",
|
|
52
49
|
"label.fork-lift": "포크 들기",
|
|
53
50
|
"label.pocket-depth": "포켓 깊이",
|
|
54
|
-
|
|
55
51
|
"option.idle": "대기",
|
|
56
52
|
"option.moving": "이동중",
|
|
57
53
|
"option.loading": "적재중",
|
|
@@ -64,5 +60,21 @@
|
|
|
64
60
|
"option.multi": "다중",
|
|
65
61
|
"option.bulk": "벌크",
|
|
66
62
|
"option.wood": "나무",
|
|
67
|
-
"option.plastic": "플라스틱"
|
|
63
|
+
"option.plastic": "플라스틱",
|
|
64
|
+
"component.stockpile": "평치",
|
|
65
|
+
"component.stockpile-grid": "평치 그리드",
|
|
66
|
+
"label.stack-pattern": "적치 패턴",
|
|
67
|
+
"label.carrier-preset": "캐리어 종류",
|
|
68
|
+
"label.carrier-width": "캐리어 너비",
|
|
69
|
+
"label.carrier-height": "캐리어 높이",
|
|
70
|
+
"label.carrier-depth": "캐리어 깊이",
|
|
71
|
+
"label.carrier-gap": "캐리어 간격",
|
|
72
|
+
"label.capacity": "수용량",
|
|
73
|
+
"label.stack-height-limit": "적치 단수 제한",
|
|
74
|
+
"label.pick-policy": "출고 정책",
|
|
75
|
+
"label.cols": "열 수",
|
|
76
|
+
"label.cell-width": "셀 너비",
|
|
77
|
+
"label.cell-height": "셀 높이",
|
|
78
|
+
"component.picking-station": "피킹 스테이션",
|
|
79
|
+
"label.processing-time-ms": "처리 시간 (ms)"
|
|
68
80
|
}
|
package/translations/ms.json
CHANGED
|
@@ -10,12 +10,10 @@
|
|
|
10
10
|
"component.mobile-storage-rack": "rak mudah alih",
|
|
11
11
|
"component.spot": "titik",
|
|
12
12
|
"component.generic-container": "bekas",
|
|
13
|
-
|
|
14
13
|
"label.tracking-id": "ID penjejakan",
|
|
15
14
|
"label.material": "bahan",
|
|
16
15
|
"label.depth": "kedalaman",
|
|
17
16
|
"label.fill": "isi",
|
|
18
|
-
|
|
19
17
|
"label.bays": "bay",
|
|
20
18
|
"label.levels": "tingkat",
|
|
21
19
|
"label.rows": "baris",
|
|
@@ -39,8 +37,7 @@
|
|
|
39
37
|
"label.stock-scale": "skala stok",
|
|
40
38
|
"label.legend-target": "sasaran legenda",
|
|
41
39
|
"label.shelf-base-height": "tinggi asas rak",
|
|
42
|
-
|
|
43
|
-
"label.status": "status",
|
|
40
|
+
"label.status": "Status",
|
|
44
41
|
"label.simulate": "simulasi",
|
|
45
42
|
"label.speed": "kelajuan",
|
|
46
43
|
"label.bound-holders": "pemegang terikat",
|
|
@@ -51,7 +48,6 @@
|
|
|
51
48
|
"label.fork-extension": "lanjutan garpu",
|
|
52
49
|
"label.fork-lift": "angkat garpu",
|
|
53
50
|
"label.pocket-depth": "kedalaman poket",
|
|
54
|
-
|
|
55
51
|
"option.idle": "menunggu",
|
|
56
52
|
"option.moving": "bergerak",
|
|
57
53
|
"option.loading": "memuat",
|
|
@@ -64,5 +60,21 @@
|
|
|
64
60
|
"option.multi": "berbilang",
|
|
65
61
|
"option.bulk": "pukal",
|
|
66
62
|
"option.wood": "kayu",
|
|
67
|
-
"option.plastic": "plastik"
|
|
63
|
+
"option.plastic": "plastik",
|
|
64
|
+
"component.stockpile": "Stokpil",
|
|
65
|
+
"component.stockpile-grid": "Grid Stokpil",
|
|
66
|
+
"label.stack-pattern": "Pola Susunan",
|
|
67
|
+
"label.carrier-preset": "Pratetap Pembawa",
|
|
68
|
+
"label.carrier-width": "Lebar Pembawa",
|
|
69
|
+
"label.carrier-height": "Tinggi Pembawa",
|
|
70
|
+
"label.carrier-depth": "Kedalaman Pembawa",
|
|
71
|
+
"label.carrier-gap": "Jarak Pembawa",
|
|
72
|
+
"label.capacity": "Kapasiti",
|
|
73
|
+
"label.stack-height-limit": "Had Tinggi Susunan",
|
|
74
|
+
"label.pick-policy": "Dasar Ambil",
|
|
75
|
+
"label.cols": "Lajur",
|
|
76
|
+
"label.cell-width": "Lebar Sel",
|
|
77
|
+
"label.cell-height": "Tinggi Sel",
|
|
78
|
+
"component.picking-station": "Stesen Pengambilan",
|
|
79
|
+
"label.processing-time-ms": "Masa Proses (ms)"
|
|
68
80
|
}
|
package/translations/zh.json
CHANGED
|
@@ -10,12 +10,10 @@
|
|
|
10
10
|
"component.mobile-storage-rack": "移动货架",
|
|
11
11
|
"component.spot": "位点",
|
|
12
12
|
"component.generic-container": "容器",
|
|
13
|
-
|
|
14
13
|
"label.tracking-id": "追踪ID",
|
|
15
14
|
"label.material": "材质",
|
|
16
15
|
"label.depth": "深度",
|
|
17
16
|
"label.fill": "填充",
|
|
18
|
-
|
|
19
17
|
"label.bays": "隔位数",
|
|
20
18
|
"label.levels": "层数",
|
|
21
19
|
"label.rows": "行",
|
|
@@ -39,7 +37,6 @@
|
|
|
39
37
|
"label.stock-scale": "库存比例",
|
|
40
38
|
"label.legend-target": "图例对象",
|
|
41
39
|
"label.shelf-base-height": "货架基准高度",
|
|
42
|
-
|
|
43
40
|
"label.status": "状态",
|
|
44
41
|
"label.simulate": "模拟",
|
|
45
42
|
"label.speed": "速度",
|
|
@@ -51,7 +48,6 @@
|
|
|
51
48
|
"label.fork-extension": "叉伸",
|
|
52
49
|
"label.fork-lift": "叉升",
|
|
53
50
|
"label.pocket-depth": "口袋深度",
|
|
54
|
-
|
|
55
51
|
"option.idle": "待机",
|
|
56
52
|
"option.moving": "移动中",
|
|
57
53
|
"option.loading": "装载中",
|
|
@@ -64,5 +60,21 @@
|
|
|
64
60
|
"option.multi": "多重",
|
|
65
61
|
"option.bulk": "批量",
|
|
66
62
|
"option.wood": "木质",
|
|
67
|
-
"option.plastic": "塑料"
|
|
63
|
+
"option.plastic": "塑料",
|
|
64
|
+
"component.stockpile": "平地堆放",
|
|
65
|
+
"component.stockpile-grid": "平地堆放网格",
|
|
66
|
+
"label.stack-pattern": "堆叠方式",
|
|
67
|
+
"label.carrier-preset": "载具预设",
|
|
68
|
+
"label.carrier-width": "载具宽度",
|
|
69
|
+
"label.carrier-height": "载具高度",
|
|
70
|
+
"label.carrier-depth": "载具深度",
|
|
71
|
+
"label.carrier-gap": "载具间距",
|
|
72
|
+
"label.capacity": "容量",
|
|
73
|
+
"label.stack-height-limit": "堆叠层数限制",
|
|
74
|
+
"label.pick-policy": "出库策略",
|
|
75
|
+
"label.cols": "列数",
|
|
76
|
+
"label.cell-width": "单元宽度",
|
|
77
|
+
"label.cell-height": "单元高度",
|
|
78
|
+
"component.picking-station": "拣选工作站",
|
|
79
|
+
"label.processing-time-ms": "处理时间 (ms)"
|
|
68
80
|
}
|