@seedtactics/insight-client 16.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/README.md +37 -0
  2. package/dist/cell-status/buffers.d.ts +36 -0
  3. package/dist/cell-status/buffers.js +127 -0
  4. package/dist/cell-status/current-status.d.ts +30 -0
  5. package/dist/cell-status/current-status.js +200 -0
  6. package/dist/cell-status/estimated-cycle-times.d.ts +41 -0
  7. package/dist/cell-status/estimated-cycle-times.js +257 -0
  8. package/dist/cell-status/inspections.d.ts +55 -0
  9. package/dist/cell-status/inspections.js +213 -0
  10. package/dist/cell-status/loading.d.ts +26 -0
  11. package/dist/cell-status/loading.js +112 -0
  12. package/dist/cell-status/material-details.d.ts +116 -0
  13. package/dist/cell-status/material-details.js +422 -0
  14. package/dist/cell-status/material-summary.d.ts +52 -0
  15. package/dist/cell-status/material-summary.js +312 -0
  16. package/dist/cell-status/names.d.ts +19 -0
  17. package/dist/cell-status/names.js +134 -0
  18. package/dist/cell-status/pallet-cycles.d.ts +24 -0
  19. package/dist/cell-status/pallet-cycles.js +78 -0
  20. package/dist/cell-status/rebookings.d.ts +30 -0
  21. package/dist/cell-status/rebookings.js +139 -0
  22. package/dist/cell-status/scheduled-jobs.d.ts +18 -0
  23. package/dist/cell-status/scheduled-jobs.js +94 -0
  24. package/dist/cell-status/sim-day-usage.d.ts +14 -0
  25. package/dist/cell-status/sim-day-usage.js +54 -0
  26. package/dist/cell-status/sim-production.d.ts +22 -0
  27. package/dist/cell-status/sim-production.js +91 -0
  28. package/dist/cell-status/sim-station-use.d.ts +25 -0
  29. package/dist/cell-status/sim-station-use.js +71 -0
  30. package/dist/cell-status/station-cycles.d.ts +34 -0
  31. package/dist/cell-status/station-cycles.js +145 -0
  32. package/dist/cell-status/tool-replacements.d.ts +44 -0
  33. package/dist/cell-status/tool-replacements.js +155 -0
  34. package/dist/cell-status/tool-usage.d.ts +25 -0
  35. package/dist/cell-status/tool-usage.js +95 -0
  36. package/dist/components/App.d.ts +15 -0
  37. package/dist/components/App.js +549 -0
  38. package/dist/components/AxisAndGrid.d.ts +51 -0
  39. package/dist/components/AxisAndGrid.js +47 -0
  40. package/dist/components/BarcodeScanning.d.ts +6 -0
  41. package/dist/components/BarcodeScanning.js +150 -0
  42. package/dist/components/ChartTooltip.d.ts +28 -0
  43. package/dist/components/ChartTooltip.js +95 -0
  44. package/dist/components/ChooseMode.d.ts +18 -0
  45. package/dist/components/ChooseMode.js +136 -0
  46. package/dist/components/ChooseOperator.d.ts +1 -0
  47. package/dist/components/ChooseOperator.js +93 -0
  48. package/dist/components/ErrorsAndLoading.d.ts +9 -0
  49. package/dist/components/ErrorsAndLoading.js +55 -0
  50. package/dist/components/LoadingIcon.d.ts +1 -0
  51. package/dist/components/LoadingIcon.js +48 -0
  52. package/dist/components/LogEntry.d.ts +16 -0
  53. package/dist/components/LogEntry.js +365 -0
  54. package/dist/components/ManualSerialEntry.d.ts +5 -0
  55. package/dist/components/ManualSerialEntry.js +91 -0
  56. package/dist/components/MonthSelect.d.ts +6 -0
  57. package/dist/components/MonthSelect.js +67 -0
  58. package/dist/components/Navigation.d.ts +23 -0
  59. package/dist/components/Navigation.js +120 -0
  60. package/dist/components/VerboseLogging.d.ts +1 -0
  61. package/dist/components/VerboseLogging.js +47 -0
  62. package/dist/components/analysis/AnalysisSelectToolbar.d.ts +1 -0
  63. package/dist/components/analysis/AnalysisSelectToolbar.js +55 -0
  64. package/dist/components/analysis/BufferChart.d.ts +1 -0
  65. package/dist/components/analysis/BufferChart.js +139 -0
  66. package/dist/components/analysis/CostPerPiece.d.ts +2 -0
  67. package/dist/components/analysis/CostPerPiece.js +175 -0
  68. package/dist/components/analysis/CycleChart.d.ts +42 -0
  69. package/dist/components/analysis/CycleChart.js +281 -0
  70. package/dist/components/analysis/DataTable.d.ts +83 -0
  71. package/dist/components/analysis/DataTable.js +215 -0
  72. package/dist/components/analysis/EfficiencyPage.d.ts +2 -0
  73. package/dist/components/analysis/EfficiencyPage.js +138 -0
  74. package/dist/components/analysis/HeatChart.d.ts +22 -0
  75. package/dist/components/analysis/HeatChart.js +161 -0
  76. package/dist/components/analysis/InspectionDataTable.d.ts +10 -0
  77. package/dist/components/analysis/InspectionDataTable.js +148 -0
  78. package/dist/components/analysis/InspectionSankey.d.ts +12 -0
  79. package/dist/components/analysis/InspectionSankey.js +140 -0
  80. package/dist/components/analysis/PalletCycleCards.d.ts +1 -0
  81. package/dist/components/analysis/PalletCycleCards.js +137 -0
  82. package/dist/components/analysis/PartCycleCards.d.ts +2 -0
  83. package/dist/components/analysis/PartCycleCards.js +331 -0
  84. package/dist/components/analysis/QualityPage.d.ts +1 -0
  85. package/dist/components/analysis/QualityPage.js +49 -0
  86. package/dist/components/analysis/ScheduleHistory.d.ts +3 -0
  87. package/dist/components/analysis/ScheduleHistory.js +108 -0
  88. package/dist/components/analysis/StationDataTable.d.ts +25 -0
  89. package/dist/components/analysis/StationDataTable.js +246 -0
  90. package/dist/components/analysis/ToolReplacements.d.ts +1 -0
  91. package/dist/components/analysis/ToolReplacements.js +370 -0
  92. package/dist/components/operations/AllMaterial.d.ts +5 -0
  93. package/dist/components/operations/AllMaterial.js +267 -0
  94. package/dist/components/operations/ChartRangeEdit.d.ts +4 -0
  95. package/dist/components/operations/ChartRangeEdit.js +148 -0
  96. package/dist/components/operations/CloseoutReport.d.ts +2 -0
  97. package/dist/components/operations/CloseoutReport.js +172 -0
  98. package/dist/components/operations/CompletedParts.d.ts +2 -0
  99. package/dist/components/operations/CompletedParts.js +286 -0
  100. package/dist/components/operations/CurrentWorkorders.d.ts +3 -0
  101. package/dist/components/operations/CurrentWorkorders.js +368 -0
  102. package/dist/components/operations/Dashboard.d.ts +2 -0
  103. package/dist/components/operations/Dashboard.js +90 -0
  104. package/dist/components/operations/OEEChart.d.ts +10 -0
  105. package/dist/components/operations/OEEChart.js +173 -0
  106. package/dist/components/operations/Outliers.d.ts +4 -0
  107. package/dist/components/operations/Outliers.js +69 -0
  108. package/dist/components/operations/ProgramHighlight.d.ts +1 -0
  109. package/dist/components/operations/ProgramHighlight.js +9 -0
  110. package/dist/components/operations/Programs.d.ts +5 -0
  111. package/dist/components/operations/Programs.js +363 -0
  112. package/dist/components/operations/Rebookings.d.ts +1 -0
  113. package/dist/components/operations/Rebookings.js +213 -0
  114. package/dist/components/operations/RecentCycleChart.d.ts +4 -0
  115. package/dist/components/operations/RecentCycleChart.js +240 -0
  116. package/dist/components/operations/RecentProduction.d.ts +2 -0
  117. package/dist/components/operations/RecentProduction.js +213 -0
  118. package/dist/components/operations/RecentSchedules.d.ts +12 -0
  119. package/dist/components/operations/RecentSchedules.js +180 -0
  120. package/dist/components/operations/RecentStationCycles.d.ts +4 -0
  121. package/dist/components/operations/RecentStationCycles.js +159 -0
  122. package/dist/components/operations/ShiftSettings.d.ts +6 -0
  123. package/dist/components/operations/ShiftSettings.js +134 -0
  124. package/dist/components/operations/SimDayUsage.d.ts +1 -0
  125. package/dist/components/operations/SimDayUsage.js +133 -0
  126. package/dist/components/operations/ToolReport.d.ts +3 -0
  127. package/dist/components/operations/ToolReport.js +233 -0
  128. package/dist/components/operations/WorkorderGantt.d.ts +1 -0
  129. package/dist/components/operations/WorkorderGantt.js +124 -0
  130. package/dist/components/quality/QualityMaterial.d.ts +2 -0
  131. package/dist/components/quality/QualityMaterial.js +169 -0
  132. package/dist/components/quality/QualityPaths.d.ts +1 -0
  133. package/dist/components/quality/QualityPaths.js +53 -0
  134. package/dist/components/quality/RecentFailedInspections.d.ts +1 -0
  135. package/dist/components/quality/RecentFailedInspections.js +123 -0
  136. package/dist/components/routes.d.ts +170 -0
  137. package/dist/components/routes.js +301 -0
  138. package/dist/components/station-monitor/BulkRawMaterial.d.ts +11 -0
  139. package/dist/components/station-monitor/BulkRawMaterial.js +251 -0
  140. package/dist/components/station-monitor/Closeout.d.ts +5 -0
  141. package/dist/components/station-monitor/Closeout.js +162 -0
  142. package/dist/components/station-monitor/CustomStationMonitorDialog.d.ts +1 -0
  143. package/dist/components/station-monitor/CustomStationMonitorDialog.js +55 -0
  144. package/dist/components/station-monitor/Inspection.d.ts +8 -0
  145. package/dist/components/station-monitor/Inspection.js +164 -0
  146. package/dist/components/station-monitor/InvalidateCycle.d.ts +33 -0
  147. package/dist/components/station-monitor/InvalidateCycle.js +262 -0
  148. package/dist/components/station-monitor/JobDetails.d.ts +7 -0
  149. package/dist/components/station-monitor/JobDetails.js +108 -0
  150. package/dist/components/station-monitor/LoadStation.d.ts +10 -0
  151. package/dist/components/station-monitor/LoadStation.js +450 -0
  152. package/dist/components/station-monitor/Material.d.ts +77 -0
  153. package/dist/components/station-monitor/Material.js +489 -0
  154. package/dist/components/station-monitor/MoveMaterialArrows.d.ts +11 -0
  155. package/dist/components/station-monitor/MoveMaterialArrows.js +118 -0
  156. package/dist/components/station-monitor/PrintedLabel.d.ts +29 -0
  157. package/dist/components/station-monitor/PrintedLabel.js +166 -0
  158. package/dist/components/station-monitor/QuarantineButton.d.ts +4 -0
  159. package/dist/components/station-monitor/QuarantineButton.js +184 -0
  160. package/dist/components/station-monitor/Queues.d.ts +23 -0
  161. package/dist/components/station-monitor/Queues.js +312 -0
  162. package/dist/components/station-monitor/QueuesAddMaterial.d.ts +30 -0
  163. package/dist/components/station-monitor/QueuesAddMaterial.js +248 -0
  164. package/dist/components/station-monitor/SelectInspType.d.ts +2 -0
  165. package/dist/components/station-monitor/SelectInspType.js +99 -0
  166. package/dist/components/station-monitor/SelectWorkorder.d.ts +4 -0
  167. package/dist/components/station-monitor/SelectWorkorder.js +100 -0
  168. package/dist/components/station-monitor/StationToolbar.d.ts +3 -0
  169. package/dist/components/station-monitor/StationToolbar.js +168 -0
  170. package/dist/components/station-monitor/SystemOverview.d.ts +46 -0
  171. package/dist/components/station-monitor/SystemOverview.js +439 -0
  172. package/dist/components/station-monitor/Whiteboard.d.ts +10 -0
  173. package/dist/components/station-monitor/Whiteboard.js +67 -0
  174. package/dist/data/all-material-bins.d.ts +45 -0
  175. package/dist/data/all-material-bins.js +224 -0
  176. package/dist/data/chart-times.d.ts +20 -0
  177. package/dist/data/chart-times.js +99 -0
  178. package/dist/data/cost-per-piece.d.ts +32 -0
  179. package/dist/data/cost-per-piece.js +183 -0
  180. package/dist/data/current-cycles.d.ts +13 -0
  181. package/dist/data/current-cycles.js +144 -0
  182. package/dist/data/inspection-sankey.d.ts +15 -0
  183. package/dist/data/inspection-sankey.js +147 -0
  184. package/dist/data/move-arrows.d.ts +48 -0
  185. package/dist/data/move-arrows.js +217 -0
  186. package/dist/data/operators.d.ts +2 -0
  187. package/dist/data/operators.js +44 -0
  188. package/dist/data/part-summary.d.ts +17 -0
  189. package/dist/data/part-summary.js +107 -0
  190. package/dist/data/path-lookup.d.ts +13 -0
  191. package/dist/data/path-lookup.js +107 -0
  192. package/dist/data/queue-material.d.ts +46 -0
  193. package/dist/data/queue-material.js +256 -0
  194. package/dist/data/results.bufferchart.d.ts +10 -0
  195. package/dist/data/results.bufferchart.js +90 -0
  196. package/dist/data/results.completed-parts.d.ts +26 -0
  197. package/dist/data/results.completed-parts.js +181 -0
  198. package/dist/data/results.cycles.d.ts +86 -0
  199. package/dist/data/results.cycles.js +454 -0
  200. package/dist/data/results.inspection.d.ts +36 -0
  201. package/dist/data/results.inspection.js +188 -0
  202. package/dist/data/results.oee.d.ts +40 -0
  203. package/dist/data/results.oee.js +330 -0
  204. package/dist/data/results.schedules.d.ts +23 -0
  205. package/dist/data/results.schedules.js +157 -0
  206. package/dist/data/tools-programs.d.ts +78 -0
  207. package/dist/data/tools-programs.js +376 -0
  208. package/dist/index.d.ts +1 -0
  209. package/dist/index.js +60 -0
  210. package/dist/network/api.d.ts +1390 -0
  211. package/dist/network/api.js +4971 -0
  212. package/dist/network/backend-mock.d.ts +11 -0
  213. package/dist/network/backend-mock.js +512 -0
  214. package/dist/network/backend.d.ts +57 -0
  215. package/dist/network/backend.js +77 -0
  216. package/dist/network/load-specific-month.d.ts +13 -0
  217. package/dist/network/load-specific-month.js +77 -0
  218. package/dist/network/server-settings.d.ts +12 -0
  219. package/dist/network/server-settings.js +92 -0
  220. package/dist/network/websocket.d.ts +4 -0
  221. package/dist/network/websocket.js +165 -0
  222. package/dist/renderer.d.ts +8 -0
  223. package/dist/renderer.js +55 -0
  224. package/dist/seedtactics-logo.d.ts +2 -0
  225. package/dist/seedtactics-logo.js +4 -0
  226. package/dist/util/chart-colors.d.ts +1 -0
  227. package/dist/util/chart-colors.js +116 -0
  228. package/dist/util/chart-helpers.d.ts +3 -0
  229. package/dist/util/chart-helpers.js +51 -0
  230. package/dist/util/parseISODuration.d.ts +4 -0
  231. package/dist/util/parseISODuration.js +40 -0
  232. package/docs/client-efficiency.md +355 -0
  233. package/docs/client-engineering.md +54 -0
  234. package/docs/client-launch.md +55 -0
  235. package/docs/client-operations.md +88 -0
  236. package/docs/client-quality.md +74 -0
  237. package/docs/client-sales.md +61 -0
  238. package/docs/client-scanners.md +41 -0
  239. package/docs/client-station-monitor.md +149 -0
  240. package/docs/client-tools-programs.md +74 -0
  241. package/docs/improve-fms.md +141 -0
  242. package/docs/makino.md +40 -0
  243. package/docs/material-quarantine.md +82 -0
  244. package/docs/material-tracking.md +236 -0
  245. package/docs/mazak.md +115 -0
  246. package/docs/niigata.md +228 -0
  247. package/docs/operator-procedures.md +106 -0
  248. package/docs/part-instructions.md +63 -0
  249. package/docs/screenshots/insight-all-material.png +0 -0
  250. package/docs/screenshots/insight-analysis-pallets.png +0 -0
  251. package/docs/screenshots/insight-analysis-part-completed.png +0 -0
  252. package/docs/screenshots/insight-analysis-sankey.png +0 -0
  253. package/docs/screenshots/insight-analysis-station-oee.png +0 -0
  254. package/docs/screenshots/insight-buffer-occupancy.png +0 -0
  255. package/docs/screenshots/insight-choose-analysis-month.png +0 -0
  256. package/docs/screenshots/insight-closeout.png +0 -0
  257. package/docs/screenshots/insight-cost-percentages.png +0 -0
  258. package/docs/screenshots/insight-dashboard.png +0 -0
  259. package/docs/screenshots/insight-event-custom-view.jpg +0 -0
  260. package/docs/screenshots/insight-event-viewer.jpg +0 -0
  261. package/docs/screenshots/insight-inspection.png +0 -0
  262. package/docs/screenshots/insight-load-station-details.png +0 -0
  263. package/docs/screenshots/insight-load-station.png +0 -0
  264. package/docs/screenshots/insight-loadcycle-graph.png +0 -0
  265. package/docs/screenshots/insight-loadstation-small.jpg +0 -0
  266. package/docs/screenshots/insight-machinecycle-graph.png +0 -0
  267. package/docs/screenshots/insight-machinecycle-table.png +0 -0
  268. package/docs/screenshots/insight-machinecycles.png +0 -0
  269. package/docs/screenshots/insight-machinehours.png +0 -0
  270. package/docs/screenshots/insight-machineoutliers.png +0 -0
  271. package/docs/screenshots/insight-monthly-schedules.png +0 -0
  272. package/docs/screenshots/insight-operations-material.png +0 -0
  273. package/docs/screenshots/insight-operations-overview.png +0 -0
  274. package/docs/screenshots/insight-operations-reports.png +0 -0
  275. package/docs/screenshots/insight-part-cost.png +0 -0
  276. package/docs/screenshots/insight-program-report.png +0 -0
  277. package/docs/screenshots/insight-quality-material-details.png +0 -0
  278. package/docs/screenshots/insight-quality-material.png +0 -0
  279. package/docs/screenshots/insight-quality-quarantine.png +0 -0
  280. package/docs/screenshots/insight-quality-sankey.png +0 -0
  281. package/docs/screenshots/insight-quality-similar-paths.png +0 -0
  282. package/docs/screenshots/insight-queue-details.png +0 -0
  283. package/docs/screenshots/insight-queues-jobs-table.png +0 -0
  284. package/docs/screenshots/insight-queues.png +0 -0
  285. package/docs/screenshots/insight-sim-day-usage.png +0 -0
  286. package/docs/screenshots/insight-station-system-overview-buttons.png +0 -0
  287. package/docs/screenshots/insight-station-system-overview.png +0 -0
  288. package/docs/screenshots/insight-system-overview.png +0 -0
  289. package/docs/screenshots/insight-tool-replacements.png +0 -0
  290. package/docs/screenshots/insight-tool-report.png +0 -0
  291. package/docs/screenshots/insight-toolbar-btns.png +0 -0
  292. package/docs/screenshots/insight-workorder-gantt.png +0 -0
  293. package/docs/screenshots/insight-workorders.png +0 -0
  294. package/docs/security.md +131 -0
  295. package/docs/server-config.md +56 -0
  296. package/docs/server-errors.md +44 -0
  297. package/package.json +90 -0
  298. package/src/index.ts +65 -0
