@things-factory/ops-master 10.1.248 → 10.1.250

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 (429) hide show
  1. package/dist-client/bootstrap.d.ts +19 -0
  2. package/dist-client/bootstrap.js +66 -0
  3. package/dist-client/bootstrap.js.map +1 -0
  4. package/dist-client/index.d.ts +17 -0
  5. package/dist-client/index.js +21 -0
  6. package/dist-client/index.js.map +1 -0
  7. package/dist-client/master-change-approval.d.ts +14 -0
  8. package/dist-client/master-change-approval.js +36 -0
  9. package/dist-client/master-change-approval.js.map +1 -0
  10. package/dist-client/master-change-policy-axes.d.ts +37 -0
  11. package/dist-client/master-change-policy-axes.js +29 -0
  12. package/dist-client/master-change-policy-axes.js.map +1 -0
  13. package/dist-client/master-change-policy-panel.d.ts +59 -0
  14. package/dist-client/master-change-policy-panel.js +454 -0
  15. package/dist-client/master-change-policy-panel.js.map +1 -0
  16. package/dist-client/master-change-providers.d.ts +4 -0
  17. package/dist-client/master-change-providers.js +91 -0
  18. package/dist-client/master-change-providers.js.map +1 -0
  19. package/dist-client/pages/master/applied-when-dialog.d.ts +48 -0
  20. package/dist-client/pages/master/applied-when-dialog.js +137 -0
  21. package/dist-client/pages/master/applied-when-dialog.js.map +1 -0
  22. package/dist-client/pages/master/assignment-fields.d.ts +27 -0
  23. package/dist-client/pages/master/assignment-fields.js +62 -0
  24. package/dist-client/pages/master/assignment-fields.js.map +1 -0
  25. package/dist-client/pages/master/equipment-class.d.ts +12 -0
  26. package/dist-client/pages/master/equipment-class.js +42 -0
  27. package/dist-client/pages/master/equipment-class.js.map +1 -0
  28. package/dist-client/pages/master/equipment.d.ts +12 -0
  29. package/dist-client/pages/master/equipment.js +58 -0
  30. package/dist-client/pages/master/equipment.js.map +1 -0
  31. package/dist-client/pages/master/grist-iso-duration.d.ts +20 -0
  32. package/dist-client/pages/master/grist-iso-duration.js +70 -0
  33. package/dist-client/pages/master/grist-iso-duration.js.map +1 -0
  34. package/dist-client/pages/master/grist-reference.d.ts +91 -0
  35. package/dist-client/pages/master/grist-reference.js +419 -0
  36. package/dist-client/pages/master/grist-reference.js.map +1 -0
  37. package/dist-client/pages/master/import-rows.d.ts +35 -0
  38. package/dist-client/pages/master/import-rows.js +66 -0
  39. package/dist-client/pages/master/import-rows.js.map +1 -0
  40. package/dist-client/pages/master/iso-duration.d.ts +34 -0
  41. package/dist-client/pages/master/iso-duration.js +76 -0
  42. package/dist-client/pages/master/iso-duration.js.map +1 -0
  43. package/dist-client/pages/master/master-options.d.ts +40 -0
  44. package/dist-client/pages/master/master-options.js +54 -0
  45. package/dist-client/pages/master/master-options.js.map +1 -0
  46. package/dist-client/pages/master/master-page-base.d.ts +369 -0
  47. package/dist-client/pages/master/master-page-base.js +657 -0
  48. package/dist-client/pages/master/master-page-base.js.map +1 -0
  49. package/dist-client/pages/master/material-class.d.ts +12 -0
  50. package/dist-client/pages/master/material-class.js +42 -0
  51. package/dist-client/pages/master/material-class.js.map +1 -0
  52. package/dist-client/pages/master/material-definition.d.ts +5 -0
  53. package/dist-client/pages/master/material-definition.js +14 -0
  54. package/dist-client/pages/master/material-definition.js.map +1 -0
  55. package/dist-client/pages/master/material-revision-fields.d.ts +2 -0
  56. package/dist-client/pages/master/material-revision-fields.js +43 -0
  57. package/dist-client/pages/master/material-revision-fields.js.map +1 -0
  58. package/dist-client/pages/master/operation-definition.d.ts +12 -0
  59. package/dist-client/pages/master/operation-definition.js +49 -0
  60. package/dist-client/pages/master/operation-definition.js.map +1 -0
  61. package/dist-client/pages/master/operational-location.d.ts +84 -0
  62. package/dist-client/pages/master/operational-location.js +432 -0
  63. package/dist-client/pages/master/operational-location.js.map +1 -0
  64. package/dist-client/pages/master/person.d.ts +12 -0
  65. package/dist-client/pages/master/person.js +41 -0
  66. package/dist-client/pages/master/person.js.map +1 -0
  67. package/dist-client/pages/master/personnel-class.d.ts +12 -0
  68. package/dist-client/pages/master/personnel-class.js +43 -0
  69. package/dist-client/pages/master/personnel-class.js.map +1 -0
  70. package/dist-client/pages/master/physical-asset-class.d.ts +12 -0
  71. package/dist-client/pages/master/physical-asset-class.js +40 -0
  72. package/dist-client/pages/master/physical-asset-class.js.map +1 -0
  73. package/dist-client/pages/master/physical-asset.d.ts +12 -0
  74. package/dist-client/pages/master/physical-asset.js +41 -0
  75. package/dist-client/pages/master/physical-asset.js.map +1 -0
  76. package/dist-client/pages/master/recipe-definition.d.ts +5 -0
  77. package/dist-client/pages/master/recipe-definition.js +14 -0
  78. package/dist-client/pages/master/recipe-definition.js.map +1 -0
  79. package/dist-client/pages/master/reference-targets.d.ts +42 -0
  80. package/dist-client/pages/master/reference-targets.js +82 -0
  81. package/dist-client/pages/master/reference-targets.js.map +1 -0
  82. package/dist-client/pages/master/revision-comparison.d.ts +49 -0
  83. package/dist-client/pages/master/revision-comparison.js +560 -0
  84. package/dist-client/pages/master/revision-comparison.js.map +1 -0
  85. package/dist-client/pages/master/revision-view.d.ts +34 -0
  86. package/dist-client/pages/master/revision-view.js +145 -0
  87. package/dist-client/pages/master/revision-view.js.map +1 -0
  88. package/dist-client/pages/master/revision-workspace.d.ts +50 -0
  89. package/dist-client/pages/master/revision-workspace.js +763 -0
  90. package/dist-client/pages/master/revision-workspace.js.map +1 -0
  91. package/dist-client/pages/master/route-definition.d.ts +19 -0
  92. package/dist-client/pages/master/route-definition.js +40 -0
  93. package/dist-client/pages/master/route-definition.js.map +1 -0
  94. package/dist-client/pages/master/stop-reason.d.ts +12 -0
  95. package/dist-client/pages/master/stop-reason.js +48 -0
  96. package/dist-client/pages/master/stop-reason.js.map +1 -0
  97. package/dist-client/pages/master/test-specification.d.ts +5 -0
  98. package/dist-client/pages/master/test-specification.js +14 -0
  99. package/dist-client/pages/master/test-specification.js.map +1 -0
  100. package/dist-client/pages/master-axes.d.ts +24 -0
  101. package/dist-client/pages/master-axes.js +39 -0
  102. package/dist-client/pages/master-axes.js.map +1 -0
  103. package/dist-client/route.d.ts +1 -0
  104. package/dist-client/route.js +81 -0
  105. package/dist-client/route.js.map +1 -0
  106. package/dist-client/tsconfig.tsbuildinfo +1 -0
  107. package/dist-server/index.d.ts +1 -0
  108. package/dist-server/index.js +19 -0
  109. package/dist-server/index.js.map +1 -0
  110. package/dist-server/service/ai-entry/master-entry-rules.d.ts +175 -0
  111. package/dist-server/service/ai-entry/master-entry-rules.js +302 -0
  112. package/dist-server/service/ai-entry/master-entry-rules.js.map +1 -0
  113. package/dist-server/service/ai-entry/master-entry-targets.d.ts +23 -0
  114. package/dist-server/service/ai-entry/master-entry-targets.js +293 -0
  115. package/dist-server/service/ai-entry/master-entry-targets.js.map +1 -0
  116. package/dist-server/service/approval-route.d.ts +37 -0
  117. package/dist-server/service/approval-route.js +34 -0
  118. package/dist-server/service/approval-route.js.map +1 -0
  119. package/dist-server/service/asset/asset-lifecycle.d.ts +106 -0
  120. package/dist-server/service/asset/asset-lifecycle.js +126 -0
  121. package/dist-server/service/asset/asset-lifecycle.js.map +1 -0
  122. package/dist-server/service/asset/asset-master-resolver.d.ts +53 -0
  123. package/dist-server/service/asset/asset-master-resolver.js +185 -0
  124. package/dist-server/service/asset/asset-master-resolver.js.map +1 -0
  125. package/dist-server/service/asset/asset-master.d.ts +21 -0
  126. package/dist-server/service/asset/asset-master.js +25 -0
  127. package/dist-server/service/asset/asset-master.js.map +1 -0
  128. package/dist-server/service/asset/asset-query.d.ts +16 -0
  129. package/dist-server/service/asset/asset-query.js +72 -0
  130. package/dist-server/service/asset/asset-query.js.map +1 -0
  131. package/dist-server/service/asset/index.d.ts +6 -0
  132. package/dist-server/service/asset/index.js +10 -0
  133. package/dist-server/service/asset/index.js.map +1 -0
  134. package/dist-server/service/asset/physical-asset-class.d.ts +34 -0
  135. package/dist-server/service/asset/physical-asset-class.js +104 -0
  136. package/dist-server/service/asset/physical-asset-class.js.map +1 -0
  137. package/dist-server/service/asset/physical-asset.d.ts +66 -0
  138. package/dist-server/service/asset/physical-asset.js +123 -0
  139. package/dist-server/service/asset/physical-asset.js.map +1 -0
  140. package/dist-server/service/assignment/applied-when.d.ts +24 -0
  141. package/dist-server/service/assignment/applied-when.js +16 -0
  142. package/dist-server/service/assignment/applied-when.js.map +1 -0
  143. package/dist-server/service/assignment/assignment-history.d.ts +92 -0
  144. package/dist-server/service/assignment/assignment-history.js +289 -0
  145. package/dist-server/service/assignment/assignment-history.js.map +1 -0
  146. package/dist-server/service/assignment/assignment-write.d.ts +42 -0
  147. package/dist-server/service/assignment/assignment-write.js +101 -0
  148. package/dist-server/service/assignment/assignment-write.js.map +1 -0
  149. package/dist-server/service/assignment/master-value-claim.d.ts +135 -0
  150. package/dist-server/service/assignment/master-value-claim.js +174 -0
  151. package/dist-server/service/assignment/master-value-claim.js.map +1 -0
  152. package/dist-server/service/equipment/equipment-class.d.ts +34 -0
  153. package/dist-server/service/equipment/equipment-class.js +104 -0
  154. package/dist-server/service/equipment/equipment-class.js.map +1 -0
  155. package/dist-server/service/equipment/equipment-master-resolver.d.ts +77 -0
  156. package/dist-server/service/equipment/equipment-master-resolver.js +266 -0
  157. package/dist-server/service/equipment/equipment-master-resolver.js.map +1 -0
  158. package/dist-server/service/equipment/equipment-master.d.ts +30 -0
  159. package/dist-server/service/equipment/equipment-master.js +53 -0
  160. package/dist-server/service/equipment/equipment-master.js.map +1 -0
  161. package/dist-server/service/equipment/equipment-query.d.ts +16 -0
  162. package/dist-server/service/equipment/equipment-query.js +72 -0
  163. package/dist-server/service/equipment/equipment-query.js.map +1 -0
  164. package/dist-server/service/equipment/equipment.d.ts +71 -0
  165. package/dist-server/service/equipment/equipment.js +138 -0
  166. package/dist-server/service/equipment/equipment.js.map +1 -0
  167. package/dist-server/service/equipment/index.d.ts +8 -0
  168. package/dist-server/service/equipment/index.js +12 -0
  169. package/dist-server/service/equipment/index.js.map +1 -0
  170. package/dist-server/service/equipment/state-period-rules.d.ts +95 -0
  171. package/dist-server/service/equipment/state-period-rules.js +122 -0
  172. package/dist-server/service/equipment/state-period-rules.js.map +1 -0
  173. package/dist-server/service/equipment/stop-reason-query.d.ts +11 -0
  174. package/dist-server/service/equipment/stop-reason-query.js +39 -0
  175. package/dist-server/service/equipment/stop-reason-query.js.map +1 -0
  176. package/dist-server/service/equipment/stop-reason.d.ts +58 -0
  177. package/dist-server/service/equipment/stop-reason.js +114 -0
  178. package/dist-server/service/equipment/stop-reason.js.map +1 -0
  179. package/dist-server/service/index.d.ts +82 -0
  180. package/dist-server/service/index.js +145 -0
  181. package/dist-server/service/index.js.map +1 -0
  182. package/dist-server/service/location/index.d.ts +5 -0
  183. package/dist-server/service/location/index.js +9 -0
  184. package/dist-server/service/location/index.js.map +1 -0
  185. package/dist-server/service/location/location-master-resolver.d.ts +60 -0
  186. package/dist-server/service/location/location-master-resolver.js +313 -0
  187. package/dist-server/service/location/location-master-resolver.js.map +1 -0
  188. package/dist-server/service/location/location-master.d.ts +26 -0
  189. package/dist-server/service/location/location-master.js +28 -0
  190. package/dist-server/service/location/location-master.js.map +1 -0
  191. package/dist-server/service/location/location-query.d.ts +15 -0
  192. package/dist-server/service/location/location-query.js +56 -0
  193. package/dist-server/service/location/location-query.js.map +1 -0
  194. package/dist-server/service/location/operational-location.d.ts +116 -0
  195. package/dist-server/service/location/operational-location.js +157 -0
  196. package/dist-server/service/location/operational-location.js.map +1 -0
  197. package/dist-server/service/master-axis.d.ts +40 -0
  198. package/dist-server/service/master-axis.js +57 -0
  199. package/dist-server/service/master-axis.js.map +1 -0
  200. package/dist-server/service/master-change-approval/approval-input.d.ts +17 -0
  201. package/dist-server/service/master-change-approval/approval-input.js +35 -0
  202. package/dist-server/service/master-change-approval/approval-input.js.map +1 -0
  203. package/dist-server/service/master-change-approval/builtin-axes.d.ts +4 -0
  204. package/dist-server/service/master-change-approval/builtin-axes.js +96 -0
  205. package/dist-server/service/master-change-approval/builtin-axes.js.map +1 -0
  206. package/dist-server/service/master-change-approval/index.d.ts +14 -0
  207. package/dist-server/service/master-change-approval/index.js +37 -0
  208. package/dist-server/service/master-change-approval/index.js.map +1 -0
  209. package/dist-server/service/master-change-approval/master-change-axis.d.ts +54 -0
  210. package/dist-server/service/master-change-approval/master-change-axis.js +17 -0
  211. package/dist-server/service/master-change-approval/master-change-axis.js.map +1 -0
  212. package/dist-server/service/master-change-approval/master-change-flow.d.ts +65 -0
  213. package/dist-server/service/master-change-approval/master-change-flow.js +125 -0
  214. package/dist-server/service/master-change-approval/master-change-flow.js.map +1 -0
  215. package/dist-server/service/master-change-approval/master-change-resolver.d.ts +18 -0
  216. package/dist-server/service/master-change-approval/master-change-resolver.js +58 -0
  217. package/dist-server/service/master-change-approval/master-change-resolver.js.map +1 -0
  218. package/dist-server/service/master-change-policy.d.ts +122 -0
  219. package/dist-server/service/master-change-policy.js +304 -0
  220. package/dist-server/service/master-change-policy.js.map +1 -0
  221. package/dist-server/service/master-conformance-resolver.d.ts +34 -0
  222. package/dist-server/service/master-conformance-resolver.js +153 -0
  223. package/dist-server/service/master-conformance-resolver.js.map +1 -0
  224. package/dist-server/service/master-conformance.d.ts +80 -0
  225. package/dist-server/service/master-conformance.js +266 -0
  226. package/dist-server/service/master-conformance.js.map +1 -0
  227. package/dist-server/service/master-crud.d.ts +55 -0
  228. package/dist-server/service/master-crud.js +93 -0
  229. package/dist-server/service/master-crud.js.map +1 -0
  230. package/dist-server/service/master-list.d.ts +12 -0
  231. package/dist-server/service/master-list.js +30 -0
  232. package/dist-server/service/master-list.js.map +1 -0
  233. package/dist-server/service/master-page-query.d.ts +33 -0
  234. package/dist-server/service/master-page-query.js +55 -0
  235. package/dist-server/service/master-page-query.js.map +1 -0
  236. package/dist-server/service/master-page.d.ts +85 -0
  237. package/dist-server/service/master-page.js +104 -0
  238. package/dist-server/service/master-page.js.map +1 -0
  239. package/dist-server/service/material/index.d.ts +7 -0
  240. package/dist-server/service/material/index.js +12 -0
  241. package/dist-server/service/material/index.js.map +1 -0
  242. package/dist-server/service/material/material-axis-status.d.ts +8 -0
  243. package/dist-server/service/material/material-axis-status.js +19 -0
  244. package/dist-server/service/material/material-axis-status.js.map +1 -0
  245. package/dist-server/service/material/material-class.d.ts +34 -0
  246. package/dist-server/service/material/material-class.js +104 -0
  247. package/dist-server/service/material/material-class.js.map +1 -0
  248. package/dist-server/service/material/material-definition.d.ts +45 -0
  249. package/dist-server/service/material/material-definition.js +125 -0
  250. package/dist-server/service/material/material-definition.js.map +1 -0
  251. package/dist-server/service/material/material-effective-list.d.ts +39 -0
  252. package/dist-server/service/material/material-effective-list.js +54 -0
  253. package/dist-server/service/material/material-effective-list.js.map +1 -0
  254. package/dist-server/service/material/material-master-resolver.d.ts +106 -0
  255. package/dist-server/service/material/material-master-resolver.js +351 -0
  256. package/dist-server/service/material/material-master-resolver.js.map +1 -0
  257. package/dist-server/service/material/material-master.d.ts +9 -0
  258. package/dist-server/service/material/material-master.js +24 -0
  259. package/dist-server/service/material/material-master.js.map +1 -0
  260. package/dist-server/service/material/material-query.d.ts +16 -0
  261. package/dist-server/service/material/material-query.js +79 -0
  262. package/dist-server/service/material/material-query.js.map +1 -0
  263. package/dist-server/service/material/material-revision-content.d.ts +10 -0
  264. package/dist-server/service/material/material-revision-content.js +92 -0
  265. package/dist-server/service/material/material-revision-content.js.map +1 -0
  266. package/dist-server/service/material/material-revision-resolver.d.ts +60 -0
  267. package/dist-server/service/material/material-revision-resolver.js +96 -0
  268. package/dist-server/service/material/material-revision-resolver.js.map +1 -0
  269. package/dist-server/service/material/material-revision-service.d.ts +179 -0
  270. package/dist-server/service/material/material-revision-service.js +687 -0
  271. package/dist-server/service/material/material-revision-service.js.map +1 -0
  272. package/dist-server/service/material/material-revision.d.ts +86 -0
  273. package/dist-server/service/material/material-revision.js +339 -0
  274. package/dist-server/service/material/material-revision.js.map +1 -0
  275. package/dist-server/service/material/recipe-index.d.ts +23 -0
  276. package/dist-server/service/material/recipe-index.js +44 -0
  277. package/dist-server/service/material/recipe-index.js.map +1 -0
  278. package/dist-server/service/operation/index.d.ts +6 -0
  279. package/dist-server/service/operation/index.js +10 -0
  280. package/dist-server/service/operation/index.js.map +1 -0
  281. package/dist-server/service/operation/operation-definition.d.ts +52 -0
  282. package/dist-server/service/operation/operation-definition.js +143 -0
  283. package/dist-server/service/operation/operation-definition.js.map +1 -0
  284. package/dist-server/service/operation/operation-master-resolver.d.ts +52 -0
  285. package/dist-server/service/operation/operation-master-resolver.js +187 -0
  286. package/dist-server/service/operation/operation-master-resolver.js.map +1 -0
  287. package/dist-server/service/operation/operation-master.d.ts +21 -0
  288. package/dist-server/service/operation/operation-master.js +28 -0
  289. package/dist-server/service/operation/operation-master.js.map +1 -0
  290. package/dist-server/service/operation/operation-query.d.ts +15 -0
  291. package/dist-server/service/operation/operation-query.js +56 -0
  292. package/dist-server/service/operation/operation-query.js.map +1 -0
  293. package/dist-server/service/operation/operation-readiness-resolver.d.ts +39 -0
  294. package/dist-server/service/operation/operation-readiness-resolver.js +111 -0
  295. package/dist-server/service/operation/operation-readiness-resolver.js.map +1 -0
  296. package/dist-server/service/operation/operation-readiness.d.ts +34 -0
  297. package/dist-server/service/operation/operation-readiness.js +133 -0
  298. package/dist-server/service/operation/operation-readiness.js.map +1 -0
  299. package/dist-server/service/personnel/index.d.ts +6 -0
  300. package/dist-server/service/personnel/index.js +10 -0
  301. package/dist-server/service/personnel/index.js.map +1 -0
  302. package/dist-server/service/personnel/person.d.ts +51 -0
  303. package/dist-server/service/personnel/person.js +119 -0
  304. package/dist-server/service/personnel/person.js.map +1 -0
  305. package/dist-server/service/personnel/personnel-class-readiness.d.ts +22 -0
  306. package/dist-server/service/personnel/personnel-class-readiness.js +98 -0
  307. package/dist-server/service/personnel/personnel-class-readiness.js.map +1 -0
  308. package/dist-server/service/personnel/personnel-class.d.ts +54 -0
  309. package/dist-server/service/personnel/personnel-class.js +114 -0
  310. package/dist-server/service/personnel/personnel-class.js.map +1 -0
  311. package/dist-server/service/personnel/personnel-master-resolver.d.ts +53 -0
  312. package/dist-server/service/personnel/personnel-master-resolver.js +187 -0
  313. package/dist-server/service/personnel/personnel-master-resolver.js.map +1 -0
  314. package/dist-server/service/personnel/personnel-master.d.ts +39 -0
  315. package/dist-server/service/personnel/personnel-master.js +34 -0
  316. package/dist-server/service/personnel/personnel-master.js.map +1 -0
  317. package/dist-server/service/personnel/personnel-query.d.ts +29 -0
  318. package/dist-server/service/personnel/personnel-query.js +79 -0
  319. package/dist-server/service/personnel/personnel-query.js.map +1 -0
  320. package/dist-server/service/personnel/qualification.d.ts +104 -0
  321. package/dist-server/service/personnel/qualification.js +147 -0
  322. package/dist-server/service/personnel/qualification.js.map +1 -0
  323. package/dist-server/service/quality/index.d.ts +4 -0
  324. package/dist-server/service/quality/index.js +8 -0
  325. package/dist-server/service/quality/index.js.map +1 -0
  326. package/dist-server/service/quality/nonconformance-cause-resolver.d.ts +12 -0
  327. package/dist-server/service/quality/nonconformance-cause-resolver.js +60 -0
  328. package/dist-server/service/quality/nonconformance-cause-resolver.js.map +1 -0
  329. package/dist-server/service/quality/nonconformance-cause.d.ts +20 -0
  330. package/dist-server/service/quality/nonconformance-cause.js +90 -0
  331. package/dist-server/service/quality/nonconformance-cause.js.map +1 -0
  332. package/dist-server/service/recipe/index.d.ts +10 -0
  333. package/dist-server/service/recipe/index.js +16 -0
  334. package/dist-server/service/recipe/index.js.map +1 -0
  335. package/dist-server/service/recipe/recipe-definition.d.ts +75 -0
  336. package/dist-server/service/recipe/recipe-definition.js +143 -0
  337. package/dist-server/service/recipe/recipe-definition.js.map +1 -0
  338. package/dist-server/service/recipe/recipe-effective-list.d.ts +49 -0
  339. package/dist-server/service/recipe/recipe-effective-list.js +96 -0
  340. package/dist-server/service/recipe/recipe-effective-list.js.map +1 -0
  341. package/dist-server/service/recipe/recipe-master-resolver.d.ts +28 -0
  342. package/dist-server/service/recipe/recipe-master-resolver.js +128 -0
  343. package/dist-server/service/recipe/recipe-master-resolver.js.map +1 -0
  344. package/dist-server/service/recipe/recipe-master.d.ts +37 -0
  345. package/dist-server/service/recipe/recipe-master.js +47 -0
  346. package/dist-server/service/recipe/recipe-master.js.map +1 -0
  347. package/dist-server/service/recipe/recipe-query.d.ts +21 -0
  348. package/dist-server/service/recipe/recipe-query.js +82 -0
  349. package/dist-server/service/recipe/recipe-query.js.map +1 -0
  350. package/dist-server/service/recipe/recipe-revision-content.d.ts +32 -0
  351. package/dist-server/service/recipe/recipe-revision-content.js +70 -0
  352. package/dist-server/service/recipe/recipe-revision-content.js.map +1 -0
  353. package/dist-server/service/recipe/recipe-revision-line.d.ts +30 -0
  354. package/dist-server/service/recipe/recipe-revision-line.js +95 -0
  355. package/dist-server/service/recipe/recipe-revision-line.js.map +1 -0
  356. package/dist-server/service/recipe/recipe-revision-resolver.d.ts +65 -0
  357. package/dist-server/service/recipe/recipe-revision-resolver.js +96 -0
  358. package/dist-server/service/recipe/recipe-revision-resolver.js.map +1 -0
  359. package/dist-server/service/recipe/recipe-revision-service.d.ts +183 -0
  360. package/dist-server/service/recipe/recipe-revision-service.js +754 -0
  361. package/dist-server/service/recipe/recipe-revision-service.js.map +1 -0
  362. package/dist-server/service/recipe/recipe-revision.d.ts +102 -0
  363. package/dist-server/service/recipe/recipe-revision.js +373 -0
  364. package/dist-server/service/recipe/recipe-revision.js.map +1 -0
  365. package/dist-server/service/recipe/route-definition.d.ts +51 -0
  366. package/dist-server/service/recipe/route-definition.js +114 -0
  367. package/dist-server/service/recipe/route-definition.js.map +1 -0
  368. package/dist-server/service/resource/class-lineage.d.ts +46 -0
  369. package/dist-server/service/resource/class-lineage.js +80 -0
  370. package/dist-server/service/resource/class-lineage.js.map +1 -0
  371. package/dist-server/service/resource/class-members.d.ts +36 -0
  372. package/dist-server/service/resource/class-members.js +59 -0
  373. package/dist-server/service/resource/class-members.js.map +1 -0
  374. package/dist-server/service/resource/referrers.d.ts +54 -0
  375. package/dist-server/service/resource/referrers.js +99 -0
  376. package/dist-server/service/resource/referrers.js.map +1 -0
  377. package/dist-server/service/resource/resource-class.d.ts +25 -0
  378. package/dist-server/service/resource/resource-class.js +29 -0
  379. package/dist-server/service/resource/resource-class.js.map +1 -0
  380. package/dist-server/service/revision-baseline.d.ts +71 -0
  381. package/dist-server/service/revision-baseline.js +87 -0
  382. package/dist-server/service/revision-baseline.js.map +1 -0
  383. package/dist-server/service/row-lock.d.ts +22 -0
  384. package/dist-server/service/row-lock.js +31 -0
  385. package/dist-server/service/row-lock.js.map +1 -0
  386. package/dist-server/service/status/axis-stamp.d.ts +16 -0
  387. package/dist-server/service/status/axis-stamp.js +22 -0
  388. package/dist-server/service/status/axis-stamp.js.map +1 -0
  389. package/dist-server/service/status/index.d.ts +3 -0
  390. package/dist-server/service/status/index.js +7 -0
  391. package/dist-server/service/status/index.js.map +1 -0
  392. package/dist-server/service/status/master-status.d.ts +38 -0
  393. package/dist-server/service/status/master-status.js +129 -0
  394. package/dist-server/service/status/master-status.js.map +1 -0
  395. package/dist-server/service/test-spec/criteria-check.d.ts +53 -0
  396. package/dist-server/service/test-spec/criteria-check.js +142 -0
  397. package/dist-server/service/test-spec/criteria-check.js.map +1 -0
  398. package/dist-server/service/test-spec/criteria-rows.d.ts +89 -0
  399. package/dist-server/service/test-spec/criteria-rows.js +139 -0
  400. package/dist-server/service/test-spec/criteria-rows.js.map +1 -0
  401. package/dist-server/service/test-spec/index.d.ts +6 -0
  402. package/dist-server/service/test-spec/index.js +11 -0
  403. package/dist-server/service/test-spec/index.js.map +1 -0
  404. package/dist-server/service/test-spec/test-spec-effective-list.d.ts +34 -0
  405. package/dist-server/service/test-spec/test-spec-effective-list.js +42 -0
  406. package/dist-server/service/test-spec/test-spec-effective-list.js.map +1 -0
  407. package/dist-server/service/test-spec/test-spec-master-resolver.d.ts +44 -0
  408. package/dist-server/service/test-spec/test-spec-master-resolver.js +144 -0
  409. package/dist-server/service/test-spec/test-spec-master-resolver.js.map +1 -0
  410. package/dist-server/service/test-spec/test-spec-master.d.ts +6 -0
  411. package/dist-server/service/test-spec/test-spec-master.js +18 -0
  412. package/dist-server/service/test-spec/test-spec-master.js.map +1 -0
  413. package/dist-server/service/test-spec/test-spec-query.d.ts +15 -0
  414. package/dist-server/service/test-spec/test-spec-query.js +61 -0
  415. package/dist-server/service/test-spec/test-spec-query.js.map +1 -0
  416. package/dist-server/service/test-spec/test-spec-revision-resolver.d.ts +59 -0
  417. package/dist-server/service/test-spec/test-spec-revision-resolver.js +96 -0
  418. package/dist-server/service/test-spec/test-spec-revision-resolver.js.map +1 -0
  419. package/dist-server/service/test-spec/test-spec-revision-service.d.ts +178 -0
  420. package/dist-server/service/test-spec/test-spec-revision-service.js +685 -0
  421. package/dist-server/service/test-spec/test-spec-revision-service.js.map +1 -0
  422. package/dist-server/service/test-spec/test-spec-revision.d.ts +86 -0
  423. package/dist-server/service/test-spec/test-spec-revision.js +334 -0
  424. package/dist-server/service/test-spec/test-spec-revision.js.map +1 -0
  425. package/dist-server/service/test-spec/test-specification.d.ts +47 -0
  426. package/dist-server/service/test-spec/test-specification.js +119 -0
  427. package/dist-server/service/test-spec/test-specification.js.map +1 -0
  428. package/dist-server/tsconfig.tsbuildinfo +1 -0
  429. package/package.json +4 -4
