@fleetbase/fleetops-engine 0.6.18 → 0.6.19

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 (1443) hide show
  1. package/addon/components/activity/event-selector.hbs +59 -0
  2. package/addon/components/activity/event-selector.js +82 -0
  3. package/addon/components/activity/form.hbs +62 -0
  4. package/addon/components/activity/form.js +78 -0
  5. package/addon/components/activity/logic-builder.hbs +150 -0
  6. package/addon/components/activity/logic-builder.js +280 -0
  7. package/addon/components/admin/avatar-management.hbs +7 -7
  8. package/addon/components/admin/avatar-management.js +35 -59
  9. package/addon/components/admin/navigator-app.hbs +3 -3
  10. package/addon/components/asset/form.js +3 -0
  11. package/addon/components/avatar-picker.hbs +34 -12
  12. package/addon/components/avatar-picker.js +55 -25
  13. package/addon/components/cell/driver-name.hbs +1 -1
  14. package/addon/components/contact/details.hbs +42 -0
  15. package/addon/components/contact/details.js +3 -0
  16. package/addon/components/contact/form.hbs +89 -0
  17. package/addon/components/contact/form.js +57 -0
  18. package/addon/components/contact/panel-header.hbs +67 -0
  19. package/addon/components/contact/panel-header.js +3 -0
  20. package/addon/components/custom-entity/form.hbs +61 -0
  21. package/addon/components/custom-entity/form.js +90 -0
  22. package/addon/components/customer/admin-settings.hbs +1 -1
  23. package/addon/components/customer/create-order-form.hbs +57 -75
  24. package/addon/components/customer/create-order-form.js +32 -103
  25. package/addon/components/customer/details.hbs +52 -0
  26. package/addon/components/customer/details.js +3 -0
  27. package/addon/components/customer/form.hbs +144 -0
  28. package/addon/components/customer/form.js +109 -0
  29. package/addon/components/customer/leaflet-map.js +3 -0
  30. package/addon/components/customer/order-details.js +3 -0
  31. package/addon/components/customer/order-form.hbs +476 -0
  32. package/addon/components/customer/order-form.js +140 -0
  33. package/addon/components/customer/orders.hbs +2 -2
  34. package/addon/components/customer/orders.js +12 -1
  35. package/addon/components/device/details.hbs +105 -0
  36. package/addon/components/device/details.js +3 -0
  37. package/addon/components/device/form.hbs +194 -0
  38. package/addon/components/device/form.js +13 -0
  39. package/addon/components/display-place.hbs +4 -4
  40. package/addon/components/driver/details.hbs +56 -0
  41. package/addon/components/driver/details.js +3 -0
  42. package/addon/components/driver/form.hbs +171 -0
  43. package/addon/components/driver/form.js +84 -0
  44. package/addon/components/driver/panel-header.hbs +40 -0
  45. package/addon/components/driver/panel-header.js +3 -0
  46. package/addon/components/driver-onboard-settings.hbs +14 -14
  47. package/addon/components/entity/card.hbs +28 -0
  48. package/addon/components/entity/card.js +6 -0
  49. package/addon/components/entity/details.js +3 -0
  50. package/addon/components/entity/form.hbs +86 -0
  51. package/addon/components/entity/form.js +32 -0
  52. package/addon/components/entity-field-editing-settings.hbs +8 -8
  53. package/addon/components/equipment/details.hbs +95 -0
  54. package/addon/components/equipment/details.js +3 -0
  55. package/addon/components/equipment/form.hbs +127 -0
  56. package/addon/components/equipment/form.js +27 -0
  57. package/addon/components/fleet/details.hbs +32 -0
  58. package/addon/components/fleet/details.js +3 -0
  59. package/addon/components/fleet/driver-listing.hbs +81 -0
  60. package/addon/components/fleet/driver-listing.js +77 -0
  61. package/addon/components/fleet/form.hbs +108 -0
  62. package/addon/components/fleet/form.js +20 -0
  63. package/addon/components/fleet/vehicle-listing.hbs +86 -0
  64. package/addon/components/fleet/vehicle-listing.js +76 -0
  65. package/addon/components/fleet-driver-listing.hbs +5 -5
  66. package/addon/components/fleet-panel/details.hbs +13 -13
  67. package/addon/components/fleet-panel/driver-listing.hbs +5 -5
  68. package/addon/components/fleet-panel/vehicle-listing.hbs +5 -5
  69. package/addon/components/fleet-panel/vehicle-listing.js +11 -74
  70. package/addon/components/fleet-vehicle-listing.hbs +5 -5
  71. package/addon/components/fuel-report/details.hbs +48 -0
  72. package/addon/components/fuel-report/details.js +3 -0
  73. package/addon/components/fuel-report/form.hbs +110 -0
  74. package/addon/components/fuel-report/form.js +14 -0
  75. package/addon/components/global-search.hbs +6 -6
  76. package/addon/components/global-search.js +30 -32
  77. package/addon/components/integrated-order-details.hbs +22 -22
  78. package/addon/components/integrated-vendor/details.hbs +34 -0
  79. package/addon/components/integrated-vendor/form.hbs +80 -0
  80. package/addon/components/integrated-vendor/form.js +11 -0
  81. package/addon/components/issue/details.hbs +68 -0
  82. package/addon/components/issue/form.hbs +183 -0
  83. package/addon/components/issue/form.js +3 -0
  84. package/addon/components/layout/fleet-ops-sidebar/driver-listing.hbs +3 -1
  85. package/addon/components/layout/fleet-ops-sidebar/driver-listing.js +96 -100
  86. package/addon/components/layout/fleet-ops-sidebar/fleet-listing.hbs +2 -0
  87. package/addon/components/layout/fleet-ops-sidebar/fleet-listing.js +73 -80
  88. package/addon/components/layout/fleet-ops-sidebar.hbs +6 -1
  89. package/addon/components/layout/fleet-ops-sidebar.js +150 -49
  90. package/addon/components/leaflet-draw-control.js +1 -0
  91. package/addon/components/maintenance/details.hbs +123 -0
  92. package/addon/components/maintenance/details.js +3 -0
  93. package/addon/components/maintenance/form.hbs +174 -0
  94. package/addon/components/maintenance/form.js +18 -0
  95. package/addon/components/map/container.hbs +3 -0
  96. package/addon/components/map/container.js +10 -0
  97. package/addon/components/map/drawer/driver-listing.hbs +11 -0
  98. package/addon/components/map/drawer/driver-listing.js +149 -0
  99. package/addon/components/map/drawer/event-listing.hbs +1 -0
  100. package/addon/components/map/drawer/event-listing.js +3 -0
  101. package/addon/components/map/drawer/place-listing.hbs +11 -0
  102. package/addon/components/map/drawer/place-listing.js +116 -0
  103. package/addon/components/map/drawer/vehicle-listing.hbs +11 -0
  104. package/addon/components/map/drawer/vehicle-listing.js +125 -0
  105. package/addon/components/map/drawer.hbs +5 -0
  106. package/addon/components/map/drawer.js +23 -0
  107. package/addon/components/map/leaflet-live-map.hbs +177 -0
  108. package/addon/components/map/leaflet-live-map.js +437 -0
  109. package/addon/components/map/leaflet-tracking-layer.hbs +1 -0
  110. package/addon/components/map/leaflet-tracking-layer.js +3 -0
  111. package/addon/components/map/order-list-overlay/driver-panel-title.hbs +11 -0
  112. package/addon/components/map/order-list-overlay/driver-panel-title.js +3 -0
  113. package/addon/components/map/order-list-overlay/order.hbs +106 -0
  114. package/addon/components/map/order-list-overlay/order.js +35 -0
  115. package/addon/components/map/order-list-overlay.hbs +176 -0
  116. package/addon/components/map/order-list-overlay.js +8 -0
  117. package/addon/components/map/search.hbs +1 -0
  118. package/addon/components/map/search.js +3 -0
  119. package/addon/components/map/toolbar/visibility-control-panel.hbs +130 -0
  120. package/addon/components/map/toolbar/visibility-control-panel.js +78 -0
  121. package/addon/components/map/toolbar/zones-panel.hbs +55 -0
  122. package/addon/components/map/toolbar/zones-panel.js +24 -0
  123. package/addon/components/map/toolbar.hbs +115 -0
  124. package/addon/components/map/toolbar.js +42 -0
  125. package/addon/components/map.hbs +11 -0
  126. package/addon/components/map.js +3 -0
  127. package/addon/components/modals/assign-driver.hbs +2 -2
  128. package/addon/components/modals/bulk-assign-driver.hbs +1 -1
  129. package/addon/components/modals/clone-config-form.hbs +2 -2
  130. package/addon/components/modals/contact-details.hbs +12 -12
  131. package/addon/components/modals/contact-form.hbs +11 -11
  132. package/addon/components/modals/driver-assign-order.hbs +2 -2
  133. package/addon/components/modals/driver-assign-vehicle.hbs +2 -2
  134. package/addon/components/modals/driver-assign-vendor.hbs +2 -2
  135. package/addon/components/modals/driver-details.hbs +21 -21
  136. package/addon/components/modals/driver-form.hbs +18 -18
  137. package/addon/components/modals/edit-meta-form.hbs +2 -2
  138. package/addon/components/modals/entity-form.hbs +21 -21
  139. package/addon/components/modals/entity-meta-field-prompt.hbs +1 -1
  140. package/addon/components/modals/fleet-details.hbs +12 -12
  141. package/addon/components/modals/fleet-form.hbs +8 -8
  142. package/addon/components/modals/fuel-report-details.hbs +16 -16
  143. package/addon/components/modals/fuel-report-form.hbs +8 -8
  144. package/addon/components/modals/group-details.hbs +4 -4
  145. package/addon/components/modals/group-form.hbs +5 -5
  146. package/addon/components/modals/install-prompt.hbs +2 -2
  147. package/addon/components/modals/issue-details.hbs +16 -16
  148. package/addon/components/modals/issue-from.hbs +21 -21
  149. package/addon/components/modals/map-field-form.hbs +2 -2
  150. package/addon/components/modals/map-field-group-form.hbs +1 -1
  151. package/addon/components/modals/map-layer-form.hbs +10 -10
  152. package/addon/components/modals/meta-field-form.hbs +2 -2
  153. package/addon/components/modals/meta-field-group-form.hbs +1 -1
  154. package/addon/components/modals/new-custom-field-group.hbs +1 -1
  155. package/addon/components/modals/new-order-config.hbs +4 -4
  156. package/addon/components/modals/order-assign-driver.hbs +2 -2
  157. package/addon/components/modals/order-config-new-status.hbs +2 -2
  158. package/addon/components/modals/order-event.hbs +4 -4
  159. package/addon/components/modals/order-form.hbs +12 -12
  160. package/addon/components/modals/order-import.hbs +10 -10
  161. package/addon/components/modals/order-label.hbs +1 -1
  162. package/addon/components/modals/order-meta.hbs +1 -10
  163. package/addon/components/modals/order-new-activity.hbs +10 -10
  164. package/addon/components/modals/order-route-form.hbs +18 -18
  165. package/addon/components/modals/place-assign-vendor.hbs +2 -2
  166. package/addon/components/modals/place-details.hbs +24 -24
  167. package/addon/components/modals/place-form.hbs +1 -44
  168. package/addon/components/modals/point-map.hbs +6 -3
  169. package/addon/components/modals/policy-form.hbs +5 -5
  170. package/addon/components/modals/role-form.hbs +3 -3
  171. package/addon/components/modals/select-payment-method.hbs +1 -1
  172. package/addon/components/modals/service-area-form.hbs +9 -9
  173. package/addon/components/modals/set-password.hbs +5 -5
  174. package/addon/components/modals/uninstall-prompt.hbs +2 -2
  175. package/addon/components/modals/update-order-activity.hbs +88 -0
  176. package/addon/components/modals/update-order-activity.js +51 -0
  177. package/addon/components/modals/user-form.hbs +8 -9
  178. package/addon/components/modals/vehicle-details.hbs +78 -78
  179. package/addon/components/modals/vehicle-form.hbs +74 -74
  180. package/addon/components/modals/vendor-details.hbs +21 -21
  181. package/addon/components/modals/vendor-form.hbs +50 -50
  182. package/addon/components/modals/view-service-area.hbs +1 -1
  183. package/addon/components/modals/zone-form.hbs +8 -8
  184. package/addon/components/order/activity-list.hbs +34 -0
  185. package/addon/components/order/activity-list.js +3 -0
  186. package/addon/components/order/activity-timeline.hbs +33 -0
  187. package/addon/components/order/activity-timeline.js +3 -0
  188. package/addon/components/order/customer-avatar-stack.hbs +21 -0
  189. package/addon/components/order/customer-avatar-stack.js +39 -0
  190. package/addon/components/order/details/activity.hbs +13 -0
  191. package/addon/components/order/details/activity.js +58 -0
  192. package/addon/components/order/details/comments.hbs +3 -0
  193. package/addon/components/order/details/comments.js +3 -0
  194. package/addon/components/order/details/custom-fields.hbs +1 -0
  195. package/addon/components/order/details/custom-fields.js +19 -0
  196. package/addon/components/order/details/detail.hbs +169 -0
  197. package/addon/components/order/details/detail.js +42 -0
  198. package/addon/components/order/details/documents.hbs +76 -0
  199. package/addon/components/order/details/documents.js +64 -0
  200. package/addon/components/order/details/integrated-vendor-details.hbs +5 -0
  201. package/addon/components/order/details/map.hbs +1 -0
  202. package/addon/components/order/details/map.js +3 -0
  203. package/addon/components/order/details/metadata.hbs +3 -0
  204. package/addon/components/order/details/metadata.js +26 -0
  205. package/addon/components/order/details/notes.hbs +43 -0
  206. package/addon/components/order/details/notes.js +42 -0
  207. package/addon/components/order/details/payload.hbs +97 -0
  208. package/addon/components/order/details/payload.js +75 -0
  209. package/addon/components/order/details/proof.hbs +42 -0
  210. package/addon/components/order/details/proof.js +3 -0
  211. package/addon/components/order/details/purchase-rate.hbs +39 -0
  212. package/addon/components/order/details/purchase-rate.js +3 -0
  213. package/addon/components/order/details/route.hbs +26 -0
  214. package/addon/components/order/details/route.js +55 -0
  215. package/addon/components/order/details/tracking.hbs +41 -0
  216. package/addon/components/order/details/tracking.js +21 -0
  217. package/addon/components/order/details.hbs +41 -0
  218. package/addon/components/order/details.js +3 -0
  219. package/addon/components/order/form/custom-fields.hbs +11 -0
  220. package/addon/components/order/form/custom-fields.js +3 -0
  221. package/addon/components/order/form/details.hbs +249 -0
  222. package/addon/components/order/form/details.js +76 -0
  223. package/addon/components/order/form/documents.hbs +76 -0
  224. package/addon/components/order/form/documents.js +64 -0
  225. package/addon/components/order/form/metadata.hbs +5 -0
  226. package/addon/components/order/form/metadata.js +3 -0
  227. package/addon/components/order/form/notes.hbs +11 -0
  228. package/addon/components/order/form/notes.js +3 -0
  229. package/addon/components/order/form/payload.hbs +139 -0
  230. package/addon/components/order/form/payload.js +73 -0
  231. package/addon/components/order/form/route.hbs +283 -0
  232. package/addon/components/order/form/route.js +214 -0
  233. package/addon/components/order/form/service-rate.hbs +109 -0
  234. package/addon/components/order/form/service-rate.js +26 -0
  235. package/addon/components/order/form.hbs +28 -0
  236. package/addon/components/order/form.js +65 -0
  237. package/addon/components/order/header.hbs +12 -12
  238. package/addon/components/order/kanban-card.hbs +85 -0
  239. package/addon/components/order/kanban-card.js +6 -0
  240. package/addon/components/order/kanban.hbs +10 -0
  241. package/addon/components/order/kanban.js +111 -0
  242. package/addon/components/order/panel-header.hbs +36 -0
  243. package/addon/components/order/panel-header.js +3 -0
  244. package/addon/components/order/place-card.hbs +2 -2
  245. package/addon/components/order/route-editor.hbs +192 -0
  246. package/addon/components/order/route-editor.js +233 -0
  247. package/addon/components/order/schedule-card.hbs +10 -10
  248. package/addon/components/order/schedule-card.js +10 -9
  249. package/addon/components/order-config-manager/activity-flow.hbs +1 -1
  250. package/addon/components/order-config-manager/activity-flow.js +47 -46
  251. package/addon/components/order-config-manager/custom-fields.hbs +5 -5
  252. package/addon/components/order-config-manager/custom-fields.js +17 -23
  253. package/addon/components/order-config-manager/details.hbs +10 -10
  254. package/addon/components/order-config-manager/details.js +4 -4
  255. package/addon/components/order-config-manager/entities.hbs +9 -10
  256. package/addon/components/order-config-manager/entities.js +30 -32
  257. package/addon/components/order-config-manager.hbs +1 -1
  258. package/addon/components/order-config-manager.js +25 -24
  259. package/addon/components/order-list-overlay/driver-panel-title.hbs +1 -1
  260. package/addon/components/order-progress-card.hbs +6 -6
  261. package/addon/components/part/details.hbs +108 -0
  262. package/addon/components/part/details.js +3 -0
  263. package/addon/components/part/form.hbs +163 -0
  264. package/addon/components/part/form.js +44 -0
  265. package/addon/components/place/activity.hbs +1 -0
  266. package/addon/components/place/activity.js +3 -0
  267. package/addon/components/place/card.hbs +1 -0
  268. package/addon/components/place/card.js +3 -0
  269. package/addon/components/place/comments.hbs +1 -0
  270. package/addon/components/place/comments.js +3 -0
  271. package/addon/components/place/details.hbs +106 -0
  272. package/addon/components/place/details.js +3 -0
  273. package/addon/components/place/documents.hbs +1 -0
  274. package/addon/components/place/documents.js +3 -0
  275. package/addon/components/place/driver-visits.hbs +1 -0
  276. package/addon/components/place/driver-visits.js +3 -0
  277. package/addon/components/place/form.hbs +60 -0
  278. package/addon/components/place/form.js +15 -0
  279. package/addon/components/place/frequency-map.hbs +1 -0
  280. package/addon/components/place/frequency-map.js +3 -0
  281. package/addon/components/place/map.hbs +1 -0
  282. package/addon/components/place/map.js +3 -0
  283. package/addon/components/place/operations.hbs +1 -0
  284. package/addon/components/place/operations.js +3 -0
  285. package/addon/components/place/performance.hbs +1 -0
  286. package/addon/components/place/performance.js +3 -0
  287. package/addon/components/place/recent-orders.hbs +1 -0
  288. package/addon/components/place/recent-orders.js +3 -0
  289. package/addon/components/place/rules.hbs +1 -0
  290. package/addon/components/place/rules.js +3 -0
  291. package/addon/components/place/service-areas.hbs +1 -0
  292. package/addon/components/place/service-areas.js +3 -0
  293. package/addon/components/route-list.hbs +2 -2
  294. package/addon/components/sensor/details.hbs +108 -0
  295. package/addon/components/sensor/details.js +3 -0
  296. package/addon/components/sensor/form.hbs +114 -0
  297. package/addon/components/sensor/form.js +29 -0
  298. package/addon/components/service-area/details.hbs +43 -0
  299. package/addon/components/service-area/form.hbs +49 -0
  300. package/addon/components/service-area/form.js +3 -0
  301. package/addon/components/service-rate/details.hbs +284 -0
  302. package/addon/components/service-rate/details.js +3 -0
  303. package/addon/components/service-rate/form.hbs +589 -0
  304. package/addon/components/service-rate/form.js +27 -0
  305. package/addon/components/telematic/details.hbs +85 -0
  306. package/addon/components/telematic/details.js +3 -0
  307. package/addon/components/telematic/form.hbs +84 -0
  308. package/addon/components/telematic/form.js +8 -0
  309. package/addon/components/vehicle/card.hbs +29 -0
  310. package/addon/components/vehicle/card.js +6 -0
  311. package/addon/components/vehicle/details.hbs +50 -0
  312. package/addon/components/vehicle/details.js +3 -0
  313. package/addon/components/vehicle/form.hbs +129 -0
  314. package/addon/components/vehicle/form.js +54 -0
  315. package/addon/components/vehicle/panel-header.hbs +79 -0
  316. package/addon/components/vehicle/panel-header.js +3 -0
  317. package/addon/components/vendor/details.hbs +50 -0
  318. package/addon/components/vendor/details.js +3 -0
  319. package/addon/components/vendor/form.hbs +149 -0
  320. package/addon/components/vendor/form.js +52 -0
  321. package/addon/components/warranty/details.hbs +81 -0
  322. package/addon/components/warranty/details.js +3 -0
  323. package/addon/components/warranty/form.hbs +82 -0
  324. package/addon/components/warranty/form.js +3 -0
  325. package/addon/components/widget/fleet-ops-key-metrics.hbs +1 -1
  326. package/addon/components/work-order/details.hbs +93 -0
  327. package/addon/components/work-order/details.js +3 -0
  328. package/addon/components/work-order/form.hbs +113 -0
  329. package/addon/components/work-order/form.js +13 -0
  330. package/addon/components/zone/details.hbs +38 -0
  331. package/addon/components/zone/form.hbs +33 -0
  332. package/addon/components/zone/form.js +3 -0
  333. package/addon/controllers/analytics/reports/index/details.js +24 -0
  334. package/addon/controllers/analytics/reports/index/edit.js +78 -0
  335. package/addon/controllers/analytics/reports/index/new.js +51 -0
  336. package/addon/controllers/analytics/reports/index.js +103 -0
  337. package/addon/controllers/application.js +7 -30
  338. package/addon/controllers/connectivity/devices/index/details/events.js +3 -0
  339. package/addon/controllers/connectivity/devices/index/details/index.js +3 -0
  340. package/addon/controllers/connectivity/devices/index/details.js +3 -0
  341. package/addon/controllers/connectivity/devices/index/edit.js +3 -0
  342. package/addon/controllers/connectivity/devices/index/new.js +32 -0
  343. package/addon/controllers/connectivity/devices/index.js +129 -0
  344. package/addon/controllers/connectivity/events/index/details.js +3 -0
  345. package/addon/controllers/connectivity/events/index.js +91 -0
  346. package/addon/controllers/connectivity/sensors/index/details/index.js +3 -0
  347. package/addon/controllers/connectivity/sensors/index/details.js +3 -0
  348. package/addon/controllers/connectivity/sensors/index/edit.js +3 -0
  349. package/addon/controllers/connectivity/sensors/index/new.js +32 -0
  350. package/addon/controllers/connectivity/sensors/index.js +129 -0
  351. package/addon/controllers/connectivity/telematics/index/details/devices.js +3 -0
  352. package/addon/controllers/connectivity/telematics/index/details/events.js +3 -0
  353. package/addon/controllers/connectivity/telematics/index/details/index.js +3 -0
  354. package/addon/controllers/connectivity/telematics/index/details/sensors.js +3 -0
  355. package/addon/controllers/connectivity/telematics/index/details.js +3 -0
  356. package/addon/controllers/connectivity/telematics/index/edit.js +3 -0
  357. package/addon/controllers/connectivity/telematics/index/new.js +32 -0
  358. package/addon/controllers/connectivity/telematics/index.js +129 -0
  359. package/addon/controllers/connectivity/tracking/index.js +3 -0
  360. package/addon/controllers/maintenance/equipment/index/details/index.js +3 -0
  361. package/addon/controllers/maintenance/equipment/index/details.js +3 -0
  362. package/addon/controllers/maintenance/equipment/index/edit.js +3 -0
  363. package/addon/controllers/maintenance/equipment/index/new.js +3 -0
  364. package/addon/controllers/maintenance/equipment/index.js +129 -0
  365. package/addon/controllers/maintenance/parts/index/details/index.js +3 -0
  366. package/addon/controllers/maintenance/parts/index/details.js +3 -0
  367. package/addon/controllers/maintenance/parts/index/edit.js +3 -0
  368. package/addon/controllers/maintenance/parts/index/new.js +3 -0
  369. package/addon/controllers/maintenance/parts/index.js +129 -0
  370. package/addon/controllers/maintenance/work-orders/index/details/index.js +3 -0
  371. package/addon/controllers/maintenance/work-orders/index/details.js +3 -0
  372. package/addon/controllers/maintenance/work-orders/index/edit.js +3 -0
  373. package/addon/controllers/maintenance/work-orders/index/new.js +3 -0
  374. package/addon/controllers/maintenance/work-orders/index.js +129 -0
  375. package/addon/controllers/management/contacts/customers/details.js +16 -52
  376. package/addon/controllers/management/contacts/customers/edit.js +40 -76
  377. package/addon/controllers/management/contacts/customers/new.js +25 -60
  378. package/addon/controllers/management/contacts/customers.js +137 -167
  379. package/addon/controllers/management/contacts/index/details.js +16 -52
  380. package/addon/controllers/management/contacts/index/edit.js +40 -76
  381. package/addon/controllers/management/contacts/index/new.js +25 -60
  382. package/addon/controllers/management/contacts/index.js +177 -338
  383. package/addon/controllers/management/contacts.js +23 -0
  384. package/addon/controllers/management/drivers/index/details.js +16 -58
  385. package/addon/controllers/management/drivers/index/edit.js +40 -93
  386. package/addon/controllers/management/drivers/index/new.js +25 -83
  387. package/addon/controllers/management/drivers/index.js +267 -500
  388. package/addon/controllers/management/fleets/index/details.js +24 -58
  389. package/addon/controllers/management/fleets/index/edit.js +40 -93
  390. package/addon/controllers/management/fleets/index/new.js +25 -83
  391. package/addon/controllers/management/fleets/index.js +244 -416
  392. package/addon/controllers/management/fuel-reports/index/details.js +15 -59
  393. package/addon/controllers/management/fuel-reports/index/edit.js +40 -93
  394. package/addon/controllers/management/fuel-reports/index/new.js +26 -90
  395. package/addon/controllers/management/fuel-reports/index.js +188 -365
  396. package/addon/controllers/management/issues/index/details.js +16 -51
  397. package/addon/controllers/management/issues/index/edit.js +40 -93
  398. package/addon/controllers/management/issues/index/new.js +25 -89
  399. package/addon/controllers/management/issues/index.js +219 -404
  400. package/addon/controllers/management/places/index/details.js +16 -52
  401. package/addon/controllers/management/places/index/edit.js +40 -93
  402. package/addon/controllers/management/places/index/new.js +25 -83
  403. package/addon/controllers/management/places/index.js +227 -437
  404. package/addon/controllers/management/vehicles/index/details.js +16 -58
  405. package/addon/controllers/management/vehicles/index/edit.js +39 -92
  406. package/addon/controllers/management/vehicles/index/new.js +26 -82
  407. package/addon/controllers/management/vehicles/index.js +268 -465
  408. package/addon/controllers/management/vendors/index/details.js +16 -52
  409. package/addon/controllers/management/vendors/index/edit.js +39 -92
  410. package/addon/controllers/management/vendors/index/new.js +32 -82
  411. package/addon/controllers/management/vendors/index.js +234 -435
  412. package/addon/controllers/management/vendors/integrated/details.js +3 -0
  413. package/addon/controllers/management/vendors/integrated/edit.js +3 -0
  414. package/addon/controllers/management/vendors/integrated/new.js +3 -0
  415. package/addon/controllers/management/vendors/integrated.js +3 -0
  416. package/addon/controllers/operations/orders/index/details/index.js +5 -0
  417. package/addon/controllers/operations/orders/index/details.js +129 -0
  418. package/addon/controllers/operations/orders/index/new.js +69 -1520
  419. package/addon/controllers/operations/orders/index.js +329 -1141
  420. package/addon/controllers/operations/routes/index/new.js +0 -1
  421. package/addon/controllers/operations/scheduler/index.js +5 -5
  422. package/addon/controllers/operations/service-rates/index/details.js +19 -0
  423. package/addon/controllers/operations/service-rates/index/edit.js +60 -28
  424. package/addon/controllers/operations/service-rates/index/new.js +30 -354
  425. package/addon/controllers/operations/service-rates/index.js +122 -218
  426. package/addon/controllers/settings/custom-fields.js +56 -0
  427. package/addon/controllers/settings/routing.js +1 -1
  428. package/addon/engine.js +26 -30
  429. package/addon/helpers/get-fleet-ops-options.js +6 -0
  430. package/addon/helpers/is-model-leaflet-layer-hidden.js +10 -0
  431. package/addon/helpers/point-coordinates.js +1 -1
  432. package/addon/initializers/leaflet-intersects-polyfill.js +23 -0
  433. package/addon/routes/analytics/reports/index/details/index.js +3 -0
  434. package/addon/routes/analytics/reports/index/details/result.js +3 -0
  435. package/addon/routes/analytics/reports/index/details.js +33 -0
  436. package/addon/routes/analytics/reports/index/edit.js +29 -0
  437. package/addon/routes/analytics/reports/index/new.js +3 -0
  438. package/addon/routes/analytics/reports/index.js +21 -0
  439. package/addon/routes/analytics/reports.js +3 -0
  440. package/addon/routes/analytics.js +3 -0
  441. package/addon/routes/application.js +2 -2
  442. package/addon/routes/connectivity/devices/index/details/events.js +3 -0
  443. package/addon/routes/connectivity/devices/index/details/index.js +3 -0
  444. package/addon/routes/connectivity/devices/index/details.js +3 -0
  445. package/addon/routes/connectivity/devices/index/edit.js +3 -0
  446. package/addon/routes/connectivity/devices/index/new.js +3 -0
  447. package/addon/routes/connectivity/devices/index.js +21 -0
  448. package/addon/routes/connectivity/devices.js +3 -0
  449. package/addon/routes/connectivity/events/index/details.js +3 -0
  450. package/addon/routes/connectivity/events/index.js +21 -0
  451. package/addon/routes/connectivity/events.js +3 -0
  452. package/addon/routes/connectivity/sensors/index/details/index.js +3 -0
  453. package/addon/routes/connectivity/sensors/index/details.js +3 -0
  454. package/addon/routes/connectivity/sensors/index/edit.js +3 -0
  455. package/addon/routes/connectivity/sensors/index/new.js +3 -0
  456. package/addon/routes/connectivity/sensors/index.js +21 -0
  457. package/addon/routes/connectivity/sensors.js +3 -0
  458. package/addon/routes/connectivity/telematics/index/details/devices.js +3 -0
  459. package/addon/routes/connectivity/telematics/index/details/events.js +3 -0
  460. package/addon/routes/connectivity/telematics/index/details/index.js +3 -0
  461. package/addon/routes/connectivity/telematics/index/details/sensors.js +3 -0
  462. package/addon/routes/connectivity/telematics/index/details.js +3 -0
  463. package/addon/routes/connectivity/telematics/index/edit.js +3 -0
  464. package/addon/routes/connectivity/telematics/index/new.js +3 -0
  465. package/addon/routes/connectivity/telematics/index.js +21 -0
  466. package/addon/routes/connectivity/telematics.js +3 -0
  467. package/addon/routes/connectivity/tracking/index.js +3 -0
  468. package/addon/routes/connectivity/tracking.js +3 -0
  469. package/addon/routes/connectivity.js +3 -0
  470. package/addon/routes/maintenance/equipment/index/details/index.js +3 -0
  471. package/addon/routes/maintenance/equipment/index/details.js +3 -0
  472. package/addon/routes/maintenance/equipment/index/edit.js +3 -0
  473. package/addon/routes/maintenance/equipment/index/new.js +3 -0
  474. package/addon/routes/maintenance/equipment/index.js +21 -0
  475. package/addon/routes/maintenance/equipment.js +3 -0
  476. package/addon/routes/maintenance/parts/index/details/index.js +3 -0
  477. package/addon/routes/maintenance/parts/index/details.js +3 -0
  478. package/addon/routes/maintenance/parts/index/edit.js +3 -0
  479. package/addon/routes/maintenance/parts/index/new.js +3 -0
  480. package/addon/routes/maintenance/parts/index.js +21 -0
  481. package/addon/routes/maintenance/parts.js +3 -0
  482. package/addon/routes/maintenance/work-orders/index/details/index.js +3 -0
  483. package/addon/routes/maintenance/work-orders/index/details.js +3 -0
  484. package/addon/routes/maintenance/work-orders/index/edit.js +3 -0
  485. package/addon/routes/maintenance/work-orders/index/new.js +3 -0
  486. package/addon/routes/maintenance/work-orders/index.js +21 -0
  487. package/addon/routes/maintenance/work-orders.js +3 -0
  488. package/addon/routes/maintenance.js +3 -0
  489. package/addon/routes/management/contacts/customers/details/index.js +3 -0
  490. package/addon/routes/management/contacts/customers.js +2 -10
  491. package/addon/routes/management/contacts/index/details/index.js +3 -0
  492. package/addon/routes/management/contacts/index.js +1 -1
  493. package/addon/routes/management/drivers/index/details/index.js +3 -0
  494. package/addon/routes/management/drivers/index/details/orders.js +3 -0
  495. package/addon/routes/management/drivers/index/details/schedule.js +3 -0
  496. package/addon/routes/management/fleets/index/details/drivers.js +3 -0
  497. package/addon/routes/management/fleets/index/details/index.js +3 -0
  498. package/addon/routes/management/fleets/index/details/vehicles.js +3 -0
  499. package/addon/routes/management/fuel-reports/index/details/index.js +3 -0
  500. package/addon/routes/management/issues/index/details/index.js +3 -0
  501. package/addon/routes/management/places/index/details/activity.js +3 -0
  502. package/addon/routes/management/places/index/details/comments.js +3 -0
  503. package/addon/routes/management/places/index/details/documents.js +3 -0
  504. package/addon/routes/management/places/index/details/index.js +3 -0
  505. package/addon/routes/management/places/index/details/map.js +3 -0
  506. package/addon/routes/management/places/index/details/operations.js +3 -0
  507. package/addon/routes/management/places/index/details/performance.js +3 -0
  508. package/addon/routes/management/places/index/details/rules.js +3 -0
  509. package/addon/routes/management/places/index/details.js +0 -4
  510. package/addon/routes/management/places/index.js +2 -2
  511. package/addon/routes/management/vehicles/index/details/devices.js +3 -0
  512. package/addon/routes/management/vehicles/index/details/equipment.js +3 -0
  513. package/addon/routes/management/vehicles/index/details/index.js +3 -0
  514. package/addon/routes/management/vendors/index/details/index.js +3 -0
  515. package/addon/routes/management/vendors/index/details/personnel.js +3 -0
  516. package/addon/routes/management/vendors/integrated/details.js +3 -0
  517. package/addon/routes/management/vendors/integrated/edit.js +3 -0
  518. package/addon/routes/management/vendors/integrated/new.js +3 -0
  519. package/addon/routes/management/vendors/integrated.js +3 -0
  520. package/addon/routes/operations/orders/index/details/index.js +3 -0
  521. package/addon/routes/operations/orders/index/details.js +61 -0
  522. package/addon/routes/operations/orders/index/new.js +1 -7
  523. package/addon/routes/operations/orders/index.js +2 -11
  524. package/addon/routes/operations/routes/index/details.js +3 -0
  525. package/addon/routes/operations/service-rates/index/details/index.js +3 -0
  526. package/addon/routes/operations/service-rates/index/details.js +29 -0
  527. package/addon/routes/operations/service-rates/index/edit.js +13 -36
  528. package/addon/routes/settings/custom-fields.js +3 -0
  529. package/addon/routes.js +143 -28
  530. package/addon/services/contact-actions.js +115 -0
  531. package/addon/services/customer-actions.js +84 -0
  532. package/addon/services/device-actions.js +81 -0
  533. package/addon/services/device-event-actions.js +37 -0
  534. package/addon/services/driver-actions.js +147 -68
  535. package/addon/services/entity-actions.js +41 -0
  536. package/addon/services/equipment-actions.js +81 -0
  537. package/addon/services/fleet-actions.js +84 -0
  538. package/addon/services/fuel-report-actions.js +102 -0
  539. package/addon/services/geofence.js +285 -0
  540. package/addon/services/global-search.js +19 -0
  541. package/addon/services/integrated-vendor-actions.js +84 -0
  542. package/addon/services/issue-actions.js +108 -0
  543. package/addon/services/leaflet-draw-restriction.js +150 -0
  544. package/addon/services/leaflet-layer-visibility-manager.js +305 -0
  545. package/addon/services/leaflet-map-manager.js +388 -54
  546. package/addon/services/leaflet-routing-control.js +8 -1
  547. package/addon/services/maintenance-actions.js +81 -0
  548. package/addon/services/map-drawer.js +81 -0
  549. package/addon/services/order-actions.js +500 -0
  550. package/addon/services/order-config-actions.js +19 -0
  551. package/addon/services/order-creation.js +33 -27
  552. package/addon/services/order-import.js +149 -0
  553. package/addon/services/order-list-overlay.js +206 -0
  554. package/addon/services/order-socket-events.js +296 -0
  555. package/addon/services/order-validation.js +51 -0
  556. package/addon/services/part-actions.js +81 -0
  557. package/addon/services/place-actions.js +140 -0
  558. package/addon/services/report-actions.js +11 -0
  559. package/addon/services/route-optimization.js +1 -1
  560. package/addon/services/sensor-actions.js +81 -0
  561. package/addon/services/service-area-actions.js +98 -0
  562. package/addon/services/service-area-manager.js +24 -0
  563. package/addon/services/service-areas.js +6 -6
  564. package/addon/services/service-rate-actions.js +186 -0
  565. package/addon/services/telematic-actions.js +81 -0
  566. package/addon/services/vehicle-actions.js +113 -29
  567. package/addon/services/vendor-actions.js +137 -0
  568. package/addon/services/work-order-actions.js +81 -0
  569. package/addon/services/zone-actions.js +81 -0
  570. package/addon/styles/fleetops-engine.css +25 -1
  571. package/addon/templates/analytics/reports/index/details/index.hbs +1 -0
  572. package/addon/templates/analytics/reports/index/details/result.hbs +1 -0
  573. package/addon/templates/analytics/reports/index/details.hbs +15 -0
  574. package/addon/templates/analytics/reports/index/edit.hbs +13 -0
  575. package/addon/templates/analytics/reports/index/new.hbs +14 -0
  576. package/addon/templates/analytics/reports/index.hbs +15 -0
  577. package/addon/templates/application.hbs +5 -7
  578. package/addon/templates/connectivity/devices/index/details/events.hbs +2 -0
  579. package/addon/templates/connectivity/devices/index/details/index.hbs +2 -0
  580. package/addon/templates/connectivity/devices/index/details.hbs +2 -0
  581. package/addon/templates/connectivity/devices/index/edit.hbs +12 -0
  582. package/addon/templates/connectivity/devices/index/new.hbs +12 -0
  583. package/addon/templates/connectivity/devices/index.hbs +14 -0
  584. package/addon/templates/connectivity/devices.hbs +2 -0
  585. package/addon/templates/connectivity/events/index/details.hbs +2 -0
  586. package/addon/templates/connectivity/events/index.hbs +14 -0
  587. package/addon/templates/connectivity/events.hbs +2 -0
  588. package/addon/templates/connectivity/sensors/index/details/index.hbs +2 -0
  589. package/addon/templates/connectivity/sensors/index/details.hbs +2 -0
  590. package/addon/templates/connectivity/sensors/index/edit.hbs +12 -0
  591. package/addon/templates/connectivity/sensors/index/new.hbs +12 -0
  592. package/addon/templates/connectivity/sensors/index.hbs +14 -0
  593. package/addon/templates/connectivity/sensors.hbs +2 -0
  594. package/addon/templates/connectivity/telematics/index/details/devices.hbs +2 -0
  595. package/addon/templates/connectivity/telematics/index/details/events.hbs +2 -0
  596. package/addon/templates/connectivity/telematics/index/details/index.hbs +2 -0
  597. package/addon/templates/connectivity/telematics/index/details/sensors.hbs +2 -0
  598. package/addon/templates/connectivity/telematics/index/details.hbs +2 -0
  599. package/addon/templates/connectivity/telematics/index/edit.hbs +12 -0
  600. package/addon/templates/connectivity/telematics/index/new.hbs +12 -0
  601. package/addon/templates/connectivity/telematics/index.hbs +14 -0
  602. package/addon/templates/connectivity/telematics.hbs +2 -0
  603. package/addon/templates/connectivity/tracking.hbs +2 -0
  604. package/addon/templates/connectivity.hbs +2 -0
  605. package/addon/templates/maintenance/equipment/index/details/index.hbs +2 -0
  606. package/addon/templates/maintenance/equipment/index/details.hbs +2 -0
  607. package/addon/templates/maintenance/equipment/index/edit.hbs +2 -0
  608. package/addon/templates/maintenance/equipment/index/new.hbs +12 -0
  609. package/addon/templates/maintenance/equipment/index.hbs +14 -0
  610. package/addon/templates/maintenance/equipment.hbs +2 -0
  611. package/addon/templates/maintenance/parts/index/details/index.hbs +2 -0
  612. package/addon/templates/maintenance/parts/index/details.hbs +2 -0
  613. package/addon/templates/maintenance/parts/index/edit.hbs +2 -0
  614. package/addon/templates/maintenance/parts/index/new.hbs +12 -0
  615. package/addon/templates/maintenance/parts/index.hbs +14 -0
  616. package/addon/templates/maintenance/parts.hbs +2 -0
  617. package/addon/templates/maintenance/work-orders/index/details/index.hbs +1 -0
  618. package/addon/templates/maintenance/work-orders/index/details.hbs +14 -0
  619. package/addon/templates/maintenance/work-orders/index/edit.hbs +14 -0
  620. package/addon/templates/maintenance/work-orders/index/new.hbs +12 -0
  621. package/addon/templates/maintenance/work-orders/index.hbs +14 -0
  622. package/addon/templates/maintenance/work-orders.hbs +2 -0
  623. package/addon/templates/management/contacts/customers/details/index.hbs +1 -0
  624. package/addon/templates/management/contacts/customers/details.hbs +15 -1
  625. package/addon/templates/management/contacts/customers/edit.hbs +13 -7
  626. package/addon/templates/management/contacts/customers/new.hbs +14 -1
  627. package/addon/templates/management/contacts/customers.hbs +16 -59
  628. package/addon/templates/management/contacts/index/details/index.hbs +1 -0
  629. package/addon/templates/management/contacts/index/details.hbs +15 -1
  630. package/addon/templates/management/contacts/index/edit.hbs +12 -7
  631. package/addon/templates/management/contacts/index/new.hbs +13 -1
  632. package/addon/templates/management/contacts/index.hbs +15 -58
  633. package/addon/templates/management/contacts.hbs +18 -9
  634. package/addon/templates/management/drivers/index/details/index.hbs +1 -0
  635. package/addon/templates/management/drivers/index/details/orders.hbs +2 -0
  636. package/addon/templates/management/drivers/index/details/schedule.hbs +2 -0
  637. package/addon/templates/management/drivers/index/details.hbs +15 -1
  638. package/addon/templates/management/drivers/index/edit.hbs +12 -7
  639. package/addon/templates/management/drivers/index/new.hbs +13 -1
  640. package/addon/templates/management/drivers/index.hbs +13 -83
  641. package/addon/templates/management/fleets/index/details/drivers.hbs +1 -0
  642. package/addon/templates/management/fleets/index/details/index.hbs +1 -0
  643. package/addon/templates/management/fleets/index/details/vehicles.hbs +1 -0
  644. package/addon/templates/management/fleets/index/details.hbs +14 -1
  645. package/addon/templates/management/fleets/index/edit.hbs +12 -7
  646. package/addon/templates/management/fleets/index/new.hbs +13 -1
  647. package/addon/templates/management/fleets/index.hbs +15 -57
  648. package/addon/templates/management/fuel-reports/index/details/index.hbs +1 -0
  649. package/addon/templates/management/fuel-reports/index/details.hbs +14 -1
  650. package/addon/templates/management/fuel-reports/index/edit.hbs +12 -7
  651. package/addon/templates/management/fuel-reports/index/new.hbs +13 -1
  652. package/addon/templates/management/fuel-reports/index.hbs +15 -59
  653. package/addon/templates/management/issues/index/details/index.hbs +1 -0
  654. package/addon/templates/management/issues/index/details.hbs +14 -1
  655. package/addon/templates/management/issues/index/edit.hbs +12 -7
  656. package/addon/templates/management/issues/index/new.hbs +13 -1
  657. package/addon/templates/management/issues/index.hbs +15 -58
  658. package/addon/templates/management/places/index/details/activity.hbs +2 -0
  659. package/addon/templates/management/places/index/details/comments.hbs +2 -0
  660. package/addon/templates/management/places/index/details/documents.hbs +2 -0
  661. package/addon/templates/management/places/index/details/index.hbs +1 -0
  662. package/addon/templates/management/places/index/details/map.hbs +2 -0
  663. package/addon/templates/management/places/index/details/operations.hbs +2 -0
  664. package/addon/templates/management/places/index/details/performance.hbs +2 -0
  665. package/addon/templates/management/places/index/details/rules.hbs +2 -0
  666. package/addon/templates/management/places/index/details.hbs +14 -1
  667. package/addon/templates/management/places/index/edit.hbs +13 -7
  668. package/addon/templates/management/places/index/new.hbs +12 -1
  669. package/addon/templates/management/places/index.hbs +13 -57
  670. package/addon/templates/management/vehicles/index/details/devices.hbs +2 -0
  671. package/addon/templates/management/vehicles/index/details/equipment.hbs +2 -0
  672. package/addon/templates/management/vehicles/index/details/index.hbs +1 -0
  673. package/addon/templates/management/vehicles/index/details.hbs +15 -1
  674. package/addon/templates/management/vehicles/index/edit.hbs +12 -7
  675. package/addon/templates/management/vehicles/index/new.hbs +13 -1
  676. package/addon/templates/management/vehicles/index.hbs +45 -60
  677. package/addon/templates/management/vendors/index/details/index.hbs +1 -0
  678. package/addon/templates/management/vendors/index/details/personnel.hbs +2 -0
  679. package/addon/templates/management/vendors/index/details.hbs +14 -1
  680. package/addon/templates/management/vendors/index/edit.hbs +12 -7
  681. package/addon/templates/management/vendors/index/new.hbs +13 -1
  682. package/addon/templates/management/vendors/index.hbs +15 -57
  683. package/addon/templates/management/vendors/integrated/details.hbs +2 -0
  684. package/addon/templates/management/vendors/integrated/edit.hbs +2 -0
  685. package/addon/templates/management/vendors/integrated/new.hbs +2 -0
  686. package/addon/templates/management/vendors/integrated.hbs +16 -0
  687. package/addon/templates/operations/order-config.hbs +4 -4
  688. package/addon/templates/operations/orders/index/details/index.hbs +2 -0
  689. package/addon/templates/operations/orders/index/details.hbs +16 -0
  690. package/addon/templates/operations/orders/index/new.hbs +15 -976
  691. package/addon/templates/operations/orders/index.hbs +40 -153
  692. package/addon/templates/operations/routes/index/details.hbs +2 -0
  693. package/addon/templates/operations/scheduler/index.hbs +12 -13
  694. package/addon/templates/operations/service-rates/index/details/index.hbs +1 -0
  695. package/addon/templates/operations/service-rates/index/details.hbs +14 -0
  696. package/addon/templates/operations/service-rates/index/edit.hbs +12 -1
  697. package/addon/templates/operations/service-rates/index/new.hbs +12 -606
  698. package/addon/templates/operations/service-rates/index.hbs +13 -47
  699. package/addon/templates/settings/custom-fields.hbs +10 -0
  700. package/addon/templates/settings/navigator-app.hbs +1 -1
  701. package/addon/templates/settings/notifications.hbs +4 -4
  702. package/addon/templates/settings/payments/index.hbs +5 -5
  703. package/addon/templates/settings/payments/onboard.hbs +14 -7
  704. package/addon/templates/settings/routing.hbs +7 -7
  705. package/addon/utils/fleet-ops-options.js +440 -0
  706. package/addon/utils/leaflet-to-geojson.js +124 -0
  707. package/addon/utils/leaflet.js +56 -0
  708. package/addon/utils/serialize-payload.js +13 -0
  709. package/addon/utils/setup-customer-portal.js +60 -0
  710. package/addon/utils/to-multi-polygon.js +62 -0
  711. package/addon/utils/vendor-integration.js +106 -0
  712. package/app/components/activity/event-selector.js +1 -0
  713. package/app/components/activity/form.js +1 -0
  714. package/app/components/activity/logic-builder.js +1 -0
  715. package/app/components/asset/form.js +1 -0
  716. package/app/components/contact/details.js +1 -0
  717. package/app/components/contact/form.js +1 -0
  718. package/app/components/contact/panel-header.js +1 -0
  719. package/app/components/custom-entity/form.js +1 -0
  720. package/app/components/customer/details.js +1 -0
  721. package/app/components/customer/form.js +1 -0
  722. package/app/components/customer/leaflet-map.js +1 -0
  723. package/app/components/customer/order-details.js +1 -0
  724. package/app/components/customer/order-form.js +1 -0
  725. package/app/components/device/details.js +1 -0
  726. package/app/components/device/form.js +1 -0
  727. package/app/components/driver/details.js +1 -0
  728. package/app/components/driver/form.js +1 -0
  729. package/app/components/driver/panel-header.js +1 -0
  730. package/app/components/entity/card.js +1 -0
  731. package/app/components/entity/details.js +1 -0
  732. package/app/components/entity/form.js +1 -0
  733. package/app/components/equipment/details.js +1 -0
  734. package/app/components/equipment/form.js +1 -0
  735. package/app/components/fleet/details.js +1 -0
  736. package/app/components/fleet/driver-listing.js +1 -0
  737. package/app/components/fleet/form.js +1 -0
  738. package/app/components/fleet/vehicle-listing.js +1 -0
  739. package/app/components/fuel-report/details.js +1 -0
  740. package/app/components/fuel-report/form.js +1 -0
  741. package/app/components/integrated-vendor/details.js +1 -0
  742. package/app/components/integrated-vendor/form.js +1 -0
  743. package/app/components/issue/details.js +1 -0
  744. package/app/components/issue/form.js +1 -0
  745. package/app/components/maintenance/details.js +1 -0
  746. package/app/components/maintenance/form.js +1 -0
  747. package/app/components/map/container.js +1 -0
  748. package/app/components/map/drawer/driver-listing.js +1 -0
  749. package/app/components/map/drawer/event-listing.js +1 -0
  750. package/app/components/map/drawer/place-listing.js +1 -0
  751. package/app/components/map/drawer/vehicle-listing.js +1 -0
  752. package/app/components/map/drawer.js +1 -0
  753. package/app/components/map/leaflet-live-map.js +1 -0
  754. package/app/components/map/leaflet-tracking-layer.js +1 -0
  755. package/app/components/map/order-list-overlay/driver-panel-title.js +1 -0
  756. package/app/components/map/order-list-overlay/order.js +1 -0
  757. package/app/components/map/order-list-overlay.js +1 -0
  758. package/app/components/map/search.js +1 -0
  759. package/app/components/map/toolbar/visibility-control-panel.js +1 -0
  760. package/app/components/map/toolbar/zones-panel.js +1 -0
  761. package/app/components/map/toolbar.js +1 -0
  762. package/app/components/map.js +1 -0
  763. package/app/components/modals/update-order-activity.js +1 -0
  764. package/app/components/order/activity-list.js +1 -0
  765. package/app/components/order/activity-timeline.js +1 -0
  766. package/app/components/order/customer-avatar-stack.js +1 -0
  767. package/app/components/order/details/activity.js +1 -0
  768. package/app/components/order/details/comments.js +1 -0
  769. package/app/components/order/details/custom-fields.js +1 -0
  770. package/app/components/order/details/detail.js +1 -0
  771. package/app/components/order/details/documents.js +1 -0
  772. package/app/components/order/details/integrated-vendor-details.js +1 -0
  773. package/app/components/order/details/map.js +1 -0
  774. package/app/components/order/details/metadata.js +1 -0
  775. package/app/components/order/details/notes.js +1 -0
  776. package/app/components/order/details/payload.js +1 -0
  777. package/app/components/order/details/proof.js +1 -0
  778. package/app/components/order/details/purchase-rate.js +1 -0
  779. package/app/components/order/details/route.js +1 -0
  780. package/app/components/order/details/tracking.js +1 -0
  781. package/app/components/order/details.js +1 -0
  782. package/app/components/order/form/custom-fields.js +1 -0
  783. package/app/components/order/form/details.js +1 -0
  784. package/app/components/order/form/documents.js +1 -0
  785. package/app/components/order/form/metadata.js +1 -0
  786. package/app/components/order/form/notes.js +1 -0
  787. package/app/components/order/form/payload.js +1 -0
  788. package/app/components/order/form/route.js +1 -0
  789. package/app/components/order/form/service-rate.js +1 -0
  790. package/app/components/order/form.js +1 -0
  791. package/app/components/order/kanban-card.js +1 -0
  792. package/app/components/order/kanban.js +1 -0
  793. package/app/components/order/panel-header.js +1 -0
  794. package/app/components/order/route-editor.js +1 -0
  795. package/app/components/part/details.js +1 -0
  796. package/app/components/part/form.js +1 -0
  797. package/app/components/place/activity.js +1 -0
  798. package/app/components/place/card.js +1 -0
  799. package/app/components/place/comments.js +1 -0
  800. package/app/components/place/details.js +1 -0
  801. package/app/components/place/documents.js +1 -0
  802. package/app/components/place/driver-visits.js +1 -0
  803. package/app/components/place/form.js +1 -0
  804. package/app/components/place/frequency-map.js +1 -0
  805. package/app/components/place/map.js +1 -0
  806. package/app/components/place/operations.js +1 -0
  807. package/app/components/place/performance.js +1 -0
  808. package/app/components/place/recent-orders.js +1 -0
  809. package/app/components/place/rules.js +1 -0
  810. package/app/components/place/service-areas.js +1 -0
  811. package/app/components/sensor/details.js +1 -0
  812. package/app/components/sensor/form.js +1 -0
  813. package/app/components/service-area/details.js +1 -0
  814. package/app/components/service-area/form.js +1 -0
  815. package/app/components/service-rate/details.js +1 -0
  816. package/app/components/service-rate/form.js +1 -0
  817. package/app/components/telematic/details.js +1 -0
  818. package/app/components/telematic/form.js +1 -0
  819. package/app/components/vehicle/card.js +1 -0
  820. package/app/components/vehicle/details.js +1 -0
  821. package/app/components/vehicle/form.js +1 -0
  822. package/app/components/vehicle/panel-header.js +1 -0
  823. package/app/components/vendor/details.js +1 -0
  824. package/app/components/vendor/form.js +1 -0
  825. package/app/components/warranty/details.js +1 -0
  826. package/app/components/warranty/form.js +1 -0
  827. package/app/components/work-order/details.js +1 -0
  828. package/app/components/work-order/form.js +1 -0
  829. package/app/components/zone/details.js +1 -0
  830. package/app/components/zone/form.js +1 -0
  831. package/app/controllers/analytics/reports/index/details.js +1 -0
  832. package/app/controllers/analytics/reports/index/edit.js +1 -0
  833. package/app/controllers/analytics/reports/index/new.js +1 -0
  834. package/app/controllers/analytics/reports/index.js +1 -0
  835. package/app/controllers/connectivity/devices/index/details/events.js +1 -0
  836. package/app/controllers/connectivity/devices/index/details/index.js +1 -0
  837. package/app/controllers/connectivity/devices/index/details.js +1 -0
  838. package/app/controllers/connectivity/devices/index/edit.js +1 -0
  839. package/app/controllers/connectivity/devices/index/new.js +1 -0
  840. package/app/controllers/connectivity/devices/index.js +1 -0
  841. package/app/controllers/connectivity/events/index/details.js +1 -0
  842. package/app/controllers/connectivity/events/index.js +1 -0
  843. package/app/controllers/connectivity/sensors/index/details/index.js +1 -0
  844. package/app/controllers/connectivity/sensors/index/details.js +1 -0
  845. package/app/controllers/connectivity/sensors/index/edit.js +1 -0
  846. package/app/controllers/connectivity/sensors/index/new.js +1 -0
  847. package/app/controllers/connectivity/sensors/index.js +1 -0
  848. package/app/controllers/connectivity/telematics/index/details/devices.js +1 -0
  849. package/app/controllers/connectivity/telematics/index/details/events.js +1 -0
  850. package/app/controllers/connectivity/telematics/index/details/index.js +1 -0
  851. package/app/controllers/connectivity/telematics/index/details/sensors.js +1 -0
  852. package/app/controllers/connectivity/telematics/index/details.js +1 -0
  853. package/app/controllers/connectivity/telematics/index/edit.js +1 -0
  854. package/app/controllers/connectivity/telematics/index/new.js +1 -0
  855. package/app/controllers/connectivity/telematics/index.js +1 -0
  856. package/app/controllers/connectivity/tracking/index.js +1 -0
  857. package/app/controllers/maintenance/equipment/index/details/index.js +1 -0
  858. package/app/controllers/maintenance/equipment/index/details.js +1 -0
  859. package/app/controllers/maintenance/equipment/index/edit.js +1 -0
  860. package/app/controllers/maintenance/equipment/index/new.js +1 -0
  861. package/app/controllers/maintenance/equipment/index.js +1 -0
  862. package/app/controllers/maintenance/parts/index/details/index.js +1 -0
  863. package/app/controllers/maintenance/parts/index/details.js +1 -0
  864. package/app/controllers/maintenance/parts/index/edit.js +1 -0
  865. package/app/controllers/maintenance/parts/index/new.js +1 -0
  866. package/app/controllers/maintenance/parts/index.js +1 -0
  867. package/app/controllers/maintenance/work-orders/index/details/index.js +1 -0
  868. package/app/controllers/maintenance/work-orders/index/details.js +1 -0
  869. package/app/controllers/maintenance/work-orders/index/edit.js +1 -0
  870. package/app/controllers/maintenance/work-orders/index/new.js +1 -0
  871. package/app/controllers/maintenance/work-orders/index.js +1 -0
  872. package/app/controllers/management/contacts.js +1 -0
  873. package/app/controllers/management/vendors/integrated/details.js +1 -0
  874. package/app/controllers/management/vendors/integrated/edit.js +1 -0
  875. package/app/controllers/management/vendors/integrated/new.js +1 -0
  876. package/app/controllers/management/vendors/integrated.js +1 -0
  877. package/app/controllers/operations/orders/index/details/index.js +1 -0
  878. package/app/controllers/operations/orders/index/details.js +1 -0
  879. package/app/controllers/operations/service-rates/index/details.js +1 -0
  880. package/app/controllers/settings/custom-fields.js +1 -0
  881. package/app/helpers/get-fleet-ops-options.js +1 -0
  882. package/app/helpers/is-model-leaflet-layer-hidden.js +1 -0
  883. package/app/routes/analytics/reports/index/details/index.js +1 -0
  884. package/app/routes/analytics/reports/index/details/result.js +1 -0
  885. package/app/routes/analytics/reports/index/details.js +1 -0
  886. package/app/routes/analytics/reports/index/edit.js +1 -0
  887. package/app/routes/analytics/reports/index/new.js +1 -0
  888. package/app/routes/analytics/reports/index.js +1 -0
  889. package/app/routes/analytics/reports.js +1 -0
  890. package/app/routes/analytics.js +1 -0
  891. package/app/routes/connectivity/devices/index/details/events.js +1 -0
  892. package/app/routes/connectivity/devices/index/details/index.js +1 -0
  893. package/app/routes/connectivity/devices/index/details.js +1 -0
  894. package/app/routes/connectivity/devices/index/edit.js +1 -0
  895. package/app/routes/connectivity/devices/index/new.js +1 -0
  896. package/app/routes/connectivity/devices/index.js +1 -0
  897. package/app/routes/connectivity/devices.js +1 -0
  898. package/app/routes/connectivity/events/index/details.js +1 -0
  899. package/app/routes/connectivity/events/index.js +1 -0
  900. package/app/routes/connectivity/events.js +1 -0
  901. package/app/routes/connectivity/sensors/index/details/index.js +1 -0
  902. package/app/routes/connectivity/sensors/index/details.js +1 -0
  903. package/app/routes/connectivity/sensors/index/edit.js +1 -0
  904. package/app/routes/connectivity/sensors/index/new.js +1 -0
  905. package/app/routes/connectivity/sensors/index.js +1 -0
  906. package/app/routes/connectivity/sensors.js +1 -0
  907. package/app/routes/connectivity/telematics/index/details/devices.js +1 -0
  908. package/app/routes/connectivity/telematics/index/details/events.js +1 -0
  909. package/app/routes/connectivity/telematics/index/details/index.js +1 -0
  910. package/app/routes/connectivity/telematics/index/details/sensors.js +1 -0
  911. package/app/routes/connectivity/telematics/index/details.js +1 -0
  912. package/app/routes/connectivity/telematics/index/edit.js +1 -0
  913. package/app/routes/connectivity/telematics/index/new.js +1 -0
  914. package/app/routes/connectivity/telematics/index.js +1 -0
  915. package/app/routes/connectivity/telematics.js +1 -0
  916. package/app/routes/connectivity/tracking/index.js +1 -0
  917. package/app/routes/connectivity/tracking.js +1 -0
  918. package/app/routes/connectivity.js +1 -0
  919. package/app/routes/maintenance/equipment/index/details/index.js +1 -0
  920. package/app/routes/maintenance/equipment/index/details.js +1 -0
  921. package/app/routes/maintenance/equipment/index/edit.js +1 -0
  922. package/app/routes/maintenance/equipment/index/new.js +1 -0
  923. package/app/routes/maintenance/equipment/index.js +1 -0
  924. package/app/routes/maintenance/equipment.js +1 -0
  925. package/app/routes/maintenance/parts/index/details/index.js +1 -0
  926. package/app/routes/maintenance/parts/index/details.js +1 -0
  927. package/app/routes/maintenance/parts/index/edit.js +1 -0
  928. package/app/routes/maintenance/parts/index/new.js +1 -0
  929. package/app/routes/maintenance/parts/index.js +1 -0
  930. package/app/routes/maintenance/parts.js +1 -0
  931. package/app/routes/maintenance/work-orders/index/details/index.js +1 -0
  932. package/app/routes/maintenance/work-orders/index/details.js +1 -0
  933. package/app/routes/maintenance/work-orders/index/edit.js +1 -0
  934. package/app/routes/maintenance/work-orders/index/new.js +1 -0
  935. package/app/routes/maintenance/work-orders/index.js +1 -0
  936. package/app/routes/maintenance/work-orders.js +1 -0
  937. package/app/routes/maintenance.js +1 -0
  938. package/app/routes/management/contacts/customers/details/index.js +1 -0
  939. package/app/routes/management/contacts/index/details/index.js +1 -0
  940. package/app/routes/management/drivers/index/details/index.js +1 -0
  941. package/app/routes/management/drivers/index/details/orders.js +1 -0
  942. package/app/routes/management/drivers/index/details/schedule.js +1 -0
  943. package/app/routes/management/fleets/index/details/drivers.js +1 -0
  944. package/app/routes/management/fleets/index/details/index.js +1 -0
  945. package/app/routes/management/fleets/index/details/vehicles.js +1 -0
  946. package/app/routes/management/fuel-reports/index/details/index.js +1 -0
  947. package/app/routes/management/issues/index/details/index.js +1 -0
  948. package/app/routes/management/places/index/details/activity.js +1 -0
  949. package/app/routes/management/places/index/details/comments.js +1 -0
  950. package/app/routes/management/places/index/details/documents.js +1 -0
  951. package/app/routes/management/places/index/details/index.js +1 -0
  952. package/app/routes/management/places/index/details/map.js +1 -0
  953. package/app/routes/management/places/index/details/operations.js +1 -0
  954. package/app/routes/management/places/index/details/performance.js +1 -0
  955. package/app/routes/management/places/index/details/rules.js +1 -0
  956. package/app/routes/management/vehicles/index/details/devices.js +1 -0
  957. package/app/routes/management/vehicles/index/details/equipment.js +1 -0
  958. package/app/routes/management/vehicles/index/details/index.js +1 -0
  959. package/app/routes/management/vendors/index/details/index.js +1 -0
  960. package/app/routes/management/vendors/index/details/personnel.js +1 -0
  961. package/app/routes/management/vendors/integrated/details.js +1 -0
  962. package/app/routes/management/vendors/integrated/edit.js +1 -0
  963. package/app/routes/management/vendors/integrated/new.js +1 -0
  964. package/app/routes/management/vendors/integrated.js +1 -0
  965. package/app/routes/operations/orders/index/details/index.js +1 -0
  966. package/app/routes/operations/orders/index/details.js +1 -0
  967. package/app/routes/operations/routes/index/details.js +1 -0
  968. package/app/routes/operations/service-rates/index/details/index.js +1 -0
  969. package/app/routes/operations/service-rates/index/details.js +1 -0
  970. package/app/routes/settings/custom-fields.js +1 -0
  971. package/app/services/contact-actions.js +1 -0
  972. package/app/services/customer-actions.js +1 -0
  973. package/app/services/device-actions.js +1 -0
  974. package/app/services/device-event-actions.js +1 -0
  975. package/app/services/entity-actions.js +1 -0
  976. package/app/services/equipment-actions.js +1 -0
  977. package/app/services/fleet-actions.js +1 -0
  978. package/app/services/fuel-report-actions.js +1 -0
  979. package/app/services/geofence.js +1 -0
  980. package/app/services/global-search.js +1 -0
  981. package/app/services/integrated-vendor-actions.js +1 -0
  982. package/app/services/issue-actions.js +1 -0
  983. package/app/services/leaflet-draw-restriction.js +1 -0
  984. package/app/services/leaflet-layer-visibility-manager.js +1 -0
  985. package/app/services/maintenance-actions.js +1 -0
  986. package/app/services/map-drawer.js +1 -0
  987. package/app/services/order-actions.js +1 -0
  988. package/app/services/order-config-actions.js +1 -0
  989. package/app/services/order-import.js +1 -0
  990. package/app/services/order-list-overlay.js +1 -0
  991. package/app/services/order-socket-events.js +1 -0
  992. package/app/services/order-validation.js +1 -0
  993. package/app/services/part-actions.js +1 -0
  994. package/app/services/place-actions.js +1 -0
  995. package/app/services/report-actions.js +1 -0
  996. package/app/services/sensor-actions.js +1 -0
  997. package/app/services/service-area-actions.js +1 -0
  998. package/app/services/service-area-manager.js +1 -0
  999. package/app/services/service-rate-actions.js +1 -0
  1000. package/app/services/telematic-actions.js +1 -0
  1001. package/app/services/vendor-actions.js +1 -0
  1002. package/app/services/work-order-actions.js +1 -0
  1003. package/app/services/zone-actions.js +1 -0
  1004. package/app/templates/analytics/reports/index/details/index.js +1 -0
  1005. package/app/templates/analytics/reports/index/details/result.js +1 -0
  1006. package/app/templates/analytics/reports/index/details.js +1 -0
  1007. package/app/templates/analytics/reports/index/edit.js +1 -0
  1008. package/app/templates/analytics/reports/index/new.js +1 -0
  1009. package/app/templates/analytics/reports/index.js +1 -0
  1010. package/app/templates/analytics/reports.js +1 -0
  1011. package/app/templates/analytics.js +1 -0
  1012. package/app/templates/connectivity/devices/index/details/events.js +1 -0
  1013. package/app/templates/connectivity/devices/index/details/index.js +1 -0
  1014. package/app/templates/connectivity/devices/index/details.js +1 -0
  1015. package/app/templates/connectivity/devices/index/edit.js +1 -0
  1016. package/app/templates/connectivity/devices/index/new.js +1 -0
  1017. package/app/templates/connectivity/devices/index.js +1 -0
  1018. package/app/templates/connectivity/devices.js +1 -0
  1019. package/app/templates/connectivity/events/index/details.js +1 -0
  1020. package/app/templates/connectivity/events/index.js +1 -0
  1021. package/app/templates/connectivity/events.js +1 -0
  1022. package/app/templates/connectivity/sensors/index/details/index.js +1 -0
  1023. package/app/templates/connectivity/sensors/index/details.js +1 -0
  1024. package/app/templates/connectivity/sensors/index/edit.js +1 -0
  1025. package/app/templates/connectivity/sensors/index/new.js +1 -0
  1026. package/app/templates/connectivity/sensors/index.js +1 -0
  1027. package/app/templates/connectivity/sensors.js +1 -0
  1028. package/app/templates/connectivity/telematics/index/details/devices.js +1 -0
  1029. package/app/templates/connectivity/telematics/index/details/events.js +1 -0
  1030. package/app/templates/connectivity/telematics/index/details/index.js +1 -0
  1031. package/app/templates/connectivity/telematics/index/details/sensors.js +1 -0
  1032. package/app/templates/connectivity/telematics/index/details.js +1 -0
  1033. package/app/templates/connectivity/telematics/index/edit.js +1 -0
  1034. package/app/templates/connectivity/telematics/index/new.js +1 -0
  1035. package/app/templates/connectivity/telematics/index.js +1 -0
  1036. package/app/templates/connectivity/telematics.js +1 -0
  1037. package/app/templates/connectivity/tracking/index.js +1 -0
  1038. package/app/templates/connectivity/tracking.js +1 -0
  1039. package/app/templates/connectivity.js +1 -0
  1040. package/app/templates/maintenance/equipment/index/details/index.js +1 -0
  1041. package/app/templates/maintenance/equipment/index/details.js +1 -0
  1042. package/app/templates/maintenance/equipment/index/edit.js +1 -0
  1043. package/app/templates/maintenance/equipment/index/new.js +1 -0
  1044. package/app/templates/maintenance/equipment/index.js +1 -0
  1045. package/app/templates/maintenance/equipment.js +1 -0
  1046. package/app/templates/maintenance/parts/index/details/index.js +1 -0
  1047. package/app/templates/maintenance/parts/index/details.js +1 -0
  1048. package/app/templates/maintenance/parts/index/edit.js +1 -0
  1049. package/app/templates/maintenance/parts/index/new.js +1 -0
  1050. package/app/templates/maintenance/parts/index.js +1 -0
  1051. package/app/templates/maintenance/parts.js +1 -0
  1052. package/app/templates/maintenance/work-orders/index/details/index.js +1 -0
  1053. package/app/templates/maintenance/work-orders/index/details.js +1 -0
  1054. package/app/templates/maintenance/work-orders/index/edit.js +1 -0
  1055. package/app/templates/maintenance/work-orders/index/new.js +1 -0
  1056. package/app/templates/maintenance/work-orders/index.js +1 -0
  1057. package/app/templates/maintenance/work-orders.js +1 -0
  1058. package/app/templates/maintenance.js +1 -0
  1059. package/app/templates/management/contacts/customers/details/index.js +1 -0
  1060. package/app/templates/management/contacts/index/details/index.js +1 -0
  1061. package/app/templates/management/drivers/index/details/index.js +1 -0
  1062. package/app/templates/management/drivers/index/details/orders.js +1 -0
  1063. package/app/templates/management/drivers/index/details/schedule.js +1 -0
  1064. package/app/templates/management/fleets/index/details/drivers.js +1 -0
  1065. package/app/templates/management/fleets/index/details/index.js +1 -0
  1066. package/app/templates/management/fleets/index/details/vehicles.js +1 -0
  1067. package/app/templates/management/fuel-reports/index/details/index.js +1 -0
  1068. package/app/templates/management/issues/index/details/index.js +1 -0
  1069. package/app/templates/management/places/index/details/activity.js +1 -0
  1070. package/app/templates/management/places/index/details/comments.js +1 -0
  1071. package/app/templates/management/places/index/details/documents.js +1 -0
  1072. package/app/templates/management/places/index/details/index.js +1 -0
  1073. package/app/templates/management/places/index/details/map.js +1 -0
  1074. package/app/templates/management/places/index/details/operations.js +1 -0
  1075. package/app/templates/management/places/index/details/performance.js +1 -0
  1076. package/app/templates/management/places/index/details/rules.js +1 -0
  1077. package/app/templates/management/vehicles/index/details/devices.js +1 -0
  1078. package/app/templates/management/vehicles/index/details/equipment.js +1 -0
  1079. package/app/templates/management/vehicles/index/details/index.js +1 -0
  1080. package/app/templates/management/vendors/index/details/index.js +1 -0
  1081. package/app/templates/management/vendors/index/details/personnel.js +1 -0
  1082. package/app/templates/management/vendors/integrated/details.js +1 -0
  1083. package/app/templates/management/vendors/integrated/edit.js +1 -0
  1084. package/app/templates/management/vendors/integrated/new.js +1 -0
  1085. package/app/templates/management/vendors/integrated.js +1 -0
  1086. package/app/templates/operations/orders/index/details/index.js +1 -0
  1087. package/app/templates/operations/orders/index/details.js +1 -0
  1088. package/app/templates/operations/routes/index/details.js +1 -0
  1089. package/app/templates/operations/service-rates/index/details/index.js +1 -0
  1090. package/app/templates/operations/service-rates/index/details.js +1 -0
  1091. package/app/templates/settings/custom-fields.js +1 -0
  1092. package/app/utils/fleet-ops-options.js +1 -0
  1093. package/app/utils/leaflet-to-geojson.js +1 -0
  1094. package/app/utils/leaflet.js +1 -0
  1095. package/app/utils/serialize-payload.js +1 -0
  1096. package/app/utils/setup-customer-portal.js +1 -0
  1097. package/app/utils/to-multi-polygon.js +1 -0
  1098. package/app/utils/vendor-integration.js +1 -0
  1099. package/composer.json +1 -1
  1100. package/extension.json +1 -1
  1101. package/index.js +3 -2
  1102. package/package.json +5 -2
  1103. package/server/migrations/2025_09_10_010724_create_additional_spec_columns_for_assets_vehicles_table.php +77 -0
  1104. package/server/migrations/2025_09_14_031758_add_provider_options_column_to_integrated_vendors_tabl.php +27 -0
  1105. package/server/migrations/2025_09_15_031052_add_title_column_to_issues_table.php +27 -0
  1106. package/server/migrations/2025_09_24_004700_add_vehicle_columns.php +49 -0
  1107. package/server/migrations/2025_10_07_020406_add_max_distance_to_service_rates_table.php +28 -0
  1108. package/server/migrations/2025_10_08_091812_add_details_column_to_vehicles_table.php +27 -0
  1109. package/server/src/Auth/Schemas/FleetOps.php +12 -0
  1110. package/server/src/Console/Commands/DispatchAdhocOrders.php +21 -8
  1111. package/server/src/Http/Controllers/Api/v1/ServiceRateController.php +1 -1
  1112. package/server/src/Http/Controllers/Internal/v1/ContactController.php +12 -0
  1113. package/server/src/Http/Controllers/Internal/v1/DeviceController.php +15 -0
  1114. package/server/src/Http/Controllers/Internal/v1/DeviceEventController.php +15 -0
  1115. package/server/src/Http/Controllers/Internal/v1/DriverController.php +17 -8
  1116. package/server/src/Http/Controllers/Internal/v1/EquipmentController.php +15 -0
  1117. package/server/src/Http/Controllers/Internal/v1/FleetController.php +17 -5
  1118. package/server/src/Http/Controllers/Internal/v1/FuelReportController.php +13 -0
  1119. package/server/src/Http/Controllers/Internal/v1/IssueController.php +13 -0
  1120. package/server/src/Http/Controllers/Internal/v1/MaintenanceController.php +15 -0
  1121. package/server/src/Http/Controllers/Internal/v1/OrderController.php +141 -70
  1122. package/server/src/Http/Controllers/Internal/v1/PartController.php +15 -0
  1123. package/server/src/Http/Controllers/Internal/v1/PlaceController.php +11 -0
  1124. package/server/src/Http/Controllers/Internal/v1/SensorController.php +15 -0
  1125. package/server/src/Http/Controllers/Internal/v1/ServiceAreaController.php +13 -0
  1126. package/server/src/Http/Controllers/Internal/v1/TelematicController.php +15 -0
  1127. package/server/src/Http/Controllers/Internal/v1/VehicleController.php +12 -0
  1128. package/server/src/Http/Controllers/Internal/v1/VendorController.php +11 -0
  1129. package/server/src/Http/Controllers/Internal/v1/WarrantyController.php +15 -0
  1130. package/server/src/Http/Controllers/Internal/v1/WorkOrderController.php +15 -0
  1131. package/server/src/Http/Controllers/Internal/v1/ZoneController.php +13 -0
  1132. package/server/src/Http/Filter/DriverFilter.php +5 -2
  1133. package/server/src/Http/Filter/FleetFilter.php +5 -2
  1134. package/server/src/Http/Filter/IssueFilter.php +3 -8
  1135. package/server/src/Http/Filter/PlaceFilter.php +5 -0
  1136. package/server/src/Http/Filter/VendorFilter.php +5 -2
  1137. package/server/src/Http/Requests/CreateServiceRateRequest.php +4 -2
  1138. package/server/src/Http/Resources/v1/Contact.php +6 -4
  1139. package/server/src/Http/Resources/v1/CurrentJob.php +2 -2
  1140. package/server/src/Http/Resources/v1/Driver.php +2 -2
  1141. package/server/src/Http/Resources/v1/Fleet.php +2 -2
  1142. package/server/src/Http/Resources/v1/FuelReport.php +2 -2
  1143. package/server/src/Http/Resources/v1/Issue.php +34 -31
  1144. package/server/src/Http/Resources/v1/Order.php +0 -29
  1145. package/server/src/Http/Resources/v1/ParentFleet.php +2 -2
  1146. package/server/src/Http/Resources/v1/Place.php +3 -3
  1147. package/server/src/Http/Resources/v1/ServiceArea.php +2 -2
  1148. package/server/src/Http/Resources/v1/ServiceRate.php +45 -34
  1149. package/server/src/Http/Resources/v1/SubFleet.php +2 -2
  1150. package/server/src/Http/Resources/v1/Vehicle.php +3 -3
  1151. package/server/src/Http/Resources/v1/Vendor.php +5 -3
  1152. package/server/src/Http/Resources/v1/Zone.php +2 -2
  1153. package/server/src/Models/Asset.php +9 -0
  1154. package/server/src/Models/Contact.php +22 -1
  1155. package/server/src/Models/Driver.php +1 -1
  1156. package/server/src/Models/IntegratedVendor.php +4 -2
  1157. package/server/src/Models/Issue.php +21 -0
  1158. package/server/src/Models/Order.php +26 -46
  1159. package/server/src/Models/Place.php +2 -0
  1160. package/server/src/Models/ServiceArea.php +2 -0
  1161. package/server/src/Models/ServiceRate.php +22 -4
  1162. package/server/src/Models/Vehicle.php +88 -16
  1163. package/server/src/Models/VehicleDeviceEvent.php +1 -1
  1164. package/server/src/Models/Vendor.php +13 -0
  1165. package/server/src/Models/Waypoint.php +58 -0
  1166. package/server/src/Models/Zone.php +2 -0
  1167. package/server/src/Providers/FleetOpsServiceProvider.php +1 -0
  1168. package/server/src/Providers/ReportSchemaServiceProvider.php +22 -0
  1169. package/server/src/Support/Reporting/FleetOpsReportSchema.php +729 -0
  1170. package/server/src/Traits/HasTrackingNumber.php +10 -6
  1171. package/server/src/routes.php +9 -0
  1172. package/translations/bg-bg.yaml +1799 -0
  1173. package/translations/en-us.yaml +1691 -1625
  1174. package/translations/fr-fr.yaml +1824 -0
  1175. package/translations/mn-mn.yaml +1768 -0
  1176. package/translations/pt-br.yaml +1789 -0
  1177. package/translations/ru-ru.yaml +1782 -0
  1178. package/addon/components/activity-event-selector.hbs +0 -45
  1179. package/addon/components/activity-event-selector.js +0 -89
  1180. package/addon/components/activity-form-panel.hbs +0 -89
  1181. package/addon/components/activity-form-panel.js +0 -109
  1182. package/addon/components/activity-logic-builder.hbs +0 -128
  1183. package/addon/components/activity-logic-builder.js +0 -260
  1184. package/addon/components/contact-form-panel.hbs +0 -158
  1185. package/addon/components/contact-form-panel.js +0 -168
  1186. package/addon/components/contact-panel/details.hbs +0 -40
  1187. package/addon/components/contact-panel/details.js +0 -3
  1188. package/addon/components/contact-panel.hbs +0 -74
  1189. package/addon/components/contact-panel.js +0 -112
  1190. package/addon/components/context-panel.hbs +0 -5
  1191. package/addon/components/context-panel.js +0 -6
  1192. package/addon/components/custom-entity-form-panel.hbs +0 -98
  1193. package/addon/components/custom-entity-form-panel.js +0 -129
  1194. package/addon/components/custom-field-form-panel/options-input.hbs +0 -17
  1195. package/addon/components/custom-field-form-panel/options-input.js +0 -139
  1196. package/addon/components/custom-field-form-panel.hbs +0 -121
  1197. package/addon/components/custom-field-form-panel.js +0 -147
  1198. package/addon/components/custom-field-value.hbs +0 -11
  1199. package/addon/components/custom-field-value.js +0 -41
  1200. package/addon/components/custom-field.hbs +0 -89
  1201. package/addon/components/custom-field.js +0 -145
  1202. package/addon/components/customer-form-panel.hbs +0 -215
  1203. package/addon/components/customer-form-panel.js +0 -219
  1204. package/addon/components/customer-panel/details.hbs +0 -52
  1205. package/addon/components/customer-panel/details.js +0 -3
  1206. package/addon/components/customer-panel.hbs +0 -95
  1207. package/addon/components/customer-panel.js +0 -124
  1208. package/addon/components/driver-card-mini.hbs +0 -12
  1209. package/addon/components/driver-card-mini.js +0 -46
  1210. package/addon/components/driver-card.hbs +0 -27
  1211. package/addon/components/driver-card.js +0 -14
  1212. package/addon/components/driver-form-panel.hbs +0 -276
  1213. package/addon/components/driver-form-panel.js +0 -243
  1214. package/addon/components/driver-panel/details.hbs +0 -55
  1215. package/addon/components/driver-panel/orders.hbs +0 -144
  1216. package/addon/components/driver-panel/orders.js +0 -44
  1217. package/addon/components/driver-panel.hbs +0 -84
  1218. package/addon/components/driver-panel.js +0 -164
  1219. package/addon/components/edit-order-route-panel.hbs +0 -183
  1220. package/addon/components/edit-order-route-panel.js +0 -322
  1221. package/addon/components/event-timeline/event.hbs +0 -5
  1222. package/addon/components/fleet-form-panel.hbs +0 -151
  1223. package/addon/components/fleet-form-panel.js +0 -128
  1224. package/addon/components/fleet-panel.hbs +0 -35
  1225. package/addon/components/fleet-panel.js +0 -129
  1226. package/addon/components/fuel-report-form-panel.hbs +0 -170
  1227. package/addon/components/fuel-report-form-panel.js +0 -167
  1228. package/addon/components/fuel-report-panel/details.hbs +0 -42
  1229. package/addon/components/fuel-report-panel.hbs +0 -46
  1230. package/addon/components/fuel-report-panel.js +0 -148
  1231. package/addon/components/full-size.js +0 -1
  1232. package/addon/components/horizontal-route.hbs +0 -38
  1233. package/addon/components/horizontal-route.js +0 -48
  1234. package/addon/components/issue-form-panel.hbs +0 -226
  1235. package/addon/components/issue-form-panel.js +0 -182
  1236. package/addon/components/issue-panel/details.hbs +0 -48
  1237. package/addon/components/issue-panel.hbs +0 -39
  1238. package/addon/components/issue-panel.js +0 -148
  1239. package/addon/components/live-map-drawer/driver-listing.hbs +0 -12
  1240. package/addon/components/live-map-drawer/driver-listing.js +0 -246
  1241. package/addon/components/live-map-drawer/place-listing.hbs +0 -12
  1242. package/addon/components/live-map-drawer/place-listing.js +0 -209
  1243. package/addon/components/live-map-drawer/vehicle-listing.hbs +0 -12
  1244. package/addon/components/live-map-drawer/vehicle-listing.js +0 -222
  1245. package/addon/components/live-map-drawer.hbs +0 -17
  1246. package/addon/components/live-map-drawer.js +0 -86
  1247. package/addon/components/live-map.hbs +0 -260
  1248. package/addon/components/live-map.js +0 -1925
  1249. package/addon/components/map-container/toolbar/visibility-control-panel.hbs +0 -66
  1250. package/addon/components/map-container/toolbar/visibility-control-panel.js +0 -74
  1251. package/addon/components/map-container/toolbar/zones-panel.hbs +0 -56
  1252. package/addon/components/map-container/toolbar/zones-panel.js +0 -138
  1253. package/addon/components/map-container/toolbar-container.hbs +0 -1
  1254. package/addon/components/map-container/toolbar-container.js +0 -3
  1255. package/addon/components/map-container/toolbar.hbs +0 -123
  1256. package/addon/components/map-container/toolbar.js +0 -63
  1257. package/addon/components/operations-pane/pane.hbs +0 -1
  1258. package/addon/components/order-board.hbs +0 -27
  1259. package/addon/components/order-board.js +0 -81
  1260. package/addon/components/order-config/activity-flow-editor.hbs +0 -149
  1261. package/addon/components/order-config/activity-flow-editor.js +0 -374
  1262. package/addon/components/order-config/details-editor.hbs +0 -69
  1263. package/addon/components/order-config/details-editor.js +0 -16
  1264. package/addon/components/order-config/entities-editor.hbs +0 -89
  1265. package/addon/components/order-config/entities-editor.js +0 -120
  1266. package/addon/components/order-config/fields-editor.hbs +0 -169
  1267. package/addon/components/order-config/fields-editor.js +0 -227
  1268. package/addon/components/order-config/selector.js +0 -3
  1269. package/addon/components/order-config-manager-overlay.hbs +0 -36
  1270. package/addon/components/order-config-manager-overlay.js +0 -60
  1271. package/addon/components/order-flow.js +0 -3
  1272. package/addon/components/order-list-overlay.hbs +0 -178
  1273. package/addon/components/order-list-overlay.js +0 -217
  1274. package/addon/components/place-form-panel.hbs +0 -118
  1275. package/addon/components/place-form-panel.js +0 -179
  1276. package/addon/components/place-panel/details.hbs +0 -81
  1277. package/addon/components/place-panel.hbs +0 -40
  1278. package/addon/components/place-panel.js +0 -112
  1279. package/addon/components/settings-window.hbs +0 -39
  1280. package/addon/components/settings-window.js +0 -63
  1281. package/addon/components/split-grid.js +0 -1
  1282. package/addon/components/vehicle-form-panel.hbs +0 -219
  1283. package/addon/components/vehicle-form-panel.js +0 -203
  1284. package/addon/components/vehicle-panel/details.hbs +0 -44
  1285. package/addon/components/vehicle-panel.hbs +0 -79
  1286. package/addon/components/vehicle-panel.js +0 -153
  1287. package/addon/components/vendor-form-panel/create-form.hbs +0 -250
  1288. package/addon/components/vendor-form-panel/create-form.js +0 -153
  1289. package/addon/components/vendor-form-panel/edit-form.hbs +0 -234
  1290. package/addon/components/vendor-form-panel/edit-form.js +0 -57
  1291. package/addon/components/vendor-form-panel.hbs +0 -115
  1292. package/addon/components/vendor-form-panel.js +0 -160
  1293. package/addon/components/vendor-panel/details.hbs +0 -77
  1294. package/addon/components/vendor-panel/details.js +0 -12
  1295. package/addon/components/vendor-panel/drivers.hbs +0 -81
  1296. package/addon/components/vendor-panel/drivers.js +0 -139
  1297. package/addon/components/vendor-panel/personnel.js +0 -3
  1298. package/addon/components/vendor-panel.hbs +0 -73
  1299. package/addon/components/vendor-panel.js +0 -124
  1300. package/addon/controllers/base-controller.js +0 -31
  1301. package/addon/controllers/management.js +0 -3
  1302. package/addon/controllers/operations/orders/index/config/types.js +0 -17
  1303. package/addon/controllers/operations/orders/index/config.js +0 -13
  1304. package/addon/controllers/operations/orders/index/view.js +0 -1028
  1305. package/addon/helpers/feature-group.js +0 -13
  1306. package/addon/helpers/flow-raw-status.js +0 -13
  1307. package/addon/helpers/get-tip-amount.js +0 -19
  1308. package/addon/helpers/is-facilitator-supported-place.js +0 -6
  1309. package/addon/helpers/is-section-visible.js +0 -5
  1310. package/addon/helpers/is-visibility-control-visible.js +0 -18
  1311. package/addon/helpers/is-waypoint-record.js +0 -6
  1312. package/addon/helpers/service-name.js +0 -6
  1313. package/addon/routes/comms/chat.js +0 -3
  1314. package/addon/routes/comms/intercom.js +0 -3
  1315. package/addon/routes/comms.js +0 -3
  1316. package/addon/routes/operations/orders/index/config/types.js +0 -18
  1317. package/addon/routes/operations/orders/index/config.js +0 -3
  1318. package/addon/routes/operations/orders/index/view.js +0 -113
  1319. package/addon/routes/operations/routes/index/view.js +0 -3
  1320. package/addon/services/context-panel.js +0 -352
  1321. package/addon/services/leaflet-router-control.js +0 -64
  1322. package/addon/templates/operations/orders/index/config/types.hbs +0 -30
  1323. package/addon/templates/operations/orders/index/config.hbs +0 -23
  1324. package/addon/templates/operations/orders/index/view.hbs +0 -876
  1325. package/addon/utils/calculate-percentage.js +0 -1
  1326. package/addon/utils/find-leaflet-layer.js +0 -13
  1327. package/addon/utils/fly-to-leaflet-layer.js +0 -32
  1328. package/addon/utils/format-currency.js +0 -1
  1329. package/addon/utils/get-custom-field-type-map.js +0 -34
  1330. package/addon/utils/get-issue-categories.js +0 -30
  1331. package/addon/utils/get-issue-types.js +0 -3
  1332. package/addon/utils/get-leaflet-layer-by-id.js +0 -12
  1333. package/addon/utils/get-vendor-status-options.js +0 -3
  1334. package/addon/utils/get-vendor-type-options.js +0 -44
  1335. package/addon/utils/layer-can-bind-contextmenu.js +0 -3
  1336. package/addon/utils/to-model.js +0 -1
  1337. package/app/components/activity-event-selector.js +0 -1
  1338. package/app/components/activity-form-panel.js +0 -1
  1339. package/app/components/activity-logic-builder.js +0 -1
  1340. package/app/components/contact-form-panel.js +0 -1
  1341. package/app/components/contact-panel/details.js +0 -1
  1342. package/app/components/contact-panel.js +0 -1
  1343. package/app/components/context-panel.js +0 -1
  1344. package/app/components/custom-entity-form-panel.js +0 -1
  1345. package/app/components/custom-field-form-panel/options-input.js +0 -1
  1346. package/app/components/custom-field-form-panel.js +0 -1
  1347. package/app/components/custom-field-value.js +0 -1
  1348. package/app/components/custom-field.js +0 -1
  1349. package/app/components/customer-form-panel.js +0 -1
  1350. package/app/components/customer-panel/details.js +0 -1
  1351. package/app/components/customer-panel.js +0 -1
  1352. package/app/components/driver-card-mini.js +0 -1
  1353. package/app/components/driver-card.js +0 -1
  1354. package/app/components/driver-form-panel.js +0 -1
  1355. package/app/components/driver-panel/details.js +0 -1
  1356. package/app/components/driver-panel/orders.js +0 -1
  1357. package/app/components/driver-panel.js +0 -1
  1358. package/app/components/event-timeline/event.js +0 -1
  1359. package/app/components/fleet-form-panel.js +0 -1
  1360. package/app/components/fleet-panel.js +0 -1
  1361. package/app/components/fuel-report-form-panel.js +0 -1
  1362. package/app/components/fuel-report-panel.js +0 -1
  1363. package/app/components/full-size.js +0 -1
  1364. package/app/components/horizontal-route.js +0 -1
  1365. package/app/components/issue-form-panel.js +0 -1
  1366. package/app/components/issue-panel.js +0 -1
  1367. package/app/components/live-map-drawer/driver-listing.js +0 -1
  1368. package/app/components/live-map-drawer/place-listing.js +0 -1
  1369. package/app/components/live-map-drawer/vehicle-listing.js +0 -1
  1370. package/app/components/live-map-drawer.js +0 -1
  1371. package/app/components/live-map.js +0 -1
  1372. package/app/components/map-container/toolbar/visibility-control-panel.js +0 -1
  1373. package/app/components/map-container/toolbar/zones-panel.js +0 -1
  1374. package/app/components/map-container/toolbar-container.js +0 -1
  1375. package/app/components/map-container/toolbar.js +0 -1
  1376. package/app/components/operations-pane/pane.js +0 -1
  1377. package/app/components/order-board.js +0 -1
  1378. package/app/components/order-config/activity-flow-editor.js +0 -1
  1379. package/app/components/order-config/details-editor.js +0 -1
  1380. package/app/components/order-config/entities-editor.js +0 -1
  1381. package/app/components/order-config/fields-editor.js +0 -1
  1382. package/app/components/order-config/selector.js +0 -1
  1383. package/app/components/order-config-manager-overlay.js +0 -1
  1384. package/app/components/order-flow.js +0 -1
  1385. package/app/components/order-list-overlay.js +0 -1
  1386. package/app/components/place-form-panel.js +0 -1
  1387. package/app/components/place-panel.js +0 -1
  1388. package/app/components/settings-window.js +0 -1
  1389. package/app/components/split-grid.js +0 -1
  1390. package/app/components/vehicle-form-panel.js +0 -1
  1391. package/app/components/vehicle-panel/details.js +0 -1
  1392. package/app/components/vehicle-panel/tracking.js +0 -1
  1393. package/app/components/vehicle-panel.js +0 -1
  1394. package/app/components/vendor-form-panel/create-form.js +0 -1
  1395. package/app/components/vendor-form-panel/edit-form.js +0 -1
  1396. package/app/components/vendor-form-panel.js +0 -1
  1397. package/app/components/vendor-panel/details.js +0 -1
  1398. package/app/components/vendor-panel/drivers.js +0 -1
  1399. package/app/components/vendor-panel/personnel.js +0 -1
  1400. package/app/components/vendor-panel.js +0 -1
  1401. package/app/controllers/base-controller.js +0 -1
  1402. package/app/controllers/management.js +0 -1
  1403. package/app/controllers/operations/orders/index/config/types.js +0 -1
  1404. package/app/controllers/operations/orders/index/config.js +0 -1
  1405. package/app/controllers/operations/orders/index/view.js +0 -1
  1406. package/app/helpers/feature-group.js +0 -1
  1407. package/app/helpers/flow-raw-status.js +0 -1
  1408. package/app/helpers/get-tip-amount.js +0 -1
  1409. package/app/helpers/is-facilitator-supported-place.js +0 -1
  1410. package/app/helpers/is-section-visible.js +0 -1
  1411. package/app/helpers/is-visibility-control-visible.js +0 -1
  1412. package/app/helpers/is-waypoint-record.js +0 -1
  1413. package/app/helpers/service-name.js +0 -1
  1414. package/app/routes/operations/orders/index/config/types.js +0 -1
  1415. package/app/routes/operations/orders/index/config.js +0 -1
  1416. package/app/routes/operations/orders/index/view.js +0 -1
  1417. package/app/routes/operations/routes/index/view.js +0 -1
  1418. package/app/services/context-panel.js +0 -1
  1419. package/app/services/leaflet-router-control.js +0 -1
  1420. package/app/templates/operations/orders/index/config/types.js +0 -1
  1421. package/app/templates/operations/orders/index/config.js +0 -1
  1422. package/app/templates/operations/orders/index/view.js +0 -1
  1423. package/app/templates/operations/routes/index/view.js +0 -1
  1424. package/app/utils/calculate-percentage.js +0 -1
  1425. package/app/utils/find-leaflet-layer.js +0 -1
  1426. package/app/utils/fly-to-leaflet-layer.js +0 -1
  1427. package/app/utils/format-currency.js +0 -1
  1428. package/app/utils/get-custom-field-type-map.js +0 -1
  1429. package/app/utils/get-issue-categories.js +0 -1
  1430. package/app/utils/get-issue-types.js +0 -1
  1431. package/app/utils/get-leaflet-layer-by-id.js +0 -1
  1432. package/app/utils/get-vendor-status-options.js +0 -1
  1433. package/app/utils/get-vendor-type-options.js +0 -1
  1434. package/app/utils/layer-can-bind-contextmenu.js +0 -1
  1435. package/app/utils/to-model.js +0 -1
  1436. /package/addon/components/{order-config/selector.hbs → asset/form.hbs} +0 -0
  1437. /package/addon/components/{order-flow.hbs → customer/leaflet-map.hbs} +0 -0
  1438. /package/addon/components/{vehicle-panel/tracking.hbs → customer/order-details.hbs} +0 -0
  1439. /package/addon/components/{vendor-panel/personnel.hbs → entity/details.hbs} +0 -0
  1440. /package/addon/templates/{comms/chat.hbs → analytics/reports.hbs} +0 -0
  1441. /package/addon/templates/{comms.hbs → analytics.hbs} +0 -0
  1442. /package/addon/templates/{comms/intercom.hbs → connectivity/tracking/index.hbs} +0 -0
  1443. /package/addon/templates/{operations/routes/index/view.hbs → maintenance.hbs} +0 -0
