{"version":3,"sources":["../src/app.ts","../src/app.html","../src/environment.ts","../src/main.ts","../src/resources/elements/dialogs/df-dialogs.ts","../src/resources/elements/dialogs/trackTraceContentViewer.ts","../src/resources/elements/dialogs/trackTraceContentViewer.html","../src/resources/elements/misc/busyindicator.ts","../src/resources/elements/misc/busyindicator.html","../src/resources/elements/spinners/splash-spinner.ts","../src/resources/elements/spinners/splash-spinner-small.ts","../src/resources/elements/spinners/splash-spinner-small.html","../src/resources/elements/spinners/splash-spinner.html","../src/resources/index.ts","../src/resources/models/Enums.ts","../src/resources/models/TrackTraceContentItem.ts","../src/resources/models/TrackTraceContentViewerPayload.ts","../src/resources/services/dfconfig.ts","../src/resources/services/trackTraceService.ts","../src/resources/value-converters/ColliCodeScanActionValueConverter.ts","../src/resources/value-converters/CurrencyValueConverter.ts","../src/resources/value-converters/DateConverter.ts","../src/resources/value-converters/DocumentTypeValueConverter.ts","../src/resources/value-converters/EventStatusIconValueConverter.ts","../src/resources/value-converters/NumberValueConverter.ts","../src/views/trackTraceView.ts","../src/views/trackTraceView.html","../src/views/welcome.ts","../src/views/welcome.html"],"names":[],"mappings":"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","file":"app-bundle.js","sourcesContent":["import {HttpClient} from \"aurelia-http-client\";\r\nimport {autoinject} from \"aurelia-framework\";\r\nimport {Router} from 'aurelia-router';\r\nimport {I18N} from 'aurelia-i18n';\r\n\r\n@autoinject\r\nexport class App\r\n{\r\n router: Router;\r\n message = \"Hello World!\";\r\n httpClient: HttpClient;\r\n serverItems: any;\r\n i18n: I18N;\r\n languageCode: string;\r\n languageIcon: string;\r\n\r\n constructor(httpClient: HttpClient, i18n: I18N) {\r\n this.httpClient = httpClient;\r\n\t\tthis.i18n = i18n;\r\n }\r\n\r\n\tconfigureRouter(config, router)\r\n\t{\r\n this.router = router;\r\n\r\n //config.addPipelineStep('authorize', AuthorizeStep);\r\n\r\n config.map([\r\n\t\t\t/*{ route: [\"login\", \"\"], moduleId: \"views/login/login\", title: \"Login\", nav: false, name: \"login\", auth: false },\r\n { route: [\"login:u:h\"], moduleId: \"views/login/login\", title: \"Login\", nav: false, name: \"login\", auth: false },*/\r\n /*{ route: [\"edit/:fragtbrevsnummer/:copy\"], moduleId: \"views/fragtbreve/createOrEdit\", title: this.i18n.tr(\"FragtbrevMain\"), nav: false, name: \"fragtbrevEdit\", auth: true },*/\r\n { route: '', redirect: 'trackTrace' },\r\n { route: [\"welcome\"], moduleId: \"views/welcome\", title: \"Velkommen til Track&Trace\", nav: false, name: \"welcomeView\", auth: false },\r\n { route: [\"trackTrace/:consignmentnumber?/:key?\"], moduleId: \"views/trackTraceView\", title: \"Track & Trace\", nav: false, name: \"trackTraceViewView\", auth: false },\r\n { route: [\"trackTrace/colli/:collicode/:key?\"], moduleId: \"views/trackTraceView\", title: \"Track & Trace\", nav: false, name: \"trackTraceColliView\", auth: false },\r\n { route: [\"trackTrace/id/:id\"], moduleId: \"views/trackTraceView\", title: \"Track & Trace\", nav: false, name: \"trackTraceIdView\", auth: false },\r\n { route: [\"trackTraceInternal/:consignmentnumber/:token\"], moduleId: \"views/trackTraceView\", title: \"Track & Trace\", nav: false, name: \"trackTraceViewInternal\", auth: false }, \r\n { route: [\"trackTraceUnsubscribe/:consignmentnumber/:email\"], moduleId: \"views/trackTraceView\", title: \"Track & Trace\", nav: false, name: \"trackTraceViewInternal\", auth: false }, \r\n ]);\r\n }\r\n\r\n activate() { \r\n\t\tlet lng = localStorage.getItem('language');\r\n\r\n if (!lng) {\r\n lng = this.i18n.getLocale();\r\n }\r\n\r\n\t\tif (lng) {\r\n this.i18n.setLocale(lng);\r\n this.setLanguageCodeAndIcon(lng); \r\n\t\t}\r\n }\r\n\r\n\ttoggleLanguage()\r\n\t{\t\t\t\t\r\n\t\tlet lng = localStorage.getItem('language');\r\n\t\tif (!(lng)) {\r\n\t\t\tlng = this.i18n.getLocale();\r\n\t\t}\r\n\r\n\t\tif (lng === 'da') {\r\n\t\t\tlng = 'en';\r\n\t\t} else {\r\n\t\t\tlng = 'da';\r\n\t\t}\r\n\r\n\t\tconsole.debug(\"Changing locale to: \" + lng);\r\n\t\tlocalStorage.setItem('language', lng);\r\n\r\n\t\tthis.i18n.setLocale(lng);\r\n\t\twindow.location.reload();\r\n\t}\r\n\r\n setLanguageCodeAndIcon(lng) {\r\n if (lng === 'da') {\r\n this.languageCode = \"UK\";\r\n this.languageIcon = \"icon-english\";\r\n } else {\r\n this.languageCode = \"DK\";\r\n this.languageIcon = \"icon-danish\"; \r\n }\r\n }\r\n}\n","\n","export default {\n debug: true,\n testing: true\n};\n","import {Aurelia} from 'aurelia-framework'\nimport environment from './environment';\n\nimport {I18N} from 'aurelia-i18n';\n\nimport Backend from 'i18next-xhr-backend'; // <-- your previously installed backend plugi\n\n\n//Configure Bluebird Promises.\n(Promise).config({\n warnings: {\n wForgottenReturn: false\n }\n});\n\nexport function configure(aurelia: Aurelia) {\n\taurelia.use\n\t\t.standardConfiguration()\n\t\t.feature('resources')\n .plugin('aurelia-dialog')\n\t\t.plugin('aurelia-i18n', (instance) =>\n {\n // register backend plugin\n instance.i18next.use(Backend);\n return instance.setup({\n backend: { // <-- configure backend settings\n loadPath: './locales/{{lng}}/{{ns}}.json', // <-- XHR settings for where to get the files from\n },\n lng: 'da',\n attributes: ['t', 'i18n'],\n fallbackLng: 'da',\n debug: true\n });\n });\n\n if (environment.debug) {\n aurelia.use.developmentLogging();\n }\n\n if (environment.testing) {\n aurelia.use.plugin('aurelia-testing');\n }\n\n aurelia.start().then(() => aurelia.setRoot());\n}\n","import {inject} from 'aurelia-framework';\r\nimport {DialogService} from 'aurelia-dialog';\r\nimport {TrackTraceContentViewer} from '../dialogs/trackTraceContentViewer';\r\nimport {TrackTraceContentViewerPayload} from '../../models/TrackTraceContentViewerPayload'\r\n\r\n@inject(DialogService)\r\nexport class Dialogs {\r\n private dialogService: DialogService;\r\n\r\n constructor(dialogService: DialogService) {\r\n this.dialogService = dialogService;\r\n }\r\n\r\n showTrackTraceContentViewerDialog(payload: TrackTraceContentViewerPayload) {\r\n return this.dialogService.open({ viewModel: TrackTraceContentViewer, model: payload, lock: false, enableEscClose: true })\r\n .whenClosed(response => {\r\n return response.output;\r\n })\r\n .then(response =>\r\n {\r\n return response.output;\r\n });\r\n }\r\n}\n","\n/// \n/// \n/// \n/// \n\nimport { inject, TaskQueue } from 'aurelia-framework';\nimport { Logger } from 'aurelia-logging';\nimport { I18N } from 'aurelia-i18n';\nimport $ from \"jquery\";\nimport { DialogController } from 'aurelia-dialog';\nimport { TrackTraceService } from '../../services/trackTraceService';\nimport { DateFormatValueConverter, TimeFormatValueConverter } from '../../value-converters/DateConverter'\nimport { TrackTraceContentViewerPayload, TrackTraceEvent } from '../../models/TrackTraceContentViewerPayload'\nimport { TrackTraceContentItem, ColliScanContentItem, GeoPositionContentItem, PictureContentItem, ScannedConsignmentNoteContentItem, NotificationContentItem } from '../../models/TrackTraceContentItem';\nimport { DocumentTypeValueConverter } from \"../../../resources/value-converters/DocumentTypeValueConverter\"\nimport ArchivePoDDocument = TrackTrace.Model.DTO.ArchivePoDDocument;\nimport PoDDocumentType = TrackTrace.Model.DTO.PoDDocumentType;\nimport moment from 'moment';\n\nconst MAX_ZOOM_LEVEL = 13;\n\n@inject(I18N, DialogController, TrackTraceService, TaskQueue, DateFormatValueConverter, TimeFormatValueConverter, DocumentTypeValueConverter)\nexport class TrackTraceContentViewer {\n payload: TrackTraceContentViewerPayload;\n trackTraceService: TrackTraceService;\n i18n: I18N;\n controller: DialogController;\n taskQueue: TaskQueue;\n swiper: Swiper;\n map: Microsoft.Maps.Map;\n bestView: Microsoft.Maps.LocationRect;\n bestViewColliLocations: Microsoft.Maps.LocationRect;\n\n dateFormatter: DateFormatValueConverter;\n timeFormatter: TimeFormatValueConverter;\n documentFormatter: DocumentTypeValueConverter;\n sortColumn: string;\n sortDirection: string;\n activeItem: TrackTraceContentItem;\n itemToBeActive: TrackTraceContentItem;\n\n imageLoading: boolean;\n showConsignmentNoteTraces: boolean;\n showColliTraces: boolean;\n showTraceCheckboxes: boolean;\n isMapBoundsSet: number = 0;\n showScannedDocumentUrl: boolean = false;\n\n imageList: Array = [];\n pictureTraceList: Array;\n trackTraceContentItems: Array;\n trackTraceGeoPositionContentItems: Array = [];\n colliTraceList: Array;\n scannedDocumentUrl: string = \"\";\n\n isFirstElement: boolean = false;\n isLastElement: boolean = false;\n\n isBusy: boolean = false;\n busyText: string = \"\";\n\n scannedDocuments: Array;\n scannedDoc: ArchivePoDDocument;\n\n constructor(i18n: I18N, controller: DialogController, trackTraceService: TrackTraceService, taskQueue: TaskQueue, dateFormatter: DateFormatValueConverter, timeFormatter: TimeFormatValueConverter, documentFormatter: DocumentTypeValueConverter) {\n this.i18n = i18n;\n this.controller = controller;\n this.trackTraceService = trackTraceService;\n this.imageLoading = false;\n this.taskQueue = taskQueue;\n this.dateFormatter = dateFormatter;\n this.timeFormatter = timeFormatter;\n this.documentFormatter = documentFormatter;\n }\n\n activate(payload: TrackTraceContentViewerPayload) {\n this.payload = payload;\n this.trackTraceContentItems = this.mapTrackTraceContentItems(payload);\n this.sortColumn = \"ColliNumber\";\n this.sortDirection = \"ASC\";\n\n this.columnSort(this.sortColumn, false);\n }\n\n deactivate() {\n this.scannedDocumentUrl = '';\n this.hideAll();\n }\n\n attached() {\n this.isMapBoundsSet = 0;\n this.hideAll();\n\n if (this.payload.consignmentNoteTraces || this.payload.colliscans || this.payload.pictures) {\n this.pictureTraceList = this.payload.pictures.filter(\n (p) => {\n return p.Latitude !== 0 &&\n p.Latitude !== null &&\n p.Longitude !== 0 &&\n p.Longitude !== null &&\n p.Longitude !== 1;\n });\n\n this.colliTraceList = this.payload.colliscans.filter(x => (x.Latitude !== 0 && x.Longitude !== 0));\n\n try {\n this.renderMap(this.payload.consignmentNoteTraces, this.colliTraceList, this.pictureTraceList);\n } catch (e) {\n console.warn(\"Error initializing map. This is a known IE problem. \" + e.message);\n }\n }\n\n if (this.payload.hasScannetFragtbrev && this.payload.scannedDocuments.Documents) {\n this.scannedDocuments = this.payload.scannedDocuments.Documents;\n this.scannedDoc = this.scannedDocuments[0];\n }\n\n if (this.payload.event === TrackTraceEvent.Picture) {\n this.itemToBeActive = this.trackTraceContentItems.find(item => item.id === 'picture_' + this.payload.pictures[0].Id);\n this.showImage(this.itemToBeActive as PictureContentItem, this);\n\n } else if (this.payload.event === TrackTraceEvent.GeoLocation) {\n let traceToShow = this.payload.consignmentNoteTraces.find(trace => trace.Id === this.payload.selectedTraceId);\n this.showLocation(traceToShow.Id, this);\n this.itemToBeActive = this.trackTraceContentItems.find(item => item.id === 'GeoLocation');\n\n } else if (this.payload.event === TrackTraceEvent.ColliScans) {\n this.showColli();\n this.itemToBeActive = this.trackTraceContentItems.find(item => item.id === 'ColliScans');\n\n } else if (this.payload.event === TrackTraceEvent.ConsignmentLetter) {\n this.showScanned();\n this.itemToBeActive = this.trackTraceContentItems.find(item => item.id === 'ConsignmentLetter');\n } else if (this.payload.event === TrackTraceEvent.Notifications) {\n this.showNotifications(this.itemToBeActive as NotificationContentItem, this);\n this.itemToBeActive = this.trackTraceContentItems.find(item => item.id === 'Notifications')\n } else if(this.payload.event === TrackTraceEvent.Comments) {\n this.showComments(this.itemToBeActive, this);\n this.itemToBeActive = this.trackTraceContentItems.find(item => item.id === 'Comments');\n }\n\n this.renderImageSwiper();\n\n console.log($('.MicrosoftMap .NavBar_Container'));\n }\n\n getScannedDocText(doc: ArchivePoDDocument) {\n if (doc.ScannedBy) {\n return \" - (Rute: \" + doc.ScannedBy + \")\";\n } else {\n return \"\";\n }\n }\n\n getScannedConsignmentNoteText(scannedDoc: ArchivePoDDocument, scannedDocuments: Array) {\n let documentsNotSigned = scannedDocuments.filter(x => x.ScannedDate == null);\n \n if (scannedDoc.ScannedDate) {\n return this.dateFormatter.toView(scannedDoc.ScannedDate) + \" \" + this.timeFormatter.toView(scannedDoc.ScannedDate) + \" \" + this.documentFormatter.toView(scannedDoc.DocumentType);\n } else {\n if (documentsNotSigned.length > 0) {\n return this.getSpacesForDateAndTime() + this.documentFormatter.toView(scannedDoc.DocumentType);\n } else {\n return this.documentFormatter.toView(scannedDoc.DocumentType);\n }\n }\n }\n\n getSpacesForDateAndTime() {\n return '\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0';\n }\n\n renderImageSwiper() {\n const swiperOptions = {\n nextButton: '.swiper-next',\n prevButton: '.swiper-prev',\n slidesPerView: 7,\n centeredSlides: false,\n paginationClickable: true,\n spaceBetween: 20\n }\n this.swiper = new Swiper('.swiper-container', swiperOptions);\n this.setActiveItem(this.itemToBeActive, true);\n }\n\n showScannedEvent(item: ScannedConsignmentNoteContentItem, that) {\n that.showScanned();\n }\n\n showScanned() {\n this.hideAll();\n $(\"#scannedConsignmentNote\").show();\n this.showScannedDocumentUrl = true;\n if (this.scannedDoc == null) { return; }\n this.setScannedDocumentUrl(this.scannedDoc.ContentId, this.scannedDoc.DocumentType);\n }\n\n showColli() {\n this.hideAll();\n $(\"#colliScans\").show();\n }\n\n showColliEvent(item: ColliScanContentItem, that) {\n that.showColli();\n }\n\n showImageEvent(item: PictureContentItem, that) {\n that.showImage(item, that);\n }\n\n currentPictureMeta: TrackTrace.Model.DTO.PictureMetadata = null;\n showImage(item: PictureContentItem, that) {\n that.hideAll();\n this.currentPictureMeta = null;\n that.imageLoading = true;\n that.isBusy = true;\n that.busyText = that.i18n.tr('HenterBillede');\n\n let pictureItemActive = item;\n\n if (that.payload.key) {\n that.trackTraceService.getImage(item.pictureId.toString(), that.payload.consignmentNumber, that.payload.key)\n .then(url => {\n that.displayImage(url, that, pictureItemActive);\n });\n }\n }\n\n showNotifications(item: NotificationContentItem, that) {\n that.hideAll();\n $(\"#notifications\").show();\n\n }\n\n showComments(item: TrackTraceContentItem, that) {\n that.hideAll();\n $(\"#comments\").show();\n }\n\n\n displayImage(url, that, item: PictureContentItem) {\n that.isBusy = false;\n that.busyText = \"\";\n\n that.imageLoading = false;\n\n if (that.activeItem === item) {\n var imageElement = document.getElementById(\"consignmentImage\");\n imageElement.setAttribute(\"src\", url.content);\n $(\".image-container\").show();\n\n this.currentPictureMeta = this.payload.pictures.find(p => p.Id.toString() === item.pictureId);\n }\n }\n\n showLocationEvent(item: GeoPositionContentItem, that) {\n that.showLocationInternal(that);\n }\n\n showLocation(locationId: number, that) {\n that.showLocationInternal(that);\n\n let trace = that.payload.consignmentNoteTraces.find((x) => x.Id === locationId);\n trace.infoBox.setOptions({ visible: true });\n\n that.setAddressDescription(trace.infoBox, trace.infoBox.getDescription(), trace, { latitude: trace.Latitude, longitude: trace.Longitude });\n }\n\n showLocationInternal(that) {\n that.hideAll();\n $(\".map-container\").show();\n\n that.setVisibilityForTraces(that.colliTraceList, false);\n that.showColliTraces = false;\n that.setVisibilityForTraces(that.payload.consignmentNoteTraces, true);\n that.setVisibilityForTraces(that.pictureTraceList, true);\n that.showConsignmentNoteTraces = true;\n\n that.hideAllTraceInfoboxes(that);\n\n that.setMapBounds(that);\n }\n\n showLocationPicture(pictureId: number){\n this.showLocationColli(pictureId, true);\n }\n \n showLocationColli(locationId: number, isPicture: boolean = false) {\n this.hideAll();\n $(\".map-container\").show();\n\n let itemToBeActive = this.trackTraceContentItems.find(item => item.id === 'GeoLocation');\n this.setActiveItem(itemToBeActive, true);\n\n this.showColliTraces = true;\n\n this.setVisibilityForTraces(this.payload.consignmentNoteTraces, false);\n this.setVisibilityForTraces(this.pictureTraceList, false);\n this.setVisibilityForTraces(this.colliTraceList, false);\n this.showConsignmentNoteTraces = false;\n\n\n let trace: any \n if(isPicture){\n console.log(\"Gets here, with id: \" + locationId)\n this.setVisibilityForTraces(this.pictureTraceList, true);\n this.hideAllTraceInfoboxes(this);\n trace = this.pictureTraceList.find((x) => x.Id === locationId);\n } else{\n this.setVisibilityForTraces(this.colliTraceList, true);\n this.showColliTraces = true;\n this.hideAllTraceInfoboxes(this);\n trace = this.colliTraceList.find((x) => x.Id === locationId);\n }\n trace.infoBox.setOptions({ visible: true });\n\n this.setMapBounds(this);\n }\n\n hideAllTraceInfoboxes(that) {\n that.hideTracesInfoboxes(that.payload.consignmentNoteTraces);\n that.hideTracesInfoboxes(that.pictureTraceList);\n that.hideTracesInfoboxes(that.colliTraceList);\n }\n\n hideTracesInfoboxes(traces) {\n if (!traces || traces.length === 0)\n return;\n\n for (let trace of traces) {\n if (trace.infoBox.getOptions().visible)\n trace.infoBox.setOptions({ visible: false });\n }\n }\n\n setVisibilityForTraces(traces, visible) {\n for (let trace of traces) {\n trace.pushpin.setOptions({ visible: visible });\n }\n }\n\n setMapBounds(that) {\n that.map.setView({ bounds: that.bestView });\n let zoom = that.map.getZoom() > MAX_ZOOM_LEVEL ? MAX_ZOOM_LEVEL : that.map.getZoom() - 1;\n that.map.setView({ zoom: zoom });\n\n // Yes it's a hack and we both know it. Be my guest, try to do it in another way (hint. Bing Maps won't be your friend) \n $($(\".MicrosoftMap\").children()[0]).bind(\"DOMNodeInserted\",\n () => {\n if (that.isMapBoundsSet < 2) { // the map 2 layers and event is seen twice. \n that.isMapBoundsSet++;\n that.map.setView({ bounds: that.bestView });\n let zoom = that.map.getZoom() > MAX_ZOOM_LEVEL ? MAX_ZOOM_LEVEL : that.map.getZoom() - 1;\n that.map.setView({ zoom: zoom });\n }\n });\n }\n\n renderMap(traces, colliTraces, pictureTraces) {\n this.map = new Microsoft.Maps.Map(document.getElementById(\"trackTraceMap\"),\n {\n credentials: \"AiUu9-PT5dcMQb3oemUQjPJlU3ALqMWVrHiJPhJHTP-ExBc5VMF2Q6LirEnpDEjb\"\n });\n\n let locations = [];\n\n if (traces) {\n for (let trace of traces) {\n const location = new Microsoft.Maps.Location(trace.Latitude, trace.Longitude);\n locations.push(location);\n\n let description = `${trace.EventCodeText ? trace.EventCodeText : trace.EventCode} Kl. ${this.timeFormatter.toView(trace.Date)} ${this.dateFormatter.toView(trace.Date)}`;\n let pushpin = this.createPushpin(trace, location, 'images/track-icon.png', description);\n\n this.map.entities.push(pushpin);\n }\n }\n\n if (pictureTraces) {\n for (let trace of pictureTraces) {\n const location = new Microsoft.Maps.Location(trace.Latitude, trace.Longitude);\n locations.push(location);\n\n let description = this.i18n.tr('FotoXAfForsendelse').replace('${number}', trace.photoIndex);\n let pushpin = this.createPushpin(trace, location, 'images/track-icon.png', description);\n\n this.map.entities.push(pushpin);\n }\n }\n\n if (colliTraces) {\n for (let colliTrace of colliTraces) {\n const location = new Microsoft.Maps.Location(colliTrace.Latitude, colliTrace.Longitude);\n locations.push(location);\n\n let description = `${colliTrace.EventCodeText ? colliTrace.EventCodeText : colliTrace.EventCode}, Nr. ${colliTrace.Barcode}, Kl. ${this.timeFormatter.toView(colliTrace.Date)} ${this.dateFormatter.toView(colliTrace.Date)}`;\n let pushpin = this.createPushpin(colliTrace, location, 'images/track-icon-violet.png', description);\n\n this.map.entities.push(pushpin);\n }\n }\n\n if (locations.length > 0) {\n this.bestView = Microsoft.Maps.LocationRect.fromLocations(locations);\n }\n\n // Custom styling\n $($(\".MicrosoftMap\").children()[1]).bind(\"DOMNodeInserted\",\n () => {\n $('.MicrosoftMap .NavBar_Container').each(function () {\n this.style.setProperty('right', '0px', 'important');\n });\n });\n }\n\n mapTrackTraceContentItems(trackTraceContentViewerPayload: TrackTraceContentViewerPayload): TrackTraceContentItem[] {\n let contentItems: TrackTraceContentItem[] = [];\n // Consignment receipt\n if (trackTraceContentViewerPayload.hasScannetFragtbrev) {\n let contentItem = new ScannedConsignmentNoteContentItem();\n contentItem.description = this.payload.hasSignedFragtbrev ? this.i18n.tr(\"Kvittering\") : this.i18n.tr(\"FragtbrevsDokument\");\n contentItem.headline = this.payload.hasSignedFragtbrev ? this.i18n.tr(\"KvitteringForModtagelse\") : this.i18n.tr(\"FragtbrevsDokument\");\n contentItem.eventCall = this.showScannedEvent;\n contentItem.iconClass = this.payload.hasSignedFragtbrev ? \"icon-consignment-note\" : \"icon-document\";\n contentItem.id = \"ConsignmentLetter\";\n contentItems.push(contentItem);\n }\n\n // Colli\n if ((trackTraceContentViewerPayload.colliscans && trackTraceContentViewerPayload.colliscans.length > 0) || trackTraceContentViewerPayload.carrier == 'DAO') {\n let contentItem = new ColliScanContentItem();\n contentItem.description = this.i18n.tr(\"Kolliskanninger\");\n contentItem.headline = this.i18n.tr(\"KolliskanPaaFragtbrev\").replace('${fbNr}', trackTraceContentViewerPayload.consignmentNumber);\n contentItem.eventCall = this.showColliEvent;\n contentItem.iconClass = \"icon-barcode\";\n contentItem.id = \"ColliScans\";\n contentItems.push(contentItem);\n }\n\n // GeoLocations\n if (trackTraceContentViewerPayload.consignmentNoteTraces && trackTraceContentViewerPayload.consignmentNoteTraces.length > 0) {\n let contentItem = new ColliScanContentItem();\n contentItem.description = this.i18n.tr(\"GeopositionItemLabel\");\n contentItem.headline = this.i18n.tr(\"GeopositionItemLabel\");\n contentItem.eventCall = this.showLocationEvent;\n contentItem.iconClass = \"icon-geo-position\";\n contentItem.id = \"GeoLocation\";\n contentItems.push(contentItem);\n }\n\n // Pictures \n if (trackTraceContentViewerPayload.pictures) {\n for (let i = 0; i < trackTraceContentViewerPayload.pictures.length; i++) {\n let payloadItem: TrackTrace.Model.DTO.PictureMetadata = trackTraceContentViewerPayload.pictures[i];\n\n let contentItem = new PictureContentItem();\n contentItem.headline = this.i18n.tr('FotoXAfForsendelse').replace('${number}', (i + 1).toString());\n contentItem.description = this.i18n.tr('FotoX').replace('${number}', (i + 1).toString());\n contentItem.photoIndex = i + 1;\n contentItem.eventCall = this.showImageEvent;\n contentItem.iconClass = \"icon-camera\";\n contentItem.id = \"picture_\" + payloadItem.Id;\n contentItem.pictureId = payloadItem.Id.toString();\n\n let payloadItemAny: any = payloadItem;\n payloadItemAny.photoIndex = i + 1;\n\n contentItems.push(contentItem);\n }\n }\n\n // Notifications\n if (trackTraceContentViewerPayload.notifications && trackTraceContentViewerPayload.notifications.length > 0) {\n let contentItem = new NotificationContentItem();\n contentItem.description = this.i18n.tr(\"Notifications\");\n contentItem.headline = this.i18n.tr(\"NotificationHistory\");\n contentItem.eventCall = this.showNotifications;\n contentItem.iconClass = \"icon-mail\";\n contentItem.id = \"Notifications\";\n contentItems.push(contentItem);\n }\n\n // Comments\n if (trackTraceContentViewerPayload.ConsignmentComments && trackTraceContentViewerPayload.ConsignmentComments.length > 0) {\n let contentItem = new TrackTraceContentItem();\n contentItem.description = this.i18n.tr(\"Comments\");\n contentItem.headline = this.i18n.tr(\"Comments\");\n contentItem.eventCall = this.showComments;\n contentItem.iconClass = \"icon-comment\";\n contentItem.id = \"Comments\";\n contentItems.push(contentItem);\n }\n\n return contentItems;\n }\n\n trackTraceItemEvent(item: TrackTraceContentItem) {\n if (!item)\n return;\n\n item.eventCall(item, this);\n\n this.setActiveItem(item, false);\n }\n\n hideAll() {\n $(\".map-container\").hide();\n $(\".image-container\").hide();\n this.currentPictureMeta = null;\n $(\"#colliScans\").hide();\n $(\"#notifications\").hide();\n $(\"#scannedConsignmentNote\").hide();\n $('#comments').hide();\n this.showScannedDocumentUrl = false;\n }\n\n columnSort(columnName: string, onlySetValues: boolean = false) {\n if (this.sortColumn === columnName) {\n\n if (onlySetValues === false) {\n if (this.sortDirection === 'ASC') {\n this.sortDirection = 'DESC';\n }\n else {\n this.sortDirection = 'ASC';\n }\n console.debug(\"ColumnSort toggle\");\n }\n }\n else {\n let element: any = $(\"#\" + this.sortColumn.replace(\".\", \"\\\\.\") + \" > svg > use\")[0];\n if (element) {\n element.href.baseVal = \"#\";\n }\n this.sortColumn = columnName;\n\n if (onlySetValues === false) {\n this.sortDirection = \"DESC\";\n }\n }\n\n let element: any = $(\"#\" + this.sortColumn.replace(\".\", \"\\\\.\") + \" > svg > use\")[0];\n\n // Set icon in list header\n if (this.sortDirection === 'ASC') {\n if (element) {\n element.href.baseVal = \"#icon-arrow-small-up\";\n }\n }\n else {\n if (element) {\n element.href.baseVal = \"#icon-arrow-small-down\";\n }\n }\n\n if (onlySetValues === false) {\n if (columnName === \"ColliNumber\" && this.payload.colliscans) {\n this.payload.colliscans = this.sortBarcode(this.payload.colliscans, this.sortDirection);\n }\n else if (columnName === \"ScanTime\" && this.payload.colliscans) {\n this.payload.colliscans = this.sortScanTime(this.payload.colliscans, this.sortDirection);\n }\n else if (columnName === \"ScanText\" && this.payload.colliscans) {\n this.payload.colliscans = this.sortEventCodeText(this.payload.colliscans, this.sortDirection);\n }\n }\n\n console.debug(\"ColumnSort called for (\" + columnName + \") -> SC:\" + this.sortColumn + \", SO:\" + this.sortDirection);\n }\n\n sortBarcode(array: Array, order: string) {\n if (order === \"ASC\") {\n array = array.sort((n1, n2) => {\n return this.sortStringAscending(n1.Barcode, n2.Barcode);\n });\n return array;\n } else {\n array = array.sort((n1, n2) => {\n return this.sortStringDescending(n1.Barcode, n2.Barcode);\n });\n return array;\n }\n }\n\n sortEventCodeText(array: Array, order: string) {\n if (order === \"ASC\") {\n array = array.sort((a, b) => {\n return this.sortStringAscending(a.EventCodeText, b.EventCodeText);\n });\n return array;\n } else {\n array = array.sort((a, b) => {\n return this.sortStringDescending(a.EventCodeText, b.EventCodeText);\n });\n return array;\n }\n }\n\n sortScanTime(array: Array, order: string) {\n if (order === \"ASC\") {\n array = array.sort((n1, n2) => {\n if (n1.Date > n2.Date) {\n return 1;\n }\n\n if (n1.Date < n2.Date) {\n return -1;\n }\n\n return 0;\n });\n return array;\n } else {\n array = array.sort((n1, n2) => {\n if (n1.Date < n2.Date) {\n return 1;\n }\n\n if (n1.Date > n2.Date) {\n return -1;\n }\n\n return 0;\n });\n return array;\n }\n }\n\n sortStringAscending(a: string, b: string) {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n return 0;\n }\n\n sortStringDescending(a: string, b: string) {\n if (a < b) {\n return 1;\n }\n if (a > b) {\n return -1;\n }\n return 0;\n }\n\n setActiveItem(item: TrackTraceContentItem, slideToItem: boolean) {\n if (this.activeItem) {\n let oldActiveItemIndex = this.trackTraceContentItems.indexOf(this.activeItem);\n $($('#swiper-wrapper').children()[oldActiveItemIndex]).removeClass(\"track-trace-content-item-active\");\n }\n\n let newActiveItemIndex = this.trackTraceContentItems.indexOf(item);\n $($('#swiper-wrapper').children()[newActiveItemIndex]).addClass(\"track-trace-content-item-active\");\n this.activeItem = item;\n\n if (slideToItem) {\n this.swiper.slideTo(newActiveItemIndex, 300, false);\n }\n\n if (this.activeItem) {\n if (this.activeItem.id === 'GeoLocation' && this.colliTraceList && this.colliTraceList.length > 0) {\n this.showTraceCheckboxes = true;\n } else {\n this.showTraceCheckboxes = false;\n }\n }\n\n this.updateElementIndex(newActiveItemIndex);\n }\n\n createPushpin(trace, location, iconPath, description): Microsoft.Maps.Pushpin {\n let pushpin = new Microsoft.Maps.Pushpin(location, {\n icon: iconPath,\n anchor: new Microsoft.Maps.Point(16, 30)\n });\n\n trace.pushpin = pushpin;\n\n const infobox = new Microsoft.Maps.Infobox(location,\n {\n title: trace.Location,\n description: description,\n visible: false,\n offset: new Microsoft.Maps.Point(0, 34)\n });\n\n infobox.setMap(this.map);\n\n trace.infoBox = infobox;\n\n Microsoft.Maps.Events.addHandler(pushpin, \"click\", () => {\n // Toggle infobox visibility\n infobox.setOptions({\n visible: !infobox.getOptions().visible\n });\n if (infobox.getDescription() === null) {\n infobox.setOptions({ description: description });\n }\n else if (infobox.getVisible() && infobox.getDescription() === description) { // Only set address description if infobox are becoming visible and address description has not previously been set\n this.setAddressDescription(infobox, description, trace, location);\n }\n });\n\n return pushpin;\n }\n\n toggleTraces(traces, visible) {\n for (let trace of traces) {\n trace.pushpin.setOptions({ visible: visible });\n }\n }\n\n toggleConsigmentNoteTraces(traces) {\n this.toggleTraces(this.payload.consignmentNoteTraces, this.showConsignmentNoteTraces);\n this.toggleTraces(this.pictureTraceList, this.showConsignmentNoteTraces);\n this.hideTracesInfoboxes(this.payload.consignmentNoteTraces);\n this.hideTracesInfoboxes(this.pictureTraceList);\n }\n\n toggleColliTraces(traces) {\n this.toggleTraces(this.colliTraceList, this.showColliTraces);\n this.hideTracesInfoboxes(this.colliTraceList);\n }\n\n showPreviousItem() {\n let indexOfCurrentItem = this.trackTraceContentItems.indexOf(this.activeItem);\n let indexOfPreviousItem = indexOfCurrentItem - 1;\n\n let itemToBeActive = this.trackTraceContentItems[indexOfPreviousItem];\n if (itemToBeActive) {\n itemToBeActive.eventCall(itemToBeActive, this);\n this.setActiveItem(itemToBeActive, false);\n }\n }\n\n showNextItem() {\n let indexOfCurrentItem = this.trackTraceContentItems.indexOf(this.activeItem);\n let indexOfNextItem = indexOfCurrentItem + 1;\n\n let itemToBeActive = this.trackTraceContentItems[indexOfNextItem];\n if (itemToBeActive) {\n itemToBeActive.eventCall(itemToBeActive, this);\n this.setActiveItem(itemToBeActive, false);\n }\n }\n\n updateElementIndex(indexOfElement) {\n this.isFirstElement = indexOfElement === 0;\n this.isLastElement = (this.trackTraceContentItems.length - 1 === indexOfElement);\n }\n\n setScannedDocumentUrl(contentId: string, documentType: PoDDocumentType) {\n if (this.payload.key)\n this.scannedDocumentUrl = this.trackTraceService.getScannetFragtbrevUrlWithKey(this.payload.consignmentNumber, this.payload.key, contentId, documentType);\n }\n\n showInNewWindow() {\n window.open(this.scannedDocumentUrl);\n }\n\n hasValidDate(date) {\n return new Date(date).getFullYear() > 1900;\n }\n\n onScannedDocumentChanged(doc: ArchivePoDDocument) {\n this.setScannedDocumentUrl(doc.ContentId, doc.DocumentType);\n }\n\n getNearestAddress(location) {\n return this.trackTraceService.getNearestAddress(location);\n }\n\n setAddressDescription(infobox: Microsoft.Maps.Infobox, description, trace, location) {\n let eventCodes = [\"LEV\", \"LFF\", \"LMM\", \"FAF\", \"FIH\", \"FFL\", \"FVF\", \"FVA\", \"FFA\", \"FMN\"];\n\n if (eventCodes.includes(trace.EventCode) || eventCodes.includes(trace.ExtendedEventCode)) {\n infobox.setOptions({\n description: description + `... ${this.i18n.tr('LoadingNearestAddress')} ...`\n });\n\n this.getNearestAddress(location).then(data => {\n let address = data.content;\n let newDescription = \"\";\n\n if (address) {\n if (address.DistanceToLocationInMeters) {\n newDescription =\n description + `
${this.i18n.tr('NearestAddress')}: ${address.Adresse}, ${address.Postnummer} ${address.Bynavn} - ${this.i18n.tr('Distance')}: ${address.DistanceToLocationInMeters}m`;\n } else {\n newDescription =\n description + `
${this.i18n.tr('Address')}: ${address.Adresse}, ${address.Postnummer} ${address.Bynavn}`;\n }\n } else {\n newDescription = description + `
${this.i18n.tr('CouldntCalcAddress')}.`;\n }\n\n infobox.setOptions({ description: newDescription });\n });\n }\n }\n\n showScanningType(): boolean {\n return this.payload.token ? true : false;\n }\n}\n","\n","/// \r\n/// \r\n/// \r\n\r\nimport {customElement, bindable, inject} from 'aurelia-framework';\nimport {BindingSignaler} from 'aurelia-templating-resources'\r\nimport environment from '../../../environment';\r\n\n@customElement('busyindicator')\n@inject(BindingSignaler)\nexport class BusyIndicator \n{\n bindingSignaler: BindingSignaler;\n\n @bindable isbusy: boolean;\n @bindable busytext: string; \n\n constructor(bindingSignaler: BindingSignaler)\n {\n this.bindingSignaler = bindingSignaler;\n }\n\n isbusyChanged(newValue, oldValue) \n { \n this.bindingSignaler.signal('busyChanged');\n }\n\n busytextChanged(newValue, oldValue) \n {\n if (environment.debug)\r\n {\n newValue.length === 0 ? console.log(\"BusyText cleared\") : console.log(\"BusyText set to:\" + newValue);\n }\n\n this.bindingSignaler.signal('busytextChanged');\n }\n}","","import {bindable, inject, customElement} from 'aurelia-framework';\r\n\r\n@customElement('splashspinner')\r\n@inject(Element) // Inject the instance of this element\r\nexport class SplashSpinner\r\n{\r\n @bindable size: number = 40;\r\n\r\n element: Element;\r\n\r\n constructor(element)\r\n {\r\n this.element = element;\r\n }\r\n\r\n attached()\r\n {\r\n $('.sk-fading-circle').css(\"height\", this.size + \"px\");\r\n $('.sk-fading-circle').css(\"width\", this.size + \"px\");\r\n }\r\n\r\n}","import {bindable, inject, customElement} from 'aurelia-framework';\r\n\r\n@customElement('splashspinnersmall')\r\n@inject(Element) // Inject the instance of this element\r\nexport class SplashSpinnerSmall\r\n{\r\n @bindable size: number = 20;\r\n\r\n element: Element;\r\n\r\n constructor(element)\r\n {\r\n this.element = element;\r\n }\r\n\r\n attached()\r\n {\r\n $('.sk-fading-circle-sm').css(\"height\", this.size + \"px\");\r\n $('.sk-fading-circle-sm').css(\"width\", this.size + \"px\");\r\n }\r\n\r\n}","","","import {FrameworkConfiguration} from 'aurelia-framework';\n\nexport function configure(config: FrameworkConfiguration) {\n //config.globalResources([]);\n}\n","module TrackTrace.Model.DTO {\r\n\texport const enum ConsignmentNoteEtaConfidence {\r\n\t\tHigh = 0,\r\n\t\tMedium = 1,\r\n\t\tLow = 2\r\n\t}\r\n\texport const enum ConsignmentNoteEtaStatusCode {\r\n\t\tOk = 0,\r\n\t\tConsignmentNotFound = 1,\r\n\t\tReadyForDeliveryToday = 2,\r\n\t\tExpectedDeliveryNextWorkday = 3,\r\n\t\tDelivered = 4,\r\n\t\tError = 5,\r\n\t\tNotCalculated = 6\r\n\t}\r\n\texport const enum ConsignmentNoteTypeEnum {\r\n\t\tPickup = 0,\r\n\t\tReturn = 1,\r\n\t\tChangeOfAddress = 2,\r\n\t\tUnknown = 3\r\n\t}\r\n\texport const enum EtaStatusEnum {\r\n\t\tUnderWay = 0,\r\n\t\tDOT = 1,\r\n\t\tDelivered = 2,\r\n\t\tDelayed = 3,\r\n\t\tError = 4,\r\n\t\tSDL = 5\r\n\t}\r\n\texport const enum EventCodeStatusEnum {\r\n\t\tUnknown = 0,\r\n\t\tReady = 1,\r\n\t\tInProgress = 2,\r\n\t\tDelivered = 3,\r\n\t\tError = 4,\r\n\t\tDelayed = 5,\r\n\t\tInformation = 6\r\n\t}\r\n\texport const enum PaysEnum {\r\n\t\tUnknown = 0,\r\n\t\tPrepaid = 1,\r\n\t\tCollect = 2\r\n\t}\r\n\texport const enum PoDDocumentType {\r\n\t\tUnknown = 0,\r\n\t\tUnsignedConsignmentNote = 1,\r\n\t\tSignedConsignmentNote = 2,\r\n\t\tPoDReport = 3,\r\n\t\tSignedOnGlassConsignmentNote = 4\r\n\t}\r\n\texport const enum ShippingTypeEnum {\r\n\t\tUnknown = 0,\r\n\t\tStykgods = 1,\r\n\t\tErhversbilpakker = 2,\r\n\t\tBilpakke = 3,\r\n\t\tPalleEnhedsForsendelse = 4,\r\n\t\tErhvervspakkeVolumen = 5\r\n\t}\r\n\texport const enum TrackTraceType {\r\n\t\tPicture = 0,\r\n\t\tGeoposition = 1,\r\n\t\tSignature = 2\r\n\t}\r\n\texport enum ColliCodeScanAction {\r\n\t\tUnknown = 0,\r\n\t\tBeam = 1,\r\n\t\tScreenTouch = 2,\r\n\t\tFingerScan = 3,\r\n\t\tLoadAllButton = 4,\r\n\t\tEnteredManually = 5,\r\n\t\tAutomated = 6\r\n\t}\r\n}\r\n\r\n","\nexport class TrackTraceContentItem {\n description: string;\n headline: string;\n eventCall: any;\n iconClass: string;\n id: string;\n}\n\nexport class GeoPositionContentItem extends TrackTraceContentItem {\n positionId: number;\n}\n\nexport class PictureContentItem extends TrackTraceContentItem {\n pictureId: string;\n photoIndex: number;\n}\n\nexport class NotificationContentItem extends TrackTraceContentItem {\n timestamp: Date;\n type: string;\n notification: string;\n receiver: string;\n}\n\nexport class ScannedConsignmentNoteContentItem extends TrackTraceContentItem {\n url: string;\n}\n\nexport class ColliScanContentItem extends TrackTraceContentItem {\n\n}\n","\n\nexport interface TrackTraceContentViewerPayload {\n pictures?: Array,\n consignmentNoteTraces?: Array,\n selectedTraceId?: number;\n event?: TrackTraceEvent; \n hasScannetFragtbrev: boolean,\n hasSignedFragtbrev: boolean,\n colliscans?: Array;\n notifications?: Array\n consignmentNumber: string;\n token: string;\n key: string;\n scannedDocuments: TrackTrace.Model.DTO.ArchivePoDDocuments;\n showPOD: boolean;\n carrier: string;\n ConsignmentComments: Array;\n}\n\nexport const enum TrackTraceEvent {\n GeoLocation,\n Picture,\n ConsignmentLetter,\n ColliScans,\n Notifications,\n Comments\n}\n","import {inject} from 'aurelia-framework';\r\n\r\nexport class DFConfig {\r\n baseUrlService: string;\r\n trackTraceBaseurl: string;\r\n\r\n constructor() {\r\n this.baseUrlService = \"http://localhost/\";\r\n if (window.location.hostname === \"localhost\") {\r\n //this.baseUrlService = \"http://localhost:3205\";\r\n this.baseUrlService = \"http://localhost:5000\";\r\n this.trackTraceBaseurl = \"http://localhost:9000/#/trackTrace/\";\r\n }\r\n else if (window.location.hostname === \"tracetest.fragt.dk\") {\r\n this.baseUrlService = \"https://tracetest.fragt.dk/backend\";\r\n this.trackTraceBaseurl = \"https://tracetest.fragt.dk/#/trackTrace/\";\r\n }\r\n else if (window.location.hostname === \"swisst01\") {\r\n this.baseUrlService = \"http://swisst01/ret\";\r\n this.trackTraceBaseurl = \"https://tracetest.fragt.dk/#/trackTrace/\";\r\n }\r\n else if (window.location.hostname === \"swiist02\") {\r\n this.baseUrlService = \"http://swiist02/tracktrace/backend\";\r\n this.trackTraceBaseurl = \"https://swiist02/trackTrace/\";\r\n }\r\n else if (window.location.hostname === \"swiist05\") {\r\n this.baseUrlService = \"http://swiist05/tracktrace/backend\";\r\n this.trackTraceBaseurl = \"https://swiist05/trackTrace/\";\r\n }\r\n else if (window.location.hostname === \"tracestaging.fragt.dk\")\r\n {\r\n this.baseUrlService = \"https://tracestaging.fragt.dk/backend\";\r\n this.trackTraceBaseurl = \"https://tracestaging.fragt.dk/#/trackTrace/\";\r\n }\r\n else if (window.location.hostname === \"mobilitytest.fragt.dk\") {\r\n this.baseUrlService = \"http://mobilitytest.fragt.dk/webfragt2\";\r\n this.trackTraceBaseurl = \"https://tracetest.fragt.dk/#/trackTrace/\";\r\n }\r\n else if (window.location.hostname === \"trace.fragt.dk\") {\r\n this.baseUrlService = \"https://trace.fragt.dk/backend\";\r\n this.trackTraceBaseurl = \"https://trace.fragt.dk/#/trackTrace/\";\r\n }\r\n else if (window.location.hostname === \"webfragt.fragt.dk\") {\r\n this.baseUrlService = \"https://webfragt.fragt.dk/Fragtbrevsrettelser\";\r\n this.trackTraceBaseurl = \"https://trace.fragt.dk/#/trackTrace/\";\r\n }\r\n else if (window.location.hostname === \"ret.fragt.dk\") {\r\n this.baseUrlService = \"https://ret.fragt.dk/Fragtbrevsrettelser\";\r\n this.trackTraceBaseurl = \"https://trace.fragt.dk/#/trackTrace/\";\r\n }\r\n else {\r\n this.baseUrlService = \"\";\r\n } \r\n } \r\n}\r\n\r\n","import { HttpClient, HttpResponseMessage } from 'aurelia-http-client';\nimport { inject } from 'aurelia-framework';\nimport { DFConfig } from './dfconfig';\nimport ArchivePoDDocuments = TrackTrace.Model.DTO.ArchivePoDDocuments;\nimport PoDDocumentType = TrackTrace.Model.DTO.PoDDocumentType;\n\n@inject(HttpClient, DFConfig)\nexport class TrackTraceService {\n httpClient: HttpClient;\n config: DFConfig;\n\n constructor(httpClient: HttpClient, config: DFConfig) {\n this.httpClient = httpClient;\n this.config = config;\n\n let url = this.config.baseUrlService + \"/api/tracktrace/\";\n\n this.httpClient.configure(x => {\n x.withBaseUrl(url);\n });\n\n\n }\n\n getData(consignmentNumber: string, language: number, token: string) {\n\n this.httpClient.configure(a => a.withHeader(\"Accept\", \"application/json; charset=utf-8\"));\n this.httpClient.configure(a => a.withHeader(\"Authorization\", \"Bearer \" + token));\n\n return this.httpClient\n .get(`?consignmentNumber=${consignmentNumber}&language=${language}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content,\n error: !response.isSuccess\n }\n });\n }\n\n getEta(consignmentNumber: string) {\n\n return this.httpClient\n .get(`GetEta?consignmentNumber=${consignmentNumber}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content,\n error: !response.isSuccess\n }\n });\n }\n\n getTrackTraceById(id: string, language: number) {\n return this.httpClient\n .get(`GetById?id=${id}&language=${language}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content,\n error: !response.isSuccess\n }\n });\n }\n\n getTrackTraceByConsignmentNumber(consignmentNumber: string, language: number) {\n\n return this.httpClient\n .get(`GetByConsignmentNumber?consignmentNumber=${consignmentNumber}&language=${language}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content,\n error: !response.isSuccess\n }\n });\n }\n\n getTrackTraceByColliCode(colliCode: string, language: number) {\n\n return this.httpClient\n .get(`GetByColliCode?colliCode=${colliCode}&language=${language}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content,\n error: !response.isSuccess\n }\n });\n }\n\n getTrackTraceByColliCodeAndKey(colliCode: string, key: string, language: number) {\n\n return this.httpClient\n .get(`GetByCollicodeAndKey?colliCode=${colliCode}&key=${key}&language=${language}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content,\n error: !response.isSuccess\n }\n });\n }\n\n getTrackTraceByConsignmentNumberAndKey(consignmentNumber: string, key: string, language: number) {\n\n return this.httpClient\n .get(`GetByConsignmentNumberAndKey?consignmentNumber=${consignmentNumber}&key=${key}&language=${language}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content,\n error: !response.isSuccess\n }\n });\n }\n\n getRedeliveryKey(originalConsignmentNumber: string, redeliveryConsignmentNumber: string, key: string) {\n\n return this.httpClient\n .get(`GetConsignmentkeyForRedelivery?originalConsignmentNumber=${originalConsignmentNumber}&key=${key}&redeliveryConsignmentNumber=${redeliveryConsignmentNumber}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content,\n error: !response.isSuccess\n }\n });\n }\n\n getTrackTraceByGuid(guid: string, language: number) {\n\n return this.httpClient\n .get(`GetByGuid?guid=${guid}&language=${language}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content,\n error: !response.isSuccess\n }\n });\n }\n\n submitEmailAddress(consignmentNumber: string, emailAddress: string, type: string, language: number) {\n\n return this.httpClient\n .get(`SubmitEmailAddressToConsignment?consignmentNumber=${consignmentNumber}&emailAddress=${emailAddress\n }&type=${type}&language=${language}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content,\n error: !response.isSuccess\n }\n });\n }\n\n removeEmailAddress(consignmentNumber: string, emailAddress: string) {\n\n return this.httpClient\n .get(`RemoveEmailAddressToConsignment?consignmentNumber=${consignmentNumber}&emailAddress=${emailAddress}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content,\n error: !response.isSuccess\n }\n });\n }\n\n getImage(id: string, consignmentNumber: string, key: string) {\n return this.httpClient.get(`GetPictureByConsignmentNumberAndKey?id=${id}&consignmentNumber=${consignmentNumber}&key=${key}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(response => {\n return {\n content: response.content.DataUrl,\n error: !response.isSuccess\n }\n });\n }\n\n getScannedeFragtbreveWithKey(consignmentNumber: string, key: string): Promise {\n if (!key)\n return null;\n let url = `GetScannedConsignmentNoteByConsignmentNumberAndKey?consignmentNumber=${consignmentNumber}&key=${key}`;\n\n return this.httpClient.get(url);\n }\n\n getScannetFragtbrevUrlWithKey(consignmentNumber: string, key: string, contentId: string, documentType: PoDDocumentType) { \n let url = this.config.baseUrlService + \"/api/tracktrace/\" + `GetScannedConsignmentNoteUrlByConsignmentNumberAndKeyAndContentId?consignmentNumber=${consignmentNumber}&key=${key}&documentType=${documentType}&contentId=${contentId}`;\n return url;\n }\n\n getTrackTraceUrl(consignmentNumber: string, key: string) {\n if (key && consignmentNumber && key.length < 32) {\n return this.config.trackTraceBaseurl + consignmentNumber + \"/\" + key;\n } else if (key) {\n return this.config.trackTraceBaseurl + key;\n } else {\n return this.config.trackTraceBaseurl + consignmentNumber;\n }\n }\n\n getEncryptedKey(consignmentNumber: string, token: string) {\n this.httpClient.configure(a => a.withHeader(\"Accept\", \"application/json; charset=utf-8\"));\n this.httpClient.configure(a => a.withHeader(\"Authorization\", \"Bearer \" + token));\n\n let url = `GetEncryptedKey?consignmentNumber=${consignmentNumber}`;\n return this.httpClient.get(url);\n }\n\n getEstimatedPrice(consignmentNumber: string, token: string) {\n this.httpClient.configure(a => a.withHeader(\"Accept\", \"application/json; charset=utf-8\"));\n this.httpClient.configure(a => a.withHeader(\"Authorization\", \"Bearer \" + token));\n\n return this.httpClient.get(`CalculatePrice?consignmentNumber=${consignmentNumber}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(data => {\n return {\n content: data.isSuccess ? data.content : data.response,\n error: !data.isSuccess\n }\n });\n }\n\n getNearestAddress(location) {\n return this.httpClient.get(`AddressFromLatLong?latitude=${location.latitude}&longitude=${location.longitude}`)\n .catch(error => {\n console.log(error);\n return error;\n })\n .then(data => {\n return {\n content: data.isSuccess ? data.content : data.response,\n error: !data.isSuccess\n }\n });\n }\n}\n","/// \n\nimport { inject } from 'aurelia-framework';\nimport { I18N } from 'aurelia-i18n';\nimport ColliCodeScanAction = TrackTrace.Model.DTO.ColliCodeScanAction;\n\n@inject(I18N)\nexport class ColliCodeScanActionValueConverter {\n i18n: I18N;\n translationMap = {\n [ColliCodeScanAction.Unknown]: \"ScanningTypeScanned\",\n [ColliCodeScanAction.Beam]: \"ScanningTypeScanned\",\n [ColliCodeScanAction.FingerScan]: \"ScanningTypeScanned\",\n [ColliCodeScanAction.ScreenTouch]: \"ScanningTypePressed\",\n [ColliCodeScanAction.LoadAllButton]: \"ScanningTypeLoadAllPressed\",\n [ColliCodeScanAction.EnteredManually]: \"ScanningTypeEnteredManually\",\n [ColliCodeScanAction.Automated]: \"ScanningTypeGenerated\",\n };\n\n constructor(i18n: I18N) {\n this.i18n = i18n;\n }\n\n toView(value: number) {\n const translationKey = this.translationMap[value] || null;\n if(translationKey === null) {\n return \"\";\n }\n return this.i18n.tr(translationKey);\n } \n} \n","export class CurrencyValueConverter {\r\n toView(value) {\r\n let currencyValue = \"\";\r\n if (value) {\r\n switch (value.toLowerCase()) {\r\n case \"dkk\":\r\n currencyValue = \"kr.\";\r\n break;\r\n default:\r\n currencyValue = \"ukendt valuta\";\r\n }\r\n }\r\n\r\n return currencyValue;\r\n }\r\n}","import {inject} from 'aurelia-framework';\nimport {I18N} from 'aurelia-i18n';\nimport moment from 'moment';\n\n\n\n//VIRK?!\n\nexport class DateFormatValueConverter\n{\n toView(value) {\n if (!value) {\n return null;\n }\n //console.debug(\"dateformat: \" + moment(value).utc().format('DD-MM-YYYY'));\n // nix pille ... skal fortolke lokal tid\t\t\n return moment(value).format('DD-MM-YYYY');\n }\n fromView(value) {\n return moment(value, 'DD-MM-YYYY UTC').toDate();\n }\n}\n\n@inject(I18N)\nexport class DateFormatWithTodayStringValueConverter\n{\n i18n: I18N;\n\n constructor(i18n: I18N)\n {\n this.i18n = i18n;\n }\n\n toView(value)\n\t{\n if (!value)\n\t\t{\n return null;\n }\n //console.debug(\"dateformat: \" + moment(value).utc().format('DD-MM-YYYY'));\n // nix pille ... skal fortolke lokal tid\t\t\n\n if (moment().date() === moment(value).date())\n {\n return this.i18n.tr(\"Idag\");\n\t\t}\n return moment(value).format('DD-MM-YYYY');\n }\n fromView(value)\n\t{\n if (value === this.i18n.tr(\"Idag\")) {\n\t\t\treturn moment().toDate();\n\t\t}\n return moment(value, 'DD-MM-YYYY UTC').toDate();\n }\n}\n\nexport class TimeFormatValueConverter {\n toView(value) {\n if (!value) {\n return null;\n }\n // nix pille ... skal fortolke lokal tid\n return moment(value).format('HH:mm');\n }\n fromView(value) {\n var val = moment(value, 'HH:mm');\n\t\tif (val.isValid()) {\n\t\t\treturn val;\n\t\t}\n\t return null;\n }\n}\n\nexport class DateTimeFormatValueConverter {\n constructor() {\n }\n\n toView(value) {\n if (!value || value === \"0001-01-01T00:00:00+01:00\") {\n return null;\n }\n //console.debug(\"dateformat: \" + moment(value).utc().format('DD-MM-YYYY'));\n // nix pille ... skal fortolke lokal tid\t\t\n return moment(value).format('DD-MM-YYYY HH:mm');\n }\n fromView(value) {\n return moment(value, 'DD-MM-YYYY UTC').toDate();\n }\n}\n\n\n","/// \nimport PoDDocumentType = TrackTrace.Model.DTO.PoDDocumentType;\r\nimport { inject } from 'aurelia-framework';\r\nimport { I18N } from 'aurelia-i18n';\r\n\r\n@inject(I18N)\r\nexport class DocumentTypeValueConverter {\r\n i18n: I18N;\r\n\r\n constructor(i18n: I18N) {\r\n this.i18n = i18n;\r\n }\r\n\r\n toView(value) {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n switch (value) {\r\n case PoDDocumentType.SignedConsignmentNote:\r\n return this.i18n.tr(\"SignedConsignmentNote\");\r\n case PoDDocumentType.UnsignedConsignmentNote:\r\n return this.i18n.tr(\"UnsignedConsignmentNote\");\r\n case PoDDocumentType.SignedOnGlassConsignmentNote:\r\n return this.i18n.tr(\"SignedOnGlassConsignmentNote\");\r\n default:\r\n return \"\";\r\n }\r\n }\r\n} \n","export class EventStatusIconValueConverter {\r\n toView(value) {\r\n switch (value) {\r\n case 1:\r\n return \"icon-klar\";\r\n case 2:\r\n return \"icon-undervejs\";\r\n case 3:\r\n return \"icon-leveret\";\r\n case 4:\r\n return \"icon-fejl\";\r\n case 5:\r\n return \"icon-forsinket\";\r\n case 6:\r\n return \"icon-information\";\r\n case 7:\r\n return \"icon-annuller\"; \r\n }\r\n return \"icon-information\";\r\n }\r\n}\n","export class NumberTwoDecimalsValueConverter {\r\n toView(value) {\r\n if (value || value === 0)\r\n return value.toLocaleString('da-DK', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\r\n else\r\n return \"\";\r\n }\r\n}","/// \n/// \n/// \n\n\nimport {inject} from \"aurelia-framework\";\nimport {TrackTraceService} from \"../resources/services/trackTraceService\";\nimport $ from \"jquery\";\nimport {I18N} from 'aurelia-i18n';\nimport {TrackTraceContentViewerPayload, TrackTraceEvent} from '../resources/models/TrackTraceContentViewerPayload'\nimport {Dialogs} from '../resources/elements/dialogs/df-dialogs';\nimport {Router} from 'aurelia-router';\nimport {HttpResponseMessage} from 'aurelia-http-client';\nimport moment from 'moment';\nimport TrackTraceData = TrackTrace.Model.DTO.TrackTraceData;\nimport EtaStatusEnum = TrackTrace.Model.DTO.EtaStatusEnum;\nimport ConsignmentNoteEta = TrackTrace.Model.DTO.ConsignmentNoteEta;\nimport ConsignmentNoteEtaStatusCode = TrackTrace.Model.DTO.ConsignmentNoteEtaStatusCode;\nimport ConsignmentNoteTrace = TrackTrace.Model.DTO.ConsignmentNoteTrace;\nimport PaysEnum = TrackTrace.Model.DTO.PaysEnum;\nimport ShippingTypeEnum = TrackTrace.Model.DTO.ShippingTypeEnum;\nimport ArchivePoDDocuments = TrackTrace.Model.DTO.ArchivePoDDocuments;\nimport PoDDocumentType = TrackTrace.Model.DTO.PoDDocumentType;\n\n@inject(TrackTraceService, I18N, Dialogs, Router)\nexport class TrackTraceView {\n trackTraceData: TrackTraceData;\n trackTraceService: TrackTraceService;\n i18n: I18N;\n dialogs: Dialogs;\n router: Router;\n\n // Bound to busyindicator\n isBusy: boolean = false;\n busyText: string = \"\";\n etaBusyText: string = \"\";\n\n searchText: string = \"\";\n error: boolean = false;\n hasTraces: boolean = true;\n forcedColliScan: boolean = false;\n dataLoaded: boolean = false;\n latestConsignmentTrace: ConsignmentNoteTrace;\n notOriginalConsignmentTrace: ConsignmentNoteTrace;\n token: string = null;\n consignmentNumber: string;\n colliCode: string;\n key: string;\n showPOD: boolean;\n internal: boolean = false;\n isConsignmentMrb: boolean = false;\n isBadAddress:boolean=false;\n loadingEta: boolean = false;\n eta: string;\n hideEtaDescription: boolean = true;\n statusText: string;\n\n calculatedPrice: number;\n priceErrorText: string;\n priceError: boolean;\n loadingPrice: boolean;\n\n showFrankatur: boolean = false;\n frankaturText: string;\n hasScannetFragtbrev: boolean = false;\n hasSignedFragtbrev: boolean = false;\n iconLanguage: string = \"icon-danish\";\n\n inputEmailAddress: string = \"\";\n stopEmailUpdatesText: string = \"\";\n\n tracktracelink: string = \"\";\n tracktraceParentlink: string = \"\";\n emailBody: string = \"\";\n emailIsValid: boolean = true;\n emailSubmittedText: string;\n ikkeOriginalFb: boolean = true;\n totalOriginalFb: boolean = true;\n totalIkkeOriginalFb: boolean = true;\n iphoneOrIpad: boolean = false;\n notificationTooltip: string = \"\";\n\n Fbwarning: string = \"\";\n\n scannedDocuments: ArchivePoDDocuments;\n\n public get fbwarning() {\n return this.Fbwarning;\n }\n\n constructor(trackTraceService: TrackTraceService, i18n: I18N, dialogs: Dialogs, router: Router) {\n this.trackTraceService = trackTraceService;\n this.i18n = i18n;\n this.dialogs = dialogs;\n this.router = router;\n }\n\n activate(params) {\n this.token = params.token;\n this.showPOD = params.showPOD === \"true\";\n\n if (params.consignmentnumber && params.consignmentnumber.length > 8) { // parsed as guid\n this.key = params.consignmentnumber;\n } else if (params.collicode) {\n this.colliCode = params.collicode;\n this.searchText = this.colliCode;\n if (params.key) {\n this.key = params.key;\n }\n } else {\n this.consignmentNumber = params.consignmentnumber;\n this.key = params.key;\n this.searchText = this.consignmentNumber;\n }\n\n if (params.consignmentnumber && params.email) {\n this.removeEmailAddress(params.consignmentnumber, params.email);\n } else if (this.consignmentNumber) {\n this.search(this.consignmentNumber, null, this.key, null);\n } else if (this.colliCode) {\n this.search(null, this.colliCode, this.key, null);\n } else if (this.key) {\n this.search(null, null, this.key, null);\n } else if (params.id) {\n this.search(null, null, null, params.id);\n }\n\n if (this.token || this.showPOD) {\n this.internal = true;\n }\n\n if (navigator.vendor != null && navigator.vendor.match(/Apple Computer, Inc./) && navigator.userAgent.match(/iPhone/i) || (navigator.userAgent.match(/iPod/i))) {\n this.iphoneOrIpad = true;\n } else if (navigator.vendor != null && navigator.vendor.match(/Apple Computer, Inc./) && navigator.userAgent.match(/iPad/i)) {\n this.iphoneOrIpad = true;\n }\n\n }\n\n attached(params) {\n if (this.internal) {\n var doc = document.getElementById('top-bar');\n if (doc) {\n doc.style.display = 'none';\n }\n }\n\n // Yes, this should be placed here because Bing Maps is messing around with the same variables as Aurelia (and it wasn't pretty)\n $(\"body\").append(\"\");\n\n }\n\n getLanguage(): number {\n let lng = localStorage.getItem('language');\n if (!(lng)) {\n lng = this.i18n.getLocale();\n }\n\n if (lng === 'en') {\n return 2;\n } else { //default da\n return 1;\n }\n }\n\n public get IsPrivateDelivery(): boolean {\n let isPrivateDelivery = false;\n\n if (this.trackTraceData != null) {\n let productCode = this.trackTraceData.ConsignmentNote.ProductCode;\n isPrivateDelivery = productCode == \"NightP\" || productCode == \"ParcelShop\" || productCode == \"DayP\";\n }\n\n return isPrivateDelivery;\n }\n\n search(consignmentNumber: string, colliCode: string, key: string, id: string) {\n\n $(\"#search\").blur(); //Fix for iPhone\n\n this.stopEmailUpdatesText = \"\";\n this.isBusy = true;\n this.trackTraceData = null;\n this.dataLoaded = null;\n let language = this.getLanguage();\n this.latestConsignmentTrace = null;\n this.statusText = \"\";\n this.internal = false;\n\n if (id) {\n this.trackTraceService.getTrackTraceById(id, language)\n .then(data => {\n this.handleSearchResult(data);\n });\n }\n if (consignmentNumber) {\n if (this.token) {\n this.trackTraceService.getData(consignmentNumber, language, this.token)\n .then(data => {\n this.handleSearchResult(data);\n });\n } else if (key) {\n this.trackTraceService.getTrackTraceByConsignmentNumberAndKey(consignmentNumber, key, language)\n .then(data => {\n this.handleSearchResult(data);\n });\n } else {\n this.trackTraceService.getTrackTraceByConsignmentNumber(consignmentNumber, language)\n .then(data => {\n this.handleSearchResult(data);\n });\n }\n } else if (colliCode) {\n if (key) {\n this.trackTraceService.getTrackTraceByColliCodeAndKey(colliCode, key, language)\n .then(data => {\n this.handleSearchResult(data);\n });\n } else {\n this.trackTraceService.getTrackTraceByColliCode(colliCode, language)\n .then(data => {\n this.handleSearchResult(data);\n });\n }\n } else if (key) {\n this.trackTraceService.getTrackTraceByGuid(key, language)\n .then(data => {\n this.handleSearchResult(data);\n });\n } else { // search from text field\n this.consignmentNumber = null;\n this.colliCode = null;\n this.key = null;\n\n if (this.searchText && this.searchText.length > 8) {\n this.trackTraceService.getTrackTraceByColliCode(this.searchText, language)\n .then(data => {\n this.handleSearchResult(data);\n });\n } else {\n this.trackTraceService.getTrackTraceByConsignmentNumber(this.searchText, language).then(data => {\n this.handleSearchResult(data, true, this.searchText);\n });\n }\n }\n\n this.busyText = this.i18n.tr('HenterTrack&Trace');\n }\n\n handleSearchResult(data: any, setUrl: boolean = false, consignmentNumber: string = \"\") {\n this.isBusy = false;\n this.ikkeOriginalFb = false;\n this.totalOriginalFb = false;\n this.totalIkkeOriginalFb = false;\n\n console.log(data.content);\n if (data.content && !data.error) {\n\n this.trackTraceData = data.content as TrackTraceData;\n let keyFromColliCode = false;\n if (!this.consignmentNumber && this.key && this.colliCode) {\n keyFromColliCode = true;\n }\n this.consignmentNumber = this.trackTraceData.ConsignmentNote.ConsignmentNumber;\n\n this.dataLoaded = true;\n this.error = false;\n\n if (this.trackTraceData && this.trackTraceData.Key && this.trackTraceData.Key.Key)\n this.key = this.trackTraceData.Key.Key;\n\n if (this.trackTraceData && this.trackTraceData.ConsignmentNote &&\n (!this.trackTraceData.ConsignmentNote.BillingInfo || !this.trackTraceData.ConsignmentNote.BillingInfo.NetPrice) &&\n this.token &&\n (\n this.trackTraceData.ConsignmentNote.ConsignmentNoteType === TrackTrace.Model.DTO.ConsignmentNoteTypeEnum.Return && this.trackTraceData.ConsignmentNote.WhoPays === TrackTrace.Model.DTO.PaysEnum.Collect // retur og ufranko \n ||\n this.trackTraceData.ConsignmentNote.ConsignmentNoteType !== TrackTrace.Model.DTO.ConsignmentNoteTypeEnum.Return && this.trackTraceData.ConsignmentNote.WhoPays === TrackTrace.Model.DTO.PaysEnum.Prepaid // ikke retur og franko\n )) {\n this.getEstimatedPrice();\n }\n\n if (this.internal) {\n this.showFrankatur = false;\n this.frankaturText = this.setFrankaturText(this.trackTraceData.ConsignmentNote.WhoPays, this.trackTraceData.ConsignmentNote.ShippingType);\n } else {\n if (this.trackTraceData.ConsignmentNote.WhoPays === PaysEnum.Collect) {\n this.showFrankatur = true;\n } else {\n this.showFrankatur = false;\n }\n }\n\n if (this.trackTraceData && this.trackTraceData.ForcedColliScan == true) {\n this.forcedColliScan = true;\n }\n\n if (this.trackTraceData && this.trackTraceData.ConsignmentNoteTraces && this.trackTraceData.ConsignmentNoteTraces.length === 0\n && (!this.trackTraceData.Parent || !this.trackTraceData.Parent.ConsignmentNumber)) {\n\n this.hasTraces = false;\n\n } else {\n\n this.hasTraces = true;\n this.handleServiceCodes();\n\n if (this.trackTraceData.State !== \"Annulleret\" && (!this.trackTraceData.Parent || this.trackTraceData.ConsignmentNote.ServiceCodes.indexOf(\"RESTANTE\") >= 0)) { // Redeliveries will have a parent, but ETA needs to be shown\n this.handleEta();\n } else {\n this.trackTraceData.EtaStatus = -1;\n }\n }\n console.log(this.trackTraceData.ConsignmentNote)\n this.notificationTooltip = this.getNotificationTooltipText();\n console.log(\"State: \" + this.trackTraceData.State);\n\n if (this.trackTraceData.State === \"Annulleret\") {\n this.latestConsignmentTrace = {\n ConsignmentNumber: \"\",\n Route: 1,\n EventCodeText: this.i18n.tr('ForsendelsenErAnnulleret'),\n Status: 0,\n CargoHub: \"\",\n CargoHubDisplayText: \"\",\n Date: null,\n EventCode: \"\",\n ExtentedEventCode: \"\",\n Id: 0,\n Latitude: 0,\n Location: \"\",\n Longitude: 0,\n Username: \"\"\n };\n }\n\n this.notOriginalConsignmentTrace = {\n ConsignmentNumber: \"\",\n Route: 1,\n EventCodeText: \"\",\n Status: 6,\n CargoHub: \"\",\n CargoHubDisplayText: \"\",\n Date: null,\n EventCode: \"\",\n ExtentedEventCode: \"\",\n Id: 0,\n Latitude: 0,\n Location: \"\",\n Longitude: 0,\n Username: \"\"\n };\n if (this.trackTraceData.Parent && this.trackTraceData.Parent.ConsignmentNumber) {\n this.ikkeOriginalFb = true;\n this.totalIkkeOriginalFb = true;\n this.tracktraceParentlink = this.trackTraceService.getTrackTraceUrl(this.trackTraceData.Parent.ConsignmentNumber, null);\n\n if (this.trackTraceData.ConsignmentNote.ServiceCodes.indexOf(\"RESTANTE\") >= 0) {\n this.notOriginalConsignmentTrace.EventCodeText = this.i18n.tr('ForsendelseRESTANTE') +\n this.trackTraceData.Parent.ConsignmentNumber;\n } else {\n this.notOriginalConsignmentTrace.EventCodeText = this.i18n.tr('ForsendelsenIkkeOriginal') +\n this.trackTraceData.Parent.ConsignmentNumber;\n }\n } else if (this.trackTraceData.ConsignmentNote.ServiceCodes.indexOf(\"ORIGGENUD\") >= 0) {\n this.ikkeOriginalFb = true;\n this.totalOriginalFb = true;\n if (this.trackTraceData.ConsignmentNote.ServiceCodes.indexOf(\"ORIG_RUK_RES\") > -1) {\n this.notOriginalConsignmentTrace.EventCodeText = this.i18n.tr('RestanteRUK');\n }\n else if (this.trackTraceData.ConsignmentNote.ServiceCodes.indexOf(\"ORIG_VNA_RES\") > -1) {\n this.notOriginalConsignmentTrace.EventCodeText = this.i18n.tr('RestanteVNA');\n }\n else if (this.trackTraceData.ConsignmentNote.ServiceCodes.indexOf(\"ORIG_RTA_RES\") > -1) {\n this.notOriginalConsignmentTrace.EventCodeText = this.i18n.tr('RestanteRTA');\n }\n this.notOriginalConsignmentTrace.EventCodeText += this.trackTraceData.RelatedBillingNumber;\n } else {\n this.ikkeOriginalFb = false;\n }\n this.Fbwarning = this.notOriginalConsignmentTrace.EventCodeText;\n\n if (setUrl) {\n this.setUrl(this.trackTraceData.ConsignmentNote.ConsignmentNumber);\n }\n this.handleScannetConsignmentNote(keyFromColliCode);\n\n } else {\n if (consignmentNumber)\n this.setUrl(consignmentNumber);\n\n if (this.showPOD) {\n this.handleScannetConsignmentNote(false);\n } else {\n this.error = true;\n this.hasTraces = false;\n }\n }\n this.isConsignmentMrb = this.handleConsignmentMrb();\n this.isBadAddress = this.handleIsBadAddress();\n }\n\n getNotificationTooltipText(): string {\n return this.key && !this.internal ? this.displayPrettyPhonesAndEmails() : 'Vi har sendt advisering om levering til modtager'\n }\n\n displayPrettyPhonesAndEmails() {\n try {\n var sms = this.trackTraceData.NotificationHistories.filter(x => x.Type == 'sms').map(x => x.Receiver).filter(function (elem, index, self) {\n return index === self.indexOf(elem);\n });\n var emails = this.trackTraceData.NotificationHistories.filter(x => x.Type == 'email').map(x => x.Receiver).filter(function (elem, index, self) {\n return index === self.indexOf(elem);\n });\n console.log(sms);\n console.log(emails);\n\n var text = sms.concat(emails);\n\n var start = 'Vi har sendt advisering til ';\n var result = this.formatReceiverText(text);\n\n return start + result;\n } catch (error) {\n console.log(error);\n return \"\";\n }\n\n }\n\n formatReceiverText(arr: string[]): string {\n console.log(\"formatRecieverText\");\n console.log(arr);\n var result = '';\n if (arr.length > 1) {\n result = ' ' + arr.join(', ');\n result = result.replace(/,(?=[^,]*$)/, ' og');\n return result;\n } else {\n return arr[0];\n }\n }\n\n handleScannetConsignmentNote(keyFromColliCode: boolean) {\n let scannetFragtbrevePromise: Promise;\n let linkPromise;\n if (this.key) {\n if (keyFromColliCode) {\n scannetFragtbrevePromise = this.trackTraceService.getScannedeFragtbreveWithKey(this.colliCode, this.key);\n } else if (this.consignmentNumber) {\n scannetFragtbrevePromise = this.trackTraceService.getScannedeFragtbreveWithKey(this.consignmentNumber, this.key);\n }\n this.tracktracelink = this.trackTraceService.getTrackTraceUrl(this.consignmentNumber, this.key);\n this.emailBody = this.getEmailBody();\n linkPromise = null;\n } else {\n this.tracktracelink = this.trackTraceService.getTrackTraceUrl(this.consignmentNumber, null);\n this.emailBody = this.getEmailBody();\n linkPromise = null;\n }\n\n if (!scannetFragtbrevePromise) {\n this.hasScannetFragtbrev = false;\n if (this.showPOD) {\n let that = this;\n setTimeout(() => { that.showSignature(); }, 0);\n }\n } else {\n scannetFragtbrevePromise.then(result => {\n if (result.response && result.response.indexOf(\"Fejl opstod ved opslag i arkiv system: Ingen data returneret\") !== -1) {\n this.hasScannetFragtbrev = false;\n } else {\n this.hasScannetFragtbrev = true;\n this.scannedDocuments = (result.content as ArchivePoDDocuments);\n let hasSignedFragtbrev = this.scannedDocuments.Documents.filter(doc => {\n return doc.DocumentType === PoDDocumentType.SignedConsignmentNote || doc.DocumentType === PoDDocumentType.SignedOnGlassConsignmentNote;\n });\n this.hasSignedFragtbrev = hasSignedFragtbrev.length > 0;\n if (this.showPOD) {\n let that = this;\n setTimeout(() => { that.showSignature(); }, 0);\n }\n }\n }).catch(error => {\n this.hasScannetFragtbrev = false;\n });\n }\n\n if (linkPromise) {\n linkPromise.then(result => {\n if (result.response) {\n this.tracktracelink = this.trackTraceService.getTrackTraceUrl(this.consignmentNumber, null) + \"/\" + result.content.Key;\n this.emailBody = this.getEmailBody();\n }\n });\n }\n }\n\n handleConsignmentMrb(): boolean {\n if (this.trackTraceData == null || this.trackTraceData.ConsignmentNoteTraces == null) {\n return false;\n }\n for (var i = 0; i < this.trackTraceData.ConsignmentNoteTraces.length; i++) {\n var trace = this.trackTraceData.ConsignmentNoteTraces[i];\n if (trace.EventCode.toLowerCase() === 'mrb') {\n return true;\n }\n }\n return false;\n }\n \n handleIsBadAddress(): boolean {\n if (this.trackTraceData == null || this.trackTraceData.ConsignmentNote == null) {\n return false;\n }\n let serviceCodesArray = this.trackTraceData.ConsignmentNote.ServiceCodes;\n let lowerCaseServiceCodesArray = serviceCodesArray.map(serviceCode => serviceCode.toLowerCase());\n return lowerCaseServiceCodesArray.indexOf(\"badmodadr\") >= 0;\n }\n\n handleEta() {\n this.hideEtaDescription = false;\n if (this.trackTraceData && this.trackTraceData.EtaStatus === EtaStatusEnum.UnderWay) { // if underway get ETA from backend\n this.loadingEta = true;\n this.eta = \"\";\n this.trackTraceService.getEta(this.trackTraceData.ConsignmentNote.ConsignmentNumber).then(result => {\n\n this.loadingEta = false;\n this.etaBusyText = \"\";\n\n if (result && result.content) {\n\n let eta = result.content as ConsignmentNoteEta;\n\n if (eta.StatusCode === ConsignmentNoteEtaStatusCode.NotCalculated) {\n this.latestConsignmentTrace = this.trackTraceData.ConsignmentNoteTraces[0]; // latest event\n this.hideEtaDescription = true;\n } else {\n if (eta.StatusCode === ConsignmentNoteEtaStatusCode.Ok) {\n let date = moment(eta.EtaIntervalStart).format('DD-MM-YYYY');\n\n if (moment().date() === moment(eta.EtaIntervalStart).date()) {\n date = this.i18n.tr(\"Idag\");\n } else if (moment().add(\"day\", 1).date() === moment(eta.EtaIntervalStart).date()) {\n date = this.i18n.tr(\"Imorgen\");\n }\n\n let tidligst = moment(eta.EtaIntervalStart).format('HH:mm');\n let senest = moment(eta.EtaIntervalEnd).format('HH:mm');\n\n this.statusText = this.i18n.tr(\"Eta\").replace('${tidligst}', tidligst).replace('${senest}', senest).replace('${date}', date);\n\n } else { //ETA could not find consignment\n\n if (this.trackTraceData.ConsignmentNote.DeliveryTime && this.trackTraceData.ConsignmentNote.DeliveryTime.ExpectedDeliveryDate) {\n\n let date = moment(this.trackTraceData.ConsignmentNote.DeliveryTime.ExpectedDeliveryDate).format('DD-MM-YYYY');\n\n if (moment().date() === moment(this.trackTraceData.ConsignmentNote.DeliveryTime.ExpectedDeliveryDate).date()) {\n date = this.i18n.tr(\"Idag\");\n } else if (moment().add(\"day\", 1).date() === moment(this.trackTraceData.ConsignmentNote.DeliveryTime.ExpectedDeliveryDate).date()) {\n date = this.i18n.tr(\"Imorgen\");\n }\n\n this.statusText = this.i18n.tr('EtaDefault').replace('${date}', date);\n }\n }\n\n this.latestConsignmentTrace = {\n ConsignmentNumber: \"\",\n Route: 1,\n EventCodeText: this.statusText,\n Status: 6,\n CargoHub: \"\",\n CargoHubDisplayText: \"\",\n Date: null,\n EventCode: \"\",\n ExtentedEventCode: \"\",\n Id: 0,\n Latitude: 0,\n Location: \"\",\n Longitude: 0,\n Username: \"\"\n };\n }\n }\n });\n\n this.etaBusyText = this.i18n.tr('HenterEta');\n } else if (this.trackTraceData.EtaStatus === EtaStatusEnum.DOT || this.trackTraceData.EtaStatus === EtaStatusEnum.SDL) {\n this.latestConsignmentTrace = this.trackTraceData.ConsignmentNoteTraces[this.trackTraceData.ConsignmentNoteTraces.length - 1]; // get DOT info \n } else {\n this.latestConsignmentTrace = this.trackTraceData.ConsignmentNoteTraces[0]; // latest event\n }\n }\n\n handleServiceCodes() {\n if (this.trackTraceData && this.trackTraceData.ConsignmentNote && this.trackTraceData.ConsignmentNoteTraces) {\n let serviceCodes = this.trackTraceData.ConsignmentNoteTraces.filter(\n trace => trace.EventCode === \"DO1\" || trace.EventCode === \"DO2\" || trace.EventCode === \"DO3\" || trace.EventCode === \"DO4\" || trace.EventCode === \"SDL\");\n\n let date = moment(this.trackTraceData.ConsignmentNote.DeliveryTime.DotIntervalStart).format('DD-MM-YYYY');\n\n // handle service code on separate trace line\n if (serviceCodes.length > 0) {\n if (moment().date() === moment(this.trackTraceData.ConsignmentNote.DeliveryTime.DotIntervalStart).date()) {\n date = this.i18n.tr(\"Idag\");\n } else if (moment().add(\"day\", 1).date() === moment(this.trackTraceData.ConsignmentNote.DeliveryTime.DotIntervalStart).date()) {\n date = this.i18n.tr(\"Imorgen\");\n }\n }\n serviceCodes.forEach(dot => {\n dot.Date = null;\n\n if (dot.EventCode === \"DO1\") {\n dot.EventCodeText = this.i18n.tr(\"DOT1tekst\").replace('${date}', date);\n } else if (dot.EventCode === \"DO2\") {\n let tidligst = moment(this.trackTraceData.ConsignmentNote.DeliveryTime.DotIntervalStart).format('HH:mm');\n let senest = moment(this.trackTraceData.ConsignmentNote.DeliveryTime.DotIntervalEnd).format('HH:mm');\n dot.EventCodeText = this.i18n.tr(\"DOT2tekst\").replace('${tidligst}', tidligst).replace('${senest}', senest).replace('${date}', date);\n } else if (dot.EventCode === \"DO3\") {\n let eta = moment(this.trackTraceData.ConsignmentNote.DeliveryTime.DotIntervalStart).add(\"minute\", 15).format('HH:mm');\n dot.EventCodeText = this.i18n.tr(\"DOT3tekst\").replace('${eta}', eta).replace('${date}', date);\n } else if (dot.EventCode === \"DO4\") {\n let eta = moment(this.trackTraceData.ConsignmentNote.DeliveryTime.DotIntervalStart).add(\"minute\", 15).format('HH:mm');\n dot.EventCodeText = this.i18n.tr(\"DOT4tekst\").replace('${eta}', eta).replace('${date}', date);\n } else if (dot.EventCode === \"SDL\") {\n dot.EventCodeText = this.i18n.tr(\"SDLtekst\");\n }\n });\n }\n }\n\n getEmailBody(): string {\n let body = this.i18n.tr('TrackTraceEmailBody1') + \" \" + this.consignmentNumber + \" \" + this.i18n.tr('TrackTraceEmailBody2') + \"%0D%0A\" + encodeURIComponent(this.tracktracelink);\n return body;\n }\n\n setFrankaturText(whoPays: PaysEnum, shippingType: ShippingTypeEnum): string {\n\n if (whoPays === PaysEnum.Prepaid) {\n\n if (shippingType === ShippingTypeEnum.Bilpakke) {\n return this.i18n.tr('BilpakkeFranko');\n } else if (shippingType === ShippingTypeEnum.Erhversbilpakker) {\n return this.i18n.tr('ErhvervsbilpakkeFranko');\n } else if (shippingType === ShippingTypeEnum.ErhvervspakkeVolumen) {\n return this.i18n.tr('ErhvervsbilpakkeVolumenFranko');\n } else if (shippingType === ShippingTypeEnum.PalleEnhedsForsendelse) {\n return this.i18n.tr('PalleEnhedsaftaleFranko');\n } else if (shippingType === ShippingTypeEnum.Stykgods) {\n return this.i18n.tr('StykgodsFranko');\n }\n } else if (whoPays === PaysEnum.Collect) {\n if (shippingType === ShippingTypeEnum.Stykgods) {\n return this.i18n.tr('StykgodsUfranko');\n } else if (shippingType === ShippingTypeEnum.PalleEnhedsForsendelse) {\n return this.i18n.tr('PalleEnhedsaftaleUfranko');\n } else if (shippingType === ShippingTypeEnum.Erhversbilpakker) {\n return this.i18n.tr('ErhvervsbilpakkeUfranko');\n } else if (shippingType === ShippingTypeEnum.ErhvervspakkeVolumen) {\n return this.i18n.tr('ErhvervsbilpakkeVolumenUfranko');\n }\n }\n return \"\";\n }\n\n setUrl(consignmentNumber) {\n //history.pushState({ someState: ConsignmentNumber }, \"new title\", \"test\");\n try {\n this.router.navigateToRoute(\n this.router.currentInstruction.config.name, // current route name\n { 'consignmentnumber': consignmentNumber }, // route parameters object\n { trigger: false, replace: true } // options\n );\n } catch (e) {\n console.log(e);\n }\n }\n\n searchOriginal(consignmentNumber, originalConsignmentKey) {\n this.isBusy = true;\n\n this.searchText = consignmentNumber;\n\n let redeliveryNumber = consignmentNumber;\n let originalNumber = this.trackTraceData.ConsignmentNote.ConsignmentNumber;\n let isAnonymous = !this.trackTraceData.Key;\n if (originalConsignmentKey || isAnonymous) {\n this.search(redeliveryNumber, null, originalConsignmentKey, null);\n } else {\n originalConsignmentKey = this.trackTraceData.Key.Key;\n\n this.trackTraceService.getRedeliveryKey(originalNumber, redeliveryNumber, originalConsignmentKey)\n .then(data => {\n this.search(redeliveryNumber, null, data.content.Key, null);\n });\n }\n }\n\n resetSearch() {\n this.searchText = \"\";\n }\n\n showLocation(trace) {\n if (!trace.Latitude && !trace.Longitude)\n return;\n\n let payload: any = this.getTrackTraceContentViewerPayload();\n payload.selectedTraceId = trace.Id;\n payload.event = TrackTraceEvent.GeoLocation;\n\n this.dialogs.showTrackTraceContentViewerDialog(payload);\n }\n\n showImages() {\n let payload: TrackTraceContentViewerPayload = this.getTrackTraceContentViewerPayload();\n payload.event = TrackTraceEvent.Picture;\n\n this.dialogs.showTrackTraceContentViewerDialog(payload);\n }\n\n showNotifications() {\n if (this.internal || this.key) {\n let payload: TrackTraceContentViewerPayload = this.getTrackTraceContentViewerPayload();\n payload.event = TrackTraceEvent.Notifications;\n\n this.dialogs.showTrackTraceContentViewerDialog(payload);\n }\n }\n\n showComments() {\n if (this.internal) {\n let payload: TrackTraceContentViewerPayload = this.getTrackTraceContentViewerPayload();\n payload.event = TrackTraceEvent.Comments;\n\n this.dialogs.showTrackTraceContentViewerDialog(payload);\n }\n }\n\n showColliTraces() {\n let payload: TrackTraceContentViewerPayload = this.getTrackTraceContentViewerPayload();\n payload.event = TrackTraceEvent.ColliScans;\n\n this.dialogs.showTrackTraceContentViewerDialog(payload);\n }\n\n showSignature() {\n let payload: TrackTraceContentViewerPayload = this.getTrackTraceContentViewerPayload();\n if (!this.showPOD) {\n payload.scannedDocuments.Documents.forEach(doc => {\n doc.ScannedBy = null;\n });\n }\n payload.event = TrackTraceEvent.ConsignmentLetter;\n\n this.dialogs.showTrackTraceContentViewerDialog(payload);\n }\n\n getTrackTraceContentViewerPayload(): TrackTraceContentViewerPayload {\n var comments = null;\n if (this.trackTraceData != null && this.trackTraceData.ConsignmentComments != null)\n comments = this.trackTraceData.ConsignmentComments;\n\n return {\n pictures: this.trackTraceData ? this.trackTraceData.PictureList : null,\n consignmentNoteTraces: this.trackTraceData ? this.trackTraceData.ConsignmentNoteTraces.filter(x => (x.Latitude !== 0 && x.Longitude !== 0)) : null,\n hasScannetFragtbrev: this.iphoneOrIpad ? false : this.hasScannetFragtbrev,\n scannedDocuments: this.scannedDocuments,\n colliscans: this.trackTraceData ? this.trackTraceData.ColliTraces : null,\n notifications: this.trackTraceData ? (this.trackTraceData.NotificationHistories ? this.trackTraceData.NotificationHistories.sort((one, two) => (one.Timestamp.toString() > two.Timestamp.toString() ? -1 : 1)) : null) : null,\n consignmentNumber: this.consignmentNumber,\n token: this.token,\n key: this.key,\n hasSignedFragtbrev: this.hasSignedFragtbrev,\n showPOD: this.showPOD,\n carrier: this.trackTraceData ? this.trackTraceData.Carrier : null,\n ConsignmentComments: comments\n }\n }\n\n submitEmailAddress() {\n this.emailSubmittedText = \"\";\n this.validateEmail();\n if (this.emailIsValid && this.trackTraceData && this.trackTraceData.ConsignmentNote && this.trackTraceData.ConsignmentNote.ConsignmentNumber) {\n let type;\n\n if (this.token) {\n type = \"Internal\";\n } else if (this.key) {\n type = \"Customer\";\n } else {\n type = \"Anonymous\";\n }\n\n this.trackTraceService.submitEmailAddress(this.trackTraceData.ConsignmentNote.ConsignmentNumber, this.inputEmailAddress, type, this.getLanguage())\n .then(data => {\n if (!data.error) {\n console.log(\"Email address added for consignment \" + this.trackTraceData.ConsignmentNote.ConsignmentNumber);\n this.emailSubmittedText = this.i18n.tr('EmailInputFeedback');\n } else {\n console.log(\"Email address could not be added for consignment \" + this.trackTraceData.ConsignmentNote.ConsignmentNumber);\n this.emailSubmittedText = this.i18n.tr('EmailInputFejl2');\n }\n this.inputEmailAddress = \"\";\n });\n } else {\n console.log(\"Email address could not be saved. No consignment loaded.\");\n }\n }\n\n removeEmailAddress(consignmentNumber: string, emailAddress: string) {\n if (consignmentNumber && emailAddress) {\n this.trackTraceService.removeEmailAddress(consignmentNumber, emailAddress)\n .then(data => {\n if (!data.error) {\n this.stopEmailUpdatesText = this.i18n.tr('StopEmailUpdates').replace('${fbNr}', consignmentNumber);\n console.log(\"Email address removed for consignment \" + consignmentNumber);\n } else {\n console.log(\"Email address could not be removed for consignment \" + consignmentNumber);\n }\n });\n } else {\n console.log(\"Email address could not be removed. No consignment loaded.\");\n }\n }\n\n getEstimatedPrice() {\n this.loadingPrice = true;\n this.priceError = null;\n\n this.trackTraceService.getEstimatedPrice(this.consignmentNumber, this.token).then(data => {\n this.loadingPrice = false;\n this.priceError = data.error;\n\n if (this.priceError)\n this.priceErrorText = data.content;\n else\n this.calculatedPrice = data.content;\n });\n }\n\n validateEmailString(email) {\n var re = /^(([^<>()[\\]\\\\.,;:\\s@\\•\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(email);\n }\n\n validateEmail() {\n\n if (this.validateEmailString(this.inputEmailAddress)) {\n let elements = document.querySelectorAll('#' + 'emailAddress');\n\n var i;\n for (i = 0; i < elements.length; i++) {\n elements[i].classList.remove('email-has-error');\n }\n this.emailIsValid = true;\n } else {\n let elements = document.querySelectorAll('#' + 'emailAddress');\n\n var i;\n for (i = 0; i < elements.length; i++) {\n elements[i].classList.add('email-has-error');\n }\n this.emailIsValid = false;\n }\n }\n\n get palletText(): string {\n let palletText = '';\n let hasFullPallets = false;\n let hasHalfPallets = false;\n\n if (this.trackTraceData && this.trackTraceData.ConsignmentNote && this.trackTraceData.ConsignmentNote.ExchangePallets) {\n if (this.trackTraceData.ConsignmentNote.ExchangePallets.FullPallets && this.trackTraceData.ConsignmentNote.ExchangePallets.FullPallets > 0) {\n hasFullPallets = true;\n palletText += this.trackTraceData.ConsignmentNote.ExchangePallets.FullPallets + ' ';\n if (this.trackTraceData.ConsignmentNote.ExchangePallets.FullPallets === 1) {\n palletText += this.i18n.tr('Helpalle');\n\n } else {\n palletText += this.i18n.tr('Helpaller');\n }\n }\n\n if (this.trackTraceData.ConsignmentNote.ExchangePallets.HalfPallets && this.trackTraceData.ConsignmentNote.ExchangePallets.HalfPallets > 0) {\n hasHalfPallets = true;\n palletText += ((hasFullPallets ? ' og ' : '') + this.trackTraceData.ConsignmentNote.ExchangePallets.HalfPallets + ' ');\n if (this.trackTraceData.ConsignmentNote.ExchangePallets.HalfPallets === 1) {\n palletText += this.i18n.tr('Halvpalle');\n\n } else {\n palletText += this.i18n.tr('Halvpaller');\n }\n }\n\n if (this.trackTraceData.ConsignmentNote.ExchangePallets.QuaterPallets && this.trackTraceData.ConsignmentNote.ExchangePallets.QuaterPallets > 0) {\n palletText += ((hasFullPallets || hasHalfPallets ? ' og ' : '') + this.trackTraceData.ConsignmentNote.ExchangePallets.QuaterPallets + ' ');\n if (this.trackTraceData.ConsignmentNote.ExchangePallets.QuaterPallets === 1) {\n palletText += this.i18n.tr('Kvartpalle');\n\n } else {\n palletText += this.i18n.tr('Kvartpaller');\n }\n }\n\n if (palletText) {\n palletText += this.i18n.tr('ByttepallerMedChaufføren');\n }\n }\n\n return palletText;\n }\n}\n","\n","import { TrackTraceView } from './trackTraceView';\nimport {autoinject} from \"aurelia-framework\";\nimport {inject} from 'aurelia-framework';\nimport {I18N} from 'aurelia-i18n';\n\n@autoinject\nexport class Welcome\n{\n\n\ti18n: I18N;\n\n\tconstructor(i18n: I18N) {\n\t\tthis.i18n = i18n;\n\t}\n\n\t\n\tget welcome() {\n\t\treturn this.i18n.tr('Welcome');\n\t}\n\n} \n",""]}