@@ -0,0 +1,34 @@
1
+ /** View calculations only. IDs are comparison keys, never display labels. */
2
+ /** Flatten only for comparison labels. The stored structure and sibling order remain intact. */
3
+ export declare function materialDifferenceValues(value: any): Map<string, unknown>;
4
+ export type RevisionAxis = 'recipeDefinition' | 'testSpecification' | 'materialDefinition' | 'workShift';
5
+ /** How a revision was published, from the plan that published it; null until then. */
6
+ export type ReleaseKind = 'approved' | 'policy' | 'baseline';
7
+ /**
8
+ * The first revision the server recorded from the row already in use, when revisions began. Nobody wrote its
9
+ * reason - the server did, for engineers - so the screen names it in the reader's words instead. Known by how it
10
+ * was published, never by its wording or its number.
11
+ */
12
+ export declare function isBaseline(row: {
13
+ releaseKind?: ReleaseKind | null;
14
+ } | null | undefined): boolean;
15
+ /** The reason as a person reads it: what its author wrote, or `baseline` for the recorded first revision. */
16
+ export declare function reasonOf(row: {
17
+ reason?: string;
18
+ releaseKind?: ReleaseKind | null;
19
+ } | null | undefined, baseline: string): string;
20
+ export type RevisionSide = 'before' | 'after';
21
+ /** A detail address is scoped to the already-authorized approval, not a general revision lookup. */
22
+ export declare function revisionDetailAddress(input: any, side: RevisionSide, href: string): string;
23
+ export declare function revisionSideAt(input: any, href: string): RevisionSide | undefined;
24
+ export interface Difference {
25
+ section: string;
26
+ label: string;
27
+ field: string;
28
+ before: unknown;
29
+ after: unknown;
30
+ kind: 'added' | 'removed' | 'changed';
31
+ }
32
+ export declare function revisionDifferences(axis: RevisionAxis, before: any, after: any): Difference[];
33
+ export declare function localDateTime(iso: string): string;
34
+ export declare function isoFromLocal(value: string): string;
@@ -0,0 +1,145 @@
1
+ /** View calculations only. IDs are comparison keys, never display labels. */
2
+ /** Flatten only for comparison labels. The stored structure and sibling order remain intact. */
3
+ export function materialDifferenceValues(value) {
4
+ const entries = new Map();
5
+ for (const field of ['description', 'materialClassIds', 'testSpecificationIds'])
6
+ entries.set(field, value?.[field] ?? (field === 'description' ? '' : []));
7
+ const walk = (rows, parent) => rows.forEach((row, index) => {
8
+ const key = `${parent}/${row.id}${row.uom ? ' (' + row.uom + ')' : ''}`;
9
+ entries.set(key + '/position', index + 1);
10
+ for (const field of ['description', 'value', 'dataType', 'uom', 'classPropertyId', 'source'])
11
+ entries.set(key + '/' + field, row[field] ?? '');
12
+ walk(row.children ?? [], key);
13
+ });
14
+ walk(value?.properties ?? [], 'properties');
15
+ return entries;
16
+ }
17
+ /**
18
+ * The first revision the server recorded from the row already in use, when revisions began. Nobody wrote its
19
+ * reason - the server did, for engineers - so the screen names it in the reader's words instead. Known by how it
20
+ * was published, never by its wording or its number.
21
+ */
22
+ export function isBaseline(row) {
23
+ return row?.releaseKind === 'baseline';
24
+ }
25
+ /** The reason as a person reads it: what its author wrote, or `baseline` for the recorded first revision. */
26
+ export function reasonOf(row, baseline) {
27
+ return isBaseline(row) ? baseline : row?.reason ?? '';
28
+ }
29
+ /** A detail address is scoped to the already-authorized approval, not a general revision lookup. */
30
+ export function revisionDetailAddress(input, side, href) {
31
+ const row = input?.[side];
32
+ if (!row?.detail?.revisionId)
33
+ throw new Error('Revision detail is not available');
34
+ const url = new URL(href);
35
+ const recipe = !!input.revision?.recipeId;
36
+ url.searchParams.set('f', (input.revision?.arrangementId ? 'workShifts:' : recipe ? 'recipes:' : input.revision?.materialId ? 'materialDefinitions:' : 'testSpecifications:') + (input.revision.arrangementId ?? input.revision.recipeId ?? input.revision.materialId ?? input.revision.specId));
37
+ url.searchParams.set('revision', row.detail.revisionId);
38
+ return url.href;
39
+ }
40
+ export function revisionSideAt(input, href) {
41
+ const url = new URL(href);
42
+ if (!url.searchParams.has('f') && !url.searchParams.has('revision'))
43
+ return undefined;
44
+ for (const side of ['before', 'after']) {
45
+ if (!input?.[side]?.detail?.revisionId)
46
+ continue;
47
+ const expected = new URL(revisionDetailAddress(input, side, href));
48
+ if (expected.searchParams.get('f') === url.searchParams.get('f') &&
49
+ expected.searchParams.get('revision') === url.searchParams.get('revision'))
50
+ return side;
51
+ }
52
+ throw new Error('The requested revision is not part of this approval');
53
+ }
54
+ export function revisionDifferences(axis, before, after) {
55
+ const out = [];
56
+ if (axis === 'workShift') {
57
+ for (const field of ['description', 'timezone']) {
58
+ if ((before?.[field] ?? '') !== (after?.[field] ?? ''))
59
+ out.push({ section: 'general', label: '', field, before: before?.[field], after: after?.[field], kind: before ? 'changed' : 'added' });
60
+ }
61
+ const oldRows = before?.shifts ?? [], newRows = after?.shifts ?? [];
62
+ for (const name of new Set([...oldRows, ...newRows].map(row => row.name))) {
63
+ const a = oldRows.find(row => row.name === name), b = newRows.find(row => row.name === name);
64
+ for (const field of ['description', 'fromDate', 'fromTime', 'toDate', 'toTime', 'daysOfWeek']) {
65
+ const display = (r) => r ? field === 'daysOfWeek' ? r[field] || '0,1,2,3,4,5,6' : r[field] : undefined;
66
+ if (display(a) !== display(b))
67
+ out.push({ section: 'shifts', label: String(name), field,
68
+ before: display(a), after: display(b), kind: !a ? 'added' : !b ? 'removed' : 'changed' });
69
+ }
70
+ }
71
+ return out;
72
+ }
73
+ if (axis === 'materialDefinition') {
74
+ const a = materialDifferenceValues(before), b = materialDifferenceValues(after);
75
+ for (const key of new Set([...a.keys(), ...b.keys()])) {
76
+ if (JSON.stringify(a.get(key)) === JSON.stringify(b.get(key)))
77
+ continue;
78
+ const parts = key.split('/');
79
+ out.push({ section: parts.length > 1 ? 'properties' : 'general', label: parts.slice(1, -1).join(' / '),
80
+ field: parts[parts.length - 1], before: Array.isArray(a.get(key)) ? a.get(key).join(', ') : a.get(key),
81
+ after: Array.isArray(b.get(key)) ? b.get(key).join(', ') : b.get(key), kind: !a.has(key) ? 'added' : !b.has(key) ? 'removed' : 'changed' });
82
+ }
83
+ return out;
84
+ }
85
+ for (const field of axis === 'recipeDefinition'
86
+ ? ['description', 'materialDefinitionName', 'route']
87
+ : ['description', 'version']) {
88
+ if ((before?.[field] ?? '') !== (after?.[field] ?? ''))
89
+ out.push({
90
+ section: 'general',
91
+ label: '',
92
+ field,
93
+ before: before?.[field],
94
+ after: after?.[field],
95
+ kind: !before ? 'added' : 'changed'
96
+ });
97
+ }
98
+ for (const section of axis === 'recipeDefinition' ? ['inputs', 'outputs'] : ['criteria']) {
99
+ const oldRows = before?.[section] ?? [], newRows = after?.[section] ?? [];
100
+ const key = (row) => (axis === 'recipeDefinition' ? row.lineKey : row.id);
101
+ const keys = [...new Set([...oldRows, ...newRows].map(key))];
102
+ for (const id of keys) {
103
+ const a = oldRows.find((row) => key(row) === id), b = newRows.find((row) => key(row) === id);
104
+ const fields = section === 'criteria'
105
+ ? ['id', 'description', 'evaluatedPropertyId', 'minimum', 'maximum', 'uom', 'expression']
106
+ : section === 'inputs'
107
+ ? ['material', 'qty', 'operation']
108
+ : ['material', 'qty'];
109
+ if (a && b && oldRows.indexOf(a) !== newRows.indexOf(b))
110
+ out.push({
111
+ section,
112
+ label: b.material || b.description || b.id || '',
113
+ field: 'position',
114
+ before: oldRows.indexOf(a) + 1,
115
+ after: newRows.indexOf(b) + 1,
116
+ kind: 'changed'
117
+ });
118
+ const value = (row, field) => section === 'criteria' && ['minimum', 'maximum', 'uom'].includes(field) ? row?.limit?.[field] : row?.[field];
119
+ for (const field of fields)
120
+ if ((value(a, field) ?? '') !== (value(b, field) ?? ''))
121
+ out.push({
122
+ section,
123
+ label: b?.material ?? a?.material ?? b?.description ?? a?.description ?? b?.id ?? a?.id ?? '',
124
+ field,
125
+ before: value(a, field),
126
+ after: value(b, field),
127
+ kind: !a ? 'added' : !b ? 'removed' : 'changed'
128
+ });
129
+ }
130
+ }
131
+ return out;
132
+ }
133
+ export function localDateTime(iso) {
134
+ const date = new Date(iso);
135
+ if (!Number.isFinite(date.getTime()))
136
+ return '';
137
+ return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().slice(0, 16);
138
+ }
139
+ export function isoFromLocal(value) {
140
+ const date = new Date(value);
141
+ if (!value || !Number.isFinite(date.getTime()) || localDateTime(date.toISOString()) !== value.slice(0, 16))
142
+ throw new Error('Invalid local date/time');
143
+ return date.toISOString();
144
+ }
145
+ //# sourceMappingURL=revision-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revision-view.js","sourceRoot":"","sources":["../../../client/pages/master/revision-view.ts"],"names":[],"mappings":"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","sourcesContent":["/** View calculations only. IDs are comparison keys, never display labels. */\n/** Flatten only for comparison labels. The stored structure and sibling order remain intact. */\nexport function materialDifferenceValues(value: any): Map<string, unknown> {\n const entries = new Map<string, unknown>()\n for (const field of ['description', 'materialClassIds', 'testSpecificationIds']) entries.set(field, value?.[field] ?? (field === 'description' ? '' : []))\n const walk = (rows: any[], parent: string) => rows.forEach((row, index) => {\n const key = `${parent}/${row.id}${row.uom ? ' (' + row.uom + ')' : ''}`\n entries.set(key + '/position', index + 1)\n for (const field of ['description', 'value', 'dataType', 'uom', 'classPropertyId', 'source']) entries.set(key + '/' + field, row[field] ?? '')\n walk(row.children ?? [], key)\n })\n walk(value?.properties ?? [], 'properties')\n return entries\n}\nexport type RevisionAxis = 'recipeDefinition' | 'testSpecification' | 'materialDefinition' | 'workShift'\n/** How a revision was published, from the plan that published it; null until then. */\nexport type ReleaseKind = 'approved' | 'policy' | 'baseline'\n/**\n * The first revision the server recorded from the row already in use, when revisions began. Nobody wrote its\n * reason - the server did, for engineers - so the screen names it in the reader's words instead. Known by how it\n * was published, never by its wording or its number.\n */\nexport function isBaseline(row: { releaseKind?: ReleaseKind | null } | null | undefined): boolean {\n return row?.releaseKind === 'baseline'\n}\n/** The reason as a person reads it: what its author wrote, or `baseline` for the recorded first revision. */\nexport function reasonOf(row: { reason?: string; releaseKind?: ReleaseKind | null } | null | undefined, baseline: string): string {\n return isBaseline(row) ? baseline : row?.reason ?? ''\n}\nexport type RevisionSide = 'before' | 'after'\n\n/** A detail address is scoped to the already-authorized approval, not a general revision lookup. */\nexport function revisionDetailAddress(input: any, side: RevisionSide, href: string): string {\n const row = input?.[side]\n if (!row?.detail?.revisionId) throw new Error('Revision detail is not available')\n const url = new URL(href)\n const recipe = !!input.revision?.recipeId\n url.searchParams.set(\n 'f',\n (input.revision?.arrangementId ? 'workShifts:' : recipe ? 'recipes:' : input.revision?.materialId ? 'materialDefinitions:' : 'testSpecifications:') + (input.revision.arrangementId ?? input.revision.recipeId ?? input.revision.materialId ?? input.revision.specId)\n )\n url.searchParams.set('revision', row.detail.revisionId)\n return url.href\n}\nexport function revisionSideAt(input: any, href: string): RevisionSide | undefined {\n const url = new URL(href)\n if (!url.searchParams.has('f') && !url.searchParams.has('revision')) return undefined\n for (const side of ['before', 'after'] as const) {\n if (!input?.[side]?.detail?.revisionId) continue\n const expected = new URL(revisionDetailAddress(input, side, href))\n if (\n expected.searchParams.get('f') === url.searchParams.get('f') &&\n expected.searchParams.get('revision') === url.searchParams.get('revision')\n )\n return side\n }\n throw new Error('The requested revision is not part of this approval')\n}\nexport interface Difference {\n section: string\n label: string\n field: string\n before: unknown\n after: unknown\n kind: 'added' | 'removed' | 'changed'\n}\nexport function revisionDifferences(axis: RevisionAxis, before: any, after: any): Difference[] {\n const out: Difference[] = []\n if (axis === 'workShift') {\n for (const field of ['description', 'timezone']) {\n if ((before?.[field] ?? '') !== (after?.[field] ?? '')) out.push({ section: 'general', label: '', field, before: before?.[field], after: after?.[field], kind: before ? 'changed' : 'added' })\n }\n const oldRows = before?.shifts ?? [], newRows = after?.shifts ?? []\n for (const name of new Set([...oldRows, ...newRows].map(row => row.name))) {\n const a = oldRows.find(row => row.name === name), b = newRows.find(row => row.name === name)\n for (const field of ['description','fromDate','fromTime','toDate','toTime','daysOfWeek']) {\n const display = (r: any) => r ? field === 'daysOfWeek' ? r[field] || '0,1,2,3,4,5,6' : r[field] : undefined\n if (display(a) !== display(b)) out.push({ section: 'shifts', label: String(name), field,\n before: display(a), after: display(b), kind: !a ? 'added' : !b ? 'removed' : 'changed' })\n }\n }\n return out\n }\n if (axis === 'materialDefinition') {\n const a = materialDifferenceValues(before), b = materialDifferenceValues(after)\n for (const key of new Set([...a.keys(), ...b.keys()])) {\n if (JSON.stringify(a.get(key)) === JSON.stringify(b.get(key))) continue\n const parts = key.split('/')\n out.push({ section: parts.length > 1 ? 'properties' : 'general', label: parts.slice(1, -1).join(' / '),\n field: parts[parts.length - 1], before: Array.isArray(a.get(key)) ? (a.get(key) as string[]).join(', ') : a.get(key),\n after: Array.isArray(b.get(key)) ? (b.get(key) as string[]).join(', ') : b.get(key), kind: !a.has(key) ? 'added' : !b.has(key) ? 'removed' : 'changed' })\n }\n return out\n }\n for (const field of axis === 'recipeDefinition'\n ? ['description', 'materialDefinitionName', 'route']\n : ['description', 'version']) {\n if ((before?.[field] ?? '') !== (after?.[field] ?? ''))\n out.push({\n section: 'general',\n label: '',\n field,\n before: before?.[field],\n after: after?.[field],\n kind: !before ? 'added' : 'changed'\n })\n }\n for (const section of axis === 'recipeDefinition' ? ['inputs', 'outputs'] : ['criteria']) {\n const oldRows = before?.[section] ?? [],\n newRows = after?.[section] ?? []\n const key = (row: any) => (axis === 'recipeDefinition' ? row.lineKey : row.id)\n const keys = [...new Set([...oldRows, ...newRows].map(key))]\n for (const id of keys) {\n const a = oldRows.find((row: any) => key(row) === id),\n b = newRows.find((row: any) => key(row) === id)\n const fields =\n section === 'criteria'\n ? ['id', 'description', 'evaluatedPropertyId', 'minimum', 'maximum', 'uom', 'expression']\n : section === 'inputs'\n ? ['material', 'qty', 'operation']\n : ['material', 'qty']\n if (a && b && oldRows.indexOf(a) !== newRows.indexOf(b))\n out.push({\n section,\n label: b.material || b.description || b.id || '',\n field: 'position',\n before: oldRows.indexOf(a) + 1,\n after: newRows.indexOf(b) + 1,\n kind: 'changed'\n })\n const value = (row: any, field: string) =>\n section === 'criteria' && ['minimum', 'maximum', 'uom'].includes(field) ? row?.limit?.[field] : row?.[field]\n for (const field of fields)\n if ((value(a, field) ?? '') !== (value(b, field) ?? ''))\n out.push({\n section,\n label: b?.material ?? a?.material ?? b?.description ?? a?.description ?? b?.id ?? a?.id ?? '',\n field,\n before: value(a, field),\n after: value(b, field),\n kind: !a ? 'added' : !b ? 'removed' : 'changed'\n })\n }\n }\n return out\n}\nexport function localDateTime(iso: string): string {\n const date = new Date(iso)\n if (!Number.isFinite(date.getTime())) return ''\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().slice(0, 16)\n}\nexport function isoFromLocal(value: string): string {\n const date = new Date(value)\n if (!value || !Number.isFinite(date.getTime()) || localDateTime(date.toISOString()) !== value.slice(0, 16))\n throw new Error('Invalid local date/time')\n return date.toISOString()\n}\n"]}
@@ -0,0 +1,50 @@
1
+ import '@operato/data-grist/ox-grist.js';
2
+ import { MasterPageBase, MasterSpec } from './master-page-base.js';
3
+ import { RevisionAxis } from './revision-view.js';
4
+ /** Shared workflow, not shared domain payload. Both consumers keep their existing page/URL identities. */
5
+ export declare abstract class RevisionWorkspace extends MasterPageBase {
6
+ protected abstract axis: RevisionAxis;
7
+ static styles: import("lit").CSSResult[];
8
+ private overview;
9
+ private draft;
10
+ private newName;
11
+ private busy;
12
+ private dirty;
13
+ private failure;
14
+ private message;
15
+ private approvalRequired;
16
+ private statuses;
17
+ private serial;
18
+ private get recipe();
19
+ private get material();
20
+ private get names();
21
+ protected get spec(): MasterSpec;
22
+ protected get pathSegmentNarrowsList(): boolean;
23
+ get context(): any;
24
+ updated(changes: any): void;
25
+ protected configOf(): any;
26
+ pageInitialized(): Promise<void>;
27
+ pageUpdated(changes: any, after: any, before: any): Promise<void>;
28
+ private openResource;
29
+ private assert;
30
+ private run;
31
+ private canLeave;
32
+ private blank;
33
+ private policy;
34
+ private startNew;
35
+ private pick;
36
+ private load;
37
+ private get currentSegment();
38
+ private get current();
39
+ private get comparisonBase();
40
+ private stateOf;
41
+ private openRevision;
42
+ private change;
43
+ private line;
44
+ protected save(): Promise<void>;
45
+ private persist;
46
+ private submit;
47
+ private content;
48
+ private status;
49
+ render(): import("lit-html").TemplateResult<1>;
50
+ }