{"version":3,"file":"assets/chunk.3a38bda4a288e4c7c4fd.js","mappings":"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","sources":["./components/fleet/stats-bar/index.hbs","./components/fleet/stats-bar/index.ts","./components/map/fleet-map/index.hbs","./components/map/fleet-map/index.ts","./components/fleet/vehicle-item/index.hbs","./components/fleet/vehicle-item/index.ts","./components/fleet/vehicle-list/index.hbs","./components/fleet/vehicle-list/index.ts","./fleet/summary/template.hbs","./components/fleet/trip-history/trip-item/index.hbs","./components/fleet/trip-history/trip-item/index.ts","./components/fleet/trip-history/trip-day/index.hbs","./components/fleet/trip-history/trip-day/index.ts","./components/map/trip-map/index.hbs","./components/map/trip-map/index.ts","./components/fleet/trip-history/trip-map/index.hbs","./components/fleet/trip-history/trip-map/index.ts","./fleet/trip-history/template.hbs","src/components/pagination-bar.hbs","src/components/pagination-bar.ts","./assets/_route_/fleet.reports.js","./fleet/reports/route.ts","./fleet/summary/controller.ts","./fleet/summary/route.ts","./components/fleet/filter-bar/index.hbs","./components/fleet/filter-bar/index.ts","../../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/fp/setMilliseconds/index.js","../../../../../node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/fp/_lib/convertToFP/index.js","./fleet/trip-history/controller.ts","./fleet/trip-history/route.ts","./helpers/add.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\n
\\n
{{tc this \\'dailySummary\\'}}
\\n\\n
\\n \\n {{t \\'components.fleet.stats-bar.trips\\' numberOfTrips=this.fleetSystemStatsTrips}}\\n
\\n\\n
\\n \\n {{#if @isMetric}}\\n {{t \\'components.fleet.stats-bar.kilometers\\' distanceDriven=this.fleetSystemStatsDistanceDriven}}\\n {{else}}\\n {{t \\'components.fleet.stats-bar.miles\\' distanceDriven=this.fleetSystemStatsDistanceDriven}}\\n {{/if}}\\n
\\n\\n
\\n \\n {{#if @isMetric}}\\n {{t \\'components.fleet.stats-bar.liters\\' fuelUsed=this.fleetSystemStatsFuel}}\\n {{else}}\\n {{t \\'components.fleet.stats-bar.gallons\\' fuelUsed=this.fleetSystemStatsFuel}}\\n {{/if}}\\n
\\n
\\n
\\n\",{ moduleName: \"customer-site/components/fleet/stats-bar/index.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './index.hbs'; */\nimport Component from '@glimmer/component';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { roundDistanceDriven, roundFuelUsed } from 'customer-site/utils/fleet';\nimport { intlPath } from '@adc/i18n/path';\n\nimport './_style.scss';\nimport type ADCIntlService from '@adc/i18n/services/adc-intl';\nimport type FleetVehicle from 'customer-site/models/fleet/fleet-vehicle';\n\ninterface FleetStatsBarComponentArgs {\n vehicles: FleetVehicle[];\n isMetric: boolean;\n}\n\n@intlPath({ path: 'fleet/stats-bar' })\nexport default class FleetStatsBarComponent extends Component {\n @service declare intl: ADCIntlService;\n\n private getFleetStats(name: 'tripsSinceBeginningOfDay' | 'distanceDriven' | 'fuelUsedInLastDay'): number {\n return this.args.vehicles?.reduce((sum, v) => sum + v[name], 0) || 0;\n }\n\n @computed('args.vehicles.@each.tripsSinceBeginningOfDay')\n get fleetSystemStatsTrips(): number {\n return this.getFleetStats('tripsSinceBeginningOfDay');\n }\n\n @computed('args.vehicles.@each.distanceDriven')\n get fleetSystemStatsDistanceDriven(): string {\n return roundDistanceDriven(this.getFleetStats('distanceDriven'));\n }\n\n @computed('args.vehicles.@each.fuelUsedInLastDay')\n get fleetSystemStatsFuel(): string {\n return roundFuelUsed(this.getFleetStats('fuelUsedInLastDay'));\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n 'Fleet::StatsBar': typeof FleetStatsBarComponent;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n \\n\\n\",{ moduleName: \"customer-site/components/map/fleet-map/index.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './index.hbs'; */\nimport { isEnterCode } from '@adc/ember-utils/utils/a11y';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport BaseMapComponent from 'customer-site/components/map/base-map/index';\nimport { escapeHtml } from 'customer-site/utils/strings';\nimport { intlPath } from '@adc/i18n/path';\n\nimport './_style.scss';\nimport type ADCIntlService from '@adc/i18n/services/adc-intl';\nimport type NotificationManager from '@adc/ui-components/services/notification-manager';\nimport type {\n GeographicDatum,\n BaseMapComponentArgs,\n BaseMapComponentSignature\n} from 'customer-site/components/map/base-map/index';\nimport type IdentityManager from 'customer-site/services/identity-manager';\n\n// Constants\nconst SELECTED_VEHICLE_MAX_ZOOM = 16;\nconst ANIMATION_DURATION = 2000;\n\ninterface FleetMapComponentArgs extends BaseMapComponentArgs {\n hasAllAwareUI: boolean;\n selectedVehicleDeviceId: number | undefined;\n selectMarker: (deviceId: number | undefined, event: Event) => void;\n}\n\ninterface FleetMapSignature extends BaseMapComponentSignature {\n Args: FleetMapComponentArgs;\n}\n\n/**\n * @classdesc\n * Component to house all functionality for initializing and displaying map of fleet vehicles.\n */\n@intlPath({ path: 'map/fleet-map' })\nexport default class FleetMapComponent extends BaseMapComponent {\n @service declare identityManager: IdentityManager;\n @service declare intl: ADCIntlService;\n @service declare notificationManager: NotificationManager;\n\n get mapMarkers(): GeographicDatum[] {\n if (!this.args.geographicData) {\n return [];\n }\n\n return this.args.geographicData.filter((d) => d.longitude && d.latitude);\n }\n\n @action zoomAndCenter(geographicData: GeographicDatum[]): void {\n const selectedMarker = geographicData.find((g) => g.details?.deviceId === this.args.selectedVehicleDeviceId);\n if (selectedMarker && this.hMap) {\n if (selectedMarker.latitude !== 0 && selectedMarker.longitude !== 0) {\n this.animateCenter(this.hMap, selectedMarker);\n } else {\n this.notificationManager.addInfo(this.intl.tc(this, 'outdatedLocation'));\n }\n }\n }\n\n clearAndUpdateMarkers(updatedGeographicData: GeographicDatum[]): void {\n if (!this.args.geographicData || !this.hMap) {\n return;\n }\n\n if (this.markerList.length > 0) {\n this.moveMarkers(updatedGeographicData.filter((d) => d.longitude && d.latitude));\n } else {\n const geographicData = updatedGeographicData.filter((d) => d.longitude && d.latitude);\n\n // Add data to the map\n if (this.args.shouldCluster) {\n this.startClustering(this.hMap, geographicData);\n } else {\n this.addDomMarkers(geographicData);\n }\n\n // Set map zoom\n this.setDefaultZoom(geographicData, false);\n }\n }\n\n /**\n * Creates the icon for the DomMarker for the given geographicDatum.\n */\n getClickableDomIcon(geographicDatum: GeographicDatum): H.map.DomIcon {\n const { iconClass, id, style } = this.args.getIconClassAndId(geographicDatum),\n iconText = geographicDatum[this.args.markerLabelKey!],\n escapedIconText = escapeHtml(typeof iconText === 'string' ? iconText : ''),\n domElement = document.createElement('button'),\n deviceId = geographicDatum.details?.deviceId;\n domElement.className = 'map-marker-btn';\n domElement.id = `${deviceId ?? geographicDatum.id}`;\n domElement.innerHTML = `\n \n \n ${escapedIconText}\n \n `;\n\n // Add accessibility attributes\n domElement.setAttribute('tabindex', '0'); // Make it focusable\n domElement.setAttribute('aria-label', `${deviceId ? `Map marker for ${deviceId}` : 'Map marker'}`);\n\n document.addEventListener('keydown', (event: KeyboardEvent) => {\n if (document.activeElement?.id === domElement.id && isEnterCode(event.key)) {\n this.args.selectMarker(geographicDatum.details?.deviceId, event);\n }\n });\n\n document.addEventListener('click', (event: MouseEvent) => {\n if (document.activeElement?.id === domElement.id) {\n this.args.selectMarker(geographicDatum.details?.deviceId, event);\n }\n });\n\n return new H.map.DomIcon(domElement);\n }\n\n addDomMarkers(geographicData: GeographicDatum[]): void {\n let markerZIndex = geographicData.length * 2, // Start with the highest z-index for markers\n headingZIndex = markerZIndex - 1; // Start with the highest z-index for headings, just below the first marker\n\n const newMarkers = geographicData.map((geographicDatum) => {\n const { latitude, longitude } = geographicDatum,\n domMarker = new H.map.DomMarker(\n {\n lat: latitude,\n lng: longitude\n },\n {\n icon: this.args.hasAllAwareUI\n ? this.getClickableDomIcon(geographicDatum)\n : this.getDomIcon(geographicDatum)\n }\n );\n\n domMarker.addEventListener(...this.getEventListenerArgs(geographicDatum));\n !!this.shouldAttachLabel && this.attachLabelToMarker(domMarker, geographicDatum);\n\n // Set z-index for each Marker to avoid layer flipping between icons of multiple vehicles that are nearby when zooming\n domMarker.setZIndex(markerZIndex);\n markerZIndex -= 2;\n\n return domMarker;\n });\n\n this.markerList = [...this.markerList, ...newMarkers];\n\n const headings = geographicData.map((geographicDatum) => {\n const { latitude, longitude } = geographicDatum;\n\n // create dom marker and add it to the map\n const marker = new H.map.DomMarker(\n { lat: latitude, lng: longitude },\n {\n icon: this.getHeadingIcon(geographicDatum)\n }\n );\n\n // Set z-index for each Heading to avoid layer flipping between icons of multiple vehicles that are nearby when zooming\n marker.setZIndex(headingZIndex);\n headingZIndex -= 2;\n\n return marker;\n });\n this.headingList = [...this.headingList, ...headings];\n this.hMap?.addObjects(this.headingList);\n\n // Add markers to map\n this.hMap?.addObjects(this.markerList);\n }\n\n private moveMarkers(geoData: GeographicDatum[]): void {\n const maxI = this.markerList.length,\n maxJ = geoData.length,\n bubbleLabels = this.hUi?.getBubbles() ?? []; // If marker list is not empty, then getBubbles should not be empty.\n\n let i = 0,\n j = 0;\n\n while (i < maxI && j < maxJ) {\n const vehicleMarkericon = this.getClickableDomIcon(geoData[j]);\n const headingMarkerIcon = this.getHeadingIcon(geoData[j]);\n this.headingList[i].setIcon(headingMarkerIcon);\n this.headingList[i].setGeometry({ lat: geoData[j].latitude, lng: geoData[j].longitude });\n\n this.markerList[i].setIcon(vehicleMarkericon);\n this.markerList[i].setGeometry({ lat: geoData[j].latitude, lng: geoData[j].longitude });\n\n bubbleLabels[i].setPosition({ lat: geoData[j].latitude, lng: geoData[j].longitude });\n bubbleLabels[i].setContent(this.getInfoBubbleContent(geoData[j].details));\n i++;\n j++;\n }\n\n if (maxI < maxJ) {\n this.addDomMarkers(geoData.slice(j));\n } else if (maxI > maxJ) {\n let objToRemove = this.markerList.slice(i);\n this.markerList = this.markerList.slice(0, i);\n objToRemove = objToRemove.concat(this.headingList.slice(i));\n this.headingList = this.headingList.slice(0, i);\n\n objToRemove.forEach((obj) => obj.dispose());\n this.hUi\n ?.getBubbles()\n .slice(i)\n .map((item) => this.hUi?.removeBubble(item));\n }\n }\n\n animateCenter(map: H.Map, end: GeographicDatum): void {\n const startTime = performance.now();\n const start = map.getCenter();\n const startZoom = map.getZoom();\n /**\n * Easing function for smooth animation.\n *\n * - Takes in the normalized elapsed time (`t`) over the animation duration.\n * - Starts slow and gradually speeds up when `t < 0.5` (ease-in).\n * - Slows down after `t >= 0.5` (ease-out).\n * - Returns a number between 0 and 1 that represents the progress of the animation at time `t`.\n *\n * @param t - Normalized time (a value between 0 and 1).\n * @returns The eased progress value (a value between 0 and 1).\n */\n function easeInOutQuad(t: number): number {\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n }\n function step(currentTime: number): void {\n const elapsed = currentTime - startTime;\n // Normalize elapsed time (0 to 1) over the defined animation duration.\n const t = Math.min(elapsed / ANIMATION_DURATION, 1);\n const easedT = easeInOutQuad(t);\n\n // Calculate the right latitude, longitude and zoom based on the eased progress.\n const lat = start.lat + (end.latitude - start.lat) * easedT;\n const lng = start.lng + (end.longitude - start.lng) * easedT;\n const zoom = startZoom + (SELECTED_VEHICLE_MAX_ZOOM - startZoom) * easedT;\n\n map.setCenter({ lat, lng });\n map.setZoom(zoom);\n\n // Continue the animation if not complete.\n if (t < 1) {\n requestAnimationFrame(step);\n }\n }\n\n requestAnimationFrame(step);\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n 'Map::FleetMap': typeof FleetMapComponent;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#if @hasAllAwareUI}}\\n \\n{{else}}\\n
\\n {{#let @vehicle.isEngineOn as |isOn|}}\\n
\\n

{{@vehicleIndex}}

\\n
\\n

{{@vehicle.name}}

\\n

\\n {{#if @vehicle.isEngineOn}}\\n {{ tc this \\'driving\\'}}\\n {{else if this.showCoordinates}}\\n {{this.dmsCoordinates.displayString}}\\n {{else}}\\n {{this.locationAddressText}}\\n {{/if}}\\n

\\n
\\n
\\n
\\n
\\n

\\n {{@vehicle.status}}\\n
\\n \\n

\\n
\\n
\\n
\\n
\\n {{#if @vehicle.fuelLevel}}\\n

\\n {{this.fuelLevelText}}\\n
\\n {{tc this \\'fuelLevel\\'}}\\n

\\n {{/if}}\\n
\\n
\\n
\\n
\\n

\\n \\n {{@vehicle.numberOfAlerts}}\\n \\n
\\n {{tc this \\'alerts\\' numAlerts=@vehicle.numberOfAlerts}}\\n

\\n
\\n
\\n {{/let}}\\n
\\n{{/if}}\\n\",{ moduleName: \"customer-site/components/fleet/vehicle-item/index.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './index.hbs'; */\nimport Component from '@glimmer/component';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { isEmpty } from '@ember/utils';\nimport { getDMSStringFromCoordinates } from 'customer-site/utils/fleet';\nimport { intlPath } from '@adc/i18n/path';\n\nimport type FleetVehicle from 'customer-site/models/fleet/fleet-vehicle';\nimport './_style.scss';\nimport type ADCIntlService from '@adc/i18n/services/adc-intl';\n\nexport interface FleetVehicleItemSignature {\n Element: HTMLButtonElement;\n Args: {\n vehicle: FleetVehicle;\n vehicleIndex?: number;\n canViewCarAddress: boolean;\n hasAllAwareUI: boolean;\n };\n}\n\n@intlPath({ path: 'fleet/vehicle-item' })\nexport default class FleetVehicleItemComponent extends Component {\n @service declare intl: ADCIntlService;\n\n vehicle: FleetVehicle = this.args.vehicle;\n\n showCoordinates: boolean =\n !this.vehicle.isEngineOn &&\n isEmpty(this.vehicle.address) &&\n this.vehicle.longitude !== undefined &&\n this.vehicle.longitude !== 0 &&\n this.vehicle.latitude !== undefined &&\n this.vehicle.latitude !== 0;\n\n @computed('vehicle.{longitude,latitude,address}')\n get locationAddressText(): string {\n const vehicle = this.vehicle;\n\n if (!isEmpty(vehicle.address)) {\n return vehicle.address;\n }\n\n return '';\n }\n\n @computed('vehicle.{longitude,latitude}')\n get dmsCoordinates(): { displayString: string; ariaString: string } {\n const vehicle = this.vehicle;\n\n return getDMSStringFromCoordinates(vehicle.latitude, vehicle.longitude);\n }\n\n @computed('args.vehicle.fuelLevel')\n get fuelLevelText(): string {\n const fuelLevel = this.args.vehicle.fuelLevel;\n if (fuelLevel === null || fuelLevel === undefined) {\n return this.intl.tc(this, 'unavailableFuel');\n } else if (fuelLevel < 12.5) {\n return this.intl.tc(this, 'lowFuel');\n } else if (fuelLevel >= 87.5) {\n return this.intl.tc(this, 'fullTank');\n }\n\n let fuelLevelFraction;\n\n switch (true) {\n case fuelLevel <= 25:\n fuelLevelFraction = '1/4';\n break;\n case fuelLevel <= 37.5:\n fuelLevelFraction = '3/8';\n break;\n case fuelLevel <= 50:\n fuelLevelFraction = '1/2';\n break;\n case fuelLevel <= 62.5:\n fuelLevelFraction = '5/8';\n break;\n case fuelLevel <= 75:\n fuelLevelFraction = '3/4';\n break;\n case fuelLevel <= 87.5:\n fuelLevelFraction = '7/8';\n break;\n }\n\n return `${fuelLevelFraction} ${this.intl.tc(this, 'tank')}`;\n }\n\n @computed('args.vehicle.fuelLevel')\n get fuelLevelClass(): string {\n const fuelLevel = this.args.vehicle.fuelLevel;\n\n if (fuelLevel === null || fuelLevel === undefined) {\n return '';\n } else if (fuelLevel <= 12.5) {\n return 'fuel-level-low';\n }\n\n return 'fuel-level-normal';\n }\n\n get vehicleIdClass(): string {\n const vehicleIndex = this.args.vehicleIndex;\n\n if (!vehicleIndex) return '';\n\n return vehicleIndex > 999 ? 'high' : vehicleIndex > 99 ? 'medium' : 'low';\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n 'Fleet::VehicleItem': typeof FleetVehicleItemComponent;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\n
\\n {{#if @vehicles}}\\n {{#each @vehicles as |vehicle index|}}\\n \\n {{/each}}\\n {{/if}}\\n
\\n {{#unless @vehicles}}\\n

{{tc this \\'noVehicles\\'}}

\\n {{/unless}}\\n
\",{ moduleName: \"customer-site/components/fleet/vehicle-list/index.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './index.hbs'; */\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { intlPath } from '@adc/i18n/path';\n\nimport './_style.scss';\nimport type ADCIntlService from '@adc/i18n/services/adc-intl';\nimport type { FleetVehicleItemSignature } from '../vehicle-item/index';\n\ninterface FleetVehicleListSignature {\n Args: {\n vehicles: FleetVehicleItemSignature['Args']['vehicle'][];\n canViewCarAddress: FleetVehicleItemSignature['Args']['canViewCarAddress'];\n hasAllAwareUI: FleetVehicleItemSignature['Args']['hasAllAwareUI'];\n selectedVehicleDeviceId: number | undefined;\n selectVehicle: (deviceId: number, event: Event) => void;\n };\n}\n\n/**\n * @classdesc\n * Component to house all functionality for displaying list of fleet vehicles.\n */\n@intlPath({ path: 'fleet/vehicle-list' })\nexport default class FleetVehicleListComponent extends Component {\n @service declare intl: ADCIntlService;\n\n get currentTime(): string {\n // Do not copy this deprecated usage. If you see this, please fix it\n // eslint-disable-next-line @adc/ember/require-tz-functions\n return this.intl.formatDate(new Date(), {\n hour: 'numeric',\n minute: '2-digit',\n second: '2-digit'\n });\n }\n\n @action\n scrollToVehicle(el: HTMLElement): void {\n if (!this.args.hasAllAwareUI) {\n return;\n }\n\n const vehicleElement = el.querySelector(\n `.vehicle-item-container[data-id=\"${this.args.selectedVehicleDeviceId}\"]`\n );\n\n if (vehicleElement) {\n vehicleElement.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n 'Fleet::VehicleList': typeof FleetVehicleListComponent;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n <:toolbar>\\n {{#if (await @model.canViewFilters)}}\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n {{/if}}\\n \\n\\n <:default as |PageViewContainer|>\\n \\n <:loading as |PageViewLoading|>\\n \\n \\n <:default as |data|>\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n\\n
\",{ moduleName: \"customer-site/fleet/summary/template.hbs\" })","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\",{ moduleName: \"customer-site/components/fleet/trip-history/trip-item/index.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './index.hbs'; */\nimport Component from '@glimmer/component';\nimport { alias } from '@ember/object/computed';\nimport { inject as service } from '@ember/service';\nimport { roundDistanceDriven } from 'customer-site/utils/fleet';\nimport { intlPath } from '@adc/i18n/path';\n\nimport './_style.scss';\nimport type ADCIntlService from '@adc/i18n/services/adc-intl';\nimport type FleetTrip from 'customer-site/models/fleet/fleet-trip';\n\nexport interface FleetTripHistoryItemSignature {\n Element: HTMLButtonElement;\n Args: {\n isSelected?: boolean;\n isMetric?: boolean;\n trip: FleetTrip;\n };\n}\n\n/**\n * @classdesc\n * Component to house all functionality for displaying a trip in trip history.\n */\n@intlPath({ path: 'fleet/trip-history/trip-item' })\nexport default class TripItemComponent extends Component {\n @service declare intl: ADCIntlService;\n\n @alias('args.trip.durationMinutes')\n declare duration: number;\n\n @alias('args.trip.distance')\n declare distance: number;\n\n get minuteDuration(): number {\n return this.duration % 60;\n }\n\n get hourDuration(): number {\n return Math.floor(this.duration / 60);\n }\n\n get roundedTripDistance(): ReturnType {\n return roundDistanceDriven(this.distance);\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n 'Fleet::TripHistory::TripItem': typeof TripItemComponent;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\n \\n

\\n {{if this.dateIsToday (t \\'generic.today\\') (format-date-tz @tripDay.date weekday=\\\"long\\\" month=\\\"long\\\" day=\\\"numeric\\\" year=\\\"numeric\\\")}}\\n

\\n \\n
\\n
\\n \\n

{{t \\'components.fleet.trip-history.trips\\'}} {{@tripDay.trips.length}}

\\n
\\n
\\n \\n

\\n {{t \\'components.fleet.trip-history.fuelUsed\\'}} \\n {{#if @isMetric}}\\n {{t \\'components.fleet.trip-history.litres\\' fuelUsed=this.roundedFuelUsed}}\\n {{else}}\\n {{t \\'components.fleet.trip-history.gallons\\' fuelUsed=this.roundedFuelUsed}}\\n {{/if}}\\n

\\n
\\n
\\n \\n

{{t \\\"generic.duration\\\"}} {{t \\'components.fleet.trip-history.hourMinuteAbbrev\\' hours=this.hourDuration minutes=this.minuteDuration}}

\\n
\\n
\\n \\n

\\n {{t \\'components.fleet.trip-history.efficiency\\'}} \\n {{#if @isMetric}}\\n {{t \\'components.fleet.trip-history.efficiencyMetric\\' efficiency=this.roundedFuelEfficiency}}\\n {{else}}\\n {{t \\'components.fleet.trip-history.efficiencyImperial\\' efficiency=this.roundedFuelEfficiency}}\\n {{/if}}\\n

\\n
\\n
\\n \\n

\\n {{t \\'components.fleet.trip-history.distance\\'}} \\n {{#if @isMetric}}\\n {{t \\'components.fleet.trip-history.kilometresDriven\\' distanceDriven=this.roundedDistanceDriven}}\\n {{else}}\\n {{t \\'components.fleet.trip-history.milesDriven\\' distanceDriven=this.roundedDistanceDriven}}\\n {{/if}}\\n

\\n
\\n
\\n
\\n{{#if @tripDay.isExpanded}}\\n
    \\n {{#each @tripDay.trips as |trip|}}\\n
  • \\n \\n
  • \\n {{/each}}\\n
\\n{{/if}}\",{ moduleName: \"customer-site/components/fleet/trip-history/trip-day/index.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './index.hbs'; */\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { alias } from '@ember/object/computed';\nimport { inject as service } from '@ember/service';\nimport { roundDistanceDriven, roundFuelEfficiency, roundFuelUsed } from 'customer-site/utils/fleet';\nimport { intlPath } from '@adc/i18n/path';\n\nimport './_style.scss';\nimport type ADCIntlService from '@adc/i18n/services/adc-intl';\nimport type FleetTrip from 'customer-site/models/fleet/fleet-trip';\nimport type FleetTripDay from 'customer-site/models/fleet/fleet-trip-day';\nimport type { FleetTripHistoryItemSignature } from '../trip-item';\n\nexport interface FleetTripHistoryDaySignature {\n Args: Pick & {\n tripDay: FleetTripDay;\n selectedTrip: FleetTrip;\n selectTrip: (trip: FleetTrip, date: string, evt: Event) => unknown;\n };\n}\n\n/**\n * @classdesc\n * Component to house all functionality for displaying a trip day in trip history.\n */\n@intlPath({ path: 'fleet/trip-history/trip-day' })\nexport default class TripDayComponent extends Component {\n @service declare intl: ADCIntlService;\n\n @alias('args.tripDay.isExpanded')\n declare isExpanded: boolean;\n\n @alias('args.tripDay.trips')\n declare dayTrips: FleetTrip[];\n\n @alias('args.tripDay.distance')\n declare distanceDriven: number;\n\n @alias('args.tripDay.fuelUsed')\n declare fuelUsed: number;\n\n @alias('args.tripDay.efficiency')\n declare efficiency: number;\n\n @alias('args.tripDay')\n declare tripDay: FleetTripDay;\n\n /**\n * Returns whether or not the trip date is Today in the customer's time zone (as opposed to browser time zone).\n * Note: isToday from date-fns, calculates today from the user's browser not the customer time zone passed from the backend\n */\n get dateIsToday(): boolean {\n const [customerToday, tripDate] = [new Date(), this.tripDay.date].map((d) =>\n this.intl.formatDateTz(d, {\n month: 'numeric',\n year: 'numeric',\n day: 'numeric'\n })\n );\n\n return customerToday === tripDate;\n }\n\n get minuteDuration(): number {\n const durationMinutes = this.dayTrips.reduce((sum, v) => sum + v.durationMinutes, 0);\n return durationMinutes % 60;\n }\n\n get hourDuration(): number {\n const durationMinutes = this.dayTrips.reduce((sum, v) => sum + v.durationMinutes, 0);\n return Math.floor(durationMinutes / 60);\n }\n\n @action toggleDay(): void {\n this.isExpanded = !this.isExpanded;\n }\n\n get roundedFuelUsed(): string {\n return roundFuelUsed(this.fuelUsed);\n }\n\n get roundedFuelEfficiency(): string {\n return roundFuelEfficiency(this.efficiency);\n }\n\n get roundedDistanceDriven(): string {\n return roundDistanceDriven(this.distanceDriven);\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n 'Fleet::TripHistory::TripDay': typeof TripDayComponent;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\",{ moduleName: \"customer-site/components/map/trip-map/index.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './index.hbs'; */\nimport BaseMapComponent from '../base-map/index';\n\nimport type { BaseMapComponentSignature, GeographicDatum, BaseMapComponentArgs } from '../base-map/index';\nimport './_style.scss';\n\ninterface TripMapComponentArgs extends BaseMapComponentArgs {\n routeData: GeographicDatum[];\n}\n\ninterface TripMapSignature extends BaseMapComponentSignature {\n Args: TripMapComponentArgs;\n}\n\nexport default class TripMap extends BaseMapComponent {\n /** @override */\n clearAndUpdateMarkers(updatedGeographicData: GeographicDatum[]) {\n if (!this.args.geographicData || !this.hMap) {\n return;\n }\n\n if (this.markerList.length > 0) {\n this.hMap.removeObjects(this.markerList);\n if (this.routeLine) {\n this.hMap.removeObject(this.routeLine);\n }\n }\n\n const geographicData = updatedGeographicData.filter((d) => d.longitude && d.latitude);\n let mapData = geographicData;\n\n // Add data to the map\n this.addRoute(this.args.routeData, geographicData);\n mapData = mapData.concat(this.args.routeData);\n\n this.setViewPortPlusMargin(mapData, this.hMap);\n }\n\n /**\n * Creates the icon for the DomMarker for the given geographicDatum.\n */\n private getRouteIcon(geographicDatum: GeographicDatum): H.map.DomIcon {\n const { iconClass, id, style } = this.args.getIconClassAndId(geographicDatum);\n return new H.map.DomIcon(`\n \n \n \n `);\n }\n\n // This method adds a route line using route data and icon markers using geographic markers.\n public addRoute(routeData: GeographicDatum[], geographicMarkers: GeographicDatum[]): void {\n const linestring = new H.geo.LineString(); // Using const here since apparently const means it can't be reassigned not that it can't be manipulated.\n // Populating list for route markers.\n this.markerList = geographicMarkers.map((geographicDatum) => {\n const { latitude, longitude } = geographicDatum,\n domMarker = new H.map.DomMarker(\n {\n lat: latitude,\n lng: longitude\n },\n {\n icon: this.getRouteIcon(geographicDatum)\n }\n );\n domMarker.addEventListener(...this.getEventListenerArgs(geographicDatum));\n !!this.shouldAttachLabel && this.attachLabelToMarker(domMarker, geographicDatum);\n return domMarker;\n });\n\n // Draw route line\n routeData.forEach((point) => {\n const { latitude, longitude } = point;\n linestring.pushPoint({\n lat: latitude,\n lng: longitude\n });\n });\n\n this.routeLine = new H.map.Polyline(linestring, { style: { lineWidth: 3 } });\n this.hMap?.addObject(this.routeLine);\n\n // Add markers to map\n this.hMap?.addObjects(this.markerList);\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n 'Map::TripMap': typeof TripMap;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\n
\\n

{{@trip.vehicleName}}

\\n

{{format-date-tz @tripDate weekday=\\\"long\\\" month=\\\"numeric\\\" day= \\\"numeric\\\" year=\\\"numeric\\\"}}

\\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n

\\n {{#if this.showStartCoordinates}}\\n {{this.dmsStartCoordinates.displayString}}\\n {{else}}\\n {{this.startAddressText}}\\n {{/if}}\\n

\\n
\\n
\\n \\n
\\n

{{t \\'components.fleet.trip-history.hourMinuteAbbrev\\' hours=this.tripHours minutes=this.tripMinutes}}

\\n \\n

\\n {{t (if @isMetric \\'components.fleet.trip-history.kilometresDriven\\' \\'components.fleet.trip-history.milesDriven\\') distanceDriven=this.roundedTripDistance}}\\n

\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n

\\n {{#if this.showEndCoordinates}}\\n {{this.dmsEndCoordinates.displayString}}\\n {{else}}\\n {{this.endAddressText}}\\n {{/if}}\\n

\\n
\\n
\\n
\\n
\\n
\\n \\n

\\n {{t \\'components.fleet.trip-history.fuelUsed\\'}} \\n {{#if @isMetric}}\\n {{t \\'components.fleet.trip-history.litres\\' fuelUsed=this.roundedTripFuelUsed}}\\n {{else}}\\n {{t \\'components.fleet.trip-history.gallons\\' fuelUsed=this.roundedTripFuelUsed}}\\n {{/if}}\\n

\\n
\\n
\\n \\n

\\n {{t \\'components.fleet.trip-history.efficiency\\'}} \\n {{#if @isMetric}}\\n {{t \\'components.fleet.trip-history.efficiencyMetric\\' efficiency=this.roundedTripEfficiency}}\\n {{else}}\\n {{t \\'components.fleet.trip-history.efficiencyImperial\\' efficiency=this.roundedTripEfficiency}}\\n {{/if}}\\n

\\n
\\n
\\n \\n

\\n {{t \\'components.fleet.trip-history.max\\'}} \\n {{#if @isMetric}}\\n {{t \\'components.fleet.trip-history.kph\\' speed=@trip.maxSpeed}}\\n {{else}}\\n {{t \\'components.fleet.trip-history.mph\\' speed=@trip.maxSpeed}}\\n {{/if}}\\n

\\n
\\n
\\n \\n

\\n {{t \\'components.fleet.trip-history.drivingAlerts\\'}} \\n {{this.tripAlerts.length}}\\n

\\n
\\n
\\n
\\n\",{ moduleName: \"customer-site/components/fleet/trip-history/trip-map/index.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './index.hbs'; */\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { alias, gt, empty } from '@ember/object/computed';\nimport { isEmpty } from '@ember/utils';\nimport { roundDistanceDriven, roundFuelUsed, getDMSStringFromCoordinates } from 'customer-site/utils/fleet';\nimport { intlPath } from '@adc/i18n/path';\n\nimport './_style.scss';\nimport type { GeographicDatum, GeographicDatumDetails } from 'customer-site/components/map/base-map/index';\nimport type FleetTrip from 'customer-site/models/fleet/fleet-trip';\n\nexport type TripAlertData = {\n Id: string;\n IssueDesc: string;\n IssueLocation: CarLocationItem;\n IssueDateLocal: string;\n IconString: string;\n};\n\nexport type CarLocationItem = { Longitude: number; Latitude: number; Heading: number; LocationDateUtc: string };\n\ninterface TripMapComponentSignature {\n Args: {\n trip: FleetTrip;\n isMetric: boolean;\n canViewCarLocation: boolean;\n hasVehicleAddressEnabled: boolean;\n tripDate: Date;\n };\n}\n\n@intlPath({ path: 'fleet/trip-history/trip-map' })\nexport default class TripMapComponent extends Component {\n @alias('args.trip.distance')\n declare tripDistance: number;\n\n @alias('args.trip.fuelConsumed')\n declare tripFuelUsed: number;\n\n @alias('args.trip.efficiency')\n declare tripEfficiency: number;\n\n @alias('args.trip.tripAlerts')\n declare tripAlerts: TripAlertData[];\n\n @tracked\n isAlertsExpanded = false;\n\n @gt('tripAlerts.length', 0)\n declare hasTripAlerts: boolean;\n\n @alias('args.trip.tripRoute')\n declare tripRoute: CarLocationItem[];\n\n @empty('args.trip.startAddress')\n declare showStartCoordinates: boolean;\n\n @empty('args.trip.endAddress')\n declare showEndCoordinates: boolean;\n\n get getTripRoute(): GeographicDatum[] {\n const tripRoutePoints: GeographicDatum[] = this.tripRoute.map((l): GeographicDatum => {\n return { latitude: l.Latitude, longitude: l.Longitude, id: l.LocationDateUtc };\n });\n\n return tripRoutePoints;\n }\n\n get geographicMarkers(): GeographicDatum[] {\n if (!this.args.canViewCarLocation || this.tripRoute.length == 0) {\n return [];\n }\n\n const origin = this.geographicDatumFromCarLocationItem(this.tripRoute[0]);\n const destination = this.geographicDatumFromCarLocationItem(this.tripRoute[this.tripRoute.length - 1]);\n const alertPoints: GeographicDatum[] = this.tripAlerts.map((d): GeographicDatum => {\n const details: GeographicDatumDetails = {\n name: d.IssueDesc,\n icon: d.IconString,\n date: d.IssueDateLocal\n };\n return this.geographicDatumFromCarLocationItem(d.IssueLocation, d.Id, details);\n });\n\n return [origin, ...alertPoints, destination];\n }\n\n get tripHours(): number {\n return Math.floor(this.args.trip.durationMinutes / 60);\n }\n\n get tripMinutes(): number {\n return this.args.trip.durationMinutes % 60;\n }\n\n get roundedTripDistance(): string {\n return roundDistanceDriven(this.tripDistance);\n }\n\n get roundedTripFuelUsed(): string {\n return roundFuelUsed(this.tripFuelUsed);\n }\n\n get roundedTripEfficiency(): string {\n return roundFuelUsed(this.tripEfficiency);\n }\n\n get startAddressText(): string {\n if (!isEmpty(this.args.trip.startAddress)) {\n return this.args.trip.startAddress;\n }\n\n return '';\n }\n get endAddressText(): string {\n if (!isEmpty(this.args.trip.endAddress)) {\n return this.args.trip.endAddress;\n }\n\n return '';\n }\n\n get dmsStartCoordinates(): { displayString: string; ariaString: string } {\n if (!this.args.canViewCarLocation || this.tripRoute.length == 0) {\n return { displayString: '', ariaString: '' };\n }\n const origin = this.tripRoute[0];\n\n return getDMSStringFromCoordinates(origin.Latitude, origin.Longitude);\n }\n\n get dmsEndCoordinates(): { displayString: string; ariaString: string } {\n if (!this.args.canViewCarLocation || this.tripRoute.length == 0) {\n return { displayString: '', ariaString: '' };\n }\n const destination = this.tripRoute[this.tripRoute.length - 1];\n\n return getDMSStringFromCoordinates(destination.Latitude, destination.Longitude);\n }\n\n @action\n toggleAlerts(): void {\n this.isAlertsExpanded = !this.isAlertsExpanded;\n }\n\n @action\n getIconClassAndId(tripPoint: GeographicDatum): { iconClass: string; id: string; style: null } {\n const isStart =\n this.tripRoute[0].Longitude === tripPoint.longitude && this.tripRoute[0].Latitude === tripPoint.latitude;\n const finishIdx = this.tripRoute.length - 1;\n const isFinish =\n this.tripRoute[finishIdx].Longitude === tripPoint.longitude &&\n this.tripRoute[finishIdx].Latitude === tripPoint.latitude;\n let pointType;\n\n if (isStart) {\n pointType = 'car-trip-start';\n } else if (isFinish) {\n pointType = 'car-trip-finish';\n } else {\n // If it's not the start or end of a trip, then it is a driving alert.\n pointType = 'car-warning';\n }\n\n return {\n iconClass: `${pointType}`,\n id: `trip-route-${pointType}`,\n style: null\n };\n }\n\n private geographicDatumFromCarLocationItem(\n cli: CarLocationItem,\n id?: string,\n details?: GeographicDatumDetails\n ): GeographicDatum {\n return { latitude: cli.Latitude, longitude: cli.Longitude, id: id ?? cli.LocationDateUtc, details };\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n 'Fleet::TripHistory::TripMap': typeof TripMapComponent;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!-- @glint-expect-error: Please convert to PageView for type safety. --}}\\n\\n \\n \\n \\n \\n {{!-- @glint-expect-error: Please convert to PageView for type safety. --}}\\n {{#if data.tripDays}}\\n
\\n
\\n {{!-- @glint-expect-error: Please convert to PageView for type safety. --}}\\n {{#each data.tripDays as |tripDay|}}\\n {{!-- @glint-expect-error: Please convert to PageView for type safety. --}}\\n \\n {{/each}}\\n
\\n
\\n
\\n {{!-- @glint-expect-error: Please convert to PageView for type safety. --}}\\n \\n
\\n
\\n
\\n {{!-- @glint-expect-error: Please convert to PageView for type safety. --}}\\n {{else if data.tripDays.isPending}}\\n \\n {{else}}\\n
\\n

{{tc this \\'noData\\'}}

\\n
\\n {{/if}}\\n \\n
\\n \\n
\",{ moduleName: \"customer-site/fleet/trip-history/template.hbs\" })","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\n
\\n {{yield}}\\n
\\n\\n \\n\\n {{#if @linkInfo.route}}\\n \\n {{@linkInfo.text}}\\n \\n {{/if}}\\n\\n {{#if this.showPageSizeDropdown}}\\n
\\n \\n
\\n {{/if}}\\n
\")","import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { computed, action } from '@ember/object';\nimport { gt } from '@ember/object/computed';\nimport { inject as service } from '@ember/service';\nimport { intlPath } from '@adc/i18n/path';\nimport DropdownActionItem from '../utils/dropdown-action-item.js';\nimport DropdownSelectItem from '../utils/dropdown-select-item.js';\n\nimport type ADCIntlService from '@adc/i18n/services/adc-intl';\nimport type { Placement } from 'popper.js';\n\ninterface PaginationBarSignature {\n Element: HTMLDivElement;\n Args: {\n /** Action called when the user changes the currently selected page. */\n changePage: (page: number) => void;\n /** Action called when the user changes the page size. If this action parameter is not passed the page size selector will not render. */\n changePageSize?: (pageSize: number) => void;\n /** The total number of items. */\n itemCount?: number;\n /** The page size options to render in the page size selector. */\n pageSizeOptions?: number[];\n /** The currently selected page size. */\n selectedPageSize?: number;\n /** The currently selected page. */\n selectedPage?: number;\n /** The placement for the overflow page menu popup. */\n menuPlacement?: Placement;\n /** Optional link and text used to render a link inside link to render in pagination bar. */\n linkInfo?: {\n route?: string | null;\n text: string;\n };\n };\n Blocks: {\n default: [];\n };\n}\n\ninterface PageButton {\n text: string;\n page: number;\n disabled: boolean;\n css: string;\n pages: DropdownActionItem[];\n}\n\n/**\n * @classdesc\n * A pagination component with pages, arrows and a dropdown for page size.\n *\n * This control will always show the \"PREV\" button, the first button, last button, \"NEXT\" button and the three buttons surrounding the current page. If there are pages not represented\n * by that collection we will show popup menus for those pages, unless there is only one page in the popup.\n */\n@intlPath({ module: '@adc/ui-components', path: 'pagination-bar' })\nexport default class PaginationBar extends Component {\n @service declare intl: ADCIntlService;\n\n defaultPageSize = 100;\n\n constructor(owner: unknown, args: PaginationBarSignature['Args']) {\n super(owner, args);\n\n // Verify required closure functions.\n assert(`The changePage closure function must be passed to the pagination bar component`, this.args.changePage);\n\n // Optionally verify changePageSize if needed, but don't assert\n if (this.args.changePageSize) {\n assert(`The changePageSize must be a function`, typeof this.args.changePageSize === 'function');\n }\n }\n\n /**\n * The value of the selected page size.\n */\n @computed('args.selectedPageSize', 'defaultPageSize')\n get selectedPageSize(): number {\n return this.args.selectedPageSize ?? this.defaultPageSize;\n }\n\n /**\n * The computed number of pages.\n */\n @computed('args.itemCount', 'selectedPageSize')\n get pageCount(): number {\n const { selectedPageSize } = this,\n { itemCount = 0 } = this.args;\n\n return Math.ceil(itemCount / selectedPageSize);\n }\n\n get showPageSizeDropdown(): boolean {\n return !!this.args.changePageSize;\n }\n\n /**\n * Determines visibility of the pageButtons.\n */\n @gt('pageCount', 1)\n declare showPages: boolean;\n\n /**\n * The computed page buttons to render.\n *\n * This control will always show the first button, last button, and three buttons surrounding the current page. If there are pages not represented by that collection we will show\n * popup menus for those pages, unless there is only one page in the popup.\n */\n @computed('args.{changePage,selectedPage}', 'pageCount')\n get pageButtons(): PageButton[] {\n const { selectedPage = 1 } = this.args,\n { pageCount } = this;\n\n // Are there NO pages?\n if (pageCount === 0) {\n // Nothing to render.\n return [];\n }\n\n const buttons: PageButton[] = [],\n fnGetRangeOfPages = (start: number, end: number): number[] =>\n Array.from({ length: end - start + 1 }, (_, idx) => idx + start),\n fnGetButton = (text: string, page: number, css: string, pages: DropdownActionItem[] = []): PageButton => ({\n text,\n page,\n disabled: page === selectedPage,\n css,\n pages\n }),\n fnAddPageBtn = (page: number): number =>\n buttons.push(fnGetButton(String(page), page, `page${page === selectedPage ? ' active' : ''}`)),\n fnAddRangeMenuBtn = (pages: number[]): void => {\n // Does the menu only have one page?\n if (pages.length === 1) {\n // Show page button for that single page.\n fnAddPageBtn(pages[0]);\n return;\n }\n\n // Add dropdown actions button.\n buttons.push(\n fnGetButton(\n '...',\n -1,\n 'page',\n pages.map((page) =>\n DropdownActionItem.create({\n name: String(page),\n action: () => this.args.changePage(page)\n })\n )\n )\n );\n };\n\n // Calculate index of previous and next page.\n const previousPage = Math.max(selectedPage - 1, 1),\n nextPage = Math.min(selectedPage + 1, pageCount);\n\n // Assume we will show all pages in selection range.\n let selectionLowerBound = 1,\n selectionUpperBound = pageCount;\n\n // Are there more than six pages?\n if (pageCount > 6) {\n // Selection lower bound is the previous page, constrained to between 1 and the total page count minus 2.\n selectionLowerBound = Math.min(previousPage, pageCount - 2);\n\n // Selection upper bound is the next page, constrained to between 3 and the total page count.\n selectionUpperBound = Math.max(nextPage, 3);\n }\n\n // Get array of buttons around currently selected page, based on calculated lower and upper bound.\n const selectionRange = fnGetRangeOfPages(selectionLowerBound, selectionUpperBound);\n\n // Does the selection range NOT include the first page?\n if (!selectionRange.includes(1)) {\n // Add the first page.\n fnAddPageBtn(1);\n }\n\n // Does the selection range NOT include the second page?\n if (!selectionRange.includes(2)) {\n // Add menu button for the second page through the last page NOT present within the selection range.\n fnAddRangeMenuBtn(fnGetRangeOfPages(2, selectionLowerBound - 1));\n }\n\n // Add all selection range buttons.\n selectionRange.forEach(fnAddPageBtn);\n\n // Does the selection range NOT include the second to last page?\n if (!selectionRange.includes(pageCount - 1)) {\n // Add menu button for the first page after the selection range through the second to last page.\n fnAddRangeMenuBtn(fnGetRangeOfPages(selectionUpperBound + 1, pageCount - 1));\n }\n\n // Does the selection range NOT include the last page?\n if (!selectionRange.includes(pageCount)) {\n // Add the last page.\n fnAddPageBtn(pageCount);\n }\n\n // Return page buttons surrounded by the previous and next buttons.\n return [\n fnGetButton(this.intl.tc(this, 'previousPage'), previousPage, 'ctrl'),\n ...buttons,\n fnGetButton(this.intl.tc(this, 'nextPage'), nextPage, 'ctrl')\n ];\n }\n\n /**\n * Drop down items for page size.\n */\n @computed('args.pageSizeOptions.[]', 'selectedPageSize')\n get pageSizeItems(): DropdownSelectItem[] {\n return (this.args.pageSizeOptions ?? [10, 25, 50, 100]).map((value) =>\n DropdownSelectItem.create({\n name: this.intl.tc(this, 'perPage', { value }),\n value: String(value)\n })\n );\n }\n\n /**\n * Called when the user changes the page size dropdown value.\n * New page begins with first items from previous page.\n */\n @action onPageSizeChanged(size: string): void {\n this.args.changePageSize?.(parseInt(size, 10));\n }\n}\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nd(\"customer-site/fleet/reports/route\", function(){ return i(\"customer-site/fleet/reports/route.ts\");});\nd(\"customer-site/fleet/summary/template\", function(){ return i(\"customer-site/fleet/summary/template.hbs\");});\nd(\"customer-site/fleet/summary/controller\", function(){ return i(\"customer-site/fleet/summary/controller.ts\");});\nd(\"customer-site/fleet/summary/route\", function(){ return i(\"customer-site/fleet/summary/route.ts\");});\nd(\"customer-site/fleet/trip-history/template\", function(){ return i(\"customer-site/fleet/trip-history/template.hbs\");});\nd(\"customer-site/fleet/trip-history/controller\", function(){ return i(\"customer-site/fleet/trip-history/controller.ts\");});\nd(\"customer-site/fleet/trip-history/route\", function(){ return i(\"customer-site/fleet/trip-history/route.ts\");});\n","import { EmberConnectedFleetReports } from 'customer-site/enums/CustomerPageUrl';\nimport { Fleet } from 'customer-site/enums/WebReportType';\nimport BaseReportsRoute from 'customer-site/home/base-reports-route';\n\nexport default class ConnectedFleetReports extends BaseReportsRoute {\n routeId = EmberConnectedFleetReports;\n\n getReportType() {\n return Fleet;\n }\n}\n","import { tracked } from '@glimmer/tracking';\nimport { isEnterCode } from '@adc/ember-utils/utils/a11y';\nimport EmberController from '@ember/controller';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { task } from 'ember-concurrency';\nimport { EmberConnectedFleetDashboard } from '../../enums/CustomerPageUrl';\n\nimport type Store from '@ember-data/store';\nimport type { GeographicDatum } from 'customer-site/components/map/base-map/index';\nimport type FleetFilterCount from 'customer-site/models/fleet/fleet-filter-count';\nimport type FleetVehicle from 'customer-site/models/fleet/fleet-vehicle';\nimport type AjaxService from 'customer-site/services/ajax';\nimport type { ResolvedModelFrom } from 'customer-site/utils/type-utils';\nimport type Route from './route';\n\nexport default class FleetSummaryController extends EmberController {\n @service declare ajax: AjaxService;\n @service declare store: Store;\n\n declare model: ResolvedModelFrom;\n\n @tracked showFilters = false;\n\n @tracked filteredVehicles: FleetVehicle[] = [];\n\n @tracked filterCounts: FleetFilterCount[] = [];\n @tracked hasAllAwareUI: boolean = false;\n\n @tracked selectedVehicleDeviceId?: number | undefined = this.filteredVehicles[0]?.deviceId;\n\n /**\n * The string representing the active filters object\n */\n @tracked fleetFiltersString = '{}';\n\n get geographicMarkers(): GeographicDatum[] {\n return this.filteredVehicles.map(\n (vehicle, index): GeographicDatum => ({\n latitude: vehicle.latitude,\n longitude: vehicle.longitude,\n id: `${index + 1}`,\n details: {\n name: vehicle.name,\n isEngineOn: vehicle.isEngineOn,\n deviceId: vehicle.deviceId\n },\n heading: vehicle.heading\n })\n );\n }\n\n @action dataLoaded(model: ResolvedModelFrom): void {\n Object.assign(this, {\n filteredVehicles: model.vehicles,\n filterCounts: model.filterCounts,\n hasAllAwareUI: model.hasAllAwareUI\n });\n }\n\n /**\n * Toggle whether the filter bar should be shown.\n */\n @action\n toggleFilterVisibility(): void {\n this.showFilters = !this.showFilters;\n }\n\n @action\n getIconClassAndId(fleetVehicle: GeographicDatum): { iconClass: string; id: string; style: null } {\n return {\n iconClass: `engine-${fleetVehicle.details?.isEngineOn ? 'on' : 'off'}`,\n id: `fleetVehicle-${fleetVehicle.id}`,\n style: null\n };\n }\n\n /**\n * Updates the current filters being applied.\n */\n @action\n onFilterChange(currentFilters: Record): void {\n this.fleetFiltersString = JSON.stringify(currentFilters);\n this.waitForVehicleUpdate.perform(this.fleetFiltersString);\n }\n\n @action\n selectVehicle(deviceId: number, event: Event): void {\n if (!this.model.hasAllAwareUI) {\n return;\n }\n if (event instanceof KeyboardEvent && !isEnterCode(event.key)) {\n return;\n }\n this.selectedVehicleDeviceId = deviceId;\n }\n\n waitForVehicleUpdate = task({ restartable: true }, async (fleetFiltersString: string) => {\n const { store } = this,\n [filteredVehicles, filterCounts] = await Promise.all([\n store.query('fleet/fleet-vehicle', {\n filtersString: fleetFiltersString\n }),\n store.query('fleet/fleet-filter-count', {\n filtersString: fleetFiltersString,\n pageUrlEnum: EmberConnectedFleetDashboard\n })\n ]);\n\n Object.assign(this, { filteredVehicles, filterCounts });\n });\n}\n\n// DO NOT DELETE: this is how TypeScript knows how to look up your controllers.\ndeclare module '@ember/controller' {\n interface Registry {\n 'fleet/summary': FleetSummaryController;\n }\n}\n","import { inject as service } from '@ember/service';\nimport AdcBaseRoute from '../../classes/base-route';\nimport { EmberConnectedFleetDashboard } from '../../enums/CustomerPageUrl';\n\nimport type Store from '@ember-data/store';\nimport type FleetFilter from 'customer-site/models/fleet/fleet-filter';\nimport type FleetFilterCount from 'customer-site/models/fleet/fleet-filter-count';\nimport type FleetVehicle from 'customer-site/models/fleet/fleet-vehicle';\n\nexport default class Route extends AdcBaseRoute {\n @service declare store: Store;\n\n /** @override */\n routeId = EmberConnectedFleetDashboard;\n\n doNotTimeOut = true;\n\n async model(): Promise<{\n isMetric: Promise;\n canViewCarLocation: boolean;\n canViewFilters: Promise;\n hasVehicleAddress: boolean;\n hasAllAwareUI: boolean;\n vehicles: ADCAsyncStoreQuery;\n filters: ADCAsyncStoreQuery;\n filterCounts: ADCAsyncStoreQuery;\n }> {\n const isMetricResponse: Promise> = this.ajax.apiRequest('api/settings/getIsMetric');\n\n // This API call gets the canViewCarLocation boolean from the server-side API, which reflects whether a user has permission to view the location of a connected car on a customer account. In this case, a user could be a customer or dealer.\n /* NOTE: The way this API call's response is serialized causes data.value.canViewCarLocation = false to sometimes return as \"undefined.\"\n This is accounted for in the return statement below, and similar null-checking syntax should be used in other API calls to this endpoint.\n */\n const canViewCarLocationResponse = this.ajax.apiRequestForValue<{ canViewCarLocation?: boolean }>(\n 'api/fleet/fleetVehicles/canViewCarLocation'\n );\n const canViewFiltersResponse = this.ajax.apiRequestForValue<{ canViewFleetFilters?: boolean }>(\n 'api/fleet/fleetVehicles/canViewFleetFilters'\n );\n const hasVehicleAddressResponse = this.ajax.apiRequestForValue<{ canAccessVehicleAddress?: boolean }>(\n 'api/fleet/fleetVehicles/hasVehicleAddress'\n );\n const hasAllAwareUIResponse = this.ajax.apiRequestForValue<{ canViewAllAwareUI?: boolean }>(\n 'api/fleet/fleetVehicles/hasAllAwareUIResponse'\n );\n\n return {\n isMetric: await isMetricResponse.then((data) => data.value.isMetric),\n canViewCarLocation: await canViewCarLocationResponse.then(\n ({ canViewCarLocation }) => canViewCarLocation ?? false\n ),\n canViewFilters: canViewFiltersResponse.then(({ canViewFleetFilters }) => canViewFleetFilters ?? false),\n hasVehicleAddress: await hasVehicleAddressResponse.then(\n ({ canAccessVehicleAddress }) => canAccessVehicleAddress ?? false\n ),\n hasAllAwareUI: await hasAllAwareUIResponse.then(({ canViewAllAwareUI }) => canViewAllAwareUI ?? false),\n vehicles: this.store.findAll('fleet/fleet-vehicle'),\n filterCounts: this.store.query('fleet/fleet-filter-count', {\n pageUrlEnum: EmberConnectedFleetDashboard\n }),\n filters: this.store.query('fleet/fleet-filter', {\n pageUrlEnum: EmberConnectedFleetDashboard\n })\n };\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\n \\n
\\n {{#if @filtersManager.hasAppliedFilters}}\\n

{{t \\'generic.appliedFiltersCount\\' numFilters=@filtersManager.appliedFilters.length}}

\\n\\n \\n \\n {{t \\'generic.clearFilters\\'}}\\n \\n {{/if}}\\n
\\n \\n\\n \\n \\n\\n\\n
\\n \\n
\\n
\\n\\n\",{ moduleName: \"customer-site/components/fleet/filter-bar/index.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './index.hbs'; */\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { computed, action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { intlPath } from '@adc/i18n/path';\n\nimport type FleetFilterManager from 'customer-site/classes/fleet/filter-manager';\nimport './_style.scss';\nimport type ADCIntlService from '@adc/i18n/services/adc-intl';\nimport type BaseFilter from 'customer-site/classes/helpers/filters/base-filter';\nimport type AjaxService from 'customer-site/services/ajax';\n\ninterface FleetFilterBarSignature {\n Args: {\n filtersManager: FleetFilterManager;\n defaultFilterValues: Record;\n queryParams: Record;\n resetQueryParamsFn: () => void;\n onFiltersVisibleChange: () => void;\n noTripDays?: boolean;\n };\n}\n\n@intlPath({ path: 'fleet/filter-bar' })\nexport default class FleetFilterBar extends Component {\n @service declare intl: ADCIntlService;\n @service declare ajax: AjaxService;\n\n @tracked\n filtersVisible = false;\n\n /**\n * The search filter.\n */\n @computed('args.filtersManager.filters')\n get searchFilter(): BaseFilter {\n return this.args.filtersManager.getFilterByName('searchString');\n }\n\n /**\n * Toggles filter visibility.\n */\n @action\n toggleFilters(): void {\n this.filtersVisible = !this.filtersVisible;\n this.args.onFiltersVisibleChange();\n }\n\n /**\n * Reset filter values to default values.\n */\n @action\n resetFilters(): void {\n this.args.filtersManager.resetFilterValues();\n this.args.resetQueryParamsFn();\n }\n\n /**\n * Opens a new window with a link to the \"Export to Csv\" page.\n *\n * @param {String} exportFormat\n */\n @action\n async exportToCsv() {\n const { startDate, endDate } = this.args.queryParams,\n getUrlResponse: Promise> = this.ajax.apiRequest(\n 'api/fleet/fleetTripDays/getExportToCsvUrl'\n ),\n url = await getUrlResponse.then((data) => data.value),\n win: Window = window;\n\n win.location = `${url}?filterParameters=${JSON.stringify(this.args.queryParams)}&startDate=${JSON.stringify(\n startDate\n )}&endDate=${JSON.stringify(endDate)}`;\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n 'Fleet::FilterBar': typeof FleetFilterBar;\n }\n}\n","// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it.\nimport fn from \"../../setMilliseconds/index.js\";\nimport convertToFP from \"../_lib/convertToFP/index.js\";\nexport default convertToFP(fn, 2);","export default function convertToFP(fn, arity) {\n var a = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n if (a.length >= arity) {\n return fn.apply(null, a.slice(0, arity).reverse());\n }\n\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return convertToFP(fn, arity, a.concat(args));\n };\n}","import { tracked } from '@glimmer/tracking';\nimport { isEnterCode } from '@adc/ember-utils/utils/a11y';\nimport Controller from '@ember/controller';\nimport { action, computed, setProperties } from '@ember/object';\nimport FleetFilterBar from 'customer-site/components/fleet/filter-bar';\nimport { subDays } from 'date-fns';\nimport setMilliseconds from 'date-fns/fp/setMilliseconds';\n\nimport type FleetFilterManager from 'customer-site/classes/fleet/filter-manager';\nimport type FleetTrip from 'customer-site/models/fleet/fleet-trip';\nimport type { FleetTripHistoryQueryParams } from './route';\n\nexport default class FleetTripHistoryController extends Controller {\n /**\n * The default values for this controllers query parameters.\n */\n @computed()\n get defaultFilterValues(): Omit {\n return {\n endDate: null,\n startDate: subDays(setMilliseconds(new Date(), 0), 7),\n selectedDeviceIds: [],\n searchString: ''\n };\n }\n\n routeToolbar = FleetFilterBar;\n\n /**\n * The first date for events (defaults to one week ago).\n */\n startDate = this.defaultFilterValues.startDate;\n\n /**\n * The end date for events (defaults to null).\n */\n endDate = this.defaultFilterValues.endDate;\n\n /**\n * The currently selected page size.\n */\n pageSize = 100;\n\n /**\n * The index of the currently visible page.\n */\n page = 1;\n\n /**\n * Currently selected vehicles\n */\n selectedDeviceIds = this.defaultFilterValues.selectedDeviceIds;\n\n /**\n * Vehicle search string\n */\n searchString = this.defaultFilterValues.searchString;\n\n filtersManager?: FleetFilterManager;\n\n declare model: any; // Please replace this 'any' with the actual model type!\n\n @tracked\n selectedIdx = 0;\n\n @tracked\n selectedTrip: FleetTrip | undefined = this.model.tripDays.firstObject.trips.firstObject;\n\n @tracked\n selectedDate: string = this.model.tripDays.firstObject.date;\n\n @tracked\n filtersVisibleController = false;\n\n get noTripDays(): boolean {\n return !this.model.tripDays?.length ?? false;\n }\n\n @action\n selectTrip(trip: FleetTrip, selectedDate: string, event: KeyboardEvent | PointerEvent): void {\n if (event instanceof KeyboardEvent && !isEnterCode(event.key)) {\n return;\n }\n\n this.selectedTrip = trip;\n this.selectedDate = selectedDate;\n }\n\n @action\n changePageSize(pageSize: number) {\n const { qp } = this.model,\n newPage = Math.floor((qp.page - 1) * (qp.pageSize / pageSize)) + 1;\n\n this.send('applyFilters', {\n queryParams: {\n pageSize,\n page: newPage\n }\n });\n }\n\n @action\n handleFiltersVisibleChange() {\n this.filtersVisibleController = !this.filtersVisibleController;\n }\n\n @action\n changePage(page: number) {\n this.send('applyFilters', {\n queryParams: { page }\n });\n }\n /**\n * Resets all query parameter values to their default value.\n */\n @action\n resetQP(): void {\n setProperties(this, this.defaultFilterValues);\n }\n}\n\n// DO NOT DELETE: this is how TypeScript knows how to look up your controllers.\ndeclare module '@ember/controller' {\n interface Registry {\n 'fleet/trip-history': FleetTripHistoryController;\n }\n}\n","import { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { isFullTransition } from '../../utils/ember';\nimport { getQueryParam } from '@adc/app-infrastructure/routes/base-route';\nimport AdcBaseRoute from '../../classes/base-route';\nimport FleetFilterManager from '../../classes/fleet/filter-manager';\nimport { EmberFleetTripHistory } from '../../enums/CustomerPageUrl';\n\nimport type ADCIntlService from '@adc/i18n/services/adc-intl';\nimport type RouterService from '@ember/routing/router-service';\nimport type Transition from '@ember/routing/transition';\nimport type FleetTripDay from 'customer-site/models/fleet/fleet-trip-day';\nimport type FleetTripHistoryController from './controller';\n\nexport type FleetTripHistoryRouteModel = {\n tripDays: ADCAsyncStoreFindAll;\n isMetric: Promise;\n canViewCarLocation: Promise;\n hasVehicleAddressEnabled: Promise;\n defaultFilterValues: FleetTripHistoryController['defaultFilterValues'];\n qp: FleetTripHistoryQueryParams;\n};\n\nexport type FleetTripHistoryQueryParams = {\n endDate: Date | null;\n startDate: Date;\n page: number;\n pageSize: number;\n selectedDeviceIds: string[];\n searchString: string;\n};\n\nexport default class FleetTripHistoryRoute extends AdcBaseRoute {\n @service declare intl: ADCIntlService;\n @service declare router: RouterService;\n\n /** @override */\n routeId = EmberFleetTripHistory;\n\n /** @override */\n declare currentModel: FleetTripHistoryRouteModel;\n\n /**\n * Query parameters for fleet trip filtering.\n */\n queryParams = {\n endDate: getQueryParam('date'),\n startDate: getQueryParam('date'),\n page: getQueryParam('number'),\n pageSize: getQueryParam('number'),\n selectedDeviceIds: getQueryParam('array'),\n searchString: getQueryParam('string')\n };\n\n /** @override */\n async model(): Promise {\n const defaultValues = (this.controllerFor(this.routeName) as FleetTripHistoryController).defaultFilterValues;\n const {\n startDate = defaultValues.startDate,\n endDate,\n page = 1,\n pageSize = 100,\n selectedDeviceIds = [],\n searchString = ''\n } = this.paramsFor('fleet/trip-history') as FleetTripHistoryQueryParams;\n const isMetricResponse: Promise> = this.ajax.apiRequest('api/settings/getIsMetric');\n const canViewCarLocationResponse: Promise> = this.ajax.apiRequest(\n 'api/fleet/fleetVehicles/canViewCarLocation'\n );\n\n const hasVehicleAddressEnabledResponse: Promise> = this.ajax.apiRequest(\n 'api/fleet/fleetVehicles/hasVehicleAddress'\n );\n\n return {\n qp: {\n endDate: endDate ?? null,\n startDate: startDate ?? defaultValues.startDate,\n page: page ? Number(page) : 1,\n pageSize: pageSize ? Number(pageSize) : 100,\n selectedDeviceIds: selectedDeviceIds ?? [],\n searchString: searchString ?? ''\n },\n defaultFilterValues: defaultValues,\n tripDays: this.store.query('fleet/fleet-trip-day', {\n startTime: startDate ? startDate.toISOString() : defaultValues.startDate?.toISOString(),\n endTime: endDate ? endDate.toISOString() : null,\n page,\n pageSize,\n selectedDeviceIds: selectedDeviceIds ?? [],\n searchString\n }),\n isMetric: await isMetricResponse.then((data) => data.value.isMetric ?? false),\n canViewCarLocation: await canViewCarLocationResponse.then((data) => data.value.canViewCarLocation ?? false),\n hasVehicleAddressEnabled: await hasVehicleAddressEnabledResponse.then(\n (data) => data.value.canAccessVehicleAddress ?? false\n )\n };\n }\n\n /**\n * The filters manager for route query parameters.\n */\n filtersManager?: FleetFilterManager;\n\n /** @override */\n async setupController(\n controller: FleetTripHistoryController,\n model: FleetTripHistoryRouteModel,\n transition: Transition\n ): Promise {\n super.setupController(controller, model, transition);\n\n controller.filtersManager = this.filtersManager;\n const days = await model.tripDays;\n controller.selectedTrip = days.firstObject?.trips.firstObject;\n controller.selectedDate = days.firstObject?.date ?? '';\n }\n\n /** @override */\n afterModel(resolvedModel: FleetTripHistoryRouteModel, transition: Transition): void {\n if (!this.filtersManager) {\n this.filtersManager = new FleetFilterManager(this as Record, this.applyFilters);\n }\n\n this.filtersManager.updateFilters(\n resolvedModel.qp,\n resolvedModel.defaultFilterValues,\n isFullTransition(transition)\n );\n }\n\n /** @override */\n deactivate(transition: Transition): void {\n super.deactivate(transition);\n (this.controllerFor(this.routeName) as FleetTripHistoryController).resetQP();\n }\n\n @action applyFilters(filters: { queryParams: FleetTripHistoryQueryParams }): void {\n if (!this.filtersManager?.validateFilterLength(filters.queryParams)) {\n this.refresh();\n return;\n }\n\n this.router.transitionTo(filters);\n\n // Re-expand each day\n this.currentModel.tripDays.setEach('isExpanded', true);\n }\n}\n","import { helper } from '@ember/component/helper';\n\nexport interface AddSignature {\n Args: {\n Positional: number[];\n };\n Return: number;\n}\n\nexport function add(numbers: AddSignature['Args']['Positional']): AddSignature['Return'] {\n return numbers.reduce((total, n) => total + Number(n), 0);\n}\n\nexport default helper(add);\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n add: typeof add;\n }\n}\n"],"names":["createTemplateFactory","scope","tc_","svgSymbol_","t_","FleetStatsBarComponent","_dec","intlPath","path","_dec2","computed","_dec3","_dec4","_class2","Component","constructor","arguments","_initializerDefineProperty","_descriptor","getFleetStats","name","_this$args$vehicles","this","args","vehicles","reduce","sum","v","fleetSystemStatsTrips","fleetSystemStatsDistanceDriven","roundDistanceDriven","fleetSystemStatsFuel","roundFuelUsed","_applyDecoratedDescriptor","prototype","service","configurable","enumerable","writable","initializer","Object","getOwnPropertyDescriptor","_class","setComponentTemplate","TEMPLATE","didInsert_","willDestroy_","didResize_","didUpdate_","fn","buttonSimple_","on","FleetMapComponent","BaseMapComponent","_descriptor2","_descriptor3","mapMarkers","geographicData","filter","d","longitude","latitude","zoomAndCenter","selectedMarker","find","g","_g$details","details","deviceId","selectedVehicleDeviceId","hMap","animateCenter","notificationManager","addInfo","intl","tc","clearAndUpdateMarkers","updatedGeographicData","markerList","length","moveMarkers","shouldCluster","startClustering","addDomMarkers","setDefaultZoom","getClickableDomIcon","geographicDatum","_geographicDatum$deta","iconClass","id","style","getIconClassAndId","iconText","markerLabelKey","escapedIconText","escapeHtml","domElement","document","createElement","className","concat","innerHTML","setAttribute","addEventListener","event","_document$activeEleme","_geographicDatum$deta2","activeElement","isEnterCode","key","selectMarker","_document$activeEleme2","_geographicDatum$deta3","H","map","DomIcon","_this$hMap","_this$hMap2","markerZIndex","headingZIndex","newMarkers","domMarker","DomMarker","lat","lng","icon","hasAllAwareUI","getDomIcon","getEventListenerArgs","shouldAttachLabel","attachLabelToMarker","setZIndex","headings","marker","getHeadingIcon","headingList","addObjects","geoData","_this$hUi$getBubbles","_this$hUi","maxI","maxJ","bubbleLabels","hUi","getBubbles","i","j","vehicleMarkericon","headingMarkerIcon","setIcon","setGeometry","setPosition","setContent","getInfoBubbleContent","slice","_this$hUi2","objToRemove","forEach","obj","dispose","item","_this$hUi3","removeBubble","end","startTime","performance","now","start","getCenter","startZoom","getZoom","requestAnimationFrame","step","currentTime","elapsed","t","Math","min","easedT","easeInOutQuad","zoom","setCenter","setZoom","action","FleetVehicleItemComponent","_dec5","_defineProperty","vehicle","isEngineOn","isEmpty","address","undefined","locationAddressText","dmsCoordinates","getDMSStringFromCoordinates","fuelLevelText","fuelLevel","fuelLevelFraction","fuelLevelClass","vehicleIdClass","vehicleIndex","fleetVehicleItem_","add_","FleetVehicleListComponent","formatDate","Date","hour","minute","second","scrollToVehicle","el","vehicleElement","querySelector","scrollIntoView","behavior","block","pageView_","await_","asyncLoader_","filtersFiltersManager_","fleetStatsBar_","mapFleetMap_","fleetVehicleList_","and_","t_0","TripItemComponent","alias","minuteDuration","duration","hourDuration","floor","roundedTripDistance","distance","expandButton_","guidFor_","formatDateTz_","guidFor_0","fleetTripHistoryTripItem_","eq_","TripDayComponent","_dec6","_dec7","_descriptor4","_descriptor5","_descriptor6","_descriptor7","dateIsToday","customerToday","tripDate","tripDay","date","formatDateTz","month","year","day","dayTrips","durationMinutes","toggleDay","isExpanded","roundedFuelUsed","fuelUsed","roundedFuelEfficiency","roundFuelEfficiency","efficiency","roundedDistanceDriven","distanceDriven","TripMap","removeObjects","routeLine","removeObject","mapData","addRoute","routeData","setViewPortPlusMargin","getRouteIcon","geographicMarkers","linestring","geo","LineString","point","pushPoint","Polyline","lineWidth","addObject","mapTripMap_","circleIcon_","TripMapComponent","gt","_dec8","empty","_dec9","_descriptor8","_descriptor9","getTripRoute","tripRoute","l","Latitude","Longitude","LocationDateUtc","canViewCarLocation","origin","geographicDatumFromCarLocationItem","destination","tripAlerts","IssueDesc","IconString","IssueDateLocal","IssueLocation","Id","tripHours","trip","tripMinutes","tripDistance","roundedTripFuelUsed","tripFuelUsed","roundedTripEfficiency","tripEfficiency","startAddressText","startAddress","endAddressText","endAddress","dmsStartCoordinates","displayString","ariaString","dmsEndCoordinates","toggleAlerts","isAlertsExpanded","tripPoint","isStart","finishIdx","isFinish","pointType","cli","tracked","routeView_","fleetTripHistoryTripDay_","fleetTripHistoryTripMap_","spinnerSvg_","paginationBar_","dropdownActions_","coalesce_","LinkTo","dropdownSelectSingleSelect_","toString_","PaginationBar","c","_intl","WeakMap","_showPages","_PaginationBar","owner","super","_classPrivateFieldInitSpec","changePageSize","selectedPageSize","_this$args$selectedPa","defaultPageSize","pageCount","itemCount","ceil","showPageSizeDropdown","pageButtons","selectedPage","buttons","fnGetRangeOfPages","Array","from","_","idx","fnGetButton","text","page","css","disabled","pages","fnAddPageBtn","push","String","fnAddRangeMenuBtn","DropdownActionItem","create","changePage","previousPage","max","nextPage","selectionLowerBound","selectionUpperBound","selectionRange","includes","pageSizeItems","_this$args$pageSizeOp","pageSizeOptions","value","DropdownSelectItem","onPageSizeChanged","size","_this$args$changePage","_this$args","call","parseInt","inject","n","module","window","define","esc","require","ConnectedFleetReports","BaseReportsRoute","EmberConnectedFleetReports","getReportType","Fleet","FleetSummaryController","EmberController","_buildTask","context","generator","fleetFiltersString","store","filteredVehicles","filterCounts","Promise","all","query","filtersString","pageUrlEnum","EmberConnectedFleetDashboard","assign","restartable","index","heading","dataLoaded","model","toggleFilterVisibility","showFilters","fleetVehicle","_fleetVehicle$details","onFilterChange","currentFilters","JSON","stringify","waitForVehicleUpdate","perform","selectVehicle","KeyboardEvent","_this$filteredVehicle","Route","AdcBaseRoute","isMetricResponse","ajax","apiRequest","canViewCarLocationResponse","apiRequestForValue","canViewFiltersResponse","hasVehicleAddressResponse","hasAllAwareUIResponse","isMetric","then","data","_ref","canViewFilters","_ref2","canViewFleetFilters","hasVehicleAddress","_ref3","canAccessVehicleAddress","_ref4","canViewAllAwareUI","findAll","filters","searchToolbar_","buttonIcon_","media_","not_","filtersFilterPanel_","FleetFilterBar","searchFilter","filtersManager","getFilterByName","toggleFilters","filtersVisible","onFiltersVisibleChange","resetFilters","resetFilterValues","resetQueryParamsFn","exportToCsv","startDate","endDate","queryParams","getUrlResponse","url","location","convertToFP","arity","a","apply","reverse","_len","_key","FleetTripHistoryController","Controller","defaultFilterValues","selectedDeviceIds","searchString","subDays","setMilliseconds","noTripDays","_this$model$tripDays$","_this$model$tripDays","tripDays","selectTrip","selectedDate","selectedTrip","pageSize","qp","newPage","send","handleFiltersVisibleChange","filtersVisibleController","resetQP","setProperties","firstObject","trips","FleetTripHistoryRoute","EmberFleetTripHistory","getQueryParam","_defaultValues$startD","defaultValues","controllerFor","routeName","paramsFor","hasVehicleAddressEnabledResponse","Number","toISOString","endTime","_data$value$isMetric","_data$value$canViewCa","hasVehicleAddressEnabled","_data$value$canAccess","setupController","controller","transition","_days$firstObject","_days$firstObject$dat","_days$firstObject2","days","afterModel","resolvedModel","FleetFilterManager","applyFilters","updateFilters","isFullTransition","deactivate","_this$filtersManager","validateFilterLength","router","transitionTo","currentModel","setEach","refresh","helper","numbers","total"],"sourceRoot":""}