@things-factory/station 10.1.35 → 10.1.37
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.
|
@@ -113,7 +113,7 @@ export const stationCommonTiles = [
|
|
|
113
113
|
icon: ICON_CONTEXT,
|
|
114
114
|
description: 'not drawn — sets what this screen reads and how often',
|
|
115
115
|
group: 'station',
|
|
116
|
-
model: { type: 'station-context', ...at(40,
|
|
116
|
+
model: { type: 'station-context', ...at(40, 670, 200, 60), showFields: '', refreshSeconds: 10 }
|
|
117
117
|
}
|
|
118
118
|
];
|
|
119
119
|
//# sourceMappingURL=station-palette.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"station-palette.js","sourceRoot":"","sources":["../../client/station/station-palette.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,QAAQ,EACT,MAAM,0BAA0B,CAAA;AAIjC;;;;;GAKG;AACH,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBZ,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,kGAAkG;IAC/G,IAAI;IACJ,SAAS,EAAE,EAAE;CACd,CAAA;AAED,0CAA0C;AAC1C,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AAEvG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD;QACE,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,2BAA2B;QACrC,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,6CAA6C;QAC1D,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;KAC9F;IACD;QACE,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,yBAAyB;QACnC,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;KAChF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,gCAAgC;QAC7C,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;KACvE;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,SAAS;QAChB;;;;;WAKG;QACH,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;KACpF;IACD;QACE;;;;;WAKG;QACH,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,6BAA6B;QACvC,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,uDAAuD;QACpE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;KAChG;CACF,CAAA","sourcesContent":["/**\n * 저작면 팔레트에 서는 **기계의 타일 다섯**과 그 그룹 (ADR-0083 결정 6).\n *\n * ── 어떻게 서나 ─────────────────────────────────────────────────────────────\n * 이 꾸러미의 `package.json` 에 `\"things-scene\": true` 가 있고 뿌리에 `things-scene.config.js` 가\n * 있으면, `@things-factory/env` 가 의존 꾸러미를 훑어 이것을 모으고 보드 모델러가 세운다. 꾸러미\n * 42 개가 이미 그 길이다.\n *\n * operato-plant 는 손으로 등록했었다 — 그 부품이 **앱 안에 있어서** 그물에 안 걸렸기 때문이다. 옮기고\n * 나면 그 까닭이 없어진다. 플랫폼에 길이 있는데 옆에 사설 수집기를 세우지 않는다.\n *\n * ── 제품의 타일은 여기 없다 ─────────────────────────────────────────────────\n * 작업지시 · 정비 · 자재 · 지시서 · 동작은 구조를 읽으므로 제품의 것이고, 제품이\n * `registerStationTiles` 로 건다. 가르는 잣대는 **구조를 읽는가**다.\n *\n * ── 이름표는 열쇠다 ─────────────────────────────────────────────────────────\n * `labelKey` 를 항목이 들고 온다(UX 판정 2026-09-20). 값으로 굳히면 언어를 바꿨을 때 옛말이 남는다 —\n * 등록은 기동 때 한 번이고 언어는 그 뒤에도 바뀐다. 손으로 적은 둘째 지도를 두지 않으려는 것이기도\n * 하다: 지도가 안 갈리면 놓인 타일이 이름 대신 `station-counts` 로 뜬다.\n */\n\nimport {\n ICON_CONTEXT,\n ICON_COUNTS,\n ICON_FIELD,\n ICON_NUMPAD,\n ICON_WHO\n} from './scene/station-icons.js'\n\nimport type { StationTileEntry } from './station-tile-registry.js'\n\n/*\n * 그룹 아이콘 — 작업대 위의 태블릿.\n *\n * 다른 그룹 아이콘과 같은 붓을 쓴다: 주된 것은 굵게(2.5), 윤곽은 가늘게(1.0), 강조는 채운다.\n * `{{strokeColor}}` 는 모델러가 테마 색으로 바꿔 넣는다.\n */\nconst icon = `\n<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 30\" style=\"enable-background:new 0 0 30 30;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n .st14{fill:none;stroke:{{strokeColor}};stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\n .st15{fill:none;stroke:{{strokeColor}};stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\n </style>\n <g>\n <!-- 화면 — 이 그룹의 주인공이라 굵게 -->\n <rect class=\"st14\" x=\"6\" y=\"4.5\" width=\"18\" height=\"12\" rx=\"1.5\"/>\n <!-- 화면 안의 한 줄. 작업자가 읽는 값이 있다는 뜻 -->\n <line class=\"st15\" x1=\"9\" y1=\"8.5\" x2=\"17\" y2=\"8.5\"/>\n <line class=\"st15\" x1=\"9\" y1=\"12\" x2=\"21\" y2=\"12\"/>\n <!-- 받침대 -->\n <line class=\"st15\" x1=\"15\" y1=\"16.5\" x2=\"15\" y2=\"20\"/>\n <!-- 작업대 상판 -->\n <rect class=\"st0\" x=\"4\" y=\"20\" width=\"22\" height=\"2\"/>\n <!-- 다리 -->\n <line class=\"st15\" x1=\"7\" y1=\"22\" x2=\"7\" y2=\"26.5\"/>\n <line class=\"st15\" x1=\"23\" y1=\"22\" x2=\"23\" y2=\"26.5\"/>\n </g>\n</svg>\n`\n\nexport const stationGroup = {\n name: 'station',\n description: 'what an operator sees at a workbench — the values, the prompts, and the buttons that record work',\n icon,\n templates: []\n}\n\n/** 놓았을 때의 자리와 크기. 겹치지 않게 조금씩 어긋나 떨어진다. */\nconst at = (left: number, top: number, width: number, height: number) => ({ left, top, width, height })\n\n/**\n * 기본 크기는 **작업대에서 읽히는 크기**로 잡는다. 저작자가 놓자마자 줄여야 한다면 그 기본값이 틀린\n * 것이다 — 현장 화면은 한 걸음 떨어져서 읽는다.\n *\n * `equipment` 를 비워 둔다. 비면 그 화면이 걸린 작업대를 따르고, 적으면 그 설비에 못 박힌다.\n */\nexport const stationCommonTiles: StationTileEntry[] = [\n {\n type: 'station-field',\n labelKey: 'label.modeller-part-field',\n icon: ICON_FIELD,\n description: 'one value from the station — pick which one',\n group: 'station',\n model: { type: 'station-field', ...at(40, 40, 300, 90), field: '', label: '', valueSize: 26 }\n },\n {\n type: 'station-who',\n labelKey: 'label.modeller-part-who',\n icon: ICON_WHO,\n description: 'who is scanned in at this station',\n group: 'station',\n model: { type: 'station-who', ...at(40, 150, 300, 110), label: '', prompt: '' }\n },\n {\n type: 'station-counts',\n labelKey: 'label.modeller-part-counts',\n icon: ICON_COUNTS,\n description: 'good and reject counted so far',\n group: 'station',\n model: { type: 'station-counts', ...at(360, 40, 300, 110), label: '' }\n },\n {\n type: 'station-numpad',\n labelKey: 'label.modeller-part-numpad',\n icon: ICON_NUMPAD,\n description: 'record a count without a keyboard',\n group: 'station',\n /*\n * 높이는 **저작 검사가 요구하는 최소 위**로 잡는다. 이 검사는 숫자판을 3×4 로 보고 머리 72 를\n * 뺀 뒤 칸이 44 이상인지 본다(`station-design-check`). 240 이던 때는 칸이 42 라, 저작자가 팔레트\n * 에서 놓자마자 「입력 영역을 44px 이상으로 하십시오」가 떴다 — 처음 놓은 것이 이미 틀렸다고\n * 말하는 저작면은 그 검사를 안 믿게 만든다. 260 이면 칸이 47 이다.\n */\n model: { type: 'station-numpad', ...at(360, 160, 300, 260), label: '', counts: '' }\n },\n {\n /*\n * 그리지 않는 부품이다 — 이 화면이 무엇을 얼마나 자주 읽을지를 정한다.\n *\n * 저작면에서는 자리를 차지하지만 작업대에서는 안 보인다. 팔레트에 있어야 하는 이유는, 없으면\n * 저작자가 갱신 주기를 손댈 방법이 아예 없기 때문이다.\n */\n type: 'station-context',\n labelKey: 'label.modeller-part-context',\n icon: ICON_CONTEXT,\n description: 'not drawn — sets what this screen reads and how often',\n group: 'station',\n model: { type: 'station-context', ...at(40,
|
|
1
|
+
{"version":3,"file":"station-palette.js","sourceRoot":"","sources":["../../client/station/station-palette.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,QAAQ,EACT,MAAM,0BAA0B,CAAA;AAIjC;;;;;GAKG;AACH,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBZ,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,kGAAkG;IAC/G,IAAI;IACJ,SAAS,EAAE,EAAE;CACd,CAAA;AAED,0CAA0C;AAC1C,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AAEvG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD;QACE,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,2BAA2B;QACrC,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,6CAA6C;QAC1D,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;KAC9F;IACD;QACE,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,yBAAyB;QACnC,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;KAChF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,gCAAgC;QAC7C,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;KACvE;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,SAAS;QAChB;;;;;WAKG;QACH,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;KACpF;IACD;QACE;;;;;WAKG;QACH,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,6BAA6B;QACvC,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,uDAAuD;QACpE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;KAChG;CACF,CAAA","sourcesContent":["/**\n * 저작면 팔레트에 서는 **기계의 타일 다섯**과 그 그룹 (ADR-0083 결정 6).\n *\n * ── 어떻게 서나 ─────────────────────────────────────────────────────────────\n * 이 꾸러미의 `package.json` 에 `\"things-scene\": true` 가 있고 뿌리에 `things-scene.config.js` 가\n * 있으면, `@things-factory/env` 가 의존 꾸러미를 훑어 이것을 모으고 보드 모델러가 세운다. 꾸러미\n * 42 개가 이미 그 길이다.\n *\n * operato-plant 는 손으로 등록했었다 — 그 부품이 **앱 안에 있어서** 그물에 안 걸렸기 때문이다. 옮기고\n * 나면 그 까닭이 없어진다. 플랫폼에 길이 있는데 옆에 사설 수집기를 세우지 않는다.\n *\n * ── 제품의 타일은 여기 없다 ─────────────────────────────────────────────────\n * 작업지시 · 정비 · 자재 · 지시서 · 동작은 구조를 읽으므로 제품의 것이고, 제품이\n * `registerStationTiles` 로 건다. 가르는 잣대는 **구조를 읽는가**다.\n *\n * ── 이름표는 열쇠다 ─────────────────────────────────────────────────────────\n * `labelKey` 를 항목이 들고 온다(UX 판정 2026-09-20). 값으로 굳히면 언어를 바꿨을 때 옛말이 남는다 —\n * 등록은 기동 때 한 번이고 언어는 그 뒤에도 바뀐다. 손으로 적은 둘째 지도를 두지 않으려는 것이기도\n * 하다: 지도가 안 갈리면 놓인 타일이 이름 대신 `station-counts` 로 뜬다.\n */\n\nimport {\n ICON_CONTEXT,\n ICON_COUNTS,\n ICON_FIELD,\n ICON_NUMPAD,\n ICON_WHO\n} from './scene/station-icons.js'\n\nimport type { StationTileEntry } from './station-tile-registry.js'\n\n/*\n * 그룹 아이콘 — 작업대 위의 태블릿.\n *\n * 다른 그룹 아이콘과 같은 붓을 쓴다: 주된 것은 굵게(2.5), 윤곽은 가늘게(1.0), 강조는 채운다.\n * `{{strokeColor}}` 는 모델러가 테마 색으로 바꿔 넣는다.\n */\nconst icon = `\n<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 30\" style=\"enable-background:new 0 0 30 30;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n .st14{fill:none;stroke:{{strokeColor}};stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\n .st15{fill:none;stroke:{{strokeColor}};stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\n </style>\n <g>\n <!-- 화면 — 이 그룹의 주인공이라 굵게 -->\n <rect class=\"st14\" x=\"6\" y=\"4.5\" width=\"18\" height=\"12\" rx=\"1.5\"/>\n <!-- 화면 안의 한 줄. 작업자가 읽는 값이 있다는 뜻 -->\n <line class=\"st15\" x1=\"9\" y1=\"8.5\" x2=\"17\" y2=\"8.5\"/>\n <line class=\"st15\" x1=\"9\" y1=\"12\" x2=\"21\" y2=\"12\"/>\n <!-- 받침대 -->\n <line class=\"st15\" x1=\"15\" y1=\"16.5\" x2=\"15\" y2=\"20\"/>\n <!-- 작업대 상판 -->\n <rect class=\"st0\" x=\"4\" y=\"20\" width=\"22\" height=\"2\"/>\n <!-- 다리 -->\n <line class=\"st15\" x1=\"7\" y1=\"22\" x2=\"7\" y2=\"26.5\"/>\n <line class=\"st15\" x1=\"23\" y1=\"22\" x2=\"23\" y2=\"26.5\"/>\n </g>\n</svg>\n`\n\nexport const stationGroup = {\n name: 'station',\n description: 'what an operator sees at a workbench — the values, the prompts, and the buttons that record work',\n icon,\n templates: []\n}\n\n/** 놓았을 때의 자리와 크기. 겹치지 않게 조금씩 어긋나 떨어진다. */\nconst at = (left: number, top: number, width: number, height: number) => ({ left, top, width, height })\n\n/**\n * 기본 크기는 **작업대에서 읽히는 크기**로 잡는다. 저작자가 놓자마자 줄여야 한다면 그 기본값이 틀린\n * 것이다 — 현장 화면은 한 걸음 떨어져서 읽는다.\n *\n * `equipment` 를 비워 둔다. 비면 그 화면이 걸린 작업대를 따르고, 적으면 그 설비에 못 박힌다.\n */\nexport const stationCommonTiles: StationTileEntry[] = [\n {\n type: 'station-field',\n labelKey: 'label.modeller-part-field',\n icon: ICON_FIELD,\n description: 'one value from the station — pick which one',\n group: 'station',\n model: { type: 'station-field', ...at(40, 40, 300, 90), field: '', label: '', valueSize: 26 }\n },\n {\n type: 'station-who',\n labelKey: 'label.modeller-part-who',\n icon: ICON_WHO,\n description: 'who is scanned in at this station',\n group: 'station',\n model: { type: 'station-who', ...at(40, 150, 300, 110), label: '', prompt: '' }\n },\n {\n type: 'station-counts',\n labelKey: 'label.modeller-part-counts',\n icon: ICON_COUNTS,\n description: 'good and reject counted so far',\n group: 'station',\n model: { type: 'station-counts', ...at(360, 40, 300, 110), label: '' }\n },\n {\n type: 'station-numpad',\n labelKey: 'label.modeller-part-numpad',\n icon: ICON_NUMPAD,\n description: 'record a count without a keyboard',\n group: 'station',\n /*\n * 높이는 **저작 검사가 요구하는 최소 위**로 잡는다. 이 검사는 숫자판을 3×4 로 보고 머리 72 를\n * 뺀 뒤 칸이 44 이상인지 본다(`station-design-check`). 240 이던 때는 칸이 42 라, 저작자가 팔레트\n * 에서 놓자마자 「입력 영역을 44px 이상으로 하십시오」가 떴다 — 처음 놓은 것이 이미 틀렸다고\n * 말하는 저작면은 그 검사를 안 믿게 만든다. 260 이면 칸이 47 이다.\n */\n model: { type: 'station-numpad', ...at(360, 160, 300, 260), label: '', counts: '' }\n },\n {\n /*\n * 그리지 않는 부품이다 — 이 화면이 무엇을 얼마나 자주 읽을지를 정한다.\n *\n * 저작면에서는 자리를 차지하지만 작업대에서는 안 보인다. 팔레트에 있어야 하는 이유는, 없으면\n * 저작자가 갱신 주기를 손댈 방법이 아예 없기 때문이다.\n */\n type: 'station-context',\n labelKey: 'label.modeller-part-context',\n icon: ICON_CONTEXT,\n description: 'not drawn — sets what this screen reads and how often',\n group: 'station',\n model: { type: 'station-context', ...at(40, 670, 200, 60), showFields: '', refreshSeconds: 10 }\n }\n]\n"]}
|