@things-factory/ops-master 10.0.18 β†’ 10.1.0

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.
Files changed (269) hide show
  1. package/dist-client/bootstrap.d.ts +18 -0
  2. package/dist-client/bootstrap.js +36 -0
  3. package/dist-client/bootstrap.js.map +1 -0
  4. package/dist-client/index.d.ts +15 -1
  5. package/dist-client/index.js +18 -1
  6. package/dist-client/index.js.map +1 -1
  7. package/dist-client/pages/master/equipment-class.d.ts +12 -0
  8. package/dist-client/pages/master/equipment-class.js +42 -0
  9. package/dist-client/pages/master/equipment-class.js.map +1 -0
  10. package/dist-client/pages/master/equipment.d.ts +12 -0
  11. package/dist-client/pages/master/equipment.js +57 -0
  12. package/dist-client/pages/master/equipment.js.map +1 -0
  13. package/dist-client/pages/master/grist-iso-duration.d.ts +20 -0
  14. package/dist-client/pages/master/grist-iso-duration.js +70 -0
  15. package/dist-client/pages/master/grist-iso-duration.js.map +1 -0
  16. package/dist-client/pages/master/grist-reference.d.ts +91 -0
  17. package/dist-client/pages/master/grist-reference.js +419 -0
  18. package/dist-client/pages/master/grist-reference.js.map +1 -0
  19. package/dist-client/pages/master/import-rows.d.ts +35 -0
  20. package/dist-client/pages/master/import-rows.js +66 -0
  21. package/dist-client/pages/master/import-rows.js.map +1 -0
  22. package/dist-client/pages/master/iso-duration.d.ts +34 -0
  23. package/dist-client/pages/master/iso-duration.js +76 -0
  24. package/dist-client/pages/master/iso-duration.js.map +1 -0
  25. package/dist-client/pages/master/master-options.d.ts +33 -0
  26. package/dist-client/pages/master/master-options.js +47 -0
  27. package/dist-client/pages/master/master-options.js.map +1 -0
  28. package/dist-client/pages/master/master-page-base.d.ts +357 -0
  29. package/dist-client/pages/master/master-page-base.js +626 -0
  30. package/dist-client/pages/master/master-page-base.js.map +1 -0
  31. package/dist-client/pages/master/material-class.d.ts +12 -0
  32. package/dist-client/pages/master/material-class.js +42 -0
  33. package/dist-client/pages/master/material-class.js.map +1 -0
  34. package/dist-client/pages/master/material-definition.d.ts +12 -0
  35. package/dist-client/pages/master/material-definition.js +62 -0
  36. package/dist-client/pages/master/material-definition.js.map +1 -0
  37. package/dist-client/pages/master/operation-definition.d.ts +12 -0
  38. package/dist-client/pages/master/operation-definition.js +49 -0
  39. package/dist-client/pages/master/operation-definition.js.map +1 -0
  40. package/dist-client/pages/master/operational-location.d.ts +84 -0
  41. package/dist-client/pages/master/operational-location.js +426 -0
  42. package/dist-client/pages/master/operational-location.js.map +1 -0
  43. package/dist-client/pages/master/person.d.ts +12 -0
  44. package/dist-client/pages/master/person.js +41 -0
  45. package/dist-client/pages/master/person.js.map +1 -0
  46. package/dist-client/pages/master/personnel-class.d.ts +12 -0
  47. package/dist-client/pages/master/personnel-class.js +43 -0
  48. package/dist-client/pages/master/personnel-class.js.map +1 -0
  49. package/dist-client/pages/master/physical-asset-class.d.ts +12 -0
  50. package/dist-client/pages/master/physical-asset-class.js +40 -0
  51. package/dist-client/pages/master/physical-asset-class.js.map +1 -0
  52. package/dist-client/pages/master/physical-asset.d.ts +12 -0
  53. package/dist-client/pages/master/physical-asset.js +41 -0
  54. package/dist-client/pages/master/physical-asset.js.map +1 -0
  55. package/dist-client/pages/master/recipe-definition.d.ts +136 -0
  56. package/dist-client/pages/master/recipe-definition.js +404 -0
  57. package/dist-client/pages/master/recipe-definition.js.map +1 -0
  58. package/dist-client/pages/master/reference-targets.d.ts +42 -0
  59. package/dist-client/pages/master/reference-targets.js +82 -0
  60. package/dist-client/pages/master/reference-targets.js.map +1 -0
  61. package/dist-client/pages/master/route-definition.d.ts +19 -0
  62. package/dist-client/pages/master/route-definition.js +40 -0
  63. package/dist-client/pages/master/route-definition.js.map +1 -0
  64. package/dist-client/pages/master/stop-reason.d.ts +12 -0
  65. package/dist-client/pages/master/stop-reason.js +48 -0
  66. package/dist-client/pages/master/stop-reason.js.map +1 -0
  67. package/dist-client/pages/master/test-specification.d.ts +93 -0
  68. package/dist-client/pages/master/test-specification.js +449 -0
  69. package/dist-client/pages/master/test-specification.js.map +1 -0
  70. package/dist-client/pages/master-axes.d.ts +20 -29
  71. package/dist-client/pages/master-axes.js +32 -169
  72. package/dist-client/pages/master-axes.js.map +1 -1
  73. package/dist-client/route.d.ts +1 -1
  74. package/dist-client/route.js +76 -3
  75. package/dist-client/route.js.map +1 -1
  76. package/dist-client/tsconfig.tsbuildinfo +1 -1
  77. package/dist-server/service/asset/asset-lifecycle.d.ts +30 -7
  78. package/dist-server/service/asset/asset-lifecycle.js +33 -6
  79. package/dist-server/service/asset/asset-lifecycle.js.map +1 -1
  80. package/dist-server/service/asset/asset-master-resolver.d.ts +9 -0
  81. package/dist-server/service/asset/asset-master-resolver.js +41 -0
  82. package/dist-server/service/asset/asset-master-resolver.js.map +1 -1
  83. package/dist-server/service/asset/asset-master.js +1 -1
  84. package/dist-server/service/asset/asset-master.js.map +1 -1
  85. package/dist-server/service/asset/asset-query.d.ts +9 -1
  86. package/dist-server/service/asset/asset-query.js +28 -6
  87. package/dist-server/service/asset/asset-query.js.map +1 -1
  88. package/dist-server/service/asset/physical-asset-class.js +1 -1
  89. package/dist-server/service/asset/physical-asset-class.js.map +1 -1
  90. package/dist-server/service/asset/physical-asset.d.ts +17 -4
  91. package/dist-server/service/asset/physical-asset.js +6 -6
  92. package/dist-server/service/asset/physical-asset.js.map +1 -1
  93. package/dist-server/service/equipment/equipment-class.js +1 -1
  94. package/dist-server/service/equipment/equipment-class.js.map +1 -1
  95. package/dist-server/service/equipment/equipment-master-resolver.d.ts +9 -0
  96. package/dist-server/service/equipment/equipment-master-resolver.js +58 -0
  97. package/dist-server/service/equipment/equipment-master-resolver.js.map +1 -1
  98. package/dist-server/service/equipment/equipment-master.d.ts +3 -2
  99. package/dist-server/service/equipment/equipment-master.js +21 -4
  100. package/dist-server/service/equipment/equipment-master.js.map +1 -1
  101. package/dist-server/service/equipment/equipment-query.d.ts +9 -1
  102. package/dist-server/service/equipment/equipment-query.js +28 -6
  103. package/dist-server/service/equipment/equipment-query.js.map +1 -1
  104. package/dist-server/service/equipment/equipment.d.ts +27 -1
  105. package/dist-server/service/equipment/equipment.js +8 -3
  106. package/dist-server/service/equipment/equipment.js.map +1 -1
  107. package/dist-server/service/equipment/state-period-rules.d.ts +19 -0
  108. package/dist-server/service/equipment/state-period-rules.js +35 -1
  109. package/dist-server/service/equipment/state-period-rules.js.map +1 -1
  110. package/dist-server/service/index.d.ts +12 -2
  111. package/dist-server/service/index.js +21 -1
  112. package/dist-server/service/index.js.map +1 -1
  113. package/dist-server/service/location/location-master-resolver.d.ts +29 -0
  114. package/dist-server/service/location/location-master-resolver.js +228 -1
  115. package/dist-server/service/location/location-master-resolver.js.map +1 -1
  116. package/dist-server/service/location/location-query.d.ts +9 -1
  117. package/dist-server/service/location/location-query.js +24 -9
  118. package/dist-server/service/location/location-query.js.map +1 -1
  119. package/dist-server/service/location/operational-location.d.ts +37 -0
  120. package/dist-server/service/location/operational-location.js +22 -2
  121. package/dist-server/service/location/operational-location.js.map +1 -1
  122. package/dist-server/service/master-axis.d.ts +1 -1
  123. package/dist-server/service/master-axis.js +16 -1
  124. package/dist-server/service/master-axis.js.map +1 -1
  125. package/dist-server/service/master-conformance-resolver.d.ts +34 -0
  126. package/dist-server/service/master-conformance-resolver.js +143 -0
  127. package/dist-server/service/master-conformance-resolver.js.map +1 -0
  128. package/dist-server/service/master-conformance.d.ts +80 -0
  129. package/dist-server/service/master-conformance.js +266 -0
  130. package/dist-server/service/master-conformance.js.map +1 -0
  131. package/dist-server/service/master-page-query.d.ts +33 -0
  132. package/dist-server/service/master-page-query.js +55 -0
  133. package/dist-server/service/master-page-query.js.map +1 -0
  134. package/dist-server/service/master-page.d.ts +85 -0
  135. package/dist-server/service/master-page.js +104 -0
  136. package/dist-server/service/master-page.js.map +1 -0
  137. package/dist-server/service/material/material-class.js +1 -1
  138. package/dist-server/service/material/material-class.js.map +1 -1
  139. package/dist-server/service/material/material-definition.js +2 -2
  140. package/dist-server/service/material/material-definition.js.map +1 -1
  141. package/dist-server/service/material/material-master-resolver.d.ts +62 -0
  142. package/dist-server/service/material/material-master-resolver.js +213 -0
  143. package/dist-server/service/material/material-master-resolver.js.map +1 -1
  144. package/dist-server/service/material/material-query.d.ts +9 -1
  145. package/dist-server/service/material/material-query.js +28 -6
  146. package/dist-server/service/material/material-query.js.map +1 -1
  147. package/dist-server/service/material/recipe-index.d.ts +23 -0
  148. package/dist-server/service/material/recipe-index.js +44 -0
  149. package/dist-server/service/material/recipe-index.js.map +1 -0
  150. package/dist-server/service/operation/index.d.ts +2 -1
  151. package/dist-server/service/operation/index.js +2 -1
  152. package/dist-server/service/operation/index.js.map +1 -1
  153. package/dist-server/service/operation/operation-definition.d.ts +1 -1
  154. package/dist-server/service/operation/operation-definition.js +4 -4
  155. package/dist-server/service/operation/operation-definition.js.map +1 -1
  156. package/dist-server/service/operation/operation-master-resolver.d.ts +24 -0
  157. package/dist-server/service/operation/operation-master-resolver.js +107 -0
  158. package/dist-server/service/operation/operation-master-resolver.js.map +1 -1
  159. package/dist-server/service/operation/operation-query.d.ts +10 -2
  160. package/dist-server/service/operation/operation-query.js +25 -10
  161. package/dist-server/service/operation/operation-query.js.map +1 -1
  162. package/dist-server/service/operation/operation-readiness-resolver.d.ts +39 -0
  163. package/dist-server/service/operation/operation-readiness-resolver.js +111 -0
  164. package/dist-server/service/operation/operation-readiness-resolver.js.map +1 -0
  165. package/dist-server/service/operation/operation-readiness.d.ts +34 -0
  166. package/dist-server/service/operation/operation-readiness.js +133 -0
  167. package/dist-server/service/operation/operation-readiness.js.map +1 -0
  168. package/dist-server/service/personnel/person.js +3 -3
  169. package/dist-server/service/personnel/person.js.map +1 -1
  170. package/dist-server/service/personnel/personnel-class-readiness.d.ts +22 -0
  171. package/dist-server/service/personnel/personnel-class-readiness.js +98 -0
  172. package/dist-server/service/personnel/personnel-class-readiness.js.map +1 -0
  173. package/dist-server/service/personnel/personnel-class.d.ts +1 -1
  174. package/dist-server/service/personnel/personnel-class.js +2 -2
  175. package/dist-server/service/personnel/personnel-class.js.map +1 -1
  176. package/dist-server/service/personnel/personnel-master-resolver.d.ts +9 -0
  177. package/dist-server/service/personnel/personnel-master-resolver.js +43 -0
  178. package/dist-server/service/personnel/personnel-master-resolver.js.map +1 -1
  179. package/dist-server/service/personnel/personnel-master.js +1 -1
  180. package/dist-server/service/personnel/personnel-master.js.map +1 -1
  181. package/dist-server/service/personnel/personnel-query.d.ts +9 -1
  182. package/dist-server/service/personnel/personnel-query.js +28 -6
  183. package/dist-server/service/personnel/personnel-query.js.map +1 -1
  184. package/dist-server/service/personnel/qualification.d.ts +7 -0
  185. package/dist-server/service/personnel/qualification.js +25 -0
  186. package/dist-server/service/personnel/qualification.js.map +1 -1
  187. package/dist-server/service/recipe/index.d.ts +9 -0
  188. package/dist-server/service/recipe/index.js +14 -0
  189. package/dist-server/service/recipe/index.js.map +1 -0
  190. package/dist-server/service/recipe/recipe-definition.d.ts +71 -0
  191. package/dist-server/service/recipe/recipe-definition.js +130 -0
  192. package/dist-server/service/recipe/recipe-definition.js.map +1 -0
  193. package/dist-server/service/recipe/recipe-master-resolver.d.ts +28 -0
  194. package/dist-server/service/recipe/recipe-master-resolver.js +124 -0
  195. package/dist-server/service/recipe/recipe-master-resolver.js.map +1 -0
  196. package/dist-server/service/recipe/recipe-master.d.ts +37 -0
  197. package/dist-server/service/recipe/recipe-master.js +47 -0
  198. package/dist-server/service/recipe/recipe-master.js.map +1 -0
  199. package/dist-server/service/recipe/recipe-query.d.ts +21 -0
  200. package/dist-server/service/recipe/recipe-query.js +75 -0
  201. package/dist-server/service/recipe/recipe-query.js.map +1 -0
  202. package/dist-server/service/recipe/route-definition.d.ts +51 -0
  203. package/dist-server/service/recipe/route-definition.js +113 -0
  204. package/dist-server/service/recipe/route-definition.js.map +1 -0
  205. package/dist-server/service/resource/class-lineage.d.ts +46 -0
  206. package/dist-server/service/resource/class-lineage.js +80 -0
  207. package/dist-server/service/resource/class-lineage.js.map +1 -0
  208. package/dist-server/service/resource/class-members.d.ts +36 -0
  209. package/dist-server/service/resource/class-members.js +50 -0
  210. package/dist-server/service/resource/class-members.js.map +1 -0
  211. package/dist-server/service/resource/referrers.d.ts +54 -0
  212. package/dist-server/service/resource/referrers.js +99 -0
  213. package/dist-server/service/resource/referrers.js.map +1 -0
  214. package/dist-server/service/status/master-status.d.ts +0 -7
  215. package/dist-server/service/status/master-status.js +5 -6
  216. package/dist-server/service/status/master-status.js.map +1 -1
  217. package/dist-server/service/test-spec/criteria-check.d.ts +53 -0
  218. package/dist-server/service/test-spec/criteria-check.js +142 -0
  219. package/dist-server/service/test-spec/criteria-check.js.map +1 -0
  220. package/dist-server/service/test-spec/criteria-rows.d.ts +89 -0
  221. package/dist-server/service/test-spec/criteria-rows.js +139 -0
  222. package/dist-server/service/test-spec/criteria-rows.js.map +1 -0
  223. package/dist-server/service/test-spec/test-spec-master-resolver.d.ts +33 -7
  224. package/dist-server/service/test-spec/test-spec-master-resolver.js +137 -2
  225. package/dist-server/service/test-spec/test-spec-master-resolver.js.map +1 -1
  226. package/dist-server/service/test-spec/test-spec-query.d.ts +9 -1
  227. package/dist-server/service/test-spec/test-spec-query.js +23 -9
  228. package/dist-server/service/test-spec/test-spec-query.js.map +1 -1
  229. package/dist-server/service/test-spec/test-specification.js +1 -1
  230. package/dist-server/service/test-spec/test-specification.js.map +1 -1
  231. package/dist-server/tsconfig.tsbuildinfo +1 -1
  232. package/helps/ops-master/equipment-class.ko.md +11 -0
  233. package/helps/ops-master/equipment-class.md +11 -0
  234. package/helps/ops-master/equipment.ko.md +11 -0
  235. package/helps/ops-master/equipment.md +11 -0
  236. package/helps/ops-master/material-class.ko.md +11 -0
  237. package/helps/ops-master/material-class.md +11 -0
  238. package/helps/ops-master/material-definition.ko.md +11 -0
  239. package/helps/ops-master/material-definition.md +11 -0
  240. package/helps/ops-master/operation-definition.ko.md +11 -0
  241. package/helps/ops-master/operation-definition.md +11 -0
  242. package/helps/ops-master/operational-location.ko.md +11 -0
  243. package/helps/ops-master/operational-location.md +11 -0
  244. package/helps/ops-master/person.ko.md +11 -0
  245. package/helps/ops-master/person.md +11 -0
  246. package/helps/ops-master/personnel-class.ko.md +11 -0
  247. package/helps/ops-master/personnel-class.md +11 -0
  248. package/helps/ops-master/physical-asset-class.ko.md +11 -0
  249. package/helps/ops-master/physical-asset-class.md +11 -0
  250. package/helps/ops-master/physical-asset.ko.md +11 -0
  251. package/helps/ops-master/physical-asset.md +11 -0
  252. package/helps/ops-master/recipe-definition.ko.md +11 -0
  253. package/helps/ops-master/recipe-definition.md +11 -0
  254. package/helps/ops-master/route-definition.ko.md +11 -0
  255. package/helps/ops-master/route-definition.md +11 -0
  256. package/helps/ops-master/stop-reason.ko.md +11 -0
  257. package/helps/ops-master/stop-reason.md +11 -0
  258. package/helps/ops-master/test-specification.ko.md +11 -0
  259. package/helps/ops-master/test-specification.md +11 -0
  260. package/package.json +5 -5
  261. package/things-factory.config.js +22 -2
  262. package/translations/en.json +89 -6
  263. package/translations/ja.json +96 -1
  264. package/translations/ko.json +96 -13
  265. package/translations/ms.json +96 -1
  266. package/translations/zh.json +96 -1
  267. package/dist-client/pages/master-list.d.ts +0 -68
  268. package/dist-client/pages/master-list.js +0 -267
  269. package/dist-client/pages/master-list.js.map +0 -1
