diff --git a/package-lock.json b/package-lock.json
index a50c95b8..08422d06 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -506,7 +506,8 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"aproba": {
"version": "1.2.0",
@@ -527,12 +528,14 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -547,17 +550,20 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"core-util-is": {
"version": "1.0.2",
@@ -674,7 +680,8 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"ini": {
"version": "1.3.5",
@@ -686,6 +693,7 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -700,6 +708,7 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -707,12 +716,14 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -731,6 +742,7 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -811,7 +823,8 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"object-assign": {
"version": "4.1.1",
@@ -823,6 +836,7 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"wrappy": "1"
}
@@ -908,7 +922,8 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -944,6 +959,7 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -963,6 +979,7 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -1006,12 +1023,14 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"yallist": {
"version": "3.0.3",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -3867,6 +3886,543 @@
}
}
},
+ "@ionic/cli": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@ionic/cli/-/cli-6.1.0.tgz",
+ "integrity": "sha512-KAPmvweZyKGyreUbjFmwPG9fj6lfeCmcnz5EF6L2FQB7uVNEAxaYw7CwhCQNPtZfJ9sg6yHBZM6hsdfm0lTpiA==",
+ "requires": {
+ "@ionic/cli-framework": "4.1.0",
+ "@ionic/cli-framework-prompts": "2.1.0",
+ "@ionic/utils-array": "2.1.0",
+ "@ionic/utils-fs": "3.1.0",
+ "@ionic/utils-network": "2.1.0",
+ "@ionic/utils-process": "2.1.0",
+ "@ionic/utils-stream": "3.1.0",
+ "@ionic/utils-subprocess": "2.1.0",
+ "@ionic/utils-terminal": "2.1.0",
+ "chalk": "^3.0.0",
+ "debug": "^4.0.0",
+ "diff": "^4.0.1",
+ "elementtree": "^0.1.7",
+ "leek": "0.0.24",
+ "lodash": "^4.17.5",
+ "open": "^7.0.0",
+ "os-name": "^3.1.0",
+ "semver": "^7.1.1",
+ "split2": "^3.0.0",
+ "ssh-config": "^1.1.1",
+ "stream-combiner2": "^1.1.1",
+ "superagent": "^5.2.1",
+ "superagent-proxy": "^2.0.0",
+ "tar": "^6.0.1",
+ "through2": "^3.0.0",
+ "tslib": "^1.9.0",
+ "uuid": "^3.2.1"
+ },
+ "dependencies": {
+ "@ionic/cli-framework": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@ionic/cli-framework/-/cli-framework-4.1.0.tgz",
+ "integrity": "sha512-sREboBsyS8ELh5ONZ2ztJx9eeWg1FBY6GDL4d8cUwmkx75gR+QDgdi2xCwik0y12h8g8wdEzX5MXXxktHvZCtg==",
+ "requires": {
+ "@ionic/utils-array": "2.1.0",
+ "@ionic/utils-fs": "3.1.0",
+ "@ionic/utils-object": "2.1.0",
+ "@ionic/utils-process": "2.1.0",
+ "@ionic/utils-stream": "3.1.0",
+ "@ionic/utils-subprocess": "2.1.0",
+ "@ionic/utils-terminal": "2.1.0",
+ "chalk": "^3.0.0",
+ "debug": "^4.0.0",
+ "lodash": "^4.17.5",
+ "log-update": "^3.2.0",
+ "minimist": "^1.2.0",
+ "rimraf": "^3.0.0",
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "tslib": "^1.9.0",
+ "untildify": "^4.0.0",
+ "wrap-ansi": "^6.0.0",
+ "write-file-atomic": "^3.0.0"
+ }
+ },
+ "@ionic/cli-framework-prompts": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@ionic/cli-framework-prompts/-/cli-framework-prompts-2.1.0.tgz",
+ "integrity": "sha512-2rCBrKdGnTCC2Q4kWPib4Y8na6GmNeRmRBpZOrRV/PH4EFNHwR02nZP5V6oylcVToGqpiB19cz82s+Dh7lr5qg==",
+ "requires": {
+ "@ionic/utils-terminal": "2.1.0",
+ "debug": "^4.0.0",
+ "inquirer": "^7.0.0",
+ "tslib": "^1.9.0"
+ }
+ },
+ "@ionic/utils-array": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.0.tgz",
+ "integrity": "sha512-BA6UcviyvobgfdzGKywpnO3TXtNdPfo8ImdEcV/pH+TeRkFYQERYTzQQxvi2OwK900Y5u3v5si1XraaJs5dQhw==",
+ "requires": {
+ "debug": "^4.0.0",
+ "tslib": "^1.9.0"
+ }
+ },
+ "@ionic/utils-fs": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.0.tgz",
+ "integrity": "sha512-PzrTdV2lW596stYI5Zfv0UjiD4oGMqzmkgkF3XqONY2zbhK308fZQu6Msibo0u3u5aPrRmgO6X0gdznMxsC0lw==",
+ "requires": {
+ "debug": "^4.0.0",
+ "fs-extra": "^8.0.1",
+ "through2": "^3.0.0",
+ "tslib": "^1.9.0"
+ }
+ },
+ "@ionic/utils-network": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-network/-/utils-network-2.1.0.tgz",
+ "integrity": "sha512-j3RZRimSZJrSRz6+cn1rHOoLXp5KgNBeZNAPKptXTwM7GRMLgXzPd892QChP+QalogID2bxfIGE47qHhRabIAw==",
+ "requires": {
+ "debug": "^4.0.0",
+ "tslib": "^1.9.0"
+ }
+ },
+ "@ionic/utils-object": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.0.tgz",
+ "integrity": "sha512-SBRsjPo8Pre2G8Q2FxAhvFYy9AOj7R6f0gXtfZVvrue0p4NVSNANqWAHEBdv+ZrdBDlUcfbb7NszpIpuUe+31w==",
+ "requires": {
+ "debug": "^4.0.0",
+ "tslib": "^1.9.0"
+ }
+ },
+ "@ionic/utils-process": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.0.tgz",
+ "integrity": "sha512-DO465RDMglA5PWLKt03b2ZTc4QaFyf6Ia2pXRvT+eNu4mNIauiYS+5hIcnYKS4Qk214rI7gYzmMzfUqeIp8W9w==",
+ "requires": {
+ "@ionic/utils-object": "2.1.0",
+ "@ionic/utils-terminal": "2.1.0",
+ "debug": "^4.0.0",
+ "lodash": "^4.17.5",
+ "tree-kill": "^1.2.2",
+ "tslib": "^1.9.0"
+ }
+ },
+ "@ionic/utils-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.0.tgz",
+ "integrity": "sha512-SauLDlON1hLBMLVbVXJbbxP+WUyXOPC/yceDxjgiLu9jXF2ZaUQTknl9YqAlO5ga9Yqfa8UiS4EodHYxo7kjjQ==",
+ "requires": {
+ "debug": "^4.0.0",
+ "tslib": "^1.9.0"
+ }
+ },
+ "@ionic/utils-subprocess": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.0.tgz",
+ "integrity": "sha512-kmlLuds0DsmDreEor/dRHkcbEZYUpoFYA2LLplvLQvYNjmxnrzE8aBaIaCyaPoO1KLV3B/WOjmpl11/9J9e4fw==",
+ "requires": {
+ "@ionic/utils-array": "2.1.0",
+ "@ionic/utils-fs": "3.1.0",
+ "@ionic/utils-process": "2.1.0",
+ "@ionic/utils-stream": "3.1.0",
+ "@ionic/utils-terminal": "2.1.0",
+ "cross-spawn": "^7.0.0",
+ "debug": "^4.0.0",
+ "tslib": "^1.9.0"
+ }
+ },
+ "@ionic/utils-terminal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.1.0.tgz",
+ "integrity": "sha512-Nz6jtYpQIn2a6tbB111xxG6sEaeVoLigIqrLNdyii5vpbUe6zRYbFFLNddUdreRpt6zyxLFzcAFIKo779W0tQw==",
+ "requires": {
+ "debug": "^4.0.0",
+ "tslib": "^1.9.0"
+ }
+ },
+ "ansi-escapes": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+ "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+ "requires": {
+ "type-fest": "^0.11.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "cross-spawn": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz",
+ "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==",
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "form-data": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
+ "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "inquirer": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.5.tgz",
+ "integrity": "sha512-6Z5cP+LAO0rzNE7xWjWtT84jxKa5ScLEGLgegPXeO3dGeU8lNe5Ii7SlXH6KVtLGlDuaEhsvsFjrjWjw8j5lFg==",
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^3.0.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.15",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.4.0",
+ "rxjs": "^6.5.3",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
+ "is-wsl": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",
+ "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog=="
+ },
+ "mime": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+ "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="
+ },
+ "minipass": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz",
+ "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz",
+ "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==",
+ "requires": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz",
+ "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g=="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+ },
+ "onetime": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+ "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "open": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.0.2.tgz",
+ "integrity": "sha512-70E/pFTPr7nZ9nLDPNTcj3IVqnNvKuP4VsBmoKV9YGTnChe0mlS3C4qM7qKarhZ8rGaHKLfo+vBTHXDp6ZSyLQ==",
+ "requires": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ }
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+ },
+ "qs": {
+ "version": "6.9.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz",
+ "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA=="
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "run-async": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz",
+ "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==",
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "semver": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
+ "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA=="
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "superagent": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz",
+ "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==",
+ "requires": {
+ "component-emitter": "^1.3.0",
+ "cookiejar": "^2.1.2",
+ "debug": "^4.1.1",
+ "fast-safe-stringify": "^2.0.7",
+ "form-data": "^3.0.0",
+ "formidable": "^1.2.1",
+ "methods": "^1.1.2",
+ "mime": "^2.4.4",
+ "qs": "^6.9.1",
+ "readable-stream": "^3.4.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "tar": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz",
+ "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==",
+ "requires": {
+ "chownr": "^1.1.3",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^3.0.0",
+ "minizlib": "^2.1.0",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ }
+ },
+ "through2": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
+ "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
+ "requires": {
+ "readable-stream": "2 || 3"
+ }
+ },
+ "type-fest": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+ "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ=="
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
"@ionic/cli-framework": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@ionic/cli-framework/-/cli-framework-4.0.0.tgz",
@@ -8143,6 +8699,11 @@
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
},
+ "fast-safe-stringify": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
+ "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="
+ },
"fastparse": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
@@ -11306,6 +11867,7 @@
"version": "2.3.5",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -11324,6 +11886,7 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -11503,7 +12066,8 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -11609,7 +12173,8 @@
"yallist": {
"version": "3.0.3",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
@@ -17851,7 +18416,8 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"aproba": {
"version": "1.2.0",
@@ -17894,7 +18460,8 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"concat-map": {
"version": "0.0.1",
@@ -17905,7 +18472,8 @@
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"core-util-is": {
"version": "1.0.2",
@@ -18022,7 +18590,8 @@
"inherits": {
"version": "2.0.4",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"ini": {
"version": "1.3.5",
@@ -18034,6 +18603,7 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -18063,6 +18633,7 @@
"version": "2.9.0",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -18081,6 +18652,7 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -18183,6 +18755,7 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"wrappy": "1"
}
@@ -18268,7 +18841,8 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -18304,6 +18878,7 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -18323,6 +18898,7 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -18366,12 +18942,14 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
},
"yallist": {
"version": "3.1.1",
"bundled": true,
- "dev": true
+ "dev": true,
+ "optional": true
}
}
},
diff --git a/package.json b/package.json
index 72965ff7..31c68de5 100644
--- a/package.json
+++ b/package.json
@@ -27,6 +27,7 @@
"@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/status-bar": "^5.19.1",
"@ionic/angular": "^4.7.1",
+ "@ionic/cli": "^6.1.0",
"call-number": "^1.0.1",
"cordova": "^9.0.0",
"cordova-android": "^8.1.0",
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 0e136805..2ff54a55 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -12,6 +12,7 @@ const routes: Routes = [
{ path: 'profile', loadChildren: './profile/profile.module#ProfilePageModule' },
{ path: 'settings', loadChildren: './settings/settings.module#SettingsPageModule' },
{ path: 'super-tabs', loadChildren: './super-tabs/super-tabs.module#SuperTabsPageModule' },
{ path: 'user-contact', loadChildren: './user-contact/user-contact.module#UserContactPageModule' },
+ { path: 'popover-other', loadChildren: './popover-other/popover-other.module#PopoverOtherPageModule' },
];
diff --git a/src/app/contacts/contacts.module.ts b/src/app/contacts/contacts.module.ts
index 7a8a8e74..e10ef998 100644
--- a/src/app/contacts/contacts.module.ts
+++ b/src/app/contacts/contacts.module.ts
@@ -10,6 +10,7 @@ import { ContactsPage } from './contacts.page';
const routes: Routes = [
{
path: '',
+ component: ContactsPage
}
];
diff --git a/src/app/contacts/contacts.page.html b/src/app/contacts/contacts.page.html
index a69e83f8..48db88c4 100644
--- a/src/app/contacts/contacts.page.html
+++ b/src/app/contacts/contacts.page.html
@@ -11,7 +11,7 @@
-
+
diff --git a/src/app/contacts/contacts.page.ts b/src/app/contacts/contacts.page.ts
index 7c84be85..c75160c3 100644
--- a/src/app/contacts/contacts.page.ts
+++ b/src/app/contacts/contacts.page.ts
@@ -58,6 +58,7 @@ export class ContactsPage implements OnInit {
}
deleteAccount(account: backend.socialAccount) {
+ console.log(account);
this.firebase.deleteSocialAccount(this.type, account);
}
diff --git a/src/app/firebase-backend.service.ts b/src/app/firebase-backend.service.ts
index 61cbc818..61ed3455 100644
--- a/src/app/firebase-backend.service.ts
+++ b/src/app/firebase-backend.service.ts
@@ -23,7 +23,7 @@ export class FirebaseBackendService {
// Send users data to firebse and sets in the way desribed by architecture milestone
public sendUserDataSignUp(name_user: string, username_user: string, email_user: string, phoneNumber_user: string, dateOfBirth: Date, photo_user: string, uid: string ) {
this.uid = uid;
- var user: backend.user = new backend.user(this.uid, name_user, username_user, email_user, phoneNumber_user, dateOfBirth, photo_user, null, null, null);
+ var user: backend.user = new backend.user(this.uid, name_user, username_user, email_user, phoneNumber_user, dateOfBirth, photo_user, null, null, [new backend.qrCode(null, new backend.contact(null,username_user,name_user,email_user,phoneNumber_user,dateOfBirth,photo_user,null))]);
console.log(this.uid);
console.log(user);
firebase.database().ref('Users/'+this.uid).set(user).then((res) => {
@@ -52,11 +52,15 @@ export class FirebaseBackendService {
}
// deletion from user contact list
async deleteFromUserContacts(cont: backend.contact) {
- var userContacts: backend.contact [];
+ console.log(cont);
+ var userContacts: {} [];
await this.getUserData().then(usr => {
userContacts = usr.getContacts;
for(let i: number = 0; i < userContacts.length; i++){
- if(userContacts[i].isEqual(cont)){
+ if(userContacts[i]['id'] == cont['id'] && userContacts[i]['name'] == cont['name'] && userContacts[i]['username'] == userContacts[i]['username'] && userContacts[i]['email'] == cont['email']
+ && userContacts[i]['phoneNumber'] == cont['phoneNumber'] && userContacts[i]['DOB'] == cont['DOB'] && userContacts[i]['photo'] == cont['photo'])
+ {
+ console.log(userContacts);
userContacts.splice(i,1);
break;
}
@@ -89,39 +93,76 @@ export class FirebaseBackendService {
}
// delete social account
async deleteSocialAccount(typ: string, sAcot: backend.socialAccount) {
- var userSocialAccounts: backend.socialAccount [];
+ var userSocialAccounts: {} [];
var userSocials: {} [] = [];
+ let i:number = 0;
+ for(; i < userSocials.length; i++){
+ if(userSocials[i]['type'] == typ){
+ break;
+ }
+ }
await this.getUserData().then(usr => {
userSocials = usr.getSocials;
this.getSocialAccountsType(typ).then(dat => {
userSocialAccounts = dat;
for(let i:number = 0; i < userSocialAccounts.length; i++){
- if(userSocialAccounts[i].isEqual(sAcot)){
+ console.log(userSocialAccounts[i]);
+ if(userSocialAccounts[i]['id'] == sAcot['id'] && userSocialAccounts[i]['user'] == sAcot['user'] && userSocialAccounts[i]['url'] == sAcot['url']){
userSocialAccounts.splice(i,1);
break;
}
}
+ var updates = {};
+ userSocials[i]['socialAccounts'] = userSocialAccounts;
+ // console.log(userSocials[i]);
+ updates['Users/'+this.uid+'/socials'] = userSocials;
+ firebase.database().ref().update(updates);
});
- let i:number = 0;
- for(; i < userSocials.length; i++){
- if(userSocials[i]['type'] == typ){
- break;
- }
- }
- var updates = {};
- updates['Users/'+this.uid+'/socials/'+i+'/socialAccount'] = userSocialAccounts;
- firebase.database().ref().update(updates);
});
}
// Getting social accounts of a given type
async getSocialAccountsType(type: string) : Promise {
- console.log(type)
+ // console.log(type)
var socialAccs: backend.socialAccount[];
await this.getUserData().then(usr => {
let found: boolean = false;
let socials: {}[] = usr.getSocials;
for(let i: number = 0; i {
+ var qrCodes: {} [] = [];
+ var accessSocials: backend.social[] = [];
+ await this.getUserData().then(usr => {
+ qrCodes = usr.getQrCodes;
+ for(let i: number = 0; i {
+ // console.log(type)
+ var socialAccs: backend.socialAccount[];
+ await this.getContactAccessSocials(usrName).then(usr => {
+ let found: boolean = false;
+ let socials: {} [] = usr;
+ for(let i: number = 0; i
-
+
diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts
index 7c8f7d69..d9da0d33 100644
--- a/src/app/home/home.page.ts
+++ b/src/app/home/home.page.ts
@@ -32,6 +32,7 @@ export class HomePage {
}
deleteContact(cont: backend.contact) {
+ // console.log(cont);
this.firebase.deleteFromUserContacts(cont);
}
diff --git a/src/app/contacts/contacts2.module.ts b/src/app/popover-other/popover-other.module.ts
similarity index 71%
rename from src/app/contacts/contacts2.module.ts
rename to src/app/popover-other/popover-other.module.ts
index 9b7680f3..daac1312 100644
--- a/src/app/contacts/contacts2.module.ts
+++ b/src/app/popover-other/popover-other.module.ts
@@ -5,11 +5,12 @@ import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
-import { ContactsPage } from './contacts.page';
+import { PopoverOtherPage } from './popover-other.page';
const routes: Routes = [
{
path: '',
+ component: PopoverOtherPage
}
];
@@ -20,7 +21,6 @@ const routes: Routes = [
IonicModule,
RouterModule.forChild(routes)
],
- declarations: [],
- exports: [ContactsPage]
+ declarations: [PopoverOtherPage]
})
-export class Contacts2PageModule {}
+export class PopoverOtherPageModule {}
diff --git a/src/app/popover-other/popover-other.page.html b/src/app/popover-other/popover-other.page.html
new file mode 100644
index 00000000..92ece385
--- /dev/null
+++ b/src/app/popover-other/popover-other.page.html
@@ -0,0 +1,17 @@
+
+
+ {{type}}
+
+
+
+ {{account.user}}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/popover-other/popover-other.page.scss b/src/app/popover-other/popover-other.page.scss
new file mode 100644
index 00000000..a87dfb59
--- /dev/null
+++ b/src/app/popover-other/popover-other.page.scss
@@ -0,0 +1,7 @@
+ion-content {
+ padding: 0px;
+}
+ion-card {
+ padding: 0px;
+ text-align: center;
+}
diff --git a/src/app/popover-other/popover-other.page.spec.ts b/src/app/popover-other/popover-other.page.spec.ts
new file mode 100644
index 00000000..04e52b37
--- /dev/null
+++ b/src/app/popover-other/popover-other.page.spec.ts
@@ -0,0 +1,27 @@
+import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { PopoverOtherPage } from './popover-other.page';
+
+describe('PopoverOtherPage', () => {
+ let component: PopoverOtherPage;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ PopoverOtherPage ],
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(PopoverOtherPage);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/popover-other/popover-other.page.ts b/src/app/popover-other/popover-other.page.ts
new file mode 100644
index 00000000..d439abc4
--- /dev/null
+++ b/src/app/popover-other/popover-other.page.ts
@@ -0,0 +1,52 @@
+import { Component, OnInit } from '@angular/core';
+import { Router } from '@angular/router'
+import * as backend from '../backendClasses';
+import { FirebaseBackendService } from '../firebase-backend.service';
+import * as firebase from 'firebase';
+import { NavParams } from '@ionic/angular';
+
+@Component({
+ selector: 'app-popover-other',
+ templateUrl: './popover-other.page.html',
+ styleUrls: ['./popover-other.page.scss'],
+})
+export class PopoverOtherPage implements OnInit {
+ private firebase: FirebaseBackendService;
+ private type: string;
+ private username: string;
+ private socialAccounts: backend.socialAccount[];
+ private none: boolean;
+ constructor(private router: Router, private navParam: NavParams) {
+ this.none = false;
+ firebase.auth().onAuthStateChanged(firebaseUser => {
+ if(!firebaseUser)
+ {
+ this.router.navigate(['login']);
+ }
+ else
+ {
+ this.firebase = new FirebaseBackendService(firebase.auth().currentUser.uid);
+ this.type = this.navParam.get('type');
+ this.username = this.navParam.get('username');
+ this.firebase.getSocialAccountsTypeContact(this.type, this.username).then(socialsArr => {
+ this.socialAccounts = socialsArr;
+ if(this.socialAccounts.length == 1
+ && this.socialAccounts[0].getId == "N/A"
+ && this.socialAccounts[0].getUrl == "N/A"
+ && this.socialAccounts[0].getUser == "N/A") {
+ this.socialAccounts = [];
+ this.none = true;
+ }
+ console.log(socialsArr);
+ });
+ }
+ });
+ }
+
+ ngOnInit() {
+ }
+
+ goToHome() {
+ this.router.navigate(['home']);
+ }
+}
diff --git a/src/app/user-contact/user-contact.module.ts b/src/app/user-contact/user-contact.module.ts
index 0981e816..d4ea3cf1 100644
--- a/src/app/user-contact/user-contact.module.ts
+++ b/src/app/user-contact/user-contact.module.ts
@@ -6,7 +6,7 @@ import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { UserContactPage } from './user-contact.page';
-// import { Contacts2PageModule } from '../contacts/contacts2.module';
+import { PopoverOtherPage } from '../popover-other/popover-other.page';
const routes: Routes = [
{
@@ -24,9 +24,8 @@ const routes: Routes = [
],
declarations: [
UserContactPage,
- // Contacts2PageModule
+ PopoverOtherPage
],
- entryComponents: [//Contacts2PageModule
- ]
+ entryComponents: [PopoverOtherPage]
})
export class UserContactPageModule {}
diff --git a/src/app/user-contact/user-contact.page.ts b/src/app/user-contact/user-contact.page.ts
index 1097b9cd..6b6b79b9 100644
--- a/src/app/user-contact/user-contact.page.ts
+++ b/src/app/user-contact/user-contact.page.ts
@@ -5,6 +5,7 @@ import { Router, ActivatedRoute } from '@angular/router';
import * as backend from '../backendClasses';
import { PopoverController } from '@ionic/angular';
import { ContactsPage } from '../contacts/contacts.page';
+import { PopoverOtherPage } from '../popover-other/popover-other.page';
@Component({
selector: 'app-user-contact',
@@ -43,8 +44,8 @@ export class UserContactPage implements OnInit {
async openPopover(ev: any, typ: string) {
const pop = await this.popOver.create({
- component: ContactsPage,
- componentProps: {'type': typ},
+ component: PopoverOtherPage,
+ componentProps: {'type': typ, 'username': this.profile.getUsername},
translucent: true,
backdropDismiss: true,
cssClass: 'popover',