@@ -0,0 +1,440 @@
1
+ import toPowerSelectGroups from '@fleetbase/ember-ui/utils/to-power-select-groups';
2
+
3
+ export const driverTypes = [
4
+ { label: 'Full-time', value: 'full_time', description: 'Permanent employee driver' },
5
+ { label: 'Part-time', value: 'part_time', description: 'Part-time or contract driver' },
6
+ { label: 'Contractor', value: 'contractor', description: 'Independent contractor driver' },
7
+ { label: 'Owner-Operator', value: 'owner_operator', description: 'Driver owns and operates own vehicle' },
8
+ { label: 'Temporary', value: 'temporary', description: 'Short-term or seasonal driver' },
9
+ { label: 'Apprentice', value: 'apprentice', description: 'Trainee or under-supervision driver' },
10
+ { label: 'Relief / On-call', value: 'relief', description: 'Covers shifts and peak demand as needed' },
11
+ { label: 'Hazmat Certified', value: 'hazmat', description: 'Qualified to carry hazardous materials' },
12
+ { label: 'Refrigerated Cargo Specialist', value: 'reefer_specialist', description: 'Experienced with temperature-controlled cargo' },
13
+ { label: 'Oversize / Heavy Haul', value: 'heavy_haul', description: 'Certified for oversize/overweight loads' },
14
+ { label: 'Courier / Last-mile', value: 'last_mile', description: 'Small parcel/urban delivery specialist' },
15
+ ];
16
+
17
+ export const driverStatuses = [
18
+ { label: 'Active', value: 'active', description: 'Driver is available for assignments' },
19
+ { label: 'Inactive', value: 'inactive', description: 'Driver is not currently active' },
20
+ { label: 'On Duty', value: 'on_duty', description: 'Driver is working and available' },
21
+ { label: 'Off Duty', value: 'off_duty', description: 'Driver is not working' },
22
+ { label: 'On Break', value: 'on_break', description: 'Driver is on a scheduled break' },
23
+ { label: 'Suspended', value: 'suspended', description: 'Driver is temporarily suspended' },
24
+ { label: 'Terminated', value: 'terminated', description: 'Driver no longer works with company' },
25
+ { label: 'Pre-shift', value: 'pre_shift', description: 'Clocked in, prepping for shift' },
26
+ { label: 'Training', value: 'training', description: 'In training, not available for jobs' },
27
+ { label: 'Onboarding', value: 'onboarding', description: 'Documents/induction in progress' },
28
+ { label: 'On Route', value: 'on_route', description: 'Actively driving a planned route' },
29
+ { label: 'Delayed', value: 'delayed', description: 'Experiencing delay (traffic, weather, etc.)' },
30
+ { label: 'Accident Hold', value: 'accident_hold', description: 'Temporarily paused due to incident' },
31
+ { label: 'On Leave', value: 'on_leave', description: 'Approved leave period' },
32
+ { label: 'No-show', value: 'no_show', description: 'Missed scheduled shift' },
33
+ { label: 'Pending Verification', value: 'pending_verification', description: 'Waiting on document/compliance checks' },
34
+ ];
35
+
36
+ export const vehicleTypes = [
37
+ { label: 'Truck', value: 'truck', description: 'Standard freight truck' },
38
+ { label: 'Van', value: 'van', description: 'Cargo or delivery van' },
39
+ { label: 'Trailer', value: 'trailer', description: 'Detachable cargo trailer' },
40
+ { label: 'Motorbike', value: 'motorbike', description: 'Two-wheeled delivery bike' },
41
+ { label: 'Car', value: 'car', description: 'Passenger car or small vehicle' },
42
+ { label: 'Refrigerated Truck', value: 'reefer', description: 'Temperature-controlled transport' },
43
+ { label: 'Container Truck', value: 'container_truck', description: 'Truck for containerized cargo' },
44
+ { label: 'Tanker', value: 'tanker', description: 'Truck for liquid/gas transport' },
45
+ { label: 'Box Truck', value: 'box_truck', description: 'Enclosed box body truck' },
46
+ { label: 'Flatbed', value: 'flatbed', description: 'Open platform for oversized cargo' },
47
+ { label: 'Pickup', value: 'pickup', description: 'Light-duty utility pickup' },
48
+ { label: 'Bus / Minibus', value: 'bus', description: 'Passenger transport' },
49
+ { label: 'Forklift', value: 'forklift', description: 'Material handling equipment' },
50
+ { label: 'EV (Electric Vehicle)', value: 'ev', description: 'Battery electric vehicle' },
51
+ { label: 'Hybrid', value: 'hybrid', description: 'Hybrid electric vehicle' },
52
+ { label: 'Charging Trailer', value: 'charging_trailer', description: 'Mobile charging or auxiliary power unit' },
53
+ ];
54
+
55
+ export const vehicleStatuses = [
56
+ { label: 'Available', value: 'available', description: 'Vehicle is ready for use' },
57
+ { label: 'In Use', value: 'in_use', description: 'Vehicle is assigned to a driver/order' },
58
+ { label: 'Maintenance', value: 'maintenance', description: 'Vehicle is under maintenance or repair' },
59
+ { label: 'Out of Service', value: 'out_of_service', description: 'Vehicle is not operational' },
60
+ { label: 'Reserved', value: 'reserved', description: 'Vehicle is reserved for a future assignment' },
61
+ { label: 'Retired', value: 'retired', description: 'Vehicle is decommissioned' },
62
+ { label: 'Staging', value: 'staging', description: 'Prepped and queued for dispatch' },
63
+ { label: 'On Route', value: 'on_route', description: 'Actively executing a route' },
64
+ { label: 'Idle', value: 'idle', description: 'Powered on but not moving' },
65
+ { label: 'Cleaning', value: 'cleaning', description: 'Under wash/detailing' },
66
+ { label: 'Awaiting Parts', value: 'awaiting_parts', description: 'Maintenance waiting for spares' },
67
+ { label: 'Inspection Due', value: 'inspection_due', description: 'Compliance inspection required' },
68
+ { label: 'Inspection Failed', value: 'inspection_failed', description: 'Failed inspection—cannot dispatch' },
69
+ { label: 'Accident / Damage', value: 'accident', description: 'Unavailable due to incident' },
70
+ { label: 'Compliance Hold', value: 'compliance_hold', description: 'Blocked due to expired docs/permits' },
71
+ { label: 'Stolen', value: 'stolen', description: 'Reported stolen—do not dispatch' },
72
+ ];
73
+
74
+ export const vendorTypes = [
75
+ { label: 'Vendor', value: 'vendor', description: 'General vendor type for uncategorized services' },
76
+ { label: 'Integrated Vendor', value: 'integrated_vendor', description: 'Vendor with native API integration into Fleetbase' },
77
+ { label: 'Fuel Supplier', value: 'fuel_supplier', description: 'Provides fuel for vehicles' },
78
+ { label: 'Maintenance Provider', value: 'maintenance_provider', description: 'Performs vehicle repairs/maintenance' },
79
+ { label: 'Parts Supplier', value: 'parts_supplier', description: 'Supplies vehicle parts' },
80
+ { label: 'Technology Provider', value: 'tech_provider', description: 'Provides software or hardware services' },
81
+ { label: 'Logistics Partner', value: 'logistics_partner', description: '3PL or logistics subcontractor' },
82
+ { label: 'Insurance Provider', value: 'insurance_provider', description: 'Provides insurance services' },
83
+ { label: 'Towing Service', value: 'towing_service', description: 'Roadside assistance, towing, and recovery' },
84
+ { label: 'Leasing Company', value: 'leasing_company', description: 'Provides rental or leased vehicles and equipment' },
85
+ { label: 'Driver Staffing Agency', value: 'driver_staffing', description: 'Provides contract or temporary drivers' },
86
+ { label: 'Customs Broker', value: 'customs_broker', description: 'Handles border clearance and regulatory compliance' },
87
+ { label: 'Telematics Provider', value: 'telematics_provider', description: 'Supplies GPS, ELD, and IoT telematics services' },
88
+ { label: 'Freight Forwarder', value: 'freight_forwarder', description: 'Manages international and multi-modal shipments' },
89
+ { label: 'Compliance / Audit', value: 'compliance_audit', description: 'Regulatory audits, safety, training' },
90
+ { label: 'Wash & Detailing', value: 'wash_detailing', description: 'Cleaning and sanitization services' },
91
+ { label: 'Tyre / Tire Service', value: 'tire_service', description: 'Tyre sales, repair, and fitting' },
92
+ { label: 'Body & Paint Shop', value: 'body_paint', description: 'Accident repair and refinishing' },
93
+ { label: 'Storage / Yard', value: 'yard_storage', description: 'Short/long-term vehicle storage' },
94
+ { label: 'Charging Network', value: 'charging_network', description: 'EV charging infrastructure provider' },
95
+ ];
96
+
97
+ export const vendorStatuses = [
98
+ { label: 'Active', value: 'active', description: 'Vendor is active and available' },
99
+ { label: 'Inactive', value: 'inactive', description: 'Vendor is inactive or on hold' },
100
+ { label: 'Suspended', value: 'suspended', description: 'Vendor is temporarily suspended' },
101
+ { label: 'Blacklisted', value: 'blacklisted', description: 'Vendor is banned from operations' },
102
+ { label: 'Connected', value: 'connected', description: 'API connection healthy' },
103
+ { label: 'Syncing', value: 'syncing', description: 'Data synchronization in progress' },
104
+ { label: 'Integration Error', value: 'integration_error', description: 'API connection failing—needs attention' },
105
+ { label: 'Under Review', value: 'under_review', description: 'Being evaluated for approval' },
106
+ { label: 'Preferred', value: 'preferred', description: 'Preferred supplier with negotiated terms' },
107
+ { label: 'Prequalified', value: 'prequalified', description: 'Meets minimum standards—conditional' },
108
+ { label: 'Terminated', value: 'terminated', description: 'Relationship formally ended' },
109
+ ];
110
+
111
+ export const contactTypes = [
112
+ { label: 'Customer', value: 'customer', description: 'End customer contact' },
113
+ { label: 'Vendor Contact', value: 'vendor_contact', description: 'Point of contact at vendor' },
114
+ { label: 'Driver Contact', value: 'driver_contact', description: 'Driver or field contact' },
115
+ { label: 'Fleet Manager', value: 'fleet_manager', description: 'Contact for managing fleets' },
116
+ { label: 'Support', value: 'support', description: 'General support or helpdesk contact' },
117
+ { label: 'Consignor', value: 'consignor', description: 'Sender of goods' },
118
+ { label: 'Consignee', value: 'consignee', description: 'Receiver of goods' },
119
+ { label: 'Accounts Payable', value: 'accounts_payable', description: 'Billing and payments contact' },
120
+ { label: 'Procurement', value: 'procurement', description: 'Purchasing contact' },
121
+ { label: 'Site Security', value: 'site_security', description: 'Gatehouse/security desk' },
122
+ { label: 'Dock Manager', value: 'dock_manager', description: 'Loading dock operations contact' },
123
+ { label: 'Dispatcher', value: 'dispatcher', description: 'Scheduling and operations contact' },
124
+ ];
125
+
126
+ export const contactStatuses = [
127
+ { label: 'Active', value: 'active', description: 'Contact is valid and in use' },
128
+ { label: 'Inactive', value: 'inactive', description: 'Contact is no longer valid' },
129
+ { label: 'Blocked', value: 'blocked', description: 'Contact is blocked from use' },
130
+ { label: 'Primary', value: 'primary', description: 'Primary contact for an account/place' },
131
+ { label: 'Verified', value: 'verified', description: 'Email/phone verified' },
132
+ { label: 'Unverified', value: 'unverified', description: 'Contact details not verified' },
133
+ { label: 'Do Not Contact', value: 'do_not_contact', description: 'Respect DNC for this contact' },
134
+ { label: 'Archived', value: 'archived', description: 'Kept for record; not actively used' },
135
+ ];
136
+
137
+ export const fleetTypes = [
138
+ { label: 'Regional Fleet', value: 'regional', description: 'Fleet covering a specific region' },
139
+ { label: 'Long Haul Fleet', value: 'long_haul', description: 'Fleet for cross-country or international routes' },
140
+ { label: 'Urban Fleet', value: 'urban', description: 'Fleet for city/local deliveries' },
141
+ { label: 'Specialized Fleet', value: 'specialized', description: 'Fleet for special cargo like hazmat or reefer' },
142
+ { label: 'Last-mile Fleet', value: 'last_mile', description: 'Dense urban, short-drop operations' },
143
+ { label: 'Linehaul / Middle-mile', value: 'linehaul', description: 'Terminal-to-terminal trunk routes' },
144
+ { label: 'Service Fleet', value: 'service', description: 'Field service/technician vehicles' },
145
+ { label: 'Rental Pool', value: 'rental_pool', description: 'Pool of shared/rental vehicles' },
146
+ { label: 'Electric Fleet', value: 'electric', description: 'EV-focused operations' },
147
+ { label: 'Motorcycle Courier', value: 'moto_courier', description: 'Two-wheeler delivery fleet' },
148
+ ];
149
+
150
+ export const fleetStatuses = [
151
+ { label: 'Active', value: 'active', description: 'Fleet is active and operational' },
152
+ { label: 'Inactive', value: 'inactive', description: 'Fleet is inactive or dissolved' },
153
+ { label: 'On Hold', value: 'on_hold', description: 'Fleet operations are paused' },
154
+ { label: 'Scaling', value: 'scaling', description: 'Actively adding vehicles/drivers' },
155
+ { label: 'Downsizing', value: 'downsizing', description: 'Reducing footprint' },
156
+ { label: 'Seasonal', value: 'seasonal', description: 'Operational during specific seasons' },
157
+ { label: 'Pilot', value: 'pilot', description: 'Trial/limited-scope operations' },
158
+ { label: 'Decommissioning', value: 'decommissioning', description: 'Winding down; reassigning assets' },
159
+ ];
160
+
161
+ export const fuelReportTypes = [
162
+ { label: 'Refueling', value: 'refueling', description: 'Standard refueling log' },
163
+ { label: 'Top-up', value: 'top_up', description: 'Partial refuel' },
164
+ { label: 'Full Tank', value: 'full_tank', description: 'Complete refuel to full capacity' },
165
+ { label: 'Adjustment', value: 'adjustment', description: 'Correction or manual adjustment' },
166
+ { label: 'Card Transaction', value: 'card_txn', description: 'Imported from fuel card/processor' },
167
+ { label: 'Manual Entry', value: 'manual_entry', description: 'Entered by user/driver' },
168
+ { label: 'Bulk Refuel', value: 'bulk_refuel', description: 'Yard or tank bulk fueling event' },
169
+ { label: 'DEF / AdBlue', value: 'def', description: 'Diesel Exhaust Fluid purchase' },
170
+ { label: 'Transfer', value: 'transfer', description: 'Fuel moved between assets/tanks' },
171
+ { label: 'Refund / Reversal', value: 'refund', description: 'Refunded or reversed transaction' },
172
+ ];
173
+
174
+ export const fuelReportStatuses = [
175
+ { label: 'Recorded', value: 'recorded', description: 'Fuel report has been logged' },
176
+ { label: 'Verified', value: 'verified', description: 'Fuel report verified by manager' },
177
+ { label: 'Disputed', value: 'disputed', description: 'Fuel report is under review' },
178
+ { label: 'Rejected', value: 'rejected', description: 'Fuel report was rejected' },
179
+ { label: 'Pending Review', value: 'pending', description: 'Awaiting manager verification' },
180
+ { label: 'Matched', value: 'matched', description: 'Matched to trip/vehicle automatically' },
181
+ { label: 'Unmatched', value: 'unmatched', description: 'No matching trip/vehicle found' },
182
+ { label: 'Flagged Anomaly', value: 'flagged', description: 'Outlier (volume, price, location, time)' },
183
+ { label: 'Reimbursed', value: 'reimbursed', description: 'Driver expense reimbursed' },
184
+ ];
185
+
186
+ export const issueStatuses = [
187
+ { label: 'Open', value: 'open', description: 'Issue is open and unresolved' },
188
+ { label: 'Pending', value: 'pending', description: 'Issue is logged but work has not yet started' },
189
+ { label: 'Triage', value: 'triage', description: 'Initial assessment and classification' },
190
+ { label: 'Backlogged', value: 'backlogged', description: 'Issue is prioritized but not currently scheduled' },
191
+ { label: 'In Progress', value: 'in_progress', description: 'Issue is being worked on' },
192
+ { label: 'Requires Update', value: 'requires_update', description: 'Additional information is needed to proceed' },
193
+ { label: 'In Review', value: 'in_review', description: 'Issue is under review or QA' },
194
+ { label: 'Re-opened', value: 're_opened', description: 'Issue was closed/resolved but has been reopened' },
195
+ { label: 'Awaiting Parts', value: 'awaiting_parts', description: 'Blocked pending required parts' },
196
+ { label: 'Awaiting Vendor', value: 'awaiting_vendor', description: 'Waiting on third-party action' },
197
+ { label: 'Monitoring', value: 'monitoring', description: 'Issue resolved but under observation' },
198
+ { label: 'Escalated', value: 'escalated', description: 'Issue escalated for higher review' },
199
+ { label: 'Duplicate', value: 'duplicate', description: 'Merged into an existing issue' },
200
+ { label: 'Pending Review', value: 'pending_review', description: 'Awaiting manager or stakeholder review' },
201
+ { label: 'Resolved', value: 'resolved', description: 'Issue has been resolved' },
202
+ { label: 'Completed', value: 'completed', description: 'Work is fully completed and verified' },
203
+ { label: 'Closed', value: 'closed', description: 'Issue is closed and no further action is needed' },
204
+ { label: "Won't Fix", value: 'wont_fix', description: 'Accepted risk—no action planned' },
205
+ { label: 'Canceled', value: 'canceled', description: 'Issue was canceled before completion' },
206
+ ];
207
+
208
+ export const issueTypes = [
209
+ { label: 'Vehicle', value: 'vehicle', description: 'Vehicle-related issues (mechanical, electrical, damage, accidents, etc.)' },
210
+ { label: 'Driver', value: 'driver', description: 'Driver-related issues (behavior, training, time management, documentation, safety)' },
211
+ { label: 'Route', value: 'route', description: 'Routing and navigation issues (deviation, blockages, weather, efficiency)' },
212
+ { label: 'Payload / Cargo', value: 'payload-cargo', description: 'Cargo issues (damage, loss, documentation, temperature control)' },
213
+ { label: 'Software / Technical', value: 'software-technical', description: 'System/app/device issues (bugs, outages, integrations, security)' },
214
+ { label: 'Operational', value: 'operational', description: 'Process, resource, vendor, or cost issues; compliance & paperwork' },
215
+ { label: 'Customer', value: 'customer', description: 'Customer service, billing, communications, and order accuracy' },
216
+ { label: 'Security', value: 'security', description: 'Unauthorized access, theft, vandalism, and data/security incidents' },
217
+ { label: 'Environmental / Sustainability', value: 'environmental-sustainability', description: 'Environmental hazards, emissions, waste, and green initiatives' },
218
+ ];
219
+
220
+ export const issueCategories = [
221
+ // Vehicle
222
+ { label: 'Mechanical Problems', value: 'mechanical_problems', description: 'Issues related to vehicle mechanical performance or breakdowns.', group: 'vehicle' },
223
+ { label: 'Electrical Faults', value: 'electrical_faults', description: 'Electrical/battery faults impacting operation.', group: 'vehicle' },
224
+ { label: 'Accidents & Collisions', value: 'accidents_collisions', description: 'Any accident/incident involving the vehicle.', group: 'vehicle' },
225
+ { label: 'Cosmetic Damages', value: 'cosmetic_damages', description: 'Non-critical bodywork or appearance issues.', group: 'vehicle' },
226
+ { label: 'Tire Issues', value: 'tire_issues', description: 'Wear, punctures, blowouts, alignment issues.', group: 'vehicle' },
227
+ { label: 'Electronics & Instruments', value: 'electronics_instruments', description: 'Dash, sensors, telematics hardware, or instrument faults.', group: 'vehicle' },
228
+ { label: 'Maintenance Alerts', value: 'maintenance_alerts', description: 'Scheduled/overdue maintenance notifications.', group: 'vehicle' },
229
+ { label: 'Fuel Efficiency Issues', value: 'fuel_efficiency', description: 'Abnormal consumption vs. baseline.', group: 'vehicle' },
230
+ { label: 'Fuel Shortage', value: 'fuel_shortage', description: 'Unexpected low fuel resulting in disruption.', group: 'vehicle' },
231
+
232
+ // Driver
233
+ { label: 'Behavior Concerns', value: 'behavior_concerns', description: 'Conduct, professionalism, or policy adherence.', group: 'driver' },
234
+ { label: 'Documentation', value: 'driver_documentation', description: 'Licenses, permits, or expired credentials.', group: 'driver' },
235
+ { label: 'Time Management', value: 'time_management', description: 'Delays, missed windows, or poor scheduling adherence.', group: 'driver' },
236
+ { label: 'Communication', value: 'driver_communication', description: 'Driver↔dispatch/customer communication gaps.', group: 'driver' },
237
+ { label: 'Training Needs', value: 'training_needs', description: 'Upskilling or re-training required.', group: 'driver' },
238
+ { label: 'Health & Safety Violations', value: 'health_safety', description: 'H&S non-compliance or incidents.', group: 'driver' },
239
+
240
+ // Route
241
+ { label: 'Route Deviation', value: 'route_deviation', description: 'Departed from planned route.', group: 'route' },
242
+ { label: 'Inefficient Routes', value: 'inefficient_routes', description: 'Unnecessary time/cost/mileage.', group: 'route' },
243
+ { label: 'Safety Concerns', value: 'route_safety', description: 'Hazards along the route.', group: 'route' },
244
+ { label: 'Blocked Routes', value: 'blocked_routes', description: 'Road closures, restrictions, or access denied.', group: 'route' },
245
+ { label: 'Unfavorable Weather Conditions', value: 'unfavorable_weather', description: 'Weather delays or hazards.', group: 'route' },
246
+ { label: 'Environmental Considerations', value: 'environmental_considerations', description: 'Environmental restrictions along route.', group: 'route' },
247
+
248
+ // Payload / Cargo
249
+ { label: 'Cargo Damage / Loss', value: 'cargo_damage', description: 'Goods damaged, spoiled, or missing.', group: 'payload-cargo' },
250
+ { label: 'Damaged Goods', value: 'damaged_goods', description: 'Goods received/delivered damaged.', group: 'payload-cargo' },
251
+ { label: 'Misplaced Goods', value: 'misplaced_goods', description: 'Misrouted or lost items.', group: 'payload-cargo' },
252
+ { label: 'Documentation Issues', value: 'cargo_documentation', description: 'Incorrect/missing cargo docs.', group: 'payload-cargo' },
253
+ { label: 'Temperature-Sensitive Goods', value: 'temperature_sensitive_goods', description: 'Cold-chain or thermal control failures.', group: 'payload-cargo' },
254
+ { label: 'Incorrect Cargo Loading', value: 'incorrect_cargo_loading', description: 'Poor load plan or unsafe stacking.', group: 'payload-cargo' },
255
+
256
+ // Software / Technical
257
+ { label: 'Bugs', value: 'bugs', description: 'Defects impacting workflow.', group: 'software-technical' },
258
+ { label: 'System Outage', value: 'system_outage', description: 'App/platform downtime or connectivity loss.', group: 'software-technical' },
259
+ { label: 'Integration Failures', value: 'integration_failures', description: '3rd-party/API sync or contract errors.', group: 'software-technical' },
260
+ { label: 'Performance', value: 'performance', description: 'Slow or degraded system behavior.', group: 'software-technical' },
261
+ { label: 'Feature Requests', value: 'feature_requests', description: 'Requested improvements or capabilities.', group: 'software-technical' },
262
+ { label: 'Security Vulnerabilities', value: 'security_vulnerabilities', description: 'Potential exploit or insecure config.', group: 'software-technical' },
263
+
264
+ // Operational
265
+ { label: 'Compliance', value: 'compliance', description: 'Regulatory or policy non-compliance.', group: 'operational' },
266
+ { label: 'Paperwork & Permits', value: 'paperwork_permits', description: 'Incorrect/expired documents or filings.', group: 'operational' },
267
+ { label: 'Resource Allocation', value: 'resource_allocation', description: 'Insufficient/incorrect staffing or assets.', group: 'operational' },
268
+ { label: 'Cost Overruns', value: 'cost_overruns', description: 'Budget/expense anomalies.', group: 'operational' },
269
+ { label: 'Communication', value: 'operational_communication', description: 'Internal comms failures.', group: 'operational' },
270
+ { label: 'Vendor Management Issues', value: 'vendor_management', description: '3rd-party coordination or SLA gaps.', group: 'operational' },
271
+
272
+ // Customer
273
+ { label: 'Customer Complaint', value: 'customer_complaint', description: 'Reported dissatisfaction or incident.', group: 'customer' },
274
+ { label: 'Service Quality', value: 'service_quality', description: 'Service below expectation.', group: 'customer' },
275
+ { label: 'Billing Discrepancies', value: 'billing_discrepancies', description: 'Invoice errors or disputes.', group: 'customer' },
276
+ { label: 'Communication Breakdown', value: 'customer_communication', description: 'Customer comms issues.', group: 'customer' },
277
+ { label: 'Order Errors', value: 'order_errors', description: 'Wrong item/quantity/address/etc.', group: 'customer' },
278
+
279
+ // Security
280
+ { label: 'Unauthorized Access', value: 'unauthorized_access', description: 'Intrusion or improper access.', group: 'security' },
281
+ { label: 'Theft / Vandalism', value: 'theft', description: 'Stolen assets or malicious damage.', group: 'security' },
282
+ { label: 'Data Concerns', value: 'data_concerns', description: 'Potential or actual data breach.', group: 'security' },
283
+ { label: 'Physical Security', value: 'physical_security', description: 'Facility or cargo security weaknesses.', group: 'security' },
284
+ { label: 'Data Integrity Issues', value: 'data_integrity', description: 'Corruption or inconsistency of data.', group: 'security' },
285
+
286
+ // Environmental / Sustainability
287
+ { label: 'Fuel Consumption', value: 'fuel_consumption', description: 'Excessive or abnormal usage patterns.', group: 'environmental-sustainability' },
288
+ { label: 'Carbon Footprint', value: 'carbon_footprint', description: 'Emissions or footprint tracking issues.', group: 'environmental-sustainability' },
289
+ { label: 'Waste Management', value: 'waste_management', description: 'Handling and disposal of waste.', group: 'environmental-sustainability' },
290
+ { label: 'Green Initiatives Opportunities', value: 'green_initiatives', description: 'Improvements to sustainability programs.', group: 'environmental-sustainability' },
291
+ ];
292
+
293
+ export const issuePriorities = [
294
+ // Severity levels
295
+ { label: 'Low', value: 'low', description: 'Minor issue with little to no operational impact.', group: 'severity' },
296
+ { label: 'Medium', value: 'medium', description: 'Moderate issue requiring attention but not urgent.', group: 'severity' },
297
+ { label: 'High', value: 'high', description: 'Serious issue affecting operations that needs prompt resolution.', group: 'severity' },
298
+ { label: 'Critical', value: 'critical', description: 'Severe issue causing major disruption; requires immediate resolution.', group: 'severity' },
299
+
300
+ // Planned / Informational priorities
301
+ { label: 'Scheduled Maintenance', value: 'scheduled_maintenance', description: 'Planned maintenance tasks or service checks.', group: 'planned' },
302
+ { label: 'Operational Suggestion', value: 'operational_suggestion', description: 'Improvement idea or recommendation, not an urgent issue.', group: 'planned' },
303
+ ];
304
+
305
+ export const placeTypes = [
306
+ { label: 'Warehouse', value: 'warehouse', description: 'Storage or distribution warehouse' },
307
+ { label: 'Depot', value: 'depot', description: 'Operational depot or hub' },
308
+ { label: 'Fuel Station', value: 'fuel_station', description: 'Refueling station' },
309
+ { label: 'Checkpoint', value: 'checkpoint', description: 'Border or security checkpoint' },
310
+ { label: 'Customer Location', value: 'customer_location', description: 'Customer delivery address' },
311
+ { label: 'Vendor Facility', value: 'vendor_facility', description: 'Vendor-owned site' },
312
+ { label: 'Port', value: 'port', description: 'Shipping or receiving port' },
313
+ { label: 'Airport', value: 'airport', description: 'Air freight hub' },
314
+ { label: 'Distribution Center', value: 'distribution_center', description: 'Regional DC / fulfillment' },
315
+ { label: 'Cross-dock', value: 'cross_dock', description: 'Immediate transfer; minimal storage' },
316
+ { label: 'Micro-hub', value: 'micro_hub', description: 'Urban mini-warehouse for last-mile' },
317
+ { label: 'Rest Area / Layover', value: 'rest_area', description: 'Driver rest/layover location' },
318
+ { label: 'Weigh Station', value: 'weigh_station', description: 'Regulatory weigh site' },
319
+ { label: 'Toll Plaza', value: 'toll_plaza', description: 'Toll payment checkpoint' },
320
+ { label: 'Service Center', value: 'service_center', description: 'Repair/maintenance facility' },
321
+ { label: 'Charging Station', value: 'charging_station', description: 'EV charging location' },
322
+ ];
323
+
324
+ export const placeStatuses = [
325
+ { label: 'Active', value: 'active', description: 'Place is active and valid' },
326
+ { label: 'Inactive', value: 'inactive', description: 'Place is no longer used' },
327
+ { label: 'Restricted', value: 'restricted', description: 'Place has restricted access' },
328
+ { label: 'Closed', value: 'closed', description: 'Place is permanently closed' },
329
+ { label: 'New', value: 'new', description: 'Recently created—details may be incomplete' },
330
+ { label: 'Temporarily Closed', value: 'temp_closed', description: 'Closed for a limited period' },
331
+ { label: 'Under Construction', value: 'under_construction', description: 'Site works ongoing' },
332
+ { label: 'Permit Required', value: 'permit_required', description: 'Entry requires permit/clearance' },
333
+ { label: 'Approach with Caution', value: 'approach_caution', description: 'Known access difficulties or hazards' },
334
+ ];
335
+
336
+ export const routeProfileOptions = [
337
+ { label: 'Driving', value: 'driving', description: 'Optimized routes for motor vehicles.' },
338
+ { label: 'Bicycle', value: 'bicycle', description: 'Optimized routes for bicycles with bike paths where available.' },
339
+ { label: 'Walking', value: 'walking', description: 'Pedestrian-friendly routes suitable for walking.' },
340
+ ];
341
+
342
+ export const podOptions = [
343
+ { label: 'Scan', value: 'scan', description: 'Proof of delivery captured by scanning a QR code or barcode.' },
344
+ { label: 'Signature', value: 'signature', description: 'Proof of delivery confirmed with recipient signature.' },
345
+ { label: 'Photo', value: 'photo', description: 'Proof of delivery recorded with a photo of the delivered goods.' },
346
+ { label: 'SMS', value: 'sms', description: 'Proof of delivery sent and confirmed via SMS verification.' },
347
+ ];
348
+
349
+ export const serviceRateCalculationMethods = [
350
+ { label: 'Per Meter', value: 'per_meter', description: 'Calculate cost based on the number of meters traveled.' },
351
+ { label: 'Fixed Rate', value: 'fixed_meter', description: 'Charge a fixed rate per meter regardless of distance.' },
352
+ { label: 'Parcel Rate', value: 'parcel', description: 'Charge a dynamic rate based on parcel/payload weight and dimensions.' },
353
+ { label: 'Per Drop-off', value: 'per_drop', description: 'Cost applied per drop-off point.' },
354
+ { label: 'Algorithm', value: 'algo', description: 'Cost calculated dynamically using algorithmic logic.' },
355
+ ];
356
+
357
+ export const serviceRateCodCalculationMethods = [
358
+ { label: 'Flat Fee', value: 'flat', description: 'A fixed fee applied to all COD transactions.' },
359
+ { label: 'Percentage', value: 'percentage', description: 'Fee calculated as a percentage of the COD amount.' },
360
+ ];
361
+
362
+ export const serviceRatePeakHourCalculationMethods = [
363
+ { label: 'Flat Fee', value: 'flat', description: 'A fixed surcharge applied during peak hours.' },
364
+ { label: 'Percentage', value: 'percentage', description: 'A surcharge calculated as a percentage of the base fare during peak hours.' },
365
+ ];
366
+
367
+ export const distanceUnits = [
368
+ { label: 'Meter', value: 'm', description: 'Distances measured in meters.' },
369
+ { label: 'Kilometer', value: 'km', description: 'Distances measured in kilometers.' },
370
+ { label: 'Feet', value: 'ft', description: 'Distances measured in feet.' },
371
+ { label: 'Yard', value: 'yd', description: 'Distances measured in yards.' },
372
+ { label: 'Mile', value: 'mi', description: 'Distances measured in miles.' },
373
+ ];
374
+
375
+ export const longDistanceUnits = [
376
+ { label: 'Kilometer', value: 'km', description: 'Distances measured in kilometers.' },
377
+ { label: 'Mile', value: 'mi', description: 'Distances measured in miles.' },
378
+ ];
379
+
380
+ export const dimensionUnits = [
381
+ { label: 'Centimeters', value: 'cm', description: 'Measurements in centimeters.' },
382
+ { label: 'Inches', value: 'in', description: 'Measurements in inches.' },
383
+ { label: 'Feet', value: 'ft', description: 'Measurements in feet.' },
384
+ { label: 'Millimeters', value: 'mm', description: 'Measurements in millimeters.' },
385
+ { label: 'Meters', value: 'm', description: 'Measurements in meters.' },
386
+ { label: 'Yards', value: 'yd', description: 'Measurements in yards.' },
387
+ ];
388
+
389
+ export const weightUnits = [
390
+ { label: 'Grams', value: 'g', description: 'Weight in grams.' },
391
+ { label: 'Ounces', value: 'oz', description: 'Weight in ounces.' },
392
+ { label: 'Pounds', value: 'lb', description: 'Weight in pounds.' },
393
+ { label: 'Kilograms', value: 'kg', description: 'Weight in kilograms.' },
394
+ ];
395
+
396
+ export const serviceAreaTypes = [
397
+ { label: 'Neighborhood', value: 'neighborhood', description: 'A small, localized area within a city, typically residential or community-focused.' },
398
+ { label: 'City', value: 'city', description: 'An urban area with its own municipal government and defined boundaries.' },
399
+ { label: 'State', value: 'state', description: 'A major administrative division within a country, often with its own governing authority.' },
400
+ { label: 'Province', value: 'province', description: 'A territorial division within a country, similar to a state, common in non-U.S. regions.' },
401
+ { label: 'Region', value: 'region', description: 'A larger geographic area that may include multiple cities, states, or provinces.' },
402
+ { label: 'Country', value: 'country', description: 'A sovereign nation with defined borders and central governance.' },
403
+ { label: 'Continent', value: 'continent', description: 'A global landmass encompassing multiple countries (e.g., Asia, Europe, Africa).' },
404
+ ];
405
+
406
+ export default function fleetOpsOptions(key) {
407
+ const allOptions = {
408
+ driverTypes,
409
+ driverStatuses,
410
+ vehicleTypes,
411
+ vehicleStatuses,
412
+ vendorTypes,
413
+ vendorStatuses,
414
+ fleetTypes,
415
+ fleetStatuses,
416
+ contactTypes,
417
+ contactStatuses,
418
+ fuelReportTypes,
419
+ fuelReportStatuses,
420
+ issueTypes,
421
+ issueStatuses,
422
+ issueCategories,
423
+ issueCategoriesPowerGroups: toPowerSelectGroups(issueCategories),
424
+ issuePriorities,
425
+ placeTypes,
426
+ placeStatuses,
427
+ routeProfileOptions,
428
+ podOptions,
429
+ serviceRateCalculationMethods,
430
+ serviceRateCodCalculationMethods,
431
+ serviceRatePeakHourCalculationMethods,
432
+ distanceUnits,
433
+ longDistanceUnits,
434
+ dimensionUnits,
435
+ weightUnits,
436
+ serviceAreaTypes,
437
+ };
438
+
439
+ return allOptions[key] ?? [];
440
+ }
@@ -0,0 +1,124 @@
1
+ /* eslint-disable no-unused-vars */
2
+ import { MultiPolygon, Polygon, Circle, Feature, FeatureCollection } from '@fleetbase/fleetops-data/utils/geojson';
3
+ import { isArray } from '@ember/array';
4
+ import wrapCoordinates from './leaflet-wrap-coordinates';
5
+
6
+ export function toPos(ll) {
7
+ // Accept Leaflet LatLng or plain {lat,lng}
8
+ return isArray(ll) ? [ll[1], ll[0]] : [ll.lng, ll.lat];
9
+ }
10
+
11
+ /** Ensure we always have an array-of-rings (each ring = LatLng[]) */
12
+ function normalizeToRings(latlngs) {
13
+ if (!latlngs) return [];
14
+
15
+ // Simple polygon given as [LatLng,...]
16
+ if (isArray(latlngs) && !isArray(latlngs[0])) {
17
+ return [latlngs];
18
+ }
19
+
20
+ // Already [ [LatLng,...], ... ]
21
+ if (isArray(latlngs) && isArray(latlngs[0]) && !isArray(latlngs[0][0])) {
22
+ return latlngs;
23
+ }
24
+
25
+ // Multipolygon case handled elsewhere
26
+ return latlngs;
27
+ }
28
+
29
+ export function closeRing(coords) {
30
+ if (!coords.length) return coords;
31
+ const first = coords[0];
32
+ const last = coords[coords.length - 1];
33
+ if (first[0] !== last[0] || first[1] !== last[1]) {
34
+ return [...coords, first];
35
+ }
36
+ return coords;
37
+ }
38
+
39
+ export function ringsFromLatLngs(latlngs) {
40
+ const rings = normalizeToRings(latlngs);
41
+ return rings.map((ring) => closeRing(ring.map(toPos)));
42
+ }
43
+
44
+ /** Normalize Leaflet’s toGeoJSON output to a Feature */
45
+ export function getGeoJsonFeature(geojson) {
46
+ if (!geojson) return null;
47
+
48
+ if (geojson.type === 'Feature') return geojson;
49
+
50
+ if (geojson.type === 'FeatureCollection' && isArray(geojson.features) && geojson.features.length) {
51
+ return geojson.features[0];
52
+ }
53
+
54
+ // Geometry -> Feature wrapper (safe fallback)
55
+ if (geojson.type && geojson.coordinates) {
56
+ return { type: 'Feature', geometry: geojson, properties: {} };
57
+ }
58
+
59
+ return null;
60
+ }
61
+
62
+ /** ---- Polygon ---- */
63
+ export function createGeoJsonPolygon(layer, { properties } = {}) {
64
+ const latlngs = layer.getLatLngs?.();
65
+ if (!latlngs || !latlngs.length) return null;
66
+
67
+ const coordinates = wrapCoordinates(ringsFromLatLngs(latlngs));
68
+ return new Polygon(coordinates);
69
+ }
70
+
71
+ /** ---- MultiPolygon ---- */
72
+ export function createGeoJsonMultiPolygon(layer, { properties } = {}) {
73
+ // Leaflet MultiPolygon: [ [outer,hole,...], [outer,hole,...], ... ]
74
+ const groups = layer.getLatLngs?.();
75
+ if (!groups || !groups.length) return null;
76
+
77
+ const multiCoords = groups.map((g) => ringsFromLatLngs(g));
78
+ return new MultiPolygon(wrapCoordinates(multiCoords));
79
+ }
80
+
81
+ /** ---- Circle ---- */
82
+ export function createGeoJsonCircle(layer, { properties, steps = 64 } = {}) {
83
+ const center = toPos(layer.getLatLng());
84
+ const radius = layer.getRadius?.(); // meters
85
+
86
+ return new Circle(center, radius, steps);
87
+ }
88
+
89
+ /** ---- Catch-all: pick helper by Leaflet layer type ---- */
90
+ export function createGeoJsonFromLayer(layer, options = {}) {
91
+ const { layerType: type } = options;
92
+
93
+ if (type === 'circle' || type === 'circlemarker') {
94
+ return createGeoJsonCircle(layer, options);
95
+ }
96
+
97
+ // A rectangle is just a single Polygon (one outer ring)
98
+ if (type === 'polygon' || type === 'rectangle') {
99
+ return createGeoJsonPolygon(layer, options);
100
+ }
101
+
102
+ // Fallback to Leaflet’s own GeoJSON
103
+ const feature = getGeoJsonFeature(layer.toGeoJSON?.());
104
+ if (!feature) return null;
105
+
106
+ switch (feature.geometry?.type) {
107
+ case 'Polygon':
108
+ return new Polygon(feature.geometry.coordinates);
109
+ case 'MultiPolygon':
110
+ return new MultiPolygon(feature.geometry.coordinates);
111
+ default:
112
+ return new Feature(feature);
113
+ }
114
+ }
115
+
116
+ /** ---- Batching ---- */
117
+ export function createFeatureCollectionFromLayers(layers, options) {
118
+ const features = []
119
+ .concat(layers || [])
120
+ .map((l) => createGeoJsonFromLayer(l, options))
121
+ .filter(Boolean);
122
+
123
+ return new FeatureCollection({ features });
124
+ }
@@ -0,0 +1,56 @@
1
+ const L = window.leaflet || window.L;
2
+
3
+ export function findLayer(map, findCallback) {
4
+ const layers = [];
5
+
6
+ map.eachLayer((layer) => {
7
+ layers.push(layer);
8
+ });
9
+
10
+ if (typeof findCallback === 'function') {
11
+ return layers.find(findCallback);
12
+ }
13
+
14
+ return null;
15
+ }
16
+
17
+ export function getLayerById(map, layerId) {
18
+ let targetLayer = null;
19
+
20
+ map.eachLayer((layer) => {
21
+ // Check if the layer has an ID property
22
+ if (layer.options && layer.options.id === layerId) {
23
+ targetLayer = layer;
24
+ }
25
+ });
26
+
27
+ return targetLayer;
28
+ }
29
+
30
+ export function flyToLayer(map, layer, zoom, options = {}) {
31
+ if (!map || !layer) return;
32
+
33
+ let targetLatLng = layer instanceof L.Marker ? layer.getLatLng() : layer.getCenter ? layer.getCenter() : layer.getBounds ? layer.getBounds().getCenter() : null;
34
+ if (!targetLatLng) return;
35
+
36
+ const dur = options.duration ?? 1.25;
37
+
38
+ // If any padding is requested, use flyToBounds on a zero-area bounds
39
+ if (options.padding || options.paddingTopLeft || options.paddingBottomRight) {
40
+ const bounds = L.latLngBounds(targetLatLng, targetLatLng);
41
+ map.flyToBounds(bounds, {
42
+ padding: options.padding,
43
+ paddingTopLeft: options.paddingTopLeft,
44
+ paddingBottomRight: options.paddingBottomRight,
45
+ maxZoom: zoom ?? map.getZoom(),
46
+ animate: true,
47
+ duration: dur,
48
+ });
49
+ } else {
50
+ map.flyTo(targetLatLng, zoom, { duration: dur });
51
+ }
52
+
53
+ if (typeof options.moveend === 'function') {
54
+ map.once('moveend', () => options.moveend(layer));
55
+ }
56
+ }