@@ -1,176 +1,39 @@
1
1
  /**
2
- * λ§ˆμŠ€ν„° 열두 μΆ•μ˜ **ν™”λ©΄ μͺ½ μ„ μ–Έ** β€” μΆ•λ§ˆλ‹€ λ‹€λ₯Έ κ²ƒλ§Œ μ λŠ”λ‹€.
2
+ * λ§ˆμŠ€ν„° μΆ•μ˜ **이름 λͺ©λ‘** β€” μ˜› μ£Όμ†Œλ₯Ό μƒˆ μ£Όμ†Œλ‘œ λ³΄λ‚΄λŠ” 데만 μ“΄λ‹€.
3
3
  *
4
- * ── μ™œ 화면이 ν•˜λ‚˜μΈκ°€ ─────────────────────────────────────────────────────
5
- * 열두 μΆ•μ˜ 화면이 ν•˜λŠ” 일이 κ°™λ‹€: λͺ©λ‘μ„ 보이고, κ·Έλ¦¬λ“œμ—μ„œ 고치고, μ €μž₯ν•œλ‹€. 화면을 μ—΄λ‘˜ λ§Œλ“€λ©΄
6
- * κ·œμΉ™ ν•˜λ‚˜λ₯Ό κ³ μΉ  λ•Œ 열두 곳을 고쳐야 ν•˜κ³ , ν•œ 곳을 빠뜨리면 κ·Έ μΆ•λ§Œ λ‹€λ₯΄κ²Œ λ™μž‘ν•œλ‹€.
4
+ * ── μ™œ 이만큼만 λ‚¨μ•˜λ‚˜ ─────────────────────────────────────────────────────
5
+ * 이 νŒŒμΌμ—λŠ” 열두 μΆ•μ˜ 컬럼 선언이 250쀄 λ“€μ–΄ μžˆμ—ˆλ‹€. 화면이 ν•˜λ‚˜μ˜€μ„ λ•Œμ˜ 것이닀. 화면이 μΆ•λ§ˆλ‹€
6
+ * 갈린 λ’€λ‘œλŠ” **각 ν™”λ©΄ 파일이 자기 μ»¬λŸΌμ„ κ°–κ³ **, μ—¬κΈ° 있던 선언은 아무도 읽지 μ•Šκ²Œ λ˜μ—ˆλ‹€.
7
+ * μ½νžˆλŠ” 것은 `key` ν•˜λ‚˜λΏμ΄λ‹€(`route.ts` κ°€ μ˜› μ£Όμ†Œλ₯Ό μƒˆ μ£Όμ†Œλ‘œ 보낼 λ•Œ).
7
8
  *
8
- * ── μ™œ μ„œλ²„μ˜ μΆ• ν‘œμ™€ λ”°λ‘œ λ‘λ‚˜ ────────────────────────────────────────────
9
- * μ„œλ²„κ°€ μ•„λŠ” 것은 γ€Œμ–΄λŠ ν‘œμ—μ„œ μ½λ‚˜ Β· λ¬΄μ—‡μœΌλ‘œ μ°Ύλ‚˜γ€μ΄κ³ , 화면이 μ•„λŠ” 것은 γ€Œμ–΄λŠ 칸을 μ–΄λ–€ λͺ¨μ–‘μœΌλ‘œ
10
- * λ³΄μ΄λ‚˜γ€λ‹€. μ„œλ‘œ λ‹€λ₯Έ 물음이라 ν•œ ν‘œμ— λ‹΄μœΌλ©΄ μ–‘μͺ½ λ‹€ μ§€μ €λΆ„ν•΄μ§„λ‹€. μΆ•μ˜ 이름(`key`)만 κ°™κ²Œ λ‘”λ‹€.
9
+ * μ•ˆ μ½νžˆλŠ”λ° κ·ΈλŸ΄λ“―ν•˜κ²Œ μ„œ μžˆλŠ” 선언은 μœ„ν—˜ν•˜λ‹€. μ‹€μ œλ‘œ κ·Έλž¬λ‹€ β€” 자재 화면에 μ»¬λŸΌμ„ λ”ν•˜λŸ¬ μ™€μ„œ
10
+ * 이 νŒŒμΌμ„ λ¨Όμ € κ³ μ³€κ³ , 화면은 ν•˜λ‚˜λ„ μ•ˆ λ³€ν–ˆλ‹€. κ·Έ 사이 이 파일의 선언은 μ§„μ§œ ν™”λ©΄κ³Ό μ–΄κΈ‹λ‚˜ μžˆμ—ˆλ‹€
11
+ * (자재의 μœ ν˜•Β·κ³„λ³΄Β·μ œμ‘°λ²• 칸이 μ—†κ³ , 주석에 γ€Œμ΄ 칸은 API κ°€ μ•ˆ 쀀닀」고 적힌 낑은 사연이 남아 μžˆμ—ˆλ‹€).
12
+ *
13
+ * **μ»¬λŸΌμ„ 고치렀면 κ·Έ μΆ•μ˜ ν™”λ©΄ νŒŒμΌμ„ κ³ μΉœλ‹€** β€” `pages/master/<μΆ•>.ts`.
11
14
  */
