{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/alerts/alerts.component.html","./src/app/app.component.html","./src/app/changepassword/changepassword.component.html","./src/app/confirm/confirm.component.html","./src/app/du-lieu-giam-sat/du-lieu-giam-sat.component.html","./src/app/exportdata/exportdata.component.html","./src/app/footer/footer.component.html","./src/app/login/doi-mat-khau/doi-mat-khau.component.html","./src/app/login/get-ma-kich-hoat/get-ma-kich-hoat.component.html","./src/app/login/login.component.html","./src/app/main/main.component.html","./src/app/main/navbar/navbar.component.html","./src/app/main/tabcontent/chu-dau-tu/chu-dau-tu.component.html","./src/app/main/tabcontent/chu-tau/chu-tau.component.html","./src/app/main/tabcontent/giam-sat-ngoai-tuyen/giam-sat-ngoai-tuyen.component.html","./src/app/main/tabcontent/giam-sat-truc-tuyen/add-tau-vao-ds/add-tau-vao-ds.component.html","./src/app/main/tabcontent/giam-sat-truc-tuyen/edit-dstau/edit-dstau.component.html","./src/app/main/tabcontent/giam-sat-truc-tuyen/edit-measure/edit-measure.component.html","./src/app/main/tabcontent/giam-sat-truc-tuyen/edit-polygon-dstau/edit-polygon-dstau.component.html","./src/app/main/tabcontent/giam-sat-truc-tuyen/giam-sat-truc-tuyen.component.html","./src/app/main/tabcontent/giam-sat-truc-tuyen/kml/kml.component.html","./src/app/main/tabcontent/giam-sat-truc-tuyen/thong-ke-chi-tiet/thong-ke-chi-tiet.component.html","./src/app/main/tabcontent/giam-sat-truc-tuyen/thong-ke/thong-ke.component.html","./src/app/main/tabcontent/giam-sat-truc-tuyen/upload-kml/upload-kml.component.html","./src/app/main/tabcontent/nha-thau/nha-thau.component.html","./src/app/main/tabcontent/tabcontent.component.html","./src/app/main/tabcontent/tau-nao-vet/tau-nao-vet.component.html","./src/app/main/tabcontent/tuyen-luong/tuyen-luong.component.html","./src/app/main/topbar/topbar.component.html","./src/app/modal/modal.component.html","./src/app/ship-popup/ship-popup.component.html","./src/app/_class/LayerDataItem.ts","./src/app/_class/LayerExt.ts","./src/app/_class/LayerMeasure.ts","./src/app/_class/LayerShips.ts","./src/app/_class/LayerTracks.ts","./src/app/_class/TileLayerMap.ts","./src/app/_models/ajaxResponse.model.ts","./src/app/_models/alert.model.ts","./src/app/_models/draw/drawItem.model.ts","./src/app/_models/dstau.model.ts","./src/app/_models/inputExportData.model.ts","./src/app/_models/luonghh.model.ts","./src/app/_models/response.model.ts","./src/app/_models/ship.model.ts","./src/app/_models/shipinds.model.ts","./src/app/_models/thongke.model.ts","./src/app/_models/trackItem.model.ts","./src/app/_models/user.model.ts","./src/app/_models/userConfigs.model.ts","./src/app/_models/userKml.model.ts","./src/app/_providers/commonLib.ts","./src/app/_services/alert.service.ts","./src/app/_services/category.service.ts","./src/app/_services/commonAPI.service.ts","./src/app/_services/config.service.ts","./src/app/_services/confirm.service.ts","./src/app/_services/event-emitter.service.ts","./src/app/_services/requestApi.intercept.ts","./src/app/_services/ship.service.ts","./src/app/_services/upload.service.ts","./src/app/_services/user.service.ts","./src/app/alerts/alerts.component.css","./src/app/alerts/alerts.component.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/changepassword/changepassword.component.css","./src/app/changepassword/changepassword.component.ts","./src/app/confirm/confirm.component.css","./src/app/confirm/confirm.component.ts","./src/app/du-lieu-giam-sat/du-lieu-giam-sat.component.css","./src/app/du-lieu-giam-sat/du-lieu-giam-sat.component.ts","./src/app/exportdata/exportdata.component.css","./src/app/exportdata/exportdata.component.ts","./src/app/footer/footer.component.css","./src/app/footer/footer.component.ts","./src/app/globals.ts","./src/app/login/doi-mat-khau/doi-mat-khau.component.ts","./src/app/login/get-ma-kich-hoat/get-ma-kich-hoat.component.ts","./src/app/login/login.component.css","./src/app/login/login.component.ts","./src/app/main/main.component.css","./src/app/main/main.component.ts","./src/app/main/navbar/navbar.component.css","./src/app/main/navbar/navbar.component.ts","./src/app/main/tabcontent/chu-dau-tu/chu-dau-tu.component.css","./src/app/main/tabcontent/chu-dau-tu/chu-dau-tu.component.ts","./src/app/main/tabcontent/chu-tau/chu-tau.component.css","./src/app/main/tabcontent/chu-tau/chu-tau.component.ts","./src/app/main/tabcontent/giam-sat-ngoai-tuyen/giam-sat-ngoai-tuyen.component.css","./src/app/main/tabcontent/giam-sat-ngoai-tuyen/giam-sat-ngoai-tuyen.component.ts","./src/app/main/tabcontent/giam-sat-truc-tuyen/add-tau-vao-ds/add-tau-vao-ds.component.ts","./src/app/main/tabcontent/giam-sat-truc-tuyen/edit-dstau/edit-dstau.component.ts","./src/app/main/tabcontent/giam-sat-truc-tuyen/edit-measure/edit-measure.component.ts","./src/app/main/tabcontent/giam-sat-truc-tuyen/edit-polygon-dstau/edit-polygon-dstau.component.ts","./src/app/main/tabcontent/giam-sat-truc-tuyen/giam-sat-truc-tuyen.component.css","./src/app/main/tabcontent/giam-sat-truc-tuyen/giam-sat-truc-tuyen.component.ts","./src/app/main/tabcontent/giam-sat-truc-tuyen/kml/kml.component.ts","./src/app/main/tabcontent/giam-sat-truc-tuyen/thong-ke-chi-tiet/thong-ke-chi-tiet.component.ts","./src/app/main/tabcontent/giam-sat-truc-tuyen/thong-ke/thong-ke.component.ts","./src/app/main/tabcontent/giam-sat-truc-tuyen/upload-kml/upload-kml.component.ts","./src/app/main/tabcontent/nha-thau/nha-thau.component.css","./src/app/main/tabcontent/nha-thau/nha-thau.component.ts","./src/app/main/tabcontent/tabcontent.component.css","./src/app/main/tabcontent/tabcontent.component.ts","./src/app/main/tabcontent/tau-nao-vet/tau-nao-vet.component.css","./src/app/main/tabcontent/tau-nao-vet/tau-nao-vet.component.ts","./src/app/main/tabcontent/tuyen-luong/tuyen-luong.component.css","./src/app/main/tabcontent/tuyen-luong/tuyen-luong.component.ts","./src/app/main/topbar/topbar.component.css","./src/app/main/topbar/topbar.component.ts","./src/app/mock-menu.ts","./src/app/modal/modal.component.css","./src/app/modal/modal.component.ts","./src/app/ship-popup/ship-popup.component.css","./src/app/ship-popup/ship-popup.component.ts","./src/assets/lib/chart.min.js","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","module.exports = \"\\r\\n\\r\\n
\\r\\n
\\r\\n {{alert.message}}\\r\\n ×\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \" \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Đổi mật khẩu
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"
\\n

{{ title }}

\\n \\n
\\n
\\n {{ message }}\\n
\\n
\\r\\n \\r\\n \\r\\n
\\n\"","module.exports = \"
\\n
\\n
\\n\\n\\n\"","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n\\t\\t\\n \\n\\n \\n\\n\\n \\n \\n\\n\\n\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n
\\r\\n\\r\\n
\\r\\n \\\"Vshipel\\r\\n
\\r\\n\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n Quên mật khẩu\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n

© 2008 - 2019 Công ty TNHH MTV Thông tin điện tử Hàng Hải Việt Nam

\\r\\n

Liên hệ: Trung tâm Dịch vụ Khách hàng - Tel/Fax: (+84-31).3842073 - Email: customercare@vishipel.com.vn

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \" \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\"","module.exports = \"\\n
\\n
\\n
\\n\\n\"","module.exports = \"
\\n
\\n
\\n\\n\"","module.exports = \"
\\n
\\n \\n \\n\\n \\n
\\n\\n \\n \\n
\\n
\\n
\\n\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
#Tên fileMô tảHiển thịXóa
{{i+1}}{{kml.name}}{{kml.mota}}
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\n
\\n
\\n\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
\\n\\t \\n\\t\\n\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n\\n
\\n\\n\\n
\\n
\\n
\\n\\n\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\n \\n\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \" \\n
\\n
\\n
\\n
\\n
Thêm mới bản ghi
\\n \\n
\\n
\\n\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\"","module.exports = \"\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n MMSI: \\r\\n
\\r\\n
\\r\\n IMO: \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Callsign: \\r\\n
\\r\\n
\\r\\n Dimension: \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Type of ship: \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Status: \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Draught: \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Destination: \\r\\n
\\r\\n
\\r\\n E.T.A: \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n S.O.G: \\r\\n
\\r\\n
\\r\\n C.O.G: \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Heading: \\r\\n
\\r\\n
\\r\\n R.O.T: \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Position: \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Time of position: \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n A.I.S Equipment: \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • {{ds.tends}}
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","import Map from 'ol/Map.js';\r\nimport { Vector as VectorLayer } from 'ol/layer.js';\r\nimport { Vector as VectorSource } from 'ol/source.js';\r\nimport Feature from 'ol/Feature';\r\nimport { Style, Icon, Stroke } from 'ol/style.js';\r\nimport { LineString } from 'ol/geom.js';\r\nimport Point from 'ol/geom/Point';\r\nimport Overlay from 'ol/Overlay.js';\r\nimport { fromLonLat } from 'ol/proj';\r\nimport { ShipModel } from '../_models/ship.model';\r\nimport { APPS, CommonLib } from '../_providers/commonLib';\r\nimport { TrackItemModel } from '../_models/trackItem.model';\r\nimport { SHIPS_CACHE_TRACKING } from '../app.component';\r\n\r\nexport class LayerDataItem {\r\n source_tracks: VectorSource;\r\n overlayInfoTrack: Overlay;\r\n constructor(private map: Map) {\r\n var thisObj = this;\r\n //Khai báo layer cho tracks\r\n this.source_tracks = new VectorSource();\r\n var layer_tracks = new VectorLayer({\r\n source: this.source_tracks,\r\n visible: true,\r\n });\r\n if (this.map) {\r\n this.map.addLayer(layer_tracks);\r\n this.overlayInfoTrack = new Overlay({\r\n element: document.getElementById('overlayTrackInfo'),\r\n id: APPS.OVL_POPUP_TRACK_GETID,\r\n positioning: 'top-left',\r\n offset: [15, -10],\r\n autoPan: true,\r\n autoPanAnimation: {\r\n duration: 250\r\n }\r\n });\r\n this.map.addOverlay(this.overlayInfoTrack);\r\n // Hiện tooltip info track nếu di chuột qua icon track\r\n this.map.on('pointermove', function (evt) {\r\n thisObj.showTooltipInfoTrack(evt, thisObj);\r\n });\r\n }\r\n }\r\n\r\n \r\n\r\n /**\r\n * Xóa track của 1 tàu theo ShipId\r\n * @param shipid\r\n */\r\n public removeTrackByShip(shipid: number) {\r\n // clear track cũ của tàu\r\n var thisObj = this;\r\n this.source_tracks.forEachFeature(function (f) {\r\n if (f.get('shipid') == shipid) {\r\n thisObj.source_tracks.removeFeature(f);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Trả về feature TrackLine đã vẽ theo shipid\r\n * @param shipid\r\n */\r\n public getTrackFeatureAndCurrentItemByShipId(shipid: number): Feature {\r\n var f_track: Feature, current: Feature;\r\n\r\n this.source_tracks.forEachFeature(function (f) {\r\n if (f.get('shipid') == shipid) {\r\n if (f.get('type') == APPS.F_TRACK_LINE_GETYPE) {\r\n f_track = f;\r\n }\r\n if (f.get('current')) {\r\n current = f;\r\n }\r\n }\r\n\r\n });\r\n return [f_track, current];\r\n }\r\n\r\n /**\r\n * Trả về TrackItem[] của tàu đã tracking theo feature\r\n * @param shipid\r\n */\r\n public getTrackDataByFeature(f: Feature): TrackItemModel[] {\r\n var rets: TrackItemModel[];\r\n if (f) {\r\n rets = f.get('trackData');\r\n }\r\n return rets;\r\n }\r\n\r\n\r\n /**\r\n * Trả về TrackItem[] của tàu đã tracking theo shipid\r\n * @param shipid\r\n */\r\n public getTrackDataByShipId(shipid: number): TrackItemModel[] {\r\n var arr = this.getTrackFeatureAndCurrentItemByShipId(shipid);\r\n var rets: TrackItemModel[];\r\n if (arr[0]) {\r\n rets = arr.get('trackData');\r\n }\r\n return rets;\r\n }\r\n\r\n /**\r\n * Tạo LineString để update track\r\n * @param trackItems\r\n */\r\n public createLineString(trackItems: TrackItemModel[]) {\r\n var coords = [];\r\n //Tạo danh sách các điểm trackItem\r\n for (var i = 0, n = trackItems.length; i < n; i++) {\r\n var ti = trackItems[i];\r\n var coordinate = fromLonLat([ti.lon, ti.lat, i]);\r\n coords.push(coordinate);\r\n }\r\n return new LineString(coords);\r\n }\r\n\r\n /**\r\n * Hiển thị track theo mảng TrackItem\r\n * @param trackItems\r\n */\r\n public addTracks(trackItems: TrackItemModel[]) {\r\n console.log(\"Tracks length: \" + trackItems.length);\r\n var coords = [];\r\n var shipid = trackItems[0].shipid;\r\n //Tạo danh sách các điểm trackItem\r\n var n = trackItems.length;\r\n for (var i = 0; i < n; i++) {\r\n var ti = trackItems[i];\r\n var coordinate = fromLonLat([ti.lon, ti.lat, i]);\r\n coords.push(coordinate);\r\n }\r\n\r\n //Tạo & vẽ trackLine feature\r\n var lineString = new LineString(coords);\r\n var line = new Feature({\r\n geometry: lineString,\r\n type: APPS.F_TRACK_LINE_GETYPE,\r\n trackData: trackItems,\r\n });\r\n var lineStyle = new Style({\r\n stroke: new Stroke({\r\n color: shipid == -1 ? 'blue' : 'red',\r\n width: 1\r\n })\r\n })\r\n line.setStyle(lineStyle);\r\n this.source_tracks.addFeature(line);\r\n\r\n //Tao & vẽ trackItem feature\r\n var src_icon = \"\";\r\n for (var i = 0; i < coords.length; i++) {\r\n var coord_index = coords[i][2];\r\n var cog;\r\n var current;\r\n if (coord_index == n) {\r\n //cog = ownerShip.course;\r\n current = true;\r\n } else {\r\n cog = trackItems[coord_index].cog;\r\n current = false;\r\n }\r\n var trackPoint = new Feature({\r\n geometry: new Point(coords[i]),\r\n //shipid: ownerShip.id,\r\n current: current,\r\n type: APPS.F_TRACK_ITEM_GETYPE,\r\n course: cog,\r\n data: trackItems[coord_index],\r\n info: CommonLib.formatDataItemPoint(trackItems[coord_index].name, trackItems[coord_index]),\r\n })\r\n \r\n if (i == coords.length - 1) {\r\n src_icon = APPS.ASSETS_ICONS + \"/other/found.png\";\r\n } else if (i == 0) {\r\n src_icon = APPS.ASSETS_ICONS + '/track_first.png';\r\n } else {\r\n src_icon = APPS.ASSETS_ICONS + '/track90.png';\r\n }\r\n \r\n var trackPointStyle = new Style({\r\n image: new Icon({\r\n src: src_icon,\r\n rotation: cog == '' ? 0 : (0.0174532925 * (parseInt(cog) - 90)),\r\n })\r\n })\r\n trackPoint.setStyle(trackPointStyle);\r\n this.source_tracks.addFeature(trackPoint);\r\n }\r\n this.map.getView().fit(line.getGeometry(), {});\r\n }\r\n\r\n public removeAllFeature() {\r\n this.source_tracks.clear();\r\n }\r\n\r\n /**\r\n * Hiển thị tooltip info track nếu di chuột qua icon track\r\n * @param evt\r\n * @param thisObj\r\n */\r\n previousCursor = null;\r\n public showTooltipInfoTrack(evt, thisObj) {\r\n var showOvl = false;\r\n var feature = thisObj.map.forEachFeatureAtPixel(evt.pixel, function (f) {\r\n var type = f.get('type');\r\n if (type === undefined) {\r\n if (f.get('name') !== undefined) { // phao tiêu, vùng vnmcc (layerExt)\r\n showOvl = true;\r\n thisObj.overlayInfoTrack.setPosition(evt.coordinate);\r\n thisObj.overlayInfoTrack.getElement().innerHTML = f.get('name');\r\n }\r\n return null;\r\n } else {\r\n if (type == APPS.F_TRACK_ITEM_GETYPE) { // info track\r\n showOvl = true;\r\n if (!f.get('current')) {\r\n thisObj.overlayInfoTrack.setPosition(evt.coordinate);\r\n thisObj.overlayInfoTrack.getElement().innerHTML = f.get('info');\r\n }\r\n return f;\r\n } else if (type == APPS.F_SHIP_GETYPE || type == APPS.F_SHIP_HISTORY_GETYPE) { // shipname\r\n var ship = f.get('data');\r\n if (ship instanceof ShipModel) {\r\n showOvl = true;\r\n thisObj.overlayInfoTrack.setPosition(evt.coordinate);\r\n thisObj.overlayInfoTrack.getElement().innerHTML = ship.name;\r\n }\r\n }\r\n return null;\r\n }\r\n });\r\n if (!showOvl) {\r\n thisObj.map.getOverlayById(APPS.OVL_POPUP_TRACK_GETID).setPosition(undefined);\r\n }\r\n\r\n var element = evt.map.getTargetElement();\r\n if (feature) {\r\n if (element.style.cursor != \"pointer\") {\r\n this.previousCursor = element.style.cursor;\r\n element.style.cursor = \"pointer\";\r\n }\r\n } else {\r\n if (this.previousCursor !== undefined) {\r\n element.style.cursor = this.previousCursor;\r\n this.previousCursor = undefined;\r\n }\r\n }\r\n }\r\n}\r\n","import Map from 'ol/Map.js';\r\nimport { Vector as VectorLayer } from 'ol/layer.js';\r\nimport { Vector as VectorSource } from 'ol/source.js';\r\nimport { Style, Stroke, Text, Fill } from 'ol/style.js';\r\nimport KML from 'ol/format/KML';\r\nimport Graticule from 'ol/Graticule.js';\r\n\r\nexport class LayerExt {\r\n constructor(private map: Map) {\r\n // setup kml vnmcc, phao tiêu\r\n var layer_vnmcc = new VectorLayer({\r\n source: new VectorSource({\r\n url: '/assets/kml/vnmcc.kml',\r\n format: new KML({ showPointNames: false }),\r\n extractStyles: false\r\n }),\r\n visible: true\r\n });\r\n\r\n //var layer_cshp = new VectorLayer({\r\n // source: new VectorSource({\r\n // url: '/assets/kml/WPT3.kml',\r\n // format: new KML({ showPointNames: false }),\r\n // extractStyles: false\r\n // }),\r\n // visible: true\r\n //});\r\n\r\n var layer_phaotieu = new VectorLayer({\r\n source: new VectorSource({\r\n url: '/assets/kml/phaotieu.kml',\r\n format: new KML({ showPointNames: false }),\r\n extractStyles: false\r\n }),\r\n minResolution: 0.1,\r\n maxResolution: 10,\r\n visible: true,\r\n style: new Style({\r\n text: new Text({\r\n placement: 'line',\r\n font: '12px Calibri,sans-serif',\r\n textAlign: 'left',\r\n textBaseline: 'bottom',\r\n offsetY: 20,\r\n offsetX: 10,\r\n fill: new Fill({\r\n color: [0, 0, 0, 1]\r\n }),\r\n stroke: new Stroke({\r\n color: [255, 255, 255, 0.5],\r\n width: 4\r\n }),\r\n text: 'Test'\r\n })\r\n })\r\n });\r\n\r\n if (this.map) {\r\n\r\n //this.map.addLayer(layer_cshp);\r\n this.map.addLayer(layer_vnmcc);\r\n this.map.addLayer(layer_phaotieu);\r\n\r\n var graticule = new Graticule({\r\n strokeStyle: new Stroke({ color: '#62b4f4', width: 0.5 }),\r\n showLabels: true\r\n });\r\n graticule.setMap(this.map);\r\n }\r\n\r\n }\r\n\r\n}\r\n","import Map from 'ol/Map.js';\r\nimport { Vector as VectorLayer } from 'ol/layer.js';\r\nimport { Vector as VectorSource } from 'ol/source.js';\r\nimport Feature from 'ol/Feature';\r\nimport { Circle as CircleStyle, Fill, Stroke, Style, Icon, Text } from 'ol/style.js';\r\nimport Point from 'ol/geom/Point';\r\nimport KML from 'ol/format/KML';\r\n\r\nimport { LineString, Polygon, Circle, MultiPoint } from 'ol/geom.js';\r\nimport { Draw, Modify, Snap } from 'ol/interaction.js';\r\nimport { unByKey } from 'ol/Observable.js';\r\nimport Overlay from 'ol/Overlay.js';\r\nimport { getArea, getLength } from 'ol/sphere.js';\r\nimport { fromLonLat, transform } from 'ol/proj.js';\r\nimport { CommonLib } from '../_providers/commonLib';\r\nimport { DrawItemnModel } from '../_models/draw/drawItem.model';\r\nimport { DsTauModel } from '../_models/dstau.model';\r\n\r\nexport class LayerMeasure {\r\n source_measure: VectorSource;\r\n featureSketch;\r\n\r\n helpTooltipElement;\r\n helpTooltip;\r\n\r\n measureTooltipElement;\r\n measureTooltip;\r\n\r\n continuePolygonMsg: string = 'Click để vẽ tiếp đa giác';\r\n continueLineMsg: string = 'Click để vẽ tiếp đường thẳng';\r\n\r\n draw: Draw;\r\n typeDraw: string;\r\n //snap;\r\n //modify;\r\n public isDrawing: boolean = false;\r\n\r\n constructor(private map: Map) {\r\n var thisObj = this;\r\n this.source_measure = new VectorSource();\r\n var layer = new VectorLayer({\r\n source: this.source_measure,\r\n style: new Style({\r\n fill: new Fill({\r\n color: 'rgba(255, 255, 255, 0.2)'\r\n }),\r\n stroke: new Stroke({\r\n color: '#ffcc33',\r\n width: 2\r\n }),\r\n image: new CircleStyle({\r\n radius: 3,\r\n fill: new Fill({\r\n color: '#ffcc33'\r\n })\r\n })\r\n })\r\n });\r\n\r\n if (this.map) {\r\n this.map.addLayer(layer);\r\n this.map.on('pointermove', function (evt) {\r\n thisObj.pointerMoveHandler(evt, thisObj);\r\n });\r\n\r\n this.map.getViewport().addEventListener('mouseout', function () { // chuột ra khỏi màn hình map, nếu đang vẽ thì ẩn helpTooltip đi\r\n if (thisObj.isDrawing) {\r\n thisObj.helpTooltipElement.classList.add('hidden');\r\n }\r\n });\r\n }\r\n\r\n //this.modify = new Modify({ source: this.source_measure });\r\n //this.modify.on('modifyend', function (event) {\r\n // var feature = event.features.item(0);\r\n\r\n // feature.changed();\r\n // thisObj.updateDrawingFeature(feature);\r\n //});\r\n //this.map.addInteraction(this.modify);\r\n\r\n this.createHelpTooltip(this);\r\n this.createMeasureTooltip(this);\r\n }\r\n\r\n /**\r\n * Bắt sự kiện pointer_move nếu bắt đầu vẽ\r\n * @param evt\r\n */\r\n public pointerMoveHandler(evt, thisObj) {\r\n if (evt.dragging) {\r\n return;\r\n }\r\n if (!thisObj.isDrawing) {\r\n return;\r\n }\r\n var helpMsg = 'Click để bắt đầu vẽ';\r\n if (thisObj.featureSketch) {\r\n var geom = (thisObj.featureSketch.getGeometry());\r\n if (geom instanceof Polygon) {\r\n helpMsg = thisObj.continuePolygonMsg;\r\n } else if (geom instanceof LineString) {\r\n helpMsg = thisObj.continueLineMsg;\r\n }\r\n }\r\n thisObj.helpTooltipElement.innerHTML = helpMsg;\r\n thisObj.helpTooltip.setPosition(evt.coordinate);\r\n thisObj.helpTooltipElement.classList.remove('hidden');\r\n }\r\n\r\n /**\r\n * load all draw items để hiển thị trên map\r\n * @param items\r\n */\r\n loadDrawItems(items: DrawItemnModel[]) {\r\n var thisObj = this;\r\n var listener;\r\n for (var index = 0; index < items.length; index++) {\r\n this.isDrawing = true;\r\n var data = items[index];\r\n switch (data.geometry) {\r\n case 'POLYGON'://old\r\n {\r\n var points_lonlat = data.points;\r\n var points = [];\r\n for (var i = 0; i < points_lonlat.length; i++) {\r\n points.push(fromLonLat(points_lonlat[i]));\r\n }\r\n points.push(points[0]);\r\n var feature = new Feature({\r\n geometry: new Polygon([points]),\r\n data: data,// du lieu\r\n dsid: data.dsid,\r\n tends: data.tends,\r\n guid: data.id ? data.id : data.khuvucid,\r\n clickable: false,\r\n });\r\n feature.set('type', 'measure', true);\r\n feature.set('geo', 'Polygon', true);//loai\r\n // set nội dung của measureTooltip\r\n listener = feature.on('change', function (evt) {\r\n thisObj.updateContentMeasureTooltip(feature);\r\n });\r\n //create tooltip\r\n feature.set('measureTooltip', this.measureTooltip, true);\r\n this.source_measure.addFeatures([feature]);\r\n\r\n feature.setStyle(this.createPolygonStyle(data));\r\n this.stopDrawing();\r\n }\r\n break;\r\n case 'CIRCLE':\r\n {\r\n var feature = new Feature({\r\n geometry: new Circle(fromLonLat([data.lon, data.lat]), data.radius),\r\n data: data,// du lieu\r\n guid: data.id ? data.id : data.khuvucid,\r\n clickable: false\r\n });\r\n feature.set('type', 'measure', true);\r\n feature.set('geo', 'Circle', true);//loai\r\n listener = feature.on('change', function (evt) {\r\n thisObj.updateContentMeasureTooltip(feature);\r\n });\r\n //create tooltip\r\n feature.set('measureTooltip', this.measureTooltip, true);\r\n feature.setStyle(this.createCircleStyle(data));\r\n this.source_measure.addFeatures([feature]);\r\n\r\n //style\r\n\r\n this.stopDrawing();\r\n }\r\n break;\r\n case 'LINESTRING':\r\n {\r\n var points_lonlat = data.points;\r\n var points = [];\r\n for (var i = 0; i < points_lonlat.length; i++) {\r\n points.push(fromLonLat(points_lonlat[i]));\r\n }\r\n var feature = new Feature({\r\n geometry: new LineString(points),\r\n data: data,// du lieu\r\n guid: data.id ? data.id : data.khuvucid,\r\n clickable: false\r\n });\r\n feature.set('type', 'measure', true);\r\n feature.set('geo', 'LineString', true);//loai\r\n listener = feature.on('change', function (evt) {\r\n thisObj.updateContentMeasureTooltip(feature);\r\n });\r\n\r\n //create tooltip\r\n feature.set('measureTooltip', this.measureTooltip, true);\r\n feature.setStyle(this.createLineStringStyle(data));\r\n this.source_measure.addFeatures([feature]);\r\n this.stopDrawing();\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n\r\n //createTooltip() {\r\n // var div = document.createElement('div');\r\n // div.className = 'tooltip1 tooltip-static';\r\n // var tooltip = new Overlay({\r\n // element: div,\r\n // offset: [0, -7],\r\n // positioning: 'bottom-center'\r\n // });\r\n // //this.overlays.push(tooltip);\r\n // this.map.addOverlay(tooltip);\r\n // return tooltip;\r\n //};\r\n\r\n\r\n /**\r\n * return style của hình vẽ lưu trong DB\r\n * @param data\r\n */\r\n createPolygonStyle(data: DrawItemnModel) {\r\n return [new Style({\r\n fill: new Fill({\r\n color: this.hexToRgb(data.fillColor, data.opacity)\r\n }),\r\n stroke: new Stroke({\r\n color: this.hexToRgb(data.color, data.opacity),\r\n width: 2\r\n })\r\n }),\r\n new Style({\r\n image: new CircleStyle({\r\n radius: 3,\r\n fill: new Fill({\r\n color: this.hexToRgb(data.color, 0)\r\n })\r\n }),\r\n geometry: function (feature) {\r\n var coordinates = feature.getGeometry().getCoordinates()[0];\r\n return new MultiPoint(coordinates);\r\n }\r\n })];\r\n };\r\n\r\n createCircleStyle(data: DrawItemnModel) {\r\n return [new Style({\r\n fill: new Fill({\r\n color: this.hexToRgb(data.fillColor, data.opacity)\r\n }),\r\n stroke: new Stroke({\r\n color: this.hexToRgb(data.color, data.opacity),\r\n width: 2\r\n })\r\n }),\r\n new Style({\r\n image: new CircleStyle({\r\n radius: 3,\r\n fill: new Fill({\r\n color: this.hexToRgb(data.color, data.opacity)\r\n })\r\n }),\r\n geometry: function (feature) {\r\n // return the coordinates of the first ring of the polygon\r\n var coordinates = feature.getGeometry().getCenter();\r\n return new Point(coordinates);\r\n }\r\n })\r\n ];\r\n };\r\n\r\n createLineStringStyle(data: DrawItemnModel) {\r\n return [new Style({\r\n stroke: new Stroke({\r\n color: this.hexToRgb(data.color, 0),\r\n width: 2\r\n })\r\n }),\r\n new Style({\r\n image: new CircleStyle({\r\n radius: 3,\r\n fill: new Fill({\r\n color: this.hexToRgb(data.color, 0)\r\n })\r\n }),\r\n geometry: function (feature) {\r\n // return the coordinates of the first ring of the polygon\r\n var coordinates = feature.getGeometry().getCoordinates();\r\n return new MultiPoint(coordinates);\r\n }\r\n })\r\n ];\r\n };\r\n //public updateDrawingFeature(feature) {\r\n // var tooltip = feature.get('measureTooltip');\r\n // tooltip.setPosition(undefined);\r\n // var element = tooltip.get('element');\r\n // var geom = feature.getGeometry();\r\n // var output;\r\n // var tooltipCoord = geom.getInteriorPoint().getCoordinates();\r\n // if (geom instanceof Polygon) {\r\n // output = this.formatArea(feature, geom);\r\n // tooltipCoord = geom.getInteriorPoint().getCoordinates();\r\n // } else if (geom instanceof LineString) {\r\n // output = this.formatLength(geom);\r\n // tooltipCoord = geom.getLastCoordinate();\r\n // }\r\n\r\n // element.innerHTML = output;\r\n // tooltip.setPosition(tooltipCoord);\r\n //}\r\n\r\n\r\n /***\r\n * Start drawing\r\n * */\r\n public addInteraction(type, DSTau) {\r\n var thisObj = this;\r\n this.isDrawing = true;\r\n this.typeDraw = type;\r\n\r\n this.draw = new Draw({\r\n source: this.source_measure,\r\n type: type,\r\n style: new Style({\r\n fill: new Fill({\r\n color: 'rgba(255, 255, 255, 0.2)'\r\n }),\r\n stroke: new Stroke({\r\n color: 'rgba(0, 0, 0, 0.5)',\r\n lineDash: [10, 10],\r\n width: 2\r\n }),\r\n image: new CircleStyle({\r\n radius: 5,\r\n stroke: new Stroke({\r\n color: 'rgba(0, 0, 0, 0.7)'\r\n }),\r\n fill: new Fill({\r\n color: 'rgba(255, 255, 255, 0.2)'\r\n })\r\n })\r\n })\r\n });\r\n this.map.addInteraction(this.draw);\r\n //this.snap = new Snap({ source: this.source_measure });\r\n //this.map.addInteraction(this.snap);\r\n var listener;\r\n this.draw.on('drawstart',\r\n function (evt) {\r\n thisObj.featureSketch = evt.feature;\r\n if (thisObj.featureSketch.get('measureTooltip') == undefined) {\r\n thisObj.featureSketch.set('measureTooltip', thisObj.measureTooltip, true);\r\n }\r\n var feature = evt.feature;\r\n feature.set('type', 'measure', true);\r\n feature.set('geo', type, true);//loai\r\n feature.set('guid', CommonLib.newGuid(), true);\r\n feature.set('dsid', DSTau instanceof DsTauModel ? DSTau.dsid : '');\r\n feature.set('tends', DSTau instanceof DsTauModel ? DSTau.tends : '');\r\n //var tooltipCoord = evt.coordinate;\r\n listener = feature.getGeometry().on('change', function (evt) {\r\n thisObj.updateContentMeasureTooltip(feature);\r\n });\r\n }, this);\r\n\r\n this.draw.on('drawend',\r\n function () {\r\n //unByKey(listener);\r\n thisObj.stopDrawing();\r\n },\r\n this);\r\n }\r\n\r\n /**\r\n * Cập nhật nội dung, vị trí của measureTooltip theo các loại geo\r\n * @param feature\r\n */\r\n public updateContentMeasureTooltip(feature) {\r\n var thisObj = this;\r\n var geom = feature.getGeometry();\r\n feature.set('clickable', false);\r\n var output;\r\n var tooltipCoord;\r\n if (geom instanceof Polygon) {\r\n output = thisObj.formatArea(feature, geom);\r\n tooltipCoord = geom.getInteriorPoint().getCoordinates();\r\n } else if (geom instanceof LineString) {\r\n output = thisObj.formatLength(feature, geom);\r\n tooltipCoord = geom.getLastCoordinate();\r\n } else if (geom instanceof Circle) {\r\n output = thisObj.formatCircle(feature, geom);\r\n tooltipCoord = geom.getCenter();\r\n } else if (geom instanceof Point) {\r\n output = thisObj.formatPoint(feature);\r\n tooltipCoord = geom.getCoordinates();\r\n }\r\n thisObj.measureTooltipElement.innerHTML = output;\r\n thisObj.measureTooltip.setPosition(tooltipCoord);\r\n }\r\n\r\n public removeDrawInteraction() {\r\n this.map.removeInteraction(this.draw);\r\n }\r\n /**\r\n * Tạo thẻ div cho helpTooltip\r\n */\r\n public createHelpTooltip(thisObj) {\r\n if (thisObj.helpTooltipElement) {\r\n thisObj.helpTooltipElement.parentNode.removeChild(thisObj.helpTooltipElement);\r\n }\r\n thisObj.helpTooltipElement = document.createElement('div');\r\n thisObj.helpTooltipElement.className = 'tooltip hidden';\r\n thisObj.helpTooltip = new Overlay({\r\n element: thisObj.helpTooltipElement,\r\n offset: [10, -15],\r\n positioning: 'right-center'\r\n });\r\n thisObj.map.addOverlay(thisObj.helpTooltip);\r\n }\r\n\r\n /**\r\n * Tạo thẻ div cho tooltip\r\n * */\r\n public createMeasureTooltip(thisObj) {\r\n if (thisObj.measureTooltipElement) {\r\n thisObj.measureTooltipElement.parentNode.removeChild(thisObj.measureTooltipElement);\r\n }\r\n thisObj.measureTooltipElement = document.createElement('div');\r\n thisObj.measureTooltipElement.className = 'tooltip tooltip-measure';\r\n thisObj.measureTooltip = new Overlay({\r\n element: thisObj.measureTooltipElement,\r\n offset: [0, -7],\r\n positioning: 'bottom-center'\r\n });\r\n thisObj.map.addOverlay(thisObj.measureTooltip);\r\n }\r\n\r\n /**\r\n * Gán class static cho tooltip, set tooltip = null, create tooltip mới\r\n * Stop draw\r\n * */\r\n public stopDrawing() {\r\n this.isDrawing = false;\r\n // Gán class của measureTooltip thành static\r\n this.measureTooltipElement.className = 'tooltip tooltip-static';\r\n this.measureTooltip.setOffset([0, -7]);\r\n // unset sketch\r\n this.featureSketch = null;\r\n this.typeDraw = '';\r\n // unset tooltip so that a new one can be created\r\n this.measureTooltipElement = null;\r\n this.createMeasureTooltip(this);\r\n\r\n if (this.helpTooltip)\r\n this.helpTooltip.setPosition(undefined);\r\n if (this.measureTooltip)\r\n this.measureTooltip.setPosition(undefined);\r\n this.map.removeInteraction(this.draw);\r\n //this.map.removeInteraction(this.modify);\r\n //this.map.removeInteraction(this.snap);\r\n this.helpTooltipElement.classList.add('hidden');\r\n };\r\n\r\n /**\r\n * Tính toán hiển thị chiều dài đoạn thẳng\r\n * @param line\r\n */\r\n public formatLength(feature, line) {\r\n var length = getLength(line);\r\n\r\n\r\n //var coordinates = line.getCoordinates();\r\n //length = 0;\r\n //var sourceProj = this.map.getView().getProjection();\r\n //for (var i = 0, ii = coordinates.length - 1; i < ii; ++i) {\r\n // var c1 = transform(coordinates[i], sourceProj, 'EPSG:4326');\r\n // var c2 = transform(coordinates[i + 1], sourceProj, 'EPSG:4326');\r\n // length += this.getDistance(c1, c2);\r\n //}\r\n\r\n var output;\r\n if (length > 100) {\r\n output = (Math.round(length / 1000 * 100) / 100) +\r\n ' ' + 'km';\r\n output += '(' + (Math.round(length / 1852 * 100) / 100) +\r\n ' ' + 'nm)';\r\n } else {\r\n output = (Math.round(length * 100) / 100) +\r\n ' ' + 'm';\r\n }\r\n\r\n if (feature.get('data')) {\r\n var data = feature.get('data');\r\n if (data.khuvucid != undefined) {//giam sat\r\n output = '' + data.tenkv + '';\r\n }\r\n else {\r\n var id = feature.get('guid');\r\n output = \"\" + data.name + \"
\" + output;\r\n output = '' + output + '';\r\n }\r\n }\r\n else {\r\n var id = feature.get('guid');\r\n output = '' + output + '
';\r\n if (!this.isDrawing)\r\n output += 'Giám sát';\r\n }\r\n\r\n return output;\r\n }\r\n formatArea(feature, polygon) {\r\n var area = getArea(polygon);\r\n var output;\r\n if (area > 10000) {\r\n output = (Math.round(area / 1000000 * 100) / 100) +\r\n ' ' + 'km2';\r\n output += '(' + (Math.round(area / (1852 * 1852) * 100) / 100) + 'nm2)';\r\n } else {\r\n output = (Math.round(area * 100) / 100) +\r\n ' ' + 'm2';\r\n }\r\n if (feature.get('data')) {\r\n var data = feature.get('data');\r\n if (data.khuvucid != undefined) {//giam sat\r\n output = '' + data.tenkv + '';\r\n }\r\n else {\r\n var id = feature.get('guid');\r\n var dsid = feature.get('dsid');\r\n var tends = feature.get('tends');\r\n if (dsid) {\r\n output = \"Vùng thi công \" + tends + \"
\" + output;\r\n output = '' + output + '';\r\n } else {\r\n output = \"\" + data.name + \"
\" + output;\r\n output = '' + output + '';\r\n }\r\n }\r\n } else { // new draw\r\n var id = feature.get('guid');\r\n var dsid = feature.get('dsid');\r\n var tends = feature.get('tends');\r\n if (dsid) {\r\n output = \"Tạo vùng thi công: \" + tends + \"
\" + output;\r\n output = '' + output + '
';\r\n } else {\r\n output = '' + output + '
';\r\n }\r\n if (!this.isDrawing)\r\n output += 'Giám sát';\r\n }\r\n return output;\r\n }\r\n\r\n public formatCircle(feature, circle) {\r\n var output;\r\n var area = circle.getRadius();\r\n if (area > 1000) {\r\n output = (Math.round(area * 100 / 1000) / 100) +\r\n ' ' + 'km';\r\n output += '(' + (Math.round(area / (1852) * 100) / 100) + 'nm)';\r\n } else {\r\n output = (Math.round(area)) +\r\n ' ' + 'm';\r\n }\r\n if (feature.get('data')) {\r\n var data = feature.get('data');\r\n if (data.khuvucid != undefined) {//giam sat\r\n output = '' + data.tenkv + '';\r\n }\r\n else {\r\n var id = feature.get('guid');\r\n output = \"\" + data.name + \"
\" + output;\r\n output = '' + output + '';\r\n }\r\n }\r\n else {\r\n var id = feature.get('guid');\r\n output = '' + output + '
';\r\n if (!this.isDrawing)\r\n output += 'Giám sát';\r\n }\r\n return output;\r\n }\r\n\r\n public formatPoint(feature) {\r\n var output;\r\n var point = feature.getGeometry();\r\n var pos = point.getCoordinates();\r\n pos = transform(pos, 'EPSG:3857', 'EPSG:4326');\r\n output = CommonLib.latToDMS(pos[1]) + ' ' + CommonLib.lonToDMS(pos[0]);\r\n if (feature.get('data'))\r\n output = feature.get('data').name;\r\n var id = feature.get('guid');\r\n output = '' + output + '';\r\n return output;\r\n };\r\n\r\n public getFeatureByGUID(guid): Feature {\r\n var feature = null;\r\n this.source_measure.forEachFeature(function (f) {\r\n if (f.get('guid') == guid) {\r\n feature = f;\r\n }\r\n });\r\n return feature;\r\n }\r\n\r\n public getFeaturesByDsID(dsid): Feature[] {\r\n var features: Feature[] = [];\r\n this.source_measure.forEachFeature(function (f) {\r\n var data = f.get('data');\r\n if (data instanceof DrawItemnModel) {\r\n if (data.dsid == dsid) {\r\n features.push(f);\r\n }\r\n }\r\n });\r\n return features;\r\n }\r\n\r\n public getDrawingFeatureByDsID(dsid): Feature {\r\n var feature = null;\r\n this.source_measure.forEachFeature(function (f) {\r\n var data = f.get('dstau');\r\n if (data instanceof DsTauModel) {\r\n if (data.dsid == dsid) {\r\n feature = f;\r\n }\r\n }\r\n });\r\n return feature;\r\n }\r\n\r\n public Polygon_GetPointsToDMS(feature): string {\r\n var ret: string = \"\";\r\n var geom = feature.getGeometry();\r\n if (geom instanceof Polygon) {\r\n var points = geom.getCoordinates()[0];\r\n var text = '';\r\n for (var i = 0; i < points.length - 1; i++) {\r\n var lonlat = this.toLonLat(points[i]);\r\n //console.log(\"lonlat: \", lonlat);\r\n //console.log(\"round LAT: \", CommonLib.round(lonlat[1], 5));\r\n //console.log(\"DMS LAT: \", CommonLib.latToDMS(CommonLib.round(lonlat[1], 5)));\r\n text += CommonLib.latToDMS(CommonLib.round(lonlat[1], 5)) + ',' + CommonLib.lonToDMS(CommonLib.round(lonlat[0], 5)) + '\\n';\r\n }\r\n ret = text;\r\n }\r\n return ret;\r\n }\r\n\r\n public LineString_GetPointsToDMS(feature): string {\r\n var ret: string = \"\";\r\n var geom = feature.getGeometry();\r\n if (geom instanceof LineString) {\r\n var points = geom.getCoordinates();\r\n var text = '';\r\n for (var i = 0; i < points.length; i++) {\r\n var lonlat = this.toLonLat(points[i]);\r\n text += CommonLib.latToDMS(CommonLib.round(lonlat[1], 5)) + ',' + CommonLib.lonToDMS(CommonLib.round(lonlat[0], 5)) + '\\n';\r\n }\r\n ret = text;\r\n }\r\n return ret;\r\n }\r\n\r\n /**\r\n * return [latDMS, lonDMS, radius]\r\n * @param feature\r\n */\r\n public Circle_GetParams(feature): [string[], number] {\r\n var lonlat = this.toLonLat(feature.getGeometry().getCenter());\r\n var lat_dms = CommonLib.latToDMS(CommonLib.round(lonlat[1], 5));\r\n var lon_dms = CommonLib.lonToDMS(CommonLib.round(lonlat[0], 5));\r\n var radius = Math.round(feature.getGeometry().getRadius());\r\n return [[lat_dms, lon_dms], radius];\r\n }\r\n\r\n toLonLat(coord) {\r\n return transform(coord, this.map.getView().getProjection(), \"EPSG:4326\");\r\n };\r\n\r\n hexToRgb(hex, opacity) {\r\n var ratio = 1 - Math.round(parseInt(opacity, 16) * 100 / 255.0) / 100;\r\n return [parseInt(hex.substring(1, 3), 16),\r\n parseInt(hex.substring(3, 5), 16),\r\n parseInt(hex.substring(5, 7), 16),\r\n ratio];\r\n };\r\n\r\n removeFeature(f) {\r\n var tooltip = f.get('measureTooltip');\r\n tooltip.setPosition(undefined);\r\n this.source_measure.removeFeature(f);\r\n }\r\n\r\n getDistance(c1, c2) {\r\n var radius = 6371008.8;\r\n var lat1 = this.toRadians(c1[1]);\r\n var lat2 = this.toRadians(c2[1]);\r\n var deltaLatBy2 = (lat2 - lat1) / 2;\r\n var deltaLonBy2 = this.toRadians(c2[0] - c1[0]) / 2;\r\n var a = Math.sin(deltaLatBy2) * Math.sin(deltaLatBy2) +\r\n Math.sin(deltaLonBy2) * Math.sin(deltaLonBy2) *\r\n Math.cos(lat1) * Math.cos(lat2);\r\n return 2 * radius * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n };\r\n toRadians(angleInDegrees) {\r\n return angleInDegrees * Math.PI / 180;\r\n }\r\n}\r\n","import Map from 'ol/Map.js';\r\nimport { Vector as VectorLayer } from 'ol/layer.js';\r\nimport { Vector as VectorSource } from 'ol/source.js';\r\nimport Feature from 'ol/Feature';\r\nimport { Style, Icon } from 'ol/style.js';\r\nimport { transformExtent, fromLonLat } from 'ol/proj.js';\r\nimport Point from 'ol/geom/Point';\r\nimport Overlay from 'ol/Overlay.js';\r\nimport { ShipModel } from '../_models/ship.model';\r\nimport { APPS } from '../_providers/commonLib';\r\nimport { SHIPS_CACHE_ONLINE, SHIPS_CACHE_SEARCH } from '../app.component';\r\n\r\ndeclare var $: any;\r\n\r\nexport class LayerShips {\r\n source_ships: VectorSource;\r\n popupInfoShip: Overlay;\r\n\r\n constructor(private map: Map) {\r\n var thisObj = this;\r\n this.source_ships = new VectorSource();\r\n var layer_ships = new VectorLayer({\r\n source: this.source_ships,\r\n visible: true,\r\n });\r\n if (this.map) {\r\n this.map.addLayer(layer_ships);\r\n this.popupInfoShip = new Overlay({\r\n element: document.getElementById('popupInfoShip'),\r\n id: APPS.OVL_POPUP_SHIPINFO_GETID,\r\n positioning: 'bottom-left',\r\n stopEvent: false,\r\n offset: [0, -10]\r\n });\r\n this.map.addOverlay(this.popupInfoShip);\r\n\r\n this.map.on('pointermove', function (evt) { thisObj.onPointerMove(evt); });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * resize map khi đóng/mở sidebar\r\n * */\r\n isCloseSidebar: boolean = false;\r\n public resizeMap() {\r\n var widthScreen = $(window).width();\r\n this.isCloseSidebar = !this.isCloseSidebar;\r\n\r\n if (this.isCloseSidebar) {\r\n $('#map-ol').width(widthScreen + \"px\");\r\n } else {\r\n $('#map-ol').width(widthScreen - 320 + \"px\");\r\n }\r\n this.map.updateSize();\r\n }\r\n\r\n /**\r\n * Xóa nhiều feature trên map theo input array\r\n * @param shipsArray\r\n */\r\n public removeFeatures_Ships(shipsArray: ShipModel[]) {\r\n var thisObj = this;\r\n for (let sm of shipsArray) {\r\n this.source_ships.forEachFeature(function (f) {\r\n if (f.get('type') == APPS.F_SHIP_GETYPE && f.get('id') == sm.id) {\r\n thisObj.source_ships.removeFeature(f);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Xóa 1 feature trên map\r\n * @param f\r\n */\r\n public removeFeature(f: Feature) {\r\n this.source_ships.removeFeature(f);\r\n }\r\n\r\n /**\r\n * Xóa focus feature\r\n * */\r\n public removeFeature_Focus() {\r\n var thisObj = this;\r\n this.source_ships.forEachFeature(function (f) {\r\n if (f.get('type') == APPS.F_FOCUS_SHIP_GETYPE) {\r\n thisObj.source_ships.removeFeature(f);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Lấy về focus feature\r\n * */\r\n public getFeature_Focus(): Feature {\r\n var focus: Feature;\r\n this.source_ships.forEachFeature(function (f) {\r\n if (f.get('type') == APPS.F_FOCUS_SHIP_GETYPE) {\r\n focus = f;\r\n }\r\n });\r\n return focus;\r\n }\r\n\r\n /**\r\n * Lấy về feature theo shipID\r\n * @param shipid\r\n */\r\n public getFeatureByShipID(shipid: number): Feature {\r\n var shipIcon;\r\n this.source_ships.forEachFeature(function (f) {\r\n if ((f.get('type') == APPS.F_SHIP_GETYPE || f.get('type') == APPS.F_SHIP_HISTORY_GETYPE) && f.get('id') == shipid) {\r\n shipIcon = f;\r\n }\r\n });\r\n return shipIcon;\r\n }\r\n\r\n /**\r\n * Lấy về shipID của tàu đang focus\r\n * */\r\n getFocusShipID(): number {\r\n var shipid = 0;\r\n this.source_ships.forEachFeature(function (f) {\r\n if (f.get('type') == APPS.F_FOCUS_SHIP_GETYPE) {\r\n shipid = f.get('shipid');\r\n }\r\n });\r\n return shipid;\r\n }\r\n\r\n /**\r\n * Xóa toàn bộ icon ships, focus\r\n * */\r\n public removeAllFeature() {\r\n this.source_ships.clear();\r\n }\r\n\r\n /**\r\n * Vẽ focus feature cho tàu được selected theo shipID và shipCoord\r\n * @param shipid\r\n * @param shipCoord\r\n */\r\n public addFeature_FocusIcon(shipid: number, shipCoord) {\r\n var iconFocusStyle = new Style({\r\n image: new Icon({\r\n src: APPS.ASSETS_ICONS + '/focus.png',\r\n })\r\n })\r\n var iconFocusFeature = new Feature({\r\n id: APPS.F_FOCUS_SHIP_GETID,\r\n geometry: new Point(shipCoord),\r\n type: APPS.F_FOCUS_SHIP_GETYPE,\r\n shipid: shipid\r\n });\r\n iconFocusFeature.setStyle(iconFocusStyle);\r\n this.source_ships.addFeature(iconFocusFeature);\r\n }\r\n\r\n /**\r\n * 1.Vẽ icon shipps trên bản đồ theo input array\r\n * 2.Return shipFocus có dữ liệu được update\r\n * @param shipsArray\r\n */\r\n public drawFeatures_ShipsOnMap(shipsArray: ShipModel[]): ShipModel {\r\n var focus = this.getFeature_Focus();\r\n var shipFocus: ShipModel;\r\n var isFocus = false;\r\n //draw icon\r\n for (let sm of shipsArray) {\r\n var coordCenter = fromLonLat([sm.lon, sm.lat]);\r\n // update vị trí focus nếu có\r\n if (!isFocus && focus && focus.get('shipid') == sm.id) {\r\n this.source_ships.removeFeature(focus);\r\n this.addFeature_FocusIcon(sm.id, coordCenter);\r\n shipFocus = sm;\r\n isFocus = true;\r\n }\r\n\r\n var iconShipStyle = new Style({\r\n image: new Icon({\r\n src: APPS.ASSETS_ICONS + sm.folder_icon + sm.icon,\r\n rotation: sm.course == '' ? 0 : (0.0174532925 * (parseInt(sm.course) - 90)),\r\n }),\r\n });\r\n var iconShipFeature = new Feature({\r\n id: sm.id,\r\n geometry: new Point(coordCenter),\r\n data: sm,// du lieu\r\n showName: true,\r\n type: APPS.F_SHIP_GETYPE,\r\n //globalID: this.globalID++\r\n });\r\n iconShipFeature.setStyle(iconShipStyle);\r\n this.source_ships.addFeature(iconShipFeature);\r\n }\r\n return isFocus ? shipFocus : null;\r\n }\r\n\r\n /**\r\n * Vẽ ships icon trên bản đồ, update các info trong quá khứ (utcpos,status,...)\r\n * @param shipsArray\r\n */\r\n public addFeatures_HistoryShips(shipsArray: ShipModel[]) {\r\n for (let sm_history of shipsArray) {\r\n if (sm_history instanceof ShipModel) {\r\n sm_history.is_history = true;\r\n var coordCenter = fromLonLat([sm_history.lon, sm_history.lat]);\r\n var iconShipStyle = new Style({\r\n image: new Icon({\r\n src: APPS.ASSETS_ICONS + sm_history.folder_icon + sm_history.icon,\r\n rotation: sm_history.course == '' ? 0 : (0.0174532925 * (parseInt(sm_history.course) - 90)),\r\n })\r\n });\r\n\r\n var iconShipFeature = new Feature({\r\n id: sm_history.id,\r\n geometry: new Point(coordCenter),\r\n data: sm_history,// du lieu\r\n showName: true,\r\n type: APPS.F_SHIP_HISTORY_GETYPE,\r\n //globalID: this.globalID++\r\n });\r\n iconShipFeature.setStyle(iconShipStyle);\r\n this.source_ships.addFeature(iconShipFeature);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * cập nhật vị trí icon khi được select\r\n * @param shipId\r\n * @param shipCoord\r\n */\r\n public updatePositionFocusShip(shipId: number, shipCoord) {\r\n var feature = this.getFeatureByShipID(shipId);\r\n if (feature) {\r\n var newpos = new Point(shipCoord);\r\n feature.setGeometry(newpos);\r\n feature.changed();\r\n }\r\n }\r\n\r\n\r\n isOpenPopup: boolean = false;\r\n /**\r\n * Show popup bằng dialog\r\n * @param idElement\r\n * @param sm\r\n */\r\n public showPopupByJQuery(idElement, sm: ShipModel) {\r\n var thisObj = this;\r\n var widthMap = $('#map-ol').width();\r\n var heightMap = $('#map-ol').height();\r\n\r\n var shipCoordByPX = this.map.getPixelFromCoordinate(fromLonLat([sm.lon, sm.lat]));\r\n var x = shipCoordByPX[0], y = shipCoordByPX[1];\r\n\r\n if (this.isCloseSidebar) { // Nếu close sidebar thì gán css khác đi. Vì width map tăng\r\n x = x > widthMap / 2 ? x - 440 : x + 50;\r\n } else {\r\n x = x > widthMap / 2 ? x - 120 : x + 360;\r\n }\r\n\r\n if (y < 350) {\r\n y = 90;\r\n } else if ((heightMap - y) < 100) { // 450 tạm tính = max-height của popup\r\n y = heightMap - 350;\r\n } else {\r\n y -= 250;\r\n }\r\n\r\n $(idElement).dialog({\r\n dialogClass: 'ui-dialog-ship-popup',\r\n width: 385,\r\n modal: false,\r\n resizable: false,\r\n open: function () {\r\n thisObj.isOpenPopup = true;\r\n }\r\n });\r\n if (this.isOpenPopup) {\r\n var title = '' + '' + sm.name + '';\r\n $(\".ui-dialog-ship-popup\").find(\".ui-dialog-title\").html(title);\r\n // set position dialog popup\r\n $('.ui-dialog-ship-popup').css('left', x + 'px');\r\n $('.ui-dialog-ship-popup').css('top', y + 'px');\r\n }\r\n }\r\n\r\n public closePopup() {\r\n if ($('#gsnv-popup-dialog').dialog()) {\r\n $('#gsnv-popup-dialog').dialog(\"close\");\r\n var overlay = this.map.getOverlayById(APPS.OVL_POPUP_SHIPINFO_GETID);\r\n overlay.setPosition(undefined);\r\n // clear all focus icon\r\n this.removeFeature_Focus();\r\n this.isOpenPopup = false;\r\n }\r\n }\r\n\r\n /**\r\n * Close popup nếu response theo filter không có shipFocus\r\n * @param ships\r\n */\r\n public closePopup_WithShipOutFilter(ships: ShipModel[]) {\r\n var shipIdFocus = this.getFocusShipID();\r\n if (shipIdFocus) {\r\n var hasShipFocus = false;\r\n for (let s of ships) {\r\n if (shipIdFocus == s.id) {\r\n hasShipFocus = true;\r\n break;\r\n }\r\n }\r\n if (!hasShipFocus) {\r\n this.closePopup();\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * So sánh ResponseData & dữ liệu trên màn hình,\r\n * Clear dữ liệu cũ hoặc ngoài màn hình,\r\n * Return ShipModel[] cần vẽ lại trên map\r\n * @param resShips\r\n */\r\n public getShipsUpdatePosition(resShips: ShipModel[]) {\r\n var updateShips: ShipModel[] = new Array();\r\n var clearShips: ShipModel[] = new Array();\r\n var noChangeShips: ShipModel[] = new Array(); // Dùng để test, chưa sử dụng tới\r\n\r\n if (SHIPS_CACHE_ONLINE.length > 0) {\r\n for (let s_res of resShips) {\r\n var isExistInCache = false;\r\n var indexCache = 0;\r\n for (let s_cache of SHIPS_CACHE_ONLINE) {\r\n if (s_res.id == s_cache.id) { // tàu có trong SHIPS_CACHE\r\n if (s_res.utcpos <= s_cache.utcpos) { // nếu utc response nhỏ hơn/bằng thì không thay đổi\r\n noChangeShips.push(s_res);\r\n } else { //nếu utc response lớn hơn thì thêm vào array để xóa & update;\r\n clearShips.push(s_cache);\r\n updateShips.push(s_res);\r\n }\r\n isExistInCache = true;\r\n SHIPS_CACHE_ONLINE.splice(indexCache, 1);\r\n break;\r\n }\r\n indexCache++;\r\n }\r\n if (!isExistInCache) { // nếu response ko có trong SHIPS_CACHE thì là tàu mới => vẽ thêm\r\n updateShips.push(s_res);\r\n }\r\n }\r\n for (let clear of SHIPS_CACHE_ONLINE) {\r\n clearShips.push(clear);\r\n }\r\n // xóa feature cũ hoặc ngoài màn hình\r\n this.removeFeatures_Ships(clearShips);\r\n } else {\r\n updateShips = resShips;\r\n }\r\n //clear all item in array\r\n SHIPS_CACHE_ONLINE.length = 0;\r\n return updateShips;\r\n }\r\n\r\n /**\r\n * Sử dụng khi click tàu trên grid\r\n * Nếu tàu ngoài màn hình thì di chuyển màn hình đến vị trí của tàu\r\n * @param shipEx\r\n */\r\n public moveScreen_WithShipOutScreen(shipEx: ShipModel) {\r\n var ex = this.getTransformExtent();\r\n var shipCoord = fromLonLat([shipEx.lon, shipEx.lat]);\r\n var lon1 = ex[0], lat1 = ex[1], lon2 = ex[2], lat2 = ex[3];\r\n if (shipEx.lat <= lat1 || shipEx.lat >= lat2 || shipEx.lon <= lon1 || shipEx.lon >= lon2) {\r\n this.map.getView().animate({ zoom: 10, center: shipCoord });\r\n }\r\n }\r\n\r\n /**\r\n * Nếu zoomsize nhỏ quá thì animate\r\n * @param coordinate\r\n */\r\n public animateToShip(coordinate) {\r\n var zoom = 8;\r\n var zoomSize = this.map.getView().getZoom();\r\n if (zoomSize < zoom) {\r\n this.map.getView().animate({ zoom: zoom, center: coordinate });\r\n }\r\n }\r\n public animateToShip2(coordinate) {\r\n var zoom = 12;\r\n this.map.getView().animate({ zoom: zoom, center: coordinate });\r\n }\r\n /**\r\n * show cursor = pointer nếu di chuột qua tàu\r\n * @param evt\r\n */\r\n previousCursor = null;\r\n public onPointerMove(evt) {\r\n var _map = evt.map;\r\n var feature = _map.forEachFeatureAtPixel(evt.pixel, function (feature) {\r\n var name = feature.get('type');\r\n if (name !== undefined && (name == APPS.F_SHIP_GETYPE || name == APPS.F_SHIP_HISTORY_GETYPE))\r\n return feature;\r\n else\r\n return null;\r\n });\r\n var element = evt.map.getTargetElement();\r\n if (feature) {\r\n if (element.style.cursor != \"pointer\") {\r\n this.previousCursor = element.style.cursor;\r\n element.style.cursor = \"pointer\";\r\n }\r\n } else {\r\n if (this.previousCursor !== undefined) {\r\n element.style.cursor = this.previousCursor;\r\n this.previousCursor = undefined;\r\n }\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Trả về khung tọa độ của MAP [lon1, lat1, lon2, lat2]\r\n * (lon1, lat1): phía dưới bên trái\r\n * (lon2, lat2): phái trên bên phải\r\n * (lon2, lat2)\r\n * ******************************(*)\r\n * * *\r\n * * *\r\n * * Screen MAP *\r\n * * *\r\n * * *\r\n * * *\r\n * (*)******************************\r\n * (lon1, lat1)\r\n * \r\n * */\r\n public getTransformExtent() {\r\n var extent = this.map.getView().calculateExtent(this.map.getSize());\r\n extent = transformExtent(extent, 'EPSG:3857', 'EPSG:4326');\r\n return extent;\r\n }\r\n\r\n /**\r\n * Thêm dữ liệu tìm kiếm (topbar) vào ResponseData để hiển thị\r\n * @param resShips\r\n */\r\n public pushSearchDataIntoResponseData(resShips: ShipModel[]) {\r\n var isExist = false;\r\n var arrPush: ShipModel[] = new Array();\r\n SHIPS_CACHE_SEARCH.forEach(function (search) {\r\n isExist = false;\r\n resShips.forEach(function (res) {\r\n if (search.id == res.id) {\r\n isExist = true;\r\n }\r\n });\r\n if (!isExist) {\r\n arrPush.push(search);\r\n }\r\n });\r\n arrPush.forEach(function (value) {\r\n resShips.push(value);\r\n });\r\n return resShips;\r\n }\r\n}\r\n","import Map from 'ol/Map.js';\r\nimport { Vector as VectorLayer } from 'ol/layer.js';\r\nimport { Vector as VectorSource } from 'ol/source.js';\r\nimport Feature from 'ol/Feature';\r\nimport { Style, Icon, Stroke } from 'ol/style.js';\r\nimport { LineString } from 'ol/geom.js';\r\nimport Point from 'ol/geom/Point';\r\nimport Overlay from 'ol/Overlay.js';\r\nimport { fromLonLat } from 'ol/proj';\r\nimport { ShipModel } from '../_models/ship.model';\r\nimport { APPS, CommonLib } from '../_providers/commonLib';\r\nimport { TrackItemModel } from '../_models/trackItem.model';\r\nimport { SHIPS_CACHE_TRACKING } from '../app.component';\r\n\r\nexport class LayerTracks {\r\n source_tracks: VectorSource;\r\n overlayInfoTrack: Overlay;\r\n constructor(private map: Map) {\r\n var thisObj = this;\r\n //Khai báo layer cho tracks\r\n this.source_tracks = new VectorSource();\r\n var layer_tracks = new VectorLayer({\r\n source: this.source_tracks,\r\n visible: true,\r\n });\r\n if (this.map) {\r\n this.map.addLayer(layer_tracks);\r\n this.overlayInfoTrack = new Overlay({\r\n element: document.getElementById('overlayTrackInfo'),\r\n id: APPS.OVL_POPUP_TRACK_GETID,\r\n positioning: 'top-left',\r\n offset: [15, -10],\r\n autoPan: true,\r\n autoPanAnimation: {\r\n duration: 250\r\n }\r\n });\r\n this.map.addOverlay(this.overlayInfoTrack);\r\n // Hiện tooltip info track nếu di chuột qua icon track\r\n this.map.on('pointermove', function (evt) {\r\n thisObj.showTooltipInfoTrack(evt, thisObj);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Kiểm tra những tàu đang tracking, update line, point nếu tàu update position\r\n * @param resShipsTracking\r\n */\r\n public autoUpdateTracking(resShipsTracking: ShipModel[]) {\r\n if (resShipsTracking == null && resShipsTracking.length == 0) {\r\n return;\r\n }\r\n\r\n var shipsTrackingUpdate: ShipModel[] = this.getShipTrackingUpdatePosition(resShipsTracking);\r\n if (shipsTrackingUpdate != null && shipsTrackingUpdate.length > 0) {\r\n this.updateLineAndPointTrackings(shipsTrackingUpdate);\r\n }\r\n SHIPS_CACHE_TRACKING.length = 0;\r\n resShipsTracking.forEach(function (value) {\r\n SHIPS_CACHE_TRACKING.push(value);\r\n });\r\n }\r\n\r\n\r\n /**\r\n * So sánh ResponseData & dữ liệu trên màn hình,\r\n * Clear dữ liệu cũ hoặc ngoài màn hình,\r\n * Return ShipModel[] cần vẽ lại trên map\r\n * @param responseShips\r\n */\r\n public getShipTrackingUpdatePosition(responseShips: ShipModel[]) {\r\n var updateShips: ShipModel[] = new Array();\r\n if (SHIPS_CACHE_TRACKING.length > 0 && responseShips.length > 0) {\r\n for (let s_res of responseShips) {\r\n for (let s_cache of SHIPS_CACHE_TRACKING) {\r\n if (s_res.id == s_cache.id) { // tàu có trong SHIPS_CACHE\r\n if (s_res.utcpos > s_cache.utcpos) {\r\n updateShips.push(s_res);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n return;\r\n }\r\n return updateShips;\r\n }\r\n\r\n /**\r\n * Xóa track của 1 tàu theo ShipId\r\n * @param shipid\r\n */\r\n public removeTrackByShip(shipid: number) {\r\n // clear track cũ của tàu\r\n var thisObj = this;\r\n this.source_tracks.forEachFeature(function (f) {\r\n if (f.get('shipid') == shipid) {\r\n thisObj.source_tracks.removeFeature(f);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Trả về feature TrackLine đã vẽ theo shipid\r\n * @param shipid\r\n */\r\n public getTrackFeatureAndCurrentItemByShipId(shipid: number): Feature {\r\n var f_track: Feature, current: Feature;\r\n\r\n this.source_tracks.forEachFeature(function (f) {\r\n if (f.get('shipid') == shipid) {\r\n if (f.get('type') == APPS.F_TRACK_LINE_GETYPE) {\r\n f_track = f;\r\n }\r\n if (f.get('current')) {\r\n current = f;\r\n }\r\n }\r\n\r\n });\r\n return [f_track, current];\r\n }\r\n\r\n /**\r\n * Trả về TrackItem[] của tàu đã tracking theo feature\r\n * @param shipid\r\n */\r\n public getTrackDataByFeature(f: Feature): TrackItemModel[] {\r\n var rets: TrackItemModel[];\r\n if (f) {\r\n rets = f.get('trackData');\r\n }\r\n return rets;\r\n }\r\n\r\n\r\n /**\r\n * Trả về TrackItem[] của tàu đã tracking theo shipid\r\n * @param shipid\r\n */\r\n public getTrackDataByShipId(shipid: number): TrackItemModel[] {\r\n var arr = this.getTrackFeatureAndCurrentItemByShipId(shipid);\r\n var rets: TrackItemModel[];\r\n if (arr[0]) {\r\n rets = arr.get('trackData');\r\n }\r\n return rets;\r\n }\r\n\r\n /**\r\n * Tạo LineString để update track\r\n * @param trackItems\r\n */\r\n public createLineString(trackItems: TrackItemModel[]) {\r\n var coords = [];\r\n //Tạo danh sách các điểm trackItem\r\n for (var i = 0, n = trackItems.length; i < n; i++) {\r\n var ti = trackItems[i];\r\n var coordinate = fromLonLat([ti.lon, ti.lat, i]);\r\n coords.push(coordinate);\r\n }\r\n return new LineString(coords);\r\n }\r\n\r\n /**\r\n * Add thêm track item khi tàu update vị trí\r\n * @param ship\r\n */\r\n public addTrackPoint(ship: ShipModel) {\r\n var trackPoint = new Feature({\r\n geometry: new Point(fromLonLat([ship.lon, ship.lat])),\r\n shipid: ship.id,\r\n current: true,\r\n type: APPS.F_TRACK_ITEM_GETYPE,\r\n course: ship.course,\r\n info: CommonLib.formatTrackPoint(ship.name == '' ? ship.mmsi : ship.name, ship),\r\n })\r\n\r\n var trackPointStyle = new Style({\r\n image: new Icon({\r\n src: APPS.ASSETS_ICONS + '/track90.png',\r\n rotation: ship.course == '' ? 0 : (0.0174532925 * (parseInt(ship.course) - 90)),\r\n })\r\n })\r\n trackPoint.setStyle(trackPointStyle);\r\n this.source_tracks.addFeature(trackPoint);\r\n }\r\n\r\n /**\r\n * Cập item, line của những track đang hiển thị\r\n * @param shipsTrackingUpdate\r\n */\r\n public updateLineAndPointTrackings(shipsTrackingUpdate: ShipModel[]) {\r\n var thisCpn = this;\r\n shipsTrackingUpdate.forEach(function (shipUpdate) {\r\n var arr = thisCpn.getTrackFeatureAndCurrentItemByShipId(shipUpdate.id);\r\n // set vị trí cũ ko còn là currentItem \r\n var currentItem = arr[1];\r\n if (currentItem !== undefined) {\r\n currentItem.set('current', false);\r\n currentItem.changed();\r\n\r\n //update track line\r\n var featureTrack = arr[0];\r\n var trackItems: TrackItemModel[] = thisCpn.getTrackDataByFeature(featureTrack);\r\n trackItems.push(TrackItemModel.GetByShipModel(shipUpdate));\r\n var lineString = thisCpn.createLineString(trackItems);\r\n featureTrack.setGeometry(lineString);\r\n featureTrack.set(\"trackData\", trackItems);\r\n featureTrack.changed();\r\n thisCpn.addTrackPoint(shipUpdate);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Hiển thị track của tàu theo arrayTrackItem\r\n * @param ownerShip\r\n * @param trackItems\r\n */\r\n public addTracksByShip(ownerShip: ShipModel, trackItems: TrackItemModel[]) {\r\n console.log(ownerShip.track_hours + \"h tracks length: \" + trackItems.length);\r\n var coords = [];\r\n //Tạo danh sách các điểm trackItem\r\n var n = trackItems.length;\r\n for (var i = 0; i < n; i++) {\r\n var ti = trackItems[i];\r\n var coordinate = fromLonLat([ti.lon, ti.lat, i]);\r\n coords.push(coordinate);\r\n }\r\n //add them vi tri hien tại\r\n coords.push(fromLonLat([ownerShip.lon, ownerShip.lat, n]));\r\n\r\n //Tạo & vẽ trackLine feature\r\n var lineString = new LineString(coords);\r\n var line = new Feature({\r\n geometry: lineString,\r\n shipid: ownerShip.id,\r\n type: APPS.F_TRACK_LINE_GETYPE,\r\n trackData: trackItems,\r\n });\r\n var lineStyle = new Style({\r\n stroke: new Stroke({\r\n color: ownerShip.is_history ? 'red' : 'blue',\r\n width: 1\r\n })\r\n })\r\n line.setStyle(lineStyle);\r\n this.source_tracks.addFeature(line);\r\n\r\n //Tao & vẽ trackItem feature\r\n var src_icon = \"\";\r\n for (var i = 0; i < coords.length; i++) {\r\n var coord_index = coords[i][2];\r\n var cog;\r\n var current;\r\n if (coord_index == n) {\r\n cog = ownerShip.course;\r\n current = true;\r\n } else {\r\n cog = trackItems[coord_index].cog;\r\n current = false;\r\n }\r\n var trackPoint = new Feature({\r\n geometry: new Point(coords[i]),\r\n shipid: ownerShip.id,\r\n current: current,\r\n type: APPS.F_TRACK_ITEM_GETYPE,\r\n course: cog,\r\n info: CommonLib.formatTrackPoint(ownerShip.name == '' ? ownerShip.mmsi : ownerShip.name, coord_index == n ? ownerShip : trackItems[coord_index]),\r\n })\r\n\r\n if (i == 0) {\r\n src_icon = APPS.ASSETS_ICONS + '/track_first.png';\r\n } else {\r\n src_icon = APPS.ASSETS_ICONS + '/track90.png';\r\n }\r\n var trackPointStyle = new Style({\r\n image: new Icon({\r\n src: src_icon,\r\n rotation: cog == '' ? 0 : (0.0174532925 * (parseInt(cog) - 90)),\r\n })\r\n })\r\n trackPoint.setStyle(trackPointStyle);\r\n this.source_tracks.addFeature(trackPoint);\r\n }\r\n }\r\n\r\n public addTracks(ownerShip: ShipModel, trackItems: TrackItemModel[]) {\r\n console.log(\"Tracks length: \" + trackItems.length);\r\n var coords = [];\r\n //Tạo danh sách các điểm trackItem\r\n var n = trackItems.length;\r\n for (var i = 0; i < n; i++) {\r\n var ti = trackItems[i];\r\n var coordinate = fromLonLat([ti.lon, ti.lat, i]);\r\n coords.push(coordinate);\r\n }\r\n\r\n //Tạo & vẽ trackLine feature\r\n var lineString = new LineString(coords);\r\n var line = new Feature({\r\n geometry: lineString,\r\n shipid: ownerShip.id,\r\n type: APPS.F_TRACK_LINE_GETYPE,\r\n trackData: trackItems,\r\n });\r\n var lineStyle = new Style({\r\n stroke: new Stroke({\r\n color: 'red',\r\n width: 1\r\n })\r\n })\r\n line.setStyle(lineStyle);\r\n this.source_tracks.addFeature(line);\r\n\r\n //Tao & vẽ trackItem feature\r\n var src_icon = \"\";\r\n for (var i = 0; i < coords.length; i++) {\r\n var coord_index = coords[i][2];\r\n var cog;\r\n var current;\r\n if (coord_index == n) {\r\n cog = ownerShip.course;\r\n current = true;\r\n } else {\r\n cog = trackItems[coord_index].cog;\r\n current = false;\r\n }\r\n var trackPoint = new Feature({\r\n geometry: new Point(coords[i]),\r\n shipid: ownerShip.id,\r\n current: current,\r\n type: APPS.F_TRACK_ITEM_GETYPE,\r\n course: cog,\r\n info: CommonLib.formatTrackPoint(ownerShip.name == '' ? ownerShip.mmsi : ownerShip.name, coord_index == n ? ownerShip : trackItems[coord_index]),\r\n })\r\n \r\n if (i == coords.length - 1) {\r\n src_icon = APPS.ASSETS_ICONS + ownerShip.folder_icon + ownerShip.icon;\r\n } else if (i == 0) {\r\n src_icon = APPS.ASSETS_ICONS + '/track_first.png';\r\n } else {\r\n src_icon = APPS.ASSETS_ICONS + '/track90.png';\r\n }\r\n \r\n var trackPointStyle = new Style({\r\n image: new Icon({\r\n src: src_icon,\r\n rotation: cog == '' ? 0 : (0.0174532925 * (parseInt(cog) - 90)),\r\n })\r\n })\r\n trackPoint.setStyle(trackPointStyle);\r\n this.source_tracks.addFeature(trackPoint);\r\n }\r\n this.map.getView().fit(line.getGeometry(), {});\r\n }\r\n\r\n public removeAllFeature() {\r\n this.source_tracks.clear();\r\n }\r\n\r\n /**\r\n * Hiển thị tooltip info track nếu di chuột qua icon track\r\n * @param evt\r\n * @param thisObj\r\n */\r\n public showTooltipInfoTrack(evt, thisObj) {\r\n var showOvl = false;\r\n thisObj.map.forEachFeatureAtPixel(evt.pixel, function (f) {\r\n var type = f.get('type');\r\n if (type === undefined) {\r\n if (f.get('name') !== undefined) { // phao tiêu, vùng vnmcc (layerExt)\r\n showOvl = true;\r\n thisObj.overlayInfoTrack.setPosition(evt.coordinate);\r\n thisObj.overlayInfoTrack.getElement().innerHTML = f.get('name');\r\n }\r\n } else {\r\n if (type == APPS.F_TRACK_ITEM_GETYPE) { // info track\r\n showOvl = true;\r\n if (!f.get('current')) {\r\n thisObj.overlayInfoTrack.setPosition(evt.coordinate);\r\n thisObj.overlayInfoTrack.getElement().innerHTML = f.get('info');\r\n }\r\n } else if (type == APPS.F_SHIP_GETYPE || type == APPS.F_SHIP_HISTORY_GETYPE) { // shipname\r\n var ship = f.get('data');\r\n if (ship instanceof ShipModel) {\r\n showOvl = true;\r\n thisObj.overlayInfoTrack.setPosition(evt.coordinate);\r\n thisObj.overlayInfoTrack.getElement().innerHTML = ship.name;\r\n }\r\n }\r\n }\r\n });\r\n if (!showOvl) {\r\n thisObj.map.getOverlayById(APPS.OVL_POPUP_TRACK_GETID).setPosition(undefined);\r\n }\r\n }\r\n}\r\n","import { Tile as TileLayer} from 'ol/layer.js';\r\nimport { OSM } from 'ol/source.js';\r\nimport TileImage from 'ol/source/TileImage';\r\nimport { transformExtent } from 'ol/proj.js';\r\n\r\nexport class TileLayerMap {\r\n \r\n constructor() {\r\n \r\n }\r\n\r\n public getTileLayersArray(): any[] {\r\n var tileLayers = [];\r\n // Khai báo Tile layer của Openlayers\r\n var tileLayer_ol = new TileLayer({\r\n id: 'ol',\r\n source: new OSM(),\r\n visible: false,\r\n });\r\n //Khai báo layer bản đồ nền của gmap\r\n var tileLayer_gmap_roadmap = new TileLayer({\r\n id: 'google-roadmap',\r\n source: new TileImage({ url: 'https://mt1.google.com/vt/lyrs=m@113&hl=en&&x={x}&y={y}&z={z}&hl=vi', crossOrigin: \"Anonymous\" }),\r\n visible: true,\r\n });\r\n var tileLayer_gmap_satellite = new TileLayer({\r\n id: 'google-satellite',\r\n source: new TileImage({ url: 'https://mt1.google.com/vt/lyrs=s&hl=pl&&x={x}&y={y}&z={z}&hl=vi', crossOrigin: \"Anonymous\" }),\r\n visible: false,\r\n });\r\n var tileLayer_gmap_terrain = new TileLayer({\r\n id: 'google-terrain',\r\n source: new TileImage({ url: 'https://mt1.google.com/vt/lyrs=p&x={x}&y={y}&z={z}&hl=vi', crossOrigin: \"Anonymous\" }),\r\n visible: false,\r\n });\r\n var tileLayer_gmap_hybrid = new TileLayer({\r\n id: 'google-hybrid',\r\n source: new TileImage({ url: 'https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}&hl=vi', crossOrigin: \"Anonymous\" }),\r\n visible: false,\r\n });\r\n\r\n tileLayers.push(tileLayer_ol);\r\n tileLayers.push(tileLayer_gmap_satellite);\r\n tileLayers.push(tileLayer_gmap_roadmap);\r\n tileLayers.push(tileLayer_gmap_hybrid);\r\n tileLayers.push(tileLayer_gmap_terrain);\r\n\r\n return tileLayers;\r\n }\r\n\r\n\r\n public changeTileLayer(map, tileId) {\r\n if (map) {\r\n map.getLayers().forEach(function (layer) {\r\n if (layer.type == 'TILE') {\r\n if (tileId == layer.get('id')) {\r\n layer.setVisible(true);\r\n } else {\r\n layer.setVisible(false);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { ResponseModel } from \"./response.model\";\r\n\r\nexport interface AjaxResponseModel {\r\n ErrorCode: number;\r\n ErrorMsg: string;\r\n Response: any;\r\n RootTime: number;\r\n}\r\n\r\nexport class AjaxResponseModel extends ResponseModel {\r\n init(): void {\r\n }\r\n\r\n}\r\n","export class Alert {\r\n type: AlertType;\r\n message: string;\r\n alertId: string;\r\n keepAfterRouteChange: boolean;\r\n\r\n constructor(init?:Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport enum AlertType {\r\n Success,\r\n Error,\r\n Info,\r\n Warning\r\n}","import { ResponseModel } from '../response.model';\r\nimport { CommonLib, APPS } from '../../_providers/commonLib';\r\n\r\nexport interface DrawItemnModel {\r\n //protected string _email;\r\n // protected string _id, _name, _mota, _color, _fillcolor, _opacity;\r\n // protected string _points_dms, _toado;//danh sach diem theo dms\r\n // protected List < decimal[] > _points;//danh sach diem theo lon,lat\r\n // protected DateTime _ngaycn = DateTime.Now;\r\n // protected string _geometry = \"POLYGON\";\r\n\r\n id: string;\r\n name: string;\r\n mota: string;\r\n color: string;\r\n fillColor: string;\r\n opacity: string;\r\n toado: string;\r\n geometry: string;\r\n\r\n //polygon\r\n points: string[];\r\n points_dms: string;\r\n\r\n //circle\r\n radius: number;\r\n lat: number;\r\n lon: number;\r\n latDMS: string;\r\n lonDMS: string;\r\n\r\n //giam sat\r\n khuvucid: number;\r\n dsid: number;\r\n tends: string;\r\n}\r\n\r\nexport class DrawItemnModel extends ResponseModel {\r\n init(): void {\r\n if (!this.name) {\r\n this.color = '#ff0000';\r\n this.fillColor = '#eeeeee';\r\n this.opacity = '80';\r\n this.toado = '0';\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","import { ResponseModel } from '../_models/response.model';\r\n\r\n/**\r\n * Lưu thông tin của user\r\n * */\r\nexport interface DsTauModel {\r\n dsid: number;\r\n tends: string;\r\n ngaycn: number;\r\n nguoicn: string;\r\n \r\n}\r\n\r\nexport class DsTauModel extends ResponseModel {\r\n init(): void {\r\n\r\n }\r\n}\r\n","import { ResponseModel } from '../_models/response.model';\r\nimport { CommonLib } from '../_providers/commonLib';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n/**\r\n * Lưu thông tin của user\r\n * */\r\nexport interface InputExportDataModel {\r\n mmsi: string;\r\n name: string;\r\n nbatdau: number;\r\n nketthuc: number;\r\n latmin: number;\r\n latmax: number;\r\n lonmin: number;\r\n lonmax: number;\r\n sog: number;\r\n format: number;\r\n tid: string;\r\n frequency: number;\r\n\r\n //format datetime\r\n nbatdau_date: string;\r\n nbatdau_time: string;\r\n nketthuc_date: string;\r\n nketthuc_time: string;\r\n\r\n //filter theo trạm\r\n class: number;\r\n bsid: string;\r\n\r\n}\r\n\r\nexport class InputExportDataModel extends ResponseModel {\r\n\r\n init(): void {\r\n\r\n }\r\n\r\n checkValidateInput() {\r\n var res = 0; //true\r\n if (!this.nbatdau_date || !this.nbatdau_time || !this.nketthuc_date || !this.nketthuc_time\r\n || !this.mmsi || !this.latmin || !this.latmax || !this.lonmin || !this.lonmax) {\r\n res = 1;\r\n }\r\n if (res == 0) {\r\n this.formatDatetime();\r\n if (this.nbatdau >= this.nketthuc) {\r\n res = 2;\r\n }\r\n if (this.mmsi.length != 9 && this.mmsi.toUpperCase() != \"LASTPOSITION\") {\r\n res = 3;\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n formatDatetime() {\r\n if (this.nbatdau_date != \"\" && this.nbatdau_time != \"\") {\r\n var t0 = new Date(this.nbatdau_date + \" \" + this.nbatdau_time);\r\n this.nbatdau = Math.round(t0.getTime() / 1000);\r\n }\r\n if (this.nketthuc_date != \"\" && this.nketthuc_time != \"\") {\r\n var t1 = new Date(this.nketthuc_date + \" \" + this.nketthuc_time);\r\n this.nketthuc = Math.round(t1.getTime() / 1000);\r\n }\r\n }\r\n\r\n setDefault() {\r\n var datePipe = new DatePipe('en-US');\r\n this.bsid = \"\";\r\n this.format = 0;\r\n this.frequency = 1;\r\n this.class = 0;\r\n this.nbatdau_date = datePipe.transform(new Date(), 'yyyy-MM-dd');\r\n this.nbatdau_time = \"00:00\";\r\n\r\n this.nketthuc_date = datePipe.transform(new Date(), 'yyyy-MM-dd');\r\n this.nketthuc_time = \"23:59\"; //datePipe.transform(new Date(), 'HH:mm');\r\n\r\n this.mmsi = '';\r\n this.lonmin = 102;\r\n this.lonmax = 114;\r\n this.latmin = 6;\r\n this.latmax = 14;\r\n\r\n //this.mmsi = 'LASTPOSITION';\r\n //this.lonmin = 105.2;\r\n //this.lonmax = 107.5;\r\n //this.latmin = 7.3;\r\n //this.latmax = 9.4;\r\n }\r\n}\r\n","import { ResponseModel } from '../_models/response.model';\r\n\r\n/**\r\n * Lưu thông tin của user\r\n * */\r\nexport interface LuongHHModel {\r\n maluong: string;\r\n tenluong: string;\r\n lat: string;\r\n lon: string;\r\n}\r\n\r\nexport class LuongHHModel extends ResponseModel {\r\n init(): void {\r\n\r\n }\r\n}\r\n","export abstract class ResponseModel {\r\n abstract init(): void;\r\n\r\n public isParser(obj: any): boolean {\r\n if (!obj) {\r\n return true;\r\n }\r\n\r\n if (Array.isArray(obj) && obj.length === 0) {\r\n return true;\r\n }\r\n\r\n if (Array.isArray(obj) && obj.length > 0 && obj[0] instanceof ResponseModel) {\r\n return true;\r\n }\r\n\r\n if (obj instanceof ResponseModel) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { ResponseModel } from './response.model';\r\nimport { CommonLib, APPS } from '../_providers/commonLib';\r\n\r\nexport interface ShipModel {\r\n id: number;\r\n mmsi: string;\r\n mid: string;\r\n utc: number;\r\n utcpos: number;\r\n str_utcpos: string;\r\n d_utcpos: Date;\r\n lat: number;\r\n lon: number;\r\n speed: string;\r\n course: string;\r\n name: string;\r\n calsign: string;\r\n imo: string;\r\n virt: number;\r\n shtype: number;\r\n shtype_str: string;\r\n cls: string;\r\n dai: number;\r\n rong: number;\r\n bsid: string;\r\n des: string;\r\n navsts: string;\r\n heading: string;\r\n rot: string;\r\n draft: string;\r\n eta: string;\r\n t_eta: string;\r\n size: string;\r\n realtime: string;\r\n\r\n //extent\r\n track_hours: number;\r\n utcpos_daqua: string;\r\n position: string;\r\n folder_icon: string;\r\n icon: string;\r\n is_history: boolean;\r\n is_detail_track: boolean;\r\n\r\n //danh sach tau\r\n ngaythicong: number;\r\n str_ngaythicong: string;\r\n tentau_ds: string;\r\n danhsachid: number;\r\n}\r\n\r\nexport class ShipModel extends ResponseModel {\r\n init(): void {\r\n this.danhsachid = 0;\r\n if (this.utcpos) {\r\n this.initUtcpos();\r\n this.initPosition();\r\n this.initFolderIcon();\r\n this.initIsHistory();\r\n this.initNgayThiCong();\r\n }\r\n }\r\n\r\n initDataShowHistory(data: ShipModel) {\r\n if (data.is_history) {\r\n this.is_history = true;\r\n this.utcpos = data.utcpos;\r\n this.d_utcpos = data.d_utcpos;\r\n this.str_utcpos = data.str_utcpos;\r\n this.course = data.course;\r\n this.speed = data.speed;\r\n this.lat = data.lat;\r\n this.lon = data.lon;\r\n this.initUtcpos();\r\n } else\r\n return;\r\n }\r\n initIsHistory() {\r\n this.is_history = this.is_history ? this.is_history : false;\r\n }\r\n initPosition() {\r\n this.position = CommonLib.latToDMS(this.lat) + \" / \" + CommonLib.lonToDMS(this.lon);\r\n }\r\n initUtcpos() {\r\n if (this.utcpos) {\r\n // nếu là query ships on map\r\n if (this.utcpos > 0) {\r\n this.utcpos += this.utcpos.toString().length <= 8 ? APPS.ROOTTIME : 0;\r\n } else {\r\n this.utcpos += this.utcpos.toString().length <= 9 ? APPS.ROOTTIME : 0;\r\n }\r\n\r\n var t = new Date();\r\n t.setTime(this.utcpos * 1000);\r\n this.d_utcpos = t;\r\n var ar = CommonLib.formatUtcposToString(t).split('|');\r\n this.str_utcpos = ar[0];\r\n this.utcpos_daqua = ar[1];\r\n }\r\n }\r\n initNgayThiCong() {\r\n if (this.ngaythicong) {\r\n // nếu là query ships on map\r\n if (this.ngaythicong > 0) {\r\n this.ngaythicong += this.ngaythicong.toString().length <= 8 ? APPS.ROOTTIME : 0;\r\n } else {\r\n this.ngaythicong += this.ngaythicong.toString().length <= 9 ? APPS.ROOTTIME : 0;\r\n }\r\n\r\n var t = new Date();\r\n t.setTime(this.ngaythicong * 1000);\r\n var strDateTime = CommonLib.formatDateTime(t);\r\n var str = strDateTime.split(' ');\r\n this.str_ngaythicong = str[1];\r\n }\r\n }\r\n\r\n initUtc() {\r\n if (this.utc) {\r\n // nếu là query ships on map\r\n this.utc += this.utc.toString().length <= 8 ? APPS.ROOTTIME : 0;\r\n\r\n }\r\n }\r\n\r\n initFolderIcon() {\r\n this.folder_icon = '/other';\r\n\r\n\r\n // nếu tàu có dữ liệu cách đây 30 phút thì để gạch chéo\r\n\r\n if (this.cls == 'S') {\r\n this.folder_icon = '/base';//station\r\n this.icon = '/icon.png';\r\n }\r\n else\r\n if (this.cls == 'N') {//AtoN\r\n this.folder_icon = '/AtoN';\r\n this.icon = '/icon.png';\r\n } else\r\n if (this.shtype) {\r\n // nếu tàu có dữ liệu cách đây 30 phút thì để gạch chéo\r\n var subMinutes = ((new Date()).getTime() - this.d_utcpos.getTime()) / 1000 / 60;\r\n this.icon = subMinutes <= APPS.MINUTES_LOST_DATA ? '/found.png' : '/lost.png';\r\n\r\n if (this.shtype >= 20 && this.shtype <= 29)//wing in groud\r\n this.folder_icon = '/wig';\r\n else\r\n if (this.shtype == 30)//fishiing\r\n this.folder_icon = '/fishing';\r\n else\r\n if (this.shtype >= 31 && this.shtype <= 32)//towing\r\n this.folder_icon = '/towing';\r\n else\r\n if (this.shtype == 33)//dreg\r\n this.folder_icon = '/dreger';\r\n else\r\n if (this.shtype == 34)//diving\r\n this.folder_icon = '/diving';\r\n else\r\n if (this.shtype == 35 || this.shtype == 59)//military\r\n this.folder_icon = '/military';\r\n else\r\n if (this.shtype == 36 || this.shtype == 37)\r\n this.folder_icon = '/sailing';//du thuyen\r\n else\r\n if (this.shtype >= 40 && this.shtype <= 49)\r\n this.folder_icon = '/hsc';//cao toc'\r\n else\r\n if (this.shtype == 50)\r\n this.folder_icon = '/pilot';\r\n else\r\n if (this.shtype == 51)\r\n this.folder_icon = '/sar';\r\n else\r\n if (this.shtype == 52)\r\n this.folder_icon = '/tug';\r\n else\r\n if (this.shtype == 53)\r\n this.folder_icon = '/tender';\r\n else\r\n if (this.shtype == 55)\r\n this.folder_icon = '/police';\r\n else\r\n if (this.shtype == 58)\r\n this.folder_icon = '/medical';\r\n else\r\n if (this.shtype >= 60 && this.shtype <= 69)\r\n this.folder_icon = '/passenger';\r\n else\r\n if (this.shtype >= 70 && this.shtype <= 79)\r\n this.folder_icon = '/cargo';\r\n else\r\n if (this.shtype >= 80 && this.shtype <= 89)\r\n this.folder_icon = '/tanker';\r\n }\r\n else {\r\n this.folder_icon = '/na';\r\n var subMinutes = ((new Date()).getTime() - this.d_utcpos.getTime()) / 1000 / 60;\r\n this.icon = subMinutes <= APPS.MINUTES_LOST_DATA ? '/found.png' : '/lost.png';\r\n }\r\n };\r\n\r\n\r\n Shiptype_ConvertStringToNumber(str_shtype: string) {\r\n this.shtype = 0;\r\n switch (str_shtype.trim()) {\r\n case \"Reserved for future use\":\r\n this.shtype = 1;\r\n break;\r\n case \"Wing in ground\":\r\n this.shtype = 20;\r\n break;\r\n case \"High speed craft\":\r\n this.shtype = 40;\r\n break;\r\n case \"Passenger\":\r\n this.shtype = 60;\r\n break;\r\n case \"Cargo\":\r\n this.shtype = 70;\r\n break;\r\n case \"Tanker\":\r\n this.shtype = 80;\r\n break;\r\n case \"Other\":\r\n this.shtype = 90;\r\n break;\r\n case \"N/A\":\r\n this.shtype = 0;\r\n break;\r\n case \"Fishing\":\r\n this.shtype = 30;\r\n break;\r\n case \"Towing\":\r\n this.shtype = 31;\r\n break;\r\n case \"Dredging or underwater ops\":\r\n this.shtype = 33;\r\n break;\r\n case \"Diving ops\":\r\n this.shtype = 34;\r\n break;\r\n case \"Military ops\":\r\n this.shtype = 35;\r\n break;\r\n case \"Sailing\":\r\n this.shtype = 36;\r\n break;\r\n case \"Pleasure Craft\":\r\n this.shtype = 37;\r\n break;\r\n case \"Reserved\":\r\n this.shtype = 38;\r\n break;\r\n case \"Pilot\":\r\n this.shtype = 50;\r\n break;\r\n case \"Search and Rescue\":\r\n this.shtype = 51;\r\n break;\r\n case \"Tug\":\r\n this.shtype = 52;\r\n break;\r\n case \"Port Tender\":\r\n this.shtype = 53;\r\n break;\r\n case \"Anti-pollution equipment\":\r\n this.shtype = 54\r\n break;\r\n case \"Law Enforcement\":\r\n this.shtype = 55;\r\n break;\r\n case \"Medical Transport\":\r\n this.shtype = 58;\r\n break;\r\n case \"Noncombatant ship according to RR Resolution No. 18\":\r\n this.shtype = 59;\r\n break;\r\n }\r\n\r\n this.initFolderIcon();\r\n \r\n }\r\n\r\n}\r\n","import { ResponseModel } from './response.model';\r\nimport { CommonLib, APPS } from '../_providers/commonLib';\r\n\r\nexport interface ShipInDSModel {\r\n id: number;\r\n dsid: number;\r\n matau: number;\r\n mmsi: string;\r\n name: string;\r\n nguoicn: string;\r\n ngaythicong: number;\r\n date_ngaythicong: Date;\r\n str_ngaythicong: string;\r\n}\r\n\r\nexport class ShipInDSModel extends ResponseModel {\r\n init(): void {\r\n this.initNgayThiCong();\r\n }\r\n\r\n initNgayThiCong() {\r\n if (this.ngaythicong) {\r\n // nếu là query ships on map\r\n if (this.ngaythicong > 0) {\r\n this.ngaythicong += this.ngaythicong.toString().length <= 8 ? APPS.ROOTTIME : 0;\r\n } else {\r\n this.ngaythicong += this.ngaythicong.toString().length <= 9 ? APPS.ROOTTIME : 0;\r\n }\r\n\r\n this.date_ngaythicong = new Date();\r\n this.date_ngaythicong.setTime(this.ngaythicong * 1000);\r\n var strDateTime = CommonLib.formatDateTime(this.date_ngaythicong);\r\n var str = strDateTime.split(' ');\r\n this.str_ngaythicong = str[1];\r\n }\r\n }\r\n}\r\n","import { ResponseModel } from '../_models/response.model';\r\n\r\n\r\nexport interface ThongKeModel {\r\n gio: Date;\r\n soluong: number;\r\n \r\n}\r\n\r\nexport class ThongKeModel extends ResponseModel {\r\n init(): void {\r\n }\r\n \r\n}\r\n","import { ResponseModel } from '../_models/response.model';\r\nimport { ShipModel } from './ship.model';\r\nimport { CommonLib } from '../_providers/commonLib';\r\n\r\n/**\r\n * Lưu thông tin của trackItem\r\n * */\r\nexport interface TrackItemModel {\r\n utcpos: number;\r\n distance: number;\r\n lon: number;\r\n lat: number;\r\n cog: string;\r\n sog: string;\r\n name: string;\r\n\r\n stt: number;\r\n shipid: number;\r\n mmsi: string;\r\n d_utcpos: Date;\r\n str_utcpos: string;\r\n utcpos_daqua: string;\r\n position: string;\r\n\r\n}\r\n\r\nexport class TrackItemModel extends ResponseModel {\r\n init(): void {\r\n this.initUtcpos();\r\n this.initPosition();\r\n }\r\n\r\n initUtcpos() {\r\n var t = new Date();\r\n t.setTime(this.utcpos * 1000);\r\n this.d_utcpos = t;\r\n //console.log(t);\r\n var ar = CommonLib.formatUtcposToString(t).split('|');\r\n this.str_utcpos = ar[0];\r\n this.utcpos_daqua = ar[1];\r\n }\r\n\r\n initPosition() {\r\n this.position = CommonLib.latToDMS(this.lat) + \" / \" + CommonLib.lonToDMS(this.lon);\r\n }\r\n\r\n public static GetByShipModel(ship: ShipModel): TrackItemModel {\r\n var item: TrackItemModel = new TrackItemModel();\r\n item.utcpos = ship.utcpos;\r\n item.lon = ship.lon;\r\n item.lat = ship.lat;\r\n item.cog = ship.course;\r\n item.sog = ship.speed;\r\n item.name = ship.name;\r\n item.shipid = ship.id;\r\n item.init();\r\n return item;\r\n }\r\n}\r\n","import { ResponseModel } from '../_models/response.model';\r\nimport { DichVuModel } from './user/dichvu.model';\r\nimport { ProfileModel } from './user/profile.model';\r\n\r\n/**\r\n * Lưu thông tin của user\r\n * */\r\nexport interface UserModel {\r\n Email: string;\r\n Password: string;\r\n TokenID: string;\r\n TenKH: string;\r\n MaKH: string;\r\n //Expiration: \"2019-11-08T10:07:05.3563192+07:00\"\r\n IsAdmin: boolean;\r\n IsVishipel: boolean;\r\n dichvu: DichVuModel;\r\n profile: ProfileModel;\r\n}\r\n\r\nexport class UserModel extends ResponseModel {\r\n init(): void {\r\n\r\n }\r\n}\r\n","import { ResponseModel } from '../_models/response.model';\r\nimport { UserModel } from './user.model';\r\n\r\n/**\r\n * Lưu thông tin của user\r\n * */\r\nexport interface UserConfigs {\r\n ZoomSize: number;\r\n Center: Array;\r\n OnlineTime: number;\r\n TypeData: string;\r\n HistoryDay: string;\r\n DanhSachId: number; //selectedDsTau_Id\r\n RootTime: number;\r\n}\r\n\r\nexport class UserConfigs extends UserModel {\r\n static USERDATA_KEYSTORAGE: string = 'UserData'; // storage key\r\n static Keys: Array = [\r\n 'Email', 'Password', 'TokenID', 'TenKH', 'MaKH',\r\n 'ZoomSize', 'Center', 'OnlineTime', 'TypeData', 'HistoryDay', 'RootTime', 'DanhSachId'\r\n ];\r\n\r\n\r\n /**\r\n * set storage giá trị của 1 thuộc tính\r\n * @param key\r\n * @param value\r\n */\r\n static saveConfig(key: KEY, value: any) {\r\n if (this.Keys.includes(key)) {\r\n var currentUser = this.getCurrentUser();\r\n currentUser[key] = value;\r\n this.saveUserConfigs(currentUser);\r\n } else {\r\n console.error(\"Cấu hình config không tồn tại thuộc tính '\" + key + \"'\");\r\n }\r\n }\r\n\r\n /**\r\n * set storage khi lưu config của current user\r\n * @param user\r\n */\r\n static saveUserConfigs(user: UserConfigs) {\r\n if (localStorage.getItem(this.USERDATA_KEYSTORAGE) != null) {\r\n localStorage.setItem(this.USERDATA_KEYSTORAGE, JSON.stringify(user));\r\n } else if (sessionStorage.getItem(this.USERDATA_KEYSTORAGE) != null) {\r\n sessionStorage.setItem(this.USERDATA_KEYSTORAGE, JSON.stringify(user));\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Set storage khi login\r\n * @param user\r\n * @param remember\r\n */\r\n static setUserLogged(user: UserConfigs, remember: boolean) {\r\n if (remember) {\r\n localStorage.setItem(this.USERDATA_KEYSTORAGE, JSON.stringify(user));\r\n } else {\r\n sessionStorage.setItem(this.USERDATA_KEYSTORAGE, JSON.stringify(user));\r\n }\r\n }\r\n\r\n static updateProfile(user: UserConfigs) {\r\n if (localStorage.getItem(this.USERDATA_KEYSTORAGE) != null) {\r\n localStorage.setItem(this.USERDATA_KEYSTORAGE, JSON.stringify(user));\r\n } else if (sessionStorage.getItem(this.USERDATA_KEYSTORAGE) != null) {\r\n sessionStorage.setItem(this.USERDATA_KEYSTORAGE, JSON.stringify(user));\r\n }\r\n }\r\n\r\n /**\r\n * get storage current user\r\n * */\r\n static getCurrentUser(): UserConfigs {\r\n var userlogged = new UserConfigs();\r\n if (localStorage.getItem(this.USERDATA_KEYSTORAGE) != null) {\r\n userlogged = JSON.parse(localStorage.getItem(this.USERDATA_KEYSTORAGE));\r\n } else if (sessionStorage.getItem(this.USERDATA_KEYSTORAGE) != null) {\r\n userlogged = JSON.parse(sessionStorage.getItem(this.USERDATA_KEYSTORAGE));\r\n } else {\r\n return null;\r\n }\r\n return userlogged;\r\n }\r\n}\r\n","import { ResponseModel } from './response.model';\r\n\r\nexport interface UserKmlModel {\r\n // string _email, _name, _mota, _kmlid, _linecolor, _fillcolor, _opacity;\r\n //bool _visible = true;\r\n //string _kmldata;\r\n //DateTime _ngaycn;\r\n\r\n email: string;\r\n name: string;\r\n mota: string;\r\n kmlid: string;\r\n linecolor: string;\r\n fillcolor: string;\r\n opacity: string;\r\n visible: boolean;\r\n kmldata: string;\r\n kml: any;\r\n //ngaycn: number;\r\n}\r\n\r\nexport class UserKmlModel extends ResponseModel {\r\n init(): void {\r\n if (!this.name) {\r\n //this.color = '#ff0000';\r\n //this.fillColor = '#eeeeee';\r\n //this.opacity = '80';\r\n //this.toado = '0';\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","import { ResponseModel } from './../_models/response.model';\r\nimport { AjaxResponseModel } from '../_models/ajaxResponse.model';\r\n\r\nexport let APPS = {\r\n\r\n ASSETS_ICONS: '/assets/icon-ships',\r\n MINUTES_LOST_DATA: 30,\r\n INTERVAL_AUTO_REFRESH: 60, //SECONDS\r\n FILTER_AIS: 'AIS',\r\n FILTER_NAOVET: 'NAOVET',\r\n FILTER_ALLDATA: 'ALLDATA',\r\n FILTER_DSTAU: 'DSTAU',\r\n FILTER_HISTORY: 'HISTORY',\r\n ROOTTIME: 0,\r\n\r\n ONLINETIME: [\r\n { value: -1, text: \"1 giờ trước\" },\r\n { value: 1, text: \"1 ngày trước\" },\r\n { value: 7, text: \"1 tuần trước\" },\r\n { value: 30, text: \"1 tháng trước\" },\r\n { value: 60, text: \"2 tháng trước\" },\r\n { value: 90, text: \"3 tháng trước\" },\r\n { value: 180, text: \"6 tháng trước\" },\r\n { value: 0, text: \"Tất cả\" },\r\n ],\r\n\r\n\r\n\r\n //Feature \r\n F_SHIP_GETYPE: 'ship',\r\n F_SHIP_HISTORY_GETYPE: 'ship-history',\r\n F_FOCUS_SHIP_GETYPE: 'focus_ship',\r\n F_FOCUS_SHIP_GETID: 'feature_focus_ship',\r\n F_TRACK_ITEM_GETYPE: 'trackItem',\r\n F_TRACK_LINE_GETYPE: 'trackLine',\r\n //Feature \r\n\r\n //Overlay \r\n OVL_POPUP_SHIPINFO_GETID: 'overlay_popup_shipinfo',\r\n OVL_POPUP_TRACK_GETID: 'overlay_trackinfo',\r\n}\r\n\r\nexport let ELMS = {\r\n EditDsTau: '#gsnv-edit-dstau',\r\n EditMeasure: '#gsnv-edit-measure',\r\n EditPolygonDSTau: '#gsnv-edit-polygon-dstau',\r\n ThongKe1Tau: '#gsnv-thong-ke',\r\n ThongKeChiTiet1Tau: '#gsnv-thong-ke-chi-tiet',\r\n KML: '#gsnv-kml',\r\n UploadKML: '#gsnv-upload-kml',\r\n AddTauVaoDs: '#add-tau-vao-ds',\r\n GetMaKichHoat: '#get-ma-kich-hoat',\r\n DoiMatKhau: '#doi-mat-khau',\r\n}\r\n\r\ndeclare var $: any;\r\nexport class CommonLib {\r\n public static GAP_1970_1601: number = 11644473600000;\r\n public static NANO_SECOND_BOOST: number = 10000;\r\n static A_DAY_TIME: number = 86400000;\r\n\r\n public static convertOutputTime(time: number): number {\r\n return time / this.NANO_SECOND_BOOST - this.GAP_1970_1601;\r\n }\r\n\r\n public static convertInputTime(time: number): number {\r\n return (time + this.GAP_1970_1601) * 10000;\r\n }\r\n\r\n public static parseArray(type: { new(): T; }, source: any): Array {\r\n const arr = new Array();\r\n source.forEach(element => {\r\n const obj = new type();\r\n for (let k in element) {\r\n obj[k] = element[k];\r\n }\r\n obj.init();\r\n arr.push(obj);\r\n });\r\n return arr;\r\n }\r\n\r\n public static parseObject(type: { new(): T; }, source: any): T {\r\n const obj = new type();\r\n for (let k in source) {\r\n obj[k] = source[k];\r\n }\r\n obj.init();\r\n return obj;\r\n }\r\n\r\n public static mergeObject(target: any, source: any, fields?: string[]) {\r\n for (let k in source) {\r\n if (fields && fields.indexOf(k) !== -1) {\r\n target[k] = source[k];\r\n continue;\r\n }\r\n if (!fields) {\r\n target[k] = source[k];\r\n continue;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Chuyển đổi giờ 12 sang 24 bằng cách tách chuỗi \r\n **/\r\n public static converto24hours(time) {\r\n var temp = time.split(\" \"); // Tách chuỗi ban đầu thành mảng lưu: giờ:phút:giây và lưu am hoặc pm\r\n var ampm = temp[1]; // Gán am pm cho biến\r\n var hours = temp[0].split(\":\"); // Tách chuỗi còn lại thành mảng lưu giờ:phút:giây\r\n if (ampm != 'undefined') { // Nếu am, pm là khác rỗng\r\n if ((ampm == 'pm' || ampm == 'PM') && hours[0] < 12) { // Nếu giờ < 12, ampm là pm hoặc PM => giờ + 12\r\n hours[0] = parseInt(hours[0], 10);\r\n hours[0] += 12;\r\n }\r\n if ((ampm == 'pm' || ampm == 'PM') && hours[0] == 12) { // Nếu giờ = 12 thì trừ đi 12 và thêm 0\r\n hours[0] = parseInt(hours[0], 10);\r\n hours[0] -= 12;\r\n hours[0].toString();\r\n hours[0] = hours[0] + \"0\";\r\n }\r\n }\r\n var result = hours[0] + \":\" + hours[1] + \":\" + hours[2];\r\n return result;\r\n }\r\n\r\n //////////////////////////////////////////////////\r\n public static formatUtcposToString(utcpos: Date) {\r\n var now = new Date();\r\n var dtime = now.getTime() - utcpos.getTime();\r\n if (dtime >= 0) {\r\n var secs = Math.ceil(dtime / 1000);\r\n var mins = Math.floor(secs / 60);\r\n var rem_sec = secs - mins * 60;\r\n var hours = Math.floor(mins / 60);\r\n mins = mins - hours * 60;\r\n var days = Math.floor(hours / 24);\r\n hours = hours - days * 24;\r\n var options1 = {\r\n year: \"numeric\",\r\n month: \"2-digit\",\r\n day: \"2-digit\",\r\n timeZone: 'Asia/Ho_Chi_Minh'\r\n };\r\n\r\n var options2 = {\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n second: \"2-digit\",\r\n hourCycle: 'h24',\r\n hour12: false,\r\n timeZone: 'Asia/Ho_Chi_Minh'\r\n };\r\n\r\n var ar1 = utcpos.toLocaleString('vi', options2);\r\n var ar2 = utcpos.toLocaleString('vi', options1);\r\n\r\n //var ar = utcpos.toLocaleString();\r\n //var str = ar.split(','); // Tách chuỗi thành riêng giờ và ngày tháng năm\r\n var result = this.converto24hours(ar1) + \", \" + ar2; // Xử lý giờ bằng hàm converto24hours và nối lại với ngày tháng năm\r\n\r\n return result + \"|(Đã qua: \" + (days > 0 ? (days + ' ngày ') : '') + (hours > 0 ? (hours + ' giờ ') : '') + (mins > 0 ? (mins + ' phút ') : '') + (rem_sec + ' giây)');\r\n }\r\n else\r\n return '0 secs';\r\n };\r\n\r\n public static formatTrackPoint(title: string, ti: any) {\r\n var utcpos = new Date();\r\n if (ti.d_utcpos instanceof Date)\r\n utcpos = ti.d_utcpos;\r\n else\r\n utcpos.setTime(ti.utcpos * 1000);\r\n var html = \"\" + title + \"
- \" + this.lonToDMS(ti.lon) + ', ' + this.latToDMS(ti.lat) + '
';\r\n //var html1 = html.replace(\"N\",\"N
\");\r\n html += \"- Hướng: \" + (ti.cog === undefined ? ti.course : ti.cog) + '˚' + '
- Tốc độ: ' + (ti.sog == undefined ? ti.speed : ti.sog) + ' knots
- Thời gian: ' + CommonLib.formatDateTime(utcpos);\r\n if (ti.distance) {\r\n html += '
- Quãng đường di chuyển:
' + (ti.distance < 1000 ? (ti.distance + ' m') : (CommonLib.round(ti.distance / 1000, 2) + ' km')) + (ti.distance >= 1852 ? ('(' + CommonLib.round(ti.distance / 1852.0, 2) + ' lý)') : '');\r\n }\r\n return \"
\" + html + \"
\";\r\n };\r\n\r\n\r\n public static formatDataItemPoint(title: string, ti: any) {\r\n var utcpos = new Date();\r\n if (ti.d_utcpos instanceof Date)\r\n utcpos = ti.d_utcpos;\r\n else\r\n utcpos.setTime(ti.utcpos * 1000);\r\n var html = \"[\" + ti.stt + \"] \" + title + \"
- \" + this.lonToDMS(ti.lon) + ', ' + this.latToDMS(ti.lat) + '
';\r\n //var html1 = html.replace(\"N\",\"N
\");\r\n html += \"- Hướng: \" + (ti.cog === undefined ? ti.course : ti.cog) + '˚' + '
- Tốc độ: ' + (ti.sog == undefined ? ti.speed : ti.sog) + ' knots
- Thời gian: ' + CommonLib.formatDateTime(utcpos);\r\n if (ti.distance) {\r\n html += '
- Quãng đường di chuyển:
' + (ti.distance < 1000 ? (ti.distance + ' m') : (CommonLib.round(ti.distance / 1000, 2) + ' km')) + (ti.distance >= 1852 ? ('(' + CommonLib.round(ti.distance / 1852.0, 2) + ' lý)') : '');\r\n }\r\n return \"
\" + html + \"
\";\r\n };\r\n\r\n public static formatDateTime(date) {\r\n var secs = date.getSeconds();\r\n var hh = date.getHours();\r\n var min = date.getMinutes();\r\n var day = date.getDate();\r\n var month = date.getMonth() + 1;\r\n var year = date.getFullYear();\r\n return (hh < 10 ? ('0' + hh) : hh) + ':' + (min < 10 ? ('0' + min) : min) + ':' + (secs < 10 ? ('0' + secs) : secs) + ' ' + (day < 10 ? ('0' + day) : day) + '/' + (month < 10 ? ('0' + month) : month) + '/' + year;\r\n }\r\n\r\n public static GetFileType(filename: string) {\r\n var re = /(?:\\.([^.]+))?$/;\r\n return re.exec(filename)[1];\r\n\r\n }\r\n\r\n\r\n //public static convertDateTimeToString(date) {\r\n // var secs = date.getSeconds();\r\n // var hh = date.getHours();\r\n // var min = date.getMinutes();\r\n // var day = date.getDate();\r\n // var month = date.getMonth() + 1;\r\n // var year = date.getFullYear();\r\n // return (day < 10 ? ('0' + day) : day) + '/' + (month < 10 ? ('0' + month) : month) + '/' + year;\r\n //}\r\n\r\n //public static isNumeric(str) {\r\n // if (typeof str != \"string\") return false // we only process strings! \r\n // return !isNaN(str) && !isNaN(parseFloat(str))\r\n //}\r\n\r\n public static round(number, n) {\r\n var t = Math.pow(10, n);\r\n return Math.round(number * t) / t;\r\n }\r\n\r\n public static toDMS(value) {\r\n value = Math.abs(Math.round(value * 1000000));\r\n var d = Math.floor(value / 1000000);\r\n var m = Math.floor(((value / 1000000) - Math.floor(value / 1000000)) * 60);\r\n var s = Math.round((Math.floor(((((value / 1000000) - Math.floor(value / 1000000)) * 60) - Math.floor(((value / 1000000) - Math.floor(value / 1000000)) * 60)) * 100000) * 60 / 100000));\r\n if (s >= 60) {\r\n m += 1;\r\n s -= 60;\r\n if (m >= 60) {\r\n d += 1;\r\n m -= 60;\r\n }\r\n }\r\n return (\r\n d + '°' +\r\n (m < 10 ? '0' + m : m) + '\\'' +\r\n (s < 10 ? '0' + s : s) + ''\r\n );\r\n }\r\n\r\n public static latToDMS(latAbs) {\r\n var ch = latAbs >= 0 ? 'N' : 'S';\r\n return this.toDMS(latAbs) + ch;\r\n }\r\n public static lonToDMS(lonAbs) {\r\n var ch = lonAbs >= 0 ? 'E' : 'W';\r\n return this.toDMS(lonAbs) + ch;\r\n }\r\n public static newGuid() {\r\n var nbr, randStr = \"\";\r\n do {\r\n randStr += (nbr = Math.random()).toString(16).substr(2);\r\n } while (randStr.length < 30);\r\n return [\r\n randStr.substr(0, 8), \"-\",\r\n randStr.substr(8, 4), \"-4\",\r\n randStr.substr(12, 3), \"-\",\r\n ((nbr * 4 | 0) + 8).toString(16), // [89ab]\r\n randStr.substr(15, 3), \"-\",\r\n randStr.substr(18, 12)\r\n ].join(\"\");\r\n }\r\n\r\n /* hiển thị màn hình load */\r\n public static loadingShow() {\r\n $('.top-bar').removeClass('fixed-top');\r\n $('#sidebarCollapse').addClass('d-none');\r\n $('.tab-panel').addClass(' mt-0');\r\n $('.loading').css('display', 'block');\r\n }\r\n public static loadingHide() {\r\n $('.top-bar').addClass('fixed-top');\r\n $('.tab-panel').removeClass(' mt-0');\r\n $('#sidebarCollapse').removeClass('d-none');\r\n $('.loading').css('display', 'none');\r\n }\r\n\r\n public static ErrorLog(err) {\r\n if (err instanceof AjaxResponseModel) {\r\n console.error(err.ErrorMsg);\r\n } else {\r\n console.error(err);\r\n }\r\n }\r\n\r\n public static createDialog(targetElement: string, title: string, classDialog: string, widthDialog: number) {\r\n $(targetElement).dialog({\r\n title: title,\r\n dialogClass: classDialog,\r\n width: widthDialog,\r\n resizable: false,\r\n open: function () {\r\n $(\".\" + classDialog).css('left', ($(window).width() - widthDialog) / 2 + 'px');\r\n $(\".\" + classDialog).css('top', '80px');\r\n }\r\n });\r\n\r\n }\r\n\r\n public static createDialogWithPosition(targetElement: string, title: string, classDialog: string, widthDialog: number, pos_top: number) {\r\n $(targetElement).dialog({\r\n title: title,\r\n dialogClass: classDialog,\r\n width: widthDialog,\r\n resizable: false,\r\n open: function () {\r\n $(\".\" + classDialog).css('left', ($(window).width() - widthDialog) + 'px');\r\n $(\".\" + classDialog).css('top', pos_top + 'px');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Kiểm tra dialog đang hiển thị hay ẩn\r\n * @param element: #id hoặc .class\r\n */\r\n public static isDialogVisible(element: string) {\r\n return $(element).hasClass('ui-dialog-content') && $(element).is(\":visible\");\r\n }\r\n\r\n public static isEmailFormat(email) {\r\n var mailformat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\r\n if (mailformat.test(email)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\nimport { Router, NavigationStart } from '@angular/router';\nimport { Observable, Subject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { Alert, AlertType } from '../_models/alert.model';\n\n@Injectable({ providedIn: 'root' })\nexport class AlertService {\n private subject = new Subject();\n private keepAfterRouteChange = false;\n\n constructor(private router: Router) {\n // clear alert messages on route change unless 'keepAfterRouteChange' flag is true\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n if (this.keepAfterRouteChange) {\n // only keep for a single route change\n this.keepAfterRouteChange = false;\n } else {\n // clear alert messages\n this.clear();\n }\n }\n });\n }\n\n // enable subscribing to alerts observable\n onAlert(alertId?: string): Observable {\n return this.subject.asObservable().pipe(filter(x => x && x.alertId === alertId));\n }\n\n // convenience methods\n success(message: string, alertId?: string) {\n this.alert(new Alert({ message, type: AlertType.Success, alertId }));\n }\n\n error(message: string, alertId?: string) {\n this.alert(new Alert({ message, type: AlertType.Error, alertId }));\n }\n\n info(message: string, alertId?: string) {\n this.alert(new Alert({ message, type: AlertType.Info, alertId }));\n }\n\n warn(message: string, alertId?: string) {\n this.alert(new Alert({ message, type: AlertType.Warning, alertId }));\n }\n\n // main alert method \n alert(alert: Alert) {\n this.keepAfterRouteChange = alert.keepAfterRouteChange;\n this.subject.next(alert);\n }\n\n // clear alerts\n clear(alertId?: string) {\n this.subject.next(new Alert({ alertId }));\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { CommonAPIService, RESTAPI_URL } from './commonAPI.service';\r\nimport { LuongHHModel } from '../_models/luonghh.model';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { CommonLib } from '../_providers/commonLib';\r\nimport { UserConfigs } from '../_models/userConfigs.model';\r\nimport { DsTauModel } from '../_models/dstau.model';\r\nimport { AjaxResponseModel } from '../_models/ajaxResponse.model';\r\nimport { DrawItemnModel } from '../_models/draw/drawItem.model';\r\nimport { AppConfig } from './config.service';\r\nimport { ShipInDSModel } from '../_models/shipinds.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CagetoryService {\r\n\r\n\r\n constructor(public restAPI: CommonAPIService, private config: AppConfig) {\r\n this.restAPI.setUrl(this.config.getConfig('BASE_URL'));\r\n }\r\n\r\n public getAllLuongHH(): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.GETALLLUONGHH, {}).pipe(\r\n map(res => CommonLib.parseArray(LuongHHModel, res))\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n //////////////////////////// DANH SÁCH TÀU\r\n public getAllDsTau(): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.GETALLDSTAU, {}).pipe(\r\n map(res => CommonLib.parseArray(DsTauModel, res))\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public AddShipToDsTau(dsid: number, matau: number, mmsi: string, ngaythicong: number, tentau: string): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.ADDSHIPTODSTAU, { dsid: dsid, matau: matau, mmsi: mmsi, ngaytc: ngaythicong, tentau: tentau });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public DelTau_DsTau(dsid: number, matau: number, mmsi: string): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.DELTAUINDSTAU, { dsid: dsid, matau: matau, mmsi: mmsi });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public EditDsTau(dsid: number, tends: string): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.EDITDSTAU, { id: dsid, tends: tends });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public AddDsTau(tends: string): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.ADDDSTAU, { tends: tends });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public GetDsTau(dsid: number): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.GETDSTAU, { dsid: dsid }).pipe(\r\n map(res => CommonLib.parseObject(DsTauModel, res)),\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public DelDsTau(dsid: number): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.DELDSTAU, { dsid: dsid });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public GetTauTrongDsTau(dsid: number, matau: number, mmsi: string): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.GETTAUTRONGDSTAU, { dsid: dsid, matau: matau, mmsi: mmsi }).pipe(\r\n map(res => CommonLib.parseObject(ShipInDSModel, res)),\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public UpdateTauTrongDsTau(id: number, name: string, ngaythicong: number): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.UPDATETAUTRONGDSTAU, { id: id, name: name, ngaytc: ngaythicong });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public SaveVungThiCong(vungthicong: DrawItemnModel): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.postMethod(RESTAPI_URL.SAVEVUNGTHICONG, { id: vungthicong.id, name: vungthicong.name, mota: vungthicong.mota, points_dms: vungthicong.points_dms, toado: vungthicong.toado, fillcolor: vungthicong.fillColor, color: vungthicong.color, opacity: vungthicong.opacity, dsid: vungthicong.dsid, tends: vungthicong.tends }).pipe(\r\n map(res => CommonLib.parseObject(DrawItemnModel, res)),\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public GetPolygonVungThiCong(dsid: number): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.GETVUNGTHICONG, { dsid: dsid }).pipe(\r\n map(res => CommonLib.parseObject(DrawItemnModel, res)),\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public DeleteVungThiCong(id: number): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.DELETEVUNGTHICONG, { dsid: id });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n ////////////////////// DRAWING\r\n public SavePolygon(geom: DrawItemnModel): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.SAVEPOLYGON, { id: geom.id, name: geom.name, mota: geom.mota, points_dms: geom.points_dms, toado: geom.toado, fillcolor: geom.fillColor, color: geom.color, opacity: geom.opacity }).pipe(\r\n map(res => CommonLib.parseObject(DrawItemnModel, res)),\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public SaveCircle(geom: DrawItemnModel): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.SAVECIRCLE, { id: geom.id, name: geom.name, mota: geom.mota, latDMS: geom.latDMS, lonDMS: geom.lonDMS, radius: geom.radius, toado: geom.toado, fillcolor: geom.fillColor, color: geom.color, opacity: geom.opacity }).pipe(\r\n map(res => CommonLib.parseObject(DrawItemnModel, res)),\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public SaveLineString(geom: DrawItemnModel): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.SAVELINESTRING, { id: geom.id, name: geom.name, mota: geom.mota, points_dms: geom.points_dms, toado: geom.toado, fillcolor: geom.fillColor, color: geom.color, opacity: geom.opacity }).pipe(\r\n map(res => CommonLib.parseObject(DrawItemnModel, res)),\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public GetDrawItems(): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.GETDRAWITEMS, {}).pipe(\r\n map(res => CommonLib.parseArray(DrawItemnModel, res)),\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public DeleteDrawItem(guid): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.DELETEDRAWITEM, { id: guid });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpParams, HttpErrorResponse, HttpHeaders, HttpEventType } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { retry, catchError, map, share } from 'rxjs/operators';\r\nimport { AjaxResponseModel } from '../_models/ajaxResponse.model';\r\nimport { CommonLib, APPS } from '../_providers/commonLib';\r\n\r\n\r\n/**\r\n * Lớp base service thực hiện gửi các yêu cầu lên server\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonAPIService {\r\n constructor(public http: HttpClient) { }\r\n\r\n //dinh nghia rest api URL\r\n url: string = '';\r\n\r\n setUrl(url: string): void {\r\n this.url = url;\r\n }\r\n\r\n /**********************************************************************\r\n * *\r\n * POST METHOD *\r\n * *\r\n * ********************************************************************/\r\n /**\r\n * Phương thức httpClient.post\r\n * @param endPoint\r\n * @param input: [json string object]\r\n */\r\n public postMethod(endPoint, input): Observable {\r\n return this.baseMethod_Post(endPoint, input) // get về đối tượng ajaxResponse\r\n .pipe(\r\n map(res => {\r\n if (res.ErrorCode !== 0) { // nếu có lỗi thì parse về AjaxResponse\r\n throw CommonLib.parseObject(AjaxResponseModel, res);\r\n } else { // ko lỗi thì trả về object\r\n APPS.ROOTTIME = res.RootTime;\r\n return res.Response;\r\n }\r\n }),\r\n catchError(error => {\r\n if (error instanceof AjaxResponseModel) {\r\n throw error;\r\n } else if (!(error instanceof HttpErrorResponse)) {\r\n const output = new AjaxResponseModel();\r\n output.ErrorCode = -1;\r\n output.ErrorMsg = `Lỗi không xác định. Vui lòng liên hệ chăm sóc khách hàng để được hỗ trợ`;\r\n output.Response = null;\r\n throw output;\r\n } else {\r\n throw error;\r\n }\r\n })\r\n );\r\n }\r\n /**\r\n * Phương thức httpClient.post có HttpHeader\r\n * @param endPoint\r\n * @param input : [json string object]\r\n * @param headers\r\n */\r\n public postMethodWithHeader(endPoint, input, headers): Observable {\r\n return this.baseMethod_PostWithHeader(endPoint, input, headers) // get về đối tượng ajaxResponse\r\n .pipe(\r\n map(res => {\r\n if (res.ErrorCode !== 0) { // nếu có lỗi thì parse về AjaxResponse\r\n throw CommonLib.parseObject(AjaxResponseModel, res);\r\n } else { // ko lỗi thì trả về object\r\n APPS.ROOTTIME = res.RootTime;\r\n return res.Response;\r\n }\r\n }),\r\n catchError(error => {\r\n if (error instanceof AjaxResponseModel) {\r\n throw error;\r\n } else if (!(error instanceof HttpErrorResponse)) {\r\n const output = new AjaxResponseModel();\r\n output.ErrorCode = -1;\r\n output.ErrorMsg = `Lỗi không xác định. Vui lòng liên hệ chăm sóc khách hàng để được hỗ trợ`;\r\n output.Response = null;\r\n throw output;\r\n } else {\r\n throw error;\r\n }\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Gửi yêu cầu theo chuỗi URL theo phương thức POST\r\n *\r\n * @param endpoint\r\n * @param params\r\n */\r\n public baseMethod_Post(endpoint: string, params?: string): Observable {\r\n\r\n return this.http.post(this.url + endpoint, params).pipe(\r\n share(),\r\n retry(1),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n /**\r\n * XEM Lại ĐOẠN PARAMS CÓ HEADER??????!!!!!!!!\r\n * @param endpoint\r\n * @param params\r\n * @param headers\r\n */\r\n public baseMethod_PostWithHeader(endpoint: string, params?: string, headers?: HttpHeaders): Observable {\r\n //set request header\r\n if (!headers) {\r\n headers = new HttpHeaders();\r\n }\r\n\r\n return this.http.post(this.url + endpoint, { params: params, headers: headers, observe: 'body', responseType: 'json' }).pipe(\r\n retry(1),\r\n catchError(this.handleError)\r\n );;\r\n }\r\n\r\n\r\n /**********************************************************************\r\n * *\r\n * GET METHOD *\r\n * *\r\n * ********************************************************************/\r\n /**\r\n * Phương thức httpClient.get \r\n * @param endPoint\r\n * @param input\r\n */\r\n public getMethod(endPoint, input): Observable {\r\n return this.baseMethod_Get(endPoint, input) // get về đối tượng ajaxResponse\r\n .pipe(\r\n map(res => {\r\n if (res.ErrorCode !== 0) { // nếu có lỗi thì parse về AjaxResponse\r\n throw CommonLib.parseObject(AjaxResponseModel, res);\r\n } else { // ko lỗi thì trả về object\r\n APPS.ROOTTIME = res.RootTime;\r\n return res.Response;\r\n }\r\n }),\r\n catchError(error => {\r\n if (error instanceof AjaxResponseModel) {\r\n throw error;\r\n } else if (!(error instanceof HttpErrorResponse)) {\r\n const output = new AjaxResponseModel();\r\n output.ErrorCode = -1;\r\n output.ErrorMsg = `Lỗi không xác định. Vui lòng liên hệ chăm sóc khách hàng để được hỗ trợ`;\r\n output.Response = null;\r\n throw output;\r\n } else {\r\n throw error;\r\n }\r\n })\r\n );\r\n }\r\n /**\r\n * Phương thức httpClient.get có HttpHeader\r\n * @param endPoint\r\n * @param input\r\n */\r\n public getMethodWithHeader(endPoint, input, headers): Observable {\r\n return this.baseMethod_GetWithHeader(endPoint, input, headers) // get về đối tượng ajaxResponse\r\n .pipe(\r\n map(res => {\r\n if (res.ErrorCode !== 0) { // nếu có lỗi thì parse về AjaxResponse\r\n throw CommonLib.parseObject(AjaxResponseModel, res);\r\n } else { // ko lỗi thì trả về object\r\n APPS.ROOTTIME = res.RootTime;\r\n return res.Response;\r\n }\r\n }),\r\n catchError(error => {\r\n if (error instanceof AjaxResponseModel) {\r\n throw error;\r\n } else if (!(error instanceof HttpErrorResponse)) {\r\n const output = new AjaxResponseModel();\r\n output.ErrorCode = -1;\r\n output.ErrorMsg = `Lỗi không xác định. Vui lòng liên hệ chăm sóc khách hàng để được hỗ trợ`;\r\n output.Response = null;\r\n throw output;\r\n } else {\r\n throw error;\r\n }\r\n })\r\n );\r\n }\r\n /**\r\n * Gửi yêu cầu theo chuỗi URL theo phương thức GET\r\n *\r\n * @param endpoint\r\n * @param params\r\n */\r\n public baseMethod_Get(endpoint: string, params?: any): Observable {\r\n //set tham so\r\n let prs = new HttpParams();\r\n if (params) {\r\n for (let k in params) {\r\n prs = prs.set(k, params[k]);\r\n }\r\n }\r\n\r\n return this.http.get(this.url + endpoint, { params: prs }).pipe(\r\n share(),\r\n retry(1),\r\n catchError(this.handleError)\r\n );;\r\n }\r\n /**\r\n * Gửi yêu cầu theo chuỗi URL theo phương thức GET\r\n *\r\n * @param endpoint\r\n * @param params\r\n * @param headers\r\n */\r\n public baseMethod_GetWithHeader(endpoint: string, params?: any, headers?: HttpHeaders): Observable {\r\n //set request header\r\n if (!headers) {\r\n headers = new HttpHeaders();\r\n }\r\n //set tham so\r\n let prs = new HttpParams();\r\n if (params) {\r\n for (let k in params) {\r\n prs = prs.set(k, params[k]);\r\n }\r\n }\r\n\r\n return this.http.get(this.url + endpoint, { params: prs, headers: headers, observe: 'body', responseType: 'json' }).pipe(\r\n retry(1),\r\n catchError(this.handleError)\r\n );;\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n console.error('CommonAPIService::ErrorHandler: ', err);\r\n return Observable.throw(err);\r\n }\r\n\r\n}\r\n\r\n\r\nexport let RESTAPI_URL = {\r\n //BASE_URL: 'http://localhost:44387/',\r\n //BASE_URL: 'https://qlnv2.vishipel.vn/',\r\n BASE_URL: 'http://demo.vishipel.net:8087/',\r\n ENV_JSONFILE: './assets/env/env.json',\r\n TOKEN_ID: null,\r\n HEADERS: {\r\n AUTHORIZATION: 'Authorization',\r\n COOKIE: 'Cookie'\r\n },\r\n LOGIN_ENDPOINT: 'user/login',\r\n LOGOUT_ENDPOINT: 'user/logout',\r\n CHANGEPASS_ENDPOINT: 'user/changepass',\r\n GET_PROFILE: 'user/profile',\r\n GET_MAKICHHOAT: 'user/makichhoat',\r\n SETPASS: 'user/setpass',\r\n\r\n SHIP_QUERY_AREACOUNT: 'ship/queryarea_count',\r\n SHIP_INFO: 'ship/getinfo',\r\n SHIP_TRACK_ONLINE: 'ship/trackonline',\r\n SHIP_TRACKS_DETAIL: 'ship/trackdetailonline',\r\n GETALLLUONGHH: 'category/getallluonghh',\r\n ALL_SHIP: 'category/getships',\r\n SHIP_QUERY_AREACOUNT_HISTORY: 'ship/queryarea_count_history',\r\n SEARCH: 'ship/search',\r\n THONGKE: 'ship/thongke1tau',\r\n THONGKECHITIET: 'ship/thongkechitiet1tau',\r\n THONGKE_SHIP_TRACKS_DETAIL: 'ship/historyroute',\r\n\r\n GETALLDSTAU: 'danhsachtau/getalldstau',\r\n ADDSHIPTODSTAU: 'danhsachtau/addshiptodstau',\r\n EDITDSTAU: 'danhsachtau/editdstau',\r\n ADDDSTAU: 'danhsachtau/adddstau',\r\n GETDSTAU: 'danhsachtau/getdstau',\r\n DELDSTAU: 'danhsachtau/deldstau',\r\n DELTAUINDSTAU: 'danhsachtau/delshipdstau',\r\n GETTAUTRONGDSTAU: 'danhsachtau/gettautrongdstau',\r\n UPDATETAUTRONGDSTAU: 'danhsachtau/updatetautrongds',\r\n SAVEVUNGTHICONG: 'danhsachtau/savevungthicong',\r\n GETVUNGTHICONG: 'danhsachtau/getvungthicong',\r\n DELETEVUNGTHICONG: 'danhsachtau/deletedvungthicong',\r\n\r\n //draw\r\n GETDRAWITEMS: 'draw/getdrawitems',\r\n DELETEDRAWITEM: 'draw/deletedrawitem',\r\n SAVEPOLYGON: 'draw/savepolygon',\r\n SAVECIRCLE: 'draw/savecircle',\r\n SAVELINESTRING: 'draw/savelinestring',\r\n\r\n //KML\r\n UPLOADKML: 'user/uploadkml',\r\n GETKMLS: 'user/getkmls',\r\n GETKMLSVISIBLE: 'user/getkmlsvisible',\r\n TOOGLEKMLS: 'user/tooglekml',\r\n DELETEKMLS: 'user/deletekml',\r\n\r\n //EXPORT DATA\r\n EXPORTBYRECTANGLE: 'export/excelbyrectangle',\r\n GETBYRECTANGLE: 'export/getbyrectangle',\r\n IMPORTLRITDATA: 'import/lritexceldata',\r\n GETLASTPOSITION_EXCEL: 'export/excellastpositionofships',\r\n GETJSONBYRECTANGLE: 'export/jsondata',\r\n GETLASTPOSITION_JSON: 'export/lastpositionofships',\r\n};\r\n\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n//import { Observable } from 'rxjs/Rx';\r\nimport { map } from \"rxjs/operators\";\r\nimport { Observable } from \"rxjs\";\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class AppConfig {\r\n\r\n private config: Object = null;\r\n private env: Object = null;\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n /**\r\n * Dùng để lấy dữ liệu ở lưu trong file môi trường (config file)\r\n */\r\n public getConfig(key: any) {\r\n return this.config[key];\r\n }\r\n\r\n /**\r\n * Dùng để lấy dữ liệu môi trường lần đầu truy cập (env file)\r\n */\r\n public getEnv(key: any) {\r\n return this.env[key];\r\n }\r\n\r\n /**\r\n * Phương thức:\r\n * a) Tải file \"env.json\" để lấy môi trường làm việc (vd.: 'production', 'development')\r\n * b) Tải file \"env.[env].json\" để lấy các biến cho từng môi trường làm việc\r\n */\r\n public load() {\r\n return new Promise((resolve, reject) => {\r\n this.http.get('./assets/env/env.json').pipe(\r\n map(res => res),\r\n catchError((error: any): any => {\r\n console.error('File config \"env.json\" không thể đọc');\r\n resolve(true);\r\n return Observable.throw(error.json().error || 'Server error');\r\n }))\r\n .subscribe((envResponse) => {\r\n this.env = envResponse;\r\n let request: any = null;\r\n\r\n var temp = envResponse['env'];\r\n if (temp != \"\") {\r\n request = this.http.get('./assets/env/env.' + temp + '.json');\r\n } else {\r\n console.error('Tệp môi trường không được đặt hoặc không hợp lệ');\r\n resolve(true);\r\n }\r\n \r\n if (request) {\r\n request.pipe(\r\n map(res => res),\r\n catchError((error: any) => {\r\n console.error('Lỗi khi đọc configuration file ' + temp + ' ');\r\n resolve(error);\r\n return Observable.throw(error.json().error || 'Server error');\r\n }))\r\n .subscribe((responseData: any) => {\r\n this.config = responseData;\r\n resolve(true);\r\n });\r\n } else {\r\n console.error('Tệp cấu hình Env \"env.json\" không hợp lệ');\r\n resolve(true);\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","import { ConfirmComponent } from './../confirm/confirm.component';\nimport { Injectable } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfirmService {\n\n constructor(private modalService: NgbModal) { }\n public confirm(\n title: string,\n message: string,\n btnOkText: string = 'OK',\n btnCancelText: string = 'Cancel',\n dialogSize: 'sm'|'lg' = 'sm'): Promise {\n const modalRef = this.modalService.open(ConfirmComponent, { size: dialogSize });\n modalRef.componentInstance.title = title;\n modalRef.componentInstance.message = message;\n modalRef.componentInstance.btnOkText = btnOkText;\n modalRef.componentInstance.btnCancelText = btnCancelText;\n\n return modalRef.result;\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core'; \nimport { Subscription } from 'rxjs/internal/Subscription'; \n \n@Injectable({ \n providedIn: 'root' \n}) \nexport class EventEmitterService { \n\n /**\n *\n * **/\n invokeFirstComponentFunction = new EventEmitter(); \n subsVar: Subscription; \n \n constructor() { }\n \n /**\n *\n * **/\n gstt_GetShipExAndShowPopup(data) { \n this.invokeFirstComponentFunction.emit(data);\n } \n} \n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpInterceptor, HttpHandler, HttpRequest, HttpResponse, HttpEvent } from '@angular/common/http';\r\nimport { CommonAPIService, RESTAPI_URL } from './commonAPI.service';\r\nimport { UserConfigs } from '../_models/userConfigs.model';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { AjaxResponseModel } from '../_models/ajaxResponse.model';\r\nimport { CommonLib } from '../_providers/commonLib';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n/**\r\n * Một lớp trung gian để xử lý yêu cầu trước khi nhận và nhận response khi dữ liệu khi trả về\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RequestApiInterceptor implements HttpInterceptor {\r\n baseUrl: string = '';\r\n constructor(public api: CommonAPIService, private router: Router) {\r\n }\r\n\r\n /**\r\n * Tạo một interceptor trước khi request được gửi và nhận response\r\n *\r\n * @param req\r\n * @param next\r\n */\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n var baseUrls: string[] = [\r\n 'http://demo.vishipel.net:8087/',\r\n 'http://demo.vishipel.net:8094/',\r\n 'https://qlnv.vishipel.vn/',\r\n 'https://qlnv2.vishipel.vn/',\r\n 'http://thunghiem.vishipel.vn:8182/',\r\n 'http://localhost:44387/'\r\n ];\r\n var isStartWith = false;\r\n for (var i = 0; i < baseUrls.length; i++) {\r\n if (req.url.startsWith(baseUrls[i])) {\r\n isStartWith = true;\r\n this.baseUrl = baseUrls[i];\r\n }\r\n }\r\n\r\n //SET TOKEN FOR HEADER\r\n if (isStartWith) {\r\n if (req.url !== `${this.baseUrl}${RESTAPI_URL.LOGIN_ENDPOINT}`) {\r\n var user = UserConfigs.getCurrentUser();\r\n if (user && user.TokenID != \"\") {\r\n req = req.clone({\r\n headers: req.headers.set(RESTAPI_URL.HEADERS.AUTHORIZATION, `Basic ${user.TokenID}`)\r\n })\r\n }\r\n }\r\n\r\n //if (req.url == `${this.baseUrl}${RESTAPI_URL.EXPORTDATA}`) {\r\n // req = req.clone({\r\n // headers: req.headers.set(\"responseType\", \"text\")\r\n // })\r\n // console.log(req);\r\n //}\r\n }\r\n\r\n return next.handle(req).pipe(\r\n map((event: HttpEvent) => {\r\n if (event instanceof HttpResponse) {\r\n var ajaxResponse = CommonLib.parseObject(AjaxResponseModel, event.body);\r\n if (ajaxResponse.ErrorCode == 1000) {\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n this.router.navigate([\"login\"]);\r\n console.log('ErrorCode: ', ajaxResponse.ErrorCode);\r\n }\r\n }\r\n return event;\r\n }));;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonAPIService, RESTAPI_URL } from './commonAPI.service';\r\nimport { CommonLib, APPS } from '../_providers/commonLib';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ShipModel } from '../_models/ship.model';\r\nimport { TrackItemModel } from '../_models/trackItem.model';\r\nimport { UserConfigs } from '../_models/userConfigs.model';\r\nimport { AppConfig } from './config.service';\r\nimport { ThongKeModel } from '../_models/thongke.model';\r\nimport { InputExportDataModel } from '../_models/inputExportData.model';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShipService {\r\n constructor(public restAPI: CommonAPIService, private config: AppConfig) {\r\n this.restAPI.setUrl(this.config.getConfig('BASE_URL'));\r\n }\r\n\r\n public getAll(): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(\r\n RESTAPI_URL.ALL_SHIP,\r\n {}\r\n ).pipe(\r\n map(res => CommonLib.parseArray(ShipModel, res))\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public getShips(lat1: number, lat2: number, lon1: number, lon2: number, utcpos: number, day: number, typeData: string, dsid: number, listIdTracking: string): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(\r\n RESTAPI_URL.SHIP_QUERY_AREACOUNT,\r\n { lat1: lat1, lat2: lat2, lon1: lon1, lon2: lon2, utcpos: utcpos, day: day, typeData: typeData, dsid: dsid, listIdTracking: listIdTracking }\r\n );\r\n // .pipe(\r\n // //map(res => CommonLib.parseArray(ShipModel, res['ships']), APPS.TOTALSHIPS = res['total'])\r\n // map(res => CommonLib.parseArray(ShipModel, res['ships']))\r\n //);\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public getShipEx(tauId: number, mmsi: string): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.SHIP_INFO, { id: tauId, mmsi: mmsi }).pipe(\r\n map(res => CommonLib.parseObject(ShipModel, res))\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public getTrackOnline(data: ShipModel): Observable> {\r\n if (data) {\r\n var end = Math.floor((data.d_utcpos.getTime() - 1) / 1000);\r\n var begin = end - (data.track_hours * 60 * 60);\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod>(RESTAPI_URL.SHIP_TRACK_ONLINE, { id: data.id, mmsi: data.mmsi, begin: begin, end: end, danhsachid: data.danhsachid }).pipe(\r\n map(res => CommonLib.parseArray(TrackItemModel, res))\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n } else\r\n throw ('Tàu không còn hoạt động!');\r\n }\r\n\r\n public getTrackDetailOnline(data: ShipModel): Observable> {\r\n if (data) {\r\n var end = Math.floor((data.d_utcpos.getTime() - 1) / 1000);\r\n var begin = end - (data.track_hours * 60 * 60);\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod>(RESTAPI_URL.SHIP_TRACKS_DETAIL, { id: data.id, mmsi: data.mmsi, danhsachid: data.danhsachid, begin: begin, end: end }).pipe(\r\n map(res => CommonLib.parseArray(TrackItemModel, res))\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n } else\r\n throw ('Tàu không còn hoạt động!');\r\n }\r\n\r\n public getTrackDetailInThongKe(data: ShipModel, begin_local: number, end_local: number): Observable>> {\r\n if (data) {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod>>(RESTAPI_URL.THONGKE_SHIP_TRACKS_DETAIL, { mmsi: data.mmsi, name: data.name, calsign: data.calsign, imo: data.imo, danhsachid: data.danhsachid, begin: begin_local, end: end_local, async: 0 });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n } else\r\n throw ('Tàu không còn hoạt động!');\r\n }\r\n\r\n public getShipsHistory(time: number): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(\r\n RESTAPI_URL.SHIP_QUERY_AREACOUNT_HISTORY,\r\n { time: time }\r\n ).pipe(\r\n map(res => CommonLib.parseArray(ShipModel, res))\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public search(value: string): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(RESTAPI_URL.SEARCH, { value: value }).pipe(\r\n map(res => CommonLib.parseArray(ShipModel, res))\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public getThongKe1Tau(mmsi: string, name: string, calsign: string, imo: string): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(\r\n RESTAPI_URL.THONGKE,\r\n { mmsi: mmsi, name: name, calsign: calsign, imo: imo }\r\n ).pipe(\r\n map(res => CommonLib.parseArray(ThongKeModel, res))\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n public getThongKeChiTiet1Tau(mmsi: string, name: string, calsign: string, imo: string, begin: number, end: number): Observable {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod(\r\n RESTAPI_URL.THONGKECHITIET,\r\n { mmsi: mmsi, name: name, calsign: calsign, imo: imo, begin: begin, end: end, async: 0 }\r\n ).pipe(\r\n map(res => CommonLib.parseArray(ThongKeModel, res))\r\n );\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n //// EXPORT EXCEL FILE \r\n public openLink_ExportData(i: InputExportDataModel) {\r\n //return this.restAPI.baseMethod_GetFull(RESTAPI_URL.EXPORTDATA, { mmsi: i.mmsi, nbatdau: i.nbatdau, nketthuc: i.nketthuc, latmin: i.latmin, latmax: i.latmax, lonmin: i.lonmin, lonmax: i.lonmax, format: i.format });\r\n var url = this.config.getConfig('BASE_URL') + RESTAPI_URL.EXPORTBYRECTANGLE + \"?\";\r\n url += \"mmsi=\" + i.mmsi\r\n + \"&name=\" + i.name\r\n + \"&nbatdau=\" + i.nbatdau + \"&nketthuc=\" + i.nketthuc\r\n + \"&latmin=\" + i.latmin + \"&latmax=\" + i.latmax\r\n + \"&lonmin=\" + i.lonmin + \"&lonmax=\" + i.lonmax\r\n + \"&format=\" + i.format\r\n + \"&frequency=\" + i.frequency\r\n + \"&tid=\" + i.tid;\r\n //console.log(url);\r\n window.open(url);\r\n }\r\n\r\n /**\r\n * Export theo hinh chu nhat\r\n * @param i\r\n */\r\n public getDataByRectangle(i: InputExportDataModel): Observable>> {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod>>(RESTAPI_URL.GETBYRECTANGLE,\r\n {\r\n mmsi: i.mmsi, name: i.name, nbatdau: i.nbatdau, nketthuc: i.nketthuc,\r\n latmin: i.latmin, latmax: i.latmax, lonmin: i.lonmin, lonmax: i.lonmax,\r\n frequency: i.frequency\r\n });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n /**\r\n * import du lieu hanh trinh tu file excel cua HT LRIT\r\n * @param data\r\n */\r\n public importDataLRIT(data: any): Observable>> {\r\n return this.restAPI.postMethod>>(RESTAPI_URL.IMPORTLRITDATA, { kml: data });\r\n }\r\n\r\n /**\r\n * Tra ve vi tri cuoi cua cac tau trong khu vuc theo khoang thoi gian\r\n * @param i\r\n */\r\n public getLastPositionOfShips(i: InputExportDataModel): Observable> {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod>(RESTAPI_URL.GETLASTPOSITION_JSON,\r\n {\r\n nbatdau: i.nbatdau, nketthuc: i.nketthuc,\r\n latmin: i.latmin, latmax: i.latmax, lonmin: i.lonmin, lonmax: i.lonmax,\r\n bsid: i.bsid\r\n });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n /**\r\n * download file excel: vị trí cuối cùng các tàu theo khu vực và thời gian\r\n * @param i\r\n */\r\n public openLink_ExportData_LastPosition_Area_Time(i: InputExportDataModel) {\r\n\r\n //return this.restAPI.baseMethod_GetFull(RESTAPI_URL.EXPORTDATA, { mmsi: i.mmsi, nbatdau: i.nbatdau, nketthuc: i.nketthuc, latmin: i.latmin, latmax: i.latmax, lonmin: i.lonmin, lonmax: i.lonmax, format: i.format });\r\n var url = this.config.getConfig('BASE_URL') + RESTAPI_URL.GETLASTPOSITION_EXCEL + \"?\";\r\n url += \"nbatdau=\" + i.nbatdau + \"&nketthuc=\" + i.nketthuc\r\n + \"&latmin=\" + i.latmin + \"&latmax=\" + i.latmax\r\n + \"&lonmin=\" + i.lonmin + \"&lonmax=\" + i.lonmax\r\n + \"&tid=\" + i.tid\r\n + \"&format=\" + i.format\r\n + \"&bsid=\" + i.bsid;\r\n //console.log(url);\r\n window.open(url);\r\n }\r\n\r\n /**\r\n * Export theo hinh chu nhat\r\n * @param i\r\n */\r\n public getJsonByRectangle(i: InputExportDataModel): Observable>> {\r\n if (UserConfigs.getCurrentUser()) {\r\n return this.restAPI.getMethod>>(RESTAPI_URL.GETJSONBYRECTANGLE,\r\n {\r\n mmsi: i.mmsi, name: i.name, nbatdau: i.nbatdau, nketthuc: i.nketthuc,\r\n latmin: i.latmin, latmax: i.latmax, lonmin: i.lonmin, lonmax: i.lonmax,\r\n frequency: i.frequency\r\n });\r\n } else {\r\n throw ('Bạn không có quyền truy cập vào chức năng này!');\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { Observable } from 'rxjs';\r\nimport { retry, catchError, map, share } from 'rxjs/operators';\r\nimport { RESTAPI_URL } from './commonAPI.service';\r\nimport { AppConfig } from './config.service';\r\nimport { AjaxResponseModel } from '../_models/ajaxResponse.model';\r\nimport { CommonLib } from '../_providers/commonLib';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UploadService {\r\n\r\n constructor(private http: HttpClient, private config: AppConfig) {\r\n this.baseUrl = this.config.getConfig('BASE_URL');\r\n }\r\n\r\n baseUrl: string = \"\";\r\n\r\n UploadExcel(formData: FormData): Observable {\r\n let headers = new HttpHeaders();\r\n headers.append('Content-Type', 'multipart/form-data');\r\n headers.append('Accept', 'application/json');\r\n const httpOptions = { headers: headers };\r\n return this.http.post(this.baseUrl + RESTAPI_URL.IMPORTLRITDATA, formData, httpOptions)\r\n .pipe(\r\n map(res => {\r\n if (res.ErrorCode !== 0) { // nếu có lỗi thì parse về AjaxResponse\r\n throw CommonLib.parseObject(AjaxResponseModel, res);\r\n } else { // ko lỗi thì trả về object\r\n return res.Response;\r\n }\r\n }),\r\n catchError(error => {\r\n if (error instanceof AjaxResponseModel) {\r\n throw error;\r\n } else if (!(error instanceof HttpErrorResponse)) {\r\n const output = new AjaxResponseModel();\r\n output.ErrorCode = -1;\r\n output.ErrorMsg = `Lỗi không xác định. Vui lòng liên hệ chăm sóc khách hàng để được hỗ trợ`;\r\n output.Response = null;\r\n throw output;\r\n } else {\r\n throw error;\r\n }\r\n })\r\n );;\r\n }\r\n\r\n} \r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders } from \"@angular/common/http\";\r\nimport { CommonAPIService, RESTAPI_URL } from './commonAPI.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { CommonLib } from '../_providers/commonLib';\r\nimport { AppConfig } from './config.service';\r\nimport { UserConfigs } from '../_models/userConfigs.model';\r\nimport { UserKmlModel } from '../_models/userKml.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n constructor(public restAPI: CommonAPIService, private config: AppConfig) {\r\n this.restAPI.setUrl(this.config.getConfig('BASE_URL'));\r\n }\r\n\r\n public getProfile(): Observable {\r\n return this.restAPI.getMethod(RESTAPI_URL.GET_PROFILE, { }).pipe(map(\r\n res => CommonLib.parseObject(UserConfigs, res)\r\n ));\r\n }\r\n\r\n public login(email: string, password: string): Observable {\r\n return this.restAPI.postMethod(RESTAPI_URL.LOGIN_ENDPOINT, { Email: email, Password: password }).pipe(map(\r\n res => CommonLib.parseObject(UserConfigs, res)\r\n ));\r\n }\r\n\r\n public changePassword(email: string, password: string, newpassword: string): Observable {\r\n return this.restAPI.getMethod(RESTAPI_URL.CHANGEPASS_ENDPOINT, { email: email, password: password, newpassword: newpassword }).pipe(map(\r\n res => CommonLib.parseObject(UserConfigs, res)\r\n ));\r\n }\r\n\r\n public getmakichhoat(email: string) {\r\n return this.restAPI.postMethod(RESTAPI_URL.GET_MAKICHHOAT, { Email: email });\r\n }\r\n\r\n public setpass(email: string, otp: string, password: string): Observable {\r\n return this.restAPI.postMethod(RESTAPI_URL.SETPASS, { Email: email, Password: otp, NewPassword: password }).pipe(map(\r\n res => CommonLib.parseObject(UserConfigs, res)\r\n ));\r\n }\r\n\r\n public uploadKml(userKml: UserKmlModel) {\r\n return this.restAPI.postMethod(RESTAPI_URL.UPLOADKML, { name: userKml.name, mota: userKml.mota, kml: userKml.kml });\r\n }\r\n\r\n public getKmls(): Observable {\r\n return this.restAPI.getMethod(RESTAPI_URL.GETKMLS, {}).pipe(map(\r\n res => CommonLib.parseArray(UserKmlModel, res)\r\n ));\r\n }\r\n\r\n public toogleKml(kmlid, visible) {\r\n return this.restAPI.postMethod(RESTAPI_URL.TOOGLEKMLS, { kmlid: kmlid, visible: visible });\r\n }\r\n\r\n public deleteKml(kmlid: string) {\r\n return this.restAPI.postMethod(RESTAPI_URL.DELETEKMLS, { kmlid: kmlid });\r\n }\r\n\r\n public getKmlsVisible(): Observable {\r\n return this.restAPI.getMethod(RESTAPI_URL.GETKMLSVISIBLE, {}).pipe(map(\r\n res => CommonLib.parseArray(UserKmlModel, res)\r\n ));\r\n }\r\n}\r\n","module.exports = \".alert-container {\\r\\n position: fixed;\\r\\n top: 55px;\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n z-index: 1031;\\r\\n}\\r\\n\\r\\n.alert, .alert-info, .alert-dismissable {\\r\\n position: relative;\\r\\n max-width: 400px;\\r\\n margin: 0 auto;\\r\\n z-index: 1031;\\r\\n /*box shadow*/\\r\\n box-shadow: 4px 4px 5px -1px rgba(0,0,0,0.75);\\r\\n /* Firefox */\\r\\n -webkit-animation: cssAnimation 0s ease-in 10s forwards;\\r\\n /* Safari and Chrome */\\r\\n /* Opera */\\r\\n animation: cssAnimation 0s ease-in 10s forwards;\\r\\n -webkit-animation-fill-mode: forwards;\\r\\n animation-fill-mode: forwards;\\r\\n}\\r\\n\\r\\n.close:hover {\\r\\n font-size: 1.5rem;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n@keyframes cssAnimation {\\r\\n to {\\r\\n width: 0;\\r\\n height: 0;\\r\\n z-index:unset;\\r\\n overflow: hidden;\\r\\n }\\r\\n}\\r\\n\\r\\n@-webkit-keyframes cssAnimation {\\r\\n to {\\r\\n width: 0;\\r\\n z-index: unset;\\r\\n height: 0;\\r\\n visibility: hidden;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWxlcnRzL2FsZXJ0cy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLFNBQVM7RUFDVCxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLGFBQWE7RUFDYixhQUFhO0VBR2IsNkNBQTZDO0VBRTdDLFlBQVk7RUFDWix1REFBdUQ7RUFDdkQsc0JBQXNCO0VBRXRCLFVBQVU7RUFDViwrQ0FBK0M7RUFDL0MscUNBQXFDO0VBQ3JDLDZCQUE2QjtBQUMvQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixlQUFlO0FBQ2pCOztBQUdBO0VBQ0U7SUFDRSxRQUFRO0lBQ1IsU0FBUztJQUNULGFBQWE7SUFDYixnQkFBZ0I7RUFDbEI7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsUUFBUTtJQUNSLGNBQWM7SUFDZCxTQUFTO0lBQ1Qsa0JBQWtCO0VBQ3BCO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9hbGVydHMvYWxlcnRzLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYWxlcnQtY29udGFpbmVyIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiA1NXB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB6LWluZGV4OiAxMDMxO1xyXG59XHJcblxyXG4uYWxlcnQsIC5hbGVydC1pbmZvLCAuYWxlcnQtZGlzbWlzc2FibGUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHotaW5kZXg6IDEwMzE7XHJcbiAgLypib3ggc2hhZG93Ki9cclxuICAtd2Via2l0LWJveC1zaGFkb3c6IDRweCA0cHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICAtbW96LWJveC1zaGFkb3c6IDRweCA0cHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjc1KTtcclxuICBib3gtc2hhZG93OiA0cHggNHB4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC43NSk7XHJcbiAgLW1vei1hbmltYXRpb246IGNzc0FuaW1hdGlvbiAwcyBlYXNlLWluIDEwcyBmb3J3YXJkcztcclxuICAvKiBGaXJlZm94ICovXHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGNzc0FuaW1hdGlvbiAwcyBlYXNlLWluIDEwcyBmb3J3YXJkcztcclxuICAvKiBTYWZhcmkgYW5kIENocm9tZSAqL1xyXG4gIC1vLWFuaW1hdGlvbjogY3NzQW5pbWF0aW9uIDBzIGVhc2UtaW4gMTBzIGZvcndhcmRzO1xyXG4gIC8qIE9wZXJhICovXHJcbiAgYW5pbWF0aW9uOiBjc3NBbmltYXRpb24gMHMgZWFzZS1pbiAxMHMgZm9yd2FyZHM7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcclxuICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcclxufVxyXG5cclxuLmNsb3NlOmhvdmVyIHtcclxuICBmb250LXNpemU6IDEuNXJlbTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcblxyXG5Aa2V5ZnJhbWVzIGNzc0FuaW1hdGlvbiB7XHJcbiAgdG8ge1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICB6LWluZGV4OnVuc2V0O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBjc3NBbmltYXRpb24ge1xyXG4gIHRvIHtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgei1pbmRleDogdW5zZXQ7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Alert, AlertType } from '../_models/alert.model';\nimport { AlertService } from '../_services/alert.service';\n\n@Component({\n selector: 'app-alerts',\n templateUrl: './alerts.component.html',\n styleUrls: ['./alerts.component.css']\n})\nexport class AlertsComponent implements OnInit,OnDestroy {\n\n @Input() id: string;\n\n alerts: Alert[] = [];\n subscription: Subscription;\n\n constructor(private alertService: AlertService) { }\n\n success(message: string) {\n this.alertService.success(message);\n \n }\n \n error(message: string) {\n this.alertService.error(message);\n }\n \n info(message: string) {\n this.alertService.info(message);\n }\n \n warn(message: string) {\n this.alertService.warn(message);\n }\n \n clear() {\n this.alertService.clear();\n }\n \n ngOnInit() {\n this.subscription = this.alertService.onAlert(this.id)\n .subscribe(alert => {\n if (!alert.message) {\n // clear alerts when an empty alert is received\n this.alerts = [];\n return;\n }\n\n // add alert to array\n this.alerts.push(alert);\n\n // tự remove alert sau 2s \n setTimeout(() => {\n this.removeAlert(alert);\n }, 3000);\n });\n }\n\n ngOnDestroy() {\n // unsubscribe to avoid memory leaks\n this.subscription.unsubscribe();\n }\n\n removeAlert(alert: Alert) {\n // remove specified alert from array\n this.alerts = this.alerts.filter(x => x !== alert);\n }\n\n cssClass(alert: Alert) {\n if (!alert) {\n return;\n }\n\n // return css class based on alert type\n switch (alert.type) {\n case AlertType.Success:\n return 'alert alert-success';\n case AlertType.Error:\n return 'alert alert-danger';\n case AlertType.Info:\n return 'alert alert-info';\n case AlertType.Warning:\n return 'alert alert-warning';\n }\n }\n}\n\n","import { ChuDauTuComponent } from './main/tabcontent/chu-dau-tu/chu-dau-tu.component';\r\nimport { MainComponent } from './main/main.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { GiamSatTrucTuyenComponent } from './main/tabcontent/giam-sat-truc-tuyen/giam-sat-truc-tuyen.component';\r\nimport { GiamSatNgoaiTuyenComponent } from './main/tabcontent/giam-sat-ngoai-tuyen/giam-sat-ngoai-tuyen.component';\r\nimport { TuyenLuongComponent } from './main/tabcontent/tuyen-luong/tuyen-luong.component';\r\nimport { TauNaoVetComponent } from './main/tabcontent/tau-nao-vet/tau-nao-vet.component';\r\nimport { DuLieuGiamSatComponent } from './du-lieu-giam-sat/du-lieu-giam-sat.component';\r\nimport { NhaThauComponent } from './main/tabcontent/nha-thau/nha-thau.component';\r\nimport { ChuTauComponent } from './main/tabcontent/chu-tau/chu-tau.component';\r\nimport { ExportDataComponent } from './exportdata/exportdata.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'login', component: LoginComponent },\r\n { path: '', pathMatch: 'full', redirectTo: 'login' },\r\n {\r\n path: 'main', component: MainComponent, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'giam-sat-truc-tuyen' },\r\n { path: 'giam-sat-truc-tuyen', component: GiamSatTrucTuyenComponent },\r\n { path: 'giam-sat-ngoai-tuyen', component: GiamSatNgoaiTuyenComponent },\r\n { path: 'tuyen-luong', component: TuyenLuongComponent },\r\n { path: 'tau-nao-vet', component: TauNaoVetComponent },\r\n { path: 'du-lieu-giam-sat', component: DuLieuGiamSatComponent },\r\n { path: 'nha-thau', component: NhaThauComponent },\r\n { path: 'chu-dau-tu', component: ChuDauTuComponent },\r\n { path: 'chu-tau', component: ChuTauComponent },\r\n ]\r\n },\r\n { path: 'exportdata', component: ExportDataComponent },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { APPS } from './_providers/commonLib';\r\nimport { RESTAPI_URL } from './_services/commonAPI.service';\r\nimport { UserModel } from './_models/user.model';\r\nimport { Router } from '@angular/router';\r\nimport { ShipModel } from './_models/ship.model';\r\nimport { UserConfigs } from './_models/userConfigs.model';\r\nimport { AlertService } from './_services/alert.service';\r\nimport { ConfirmService } from './_services/confirm.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n //styleUrls: ['./app.component.css']\r\n})\r\n\r\nexport class AppComponent implements OnInit {\r\n title = 'VSHIPEL';\r\n\r\n constructor(private router: Router, private confirm: ConfirmService) { }\r\n public openConfirmationDialog() {\r\n\r\n this.confirm.confirm('Confirm', 'Bạn có chắc chắc muốn ... ?')\r\n .then((confirmed) => console.log('Người dùng confirm:', confirmed))\r\n .catch(() => console.log('Người dùng close modal (click close hoặc nhấn vào desktop)'));\r\n }\r\n ngOnInit() {\r\n if (!UserConfigs.getCurrentUser()) {\r\n this.router.navigate([\"login\"]);\r\n } \r\n }\r\n}\r\n\r\nexport let SHIPS_CACHE_TRACKING: Array = [];\r\nexport let SHIPS_CACHE_SEARCH: Array = [];\r\nexport let SHIPS_CACHE_ONLINE: Array = [];\r\nexport let SHIPS_CACHE_HISTORY: Array = [];\r\n","import { APP_INITIALIZER } from '@angular/core';\r\nimport { AppConfig } from './_services/config.service';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\n\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ConfirmService } from './_services/confirm.service';\r\nimport { ConfirmComponent } from './confirm/confirm.component';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { Globals } from './globals';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { TopbarComponent } from './main/topbar/topbar.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { TabcontentComponent } from './main/tabcontent/tabcontent.component';\r\nimport { MainComponent } from './main/main.component';\r\nimport { NavbarComponent } from './main/navbar/navbar.component';\r\nimport { ChuDauTuComponent } from './main/tabcontent/chu-dau-tu/chu-dau-tu.component';\r\nimport { ChuTauComponent } from './main/tabcontent/chu-tau/chu-tau.component';\r\nimport { DuLieuGiamSatComponent } from './du-lieu-giam-sat/du-lieu-giam-sat.component';\r\nimport { GiamSatNgoaiTuyenComponent } from './main/tabcontent/giam-sat-ngoai-tuyen/giam-sat-ngoai-tuyen.component';\r\nimport { GiamSatTrucTuyenComponent } from './main/tabcontent/giam-sat-truc-tuyen/giam-sat-truc-tuyen.component';\r\nimport { NhaThauComponent } from './main/tabcontent/nha-thau/nha-thau.component';\r\nimport { ExportDataComponent } from './exportdata/exportdata.component';\r\nimport { TauNaoVetComponent } from './main/tabcontent/tau-nao-vet/tau-nao-vet.component';\r\nimport { TuyenLuongComponent } from './main/tabcontent/tuyen-luong/tuyen-luong.component';\r\nimport { ModalComponent } from './modal/modal.component';\r\nimport { AlertsComponent } from './alerts/alerts.component';\r\nimport { ChangepasswordComponent } from './changepassword/changepassword.component';\r\nimport { RequestApiInterceptor } from './_services/requestApi.intercept';\r\nimport { ShipPopupComponent } from './ship-popup/ship-popup.component';\r\nimport { GridModule, RowSelectEventArgs, FilterService, PageService, ToolbarService } from '@syncfusion/ej2-angular-grids';\r\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EditDsTauComponent } from './main/tabcontent/giam-sat-truc-tuyen/edit-dstau/edit-dstau.component';\r\nimport { EditMeasureComponent } from './main/tabcontent/giam-sat-truc-tuyen/edit-measure/edit-measure.component';\r\nimport { ThongKeComponent } from './main/tabcontent/giam-sat-truc-tuyen/thong-ke/thong-ke.component';\r\nimport { ThongKeChiTietComponent } from './main/tabcontent/giam-sat-truc-tuyen/thong-ke-chi-tiet/thong-ke-chi-tiet.component';\r\nimport { KmlComponent } from './main/tabcontent/giam-sat-truc-tuyen/kml/kml.component';\r\nimport { UploadKmlComponent } from './main/tabcontent/giam-sat-truc-tuyen/upload-kml/upload-kml.component';\r\nimport { AddTauVaoDsComponent } from './main/tabcontent/giam-sat-truc-tuyen/add-tau-vao-ds/add-tau-vao-ds.component';\r\nimport { EditPolygonDSTauComponent } from './main/tabcontent/giam-sat-truc-tuyen/edit-polygon-dstau/edit-polygon-dstau.component';\r\nimport { GetMaKichHoatComponent } from './login/get-ma-kich-hoat/get-ma-kich-hoat.component';\r\nimport { DoiMatKhauComponent } from './login/doi-mat-khau/doi-mat-khau.component';\r\n\r\nexport function initConfig(config: AppConfig) {\r\n return () => config.load();\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n TopbarComponent,\r\n FooterComponent,\r\n TabcontentComponent,\r\n MainComponent,\r\n NavbarComponent,\r\n ChuDauTuComponent,\r\n ChuTauComponent,\r\n DuLieuGiamSatComponent,\r\n GiamSatNgoaiTuyenComponent,\r\n GiamSatTrucTuyenComponent,\r\n NhaThauComponent,\r\n TauNaoVetComponent,\r\n TuyenLuongComponent,\r\n ModalComponent,\r\n ChangepasswordComponent,\r\n AlertsComponent,\r\n ConfirmComponent,\r\n ShipPopupComponent,\r\n EditDsTauComponent,\r\n EditMeasureComponent,\r\n ThongKeComponent,\r\n ThongKeChiTietComponent,\r\n KmlComponent,\r\n UploadKmlComponent,\r\n AddTauVaoDsComponent,\r\n EditPolygonDSTauComponent,\r\n ExportDataComponent,\r\n GetMaKichHoatComponent,\r\n DoiMatKhauComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n HttpClientModule,\r\n FormsModule,\r\n NgbModule,\r\n AppRoutingModule,\r\n GridModule,\r\n ReactiveFormsModule\r\n ],\r\n entryComponents: [ConfirmComponent],\r\n\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: RequestApiInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: LocationStrategy, useClass: HashLocationStrategy\r\n },\r\n Globals, ConfirmService,\r\n FilterService, PageService, ToolbarService,\r\n AppConfig,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: initConfig,\r\n deps: [AppConfig],\r\n multi: true\r\n }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NoYW5nZXBhc3N3b3JkL2NoYW5nZXBhc3N3b3JkLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { UserModel } from '../_models/user.model';\r\nimport { UserService } from '../_services/user.service';\r\nimport { AjaxResponseModel } from '../_models/ajaxResponse.model';\r\nimport { UserConfigs } from '../_models/userConfigs.model';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-changepassword',\r\n templateUrl: './changepassword.component.html',\r\n styleUrls: ['./changepassword.component.css']\r\n})\r\nexport class ChangepasswordComponent implements OnInit {\r\n\r\n constructor(private httpClient: HttpClient, private router: Router, private UserApi: UserService) { }\r\n\r\n\r\n oldPassword: string;\r\n newPassword: string;\r\n cfPassword: string;\r\n token: string;\r\n url: string;\r\n user: UserConfigs = UserConfigs.getCurrentUser();\r\n email: string = this.user.Email;\r\n info: string;\r\n error: string;\r\n\r\n checkPassword(oldpass, newpass) {\r\n //var passw = /^[A-Za-z0-9]\\w{7,15}$/;\r\n //if (passw.test(pw)) {\r\n // return true;\r\n //}\r\n //else {\r\n // return false;\r\n //}\r\n return true;\r\n }\r\n\r\n changepassword(): void {\r\n if (this.oldPassword == undefined || this.newPassword == undefined || this.cfPassword == undefined\r\n || this.oldPassword == \"\" || this.newPassword == \"\" || this.cfPassword == \"\") {\r\n alert('Chưa nhập đủ thông tin!');\r\n return;\r\n } else if (this.newPassword != this.cfPassword) {\r\n alert('Mật khẩu mới chưa chưa hợp lệ');\r\n return;\r\n } else {\r\n\r\n if (this.checkPassword(this.oldPassword, this.newPassword)){\r\n this.UserApi.changePassword(this.email, this.oldPassword, this.newPassword).subscribe({\r\n error: err => {\r\n if (err instanceof AjaxResponseModel) {\r\n console.log(err);\r\n alert(err.ErrorMsg);\r\n } else {\r\n console.log(err);\r\n }\r\n },\r\n next: user => {\r\n alert('Mật khẩu của bạn đã được thay đổi thành công');\r\n $('.modal-backdrop').hide();\r\n $('#changePassword').hide();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit,Input } from '@angular/core';\n\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'app-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.css']\n})\nexport class ConfirmComponent implements OnInit {\n\n @Input() title: string;\n @Input() message: string;\n @Input() btnOkText: string;\n @Input() btnCancelText: string;\n\n constructor(private activeModal: NgbActiveModal) { }\n\n ngOnInit() {\n }\n\n public accept() {\n this.activeModal.close(true);\n }\n\n public dismiss() {\n this.activeModal.dismiss();\n }\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2R1LWxpZXUtZ2lhbS1zYXQvZHUtbGlldS1naWFtLXNhdC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-du-lieu-giam-sat',\n templateUrl: './du-lieu-giam-sat.component.html',\n styleUrls: ['./du-lieu-giam-sat.component.css']\n})\nexport class DuLieuGiamSatComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \".export-container {\\r\\n max-width: 1028px;\\r\\n}\\r\\n\\r\\n.row {\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\nh3 {\\r\\n font-size: 20px !important;\\r\\n font-weight: bold;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n/*label {\\r\\n font-weight: bold !important;\\r\\n}*/\\r\\n\\r\\n.track-popup {\\r\\n padding: 3px;\\r\\n}\\r\\n\\r\\n.popover-content {\\r\\n min-width: 180px;\\r\\n}\\r\\n\\r\\n#popupInfoShip {\\r\\n background-color: #fff;\\r\\n min-width: 350px;\\r\\n}\\r\\n\\r\\n#overlayTrackInfo {\\r\\n background-color: #000;\\r\\n color: #fff;\\r\\n border: 1px solid #fff;\\r\\n padding: 5px 10px;\\r\\n font-size: 12px;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.ico {\\r\\n width: 20px;\\r\\n}\\r\\n\\r\\nfieldset {\\r\\n border: 1px solid #E8EAED;\\r\\n padding: 8px;\\r\\n outline: none;\\r\\n}\\r\\n\\r\\nlegend {\\r\\n display: inline;\\r\\n font-size: 13px;\\r\\n margin-left: 30px;\\r\\n padding: 0 5px 0 10px;\\r\\n}\\r\\n\\r\\n.tool {\\r\\n font-size: 12px;\\r\\n padding: 6px 10px;\\r\\n position: absolute;\\r\\n right: 0;\\r\\n height: 30px;\\r\\n top: 50px;\\r\\n cursor: pointer;\\r\\n z-index: 1;\\r\\n max-width: 350px;\\r\\n}\\r\\n\\r\\nbutton {\\r\\n margin-bottom: 3px;\\r\\n /*width: 90%;*/\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n.btn-dstau button {\\r\\n width: 30px;\\r\\n}\\r\\n\\r\\n.tool ul {\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n margin-top: 6px;\\r\\n}\\r\\n\\r\\n.tool li {\\r\\n background: #0984e3;\\r\\n list-style: none;\\r\\n padding: 8px;\\r\\n}\\r\\n\\r\\n.hideList > .border-bottom {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.tool i {\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n.tool:hover {\\r\\n}\\r\\n\\r\\n.toggle {\\r\\n background-color: #243879;\\r\\n min-width: 330px;\\r\\n display: none;\\r\\n color: white;\\r\\n right: 10px;\\r\\n margin-top: 25px;\\r\\n padding: 10px 0 10px 15px;\\r\\n}\\r\\n\\r\\n.toggle li:hover {\\r\\n background-color: #4896DE;\\r\\n }\\r\\n\\r\\n.toggle .row {\\r\\n padding-top: 10px;\\r\\n }\\r\\n\\r\\n.ui-dialog-ship-popup .ui-dialog-title span {\\r\\n width: 65%;\\r\\n color: white;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.ui-dialog-ship-popup .ui-dialog-title img {\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n/*CUSTOM GRID CSS*/\\r\\n\\r\\n.e-grid .e-headercell, .e-grid .e-detailheadercell, span.e-headertext {\\r\\n font-size: 10.5px;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.e-grid .e-rowcell:first-child, .e-grid .e-summarycell:first-child {\\r\\n padding-left: 2px !important;\\r\\n}\\r\\n\\r\\n.e-grid .e-rowcell {\\r\\n padding: 5px 3px !important;\\r\\n font-size: 10px;\\r\\n}\\r\\n\\r\\n.e-grid .e-filterbarcell, .e-grid .e-filterbarcelldisabled {\\r\\n padding: 0 3px !important;\\r\\n}\\r\\n\\r\\n.e-grid .e-gridheader tr th:first-child {\\r\\n padding-left: 2px !important;\\r\\n}\\r\\n\\r\\n.e-grid .e-headercell, .e-grid .e-detailheadercell {\\r\\n padding: 0 3px !important;\\r\\n}\\r\\n\\r\\n.e-input-group input.e-input, .e-input-group.e-control-wrapper input.e-input, .e-input-group textarea.e-input, .e-input-group.e-control-wrapper textarea.e-input {\\r\\n font-size: 10px !important;\\r\\n}\\r\\n\\r\\n.ol-popup {\\r\\n position: absolute;\\r\\n background-color: white;\\r\\n -webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));\\r\\n filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));\\r\\n padding: 5px 10px;\\r\\n /*border-radius: 10px;*/\\r\\n border: 1px solid #cccccc;\\r\\n bottom: 15px;\\r\\n left: -50px;\\r\\n min-width: 100px;\\r\\n}\\r\\n\\r\\n#clearAllTrack {\\r\\n position: absolute;\\r\\n top: 5px;\\r\\n right: 5px;\\r\\n z-index: 120;\\r\\n width: 35px;\\r\\n box-shadow: 0 .5rem 1rem rgba(0,0,0,.15) !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZXhwb3J0ZGF0YS9leHBvcnRkYXRhLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSwwQkFBMEI7RUFDMUIsaUJBQWlCO0VBQ2pCLGtCQUFrQjtBQUNwQjs7QUFDQTs7RUFFRTs7QUFDRjtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsV0FBVztFQUNYLHNCQUFzQjtFQUN0QixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osYUFBYTtBQUNmOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGVBQWU7RUFDZixpQkFBaUI7RUFDakIscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFlBQVk7RUFDWixTQUFTO0VBQ1QsZUFBZTtFQUNmLFVBQVU7RUFDVixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFNBQVM7RUFDVCxVQUFVO0VBQ1YsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsWUFBWTtBQUNkOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0FBQ0E7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixZQUFZO0VBQ1osV0FBVztFQUNYLGdCQUFnQjtFQUNoQix5QkFBeUI7QUFDM0I7O0FBRUU7SUFDRSx5QkFBeUI7RUFDM0I7O0FBRUE7SUFDRSxpQkFBaUI7RUFDbkI7O0FBRUY7RUFDRSxVQUFVO0VBQ1YsWUFBWTtFQUNaLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFHQSxrQkFBa0I7O0FBQ2xCO0VBQ0UsaUJBQWlCO0VBQ2pCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHVCQUF1QjtFQUN2QixzREFBc0Q7RUFDdEQsOENBQThDO0VBQzlDLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWixXQUFXO0VBQ1gsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixVQUFVO0VBQ1YsWUFBWTtFQUNaLFdBQVc7RUFDWCxtREFBbUQ7QUFDckQiLCJmaWxlIjoic3JjL2FwcC9leHBvcnRkYXRhL2V4cG9ydGRhdGEuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5leHBvcnQtY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDEwMjhweDtcclxufVxyXG5cclxuLnJvdyB7XHJcbiAgcGFkZGluZy10b3A6IDEwcHg7XHJcbn1cclxuXHJcbmgzIHtcclxuICBmb250LXNpemU6IDIwcHggIWltcG9ydGFudDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuLypsYWJlbCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcclxufSovXHJcbi50cmFjay1wb3B1cCB7XHJcbiAgcGFkZGluZzogM3B4O1xyXG59XHJcblxyXG4ucG9wb3Zlci1jb250ZW50IHtcclxuICBtaW4td2lkdGg6IDE4MHB4O1xyXG59XHJcblxyXG4jcG9wdXBJbmZvU2hpcCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBtaW4td2lkdGg6IDM1MHB4O1xyXG59XHJcblxyXG4jb3ZlcmxheVRyYWNrSW5mbyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcclxuICBjb2xvcjogI2ZmZjtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xyXG4gIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcbi5pY28ge1xyXG4gIHdpZHRoOiAyMHB4O1xyXG59XHJcblxyXG5maWVsZHNldCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI0U4RUFFRDtcclxuICBwYWRkaW5nOiA4cHg7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxubGVnZW5kIHtcclxuICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgMTBweDtcclxufVxyXG5cclxuLnRvb2wge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nOiA2cHggMTBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG4gIHRvcDogNTBweDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgei1pbmRleDogMTtcclxuICBtYXgtd2lkdGg6IDM1MHB4O1xyXG59XHJcblxyXG5idXR0b24ge1xyXG4gIG1hcmdpbi1ib3R0b206IDNweDtcclxuICAvKndpZHRoOiA5MCU7Ki9cclxuICBib3JkZXItcmFkaXVzOiAycHg7XHJcbn1cclxuXHJcbi5idG4tZHN0YXUgYnV0dG9uIHtcclxuICB3aWR0aDogMzBweDtcclxufVxyXG5cclxuLnRvb2wgdWwge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbi10b3A6IDZweDtcclxufVxyXG5cclxuLnRvb2wgbGkge1xyXG4gIGJhY2tncm91bmQ6ICMwOTg0ZTM7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBwYWRkaW5nOiA4cHg7XHJcbn1cclxuXHJcbi5oaWRlTGlzdCA+IC5ib3JkZXItYm90dG9tIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4udG9vbCBpIHtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuLnRvb2w6aG92ZXIge1xyXG59XHJcblxyXG4udG9nZ2xlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQzODc5O1xyXG4gIG1pbi13aWR0aDogMzMwcHg7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgcmlnaHQ6IDEwcHg7XHJcbiAgbWFyZ2luLXRvcDogMjVweDtcclxuICBwYWRkaW5nOiAxMHB4IDAgMTBweCAxNXB4O1xyXG59XHJcblxyXG4gIC50b2dnbGUgbGk6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ4OTZERTtcclxuICB9XHJcblxyXG4gIC50b2dnbGUgLnJvdyB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICB9XHJcblxyXG4udWktZGlhbG9nLXNoaXAtcG9wdXAgLnVpLWRpYWxvZy10aXRsZSBzcGFuIHtcclxuICB3aWR0aDogNjUlO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi51aS1kaWFsb2ctc2hpcC1wb3B1cCAudWktZGlhbG9nLXRpdGxlIGltZyB7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuXHJcbi8qQ1VTVE9NIEdSSUQgQ1NTKi9cclxuLmUtZ3JpZCAuZS1oZWFkZXJjZWxsLCAuZS1ncmlkIC5lLWRldGFpbGhlYWRlcmNlbGwsIHNwYW4uZS1oZWFkZXJ0ZXh0IHtcclxuICBmb250LXNpemU6IDEwLjVweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLmUtZ3JpZCAuZS1yb3djZWxsOmZpcnN0LWNoaWxkLCAuZS1ncmlkIC5lLXN1bW1hcnljZWxsOmZpcnN0LWNoaWxkIHtcclxuICBwYWRkaW5nLWxlZnQ6IDJweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZS1ncmlkIC5lLXJvd2NlbGwge1xyXG4gIHBhZGRpbmc6IDVweCAzcHggIWltcG9ydGFudDtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbn1cclxuXHJcbi5lLWdyaWQgLmUtZmlsdGVyYmFyY2VsbCwgLmUtZ3JpZCAuZS1maWx0ZXJiYXJjZWxsZGlzYWJsZWQge1xyXG4gIHBhZGRpbmc6IDAgM3B4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5lLWdyaWQgLmUtZ3JpZGhlYWRlciB0ciB0aDpmaXJzdC1jaGlsZCB7XHJcbiAgcGFkZGluZy1sZWZ0OiAycHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmUtZ3JpZCAuZS1oZWFkZXJjZWxsLCAuZS1ncmlkIC5lLWRldGFpbGhlYWRlcmNlbGwge1xyXG4gIHBhZGRpbmc6IDAgM3B4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5lLWlucHV0LWdyb3VwIGlucHV0LmUtaW5wdXQsIC5lLWlucHV0LWdyb3VwLmUtY29udHJvbC13cmFwcGVyIGlucHV0LmUtaW5wdXQsIC5lLWlucHV0LWdyb3VwIHRleHRhcmVhLmUtaW5wdXQsIC5lLWlucHV0LWdyb3VwLmUtY29udHJvbC13cmFwcGVyIHRleHRhcmVhLmUtaW5wdXQge1xyXG4gIGZvbnQtc2l6ZTogMTBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ub2wtcG9wdXAge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAtd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggNHB4IHJnYmEoMCwwLDAsMC4yKSk7XHJcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFweCA0cHggcmdiYSgwLDAsMCwwLjIpKTtcclxuICBwYWRkaW5nOiA1cHggMTBweDtcclxuICAvKmJvcmRlci1yYWRpdXM6IDEwcHg7Ki9cclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xyXG4gIGJvdHRvbTogMTVweDtcclxuICBsZWZ0OiAtNTBweDtcclxuICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4jY2xlYXJBbGxUcmFjayB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNXB4O1xyXG4gIHJpZ2h0OiA1cHg7XHJcbiAgei1pbmRleDogMTIwO1xyXG4gIHdpZHRoOiAzNXB4O1xyXG4gIGJveC1zaGFkb3c6IDAgLjVyZW0gMXJlbSByZ2JhKDAsMCwwLC4xNSkgIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UserConfigs } from '../_models/userConfigs.model';\r\nimport { AlertService } from '../_services/alert.service';\r\nimport { InputExportDataModel } from '../_models/inputExportData.model';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { ShipService } from '../_services/ship.service';\r\nimport { TileLayerMap } from '../_class/TileLayerMap';\r\nimport { LayerExt } from '../_class/LayerExt';\r\nimport { LayerShips } from '../_class/LayerShips';\r\nimport { LayerDataItem } from '../_class/LayerDataItem';\r\n\r\n//OPENLAYERS\r\nimport Map from 'ol/Map.js';\r\nimport View from 'ol/View.js';\r\nimport { fromLonLat } from 'ol/proj';\r\nimport { Vector as VectorLayer } from 'ol/layer.js';\r\nimport { Vector as VectorSource } from 'ol/source.js';\r\nimport Point from 'ol/geom/Point';\r\nimport KML from 'ol/format/KML';\r\nimport { ShipModel } from '../_models/ship.model';\r\nimport { CommonLib } from '../_providers/commonLib';\r\nimport { TrackItemModel } from '../_models/trackItem.model';\r\nimport { UserService } from '../_services/user.service';\r\nimport { UploadService } from '../_services/upload.service';\r\n\r\nimport { GiamSatTrucTuyenComponent } from '../main/tabcontent/giam-sat-truc-tuyen/giam-sat-truc-tuyen.component';\r\nimport { LayerMeasure } from '../_class/LayerMeasure';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-exportdata',\r\n templateUrl: './exportdata.component.html',\r\n styleUrls: ['./exportdata.component.css']\r\n})\r\nexport class ExportDataComponent implements OnInit {\r\n\r\n constructor(private router: Router,\r\n private shipApi: ShipService, private userApi: UserService, private uploadService: UploadService,\r\n private alertService: AlertService) { }\r\n\r\n filter: InputExportDataModel = new InputExportDataModel();\r\n\r\n //Openlayers Map\r\n map: Map;\r\n layerMeasure: LayerMeasure;\r\n tileLayer: TileLayerMap;\r\n layerExt: LayerExt;\r\n layerShips: LayerShips;\r\n layerDataItem: LayerDataItem;\r\n ships_all: ShipModel[];\r\n ships_clsA: ShipModel[];\r\n ships_clsB: ShipModel[];\r\n\r\n user: UserConfigs;\r\n\r\n kmlLayers: any[] = Array();\r\n\r\n ngOnInit() {\r\n this.user = UserConfigs.getCurrentUser();\r\n if (!this.user) {\r\n this.router.navigate([\"login\"]);\r\n }\r\n this.filter.setDefault();\r\n //this.filter.mmsi = \"246472000\";\r\n\r\n //this.getConfigsInStorage();\r\n this.initMap();\r\n\r\n this.setDefaultShipsArray();\r\n }\r\n\r\n setDefaultShipsArray() {\r\n this.ships_all = new Array();\r\n this.ships_clsA = new Array();\r\n this.ships_clsB = new Array();\r\n }\r\n\r\n onClick_toggleSideBar() {\r\n $('#sidebar1').toggleClass('active-bar');\r\n this.layerShips.resizeMap();\r\n }\r\n\r\n /**\r\n * Lưu cấu hình trong storage\r\n * */\r\n setConfigsInStorage() {\r\n\r\n }\r\n /**\r\n * Lấy về cấu hình filter trong storage\r\n * */\r\n getConfigsInStorage() {\r\n\r\n }\r\n\r\n\r\n /**\r\n * Thiết lập ban đầu của Map, các layer source, popup thông tin tàu\r\n * - Được gọi trong ngOnInit()\r\n * */\r\n initMap() {\r\n var thisObj = this;\r\n var zoomSize = (this.user.ZoomSize) ? this.user.ZoomSize : 7;\r\n var center = (this.user.Center) ? this.user.Center : [11755213.37382905, 2192779.1335923285]; // hanoi\r\n\r\n //Khai báo layer bản đồ nền của openlayers\r\n this.tileLayer = new TileLayerMap();\r\n //Khai báo bản đồ với các layer\r\n this.map = new Map({\r\n layers: thisObj.tileLayer.getTileLayersArray(), //z-index theo thứ tự\r\n target: 'map-ol',\r\n view: new View({\r\n center: center,\r\n zoom: zoomSize,\r\n minZoom: 5,\r\n maxZoom: 22\r\n })\r\n });\r\n\r\n // EVENT\r\n this.map.on('click', function (evt) {\r\n this.forEachFeatureAtPixel(evt.pixel, function (f) {\r\n if (f.getGeometry() instanceof Point) {\r\n var data = f.get('data');\r\n if (data instanceof TrackItemModel) {\r\n var idElement = data.mmsi + data.utcpos;\r\n thisObj.showPopupByJQuery_TrackItem(data, idElement);\r\n }\r\n else if (data instanceof ShipModel) {\r\n var idElement = data.mmsi + data.utcpos;\r\n thisObj.showPopupByJQuery_Ship(data, idElement);\r\n }\r\n }\r\n\r\n });\r\n\r\n });\r\n\r\n // lưu storage độ zoom, vị trí xem bản đồ của người dùng mỗi khi di chuyển trên map\r\n this.map.on('moveend', function () {\r\n var view = thisObj.map.getView();\r\n UserConfigs.saveConfig(\"ZoomSize\", view.getZoom());\r\n UserConfigs.saveConfig(\"Center\", view.getCenter());\r\n });\r\n //this.map.on('moveend', function () { thisCpn.countShipOnHistoryMap(thisCpn) });\r\n\r\n // LAYERS\r\n this.layerExt = new LayerExt(this.map);\r\n this.layerMeasure = new LayerMeasure(this.map);\r\n this.layerDataItem = new LayerDataItem(this.map);\r\n this.layerShips = new LayerShips(this.map);\r\n\r\n //load KML\r\n this.loadKmlByCurrentUser();\r\n }\r\n\r\n /***\r\n * Hiển thị thông tin trackItem theo jquery\r\n * */\r\n itemToPopup: TrackItemModel;\r\n public showPopupByJQuery_TrackItem(item: TrackItemModel, id: string) {\r\n var thisObj = this;\r\n thisObj.itemToPopup = item;\r\n var widthMap = $('#map-ol').width();\r\n var heightMap = $('#map-ol').height();\r\n\r\n var shipCoordByPX = this.map.getPixelFromCoordinate(fromLonLat([item.lon, item.lat]));\r\n var x = shipCoordByPX[0], y = shipCoordByPX[1];\r\n\r\n x = x > widthMap / 2 ? x - 120 : x + 360;\r\n\r\n if (y < 350) {\r\n y = 90;\r\n } else if ((heightMap - y) < 100) { // 450 tạm tính = max-height của popup\r\n y = heightMap - 350;\r\n } else {\r\n y -= 250;\r\n }\r\n\r\n var idElement = '#' + id;\r\n //console.log($(idElement).hasClass('ui-dialog-content'));\r\n //console.log($(idElement).is(\":visible\"));\r\n var isExist = $(idElement).hasClass('ui-dialog-content');\r\n var isVisiable = $(idElement).is(\":visible\");\r\n\r\n if (isExist && isVisiable) {\r\n //Đã có và đang mở\r\n $(idElement).dialog(\"close\");\r\n } else if (isExist && !isVisiable) {\r\n //Đã có và chưa mở\r\n } else {\r\n //Chưa có\r\n $('#export-popup-dialog').append('
');\r\n }\r\n $(idElement).dialog({\r\n dialogClass: 'ui-dialog-' + id,\r\n width: 250,\r\n modal: false,\r\n resizable: false,\r\n });\r\n\r\n var title = '[' + item.stt + '] ' + item.name + \" / \" + item.mmsi + ' X';\r\n $('.ui-dialog-' + id).find(\".ui-dialog-title\").html(title);\r\n\r\n var content = '
';\r\n content += '
Timepos (UTC+7): ';\r\n content += '
';\r\n content += '
Position:
';\r\n content += '
S.O.G: / ';\r\n content += 'C.O.G:
';\r\n content += '
';\r\n\r\n $('.ui-dialog-' + id).find('.ui-dialog-content').html(content);\r\n // set position dialog popup\r\n $('.ui-dialog-' + id).css('left', x + 'px');\r\n $('.ui-dialog-' + id).css('top', y + 'px');\r\n }\r\n\r\n\r\n /***\r\n * Hiển thị thông tin SHIP theo jquery\r\n * */\r\n public showPopupByJQuery_Ship(ship: ShipModel, id: string) {\r\n var thisObj = this;\r\n var widthMap = $('#map-ol').width();\r\n var heightMap = $('#map-ol').height();\r\n\r\n var shipCoordByPX = this.map.getPixelFromCoordinate(fromLonLat([ship.lon, ship.lat]));\r\n var x = shipCoordByPX[0], y = shipCoordByPX[1];\r\n\r\n x = x > widthMap / 2 ? x - 120 : x + 360;\r\n\r\n if (y < 350) {\r\n y = 90;\r\n } else if ((heightMap - y) < 100) { // 450 tạm tính = max-height của popup\r\n y = heightMap - 350;\r\n } else {\r\n y -= 250;\r\n }\r\n\r\n var idElement = '#' + id;\r\n var isExist = $(idElement).hasClass('ui-dialog-content');\r\n var isVisiable = $(idElement).is(\":visible\");\r\n\r\n if (isExist && isVisiable) {\r\n //Đã có và đang mở\r\n $(idElement).dialog(\"close\");\r\n } else if (isExist && !isVisiable) {\r\n //Đã có và chưa mở\r\n } else {\r\n //Chưa có\r\n $('#export-popup-dialog').append('
');\r\n }\r\n $(idElement).dialog({\r\n dialogClass: 'ui-dialog-' + id,\r\n width: 300,\r\n modal: false,\r\n resizable: false,\r\n });\r\n\r\n var title = '' + ship.name + ' X';\r\n $('.ui-dialog-' + id).find(\".ui-dialog-title\").html(title);\r\n\r\n var content = '
';\r\n content += '
MMSI: / ';\r\n content += 'Class:
';\r\n content += '
Calsign:
';\r\n content += '
IMO:
';\r\n content += '
Position:
';\r\n content += '
S.O.G: / ';\r\n content += 'C.O.G:
';\r\n content += '
Last Timepos (UTC+7): ';\r\n content += '
';\r\n content += '
Bsid:
';\r\n content += '
';\r\n\r\n $('.ui-dialog-' + id).find('.ui-dialog-content').html(content);\r\n // set position dialog popup\r\n $('.ui-dialog-' + id).css('left', x + 'px');\r\n $('.ui-dialog-' + id).css('top', y + 'px');\r\n }\r\n\r\n /**\r\n * Hiển thị dữ liệu track lên màn hình MAP\r\n * */\r\n onClick_ShowData() {\r\n if (!this.isValidate()) return;\r\n var thisObj = this;\r\n CommonLib.loadingShow();\r\n this.filter.class = 0;\r\n if (this.filter.mmsi.toUpperCase() == \"LASTPOSITION\") {\r\n //this.alertService.error(\"MMSI không đúng định dạng!\");\r\n //return;\r\n this.setDefaultShipsArray();\r\n this.shipApi.getLastPositionOfShips(this.filter).subscribe({\r\n next: response => {\r\n CommonLib.loadingHide();\r\n if (response.length > 0) {\r\n var resShips = CommonLib.parseArray(ShipModel, response);\r\n\r\n thisObj.ships_all = resShips;\r\n resShips.forEach(function (ship) {\r\n ship.folder_icon = \"/lastposition\";\r\n if (ship.cls == \"A\") {\r\n ship.icon = \"/a.png\";\r\n thisObj.ships_clsA.push(ship);\r\n }\r\n else if (ship.cls == \"B\") {\r\n ship.icon = \"/b.png\";\r\n thisObj.ships_clsB.push(ship);\r\n }\r\n ship.icon = ship.cls == \"A\" ? \"/a.png\" : \"/b.png\";\r\n });\r\n thisObj.layerShips.addFeatures_HistoryShips(resShips);\r\n \r\n } else {\r\n this.alertService.info(\"Không có dữ liệu trong khoảng thời gian này!\");\r\n }\r\n },\r\n error: err => {\r\n CommonLib.loadingHide();\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n else {\r\n this.shipApi.getDataByRectangle(this.filter).subscribe({\r\n next: response => {\r\n CommonLib.loadingHide();\r\n if (response.length > 0) {\r\n response.forEach(function (arrTrackItem) {\r\n var dataItems = CommonLib.parseArray(TrackItemModel, arrTrackItem);\r\n if (dataItems.length <= 0) {\r\n this.alertService.info(\"Không có dữ liệu trong khoảng thời gian này\");\r\n return;\r\n }\r\n var stt = 1;\r\n dataItems.forEach(function (item) {\r\n item.mmsi = thisObj.filter.mmsi;\r\n item.stt = stt;\r\n stt++;\r\n });\r\n thisObj.layerDataItem.addTracks(dataItems);\r\n });\r\n } else {\r\n this.alertService.info(\"Không có dữ liệu trong khoảng thời gian này!\");\r\n }\r\n },\r\n error: err => {\r\n CommonLib.loadingHide();\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Xuất dữ liệu ra excel\r\n * */\r\n onClick_ExportExcel() {\r\n if (!this.isValidate()) return;\r\n this.filter.formatDatetime();\r\n this.filter.tid = UserConfigs.getCurrentUser().TokenID;\r\n\r\n if (this.filter.mmsi.toUpperCase() == \"LASTPOSITION\") {\r\n this.filter.format = 1;\r\n this.shipApi.openLink_ExportData_LastPosition_Area_Time(this.filter);\r\n } else {\r\n this.shipApi.openLink_ExportData(this.filter);\r\n }\r\n }\r\n\r\n /**\r\n * Hiển thị thông báo validate input\r\n * */\r\n isValidate() {\r\n var isValidate = true;\r\n\r\n // remove cac ky tu dac biet\r\n this.filter.name = this.filter.name == undefined ? \"\" : this.filter.name;\r\n switch (this.filter.checkValidateInput()) {\r\n case 1:\r\n this.alertService.error(\"Bạn cần nhập đủ thông tin filter để export dữ liệu!\");\r\n isValidate = false;\r\n break;\r\n case 2:\r\n this.alertService.error(\"Thời gian bắt đầu phải trước thời gian kết thúc!\");\r\n isValidate = false;\r\n break;\r\n case 3:\r\n this.alertService.error(\"MMSI không đúng định dạng!\");\r\n isValidate = false;\r\n break;\r\n }\r\n return isValidate;\r\n }\r\n\r\n /**\r\n * Xóa dữ liệu tracking trên map\r\n * */\r\n onClick_ClearTrack() {\r\n this.layerDataItem.removeAllFeature();\r\n this.layerShips.removeAllFeature();\r\n }\r\n\r\n /**\r\n * Load và hiển thị danh sách KML của current user\r\n * */\r\n loadKmlByCurrentUser() {\r\n var thisObj = this;\r\n this.userApi.getKmls().subscribe({\r\n next: kmls => {\r\n if (kmls.length > 0) {\r\n kmls.forEach(function (kml) {\r\n var layer = new VectorLayer({\r\n kmlid: kml.kmlid,\r\n source: new VectorSource({\r\n url: '/service/kml/' + kml.kmlid,\r\n format: new KML({ showPointNames: true }),\r\n }),\r\n });\r\n layer.setVisible(kml.visible);\r\n thisObj.kmlLayers.push(layer);\r\n });\r\n\r\n this.kmlLayers.forEach(function (layer) {\r\n thisObj.map.addLayer(layer);\r\n });\r\n }\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Import dữ liệu LRIT từ file excel để hiển thị trên trình duyệt\r\n * */\r\n onClick_ImportLritData() {\r\n var thisObj = this;\r\n var input = document.getElementById('file');\r\n if (!input) {\r\n this.alertService.error(\"Không tìm thấy đối tượng 'file'.\");\r\n return\r\n }\r\n else if (!input.files) {\r\n this.alertService.error(\"Trình duyệt này không hỗ trợ thuộc tính 'files' của file input.\");\r\n return\r\n }\r\n else if (!input.files[0]) {\r\n this.alertService.error(\"Bạn chưa chọn file dữ liệu.\");\r\n }\r\n else {\r\n var file = input.files[0];\r\n if (CommonLib.GetFileType(file.name) === 'xlsx' || CommonLib.GetFileType(file.name) === 'xls') {\r\n let formData = new FormData();\r\n formData.append('upload', file)\r\n thisObj.uploadService.UploadExcel(formData).subscribe({\r\n next: response => {\r\n CommonLib.loadingHide();\r\n if (response instanceof Array) {\r\n if (response.length > 0) {\r\n response.forEach(function (arrTrackItem) {\r\n var dataItems = CommonLib.parseArray(TrackItemModel, arrTrackItem);\r\n if (dataItems.length <= 0) {\r\n this.alertService.info(\"Không có dữ liệu trong khoảng thời gian này\");\r\n return;\r\n }\r\n var stt = 1;\r\n dataItems.forEach(function (item) {\r\n item.initUtcpos();\r\n item.shipid = -1;\r\n item.stt = stt;\r\n stt++;\r\n });\r\n thisObj.layerDataItem.addTracks(dataItems);\r\n });\r\n } else {\r\n this.alertService.info(\"Không có dữ liệu trong khoảng thời gian này!\");\r\n }\r\n }\r\n },\r\n error: err => {\r\n CommonLib.loadingHide();\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n } else {\r\n this.alertService.error(\"File upload sai định dạng\");\r\n }\r\n }\r\n }\r\n\r\n onChange_Class_All() {\r\n this.layerShips.removeAllFeature();\r\n this.layerShips.addFeatures_HistoryShips(this.ships_all);\r\n }\r\n\r\n onChange_ClassA() {\r\n this.layerShips.removeAllFeature();\r\n this.layerShips.addFeatures_HistoryShips(this.ships_clsA);\r\n }\r\n onChange_ClassB() {\r\n this.layerShips.removeAllFeature();\r\n this.layerShips.addFeatures_HistoryShips(this.ships_clsB);\r\n }\r\n\r\n /**\r\n * Click vào menu công cụ, chọn hình vẽ\r\n * @param type\r\n */\r\n onClick_MeasureDrawing(type, DSTau) {\r\n if (this.layerMeasure.isDrawing) {\r\n this.layerMeasure.removeDrawInteraction();\r\n this.layerMeasure.isDrawing = false;\r\n }\r\n this.layerMeasure.addInteraction(type, DSTau);\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.css']\n})\nexport class FooterComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { UserModel } from './_models/user.model';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class Globals {\r\n global: UserModel;\r\n\r\n}\r\n","import { Component, Input, OnChanges, Output, EventEmitter } from '@angular/core';\r\nimport { AlertService } from '../../_services/alert.service';\r\nimport { ELMS, CommonLib } from '../../_providers/commonLib';\r\nimport { DatePipe } from '@angular/common';\r\nimport { UserService } from '../../_services/user.service';\r\nimport { UserConfigs } from '../../_models/userConfigs.model';\r\nimport { UserModel } from '../../_models/user.model';\r\nimport { Router } from '@angular/router';\r\nimport { AjaxResponseModel } from '../../_models/ajaxResponse.model';\r\n\r\n\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-doi-mat-khau',\r\n templateUrl: './doi-mat-khau.component.html',\r\n})\r\n\r\nexport class DoiMatKhauComponent implements OnChanges {\r\n constructor(private router: Router, private userApi: UserService, private alertService: AlertService) { }\r\n \r\n id: number;\r\n otp: string;\r\n password: string;\r\n repassword: string;\r\n\r\n @Input() email;\r\n\r\n ngOnChanges() {\r\n \r\n }\r\n\r\n doSetPass() {\r\n if (this.email == \"\" || this.email == null) {\r\n this.alertService.info(\"Chưa nhập email\");\r\n return;\r\n }\r\n if (this.otp == \"\" || this.otp == null || this.otp.length != 6) {\r\n this.alertService.info(\"Xem lại thông tin Mã kích hoạt\");\r\n return;\r\n }\r\n if (this.password == \"\" || this.password == null) {\r\n this.alertService.info(\"Chưa nhập mật khẩu mới\");\r\n return;\r\n }\r\n if (this.repassword == \"\" || this.repassword == null) {\r\n this.alertService.info(\"Chưa nhập lại mật khẩu mới\");\r\n return;\r\n }\r\n if (this.password != this.repassword) {\r\n this.alertService.info(\"Mật khẩu nhập lại chưa trùng khớp\");\r\n return;\r\n }\r\n\r\n this.userApi.setpass(this.email, this.otp, this.password).subscribe({\r\n next: userLogged => {\r\n if (userLogged instanceof UserModel) {\r\n this.closeDialog();\r\n UserConfigs.setUserLogged(userLogged, true);\r\n this.router.navigate([\"main\"]);\r\n this.alertService.success(\"Mật khẩu đã được đổi thành công!\");\r\n }\r\n },\r\n error: err => {\r\n if (err instanceof AjaxResponseModel) {\r\n this.alertService.error(err.ErrorMsg);\r\n } else {\r\n this.alertService.error(err);\r\n }\r\n },\r\n });\r\n }\r\n\r\n closeDialog() {\r\n $(ELMS.DoiMatKhau).dialog(\"close\");\r\n }\r\n}\r\n","import { Component, Input, OnChanges, Output, EventEmitter } from '@angular/core';\r\nimport { AlertService } from '../../_services/alert.service';\r\nimport { ELMS, CommonLib } from '../../_providers/commonLib';\r\nimport { DatePipe } from '@angular/common';\r\nimport { UserService } from '../../_services/user.service';\r\nimport { AjaxResponseModel } from '../../_models/ajaxResponse.model';\r\n\r\n\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-get-ma-kich-hoat',\r\n templateUrl: './get-ma-kich-hoat.component.html',\r\n})\r\n\r\nexport class GetMaKichHoatComponent implements OnChanges {\r\n constructor(private userApi: UserService, private alertService: AlertService) { }\r\n \r\n email: string;\r\n\r\n // format datetime\r\n datePipe = new DatePipe('en-US');\r\n\r\n ngOnChanges() {\r\n \r\n }\r\n\r\n GuiMaKichHoat() {\r\n if (this.email == \"\" || this.email == null) {\r\n this.alertService.info(\"Chưa nhập email\");\r\n return;\r\n }\r\n if (!CommonLib.isEmailFormat(this.email)) {\r\n this.alertService.info(\"Email không đúng định dạng\");\r\n return;\r\n }\r\n\r\n this.userApi.getmakichhoat(this.email).subscribe({\r\n next: res => {\r\n if (res == \"OK\") {\r\n this.alertService.success(\"Mã kích hoạt đã gửi về email \" + this.email + \".\");\r\n this.ShowDoiMatKhau(this.email);\r\n } \r\n },\r\n error: err => {\r\n if (err instanceof AjaxResponseModel) {\r\n this.alertService.error(err.ErrorMsg);\r\n } else {\r\n this.alertService.error(err);\r\n }\r\n }\r\n });\r\n }\r\n\r\n ShowDoiMatKhau(email) {\r\n CommonLib.createDialog(ELMS.DoiMatKhau, \"ĐỔI MẬT KHẨU\", 'ui-dialog-doi-mat-khau', 300);\r\n this.closeDialog();\r\n }\r\n\r\n closeDialog() {\r\n $(ELMS.GetMaKichHoat).dialog(\"close\");\r\n }\r\n}\r\n","module.exports = \"body,html{\\r\\n font-size:12px;\\r\\n width:100%;\\r\\n overflow:hidden;\\r\\n }\\r\\n\\r\\n button{\\r\\n background-color: #243879 !important;\\r\\n color:white !important;\\r\\n }\\r\\n\\r\\n /*:host {\\r\\n background: url(../../assets/img/bg4.png) #fff no-repeat top left fixed;\\r\\n display: flex;\\r\\n width: 100%;\\r\\n}*/\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vbG9naW4uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGNBQWM7SUFDZCxVQUFVO0lBQ1YsZUFBZTtFQUNqQjs7RUFFQTtJQUNFLG9DQUFvQztJQUNwQyxzQkFBc0I7RUFDeEI7O0VBRUY7Ozs7RUFJRSIsImZpbGUiOiJzcmMvYXBwL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJib2R5LGh0bWx7XHJcbiAgICBmb250LXNpemU6MTJweDtcclxuICAgIHdpZHRoOjEwMCU7XHJcbiAgICBvdmVyZmxvdzpoaWRkZW47XHJcbiAgfVxyXG5cclxuICBidXR0b257XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQzODc5ICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjp3aGl0ZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbi8qOmhvc3Qge1xyXG4gIGJhY2tncm91bmQ6IHVybCguLi8uLi9hc3NldHMvaW1nL2JnNC5wbmcpICNmZmYgbm8tcmVwZWF0IHRvcCBsZWZ0IGZpeGVkO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn0qL1xyXG4iXX0= */\"","import { UserModel } from '../_models/user.model';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UserService } from '../_services/user.service';\r\nimport { AjaxResponseModel } from '../_models/ajaxResponse.model';\r\nimport { UserConfigs } from '../_models/userConfigs.model';\r\nimport { AlertService } from '../_services/alert.service';\r\nimport { CommonLib, ELMS } from '../_providers/commonLib';\r\n\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\n\r\nexport class LoginComponent implements OnInit {\r\n title = 'Đăng nhập';\r\n userLogin: UserModel = new UserModel();\r\n remember: boolean;\r\n\r\n constructor(private router: Router, private userApi: UserService, private alertService: AlertService) { }\r\n\r\n ngOnInit() {\r\n if (UserConfigs.getCurrentUser()) {\r\n this.router.navigate([\"main\"]);\r\n }\r\n this.remember = true;\r\n }\r\n\r\n checkEmail(email) {\r\n var mailformat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\r\n if (mailformat.test(email)) {\r\n return true;\r\n }\r\n else {\r\n alert(\"Địa chỉ email không hợp lệ\");\r\n return false;\r\n }\r\n }\r\n\r\n checkPassword(pw) {\r\n //var passw = /^[A-Za-z0-9]\\w{7,15}$/;\r\n //if (passw.test(pw)) {\r\n // return true;\r\n //}\r\n //else {\r\n // return false;\r\n //}\r\n return true;\r\n }\r\n\r\n doLogin() {\r\n if (this.userLogin.Email == undefined || this.userLogin.Password == undefined\r\n || this.userLogin.Email == \"\" || this.userLogin.Password == \"\") {\r\n this.alertService.error(\"Chưa nhập đủ thông tin đăng nhập!\");\r\n return;\r\n } else {\r\n\r\n if (this.checkEmail(this.userLogin.Email) && this.checkPassword(this.userLogin.Password)) {\r\n this.userApi.login(this.userLogin.Email, this.userLogin.Password).subscribe({\r\n next: userLogged => {\r\n if (userLogged instanceof UserModel) {\r\n UserConfigs.setUserLogged(userLogged, this.remember);\r\n this.router.navigate([\"main\"]);\r\n }\r\n },\r\n error: err => {\r\n if (err instanceof AjaxResponseModel) {\r\n console.error(err.ErrorMsg);\r\n this.alertService.error(err.ErrorMsg);\r\n } else {\r\n this.alertService.error(err);\r\n }\r\n },\r\n });\r\n } else {\r\n alert('Sai thông tin email hoặc mật khẩu');\r\n }\r\n }\r\n }\r\n\r\n doShowResetPass() {\r\n CommonLib.createDialog(ELMS.GetMaKichHoat, \"QUÊN MẬT KHẨU\", 'ui-dialog-get-ma-kich-hoat', 300);\r\n }\r\n}\r\n\r\n","module.exports = \".loading {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n z-index: 10000000;\\r\\n opacity: .5;\\r\\n display: none;\\r\\n position: fixed;\\r\\n overflow: auto;\\r\\n background-color: rgba(0,0,0,0.9);\\r\\n top: 0;\\r\\n left: 0;\\r\\n overflow-x:hidden;\\r\\n overflow-y:auto;\\r\\n}\\r\\n \\r\\n .loading .loading-content {\\r\\n position: relative;\\r\\n margin: 25% 49%;\\r\\n z-index: 10000001;\\r\\n }\\r\\n \\r\\n .loading .loading-content h3 {\\r\\n color: blue;\\r\\n }\\r\\n \\r\\n .loading .loading-content img {\\r\\n width: 100px;\\r\\n position: relative;\\r\\n margin: 25% 49%;\\r\\n z-index: 10000001;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFpbi9tYWluLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsYUFBYTtFQUNiLGVBQWU7RUFDZixjQUFjO0VBQ2QsaUNBQWlDO0VBQ2pDLE1BQU07RUFDTixPQUFPO0VBQ1AsaUJBQWlCO0VBQ2pCLGVBQWU7QUFDakI7O0VBRUU7SUFDRSxrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLGlCQUFpQjtFQUNuQjs7RUFDRTtNQUNFLFdBQVc7SUFDYjs7RUFDQTtNQUNFLFlBQVk7TUFDWixrQkFBa0I7TUFDbEIsZUFBZTtNQUNmLGlCQUFpQjtJQUNuQiIsImZpbGUiOiJzcmMvYXBwL21haW4vbWFpbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmxvYWRpbmcge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAxMDAwMDAwMDtcclxuICBvcGFjaXR5OiAuNTtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuOSk7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgb3ZlcmZsb3cteDpoaWRkZW47XHJcbiAgb3ZlcmZsb3cteTphdXRvO1xyXG59XHJcbiAgXHJcbiAgLmxvYWRpbmcgLmxvYWRpbmctY29udGVudCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXJnaW46IDI1JSA0OSU7XHJcbiAgICB6LWluZGV4OiAxMDAwMDAwMTtcclxuICB9XHJcbiAgICAubG9hZGluZyAubG9hZGluZy1jb250ZW50IGgzIHtcclxuICAgICAgY29sb3I6IGJsdWU7XHJcbiAgICB9XHJcbiAgICAubG9hZGluZyAubG9hZGluZy1jb250ZW50IGltZyB7XHJcbiAgICAgIHdpZHRoOiAxMDBweDtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBtYXJnaW46IDI1JSA0OSU7XHJcbiAgICAgIHotaW5kZXg6IDEwMDAwMDAxO1xyXG4gICAgfVxyXG4iXX0= */\"","import { Router } from '@angular/router';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { UserConfigs } from '../_models/userConfigs.model';\r\n\r\n\r\n@Component({\r\n selector: 'app-main',\r\n templateUrl: './main.component.html',\r\n styleUrls: ['./main.component.css']\r\n})\r\n\r\nexport class MainComponent implements OnInit {\r\n\r\n constructor(private router: Router) { }\r\n\r\n \r\n ngOnInit() {\r\n if (!UserConfigs.getCurrentUser()) {\r\n this.router.navigate([\"login\"]);\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vbmF2YmFyL25hdmJhci5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { menu } from '../../menu';\r\nimport { submenu } from '../../submenu';\r\nimport { MENUS } from '../../mock-menu';\r\n\r\ndeclare function openTab(event: any, id: string): any;\r\ndeclare function closeTab(id: string): any;\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-navbar',\r\n templateUrl: './navbar.component.html',\r\n styleUrls: ['./navbar.component.css']\r\n})\r\nexport class NavbarComponent implements OnInit {\r\n menus: menu[] = MENUS;\r\n\r\n constructor() {\r\n \r\n }\r\n\r\n opentab(event: any, id: string) {\r\n openTab(event, id);\r\n }\r\n\r\n closetab(id: string) {\r\n closeTab(id);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vdGFiY29udGVudC9jaHUtZGF1LXR1L2NodS1kYXUtdHUuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-chu-dau-tu',\n templateUrl: './chu-dau-tu.component.html',\n styleUrls: ['./chu-dau-tu.component.css']\n})\nexport class ChuDauTuComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vdGFiY29udGVudC9jaHUtdGF1L2NodS10YXUuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-chu-tau',\n templateUrl: './chu-tau.component.html',\n styleUrls: ['./chu-tau.component.css']\n})\nexport class ChuTauComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vdGFiY29udGVudC9naWFtLXNhdC1uZ29haS10dXllbi9naWFtLXNhdC1uZ29haS10dXllbi5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-giam-sat-ngoai-tuyen',\n templateUrl: './giam-sat-ngoai-tuyen.component.html',\n styleUrls: ['./giam-sat-ngoai-tuyen.component.css']\n})\nexport class GiamSatNgoaiTuyenComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, OnChanges, Output, EventEmitter } from '@angular/core';\r\nimport { CagetoryService } from '../../../../_services/category.service';\r\nimport { DsTauModel } from '../../../../_models/dstau.model';\r\nimport { AlertService } from '../../../../_services/alert.service';\r\nimport { ELMS, CommonLib } from '../../../../_providers/commonLib';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ShipInDSModel } from '../../../../_models/shipinds.model';\r\n\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-add-tau-vao-ds',\r\n templateUrl: './add-tau-vao-ds.component.html',\r\n})\r\n\r\nexport class AddTauVaoDsComponent implements OnChanges {\r\n constructor(private cateApi: CagetoryService, private alertService: AlertService) { }\r\n tentau: string = '';\r\n ngaythicong: string = \"\";\r\n dsid: number;\r\n tends: string;\r\n mmsi: string;\r\n matau: number;\r\n action: string;\r\n id: number;\r\n\r\n @Input() InputObjs;\r\n\r\n // format datetime\r\n datePipe = new DatePipe('en-US');\r\n\r\n ngOnChanges() {\r\n if (!this.InputObjs || this.InputObjs == undefined) {\r\n return;\r\n }\r\n\r\n\r\n this.ngaythicong = this.datePipe.transform(new Date(), 'yyyy-MM-dd');\r\n\r\n this.tentau = this.InputObjs.tentau;\r\n this.dsid = this.InputObjs.dsid;\r\n this.tends = this.InputObjs.tends;\r\n this.mmsi = this.InputObjs.mmsi;\r\n this.matau = this.InputObjs.matau;\r\n this.action = this.InputObjs.action;\r\n\r\n if (this.action == 'edit') {\r\n this.loadData();\r\n }\r\n if (this.action == 'add') {\r\n //this.tends = '';\r\n }\r\n }\r\n\r\n loadData() {\r\n if (this.dsid) {\r\n this.cateApi.GetTauTrongDsTau(this.dsid, this.matau, this.mmsi).subscribe({\r\n next: res => {\r\n if (res instanceof ShipInDSModel) {\r\n this.tentau = res.name;\r\n this.ngaythicong = this.datePipe.transform(res.date_ngaythicong, 'yyyy-MM-dd');\r\n this.id = res.id;\r\n }\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n if (this.tentau == undefined || this.tentau.trim() == \"\" || this.ngaythicong == \"\") {\r\n this.alertService.error(\"Chưa nhập đủ thông tin\");\r\n return;\r\n }\r\n\r\n var thisobj = this;\r\n var date = new Date(this.ngaythicong);\r\n var ngaytc = CommonLib.convertInputTime(date.getTime());\r\n\r\n if (this.action == 'add') {\r\n this.cateApi.AddShipToDsTau(this.dsid, this.matau, this.mmsi, ngaytc, this.tentau).subscribe({\r\n next: res => {\r\n if (res) {\r\n this.alertService.success(\"Đã thêm [\" + thisobj.tentau + \"] vào đội tàu [\" + thisobj.tends + \"]\");\r\n } else {\r\n this.alertService.info(\"Tàu [\" + thisobj.tentau + \"] đã có trong đội tàu [\" + thisobj.tends + \"]\");\r\n }\r\n this.closeDialog();\r\n }\r\n });\r\n } else if (this.action == 'edit') {\r\n if (this.id) {\r\n this.cateApi.UpdateTauTrongDsTau(this.id, this.tentau, ngaytc).subscribe({\r\n next: res => {\r\n if (res) {\r\n this.alertService.success(\"Cập nhật thành công!\");\r\n } else {\r\n this.alertService.error(\"Có lỗi trong quá trình cập nhật!\");\r\n }\r\n this.closeDialog();\r\n }\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n closeDialog() {\r\n $(ELMS.AddTauVaoDs).dialog(\"close\");\r\n }\r\n}\r\n","import { Component, Input, OnChanges, Output, EventEmitter } from '@angular/core';\r\nimport { CagetoryService } from '../../../../_services/category.service';\r\nimport { DsTauModel } from '../../../../_models/dstau.model';\r\nimport { AlertService } from '../../../../_services/alert.service';\r\nimport { ELMS, CommonLib } from '../../../../_providers/commonLib';\r\n\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-edit-dstau',\r\n templateUrl: './edit-dstau.component.html',\r\n})\r\n\r\nexport class EditDsTauComponent implements OnChanges {\r\n constructor(private cateApi: CagetoryService, private alertService: AlertService) { }\r\n tends: string = '';\r\n @Input() dsid: number;\r\n @Input() action: string;\r\n @Output() actionCompleted: EventEmitter = new EventEmitter();\r\n @Output() drawPolygon_DSTau: EventEmitter = new EventEmitter();\r\n \r\n\r\n ngOnChanges() {\r\n if (this.action == 'edit') {\r\n this.loadDsTauEdit();\r\n }\r\n if (this.action == 'add') {\r\n this.tends = '';\r\n }\r\n }\r\n\r\n loadDsTauEdit() {\r\n if (this.dsid) {\r\n this.cateApi.GetDsTau(this.dsid).subscribe({\r\n next: res => {\r\n if (res instanceof DsTauModel) {\r\n this.tends = res.tends;\r\n }\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n }\r\n\r\n save() {\r\n if (this.tends == undefined || this.tends.trim() == \"\") {\r\n this.alertService.error(\"Chưa nhập đủ thông tin\");\r\n return;\r\n }\r\n \r\n if (this.action == 'add') {\r\n this.cateApi.AddDsTau(this.tends).subscribe({\r\n next: res => {\r\n if (res) {\r\n this.alertService.success(\"Tạo danh sách thành công!\");\r\n } else {\r\n this.alertService.error(\"Tên đội tàu \\\" \" + this.tends + \" \\\" đã được sử dụng!\");\r\n }\r\n this.actionCompleted.emit(true);\r\n this.closeDialog();\r\n }\r\n });\r\n } else if (this.action == 'edit') {\r\n if (this.dsid) {\r\n this.cateApi.EditDsTau(this.dsid, this.tends).subscribe({\r\n next: res => {\r\n if (res) {\r\n this.alertService.success(\"Cập nhật thành công!\");\r\n } else {\r\n this.alertService.error(\"Tên đội tàu \\\" \" + this.tends + \" \\\" đã được sử dụng!\");\r\n }\r\n this.actionCompleted.emit(true);\r\n this.closeDialog();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n draw() {\r\n var dstau: DsTauModel = new DsTauModel();\r\n dstau.dsid = this.dsid;\r\n dstau.tends = this.tends;\r\n this.drawPolygon_DSTau.emit(dstau);\r\n this.closeDialog();\r\n }\r\n\r\n closeDialog() {\r\n $(ELMS.EditDsTau).dialog(\"close\");\r\n }\r\n}\r\n","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { CagetoryService } from '../../../../_services/category.service';\r\nimport { AlertService } from '../../../../_services/alert.service';\r\nimport { ELMS, CommonLib } from '../../../../_providers/commonLib';\r\nimport { DrawItemnModel } from '../../../../_models/draw/drawItem.model';\r\nimport { LayerMeasure } from '../../../../_class/LayerMeasure';\r\nimport { ConfirmService } from '../../../../_services/confirm.service';\r\nimport { AjaxResponseModel } from '../../../../_models/ajaxResponse.model';\r\n\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-edit-measure',\r\n templateUrl: './edit-measure.component.html',\r\n})\r\n\r\nexport class EditMeasureComponent implements OnChanges {\r\n constructor(private cateApi: CagetoryService, private alertService: AlertService, private confirmService: ConfirmService) {\r\n\r\n }\r\n types: string[] = ['POLYGON', 'CIRCLE', 'LINESTRING'];\r\n @Input() guid: string;\r\n @Input() drawType: string;\r\n @Input() layerMeasure: LayerMeasure;\r\n drawItem: DrawItemnModel;\r\n isData: boolean = false;\r\n feature;\r\n\r\n ngOnChanges() {\r\n if (this.guid) {\r\n this.feature = this.layerMeasure.getFeatureByGUID(this.guid);\r\n var data = this.feature.get('data');\r\n if (data instanceof DrawItemnModel) {\r\n this.drawItem = data;\r\n this.isData = true;\r\n } else {\r\n this.drawItem = new DrawItemnModel();\r\n this.drawItem.init();\r\n this.drawItem.id = this.guid;\r\n switch (this.drawType) {\r\n case this.types[0]: //POLYGON\r\n this.drawItem.points_dms = this.layerMeasure.Polygon_GetPointsToDMS(this.feature);\r\n break;\r\n case this.types[1]: //CIRCLE\r\n var params = this.layerMeasure.Circle_GetParams(this.feature);\r\n this.drawItem.latDMS = params[0][0];\r\n this.drawItem.lonDMS = params[0][1];\r\n this.drawItem.radius = params[1];\r\n break;\r\n case this.types[2]: //LINESTRING\r\n this.drawItem.points_dms = this.layerMeasure.LineString_GetPointsToDMS(this.feature);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n //ngDoCheck() {\r\n // if (this.feature != null) {\r\n // this.ngOnChanges();\r\n // }\r\n //}\r\n \r\n save() {\r\n\r\n if (this.drawItem.mota !== null && this.drawItem.name !== null) {\r\n\r\n //console.log(this.drawItem.mota !== null, '#####');\r\n // remove cac ky tu dac biet tu cac input\r\n\r\n this.feature = this.layerMeasure.getFeatureByGUID(this.guid);\r\n if (this.feature != null) {\r\n switch (this.drawType) {\r\n case this.types[0]: //POLYGON\r\n this.cateApi.SavePolygon(this.drawItem).subscribe({\r\n next: res => {\r\n this.layerMeasure.removeFeature(this.feature);\r\n this.layerMeasure.loadDrawItems([res]);\r\n this.alertService.success(\"Cập nhật thành công!\");\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n if (err instanceof AjaxResponseModel) {\r\n this.alertService.error(err.ErrorMsg);\r\n } else {\r\n this.alertService.error(err);\r\n }\r\n }\r\n });\r\n break;\r\n case this.types[1]: //CIRCLE\r\n this.cateApi.SaveCircle(this.drawItem).subscribe({\r\n next: res => {\r\n this.layerMeasure.removeFeature(this.feature);\r\n this.layerMeasure.loadDrawItems([res]);\r\n this.alertService.success(\"Cập nhật thành công!\");\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n if (err instanceof AjaxResponseModel) {\r\n this.alertService.error(err.ErrorMsg);\r\n } else {\r\n this.alertService.error(err);\r\n }\r\n }\r\n });\r\n break;\r\n case this.types[2]: //LINESTRING\r\n this.cateApi.SaveLineString(this.drawItem).subscribe({\r\n next: res => {\r\n this.layerMeasure.removeFeature(this.feature);\r\n this.layerMeasure.loadDrawItems([res]);\r\n this.alertService.success(\"Cập nhật thành công!\");\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n if (err instanceof AjaxResponseModel) {\r\n this.alertService.error(err.ErrorMsg);\r\n } else {\r\n this.alertService.error(err);\r\n } \r\n }\r\n });\r\n break;\r\n }\r\n }\r\n\r\n this.closeDialog();\r\n\r\n } else {\r\n this.alertService.warn(\"Thông tin chưa đầy đủ!\");\r\n }\r\n }\r\n\r\n delete() {\r\n this.confirmService.confirm('Xác nhận', 'Bạn muốn xóa hình vẽ này ?')\r\n .then(confirmed => {\r\n if (confirmed && this.isData) {\r\n this.cateApi.DeleteDrawItem(this.drawItem.id).subscribe({\r\n next: res => {\r\n this.alertService.success(\"Đã xóa hình vẽ\");\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n this.alertService.error(\"Có lỗi trong quá trình xử lý. Vui lòng thực hiện lại!\");\r\n }\r\n });\r\n }\r\n this.feature = this.layerMeasure.getFeatureByGUID(this.guid);\r\n if (this.feature) {\r\n this.layerMeasure.removeFeature(this.feature);\r\n }\r\n this.closeDialog();\r\n })\r\n }\r\n\r\n closeDialog() {\r\n $(ELMS.EditMeasure).dialog(\"close\");\r\n }\r\n}\r\n","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { CagetoryService } from '../../../../_services/category.service';\r\nimport { AlertService } from '../../../../_services/alert.service';\r\nimport { ELMS, CommonLib } from '../../../../_providers/commonLib';\r\nimport { DrawItemnModel } from '../../../../_models/draw/drawItem.model';\r\nimport { LayerMeasure } from '../../../../_class/LayerMeasure';\r\nimport { ConfirmService } from '../../../../_services/confirm.service';\r\n\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-edit-polygon-dstau',\r\n templateUrl: './edit-polygon-dstau.component.html',\r\n})\r\n\r\nexport class EditPolygonDSTauComponent implements OnChanges {\r\n constructor(private cateApi: CagetoryService, private alertService: AlertService, private confirmService: ConfirmService) {\r\n\r\n }\r\n @Input() guid: string;\r\n @Input() layerMeasure: LayerMeasure;\r\n @Input() dsid: number;\r\n @Input() tends: string;\r\n drawItem: DrawItemnModel;\r\n isData: boolean = false;\r\n feature;\r\n\r\n ngOnChanges() {\r\n if (this.guid) {\r\n this.feature = this.layerMeasure.getFeatureByGUID(this.guid);\r\n var data = this.feature.get('data');\r\n if (data instanceof DrawItemnModel) {\r\n this.drawItem = data;\r\n this.drawItem.dsid = this.dsid;\r\n this.drawItem.tends = this.tends;\r\n this.isData = true;\r\n } else {\r\n this.drawItem = new DrawItemnModel();\r\n this.drawItem.init();\r\n this.drawItem.id = this.guid;\r\n this.drawItem.dsid = this.dsid;\r\n this.drawItem.tends = this.tends;\r\n this.isData = false;\r\n // Ve theo POLYGON\r\n this.drawItem.points_dms = this.layerMeasure.Polygon_GetPointsToDMS(this.feature);\r\n }\r\n }\r\n }\r\n\r\n\r\n save() {\r\n if (this.drawItem.toado != '') {\r\n this.feature = this.layerMeasure.getFeatureByGUID(this.guid);\r\n if (this.feature != null) {\r\n this.cateApi.SaveVungThiCong(this.drawItem).subscribe({\r\n next: res => {\r\n this.layerMeasure.removeFeature(this.feature);\r\n var f = this.layerMeasure.getFeaturesByDsID(this.dsid);\r\n if (f) {\r\n this.layerMeasure.removeFeature(f);\r\n }\r\n this.layerMeasure.loadDrawItems([res]);\r\n this.alertService.success(\"Cập nhật thành công!\");\r\n this.isData = true;\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n this.alertService.error(err);\r\n }\r\n });\r\n }\r\n this.closeDialog();\r\n } else {\r\n this.alertService.warn(\"Thông tin chưa đầy đủ!\");\r\n }\r\n }\r\n\r\n delete() {\r\n this.confirmService.confirm('Xác nhận', 'Bạn muốn xóa hình vẽ này ?')\r\n .then(confirmed => {\r\n if (confirmed && this.isData) {\r\n this.cateApi.DeleteVungThiCong(this.dsid).subscribe({\r\n next: res => {\r\n this.alertService.success(\"Đã vùng thi công của đội tàu: \" + this.tends);\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n this.alertService.error(\"Có lỗi trong quá trình xử lý. Vui lòng thực hiện lại!\");\r\n }\r\n });\r\n }\r\n this.feature = this.layerMeasure.getFeatureByGUID(this.guid);\r\n if (this.feature) {\r\n this.layerMeasure.removeFeature(this.feature);\r\n }\r\n this.closeDialog();\r\n })\r\n }\r\n\r\n closeDialog() {\r\n $(ELMS.EditPolygonDSTau).dialog(\"close\");\r\n }\r\n}\r\n","module.exports = \".popover-content {\\r\\n min-width: 180px;\\r\\n}\\r\\n\\r\\n#popupInfoShip {\\r\\n background-color: #fff;\\r\\n min-width: 350px;\\r\\n}\\r\\n\\r\\n#overlayTrackInfo {\\r\\n background-color: #000;\\r\\n color: #fff;\\r\\n border: 1px solid #fff;\\r\\n padding: 5px 10px;\\r\\n font-size: 12px;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.ico {\\r\\n width: 20px;\\r\\n}\\r\\n\\r\\nfieldset {\\r\\n border: 1px solid #E8EAED;\\r\\n padding: 8px;\\r\\n outline: none;\\r\\n}\\r\\n\\r\\nlegend {\\r\\n display: inline;\\r\\n font-size: 13px;\\r\\n margin-left: 30px;\\r\\n padding: 0 5px 0 10px;\\r\\n}\\r\\n\\r\\n.tool {\\r\\n font-size: 12px;\\r\\n padding: 6px 10px;\\r\\n position: absolute;\\r\\n right: 0;\\r\\n height: 30px;\\r\\n top: 50px;\\r\\n cursor: pointer;\\r\\n z-index: 1;\\r\\n max-width: 350px;\\r\\n}\\r\\n\\r\\nbutton {\\r\\n margin-bottom: 3px;\\r\\n /*width: 90%;*/\\r\\n border-radius:2px;\\r\\n}\\r\\n\\r\\n.btn-dstau button {\\r\\n width: 30px;\\r\\n}\\r\\n\\r\\n.tool ul {\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n margin-top: 6px;\\r\\n}\\r\\n\\r\\n.tool li {\\r\\n background: #0984e3;\\r\\n list-style: none;\\r\\n padding: 8px;\\r\\n}\\r\\n\\r\\n.hideList > .border-bottom {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.tool i {\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n.tool:hover {\\r\\n \\r\\n}\\r\\n\\r\\n.toggle {\\r\\n background-color: #243879;\\r\\n min-width: 330px;\\r\\n display: none;\\r\\n color: white;\\r\\n right: 10px;\\r\\n margin-top: 25px;\\r\\n padding: 10px 0 10px 15px;\\r\\n}\\r\\n\\r\\n.toggle li:hover {\\r\\n background-color: #4896DE;\\r\\n }\\r\\n\\r\\n.toggle .row {\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.ui-dialog-ship-popup .ui-dialog-title span{\\r\\n width: 65%;\\r\\n color: white;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.ui-dialog-ship-popup .ui-dialog-title img {\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n/*CUSTOM GRID CSS*/\\r\\n\\r\\n.e-grid .e-headercell, .e-grid .e-detailheadercell, span.e-headertext {\\r\\n font-size: 10.5px;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.e-grid .e-rowcell:first-child, .e-grid .e-summarycell:first-child {\\r\\n padding-left: 2px !important;\\r\\n}\\r\\n\\r\\n.e-grid .e-rowcell {\\r\\n padding: 5px 3px !important;\\r\\n font-size: 10px;\\r\\n}\\r\\n\\r\\n.e-grid .e-filterbarcell, .e-grid .e-filterbarcelldisabled {\\r\\n padding: 0 3px !important;\\r\\n}\\r\\n\\r\\n.e-grid .e-gridheader tr th:first-child {\\r\\n padding-left: 2px !important;\\r\\n}\\r\\n\\r\\n.e-grid .e-headercell, .e-grid .e-detailheadercell {\\r\\n padding: 0 3px !important;\\r\\n}\\r\\n\\r\\n.e-input-group input.e-input, .e-input-group.e-control-wrapper input.e-input, .e-input-group textarea.e-input, .e-input-group.e-control-wrapper textarea.e-input {\\r\\n font-size: 10px !important;\\r\\n}\\r\\n\\r\\n.ol-popup {\\r\\n position: absolute;\\r\\n background-color: white;\\r\\n -webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));\\r\\n filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));\\r\\n padding: 5px 10px;\\r\\n /*border-radius: 10px;*/\\r\\n border: 1px solid #cccccc;\\r\\n bottom: 15px;\\r\\n left: -50px;\\r\\n min-width: 100px;\\r\\n}\\r\\n\\r\\n#clearAllTrack {\\r\\n position: absolute;\\r\\n top: 5px;\\r\\n right: 5px;\\r\\n z-index: 120;\\r\\n width: 35px;\\r\\n box-shadow: 0 .5rem 1rem rgba(0,0,0,.15) !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFpbi90YWJjb250ZW50L2dpYW0tc2F0LXRydWMtdHV5ZW4vZ2lhbS1zYXQtdHJ1Yy10dXllbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usc0JBQXNCO0VBQ3RCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsc0JBQXNCO0VBQ3RCLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2Ysa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsWUFBWTtFQUNaLFNBQVM7RUFDVCxlQUFlO0VBQ2YsVUFBVTtFQUNWLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsU0FBUztFQUNULFVBQVU7RUFDVixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7O0FBRUE7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixZQUFZO0VBQ1osV0FBVztFQUNYLGdCQUFnQjtFQUNoQix5QkFBeUI7QUFDM0I7O0FBRUU7SUFDRSx5QkFBeUI7RUFDM0I7O0FBRUY7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsWUFBWTtFQUNaLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFHQSxrQkFBa0I7O0FBQ2xCO0VBQ0UsaUJBQWlCO0VBQ2pCLGlCQUFpQjtBQUNuQjs7QUFDQTtFQUNFLDRCQUE0QjtBQUM5Qjs7QUFDQTtFQUNFLDJCQUEyQjtFQUMzQixlQUFlO0FBQ2pCOztBQUNBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUNBO0VBQ0UsNEJBQTRCO0FBQzlCOztBQUNBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUNBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHVCQUF1QjtFQUN2QixzREFBc0Q7RUFDdEQsOENBQThDO0VBQzlDLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIseUJBQXlCO0VBQ3pCLFlBQVk7RUFDWixXQUFXO0VBQ1gsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixVQUFVO0VBQ1YsWUFBWTtFQUNaLFdBQVc7RUFDWCxtREFBbUQ7QUFDckQiLCJmaWxlIjoic3JjL2FwcC9tYWluL3RhYmNvbnRlbnQvZ2lhbS1zYXQtdHJ1Yy10dXllbi9naWFtLXNhdC10cnVjLXR1eWVuLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucG9wb3Zlci1jb250ZW50IHtcclxuICBtaW4td2lkdGg6IDE4MHB4O1xyXG59XHJcblxyXG4jcG9wdXBJbmZvU2hpcCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBtaW4td2lkdGg6IDM1MHB4O1xyXG59XHJcblxyXG4jb3ZlcmxheVRyYWNrSW5mbyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcclxuICBjb2xvcjogI2ZmZjtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xyXG4gIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcbi5pY28ge1xyXG4gIHdpZHRoOiAyMHB4O1xyXG59XHJcblxyXG5maWVsZHNldCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI0U4RUFFRDtcclxuICBwYWRkaW5nOiA4cHg7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxubGVnZW5kIHtcclxuICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgMTBweDtcclxufVxyXG5cclxuLnRvb2wge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nOiA2cHggMTBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG4gIHRvcDogNTBweDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgei1pbmRleDogMTtcclxuICBtYXgtd2lkdGg6IDM1MHB4O1xyXG59XHJcblxyXG5idXR0b24ge1xyXG4gIG1hcmdpbi1ib3R0b206IDNweDtcclxuICAvKndpZHRoOiA5MCU7Ki9cclxuICBib3JkZXItcmFkaXVzOjJweDtcclxufVxyXG5cclxuLmJ0bi1kc3RhdSBidXR0b24ge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG59XHJcblxyXG4udG9vbCB1bCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luLXRvcDogNnB4O1xyXG59XHJcblxyXG4udG9vbCBsaSB7XHJcbiAgYmFja2dyb3VuZDogIzA5ODRlMztcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIHBhZGRpbmc6IDhweDtcclxufVxyXG5cclxuLmhpZGVMaXN0ID4gLmJvcmRlci1ib3R0b20ge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi50b29sIGkge1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG4udG9vbDpob3ZlciB7XHJcbiAgXHJcbn1cclxuXHJcbi50b2dnbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMyNDM4Nzk7XHJcbiAgbWluLXdpZHRoOiAzMzBweDtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICByaWdodDogMTBweDtcclxuICBtYXJnaW4tdG9wOiAyNXB4O1xyXG4gIHBhZGRpbmc6IDEwcHggMCAxMHB4IDE1cHg7XHJcbn1cclxuXHJcbiAgLnRvZ2dsZSBsaTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDg5NkRFO1xyXG4gIH1cclxuXHJcbi50b2dnbGUgLnJvdyB7XHJcbiAgcGFkZGluZy10b3A6IDEwcHg7XHJcbn1cclxuXHJcbi51aS1kaWFsb2ctc2hpcC1wb3B1cCAudWktZGlhbG9nLXRpdGxlICBzcGFue1xyXG4gIHdpZHRoOiA2NSU7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLnVpLWRpYWxvZy1zaGlwLXBvcHVwIC51aS1kaWFsb2ctdGl0bGUgaW1nIHtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG5cclxuLypDVVNUT00gR1JJRCBDU1MqL1xyXG4uZS1ncmlkIC5lLWhlYWRlcmNlbGwsIC5lLWdyaWQgLmUtZGV0YWlsaGVhZGVyY2VsbCwgc3Bhbi5lLWhlYWRlcnRleHQge1xyXG4gIGZvbnQtc2l6ZTogMTAuNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcbi5lLWdyaWQgLmUtcm93Y2VsbDpmaXJzdC1jaGlsZCwgLmUtZ3JpZCAuZS1zdW1tYXJ5Y2VsbDpmaXJzdC1jaGlsZCB7XHJcbiAgcGFkZGluZy1sZWZ0OiAycHggIWltcG9ydGFudDtcclxufVxyXG4uZS1ncmlkIC5lLXJvd2NlbGwge1xyXG4gIHBhZGRpbmc6IDVweCAzcHggIWltcG9ydGFudDtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbn1cclxuLmUtZ3JpZCAuZS1maWx0ZXJiYXJjZWxsLCAuZS1ncmlkIC5lLWZpbHRlcmJhcmNlbGxkaXNhYmxlZCB7XHJcbiAgcGFkZGluZzogMCAzcHggIWltcG9ydGFudDtcclxufVxyXG4uZS1ncmlkIC5lLWdyaWRoZWFkZXIgdHIgdGg6Zmlyc3QtY2hpbGQge1xyXG4gIHBhZGRpbmctbGVmdDogMnB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuLmUtZ3JpZCAuZS1oZWFkZXJjZWxsLCAuZS1ncmlkIC5lLWRldGFpbGhlYWRlcmNlbGwge1xyXG4gIHBhZGRpbmc6IDAgM3B4ICFpbXBvcnRhbnQ7XHJcbn1cclxuLmUtaW5wdXQtZ3JvdXAgaW5wdXQuZS1pbnB1dCwgLmUtaW5wdXQtZ3JvdXAuZS1jb250cm9sLXdyYXBwZXIgaW5wdXQuZS1pbnB1dCwgLmUtaW5wdXQtZ3JvdXAgdGV4dGFyZWEuZS1pbnB1dCwgLmUtaW5wdXQtZ3JvdXAuZS1jb250cm9sLXdyYXBwZXIgdGV4dGFyZWEuZS1pbnB1dCB7XHJcbiAgZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5vbC1wb3B1cCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIC13ZWJraXQtZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFweCA0cHggcmdiYSgwLDAsMCwwLjIpKTtcclxuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDRweCByZ2JhKDAsMCwwLDAuMikpO1xyXG4gIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gIC8qYm9yZGVyLXJhZGl1czogMTBweDsqL1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgYm90dG9tOiAxNXB4O1xyXG4gIGxlZnQ6IC01MHB4O1xyXG4gIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbiNjbGVhckFsbFRyYWNrIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1cHg7XHJcbiAgcmlnaHQ6IDVweDtcclxuICB6LWluZGV4OiAxMjA7XHJcbiAgd2lkdGg6IDM1cHg7XHJcbiAgYm94LXNoYWRvdzogMCAuNXJlbSAxcmVtIHJnYmEoMCwwLDAsLjE1KSAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","import { ShipModel } from './../../../_models/ship.model';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ShipService } from '../../../_services/ship.service';\r\nimport { SHIPS_CACHE_ONLINE, SHIPS_CACHE_HISTORY, SHIPS_CACHE_SEARCH, SHIPS_CACHE_TRACKING } from '../../../app.component';\r\nimport { CommonLib, APPS, ELMS } from '../../../_providers/commonLib';\r\nimport { CagetoryService } from '../../../_services/category.service';\r\nimport { LuongHHModel } from '../../../_models/luonghh.model';\r\nimport { DsTauModel } from '../../../_models/dstau.model';\r\nimport { UserConfigs } from '../../../_models/userConfigs.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { interval, Subscription } from 'rxjs';\r\nimport { GridComponent, RowSelectEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { AlertService } from '../../../_services/alert.service';\r\nimport { ConfirmService } from '../../../_services/confirm.service';\r\n\r\n//OPENLAYERS\r\nimport Map from 'ol/Map.js';\r\nimport View from 'ol/View.js';\r\nimport { fromLonLat } from 'ol/proj';\r\nimport { Vector as VectorLayer } from 'ol/layer.js';\r\nimport { Vector as VectorSource } from 'ol/source.js';\r\nimport KML from 'ol/format/KML';\r\n\r\nimport { EventEmitterService } from '../../../_services/event-emitter.service';\r\nimport { LayerShips } from '../../../_class/LayerShips';\r\nimport { LayerTracks } from '../../../_class/LayerTracks';\r\nimport { LayerMeasure } from '../../../_class/LayerMeasure';\r\nimport { LayerExt } from '../../../_class/LayerExt';\r\nimport { TileLayerMap } from '../../../_class/TileLayerMap';\r\nimport { TrackItemModel } from '../../../_models/trackItem.model';\r\nimport { UserService } from '../../../_services/user.service';\r\nimport { UserKmlModel } from '../../../_models/userKml.model';\r\n/*import { isInteger } from '@ng-bootstrap/ng-bootstrap/util/util';*/\r\nimport { DrawItemnModel } from '../../../_models/draw/drawItem.model';\r\n\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-giam-sat-truc-tuyen',\r\n templateUrl: './giam-sat-truc-tuyen.component.html',\r\n styleUrls: ['./giam-sat-truc-tuyen.component.css']\r\n})\r\nexport class GiamSatTrucTuyenComponent implements OnInit {\r\n\r\n constructor(private shipApi: ShipService, private cateApi: CagetoryService, private userApi: UserService,\r\n private eventEmitterService: EventEmitterService,\r\n private alertService: AlertService, private confirmService: ConfirmService) {\r\n Window[\"GiamSatTrucTuyen\"] = this;\r\n }\r\n\r\n globalID = 0;\r\n\r\n // Angular grid\r\n public dataSourceShips: ShipModel[];\r\n public dataSourceShips_DSTau: ShipModel[];\r\n @ViewChild('gridTau', { static: false }) public gridTau: GridComponent;\r\n @ViewChild('gridTau_DSTau', { static: false }) public gridTau_DSTau: GridComponent;\r\n\r\n // select2 Luong\r\n Luonghh: LuongHHModel[];\r\n dsTau: DsTauModel[];\r\n\r\n //Openlayers Map\r\n map: Map;\r\n tileLayer: TileLayerMap;\r\n layerExt: LayerExt;\r\n layerShips: LayerShips;\r\n layerTracks: LayerTracks;\r\n layerMeasure: LayerMeasure;\r\n\r\n // Để gửi sang popup-component\r\n shipEx_ToPopupComponent: ShipModel;\r\n\r\n // Filter \r\n filterOnlineTime: number = -1;\r\n filterTypeData: string = APPS.FILTER_NAOVET;\r\n\r\n disabledOnlineTime: string = null;\r\n // display data\r\n display: string = 'online';\r\n onlineMap: string = 'online';\r\n historyMap: string = 'history';\r\n isShowHistoryMap: boolean = false;\r\n\r\n // format datetime\r\n datePipe = new DatePipe('en-US');\r\n\r\n // interval refresh map\r\n subscription: Subscription;\r\n seconds: number = APPS.INTERVAL_AUTO_REFRESH;\r\n totalShips: number = 0;\r\n screenShips: number = 0;\r\n totalShipsHistory: number = 0;\r\n screenShipsHistory: number = 0;\r\n\r\n // danh sách tàu\r\n actionDsTau: string = 'add';\r\n selectedDsTau_Id: number = 1;\r\n selectedDsTau_Name: string = '';\r\n\r\n isExistTracking: boolean = false;\r\n\r\n filterHistoryDate: string;\r\n filterHistoryTime: string = \"23:59\";\r\n minHistoryDate: string;\r\n maxHistoryDate: string;\r\n\r\n\r\n\r\n /**\r\n * Lưu cấu hình trong storage\r\n * */\r\n setConfigsInStorage() {\r\n this.seconds = APPS.INTERVAL_AUTO_REFRESH;\r\n UserConfigs.saveConfig('OnlineTime', this.filterOnlineTime);\r\n UserConfigs.saveConfig('TypeData', this.filterTypeData);\r\n UserConfigs.saveConfig('HistoryDay', this.filterHistoryDate);\r\n }\r\n /**\r\n * Lấy về cấu hình filter trong storage\r\n * */\r\n getConfigsInStorage() {\r\n this.filterOnlineTime = this.user.OnlineTime ? this.user.OnlineTime : 1;\r\n this.filterTypeData = this.user.TypeData ? this.user.TypeData : APPS.FILTER_AIS;\r\n this.disabledOnlineTime = this.filterTypeData == APPS.FILTER_ALLDATA ? 'disabled' : null;\r\n this.filterHistoryDate = this.user.HistoryDay ? this.user.HistoryDay : this.datePipe.transform(new Date(), 'yyyy-MM-dd');\r\n this.selectedDsTau_Id = this.user.DanhSachId ? this.user.DanhSachId : 1;\r\n }\r\n\r\n user: UserConfigs;\r\n arrOnlineTime = APPS.ONLINETIME;\r\n /**\r\n * Khởi tạo cấu hình dịch vụ theo response từ server\r\n * */\r\n initConfig() {\r\n var thisObj = this;\r\n //this.userApi.getProfile().subscribe({\r\n // next: res => {\r\n // if (res instanceof UserConfigs) {\r\n // UserConfigs.updateProfile(res);\r\n // }\r\n // },\r\n // error: err => { CommonLib.ErrorLog(err); }\r\n //});\r\n\r\n\r\n if (this.user.dichvu.onlineTime != 0) {\r\n var index = 0;\r\n var arr: number[] = new Array();\r\n this.arrOnlineTime.forEach(function (option) {\r\n if (option.value > thisObj.user.dichvu.onlineTime || option.value == 0) {\r\n arr.push(index);\r\n }\r\n index++;\r\n });\r\n if (arr.length > 0) {\r\n thisObj.arrOnlineTime.splice(arr[0], arr.length);\r\n }\r\n }\r\n\r\n // set range input Tra cứu lịch sử\r\n var numberDay = this.user.dichvu.history_limit > 0 ? this.user.dichvu.history_limit : 60;\r\n this.minHistoryDate = this.datePipe.transform((new Date()).setHours(-24 * numberDay), 'yyyy-MM-dd');\r\n this.maxHistoryDate = this.datePipe.transform((new Date()).setHours(-24 * 2), 'yyyy-MM-dd');\r\n this.filterHistoryDate\r\n }\r\n\r\n\r\n /**\r\n * Ẩn/hiển sidebar\r\n * */\r\n onClick_toggleSideBar() {\r\n $('#sidebar1').toggleClass('active-bar');\r\n this.layerShips.resizeMap();\r\n }\r\n\r\n ngAfterViewInit() {\r\n $('.selectedDsTau_Id').select2();\r\n $('.selectedDsTau_Id').on('change', (event) => {\r\n this.onChange_DsTau(event.target.value);\r\n });\r\n\r\n $('.luongSelect2').select2();\r\n $('.luongSelect2').on('change', (event) => {\r\n this.onChange_MoveLuongHH(event.target.value);\r\n });\r\n\r\n\r\n\r\n // ẩn ds đội tàu\r\n if (this.filterTypeData == APPS.FILTER_DSTAU) {\r\n $(\"#row-dstau\").css(\"display\", \"flex\");\r\n } else {\r\n $(\"#row-dstau\").css(\"display\", \"none\");\r\n }\r\n\r\n this.initConfig()\r\n\r\n //this.onChange_TypeData(this.filterTypeData);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.user = UserConfigs.getCurrentUser();\r\n if (!this.user) {\r\n return;\r\n }\r\n\r\n if (this.eventEmitterService.subsVar == undefined) {\r\n this.eventEmitterService.subsVar = this.eventEmitterService.\r\n invokeFirstComponentFunction.subscribe((data: ShipModel) => {\r\n this.onClick_Search_GetShipExAndShowPopup(data);\r\n });\r\n }\r\n this.intervalAutoRefresh();\r\n this.getConfigsInStorage();\r\n this.loadAllLuongHH();\r\n this.loadAllDsTau();\r\n this.initMap();\r\n //this.auto_ShowShipsOnMap_Online();\r\n //menu công cụ\r\n $(\"#tool\").click(function () {\r\n $(\".toggle\").toggle();\r\n });\r\n }\r\n\r\n /**\r\n * Chỉ visible 1 TileLayer được chọn\r\n */\r\n onClick_changeMap(tileId) {\r\n this.tileLayer.changeTileLayer(this.map, tileId);\r\n }\r\n\r\n /**\r\n * Thiết lập ban đầu của Map, các layer source, popup thông tin tàu\r\n * - Được gọi trong ngOnInit()\r\n * */\r\n initMap() {\r\n var thisCpn = this;\r\n var zoomSize = (this.user.ZoomSize) ? this.user.ZoomSize : 7;\r\n var center = (this.user.Center) ? this.user.Center : [11755213.37382905, 2192779.1335923285]; // hanoi\r\n\r\n //Khai báo layer bản đồ nền của openlayers\r\n this.tileLayer = new TileLayerMap();\r\n //Khai báo bản đồ với các layer\r\n this.map = new Map({\r\n layers: thisCpn.tileLayer.getTileLayersArray(), //z-index theo thứ tự\r\n target: 'map-ol',\r\n view: new View({\r\n center: center,\r\n zoom: zoomSize,\r\n minZoom: 5,\r\n maxZoom: 22\r\n })\r\n });\r\n\r\n // EVENT\r\n this.map.on('click', function (evt) {\r\n var features = [];\r\n this.forEachFeatureAtPixel(evt.pixel, function (feature) {\r\n features.push(feature);\r\n });\r\n if (features.length > 0) {\r\n var f = features[0];\r\n if (f === undefined) {\r\n return;\r\n } else {\r\n var data = f.get('data');\r\n if (data instanceof ShipModel) {\r\n thisCpn.onClick_GetShipExAndShowPopup(data);\r\n }\r\n }\r\n }\r\n });\r\n\r\n // lưu storage độ zoom, vị trí xem bản đồ của người dùng mỗi khi di chuyển trên map\r\n this.map.on('moveend', function () {\r\n var view = thisCpn.map.getView();\r\n UserConfigs.saveConfig(\"ZoomSize\", view.getZoom());\r\n UserConfigs.saveConfig(\"Center\", view.getCenter());\r\n thisCpn.auto_ShowShipsOnMap_Online();\r\n //thisCpn.seconds = currentUser.dichvu.autoRefreshTime != null ? currentUser.dichvu.autoRefreshTime : APPS.INTERVAL_AUTO_REFRESH;\r\n thisCpn.seconds = APPS.INTERVAL_AUTO_REFRESH;\r\n });\r\n this.map.on('moveend', function () { thisCpn.countShipOnHistoryMap(thisCpn) });\r\n\r\n // LAYERS\r\n this.layerExt = new LayerExt(this.map);\r\n this.layerMeasure = new LayerMeasure(this.map);\r\n this.layerTracks = new LayerTracks(this.map);\r\n this.layerShips = new LayerShips(this.map);\r\n\r\n this.loadDrawItems();\r\n this.loadKmlByCurrentUser();\r\n }\r\n\r\n\r\n /**\r\n * Thực hiện get tất cả dữ liệu tàu theo filter\r\n * */\r\n auto_ShowShipsOnMap_Online() {\r\n var thisObj = this;\r\n this.user = UserConfigs.getCurrentUser();\r\n if (this.isShowHistoryMap) {\r\n return;\r\n }\r\n\r\n this.setConfigsInStorage();\r\n // get về tọa độ scrren\r\n var ex = this.layerShips.getTransformExtent();\r\n var lon1 = ex[0], lat1 = ex[1], lon2 = ex[2], lat2 = ex[3];\r\n\r\n var dsid = 0;\r\n if (this.filterTypeData == APPS.FILTER_DSTAU) {\r\n dsid = this.selectedDsTau_Id; // nếu ko filter theo DSTAU thì dsid = 0\r\n if (!this.layerMeasure.isDrawing) { // nếu đang vẽ thì ko load lại nữa\r\n this.drawingVungThiCong_DsTau(dsid);\r\n }\r\n } else {\r\n var fs = this.layerMeasure.getFeaturesByDsID(this.selectedDsTau_Id);\r\n if (fs) {\r\n fs.forEach(function (f) {\r\n thisObj.layerMeasure.removeFeature(f);\r\n });\r\n }\r\n }\r\n\r\n var listIdTracking = '';\r\n if (SHIPS_CACHE_TRACKING.length > 0) {\r\n this.isExistTracking = true;\r\n SHIPS_CACHE_TRACKING.forEach(function (ship) {\r\n listIdTracking += ship.id + \",\";\r\n });\r\n listIdTracking = listIdTracking.substring(0, listIdTracking.length - 1);\r\n } else {\r\n this.isExistTracking = false;\r\n }\r\n\r\n // get response ship\r\n this.shipApi.getShips(lat1, lat2, lon1, lon2, 0, this.filterOnlineTime, this.filterTypeData, dsid, listIdTracking).subscribe({\r\n next: res => {\r\n // xu ly update track\r\n this.layerTracks.autoUpdateTracking(CommonLib.parseArray(ShipModel, res['shipsTracking']));\r\n // xử lý update position ship\r\n var resShips = CommonLib.parseArray(ShipModel, res['ships']);\r\n resShips = this.layerShips.pushSearchDataIntoResponseData(resShips);\r\n\r\n this.totalShips = res['total'];\r\n this.screenShips = resShips.length;\r\n // (1) xóa tàu ngoài area; (2) Trả về tàu mới + lọc những tàu update vị trí\r\n var arrShipsUpdatePosition = this.layerShips.getShipsUpdatePosition(resShips);\r\n // close popup nếu tàu không có trong response\r\n this.layerShips.closePopup_WithShipOutFilter(resShips);\r\n // lấy về ship focus nếu tàu đang focus update dữ liệu\r\n var shipFocus = this.layerShips.drawFeatures_ShipsOnMap(arrShipsUpdatePosition);\r\n // update thông tin popup nếu có\r\n if (shipFocus) {\r\n this.shipApi.getShipEx(shipFocus.id, shipFocus.mmsi).subscribe({\r\n next: sm_ex => {\r\n this.shipEx_ToPopupComponent = sm_ex;\r\n this.layerShips.showPopupByJQuery('#gsnv-popup-dialog', sm_ex);\r\n }\r\n });\r\n }\r\n // add ship\r\n resShips.forEach(function (value) {\r\n SHIPS_CACHE_ONLINE.push(value);\r\n });\r\n // update dữ liệu trong grid. Nếu ALLDATA thì zoomSize < 10 thì ko refresh grid\r\n if (!(this.filterTypeData == APPS.FILTER_ALLDATA && this.user.ZoomSize <= 10)) {\r\n this.refreshGrid(SHIPS_CACHE_ONLINE);\r\n }\r\n },\r\n error: err => { CommonLib.ErrorLog(err); },\r\n });\r\n }\r\n\r\n /**\r\n *Lấy về thông tin tàu mở rộng & hiển thị popup\r\n * @param data\r\n */\r\n onClick_GetShipExAndShowPopup(data: ShipModel) {\r\n if (data instanceof ShipModel) {\r\n this.layerShips.removeFeature_Focus();\r\n // lấy về thông tin tàu mở rộng\r\n this.shipApi.getShipEx(data.id, data.mmsi).subscribe({\r\n next: shipEx => {\r\n shipEx.initDataShowHistory(data);\r\n this.shipEx_ToPopupComponent = shipEx; // lưu vào biến toàn cục để gửi sang popup-component\r\n var shipCoord = fromLonLat([shipEx.lon, shipEx.lat]);\r\n this.layerShips.addFeature_FocusIcon(shipEx.id, shipCoord);\r\n this.layerShips.updatePositionFocusShip(shipEx.id, shipCoord);\r\n this.layerShips.showPopupByJQuery('#gsnv-popup-dialog', shipEx);\r\n //move center map\r\n this.layerShips.animateToShip(shipCoord);\r\n //Di chuyển đến vị trí tàu nếu tàu không có trên màn hình\r\n this.layerShips.moveScreen_WithShipOutScreen(shipEx);\r\n },\r\n error: err => { CommonLib.ErrorLog(err); }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Search trên topbar\r\n * Lấy về thông tin tàu mở rộng & hiển thị popup\r\n * @param data\r\n */\r\n onClick_Search_GetShipExAndShowPopup(data: ShipModel) {\r\n if (this.isShowHistoryMap) {\r\n this.alertService.info(\"Không tìm kiếm được tàu trong chế độ Tra cứu dữ liệu trong quá khứ!\");\r\n } else {\r\n //kiểm tra xem ship có trong SHIP_CACHE ko\r\n var isExistData: boolean = false;\r\n SHIPS_CACHE_ONLINE.forEach(function (value) {\r\n if (value.id == data.id) {\r\n isExistData = true;\r\n }\r\n });\r\n if (isExistData) {\r\n this.onClick_GetShipExAndShowPopup(data);\r\n } else {\r\n var shipCoord = fromLonLat([data.lon, data.lat]);\r\n this.layerShips.animateToShip2(shipCoord);\r\n // lấy về thông tin tàu mở rộng\r\n this.shipApi.getShipEx(data.id, data.mmsi).subscribe({\r\n next: shipEx => {\r\n if (shipEx instanceof ShipModel) {\r\n var isExistSearch = false;\r\n SHIPS_CACHE_SEARCH.forEach(function (value) {\r\n if (value.id == shipEx.id) {\r\n isExistSearch = true;\r\n }\r\n });\r\n if (!isExistSearch) {\r\n SHIPS_CACHE_SEARCH.push(shipEx);\r\n }\r\n this.layerShips.removeFeature_Focus();\r\n this.layerShips.addFeature_FocusIcon(shipEx.id, shipCoord);\r\n }\r\n },\r\n error: err => { CommonLib.ErrorLog(err); }\r\n });\r\n }\r\n }\r\n }\r\n\r\n handler_ClosePopup() {\r\n this.layerShips.closePopup();\r\n }\r\n\r\n /**\r\n * Hiển thị track\r\n * @param sm\r\n */\r\n handler_ShowTrack(sm: ShipModel) {\r\n if (sm && sm.track_hours > 0) {\r\n // clear track cũ của tàu\r\n this.layerTracks.removeTrackByShip(sm.id);\r\n if (sm.is_detail_track) {\r\n this.shipApi.getTrackDetailOnline(sm).subscribe({\r\n next: trackItems => {\r\n this.doShowTrack(sm, trackItems);\r\n },\r\n error: err => { CommonLib.ErrorLog(err); },\r\n });\r\n } else {\r\n this.shipApi.getTrackOnline(sm).subscribe({\r\n next: trackItems => {\r\n this.doShowTrack(sm, trackItems);\r\n },\r\n error: err => { CommonLib.ErrorLog(err); },\r\n });\r\n }\r\n\r\n }\r\n }\r\n doShowTrack(sm: ShipModel, trackItems: TrackItemModel[]) {\r\n if (trackItems.length > 0) {\r\n this.layerTracks.addTracksByShip(sm, trackItems);\r\n var isExist: boolean = false;\r\n SHIPS_CACHE_TRACKING.forEach(function (value) {\r\n if (value.id == sm.id) {\r\n isExist = true;\r\n }\r\n });\r\n if (!isExist) {\r\n SHIPS_CACHE_TRACKING.push(sm);\r\n this.isExistTracking = true;\r\n }\r\n } else {\r\n this.alertService.info(\"Không tìm thấy hành trình của tàu trong khoảng thời gian \" + sm.track_hours + \" giờ!\");\r\n }\r\n }\r\n\r\n /**\r\n * Xóa tất cả track trên bản đồ\r\n * */\r\n onClick_ClearAllTracks() {\r\n SHIPS_CACHE_TRACKING.length = 0;\r\n this.isExistTracking = false;\r\n this.layerTracks.removeAllFeature();\r\n }\r\n\r\n /**\r\n * Xóa track của 1 tàu\r\n * @param ship\r\n */\r\n handler_ClearTrackByShip(ship: ShipModel) {\r\n var index = 0;\r\n SHIPS_CACHE_TRACKING.forEach(function (value) {\r\n if (value.id == ship.id) {\r\n SHIPS_CACHE_TRACKING.splice(index, 1);\r\n }\r\n index++;\r\n });\r\n this.isExistTracking = SHIPS_CACHE_TRACKING.length > 0 ? true : false;\r\n this.layerTracks.removeTrackByShip(ship.id);\r\n }\r\n\r\n /**\r\n * refresh dữ liệu trong grid\r\n * */\r\n refreshGrid(dataSource: ShipModel[]) {\r\n this.dataSourceShips = dataSource;\r\n if (this.filterTypeData == APPS.FILTER_DSTAU && !this.isShowHistoryMap) { // online Map & filter DSTAU\r\n if (this.gridTau_DSTau && this.gridTau_DSTau.headerModule) {\r\n this.gridTau_DSTau.refresh();\r\n }\r\n } else {\r\n if (this.gridTau && this.gridTau.headerModule) {\r\n this.gridTau.refresh();\r\n }\r\n }\r\n }\r\n\r\n onClick_RefreshGrid() {\r\n this.refreshGrid(SHIPS_CACHE_ONLINE);\r\n }\r\n\r\n /**\r\n * Hiển thị ship popup khi click vào row của grid\r\n * @param args\r\n */\r\n rowSelected(args: RowSelectEventArgs) {\r\n if (args.data !== undefined) {\r\n var ship = args.data;\r\n if (ship instanceof ShipModel) {\r\n this.onClick_GetShipExAndShowPopup(ship);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Hiển thị các hình vẽ được lưu trong DB\r\n * */\r\n loadDrawItems() {\r\n this.cateApi.GetDrawItems().subscribe({\r\n next: res => {\r\n this.layerMeasure.loadDrawItems(res);\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n\r\n kmlLayers: any[] = Array();\r\n\r\n /**\r\n * Load và hiển thị danh sách KML của current user\r\n * */\r\n loadKmlByCurrentUser() {\r\n var thisObj = this;\r\n this.userApi.getKmls().subscribe({\r\n next: kmls => {\r\n if (kmls.length > 0) {\r\n kmls.forEach(function (kml) {\r\n var layer = new VectorLayer({\r\n kmlid: kml.kmlid,\r\n source: new VectorSource({\r\n url: '/service/kml/' + kml.kmlid,\r\n format: new KML({ showPointNames: true }),\r\n }),\r\n });\r\n layer.setVisible(kml.visible);\r\n thisObj.kmlLayers.push(layer);\r\n });\r\n\r\n this.kmlLayers.forEach(function (layer) {\r\n thisObj.map.addLayer(layer);\r\n });\r\n }\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Toogle Visible KML khi ẩn/hiển hoặc xóa\r\n * @param kml: [kmlid,visible]\r\n */\r\n handlerKml(kml: string[]) {\r\n //console.log(\"kmlLayers: \", this.kmlLayers);\r\n if (kml.length == 2) {\r\n var kmlid = kml[0];\r\n var visible = kml[1];\r\n this.kmlLayers.forEach(function (layer) {\r\n if (layer.get(\"kmlid\") == kmlid) {\r\n layer.setVisible(visible);\r\n //console.log(layer);\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param kmls\r\n */\r\n handlerReloadKmlByUpload(kmls: UserKmlModel[]) {\r\n //console.log(\"Upload:\", kmls);\r\n var thisObj = this;\r\n if (kmls.length > 0) {\r\n this.kmlLayers.forEach(function (layer) {\r\n layer.setVisible(false);\r\n thisObj.map.removeLayer(layer);\r\n });\r\n this.kmlLayers.length = 0;\r\n kmls.forEach(function (kml) {\r\n var layer = new VectorLayer({\r\n kmlid: kml.kmlid,\r\n source: new VectorSource({\r\n url: '/service/kml/' + kml.kmlid,\r\n format: new KML({ showPointNames: true }),\r\n }),\r\n });\r\n layer.setVisible(kml.visible);\r\n thisObj.kmlLayers.push(layer);\r\n });\r\n\r\n this.kmlLayers.forEach(function (layer) {\r\n thisObj.map.addLayer(layer);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Get về tất cả các luồng để move map\r\n * */\r\n loadAllLuongHH() {\r\n this.cateApi.getAllLuongHH().subscribe({\r\n next: luonghh => {\r\n this.Luonghh = luonghh;\r\n },\r\n error: err => { CommonLib.ErrorLog(err); }\r\n })\r\n }\r\n loadAllDsTau() {\r\n this.cateApi.getAllDsTau().subscribe({\r\n next: res => {\r\n this.dsTau = res;\r\n if (res.length > 0) {\r\n this.selectedDsTau_Id = res[0].dsid;\r\n }\r\n },\r\n error: err => { CommonLib.ErrorLog(err); }\r\n })\r\n }\r\n\r\n /**\r\n * Di chuyển đến luồng được chọn\r\n * @param selectedValue\r\n */\r\n onChange_MoveLuongHH(selectedValue: string) {\r\n var coords = selectedValue.split(',');\r\n if (coords.length > 0) {\r\n var lon = parseFloat(coords[0]);\r\n var lat = parseFloat(coords[1]);\r\n // move center map\r\n var zoomSize = this.map.getView().getZoom();\r\n zoomSize = zoomSize < 13 ? 13 : zoomSize;\r\n var center = fromLonLat([lon, lat]);\r\n this.map.getView().animate({ zoom: zoomSize, center: center });\r\n }\r\n $(\".toggle\").toggle();\r\n }\r\n\r\n\r\n /**\r\n * Filter theo dữ liệu ais hoặc dm nạo vét\r\n * @param value\r\n */\r\n onChange_TypeData(value) {\r\n this.filterTypeData = value;\r\n if (this.filterTypeData == APPS.FILTER_ALLDATA) {\r\n this.filterOnlineTime = -1;\r\n $(\"#row-dstau\").css(\"display\", \"none\");\r\n this.disabledOnlineTime = 'disabled';\r\n UserConfigs.saveConfig(\"OnlineTime\", this.filterOnlineTime);\r\n } else if (this.filterTypeData == APPS.FILTER_DSTAU) {\r\n this.filterOnlineTime = 0;\r\n $(\"#row-dstau\").css(\"display\", \"flex\");\r\n this.disabledOnlineTime = 'disabled';\r\n } else {\r\n this.filterOnlineTime = -1;\r\n $(\"#row-dstau\").css(\"display\", \"none\");\r\n this.disabledOnlineTime = null;\r\n UserConfigs.saveConfig(\"OnlineTime\", this.filterOnlineTime);\r\n }\r\n\r\n SHIPS_CACHE_SEARCH.length = 0;\r\n this.auto_ShowShipsOnMap_Online();\r\n }\r\n /**\r\n * Filter dữ liệu tàu hiển thị trong khoảng thời gian\r\n * @param dayNumber\r\n */\r\n onChange_OnlineTime() {\r\n SHIPS_CACHE_SEARCH.length = 0;\r\n this.auto_ShowShipsOnMap_Online();\r\n }\r\n\r\n\r\n interval1 = interval(APPS.INTERVAL_AUTO_REFRESH * 1000);\r\n interval2 = interval(1000);\r\n /**\r\n * ONLINE\r\n * set interval call auto_GetShipsOnMap_Online\r\n * */\r\n intervalAutoRefresh() {\r\n if (this.isShowHistoryMap) {\r\n this.subscription.unsubscribe();\r\n } else {\r\n this.subscription = this.interval1.subscribe(val => {\r\n this.auto_ShowShipsOnMap_Online();\r\n });\r\n this.subscription = this.interval2.subscribe(val => {\r\n if (this.seconds == 0) {\r\n this.seconds = APPS.INTERVAL_AUTO_REFRESH;\r\n }\r\n this.seconds--;\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Thiết lập behavior giữa online & history\r\n * @param value\r\n */\r\n onChange_Online_History(value) {\r\n var thisObj = this;\r\n this.display = value;\r\n //clear all feature & cache\r\n this.layerShips.removeAllFeature();\r\n this.layerTracks.removeAllFeature();\r\n SHIPS_CACHE_SEARCH.length = 0;\r\n SHIPS_CACHE_TRACKING.length = 0;\r\n\r\n //Đóng popup. dialog khi chuyển map online- history\r\n this.layerShips.closePopup();\r\n if (CommonLib.isDialogVisible(ELMS.ThongKe1Tau)) {\r\n $(ELMS.ThongKe1Tau).dialog(\"close\");\r\n }\r\n if (CommonLib.isDialogVisible(ELMS.ThongKeChiTiet1Tau)) {\r\n $(ELMS.ThongKeChiTiet1Tau).dialog(\"close\");\r\n }\r\n if (CommonLib.isDialogVisible(ELMS.EditDsTau)) {\r\n $(ELMS.EditDsTau).dialog(\"close\");\r\n }\r\n if (CommonLib.isDialogVisible(ELMS.EditMeasure)) {\r\n $(ELMS.EditMeasure).dialog(\"close\");\r\n }\r\n if (CommonLib.isDialogVisible(ELMS.KML)) {\r\n $(ELMS.KML).dialog(\"close\");\r\n }\r\n if (CommonLib.isDialogVisible(ELMS.UploadKML)) {\r\n $(ELMS.UploadKML).dialog(\"close\");\r\n }\r\n\r\n // xử lý hiển thị\r\n if (this.display == this.historyMap) {\r\n this.isShowHistoryMap = true;\r\n this.layerShips.addFeatures_HistoryShips(SHIPS_CACHE_HISTORY);\r\n this.refreshGrid(SHIPS_CACHE_HISTORY);\r\n this.countShipOnHistoryMap(this);\r\n } else {\r\n this.isShowHistoryMap = false;\r\n\r\n /* Dùng *ngIf bên template HTML nên DOM của .selectedDsTau_Id bị mất,\r\n do đó phải set lại select2() sau khi load lại DOM.\r\n Sử dụng Timeout để chắc chắn DOM đã được load thì mới set lại select2() */\r\n setTimeout(function () {\r\n $('.selectedDsTau_Id').select2();\r\n $('.selectedDsTau_Id').on('change', (event) => {\r\n thisObj.onChange_DsTau(event.target.value);\r\n });\r\n }, 100);\r\n\r\n if (this.filterTypeData != APPS.FILTER_DSTAU) {\r\n setTimeout(function () {\r\n $(\"#row-dstau\").css(\"display\", \"none\");\r\n }, 30);\r\n }\r\n this.layerShips.drawFeatures_ShipsOnMap(SHIPS_CACHE_ONLINE);\r\n this.refreshGrid(SHIPS_CACHE_ONLINE);\r\n this.auto_ShowShipsOnMap_Online();\r\n }\r\n }\r\n\r\n /**\r\n * HISTORY\r\n * Hiển thị dữ liệu của tàu trong quá khứ\r\n * */\r\n onClick_showShipsOnMap_History() {\r\n if (this.filterHistoryDate == \"\" || this.filterHistoryTime == \"\") {\r\n this.alertService.error(\"Vui lòng chọn ngày, giờ tra cứu dữ liệu trong quá khứ!\");\r\n return;\r\n }\r\n\r\n //format datetime\r\n var endTime_local = new Date(this.filterHistoryDate + \" \" + this.filterHistoryTime);\r\n\r\n // xử lý giới hạn tra cứu lịch sử theo tài khoản\r\n var min_date = new Date(this.minHistoryDate);\r\n var max_date = new Date(this.maxHistoryDate);\r\n if (endTime_local < min_date || endTime_local > max_date) {\r\n this.alertService.warn(\"Tài khoản của bạn hỗ trợ tra cứu dữ liệu trong \" + this.user.dichvu.history_limit + \" ngày! Vui lòng liên hệ quản trị.\");\r\n return;\r\n }\r\n\r\n var historyDay = CommonLib.convertInputTime(endTime_local.getTime());\r\n UserConfigs.saveConfig('HistoryDay', this.filterHistoryDate);\r\n // clear all icon on map\r\n this.layerShips.removeAllFeature();\r\n this.layerTracks.removeAllFeature();\r\n // clear cache\r\n SHIPS_CACHE_HISTORY.length = 0;\r\n // query history\r\n CommonLib.loadingShow();\r\n this.shipApi.getShipsHistory(historyDay).subscribe({\r\n next: resShips => {\r\n // draw icon\r\n CommonLib.loadingHide();\r\n this.totalShipsHistory = resShips.length;\r\n if (resShips.length <= 0) {\r\n this.alertService.info(\"Không có dữ liệu tàu nạo vét trong ngày \" + this.datePipe.transform(endTime_local, 'dd-MM-yyyy'));\r\n return;\r\n }\r\n this.layerShips.addFeatures_HistoryShips(resShips);\r\n\r\n // add ship\r\n resShips.forEach(function (value) {\r\n SHIPS_CACHE_HISTORY.push(value);\r\n });\r\n // update dữ liệu trong grid\r\n this.countShipOnHistoryMap(this);\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n this.alertService.error(\"Có lỗi trong quá trình xử lý. Vui lòng thực hiện lại!\");\r\n CommonLib.loadingHide();\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Ve vung thi cong theo dsid\r\n * @param dsid\r\n */\r\n drawingVungThiCong_DsTau(dsid) {\r\n var thisObj = this;\r\n if (this.user.dichvu.enableEditDsTau) {\r\n this.cateApi.GetPolygonVungThiCong(dsid).subscribe({\r\n next: res => {\r\n if (res instanceof DrawItemnModel) {\r\n var fs = this.layerMeasure.getFeaturesByDsID(dsid);\r\n if (fs) {\r\n fs.forEach(function (f) {\r\n thisObj.layerMeasure.removeFeature(f);\r\n });\r\n }\r\n \r\n this.layerMeasure.loadDrawItems([res]);\r\n this.layerMeasure.isDrawing = false;\r\n }\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Hiển thị lại tàu trên map theo danh sách\r\n * @param value\r\n */\r\n onChange_DsTau(value) {\r\n var thisObj = this;\r\n SHIPS_CACHE_SEARCH.length = 0;\r\n this.dsTauGUID = \"\";\r\n // xóa vùng thi công của đội tàu được chọn trước đó (nếu có)\r\n var fs = this.layerMeasure.getFeaturesByDsID(this.selectedDsTau_Id);\r\n if (fs) {\r\n fs.forEach(function (f) {\r\n thisObj.layerMeasure.removeFeature(f);\r\n });\r\n }\r\n\r\n // xóa polygon đang vẽ (chưa save) nhưng chuyển đội tàu khác\r\n var f1 = this.layerMeasure.getDrawingFeatureByDsID(this.selectedDsTau_Id);\r\n if (f1) {\r\n this.layerMeasure.removeFeature(f1);\r\n }\r\n\r\n this.selectedDsTau_Id = value;\r\n UserConfigs.saveConfig('DanhSachId', value);\r\n this.filterOnlineTime = 0;\r\n this.auto_ShowShipsOnMap_Online();\r\n }\r\n\r\n /**\r\n * show dialog thêm danh sách tàu\r\n * */\r\n onClick_AddDsTau() {\r\n this.actionDsTau = 'add';\r\n CommonLib.createDialog(ELMS.EditDsTau, 'Tạo mới đội tàu', 'ui-dialog-edit-dstau', 450);\r\n }\r\n\r\n /**\r\n * show dialog edit tên danh sách\r\n * */\r\n onClick_EditDsTau() {\r\n this.actionDsTau = 'edit';\r\n CommonLib.createDialog(ELMS.EditDsTau, 'Cập nhật tên đội tàu', 'ui-dialog-edit-dstau', 450);\r\n }\r\n\r\n /**\r\n * Show comfirm Xóa danh sách tàu\r\n * */\r\n onClick_DelDsTau() {\r\n this.confirmService.confirm('Xác nhận', 'Bạn có chắc chắc muốn xóa đội tàu này ?')\r\n .then((confirmed) =>\r\n this.cateApi.DelDsTau(this.selectedDsTau_Id).subscribe({\r\n next: res => {\r\n if (res) {\r\n this.alertService.success(\"Đã xóa đội tàu!\");\r\n }\r\n this.loadAllDsTau();\r\n this.auto_ShowShipsOnMap_Online();\r\n }\r\n })\r\n ).catch(() => console.log('Người dùng close modal'));\r\n }\r\n\r\n /**\r\n * EventEmitter từ edit-dstau\r\n * @param isDone\r\n */\r\n handler_ActionDsTauCompleted(isDone) {\r\n if (isDone) {\r\n this.loadAllDsTau();\r\n }\r\n }\r\n\r\n /**\r\n * EventEmitter từ edit-dstau\r\n * */\r\n handler_drawPolygon_DSTau(dstau) {\r\n if (dstau instanceof DsTauModel) {\r\n this.onClick_MeasureDrawing(\"Polygon\", dstau);\r\n }\r\n }\r\n\r\n dsTauGUID: string = '';\r\n /**\r\n * Show dialog lưu polygon khoang vùng thi công cho đội tàu\r\n * */\r\n onClick_ShowDialogPolygonDSTau(type, guid, isData, dsid, tends) {\r\n this.dsTauGUID = guid;\r\n var title = isData ? \"Cập nhật vùng thi công: \" : \"Tạo mới vùng thi công: \";\r\n title += tends;\r\n this.selectedDsTau_Id = dsid;\r\n this.selectedDsTau_Name = tends;\r\n CommonLib.createDialog(ELMS.EditPolygonDSTau, title, \"ui-dialog-edit-polygon-dstau\", 500);\r\n }\r\n\r\n /**\r\n * Click vào menu công cụ, chọn hình vẽ\r\n * @param type\r\n */\r\n onClick_MeasureDrawing(type, DSTau) {\r\n if (this.layerMeasure.isDrawing) {\r\n this.layerMeasure.removeDrawInteraction();\r\n this.layerMeasure.isDrawing = false;\r\n }\r\n this.layerMeasure.addInteraction(type, DSTau);\r\n }\r\n\r\n /**\r\n * Đếm số tàu hiển thị trên màn hình history\r\n * @param thisCpn\r\n */\r\n countShipOnHistoryMap(thisCpn) {\r\n if (thisCpn instanceof GiamSatTrucTuyenComponent) {\r\n var extent = thisCpn.map.getView().calculateExtent(thisCpn.map.getSize());\r\n var features = [];\r\n var ships = [];\r\n thisCpn.layerShips.source_ships.forEachFeatureInExtent(extent, function (f) {\r\n if (f !== undefined && f.get('type') == APPS.F_SHIP_HISTORY_GETYPE) {\r\n features.push(f);\r\n var shipModel = f.get('data');\r\n if (shipModel instanceof ShipModel) {\r\n ships.push(shipModel);\r\n }\r\n }\r\n });\r\n thisCpn.screenShipsHistory = features.length;\r\n thisCpn.refreshGrid(ships);\r\n }\r\n }\r\n\r\n geomGUID: string = '';\r\n drawType: string = '';\r\n /**\r\n * Tạo đa giác\r\n * @param guid\r\n */\r\n onClick_CreateDrawItem(type, guid, isData) {\r\n this.geomGUID = guid;\r\n this.drawType = type;\r\n var title = '';\r\n switch (type) {\r\n case \"POLYGON\":\r\n title = isData ? \"Cập nhật thông tin đa giác\" : \"Tạo mới đa giác\";\r\n break;\r\n case \"CIRCLE\":\r\n title = isData ? \"Cập nhật thông tin hình tròn\" : \"Tạo mới hình tròn\";\r\n break;\r\n case \"LINESTRING\":\r\n title = isData ? \"Cập nhật thông tin đoạn thẳng\" : \"Tạo mới đoạn thẳng\";\r\n break\r\n default:\r\n return;\r\n }\r\n CommonLib.createDialog(ELMS.EditMeasure, title, \"ui-dialog-edit-measure\", 500);\r\n }\r\n\r\n \r\n /**\r\n * Hứng emit từ popupConponent, nếu xóa thành công thì load lại tàu;\r\n * */\r\n handler_DeletedShip() {\r\n this.auto_ShowShipsOnMap_Online();\r\n }\r\n\r\n /**\r\n * Hứng mảng trackItem trong 1 ngày gửi từ ThongKeComponent -> ShipPopupComponent\r\n * @param data = [shipOwner, trackItems, DateSeleted]\r\n */\r\n handlerShowTrackItems_ThongKe(data) {\r\n if (!data || data.length != 3) {\r\n this.alertService.error(\"Có lỗi trong quá trình xử lý. Vui lòng liên quan quản trị!\");\r\n return;\r\n }\r\n\r\n // Xóa layer track nếu chuyển sang xem track trong quá khứ\r\n this.layerTracks.removeAllFeature();\r\n SHIPS_CACHE_TRACKING.length = 0;\r\n\r\n var shipOwner: ShipModel = data[0];\r\n var trackItems: TrackItemModel[] = data[1];\r\n var date: Date = data[2];\r\n if (trackItems.length <= 0) {\r\n this.alertService.error(\"Không tìm thấy hành trình của tàu \" + (shipOwner.name != '' ? shipOwner.name : shipOwner.mmsi) + \" trong ngày \" + this.datePipe.transform(date, 'dd/MM/yyyy') + \"!\");\r\n return;\r\n }\r\n\r\n //this.datePipe.transform(new Date(), 'yyyy-MM-dd')\r\n this.onChange_Online_History(this.historyMap);\r\n if (CommonLib.isDialogVisible(ELMS.ThongKe1Tau)) {\r\n $(ELMS.ThongKe1Tau).dialog(\"close\");\r\n }\r\n if (CommonLib.isDialogVisible(ELMS.ThongKeChiTiet1Tau)) {\r\n $(ELMS.ThongKeChiTiet1Tau).dialog(\"close\");\r\n }\r\n this.layerShips.closePopup();\r\n this.filterHistoryDate = this.datePipe.transform(date, 'yyyy-MM-dd');\r\n this.filterHistoryTime = \"23:59\";\r\n this.layerTracks.addTracks(shipOwner, trackItems);\r\n }\r\n\r\n toogleOpenKML: boolean = false;\r\n /**\r\n * Hiển thị dialog quản lý file KML\r\n * */\r\n onClick_ShowDialogKML() {\r\n this.toogleOpenKML = !this.toogleOpenKML;\r\n CommonLib.createDialog(ELMS.KML, 'Quản lý file KML', 'ui-dialog-kml', 650);\r\n }\r\n\r\n onClick_ShowDialogUploadKML() {\r\n CommonLib.createDialog(ELMS.UploadKML, 'Upload KML', 'ui-dialog-upload-kml', 550);\r\n }\r\n}\r\n\r\n\r\n","import { Component, OnInit, Input, OnChanges, Output, EventEmitter } from '@angular/core';\r\nimport { AlertService } from '../../../../_services/alert.service';\r\nimport { ELMS, CommonLib } from '../../../../_providers/commonLib';\r\nimport { ConfirmService } from '../../../../_services/confirm.service';\r\nimport { UserService } from '../../../../_services/user.service';\r\nimport { UserKmlModel } from '../../../../_models/userKml.model';\r\n\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-kml',\r\n templateUrl: './kml.component.html',\r\n})\r\n\r\nexport class KmlComponent implements OnChanges {\r\n constructor(private userApi: UserService, private alertService: AlertService, private confirmService: ConfirmService) { }\r\n @Input() toogleOpenKML: boolean;\r\n @Output() handlerKml: EventEmitter = new EventEmitter();\r\n @Output() handlerReloadKmlByUpload: EventEmitter = new EventEmitter();\r\n kmls: UserKmlModel[];\r\n\r\n ngOnChanges() {\r\n if (CommonLib.isDialogVisible(ELMS.KML)) {\r\n this.handlerReloadListKml(true);\r\n }\r\n }\r\n\r\n onChange_Visiable(kmlid, visible) {\r\n this.userApi.toogleKml(kmlid, visible).subscribe({\r\n next: response => {\r\n //console.log(\"Toogle KML: \", [kmlid, visible]);\r\n this.handlerKml.emit([kmlid, visible]);\r\n }\r\n })\r\n }\r\n\r\n delete(kmlid) {\r\n this.confirmService.confirm('Xác nhận', 'Bạn có chắc chắn muốn xóa file KML này?')\r\n .then((confirmed) =>\r\n this.userApi.deleteKml(kmlid).subscribe({\r\n next: response => {\r\n if (response) {\r\n this.alertService.success(\"Đã xóa file KML!\");\r\n this.handlerReloadListKml(true);\r\n //console.log(\"Deleted KML!\");\r\n this.handlerKml.emit([kmlid, false]);\r\n }\r\n }\r\n })\r\n ).catch(() => console.log('Người dùng close modal'));\r\n }\r\n\r\n showDialogUpload() {\r\n CommonLib.createDialog(ELMS.UploadKML, 'Upload KML', 'ui-dialog-upload-kml', 550);\r\n }\r\n\r\n handlerReloadListKml(isLoad) {\r\n if (isLoad) {\r\n this.userApi.getKmls().subscribe({\r\n next: response => {\r\n this.kmls = response;\r\n this.handlerReloadKmlByUpload.emit(this.kmls);\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n }\r\n\r\n closeDialog() {\r\n $(ELMS.KML).dialog(\"close\");\r\n }\r\n}\r\n","import { Component, Input, OnChanges, Output, EventEmitter, AfterContentInit } from '@angular/core';\r\nimport { ELMS, CommonLib } from '../../../../_providers/commonLib';\r\nimport { ThongKeModel } from '../../../../_models/thongke.model';\r\nimport { ShipModel } from '../../../../_models/ship.model';\r\nimport { Chart } from 'src/assets/lib/chart.min.js';\r\n\r\n\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-thong-ke-chi-tiet',\r\n templateUrl: './thong-ke-chi-tiet.component.html',\r\n})\r\n\r\nexport class ThongKeChiTietComponent implements OnChanges {\r\n constructor() {\r\n \r\n }\r\n @Input() ship: ShipModel = new ShipModel();\r\n @Input() thongKeChiTietItems: ThongKeModel[] = new Array();\r\n\r\n ngOnChanges() {\r\n if (this.thongKeChiTietItems) {\r\n this.initChart();\r\n }\r\n }\r\n\r\n initChart() {\r\n //xu ly va hien thi\r\n var x_labels = [];\r\n var x_values = [];\r\n var last = null;\r\n var tong = 0;\r\n for (var i = 0; i < this.thongKeChiTietItems.length; i++) {\r\n var item = this.thongKeChiTietItems[i];\r\n var gio = new Date(item.gio);\r\n if (last == null || last.getDate() != gio.getDate())\r\n x_labels.push((gio.getDate()) + '/' + (gio.getMonth() + 1));\r\n else\r\n x_labels.push(gio.getHours() + 'h');\r\n last = gio;\r\n x_values.push(item.soluong);\r\n tong += item.soluong;\r\n }\r\n $(\"#myChartContainer\").html(\"\");\r\n $(\"#myChartContainer\").append('');\r\n var chart = new Chart($('#myChart'), {\r\n type: 'bar',\r\n data: {\r\n labels: x_labels,\r\n datasets: [{\r\n label: 'dữ liệu vị trí tàu: ' + this.ship.name == \"\" ? this.ship.mmsi : this.ship.name.toUpperCase(),\r\n data: x_values,\r\n borderwidth: 1\r\n }]\r\n },\r\n options: {\r\n scales: {\r\n yaxes: [{\r\n ticks: {\r\n beginatzero: true\r\n }\r\n }]\r\n }\r\n }\r\n });\r\n }\r\n\r\n closeDialog() {\r\n $(ELMS.ThongKeChiTiet1Tau).dialog(\"close\");\r\n }\r\n\r\n}\r\n","import { Component, Input, OnChanges, Output, EventEmitter, AfterContentInit } from '@angular/core';\r\nimport { ELMS, CommonLib } from '../../../../_providers/commonLib';\r\nimport { AlertService } from '../../../../_services/alert.service';\r\nimport { ConfirmService } from '../../../../_services/confirm.service';\r\nimport { ShipModel } from '../../../../_models/ship.model';\r\nimport { ThongKeModel } from '../../../../_models/thongke.model';\r\nimport { ShipService } from '../../../../_services/ship.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { TrackItemModel } from '../../../../_models/trackItem.model';\r\n\r\n\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-thong-ke',\r\n templateUrl: './thong-ke.component.html',\r\n})\r\n\r\nexport class ThongKeComponent implements OnChanges {\r\n constructor(private shipApi: ShipService, private alertService: AlertService, private confirmService: ConfirmService) {\r\n Window[\"ThongKe\"] = this;\r\n }\r\n\r\n @Input() ship: ShipModel = new ShipModel();\r\n @Input() thongKeItems: ThongKeModel[] = new Array();\r\n @Input() isOnClickThongke: boolean;\r\n\r\n @Output() handlerShowTrackItems_OneDay: EventEmitter = new EventEmitter();\r\n\r\n tuyChon: string; // \"thongke\" & \"hanhtrinh\"\r\n ngaybd: string;\r\n ngaykt: string;\r\n maxDate: string;\r\n minDate: string;\r\n\r\n datePipe = new DatePipe('en-US');\r\n\r\n ngOnChanges() {\r\n if (this.thongKeItems && this.isOnClickThongke) {\r\n //this.thongKeItems.forEach(function (value) {\r\n // value.soluong = 10;\r\n //});\r\n \r\n this.maxDate = this.datePipe.transform((new Date()), 'yyyy-MM-dd');\r\n this.ngaykt = this.datePipe.transform((new Date()), 'yyyy-MM-dd');\r\n this.ngaybd = \"\";\r\n this.initDatePicker(\"\", \"\");\r\n this.tuyChon = \"thongke\";\r\n\r\n }\r\n }\r\n //thongKeItems_Last3Day: ThongKeModel[] = new Array();\r\n //getTrackDetail_24h(begin) {\r\n // var thisObj = this;\r\n // var begin_local = Math.round(begin.getTime() / 1000);\r\n // var end_local = Math.round(((begin.getTime() + 24 * 3600 * 1000) / 1000) - 1);\r\n \r\n // this.shipApi.getTrackDetailInThongKe(this.ship, begin_local, end_local).subscribe({\r\n // next: response => {\r\n // var item: ThongKeModel = new ThongKeModel();\r\n // item.gio = begin;\r\n // item.soluong = 0;\r\n // if (response.length > 0) {\r\n // response.forEach(function (arrTrackItem) {\r\n // item.soluong += arrTrackItem.length;\r\n // });\r\n // }\r\n // thisObj.thongKeItems_Last3Day.push(item);\r\n // },\r\n // error: err => {\r\n // CommonLib.ErrorLog(err);\r\n // }\r\n // });\r\n //}\r\n\r\n initDatePicker(ngaybatdau: string, ngayketthuc: string) {\r\n //var thisObj = this;\r\n ////khoi tao 3 ngay gan nhat\r\n //var today = new Date(this.datePipe.transform((new Date()), 'yyyy-MM-dd') + \"T00:00:00\");\r\n //var today_date: number = today.getDate();\r\n //this.getTrackDetail_24h(today);\r\n //this.getTrackDetail_24h(new Date((new Date(this.datePipe.transform((new Date()), 'yyyy-MM-dd') + \"T00:00:00\")).setDate(today_date - 1)));\r\n //this.getTrackDetail_24h(new Date((new Date(this.datePipe.transform((new Date()), 'yyyy-MM-dd') + \"T00:00:00\")).setDate(today_date - 2)));\r\n\r\n //console.log(this.thongKeItems_Last3Day);\r\n\r\n //this.thongKeItems_Last3Day.forEach(function (it) {\r\n // thisObj.thongKeItems.push(it);\r\n //});\r\n \r\n //this.thongKeItems.push(item);\r\n\r\n var div = $(\"#ThongKeDuLieu1Tau\");\r\n var row_template = '\\\r\n {1}\\\r\n {2}\\\r\n {3}\\\r\n {4}\\\r\n {5}\\\r\n {6}\\\r\n {7}\\\r\n ';\r\n var table_template = '\\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \\\r\n {row}\\\r\n \\\r\n
{thang}
';\r\n div.html('');//clear\r\n\r\n //xu ly va hien thi\r\n var thang = -1;\r\n var table = '', html_rows = '', row = '', html = '';\r\n var table_count = 0, row_count = 0;\r\n //add empty\r\n //console.log(\"citem = \" + this.thongKeItems.length);\r\n\r\n if (this.thongKeItems.length > 0) {\r\n var item = this.thongKeItems[0];\r\n var gio = new Date(item.gio);\r\n //gan ngay bat dau cho filter khoang thoi gian\r\n this.ngaybd = this.ngaybd == \"\" ? this.datePipe.transform(gio, 'yyyy-MM-dd') : this.datePipe.transform(ngaybatdau, 'yyyy-MM-dd');\r\n\r\n var t = gio.getMonth();\r\n var d = gio.getDate();\r\n var year = gio.getFullYear();\r\n var d1 = d - 1;\r\n while (d1 > 0) {\r\n var tk: ThongKeModel = new ThongKeModel();\r\n tk.gio = new Date(year, t, d1, 0, 0, 0, 0);\r\n tk.soluong = 0;\r\n this.thongKeItems.unshift(tk);\r\n d1 = d1 - 1;\r\n }\r\n }\r\n\r\n //console.table(this.thongKeItems);\r\n //console.log(\"citem2 = \" + this.thongKeItems.length);\r\n //console.log(this.thongKeItems);\r\n var nbegin = new Date(ngaybatdau).setHours(-7);\r\n var begin = new Date(nbegin);\r\n var end = new Date(ngayketthuc);\r\n console.log(begin, end);\r\n\r\n for (var i = 0, len = this.thongKeItems.length - 1; i <= len; i++) {\r\n var item = this.thongKeItems[i];\r\n var gio = new Date(item.gio);\r\n var t = gio.getMonth();\r\n var d = gio.getDate();\r\n var year = gio.getFullYear();\r\n\r\n if (gio < begin) {\r\n continue;\r\n }\r\n\r\n if (gio <= end || ngayketthuc == \"\") {\r\n if (t != thang) {\r\n if (thang != -1) {\r\n html_rows += row;\r\n row_count++;\r\n table = table.replace('{row}', html_rows);\r\n table = '' + table + '';\r\n if (table_count % 3 == 0)\r\n html += (html != '' ? '' : '') + '' + table;\r\n else\r\n html += table;\r\n table_count++;\r\n }\r\n table = table_template.replace('{thang}', 'Tháng ' + (t + 1) + '/' + gio.getFullYear());\r\n row = row_template;\r\n html_rows = '';\r\n row_count = 0;\r\n thang = t;\r\n }\r\n\r\n var ngay = (d % 7);\r\n if (ngay == 0)\r\n ngay = 7;\r\n\r\n var tag = '{' + ngay + '}';\r\n if (item.soluong > 0) {\r\n row = row.replace(tag, '' + d + '');\r\n row = row.replace('\"day' + ngay + '\"', '\"day day-active\"');\r\n }\r\n else {\r\n row = row.replace(tag, d.toString());\r\n row = row.replace('\"day' + ngay + '\"', '\"day day-disabled\"');\r\n \r\n }\r\n if (d % 7 == 0) {\r\n html_rows += row;\r\n row = row_template;\r\n row_count++;\r\n }\r\n }\r\n if (i == len) {\r\n if (d % 7 != 0) {\r\n html_rows += row;\r\n row_count++;\r\n }\r\n table = table.replace('{row}', html_rows);\r\n table = '' + table + '';\r\n if (table_count % 3 == 0)\r\n html += (html != '' ? '' : '') + '' + table;\r\n else\r\n html += table;\r\n table_count++;\r\n }\r\n }\r\n\r\n html = '' + html + '
';\r\n //clean\r\n for (var i = 1; i <= 7; i++) {\r\n var tag = '{' + i + '}';\r\n while (html.indexOf(tag) >= 0)\r\n html = html.replace(tag, '');\r\n }\r\n div.html(html);\r\n }\r\n\r\n\r\n thongKeChiTietItems: ThongKeModel[] = new Array();\r\n onClick_ThongKeChiTiet(gio: Date) {\r\n if (this.ship) {\r\n var thisObj = this;\r\n var date = new Date(gio);\r\n var begin_local = Math.round(date.getTime() / 1000);\r\n var end_local = Math.round(((date.getTime() + 24 * 3600 * 1000) / 1000) - 1);\r\n //console.log(new Date(begin_local * 1000), new Date(end_local * 1000));\r\n CommonLib.loadingShow();\r\n if (this.tuyChon == \"hanhtrinh\") {\r\n this.shipApi.getTrackDetailInThongKe(this.ship, begin_local, end_local).subscribe({\r\n next: response => {\r\n CommonLib.loadingHide();\r\n // emit to ShipPopupComponent\r\n if (response.length > 0) {\r\n response.forEach(function (arrTrackItem) {\r\n var trackItems = CommonLib.parseArray(TrackItemModel, arrTrackItem);\r\n var data = [thisObj.ship, trackItems, date];\r\n thisObj.handlerShowTrackItems_OneDay.emit(data);\r\n });\r\n } else {\r\n var data = [thisObj.ship, new Array(), date];\r\n thisObj.handlerShowTrackItems_OneDay.emit(data);\r\n }\r\n\r\n },\r\n error: err => {\r\n CommonLib.loadingHide();\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n } else { // \"thongke\"\r\n this.shipApi.getThongKeChiTiet1Tau(this.ship.mmsi, this.ship.name, this.ship.calsign, this.ship.imo, begin_local, end_local).subscribe({\r\n next: response => {\r\n CommonLib.loadingHide();\r\n this.thongKeChiTietItems.length = 0;\r\n this.thongKeChiTietItems = response;\r\n CommonLib.createDialog(ELMS.ThongKeChiTiet1Tau, \"Thống kê số lượng vị trí thu nhận được theo từng giờ\", \"thong-ke-chi-tiet-1tau\", 700);\r\n },\r\n error: err => {\r\n CommonLib.loadingHide();\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n reLoad() {\r\n if (this.ngaybd == \"\" || this.ngaykt == \"\") {\r\n this.alertService.error(\"Thông tin lọc thời gian không đúng!\");\r\n } else\r\n this.initDatePicker(this.ngaybd, this.ngaykt);\r\n }\r\n\r\n thongKe() {\r\n if (this.ship.mmsi == \"\" || this.ship.mmsi.length != 9) {\r\n this.alertService.error(\"MMSI không chính xác!\");\r\n return;\r\n }\r\n\r\n CommonLib.loadingShow();\r\n this.shipApi.getThongKe1Tau(this.ship.mmsi, this.ship.name, this.ship.calsign, this.ship.imo).subscribe({\r\n next: response => {\r\n CommonLib.loadingHide();\r\n this.thongKeItems = response;\r\n this.isOnClickThongke = true;\r\n this.ngOnChanges()\r\n //CommonLib.createDialog(ELMS.ThongKe1Tau, \"Thống kê tổng quát dữ liệu tàu\", \"thong-ke-1tau\", 800);\r\n },\r\n error: err => {\r\n CommonLib.loadingHide();\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n\r\n closeDialog() {\r\n $(ELMS.ThongKe1Tau).dialog(\"close\");\r\n }\r\n\r\n}\r\n","import { Component, OnChanges, Output, EventEmitter, DoCheck } from '@angular/core';\r\nimport { AlertService } from '../../../../_services/alert.service';\r\nimport { ELMS, CommonLib } from '../../../../_providers/commonLib';\r\nimport { UserKmlModel } from '../../../../_models/userKml.model';\r\nimport { UserService } from '../../../../_services/user.service';\r\nimport { AjaxResponseModel } from '../../../../_models/ajaxResponse.model';\r\n\r\ndeclare var $: any;\r\n@Component({\r\n selector: 'app-upload-kml',\r\n templateUrl: './upload-kml.component.html',\r\n})\r\n\r\nexport class UploadKmlComponent implements OnChanges {\r\n constructor(private userApi: UserService, private alertService: AlertService) { }\r\n @Output() handlerReloadListKml: EventEmitter = new EventEmitter();\r\n userKml: UserKmlModel = new UserKmlModel();\r\n\r\n ngOnChanges() {\r\n this.userKml = new UserKmlModel();\r\n }\r\n\r\n Upload() {\r\n var thisObj = this;\r\n var input = document.getElementById('file');\r\n if (!input) {\r\n this.alertService.error(\"Không tìm thấy đối tượng 'file'.\");\r\n return\r\n }\r\n else if (!input.files) {\r\n this.alertService.error(\"Trình duyệt này không hỗ trợ thuộc tính 'files' của file input.\");\r\n return\r\n }\r\n else if (!input.files[0] || this.userKml.name == null || this.userKml.name.trim() == \"\") {\r\n this.alertService.error(\"Bạn chưa nhập tên KML hoặc chưa chọn file.\");\r\n }\r\n else {\r\n var file = input.files[0];\r\n // lấy định dạng\r\n if (CommonLib.GetFileType(file.name) === 'kml') {\r\n var fr = new FileReader();\r\n fr.onload = function () {\r\n thisObj.userKml.kml = fr.result;\r\n thisObj.save();\r\n };\r\n fr.readAsText(file);\r\n } else {\r\n this.alertService.error(\"File chưa đúng định dạng.\");\r\n }\r\n }\r\n }\r\n\r\n save() {\r\n this.userApi.uploadKml(this.userKml).subscribe({\r\n next: response => {\r\n this.alertService.success(\"Upload thành công KML: \" + this.userKml.name);\r\n $(ELMS.UploadKML).dialog(\"close\");\r\n if (CommonLib.isDialogVisible(ELMS.KML)) {\r\n this.handlerReloadListKml.emit(true);\r\n }\r\n this.userKml = new UserKmlModel();\r\n (document.getElementById('file')).value = \"\";\r\n },\r\n error: err => {\r\n if (err instanceof AjaxResponseModel) {\r\n this.alertService.error(err.ErrorMsg);\r\n console.error(err.ErrorMsg);\r\n } else {\r\n console.error(err);\r\n }\r\n }\r\n });\r\n }\r\n\r\n closeDialog() {\r\n $(ELMS.UploadKML).dialog(\"close\");\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vdGFiY29udGVudC9uaGEtdGhhdS9uaGEtdGhhdS5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-nha-thau',\n templateUrl: './nha-thau.component.html',\n styleUrls: ['./nha-thau.component.css']\n})\nexport class NhaThauComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vdGFiY29udGVudC90YWJjb250ZW50LmNvbXBvbmVudC5jc3MifQ== */\"","import { FooterComponent } from './../../footer/footer.component';\r\nimport { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { Globals } from './../../globals';\r\nimport { ShipModel } from './../../_models/ship.model';\r\nimport { UserModel } from './../../_models/user.model';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { TopbarComponent } from '../../main/topbar/topbar.component';\r\nimport { SHIPS_CACHE_ONLINE } from '../../app.component';\r\n\r\n\r\n//declare function loadSelect2(): any;\r\n//declare function loadGrid(): any;\r\ndeclare function openTab(event: any, id: string): any;\r\ndeclare var $: any;\r\n\r\n\r\n@Component({\r\n selector: 'app-tabcontent',\r\n templateUrl: './tabcontent.component.html',\r\n styleUrls: ['./tabcontent.component.css']\r\n})\r\nexport class TabcontentComponent implements OnInit {\r\n\r\n \r\n constructor() { }\r\n ngOnInit() {\r\n \r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vdGFiY29udGVudC90YXUtbmFvLXZldC90YXUtbmFvLXZldC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { AjaxResponseModel } from '../../../_models/ajaxResponse.model';\r\nimport { Grid, Page } from '@syncfusion/ej2-grids';\r\nimport { ShipModel } from './../../../_models/ship.model';\r\nimport { ShipService } from '../../../_services/ship.service';\r\n\r\n@Component({\r\n selector: 'app-tau-nao-vet',\r\n templateUrl: './tau-nao-vet.component.html',\r\n styleUrls: ['./tau-nao-vet.component.css']\r\n})\r\nexport class TauNaoVetComponent implements OnInit {\r\n\r\n constructor(private shipApi: ShipService) { }\r\n ships: ShipModel[];\r\n\r\n \r\n getData(){\r\n this.shipApi.getAll().subscribe({\r\n error: err => {\r\n if (err instanceof AjaxResponseModel) {\r\n console.log(err);\r\n console.log(err.ErrorMsg);\r\n } else {\r\n console.log(err);\r\n }\r\n },\r\n next: ship => {\r\n this.ships = ship;\r\n this.loadGrid();\r\n }\r\n })\r\n }\r\n\r\n loadGrid() {\r\n let grid: Grid = new Grid({\r\n dataSource: this.ships,\r\n columns: [\r\n //{ field: 'id', headerText: 'Mã tàu', textAlign: 'Right', width: 120, type: 'string' },\r\n { field: 'mmsi', width: 140, headerText: 'mmsi', type: 'string' },\r\n /*{ field: 'mid', headerText: 'mid', textAlign: 'Right', width: 120, type: 'string' },\r\n x\r\n { field: 'utcpos', headerText: 'utcpos', width: 140, type: 'string' },\r\n { field: 'str_utcpos', headerText: 'str_utcpos', width: 140, type: 'string' },\r\n { field: 'd_utcpos', headerText: 'd_utcpos', width: 140, type: 'string' },*/\r\n { field: 'name', headerText: 'Tên tàu', width: 100, type: 'string' },\r\n { field: 'utc', headerText: 'UTC', width: 250, type: 'datetime' },\r\n { field: 'lat', headerText: 'Kinh độ', width: 140, type: 'string' },\r\n { field: 'lon', headerText: 'Vĩ độ', width: 140, type: 'string' },\r\n /*{ field: 'speed', headerText: 'speed', width: 140, type: 'string' },\r\n { field: 'course', headerText: 'course', width: 140, type: 'string' },*/\r\n \r\n /*{ field: 'calsign', headerText: 'calsign', width: 140, type: 'string' },\r\n { field: 'imo', headerText: 'imo', width: 140, type: 'string' },\r\n { field: 'virt', headerText: 'virt', width: 140, type: 'string' },\r\n { field: 'shtype', headerText: 'shtype', width: 140, type: 'string' },\r\n { field: 'cls', headerText: 'cls', width: 140, type: 'string' },\r\n { field: 'dai', headerText: 'Dài', width: 140, type: 'string' },\r\n { field: 'rong', headerText: 'Rộng', width: 140, type: 'string' },*/\r\n /*{ field: 'bsid', headerText: 'Vĩ độ (Lon)', width: 140, type: 'string' },\r\n { field: 'des', headerText: 'Vĩ độ (Lon)', width: 140, type: 'string' },\r\n { field: 'navsts', headerText: 'Vĩ độ (Lon)', width: 140, type: 'string' },\r\n { field: 'heading', headerText: 'Vĩ độ (Lon)', width: 140, type: 'string' },\r\n { field: 'rot', headerText: 'Vĩ độ (Lon)', width: 140, type: 'string' },\r\n { field: 'draft', headerText: 'Vĩ độ (Lon)', width: 140, type: 'string' },\r\n { field: 'eta', headerText: 'Vĩ độ (Lon)', width: 140, type: 'string' },\r\n { field: 't_eta', headerText: 'Vĩ độ (Lon)', width: 140, type: 'string' },\r\n { field: 'size', headerText: 'Vĩ độ (Lon)', width: 140, type: 'string' },\r\n { field: 'realtime', headerText: 'Vĩ độ (Lon)', width: 140, type: 'string' }*/\r\n ],\r\n allowPaging: true,\r\n pageSettings: { pageSize: 15 }\r\n });\r\n\r\n grid.appendTo('#tau-nao-vet-grid');\r\n }\r\n ngOnInit() {\r\n //this.getData();\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vdGFiY29udGVudC90dXllbi1sdW9uZy90dXllbi1sdW9uZy5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { CagetoryService } from '../../../_services/category.service';\r\nimport { LuongHHModel } from '../../../_models/luonghh.model';\r\nimport { AjaxResponseModel } from '../../../_models/ajaxResponse.model';\r\nimport { Grid, Page } from '@syncfusion/ej2-grids';\r\n\r\n@Component({\r\n selector: 'app-tuyen-luong',\r\n templateUrl: './tuyen-luong.component.html',\r\n styleUrls: ['./tuyen-luong.component.css']\r\n})\r\nexport class TuyenLuongComponent implements OnInit {\r\n\r\n constructor(private luongApi: CagetoryService) { }\r\n Luonghh: LuongHHModel[];\r\n\r\n /**\r\n * Get về tất cả các luồng để \r\n * */\r\n getAllLuongHH() {\r\n this.luongApi.getAllLuongHH().subscribe({\r\n error: err => {\r\n if (err instanceof AjaxResponseModel) {\r\n console.log(err);\r\n console.log(err.ErrorMsg);\r\n } else {\r\n console.log(err);\r\n }\r\n },\r\n next: luonghh => {\r\n //next(luonghh){\r\n this.Luonghh = luonghh;\r\n this.loadGrid();\r\n }\r\n })\r\n }\r\n\r\n loadGrid() {\r\n let grid: Grid = new Grid({\r\n dataSource: this.Luonghh,\r\n columns: [\r\n { field: 'maluong', headerText: 'Mã luồng', textAlign: 'Right', width: 120, type: 'string' },\r\n { field: 'tenluong', width: 140, headerText: 'Tên luồng', type: 'string' },\r\n { field: 'lat', headerText: 'Kinh độ (Lat)', textAlign: 'Right', width: 120, type: 'string' },\r\n { field: 'lon', headerText: 'Vĩ độ (Lon)', width: 140, type: 'string' }\r\n ],\r\n allowPaging: true,\r\n pageSettings: { pageSize: 15 }\r\n });\r\n\r\n grid.appendTo('#tuyen-luong-grid');\r\n }\r\n\r\n \r\n\r\n ngOnInit() {\r\n //this.getAllLuongHH();\r\n }\r\n\r\n \r\n\r\n}\r\n","module.exports = \".navbar-brand {\\r\\n width: 295px;\\r\\n padding-left: 5px;\\r\\n}\\r\\n\\r\\n.tool {\\r\\n cursor: pointer;\\r\\n z-index: 1;\\r\\n max-width: 350px;\\r\\n}\\r\\n\\r\\nbutton {\\r\\n margin-bottom: 3px;\\r\\n width: 90%;\\r\\n border-radius: 1px;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.btn-primary {\\r\\n background: #3598dc;\\r\\n border-color: #3598dc !important;\\r\\n}\\r\\n\\r\\n.btn-primary:hover {\\r\\n background: #217EBD;\\r\\n }\\r\\n\\r\\n.tool ul {\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n margin-top: 6px;\\r\\n}\\r\\n\\r\\n.tool li {\\r\\n background: #0984e3;\\r\\n list-style: none;\\r\\n padding: 8px;\\r\\n}\\r\\n\\r\\n.tool i {\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n.tool:hover {\\r\\n \\r\\n}\\r\\n\\r\\n.toggle {\\r\\n background-color: #243879;\\r\\n min-width: 330px;\\r\\n color: white;\\r\\n right: 10px;\\r\\n padding: 0 0 10px 15px;\\r\\n}\\r\\n\\r\\n.toggle li:hover {\\r\\n background-color: #4896DE;\\r\\n }\\r\\n\\r\\n.toggle .row {\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.dropbutton {\\r\\n color: white;\\r\\n padding: 14px;\\r\\n font-size: 14px;\\r\\n border: none;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.dropbutton:hover, .dropbutton:focus {\\r\\n background-color: #3e8e41;\\r\\n }\\r\\n\\r\\n.dropdownmenu {\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n outline: none;\\r\\n}\\r\\n\\r\\n.dropdownmenu-content {\\r\\n top:100%;\\r\\n padding-right:0;\\r\\n display: none;\\r\\n position: absolute;\\r\\n background-color: #f9f9f9;\\r\\n min-width: 350px;\\r\\n padding:15px;\\r\\n}\\r\\n\\r\\n.dropdownmenu-content a {\\r\\n color: black;\\r\\n padding: 12px 14px;\\r\\n text-decoration: none;\\r\\n display: block;\\r\\n }\\r\\n\\r\\n.dropdownmenu a:hover {\\r\\n background-color: #f1f1f1\\r\\n}\\r\\n\\r\\n.show {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.dropbutton, .dropbutton:hover, .dropbutton:active, .dropbutton:visited {\\r\\n background: #243879;\\r\\n min-width: 120px;\\r\\n padding: 7px;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.dropbutton::after {\\r\\n display: inline-block;\\r\\n margin-left: .255em;\\r\\n vertical-align: .255em;\\r\\n content: \\\"\\\";\\r\\n border-top: .3em solid;\\r\\n border-right: .3em solid transparent;\\r\\n border-bottom: 0;\\r\\n border-left: .3em solid transparent;\\r\\n }\\r\\n\\r\\n.search-from::-webkit-input-placeholder { /* Edge */\\r\\n color: white;\\r\\n}\\r\\n\\r\\n::-webkit-input-placeholder {\\r\\n color: #EFEEEC;\\r\\n}\\r\\n\\r\\n::-moz-placeholder {\\r\\n color: #EFEEEC;\\r\\n}\\r\\n\\r\\n::-ms-input-placeholder {\\r\\n color: #EFEEEC;\\r\\n}\\r\\n\\r\\n::placeholder {\\r\\n color: #EFEEEC;\\r\\n}\\r\\n\\r\\n.search-from form {\\r\\n width: 260px;\\r\\n}\\r\\n\\r\\ninput[type=text] {\\r\\n width: 260px;\\r\\n height: 35px !important;\\r\\n box-sizing: border-box;\\r\\n font-size: 14px;\\r\\n background-color: #384E92;\\r\\n background-image: url('searchicon.png');\\r\\n background-size: 30px 30px;\\r\\n background-position: 5px 3px;\\r\\n background-repeat: no-repeat;\\r\\n padding: 12px 20px 12px 40px !important;\\r\\n line-height: 40px;\\r\\n -webkit-transition: width 0.4s ease-in-out;\\r\\n transition: width 0.4s ease-in-out;\\r\\n color: white;\\r\\n outline: none;\\r\\n border: none;\\r\\n border-radius: 1px !important;\\r\\n margin-left: 15px !important;\\r\\n}\\r\\n\\r\\ninput[type=text]:focus {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\ninput[type=text]:focus + .filter-select {\\r\\n z-index:10;\\r\\n }\\r\\n\\r\\n.mega-dropdow-menu {\\r\\n width: 430px;\\r\\n padding: 15px;\\r\\n}\\r\\n\\r\\n.mega-dropdow-menu label {\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.mega-dropdow-menu i {\\r\\n width: 16px !important;\\r\\n}\\r\\n\\r\\n.filter-select {\\r\\n list-style: none;\\r\\n font-size: 1.1em;\\r\\n color: rgb(105, 105, 105);\\r\\n border: 1px solid #ccc;\\r\\n border-top: none;\\r\\n position: absolute;\\r\\n min-width: 265px;\\r\\n top: calc(50% + 25px);\\r\\n overflow-y: auto;\\r\\n margin-left: 15px;\\r\\n z-index: -1;\\r\\n /* height:0px; */\\r\\n background: #fff\\r\\n}\\r\\n\\r\\n.filter-select-list img {\\r\\n margin-right: 30px;\\r\\n}\\r\\n\\r\\n.tags {\\r\\n font-size: 12px;\\r\\n font-style: italic;\\r\\n color: #c6c6c6;\\r\\n margin-right: 10px;\\r\\n position: relative;\\r\\n top: -10px;\\r\\n}\\r\\n\\r\\n.filter-select-list:hover .tags {\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.filter-select-list {\\r\\n cursor: pointer;\\r\\n padding: 5px 10px;\\r\\n}\\r\\n\\r\\n.ship-name {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.filter-select-list:hover,.selected {\\r\\n background: #243879;\\r\\n color: #fff\\r\\n}\\r\\n\\r\\n@media only screen and (max-width: 768px) {\\r\\n .filter-select,\\r\\n #keyword {\\r\\n width: 80%;\\r\\n }\\r\\n\\r\\n #keyword {\\r\\n font-size: 1.3em\\r\\n }\\r\\n\\r\\n .filter-select {\\r\\n font-size: 0.9em;\\r\\n left: 10%;\\r\\n top: calc(50% + 23px);\\r\\n }\\r\\n\\r\\n #keyword-button {\\r\\n right: 11%\\r\\n }\\r\\n}\\r\\n\\r\\n@media only screen and (max-width: 480px) {\\r\\n .filter-select,\\r\\n #keyword {\\r\\n width: 95%;\\r\\n }\\r\\n\\r\\n .filter-select {\\r\\n left: 2.5%;\\r\\n }\\r\\n\\r\\n #keyword-button {\\r\\n right: 3.5%\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFpbi90b3BiYXIvdG9wYmFyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZO0VBQ1osaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsZUFBZTtFQUNmLFVBQVU7RUFDVixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsZ0NBQWdDO0FBQ2xDOztBQUVFO0lBQ0UsbUJBQW1CO0VBQ3JCOztBQUVGO0VBQ0UsU0FBUztFQUNULFVBQVU7RUFDVixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7O0FBRUE7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWixXQUFXO0VBQ1gsc0JBQXNCO0FBQ3hCOztBQUVFO0lBQ0UseUJBQXlCO0VBQzNCOztBQUVGO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7RUFDYixlQUFlO0VBQ2YsWUFBWTtFQUNaLGVBQWU7QUFDakI7O0FBRUU7SUFDRSx5QkFBeUI7RUFDM0I7O0FBRUY7RUFDRSxrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLGFBQWE7QUFDZjs7QUFFQTtFQUNFLFFBQVE7RUFDUixlQUFlO0VBQ2YsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQix5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLFlBQVk7QUFDZDs7QUFFRTtJQUNFLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIscUJBQXFCO0lBQ3JCLGNBQWM7RUFDaEI7O0FBRUY7RUFDRTtBQUNGOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLHlCQUF5QjtBQUMzQjs7QUFFQztJQUNHLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLFdBQVc7SUFDWCxzQkFBc0I7SUFDdEIsb0NBQW9DO0lBQ3BDLGdCQUFnQjtJQUNoQixtQ0FBbUM7RUFDckM7O0FBRUYsMENBQTBDLFNBQVM7RUFDakQsWUFBWTtBQUNkOztBQU1BO0VBQ0UsY0FBYztBQUNoQjs7QUFGQTtFQUNFLGNBQWM7QUFDaEI7O0FBRkE7RUFDRSxjQUFjO0FBQ2hCOztBQUZBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFDQTtFQUNFLFlBQVk7RUFDWix1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLGVBQWU7RUFDZix5QkFBeUI7RUFDekIsdUNBQTJEO0VBQzNELDBCQUEwQjtFQUMxQiw0QkFBNEI7RUFDNUIsNEJBQTRCO0VBQzVCLHVDQUF1QztFQUN2QyxpQkFBaUI7RUFDakIsMENBQTBDO0VBQzFDLGtDQUFrQztFQUNsQyxZQUFZO0VBQ1osYUFBYTtFQUNiLFlBQVk7RUFDWiw2QkFBNkI7RUFDN0IsNEJBQTRCO0FBQzlCOztBQUVFO0lBQ0UsV0FBVztFQUNiOztBQUVBO01BQ0ksVUFBVTtFQUNkOztBQUdGO0VBQ0UsWUFBWTtFQUNaLGFBQWE7QUFDZjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixxQkFBcUI7RUFDckIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCO0FBQ0Y7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLFVBQVU7QUFDWjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGVBQWU7RUFDZixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkI7QUFDRjs7QUFHQTtFQUNFOztJQUVFLFVBQVU7RUFDWjs7RUFFQTtJQUNFO0VBQ0Y7O0VBRUE7SUFDRSxnQkFBZ0I7SUFDaEIsU0FBUztJQUNULHFCQUFxQjtFQUN2Qjs7RUFFQTtJQUNFO0VBQ0Y7QUFDRjs7QUFFQTtFQUNFOztJQUVFLFVBQVU7RUFDWjs7RUFFQTtJQUNFLFVBQVU7RUFDWjs7RUFFQTtJQUNFO0VBQ0Y7QUFDRiIsImZpbGUiOiJzcmMvYXBwL21haW4vdG9wYmFyL3RvcGJhci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm5hdmJhci1icmFuZCB7XHJcbiAgd2lkdGg6IDI5NXB4O1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG59XHJcblxyXG4udG9vbCB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgbWF4LXdpZHRoOiAzNTBweDtcclxufVxyXG5cclxuYnV0dG9uIHtcclxuICBtYXJnaW4tYm90dG9tOiAzcHg7XHJcbiAgd2lkdGg6IDkwJTtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLmJ0bi1wcmltYXJ5IHtcclxuICBiYWNrZ3JvdW5kOiAjMzU5OGRjO1xyXG4gIGJvcmRlci1jb2xvcjogIzM1OThkYyAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4gIC5idG4tcHJpbWFyeTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMjE3RUJEO1xyXG4gIH1cclxuXHJcbi50b29sIHVsIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW4tdG9wOiA2cHg7XHJcbn1cclxuXHJcbi50b29sIGxpIHtcclxuICBiYWNrZ3JvdW5kOiAjMDk4NGUzO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgcGFkZGluZzogOHB4O1xyXG59XHJcblxyXG4udG9vbCBpIHtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuLnRvb2w6aG92ZXIge1xyXG4gIFxyXG59XHJcblxyXG4udG9nZ2xlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQzODc5O1xyXG4gIG1pbi13aWR0aDogMzMwcHg7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHJpZ2h0OiAxMHB4O1xyXG4gIHBhZGRpbmc6IDAgMCAxMHB4IDE1cHg7XHJcbn1cclxuXHJcbiAgLnRvZ2dsZSBsaTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDg5NkRFO1xyXG4gIH1cclxuXHJcbi50b2dnbGUgLnJvdyB7XHJcbiAgcGFkZGluZy10b3A6IDEwcHg7XHJcbn1cclxuXHJcbi5kcm9wYnV0dG9uIHtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgcGFkZGluZzogMTRweDtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuICAuZHJvcGJ1dHRvbjpob3ZlciwgLmRyb3BidXR0b246Zm9jdXMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNlOGU0MTtcclxuICB9XHJcblxyXG4uZHJvcGRvd25tZW51IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbn1cclxuXHJcbi5kcm9wZG93bm1lbnUtY29udGVudCB7XHJcbiAgdG9wOjEwMCU7XHJcbiAgcGFkZGluZy1yaWdodDowO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XHJcbiAgbWluLXdpZHRoOiAzNTBweDtcclxuICBwYWRkaW5nOjE1cHg7XHJcbn1cclxuXHJcbiAgLmRyb3Bkb3dubWVudS1jb250ZW50IGEge1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuLmRyb3Bkb3dubWVudSBhOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxXHJcbn1cclxuXHJcbi5zaG93IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmRyb3BidXR0b24sIC5kcm9wYnV0dG9uOmhvdmVyLCAuZHJvcGJ1dHRvbjphY3RpdmUsIC5kcm9wYnV0dG9uOnZpc2l0ZWQge1xyXG4gIGJhY2tncm91bmQ6ICMyNDM4Nzk7XHJcbiAgbWluLXdpZHRoOiAxMjBweDtcclxuICBwYWRkaW5nOiA3cHg7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuIC5kcm9wYnV0dG9uOjphZnRlciB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW4tbGVmdDogLjI1NWVtO1xyXG4gICAgdmVydGljYWwtYWxpZ246IC4yNTVlbTtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBib3JkZXItdG9wOiAuM2VtIHNvbGlkO1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAuM2VtIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMDtcclxuICAgIGJvcmRlci1sZWZ0OiAuM2VtIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIH1cclxuXHJcbi5zZWFyY2gtZnJvbTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIEVkZ2UgKi9cclxuICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5zZWFyY2gtZnJvbTotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAvKiBJbnRlcm5ldCBFeHBsb3JlciAxMC0xMSAqL1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuOjpwbGFjZWhvbGRlciB7XHJcbiAgY29sb3I6ICNFRkVFRUM7XHJcbn1cclxuXHJcbi5zZWFyY2gtZnJvbSBmb3JtIHtcclxuICB3aWR0aDogMjYwcHg7XHJcbn1cclxuaW5wdXRbdHlwZT10ZXh0XSB7XHJcbiAgd2lkdGg6IDI2MHB4O1xyXG4gIGhlaWdodDogMzVweCAhaW1wb3J0YW50O1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMzODRFOTI7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ltZy9zZWFyY2hpY29uLnBuZ1wiKTtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDMwcHggMzBweDtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1cHggM3B4O1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgcGFkZGluZzogMTJweCAyMHB4IDEycHggNDBweCAhaW1wb3J0YW50O1xyXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC40cyBlYXNlLWluLW91dDtcclxuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjRzIGVhc2UtaW4tb3V0O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBib3JkZXItcmFkaXVzOiAxcHggIWltcG9ydGFudDtcclxuICBtYXJnaW4tbGVmdDogMTVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4gIGlucHV0W3R5cGU9dGV4dF06Zm9jdXMgIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgaW5wdXRbdHlwZT10ZXh0XTpmb2N1cyArIC5maWx0ZXItc2VsZWN0IHtcclxuICAgICAgei1pbmRleDoxMDtcclxuICB9XHJcblxyXG5cclxuLm1lZ2EtZHJvcGRvdy1tZW51IHtcclxuICB3aWR0aDogNDMwcHg7XHJcbiAgcGFkZGluZzogMTVweDtcclxufVxyXG5cclxuLm1lZ2EtZHJvcGRvdy1tZW51IGxhYmVsIHtcclxuICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLm1lZ2EtZHJvcGRvdy1tZW51IGkge1xyXG4gIHdpZHRoOiAxNnB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5maWx0ZXItc2VsZWN0IHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIGZvbnQtc2l6ZTogMS4xZW07XHJcbiAgY29sb3I6IHJnYigxMDUsIDEwNSwgMTA1KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG4gIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIG1pbi13aWR0aDogMjY1cHg7XHJcbiAgdG9wOiBjYWxjKDUwJSArIDI1cHgpO1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgei1pbmRleDogLTE7XHJcbiAgLyogaGVpZ2h0OjBweDsgKi9cclxuICBiYWNrZ3JvdW5kOiAjZmZmXHJcbn1cclxuXHJcbi5maWx0ZXItc2VsZWN0LWxpc3QgaW1nIHtcclxuICBtYXJnaW4tcmlnaHQ6IDMwcHg7XHJcbn1cclxuXHJcbi50YWdzIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIGNvbG9yOiAjYzZjNmM2O1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgdG9wOiAtMTBweDtcclxufVxyXG5cclxuLmZpbHRlci1zZWxlY3QtbGlzdDpob3ZlciAudGFncyB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5maWx0ZXItc2VsZWN0LWxpc3Qge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBwYWRkaW5nOiA1cHggMTBweDtcclxufVxyXG5cclxuLnNoaXAtbmFtZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmZpbHRlci1zZWxlY3QtbGlzdDpob3Zlciwuc2VsZWN0ZWQge1xyXG4gIGJhY2tncm91bmQ6ICMyNDM4Nzk7XHJcbiAgY29sb3I6ICNmZmZcclxufVxyXG5cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAuZmlsdGVyLXNlbGVjdCxcclxuICAja2V5d29yZCB7XHJcbiAgICB3aWR0aDogODAlO1xyXG4gIH1cclxuXHJcbiAgI2tleXdvcmQge1xyXG4gICAgZm9udC1zaXplOiAxLjNlbVxyXG4gIH1cclxuXHJcbiAgLmZpbHRlci1zZWxlY3Qge1xyXG4gICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgIGxlZnQ6IDEwJTtcclxuICAgIHRvcDogY2FsYyg1MCUgKyAyM3B4KTtcclxuICB9XHJcblxyXG4gICNrZXl3b3JkLWJ1dHRvbiB7XHJcbiAgICByaWdodDogMTElXHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XHJcbiAgLmZpbHRlci1zZWxlY3QsXHJcbiAgI2tleXdvcmQge1xyXG4gICAgd2lkdGg6IDk1JTtcclxuICB9XHJcblxyXG4gIC5maWx0ZXItc2VsZWN0IHtcclxuICAgIGxlZnQ6IDIuNSU7XHJcbiAgfVxyXG5cclxuICAja2V5d29yZC1idXR0b24ge1xyXG4gICAgcmlnaHQ6IDMuNSVcclxuICB9XHJcbn1cclxuIl19 */\"","import { Router } from '@angular/router';\r\nimport { Component, OnInit, ElementRef, HostListener, ViewChild } from '@angular/core';\r\nimport { MENUS } from '../../mock-menu';\r\nimport { menu } from '../../menu';\r\nimport { UserConfigs } from '../../_models/userConfigs.model';\r\nimport { AlertService } from '../../_services/alert.service';\r\nimport { ConfirmService } from '../../_services/confirm.service';\r\nimport { LuongHHModel } from '../../_models/luonghh.model';\r\nimport { CagetoryService } from '../../_services/category.service';\r\nimport { CommonLib, APPS } from '../../_providers/commonLib';\r\nimport { FormControl } from '@angular/forms';\r\nimport { switchMap, debounceTime, tap, finalize } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ShipService } from '../../_services/ship.service';\r\nimport { ShipModel } from '../../_models/ship.model';\r\nimport { SearchShipModel } from '../../_models/searchShip.model';\r\nimport { GiamSatTrucTuyenComponent } from '../tabcontent/giam-sat-truc-tuyen/giam-sat-truc-tuyen.component';\r\nimport { EventEmitterService } from '../../_services/event-emitter.service';\r\n\r\n\r\ndeclare function openTab(event: any, id: string): any;\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-topbar',\r\n templateUrl: './topbar.component.html',\r\n styleUrls: ['./topbar.component.css']\r\n})\r\nexport class TopbarComponent implements OnInit {\r\n // select2 Luong\r\n Luonghh: LuongHHModel[];\r\n\r\n constructor(private eventEmitterService: EventEmitterService, private shipApi: ShipService, private router: Router, private confirmService: ConfirmService) { }\r\n\r\n opentab(event, id) {\r\n openTab(event, id);\r\n }\r\n\r\n /**\r\n * queryField: form control dùng để tương tác với input\r\n * **/\r\n queryField: FormControl = new FormControl();\r\n\r\n /**\r\n *Lưu lỗi\r\n * **/\r\n errorMsg: string;\r\n\r\n /**\r\n *Lưu kết quả tìm kiếm\r\n * **/\r\n filteredMovies: any;\r\n searchResults: ShipModel[];\r\n\r\n menus: menu[];\r\n email: string;\r\n user: UserConfigs = UserConfigs.getCurrentUser();\r\n\r\n test: any;\r\n doLogout(): void {\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n this.router.navigate([\"login\"]);\r\n location.reload();\r\n }\r\n\r\n logout(): void {\r\n this.confirmService.confirm('Xác nhận', 'Bạn có chắc chắn muốn đăng xuất khỏi hệ thống ?')\r\n .then((confirmed) => this.doLogout())\r\n .catch(() => console.log('Người dùng close modal (click close hoặc nhấn vào desktop)'));\r\n }\r\n\r\n /**\r\n * Sự kiện khi click vào kết quả tìm kiếm\r\n * */\r\n onClick_searchResult() {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.email = this.user.Email;\r\n this.menus = MENUS;\r\n\r\n /**\r\n * this.queryField.valueChanges - Thực hiện khi text trong search input change\r\n * debounceTime(200) delay 200ms\r\n * Lấy dữ liệu trả về từ searchService\r\n * Nếu có lỗi, console.log lỗi\r\n * **/\r\n this.queryField.valueChanges\r\n .pipe(\r\n debounceTime(500),\r\n tap(() => {\r\n this.searchResults = [];\r\n }))\r\n .subscribe(value => {\r\n if (value.length >= 7) {\r\n this.shipApi.search(value).subscribe({\r\n next: res => {\r\n this.searchResults = res;\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n\r\n\r\n //if (data['Search'] == undefined) {\r\n // this.errorMsg = data['Error'];\r\n // console.log(this.errorMsg);\r\n // this.filteredMovies = [];\r\n //} else {\r\n // this.errorMsg = \"\";\r\n // this.filteredMovies = data['Search'];\r\n //}\r\n\r\n });\r\n }\r\n\r\n key: any;\r\n\r\n @ViewChild('filterSearch', { static: false }) el: ElementRef;\r\n\r\n @HostListener('document:keypress', ['$event'])\r\n handleKeyboardEvent(event: KeyboardEvent) {\r\n this.key = event.key;\r\n if (this.key == 'Enter') {\r\n let selector = this.el.nativeElement.querySelector('.selected');\r\n let data: ShipModel = new ShipModel();\r\n\r\n data.id = selector.getAttribute('data-ship-id');\r\n data.name = selector.getAttribute('data-ship-name');\r\n data.mmsi = selector.getAttribute('data-ship-mmsi');\r\n data.lat = selector.getAttribute('data-ship-lat');\r\n data.lon = selector.getAttribute('data-ship-lon');\r\n data.imo = selector.getAttribute('data-ship-imo');\r\n\r\n this.ShowPopup(data);\r\n }\r\n }\r\n\r\n mouseEnter(mmsi: string) {\r\n $('#searchInput').val(mmsi);\r\n }\r\n\r\n ShowPopup(data) {\r\n $('#searchInput').val(data.name);\r\n\r\n\r\n this.eventEmitterService.gstt_GetShipExAndShowPopup(data);\r\n this.searchResults = null;\r\n }\r\n}\r\n\r\n\r\n\r\n","import { menu } from './menu';\r\n\r\nexport const MENUS: menu[] = [\r\n //{\r\n // id: 1,\r\n // name: 'Giám sát tàu',\r\n // role: true,\r\n // subitem: [\r\n // {\r\n // id: 3,\r\n // parent_id: 1,\r\n // name: 'Bản đồ',\r\n // url: 'link-map-online',\r\n // role: true,\r\n // router: 'giam-sat-truc-tuyen',\r\n // class: 'active'\r\n // },\r\n // {\r\n // id: 4,\r\n // parent_id: 1,\r\n // name: 'Dữ liệu giám sát',\r\n // url: 'link-menu1',\r\n // role: true,\r\n // router: 'du-lieu-giam-sat',\r\n // class: ' '\r\n // }\r\n // ],\r\n //},\r\n\r\n //{\r\n // id: 2,\r\n // name: 'Danh mục',\r\n // role: true,\r\n // subitem: [\r\n // {\r\n // id: 6,\r\n // parent_id: 2,\r\n // name: 'Tàu nạo vét',\r\n // url: 'link-menu3',\r\n // role: true,\r\n // router: 'tau-nao-vet',\r\n // class: ' '\r\n // },\r\n // {\r\n // id: 7,\r\n // parent_id: 2,\r\n // name: 'Nhà thầu',\r\n // url: 'link-menu4',\r\n // role: true,\r\n // router: 'nha-thau',\r\n // class: ' '\r\n // },\r\n // {\r\n // id: 8,\r\n // parent_id: 2,\r\n // name: 'Chủ đầu tư',\r\n // url: 'link-menu5',\r\n // role: true,\r\n // router: 'chu-dau-tu',\r\n // class: ' '\r\n // },\r\n // {\r\n // id: 9,\r\n // parent_id: 9,\r\n // name: 'Chủ tàu',\r\n // url: 'link-menu6',\r\n // role: true,\r\n // router: 'chu-tau',\r\n // class: ' '\r\n // },\r\n // {\r\n // id: 10,\r\n // parent_id: 9,\r\n // name: 'Tuyến luồng',\r\n // url: 'link-menu7',\r\n // role: true,\r\n // router: 'tuyen-luong',\r\n // class: ' '\r\n // }\r\n // ]\r\n //}\r\n];\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZGFsL21vZGFsLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.css']\n})\nexport class ModalComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"fieldset {\\r\\n border: 1px solid #E8EAED;\\r\\n padding: 8px;\\r\\n outline: none;\\r\\n}\\r\\n\\r\\nlegend {\\r\\n display: inline;\\r\\n font-size: 13px;\\r\\n margin-left: 0px;\\r\\n padding: 0px;\\r\\n}\\r\\n\\r\\n.ol-popup-closer:after {\\r\\n content: \\\"✖\\\";\\r\\n}\\r\\n\\r\\n.ol-popup-closer:hover {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.gsnv-popup {\\r\\n background: #fff;\\r\\n}\\r\\n\\r\\n#popupInfoShip {\\r\\n background: #fff !important;\\r\\n}\\r\\n\\r\\n.popup-content {\\r\\n width: 100%;\\r\\n /*margin: 40px auto;*/\\r\\n}\\r\\n\\r\\n.row {\\r\\n padding: 2px 0;\\r\\n}\\r\\n\\r\\n.row-dinhdanh-header {\\r\\n background: #273779;\\r\\n color: white;\\r\\n padding: 10px 10px 10px 0;\\r\\n}\\r\\n\\r\\n.row-dinhdanh, .row-hoatdong, .row-vitri, .row-tools {\\r\\n padding: 0px 15px;\\r\\n}\\r\\n\\r\\n.row-dinhdanh {\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.row-tools {\\r\\n padding-bottom: 15px;\\r\\n}\\r\\n\\r\\n.row-tools .btn {\\r\\n min-width: 45px;\\r\\n padding-top: 8px;\\r\\n padding-bottom: 8px;\\r\\n }\\r\\n\\r\\n.rec-flag img {\\r\\n max-width: 70px;\\r\\n padding-right: 0;\\r\\n}\\r\\n\\r\\n.rec-name {\\r\\n padding-top: 6px;\\r\\n}\\r\\n\\r\\nlabel {\\r\\n font-weight: bold;\\r\\n margin-bottom: 0;\\r\\n padding-bottom: 0;\\r\\n}\\r\\n\\r\\n.add-item {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.add-item-active {\\r\\n position: absolute;\\r\\n top: 38px;\\r\\n left: 156px;\\r\\n background: white;\\r\\n display: block !important;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.add-item ul {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n overflow: scroll;\\r\\n overflow-x: hidden;\\r\\n max-height: 250px;\\r\\n border: 1px solid #ddd;\\r\\n}\\r\\n\\r\\n.add-item ul li {\\r\\n padding: 7px 12px;\\r\\n /*height: 35px;*/\\r\\n list-style: none;\\r\\n min-width: 210px;\\r\\n border-bottom: 1px solid #F0F0F0;\\r\\n }\\r\\n\\r\\n.add-item ul li:hover {\\r\\n background: #F0F0F0;\\r\\n }\\r\\n\\r\\n.add-item ul li:hover {\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n.select2-container {\\r\\n min-width: 120px\\r\\n}\\r\\n\\r\\n.box-dstau {\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.list-btn-track {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.list-btn-track-active {\\r\\n position: absolute;\\r\\n top: 40px;\\r\\n background: white;\\r\\n display: block !important;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.list-btn-track button {\\r\\n margin-right: 1px;\\r\\n margin-bottom: 1px;\\r\\n}\\r\\n\\r\\n.list-btn-track .btn-big {\\r\\n padding-right: 34px !important;\\r\\n padding-left: 34px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hpcC1wb3B1cC9zaGlwLXBvcHVwLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBeUI7RUFDekIsWUFBWTtFQUNaLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGVBQWU7RUFDZixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLFlBQVk7QUFDZDs7QUFHQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxXQUFXO0VBQ1gscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1oseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0Usb0JBQW9CO0FBQ3RCOztBQUVFO0lBQ0UsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixtQkFBbUI7RUFDckI7O0FBRUY7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFdBQVc7RUFDWCxpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLFVBQVU7QUFDWjs7QUFFQTtFQUNFLFVBQVU7RUFDVixTQUFTO0VBQ1QsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsc0JBQXNCO0FBQ3hCOztBQUVFO0lBQ0UsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGdDQUFnQztFQUNsQzs7QUFFRTtNQUNFLG1CQUFtQjtJQUNyQjs7QUFFQTtNQUNFLGVBQWU7SUFDakI7O0FBRUo7RUFDRTtBQUNGOztBQUdBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUlBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLFVBQVU7QUFDWjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSw4QkFBOEI7RUFDOUIsNkJBQTZCO0FBQy9CIiwiZmlsZSI6InNyYy9hcHAvc2hpcC1wb3B1cC9zaGlwLXBvcHVwLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJmaWVsZHNldCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI0U4RUFFRDtcclxuICBwYWRkaW5nOiA4cHg7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxubGVnZW5kIHtcclxuICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XHJcbiAgcGFkZGluZzogMHB4O1xyXG59XHJcblxyXG5cclxuLm9sLXBvcHVwLWNsb3NlcjphZnRlciB7XHJcbiAgY29udGVudDogXCLinJZcIjtcclxufVxyXG5cclxuLm9sLXBvcHVwLWNsb3Nlcjpob3ZlciB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uZ3Nudi1wb3B1cCB7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxufVxyXG5cclxuI3BvcHVwSW5mb1NoaXAge1xyXG4gIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnBvcHVwLWNvbnRlbnQge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIC8qbWFyZ2luOiA0MHB4IGF1dG87Ki9cclxufVxyXG5cclxuLnJvdyB7XHJcbiAgcGFkZGluZzogMnB4IDA7XHJcbn1cclxuXHJcbi5yb3ctZGluaGRhbmgtaGVhZGVyIHtcclxuICBiYWNrZ3JvdW5kOiAjMjczNzc5O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCAwO1xyXG59XHJcblxyXG4ucm93LWRpbmhkYW5oLCAucm93LWhvYXRkb25nLCAucm93LXZpdHJpLCAucm93LXRvb2xzIHtcclxuICBwYWRkaW5nOiAwcHggMTVweDtcclxufVxyXG5cclxuLnJvdy1kaW5oZGFuaCB7XHJcbiAgcGFkZGluZy10b3A6IDEwcHg7XHJcbn1cclxuXHJcbi5yb3ctdG9vbHMge1xyXG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG59XHJcblxyXG4gIC5yb3ctdG9vbHMgLmJ0biB7XHJcbiAgICBtaW4td2lkdGg6IDQ1cHg7XHJcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcclxuICB9XHJcblxyXG4ucmVjLWZsYWcgaW1nIHtcclxuICBtYXgtd2lkdGg6IDcwcHg7XHJcbiAgcGFkZGluZy1yaWdodDogMDtcclxufVxyXG5cclxuLnJlYy1uYW1lIHtcclxuICBwYWRkaW5nLXRvcDogNnB4O1xyXG59XHJcblxyXG5sYWJlbCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuICBwYWRkaW5nLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmFkZC1pdGVtIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uYWRkLWl0ZW0tYWN0aXZlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAzOHB4O1xyXG4gIGxlZnQ6IDE1NnB4O1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgei1pbmRleDogMTtcclxufVxyXG5cclxuLmFkZC1pdGVtIHVsIHtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBvdmVyZmxvdzogc2Nyb2xsO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBtYXgtaGVpZ2h0OiAyNTBweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xyXG59XHJcblxyXG4gIC5hZGQtaXRlbSB1bCBsaSB7XHJcbiAgICBwYWRkaW5nOiA3cHggMTJweDtcclxuICAgIC8qaGVpZ2h0OiAzNXB4OyovXHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWluLXdpZHRoOiAyMTBweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjBGMEYwO1xyXG4gIH1cclxuXHJcbiAgICAuYWRkLWl0ZW0gdWwgbGk6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjRjBGMEYwO1xyXG4gICAgfVxyXG5cclxuICAgIC5hZGQtaXRlbSB1bCBsaTpob3ZlciB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lciB7XHJcbiAgbWluLXdpZHRoOiAxMjBweFxyXG59XHJcblxyXG5cclxuLmJveC1kc3RhdSB7XHJcbiAgcGFkZGluZy10b3A6IDEwcHg7XHJcbn1cclxuXHJcblxyXG5cclxuLmxpc3QtYnRuLXRyYWNrIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ubGlzdC1idG4tdHJhY2stYWN0aXZlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA0MHB4O1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgei1pbmRleDogMTtcclxufVxyXG5cclxuLmxpc3QtYnRuLXRyYWNrIGJ1dHRvbiB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xyXG59XHJcblxyXG4ubGlzdC1idG4tdHJhY2sgLmJ0bi1iaWcge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDM0cHggIWltcG9ydGFudDtcclxuICBwYWRkaW5nLWxlZnQ6IDM0cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, AfterViewInit } from '@angular/core';\r\nimport { ShipModel } from '../_models/ship.model';\r\nimport { CagetoryService } from '../_services/category.service';\r\nimport { AjaxResponseModel } from '../_models/ajaxResponse.model';\r\nimport { DsTauModel } from '../_models/dstau.model';\r\nimport { CommonLib, ELMS } from '../_providers/commonLib';\r\nimport { AlertService } from '../_services/alert.service';\r\nimport { ConfirmService } from '../_services/confirm.service';\r\nimport { ShipService } from '../_services/ship.service';\r\nimport { ThongKeModel } from '../_models/thongke.model';\r\nimport { LayerTracks } from '../_class/LayerTracks';\r\nimport { TrackItemModel } from '../_models/trackItem.model';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-ship-popup',\r\n templateUrl: './ship-popup.component.html',\r\n styleUrls: ['./ship-popup.component.css']\r\n})\r\nexport class ShipPopupComponent implements OnInit, OnChanges {\r\n @Input() sm: ShipModel = new ShipModel();\r\n @Input() DanhSachId: string = '';\r\n @Input() enableEditDsTau: boolean;\r\n //\r\n @Output() showTrackEvent: EventEmitter = new EventEmitter();\r\n @Output() clearTrackByShip: EventEmitter = new EventEmitter();\r\n @Output() closePopup: EventEmitter = new EventEmitter();\r\n @Output() deletedShip: EventEmitter = new EventEmitter();\r\n @Output() handlerShowTrackItems_ThongKe: EventEmitter = new EventEmitter();\r\n\r\n constructor(private cateApi: CagetoryService, private shipApi: ShipService,\r\n private alertService: AlertService, private confirmService: ConfirmService) { }\r\n\r\n dsTau: DsTauModel[];\r\n isDetailTracking: boolean = false;\r\n\r\n isOnClickThongke: boolean = false;\r\n\r\n ngOnChanges() {\r\n $(\".add-item\").removeClass(\"add-item-active\");\r\n $(\".list-btn-track\").removeClass(\"list-btn-track-active\");\r\n this.getAllDsTau();\r\n this.isOnClickThongke = false;\r\n this.isDetailTracking = false;\r\n }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n addShip() {\r\n $(\".add-item\").toggleClass(\"add-item-active\");\r\n $(\".list-btn-track\").removeClass(\"list-btn-track-active\");\r\n }\r\n showBtnTrack() {\r\n $(\".list-btn-track\").toggleClass(\"list-btn-track-active\");\r\n $(\".add-item\").removeClass(\"add-item-active\");\r\n }\r\n\r\n doClosePopup() {\r\n this.closePopup.emit(true);\r\n }\r\n\r\n doViewTrack(hours: number) {\r\n this.sm.danhsachid = this.DanhSachId == \"\" ? 0 : parseInt(this.DanhSachId);\r\n this.sm.is_detail_track = this.isDetailTracking;\r\n this.sm.track_hours = hours;\r\n this.showTrackEvent.emit(this.sm);\r\n $(\".list-btn-track\").removeClass(\"list-btn-track-active\");\r\n }\r\n\r\n doClearTrack() {\r\n this.clearTrackByShip.emit(this.sm);\r\n }\r\n\r\n getAllDsTau() {\r\n this.cateApi.getAllDsTau().subscribe({\r\n next: res => {\r\n this.dsTau = res;\r\n },\r\n error: err => { CommonLib.ErrorLog(err); }\r\n })\r\n }\r\n\r\n OuputObjs;\r\n /**\r\n * Thêm 1 tàu vào danh sách\r\n * @param dsid\r\n * @param matau\r\n * @param mmsi\r\n */\r\n AddToDsTau(dsid: number, tends: string, matau: number, mmsi: string, tentau: string) {\r\n this.OuputObjs= {\r\n action: 'add',\r\n dsid: dsid,\r\n tends: tends,\r\n mmsi: mmsi,\r\n matau: matau,\r\n tentau: tentau\r\n }\r\n CommonLib.createDialog(ELMS.AddTauVaoDs, \"Thêm tàu \\\"\" + tentau + \"\\\" vào đội tàu \\\"\" + tends + \"\\\"\", 'ui-dialog-add-tau-vao-ds', 400);\r\n $(\".add-item\").removeClass(\"add-item-active\");\r\n \r\n }\r\n\r\n\r\n editShip(dsid: number,matau: number, mmsi: string) {\r\n this.OuputObjs = {\r\n action: 'edit',\r\n dsid: dsid,\r\n mmsi: mmsi,\r\n matau: matau,\r\n }\r\n CommonLib.createDialog(ELMS.AddTauVaoDs, \"Sửa thông tin tàu\", 'ui-dialog-add-tau-vao-ds', 400);\r\n //$(\".add-item\").removeClass(\"add-item-active\");\r\n }\r\n\r\n /**\r\n * Xóa 1 tàu khỏi danh sách\r\n * */\r\n delShip() {\r\n if (this.DanhSachId != '' && this.sm != null) {\r\n this.confirmService.confirm('Xác nhận', 'Bạn có chắc chắc muốn xóa tàu này khỏi đội tàu?')\r\n .then((confirmed) =>\r\n this.cateApi.DelTau_DsTau(parseInt(this.DanhSachId), this.sm.id, this.sm.mmsi).subscribe({\r\n next: res => {\r\n if (res) {\r\n if (res) {\r\n this.alertService.success(\"Đã xóa tàu khỏi đội tàu\");\r\n this.deletedShip.emit(true);\r\n } else {\r\n this.alertService.info(\"Có lỗi trong quá trình xử lý\");\r\n }\r\n }\r\n },\r\n error: err => {\r\n CommonLib.ErrorLog(err);\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n thongKeItems: ThongKeModel[];\r\n /**\r\n * Thống kê dữ liệu tàu theo ngày\r\n * */\r\n doThongKe() {\r\n CommonLib.loadingShow();\r\n this.shipApi.getThongKe1Tau(this.sm.mmsi, this.sm.name, this.sm.calsign, this.sm.imo).subscribe({\r\n next: response => {\r\n CommonLib.loadingHide();\r\n this.thongKeItems = response;\r\n this.isOnClickThongke = true;\r\n this.sm.danhsachid = this.DanhSachId == \"\" ? 0 : parseInt(this.DanhSachId);\r\n CommonLib.createDialog(ELMS.ThongKe1Tau, \"Thống kê tổng quát dữ liệu tàu\", \"thong-ke-1tau\", 800);\r\n },\r\n error: err => {\r\n CommonLib.loadingHide();\r\n CommonLib.ErrorLog(err);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Hứng mảng trackItems từ ThongKeComponent và gửi sang GiamSatTrucTuyenComponent\r\n * @param data = [shipOwner, trackItems, DateSeleted]\r\n */\r\n handlerShowTrackItems_OneDay(data) {\r\n this.handlerShowTrackItems_ThongKe.emit(data);\r\n }\r\n\r\n\r\n}\r\n","/*!\n * Chart.js\n * http://chartjs.org/\n * Version: 2.7.2\n *\n * Copyright 2018 Chart.js Contributors\n * Released under the MIT license\n * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md\n */\n!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).Chart=t()}}(function(){return function t(e,i,n){function a(r,s){if(!i[r]){if(!e[r]){var l=\"function\"==typeof require&&require;if(!s&&l)return l(r,!0);if(o)return o(r,!0);var u=new Error(\"Cannot find module '\"+r+\"'\");throw u.code=\"MODULE_NOT_FOUND\",u}var d=i[r]={exports:{}};e[r][0].call(d.exports,function(t){var i=e[r][1][t];return a(i||t)},d,d.exports,t,e,i,n)}return i[r].exports}for(var o=\"function\"==typeof require&&require,r=0;ri?(e+.05)/(i+.05):(i+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?\"AAA\":e>=4.5?\"AA\":\"\"},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues(\"rgb\",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues(\"hsl\",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues(\"hsl\",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues(\"hsl\",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues(\"hsl\",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues(\"hwb\",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues(\"hwb\",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues(\"rgb\",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues(\"alpha\",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues(\"alpha\",e+e*t),this},rotate:function(t){var e=this.values.hsl,i=(e[0]+t)%360;return e[0]=i<0?360+i:i,this.setValues(\"hsl\",e),this},mix:function(t,e){var i=this,n=t,a=void 0===e?.5:e,o=2*a-1,r=i.alpha()-n.alpha(),s=((o*r==-1?o:(o+r)/(1+o*r))+1)/2,l=1-s;return this.rgb(s*i.red()+l*n.red(),s*i.green()+l*n.green(),s*i.blue()+l*n.blue()).alpha(i.alpha()*a+n.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,i=new o,n=this.values,a=i.values;for(var r in n)n.hasOwnProperty(r)&&(t=n[r],\"[object Array]\"===(e={}.toString.call(t))?a[r]=t.slice(0):\"[object Number]\"===e?a[r]=t:console.error(\"unexpected color value:\",t));return i}},o.prototype.spaces={rgb:[\"red\",\"green\",\"blue\"],hsl:[\"hue\",\"saturation\",\"lightness\"],hsv:[\"hue\",\"saturation\",\"value\"],hwb:[\"hue\",\"whiteness\",\"blackness\"],cmyk:[\"cyan\",\"magenta\",\"yellow\",\"black\"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,i={},n=0;n.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.1805*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)),100*(.2126*e+.7152*i+.0722*n),100*(.0193*e+.1192*i+.9505*n)]}function d(t){var e=u(t),i=e[0],n=e[1],a=e[2];return n/=100,a/=108.883,i=(i/=95.047)>.008856?Math.pow(i,1/3):7.787*i+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(i-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function c(t){var e,i,n,a,o,r=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[o=255*l,o,o];e=2*l-(i=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var u=0;u<3;u++)(n=r+1/3*-(u-1))<0&&n++,n>1&&n--,o=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e,a[u]=255*o;return a}function h(t){var e=t[0]/60,i=t[1]/100,n=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*n*(1-i),s=255*n*(1-i*o),l=255*n*(1-i*(1-o));n*=255;switch(a){case 0:return[n,l,r];case 1:return[s,n,r];case 2:return[r,n,l];case 3:return[r,s,n];case 4:return[l,r,n];case 5:return[n,r,s]}}function f(t){var e,i,n,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,u=s+l;switch(u>1&&(s/=u,l/=u),n=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(n=1-n),a=s+n*((i=1-l)-s),e){default:case 6:case 0:r=i,g=a,b=s;break;case 1:r=a,g=i,b=s;break;case 2:r=s,g=i,b=a;break;case 3:r=s,g=a,b=i;break;case 4:r=a,g=s,b=i;break;case 5:r=i,g=s,b=a}return[255*r,255*g,255*b]}function p(t){var e=t[0]/100,i=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function m(t){var e,i,n,a=t[0]/100,o=t[1]/100,r=t[2]/100;return i=-.9689*a+1.8758*o+.0415*r,n=.0557*a+-.204*o+1.057*r,e=(e=3.2406*a+-1.5372*o+-.4986*r)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1))]}function v(t){var e=t[0],i=t[1],n=t[2];return i/=100,n/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(e-i),200*(i-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]}function x(t){var e,i,n,a,o=t[0],r=t[1],s=t[2];return o<=8?a=(i=100*o/903.3)/100*7.787+16/116:(i=100*Math.pow((o+16)/116,3),a=Math.pow(i/100,1/3)),[e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i,n=n/108.883<=.008859?n=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function y(t){var e,i=t[0],n=t[1],a=t[2];return(e=360*Math.atan2(a,n)/2/Math.PI)<0&&(e+=360),[i,Math.sqrt(n*n+a*a),e]}function k(t){return m(x(t))}function M(t){var e,i=t[0],n=t[1];return e=t[2]/360*2*Math.PI,[i,n*Math.cos(e),n*Math.sin(e)]}function w(t){return S[t]}e.exports={rgb2hsl:n,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:s,rgb2keyword:l,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return y(d(t))},hsl2rgb:c,hsl2hsv:function(t){var e=t[0],i=t[1]/100,n=t[2]/100;if(0===n)return[0,0,0];return[e,100*(2*(i*=(n*=2)<=1?n:2-n)/(n+i)),100*((n+i)/2)]},hsl2hwb:function(t){return o(c(t))},hsl2cmyk:function(t){return s(c(t))},hsl2keyword:function(t){return l(c(t))},hsv2rgb:h,hsv2hsl:function(t){var e,i,n=t[0],a=t[1]/100,o=t[2]/100;return e=a*o,[n,100*(e=(e/=(i=(2-a)*o)<=1?i:2-i)||0),100*(i/=2)]},hsv2hwb:function(t){return o(h(t))},hsv2cmyk:function(t){return s(h(t))},hsv2keyword:function(t){return l(h(t))},hwb2rgb:f,hwb2hsl:function(t){return n(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return s(f(t))},hwb2keyword:function(t){return l(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return n(p(t))},cmyk2hsv:function(t){return a(p(t))},cmyk2hwb:function(t){return o(p(t))},cmyk2keyword:function(t){return l(p(t))},keyword2rgb:w,keyword2hsl:function(t){return n(w(t))},keyword2hsv:function(t){return a(w(t))},keyword2hwb:function(t){return o(w(t))},keyword2cmyk:function(t){return s(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return u(w(t))},xyz2rgb:m,xyz2lab:v,xyz2lch:function(t){return y(v(t))},lab2xyz:x,lab2rgb:k,lab2lch:y,lch2lab:M,lch2xyz:function(t){return x(M(t))},lch2rgb:function(t){return k(M(t))}};var S={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},C={};for(var _ in S)C[JSON.stringify(S[_])]=_},{}],5:[function(t,e,i){var n=t(4),a=function(){return new u};for(var o in n){a[o+\"Raw\"]=function(t){return function(e){return\"number\"==typeof e&&(e=Array.prototype.slice.call(arguments)),n[t](e)}}(o);var r=/(\\w+)2(\\w+)/.exec(o),s=r[1],l=r[2];(a[s]=a[s]||{})[l]=a[o]=function(t){return function(e){\"number\"==typeof e&&(e=Array.prototype.slice.call(arguments));var i=n[t](e);if(\"string\"==typeof i||void 0===i)return i;for(var a=0;a0&&(t[0].yLabel?i=t[0].yLabel:e.labels.length>0&&t[0].index0?Math.min(r,n-i):r,i=n;return r}(i,u):-1,pixels:u,start:s,end:l,stackCount:n,scale:i}},calculateBarValuePixels:function(t,e){var i,n,a,o,r,s,l=this.chart,u=this.getMeta(),d=this.getValueScale(),c=l.data.datasets,h=d.getRightValue(c[t].data[e]),f=d.options.stacked,g=u.stack,p=0;if(f||void 0===f&&void 0!==g)for(i=0;i=0&&a>0)&&(p+=a));return o=d.getPixelForValue(p),{size:s=((r=d.getPixelForValue(p+h))-o)/2,base:o,head:r,center:r+s/2}},calculateBarIndexPixels:function(t,e,i){var n,a,r,s,l,u,d,c,h,f,g,p,m,v,b,x,y,k=i.scale.options,M=\"flex\"===k.barThickness?(h=e,g=k,m=(f=i).pixels,v=m[h],b=h>0?m[h-1]:null,x=h');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o'),a[o]&&e.push(a[o]),e.push(\"\");return e.push(\"\"),e.join(\"\")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),r=e.datasets[0],s=a.data[n],l=s&&s.custom||{},u=o.valueAtIndexOrDefault,d=t.options.elements.arc;return{text:i,fillStyle:l.backgroundColor?l.backgroundColor:u(r.backgroundColor,n,d.backgroundColor),strokeStyle:l.borderColor?l.borderColor:u(r.borderColor,n,d.borderColor),lineWidth:l.borderWidth?l.borderWidth:u(r.borderWidth,n,d.borderWidth),hidden:isNaN(r.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i=Math.PI?-1:g<-Math.PI?1:0))+f,m=Math.cos(g),v=Math.sin(g),b=Math.cos(p),x=Math.sin(p),y=g<=0&&p>=0||g<=2*Math.PI&&2*Math.PI<=p,k=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,M=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,w=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,S=h/100,C=M?-1:Math.min(m*(m<0?1:S),b*(b<0?1:S)),_=w?-1:Math.min(v*(v<0?1:S),x*(x<0?1:S)),D=y?1:Math.max(m*(m>0?1:S),b*(b>0?1:S)),I=k?1:Math.max(v*(v>0?1:S),x*(x>0?1:S)),P=.5*(D-C),A=.5*(I-_);u=Math.min(s/P,l/A),d={x:-.5*(D+C),y:-.5*(I+_)}}i.borderWidth=e.getMaxBorderWidth(c.data),i.outerRadius=Math.max((u-i.borderWidth)/2,0),i.innerRadius=Math.max(h?i.outerRadius/100*h:0,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),i.offsetX=d.x*i.outerRadius,i.offsetY=d.y*i.outerRadius,c.total=e.calculateTotal(),e.outerRadius=i.outerRadius-i.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-i.radiusLength,0),o.each(c.data,function(i,n){e.updateElement(i,n,t)})},updateElement:function(t,e,i){var n=this,a=n.chart,r=a.chartArea,s=a.options,l=s.animation,u=(r.left+r.right)/2,d=(r.top+r.bottom)/2,c=s.rotation,h=s.rotation,f=n.getDataset(),g=i&&l.animateRotate?0:t.hidden?0:n.calculateCircumference(f.data[e])*(s.circumference/(2*Math.PI)),p=i&&l.animateScale?0:n.innerRadius,m=i&&l.animateScale?0:n.outerRadius,v=o.valueAtIndexOrDefault;o.extend(t,{_datasetIndex:n.index,_index:e,_model:{x:u+a.offsetX,y:d+a.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:m,innerRadius:p,label:v(f.label,e,a.data.labels[e])}});var b=t._model;this.removeHoverStyle(t),i&&l.animateRotate||(b.startAngle=0===e?s.rotation:n.getMeta().data[e-1]._model.endAngle,b.endAngle=b.startAngle+b.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,e=this.getDataset(),i=this.getMeta(),n=0;return o.each(i.data,function(i,a){t=e.data[a],isNaN(t)||i.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){for(var e,i,n=0,a=this.index,o=t.length,r=0;r(n=e>n?e:n)?i:n;return n}})}},{25:25,40:40,45:45}],18:[function(t,e,i){\"use strict\";var n=t(25),a=t(40),o=t(45);n._set(\"line\",{showLines:!0,spanGaps:!1,hover:{mode:\"label\"},scales:{xAxes:[{type:\"category\",id:\"x-axis-0\"}],yAxes:[{type:\"linear\",id:\"y-axis-0\"}]}}),e.exports=function(t){function e(t,e){return o.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var i,n,a,r=this,s=r.getMeta(),l=s.dataset,u=s.data||[],d=r.chart.options,c=d.elements.line,h=r.getScaleForId(s.yAxisID),f=r.getDataset(),g=e(f,d);for(g&&(a=l.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),l._scale=h,l._datasetIndex=r.index,l._children=u,l._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:a.tension?a.tension:o.valueOrDefault(f.lineTension,c.tension),backgroundColor:a.backgroundColor?a.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:a.borderWidth?a.borderWidth:f.borderWidth||c.borderWidth,borderColor:a.borderColor?a.borderColor:f.borderColor||c.borderColor,borderCapStyle:a.borderCapStyle?a.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:a.borderDash?a.borderDash:f.borderDash||c.borderDash,borderDashOffset:a.borderDashOffset?a.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:a.fill?a.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:a.steppedLine?a.steppedLine:o.valueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:o.valueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)},l.pivot()),i=0,n=u.length;i');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o'),a[o]&&e.push(a[o]),e.push(\"\");return e.push(\"\"),e.join(\"\")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),r=e.datasets[0],s=a.data[n].custom||{},l=o.valueAtIndexOrDefault,u=t.options.elements.arc;return{text:i,fillStyle:s.backgroundColor?s.backgroundColor:l(r.backgroundColor,n,u.backgroundColor),strokeStyle:s.borderColor?s.borderColor:l(r.borderColor,n,u.borderColor),lineWidth:s.borderWidth?s.borderWidth:l(r.borderWidth,n,u.borderWidth),hidden:isNaN(r.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i0&&!isNaN(t)?2*Math.PI/e:0}})}},{25:25,40:40,45:45}],20:[function(t,e,i){\"use strict\";var n=t(25),a=t(40),o=t(45);n._set(\"radar\",{scale:{type:\"radialLinear\"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:o.noop,update:function(t){var e=this,i=e.getMeta(),n=i.dataset,a=i.data,r=n.custom||{},s=e.getDataset(),l=e.chart.options.elements.line,u=e.chart.scale;void 0!==s.tension&&void 0===s.lineTension&&(s.lineTension=s.tension),o.extend(i.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:r.tension?r.tension:o.valueOrDefault(s.lineTension,l.tension),backgroundColor:r.backgroundColor?r.backgroundColor:s.backgroundColor||l.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:s.borderWidth||l.borderWidth,borderColor:r.borderColor?r.borderColor:s.borderColor||l.borderColor,fill:r.fill?r.fill:void 0!==s.fill?s.fill:l.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:s.borderCapStyle||l.borderCapStyle,borderDash:r.borderDash?r.borderDash:s.borderDash||l.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:s.borderDashOffset||l.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:s.borderJoinStyle||l.borderJoinStyle}}),i.dataset.pivot(),o.each(a,function(i,n){e.updateElement(i,n,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,i){var n=this,a=t.custom||{},r=n.getDataset(),s=n.chart.scale,l=n.chart.options.elements.point,u=s.getPointPositionForValue(e,r.data[e]);void 0!==r.radius&&void 0===r.pointRadius&&(r.pointRadius=r.radius),void 0!==r.hitRadius&&void 0===r.pointHitRadius&&(r.pointHitRadius=r.hitRadius),o.extend(t,{_datasetIndex:n.index,_index:e,_scale:s,_model:{x:i?s.xCenter:u.x,y:i?s.yCenter:u.y,tension:a.tension?a.tension:o.valueOrDefault(r.lineTension,n.chart.options.elements.line.tension),radius:a.radius?a.radius:o.valueAtIndexOrDefault(r.pointRadius,e,l.radius),backgroundColor:a.backgroundColor?a.backgroundColor:o.valueAtIndexOrDefault(r.pointBackgroundColor,e,l.backgroundColor),borderColor:a.borderColor?a.borderColor:o.valueAtIndexOrDefault(r.pointBorderColor,e,l.borderColor),borderWidth:a.borderWidth?a.borderWidth:o.valueAtIndexOrDefault(r.pointBorderWidth,e,l.borderWidth),pointStyle:a.pointStyle?a.pointStyle:o.valueAtIndexOrDefault(r.pointStyle,e,l.pointStyle),hitRadius:a.hitRadius?a.hitRadius:o.valueAtIndexOrDefault(r.pointHitRadius,e,l.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,e=this.getMeta();o.each(e.data,function(i,n){var a=i._model,r=o.splineCurve(o.previousItem(e.data,n,!0)._model,a,o.nextItem(e.data,n,!0)._model,a.tension);a.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),a.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),a.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),a.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),i.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,a=t._model;a.radius=i.hoverRadius?i.hoverRadius:o.valueAtIndexOrDefault(e.pointHoverRadius,n,this.chart.options.elements.point.hoverRadius),a.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,n,o.getHoverColor(a.backgroundColor)),a.borderColor=i.hoverBorderColor?i.hoverBorderColor:o.valueAtIndexOrDefault(e.pointHoverBorderColor,n,o.getHoverColor(a.borderColor)),a.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:o.valueAtIndexOrDefault(e.pointHoverBorderWidth,n,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,a=t._model,r=this.chart.options.elements.point;a.radius=i.radius?i.radius:o.valueAtIndexOrDefault(e.pointRadius,n,r.radius),a.backgroundColor=i.backgroundColor?i.backgroundColor:o.valueAtIndexOrDefault(e.pointBackgroundColor,n,r.backgroundColor),a.borderColor=i.borderColor?i.borderColor:o.valueAtIndexOrDefault(e.pointBorderColor,n,r.borderColor),a.borderWidth=i.borderWidth?i.borderWidth:o.valueAtIndexOrDefault(e.pointBorderWidth,n,r.borderWidth)}})}},{25:25,40:40,45:45}],21:[function(t,e,i){\"use strict\";t(25)._set(\"scatter\",{hover:{mode:\"single\"},scales:{xAxes:[{id:\"x-axis-1\",type:\"linear\",position:\"bottom\"}],yAxes:[{id:\"y-axis-1\",type:\"linear\",position:\"left\"}]},showLines:!1,tooltips:{callbacks:{title:function(){return\"\"},label:function(t){return\"(\"+t.xLabel+\", \"+t.yLabel+\")\"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{25:25}],22:[function(t,e,i){\"use strict\";var n=t(25),a=t(26),o=t(45);n._set(\"global\",{animation:{duration:1e3,easing:\"easeOutQuart\",onProgress:o.noop,onComplete:o.noop}}),e.exports=function(t){t.Animation=a.extend({chart:null,currentStep:0,numSteps:60,easing:\"\",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,i,n){var a,o,r=this.animations;for(e.chart=t,n||(t.animating=!0),a=0,o=r.length;a1&&(i=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+i);var n=Date.now();t.dropFrames+=(n-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var e,i,n=this.animations,a=0;a=e.numSteps?(o.callback(e.onAnimationComplete,[e],i),i.animating=!1,n.splice(a,1)):++a}},Object.defineProperty(t.Animation.prototype,\"animationObject\",{get:function(){return this}}),Object.defineProperty(t.Animation.prototype,\"chartInstance\",{get:function(){return this.chart},set:function(t){this.chart=t}})}},{25:25,26:26,45:45}],23:[function(t,e,i){\"use strict\";var n=t(25),a=t(45),o=t(28),r=t(30),s=t(48),l=t(31);e.exports=function(t){function e(t){return\"top\"===t||\"bottom\"===t}t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(e,i){var o,r,l=this;(r=(o=(o=i)||{}).data=o.data||{}).datasets=r.datasets||[],r.labels=r.labels||[],o.options=a.configMerge(n.global,n[o.type],o.options||{}),i=o;var u=s.acquireContext(e,i),d=u&&u.canvas,c=d&&d.height,h=d&&d.width;l.id=a.uid(),l.ctx=u,l.canvas=d,l.config=i,l.width=h,l.height=c,l.aspectRatio=c?h/c:null,l.options=i.options,l._bufferedRender=!1,l.chart=l,l.controller=l,t.instances[l.id]=l,Object.defineProperty(l,\"data\",{get:function(){return l.config.data},set:function(t){l.config.data=t}}),u&&d?(l.initialize(),l.update()):console.error(\"Failed to create chart: can't acquire context from the given item\")},initialize:function(){var t=this;return l.notify(t,\"beforeInit\"),a.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),l.notify(t,\"afterInit\"),t},clear:function(){return a.canvas.clear(this),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(t){var e=this,i=e.options,n=e.canvas,o=i.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(a.getMaximumWidth(n))),s=Math.max(0,Math.floor(o?r/o:a.getMaximumHeight(n)));if((e.width!==r||e.height!==s)&&(n.width=e.width=r,n.height=e.height=s,n.style.width=r+\"px\",n.style.height=s+\"px\",a.retinaScale(e,i.devicePixelRatio),!t)){var u={width:r,height:s};l.notify(e,\"resize\",[u]),e.options.onResize&&e.options.onResize(e,u),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},i=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||\"x-axis-\"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||\"y-axis-\"+e}),i&&(i.id=i.id||\"scale\")},buildOrUpdateScales:function(){var i=this,n=i.options,o=i.scales||{},r=[],s=Object.keys(o).reduce(function(t,e){return t[e]=!1,t},{});n.scales&&(r=r.concat((n.scales.xAxes||[]).map(function(t){return{options:t,dtype:\"category\",dposition:\"bottom\"}}),(n.scales.yAxes||[]).map(function(t){return{options:t,dtype:\"linear\",dposition:\"left\"}}))),n.scale&&r.push({options:n.scale,dtype:\"radialLinear\",isDefault:!0,dposition:\"chartArea\"}),a.each(r,function(n){var r=n.options,l=r.id,u=a.valueOrDefault(r.type,n.dtype);e(r.position)!==e(n.dposition)&&(r.position=n.dposition),s[l]=!0;var d=null;if(l in o&&o[l].type===u)(d=o[l]).options=r,d.ctx=i.ctx,d.chart=i;else{var c=t.scaleService.getScaleConstructor(u);if(!c)return;d=new c({id:l,type:u,options:r,ctx:i.ctx,chart:i}),o[d.id]=d}d.mergeTicksOptions(),n.isDefault&&(i.scale=d)}),a.each(s,function(t,e){t||delete o[e]}),i.scales=o,t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,i=[],n=[];return a.each(e.data.datasets,function(a,o){var r=e.getDatasetMeta(o),s=a.type||e.config.type;if(r.type&&r.type!==s&&(e.destroyDatasetMeta(o),r=e.getDatasetMeta(o)),r.type=s,i.push(r.type),r.controller)r.controller.updateIndex(o),r.controller.linkScales();else{var l=t.controllers[r.type];if(void 0===l)throw new Error('\"'+r.type+'\" is not a chart type.');r.controller=new l(e,o),n.push(r.controller)}},e),n},resetElements:function(){var t=this;a.each(t.data.datasets,function(e,i){t.getDatasetMeta(i).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(e){var i,n,o=this;if(e&&\"object\"==typeof e||(e={duration:e,lazy:arguments[1]}),n=(i=o).options,a.each(i.scales,function(t){r.removeBox(i,t)}),n=a.configMerge(t.defaults.global,t.defaults[i.config.type],n),i.options=i.config.options=n,i.ensureScalesHaveIDs(),i.buildOrUpdateScales(),i.tooltip._options=n.tooltips,i.tooltip.initialize(),l._invalidate(o),!1!==l.notify(o,\"beforeUpdate\")){o.tooltip._data=o.data;var s=o.buildOrUpdateControllers();a.each(o.data.datasets,function(t,e){o.getDatasetMeta(e).controller.buildOrUpdateElements()},o),o.updateLayout(),o.options.animation&&o.options.animation.duration&&a.each(s,function(t){t.reset()}),o.updateDatasets(),o.tooltip.initialize(),o.lastActive=[],l.notify(o,\"afterUpdate\"),o._bufferedRender?o._bufferedRequest={duration:e.duration,easing:e.easing,lazy:e.lazy}:o.render(e)}},updateLayout:function(){!1!==l.notify(this,\"beforeLayout\")&&(r.update(this,this.width,this.height),l.notify(this,\"afterScaleUpdate\"),l.notify(this,\"afterLayout\"))},updateDatasets:function(){if(!1!==l.notify(this,\"beforeDatasetsUpdate\")){for(var t=0,e=this.data.datasets.length;t=0;--i)e.isDatasetVisible(i)&&e.drawDataset(i,t);l.notify(e,\"afterDatasetsDraw\",[t])}},drawDataset:function(t,e){var i=this.getDatasetMeta(t),n={meta:i,index:t,easingValue:e};!1!==l.notify(this,\"beforeDatasetDraw\",[n])&&(i.controller.draw(e),l.notify(this,\"afterDatasetDraw\",[n]))},_drawTooltip:function(t){var e=this.tooltip,i={tooltip:e,easingValue:t};!1!==l.notify(this,\"beforeTooltipDraw\",[i])&&(e.draw(),l.notify(this,\"afterTooltipDraw\",[i]))},getElementAtEvent:function(t){return o.modes.single(this,t)},getElementsAtEvent:function(t){return o.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return o.modes[\"x-axis\"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,i){var n=o.modes[e];return\"function\"==typeof n?n(this,t,i):[]},getDatasetAtEvent:function(t){return o.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var i=e._meta[this.id];return i||(i=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,i=this.data.datasets.length;e0||(e.forEach(function(e){delete t[e]}),delete t._chartjs)}}t.DatasetController=function(t,e){this.initialize(t,e)},n.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&i(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,i=this.getMeta(),n=this.getDataset().data||[],a=i.data;for(t=0,e=n.length;ti&&this.insertElements(i,n-i)},insertElements:function(t,e){for(var i=0;i=i[e].length&&i[e].push({}),!i[e][r].type||l.type&&l.type!==i[e][r].type?o.merge(i[e][r],[t.scaleService.getScaleDefaults(s),l]):o.merge(i[e][r],l)}else o._merger(e,i,n,a)}})},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return o.each(t,function(t){e(t)&&i.push(t)}),i},o.findIndex=Array.prototype.findIndex?function(t,e,i){return t.findIndex(e,i)}:function(t,e,i){i=void 0===i?t:i;for(var n=0,a=t.length;n=0;n--){var a=t[n];if(e(a))return a}},o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,i){return Math.abs(t-e)t},o.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0===(t=+t)||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,i=Math.round(e);return t===Math.pow(10,i)?i:e},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var i=e.x-t.x,n=e.y-t.y,a=Math.sqrt(i*i+n*n),o=Math.atan2(n,i);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},o.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},o.aliasPixel=function(t){return t%2==0?0:.5},o.splineCurve=function(t,e,i,n){var a=t.skip?e:t,o=e,r=i.skip?e:i,s=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),u=s/(s+l),d=l/(s+l),c=n*(u=isNaN(u)?0:u),h=n*(d=isNaN(d)?0:d);return{previous:{x:o.x-c*(r.x-a.x),y:o.y-c*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,i,n,a,r,s,l,u,d,c=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),h=c.length;for(e=0;e0?c[e-1]:null,(a=e0?c[e-1]:null,a=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},o.niceNum=function(t,e){var i=Math.floor(o.log10(t)),n=t/Math.pow(10,i);return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10,i)},o.requestAnimFrame=\"undefined\"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},o.getRelativePosition=function(t,e){var i,n,a=t.originalEvent||t,r=t.currentTarget||t.srcElement,s=r.getBoundingClientRect(),l=a.touches;l&&l.length>0?(i=l[0].clientX,n=l[0].clientY):(i=a.clientX,n=a.clientY);var u=parseFloat(o.getStyle(r,\"padding-left\")),d=parseFloat(o.getStyle(r,\"padding-top\")),c=parseFloat(o.getStyle(r,\"padding-right\")),h=parseFloat(o.getStyle(r,\"padding-bottom\")),f=s.right-s.left-u-c,g=s.bottom-s.top-d-h;return{x:i=Math.round((i-s.left-u)/f*r.width/e.currentDevicePixelRatio),y:n=Math.round((n-s.top-d)/g*r.height/e.currentDevicePixelRatio)}},o.getConstraintWidth=function(t){return r(t,\"max-width\",\"clientWidth\")},o.getConstraintHeight=function(t){return r(t,\"max-height\",\"clientHeight\")},o.getMaximumWidth=function(t){var e=t.parentNode;if(!e)return t.clientWidth;var i=parseInt(o.getStyle(e,\"padding-left\"),10),n=parseInt(o.getStyle(e,\"padding-right\"),10),a=e.clientWidth-i-n,r=o.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},o.getMaximumHeight=function(t){var e=t.parentNode;if(!e)return t.clientHeight;var i=parseInt(o.getStyle(e,\"padding-top\"),10),n=parseInt(o.getStyle(e,\"padding-bottom\"),10),a=e.clientHeight-i-n,r=o.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t,e){var i=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==i){var n=t.canvas,a=t.height,o=t.width;n.height=a*i,n.width=o*i,t.ctx.scale(i,i),n.style.height||n.style.width||(n.style.height=a+\"px\",n.style.width=o+\"px\")}},o.fontString=function(t,e,i){return e+\" \"+t+\"px \"+i},o.longestText=function(t,e,i,n){var a=(n=n||{}).data=n.data||{},r=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(a=n.data={},r=n.garbageCollect=[],n.font=e),t.font=e;var s=0;o.each(i,function(e){null!=e&&!0!==o.isArray(e)?s=o.measureText(t,a,r,s,e):o.isArray(e)&&o.each(e,function(e){null==e||o.isArray(e)||(s=o.measureText(t,a,r,s,e))})});var l=r.length/2;if(l>i.length){for(var u=0;un&&(n=o),n},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.color=n?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor),n(t)}:function(t){return console.error(\"Color.js not found!\"),t},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{25:25,3:3,45:45}],28:[function(t,e,i){\"use strict\";var n=t(45);function a(t,e){return t.native?{x:t.x,y:t.y}:n.getRelativePosition(t,e)}function o(t,e){var i,n,a,o,r;for(n=0,o=t.data.datasets.length;n0&&(u=t.getDatasetMeta(u[0]._datasetIndex).data),u},\"x-axis\":function(t,e){return u(t,e,{intersect:!1})},point:function(t,e){return r(t,a(e,t))},nearest:function(t,e,i){var n=a(e,t);i.axis=i.axis||\"xy\";var o=l(i.axis),r=s(t,n,i.intersect,o);return r.length>1&&r.sort(function(t,e){var i=t.getArea()-e.getArea();return 0===i&&(i=t._datasetIndex-e._datasetIndex),i}),r.slice(0,1)},x:function(t,e,i){var n=a(e,t),r=[],s=!1;return o(t,function(t){t.inXRange(n.x)&&r.push(t),t.inRange(n.x,n.y)&&(s=!0)}),i.intersect&&!s&&(r=[]),r},y:function(t,e,i){var n=a(e,t),r=[],s=!1;return o(t,function(t){t.inYRange(n.y)&&r.push(t),t.inRange(n.x,n.y)&&(s=!0)}),i.intersect&&!s&&(r=[]),r}}}},{45:45}],29:[function(t,e,i){\"use strict\";t(25)._set(\"global\",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:[\"mousemove\",\"mouseout\",\"click\",\"touchstart\",\"touchmove\"],hover:{onHover:null,mode:\"nearest\",intersect:!0,animationDuration:400},onClick:null,defaultColor:\"rgba(0,0,0,0.1)\",defaultFontColor:\"#666\",defaultFontFamily:\"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",defaultFontSize:12,defaultFontStyle:\"normal\",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},{25:25}],30:[function(t,e,i){\"use strict\";var n=t(45);function a(t,e){return n.where(t,function(t){return t.position===e})}function o(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,i){var n=e?i:t,a=e?t:i;return n.weight===a.weight?n._tmpIndex_-a._tmpIndex_:n.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}e.exports={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||\"top\",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure:function(t,e,i){for(var n,a=[\"fullWidth\",\"position\",\"weight\"],o=a.length,r=0;rh&&lt.maxHeight){l--;break}l++,c=u*d}t.labelRotation=l},afterCalculateTickRotation:function(){o.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){o.callback(this.options.beforeFit,[this])},fit:function(){var t=this,n=t.minSize={width:0,height:0},a=s(t._ticks),l=t.options,u=l.ticks,d=l.scaleLabel,c=l.gridLines,h=l.display,f=t.isHorizontal(),g=i(u),p=l.gridLines.tickMarkLength;if(n.width=f?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:h&&c.drawTicks?p:0,n.height=f?h&&c.drawTicks?p:0:t.maxHeight,d.display&&h){var m=r(d)+o.options.toPadding(d.padding).height;f?n.height+=m:n.width+=m}if(u.display&&h){var v=o.longestText(t.ctx,g.font,a,t.longestTextCache),b=o.numberOfLabelLines(a),x=.5*g.size,y=t.options.ticks.padding;if(f){t.longestLabelWidth=v;var k=o.toRadians(t.labelRotation),M=Math.cos(k),w=Math.sin(k)*v+g.size*b+x*(b-1)+x;n.height=Math.min(t.maxHeight,n.height+w+y),t.ctx.font=g.font;var S=e(t.ctx,a[0],g.font),C=e(t.ctx,a[a.length-1],g.font);0!==t.labelRotation?(t.paddingLeft=\"bottom\"===l.position?M*S+3:M*x+3,t.paddingRight=\"bottom\"===l.position?M*x+3:M*C+3):(t.paddingLeft=S/2+3,t.paddingRight=C/2+3)}else u.mirror?v=0:v+=y+x,n.width=Math.min(t.maxWidth,n.width+v),t.paddingTop=g.size/2,t.paddingBottom=g.size/2}t.handleMargins(),t.width=n.width,t.height=n.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){o.callback(this.options.afterFit,[this])},isHorizontal:function(){return\"top\"===this.options.position||\"bottom\"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(o.isNullOrUndef(t))return NaN;if(\"number\"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:o.noop,getPixelForValue:o.noop,getValueForPixel:o.noop,getPixelForTick:function(t){var e=this,i=e.options.offset;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(i?0:1),1),a=n*t+e.paddingLeft;i&&(a+=n/2);var o=e.left+Math.round(a);return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,n=e.left+Math.round(i);return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,i,n,a,r=this,s=r.isHorizontal(),l=r.options.ticks.minor,u=t.length,d=o.toRadians(r.labelRotation),c=Math.cos(d),h=r.longestLabelWidth*c,f=[];for(l.maxTicksLimit&&(a=l.maxTicksLimit),s&&(e=!1,(h+l.autoSkipPadding)*u>r.width-(r.paddingLeft+r.paddingRight)&&(e=1+Math.floor((h+l.autoSkipPadding)*u/(r.width-(r.paddingLeft+r.paddingRight)))),a&&u>a&&(e=Math.max(e,Math.floor(u/a)))),i=0;i1&&i%e>0||i%e==0&&i+e>=u)&&i!==u-1&&delete n.label,f.push(n);return f},draw:function(t){var e=this,a=e.options;if(a.display){var s=e.ctx,u=n.global,d=a.ticks.minor,c=a.ticks.major||d,h=a.gridLines,f=a.scaleLabel,g=0!==e.labelRotation,p=e.isHorizontal(),m=d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),v=o.valueOrDefault(d.fontColor,u.defaultFontColor),b=i(d),x=o.valueOrDefault(c.fontColor,u.defaultFontColor),y=i(c),k=h.drawTicks?h.tickMarkLength:0,M=o.valueOrDefault(f.fontColor,u.defaultFontColor),w=i(f),S=o.options.toPadding(f.padding),C=o.toRadians(e.labelRotation),_=[],D=e.options.gridLines.lineWidth,I=\"right\"===a.position?e.right:e.right-D-k,P=\"right\"===a.position?e.right+k:e.right,A=\"bottom\"===a.position?e.top+D:e.bottom-k-D,T=\"bottom\"===a.position?e.top+D+k:e.bottom+D;if(o.each(m,function(i,n){if(!o.isNullOrUndef(i.label)){var r,s,c,f,v,b,x,y,M,w,S,F,O,R,L=i.label;n===e.zeroLineIndex&&a.offset===h.offsetGridLines?(r=h.zeroLineWidth,s=h.zeroLineColor,c=h.zeroLineBorderDash,f=h.zeroLineBorderDashOffset):(r=o.valueAtIndexOrDefault(h.lineWidth,n),s=o.valueAtIndexOrDefault(h.color,n),c=o.valueOrDefault(h.borderDash,u.borderDash),f=o.valueOrDefault(h.borderDashOffset,u.borderDashOffset));var z=\"middle\",B=\"middle\",W=d.padding;if(p){var N=k+W;\"bottom\"===a.position?(B=g?\"middle\":\"top\",z=g?\"right\":\"center\",R=e.top+N):(B=g?\"middle\":\"bottom\",z=g?\"left\":\"center\",R=e.bottom-N);var V=l(e,n,h.offsetGridLines&&m.length>1);V1);j3?i[2]-i[1]:i[1]-i[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var o=n.log10(Math.abs(a)),r=\"\";if(0!==t){var s=-1*Math.floor(o);s=Math.max(Math.min(s,20),0),r=t.toFixed(s)}else r=\"0\";return r},logarithmic:function(t,e,i){var a=t/Math.pow(10,Math.floor(n.log10(t)));return 0===t?\"0\":1===a||2===a||5===a||0===e||e===i.length-1?t.toExponential():\"\"}}}},{45:45}],35:[function(t,e,i){\"use strict\";var n=t(25),a=t(26),o=t(45);n._set(\"global\",{tooltips:{enabled:!0,custom:null,mode:\"nearest\",position:\"average\",intersect:!0,backgroundColor:\"rgba(0,0,0,0.8)\",titleFontStyle:\"bold\",titleSpacing:2,titleMarginBottom:6,titleFontColor:\"#fff\",titleAlign:\"left\",bodySpacing:2,bodyFontColor:\"#fff\",bodyAlign:\"left\",footerFontStyle:\"bold\",footerSpacing:2,footerMarginTop:6,footerFontColor:\"#fff\",footerAlign:\"left\",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:\"#fff\",displayColors:!0,borderColor:\"rgba(0,0,0,0)\",borderWidth:0,callbacks:{beforeTitle:o.noop,title:function(t,e){var i=\"\",n=e.labels,a=n?n.length:0;if(t.length>0){var o=t[0];o.xLabel?i=o.xLabel:a>0&&o.indexl.height-e.height&&(c=\"bottom\");var h=(u.left+u.right)/2,f=(u.top+u.bottom)/2;\"center\"===c?(i=function(t){return t<=h},n=function(t){return t>h}):(i=function(t){return t<=e.width/2},n=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},o=function(t){return t-e.width-s.caretSize-s.caretPadding<0},r=function(t){return t<=f?\"top\":\"bottom\"},i(s.x)?(d=\"left\",a(s.x)&&(d=\"center\",c=r(s.y))):n(s.x)&&(d=\"right\",o(s.x)&&(d=\"center\",c=r(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:d,yAlign:g.yAlign?g.yAlign:c}}(this,F=function(t,e){var i=t._chart.ctx,n=2*e.yPadding,a=0,r=e.body,s=r.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);s+=e.beforeBody.length+e.afterBody.length;var l=e.title.length,u=e.footer.length,d=e.titleFontSize,c=e.bodyFontSize,h=e.footerFontSize;n+=l*d,n+=l?(l-1)*e.titleSpacing:0,n+=l?e.titleMarginBottom:0,n+=s*c,n+=s?(s-1)*e.bodySpacing:0,n+=u?e.footerMarginTop:0,n+=u*h,n+=u?(u-1)*e.footerSpacing:0;var f=0,g=function(t){a=Math.max(a,i.measureText(t).width+f)};return i.font=o.fontString(d,e._titleFontStyle,e._titleFontFamily),o.each(e.title,g),i.font=o.fontString(c,e._bodyFontStyle,e._bodyFontFamily),o.each(e.beforeBody.concat(e.afterBody),g),f=e.displayColors?c+2:0,o.each(r,function(t){o.each(t.before,g),o.each(t.lines,g),o.each(t.after,g)}),f=0,i.font=o.fontString(h,e._footerFontStyle,e._footerFontFamily),o.each(e.footer,g),{width:a+=2*e.xPadding,height:n}}(this,D)),a=D,s=F,l=A,u=S._chart,d=a.x,c=a.y,h=a.caretSize,f=a.caretPadding,g=a.cornerRadius,p=l.xAlign,m=l.yAlign,v=h+f,b=g+f,\"right\"===p?d-=s.width:\"center\"===p&&((d-=s.width/2)+s.width>u.width&&(d=u.width-s.width),d<0&&(d=0)),\"top\"===m?c+=v:c-=\"bottom\"===m?s.height+v:s.height/2,\"center\"===m?\"left\"===p?d+=v:\"right\"===p&&(d-=v):\"left\"===p?d-=b:\"right\"===p&&(d+=b),T={x:d,y:c}}else D.opacity=0;return D.xAlign=A.xAlign,D.yAlign=A.yAlign,D.x=T.x,D.y=T.y,D.width=F.width,D.height=F.height,D.caretX=O.x,D.caretY=O.y,S._model=D,e&&C.custom&&C.custom.call(S,D),S},drawCaret:function(t,e){var i=this._chart.ctx,n=this._view,a=this.getCaretPosition(t,e,n);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,i){var n,a,o,r,s,l,u=i.caretSize,d=i.cornerRadius,c=i.xAlign,h=i.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if(\"center\"===h)s=g+m/2,\"left\"===c?(a=(n=f)-u,o=n,r=s+u,l=s-u):(a=(n=f+p)+u,o=n,r=s-u,l=s+u);else if(\"left\"===c?(n=(a=f+d+u)-u,o=a+u):\"right\"===c?(n=(a=f+p-d-u)-u,o=a+u):(n=(a=i.caretX)-u,o=a+u),\"top\"===h)s=(r=g)-u,l=r;else{s=(r=g+m)+u,l=r;var v=o;o=n,n=v}return{x1:n,x2:a,x3:o,y1:r,y2:s,y3:l}},drawTitle:function(t,i,n,a){var r=i.title;if(r.length){n.textAlign=i._titleAlign,n.textBaseline=\"top\";var s,l,u=i.titleFontSize,d=i.titleSpacing;for(n.fillStyle=e(i.titleFontColor,a),n.font=o.fontString(u,i._titleFontStyle,i._titleFontFamily),s=0,l=r.length;s0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var i={width:e.width,height:e.height},n={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(this.drawBackground(n,e,t,i,a),n.x+=e.xPadding,n.y+=e.yPadding,this.drawTitle(n,e,t,a),this.drawBody(n,e,t,a),this.drawFooter(n,e,t,a))}},handleEvent:function(t){var e,i=this,n=i._options;return i._lastActive=i._lastActive||[],\"mouseout\"===t.type?i._active=[]:i._active=i._chart.getElementsAtEventForMode(t,n.mode,n),(e=!o.arrayEquals(i._active,i._lastActive))&&(i._lastActive=i._active,(n.enabled||n.custom)&&(i._eventPosition={x:t.x,y:t.y},i.update(!0),i.pivot())),e}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e,i,n=0,a=0,o=0;for(e=0,i=t.length;el;)a-=2*Math.PI;for(;a=s&&a<=l,d=r>=i.innerRadius&&r<=i.outerRadius;return u&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,i=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,i=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},draw:function(){var t=this._chart.ctx,e=this._view,i=e.startAngle,n=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,i,n),t.arc(e.x,e.y,e.innerRadius,n,i,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin=\"bevel\",e.borderWidth&&t.stroke()}})},{25:25,26:26,45:45}],37:[function(t,e,i){\"use strict\";var n=t(25),a=t(26),o=t(45),r=n.global;n._set(\"global\",{elements:{line:{tension:.4,backgroundColor:r.defaultColor,borderWidth:3,borderColor:r.defaultColor,borderCapStyle:\"butt\",borderDash:[],borderDashOffset:0,borderJoinStyle:\"miter\",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var t,e,i,n,a=this._view,s=this._chart.ctx,l=a.spanGaps,u=this._children.slice(),d=r.elements.line,c=-1;for(this._loop&&u.length&&u.push(u[0]),s.save(),s.lineCap=a.borderCapStyle||d.borderCapStyle,s.setLineDash&&s.setLineDash(a.borderDash||d.borderDash),s.lineDashOffset=a.borderDashOffset||d.borderDashOffset,s.lineJoin=a.borderJoinStyle||d.borderJoinStyle,s.lineWidth=a.borderWidth||d.borderWidth,s.strokeStyle=a.borderColor||r.defaultColor,s.beginPath(),c=-1,t=0;tt?1:-1,o=1,r=l.borderSkipped||\"left\"):(t=l.x-l.width/2,e=l.x+l.width/2,i=l.y,a=1,o=(n=l.base)>i?1:-1,r=l.borderSkipped||\"bottom\"),u){var d=Math.min(Math.abs(t-e),Math.abs(i-n)),c=(u=u>d?d:u)/2,h=t+(\"left\"!==r?c*a:0),f=e+(\"right\"!==r?-c*a:0),g=i+(\"top\"!==r?c*o:0),p=n+(\"bottom\"!==r?-c*o:0);h!==f&&(i=g,n=p),g!==p&&(t=h,e=f)}s.beginPath(),s.fillStyle=l.backgroundColor,s.strokeStyle=l.borderColor,s.lineWidth=u;var m=[[t,n],[t,i],[e,i],[e,n]],v=[\"bottom\",\"left\",\"top\",\"right\"].indexOf(r,0);function b(t){return m[(v+t)%4]}-1===v&&(v=0);var x=b(0);s.moveTo(x[0],x[1]);for(var y=1;y<4;y++)x=b(y),s.lineTo(x[0],x[1]);s.fill(),u&&s.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var i=!1;if(this._view){var n=r(this);i=t>=n.left&&t<=n.right&&e>=n.top&&e<=n.bottom}return i},inLabelRange:function(t,e){if(!this._view)return!1;var i=r(this);return o(this)?t>=i.left&&t<=i.right:e>=i.top&&e<=i.bottom},inXRange:function(t){var e=r(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=r(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,i=this._view;return o(this)?(t=i.x,e=(i.y+i.base)/2):(t=(i.x+i.base)/2,e=i.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},{25:25,26:26}],40:[function(t,e,i){\"use strict\";e.exports={},e.exports.Arc=t(36),e.exports.Line=t(37),e.exports.Point=t(38),e.exports.Rectangle=t(39)},{36:36,37:37,38:38,39:39}],41:[function(t,e,i){\"use strict\";var n=t(42);i=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,i,n,a,o){if(o){var r=Math.min(o,n/2),s=Math.min(o,a/2);t.moveTo(e+r,i),t.lineTo(e+n-r,i),t.quadraticCurveTo(e+n,i,e+n,i+s),t.lineTo(e+n,i+a-s),t.quadraticCurveTo(e+n,i+a,e+n-r,i+a),t.lineTo(e+r,i+a),t.quadraticCurveTo(e,i+a,e,i+a-s),t.lineTo(e,i+s),t.quadraticCurveTo(e,i,e+r,i)}else t.rect(e,i,n,a)},drawPoint:function(t,e,i,n,a){var o,r,s,l,u,d;if(!e||\"object\"!=typeof e||\"[object HTMLImageElement]\"!==(o=e.toString())&&\"[object HTMLCanvasElement]\"!==o){if(!(isNaN(i)||i<=0)){switch(e){default:t.beginPath(),t.arc(n,a,i,0,2*Math.PI),t.closePath(),t.fill();break;case\"triangle\":t.beginPath(),u=(r=3*i/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(n-r/2,a+u/3),t.lineTo(n+r/2,a+u/3),t.lineTo(n,a-2*u/3),t.closePath(),t.fill();break;case\"rect\":d=1/Math.SQRT2*i,t.beginPath(),t.fillRect(n-d,a-d,2*d,2*d),t.strokeRect(n-d,a-d,2*d,2*d);break;case\"rectRounded\":var c=i/Math.SQRT2,h=n-c,f=a-c,g=Math.SQRT2*i;t.beginPath(),this.roundedRect(t,h,f,g,g,i/2),t.closePath(),t.fill();break;case\"rectRot\":d=1/Math.SQRT2*i,t.beginPath(),t.moveTo(n-d,a),t.lineTo(n,a+d),t.lineTo(n+d,a),t.lineTo(n,a-d),t.closePath(),t.fill();break;case\"cross\":t.beginPath(),t.moveTo(n,a+i),t.lineTo(n,a-i),t.moveTo(n-i,a),t.lineTo(n+i,a),t.closePath();break;case\"crossRot\":t.beginPath(),s=Math.cos(Math.PI/4)*i,l=Math.sin(Math.PI/4)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n-s,a+l),t.lineTo(n+s,a-l),t.closePath();break;case\"star\":t.beginPath(),t.moveTo(n,a+i),t.lineTo(n,a-i),t.moveTo(n-i,a),t.lineTo(n+i,a),s=Math.cos(Math.PI/4)*i,l=Math.sin(Math.PI/4)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n-s,a+l),t.lineTo(n+s,a-l),t.closePath();break;case\"line\":t.beginPath(),t.moveTo(n-i,a),t.lineTo(n+i,a),t.closePath();break;case\"dash\":t.beginPath(),t.moveTo(n,a),t.lineTo(n+i,a),t.closePath()}t.stroke()}}else t.drawImage(e,n-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,i,n){if(i.steppedLine)return\"after\"===i.steppedLine&&!n||\"after\"!==i.steppedLine&&n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y),void t.lineTo(i.x,i.y);i.tension?t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX,n?e.controlPointPreviousY:e.controlPointNextY,n?i.controlPointNextX:i.controlPointPreviousX,n?i.controlPointNextY:i.controlPointPreviousY,i.x,i.y):t.lineTo(i.x,i.y)}};n.clear=i.clear,n.drawRoundedRectangle=function(t){t.beginPath(),i.roundedRect.apply(i,arguments),t.closePath()}},{42:42}],42:[function(t,e,i){\"use strict\";var n,a={noop:function(){},uid:(n=0,function(){return n++}),isNullOrUndef:function(t){return null==t},isArray:Array.isArray?Array.isArray:function(t){return\"[object Array]\"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&\"[object Object]\"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,i){return a.valueOrDefault(a.isArray(t)?t[e]:t,i)},callback:function(t,e,i){if(t&&\"function\"==typeof t.call)return t.apply(i,e)},each:function(t,e,i,n){var o,r,s;if(a.isArray(t))if(r=t.length,n)for(o=r-1;o>=0;o--)e.call(i,t[o],o);else for(o=0;o=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))},easeOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)},easeInOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:2==(t/=.5)?1:(i||(i=.45),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),t<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},easeInBack:function(t){return t*t*(2.70158*t-1.70158)},easeOutBack:function(t){return(t-=1)*t*(2.70158*t+1.70158)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},n.easingEffects=a},{42:42}],44:[function(t,e,i){\"use strict\";var n=t(42);e.exports={toLineHeight:function(t,e){var i=(\"\"+t).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);if(!i||\"normal\"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case\"px\":return t;case\"%\":t/=100}return e*t},toPadding:function(t){var e,i,a,o;return n.isObject(t)?(e=+t.top||0,i=+t.right||0,a=+t.bottom||0,o=+t.left||0):e=i=a=o=+t||0,{top:e,right:i,bottom:a,left:o,height:e+a,width:o+i}},resolve:function(t,e,i){var a,o,r;for(a=0,o=t.length;a
';var a=e.childNodes[0],r=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,r.scrollLeft=1e6,r.scrollTop=1e6};var s=function(){e._reset(),t()};return h(a,\"scroll\",s.bind(a,\"expand\")),h(r,\"scroll\",s.bind(r,\"shrink\")),e}((u=function(){if(x.resizer)return e(g(\"resize\",i))},c=!1,f=[],function(){f=Array.prototype.slice.call(arguments),d=d||this,c||(c=!0,n.requestAnimFrame.call(window,function(){c=!1,u.apply(d,f)}))}));m=function(){if(x.resizer){var e=t.parentNode;e&&e!==y.parentNode&&e.insertBefore(y,e.firstChild),y._reset()}},v=(p=t)[a]||(p[a]={}),b=v.renderProxy=function(t){t.animationName===s&&m()},n.each(l,function(t){h(p,t,b)}),v.reflow=!!p.offsetParent,p.classList.add(r)}function m(t){var e,i,o,s=t[a]||{},u=s.resizer;delete s.resizer,i=(e=t)[a]||{},(o=i.renderProxy)&&(n.each(l,function(t){f(e,t,o)}),delete i.renderProxy),e.classList.remove(r),u&&u.parentNode&&u.parentNode.removeChild(u)}e.exports={_enabled:\"undefined\"!=typeof window&&\"undefined\"!=typeof document,initialize:function(){var t,e,i,n=\"from{opacity:0.99}to{opacity:1}\";e=\"@-webkit-keyframes \"+s+\"{\"+n+\"}@keyframes \"+s+\"{\"+n+\"}.\"+r+\"{-webkit-animation:\"+s+\" 0.001s;animation:\"+s+\" 0.001s;}\",i=(t=this)._style||document.createElement(\"style\"),t._style||(t._style=i,e=\"/* Chart.js */\\n\"+e,i.setAttribute(\"type\",\"text/css\"),document.getElementsByTagName(\"head\")[0].appendChild(i)),i.appendChild(document.createTextNode(e))},acquireContext:function(t,e){\"string\"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext(\"2d\");return i&&i.canvas===t?(function(t,e){var i=t.style,n=t.getAttribute(\"height\"),o=t.getAttribute(\"width\");if(t[a]={initial:{height:n,width:o,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||\"block\",null===o||\"\"===o){var r=d(t,\"width\");void 0!==r&&(t.width=r)}if(null===n||\"\"===n)if(\"\"===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var s=d(t,\"height\");void 0!==r&&(t.height=s)}}(t,e),i):null},releaseContext:function(t){var e=t.canvas;if(e[a]){var i=e[a].initial;[\"height\",\"width\"].forEach(function(t){var a=i[t];n.isNullOrUndef(a)?e.removeAttribute(t):e.setAttribute(t,a)}),n.each(i.style||{},function(t,i){e.style[i]=t}),e.width=e.width,delete e[a]}},addEventListener:function(t,e,i){var o=t.canvas;if(\"resize\"!==e){var r=i[a]||(i[a]={});h(o,e,(r.proxies||(r.proxies={}))[t.id+\"_\"+e]=function(e){var a,o,r,s;i((o=t,r=u[(a=e).type]||a.type,s=n.getRelativePosition(a,o),g(r,o,s.x,s.y,a)))})}else p(o,i,t)},removeEventListener:function(t,e,i){var n=t.canvas;if(\"resize\"!==e){var o=((i[a]||{}).proxies||{})[t.id+\"_\"+e];o&&f(n,e,o)}else m(n)}},n.addEvent=h,n.removeEvent=f},{45:45}],48:[function(t,e,i){\"use strict\";var n=t(45),a=t(46),o=t(47),r=o._enabled?o:a;e.exports=n.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},r)},{45:45,46:46,47:47}],49:[function(t,e,i){\"use strict\";e.exports={},e.exports.filler=t(50),e.exports.legend=t(51),e.exports.title=t(52)},{50:50,51:51,52:52}],50:[function(t,e,i){\"use strict\";var n=t(25),a=t(40),o=t(45);n._set(\"global\",{plugins:{filler:{propagate:!0}}});var r={dataset:function(t){var e=t.fill,i=t.chart,n=i.getDatasetMeta(e),a=n&&i.isDatasetVisible(e)&&n.dataset._children||[],o=a.length||0;return o?function(t,e){return e=i)&&n;switch(o){case\"bottom\":return\"start\";case\"top\":return\"end\";case\"zero\":return\"origin\";case\"origin\":case\"start\":case\"end\":return o;default:return!1}}function l(t){var e,i=t.el._model||{},n=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if(\"start\"===a?o=void 0===i.scaleBottom?n.bottom:i.scaleBottom:\"end\"===a?o=void 0===i.scaleTop?n.top:i.scaleTop:void 0!==i.scaleZero?o=i.scaleZero:n.getBasePosition?o=n.getBasePosition():n.getBasePixel&&(o=n.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if(\"number\"==typeof o&&isFinite(o))return{x:(e=n.isHorizontal())?o:null,y:e?null:o}}return null}function u(t,e,i){var n,a=t[e].fill,o=[e];if(!i)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(n=t[a]))return!1;if(n.visible)return a;o.push(a),a=n.fill}return!1}function d(t){return t&&!t.skip}function c(t,e,i,n,a){var r;if(n&&a){for(t.moveTo(e[0].x,e[0].y),r=1;r0;--r)o.canvas.lineTo(t,i[r],i[r-1],!0)}}e.exports={id:\"filler\",afterDatasetsUpdate:function(t,e){var i,n,o,d,c,h,f,g=(t.data.datasets||[]).length,p=e.propagate,m=[];for(n=0;n');for(var i=0;i'),t.data.datasets[i].label&&e.push(t.data.datasets[i].label),e.push(\"\");return e.push(\"\"),e.join(\"\")}});var u=a.extend({initialize:function(t){o.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:s,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:s,beforeSetDimensions:s,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:s,beforeBuildLabels:s,buildLabels:function(){var t=this,e=t.options.labels||{},i=o.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(i=i.filter(function(i){return e.filter(i,t.chart.data)})),t.options.reverse&&i.reverse(),t.legendItems=i},afterBuildLabels:s,beforeFit:s,fit:function(){var t=this,e=t.options,i=e.labels,a=e.display,r=t.ctx,s=n.global,u=o.valueOrDefault,d=u(i.fontSize,s.defaultFontSize),c=u(i.fontStyle,s.defaultFontStyle),h=u(i.fontFamily,s.defaultFontFamily),f=o.fontString(d,c,h),g=t.legendHitBoxes=[],p=t.minSize,m=t.isHorizontal();if(m?(p.width=t.maxWidth,p.height=a?10:0):(p.width=a?10:0,p.height=t.maxHeight),a)if(r.font=f,m){var v=t.lineWidths=[0],b=t.legendItems.length?d+i.padding:0;r.textAlign=\"left\",r.textBaseline=\"top\",o.each(t.legendItems,function(e,n){var a=l(i,d)+d/2+r.measureText(e.text).width;v[v.length-1]+a+i.padding>=t.width&&(b+=d+i.padding,v[v.length]=t.left),g[n]={left:0,top:0,width:a,height:d},v[v.length-1]+=a+i.padding}),p.height+=b}else{var x=i.padding,y=t.columnWidths=[],k=i.padding,M=0,w=0,S=d+x;o.each(t.legendItems,function(t,e){var n=l(i,d)+d/2+r.measureText(t.text).width;w+S>p.height&&(k+=M+i.padding,y.push(M),M=0,w=0),M=Math.max(M,n),w+=S,g[e]={left:0,top:0,width:n,height:d}}),k+=M,y.push(M),p.width+=k}t.width=p.width,t.height=p.height},afterFit:s,isHorizontal:function(){return\"top\"===this.options.position||\"bottom\"===this.options.position},draw:function(){var t=this,e=t.options,i=e.labels,a=n.global,r=a.elements.line,s=t.width,u=t.lineWidths;if(e.display){var d,c=t.ctx,h=o.valueOrDefault,f=h(i.fontColor,a.defaultFontColor),g=h(i.fontSize,a.defaultFontSize),p=h(i.fontStyle,a.defaultFontStyle),m=h(i.fontFamily,a.defaultFontFamily),v=o.fontString(g,p,m);c.textAlign=\"left\",c.textBaseline=\"middle\",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=v;var b=l(i,g),x=t.legendHitBoxes,y=t.isHorizontal();d=y?{x:t.left+(s-u[0])/2,y:t.top+i.padding,line:0}:{x:t.left+i.padding,y:t.top+i.padding,line:0};var k=g+i.padding;o.each(t.legendItems,function(n,l){var f,p,m,v,M,w=c.measureText(n.text).width,S=b+g/2+w,C=d.x,_=d.y;y?C+S>=s&&(_=d.y+=k,d.line++,C=d.x=t.left+(s-u[d.line])/2):_+k>t.bottom&&(C=d.x=C+t.columnWidths[d.line]+i.padding,_=d.y=t.top+i.padding,d.line++),function(t,i,n){if(!(isNaN(b)||b<=0)){c.save(),c.fillStyle=h(n.fillStyle,a.defaultColor),c.lineCap=h(n.lineCap,r.borderCapStyle),c.lineDashOffset=h(n.lineDashOffset,r.borderDashOffset),c.lineJoin=h(n.lineJoin,r.borderJoinStyle),c.lineWidth=h(n.lineWidth,r.borderWidth),c.strokeStyle=h(n.strokeStyle,a.defaultColor);var s=0===h(n.lineWidth,r.borderWidth);if(c.setLineDash&&c.setLineDash(h(n.lineDash,r.borderDash)),e.labels&&e.labels.usePointStyle){var l=g*Math.SQRT2/2,u=l/Math.SQRT2,d=t+u,f=i+u;o.canvas.drawPoint(c,n.pointStyle,l,d,f)}else s||c.strokeRect(t,i,b,g),c.fillRect(t,i,b,g);c.restore()}}(C,_,n),x[l].left=C,x[l].top=_,f=n,p=w,v=b+(m=g/2)+C,M=_+m,c.fillText(f.text,v,M),f.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(v,M),c.lineTo(v+p,M),c.stroke()),y?d.x+=S+i.padding:d.y+=k})}},handleEvent:function(t){var e=this,i=e.options,n=\"mouseup\"===t.type?\"click\":t.type,a=!1;if(\"mousemove\"===n){if(!i.onHover)return}else{if(\"click\"!==n)return;if(!i.onClick)return}var o=t.x,r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var s=e.legendHitBoxes,l=0;l=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if(\"click\"===n){i.onClick.call(e,t.native,e.legendItems[l]),a=!0;break}if(\"mousemove\"===n){i.onHover.call(e,t.native,e.legendItems[l]),a=!0;break}}}return a}});function d(t,e){var i=new u({ctx:t.ctx,options:e,chart:t});r.configure(t,i,e),r.addBox(t,i),t.legend=i}e.exports={id:\"legend\",_element:u,beforeInit:function(t){var e=t.options.legend;e&&d(t,e)},beforeUpdate:function(t){var e=t.options.legend,i=t.legend;e?(o.mergeIf(e,n.global.legend),i?(r.configure(t,i,e),i.options=e):d(t,e)):i&&(r.removeBox(t,i),delete t.legend)},afterEvent:function(t,e){var i=t.legend;i&&i.handleEvent(e)}}},{25:25,26:26,30:30,45:45}],52:[function(t,e,i){\"use strict\";var n=t(25),a=t(26),o=t(45),r=t(30),s=o.noop;n._set(\"global\",{title:{display:!1,fontStyle:\"bold\",fullWidth:!0,lineHeight:1.2,padding:10,position:\"top\",text:\"\",weight:2e3}});var l=a.extend({initialize:function(t){o.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:s,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:s,beforeSetDimensions:s,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:s,beforeBuildLabels:s,buildLabels:s,afterBuildLabels:s,beforeFit:s,fit:function(){var t=this,e=o.valueOrDefault,i=t.options,a=i.display,r=e(i.fontSize,n.global.defaultFontSize),s=t.minSize,l=o.isArray(i.text)?i.text.length:1,u=o.options.toLineHeight(i.lineHeight,r),d=a?l*u+2*i.padding:0;t.isHorizontal()?(s.width=t.maxWidth,s.height=d):(s.width=d,s.height=t.maxHeight),t.width=s.width,t.height=s.height},afterFit:s,isHorizontal:function(){var t=this.options.position;return\"top\"===t||\"bottom\"===t},draw:function(){var t=this,e=t.ctx,i=o.valueOrDefault,a=t.options,r=n.global;if(a.display){var s,l,u,d=i(a.fontSize,r.defaultFontSize),c=i(a.fontStyle,r.defaultFontStyle),h=i(a.fontFamily,r.defaultFontFamily),f=o.fontString(d,c,h),g=o.options.toLineHeight(a.lineHeight,d),p=g/2+a.padding,m=0,v=t.top,b=t.left,x=t.bottom,y=t.right;e.fillStyle=i(a.fontColor,r.defaultFontColor),e.font=f,t.isHorizontal()?(l=b+(y-b)/2,u=v+p,s=y-b):(l=\"left\"===a.position?b+p:y-p,u=v+(x-v)/2,s=x-v,m=Math.PI*(\"left\"===a.position?-.5:.5)),e.save(),e.translate(l,u),e.rotate(m),e.textAlign=\"center\",e.textBaseline=\"middle\";var k=a.text;if(o.isArray(k))for(var M=0,w=0;wt.max&&(t.max=n))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this.options.ticks;if(this.isHorizontal())t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.width/50));else{var i=a.valueOrDefault(e.fontSize,n.global.defaultFontSize);t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.height/(2*i)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,i=e.start,n=+e.getRightValue(t),a=e.end-i;return e.isHorizontal()?e.left+e.width/a*(n-i):e.bottom-e.height/a*(n-i)},getValueForPixel:function(t){var e=this,i=e.isHorizontal(),n=i?e.width:e.height,a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType(\"linear\",i,e)}},{25:25,34:34,45:45}],55:[function(t,e,i){\"use strict\";var n=t(45);e.exports=function(t){var e=n.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return\"string\"==typeof e?+e:t.Scale.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var i=n.sign(t.min),a=n.sign(t.max);i<0&&a<0?t.max=0:i>0&&a>0&&(t.min=0)}var o=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),o!==r&&t.min>=t.max&&(o?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,i=t.getTickLimit(),a={maxTicks:i=Math.max(2,i),min:e.min,max:e.max,stepSize:n.valueOrDefault(e.fixedStepSize,e.stepSize)},o=t.ticks=function(t,e){var i,a=[];if(t.stepSize&&t.stepSize>0)i=t.stepSize;else{var o=n.niceNum(e.max-e.min,!1);i=n.niceNum(o/(t.maxTicks-1),!0)}var r=Math.floor(e.min/i)*i,s=Math.ceil(e.max/i)*i;t.min&&t.max&&t.stepSize&&n.almostWhole((t.max-t.min)/t.stepSize,i/1e3)&&(r=t.min,s=t.max);var l=(s-r)/i;l=n.almostEquals(l,Math.round(l),i/1e3)?Math.round(l):Math.ceil(l);var u=1;i<1&&(u=Math.pow(10,i.toString().length-2),r=Math.round(r*u)/u,s=Math.round(s*u)/u),a.push(void 0!==t.min?t.min:r);for(var d=1;d0){var i=n.min(e),a=n.max(e);t.min=null===t.min?i:Math.min(t.min,i),t.max=null===t.max?a:Math.max(t.max,a)}})}else n.each(a,function(e,a){var o=i.getDatasetMeta(a);i.isDatasetVisible(a)&&r(o)&&n.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||o.data[i].hidden||n<0||(null===t.min?t.min=n:nt.max&&(t.max=n),0!==n&&(null===t.minNotZero||n0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(n.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,i=!t.isHorizontal(),a={min:e.min,max:e.max},o=t.ticks=function(t,e){var i,a,o=[],r=n.valueOrDefault,s=r(t.min,Math.pow(10,Math.floor(n.log10(e.min)))),l=Math.floor(n.log10(e.max)),u=Math.ceil(e.max/Math.pow(10,l));0===s?(i=Math.floor(n.log10(e.minNotZero)),a=Math.floor(e.minNotZero/Math.pow(10,i)),o.push(s),s=a*Math.pow(10,i)):(i=Math.floor(n.log10(s)),a=Math.floor(s/Math.pow(10,i)));for(var d=i<0?Math.pow(10,Math.abs(i)):1;o.push(s),10==++a&&(a=1,d=++i>=0?1:d),s=Math.round(a*Math.pow(10,i)*d)/d,ia?{start:e-i-5,end:e}:{start:e,end:e+i+5}}function u(t,e,i,n){if(a.isArray(e))for(var o=i.y,r=1.5*n,s=0;sd.r&&(d.r=b.end,c.r=m),x.startd.b&&(d.b=x.end,c.b=m)}t.setReductions(u,d,c)}(this):(t=this,e=Math.min(t.height/2,t.width/2),t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0))},setReductions:function(t,e,i){var n=e.l/Math.sin(i.l),a=Math.max(e.r-this.width,0)/Math.sin(i.r),o=-e.t/Math.cos(i.t),r=-Math.max(e.b-this.height,0)/Math.cos(i.b);n=d(n),a=d(a),o=d(o),r=d(r),this.drawingArea=Math.min(Math.round(t-(n+a)/2),Math.round(t-(o+r)/2)),this.setCenterPoint(n,a,o,r)},setCenterPoint:function(t,e,i,n){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,s=i+a.drawingArea,l=a.height-n-a.drawingArea;a.xCenter=Math.round((r+o)/2+a.left),a.yCenter=Math.round((s+l)/2+a.top)},getIndexAngle:function(t){return t*(2*Math.PI/r(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var i=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*i:(t-e.min)*i},getPointPosition:function(t,e){var i=this.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(i)*e)+this.xCenter,y:Math.round(Math.sin(i)*e)+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,i=t.options,n=i.gridLines,o=i.ticks,l=a.valueOrDefault;if(i.display){var d=t.ctx,c=this.getIndexAngle(0),h=l(o.fontSize,e.defaultFontSize),f=l(o.fontStyle,e.defaultFontStyle),g=l(o.fontFamily,e.defaultFontFamily),p=a.fontString(h,f,g);a.each(t.ticks,function(i,s){if(s>0||o.reverse){var u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(n.display&&0!==s&&function(t,e,i,n){var o=t.ctx;if(o.strokeStyle=a.valueAtIndexOrDefault(e.color,n-1),o.lineWidth=a.valueAtIndexOrDefault(e.lineWidth,n-1),t.options.gridLines.circular)o.beginPath(),o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),o.closePath(),o.stroke();else{var s=r(t);if(0===s)return;o.beginPath();var l=t.getPointPosition(0,i);o.moveTo(l.x,l.y);for(var u=1;u=0;m--){if(o.display){var v=t.getPointPosition(m,g);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(v.x,v.y),i.stroke(),i.closePath()}if(l.display){var b=t.getPointPosition(m,g+5),x=a.valueAtIndexOrDefault(l.fontColor,m,e.defaultFontColor);i.font=p.font,i.fillStyle=x;var y=t.getIndexAngle(m),k=a.toDegrees(y);i.textAlign=0===(f=k)||180===f?\"center\":f<180?\"left\":\"right\",d=k,c=t._pointLabelSizes[m],h=b,90===d||270===d?h.y-=c.h/2:(d>270||d<90)&&(h.y-=c.h),u(i,t.pointLabels[m]||\"\",b,p.size)}}}(t)}}});t.scaleService.registerScaleType(\"radialLinear\",c,i)}},{25:25,34:34,45:45}],58:[function(t,e,i){\"use strict\";var n=t(1);n=\"function\"==typeof n?n:window.moment;var a=t(25),o=t(45),r=Number.MIN_SAFE_INTEGER||-9007199254740991,s=Number.MAX_SAFE_INTEGER||9007199254740991,l={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},u=Object.keys(l);function d(t,e){return t-e}function c(t){var e,i,n,a={},o=[];for(e=0,i=t.length;e=0&&r<=s;){if(a=t[(n=r+s>>1)-1]||null,o=t[n],!a)return{lo:null,hi:o};if(o[e]i))return{lo:a,hi:o};s=n-1}}return{lo:o,hi:null}}(t,e,i),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],r=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=r[e]-o[e],l=s?(i-o[e])/s:0,u=(r[n]-o[n])*l;return o[n]+u}function f(t,e){var i=e.parser,a=e.parser||e.format;return\"function\"==typeof i?i(t):\"string\"==typeof t&&\"string\"==typeof a?n(t,a):(t instanceof n||(t=n(t)),t.isValid()?t:\"function\"==typeof a?a(t):t)}function g(t,e){if(o.isNullOrUndef(t))return null;var i=e.options.time,n=f(e.getRightValue(t),i);return n.isValid()?(i.round&&n.startOf(i.round),n.valueOf()):null}function p(t){for(var e=u.indexOf(t)+1,i=u.length;e=k&&i<=M&&_.push(i);return y.min=k,y.max=M,y._unit=S.unit||function(t,e,i,a){var o,r,s=n.duration(n(a).diff(n(i)));for(o=u.length-1;o>=u.indexOf(e);o--)if(r=u[o],l[r].common&&s.as(r)>=t.length)return r;return u[e?u.indexOf(e):0]}(_,S.minUnit,y.min,y.max),y._majorUnit=p(y._unit),y._table=function(t,e,i,n){if(\"linear\"===n||!t.length)return[{time:e,pos:0},{time:i,pos:1}];var a,o,r,s,l,u=[],d=[e];for(a=0,o=t.length;ae&&s1?o[1]:s,v=o[0],b=(h(a,\"time\",c,\"pos\")-h(a,\"time\",v,\"pos\"))/2),d.time.max||(c=o[o.length-1],v=o.length>1?o[o.length-2]:r,x=(h(a,\"time\",c,\"pos\")-h(a,\"time\",v,\"pos\"))/2)),{left:b,right:x}),y._labelFormat=function(t,e){var i,n,a,o=t.length;for(i=0;i=0&&t0?s:1}});t.scaleService.registerScaleType(\"time\",e,{position:\"bottom\",distribution:\"linear\",bounds:\"data\",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:\"millisecond\",displayFormats:{millisecond:\"h:mm:ss.SSS a\",second:\"h:mm:ss a\",minute:\"h:mm a\",hour:\"hA\",day:\"MMM D\",week:\"ll\",month:\"MMM YYYY\",quarter:\"[Q]Q - YYYY\",year:\"YYYY\"}},ticks:{autoSkip:!1,source:\"auto\",major:{enabled:!1}}})}},{1:1,25:25,45:45}]},{},[7])(7)});","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":""}