From 78712b380973172064ac9f6923b5796b654f81d3 Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Thu, 3 Oct 2019 23:21:53 +0200 Subject: [PATCH 1/5] chore: add nativescript key to package.json --- package.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package.json b/package.json index 359f507..2a6fa05 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,11 @@ "version": "0.0.0-development", "description": "A simple router for NativeScript-Vue", "main": "index.js", + "nativescript": { + "plugin": { + "vue": "true" + }, + }, "files": [ "index.js", "components" From fdac0f5152254d93d262d4a866b7ba3c14eeeda7 Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Thu, 3 Oct 2019 23:24:32 +0200 Subject: [PATCH 2/5] chore: fix invalid json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2a6fa05..b604c76 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "nativescript": { "plugin": { "vue": "true" - }, + } }, "files": [ "index.js", From dff6ac97f712e455ca9f0643777315f3c29c4d22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2019 19:41:01 +0000 Subject: [PATCH 3/5] build(deps): bump npm from 6.11.3 to 6.13.4 Bumps [npm](https://github.com/npm/cli) from 6.11.3 to 6.13.4. - [Release notes](https://github.com/npm/cli/releases) - [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md) - [Commits](https://github.com/npm/cli/compare/v6.11.3...v6.13.4) Signed-off-by: dependabot[bot] --- package-lock.json | 182 ++++++++++++++++++++++++---------------------- 1 file changed, 97 insertions(+), 85 deletions(-) diff --git a/package-lock.json b/package-lock.json index f035ce4..29fc161 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1688,9 +1688,9 @@ "dev": true }, "npm": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.11.3.tgz", - "integrity": "sha512-K2h+MPzZiY39Xf6eHEdECe/LKoJXam4UCflz5kIxoskN3LQFeYs5fqBGT5i4TtM/aBk+86Mcf+jgXs/WuWAutQ==", + "version": "6.13.4", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.13.4.tgz", + "integrity": "sha512-vTcUL4SCg3AzwInWTbqg1OIaOXlzKSS8Mb8kc5avwrJpcvevDA5J9BhYSuei+fNs3pwOp4lzA5x2FVDXACvoXA==", "dev": true, "requires": { "JSONStream": "^1.3.5", @@ -1699,12 +1699,12 @@ "ansistyles": "~0.1.3", "aproba": "^2.0.0", "archy": "~1.0.0", - "bin-links": "^1.1.3", + "bin-links": "^1.1.6", "bluebird": "^3.5.5", "byte-size": "^5.0.1", "cacache": "^12.0.3", "call-limit": "^1.1.1", - "chownr": "^1.1.2", + "chownr": "^1.1.3", "ci-info": "^2.0.0", "cli-columns": "^3.1.2", "cli-table3": "^0.5.1", @@ -1720,11 +1720,11 @@ "find-npm-prefix": "^1.0.2", "fs-vacuum": "~1.2.10", "fs-write-stream-atomic": "~1.0.10", - "gentle-fs": "^2.2.1", + "gentle-fs": "^2.3.0", "glob": "^7.1.4", - "graceful-fs": "^4.2.2", + "graceful-fs": "^4.2.3", "has-unicode": "~2.0.1", - "hosted-git-info": "^2.8.2", + "hosted-git-info": "^2.8.5", "iferr": "^1.0.2", "imurmurhash": "*", "infer-owner": "^1.0.4", @@ -1735,7 +1735,7 @@ "is-cidr": "^3.0.0", "json-parse-better-errors": "^1.0.2", "lazy-property": "~1.0.0", - "libcipm": "^4.0.3", + "libcipm": "^4.0.7", "libnpm": "^3.0.1", "libnpmaccess": "^3.0.2", "libnpmhook": "^5.0.3", @@ -1761,33 +1761,33 @@ "mississippi": "^3.0.0", "mkdirp": "~0.5.1", "move-concurrently": "^1.0.1", - "node-gyp": "^5.0.3", + "node-gyp": "^5.0.5", "nopt": "~4.0.1", "normalize-package-data": "^2.5.0", "npm-audit-report": "^1.3.2", "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~3.0.0", - "npm-lifecycle": "^3.1.3", + "npm-install-checks": "^3.0.2", + "npm-lifecycle": "^3.1.4", "npm-package-arg": "^6.1.1", - "npm-packlist": "^1.4.4", + "npm-packlist": "^1.4.7", "npm-pick-manifest": "^3.0.2", "npm-profile": "^4.0.2", - "npm-registry-fetch": "^4.0.0", + "npm-registry-fetch": "^4.0.2", "npm-user-validate": "~1.0.0", "npmlog": "~4.1.2", "once": "~1.4.0", "opener": "^1.5.1", "osenv": "^0.1.5", - "pacote": "^9.5.8", + "pacote": "^9.5.11", "path-is-inside": "~1.0.2", "promise-inflight": "~1.0.1", "qrcode-terminal": "^0.12.0", "query-string": "^6.8.2", "qw": "~1.0.1", "read": "~1.0.7", - "read-cmd-shim": "^1.0.4", + "read-cmd-shim": "^1.0.5", "read-installed": "~4.0.3", - "read-package-json": "^2.1.0", + "read-package-json": "^2.1.1", "read-package-tree": "^5.3.1", "readable-stream": "^3.4.0", "readdir-scoped-modules": "^1.1.0", @@ -1801,8 +1801,8 @@ "sorted-object": "~2.0.1", "sorted-union-stream": "~2.1.3", "ssri": "^6.0.1", - "stringify-package": "^1.0.0", - "tar": "^4.4.10", + "stringify-package": "^1.0.1", + "tar": "^4.4.13", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "uid-number": "0.0.6", @@ -1810,7 +1810,7 @@ "unique-filename": "^1.1.1", "unpipe": "~1.0.0", "update-notifier": "^2.5.0", - "uuid": "^3.3.2", + "uuid": "^3.3.3", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "~3.0.0", "which": "^1.3.1", @@ -1981,14 +1981,15 @@ } }, "bin-links": { - "version": "1.1.3", + "version": "1.1.6", "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.3", "cmd-shim": "^3.0.0", - "gentle-fs": "^2.0.1", + "gentle-fs": "^2.3.0", "graceful-fs": "^4.1.15", + "npm-normalize-package-bin": "^1.0.0", "write-file-atomic": "^2.3.0" } }, @@ -2093,7 +2094,7 @@ } }, "chownr": { - "version": "1.1.2", + "version": "1.1.3", "bundled": true, "dev": true }, @@ -2731,11 +2732,22 @@ } }, "fs-minipass": { - "version": "1.2.6", + "version": "1.2.7", "bundled": true, "dev": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.6.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } } }, "fs-vacuum": { @@ -2836,12 +2848,13 @@ "dev": true }, "gentle-fs": { - "version": "2.2.1", + "version": "2.3.0", "bundled": true, "dev": true, "requires": { "aproba": "^1.1.2", "chownr": "^1.1.2", + "cmd-shim": "^3.0.3", "fs-vacuum": "^1.2.10", "graceful-fs": "^4.1.11", "iferr": "^0.1.5", @@ -2932,7 +2945,7 @@ } }, "graceful-fs": { - "version": "4.2.2", + "version": "4.2.3", "bundled": true, "dev": true }, @@ -2974,12 +2987,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.2", + "version": "2.8.5", "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - } + "dev": true }, "http-cache-semantics": { "version": "3.8.1", @@ -3006,7 +3016,7 @@ } }, "https-proxy-agent": { - "version": "2.2.2", + "version": "2.2.4", "bundled": true, "dev": true, "requires": { @@ -3036,7 +3046,7 @@ "dev": true }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "requires": { @@ -3290,7 +3300,7 @@ } }, "libcipm": { - "version": "4.0.3", + "version": "4.0.7", "bundled": true, "dev": true, "requires": { @@ -3593,7 +3603,7 @@ } }, "make-fetch-happen": { - "version": "5.0.0", + "version": "5.0.2", "bundled": true, "dev": true, "requires": { @@ -3601,7 +3611,7 @@ "cacache": "^12.0.0", "http-cache-semantics": "^3.8.1", "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", + "https-proxy-agent": "^2.2.3", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "node-fetch-npm": "^2.0.2", @@ -3654,30 +3664,25 @@ "bundled": true, "dev": true }, - "minipass": { - "version": "2.3.3", + "minizlib": { + "version": "1.3.3", "bundled": true, "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "minipass": "^2.9.0" }, "dependencies": { - "yallist": { - "version": "3.0.2", + "minipass": { + "version": "2.9.0", "bundled": true, - "dev": true + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } } } }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, "mississippi": { "version": "3.0.0", "bundled": true, @@ -3744,7 +3749,7 @@ } }, "node-gyp": { - "version": "5.0.3", + "version": "5.0.5", "bundled": true, "dev": true, "requires": { @@ -3757,7 +3762,7 @@ "request": "^2.87.0", "rimraf": "2", "semver": "~5.3.0", - "tar": "^4.4.8", + "tar": "^4.4.12", "which": "1" }, "dependencies": { @@ -3816,9 +3821,12 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", "bundled": true, - "dev": true + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } }, "npm-cache-filename": { "version": "1.0.2", @@ -3826,7 +3834,7 @@ "dev": true }, "npm-install-checks": { - "version": "3.0.0", + "version": "3.0.2", "bundled": true, "dev": true, "requires": { @@ -3834,7 +3842,7 @@ } }, "npm-lifecycle": { - "version": "3.1.3", + "version": "3.1.4", "bundled": true, "dev": true, "requires": { @@ -3853,6 +3861,11 @@ "bundled": true, "dev": true }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, "npm-package-arg": { "version": "6.1.1", "bundled": true, @@ -3865,7 +3878,7 @@ } }, "npm-packlist": { - "version": "1.4.4", + "version": "1.4.7", "bundled": true, "dev": true, "requires": { @@ -3894,7 +3907,7 @@ } }, "npm-registry-fetch": { - "version": "4.0.0", + "version": "4.0.2", "bundled": true, "dev": true, "requires": { @@ -3903,7 +3916,15 @@ "figgy-pudding": "^3.4.1", "lru-cache": "^5.1.1", "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0" + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "bundled": true, + "dev": true + } } }, "npm-run-path": { @@ -4039,7 +4060,7 @@ } }, "pacote": { - "version": "9.5.8", + "version": "9.5.11", "bundled": true, "dev": true, "requires": { @@ -4057,6 +4078,7 @@ "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", "npm-package-arg": "^6.1.0", "npm-packlist": "^1.1.12", "npm-pick-manifest": "^3.0.0", @@ -4075,7 +4097,7 @@ }, "dependencies": { "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "requires": { @@ -4308,7 +4330,7 @@ } }, "read-cmd-shim": { - "version": "1.0.4", + "version": "1.0.5", "bundled": true, "dev": true, "requires": { @@ -4330,7 +4352,7 @@ } }, "read-package-json": { - "version": "2.1.0", + "version": "2.1.1", "bundled": true, "dev": true, "requires": { @@ -4338,7 +4360,7 @@ "graceful-fs": "^4.1.2", "json-parse-better-errors": "^1.0.1", "normalize-package-data": "^2.0.0", - "slash": "^1.0.0" + "npm-normalize-package-bin": "^1.0.0" } }, "read-package-tree": { @@ -4513,28 +4535,23 @@ "bundled": true, "dev": true }, - "slash": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "slide": { "version": "1.1.6", "bundled": true, "dev": true }, "smart-buffer": { - "version": "4.0.2", + "version": "4.1.0", "bundled": true, "dev": true }, "socks": { - "version": "2.3.2", + "version": "2.3.3", "bundled": true, "dev": true, "requires": { - "ip": "^1.1.5", - "smart-buffer": "4.0.2" + "ip": "1.1.5", + "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { @@ -4749,7 +4766,7 @@ } }, "stringify-package": { - "version": "1.0.0", + "version": "1.0.1", "bundled": true, "dev": true }, @@ -4780,13 +4797,13 @@ } }, "tar": { - "version": "4.4.10", + "version": "4.4.13", "bundled": true, "dev": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.5", + "minipass": "^2.8.6", "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", @@ -4794,18 +4811,13 @@ }, "dependencies": { "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true } } }, @@ -4986,7 +4998,7 @@ } }, "uuid": { - "version": "3.3.2", + "version": "3.3.3", "bundled": true, "dev": true }, From 38160d3f52e3dbe6f76817e05bf1572e3847e0df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Dec 2019 22:37:59 +0100 Subject: [PATCH 4/5] build(deps): bump handlebars from 4.2.0 to 4.5.3 (#21) Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.2.0 to 4.5.3. - [Release notes](https://github.com/wycats/handlebars.js/releases) - [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md) - [Commits](https://github.com/wycats/handlebars.js/compare/v4.2.0...v4.5.3) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 29fc161..73af021 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1054,9 +1054,9 @@ "dev": true }, "handlebars": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.2.0.tgz", - "integrity": "sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", + "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", "dev": true, "requires": { "neo-async": "^2.6.0", From 99f9e36bd5f06fa57a4958a1fa0bad4b79aa6a98 Mon Sep 17 00:00:00 2001 From: rigor789 Date: Fri, 20 Mar 2020 14:11:22 +0100 Subject: [PATCH 5/5] feat: support multiple navigators close #27, close #29 BREAKING CHANGE: the default navigator id is now set to `navigator` instead of `default` --- README.md | 47 +++++++++++++++++++++++++++++++++++++++++ components/Navigator.js | 12 +++++++++-- index.js | 15 +++++++++---- 3 files changed, 68 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b1d567c..98191c7 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,16 @@ export default { } ``` +## Getting the current path + +```js +// logs the current path in the default navigator +console.log(this.$navigator.path) + +// logs the current path in the second navigator (See Multiple Navigators section for more details) +console.log(this.$navigator.paths.second) +``` + ## Navigating This package provides 2 methods for navigation, `$navigator.navigate` and `$navigator.back` @@ -96,3 +106,40 @@ this.$navigator.navigate('/home', { clearHistory: true }) Note that we used `clearHistory: true` to prevent the back button from going back to the login page. `$navigator.back(options, backstackEntry)` is an alias to [`$navigateBack`](https://nativescript-vue.org/en/docs/routing/manual-routing/#navigatebackoptions-backstackentry--null) + +# Multiple Navigators + +It is possible to use multiple `` elements by providing each new Navigator with a unique `id`. + +```vue + + + +``` diff --git a/components/Navigator.js b/components/Navigator.js index 964bbb2..b186b66 100644 --- a/components/Navigator.js +++ b/components/Navigator.js @@ -1,5 +1,9 @@ export default { props: { + id: { + type: String, + default: 'navigator' + }, defaultRoute: { type: String, default: '/', @@ -15,7 +19,10 @@ export default { this.$listeners, {loaded: this.onFrameLoaded} ), - attrs: this.$attrs, + attrs: { + ...this.$attrs, + id: this.$props.id + }, }, [this.slotContent] ) @@ -43,7 +50,8 @@ export default { _currentEntry = value if (value && value.resolvedPage) { self.$navigator._updatePath( - value.resolvedPage.__path || self.defaultRoute || '' + value.resolvedPage.__path || self.defaultRoute || '', + self.$props.id ) } }, diff --git a/index.js b/index.js index 261aaa4..529aa0c 100644 --- a/index.js +++ b/index.js @@ -19,6 +19,7 @@ export default function install(Vue, {routes}) { Vue.prototype.$navigator = new Vue({ data: { path: false, + paths: {}, defaultPath: '/' }, computed: { @@ -35,8 +36,11 @@ export default function install(Vue, {routes}) { } return false }, - _updatePath(path) { - this.path = path + _updatePath(path, id = 'navigator') { + if(id === 'navigator') { + this.path = path + } + this.$set(this.paths, id, path) }, navigate(to, options) { @@ -49,10 +53,13 @@ export default function install(Vue, {routes}) { return false } + options = Object.assign({ frame: 'navigator' }, options) + return this.$navigateTo(matchedRoute.component, options) }, - back(...args) { - return this.$navigateBack.call(this, args) + back(options, ...args) { + options = Object.assign({ frame: 'navigator' }, options) + return this.$navigateBack.call(this, options, ...args) } }, })