12
- /** 열두 좕이 κ³΅ν†΅μœΌλ‘œ κ°–λŠ” 끝 μΉΈλ“€ β€” ISA-95 유효 κΈ°κ°„. */
13
- const EFFECTIVE = [
14
- { name: 'effectiveStart', label: 'effective-start', type: 'date', width: 150 },
15
- { name: 'effectiveEnd', label: 'effective-end', type: 'date', width: 150 }
16
- ];
17
- /** 이름과 μ„€λͺ…은 열두 좕이 λͺ¨λ‘ κ°–λŠ”λ‹€. */
18
- const IDENTITY = [
19
- { name: 'name', label: 'name', type: 'string', width: 160 },
20
- { name: 'description', label: 'description', type: 'string', width: 200 }
21
- ];
22
- export const MASTER_AXIS_VIEWS = [
23
- {
24
- key: 'personnelClass',
25
- query: 'personnelClasses',
26
- mutation: 'updateMultiplePersonnelClass',
27
- title: 'personnel-class',
28
- columns: [
29
- ...IDENTITY,
30
- { name: 'baseIds', label: 'base-classes', type: 'list', width: 180 },
31
- /* 이 등급이 μš”κ΅¬ν•˜λŠ” 검사. 자격 인터둝이 이 칸을 μ½λŠ”λ‹€ β€” λΉ„μ–΄ 있으면 아무 검사도 μš”κ΅¬ν•˜μ§€ μ•ŠλŠ”λ‹€. */
32
- { name: 'testSpecificationIds', label: 'required-tests', type: 'list', width: 200 },
33
- ...EFFECTIVE
34
- ]
35
- },
36
- {
37
- key: 'person',
38
- query: 'persons',
39
- mutation: 'updateMultiplePerson',
40
- title: 'person',
41
- columns: [
42
- ...IDENTITY,
43
- { name: 'personnelClassIds', label: 'personnel-classes', type: 'list', width: 200 },
44
- { name: 'homeLocation', label: 'home-location', type: 'string', width: 140 },
45
- { name: 'workCalendar', label: 'work-calendar', type: 'json', width: 200 },
46
- { name: 'testResults', label: 'test-results', type: 'json', width: 200 },
47
- ...EFFECTIVE
48
- ]
49
- },
50
- {
51
- key: 'equipmentClass',
52
- query: 'equipmentClasses',
53
- mutation: 'updateMultipleEquipmentClass',
54
- title: 'equipment-class',
55
- columns: [...IDENTITY, { name: 'baseIds', label: 'base-classes', type: 'list', width: 180 }, ...EFFECTIVE]
56
- },
57
- {
58
- key: 'equipment',
59
- query: 'equipmentList',
60
- mutation: 'updateMultipleEquipment',
61
- title: 'equipment',
62
- columns: [
63
- ...IDENTITY,
64
- { name: 'equipmentClassIds', label: 'equipment-classes', type: 'list', width: 200 },
65
- { name: 'identity', label: 'identity', type: 'string', width: 200 },
66
- { name: 'homeLocation', label: 'home-location', type: 'string', width: 140 },
67
- /* κ³„νš μ‘°μ—… μ‹œκ°„μ˜ 바탕. λΉ„μ–΄ 있으면 OEE 의 가동λ₯ μ΄ γ€Œλͺ¨λ¦„」이 λœλ‹€. */
68
- { name: 'workCalendar', label: 'work-calendar', type: 'json', width: 200 },
69
- ...EFFECTIVE
70
- ]
71
- },
72
- {
73
- key: 'stopReason',
74
- query: 'stopReasonList',
75
- mutation: 'updateMultipleStopReason',
76
- title: 'stop-reason',
77
- columns: [
78
- ...IDENTITY,
79
- /* μ–΄λŠ μƒνƒœμ˜ μ‚¬μœ μΈκ°€. 이 칸이 가동λ₯ μ„ κΉŽλŠλƒ λ§ˆλŠλƒλ₯Ό κ°€λ₯Έλ‹€. */
80
- { name: 'status', label: 'state', type: 'string', width: 130 },
81
- { name: 'parentName', label: 'parent-reason', type: 'string', width: 150 },
82
- { name: 'detailRequired', label: 'detail-required', type: 'boolean', width: 110 },
83
- ...EFFECTIVE
84
- ]
85
- },
86
- {
87
- key: 'physicalAssetClass',
88
- query: 'physicalAssetClasses',
89
- mutation: 'updateMultiplePhysicalAssetClass',
90
- title: 'asset-class',
91
- columns: [
92
- ...IDENTITY,
93
- { name: 'baseIds', label: 'base-classes', type: 'list', width: 180 },
94
- { name: 'testSpecificationIds', label: 'required-tests', type: 'list', width: 200 },
95
- ...EFFECTIVE
96
- ]
97
- },
98
- {
99
- key: 'physicalAsset',
100
- query: 'physicalAssets',
101
- mutation: 'updateMultiplePhysicalAsset',
102
- title: 'asset',
103
- columns: [
104
- ...IDENTITY,
105
- { name: 'assetClassIds', label: 'asset-classes', type: 'list', width: 180 },
106
- { name: 'identity', label: 'grai', type: 'string', width: 200 },
107
- /* 정격 μ‚¬μš© 횟수. λΉ„μ–΄ 있으면 횟수둜 막지 μ•ŠλŠ”λ‹€. */
108
- { name: 'cycleLimit', label: 'cycle-limit', type: 'number', width: 110 },
109
- { name: 'testResults', label: 'calibrations', type: 'json', width: 200 },
110
- ...EFFECTIVE
111
- ]
112
- },
113
- {
114
- key: 'materialClass',
115
- query: 'materialClasses',
116
- mutation: 'updateMultipleMaterialClass',
117
- title: 'material-class',
118
- columns: [...IDENTITY, { name: 'baseIds', label: 'base-classes', type: 'list', width: 180 }, ...EFFECTIVE]
119
- },
120
- {
121
- key: 'materialDefinition',
122
- query: 'materialDefinitions',
123
- mutation: 'updateMultipleMaterialDefinition',
124
- title: 'material',
125
- columns: [
126
- ...IDENTITY,
127
- { name: 'materialClassIds', label: 'material-classes', type: 'list', width: 180 },
128
- { name: 'identity', label: 'gtin', type: 'string', width: 200 },
129
- { name: 'uom', label: 'uom', type: 'string', width: 90 },
130
- { name: 'locationType', label: 'location-type', type: 'string', width: 140 },
131
- ...EFFECTIVE
132
- ]
133
- },
134
- {
135
- key: 'operationalLocation',
136
- query: 'operationalLocations',
137
- mutation: 'updateMultipleOperationalLocation',
138
- title: 'location',
139
- columns: [
140
- ...IDENTITY,
141
- { name: 'equipmentLevel', label: 'equipment-level', type: 'string', width: 140 },
142
- { name: 'parentName', label: 'parent-location', type: 'string', width: 150 },
143
- { name: 'identity', label: 'sgln', type: 'string', width: 200 },
144
- ...EFFECTIVE
145
- ]
146
- },
147
- {
148
- key: 'operationDefinition',
149
- query: 'operationDefinitions',
150
- mutation: 'updateMultipleOperationDefinition',
151
- title: 'operation',
152
- columns: [
153
- ...IDENTITY,
154
- { name: 'intent', label: 'intent', type: 'string', width: 110 },
155
- { name: 'locationType', label: 'location-type', type: 'string', width: 140 },
156
- { name: 'resourceType', label: 'resource-type', type: 'string', width: 140 },
157
- /* ν’ˆλͺ©λ‹Ή ν‘œμ€€ μ‹œκ°„. μ—†μœΌλ©΄ OEE 의 μ„±λŠ₯λ₯ μ΄ γ€Œλͺ¨λ¦„」이 λœλ‹€. ISO 8601 κΈ°κ°„ ν‘œκΈ°λ‹€. */
158
- { name: 'duration', label: 'duration', type: 'string', width: 110 },
159
- /* μš”κ΅¬ 인원. 자격 인터둝이 이 칸을 μ½λŠ”λ‹€. */
160
- { name: 'personnelSpecification', label: 'personnel-spec', type: 'json', width: 200 },
161
- { name: 'bizStep', label: 'biz-step', type: 'string', width: 200 },
162
- ...EFFECTIVE
163
- ]
164
- },
165
- {
166
- key: 'testSpecification',
167
- query: 'testSpecifications',
168
- mutation: 'updateMultipleTestSpecification',
169
- title: 'test-specification',
170
- columns: [...IDENTITY, ...EFFECTIVE]
171
- }
15
+ /**
16
+ * μΆ•μ˜ 이름듀.
17
+ *
18
+ * μˆœμ„œλŠ” 뜻이 μ—†λ‹€. μƒˆ 좕이 생기면 여기에 λ”ν•˜κ³  `pages/master/` 에 화면을 λ§Œλ“ λ‹€. μ—¬κΈ°μ—λ§Œ λ”ν•˜λ©΄
19
+ * μ˜› μ£Όμ†Œκ°€ μ—†λŠ” ν™”λ©΄μœΌλ‘œ κ°„λ‹€.
20
+ */
21
+ export const MASTER_AXIS_KEYS = [
22
+ 'personnelClass',
23
+ 'person',
24
+ 'equipmentClass',
25
+ 'equipment',
26
+ 'stopReason',
27
+ 'physicalAssetClass',
28
+ 'physicalAsset',
29
+ 'materialClass',
30
+ 'materialDefinition',
31
+ 'operationalLocation',
32
+ 'operationDefinition',
33
+ 'testSpecification'
172
34
  ];
173
- export function masterAxisViewOf(key) {
174
- return MASTER_AXIS_VIEWS.find(axis => axis.key === key);
35
+ /** μ•„λŠ” 좕인가. λͺ¨λ₯΄λŠ” 이름이면 μ˜› μ£Όμ†Œλ₯Ό μƒˆ μ£Όμ†Œλ‘œ 보내지 μ•ŠλŠ”λ‹€. */
36
+ export function isMasterAxisKey(key) {
37
+ return MASTER_AXIS_KEYS.includes(key);
175
38
  }
176
39
  //# sourceMappingURL=master-axes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"master-axes.js","sourceRoot":"","sources":["../../client/pages/master-axes.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * λ§ˆμŠ€ν„° 열두 μΆ•μ˜ **ν™”λ©΄ μͺ½ μ„ μ–Έ** β€” μΆ•λ§ˆλ‹€ λ‹€λ₯Έ κ²ƒλ§Œ μ λŠ”λ‹€.\n *\n * ── μ™œ 화면이 ν•˜λ‚˜μΈκ°€ ─────────────────────────────────────────────────────\n * 열두 μΆ•μ˜ 화면이 ν•˜λŠ” 일이 κ°™λ‹€: λͺ©λ‘μ„ 보이고, κ·Έλ¦¬λ“œμ—μ„œ 고치고, μ €μž₯ν•œλ‹€. 화면을 μ—΄λ‘˜ λ§Œλ“€λ©΄\n * κ·œμΉ™ ν•˜λ‚˜λ₯Ό κ³ μΉ  λ•Œ 열두 곳을 고쳐야 ν•˜κ³ , ν•œ 곳을 빠뜨리면 κ·Έ μΆ•λ§Œ λ‹€λ₯΄κ²Œ λ™μž‘ν•œλ‹€.\n *\n * ── μ™œ μ„œλ²„μ˜ μΆ• ν‘œμ™€ λ”°λ‘œ λ‘λ‚˜ ────────────────────────────────────────────\n * μ„œλ²„κ°€ μ•„λŠ” 것은 γ€Œμ–΄λŠ ν‘œμ—μ„œ μ½λ‚˜ Β· λ¬΄μ—‡μœΌλ‘œ μ°Ύλ‚˜γ€μ΄κ³ , 화면이 μ•„λŠ” 것은 γ€Œμ–΄λŠ 칸을 μ–΄λ–€ λͺ¨μ–‘μœΌλ‘œ\n * λ³΄μ΄λ‚˜γ€λ‹€. μ„œλ‘œ λ‹€λ₯Έ 물음이라 ν•œ ν‘œμ— λ‹΄μœΌλ©΄ μ–‘μͺ½ λ‹€ μ§€μ €λΆ„ν•΄μ§„λ‹€. μΆ•μ˜ 이름(`key`)만 κ°™κ²Œ λ‘”λ‹€.\n */\n\nexport type ColumnType = 'string' | 'number' | 'boolean' | 'date' | 'json' | 'list'\n\nexport interface AxisColumn {\n name: string\n /** ν™”λ©΄ 문ꡬ ν‚€. `field.<이것>`. */\n label: string\n type: ColumnType\n width?: number\n /** κ³ μΉ  수 μ—†λŠ” μΉΈ. μžλ™μœΌλ‘œ λΆ™λŠ” 값이 μ—¬κΈ° μ˜¨λ‹€. */\n readonly?: boolean\n}\n\nexport interface MasterAxisView {\n key: string\n /** GraphQL 쑰회 이름 β€” μ„œλ²„κ°€ λ‚Έ κ·ΈλŒ€λ‘œ. */\n query: string\n /** GraphQL μ €μž₯ 이름. */\n mutation: string\n /** 제λͺ© 문ꡬ ν‚€. `title.<이것>`. */\n title: string\n columns: AxisColumn[]\n}\n\n/** 열두 좕이 κ³΅ν†΅μœΌλ‘œ κ°–λŠ” 끝 μΉΈλ“€ β€” ISA-95 유효 κΈ°κ°„. */\nconst EFFECTIVE: AxisColumn[] = [\n { name: 'effectiveStart', label: 'effective-start', type: 'date', width: 150 },\n { name: 'effectiveEnd', label: 'effective-end', type: 'date', width: 150 }\n]\n\n/** 이름과 μ„€λͺ…은 열두 좕이 λͺ¨λ‘ κ°–λŠ”λ‹€. */\nconst IDENTITY: AxisColumn[] = [\n { name: 'name', label: 'name', type: 'string', width: 160 },\n { name: 'description', label: 'description', type: 'string', width: 200 }\n]\n\nexport const MASTER_AXIS_VIEWS: readonly MasterAxisView[] = [\n {\n key: 'personnelClass',\n query: 'personnelClasses',\n mutation: 'updateMultiplePersonnelClass',\n title: 'personnel-class',\n columns: [\n ...IDENTITY,\n { name: 'baseIds', label: 'base-classes', type: 'list', width: 180 },\n /* 이 등급이 μš”κ΅¬ν•˜λŠ” 검사. 자격 인터둝이 이 칸을 μ½λŠ”λ‹€ β€” λΉ„μ–΄ 있으면 아무 검사도 μš”κ΅¬ν•˜μ§€ μ•ŠλŠ”λ‹€. */\n { name: 'testSpecificationIds', label: 'required-tests', type: 'list', width: 200 },\n ...EFFECTIVE\n ]\n },\n {\n key: 'person',\n query: 'persons',\n mutation: 'updateMultiplePerson',\n title: 'person',\n columns: [\n ...IDENTITY,\n { name: 'personnelClassIds', label: 'personnel-classes', type: 'list', width: 200 },\n { name: 'homeLocation', label: 'home-location', type: 'string', width: 140 },\n { name: 'workCalendar', label: 'work-calendar', type: 'json', width: 200 },\n { name: 'testResults', label: 'test-results', type: 'json', width: 200 },\n ...EFFECTIVE\n ]\n },\n {\n key: 'equipmentClass',\n query: 'equipmentClasses',\n mutation: 'updateMultipleEquipmentClass',\n title: 'equipment-class',\n columns: [...IDENTITY, { name: 'baseIds', label: 'base-classes', type: 'list', width: 180 }, ...EFFECTIVE]\n },\n {\n key: 'equipment',\n query: 'equipmentList',\n mutation: 'updateMultipleEquipment',\n title: 'equipment',\n columns: [\n ...IDENTITY,\n { name: 'equipmentClassIds', label: 'equipment-classes', type: 'list', width: 200 },\n { name: 'identity', label: 'identity', type: 'string', width: 200 },\n { name: 'homeLocation', label: 'home-location', type: 'string', width: 140 },\n /* κ³„νš μ‘°μ—… μ‹œκ°„μ˜ 바탕. λΉ„μ–΄ 있으면 OEE 의 가동λ₯ μ΄ γ€Œλͺ¨λ¦„」이 λœλ‹€. */\n { name: 'workCalendar', label: 'work-calendar', type: 'json', width: 200 },\n ...EFFECTIVE\n ]\n },\n {\n key: 'stopReason',\n query: 'stopReasonList',\n mutation: 'updateMultipleStopReason',\n title: 'stop-reason',\n columns: [\n ...IDENTITY,\n /* μ–΄λŠ μƒνƒœμ˜ μ‚¬μœ μΈκ°€. 이 칸이 가동λ₯ μ„ κΉŽλŠλƒ λ§ˆλŠλƒλ₯Ό κ°€λ₯Έλ‹€. */\n { name: 'status', label: 'state', type: 'string', width: 130 },\n { name: 'parentName', label: 'parent-reason', type: 'string', width: 150 },\n { name: 'detailRequired', label: 'detail-required', type: 'boolean', width: 110 },\n ...EFFECTIVE\n ]\n },\n {\n key: 'physicalAssetClass',\n query: 'physicalAssetClasses',\n mutation: 'updateMultiplePhysicalAssetClass',\n title: 'asset-class',\n columns: [\n ...IDENTITY,\n { name: 'baseIds', label: 'base-classes', type: 'list', width: 180 },\n { name: 'testSpecificationIds', label: 'required-tests', type: 'list', width: 200 },\n ...EFFECTIVE\n ]\n },\n {\n key: 'physicalAsset',\n query: 'physicalAssets',\n mutation: 'updateMultiplePhysicalAsset',\n title: 'asset',\n columns: [\n ...IDENTITY,\n { name: 'assetClassIds', label: 'asset-classes', type: 'list', width: 180 },\n { name: 'identity', label: 'grai', type: 'string', width: 200 },\n /* 정격 μ‚¬μš© 횟수. λΉ„μ–΄ 있으면 횟수둜 막지 μ•ŠλŠ”λ‹€. */\n { name: 'cycleLimit', label: 'cycle-limit', type: 'number', width: 110 },\n { name: 'testResults', label: 'calibrations', type: 'json', width: 200 },\n ...EFFECTIVE\n ]\n },\n {\n key: 'materialClass',\n query: 'materialClasses',\n mutation: 'updateMultipleMaterialClass',\n title: 'material-class',\n columns: [...IDENTITY, { name: 'baseIds', label: 'base-classes', type: 'list', width: 180 }, ...EFFECTIVE]\n },\n {\n key: 'materialDefinition',\n query: 'materialDefinitions',\n mutation: 'updateMultipleMaterialDefinition',\n title: 'material',\n columns: [\n ...IDENTITY,\n { name: 'materialClassIds', label: 'material-classes', type: 'list', width: 180 },\n { name: 'identity', label: 'gtin', type: 'string', width: 200 },\n { name: 'uom', label: 'uom', type: 'string', width: 90 },\n { name: 'locationType', label: 'location-type', type: 'string', width: 140 },\n ...EFFECTIVE\n ]\n },\n {\n key: 'operationalLocation',\n query: 'operationalLocations',\n mutation: 'updateMultipleOperationalLocation',\n title: 'location',\n columns: [\n ...IDENTITY,\n { name: 'equipmentLevel', label: 'equipment-level', type: 'string', width: 140 },\n { name: 'parentName', label: 'parent-location', type: 'string', width: 150 },\n { name: 'identity', label: 'sgln', type: 'string', width: 200 },\n ...EFFECTIVE\n ]\n },\n {\n key: 'operationDefinition',\n query: 'operationDefinitions',\n mutation: 'updateMultipleOperationDefinition',\n title: 'operation',\n columns: [\n ...IDENTITY,\n { name: 'intent', label: 'intent', type: 'string', width: 110 },\n { name: 'locationType', label: 'location-type', type: 'string', width: 140 },\n { name: 'resourceType', label: 'resource-type', type: 'string', width: 140 },\n /* ν’ˆλͺ©λ‹Ή ν‘œμ€€ μ‹œκ°„. μ—†μœΌλ©΄ OEE 의 μ„±λŠ₯λ₯ μ΄ γ€Œλͺ¨λ¦„」이 λœλ‹€. ISO 8601 κΈ°κ°„ ν‘œκΈ°λ‹€. */\n { name: 'duration', label: 'duration', type: 'string', width: 110 },\n /* μš”κ΅¬ 인원. 자격 인터둝이 이 칸을 μ½λŠ”λ‹€. */\n { name: 'personnelSpecification', label: 'personnel-spec', type: 'json', width: 200 },\n { name: 'bizStep', label: 'biz-step', type: 'string', width: 200 },\n ...EFFECTIVE\n ]\n },\n {\n key: 'testSpecification',\n query: 'testSpecifications',\n mutation: 'updateMultipleTestSpecification',\n title: 'test-specification',\n columns: [...IDENTITY, ...EFFECTIVE]\n }\n]\n\nexport function masterAxisViewOf(key: string): MasterAxisView | undefined {\n return MASTER_AXIS_VIEWS.find(axis => axis.key === key)\n}\n"]}
1
+ {"version":3,"file":"master-axes.js","sourceRoot":"","sources":["../../client/pages/master-axes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,gBAAgB;IAChB,QAAQ;IACR,gBAAgB;IAChB,WAAW;IACX,YAAY;IACZ,oBAAoB;IACpB,eAAe;IACf,eAAe;IACf,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,mBAAmB;CACX,CAAA;AAIV,4CAA4C;AAC5C,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAQ,gBAAsC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC9D,CAAC","sourcesContent":["/**\n * λ§ˆμŠ€ν„° μΆ•μ˜ **이름 λͺ©λ‘** β€” μ˜› μ£Όμ†Œλ₯Ό μƒˆ μ£Όμ†Œλ‘œ λ³΄λ‚΄λŠ” 데만 μ“΄λ‹€.\n *\n * ── μ™œ 이만큼만 λ‚¨μ•˜λ‚˜ ─────────────────────────────────────────────────────\n * 이 νŒŒμΌμ—λŠ” 열두 μΆ•μ˜ 컬럼 선언이 250쀄 λ“€μ–΄ μžˆμ—ˆλ‹€. 화면이 ν•˜λ‚˜μ˜€μ„ λ•Œμ˜ 것이닀. 화면이 μΆ•λ§ˆλ‹€\n * 갈린 λ’€λ‘œλŠ” **각 ν™”λ©΄ 파일이 자기 μ»¬λŸΌμ„ κ°–κ³ **, μ—¬κΈ° 있던 선언은 아무도 읽지 μ•Šκ²Œ λ˜μ—ˆλ‹€.\n * μ½νžˆλŠ” 것은 `key` ν•˜λ‚˜λΏμ΄λ‹€(`route.ts` κ°€ μ˜› μ£Όμ†Œλ₯Ό μƒˆ μ£Όμ†Œλ‘œ 보낼 λ•Œ).\n *\n * μ•ˆ μ½νžˆλŠ”λ° κ·ΈλŸ΄λ“―ν•˜κ²Œ μ„œ μžˆλŠ” 선언은 μœ„ν—˜ν•˜λ‹€. μ‹€μ œλ‘œ κ·Έλž¬λ‹€ β€” 자재 화면에 μ»¬λŸΌμ„ λ”ν•˜λŸ¬ μ™€μ„œ\n * 이 νŒŒμΌμ„ λ¨Όμ € κ³ μ³€κ³ , 화면은 ν•˜λ‚˜λ„ μ•ˆ λ³€ν–ˆλ‹€. κ·Έ 사이 이 파일의 선언은 μ§„μ§œ ν™”λ©΄κ³Ό μ–΄κΈ‹λ‚˜ μžˆμ—ˆλ‹€\n * (자재의 μœ ν˜•Β·κ³„λ³΄Β·μ œμ‘°λ²• 칸이 μ—†κ³ , 주석에 γ€Œμ΄ 칸은 API κ°€ μ•ˆ 쀀닀」고 적힌 낑은 사연이 남아 μžˆμ—ˆλ‹€).\n *\n * **μ»¬λŸΌμ„ 고치렀면 κ·Έ μΆ•μ˜ ν™”λ©΄ νŒŒμΌμ„ κ³ μΉœλ‹€** β€” `pages/master/<μΆ•>.ts`.\n */\n\n/**\n * μΆ•μ˜ 이름듀.\n *\n * μˆœμ„œλŠ” 뜻이 μ—†λ‹€. μƒˆ 좕이 생기면 여기에 λ”ν•˜κ³  `pages/master/` 에 화면을 λ§Œλ“ λ‹€. μ—¬κΈ°μ—λ§Œ λ”ν•˜λ©΄\n * μ˜› μ£Όμ†Œκ°€ μ—†λŠ” ν™”λ©΄μœΌλ‘œ κ°„λ‹€.\n */\nexport const MASTER_AXIS_KEYS = [\n 'personnelClass',\n 'person',\n 'equipmentClass',\n 'equipment',\n 'stopReason',\n 'physicalAssetClass',\n 'physicalAsset',\n 'materialClass',\n 'materialDefinition',\n 'operationalLocation',\n 'operationDefinition',\n 'testSpecification'\n] as const\n\nexport type MasterAxisKey = (typeof MASTER_AXIS_KEYS)[number]\n\n/** μ•„λŠ” 좕인가. λͺ¨λ₯΄λŠ” 이름이면 μ˜› μ£Όμ†Œλ₯Ό μƒˆ μ£Όμ†Œλ‘œ 보내지 μ•ŠλŠ”λ‹€. */\nexport function isMasterAxisKey(key: string): key is MasterAxisKey {\n return (MASTER_AXIS_KEYS as readonly string[]).includes(key)\n}\n"]}
@@ -1 +1 @@
1
- export default function route(page: string): "ops-master-list" | undefined;
1
+ export default function route(page: string): string | undefined;
@@ -1,8 +1,81 @@
1
+ import { isMasterAxisKey } from './pages/master-axes.js';
2
+ /*
3
+ * λ§ˆμŠ€ν„° 화면은 μΆ•λ§ˆλ‹€ ν•˜λ‚˜λ‹€ β€” μ΄μœ λŠ” `pages/master/master-page-base.ts` 에 μ μ—ˆλ‹€.
4
+ *
5
+ * μ†μœΌλ‘œ 열두 벌 μ λŠ”λ‹€. μΆ• λͺ©λ‘μ—μ„œ λ§Œλ“€λ©΄ μš”μ†Œκ°€ 자기 μ½”λ“œλ₯Ό κ°€μ§ˆ 수 μ—†κ³ , 그러면 좕이 자기
6
+ * μΈν„°νŽ˜μ΄μŠ€λ₯Ό μš”κ΅¬ν•  λ•Œ 곡용 화면에 λΆ„κΈ°λ₯Ό λ„£κ²Œ λœλ‹€ β€” 갈라 놓은 μ΄μœ μ™€ μ–΄κΈ‹λ‚œλ‹€.
7
+ */
1
8
  export default function route(page) {
2
9
  switch (page) {
3
- case 'ops-master-list':
4
- import('./pages/master-list');
5
- return 'ops-master-list';
10
+ case 'ops-master-personnel-class':
11
+ import('./pages/master/personnel-class');
12
+ return 'ops-master-personnel-class';
13
+ case 'ops-master-person':
14
+ import('./pages/master/person');
15
+ return 'ops-master-person';
16
+ case 'ops-master-equipment-class':
17
+ import('./pages/master/equipment-class');
18
+ return 'ops-master-equipment-class';
19
+ case 'ops-master-equipment':
20
+ import('./pages/master/equipment');
21
+ return 'ops-master-equipment';
22
+ case 'ops-master-stop-reason':
23
+ import('./pages/master/stop-reason');
24
+ return 'ops-master-stop-reason';
25
+ case 'ops-master-physical-asset-class':
26
+ import('./pages/master/physical-asset-class');
27
+ return 'ops-master-physical-asset-class';
28
+ case 'ops-master-physical-asset':
29
+ import('./pages/master/physical-asset');
30
+ return 'ops-master-physical-asset';
31
+ case 'ops-master-material-class':
32
+ import('./pages/master/material-class');
33
+ return 'ops-master-material-class';
34
+ case 'ops-master-material-definition':
35
+ import('./pages/master/material-definition');
36
+ return 'ops-master-material-definition';
37
+ case 'ops-master-operational-location':
38
+ import('./pages/master/operational-location');
39
+ return 'ops-master-operational-location';
40
+ case 'ops-master-operation-definition':
41
+ import('./pages/master/operation-definition');
42
+ return 'ops-master-operation-definition';
43
+ case 'ops-master-test-specification':
44
+ import('./pages/master/test-specification');
45
+ return 'ops-master-test-specification';
46
+ case 'ops-master-route-definition':
47
+ import('./pages/master/route-definition');
48
+ return 'ops-master-route-definition';
49
+ case 'ops-master-recipe-definition':
50
+ import('./pages/master/recipe-definition');
51
+ return 'ops-master-recipe-definition';
52
+ /*
53
+ * μ˜› μ£Όμ†Œ β€” `ops-master-list?axis=person`.
54
+ *
55
+ * 이 화면을 μΆ•λ§ˆλ‹€ κ°ˆλžμ§€λ§Œ **μ˜› μ£Όμ†Œκ°€ 남아 μžˆλ‹€.** 뢁마크 Β· helps λ¬Έμ„œ Β· MDI 에 μ—΄λ € 있던 탭이
56
+ * 그것을 가리킨닀. μ§€μš°λ©΄ κ·Έ μ‚¬λžŒλ“€μ—κ²Œ γ€ŒνŽ˜μ΄μ§€λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€γ€κ°€ λ‚˜μ˜¨λ‹€.
57
+ *
58
+ * ── λ„˜κΉ€μ€ λΌμš°νŒ… λ‹¨κ³„μ—μ„œ ν•œλ‹€ ─────────────────────────────────────────
59
+ * μ²˜μŒμ—λŠ” λ„˜κΈ°λŠ” 화면을 ν•˜λ‚˜ λ§Œλ“€μ–΄ κ·Έ μ•ˆμ—μ„œ navigate ν–ˆλ‹€. 그러면 **κ·Έ 화면이 MDI 탭을 ν•˜λ‚˜
60
+ * λ§Œλ“€κ³  κ·Έ μžλ¦¬μ— λ‚¨λŠ”λ‹€** β€” μ‚¬μš©μžλŠ” 이름 μ—†λŠ” 빈 탭을 μ–»λŠ”λ‹€. navigate λŠ” μ£Όμ†Œλ§Œ λ°”κΎΈκ³  이미
61
+ * λ§Œλ“€μ–΄μ§„ 탭을 μ§€μš°μ§€ μ•ŠλŠ”λ‹€.
62
+ *
63
+ * 셸은 route() κ°€ `/` 둜 μ‹œμž‘ν•˜λŠ” 값을 돌렀주면 νŽ˜μ΄μ§€λ₯Ό λ§Œλ“€μ§€ μ•Šκ³  κ·Έ μ£Όμ†Œλ‘œ λ„˜κΈ΄λ‹€
64
+ * (`@operato/shell` 의 loadPage). κ·Έλž˜μ„œ 탭이 생기지 μ•ŠλŠ”λ‹€.
65
+ *
66
+ * 좕을 λͺ» μ•Œμ•„λ³΄λ©΄ λ„˜κΈ°μ§€ μ•ŠλŠ”λ‹€ β€” 첫 μΆ•μœΌλ‘œ λŒ€μ‹  보내면 μ‚¬μš©μžλŠ” μžκΈ°κ°€ λ‹€λ₯Έ 곳에 온 것을 λͺ¨λ₯Έλ‹€.
67
+ *
68
+ * μž„μ‹œ ν˜Έν™˜μ΄λ―€λ‘œ **릴리즈 μ κ²€μ—μ„œ λΉ„μš΄λ‹€.**
69
+ */
70
+ case 'ops-master-list': {
71
+ const key = new URLSearchParams(location.search).get('axis');
72
+ if (!key || !isMasterAxisKey(key)) {
73
+ return;
74
+ }
75
+ const { pathname } = location;
76
+ const base = pathname.slice(0, pathname.lastIndexOf('/'));
77
+ return `${base}/ops-master-${key.replace(/[A-Z]/g, c => '-' + c.toLowerCase())}`;
78
+ }
6
79
  }
7
80
  }
8
81
  //# sourceMappingURL=route.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../client/route.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAY;IACxC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,iBAAiB;YACpB,MAAM,CAAC,qBAAqB,CAAC,CAAA;YAC7B,OAAO,iBAAiB,CAAA;IAC5B,CAAC;AACH,CAAC","sourcesContent":["export default function route(page: string) {\n switch (page) {\n case 'ops-master-list':\n import('./pages/master-list')\n return 'ops-master-list'\n }\n}\n"]}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../client/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAY;IACxC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,4BAA4B;YAC/B,MAAM,CAAC,gCAAgC,CAAC,CAAA;YACxC,OAAO,4BAA4B,CAAA;QACrC,KAAK,mBAAmB;YACtB,MAAM,CAAC,uBAAuB,CAAC,CAAA;YAC/B,OAAO,mBAAmB,CAAA;QAC5B,KAAK,4BAA4B;YAC/B,MAAM,CAAC,gCAAgC,CAAC,CAAA;YACxC,OAAO,4BAA4B,CAAA;QACrC,KAAK,sBAAsB;YACzB,MAAM,CAAC,0BAA0B,CAAC,CAAA;YAClC,OAAO,sBAAsB,CAAA;QAC/B,KAAK,wBAAwB;YAC3B,MAAM,CAAC,4BAA4B,CAAC,CAAA;YACpC,OAAO,wBAAwB,CAAA;QACjC,KAAK,iCAAiC;YACpC,MAAM,CAAC,qCAAqC,CAAC,CAAA;YAC7C,OAAO,iCAAiC,CAAA;QAC1C,KAAK,2BAA2B;YAC9B,MAAM,CAAC,+BAA+B,CAAC,CAAA;YACvC,OAAO,2BAA2B,CAAA;QACpC,KAAK,2BAA2B;YAC9B,MAAM,CAAC,+BAA+B,CAAC,CAAA;YACvC,OAAO,2BAA2B,CAAA;QACpC,KAAK,gCAAgC;YACnC,MAAM,CAAC,oCAAoC,CAAC,CAAA;YAC5C,OAAO,gCAAgC,CAAA;QACzC,KAAK,iCAAiC;YACpC,MAAM,CAAC,qCAAqC,CAAC,CAAA;YAC7C,OAAO,iCAAiC,CAAA;QAC1C,KAAK,iCAAiC;YACpC,MAAM,CAAC,qCAAqC,CAAC,CAAA;YAC7C,OAAO,iCAAiC,CAAA;QAC1C,KAAK,+BAA+B;YAClC,MAAM,CAAC,mCAAmC,CAAC,CAAA;YAC3C,OAAO,+BAA+B,CAAA;QACxC,KAAK,6BAA6B;YAChC,MAAM,CAAC,iCAAiC,CAAC,CAAA;YACzC,OAAO,6BAA6B,CAAA;QACtC,KAAK,8BAA8B;YACjC,MAAM,CAAC,kCAAkC,CAAC,CAAA;YAC1C,OAAO,8BAA8B,CAAA;QAEvC;;;;;;;;;;;;;;;;;WAiBG;QACH,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAE5D,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClC,OAAM;YACR,CAAC;YAED,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAA;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;YAEzD,OAAO,GAAG,IAAI,eAAe,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAA;QAClF,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { isMasterAxisKey } from './pages/master-axes.js'\n\n/*\n * λ§ˆμŠ€ν„° 화면은 μΆ•λ§ˆλ‹€ ν•˜λ‚˜λ‹€ β€” μ΄μœ λŠ” `pages/master/master-page-base.ts` 에 μ μ—ˆλ‹€.\n *\n * μ†μœΌλ‘œ 열두 벌 μ λŠ”λ‹€. μΆ• λͺ©λ‘μ—μ„œ λ§Œλ“€λ©΄ μš”μ†Œκ°€ 자기 μ½”λ“œλ₯Ό κ°€μ§ˆ 수 μ—†κ³ , 그러면 좕이 자기\n * μΈν„°νŽ˜μ΄μŠ€λ₯Ό μš”κ΅¬ν•  λ•Œ 곡용 화면에 λΆ„κΈ°λ₯Ό λ„£κ²Œ λœλ‹€ β€” 갈라 놓은 μ΄μœ μ™€ μ–΄κΈ‹λ‚œλ‹€.\n */\nexport default function route(page: string) {\n switch (page) {\n case 'ops-master-personnel-class':\n import('./pages/master/personnel-class')\n return 'ops-master-personnel-class'\n case 'ops-master-person':\n import('./pages/master/person')\n return 'ops-master-person'\n case 'ops-master-equipment-class':\n import('./pages/master/equipment-class')\n return 'ops-master-equipment-class'\n case 'ops-master-equipment':\n import('./pages/master/equipment')\n return 'ops-master-equipment'\n case 'ops-master-stop-reason':\n import('./pages/master/stop-reason')\n return 'ops-master-stop-reason'\n case 'ops-master-physical-asset-class':\n import('./pages/master/physical-asset-class')\n return 'ops-master-physical-asset-class'\n case 'ops-master-physical-asset':\n import('./pages/master/physical-asset')\n return 'ops-master-physical-asset'\n case 'ops-master-material-class':\n import('./pages/master/material-class')\n return 'ops-master-material-class'\n case 'ops-master-material-definition':\n import('./pages/master/material-definition')\n return 'ops-master-material-definition'\n case 'ops-master-operational-location':\n import('./pages/master/operational-location')\n return 'ops-master-operational-location'\n case 'ops-master-operation-definition':\n import('./pages/master/operation-definition')\n return 'ops-master-operation-definition'\n case 'ops-master-test-specification':\n import('./pages/master/test-specification')\n return 'ops-master-test-specification'\n case 'ops-master-route-definition':\n import('./pages/master/route-definition')\n return 'ops-master-route-definition'\n case 'ops-master-recipe-definition':\n import('./pages/master/recipe-definition')\n return 'ops-master-recipe-definition'\n\n /*\n * μ˜› μ£Όμ†Œ β€” `ops-master-list?axis=person`.\n *\n * 이 화면을 μΆ•λ§ˆλ‹€ κ°ˆλžμ§€λ§Œ **μ˜› μ£Όμ†Œκ°€ 남아 μžˆλ‹€.** 뢁마크 Β· helps λ¬Έμ„œ Β· MDI 에 μ—΄λ € 있던 탭이\n * 그것을 가리킨닀. μ§€μš°λ©΄ κ·Έ μ‚¬λžŒλ“€μ—κ²Œ γ€ŒνŽ˜μ΄μ§€λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€γ€κ°€ λ‚˜μ˜¨λ‹€.\n *\n * ── λ„˜κΉ€μ€ λΌμš°νŒ… λ‹¨κ³„μ—μ„œ ν•œλ‹€ ─────────────────────────────────────────\n * μ²˜μŒμ—λŠ” λ„˜κΈ°λŠ” 화면을 ν•˜λ‚˜ λ§Œλ“€μ–΄ κ·Έ μ•ˆμ—μ„œ navigate ν–ˆλ‹€. 그러면 **κ·Έ 화면이 MDI 탭을 ν•˜λ‚˜\n * λ§Œλ“€κ³  κ·Έ μžλ¦¬μ— λ‚¨λŠ”λ‹€** β€” μ‚¬μš©μžλŠ” 이름 μ—†λŠ” 빈 탭을 μ–»λŠ”λ‹€. navigate λŠ” μ£Όμ†Œλ§Œ λ°”κΎΈκ³  이미\n * λ§Œλ“€μ–΄μ§„ 탭을 μ§€μš°μ§€ μ•ŠλŠ”λ‹€.\n *\n * 셸은 route() κ°€ `/` 둜 μ‹œμž‘ν•˜λŠ” 값을 돌렀주면 νŽ˜μ΄μ§€λ₯Ό λ§Œλ“€μ§€ μ•Šκ³  κ·Έ μ£Όμ†Œλ‘œ λ„˜κΈ΄λ‹€\n * (`@operato/shell` 의 loadPage). κ·Έλž˜μ„œ 탭이 생기지 μ•ŠλŠ”λ‹€.\n *\n * 좕을 λͺ» μ•Œμ•„λ³΄λ©΄ λ„˜κΈ°μ§€ μ•ŠλŠ”λ‹€ β€” 첫 μΆ•μœΌλ‘œ λŒ€μ‹  보내면 μ‚¬μš©μžλŠ” μžκΈ°κ°€ λ‹€λ₯Έ 곳에 온 것을 λͺ¨λ₯Έλ‹€.\n *\n * μž„μ‹œ ν˜Έν™˜μ΄λ―€λ‘œ **릴리즈 μ κ²€μ—μ„œ λΉ„μš΄λ‹€.**\n */\n case 'ops-master-list': {\n const key = new URLSearchParams(location.search).get('axis')\n\n if (!key || !isMasterAxisKey(key)) {\n return\n }\n\n const { pathname } = location\n const base = pathname.slice(0, pathname.lastIndexOf('/'))\n\n return `${base}/ops-master-${key.replace(/[A-Z]/g, c => '-' + c.toLowerCase())}`\n }\n }\n}\n"]}