diff --git a/config.xml b/config.xml index bac29b4..0e8b1e7 100644 --- a/config.xml +++ b/config.xml @@ -84,4 +84,7 @@ <plugin name="cordova-plugin-network-information" spec="^2.0.1" /> <plugin name="onesignal-cordova-plugin" spec="^2.4.1" /> <plugin name="cordova-plugin-request-location-accuracy" spec="^2.2.3" /> + <plugin name="cordova-plugin-geolocation" spec="^4.0.1"> + <variable name="GEOLOCATION_USAGE_DESCRIPTION" value="To locate you" /> + </plugin> </widget> diff --git a/package-lock.json b/package-lock.json index 90ede18..f3d46b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,11 +99,217 @@ "tslib": "1.9.3" } }, + "@firebase/app": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.3.3.tgz", + "integrity": "sha512-V5fMC2Ysx1TlHD6x7vj7EOtoyJSU/ts+fp9qxt0E3TA+DbWgKFrkcL+o2jZhi30h0sXKV7oW0vh67YZdZylqOg==", + "requires": { + "@firebase/app-types": "0.3.2", + "@firebase/util": "0.2.1", + "dom-storage": "2.1.0", + "tslib": "1.9.0", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" + } + } + }, + "@firebase/app-types": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.3.2.tgz", + "integrity": "sha512-ZD8lTgW07NGgo75bTyBJA8Lt9+NweNzot7lrsBtIvfciwUzaFJLsv2EShqjBeuhF7RpG6YFucJ6m67w5buCtzw==" + }, + "@firebase/auth": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.7.0.tgz", + "integrity": "sha512-OUjjtq91VFALUjVYp9meHMNtG40mibzkPKIWKAVkc3zucXORShxsDBGRlXjrVSENrQDr7FLrOF2kWCZXwvjiFQ==", + "requires": { + "@firebase/auth-types": "0.3.4" + } + }, + "@firebase/auth-types": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.3.4.tgz", + "integrity": "sha512-0r3gSQk9jw5orFHCTUIgao0zan6dHt2J0BO3t/uEzbod+uwqvUn/gh+yg+kK6HX92Fg8E7y030KX4Bw/aXt0Ew==" + }, + "@firebase/database": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.3.3.tgz", + "integrity": "sha512-8r/snlMuOB6QXdkfjbZaFxK1U8CbQgCG0rVfMHclRVNQhZLtTEtiVNDTQk75bfxY0k+iqyg+6fsNWClA92glcg==", + "requires": { + "@firebase/database-types": "0.3.2", + "@firebase/logger": "0.1.1", + "@firebase/util": "0.2.1", + "faye-websocket": "0.11.1", + "tslib": "1.9.0" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "requires": { + "websocket-driver": "0.7.0" + } + }, + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" + } + } + }, + "@firebase/database-types": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.3.2.tgz", + "integrity": "sha512-9ZYdvYQ6r3aaHJarhUM5Hf6lQWu3ZJme+RR0o8qfBb9L04TL3uNjt+AJFku1ysVPntTn+9GqJjiIB2/OC3JtwA==" + }, + "@firebase/firestore": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-0.5.5.tgz", + "integrity": "sha512-JE97NcAinBSt2JArhjSHWETldUHn5gWhl25jQkiwIhEUqcie4Km0xcXFveah8GNaHJQYfz61RPCV4lkjJoEtQw==", + "requires": { + "@firebase/firestore-types": "0.4.3", + "@firebase/logger": "0.1.1", + "@firebase/webchannel-wrapper": "0.2.8", + "grpc": "1.11.3", + "tslib": "1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" + } + } + }, + "@firebase/firestore-types": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-0.4.3.tgz", + "integrity": "sha512-QdFBhH0Bcw7TRodN6nJ1pQq0AGAgMfpIUQguKcogTE/2L/lAECxbUfTWtBcGenKcSKpae5xJuuhGZxaPGkQv7A==" + }, + "@firebase/functions": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.2.4.tgz", + "integrity": "sha512-HSa2MdBRPWltv1gvE1nWmbzxtWt5jJt4gZ8wje5qEIld7tbLvaWCJRvLGwH/dX1r9s6u6GtDF9FD4Gn2z2xFiQ==", + "requires": { + "@firebase/functions-types": "0.1.3", + "@firebase/messaging-types": "0.2.3", + "isomorphic-fetch": "2.2.1", + "tslib": "1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" + } + } + }, + "@firebase/functions-types": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.1.3.tgz", + "integrity": "sha512-9cOrF5b2B3kfdwsRm3owSXZciIQbupbEKhq4WTsLRXU8mz8ol7WxuOuG/FwYaHryeI8z29gIzP9NpiGoKJgo4w==" + }, + "@firebase/logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.1.1.tgz", + "integrity": "sha512-5jn3HHbEfdOwychyIEIkP1cik+MW/vvoOavTOzwDkH+fv6Bx+HBUOzh09M7sCYzXFtKzjbUax9+g39mJNBLklQ==" + }, + "@firebase/messaging": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.3.5.tgz", + "integrity": "sha512-+FkrW+li/QOqSXUGipOEvqPUSy1/ZH7zibB63UtRHy3LSwxn5PZ6lKgaeCVkWZBwCHm92riHrjR0cpRhE4+4SQ==", + "requires": { + "@firebase/messaging-types": "0.2.3", + "@firebase/util": "0.2.1", + "tslib": "1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" + } + } + }, + "@firebase/messaging-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.2.3.tgz", + "integrity": "sha512-avwCgZzcx2uxIW/wT3p3G/EyHftIrvMyiTS7AA7dxDlzfx+8dpAeTsb1+jsHJT4F6foSh5HG17Nw8sDzYuxH1Q==" + }, + "@firebase/polyfill": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.3.tgz", + "integrity": "sha512-xs8IZf1WEbufYXyfV8YjmiFZOaujRRq0T03NteihYfuGVTTym7z5SmvLvEHLEUjf2fgeobPEzZ2JgrCQHS+QHw==", + "requires": { + "core-js": "2.5.5", + "promise-polyfill": "7.1.2", + "whatwg-fetch": "2.0.4" + }, + "dependencies": { + "promise-polyfill": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-7.1.2.tgz", + "integrity": "sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ==" + } + } + }, + "@firebase/storage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.2.3.tgz", + "integrity": "sha512-2sq5jckWszW53gfQMkPNc7EumJ92oErRhzGJANbVzBumwR8qwKZU8/I+/uV9SPK1tVmSUc3S21jdoW5oOJVEuA==", + "requires": { + "@firebase/storage-types": "0.2.3", + "tslib": "1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" + } + } + }, + "@firebase/storage-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.2.3.tgz", + "integrity": "sha512-RaZeam2LgsB7xwAtOQr4G0Geoyf7D5TnLF3a12By6Rh0Z9PqBSlWn0SVYGW3SkmxIdqvWZMZvCyamUlqQvQzWw==" + }, + "@firebase/util": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.2.1.tgz", + "integrity": "sha512-KPNcIK5+bUUBMII87NqGu+tRUnMcY95xujS2z0QyAfoQCKe11DMHICv3M6uweiLSXqdQwrMTyFtiql1q+0UOYQ==", + "requires": { + "tslib": "1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" + } + } + }, + "@firebase/webchannel-wrapper": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.8.tgz", + "integrity": "sha512-ToJbeJnxDc3O325FvcKVb3yHO1hvgHjCFvhKol6Z17GiB7vL104POjFQT4RnlLiAGSRCBAMxinDec9y9vQYdyg==" + }, "@ionic-native/core": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-4.7.0.tgz", "integrity": "sha512-BT4a9qIl3qfJMukcfMPtXDAAsOrYIAoVQvCodDZhqGExTakIx0/JlOr+lZa6KEU46CoA1SEctcBjj0N+nNcWOw==" }, + "@ionic-native/geolocation": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@ionic-native/geolocation/-/geolocation-4.8.0.tgz", + "integrity": "sha512-5WcloJjAbKTG9WcAvJnRPgylTbVZgWB25LyejQb6bed4by/jE3yHmL+CmSetmFsu00/NvMQrE3BmrC/tJBLulA==" + }, "@ionic-native/location-accuracy": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/@ionic-native/location-accuracy/-/location-accuracy-4.8.0.tgz", @@ -250,11 +456,15 @@ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, + "angularfire2": { + "version": "5.0.0-rc.11", + "resolved": "https://registry.npmjs.org/angularfire2/-/angularfire2-5.0.0-rc.11.tgz", + "integrity": "sha512-Jr6uEquMRuJSgYTw8YxNkDwpkvg2CDJtLlQD0AdMXYoUAwcgsIE4ar7qatIJ2/fwX12TO+oPooCyr0G4GjdwXQ==" + }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "3.2.1", @@ -335,6 +545,15 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" }, + "ascli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", + "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=", + "requires": { + "colour": "0.7.1", + "optjs": "3.2.2" + } + }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -835,6 +1054,14 @@ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, + "bytebuffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bytebuffer/-/bytebuffer-5.0.1.tgz", + "integrity": "sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0=", + "requires": { + "long": "3.2.0" + } + }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -869,8 +1096,7 @@ "camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" }, "camelcase-keys": { "version": "2.1.0", @@ -990,7 +1216,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1", @@ -1006,8 +1231,7 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "collection-visit": { "version": "1.0.0", @@ -1034,6 +1258,11 @@ "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", "dev": true }, + "colour": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/colour/-/colour-0.7.1.tgz", + "integrity": "sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g=" + }, "combined-stream": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", @@ -1117,6 +1346,11 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, + "cordova-plugin-geolocation": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cordova-plugin-geolocation/-/cordova-plugin-geolocation-4.0.1.tgz", + "integrity": "sha1-RwP6ZJ0kBdJamnMsmev4aHVKLAQ=" + }, "cordova-plugin-network-information": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/cordova-plugin-network-information/-/cordova-plugin-network-information-2.0.1.tgz", @@ -1127,6 +1361,11 @@ "resolved": "https://registry.npmjs.org/cordova-plugin-request-location-accuracy/-/cordova-plugin-request-location-accuracy-2.2.3.tgz", "integrity": "sha512-cwcG+4sHIU/Vfe1mvEtXh5hfo4k8OEdHo1Rdc9GU0YU/5J/umsBQdHfuBJ7hez59N7lRoUKpKhLhcY8MPBz9Fg==" }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=" + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -1261,8 +1500,7 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", @@ -1398,6 +1636,11 @@ } } }, + "dom-storage": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", + "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==" + }, "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -1453,6 +1696,14 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } + }, "enhanced-resolve": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", @@ -1872,6 +2123,21 @@ "pinkie-promise": "2.0.1" } }, + "firebase": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-5.1.0.tgz", + "integrity": "sha512-Q9m10Jvfge+2PAbxBM5zy0BiTf3UhAY5W32nIhwg6yKVhq4ZCk6xeZcxoLqTwKJLdJRH05rpnz9mx88QaAP5oQ==", + "requires": { + "@firebase/app": "0.3.3", + "@firebase/auth": "0.7.0", + "@firebase/database": "0.3.3", + "@firebase/firestore": "0.5.5", + "@firebase/functions": "0.2.4", + "@firebase/messaging": "0.3.5", + "@firebase/polyfill": "0.3.3", + "@firebase/storage": "0.2.3" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -1942,8 +2208,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fstream": { "version": "1.0.11", @@ -2042,7 +2307,6 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -2085,6 +2349,421 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, + "grpc": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.11.3.tgz", + "integrity": "sha512-7fJ40USpnP7hxGK0uRoEhJz6unA5VUdwInfwAY2rK2+OVxdDJSdTZQ/8/M+1tW68pHZYgHvg2ohvJ+clhW3ANg==", + "requires": { + "lodash": "4.17.10", + "nan": "2.10.0", + "node-pre-gyp": "0.10.0", + "protobufjs": "5.0.3" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "requires": { + "minipass": "2.2.4" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true + }, + "iconv-lite": { + "version": "0.4.19", + "bundled": true + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "1.2.0", + "bundled": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "requires": { + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "requires": { + "minipass": "2.2.4" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "needle": { + "version": "2.2.1", + "bundled": true, + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.19", + "sax": "1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "requires": { + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.1", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "requires": { + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "requires": { + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "sax": { + "version": "1.2.4", + "bundled": true + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true + }, + "tar": { + "version": "4.4.2", + "bundled": true, + "requires": { + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.2", + "yallist": "3.0.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, "har-validator": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", @@ -2275,8 +2954,7 @@ "http-parser-js": { "version": "0.4.13", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", - "dev": true + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=" }, "http-signature": { "version": "1.1.1", @@ -2298,8 +2976,7 @@ "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" }, "ieee754": { "version": "1.1.12", @@ -2337,7 +3014,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -2366,8 +3042,7 @@ "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "ionic-angular": { "version": "3.9.2", @@ -2486,7 +3161,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -2585,8 +3259,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-typedarray": { "version": "1.0.0", @@ -2625,6 +3298,15 @@ "isarray": "1.0.0" } }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.4" + } + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -2771,7 +3453,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, "requires": { "invert-kv": "1.0.0" } @@ -2861,8 +3542,7 @@ "lodash": { "version": "4.17.10", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, "lodash.assign": { "version": "4.2.0", @@ -2888,6 +3568,11 @@ "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", "dev": true }, + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=" + }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", @@ -3147,8 +3832,7 @@ "nan": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" }, "nanomatch": { "version": "1.2.9", @@ -3208,6 +3892,15 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, "node-gyp": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", @@ -3396,8 +4089,7 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.8.2", @@ -3494,7 +4186,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1.0.2" } @@ -3504,6 +4195,11 @@ "resolved": "https://registry.npmjs.org/onesignal-cordova-plugin/-/onesignal-cordova-plugin-2.4.1.tgz", "integrity": "sha512-P4Jiypo5d549LrRWsZE1g5z7cmQMseG6yIayQem+hLRUXlWx7qqOdxTa1oUh5nFxlYon8u6jI5wIybRWxL5YfQ==" }, + "optjs": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz", + "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" + }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -3520,7 +4216,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, "requires": { "lcid": "1.0.0" } @@ -3774,6 +4469,43 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, + "promise-polyfill": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.0.0.tgz", + "integrity": "sha512-QGmPnw2hDEaRS6freHynJ7nfS1nDg0/P0c/CGglA43utoJjYQMiY9ojEpK0HaJ4wbUztdmwqQRlEfGWdsEQ5uQ==" + }, + "protobufjs": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-5.0.3.tgz", + "integrity": "sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA==", + "requires": { + "ascli": "1.0.1", + "bytebuffer": "5.0.1", + "glob": "7.1.2", + "yargs": "3.32.0" + }, + "dependencies": { + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "requires": { + "camelcase": "2.1.1", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "os-locale": "1.4.0", + "string-width": "1.0.2", + "window-size": "0.1.4", + "y18n": "3.2.1" + } + } + } + }, "proxy-addr": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", @@ -4693,7 +5425,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -4718,7 +5449,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -5927,7 +6657,6 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, "requires": { "http-parser-js": "0.4.13", "websocket-extensions": "0.1.3" @@ -5936,8 +6665,12 @@ "websocket-extensions": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" }, "which": { "version": "1.3.1", @@ -5988,7 +6721,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -5997,8 +6729,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { "version": "3.3.2", @@ -6027,6 +6758,11 @@ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", "dev": true }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", @@ -6035,8 +6771,7 @@ "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yallist": { "version": "2.1.2", diff --git a/package.json b/package.json index ae8d11d..5785167 100644 --- a/package.json +++ b/package.json @@ -22,17 +22,22 @@ "@angular/platform-browser": "5.2.11", "@angular/platform-browser-dynamic": "5.2.11", "@ionic-native/core": "4.7.0", + "@ionic-native/geolocation": "^4.8.0", "@ionic-native/location-accuracy": "^4.8.0", "@ionic-native/network": "^4.8.0", "@ionic-native/onesignal": "^4.8.0", "@ionic-native/splash-screen": "4.7.0", "@ionic-native/status-bar": "4.7.0", "@ionic/storage": "2.1.3", + "angularfire2": "^5.0.0-rc.11", + "cordova-plugin-geolocation": "^4.0.1", "cordova-plugin-network-information": "^2.0.1", "cordova-plugin-request-location-accuracy": "^2.2.3", + "firebase": "^5.1.0", "ionic-angular": "3.9.2", "ionicons": "3.0.0", "onesignal-cordova-plugin": "^2.4.1", + "promise-polyfill": "^8.0.0", "rxjs": "5.5.11", "sw-toolbox": "3.6.0", "zone.js": "0.8.26" @@ -46,7 +51,10 @@ "plugins": { "cordova-plugin-network-information": {}, "onesignal-cordova-plugin": {}, - "cordova-plugin-request-location-accuracy": {} + "cordova-plugin-request-location-accuracy": {}, + "cordova-plugin-geolocation": { + "GEOLOCATION_USAGE_DESCRIPTION": "To locate you" + } } } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 7fb917a..e4706c8 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -14,6 +14,19 @@ import { Myservice } from "../providers/myservice"; import { HttpModule } from "@angular/http"; import { IonicStorageModule } from '@ionic/storage'; import { OrderbyPipe } from '../providers/sort-pipe'; +import { Geolocation } from '@ionic-native/geolocation'; +import { fireService } from "../providers/firebase.service"; +import { AngularFireDatabase } from 'angularfire2/database'; +import { AngularFireModule } from 'angularfire2'; + +export const firebaseConfig = { + apiKey: "AIzaSyDLrbLd4RCCh86xuTVu7-cfJ28We_cG1sU", + authDomain: "callmycab-205809.firebaseapp.com", + databaseURL: "https://callmycab-205809.firebaseio.com", + projectId: "callmycab-205809", + storageBucket: "callmycab-205809.appspot.com", + messagingSenderId: "151146703576" +}; @NgModule({ declarations: [ MyApp @@ -23,6 +36,7 @@ import { OrderbyPipe } from '../providers/sort-pipe'; IonicModule.forRoot(MyApp), HttpModule, IonicStorageModule.forRoot(), + AngularFireModule.initializeApp(firebaseConfig), ], bootstrap: [IonicApp], entryComponents: [ @@ -37,6 +51,9 @@ import { OrderbyPipe } from '../providers/sort-pipe'; LocationAccuracy, Myservice, OrderbyPipe, + Geolocation, + fireService, + AngularFireDatabase, ] }) export class AppModule {} diff --git a/src/index.html b/src/index.html index e254871..4158283 100644 --- a/src/index.html +++ b/src/index.html @@ -44,6 +44,8 @@ <!-- The main bundle js is generated during the build process --> <script src="build/main.js"></script> + + <script src="http://maps.google.com/maps/api/js?libraries=places&key=AIzaSyCk1_NXO6fDntAzKEl7sO-z6Ut5evHLsKQ"></script> </body> </html> diff --git a/src/pages/home/home.html b/src/pages/home/home.html index ed62640..2d94e57 100644 --- a/src/pages/home/home.html +++ b/src/pages/home/home.html @@ -21,68 +21,45 @@ <ion-content padding class="home_background"> <div class="home_content_tab" [hidden]="tab != 'active'"> <ul> - <li> + <li *ngFor="let up of upcoming" (click)="rideDetails(up)"> <div class="home_content_circle"> + <img [src]=baseurl+up.image /> </div> <div class="home_content_detail"> - <h5>Lora Sebastain</h5> - <p class="yellow">HSR Layout Bengaluru</p> - <p class="grey">Electronic City</p> + <h5>{{up.username}}</h5> + <p class="yellow">{{up.pickup_area}}</p> + <p class="grey">{{up.drop_area}}</p> </div> <div class="home_content_right"> - <p>28/08/2018</p> - <p>05:00 am</p> + <p>{{up.pickup_date | date:'dd/MM/yy'}}</p> + <p>{{up.pickup_time}}</p> </div> <div class="clear"></div> </li> - <li> - <div class="home_content_circle"> - </div> - <div class="home_content_detail"> - <h5>Lora Sebastain</h5> - <p class="yellow">HSR Layout Bengaluru</p> - <p class="grey">Electronic City</p> - </div> - <div class="home_content_right"> - <p>28/08/2018</p> - <p>05:00 am</p> - </div> - <div class="clear"></div> - </li> - <li> - <div class="home_content_circle"> - </div> - <div class="home_content_detail"> - <h5>Lora Sebastain</h5> - <p class="yellow">HSR Layout Bengaluru</p> - <p class="grey">Electronic City</p> - </div> - <div class="home_content_right"> - <p>28/08/2018</p> - <p>05:00 am</p> - </div> - <div class="clear"></div> - </li> - <li> + </ul> + <p *ngIf="upcoming?.length==0" class="blank">No rides found</p> + </div> + <!-- <div class="home_content_tab" [hidden]="tab != 'inactive'"> + 3 + </div> --> + <div class="home_content_tab" [hidden]="tab != 'inactive1'"> + <ul> + <li *ngFor="let comp of completed" (click)="rideDetails(comp)"> <div class="home_content_circle"> + <img [src]=baseurl+comp.image /> </div> <div class="home_content_detail"> - <h5>Lora Sebastain</h5> - <p class="yellow">HSR Layout Bengaluru</p> - <p class="grey">Electronic City</p> + <h5>{{comp.username}}</h5> + <p class="yellow">{{comp.pickup_area}}</p> + <p class="grey">{{comp.drop_area}}</p> </div> <div class="home_content_right"> - <p>28/08/2018</p> - <p>05:00 am</p> + <p>{{comp.pickup_date | date:'dd/MM/yy'}}</p> + <p>{{comp.pickup_time}}</p> </div> <div class="clear"></div> </li> </ul> - </div> - <!-- <div class="home_content_tab" [hidden]="tab != 'inactive'"> - 3 - </div> --> - <div class="home_content_tab" [hidden]="tab != 'inactive1'"> - 5 + <p *ngIf="completed?.length==0" class="blank">No rides found</p> </div> </ion-content> diff --git a/src/pages/home/home.scss b/src/pages/home/home.scss index 76428ad..56bc537 100644 --- a/src/pages/home/home.scss +++ b/src/pages/home/home.scss @@ -58,6 +58,7 @@ page-home { height:100%; object-fit:cover; object-position:center; + border-radius: 50%; } } .home_content_detail{ @@ -113,4 +114,9 @@ page-home { } } } + .blank{ padding-top: 50%; + text-align: center; + font-size: 20px; + font-weight: 500; + color: #ccb59a;} } diff --git a/src/pages/home/home.ts b/src/pages/home/home.ts index 5d95c07..dc11aef 100644 --- a/src/pages/home/home.ts +++ b/src/pages/home/home.ts @@ -12,6 +12,7 @@ export class HomePage { tab:any; upcoming:any; completed:any; +baseurl = this.myservice.base_url constructor(public navCtrl: NavController, public navParams: NavParams, private storage:Storage, private myservice:Myservice) { } @@ -19,11 +20,11 @@ completed:any; ionViewDidEnter(){ this.storage.get('driver_data').then(data=>{ if(data){ - console.log(data) this.myservice.load_post({id:data.id},'getMyRides').subscribe(response=>{ if(response.status == 'success'){ this.upcoming = response.data.upcoming this.completed = response.data.completed + console.log(this.upcoming) } }) } @@ -40,4 +41,7 @@ tab_swap(type) { this.tab = type; } + rideDetails(data){ + this.navCtrl.push('RidedetailsPage',{data:data}) + } } diff --git a/src/pages/ridedetails/ridedetails.html b/src/pages/ridedetails/ridedetails.html index 67f1eca..a065b7d 100644 --- a/src/pages/ridedetails/ridedetails.html +++ b/src/pages/ridedetails/ridedetails.html @@ -12,14 +12,14 @@ <div class="jr_from_to"> <li> <div class="child1 from"><div class="jr_box1"></div></div> - <div class="child2 yellow"><strong>Electronic City</strong> - <p>fdgsdgsdg</p></div> + <div class="child2 yellow"><strong>{{details.from}}</strong> + <p>{{details.fromAd}}</p></div> <div class="jr_clear"></div> </li> <li> <div class="child1 to"></div> - <div class="child2 grey"><strong>HSR Layout</strong> - <p>gfhdfgthj</p></div> + <div class="child2 grey"><strong>{{details.to}}</strong> + <p>{{details.toAd}}</p></div> <div class="jr_clear"></div> </li> </div> @@ -29,18 +29,21 @@ <div class="jr_search_bottom_bay jr_padding0" > <div class="jr_search_profile"> - <img > + <img [src]=baseurl+details.image> </div> <div class="jr_search_profile_detail"> <br> - <h6>Lina Rhodes 28 Y/O</h6> - <span class="jr_star_ratting"><img src="assets/img/jr_star.png"><strong>4.8/5</strong>05 Ratings</span><br> + <h6>{{details.username}}</h6> + <span class="jr_star_ratting"> + <strong>{{details.pickup_date|date:'dd/MM/yy'}} {{details.pickup_time}} + </strong></span> + <br> </div> <div class="jr_clear"></div> </div> - <div class="jr_bottom_button_bay"> - <button ion-button class="cab_footer_btn">Track Driver</button> + <div class="jr_bottom_button_bay" *ngIf="details.status=='Booking'"> + <button ion-button class="cab_footer_btn" (click)="pick()">Pick Up</button> </div> </div> diff --git a/src/pages/ridedetails/ridedetails.ts b/src/pages/ridedetails/ridedetails.ts index bdda88f..65510be 100644 --- a/src/pages/ridedetails/ridedetails.ts +++ b/src/pages/ridedetails/ridedetails.ts @@ -1,5 +1,7 @@ import { Component } from '@angular/core'; import { IonicPage, NavController, NavParams } from 'ionic-angular'; +import { Myservice } from "../../providers/myservice"; +import { dateDataSortValue } from 'ionic-angular/umd/util/datetime-util'; @IonicPage() @Component({ @@ -7,16 +9,31 @@ import { IonicPage, NavController, NavParams } from 'ionic-angular'; templateUrl: 'ridedetails.html', }) export class RidedetailsPage { + details = this.navParams.get('data') + baseurl = this.myservice.base_url - constructor(public navCtrl: NavController, public navParams: NavParams) { + constructor(public navCtrl: NavController, public navParams: NavParams, private myservice: Myservice) { + } ionViewDidLoad() { - console.log('ionViewDidLoad RidedetailsPage'); + var tempf = this.details.pickup_area.split(',') + this.details.from = tempf[0] + this.details.fromAd = this.details.pickup_area + this.details.timestamp = new Date(this.details.pickup_date + ' ' + this.details.pickup_time).getTime() + + var temp = this.details.drop_area.split(',') + this.details.to = temp[0] + this.details.toAd = this.details.drop_area + console.log(this.details) } back(){ this.navCtrl.pop(); } + pick(){ + this.navCtrl.push('UserlocationPage',{ data: this.details}) + } + } diff --git a/src/pages/signup/signup.ts b/src/pages/signup/signup.ts index fe87808..0784320 100644 --- a/src/pages/signup/signup.ts +++ b/src/pages/signup/signup.ts @@ -6,6 +6,8 @@ import { dialcode } from "../../models/mymodel"; import { OrderbyPipe } from '../../providers/sort-pipe'; import { Myservice } from "../../providers/myservice"; import { OneSignal } from "@ionic-native/onesignal"; +import { fireService } from "../../providers/firebase.service"; +import { Geolocation } from '@ionic-native/geolocation'; @IonicPage() @Component({ @@ -16,7 +18,8 @@ export class SignupPage { signupForm: FormGroup codes: Array<dialcode>; - constructor(public navCtrl: NavController, public navParams: NavParams, private formBuilder: FormBuilder, private http: Http, private orderbyPipe: OrderbyPipe, private myservice: Myservice, private onesignal: OneSignal) { + constructor(public navCtrl: NavController, public navParams: NavParams, private formBuilder: FormBuilder, private http: Http, private orderbyPipe: OrderbyPipe, private myservice: Myservice, private onesignal: OneSignal, private firebase: fireService, private geolocation: Geolocation) { + this.signupForm = this.formBuilder.group({ name: ['', Validators.compose([Validators.required, Validators.minLength(3)])], username: ['', Validators.compose([Validators.required, Validators.minLength(3)])], @@ -46,12 +49,19 @@ export class SignupPage { register() { this.myservice.show_loader() + this.geolocation.getCurrentPosition().then((resp) => { + // this.onesignal.getIds().then((id) => { this.signupForm.controls['deviceid'].setValue(0/*id.userId*/) this.myservice.load_post(this.signupForm.value, 'driver_sign_up').subscribe(response => { this.myservice.hide_loader() if (response.status == 'success') { + response.data.lat = resp.coords.latitude + response.data.lng = resp.coords.longitude + response.data.started = false + response.data.status = 'offline' + this.firebase.pushItem('drivers/', response.data) this.navCtrl.setRoot("SigninPage"); } else { @@ -59,6 +69,9 @@ export class SignupPage { } }) // }) + }).catch((error) => { + console.log('Error getting location', error); + }); } MatchPassword(val) { diff --git a/src/pages/userlocation/userlocation.html b/src/pages/userlocation/userlocation.html index 25bb288..f44552f 100644 --- a/src/pages/userlocation/userlocation.html +++ b/src/pages/userlocation/userlocation.html @@ -7,15 +7,15 @@ </ion-header> <ion-content> <div #map id="map"></div> - <div class="jr_bottom_distance_card"> + <div class="jr_bottom_distance_card" *ngIf="temp"> <div class="jr_bottom_inside"> - <input class="jr_dest_input from" placeholder="From"> - <input class="jr_dest_input to" placeholder="To"> + <input class="jr_dest_input from" placeholder="From" [(ngModel)]="loc.from"> + <input class="jr_dest_input to" placeholder="To" [(ngModel)]="loc.to"> </div> </div> </ion-content> <ion-footer> - <div class="jr_bottom_button_bay"> - <button ion-button class="cab_footer_btn">Cancel</button> + <div class="jr_bottom_button_bay" *ngIf="temp"> + <button ion-button class="cab_footer_btn">Start Ride</button> </div> </ion-footer> \ No newline at end of file diff --git a/src/pages/userlocation/userlocation.ts b/src/pages/userlocation/userlocation.ts index e8f999a..fdf0e19 100644 --- a/src/pages/userlocation/userlocation.ts +++ b/src/pages/userlocation/userlocation.ts @@ -1,7 +1,8 @@ -import { Component } from '@angular/core'; +import { Component, ViewChild, ElementRef } from '@angular/core'; import { IonicPage, NavController, NavParams } from 'ionic-angular'; +import { Geolocation } from '@ionic-native/geolocation'; - +declare var google; @IonicPage() @Component({ @@ -9,17 +10,103 @@ import { IonicPage, NavController, NavParams } from 'ionic-angular'; templateUrl: 'userlocation.html', }) export class UserlocationPage { + @ViewChild('map') mapElement: ElementRef; + map: any; + directionsDisplay:any; + geocoder:any; + details = this.navParams.get('data') + locSubs:any; + temp:boolean = false; + loc = {'from':'','to':''} + i:number = 0; - constructor(public navCtrl: NavController, public navParams: NavParams) { + constructor(public navCtrl: NavController, public navParams: NavParams, private geolocation: Geolocation) { + this.geolocation.getCurrentPosition().then((resp) => { + this.loadMap(resp.coords.latitude, resp.coords.longitude); + }) } - ionViewDidLoad() { - console.log('ionViewDidLoad UserlocationPage'); + ionViewDidEnter() { + var This = this + var drop = This.details.drop_latlng.split(',') + This.geocoder = new google.maps.Geocoder(); + This.locSubs = This.geolocation.watchPosition() + .filter((p) => p.coords !== undefined) //Filter Out Errors + .subscribe(position => { + This.i++; + var directionsService = new google.maps.DirectionsService; + + This.directionsDisplay.setMap(This.map); + This.directionsDisplay.setOptions({ suppressMarkers: true }); + + var pickLoc = new google.maps.LatLng(Number(drop[0]), Number(drop[1])); + var driverLoc = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); + + var dimage = { + url: 'assets/img/map_label.png', + scaledSize: new google.maps.Size(50, 22), + origin: new google.maps.Point(0, 0), + anchor: new google.maps.Point(25, 12) + }; + + var marker = new google.maps.Marker({ + position: driverLoc, + map: This.map, + icon: dimage + }); + + if (This.i == 5) { + // if (google.maps.geometry.spherical.computeDistanceBetween(pickLoc, driverLoc) < 100) { + This.temp = true + } + + This.calculateAndDisplayRoute(directionsService, This.directionsDisplay, pickLoc, driverLoc); + + }) } + loadMap(lat, lng) { + + let latLng = new google.maps.LatLng(lat, lng); + + let mapOptions = { + center: latLng, + zoom: 15, + mapTypeId: google.maps.MapTypeId.ROADMAP + } + + this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions); + + this.directionsDisplay = new google.maps.DirectionsRenderer({ + map: this.map, + preserveViewport: true + }); + } back(){ this.navCtrl.pop(); } + calculateAndDisplayRoute(directionsService, directionsDisplay, start, dest) { + var This = this + directionsService.route({ + origin: start, + destination: dest, + travelMode: 'DRIVING' + }, function (response, status) { + if (status === 'OK') { + directionsDisplay.setDirections(response); + var bounds = response.routes[0].bounds; + This.map.fitBounds(bounds); + This.map.setCenter(bounds.getCenter()); + } else { + window.alert('Directions request failed due to ' + status); + } + }); + } + + ionViewWillLeave() { + this.locSubs.unsubscribe(); + } + } diff --git a/src/providers/firebase.service.ts b/src/providers/firebase.service.ts new file mode 100644 index 0000000..cea7b74 --- /dev/null +++ b/src/providers/firebase.service.ts @@ -0,0 +1,64 @@ +import { Injectable } from '@angular/core'; +import { AngularFireDatabase } from 'angularfire2/database'; +import { FirebaseListObservable } from 'angularfire2/database-deprecated'; +import * as firebase from 'firebase'; +import 'rxjs/add/operator/toPromise'; + +// import { Router } from '@angular/router'; + +@Injectable() +export class fireService { + + items: FirebaseListObservable<any[]>; + //data: FirebaseObjectObservable<any[]>; + data:any; + currentUser: any; + userData: any; + + // private basePath: string = 'users'; + + + constructor( + private db: AngularFireDatabase,) { +// console.log(this.currentUser); +// console.log('hhhh'); + } + + pushItem(url,data){ + var key = firebase.database().ref(url).push().key; + var new_node = url + "/" + key; + data.push_id = key; + this.updateItem(new_node, data) + return 'success'; + } + + updateItem(url,data){ + // return this.db.object(url).update(data); + var promise = new Promise((resolve, reject) => { + if (this.db.object(url).update(data)) { + // console.log("Updated"); + resolve({ 'status': 'success' }); + } else { + reject(); + } + }); + return promise; + } + removeItem(url){ + return this.db.object(url).remove(); + } + + listItem(url){ + return this.db.list(url); + + } + listItemQuery(url,query){ + return this.db.list(url,query); + + } + + checkItem(url){ + return this.db.list(url); + } +} +