@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.
- package/dist-client/bootstrap.d.ts +19 -0
- package/dist-client/bootstrap.js +66 -0
- package/dist-client/bootstrap.js.map +1 -0
- package/dist-client/index.d.ts +17 -0
- package/dist-client/index.js +21 -0
- package/dist-client/index.js.map +1 -0
- package/dist-client/master-change-approval.d.ts +14 -0
- package/dist-client/master-change-approval.js +36 -0
- package/dist-client/master-change-approval.js.map +1 -0
- package/dist-client/master-change-policy-axes.d.ts +37 -0
- package/dist-client/master-change-policy-axes.js +29 -0
- package/dist-client/master-change-policy-axes.js.map +1 -0
- package/dist-client/master-change-policy-panel.d.ts +59 -0
- package/dist-client/master-change-policy-panel.js +454 -0
- package/dist-client/master-change-policy-panel.js.map +1 -0
- package/dist-client/master-change-providers.d.ts +4 -0
- package/dist-client/master-change-providers.js +91 -0
- package/dist-client/master-change-providers.js.map +1 -0
- package/dist-client/pages/master/applied-when-dialog.d.ts +48 -0
- package/dist-client/pages/master/applied-when-dialog.js +137 -0
- package/dist-client/pages/master/applied-when-dialog.js.map +1 -0
- package/dist-client/pages/master/assignment-fields.d.ts +27 -0
- package/dist-client/pages/master/assignment-fields.js +62 -0
- package/dist-client/pages/master/assignment-fields.js.map +1 -0
- package/dist-client/pages/master/equipment-class.d.ts +12 -0
- package/dist-client/pages/master/equipment-class.js +42 -0
- package/dist-client/pages/master/equipment-class.js.map +1 -0
- package/dist-client/pages/master/equipment.d.ts +12 -0
- package/dist-client/pages/master/equipment.js +58 -0
- package/dist-client/pages/master/equipment.js.map +1 -0
- package/dist-client/pages/master/grist-iso-duration.d.ts +20 -0
- package/dist-client/pages/master/grist-iso-duration.js +70 -0
- package/dist-client/pages/master/grist-iso-duration.js.map +1 -0
- package/dist-client/pages/master/grist-reference.d.ts +91 -0
- package/dist-client/pages/master/grist-reference.js +419 -0
- package/dist-client/pages/master/grist-reference.js.map +1 -0
- package/dist-client/pages/master/import-rows.d.ts +35 -0
- package/dist-client/pages/master/import-rows.js +66 -0
- package/dist-client/pages/master/import-rows.js.map +1 -0
- package/dist-client/pages/master/iso-duration.d.ts +34 -0
- package/dist-client/pages/master/iso-duration.js +76 -0
- package/dist-client/pages/master/iso-duration.js.map +1 -0
- package/dist-client/pages/master/master-options.d.ts +40 -0
- package/dist-client/pages/master/master-options.js +54 -0
- package/dist-client/pages/master/master-options.js.map +1 -0
- package/dist-client/pages/master/master-page-base.d.ts +369 -0
- package/dist-client/pages/master/master-page-base.js +657 -0
- package/dist-client/pages/master/master-page-base.js.map +1 -0
- package/dist-client/pages/master/material-class.d.ts +12 -0
- package/dist-client/pages/master/material-class.js +42 -0
- package/dist-client/pages/master/material-class.js.map +1 -0
- package/dist-client/pages/master/material-definition.d.ts +5 -0
- package/dist-client/pages/master/material-definition.js +14 -0
- package/dist-client/pages/master/material-definition.js.map +1 -0
- package/dist-client/pages/master/material-revision-fields.d.ts +2 -0
- package/dist-client/pages/master/material-revision-fields.js +43 -0
- package/dist-client/pages/master/material-revision-fields.js.map +1 -0
- package/dist-client/pages/master/operation-definition.d.ts +12 -0
- package/dist-client/pages/master/operation-definition.js +49 -0
- package/dist-client/pages/master/operation-definition.js.map +1 -0
- package/dist-client/pages/master/operational-location.d.ts +84 -0
- package/dist-client/pages/master/operational-location.js +432 -0
- package/dist-client/pages/master/operational-location.js.map +1 -0
- package/dist-client/pages/master/person.d.ts +12 -0
- package/dist-client/pages/master/person.js +41 -0
- package/dist-client/pages/master/person.js.map +1 -0
- package/dist-client/pages/master/personnel-class.d.ts +12 -0
- package/dist-client/pages/master/personnel-class.js +43 -0
- package/dist-client/pages/master/personnel-class.js.map +1 -0
- package/dist-client/pages/master/physical-asset-class.d.ts +12 -0
- package/dist-client/pages/master/physical-asset-class.js +40 -0
- package/dist-client/pages/master/physical-asset-class.js.map +1 -0
- package/dist-client/pages/master/physical-asset.d.ts +12 -0
- package/dist-client/pages/master/physical-asset.js +41 -0
- package/dist-client/pages/master/physical-asset.js.map +1 -0
- package/dist-client/pages/master/recipe-definition.d.ts +5 -0
- package/dist-client/pages/master/recipe-definition.js +14 -0
- package/dist-client/pages/master/recipe-definition.js.map +1 -0
- package/dist-client/pages/master/reference-targets.d.ts +42 -0
- package/dist-client/pages/master/reference-targets.js +82 -0
- package/dist-client/pages/master/reference-targets.js.map +1 -0
- package/dist-client/pages/master/revision-comparison.d.ts +49 -0
- package/dist-client/pages/master/revision-comparison.js +560 -0
- package/dist-client/pages/master/revision-comparison.js.map +1 -0
- package/dist-client/pages/master/revision-view.d.ts +34 -0
- package/dist-client/pages/master/revision-view.js +145 -0
- package/dist-client/pages/master/revision-view.js.map +1 -0
- package/dist-client/pages/master/revision-workspace.d.ts +50 -0
- package/dist-client/pages/master/revision-workspace.js +763 -0
- package/dist-client/pages/master/revision-workspace.js.map +1 -0
- package/dist-client/pages/master/route-definition.d.ts +19 -0
- package/dist-client/pages/master/route-definition.js +40 -0
- package/dist-client/pages/master/route-definition.js.map +1 -0
- package/dist-client/pages/master/stop-reason.d.ts +12 -0
- package/dist-client/pages/master/stop-reason.js +48 -0
- package/dist-client/pages/master/stop-reason.js.map +1 -0
- package/dist-client/pages/master/test-specification.d.ts +5 -0
- package/dist-client/pages/master/test-specification.js +14 -0
- package/dist-client/pages/master/test-specification.js.map +1 -0
- package/dist-client/pages/master-axes.d.ts +24 -0
- package/dist-client/pages/master-axes.js +39 -0
- package/dist-client/pages/master-axes.js.map +1 -0
- package/dist-client/route.d.ts +1 -0
- package/dist-client/route.js +81 -0
- package/dist-client/route.js.map +1 -0
- package/dist-client/tsconfig.tsbuildinfo +1 -0
- package/dist-server/index.d.ts +1 -0
- package/dist-server/index.js +19 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/service/ai-entry/master-entry-rules.d.ts +175 -0
- package/dist-server/service/ai-entry/master-entry-rules.js +302 -0
- package/dist-server/service/ai-entry/master-entry-rules.js.map +1 -0
- package/dist-server/service/ai-entry/master-entry-targets.d.ts +23 -0
- package/dist-server/service/ai-entry/master-entry-targets.js +293 -0
- package/dist-server/service/ai-entry/master-entry-targets.js.map +1 -0
- package/dist-server/service/approval-route.d.ts +37 -0
- package/dist-server/service/approval-route.js +34 -0
- package/dist-server/service/approval-route.js.map +1 -0
- package/dist-server/service/asset/asset-lifecycle.d.ts +106 -0
- package/dist-server/service/asset/asset-lifecycle.js +126 -0
- package/dist-server/service/asset/asset-lifecycle.js.map +1 -0
- package/dist-server/service/asset/asset-master-resolver.d.ts +53 -0
- package/dist-server/service/asset/asset-master-resolver.js +185 -0
- package/dist-server/service/asset/asset-master-resolver.js.map +1 -0
- package/dist-server/service/asset/asset-master.d.ts +21 -0
- package/dist-server/service/asset/asset-master.js +25 -0
- package/dist-server/service/asset/asset-master.js.map +1 -0
- package/dist-server/service/asset/asset-query.d.ts +16 -0
- package/dist-server/service/asset/asset-query.js +72 -0
- package/dist-server/service/asset/asset-query.js.map +1 -0
- package/dist-server/service/asset/index.d.ts +6 -0
- package/dist-server/service/asset/index.js +10 -0
- package/dist-server/service/asset/index.js.map +1 -0
- package/dist-server/service/asset/physical-asset-class.d.ts +34 -0
- package/dist-server/service/asset/physical-asset-class.js +104 -0
- package/dist-server/service/asset/physical-asset-class.js.map +1 -0
- package/dist-server/service/asset/physical-asset.d.ts +66 -0
- package/dist-server/service/asset/physical-asset.js +123 -0
- package/dist-server/service/asset/physical-asset.js.map +1 -0
- package/dist-server/service/assignment/applied-when.d.ts +24 -0
- package/dist-server/service/assignment/applied-when.js +16 -0
- package/dist-server/service/assignment/applied-when.js.map +1 -0
- package/dist-server/service/assignment/assignment-history.d.ts +92 -0
- package/dist-server/service/assignment/assignment-history.js +289 -0
- package/dist-server/service/assignment/assignment-history.js.map +1 -0
- package/dist-server/service/assignment/assignment-write.d.ts +42 -0
- package/dist-server/service/assignment/assignment-write.js +101 -0
- package/dist-server/service/assignment/assignment-write.js.map +1 -0
- package/dist-server/service/assignment/master-value-claim.d.ts +135 -0
- package/dist-server/service/assignment/master-value-claim.js +174 -0
- package/dist-server/service/assignment/master-value-claim.js.map +1 -0
- package/dist-server/service/equipment/equipment-class.d.ts +34 -0
- package/dist-server/service/equipment/equipment-class.js +104 -0
- package/dist-server/service/equipment/equipment-class.js.map +1 -0
- package/dist-server/service/equipment/equipment-master-resolver.d.ts +77 -0
- package/dist-server/service/equipment/equipment-master-resolver.js +266 -0
- package/dist-server/service/equipment/equipment-master-resolver.js.map +1 -0
- package/dist-server/service/equipment/equipment-master.d.ts +30 -0
- package/dist-server/service/equipment/equipment-master.js +53 -0
- package/dist-server/service/equipment/equipment-master.js.map +1 -0
- package/dist-server/service/equipment/equipment-query.d.ts +16 -0
- package/dist-server/service/equipment/equipment-query.js +72 -0
- package/dist-server/service/equipment/equipment-query.js.map +1 -0
- package/dist-server/service/equipment/equipment.d.ts +71 -0
- package/dist-server/service/equipment/equipment.js +138 -0
- package/dist-server/service/equipment/equipment.js.map +1 -0
- package/dist-server/service/equipment/index.d.ts +8 -0
- package/dist-server/service/equipment/index.js +12 -0
- package/dist-server/service/equipment/index.js.map +1 -0
- package/dist-server/service/equipment/state-period-rules.d.ts +95 -0
- package/dist-server/service/equipment/state-period-rules.js +122 -0
- package/dist-server/service/equipment/state-period-rules.js.map +1 -0
- package/dist-server/service/equipment/stop-reason-query.d.ts +11 -0
- package/dist-server/service/equipment/stop-reason-query.js +39 -0
- package/dist-server/service/equipment/stop-reason-query.js.map +1 -0
- package/dist-server/service/equipment/stop-reason.d.ts +58 -0
- package/dist-server/service/equipment/stop-reason.js +114 -0
- package/dist-server/service/equipment/stop-reason.js.map +1 -0
- package/dist-server/service/index.d.ts +82 -0
- package/dist-server/service/index.js +145 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/location/index.d.ts +5 -0
- package/dist-server/service/location/index.js +9 -0
- package/dist-server/service/location/index.js.map +1 -0
- package/dist-server/service/location/location-master-resolver.d.ts +60 -0
- package/dist-server/service/location/location-master-resolver.js +313 -0
- package/dist-server/service/location/location-master-resolver.js.map +1 -0
- package/dist-server/service/location/location-master.d.ts +26 -0
- package/dist-server/service/location/location-master.js +28 -0
- package/dist-server/service/location/location-master.js.map +1 -0
- package/dist-server/service/location/location-query.d.ts +15 -0
- package/dist-server/service/location/location-query.js +56 -0
- package/dist-server/service/location/location-query.js.map +1 -0
- package/dist-server/service/location/operational-location.d.ts +116 -0
- package/dist-server/service/location/operational-location.js +157 -0
- package/dist-server/service/location/operational-location.js.map +1 -0
- package/dist-server/service/master-axis.d.ts +40 -0
- package/dist-server/service/master-axis.js +57 -0
- package/dist-server/service/master-axis.js.map +1 -0
- package/dist-server/service/master-change-approval/approval-input.d.ts +17 -0
- package/dist-server/service/master-change-approval/approval-input.js +35 -0
- package/dist-server/service/master-change-approval/approval-input.js.map +1 -0
- package/dist-server/service/master-change-approval/builtin-axes.d.ts +4 -0
- package/dist-server/service/master-change-approval/builtin-axes.js +96 -0
- package/dist-server/service/master-change-approval/builtin-axes.js.map +1 -0
- package/dist-server/service/master-change-approval/index.d.ts +14 -0
- package/dist-server/service/master-change-approval/index.js +37 -0
- package/dist-server/service/master-change-approval/index.js.map +1 -0
- package/dist-server/service/master-change-approval/master-change-axis.d.ts +54 -0
- package/dist-server/service/master-change-approval/master-change-axis.js +17 -0
- package/dist-server/service/master-change-approval/master-change-axis.js.map +1 -0
- package/dist-server/service/master-change-approval/master-change-flow.d.ts +65 -0
- package/dist-server/service/master-change-approval/master-change-flow.js +125 -0
- package/dist-server/service/master-change-approval/master-change-flow.js.map +1 -0
- package/dist-server/service/master-change-approval/master-change-resolver.d.ts +18 -0
- package/dist-server/service/master-change-approval/master-change-resolver.js +58 -0
- package/dist-server/service/master-change-approval/master-change-resolver.js.map +1 -0
- package/dist-server/service/master-change-policy.d.ts +122 -0
- package/dist-server/service/master-change-policy.js +304 -0
- package/dist-server/service/master-change-policy.js.map +1 -0
- package/dist-server/service/master-conformance-resolver.d.ts +34 -0
- package/dist-server/service/master-conformance-resolver.js +153 -0
- package/dist-server/service/master-conformance-resolver.js.map +1 -0
- package/dist-server/service/master-conformance.d.ts +80 -0
- package/dist-server/service/master-conformance.js +266 -0
- package/dist-server/service/master-conformance.js.map +1 -0
- package/dist-server/service/master-crud.d.ts +55 -0
- package/dist-server/service/master-crud.js +93 -0
- package/dist-server/service/master-crud.js.map +1 -0
- package/dist-server/service/master-list.d.ts +12 -0
- package/dist-server/service/master-list.js +30 -0
- package/dist-server/service/master-list.js.map +1 -0
- package/dist-server/service/master-page-query.d.ts +33 -0
- package/dist-server/service/master-page-query.js +55 -0
- package/dist-server/service/master-page-query.js.map +1 -0
- package/dist-server/service/master-page.d.ts +85 -0
- package/dist-server/service/master-page.js +104 -0
- package/dist-server/service/master-page.js.map +1 -0
- package/dist-server/service/material/index.d.ts +7 -0
- package/dist-server/service/material/index.js +12 -0
- package/dist-server/service/material/index.js.map +1 -0
- package/dist-server/service/material/material-axis-status.d.ts +8 -0
- package/dist-server/service/material/material-axis-status.js +19 -0
- package/dist-server/service/material/material-axis-status.js.map +1 -0
- package/dist-server/service/material/material-class.d.ts +34 -0
- package/dist-server/service/material/material-class.js +104 -0
- package/dist-server/service/material/material-class.js.map +1 -0
- package/dist-server/service/material/material-definition.d.ts +45 -0
- package/dist-server/service/material/material-definition.js +125 -0
- package/dist-server/service/material/material-definition.js.map +1 -0
- package/dist-server/service/material/material-effective-list.d.ts +39 -0
- package/dist-server/service/material/material-effective-list.js +54 -0
- package/dist-server/service/material/material-effective-list.js.map +1 -0
- package/dist-server/service/material/material-master-resolver.d.ts +106 -0
- package/dist-server/service/material/material-master-resolver.js +351 -0
- package/dist-server/service/material/material-master-resolver.js.map +1 -0
- package/dist-server/service/material/material-master.d.ts +9 -0
- package/dist-server/service/material/material-master.js +24 -0
- package/dist-server/service/material/material-master.js.map +1 -0
- package/dist-server/service/material/material-query.d.ts +16 -0
- package/dist-server/service/material/material-query.js +79 -0
- package/dist-server/service/material/material-query.js.map +1 -0
- package/dist-server/service/material/material-revision-content.d.ts +10 -0
- package/dist-server/service/material/material-revision-content.js +92 -0
- package/dist-server/service/material/material-revision-content.js.map +1 -0
- package/dist-server/service/material/material-revision-resolver.d.ts +60 -0
- package/dist-server/service/material/material-revision-resolver.js +96 -0
- package/dist-server/service/material/material-revision-resolver.js.map +1 -0
- package/dist-server/service/material/material-revision-service.d.ts +179 -0
- package/dist-server/service/material/material-revision-service.js +687 -0
- package/dist-server/service/material/material-revision-service.js.map +1 -0
- package/dist-server/service/material/material-revision.d.ts +86 -0
- package/dist-server/service/material/material-revision.js +339 -0
- package/dist-server/service/material/material-revision.js.map +1 -0
- package/dist-server/service/material/recipe-index.d.ts +23 -0
- package/dist-server/service/material/recipe-index.js +44 -0
- package/dist-server/service/material/recipe-index.js.map +1 -0
- package/dist-server/service/operation/index.d.ts +6 -0
- package/dist-server/service/operation/index.js +10 -0
- package/dist-server/service/operation/index.js.map +1 -0
- package/dist-server/service/operation/operation-definition.d.ts +52 -0
- package/dist-server/service/operation/operation-definition.js +143 -0
- package/dist-server/service/operation/operation-definition.js.map +1 -0
- package/dist-server/service/operation/operation-master-resolver.d.ts +52 -0
- package/dist-server/service/operation/operation-master-resolver.js +187 -0
- package/dist-server/service/operation/operation-master-resolver.js.map +1 -0
- package/dist-server/service/operation/operation-master.d.ts +21 -0
- package/dist-server/service/operation/operation-master.js +28 -0
- package/dist-server/service/operation/operation-master.js.map +1 -0
- package/dist-server/service/operation/operation-query.d.ts +15 -0
- package/dist-server/service/operation/operation-query.js +56 -0
- package/dist-server/service/operation/operation-query.js.map +1 -0
- package/dist-server/service/operation/operation-readiness-resolver.d.ts +39 -0
- package/dist-server/service/operation/operation-readiness-resolver.js +111 -0
- package/dist-server/service/operation/operation-readiness-resolver.js.map +1 -0
- package/dist-server/service/operation/operation-readiness.d.ts +34 -0
- package/dist-server/service/operation/operation-readiness.js +133 -0
- package/dist-server/service/operation/operation-readiness.js.map +1 -0
- package/dist-server/service/personnel/index.d.ts +6 -0
- package/dist-server/service/personnel/index.js +10 -0
- package/dist-server/service/personnel/index.js.map +1 -0
- package/dist-server/service/personnel/person.d.ts +51 -0
- package/dist-server/service/personnel/person.js +119 -0
- package/dist-server/service/personnel/person.js.map +1 -0
- package/dist-server/service/personnel/personnel-class-readiness.d.ts +22 -0
- package/dist-server/service/personnel/personnel-class-readiness.js +98 -0
- package/dist-server/service/personnel/personnel-class-readiness.js.map +1 -0
- package/dist-server/service/personnel/personnel-class.d.ts +54 -0
- package/dist-server/service/personnel/personnel-class.js +114 -0
- package/dist-server/service/personnel/personnel-class.js.map +1 -0
- package/dist-server/service/personnel/personnel-master-resolver.d.ts +53 -0
- package/dist-server/service/personnel/personnel-master-resolver.js +187 -0
- package/dist-server/service/personnel/personnel-master-resolver.js.map +1 -0
- package/dist-server/service/personnel/personnel-master.d.ts +39 -0
- package/dist-server/service/personnel/personnel-master.js +34 -0
- package/dist-server/service/personnel/personnel-master.js.map +1 -0
- package/dist-server/service/personnel/personnel-query.d.ts +29 -0
- package/dist-server/service/personnel/personnel-query.js +79 -0
- package/dist-server/service/personnel/personnel-query.js.map +1 -0
- package/dist-server/service/personnel/qualification.d.ts +104 -0
- package/dist-server/service/personnel/qualification.js +147 -0
- package/dist-server/service/personnel/qualification.js.map +1 -0
- package/dist-server/service/quality/index.d.ts +4 -0
- package/dist-server/service/quality/index.js +8 -0
- package/dist-server/service/quality/index.js.map +1 -0
- package/dist-server/service/quality/nonconformance-cause-resolver.d.ts +12 -0
- package/dist-server/service/quality/nonconformance-cause-resolver.js +60 -0
- package/dist-server/service/quality/nonconformance-cause-resolver.js.map +1 -0
- package/dist-server/service/quality/nonconformance-cause.d.ts +20 -0
- package/dist-server/service/quality/nonconformance-cause.js +90 -0
- package/dist-server/service/quality/nonconformance-cause.js.map +1 -0
- package/dist-server/service/recipe/index.d.ts +10 -0
- package/dist-server/service/recipe/index.js +16 -0
- package/dist-server/service/recipe/index.js.map +1 -0
- package/dist-server/service/recipe/recipe-definition.d.ts +75 -0
- package/dist-server/service/recipe/recipe-definition.js +143 -0
- package/dist-server/service/recipe/recipe-definition.js.map +1 -0
- package/dist-server/service/recipe/recipe-effective-list.d.ts +49 -0
- package/dist-server/service/recipe/recipe-effective-list.js +96 -0
- package/dist-server/service/recipe/recipe-effective-list.js.map +1 -0
- package/dist-server/service/recipe/recipe-master-resolver.d.ts +28 -0
- package/dist-server/service/recipe/recipe-master-resolver.js +128 -0
- package/dist-server/service/recipe/recipe-master-resolver.js.map +1 -0
- package/dist-server/service/recipe/recipe-master.d.ts +37 -0
- package/dist-server/service/recipe/recipe-master.js +47 -0
- package/dist-server/service/recipe/recipe-master.js.map +1 -0
- package/dist-server/service/recipe/recipe-query.d.ts +21 -0
- package/dist-server/service/recipe/recipe-query.js +82 -0
- package/dist-server/service/recipe/recipe-query.js.map +1 -0
- package/dist-server/service/recipe/recipe-revision-content.d.ts +32 -0
- package/dist-server/service/recipe/recipe-revision-content.js +70 -0
- package/dist-server/service/recipe/recipe-revision-content.js.map +1 -0
- package/dist-server/service/recipe/recipe-revision-line.d.ts +30 -0
- package/dist-server/service/recipe/recipe-revision-line.js +95 -0
- package/dist-server/service/recipe/recipe-revision-line.js.map +1 -0
- package/dist-server/service/recipe/recipe-revision-resolver.d.ts +65 -0
- package/dist-server/service/recipe/recipe-revision-resolver.js +96 -0
- package/dist-server/service/recipe/recipe-revision-resolver.js.map +1 -0
- package/dist-server/service/recipe/recipe-revision-service.d.ts +183 -0
- package/dist-server/service/recipe/recipe-revision-service.js +754 -0
- package/dist-server/service/recipe/recipe-revision-service.js.map +1 -0
- package/dist-server/service/recipe/recipe-revision.d.ts +102 -0
- package/dist-server/service/recipe/recipe-revision.js +373 -0
- package/dist-server/service/recipe/recipe-revision.js.map +1 -0
- package/dist-server/service/recipe/route-definition.d.ts +51 -0
- package/dist-server/service/recipe/route-definition.js +114 -0
- package/dist-server/service/recipe/route-definition.js.map +1 -0
- package/dist-server/service/resource/class-lineage.d.ts +46 -0
- package/dist-server/service/resource/class-lineage.js +80 -0
- package/dist-server/service/resource/class-lineage.js.map +1 -0
- package/dist-server/service/resource/class-members.d.ts +36 -0
- package/dist-server/service/resource/class-members.js +59 -0
- package/dist-server/service/resource/class-members.js.map +1 -0
- package/dist-server/service/resource/referrers.d.ts +54 -0
- package/dist-server/service/resource/referrers.js +99 -0
- package/dist-server/service/resource/referrers.js.map +1 -0
- package/dist-server/service/resource/resource-class.d.ts +25 -0
- package/dist-server/service/resource/resource-class.js +29 -0
- package/dist-server/service/resource/resource-class.js.map +1 -0
- package/dist-server/service/revision-baseline.d.ts +71 -0
- package/dist-server/service/revision-baseline.js +87 -0
- package/dist-server/service/revision-baseline.js.map +1 -0
- package/dist-server/service/row-lock.d.ts +22 -0
- package/dist-server/service/row-lock.js +31 -0
- package/dist-server/service/row-lock.js.map +1 -0
- package/dist-server/service/status/axis-stamp.d.ts +16 -0
- package/dist-server/service/status/axis-stamp.js +22 -0
- package/dist-server/service/status/axis-stamp.js.map +1 -0
- package/dist-server/service/status/index.d.ts +3 -0
- package/dist-server/service/status/index.js +7 -0
- package/dist-server/service/status/index.js.map +1 -0
- package/dist-server/service/status/master-status.d.ts +38 -0
- package/dist-server/service/status/master-status.js +129 -0
- package/dist-server/service/status/master-status.js.map +1 -0
- package/dist-server/service/test-spec/criteria-check.d.ts +53 -0
- package/dist-server/service/test-spec/criteria-check.js +142 -0
- package/dist-server/service/test-spec/criteria-check.js.map +1 -0
- package/dist-server/service/test-spec/criteria-rows.d.ts +89 -0
- package/dist-server/service/test-spec/criteria-rows.js +139 -0
- package/dist-server/service/test-spec/criteria-rows.js.map +1 -0
- package/dist-server/service/test-spec/index.d.ts +6 -0
- package/dist-server/service/test-spec/index.js +11 -0
- package/dist-server/service/test-spec/index.js.map +1 -0
- package/dist-server/service/test-spec/test-spec-effective-list.d.ts +34 -0
- package/dist-server/service/test-spec/test-spec-effective-list.js +42 -0
- package/dist-server/service/test-spec/test-spec-effective-list.js.map +1 -0
- package/dist-server/service/test-spec/test-spec-master-resolver.d.ts +44 -0
- package/dist-server/service/test-spec/test-spec-master-resolver.js +144 -0
- package/dist-server/service/test-spec/test-spec-master-resolver.js.map +1 -0
- package/dist-server/service/test-spec/test-spec-master.d.ts +6 -0
- package/dist-server/service/test-spec/test-spec-master.js +18 -0
- package/dist-server/service/test-spec/test-spec-master.js.map +1 -0
- package/dist-server/service/test-spec/test-spec-query.d.ts +15 -0
- package/dist-server/service/test-spec/test-spec-query.js +61 -0
- package/dist-server/service/test-spec/test-spec-query.js.map +1 -0
- package/dist-server/service/test-spec/test-spec-revision-resolver.d.ts +59 -0
- package/dist-server/service/test-spec/test-spec-revision-resolver.js +96 -0
- package/dist-server/service/test-spec/test-spec-revision-resolver.js.map +1 -0
- package/dist-server/service/test-spec/test-spec-revision-service.d.ts +178 -0
- package/dist-server/service/test-spec/test-spec-revision-service.js +685 -0
- package/dist-server/service/test-spec/test-spec-revision-service.js.map +1 -0
- package/dist-server/service/test-spec/test-spec-revision.d.ts +86 -0
- package/dist-server/service/test-spec/test-spec-revision.js +334 -0
- package/dist-server/service/test-spec/test-spec-revision.js.map +1 -0
- package/dist-server/service/test-spec/test-specification.d.ts +47 -0
- package/dist-server/service/test-spec/test-specification.js +119 -0
- package/dist-server/service/test-spec/test-specification.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -0
- 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":"AAAA,6EAA6E;AAC7E,gGAAgG;AAChG,MAAM,UAAU,wBAAwB,CAAC,KAAU;IACjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAA;IAC1C,KAAK,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1J,MAAM,IAAI,GAAG,CAAC,IAAW,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACxE,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QACvE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QACzC,KAAK,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9I,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,EAAE,YAAY,CAAC,CAAA;IAC3C,OAAO,OAAO,CAAA;AAChB,CAAC;AAID;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,GAA4D;IACrF,OAAO,GAAG,EAAE,WAAW,KAAK,UAAU,CAAA;AACxC,CAAC;AACD,6GAA6G;AAC7G,MAAM,UAAU,QAAQ,CAAC,GAA6E,EAAE,QAAgB;IACtH,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAA;AACvD,CAAC;AAGD,oGAAoG;AACpG,MAAM,UAAU,qBAAqB,CAAC,KAAU,EAAE,IAAkB,EAAE,IAAY;IAChF,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAA;IACzB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACjF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;IACzB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAA;IACzC,GAAG,CAAC,YAAY,CAAC,GAAG,CAClB,GAAG,EACH,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CACtQ,CAAA;IACD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,OAAO,GAAG,CAAC,IAAI,CAAA;AACjB,CAAC;AACD,MAAM,UAAU,cAAc,CAAC,KAAU,EAAE,IAAY;IACrD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;IACzB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAA;IACrF,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAU,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU;YAAE,SAAQ;QAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAClE,IACE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YAC5D,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;YAE1E,OAAO,IAAI,CAAA;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;AACxE,CAAC;AASD,MAAM,UAAU,mBAAmB,CAAC,IAAkB,EAAE,MAAW,EAAE,KAAU;IAC7E,MAAM,GAAG,GAAiB,EAAE,CAAA;IAC5B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAChM,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,MAAM,IAAI,EAAE,CAAA;QACnE,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1E,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YAC5F,KAAK,MAAM,KAAK,IAAI,CAAC,aAAa,EAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,YAAY,CAAC,EAAE,CAAC;gBACzF,MAAM,OAAO,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;gBAC3G,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK;wBACrF,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;YAC7F,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAA;QAC/E,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAAE,SAAQ;YACvE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBACpG,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;gBACpH,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;QAC7J,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,KAAK,kBAAkB;QAC7C,CAAC,CAAC,CAAC,aAAa,EAAE,wBAAwB,EAAE,OAAO,CAAC;QACpD,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC;gBACP,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,EAAE;gBACT,KAAK;gBACL,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACvB,KAAK,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC;gBACrB,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aACpC,CAAC,CAAA;IACN,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QACzF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EACrC,OAAO,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QAClC,MAAM,GAAG,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC9E,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC5D,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EACnD,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;YACjD,MAAM,MAAM,GACV,OAAO,KAAK,UAAU;gBACpB,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC;gBACzF,CAAC,CAAC,OAAO,KAAK,QAAQ;oBACpB,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC;oBAClC,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;YAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACrD,GAAG,CAAC,IAAI,CAAC;oBACP,OAAO;oBACP,KAAK,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;oBAChD,KAAK,EAAE,UAAU;oBACjB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC9B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC7B,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAA;YACJ,MAAM,KAAK,GAAG,CAAC,GAAQ,EAAE,KAAa,EAAE,EAAE,CACxC,OAAO,KAAK,UAAU,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;YAC9G,KAAK,MAAM,KAAK,IAAI,MAAM;gBACxB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;oBACrD,GAAG,CAAC,IAAI,CAAC;wBACP,OAAO;wBACP,KAAK,EAAE,CAAC,EAAE,QAAQ,IAAI,CAAC,EAAE,QAAQ,IAAI,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE;wBAC7F,KAAK;wBACL,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;wBACvB,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;wBACtB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;qBAChD,CAAC,CAAA;QACR,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,EAAE,CAAA;IAC/C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAC/F,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACxG,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;AAC3B,CAAC","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
|
+
}
|