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',