@@ -0,0 +1,549 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /* Copyright (c) 2023, John Lenz
3
+
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ * Redistributions of source code must retain the above copyright
10
+ notice, this list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above
13
+ copyright notice, this list of conditions and the following
14
+ disclaimer in the documentation and/or other materials provided
15
+ with the distribution.
16
+
17
+ * Neither the name of John Lenz, Black Maple Software, SeedTactics,
18
+ nor the names of other contributors may be used to endorse or
19
+ promote products derived from this software without specific
20
+ prior written permission.
21
+
22
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
+ */
34
+ import { memo, useTransition } from "react";
35
+ import { useMediaQuery, useTheme } from "@mui/material";
36
+ import { Tabs } from "@mui/material";
37
+ import { Tab } from "@mui/material";
38
+ import { Button } from "@mui/material";
39
+ import { Dns as ToolIcon, Build as BuildIcon, Receipt as ProgramIcon, BugReport as BugIcon, HourglassFull as HourglassIcon, Timeline as WorkIcon, CalendarMonth as ScheduleIcon, CheckCircle as ProductionIcon, AltRoute as InspectionIcon, DonutSmall as BufferIcon, Extension as ExtensionIcon, AccountBox as LoadUnloadIcon, ShoppingBasket as PalletIcon, CallSplit, AttachMoney as CostIcon, Opacity, Replay, Summarize, } from "@mui/icons-material";
40
+ import OperationDashboard from "./operations/Dashboard.js";
41
+ import { CostPerPiecePage, CostBreakdownPage } from "./analysis/CostPerPiece.js";
42
+ import ChooseMode from "./ChooseMode.js";
43
+ import * as routes from "./routes.js";
44
+ import * as serverSettings from "../network/server-settings.js";
45
+ import { BarcodeListener } from "./BarcodeScanning.js";
46
+ import { MaterialDialog } from "./station-monitor/Material.js";
47
+ import { RecentSchedulesPage } from "./operations/RecentSchedules.js";
48
+ import { AllMaterial } from "./operations/AllMaterial.js";
49
+ import { QualityMaterialPage } from "./quality/QualityMaterial.js";
50
+ import { QualityPaths } from "./quality/QualityPaths.js";
51
+ import LoadStation from "./station-monitor/LoadStation.js";
52
+ import Inspection from "./station-monitor/Inspection.js";
53
+ import { CloseoutPage } from "./station-monitor/Closeout.js";
54
+ import Queues from "./station-monitor/Queues.js";
55
+ import { ToolReportPage } from "./operations/ToolReport.js";
56
+ import { ProgramReportPage } from "./operations/Programs.js";
57
+ import { WebsocketConnection } from "../network/websocket.js";
58
+ import { ScheduleHistory } from "./analysis/ScheduleHistory.js";
59
+ import { AnalysisQualityPage } from "./analysis/QualityPage.js";
60
+ import { SystemOverviewPage } from "./station-monitor/SystemOverview.js";
61
+ import { StationToolbar, StationToolbarOverviewButton } from "./station-monitor/StationToolbar.js";
62
+ import { RecentProductionPage } from "./operations/RecentProduction.js";
63
+ import { VerboseLoggingPage } from "./VerboseLogging.js";
64
+ import { Header, SideMenu } from "./Navigation.js";
65
+ import { OutlierCycles } from "./operations/Outliers.js";
66
+ import { StationOEEPage } from "./operations/OEEChart.js";
67
+ import { RecentStationCycleChart } from "./operations/RecentStationCycles.js";
68
+ import { AnalysisSelectToolbar } from "./analysis/AnalysisSelectToolbar.js";
69
+ import { BufferOccupancyChart } from "./analysis/BufferChart.js";
70
+ import { CompletedCountHeatmap, StationOeeHeatmap } from "./analysis/EfficiencyPage.js";
71
+ import { PartLoadStationCycleChart, PartMachineCycleChart } from "./analysis/PartCycleCards.js";
72
+ import { PalletCycleChart } from "./analysis/PalletCycleCards.js";
73
+ import { ToolReplacementPage } from "./analysis/ToolReplacements.js";
74
+ import { CurrentWorkordersPage } from "./operations/CurrentWorkorders.js";
75
+ import { useAtom, useAtomValue } from "jotai";
76
+ import { SimDayUsagePage } from "./operations/SimDayUsage.js";
77
+ import { latestSimDayUsage } from "../cell-status/sim-day-usage.js";
78
+ import { CloseoutReport } from "./operations/CloseoutReport.js";
79
+ import { RebookingsPage } from "./operations/Rebookings.js";
80
+ import { RecentCompletedPartsPage } from "./operations/CompletedParts.js";
81
+ const OperationsReportsTab = "bms-operations-reports-tab";
82
+ const operationsReports = [
83
+ { separator: "Load/Unload" },
84
+ {
85
+ name: "L/U Outliers",
86
+ route: { route: routes.RouteLocation.Operations_LoadOutliers },
87
+ icon: _jsx(BugIcon, {}),
88
+ },
89
+ {
90
+ name: "L/U Hours",
91
+ route: { route: routes.RouteLocation.Operations_LoadHours },
92
+ icon: _jsx(HourglassIcon, {}),
93
+ },
94
+ {
95
+ name: "L/U Cycles",
96
+ route: { route: routes.RouteLocation.Operations_LoadCycles },
97
+ icon: _jsx(WorkIcon, {}),
98
+ },
99
+ { separator: "Machines" },
100
+ {
101
+ name: "MC Outliers",
102
+ route: { route: routes.RouteLocation.Operations_MachineOutliers },
103
+ icon: _jsx(BugIcon, {}),
104
+ },
105
+ {
106
+ name: "MC Hours",
107
+ route: { route: routes.RouteLocation.Operations_MachineHours },
108
+ icon: _jsx(HourglassIcon, {}),
109
+ },
110
+ {
111
+ name: "MC Cycles",
112
+ route: { route: routes.RouteLocation.Operations_MachineCycles },
113
+ icon: _jsx(WorkIcon, {}),
114
+ },
115
+ {
116
+ name: "Tools",
117
+ route: { route: routes.RouteLocation.Operations_Tools },
118
+ icon: _jsx(ToolIcon, {}),
119
+ },
120
+ {
121
+ name: "Programs",
122
+ route: { route: routes.RouteLocation.Operations_Programs },
123
+ icon: _jsx(ProgramIcon, {}),
124
+ },
125
+ { separator: "Material" },
126
+ {
127
+ name: "Quality",
128
+ route: { route: routes.RouteLocation.Operations_Quality },
129
+ icon: _jsx(BuildIcon, {}),
130
+ },
131
+ {
132
+ name: "Inspections",
133
+ route: { route: routes.RouteLocation.Operations_Inspections },
134
+ icon: _jsx(InspectionIcon, {}),
135
+ },
136
+ {
137
+ name: "Close Out",
138
+ route: { route: routes.RouteLocation.Operations_CloseoutReport },
139
+ icon: _jsx(Opacity, {}),
140
+ },
141
+ { separator: "Cell" },
142
+ {
143
+ name: "Schedules",
144
+ route: { route: routes.RouteLocation.Operations_RecentSchedules },
145
+ icon: _jsx(ScheduleIcon, {}),
146
+ },
147
+ {
148
+ name: "Workorders",
149
+ route: { route: routes.RouteLocation.Operations_CurrentWorkorders },
150
+ icon: _jsx(ExtensionIcon, {}),
151
+ },
152
+ {
153
+ name: "Production",
154
+ route: { route: routes.RouteLocation.Operations_Production },
155
+ icon: _jsx(ProductionIcon, {}),
156
+ },
157
+ {
158
+ name: "Part Summary",
159
+ route: { route: routes.RouteLocation.Operations_Parts },
160
+ icon: _jsx(Summarize, {}),
161
+ },
162
+ {
163
+ name: (info) => info.supportsRebookings ?? "Rebooking",
164
+ route: { route: routes.RouteLocation.Operations_Rebookings },
165
+ icon: _jsx(Replay, {}),
166
+ hidden: (info) => info.supportsRebookings === null || info.supportsRebookings === "",
167
+ },
168
+ ];
169
+ const analysisReports = [
170
+ { separator: "Efficiency" },
171
+ { name: "Buffers", route: { route: routes.RouteLocation.Analysis_Buffers }, icon: _jsx(BufferIcon, {}) },
172
+ {
173
+ name: "Station OEE",
174
+ route: { route: routes.RouteLocation.Analysis_StationOEE },
175
+ icon: _jsx(HourglassIcon, {}),
176
+ },
177
+ {
178
+ name: "Completed Parts",
179
+ route: { route: routes.RouteLocation.Analysis_PartsCompleted },
180
+ icon: _jsx(ExtensionIcon, {}),
181
+ },
182
+ { separator: "Cycles" },
183
+ {
184
+ name: "Machine Cycles",
185
+ route: { route: routes.RouteLocation.Analysis_MachineCycles },
186
+ icon: _jsx(WorkIcon, {}),
187
+ },
188
+ {
189
+ name: "L/U Cycles",
190
+ route: { route: routes.RouteLocation.Analysis_LoadCycles },
191
+ icon: _jsx(LoadUnloadIcon, {}),
192
+ },
193
+ {
194
+ name: "Pallet Cycles",
195
+ route: { route: routes.RouteLocation.Analysis_PalletCycles },
196
+ icon: _jsx(PalletIcon, {}),
197
+ },
198
+ { separator: "Cell" },
199
+ { name: "Quality", route: { route: routes.RouteLocation.Analysis_Quality }, icon: _jsx(BuildIcon, {}) },
200
+ {
201
+ name: "Tool Replacements",
202
+ route: { route: routes.RouteLocation.Analysis_ToolReplacements },
203
+ icon: _jsx(ToolIcon, {}),
204
+ },
205
+ {
206
+ name: "Schedules",
207
+ route: { route: routes.RouteLocation.Analysis_Schedules },
208
+ icon: _jsx(ScheduleIcon, {}),
209
+ },
210
+ { separator: "Costs" },
211
+ {
212
+ name: "Percentages",
213
+ route: { route: routes.RouteLocation.Analysis_CostPercents },
214
+ icon: _jsx(CallSplit, {}),
215
+ },
216
+ {
217
+ name: "Cost/Piece",
218
+ route: { route: routes.RouteLocation.Analysis_CostPerPiece },
219
+ icon: _jsx(CostIcon, {}),
220
+ },
221
+ ];
222
+ export function NavTabs({ children }) {
223
+ const [route, setRoute] = useAtom(routes.currentRoute);
224
+ const theme = useTheme();
225
+ const full = useMediaQuery(theme.breakpoints.down("md"));
226
+ const [, startTransition] = useTransition();
227
+ const isOperationReport = operationsReports.some((r) => "separator" in r ? false : r.route.route === route.route);
228
+ return (_jsx(Tabs, { variant: full && (!Array.isArray(children) || children.length < 5) ? "fullWidth" : "scrollable", value: isOperationReport ? OperationsReportsTab : route.route, onChange: (e, v) => startTransition(() => {
229
+ if (v === OperationsReportsTab) {
230
+ setRoute({ route: routes.RouteLocation.Operations_MachineCycles });
231
+ }
232
+ else {
233
+ setRoute({ route: v });
234
+ }
235
+ }), textColor: "inherit", scrollButtons: true, allowScrollButtonsMobile: true, indicatorColor: "secondary", children: children }));
236
+ }
237
+ function OperationsTabs() {
238
+ return (_jsxs(NavTabs, { children: [_jsx(Tab, { label: "Operations", value: routes.RouteLocation.Operations_Dashboard }), _jsx(Tab, { label: "Cell", value: routes.RouteLocation.Operations_SystemOverview }), _jsx(Tab, { label: "Material", value: routes.RouteLocation.Operations_AllMaterial }), _jsx(Tab, { label: "Reports", value: OperationsReportsTab })] }));
239
+ }
240
+ function QualityTabs() {
241
+ return (_jsxs(NavTabs, { children: [_jsx(Tab, { label: "Material", value: routes.RouteLocation.Quality_Dashboard }), _jsx(Tab, { label: "Paths", value: routes.RouteLocation.Quality_Paths }), _jsx(Tab, { label: "Quarantine Material", value: routes.RouteLocation.Quality_Quarantine })] }));
242
+ }
243
+ function ToolsTabs() {
244
+ return (_jsxs(NavTabs, { children: [_jsx(Tab, { label: "Tools", value: routes.RouteLocation.Tools_Dashboard }), _jsx(Tab, { label: "Programs", value: routes.RouteLocation.Tools_Programs })] }));
245
+ }
246
+ function EngineeringTabs() {
247
+ return (_jsxs(NavTabs, { children: [_jsx(Tab, { label: "Cycles", value: routes.RouteLocation.Engineering_Cycles }), _jsx(Tab, { label: "Hours", value: routes.RouteLocation.Engineering_Hours }), _jsx(Tab, { label: "Outliers", value: routes.RouteLocation.Engineering_Outliers })] }));
248
+ }
249
+ function SalesTabs() {
250
+ const usage = useAtomValue(latestSimDayUsage);
251
+ if (usage === null)
252
+ return null;
253
+ return (_jsxs(NavTabs, { children: [_jsx(Tab, { label: "Workorders", value: routes.RouteLocation.Sales_Dashboard }), _jsx(Tab, { label: "Projections", value: routes.RouteLocation.Sales_ProjectedUsage })] }));
254
+ }
255
+ const App = memo(function App(props) {
256
+ routes.useWatchHistory();
257
+ const fmsInfo = useAtomValue(serverSettings.fmsInformation);
258
+ const [route, setRoute] = useAtom(routes.currentRoute);
259
+ const showLogout = fmsInfo.user !== null && fmsInfo.user !== undefined;
260
+ let page;
261
+ let nav1 = undefined;
262
+ let nav2 = undefined;
263
+ let menuNavItems = undefined;
264
+ let showAlarms = true;
265
+ let showSearch = true;
266
+ let showOperator = false;
267
+ let addBasicMaterialDialog = true;
268
+ if (serverSettings.requireLogin(fmsInfo) && !fmsInfo.user) {
269
+ page = (_jsxs("div", { style: { textAlign: "center", marginTop: "4em" }, children: [_jsx("h3", { children: "Please Login" }), _jsx(Button, { variant: "contained", color: "primary", onClick: () => serverSettings.login(fmsInfo), children: "Login" })] }));
270
+ showAlarms = false;
271
+ showSearch = false;
272
+ }
273
+ else {
274
+ switch (route.route) {
275
+ case routes.RouteLocation.Station_LoadMonitor:
276
+ page = _jsx(LoadStation, { loadNum: route.loadNum, queues: route.queues, completed: route.completed });
277
+ nav1 = StationToolbar;
278
+ nav2 = StationToolbarOverviewButton;
279
+ showOperator = true;
280
+ addBasicMaterialDialog = false;
281
+ break;
282
+ case routes.RouteLocation.Station_InspectionMonitor:
283
+ page = _jsx(Inspection, { focusInspectionType: null });
284
+ nav1 = StationToolbar;
285
+ nav2 = StationToolbarOverviewButton;
286
+ showOperator = true;
287
+ addBasicMaterialDialog = false;
288
+ break;
289
+ case routes.RouteLocation.Station_InspectionMonitorWithType:
290
+ page = _jsx(Inspection, { focusInspectionType: route.inspType });
291
+ nav1 = StationToolbar;
292
+ nav2 = StationToolbarOverviewButton;
293
+ showOperator = true;
294
+ addBasicMaterialDialog = false;
295
+ break;
296
+ case routes.RouteLocation.Station_Closeout:
297
+ page = _jsx(CloseoutPage, {});
298
+ nav1 = StationToolbar;
299
+ nav2 = StationToolbarOverviewButton;
300
+ showOperator = true;
301
+ addBasicMaterialDialog = false;
302
+ break;
303
+ case routes.RouteLocation.Station_Queues:
304
+ page = _jsx(Queues, { queues: route.queues });
305
+ nav1 = StationToolbar;
306
+ nav2 = StationToolbarOverviewButton;
307
+ showOperator = true;
308
+ addBasicMaterialDialog = false;
309
+ break;
310
+ case routes.RouteLocation.Station_Overview:
311
+ page = _jsx(SystemOverviewPage, {});
312
+ addBasicMaterialDialog = false;
313
+ break;
314
+ case routes.RouteLocation.Analysis_Quality:
315
+ page = _jsx(AnalysisQualityPage, {});
316
+ nav1 = AnalysisSelectToolbar;
317
+ menuNavItems = analysisReports;
318
+ showAlarms = false;
319
+ break;
320
+ case routes.RouteLocation.Analysis_ToolReplacements:
321
+ page = _jsx(ToolReplacementPage, {});
322
+ nav1 = AnalysisSelectToolbar;
323
+ menuNavItems = analysisReports;
324
+ showAlarms = false;
325
+ break;
326
+ case routes.RouteLocation.Analysis_Schedules:
327
+ page = _jsx(ScheduleHistory, {});
328
+ nav1 = AnalysisSelectToolbar;
329
+ menuNavItems = analysisReports;
330
+ showAlarms = false;
331
+ break;
332
+ case routes.RouteLocation.Analysis_Buffers:
333
+ page = _jsx(BufferOccupancyChart, {});
334
+ nav1 = AnalysisSelectToolbar;
335
+ menuNavItems = analysisReports;
336
+ showAlarms = false;
337
+ break;
338
+ case routes.RouteLocation.Analysis_StationOEE:
339
+ page = _jsx(StationOeeHeatmap, {});
340
+ nav1 = AnalysisSelectToolbar;
341
+ menuNavItems = analysisReports;
342
+ showAlarms = false;
343
+ break;
344
+ case routes.RouteLocation.Analysis_PartsCompleted:
345
+ page = _jsx(CompletedCountHeatmap, {});
346
+ nav1 = AnalysisSelectToolbar;
347
+ menuNavItems = analysisReports;
348
+ showAlarms = false;
349
+ break;
350
+ case routes.RouteLocation.Analysis_MachineCycles:
351
+ page = _jsx(PartMachineCycleChart, {});
352
+ nav1 = AnalysisSelectToolbar;
353
+ menuNavItems = analysisReports;
354
+ showAlarms = false;
355
+ break;
356
+ case routes.RouteLocation.Analysis_LoadCycles:
357
+ page = _jsx(PartLoadStationCycleChart, {});
358
+ nav1 = AnalysisSelectToolbar;
359
+ menuNavItems = analysisReports;
360
+ showAlarms = false;
361
+ break;
362
+ case routes.RouteLocation.Analysis_PalletCycles:
363
+ page = _jsx(PalletCycleChart, {});
364
+ nav1 = AnalysisSelectToolbar;
365
+ menuNavItems = analysisReports;
366
+ showAlarms = false;
367
+ break;
368
+ case routes.RouteLocation.Analysis_CostPercents:
369
+ page = _jsx(CostBreakdownPage, {});
370
+ nav1 = AnalysisSelectToolbar;
371
+ menuNavItems = analysisReports;
372
+ showAlarms = false;
373
+ break;
374
+ case routes.RouteLocation.Analysis_CostPerPiece:
375
+ page = _jsx(CostPerPiecePage, {});
376
+ nav1 = AnalysisSelectToolbar;
377
+ menuNavItems = analysisReports;
378
+ showAlarms = false;
379
+ break;
380
+ case routes.RouteLocation.Operations_Dashboard:
381
+ page = _jsx(OperationDashboard, {});
382
+ nav1 = OperationsTabs;
383
+ break;
384
+ case routes.RouteLocation.Operations_SystemOverview:
385
+ page = _jsx(SystemOverviewPage, { ignoreOperator: true });
386
+ nav1 = OperationsTabs;
387
+ addBasicMaterialDialog = false;
388
+ break;
389
+ case routes.RouteLocation.Operations_AllMaterial:
390
+ page = _jsx(AllMaterial, { displaySystemBins: true });
391
+ nav1 = OperationsTabs;
392
+ addBasicMaterialDialog = false;
393
+ break;
394
+ case routes.RouteLocation.Operations_LoadOutliers:
395
+ page = _jsx(OutlierCycles, { outlierTy: "labor" });
396
+ nav1 = OperationsTabs;
397
+ menuNavItems = operationsReports;
398
+ break;
399
+ case routes.RouteLocation.Operations_LoadHours:
400
+ page = _jsx(StationOEEPage, { ty: "labor" });
401
+ nav1 = OperationsTabs;
402
+ menuNavItems = operationsReports;
403
+ break;
404
+ case routes.RouteLocation.Operations_LoadCycles:
405
+ page = _jsx(RecentStationCycleChart, { ty: "labor" });
406
+ nav1 = OperationsTabs;
407
+ menuNavItems = operationsReports;
408
+ break;
409
+ case routes.RouteLocation.Operations_MachineOutliers:
410
+ page = _jsx(OutlierCycles, { outlierTy: "machine" });
411
+ nav1 = OperationsTabs;
412
+ menuNavItems = operationsReports;
413
+ break;
414
+ case routes.RouteLocation.Operations_MachineHours:
415
+ page = _jsx(StationOEEPage, { ty: "machine" });
416
+ nav1 = OperationsTabs;
417
+ menuNavItems = operationsReports;
418
+ break;
419
+ case routes.RouteLocation.Operations_MachineCycles:
420
+ page = _jsx(RecentStationCycleChart, { ty: "machine" });
421
+ nav1 = OperationsTabs;
422
+ menuNavItems = operationsReports;
423
+ break;
424
+ case routes.RouteLocation.Operations_RecentSchedules:
425
+ page = _jsx(RecentSchedulesPage, {});
426
+ nav1 = OperationsTabs;
427
+ menuNavItems = operationsReports;
428
+ break;
429
+ case routes.RouteLocation.Operations_CurrentWorkorders:
430
+ page = _jsx(CurrentWorkordersPage, {});
431
+ nav1 = OperationsTabs;
432
+ menuNavItems = operationsReports;
433
+ addBasicMaterialDialog = false;
434
+ break;
435
+ case routes.RouteLocation.Operations_Production:
436
+ page = _jsx(RecentProductionPage, {});
437
+ nav1 = OperationsTabs;
438
+ menuNavItems = operationsReports;
439
+ break;
440
+ case routes.RouteLocation.Operations_Quality:
441
+ page = _jsx(QualityMaterialPage, {});
442
+ nav1 = OperationsTabs;
443
+ menuNavItems = operationsReports;
444
+ addBasicMaterialDialog = false;
445
+ break;
446
+ case routes.RouteLocation.Operations_Inspections:
447
+ page = _jsx(QualityPaths, {});
448
+ nav1 = OperationsTabs;
449
+ menuNavItems = operationsReports;
450
+ break;
451
+ case routes.RouteLocation.Operations_CloseoutReport:
452
+ page = _jsx(CloseoutReport, {});
453
+ nav1 = OperationsTabs;
454
+ menuNavItems = operationsReports;
455
+ addBasicMaterialDialog = false;
456
+ break;
457
+ case routes.RouteLocation.Operations_Tools:
458
+ page = _jsx(ToolReportPage, {});
459
+ nav1 = OperationsTabs;
460
+ menuNavItems = operationsReports;
461
+ break;
462
+ case routes.RouteLocation.Operations_Programs:
463
+ page = _jsx(ProgramReportPage, {});
464
+ nav1 = OperationsTabs;
465
+ menuNavItems = operationsReports;
466
+ break;
467
+ case routes.RouteLocation.Operations_Rebookings:
468
+ page = _jsx(RebookingsPage, {});
469
+ nav1 = OperationsTabs;
470
+ menuNavItems = operationsReports;
471
+ break;
472
+ case routes.RouteLocation.Operations_Parts:
473
+ page = _jsx(RecentCompletedPartsPage, {});
474
+ nav1 = OperationsTabs;
475
+ menuNavItems = operationsReports;
476
+ addBasicMaterialDialog = false;
477
+ break;
478
+ case routes.RouteLocation.Engineering_Cycles:
479
+ page = _jsx(RecentStationCycleChart, { ty: "machine" });
480
+ showAlarms = false;
481
+ nav1 = EngineeringTabs;
482
+ break;
483
+ case routes.RouteLocation.Engineering_Hours:
484
+ page = _jsx(StationOEEPage, { ty: "machine" });
485
+ showAlarms = false;
486
+ nav1 = EngineeringTabs;
487
+ break;
488
+ case routes.RouteLocation.Engineering_Outliers:
489
+ page = _jsx(OutlierCycles, { outlierTy: "machine" });
490
+ showAlarms = false;
491
+ nav1 = EngineeringTabs;
492
+ break;
493
+ case routes.RouteLocation.Quality_Dashboard:
494
+ page = _jsx(QualityMaterialPage, {});
495
+ nav1 = QualityTabs;
496
+ showAlarms = false;
497
+ addBasicMaterialDialog = false;
498
+ break;
499
+ case routes.RouteLocation.Quality_Paths:
500
+ page = _jsx(QualityPaths, {});
501
+ nav1 = QualityTabs;
502
+ showAlarms = false;
503
+ break;
504
+ case routes.RouteLocation.Quality_Quarantine:
505
+ page = _jsx(AllMaterial, { displaySystemBins: false });
506
+ nav1 = QualityTabs;
507
+ showAlarms = false;
508
+ addBasicMaterialDialog = false;
509
+ break;
510
+ case routes.RouteLocation.Tools_Dashboard:
511
+ page = _jsx(ToolReportPage, {});
512
+ nav1 = ToolsTabs;
513
+ break;
514
+ case routes.RouteLocation.Tools_Programs:
515
+ page = _jsx(ProgramReportPage, {});
516
+ nav1 = ToolsTabs;
517
+ break;
518
+ case routes.RouteLocation.Sales_Dashboard:
519
+ page = _jsx(CurrentWorkordersPage, { disableSearch: true });
520
+ nav1 = SalesTabs;
521
+ showAlarms = false;
522
+ break;
523
+ case routes.RouteLocation.Sales_ProjectedUsage:
524
+ page = _jsx(SimDayUsagePage, {});
525
+ nav1 = SalesTabs;
526
+ showAlarms = false;
527
+ break;
528
+ case routes.RouteLocation.VerboseLogging:
529
+ page = _jsx(VerboseLoggingPage, {});
530
+ showSearch = false;
531
+ showAlarms = false;
532
+ break;
533
+ case routes.RouteLocation.Client_Custom: {
534
+ const customPage = props.renderCustomPage?.(route.custom);
535
+ nav1 = customPage?.nav;
536
+ page = customPage?.page ?? _jsx(ChooseMode, { setRoute: setRoute, modes: props.chooseModes?.(fmsInfo) });
537
+ showAlarms = false;
538
+ break;
539
+ }
540
+ case routes.RouteLocation.ChooseMode:
541
+ default:
542
+ page = _jsx(ChooseMode, { setRoute: setRoute, modes: props.chooseModes?.(fmsInfo) });
543
+ showSearch = false;
544
+ showAlarms = false;
545
+ }
546
+ }
547
+ return (_jsxs("div", { id: "App", children: [_jsx(Header, { showAlarms: showAlarms, showSearch: showSearch, showLogout: showLogout, showOperator: showOperator, Nav1: nav1, Nav2: nav2, menuNavs: menuNavItems }), _jsxs("div", { style: { display: "flex" }, children: [_jsx(SideMenu, { menuItems: menuNavItems }), _jsx("div", { style: { flexGrow: 1 }, children: page })] }), addBasicMaterialDialog ? _jsx(MaterialDialog, {}) : undefined, _jsx(WebsocketConnection, {}), _jsx(BarcodeListener, {})] }));
548
+ });
549
+ export default App;
@@ -0,0 +1,51 @@
1
+ import { ScaleLinear, ScaleTime } from "d3-scale";
2
+ export declare function GridRows({ scale, width, tickOverride, }: {
3
+ scale: ScaleLinear<unknown, number> | ScaleTime<unknown, number>;
4
+ width: number;
5
+ tickOverride?: number[];
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ export declare function GridCols({ scale, height, tickOverride, }: {
8
+ scale: ScaleLinear<unknown, number> | ScaleTime<unknown, number>;
9
+ height: number;
10
+ tickOverride?: number[];
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ export declare function ChartGrid({ xScale, yScale, width, height, rowTickOverride, colTickOverride, }: {
13
+ xScale: ScaleLinear<unknown, number> | ScaleTime<unknown, number>;
14
+ yScale: ScaleLinear<unknown, number> | ScaleTime<unknown, number>;
15
+ width: number;
16
+ height: number;
17
+ rowTickOverride?: number[];
18
+ colTickOverride?: number[];
19
+ }): import("react/jsx-runtime").JSX.Element;
20
+ type AxisScale<T> = ((val: T) => number | undefined) & {
21
+ domain: () => ReadonlyArray<T>;
22
+ range: () => ReadonlyArray<number>;
23
+ ticks?: () => ReadonlyArray<T>;
24
+ tickFormat?: () => (val: T) => string;
25
+ bandwidth?: () => number;
26
+ };
27
+ export declare function AxisBottom<T>({ top, scale, label, fontSize, tickFormat, tickOverride, }: {
28
+ top: number;
29
+ scale: AxisScale<T>;
30
+ label?: string;
31
+ fontSize?: number;
32
+ tickFormat?: (val: T) => string;
33
+ tickOverride?: ReadonlyArray<T>;
34
+ }): import("react/jsx-runtime").JSX.Element;
35
+ export declare function AxisLeft<T>({ left, scale, label, fontSize, tickFormat, tickOverride, }: {
36
+ left: number;
37
+ scale: AxisScale<T>;
38
+ label?: string;
39
+ fontSize?: number;
40
+ tickFormat?: (val: T) => string;
41
+ tickOverride?: ReadonlyArray<T>;
42
+ }): import("react/jsx-runtime").JSX.Element;
43
+ export declare function AxisTop<T>({ top, scale, label, fontSize, tickFormat, tickOverride, }: {
44
+ top: number;
45
+ scale: AxisScale<T>;
46
+ label?: string;
47
+ fontSize?: number;
48
+ tickFormat?: (val: T) => string;
49
+ tickOverride?: ReadonlyArray<T>;
50
+ }): import("react/jsx-runtime").JSX.Element;
51
+ export {};
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function GridRows({ scale, width, tickOverride, }) {
3
+ return (_jsx("g", { children: (tickOverride ?? scale.ticks()).map((tick, idx) => (_jsx("line", { x1: 0, y1: scale(tick), x2: width, y2: scale(tick), stroke: "#eaf0f6", strokeWidth: 1 }, idx))) }));
4
+ }
5
+ export function GridCols({ scale, height, tickOverride, }) {
6
+ return (_jsx("g", { children: (tickOverride ?? scale.ticks()).map((tick, idx) => (_jsx("line", { x1: scale(tick), y1: 0, x2: scale(tick), y2: height, stroke: "#eaf0f6", strokeWidth: 1 }, idx))) }));
7
+ }
8
+ export function ChartGrid({ xScale, yScale, width, height, rowTickOverride, colTickOverride, }) {
9
+ return (_jsxs("g", { children: [_jsx(GridRows, { scale: yScale, width: width, tickOverride: rowTickOverride }), _jsx(GridCols, { scale: xScale, height: height, tickOverride: colTickOverride })] }));
10
+ }
11
+ const tickLength = 8;
12
+ function axisTicks(scale, tickOverride) {
13
+ if (tickOverride) {
14
+ return tickOverride.map((v) => ({ tick: v, pos: scale(v) ?? 0 }));
15
+ }
16
+ else if ("ticks" in scale && scale.ticks) {
17
+ return scale.ticks().map((v) => ({ tick: v, pos: scale(v) ?? 0 }));
18
+ }
19
+ else if ("bandwidth" in scale && scale.bandwidth) {
20
+ const b = scale.bandwidth();
21
+ return scale.domain().map((v) => ({ tick: v, pos: (scale(v) ?? 0) + b / 2 }));
22
+ }
23
+ else {
24
+ return scale.domain().map((v) => ({ tick: v, pos: scale(v) ?? 0 }));
25
+ }
26
+ }
27
+ export function AxisBottom({ top, scale, label, fontSize, tickFormat, tickOverride, }) {
28
+ fontSize ??= 10;
29
+ tickFormat ??= "tickFormat" in scale && scale.tickFormat ? scale.tickFormat() : (d) => String(d);
30
+ const ticks = axisTicks(scale, tickOverride);
31
+ const range = scale.range();
32
+ return (_jsxs("g", { transform: `translate(0, ${top})`, children: [_jsx("line", { x1: range[0], y1: 0, x2: range[1], y2: 0, stroke: "#222", strokeWidth: 1, shapeRendering: "crispEdges" }), ticks.map((tick, idx) => (_jsxs("g", { transform: `translate(${tick.pos}, 0)`, children: [_jsx("line", { y1: tickLength, y2: 0, stroke: "#222", strokeWidth: 1, shapeRendering: "crispEdges" }), _jsx("text", { dy: tickLength + 5, textAnchor: "middle", fontSize: fontSize, fill: "#222", dominantBaseline: "hanging", children: tickFormat(tick.tick) })] }, idx))), label ? (_jsx("text", { x: (range[0] + range[1]) / 2, y: tickLength + fontSize + 20, textAnchor: "middle", fontSize: fontSize + 2, fill: "#222", children: label })) : undefined] }));
33
+ }
34
+ export function AxisLeft({ left, scale, label, fontSize, tickFormat, tickOverride, }) {
35
+ fontSize ??= 10;
36
+ tickFormat ??= "tickFormat" in scale && scale.tickFormat ? scale.tickFormat() : (d) => String(d);
37
+ const ticks = axisTicks(scale, tickOverride);
38
+ const range = scale.range();
39
+ return (_jsxs("g", { transform: `translate(${left}, 0)`, children: [_jsx("line", { x1: 0, y1: range[0], x2: 0, y2: range[1], stroke: "#222", strokeWidth: 1, shapeRendering: "crispEdges" }), ticks.map((tick, idx) => (_jsxs("g", { transform: `translate(0, ${tick.pos})`, children: [_jsx("line", { x1: -tickLength, x2: 0, y1: 0, y2: 0, stroke: "#222", strokeWidth: 1, shapeRendering: "crispEdges" }), _jsx("text", { dx: -tickLength - 5, textAnchor: "end", fontSize: fontSize, fill: "#222", dominantBaseline: "middle", children: tickFormat(tick.tick) })] }, idx))), label ? (_jsx("text", { x: -(range[0] + range[1]) / 2, y: -tickLength - fontSize - 20, textAnchor: "middle", fontSize: fontSize + 2, fill: "#222", transform: "rotate(-90)", children: label })) : undefined] }));
40
+ }
41
+ export function AxisTop({ top, scale, label, fontSize, tickFormat, tickOverride, }) {
42
+ fontSize ??= 10;
43
+ tickFormat ??= "tickFormat" in scale && scale.tickFormat ? scale.tickFormat() : (d) => String(d);
44
+ const ticks = axisTicks(scale, tickOverride);
45
+ const range = scale.range();
46
+ return (_jsxs("g", { transform: `translate(0, ${top})`, children: [_jsx("line", { x1: range[0], y1: 0, x2: range[1], y2: 0, stroke: "#222", strokeWidth: 1, shapeRendering: "crispEdges" }), ticks.map((tick, idx) => (_jsxs("g", { transform: `translate(${tick.pos}, 0)`, children: [_jsx("line", { y1: 0, y2: -tickLength, stroke: "#222", strokeWidth: 1, shapeRendering: "crispEdges" }), _jsx("text", { dy: -tickLength - 5, textAnchor: "middle", fontSize: fontSize, fill: "#222", children: tickFormat(tick.tick) })] }, idx))), label ? (_jsx("text", { x: (range[0] + range[1]) / 2, y: -tickLength - fontSize - 20, textAnchor: "middle", fontSize: fontSize + 2, fill: "#222", children: label })) : undefined] }));
47
+ }
@@ -0,0 +1,6 @@
1
+ export declare const BarcodeListener: import("react").NamedExoticComponent<object>;
2
+ export declare const QRScanButton: import("react").NamedExoticComponent<object>;
3
+ export declare const scanBarcodeToAddToQueueDialog: import("jotai").PrimitiveAtom<string | null> & {
4
+ init: string | null;
5
+ };
6
+ export declare const AddByBarcodeDialog: import("react").NamedExoticComponent<object>;