{"_id":"@polymer/app-route","_rev":"51-02e30c1e2881b2cc7d9d933ce04c5f2e","name":"@polymer/app-route","dist-tags":{"preview":"0.9.3-pre.3","next":"3.0.0-pre.20","latest":"3.0.2"},"versions":{"0.9.3-pre.1":{"name":"@polymer/app-route","version":"0.9.3-pre.1","license":"SEE LICENSE IN http://polymer.github.io/LICENSE.txt","_id":"@polymer/app-route@0.9.3-pre.1","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"contributors":[{"name":"The Polymer Authors"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"52893e8382a5742d4a4f2597c930eb7629cb6d44","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-0.9.3-pre.1.tgz","integrity":"sha512-7WVWmYhscRIRniqZB10lo26pp3rOloVn3Fi5/s4hBeI/2iwL/BiLATHJdz612npyQ+XKGuZE//HkPEGtViOmUw==","signatures":[{"sig":"MEYCIQCV9mQ044TFN+S6dyezQHfips2sTpyBIXvm4wp7XmRe/gIhAPas8+5aZQk4b0EvdkxU9AOP9/hZuQo3PV8qLS37Qbrm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"flat":true,"_from":".","_shasum":"52893e8382a5742d4a4f2597c930eb7629cb6d44","scripts":{},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"3.10.3","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"6.4.0","dependencies":{"@polymer/polymer":"gloo","@polymer/iron-location":"gloo"},"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/app-route-0.9.3-pre.1.tgz_1484953781962_0.31550625106319785","host":"packages-12-west.internal.npmjs.com"}},"0.9.3-pre.2":{"name":"@polymer/app-route","version":"0.9.3-pre.2","license":"SEE LICENSE IN http://polymer.github.io/LICENSE.txt","_id":"@polymer/app-route@0.9.3-pre.2","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"contributors":[{"name":"The Polymer Authors"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"36f9ade2cf610fc54cf89cf1769532fc4b4e2f88","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-0.9.3-pre.2.tgz","integrity":"sha512-4PUNWdoRZ4PtYY34cSkoDIi2zXjg/9iLL9y7RbvTgcOMgJtEKffaHpSSWaomiwVbvAsGOk4V60b45NzQxJpkYg==","signatures":[{"sig":"MEYCIQDnwRqKHCvmZeIL/TpTR6fwLu0VaeDRTh9Wke5CUQqiCwIhAOEIBnWkgLqg3apZPu7AlaXcQ8Lg+JsZ2xzEfzqJ6aoO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"flat":true,"_from":".","_shasum":"36f9ade2cf610fc54cf89cf1769532fc4b4e2f88","scripts":{},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"3.10.3","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"6.4.0","dependencies":{"@polymer/polymer":"gloo","@polymer/iron-location":"gloo"},"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/app-route-0.9.3-pre.2.tgz_1484954607874_0.2797110478859395","host":"packages-18-east.internal.npmjs.com"}},"0.9.3-pre.3":{"name":"@polymer/app-route","version":"0.9.3-pre.3","license":"SEE LICENSE IN http://polymer.github.io/LICENSE.txt","_id":"@polymer/app-route@0.9.3-pre.3","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"contributors":[{"name":"The Polymer Authors"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"42ec32497d30e15592ecbbb3604d40e244caef15","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-0.9.3-pre.3.tgz","integrity":"sha512-Sw5v3QWHq82tpe172lSyAQrCHdAgUWJdIAxk4Ou+Er/gBzvP6FOhs5lg9JgTGFaW3ZUua5gHcH1dNc6fvCz10w==","signatures":[{"sig":"MEUCIQCifseEM+FA9Ytxb/8RPw+tzu3ZOFF7dFNb7MRZSPff1gIgP65SjFFplWaDyU7n8SS6p+3lZPVY2Mq6mTnGiNh+xIQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"flat":true,"_from":".","_shasum":"42ec32497d30e15592ecbbb3604d40e244caef15","scripts":{},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"3.10.3","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"6.4.0","dependencies":{"@polymer/polymer":"preview","@polymer/iron-location":"preview"},"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/app-route-0.9.3-pre.3.tgz_1485217213163_0.05008628498762846","host":"packages-12-west.internal.npmjs.com"}},"3.0.0-pre.1":{"name":"@polymer/app-route","version":"3.0.0-pre.1","license":"http://polymer.github.io/LICENSE.txt","_id":"@polymer/app-route@3.0.0-pre.1","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"contributors":[{"name":"The Polymer Authors"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"4fc8f895f899e38461413f4ed1dfa8520aee4396","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.1.tgz","integrity":"sha512-blfadnJQpyjT7UlS79wYjs2EFCcBTzNMYi66Ab0eAG/Mn3C82Kp21ZFtu3tHNxyLLjBpy+GT7PudmW7aKJuWnQ==","signatures":[{"sig":"MEUCIAul59Goi7dIey8AjgwI5YiXmoIyHt5EipdTd4dGHLLbAiEAmUT9GLfCTebb9MiyPzlhYuoF2qoitMXBBxdHF5Zg4j0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"flat":true,"gitHead":"56a888dbff04db02d27359ce50132a85d24931bb","_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"5.3.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"8.2.1","dependencies":{"@polymer/polymer":"^3.0.0-pre.1","@polymer/iron-location":"^3.0.0-pre.1"},"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/app-route-3.0.0-pre.1.tgz_1503386223130_0.5135035715065897","host":"s3://npm-registry-packages"}},"3.0.0-pre.2":{"name":"@polymer/app-route","version":"3.0.0-pre.2","license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.2","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"contributors":[{"name":"The Polymer Authors"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"667f902370e3d3030039f297f4e16d4fbd1155e1","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.2.tgz","integrity":"sha512-yFw8ufzL7oVJBdxwURORphElJhCINQK7IyWYkLayQfAor9bc83IgVJq5HDqp2qGDvyFiVZYq3NELEblKP6RurA==","signatures":[{"sig":"MEUCIQDFfRWZPRShXDNpIB2katXDiWwTNgqsAmUKsIScOewRQwIgLctwI9iFYMBhF+TAOprmL1IzT7iQWTkgHmABESz+cJg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"flat":true,"gitHead":"2ef3d2acb6a33458172902d56a14e4b655e154e2","_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"5.5.1","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2"},"_nodeVersion":"9.2.0","dependencies":{"@polymer/polymer":"^3.0.0-pre.1","@polymer/iron-location":"^3.0.0-pre.1"},"devDependencies":{"wct-browser-legacy":"0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.1","@polymer/paper-card":"^3.0.0-pre.1","@polymer/paper-input":"^3.0.0-pre.1","@polymer/paper-styles":"^3.0.0-pre.1","@polymer/paper-spinner":"^3.0.0-pre.1","@polymer/iron-demo-helpers":"^3.0.0-pre.1","@polymer/iron-test-helpers":"^3.0.0-pre.1","@polymer/paper-icon-button":"^3.0.0-pre.1","@polymer/iron-component-page":"^3.0.0-pre.1","@polymer/paper-toggle-button":"^3.0.0-pre.1","@webcomponents/webcomponentsjs":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/app-route-3.0.0-pre.2.tgz_1515721318155_0.07340779551304877","host":"s3://npm-registry-packages"}},"3.0.0-pre.4":{"name":"@polymer/app-route","version":"3.0.0-pre.4","license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.4","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"contributors":[{"name":"The Polymer Authors"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"69187843a8ccd5a00eafa1c3eeb73f9228856be3","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.4.tgz","integrity":"sha512-H7VWEWR23PZNP4d+1x9/0falZ/A+SP03rRsd+Oi1c9BghF2wlk3vbAg/4jCtnobt7mKr1z3qNuwwZ5GVDN2kbg==","signatures":[{"sig":"MEQCIDz5ZR4vC/aE/ZWyUjq8tExQ7cCb7Df/P+74/Tk3PDzUAiA0LryOr1IETN+7ian0OTMAz2y4lyHb4tFIfNH9iK2IBQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"flat":true,"gitHead":"dc757821a94468585cce87d87449dcd94a5c0706","_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"5.5.1","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2"},"_nodeVersion":"9.2.0","dependencies":{"@polymer/polymer":"^3.0.0-pre.4","@polymer/iron-location":"^3.0.0-pre.4"},"devDependencies":{"wct-browser-legacy":"0.0.1-pre.10","@polymer/iron-pages":"^3.0.0-pre.4","@polymer/paper-card":"^3.0.0-pre.4","@polymer/paper-input":"^3.0.0-pre.4","@polymer/paper-styles":"^3.0.0-pre.4","@polymer/paper-spinner":"^3.0.0-pre.4","@polymer/iron-demo-helpers":"^3.0.0-pre.4","@polymer/iron-test-helpers":"^3.0.0-pre.4","@polymer/paper-icon-button":"^3.0.0-pre.4","@polymer/iron-component-page":"^3.0.0-pre.4","@polymer/paper-toggle-button":"^3.0.0-pre.4","@webcomponents/webcomponentsjs":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/app-route-3.0.0-pre.4.tgz_1516146835606_0.9083657511509955","host":"s3://npm-registry-packages"}},"3.0.0-pre.6":{"name":"@polymer/app-route","version":"3.0.0-pre.6","license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.6","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"contributors":[{"name":"The Polymer Authors"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"c004a234cae208b14412ea9d8925afbb073686aa","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.6.tgz","integrity":"sha512-+bAokYDMyD/hQh5LK7w5NrKfaNDKQmp/hHqfawW4REoXty5KhH1RGO4jUmd6Wc64yNeYOVM/KS3v26GeEC7sxA==","signatures":[{"sig":"MEUCIFugRB41jKxPehTvUOHDG1iIiRdnA9KIfXM/RHyh2471AiEA/SyZ8iv9f8LKpfhssFgJFFSrBfGEtjf/UfBiH7muuL4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"flat":true,"gitHead":"6819f726121c6668cfa131ddd9e9f05b35aa31ee","_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"5.6.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2"},"_nodeVersion":"9.4.0","dependencies":{"@polymer/polymer":"^3.0.0-pre.6","@polymer/iron-location":"^3.0.0-pre.6"},"devDependencies":{"wct-browser-legacy":"0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.6","@polymer/paper-card":"^3.0.0-pre.6","@polymer/paper-input":"^3.0.0-pre.6","@polymer/paper-styles":"^3.0.0-pre.6","@polymer/paper-spinner":"^3.0.0-pre.6","@polymer/iron-demo-helpers":"^3.0.0-pre.6","@polymer/iron-test-helpers":"^3.0.0-pre.6","@polymer/paper-icon-button":"^3.0.0-pre.6","@polymer/iron-component-page":"^3.0.0-pre.6","@polymer/paper-toggle-button":"^3.0.0-pre.6","@webcomponents/webcomponentsjs":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/app-route-3.0.0-pre.6.tgz_1516835029556_0.8398466394282877","host":"s3://npm-registry-packages"}},"3.0.0-pre.7":{"name":"@polymer/app-route","version":"3.0.0-pre.7","license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.7","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"contributors":[{"name":"The Polymer Authors"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"fd65a6a6bba58a9e9a21b452c04b52646b405323","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.7.tgz","integrity":"sha512-YumMXDNJ7NQax/lWfan7gQ1b5j01eqJR3xliZx3Z7i8tfxbsXLsaI+SZu/r4RwIrcAuSSem49t603ZI+9r+atA==","signatures":[{"sig":"MEQCIEkLHh7rTNHSwLUNRE99EH4yHrG0i17yomzVpzDeoQ89AiBvq+OT+SjgVppYgr0yHBGT/oAG8clCNpQUlbGf4Wboog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"flat":true,"gitHead":"0d4ac39d7b0571419f80bc4522eb221686ec9ae6","_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"5.6.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2"},"_nodeVersion":"9.4.0","dependencies":{"@polymer/polymer":"^3.0.0-pre.7","@polymer/iron-location":"^3.0.0-pre.7"},"devDependencies":{"wct-browser-legacy":"0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.7","@polymer/paper-card":"^3.0.0-pre.7","@polymer/paper-input":"^3.0.0-pre.7","@polymer/paper-styles":"^3.0.0-pre.7","@polymer/paper-spinner":"^3.0.0-pre.7","@polymer/iron-demo-helpers":"^3.0.0-pre.7","@polymer/iron-test-helpers":"^3.0.0-pre.7","@polymer/paper-icon-button":"^3.0.0-pre.7","@polymer/iron-component-page":"^3.0.0-pre.7","@polymer/paper-toggle-button":"^3.0.0-pre.7","@webcomponents/webcomponentsjs":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/app-route-3.0.0-pre.7.tgz_1517338118009_0.6611641757190228","host":"s3://npm-registry-packages"}},"3.0.0-pre.8":{"name":"@polymer/app-route","version":"3.0.0-pre.8","license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.8","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"contributors":[{"name":"The Polymer Authors"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"266d5894de13ef0aa13f18267e00ec8ce2296eb3","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.8.tgz","fileCount":33,"integrity":"sha512-Bt0O5HQcMImmlvPTIfik4GhxebViodRP/DrX9lPYoVoDNBU1SDNAkm0CKsBXHQI95PQpehSqyn7YdwlNFJ2iCA==","signatures":[{"sig":"MEYCIQD3hmEibRW+45kuBvR4NGdeJL2PLyVHgthyntveeOOhTQIhALHmPJVPocVvktHE9J540CL3XlhK8OsH9adLNa/hzUPs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107319},"flat":true,"readme":"\n<!---\n\nThis README is automatically generated from the comments in these files:\napp-location.html  app-route-converter-behavior.html  app-route-converter.html  app-route.html\n\nEdit those files, and our readme bot will duplicate them over here!\nEdit this file, and the bot will squash your changes :)\n\nThe bot does some handling of markdown. Please file a bug if it does the wrong\nthing! https://github.com/PolymerLabs/tedium/issues\n\n-->\n\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n\n\n## &lt;app-route&gt;\n\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\n> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!*\n\nIn its typical usage, a `app-route` element consumes an object that describes\nsome state about the current route, via the `route` property. It then parses\nthat state using the `pattern` property, and produces two artifacts: some `data`\nrelated to the `route`, and a `tail` that contains the rest of the `route` that\ndid not match.\n\nHere is a basic example, when used with `app-location`:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{data}}\"\n    tail=\"{{tail}}\">\n</app-route>\n```\n\nIn the above example, the `app-location` produces a `route` value. Then, the\n`route.path` property is matched by comparing it to the `pattern` property. If\nthe `pattern` property matches `route.path`, the `app-route` will set or update\nits `data` property with an object whose properties correspond to the parameters\nin `pattern`. So, in the above example, if `route.path` was `'/about'`, the value\nof `data` would be `{\"page\": \"about\"}`.\n\nThe `tail` property represents the remaining part of the route state after the\n`pattern` has been applied to a matching `route`.\n\nHere is another example, where `tail` is used:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{routeData}}\"\n    tail=\"{{subroute}}\">\n</app-route>\n<app-route\n    route=\"{{subroute}}\"\n    pattern=\"/:id\"\n    data=\"{{subrouteData}}\">\n</app-route>\n```\n\nIn the above example, there are two `app-route` elements. The first\n`app-route` consumes a `route`. When the `route` is matched, the first\n`app-route` also produces `routeData` from its `data`, and `subroute` from\nits `tail`. The second `app-route` consumes the `subroute`, and when it\nmatches, it produces an object called `subrouteData` from its `data`.\n\nSo, when `route.path` is `'/about'`, the `routeData` object will look like\nthis: `{ page: 'about' }`\n\nAnd `subrouteData` will be null. However, if `route.path` changes to\n`'/article/123'`, the `routeData` object will look like this:\n`{ page: 'article' }`\n\nAnd the `subrouteData` will look like this: `{ id: '123' }`\n\n`app-route` is responsive to bi-directional changes to the `data` objects\nthey produce. So, if `routeData.page` changed from `'article'` to `'about'`,\nthe `app-route` will update `route.path`. This in-turn will update the\n`app-location`, and cause the global location bar to change its value.\n\n\n\n## &lt;app-location&gt;\n\n`app-location` is an element that provides synchronization between the\nbrowser location bar and the state of an app. When created, `app-location`\nelements will automatically watch the global location for changes. As changes\noccur, `app-location` produces and updates an object called `route`. This\n`route` object is suitable for passing into a `app-route`, and other similar\nelements.\n\nAn example of the public API of a route object that describes the URL\n`https://elements.polymer-project.org/elements/app-location`:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-location'\n}\n```\n\nExample Usage:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route route=\"{{route}}\" pattern=\"/:page\" data=\"{{data}}\"></app-route>\n```\n\nAs you can see above, the `app-location` element produces a `route` and that\nproperty is then bound into the `app-route` element. The bindings are two-\ndirectional, so when changes to the `route` object occur within `app-route`,\nthey automatically reflect back to the global location.\n\n### Hashes vs Paths\n\nBy default `app-location` routes using the pathname portion of the URL. This has\nbroad browser support but it does require cooperation of the backend server. An\n`app-location` can be configured to use the hash part of a URL instead using\nthe `use-hash-as-path` attribute, like so:\n\n```html\n<app-location route=\"{{route}}\" use-hash-as-path></app-location>\n```\n\n### Integrating with other routing code\n\nThere is no standard event that is fired when window.location is modified.\n`app-location` fires a `location-changed` event on `window` when it updates the\nlocation. It also listens for that same event, and re-reads the URL when it's\nfired. This makes it very easy to interop with other routing code.\n\nSo for example if you want to navigate to `/new_path` imperatively you could\ncall `window.location.pushState` or `window.location.replaceState` followed by\nfiring a `location-changed` event on `window`. i.e.\n\n```javascript\nwindow.history.pushState({}, null, '/new_path');\nwindow.dispatchEvent(new CustomEvent('location-changed'));\n```\n\n\n\n## &lt;app-route-converter&gt;\n\n`app-route-converter` provides a means to convert a path and query\nparameters into a route object and vice versa. This produced route object\nis to be fed into route-consuming elements such as `app-route`.\n\n> n.b. This element is intended to be a primitive of the routing system and for\ncreating bespoke routing solutions from scratch. To simply include routing in\nan app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html)\nand [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html).\n\nAn example of a route object that describes\n`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux`\nand should be passed to other `app-route` elements:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-route-converter',\n  __queryParams: {\n    foo: 'bar',\n    baz: 'qux'\n  }\n}\n```\n\n`__queryParams` is private to discourage directly data-binding to it. This is so\nthat routing elements like `app-route` can intermediate changes to the query\nparams and choose whether to propagate them upstream or not. `app-route` for\nexample will not propagate changes to its `queryParams` property if it is not\ncurrently active. A public queryParams object will also be produced in which you\nshould perform data-binding operations.\n\nExample Usage:\n\n```html\n<iron-location path=\"{{path}}\" query=\"{{query}}\"></iron-location>\n<iron-query-params\n    params-string=\"{{query}}\"\n    params-object=\"{{queryParams}}\">\n</iron-query-params>\n<app-route-converter\n    path=\"{{path}}\"\n    query-params=\"{{queryParams}}\"\n    route=\"{{route}}\">\n</app-route-converter>\n<app-route route='{{route}}' pattern='/:page' data='{{data}}'>\n</app-route>\n```\n\nThis is a simplified implementation of the `app-location` element. Here the\n`iron-location` produces a path and a query, the `iron-query-params` consumes\nthe query and produces a queryParams object, and the `app-route-converter`\nconsumes the path and the query params and converts it into a route which is in\nturn is consumed by the `app-route`.\n\n\n\n## Polymer.AppRouteConverterBehavior\n\nProvides bidirectional mapping between `path` and `queryParams` and a\napp-route compatible `route` object.\n\nFor more information, see the docs for `app-route-converter`.\n\n\n","gitHead":"40c274af01413a9ed703d9b16a6f47a3c61d09b9","_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"5.5.1","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2"},"_nodeVersion":"9.2.0","dependencies":{"@polymer/polymer":"^3.0.0-pre.7","@polymer/iron-location":"^3.0.0-pre.7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"wct-browser-legacy":"0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.7","@polymer/paper-card":"^3.0.0-pre.7","@polymer/paper-input":"^3.0.0-pre.7","@polymer/paper-styles":"^3.0.0-pre.7","@polymer/paper-spinner":"^3.0.0-pre.7","@polymer/iron-demo-helpers":"^3.0.0-pre.7","@polymer/iron-test-helpers":"^3.0.0-pre.7","@polymer/paper-icon-button":"^3.0.0-pre.7","@polymer/iron-component-page":"^3.0.0-pre.7","@polymer/paper-toggle-button":"^3.0.0-pre.7","@webcomponents/webcomponentsjs":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.8_1518029783773_0.9011665558113762","host":"s3://npm-registry-packages"}},"3.0.0-pre.10":{"name":"@polymer/app-route","version":"3.0.0-pre.10","license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.10","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"contributors":[{"name":"The Polymer Authors"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"ed79af7d877836cc1791b38815da532674a6f131","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.10.tgz","fileCount":24,"integrity":"sha512-R9fkQSg0T4S/oJBI7mTYq/1JMVdVTkhCu5G2OJ0Rk6QgZLwBs1Tb3O65oyKfHwhcmXoPZ8GF1ntcbigJKX15sg==","signatures":[{"sig":"MEUCIG8aBb18M2H3TUgwrU+S9Nr5JRcy4KVu/exepErwnERCAiEAyeWjVM/YQCUBCJptdAm3pzxBoe6dhgaIiwDs8IWglgM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69877},"flat":true,"readme":"\n<!---\n\nThis README is automatically generated from the comments in these files:\napp-location.html  app-route-converter-behavior.html  app-route-converter.html  app-route.html\n\nEdit those files, and our readme bot will duplicate them over here!\nEdit this file, and the bot will squash your changes :)\n\nThe bot does some handling of markdown. Please file a bug if it does the wrong\nthing! https://github.com/PolymerLabs/tedium/issues\n\n-->\n\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n\n\n## &lt;app-route&gt;\n\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\n> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!*\n\nIn its typical usage, a `app-route` element consumes an object that describes\nsome state about the current route, via the `route` property. It then parses\nthat state using the `pattern` property, and produces two artifacts: some `data`\nrelated to the `route`, and a `tail` that contains the rest of the `route` that\ndid not match.\n\nHere is a basic example, when used with `app-location`:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{data}}\"\n    tail=\"{{tail}}\">\n</app-route>\n```\n\nIn the above example, the `app-location` produces a `route` value. Then, the\n`route.path` property is matched by comparing it to the `pattern` property. If\nthe `pattern` property matches `route.path`, the `app-route` will set or update\nits `data` property with an object whose properties correspond to the parameters\nin `pattern`. So, in the above example, if `route.path` was `'/about'`, the value\nof `data` would be `{\"page\": \"about\"}`.\n\nThe `tail` property represents the remaining part of the route state after the\n`pattern` has been applied to a matching `route`.\n\nHere is another example, where `tail` is used:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{routeData}}\"\n    tail=\"{{subroute}}\">\n</app-route>\n<app-route\n    route=\"{{subroute}}\"\n    pattern=\"/:id\"\n    data=\"{{subrouteData}}\">\n</app-route>\n```\n\nIn the above example, there are two `app-route` elements. The first\n`app-route` consumes a `route`. When the `route` is matched, the first\n`app-route` also produces `routeData` from its `data`, and `subroute` from\nits `tail`. The second `app-route` consumes the `subroute`, and when it\nmatches, it produces an object called `subrouteData` from its `data`.\n\nSo, when `route.path` is `'/about'`, the `routeData` object will look like\nthis: `{ page: 'about' }`\n\nAnd `subrouteData` will be null. However, if `route.path` changes to\n`'/article/123'`, the `routeData` object will look like this:\n`{ page: 'article' }`\n\nAnd the `subrouteData` will look like this: `{ id: '123' }`\n\n`app-route` is responsive to bi-directional changes to the `data` objects\nthey produce. So, if `routeData.page` changed from `'article'` to `'about'`,\nthe `app-route` will update `route.path`. This in-turn will update the\n`app-location`, and cause the global location bar to change its value.\n\n\n\n## &lt;app-location&gt;\n\n`app-location` is an element that provides synchronization between the\nbrowser location bar and the state of an app. When created, `app-location`\nelements will automatically watch the global location for changes. As changes\noccur, `app-location` produces and updates an object called `route`. This\n`route` object is suitable for passing into a `app-route`, and other similar\nelements.\n\nAn example of the public API of a route object that describes the URL\n`https://elements.polymer-project.org/elements/app-location`:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-location'\n}\n```\n\nExample Usage:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route route=\"{{route}}\" pattern=\"/:page\" data=\"{{data}}\"></app-route>\n```\n\nAs you can see above, the `app-location` element produces a `route` and that\nproperty is then bound into the `app-route` element. The bindings are two-\ndirectional, so when changes to the `route` object occur within `app-route`,\nthey automatically reflect back to the global location.\n\n### Hashes vs Paths\n\nBy default `app-location` routes using the pathname portion of the URL. This has\nbroad browser support but it does require cooperation of the backend server. An\n`app-location` can be configured to use the hash part of a URL instead using\nthe `use-hash-as-path` attribute, like so:\n\n```html\n<app-location route=\"{{route}}\" use-hash-as-path></app-location>\n```\n\n### Integrating with other routing code\n\nThere is no standard event that is fired when window.location is modified.\n`app-location` fires a `location-changed` event on `window` when it updates the\nlocation. It also listens for that same event, and re-reads the URL when it's\nfired. This makes it very easy to interop with other routing code.\n\nSo for example if you want to navigate to `/new_path` imperatively you could\ncall `window.location.pushState` or `window.location.replaceState` followed by\nfiring a `location-changed` event on `window`. i.e.\n\n```javascript\nwindow.history.pushState({}, null, '/new_path');\nwindow.dispatchEvent(new CustomEvent('location-changed'));\n```\n\n\n\n## &lt;app-route-converter&gt;\n\n`app-route-converter` provides a means to convert a path and query\nparameters into a route object and vice versa. This produced route object\nis to be fed into route-consuming elements such as `app-route`.\n\n> n.b. This element is intended to be a primitive of the routing system and for\ncreating bespoke routing solutions from scratch. To simply include routing in\nan app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html)\nand [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html).\n\nAn example of a route object that describes\n`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux`\nand should be passed to other `app-route` elements:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-route-converter',\n  __queryParams: {\n    foo: 'bar',\n    baz: 'qux'\n  }\n}\n```\n\n`__queryParams` is private to discourage directly data-binding to it. This is so\nthat routing elements like `app-route` can intermediate changes to the query\nparams and choose whether to propagate them upstream or not. `app-route` for\nexample will not propagate changes to its `queryParams` property if it is not\ncurrently active. A public queryParams object will also be produced in which you\nshould perform data-binding operations.\n\nExample Usage:\n\n```html\n<iron-location path=\"{{path}}\" query=\"{{query}}\"></iron-location>\n<iron-query-params\n    params-string=\"{{query}}\"\n    params-object=\"{{queryParams}}\">\n</iron-query-params>\n<app-route-converter\n    path=\"{{path}}\"\n    query-params=\"{{queryParams}}\"\n    route=\"{{route}}\">\n</app-route-converter>\n<app-route route='{{route}}' pattern='/:page' data='{{data}}'>\n</app-route>\n```\n\nThis is a simplified implementation of the `app-location` element. Here the\n`iron-location` produces a path and a query, the `iron-query-params` consumes\nthe query and produces a queryParams object, and the `app-route-converter`\nconsumes the path and the query params and converts it into a route which is in\nturn is consumed by the `app-route`.\n\n\n\n## Polymer.AppRouteConverterBehavior\n\nProvides bidirectional mapping between `path` and `queryParams` and a\napp-route compatible `route` object.\n\nFor more information, see the docs for `app-route-converter`.\n\n\n","gitHead":"5c19c6d94be87f18384d08f657f642db66e0f4b5","_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"5.4.1","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2"},"_nodeVersion":"8.2.1","dependencies":{"@polymer/polymer":"^3.0.0-pre.10","@polymer/iron-location":"^3.0.0-pre.10"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"wct-browser-legacy":"0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.10","@polymer/paper-card":"^3.0.0-pre.10","@polymer/paper-input":"^3.0.0-pre.10","@polymer/paper-styles":"^3.0.0-pre.10","@polymer/paper-spinner":"^3.0.0-pre.10","@polymer/iron-demo-helpers":"^3.0.0-pre.10","@polymer/iron-test-helpers":"^3.0.0-pre.10","@polymer/paper-icon-button":"^3.0.0-pre.10","@polymer/iron-component-page":"^3.0.0-pre.10","@polymer/paper-toggle-button":"^3.0.0-pre.10","@webcomponents/webcomponentsjs":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.10_1519341313388_0.036244816593962614","host":"s3://npm-registry-packages"}},"3.0.0-pre.11":{"name":"@polymer/app-route","version":"3.0.0-pre.11","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.11","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"b2594d8040f8fd8dff5c09884f7aa5c3ec5dfb9d","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.11.tgz","fileCount":32,"integrity":"sha512-pj6z5fwwkLgXipGtoLunoneIY2JTu0ndQl1nSEw8Th7xwf5a32nYs13YgXYN7Ffr1RYnrZV5MqPVNI3W5qgtxQ==","signatures":[{"sig":"MEYCIQDJn9LrfhRnfiGqZ9STKdiryWcUPvAFZyBDH6fX+9P9RAIhAOPxQMl9thfvd7XffHoRvvXQ4HMPuON/KF6Seg7PUAYu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105554},"readme":"\n<!---\n\nThis README is automatically generated from the comments in these files:\napp-location.html  app-route-converter-behavior.html  app-route-converter.html  app-route.html\n\nEdit those files, and our readme bot will duplicate them over here!\nEdit this file, and the bot will squash your changes :)\n\nThe bot does some handling of markdown. Please file a bug if it does the wrong\nthing! https://github.com/PolymerLabs/tedium/issues\n\n-->\n\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n\n\n## &lt;app-route&gt;\n\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\n> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!*\n\nIn its typical usage, a `app-route` element consumes an object that describes\nsome state about the current route, via the `route` property. It then parses\nthat state using the `pattern` property, and produces two artifacts: some `data`\nrelated to the `route`, and a `tail` that contains the rest of the `route` that\ndid not match.\n\nHere is a basic example, when used with `app-location`:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{data}}\"\n    tail=\"{{tail}}\">\n</app-route>\n```\n\nIn the above example, the `app-location` produces a `route` value. Then, the\n`route.path` property is matched by comparing it to the `pattern` property. If\nthe `pattern` property matches `route.path`, the `app-route` will set or update\nits `data` property with an object whose properties correspond to the parameters\nin `pattern`. So, in the above example, if `route.path` was `'/about'`, the value\nof `data` would be `{\"page\": \"about\"}`.\n\nThe `tail` property represents the remaining part of the route state after the\n`pattern` has been applied to a matching `route`.\n\nHere is another example, where `tail` is used:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{routeData}}\"\n    tail=\"{{subroute}}\">\n</app-route>\n<app-route\n    route=\"{{subroute}}\"\n    pattern=\"/:id\"\n    data=\"{{subrouteData}}\">\n</app-route>\n```\n\nIn the above example, there are two `app-route` elements. The first\n`app-route` consumes a `route`. When the `route` is matched, the first\n`app-route` also produces `routeData` from its `data`, and `subroute` from\nits `tail`. The second `app-route` consumes the `subroute`, and when it\nmatches, it produces an object called `subrouteData` from its `data`.\n\nSo, when `route.path` is `'/about'`, the `routeData` object will look like\nthis: `{ page: 'about' }`\n\nAnd `subrouteData` will be null. However, if `route.path` changes to\n`'/article/123'`, the `routeData` object will look like this:\n`{ page: 'article' }`\n\nAnd the `subrouteData` will look like this: `{ id: '123' }`\n\n`app-route` is responsive to bi-directional changes to the `data` objects\nthey produce. So, if `routeData.page` changed from `'article'` to `'about'`,\nthe `app-route` will update `route.path`. This in-turn will update the\n`app-location`, and cause the global location bar to change its value.\n\n\n\n## &lt;app-location&gt;\n\n`app-location` is an element that provides synchronization between the\nbrowser location bar and the state of an app. When created, `app-location`\nelements will automatically watch the global location for changes. As changes\noccur, `app-location` produces and updates an object called `route`. This\n`route` object is suitable for passing into a `app-route`, and other similar\nelements.\n\nAn example of the public API of a route object that describes the URL\n`https://elements.polymer-project.org/elements/app-location`:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-location'\n}\n```\n\nExample Usage:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route route=\"{{route}}\" pattern=\"/:page\" data=\"{{data}}\"></app-route>\n```\n\nAs you can see above, the `app-location` element produces a `route` and that\nproperty is then bound into the `app-route` element. The bindings are two-\ndirectional, so when changes to the `route` object occur within `app-route`,\nthey automatically reflect back to the global location.\n\n### Hashes vs Paths\n\nBy default `app-location` routes using the pathname portion of the URL. This has\nbroad browser support but it does require cooperation of the backend server. An\n`app-location` can be configured to use the hash part of a URL instead using\nthe `use-hash-as-path` attribute, like so:\n\n```html\n<app-location route=\"{{route}}\" use-hash-as-path></app-location>\n```\n\n### Integrating with other routing code\n\nThere is no standard event that is fired when window.location is modified.\n`app-location` fires a `location-changed` event on `window` when it updates the\nlocation. It also listens for that same event, and re-reads the URL when it's\nfired. This makes it very easy to interop with other routing code.\n\nSo for example if you want to navigate to `/new_path` imperatively you could\ncall `window.location.pushState` or `window.location.replaceState` followed by\nfiring a `location-changed` event on `window`. i.e.\n\n```javascript\nwindow.history.pushState({}, null, '/new_path');\nwindow.dispatchEvent(new CustomEvent('location-changed'));\n```\n\n\n\n## &lt;app-route-converter&gt;\n\n`app-route-converter` provides a means to convert a path and query\nparameters into a route object and vice versa. This produced route object\nis to be fed into route-consuming elements such as `app-route`.\n\n> n.b. This element is intended to be a primitive of the routing system and for\ncreating bespoke routing solutions from scratch. To simply include routing in\nan app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html)\nand [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html).\n\nAn example of a route object that describes\n`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux`\nand should be passed to other `app-route` elements:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-route-converter',\n  __queryParams: {\n    foo: 'bar',\n    baz: 'qux'\n  }\n}\n```\n\n`__queryParams` is private to discourage directly data-binding to it. This is so\nthat routing elements like `app-route` can intermediate changes to the query\nparams and choose whether to propagate them upstream or not. `app-route` for\nexample will not propagate changes to its `queryParams` property if it is not\ncurrently active. A public queryParams object will also be produced in which you\nshould perform data-binding operations.\n\nExample Usage:\n\n```html\n<iron-location path=\"{{path}}\" query=\"{{query}}\"></iron-location>\n<iron-query-params\n    params-string=\"{{query}}\"\n    params-object=\"{{queryParams}}\">\n</iron-query-params>\n<app-route-converter\n    path=\"{{path}}\"\n    query-params=\"{{queryParams}}\"\n    route=\"{{route}}\">\n</app-route-converter>\n<app-route route='{{route}}' pattern='/:page' data='{{data}}'>\n</app-route>\n```\n\nThis is a simplified implementation of the `app-location` element. Here the\n`iron-location` produces a path and a query, the `iron-query-params` consumes\nthe query and produces a queryParams object, and the `app-route-converter`\nconsumes the path and the query params and converts it into a route which is in\nturn is consumed by the `app-route`.\n\n\n\n## Polymer.AppRouteConverterBehavior\n\nProvides bidirectional mapping between `path` and `queryParams` and a\napp-route compatible `route` object.\n\nFor more information, see the docs for `app-route-converter`.\n\n\n","gitHead":"1918cbf3a5db9cbf45c78d9e61cdfc9c00634922","scripts":{"update-types":"bower install && gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"5.6.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2"},"_nodeVersion":"9.7.1","dependencies":{"@polymer/polymer":"^3.0.0-pre.10","@polymer/iron-location":"^3.0.0-pre.10"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"bower":"^1.8.0","wct-browser-legacy":"0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.10","@polymer/paper-card":"^3.0.0-pre.10","@polymer/paper-input":"^3.0.0-pre.10","@polymer/paper-styles":"^3.0.0-pre.10","@polymer/paper-spinner":"^3.0.0-pre.10","@polymer/iron-demo-helpers":"^3.0.0-pre.10","@polymer/iron-test-helpers":"^3.0.0-pre.10","@polymer/paper-icon-button":"^3.0.0-pre.10","@polymer/iron-component-page":"^3.0.0-pre.10","@polymer/paper-toggle-button":"^3.0.0-pre.10","@webcomponents/webcomponentsjs":"^1.0.0","@polymer/gen-typescript-declarations":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.11_1520558225964_0.6035966838610622","host":"s3://npm-registry-packages"}},"3.0.0-pre.12":{"name":"@polymer/app-route","version":"3.0.0-pre.12","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.12","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"7f85d766a21b16e0b1b91288c2687d3313b341dd","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.12.tgz","fileCount":33,"integrity":"sha512-b6ze/U0KGoWCWp1v9ndQYOJKUOQmKYmYoRwoGbTcL9iC/+lzTiKAYPvyQGCL03BE/wI0Yt9b58yTvBzunFbiJA==","signatures":[{"sig":"MEUCIQDULa9gnuIt9RuB7ysAZYj7d4pVPkZkhIzFOAcYqRJP/gIgT62ioG4D9Z0NUYm6y7V4AZS0uzN8wXzXYxHQx5RiEaQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":109683},"readme":"\n<!---\n\nThis README is automatically generated from the comments in these files:\napp-location.html  app-route-converter-behavior.html  app-route-converter.html  app-route.html\n\nEdit those files, and our readme bot will duplicate them over here!\nEdit this file, and the bot will squash your changes :)\n\nThe bot does some handling of markdown. Please file a bug if it does the wrong\nthing! https://github.com/PolymerLabs/tedium/issues\n\n-->\n\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n\n\n## &lt;app-route&gt;\n\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\n> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!*\n\nIn its typical usage, a `app-route` element consumes an object that describes\nsome state about the current route, via the `route` property. It then parses\nthat state using the `pattern` property, and produces two artifacts: some `data`\nrelated to the `route`, and a `tail` that contains the rest of the `route` that\ndid not match.\n\nHere is a basic example, when used with `app-location`:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{data}}\"\n    tail=\"{{tail}}\">\n</app-route>\n```\n\nIn the above example, the `app-location` produces a `route` value. Then, the\n`route.path` property is matched by comparing it to the `pattern` property. If\nthe `pattern` property matches `route.path`, the `app-route` will set or update\nits `data` property with an object whose properties correspond to the parameters\nin `pattern`. So, in the above example, if `route.path` was `'/about'`, the value\nof `data` would be `{\"page\": \"about\"}`.\n\nThe `tail` property represents the remaining part of the route state after the\n`pattern` has been applied to a matching `route`.\n\nHere is another example, where `tail` is used:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{routeData}}\"\n    tail=\"{{subroute}}\">\n</app-route>\n<app-route\n    route=\"{{subroute}}\"\n    pattern=\"/:id\"\n    data=\"{{subrouteData}}\">\n</app-route>\n```\n\nIn the above example, there are two `app-route` elements. The first\n`app-route` consumes a `route`. When the `route` is matched, the first\n`app-route` also produces `routeData` from its `data`, and `subroute` from\nits `tail`. The second `app-route` consumes the `subroute`, and when it\nmatches, it produces an object called `subrouteData` from its `data`.\n\nSo, when `route.path` is `'/about'`, the `routeData` object will look like\nthis: `{ page: 'about' }`\n\nAnd `subrouteData` will be null. However, if `route.path` changes to\n`'/article/123'`, the `routeData` object will look like this:\n`{ page: 'article' }`\n\nAnd the `subrouteData` will look like this: `{ id: '123' }`\n\n`app-route` is responsive to bi-directional changes to the `data` objects\nthey produce. So, if `routeData.page` changed from `'article'` to `'about'`,\nthe `app-route` will update `route.path`. This in-turn will update the\n`app-location`, and cause the global location bar to change its value.\n\n\n\n## &lt;app-location&gt;\n\n`app-location` is an element that provides synchronization between the\nbrowser location bar and the state of an app. When created, `app-location`\nelements will automatically watch the global location for changes. As changes\noccur, `app-location` produces and updates an object called `route`. This\n`route` object is suitable for passing into a `app-route`, and other similar\nelements.\n\nAn example of the public API of a route object that describes the URL\n`https://elements.polymer-project.org/elements/app-location`:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-location'\n}\n```\n\nExample Usage:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route route=\"{{route}}\" pattern=\"/:page\" data=\"{{data}}\"></app-route>\n```\n\nAs you can see above, the `app-location` element produces a `route` and that\nproperty is then bound into the `app-route` element. The bindings are two-\ndirectional, so when changes to the `route` object occur within `app-route`,\nthey automatically reflect back to the global location.\n\n### Hashes vs Paths\n\nBy default `app-location` routes using the pathname portion of the URL. This has\nbroad browser support but it does require cooperation of the backend server. An\n`app-location` can be configured to use the hash part of a URL instead using\nthe `use-hash-as-path` attribute, like so:\n\n```html\n<app-location route=\"{{route}}\" use-hash-as-path></app-location>\n```\n\n### Integrating with other routing code\n\nThere is no standard event that is fired when window.location is modified.\n`app-location` fires a `location-changed` event on `window` when it updates the\nlocation. It also listens for that same event, and re-reads the URL when it's\nfired. This makes it very easy to interop with other routing code.\n\nSo for example if you want to navigate to `/new_path` imperatively you could\ncall `window.location.pushState` or `window.location.replaceState` followed by\nfiring a `location-changed` event on `window`. i.e.\n\n```javascript\nwindow.history.pushState({}, null, '/new_path');\nwindow.dispatchEvent(new CustomEvent('location-changed'));\n```\n\n\n\n## &lt;app-route-converter&gt;\n\n`app-route-converter` provides a means to convert a path and query\nparameters into a route object and vice versa. This produced route object\nis to be fed into route-consuming elements such as `app-route`.\n\n> n.b. This element is intended to be a primitive of the routing system and for\ncreating bespoke routing solutions from scratch. To simply include routing in\nan app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html)\nand [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html).\n\nAn example of a route object that describes\n`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux`\nand should be passed to other `app-route` elements:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-route-converter',\n  __queryParams: {\n    foo: 'bar',\n    baz: 'qux'\n  }\n}\n```\n\n`__queryParams` is private to discourage directly data-binding to it. This is so\nthat routing elements like `app-route` can intermediate changes to the query\nparams and choose whether to propagate them upstream or not. `app-route` for\nexample will not propagate changes to its `queryParams` property if it is not\ncurrently active. A public queryParams object will also be produced in which you\nshould perform data-binding operations.\n\nExample Usage:\n\n```html\n<iron-location path=\"{{path}}\" query=\"{{query}}\"></iron-location>\n<iron-query-params\n    params-string=\"{{query}}\"\n    params-object=\"{{queryParams}}\">\n</iron-query-params>\n<app-route-converter\n    path=\"{{path}}\"\n    query-params=\"{{queryParams}}\"\n    route=\"{{route}}\">\n</app-route-converter>\n<app-route route='{{route}}' pattern='/:page' data='{{data}}'>\n</app-route>\n```\n\nThis is a simplified implementation of the `app-location` element. Here the\n`iron-location` produces a path and a query, the `iron-query-params` consumes\nthe query and produces a queryParams object, and the `app-route-converter`\nconsumes the path and the query params and converts it into a route which is in\nturn is consumed by the `app-route`.\n\n\n\n## Polymer.AppRouteConverterBehavior\n\nProvides bidirectional mapping between `path` and `queryParams` and a\napp-route compatible `route` object.\n\nFor more information, see the docs for `app-route-converter`.\n\n\n","gitHead":"997ba1305fe213f7365aacbe47cd0ded75e6e4e7","scripts":{"update-types":"bower install && gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"5.5.1","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2"},"_nodeVersion":"9.2.0","dependencies":{"@polymer/polymer":"3.0.0-pre.12","@polymer/iron-location":"3.0.0-pre.12"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"bower":"^1.8.0","wct-browser-legacy":"0.0.1-pre.11","@polymer/iron-pages":"3.0.0-pre.12","@polymer/paper-card":"3.0.0-pre.12","@polymer/paper-input":"3.0.0-pre.12","@polymer/paper-styles":"3.0.0-pre.12","@polymer/paper-spinner":"3.0.0-pre.12","@polymer/iron-demo-helpers":"3.0.0-pre.12","@polymer/iron-test-helpers":"3.0.0-pre.12","@polymer/paper-icon-button":"3.0.0-pre.12","@polymer/iron-component-page":"3.0.0-pre.12","@polymer/paper-toggle-button":"3.0.0-pre.12","@webcomponents/webcomponentsjs":"^1.0.0","@polymer/gen-typescript-declarations":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.12_1521737791324_0.337992723799154","host":"s3://npm-registry-packages"}},"3.0.0-pre.13":{"name":"@polymer/app-route","version":"3.0.0-pre.13","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.13","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"0e524905a8ce5604659712d18c86e21e41b21ab1","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.13.tgz","fileCount":35,"integrity":"sha512-dx7exYQux9fjQfSU6Dhdvpic8dW/AcJrlLYxDYOsR3LjqOZ+9aMMCjkZvWmLszj61nNzqvj0QOyi+f8xxc2G8A==","signatures":[{"sig":"MEQCIH6qvZWoxui+EAgfMSablMuCrUgoAmSGKiMOpw8hV0ppAiB9MQqE1dUFie5Rfx8r2twgLGB5VEj8See43wqh5q8/Ng==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6PCMCRA9TVsSAnZWagAAHNsP/3JIsGiUPJxqXGfD+ZvQ\nH1ERYe064+Rg5MeObug8Io8rDcF/7irS7RU+IYLkuRtksXzLvY3XaCkOGuvr\nHIxac1QLXIRCUUO/rc93bFhEz2RWZSsFxoZE35U4fG0Wzw6TCevoGzFZ4vPm\nBsStTBy5PSXzaQTTAqayLyICCIFAckJPcxSPwGEhKRvytfdjJXhoWiaEfDKb\n2aMwcNH9j7YzFzIFmwC1TqvLiMFKuJ93qr8T9/3I3mRAyHIC1HEyBgtnTgIL\nFNIMS3KSFK5mkgJWFYbhTnxQQGVBpj0NwzZvZH7xtQ9TEfFEn9J59/M/atUS\nkeSJj2NGyy4sJ4HJozY0k2GqqomHqb9Mb/FhKT25hWQsBKqqo4vF/3IgZqMV\nZ63kfWaL3kqW7InRI8qRY9XiCgkVY4ElUUkH/PlTeAwXJk02S8R2jJryJDey\noimvQDIaNhxUxehJ5v00RGKXopyljKI3kUHpTxCzRPN+vfJsd5c0O7hiEJ2h\nuSvazoN3JQM4n9OMltDgSo5CRdSRrEIY0+Hct4hYKK9vWa8rvoTn8TNny8JR\nV07f9KbaTc1VXXaqMUAHiLb/xawaZg/AcZVmrlfTzLERbqSmZjDKlLJN2yvR\niKvGFQSs1b9RTSdK4D1tTlE7FdL6TcDeCjkOzGxcNCRwjxzXXAauH31ZkOF2\nuSjM\r\n=RVEj\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"\n<!---\n\nThis README is automatically generated from the comments in these files:\napp-location.html  app-route-converter-behavior.html  app-route-converter.html  app-route.html\n\nEdit those files, and our readme bot will duplicate them over here!\nEdit this file, and the bot will squash your changes :)\n\nThe bot does some handling of markdown. Please file a bug if it does the wrong\nthing! https://github.com/PolymerLabs/tedium/issues\n\n-->\n\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n\n\n## &lt;app-route&gt;\n\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\n> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!*\n\nIn its typical usage, a `app-route` element consumes an object that describes\nsome state about the current route, via the `route` property. It then parses\nthat state using the `pattern` property, and produces two artifacts: some `data`\nrelated to the `route`, and a `tail` that contains the rest of the `route` that\ndid not match.\n\nHere is a basic example, when used with `app-location`:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{data}}\"\n    tail=\"{{tail}}\">\n</app-route>\n```\n\nIn the above example, the `app-location` produces a `route` value. Then, the\n`route.path` property is matched by comparing it to the `pattern` property. If\nthe `pattern` property matches `route.path`, the `app-route` will set or update\nits `data` property with an object whose properties correspond to the parameters\nin `pattern`. So, in the above example, if `route.path` was `'/about'`, the value\nof `data` would be `{\"page\": \"about\"}`.\n\nThe `tail` property represents the remaining part of the route state after the\n`pattern` has been applied to a matching `route`.\n\nHere is another example, where `tail` is used:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{routeData}}\"\n    tail=\"{{subroute}}\">\n</app-route>\n<app-route\n    route=\"{{subroute}}\"\n    pattern=\"/:id\"\n    data=\"{{subrouteData}}\">\n</app-route>\n```\n\nIn the above example, there are two `app-route` elements. The first\n`app-route` consumes a `route`. When the `route` is matched, the first\n`app-route` also produces `routeData` from its `data`, and `subroute` from\nits `tail`. The second `app-route` consumes the `subroute`, and when it\nmatches, it produces an object called `subrouteData` from its `data`.\n\nSo, when `route.path` is `'/about'`, the `routeData` object will look like\nthis: `{ page: 'about' }`\n\nAnd `subrouteData` will be null. However, if `route.path` changes to\n`'/article/123'`, the `routeData` object will look like this:\n`{ page: 'article' }`\n\nAnd the `subrouteData` will look like this: `{ id: '123' }`\n\n`app-route` is responsive to bi-directional changes to the `data` objects\nthey produce. So, if `routeData.page` changed from `'article'` to `'about'`,\nthe `app-route` will update `route.path`. This in-turn will update the\n`app-location`, and cause the global location bar to change its value.\n\n\n\n## &lt;app-location&gt;\n\n`app-location` is an element that provides synchronization between the\nbrowser location bar and the state of an app. When created, `app-location`\nelements will automatically watch the global location for changes. As changes\noccur, `app-location` produces and updates an object called `route`. This\n`route` object is suitable for passing into a `app-route`, and other similar\nelements.\n\nAn example of the public API of a route object that describes the URL\n`https://elements.polymer-project.org/elements/app-location`:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-location'\n}\n```\n\nExample Usage:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route route=\"{{route}}\" pattern=\"/:page\" data=\"{{data}}\"></app-route>\n```\n\nAs you can see above, the `app-location` element produces a `route` and that\nproperty is then bound into the `app-route` element. The bindings are two-\ndirectional, so when changes to the `route` object occur within `app-route`,\nthey automatically reflect back to the global location.\n\n### Hashes vs Paths\n\nBy default `app-location` routes using the pathname portion of the URL. This has\nbroad browser support but it does require cooperation of the backend server. An\n`app-location` can be configured to use the hash part of a URL instead using\nthe `use-hash-as-path` attribute, like so:\n\n```html\n<app-location route=\"{{route}}\" use-hash-as-path></app-location>\n```\n\n### Integrating with other routing code\n\nThere is no standard event that is fired when window.location is modified.\n`app-location` fires a `location-changed` event on `window` when it updates the\nlocation. It also listens for that same event, and re-reads the URL when it's\nfired. This makes it very easy to interop with other routing code.\n\nSo for example if you want to navigate to `/new_path` imperatively you could\ncall `window.location.pushState` or `window.location.replaceState` followed by\nfiring a `location-changed` event on `window`. i.e.\n\n```javascript\nwindow.history.pushState({}, null, '/new_path');\nwindow.dispatchEvent(new CustomEvent('location-changed'));\n```\n\n\n\n## &lt;app-route-converter&gt;\n\n`app-route-converter` provides a means to convert a path and query\nparameters into a route object and vice versa. This produced route object\nis to be fed into route-consuming elements such as `app-route`.\n\n> n.b. This element is intended to be a primitive of the routing system and for\ncreating bespoke routing solutions from scratch. To simply include routing in\nan app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html)\nand [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html).\n\nAn example of a route object that describes\n`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux`\nand should be passed to other `app-route` elements:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-route-converter',\n  __queryParams: {\n    foo: 'bar',\n    baz: 'qux'\n  }\n}\n```\n\n`__queryParams` is private to discourage directly data-binding to it. This is so\nthat routing elements like `app-route` can intermediate changes to the query\nparams and choose whether to propagate them upstream or not. `app-route` for\nexample will not propagate changes to its `queryParams` property if it is not\ncurrently active. A public queryParams object will also be produced in which you\nshould perform data-binding operations.\n\nExample Usage:\n\n```html\n<iron-location path=\"{{path}}\" query=\"{{query}}\"></iron-location>\n<iron-query-params\n    params-string=\"{{query}}\"\n    params-object=\"{{queryParams}}\">\n</iron-query-params>\n<app-route-converter\n    path=\"{{path}}\"\n    query-params=\"{{queryParams}}\"\n    route=\"{{route}}\">\n</app-route-converter>\n<app-route route='{{route}}' pattern='/:page' data='{{data}}'>\n</app-route>\n```\n\nThis is a simplified implementation of the `app-location` element. Here the\n`iron-location` produces a path and a query, the `iron-query-params` consumes\nthe query and produces a queryParams object, and the `app-route-converter`\nconsumes the path and the query params and converts it into a route which is in\nturn is consumed by the `app-route`.\n\n\n\n## Polymer.AppRouteConverterBehavior\n\nProvides bidirectional mapping between `path` and `queryParams` and a\napp-route compatible `route` object.\n\nFor more information, see the docs for `app-route-converter`.\n\n\n","gitHead":"50ccac494aa9aae6b04f0f3a714c3fc206016766","scripts":{"format":"webmat && npm run update-types","update-types":"bower install && gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"6.0.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2"},"_nodeVersion":"9.8.0","dependencies":{"@polymer/polymer":"^3.0.0-pre.13","@polymer/iron-location":"^3.0.0-pre.13"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"bower":"^1.8.0","webmat":"^0.2.0","wct-browser-legacy":"^0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.13","@polymer/paper-card":"^3.0.0-pre.13","@polymer/paper-input":"^3.0.0-pre.13","@polymer/paper-styles":"^3.0.0-pre.13","@polymer/paper-spinner":"^3.0.0-pre.13","@polymer/iron-demo-helpers":"^3.0.0-pre.13","@polymer/iron-test-helpers":"^3.0.0-pre.13","@polymer/paper-icon-button":"^3.0.0-pre.13","@polymer/iron-component-page":"^3.0.0-pre.13","@polymer/paper-toggle-button":"^3.0.0-pre.13","@webcomponents/webcomponentsjs":"^2.0.0-0","@polymer/gen-typescript-declarations":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.13_1525215364989_0.7221709956422369","host":"s3://npm-registry-packages"}},"3.0.0-pre.14":{"name":"@polymer/app-route","version":"3.0.0-pre.14","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.14","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"f2bde17272eb491f5c8b0533eba8b2ddebc23c78","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.14.tgz","fileCount":35,"integrity":"sha512-uA5k187QoEP7x607HZQ1nAt5YUA0Cq+YKaZn3AyI+fUR89NMULQ9PjvUre481LkCnzBQoHxomi5isDlBmWUqBQ==","signatures":[{"sig":"MEUCIQDlTfhUj09FRulq0i+Up/Dv04dT+zY0RHQqJjho8BGZEwIgJY5zOBc4Z+7X5CHS849TtEWlIz574k0itFeNUk2e1lQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6QgmCRA9TVsSAnZWagAA368P/A9zu6ghc0fU2kzIGVLi\nTlL4s/f11yCGR3d0yWP9tpMaN2tl9UMuxsZX90r4f+bw8TkQqjsA/mqVkkS7\nfGyoYBy6j7YE8ml/1ZY0/oyP4pSGYy63+KXMzCHy8hCerPGGxUqSGEduivvM\nH4aRy66RV5Sz+zvnHOSCzoQ8zruUXLboVcU9WnAxhEnurRf9usqUhwbLyWsq\n4d69xBlGMcU7fkznFeFKY2bUACDKZY5qaPbRgNEUgpVH1nqTZxMbzK4m/38G\nGpKcvOZYOHmSMbOhL1XzWykwQxgnyFXQAUVzZPDUkdai2vRusx202VnGel8z\noqKpdDWRN/h8P7FCHn8JHGJXplMPiY8qO+96vqL3Q3cC4g+9K69CKrTO1Y31\nNxwlzE0nBL9iCej1/WH8MAZURTCbFidNb1oM352LP31mjG1JBGzpZhCOFiEj\nsyEZpx8BFtUPfqLfQhGmfEnVm/Pig2jLsARdcy+FBZQqMcU+7vUOKHfzIVI7\nwbCtBCg0ZTKZFzTjJwzcpp5evDP9WqRLa82PircBvJDbygTcIO0Dr4a189vb\njalFKxOahXEAbb9ppgpWdqSvMYMljylEmTvw2t5EDX2q+XNMKp2oOWYEDolc\nu/DDSAJW9gf1h35liQic/r+KPD8HzlhWl922ENNvHqAZiX8WOQh13mVQPhcY\niFuQ\r\n=SmCa\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"\n<!---\n\nThis README is automatically generated from the comments in these files:\napp-location.html  app-route-converter-behavior.html  app-route-converter.html  app-route.html\n\nEdit those files, and our readme bot will duplicate them over here!\nEdit this file, and the bot will squash your changes :)\n\nThe bot does some handling of markdown. Please file a bug if it does the wrong\nthing! https://github.com/PolymerLabs/tedium/issues\n\n-->\n\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n\n\n## &lt;app-route&gt;\n\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\n> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!*\n\nIn its typical usage, a `app-route` element consumes an object that describes\nsome state about the current route, via the `route` property. It then parses\nthat state using the `pattern` property, and produces two artifacts: some `data`\nrelated to the `route`, and a `tail` that contains the rest of the `route` that\ndid not match.\n\nHere is a basic example, when used with `app-location`:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{data}}\"\n    tail=\"{{tail}}\">\n</app-route>\n```\n\nIn the above example, the `app-location` produces a `route` value. Then, the\n`route.path` property is matched by comparing it to the `pattern` property. If\nthe `pattern` property matches `route.path`, the `app-route` will set or update\nits `data` property with an object whose properties correspond to the parameters\nin `pattern`. So, in the above example, if `route.path` was `'/about'`, the value\nof `data` would be `{\"page\": \"about\"}`.\n\nThe `tail` property represents the remaining part of the route state after the\n`pattern` has been applied to a matching `route`.\n\nHere is another example, where `tail` is used:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{routeData}}\"\n    tail=\"{{subroute}}\">\n</app-route>\n<app-route\n    route=\"{{subroute}}\"\n    pattern=\"/:id\"\n    data=\"{{subrouteData}}\">\n</app-route>\n```\n\nIn the above example, there are two `app-route` elements. The first\n`app-route` consumes a `route`. When the `route` is matched, the first\n`app-route` also produces `routeData` from its `data`, and `subroute` from\nits `tail`. The second `app-route` consumes the `subroute`, and when it\nmatches, it produces an object called `subrouteData` from its `data`.\n\nSo, when `route.path` is `'/about'`, the `routeData` object will look like\nthis: `{ page: 'about' }`\n\nAnd `subrouteData` will be null. However, if `route.path` changes to\n`'/article/123'`, the `routeData` object will look like this:\n`{ page: 'article' }`\n\nAnd the `subrouteData` will look like this: `{ id: '123' }`\n\n`app-route` is responsive to bi-directional changes to the `data` objects\nthey produce. So, if `routeData.page` changed from `'article'` to `'about'`,\nthe `app-route` will update `route.path`. This in-turn will update the\n`app-location`, and cause the global location bar to change its value.\n\n\n\n## &lt;app-location&gt;\n\n`app-location` is an element that provides synchronization between the\nbrowser location bar and the state of an app. When created, `app-location`\nelements will automatically watch the global location for changes. As changes\noccur, `app-location` produces and updates an object called `route`. This\n`route` object is suitable for passing into a `app-route`, and other similar\nelements.\n\nAn example of the public API of a route object that describes the URL\n`https://elements.polymer-project.org/elements/app-location`:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-location'\n}\n```\n\nExample Usage:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route route=\"{{route}}\" pattern=\"/:page\" data=\"{{data}}\"></app-route>\n```\n\nAs you can see above, the `app-location` element produces a `route` and that\nproperty is then bound into the `app-route` element. The bindings are two-\ndirectional, so when changes to the `route` object occur within `app-route`,\nthey automatically reflect back to the global location.\n\n### Hashes vs Paths\n\nBy default `app-location` routes using the pathname portion of the URL. This has\nbroad browser support but it does require cooperation of the backend server. An\n`app-location` can be configured to use the hash part of a URL instead using\nthe `use-hash-as-path` attribute, like so:\n\n```html\n<app-location route=\"{{route}}\" use-hash-as-path></app-location>\n```\n\n### Integrating with other routing code\n\nThere is no standard event that is fired when window.location is modified.\n`app-location` fires a `location-changed` event on `window` when it updates the\nlocation. It also listens for that same event, and re-reads the URL when it's\nfired. This makes it very easy to interop with other routing code.\n\nSo for example if you want to navigate to `/new_path` imperatively you could\ncall `window.location.pushState` or `window.location.replaceState` followed by\nfiring a `location-changed` event on `window`. i.e.\n\n```javascript\nwindow.history.pushState({}, null, '/new_path');\nwindow.dispatchEvent(new CustomEvent('location-changed'));\n```\n\n\n\n## &lt;app-route-converter&gt;\n\n`app-route-converter` provides a means to convert a path and query\nparameters into a route object and vice versa. This produced route object\nis to be fed into route-consuming elements such as `app-route`.\n\n> n.b. This element is intended to be a primitive of the routing system and for\ncreating bespoke routing solutions from scratch. To simply include routing in\nan app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html)\nand [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html).\n\nAn example of a route object that describes\n`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux`\nand should be passed to other `app-route` elements:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-route-converter',\n  __queryParams: {\n    foo: 'bar',\n    baz: 'qux'\n  }\n}\n```\n\n`__queryParams` is private to discourage directly data-binding to it. This is so\nthat routing elements like `app-route` can intermediate changes to the query\nparams and choose whether to propagate them upstream or not. `app-route` for\nexample will not propagate changes to its `queryParams` property if it is not\ncurrently active. A public queryParams object will also be produced in which you\nshould perform data-binding operations.\n\nExample Usage:\n\n```html\n<iron-location path=\"{{path}}\" query=\"{{query}}\"></iron-location>\n<iron-query-params\n    params-string=\"{{query}}\"\n    params-object=\"{{queryParams}}\">\n</iron-query-params>\n<app-route-converter\n    path=\"{{path}}\"\n    query-params=\"{{queryParams}}\"\n    route=\"{{route}}\">\n</app-route-converter>\n<app-route route='{{route}}' pattern='/:page' data='{{data}}'>\n</app-route>\n```\n\nThis is a simplified implementation of the `app-location` element. Here the\n`iron-location` produces a path and a query, the `iron-query-params` consumes\nthe query and produces a queryParams object, and the `app-route-converter`\nconsumes the path and the query params and converts it into a route which is in\nturn is consumed by the `app-route`.\n\n\n\n## Polymer.AppRouteConverterBehavior\n\nProvides bidirectional mapping between `path` and `queryParams` and a\napp-route compatible `route` object.\n\nFor more information, see the docs for `app-route-converter`.\n\n\n","gitHead":"670beba34acf2ac107ade66527c4295743dc773b","scripts":{"format":"webmat && npm run update-types","update-types":"bower install && gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"6.0.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2"},"_nodeVersion":"9.8.0","dependencies":{"@polymer/polymer":"^3.0.0-pre.13","@polymer/iron-location":"^3.0.0-pre.14"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"bower":"^1.8.0","webmat":"^0.2.0","wct-browser-legacy":"^0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.14","@polymer/paper-card":"^3.0.0-pre.14","@polymer/paper-input":"^3.0.0-pre.14","@polymer/paper-styles":"^3.0.0-pre.14","@polymer/paper-spinner":"^3.0.0-pre.14","@polymer/iron-demo-helpers":"^3.0.0-pre.14","@polymer/iron-test-helpers":"^3.0.0-pre.14","@polymer/paper-icon-button":"^3.0.0-pre.14","@polymer/iron-component-page":"^3.0.0-pre.14","@polymer/paper-toggle-button":"^3.0.0-pre.14","@webcomponents/webcomponentsjs":"^2.0.0-0","@polymer/gen-typescript-declarations":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.14_1525221414477_0.0819193428731233","host":"s3://npm-registry-packages"}},"3.0.0-pre.15":{"name":"@polymer/app-route","version":"3.0.0-pre.15","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.15","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"795e38a687c8d920cd83df691083701a087510e9","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.15.tgz","fileCount":36,"integrity":"sha512-6B03Ke0p6YE+vDWYWKzBKrWnm2XJ4bjP6gfm9OTgq6Z0dZ1lPy3ROplsnqXINgKr0LbTThGWj6xXpLREzQtO9A==","signatures":[{"sig":"MEUCIFBju7ZTzmoNMMnfrc/yTRw2oKf2xlZNI6Qkt6M1THw9AiEAsL+5db12462XgPA7RSPhyRoauzrI8bwtFMu2qCzOhbY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":126892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6iVlCRA9TVsSAnZWagAAF38P/jGOGPsY1+zkPkBzRb88\neTkaGdgPN8we2D+eyFx3MzdWP3+VNEyDYvScelcSXOydkY112gTIYYfiXOWK\nYEssEjHE05GeazjlrkqQh9V2h2atDe6onx1Ol5iGuu+yHNesHfu+xArv7cwe\nJ5PXBUkeBe6uBEKLNAs7M0yr65T2HAslYXJ9BBZW1PHHR/hQcYLknVetkhet\nqsqf/dWyJDTA6whKMHUW3XXEjt+9XQQNajol47RQDBEn/Z5bm2q37fnRhRJ5\nPEWm0W/Jj0VOWhYZ4s9k0qQHD9e/SNcc4kXHKnM1rSuxywo948jpivsZLsOT\nmZpmnrRfxSEwINB9eGBpPHZd6lv1+K1uKMk6yZa9NrljfattVwWS254SmVym\nZ5zHJohx2P3JEhWiZWuh/znPns7Iu6BORiQ0lHyOKCo7w9SFZAuoDHVSNfb3\nsJSZo3BZQn71N4n5nkS1OGFf5OoAhSZJxn0l8PkrOT2f5YdGqSGp4OIbPf6H\nbMq44sjVe++xEvZtA28n5p2/nDa6DUBLXnMK7NshIsgTnKj9CHfdIAhvL/aL\n3j/mDhHGAeIomXd5NQLFEw5O2IyoKhi9pMcCBVONuzjNjlQT/YBz+CfpjfHV\nlW26m6dZ4NpmWpv3MIlu/JvAIJSH1/b/+O1Ke6l0CdOUTdL7yHXJ2+xjFpeg\ncsk6\r\n=VjWE\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"\n<!---\n\nThis README is automatically generated from the comments in these files:\napp-location.html  app-route-converter-behavior.html  app-route-converter.html  app-route.html\n\nEdit those files, and our readme bot will duplicate them over here!\nEdit this file, and the bot will squash your changes :)\n\nThe bot does some handling of markdown. Please file a bug if it does the wrong\nthing! https://github.com/PolymerLabs/tedium/issues\n\n-->\n\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n\n\n## &lt;app-route&gt;\n\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\n> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!*\n\nIn its typical usage, a `app-route` element consumes an object that describes\nsome state about the current route, via the `route` property. It then parses\nthat state using the `pattern` property, and produces two artifacts: some `data`\nrelated to the `route`, and a `tail` that contains the rest of the `route` that\ndid not match.\n\nHere is a basic example, when used with `app-location`:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{data}}\"\n    tail=\"{{tail}}\">\n</app-route>\n```\n\nIn the above example, the `app-location` produces a `route` value. Then, the\n`route.path` property is matched by comparing it to the `pattern` property. If\nthe `pattern` property matches `route.path`, the `app-route` will set or update\nits `data` property with an object whose properties correspond to the parameters\nin `pattern`. So, in the above example, if `route.path` was `'/about'`, the value\nof `data` would be `{\"page\": \"about\"}`.\n\nThe `tail` property represents the remaining part of the route state after the\n`pattern` has been applied to a matching `route`.\n\nHere is another example, where `tail` is used:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{routeData}}\"\n    tail=\"{{subroute}}\">\n</app-route>\n<app-route\n    route=\"{{subroute}}\"\n    pattern=\"/:id\"\n    data=\"{{subrouteData}}\">\n</app-route>\n```\n\nIn the above example, there are two `app-route` elements. The first\n`app-route` consumes a `route`. When the `route` is matched, the first\n`app-route` also produces `routeData` from its `data`, and `subroute` from\nits `tail`. The second `app-route` consumes the `subroute`, and when it\nmatches, it produces an object called `subrouteData` from its `data`.\n\nSo, when `route.path` is `'/about'`, the `routeData` object will look like\nthis: `{ page: 'about' }`\n\nAnd `subrouteData` will be null. However, if `route.path` changes to\n`'/article/123'`, the `routeData` object will look like this:\n`{ page: 'article' }`\n\nAnd the `subrouteData` will look like this: `{ id: '123' }`\n\n`app-route` is responsive to bi-directional changes to the `data` objects\nthey produce. So, if `routeData.page` changed from `'article'` to `'about'`,\nthe `app-route` will update `route.path`. This in-turn will update the\n`app-location`, and cause the global location bar to change its value.\n\n\n\n## &lt;app-location&gt;\n\n`app-location` is an element that provides synchronization between the\nbrowser location bar and the state of an app. When created, `app-location`\nelements will automatically watch the global location for changes. As changes\noccur, `app-location` produces and updates an object called `route`. This\n`route` object is suitable for passing into a `app-route`, and other similar\nelements.\n\nAn example of the public API of a route object that describes the URL\n`https://elements.polymer-project.org/elements/app-location`:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-location'\n}\n```\n\nExample Usage:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route route=\"{{route}}\" pattern=\"/:page\" data=\"{{data}}\"></app-route>\n```\n\nAs you can see above, the `app-location` element produces a `route` and that\nproperty is then bound into the `app-route` element. The bindings are two-\ndirectional, so when changes to the `route` object occur within `app-route`,\nthey automatically reflect back to the global location.\n\n### Hashes vs Paths\n\nBy default `app-location` routes uses the pathname portion of the URL. This has\nbroad browser support but it does require cooperation of the backend server. An\n`app-location` can be configured to use the hash part of a URL instead using\nthe `use-hash-as-path` attribute, like so:\n\n```html\n<app-location route=\"{{route}}\" use-hash-as-path></app-location>\n```\n\n### Integrating with other routing code\n\nThere is no standard event that is fired when window.location is modified.\n`app-location` fires a `location-changed` event on `window` when it updates the\nlocation. It also listens for that same event, and re-reads the URL when it's\nfired. This makes it very easy to interop with other routing code.\n\nSo for example if you want to navigate to `/new_path` imperatively you could\ncall `window.location.pushState` or `window.location.replaceState` followed by\nfiring a `location-changed` event on `window`. i.e.\n\n```javascript\nwindow.history.pushState({}, null, '/new_path');\nwindow.dispatchEvent(new CustomEvent('location-changed'));\n```\n\n\n\n## &lt;app-route-converter&gt;\n\n`app-route-converter` provides a means to convert a path and query\nparameters into a route object and vice versa. This produced route object\nis to be fed into route-consuming elements such as `app-route`.\n\n> n.b. This element is intended to be a primitive of the routing system and for\ncreating bespoke routing solutions from scratch. To simply include routing in\nan app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html)\nand [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html).\n\nAn example of a route object that describes\n`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux`\nand should be passed to other `app-route` elements:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-route-converter',\n  __queryParams: {\n    foo: 'bar',\n    baz: 'qux'\n  }\n}\n```\n\n`__queryParams` is private to discourage directly data-binding to it. This is so\nthat routing elements like `app-route` can intermediate changes to the query\nparams and choose whether to propagate them upstream or not. `app-route` for\nexample will not propagate changes to its `queryParams` property if it is not\ncurrently active. A public queryParams object will also be produced in which you\nshould perform data-binding operations.\n\nExample Usage:\n\n```html\n<iron-location path=\"{{path}}\" query=\"{{query}}\"></iron-location>\n<iron-query-params\n    params-string=\"{{query}}\"\n    params-object=\"{{queryParams}}\">\n</iron-query-params>\n<app-route-converter\n    path=\"{{path}}\"\n    query-params=\"{{queryParams}}\"\n    route=\"{{route}}\">\n</app-route-converter>\n<app-route route='{{route}}' pattern='/:page' data='{{data}}'>\n</app-route>\n```\n\nThis is a simplified implementation of the `app-location` element. Here the\n`iron-location` produces a path and a query, the `iron-query-params` consumes\nthe query and produces a queryParams object, and the `app-route-converter`\nconsumes the path and the query params and converts it into a route which is in\nturn is consumed by the `app-route`.\n\n\n\n## Polymer.AppRouteConverterBehavior\n\nProvides bidirectional mapping between `path` and `queryParams` and a\napp-route compatible `route` object.\n\nFor more information, see the docs for `app-route-converter`.\n\n\n","gitHead":"0fc92fcb8772428172f23eb380e51890ee4d5384","scripts":{"format":"webmat && npm run update-types","update-types":"bower install && gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"6.0.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2","@webcomponents/webcomponentsjs":"2.0.0-beta.2"},"_nodeVersion":"9.8.0","dependencies":{"@polymer/polymer":"^3.0.0-pre.13","@polymer/iron-location":"^3.0.0-pre.15"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"bower":"^1.8.0","webmat":"^0.2.0","wct-browser-legacy":"^0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.15","@polymer/paper-card":"^3.0.0-pre.15","@polymer/paper-input":"^3.0.0-pre.15","@polymer/paper-styles":"^3.0.0-pre.15","@polymer/paper-spinner":"^3.0.0-pre.15","@polymer/iron-demo-helpers":"^3.0.0-pre.15","@polymer/iron-test-helpers":"^3.0.0-pre.15","@polymer/paper-icon-button":"^3.0.0-pre.15","@polymer/iron-component-page":"^3.0.0-pre.15","@polymer/paper-toggle-button":"^3.0.0-pre.15","@webcomponents/webcomponentsjs":"^2.0.0-beta.2","@polymer/gen-typescript-declarations":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.15_1525294431883_0.887350997595163","host":"s3://npm-registry-packages"}},"3.0.0-pre.16":{"name":"@polymer/app-route","version":"3.0.0-pre.16","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.16","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"dfa48d6e624e9c424191f7885c4505e8744e967b","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.16.tgz","fileCount":36,"integrity":"sha512-72CHWQ8vuz0o3v50+6NTybv/LCYrlJgmZGiwqbXpubqJWIlM1Eqt1/GnrHu2qBFNlxMDZrnJ1969tdfOY6Cyfw==","signatures":[{"sig":"MEUCIQC9Da1cnvpyCo1XAGX9jnZeVdiCPO+fMEPjWcBfebDGPQIgAb8m+nkMlD8nTyo7wiCAahY96/KX9iyJTDQMg1BBgb8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":126892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa7L/RCRA9TVsSAnZWagAAqVUP/3Us0DA7/CAQFJbWrp4M\n6LBDVtEnhIMEUY619wlHuelso6AQVjXYaIhCgcaVmpZu7LQpAdaAC9Fr+nj2\nDdy7VS9vRn9Cx+RdwmS5VXT4aeTMo7IWIBZqgJQ8qkPniPcojyyeeotMvxFQ\nsYuGLaL6TmTzq+t8BzyFJaUSD95TJbeMLdOyNz3/bmSiS6WN4vxgN7xJhkks\n9aaY7BgW/gmYwYj2uU/8dPIit3xQvtlqI77DDltBNvyDDTp9RsI6Eaow3iX6\nbdbEHVf8W5vxHBQnSUqIaJm2J7LwLOaQ49lEJtJMRdI7yoIux9/tkBuAiR8t\nzhCTPfcOYNHsylTSlivDxtD3lN7gymqVK7UnlwzFdcevtQuWJSXtggn77QPm\n2LjMD9r1kKfxfaoXTrB/DQl3eFt4hHBRBRyhH3aRJOCqcvuqH7xYPDgObUTY\nTD+L1zAPzWVtfGx8YEzIsA5n4Js31m0fYobiS2PvF/T4+Pvos9HYn0Lm46JP\nTqxUb0iFZfBz+Xp4GGrfmqmo8XjMaRytDonhHI46j42370a5I837XI3jMDpc\ngTmuPoGvAzUXuCg8iVXLKlsw2EwT5XDyVur1Kdhw1LNrzLppuiJLYll5jVbe\nLpHvXjs32pU2I4paXwcmAag2R/EABGhGiRxqWuVxYy4GMpaIKGL/r6T4jbz4\nvKmw\r\n=Mpff\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"\n<!---\n\nThis README is automatically generated from the comments in these files:\napp-location.html  app-route-converter-behavior.html  app-route-converter.html  app-route.html\n\nEdit those files, and our readme bot will duplicate them over here!\nEdit this file, and the bot will squash your changes :)\n\nThe bot does some handling of markdown. Please file a bug if it does the wrong\nthing! https://github.com/PolymerLabs/tedium/issues\n\n-->\n\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n\n\n## &lt;app-route&gt;\n\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\n> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!*\n\nIn its typical usage, a `app-route` element consumes an object that describes\nsome state about the current route, via the `route` property. It then parses\nthat state using the `pattern` property, and produces two artifacts: some `data`\nrelated to the `route`, and a `tail` that contains the rest of the `route` that\ndid not match.\n\nHere is a basic example, when used with `app-location`:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{data}}\"\n    tail=\"{{tail}}\">\n</app-route>\n```\n\nIn the above example, the `app-location` produces a `route` value. Then, the\n`route.path` property is matched by comparing it to the `pattern` property. If\nthe `pattern` property matches `route.path`, the `app-route` will set or update\nits `data` property with an object whose properties correspond to the parameters\nin `pattern`. So, in the above example, if `route.path` was `'/about'`, the value\nof `data` would be `{\"page\": \"about\"}`.\n\nThe `tail` property represents the remaining part of the route state after the\n`pattern` has been applied to a matching `route`.\n\nHere is another example, where `tail` is used:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{routeData}}\"\n    tail=\"{{subroute}}\">\n</app-route>\n<app-route\n    route=\"{{subroute}}\"\n    pattern=\"/:id\"\n    data=\"{{subrouteData}}\">\n</app-route>\n```\n\nIn the above example, there are two `app-route` elements. The first\n`app-route` consumes a `route`. When the `route` is matched, the first\n`app-route` also produces `routeData` from its `data`, and `subroute` from\nits `tail`. The second `app-route` consumes the `subroute`, and when it\nmatches, it produces an object called `subrouteData` from its `data`.\n\nSo, when `route.path` is `'/about'`, the `routeData` object will look like\nthis: `{ page: 'about' }`\n\nAnd `subrouteData` will be null. However, if `route.path` changes to\n`'/article/123'`, the `routeData` object will look like this:\n`{ page: 'article' }`\n\nAnd the `subrouteData` will look like this: `{ id: '123' }`\n\n`app-route` is responsive to bi-directional changes to the `data` objects\nthey produce. So, if `routeData.page` changed from `'article'` to `'about'`,\nthe `app-route` will update `route.path`. This in-turn will update the\n`app-location`, and cause the global location bar to change its value.\n\n\n\n## &lt;app-location&gt;\n\n`app-location` is an element that provides synchronization between the\nbrowser location bar and the state of an app. When created, `app-location`\nelements will automatically watch the global location for changes. As changes\noccur, `app-location` produces and updates an object called `route`. This\n`route` object is suitable for passing into a `app-route`, and other similar\nelements.\n\nAn example of the public API of a route object that describes the URL\n`https://elements.polymer-project.org/elements/app-location`:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-location'\n}\n```\n\nExample Usage:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route route=\"{{route}}\" pattern=\"/:page\" data=\"{{data}}\"></app-route>\n```\n\nAs you can see above, the `app-location` element produces a `route` and that\nproperty is then bound into the `app-route` element. The bindings are two-\ndirectional, so when changes to the `route` object occur within `app-route`,\nthey automatically reflect back to the global location.\n\n### Hashes vs Paths\n\nBy default `app-location` routes uses the pathname portion of the URL. This has\nbroad browser support but it does require cooperation of the backend server. An\n`app-location` can be configured to use the hash part of a URL instead using\nthe `use-hash-as-path` attribute, like so:\n\n```html\n<app-location route=\"{{route}}\" use-hash-as-path></app-location>\n```\n\n### Integrating with other routing code\n\nThere is no standard event that is fired when window.location is modified.\n`app-location` fires a `location-changed` event on `window` when it updates the\nlocation. It also listens for that same event, and re-reads the URL when it's\nfired. This makes it very easy to interop with other routing code.\n\nSo for example if you want to navigate to `/new_path` imperatively you could\ncall `window.location.pushState` or `window.location.replaceState` followed by\nfiring a `location-changed` event on `window`. i.e.\n\n```javascript\nwindow.history.pushState({}, null, '/new_path');\nwindow.dispatchEvent(new CustomEvent('location-changed'));\n```\n\n\n\n## &lt;app-route-converter&gt;\n\n`app-route-converter` provides a means to convert a path and query\nparameters into a route object and vice versa. This produced route object\nis to be fed into route-consuming elements such as `app-route`.\n\n> n.b. This element is intended to be a primitive of the routing system and for\ncreating bespoke routing solutions from scratch. To simply include routing in\nan app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html)\nand [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html).\n\nAn example of a route object that describes\n`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux`\nand should be passed to other `app-route` elements:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-route-converter',\n  __queryParams: {\n    foo: 'bar',\n    baz: 'qux'\n  }\n}\n```\n\n`__queryParams` is private to discourage directly data-binding to it. This is so\nthat routing elements like `app-route` can intermediate changes to the query\nparams and choose whether to propagate them upstream or not. `app-route` for\nexample will not propagate changes to its `queryParams` property if it is not\ncurrently active. A public queryParams object will also be produced in which you\nshould perform data-binding operations.\n\nExample Usage:\n\n```html\n<iron-location path=\"{{path}}\" query=\"{{query}}\"></iron-location>\n<iron-query-params\n    params-string=\"{{query}}\"\n    params-object=\"{{queryParams}}\">\n</iron-query-params>\n<app-route-converter\n    path=\"{{path}}\"\n    query-params=\"{{queryParams}}\"\n    route=\"{{route}}\">\n</app-route-converter>\n<app-route route='{{route}}' pattern='/:page' data='{{data}}'>\n</app-route>\n```\n\nThis is a simplified implementation of the `app-location` element. Here the\n`iron-location` produces a path and a query, the `iron-query-params` consumes\nthe query and produces a queryParams object, and the `app-route-converter`\nconsumes the path and the query params and converts it into a route which is in\nturn is consumed by the `app-route`.\n\n\n\n## Polymer.AppRouteConverterBehavior\n\nProvides bidirectional mapping between `path` and `queryParams` and a\napp-route compatible `route` object.\n\nFor more information, see the docs for `app-route-converter`.\n\n\n","gitHead":"b0bd2a9d1d25491793350a5a90cad4be88e0a6c0","scripts":{"format":"webmat && npm run update-types","update-types":"bower install && gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"6.0.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2","@webcomponents/webcomponentsjs":"2.0.0-beta.2"},"_nodeVersion":"9.8.0","dependencies":{"@polymer/polymer":"^3.0.0-pre.13","@polymer/iron-location":"^3.0.0-pre.16"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"bower":"^1.8.0","webmat":"^0.2.0","wct-browser-legacy":"^0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.16","@polymer/paper-card":"^3.0.0-pre.16","@polymer/paper-input":"^3.0.0-pre.16","@polymer/paper-styles":"^3.0.0-pre.16","@polymer/paper-spinner":"^3.0.0-pre.16","@polymer/iron-demo-helpers":"^3.0.0-pre.16","@polymer/iron-test-helpers":"^3.0.0-pre.16","@polymer/paper-icon-button":"^3.0.0-pre.16","@polymer/iron-component-page":"^3.0.0-pre.16","@polymer/paper-toggle-button":"^3.0.0-pre.16","@webcomponents/webcomponentsjs":"^2.0.0-beta.2","@polymer/gen-typescript-declarations":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.16_1525465032661_0.30291212187350003","host":"s3://npm-registry-packages"}},"3.0.0-pre.17":{"name":"@polymer/app-route","version":"3.0.0-pre.17","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.17","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"690a4b58703c38d0eaf6919978653794a116ed86","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.17.tgz","fileCount":36,"integrity":"sha512-apmPV2Bg1kmYwZKiRDCForpx3/s8icIhMxHUsGjjaavM/ZEQGMqsBNjcohEhTvEiDaSq3fxl0LkFci/z9LQC9A==","signatures":[{"sig":"MEUCIAnx1ZBpLAa4qW/6D27BGMdhgH+3S9ehdUHmKbyNJ/LlAiEArtzweaOP4lQWxm9orFHiSLkZ4Eijj18+aX0suFd34+E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":127267,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8TCnCRA9TVsSAnZWagAAbJIP/RVBb8icbVrfF4+txiIg\nNj/0ScZKSutv/AjsWNEVWQG20aLG+PCWpMFmxEwXmwU8t9b+s3Gb4VZUPDim\nCXq8asd1FRWnms4hYKHTGaUDCOIcMmuci8vsgdMznoq00BY5IVtwUCI42ZWo\nfXdiY4iyofgxMS/9h5qFzSb4ih5A6zuf8sS7OOWEHFwmIEqnLLj3yvuG4m6A\n2YMOxQXNtp8LZKbzPfOKkQWSxy26eBd82khcvqg0uTjEv2vgv6tYuJRgs8Dx\nzex6Op1vebwXqRGoaf+7ym3ImGhxGStttv0Bm8SyEzXExbItx0K6a+FRAvYv\nwMOq3yQjgVCj8HjHv0jYXFffgcwog5YM1KFsQxcH+77DcA3r/rlasSbUtJYo\naWxRZKsS/3M9HX/M3bsyeWph/ODW1Y3z6bC1xMPd0c7Uz9vswhyW72maa9RK\nhZ2ZKXX29YgL2Ddx6LR5yw8TZpfYuEW5EKYImVgdU/ZJp8/Ozh6IxPUSmQPo\n4h33WgBq088tUyaGs3MS2gXD8zGlkN5ji08VXD5F3k4M0Lts+bDgQFDYLrW5\n/+uEk/vKS/+zf0gBs48PzuILVJDompcO2WPc8aqYoXYESyOsLw5B+8nGbLbF\nR3p1EK+GZN4v9UZ8gr7LWBSX52/FTccM5D6r5KlQ2nSd4QP5ktCN2Py+zPhS\nSaun\r\n=w+k2\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"\n<!---\n\nThis README is automatically generated from the comments in these files:\napp-location.html  app-route-converter-behavior.html  app-route-converter.html  app-route.html\n\nEdit those files, and our readme bot will duplicate them over here!\nEdit this file, and the bot will squash your changes :)\n\nThe bot does some handling of markdown. Please file a bug if it does the wrong\nthing! https://github.com/PolymerLabs/tedium/issues\n\n-->\n\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n\n\n## &lt;app-route&gt;\n\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\n> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!*\n\nIn its typical usage, a `app-route` element consumes an object that describes\nsome state about the current route, via the `route` property. It then parses\nthat state using the `pattern` property, and produces two artifacts: some `data`\nrelated to the `route`, and a `tail` that contains the rest of the `route` that\ndid not match.\n\nHere is a basic example, when used with `app-location`:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{data}}\"\n    tail=\"{{tail}}\">\n</app-route>\n```\n\nIn the above example, the `app-location` produces a `route` value. Then, the\n`route.path` property is matched by comparing it to the `pattern` property. If\nthe `pattern` property matches `route.path`, the `app-route` will set or update\nits `data` property with an object whose properties correspond to the parameters\nin `pattern`. So, in the above example, if `route.path` was `'/about'`, the value\nof `data` would be `{\"page\": \"about\"}`.\n\nThe `tail` property represents the remaining part of the route state after the\n`pattern` has been applied to a matching `route`.\n\nHere is another example, where `tail` is used:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{routeData}}\"\n    tail=\"{{subroute}}\">\n</app-route>\n<app-route\n    route=\"{{subroute}}\"\n    pattern=\"/:id\"\n    data=\"{{subrouteData}}\">\n</app-route>\n```\n\nIn the above example, there are two `app-route` elements. The first\n`app-route` consumes a `route`. When the `route` is matched, the first\n`app-route` also produces `routeData` from its `data`, and `subroute` from\nits `tail`. The second `app-route` consumes the `subroute`, and when it\nmatches, it produces an object called `subrouteData` from its `data`.\n\nSo, when `route.path` is `'/about'`, the `routeData` object will look like\nthis: `{ page: 'about' }`\n\nAnd `subrouteData` will be null. However, if `route.path` changes to\n`'/article/123'`, the `routeData` object will look like this:\n`{ page: 'article' }`\n\nAnd the `subrouteData` will look like this: `{ id: '123' }`\n\n`app-route` is responsive to bi-directional changes to the `data` objects\nthey produce. So, if `routeData.page` changed from `'article'` to `'about'`,\nthe `app-route` will update `route.path`. This in-turn will update the\n`app-location`, and cause the global location bar to change its value.\n\n\n\n## &lt;app-location&gt;\n\n`app-location` is an element that provides synchronization between the\nbrowser location bar and the state of an app. When created, `app-location`\nelements will automatically watch the global location for changes. As changes\noccur, `app-location` produces and updates an object called `route`. This\n`route` object is suitable for passing into a `app-route`, and other similar\nelements.\n\nAn example of the public API of a route object that describes the URL\n`https://elements.polymer-project.org/elements/app-location`:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-location'\n}\n```\n\nExample Usage:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route route=\"{{route}}\" pattern=\"/:page\" data=\"{{data}}\"></app-route>\n```\n\nAs you can see above, the `app-location` element produces a `route` and that\nproperty is then bound into the `app-route` element. The bindings are two-\ndirectional, so when changes to the `route` object occur within `app-route`,\nthey automatically reflect back to the global location.\n\n### Hashes vs Paths\n\nBy default `app-location` routes uses the pathname portion of the URL. This has\nbroad browser support but it does require cooperation of the backend server. An\n`app-location` can be configured to use the hash part of a URL instead using\nthe `use-hash-as-path` attribute, like so:\n\n```html\n<app-location route=\"{{route}}\" use-hash-as-path></app-location>\n```\n\n### Integrating with other routing code\n\nThere is no standard event that is fired when window.location is modified.\n`app-location` fires a `location-changed` event on `window` when it updates the\nlocation. It also listens for that same event, and re-reads the URL when it's\nfired. This makes it very easy to interop with other routing code.\n\nSo for example if you want to navigate to `/new_path` imperatively you could\ncall `window.location.pushState` or `window.location.replaceState` followed by\nfiring a `location-changed` event on `window`. i.e.\n\n```javascript\nwindow.history.pushState({}, null, '/new_path');\nwindow.dispatchEvent(new CustomEvent('location-changed'));\n```\n\n\n\n## &lt;app-route-converter&gt;\n\n`app-route-converter` provides a means to convert a path and query\nparameters into a route object and vice versa. This produced route object\nis to be fed into route-consuming elements such as `app-route`.\n\n> n.b. This element is intended to be a primitive of the routing system and for\ncreating bespoke routing solutions from scratch. To simply include routing in\nan app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html)\nand [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html).\n\nAn example of a route object that describes\n`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux`\nand should be passed to other `app-route` elements:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-route-converter',\n  __queryParams: {\n    foo: 'bar',\n    baz: 'qux'\n  }\n}\n```\n\n`__queryParams` is private to discourage directly data-binding to it. This is so\nthat routing elements like `app-route` can intermediate changes to the query\nparams and choose whether to propagate them upstream or not. `app-route` for\nexample will not propagate changes to its `queryParams` property if it is not\ncurrently active. A public queryParams object will also be produced in which you\nshould perform data-binding operations.\n\nExample Usage:\n\n```html\n<iron-location path=\"{{path}}\" query=\"{{query}}\"></iron-location>\n<iron-query-params\n    params-string=\"{{query}}\"\n    params-object=\"{{queryParams}}\">\n</iron-query-params>\n<app-route-converter\n    path=\"{{path}}\"\n    query-params=\"{{queryParams}}\"\n    route=\"{{route}}\">\n</app-route-converter>\n<app-route route='{{route}}' pattern='/:page' data='{{data}}'>\n</app-route>\n```\n\nThis is a simplified implementation of the `app-location` element. Here the\n`iron-location` produces a path and a query, the `iron-query-params` consumes\nthe query and produces a queryParams object, and the `app-route-converter`\nconsumes the path and the query params and converts it into a route which is in\nturn is consumed by the `app-route`.\n\n\n\n## Polymer.AppRouteConverterBehavior\n\nProvides bidirectional mapping between `path` and `queryParams` and a\napp-route compatible `route` object.\n\nFor more information, see the docs for `app-route-converter`.\n\n\n","gitHead":"9dfc3dccb22e57f41601cb08246415f55a00162f","scripts":{"format":"webmat && npm run update-types","update-types":"bower install && gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"6.0.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2","@webcomponents/webcomponentsjs":"2.0.0-beta.2"},"_nodeVersion":"9.8.0","dependencies":{"@polymer/polymer":"^3.0.0-pre.13","@polymer/iron-location":"^3.0.0-pre.17"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"bower":"^1.8.0","webmat":"^0.2.0","wct-browser-legacy":"^0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.17","@polymer/paper-card":"^3.0.0-pre.17","@polymer/paper-input":"^3.0.0-pre.17","@polymer/paper-styles":"^3.0.0-pre.17","@polymer/paper-spinner":"^3.0.0-pre.17","@polymer/iron-demo-helpers":"^3.0.0-pre.17","@polymer/iron-test-helpers":"^3.0.0-pre.17","@polymer/paper-icon-button":"^3.0.0-pre.17","@polymer/iron-component-page":"^3.0.0-pre.17","@polymer/paper-toggle-button":"^3.0.0-pre.17","@webcomponents/webcomponentsjs":"^2.0.0-beta.2","@polymer/gen-typescript-declarations":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.17_1525756070810_0.3551217577784409","host":"s3://npm-registry-packages"}},"3.0.0-pre.18":{"name":"@polymer/app-route","version":"3.0.0-pre.18","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.18","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"838038253700337186f244d8b12888e0a6e728b2","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.18.tgz","fileCount":35,"integrity":"sha512-GnLwqLHFxyfVWPmwQLw3NBfdSgSfTZilVSRnAIOlXt7Mk0XzWC97dTcY6ncna8vdvrNWXYxbQFAHhBHtbWsxDw==","signatures":[{"sig":"MEUCIBpXgtSPdexSVaIg2Oy8BPyh0nOt400DNLql6fw60dsqAiEA1OKPgC8u8+nTwp4LqsrDTmthxWj54XSaVLsdaEJg1XU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8saiCRA9TVsSAnZWagAAYwYP/jQzS8L+HsDokx5GQThx\nBqSYw1qm5CTAvdhyivxu61ugNMXARtc9w7/ZPCS4cUor/YahAflGjgwrOzZO\n04sjzQQcFqJFvv0JpYemAF54bxz11NZkLlMiV4qXFzjg90mYZRDjN3LYW9SR\nNKl7UWvaFfQVC6DovndZE6eIyaxnMDK/iTUKHExfX563ltnm68xAEQMpRFpe\n4ZfZGy34clEHiIibeVEW0Nyie0HDdxpMYHN7F8aFCuEwhlSwTcqw4WDRMMmB\n2sRG/0t1Kly3foaHn618tFNpbuI3lLut14GxaxbpymfU8R9qgyGLjzGw8H5D\nWwRU5LaEOSdVtbufhxZwnZb7l17/fwpu4UuYSPu7vk+MJgdgDxd2YpbEtNor\nAjtw50/zRf/dC0iv1aAwtUUPm8G5RfVwX+GfKk7wyix5iRv7R3LW8IZGxCcH\n5yzktIyn+8ZhdbqMBW2q2lIjxB5DP8Io2VOBq9s3bCdllbzcKSwDs7//ZtoE\n2xIKMKLkOTKhnr7Mqytw2gsD3Xb+wA2nO3mklfAA2yXlu9mHlT5jmhHpvN94\nwcO7HOD1y4V/KxXjowW2b3PLlfeRrbYmroI9SOaipT6Y2WfmFqGyLcEtbSiu\nwJhr5UaIVPsmv4h0jsSIusNGAdlEP0GNwF/QZsO5q8GjneFXYTHjrTcs926v\nCTjg\r\n=mU/u\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"\n<!---\n\nThis README is automatically generated from the comments in these files:\napp-location.html  app-route-converter-behavior.html  app-route-converter.html  app-route.html\n\nEdit those files, and our readme bot will duplicate them over here!\nEdit this file, and the bot will squash your changes :)\n\nThe bot does some handling of markdown. Please file a bug if it does the wrong\nthing! https://github.com/PolymerLabs/tedium/issues\n\n-->\n\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n\n\n## &lt;app-route&gt;\n\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\n> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!*\n\nIn its typical usage, a `app-route` element consumes an object that describes\nsome state about the current route, via the `route` property. It then parses\nthat state using the `pattern` property, and produces two artifacts: some `data`\nrelated to the `route`, and a `tail` that contains the rest of the `route` that\ndid not match.\n\nHere is a basic example, when used with `app-location`:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{data}}\"\n    tail=\"{{tail}}\">\n</app-route>\n```\n\nIn the above example, the `app-location` produces a `route` value. Then, the\n`route.path` property is matched by comparing it to the `pattern` property. If\nthe `pattern` property matches `route.path`, the `app-route` will set or update\nits `data` property with an object whose properties correspond to the parameters\nin `pattern`. So, in the above example, if `route.path` was `'/about'`, the value\nof `data` would be `{\"page\": \"about\"}`.\n\nThe `tail` property represents the remaining part of the route state after the\n`pattern` has been applied to a matching `route`.\n\nHere is another example, where `tail` is used:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{routeData}}\"\n    tail=\"{{subroute}}\">\n</app-route>\n<app-route\n    route=\"{{subroute}}\"\n    pattern=\"/:id\"\n    data=\"{{subrouteData}}\">\n</app-route>\n```\n\nIn the above example, there are two `app-route` elements. The first\n`app-route` consumes a `route`. When the `route` is matched, the first\n`app-route` also produces `routeData` from its `data`, and `subroute` from\nits `tail`. The second `app-route` consumes the `subroute`, and when it\nmatches, it produces an object called `subrouteData` from its `data`.\n\nSo, when `route.path` is `'/about'`, the `routeData` object will look like\nthis: `{ page: 'about' }`\n\nAnd `subrouteData` will be null. However, if `route.path` changes to\n`'/article/123'`, the `routeData` object will look like this:\n`{ page: 'article' }`\n\nAnd the `subrouteData` will look like this: `{ id: '123' }`\n\n`app-route` is responsive to bi-directional changes to the `data` objects\nthey produce. So, if `routeData.page` changed from `'article'` to `'about'`,\nthe `app-route` will update `route.path`. This in-turn will update the\n`app-location`, and cause the global location bar to change its value.\n\n\n\n## &lt;app-location&gt;\n\n`app-location` is an element that provides synchronization between the\nbrowser location bar and the state of an app. When created, `app-location`\nelements will automatically watch the global location for changes. As changes\noccur, `app-location` produces and updates an object called `route`. This\n`route` object is suitable for passing into a `app-route`, and other similar\nelements.\n\nAn example of the public API of a route object that describes the URL\n`https://elements.polymer-project.org/elements/app-location`:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-location'\n}\n```\n\nExample Usage:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route route=\"{{route}}\" pattern=\"/:page\" data=\"{{data}}\"></app-route>\n```\n\nAs you can see above, the `app-location` element produces a `route` and that\nproperty is then bound into the `app-route` element. The bindings are two-\ndirectional, so when changes to the `route` object occur within `app-route`,\nthey automatically reflect back to the global location.\n\n### Hashes vs Paths\n\nBy default `app-location` routes uses the pathname portion of the URL. This has\nbroad browser support but it does require cooperation of the backend server. An\n`app-location` can be configured to use the hash part of a URL instead using\nthe `use-hash-as-path` attribute, like so:\n\n```html\n<app-location route=\"{{route}}\" use-hash-as-path></app-location>\n```\n\n### Integrating with other routing code\n\nThere is no standard event that is fired when window.location is modified.\n`app-location` fires a `location-changed` event on `window` when it updates the\nlocation. It also listens for that same event, and re-reads the URL when it's\nfired. This makes it very easy to interop with other routing code.\n\nSo for example if you want to navigate to `/new_path` imperatively you could\ncall `window.location.pushState` or `window.location.replaceState` followed by\nfiring a `location-changed` event on `window`. i.e.\n\n```javascript\nwindow.history.pushState({}, null, '/new_path');\nwindow.dispatchEvent(new CustomEvent('location-changed'));\n```\n\n\n\n## &lt;app-route-converter&gt;\n\n`app-route-converter` provides a means to convert a path and query\nparameters into a route object and vice versa. This produced route object\nis to be fed into route-consuming elements such as `app-route`.\n\n> n.b. This element is intended to be a primitive of the routing system and for\ncreating bespoke routing solutions from scratch. To simply include routing in\nan app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html)\nand [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html).\n\nAn example of a route object that describes\n`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux`\nand should be passed to other `app-route` elements:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-route-converter',\n  __queryParams: {\n    foo: 'bar',\n    baz: 'qux'\n  }\n}\n```\n\n`__queryParams` is private to discourage directly data-binding to it. This is so\nthat routing elements like `app-route` can intermediate changes to the query\nparams and choose whether to propagate them upstream or not. `app-route` for\nexample will not propagate changes to its `queryParams` property if it is not\ncurrently active. A public queryParams object will also be produced in which you\nshould perform data-binding operations.\n\nExample Usage:\n\n```html\n<iron-location path=\"{{path}}\" query=\"{{query}}\"></iron-location>\n<iron-query-params\n    params-string=\"{{query}}\"\n    params-object=\"{{queryParams}}\">\n</iron-query-params>\n<app-route-converter\n    path=\"{{path}}\"\n    query-params=\"{{queryParams}}\"\n    route=\"{{route}}\">\n</app-route-converter>\n<app-route route='{{route}}' pattern='/:page' data='{{data}}'>\n</app-route>\n```\n\nThis is a simplified implementation of the `app-location` element. Here the\n`iron-location` produces a path and a query, the `iron-query-params` consumes\nthe query and produces a queryParams object, and the `app-route-converter`\nconsumes the path and the query params and converts it into a route which is in\nturn is consumed by the `app-route`.\n\n\n\n## Polymer.AppRouteConverterBehavior\n\nProvides bidirectional mapping between `path` and `queryParams` and a\napp-route compatible `route` object.\n\nFor more information, see the docs for `app-route-converter`.\n\n\n","gitHead":"0d81d33baf11efd8d39ccb01be0974f70064299d","scripts":{"format":"webmat && npm run update-types","update-types":"bower install && gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"6.0.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2","@webcomponents/webcomponentsjs":"2.0.0-beta.2"},"_nodeVersion":"9.8.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.18"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"bower":"^1.8.0","webmat":"^0.2.0","wct-browser-legacy":"^0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.18","@polymer/paper-card":"^3.0.0-pre.18","@polymer/paper-input":"^3.0.0-pre.18","@polymer/paper-styles":"^3.0.0-pre.18","@polymer/paper-spinner":"^3.0.0-pre.18","@polymer/iron-demo-helpers":"^3.0.0-pre.18","@polymer/iron-test-helpers":"^3.0.0-pre.18","@polymer/paper-icon-button":"^3.0.0-pre.18","@polymer/iron-component-page":"^3.0.0-pre.18","@polymer/paper-toggle-button":"^3.0.0-pre.18","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.18_1525860002619_0.12843046088073518","host":"s3://npm-registry-packages"}},"3.0.0-pre.19":{"name":"@polymer/app-route","version":"3.0.0-pre.19","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.19","maintainers":[{"name":"polymer","email":"admin@polymer-project.org"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"4e0b4830bfbf1f4360a1678c907108eb6bb73aa0","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.19.tgz","fileCount":35,"integrity":"sha512-8We/XORM1J7YIiAE2mUoMhPn9AVXDtOdyBrcVChEKPvIswuozKsCnBZA6rCFWPWyvmT+td40obhb92rRgMZPUQ==","signatures":[{"sig":"MEUCIQCLXkvMcl0Z3oobOLnXu+HHpzAEwPlMi8UeLdM7zUTjjQIgXsIGIKY5XLZPCs2h3nM4KPV8fYSPkoB0Sc+yuWZAx3I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa81ghCRA9TVsSAnZWagAAKWQP/0sHMnxs0Bubfg28mE0d\nrUtZZZiSlQMPlOhsrvn6PdMYSMvX21hTglSajy48f1fzFSzSvcS/6vk4nxPL\nI6DGIkrgaPF322VHf1z1nIuw9iPBiVs9yUftlySsC4E1I2Dohw3bVZfS0628\nk4GB3Hf0wmelPg4MNwMVZwJ7wH10z9XyltZjV8eWMZo0J/Ls6GCUXcVVe6xt\n8Rl9p3ba975X+j/eH0rApFYTbDCNsNDwKrp5qES2eoDMUDF1Kv0dTGNSnaY1\nYOAg5TiXllbxSIUNHVxcodC32loT20KzucSF+A66XCN2Qg11wKfSPpgjmjpm\nm7A9mMC95CCcuFm6tySEj+ixo2qt7d3uV8xrNiSsM3Z7onP7OpDTT7LdWOsq\n9VvuzORV7mLZFxpcigp/3KYgltD/x+S4v5/7O3F4w9FPKUfJ6EB5I5wRsth6\nlKmH6K69+rlywjrQGV7ko+2ImiMxMWlHPuJow3iG4Hy8jFABy1cwnikAzKK5\nYSydaixo0PM0jZC9zQTHnuFmNYHyF8e1pBTtsRXrZ6s1rhPIb90Nw5VfSxKU\nTc4OIt+wgadegPbFo9XTcJAuPnGj7Hzx6tMLH4y9npRU6kKGldv9hH7LJ/KK\nMBDbhRB5cbxOlUmVca3af1ZBK1XgiO0VyE9lDDrrXM5XY6I2FppzhDWtY/DL\nJnuc\r\n=WjNI\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"4b0281e06efd5d59110de01684fdc341ceb7aa7a","scripts":{"format":"webmat && npm run update-types","update-types":"bower install && gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"polymer","email":"admin@polymer-project.org"},"_npmVersion":"6.0.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2","@webcomponents/webcomponentsjs":"2.0.0-beta.2"},"_nodeVersion":"9.8.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.19"},"_hasShrinkwrap":false,"devDependencies":{"bower":"^1.8.0","webmat":"^0.2.0","wct-browser-legacy":"^0.0.1-pre.11","@polymer/iron-pages":"^3.0.0-pre.19","@polymer/paper-card":"^3.0.0-pre.19","@polymer/paper-input":"^3.0.0-pre.19","@polymer/paper-styles":"^3.0.0-pre.19","@polymer/paper-spinner":"^3.0.0-pre.19","@polymer/iron-demo-helpers":"^3.0.0-pre.19","@polymer/iron-test-helpers":"^3.0.0-pre.19","@polymer/paper-icon-button":"^3.0.0-pre.19","@polymer/iron-component-page":"^3.0.0-pre.19","@polymer/paper-toggle-button":"^3.0.0-pre.19","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.19_1525897248048_0.5585995099216785","host":"s3://npm-registry-packages"}},"3.0.0-pre.20":{"name":"@polymer/app-route","version":"3.0.0-pre.20","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.20","maintainers":[{"name":"aomarks","email":"aomarks@google.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"keanulee","email":"npm@keanulee.com"},{"name":"notwaldorf","email":"notwaldorf@gmail.com"},{"name":"polymer-devs","email":"admin@polymer-project.org"},{"name":"usergenic","email":"brendan@usergenic.com"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"c644aa0c45849b0bc3f7aa71e6084270f05f6d4b","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.20.tgz","fileCount":36,"integrity":"sha512-D8HXS3gs8XLuDF1M5SxNQneD8fuXXSTliGPKpWTrdrl/595L8w3i7+mehT+3enB+tMP/qQWd4hqGg0pk1puFLQ==","signatures":[{"sig":"MEUCIQC93wN/szz6gdjUjyEkFPTzSsDOm/9b4XAjZdz68kAwVwIgcX+SarZco2hwO9XzXc501ga/rFEanDrhHl5py9V8gkk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbLZG9CRA9TVsSAnZWagAAZ2EP/2XCt/GMN3fPZADvUSzc\nLl0DaKMwZ0oR3TE4jaWPoUo3uDfTt+IG6hbiOR32uVlHjESq+lVHFcJeCCch\nKbtI1q03mg7itMJya99FB+Qypcx2YNvsxdv5row2rUdhGfVXuxcg3MaH4hly\nQRCh+KOcCRimwCONObX7fVTIsO4aHDPWigDp+IWGViypSPuA6m3O9ehzt8zq\nDRA2QEHLPEWKg8WfMMHedA1iCofqziGXtbqm4HTtFyC3p9hwC2pioG/FesE/\nn4RxQ0jkFoy3k4VD7RRKoj5Lrft+pUEI2KsCHCdXLcBBSzTjx7jWfnMHy/py\naGyf1Gch/NSe6qEeKhFVMnLihD/Ci0VuUhChPmwekeOw7hfqQp4aLiq63/CS\n9tJEjHGHgxbYLV5OtcBxcUow7ryD11bsUWvQntZ3YPbzYFFPHYkEKAxZuzGV\nb73DQlU9cuej7wiIQiG9OZL7t10mH1cpRym0F9wYZehjWvFByVcG9Yz0tGkN\n8U5VibPpBCTWccJumtO1PazZsiFJgZ41w3cCTc//X45T8qeJF47yaJuISnzE\nHNlwt+U4zcW0bHm4BdlvbOQJaGF+jgx7Oh1fexSUf87IM7uAaZLe5EuIORtr\n3ZhgsftoTJIeUBVEyhGYXjulb2Q/tkt1NQuaDTWUA6tTFv3vdv5BqNK1s/Lg\nnXHJ\r\n=myoP\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"\n<!---\n\nThis README is automatically generated from the comments in these files:\napp-location.html  app-route-converter-behavior.html  app-route-converter.html  app-route.html\n\nEdit those files, and our readme bot will duplicate them over here!\nEdit this file, and the bot will squash your changes :)\n\nThe bot does some handling of markdown. Please file a bug if it does the wrong\nthing! https://github.com/PolymerLabs/tedium/issues\n\n-->\n\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n\n\n## &lt;app-route&gt;\n\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\n> *n.b. app-route is still in beta. We expect it will need some changes. We're counting on your feedback!*\n\nIn its typical usage, a `app-route` element consumes an object that describes\nsome state about the current route, via the `route` property. It then parses\nthat state using the `pattern` property, and produces two artifacts: some `data`\nrelated to the `route`, and a `tail` that contains the rest of the `route` that\ndid not match.\n\nHere is a basic example, when used with `app-location`:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{data}}\"\n    tail=\"{{tail}}\">\n</app-route>\n```\n\nIn the above example, the `app-location` produces a `route` value. Then, the\n`route.path` property is matched by comparing it to the `pattern` property. If\nthe `pattern` property matches `route.path`, the `app-route` will set or update\nits `data` property with an object whose properties correspond to the parameters\nin `pattern`. So, in the above example, if `route.path` was `'/about'`, the value\nof `data` would be `{\"page\": \"about\"}`.\n\nThe `tail` property represents the remaining part of the route state after the\n`pattern` has been applied to a matching `route`.\n\nHere is another example, where `tail` is used:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route\n    route=\"{{route}}\"\n    pattern=\"/:page\"\n    data=\"{{routeData}}\"\n    tail=\"{{subroute}}\">\n</app-route>\n<app-route\n    route=\"{{subroute}}\"\n    pattern=\"/:id\"\n    data=\"{{subrouteData}}\">\n</app-route>\n```\n\nIn the above example, there are two `app-route` elements. The first\n`app-route` consumes a `route`. When the `route` is matched, the first\n`app-route` also produces `routeData` from its `data`, and `subroute` from\nits `tail`. The second `app-route` consumes the `subroute`, and when it\nmatches, it produces an object called `subrouteData` from its `data`.\n\nSo, when `route.path` is `'/about'`, the `routeData` object will look like\nthis: `{ page: 'about' }`\n\nAnd `subrouteData` will be null. However, if `route.path` changes to\n`'/article/123'`, the `routeData` object will look like this:\n`{ page: 'article' }`\n\nAnd the `subrouteData` will look like this: `{ id: '123' }`\n\n`app-route` is responsive to bi-directional changes to the `data` objects\nthey produce. So, if `routeData.page` changed from `'article'` to `'about'`,\nthe `app-route` will update `route.path`. This in-turn will update the\n`app-location`, and cause the global location bar to change its value.\n\n\n\n## &lt;app-location&gt;\n\n`app-location` is an element that provides synchronization between the\nbrowser location bar and the state of an app. When created, `app-location`\nelements will automatically watch the global location for changes. As changes\noccur, `app-location` produces and updates an object called `route`. This\n`route` object is suitable for passing into a `app-route`, and other similar\nelements.\n\nAn example of the public API of a route object that describes the URL\n`https://elements.polymer-project.org/elements/app-location`:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-location'\n}\n```\n\nExample Usage:\n\n```html\n<app-location route=\"{{route}}\"></app-location>\n<app-route route=\"{{route}}\" pattern=\"/:page\" data=\"{{data}}\"></app-route>\n```\n\nAs you can see above, the `app-location` element produces a `route` and that\nproperty is then bound into the `app-route` element. The bindings are two-\ndirectional, so when changes to the `route` object occur within `app-route`,\nthey automatically reflect back to the global location.\n\n### Hashes vs Paths\n\nBy default `app-location` routes uses the pathname portion of the URL. This has\nbroad browser support but it does require cooperation of the backend server. An\n`app-location` can be configured to use the hash part of a URL instead using\nthe `use-hash-as-path` attribute, like so:\n\n```html\n<app-location route=\"{{route}}\" use-hash-as-path></app-location>\n```\n\n### Integrating with other routing code\n\nThere is no standard event that is fired when window.location is modified.\n`app-location` fires a `location-changed` event on `window` when it updates the\nlocation. It also listens for that same event, and re-reads the URL when it's\nfired. This makes it very easy to interop with other routing code.\n\nSo for example if you want to navigate to `/new_path` imperatively you could\ncall `window.location.pushState` or `window.location.replaceState` followed by\nfiring a `location-changed` event on `window`. i.e.\n\n```javascript\nwindow.history.pushState({}, null, '/new_path');\nwindow.dispatchEvent(new CustomEvent('location-changed'));\n```\n\n\n\n## &lt;app-route-converter&gt;\n\n`app-route-converter` provides a means to convert a path and query\nparameters into a route object and vice versa. This produced route object\nis to be fed into route-consuming elements such as `app-route`.\n\n> n.b. This element is intended to be a primitive of the routing system and for\ncreating bespoke routing solutions from scratch. To simply include routing in\nan app, please refer to [app-location](https://github.com/PolymerElements/app-route/blob/master/app-location.html)\nand [app-route](https://github.com/PolymerElements/app-route/blob/master/app-route.html).\n\nAn example of a route object that describes\n`https://elements.polymer-project.org/elements/app-route-converter?foo=bar&baz=qux`\nand should be passed to other `app-route` elements:\n\n```css\n{\n  prefix: '',\n  path: '/elements/app-route-converter',\n  __queryParams: {\n    foo: 'bar',\n    baz: 'qux'\n  }\n}\n```\n\n`__queryParams` is private to discourage directly data-binding to it. This is so\nthat routing elements like `app-route` can intermediate changes to the query\nparams and choose whether to propagate them upstream or not. `app-route` for\nexample will not propagate changes to its `queryParams` property if it is not\ncurrently active. A public queryParams object will also be produced in which you\nshould perform data-binding operations.\n\nExample Usage:\n\n```html\n<iron-location path=\"{{path}}\" query=\"{{query}}\"></iron-location>\n<iron-query-params\n    params-string=\"{{query}}\"\n    params-object=\"{{queryParams}}\">\n</iron-query-params>\n<app-route-converter\n    path=\"{{path}}\"\n    query-params=\"{{queryParams}}\"\n    route=\"{{route}}\">\n</app-route-converter>\n<app-route route='{{route}}' pattern='/:page' data='{{data}}'>\n</app-route>\n```\n\nThis is a simplified implementation of the `app-location` element. Here the\n`iron-location` produces a path and a query, the `iron-query-params` consumes\nthe query and produces a queryParams object, and the `app-route-converter`\nconsumes the path and the query params and converts it into a route which is in\nturn is consumed by the `app-route`.\n\n\n\n## Polymer.AppRouteConverterBehavior\n\nProvides bidirectional mapping between `path` and `queryParams` and a\napp-route compatible `route` object.\n\nFor more information, see the docs for `app-route-converter`.\n\n\n","gitHead":"dcf4e416dec6fbfd2ca5d601107abf128669cf72","scripts":{"format":"webmat && npm run update-types","update-types":"bower install && gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"_npmVersion":"6.1.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2","@webcomponents/webcomponentsjs":"2.0.0-beta.2"},"_nodeVersion":"9.8.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.20"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"bower":"^1.8.0","webmat":"^0.2.0","wct-browser-legacy":"^1.0.1","@polymer/iron-pages":"^3.0.0-pre.20","@polymer/paper-card":"^3.0.0-pre.20","@polymer/paper-input":"^3.0.0-pre.20","@polymer/paper-styles":"^3.0.0-pre.20","@polymer/paper-spinner":"^3.0.0-pre.20","@polymer/iron-demo-helpers":"^3.0.0-pre.20","@polymer/iron-test-helpers":"^3.0.0-pre.20","@polymer/paper-icon-button":"^3.0.0-pre.20","@polymer/iron-component-page":"^3.0.0-pre.20","@polymer/paper-toggle-button":"^3.0.0-pre.20","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.2.2"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.20_1529713085858_0.9435567154693385","host":"s3://npm-registry-packages"}},"3.0.0-pre.21":{"name":"@polymer/app-route","version":"3.0.0-pre.21","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.21","maintainers":[{"name":"aomarks","email":"aomarks@google.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"keanulee","email":"npm@keanulee.com"},{"name":"notwaldorf","email":"notwaldorf@gmail.com"},{"name":"polymer-devs","email":"admin@polymer-project.org"},{"name":"usergenic","email":"brendan@usergenic.com"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"7a0b75d495e44011ff380ca71db339540d14a644","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.21.tgz","fileCount":36,"integrity":"sha512-LNYGgz9s4Gi/ykjJbOvTaqbM7fPlhZzhhfrQt/2WPc6/qCNzCKT2G3qqYUiMFnMvjIrAIT6Bqn8GAMFFUHQVQw==","signatures":[{"sig":"MEYCIQC8O7MC8hABxVOENdfqIcLpV0LnMx1Unvr+7Cp5kaExsQIhAPtctlmxDey42bW7yTTqaCGeP2J7rQoEARzbORUxy0Q8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbLZz5CRA9TVsSAnZWagAA9fkP/jxXWxkoM27/ciUHjgLx\n/XPkWqVT7lFJpalUDM0eliMDBLyXl4beHUt+feRP1LZy+dfPSLAPllTT3nqV\nJLNPN48zDi6RNwAJto3ZupUz2USGpG1SQ7Fj77/6ZIhHfmzEj+3Uyy3Qg522\nBtnrKVFRHLEsEdYyrY1AC5aSMxEOjY7afIb9oQzvCVdTptLmw/JFvghdUD4r\nK6jG8llSC2nzC4dYJN5+pO+ggSb2PE3J7VAEgO1RKwoYbYSKlWmcTSJeHaCw\nEQQa4J/tVrWMcdpKd4tiyujP8k1KBp3bLve8VW16+AXgoeEMeP8KgBgqRddl\ngv5F008Wwdgw4YOUh0sbQBj0F8YxBgSwoqJoQFIYOXewfdmCVRjnzfXnVy+P\nueZBH1mhGxy1ucAZF2jpCImIZxEZ3VaaV04H0hX+hZVAXBYhf5BkMYcIHb0I\nEQHeD8Z4KANRbpilCO6lCh5fyNXXe2WfB+PdgW04Tvdji/BJKnvhKpjg2wfX\n3RrDtlaZiF2nVfJBCg78460weGETRlDK4tkJglYJBPjhDLz1dSchHomDXuRV\nrxDya5KsU6aE3FM/5PkZG4yf9x2+J35gb5fmw2peEE0orlgwkUFUbDlRuTRU\ncR9FMPVWCw9Kxt/Wv7bI8bxDRZ0yznUif27MgGB13gpVQXkXS41qq9lM0GYm\n9s0x\r\n=b6cy\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"0b18277c9a786a5d101f7f6329f4b1818cffb144","scripts":{"format":"webmat && npm run update-types","update-types":"bower install && gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"_npmVersion":"6.1.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"resolutions":{"samsam":"1.1.3","inherits":"2.0.3","type-detect":"1.0.0","supports-color":"3.1.2","@webcomponents/webcomponentsjs":"2.0.0-beta.2"},"_nodeVersion":"9.8.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.21"},"_hasShrinkwrap":false,"devDependencies":{"bower":"^1.8.0","webmat":"^0.2.0","wct-browser-legacy":"^1.0.1","@polymer/iron-pages":"^3.0.0-pre.21","@polymer/paper-card":"^3.0.0-pre.21","@polymer/paper-input":"^3.0.0-pre.21","@polymer/paper-styles":"^3.0.0-pre.21","@polymer/paper-spinner":"^3.0.0-pre.21","@polymer/iron-demo-helpers":"^3.0.0-pre.21","@polymer/iron-test-helpers":"^3.0.0-pre.21","@polymer/paper-icon-button":"^3.0.0-pre.21","@polymer/iron-component-page":"^3.0.0-pre.21","@polymer/paper-toggle-button":"^3.0.0-pre.21","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.2.2"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.21_1529715961591_0.5806821662644872","host":"s3://npm-registry-packages"}},"3.0.0-pre.22":{"name":"@polymer/app-route","version":"3.0.0-pre.22","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.22","maintainers":[{"name":"aomarks","email":"aomarks@google.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"keanulee","email":"npm@keanulee.com"},{"name":"notwaldorf","email":"notwaldorf@gmail.com"},{"name":"polymer-devs","email":"admin@polymer-project.org"},{"name":"sorvell","email":"sorvell@google.com"},{"name":"usergenic","email":"brendan@usergenic.com"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"3f596c26c80cbe0ecb400e8d24a574af7e634b47","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.22.tgz","fileCount":25,"integrity":"sha512-eGbZg4op+6AH16K7qt/z9Jenk6SmgDX/G2LcjwAh2E8nXtA7IxaApF9Nwx13PvyznU8Q4t0YVjC/yGLSitF1SA==","signatures":[{"sig":"MEUCIQCeeNmGdTdY0PtVvybwBcvlS7byWuUkcVTQ1k0okZh9CQIgYZWUCeQ/P3n1vYJmkRdKK0ujVaKDVKA5GmDL4tZo26A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbgMuJCRA9TVsSAnZWagAAFyYP/il2Ga8HCRJX+XKZlCSj\nayn/CY2br7fHKwzSoOq+d+yOjOKFtiXCL9TOG3r2FF5CBMfNKaRtDuiunUX1\nBeJnZtd7J5gGq9hlKxZpnT9JrqdyiwtXr5FmQpW/dtJipjQ/fdqsku05FPSL\nMba9OoBvbYckUPGqvXb+33mgloLBXdR2+CF9yj4yDHYtOvzlKypPL5aqzShb\nWsfB6xPVhetKiaXPv1hs+oyochOZyDhVzlehwbhonJpnT/wwYbGi7YpTUash\nATzOg0RV1sAWmcHrTgjEIK4lglYT57WTiFXNjnyUKJxcm2aL/BulbsTcLm+X\nHV2QsZdtLzjYrXAXtP5+CSPZoHLf2scSXGI+RqaU44d8Ea5/hu0nvjgDUvJr\noL0Ous2yq4ZsE9epAfIDsj1bi5KH34vMT3Ppp4+feqTX/o9gop/MyUHLRwaV\nRAgR/D83lB0xwv9bIrt9+jZYk328XVArhgDYJkh4lm4YBVSKl7iy3teTA4eW\nh0PRL8wzrbzbn1OJD4Y4WLx45fl1eyLByFxADqwU5NTBTxHSGpXmpBilRPOQ\nnM6sZfN2+mg48cGGPOnQ5t83MOr3MTkSZqj5GXEkv8qQXLq219hzB8lcvriD\nEEBxTIrwpFT5Gr/IABGWkiq2YohSArk/faNDECfeE9YuWC9iHeBBKfbrdJZH\n2ECR\r\n=3bkG\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"c18509968b4aecd62fd7996714dfde3ae929d1f6","scripts":{"format":"webmat","prepack":"npm run generate-types","generate-types":"gen-typescript-declarations --deleteExisting --outDir ."},"_npmUser":{"name":"bicknellr","email":"bicknellr@gmail.com"},"_npmVersion":"6.4.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"10.9.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.20"},"_hasShrinkwrap":false,"devDependencies":{"webmat":"^0.2.2","@polymer/iron-ajax":"^3.0.0-pre.21","wct-browser-legacy":"^1.0.1","@polymer/iron-icons":"^3.0.0-pre.21","@polymer/iron-pages":"^3.0.0-pre.20","@polymer/paper-card":"^3.0.0-pre.20","@polymer/paper-input":"^3.0.0-pre.20","@polymer/paper-button":"^3.0.0-pre.21","@polymer/paper-styles":"^3.0.0-pre.20","@polymer/paper-spinner":"^3.0.0-pre.20","@polymer/iron-demo-helpers":"^3.0.0-pre.20","@polymer/iron-test-helpers":"^3.0.0-pre.20","@polymer/paper-icon-button":"^3.0.0-pre.20","@polymer/paper-toggle-button":"^3.0.0-pre.20","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.22_1535167369059_0.44687145005694995","host":"s3://npm-registry-packages"}},"3.0.0-pre.23":{"name":"@polymer/app-route","version":"3.0.0-pre.23","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.23","maintainers":[{"name":"aomarks","email":"aomarks@google.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"keanulee","email":"npm@keanulee.com"},{"name":"notwaldorf","email":"notwaldorf@gmail.com"},{"name":"polymer-devs","email":"admin@polymer-project.org"},{"name":"sorvell","email":"sorvell@google.com"},{"name":"usergenic","email":"brendan@usergenic.com"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"149cba19ab17c6ec69539152c213137faa322941","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.23.tgz","fileCount":25,"integrity":"sha512-P76YUGSjHWRlPwjSkWU8NWq2AHZ3ONMpkqxqmkKPixWYvc+N7kBut5NcmlTgWZ3NPk4JN7h61AGukGj8g9rPkw==","signatures":[{"sig":"MEQCIBtB5mwykmAz+0Wcr0ZqaLloWgg2d+wDxeCKD0cTl5mgAiBTw5u+x/hOrcQg4i279WzWC/bkOIhVcDW4TYaoQq5nIA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88517,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbgQIGCRA9TVsSAnZWagAAoksQAKPrtotXRU0qtdE5m5+l\nvB2wm5suCS1w3LMdswaEMWMebT7PQA0Sn6QZXS4remGCT2M8LXszMP5cPC0r\nN5tk1AHYEZ5nVihpAKDBvjpqYyh3aUFqhHRVKxQ0mnv7scJE4uOpSM+0eVq/\nw5/bz6s3kLxKIxaNPr66kNFXt4zsl09e0rO1OfmZq/1iD4B0hUAgr20UqpQV\n5RdE9DT5Sxpn51chUgSm36SdT8Qcc1+QAGV8+HpKtFnAOQgWFPwc41PxIELQ\nQN/54IgPy5bzAtPmGrk9xXrL6U4HxFy0jA0Hop7I6EEjWXtiz5eydEGcV6M6\n8MBBpmyM7LmhaVARWtPhjedemTMLY3DADGP3VCbZ8Ju47SqlWw1gfaexmy2W\nYmd0O6UIqckkqpegGEP+cvmho4rKQcuXgQmzI6bWK9TdQk5qA/yla5ArmyuQ\nYKA0EJK+3Jndj5WvTedjS1OEqh/+eu8JijcMJ+X776lnaN8oK3ZCondKlFth\nnX6CWg7E5SecuxZqmveHuytIWvTIPh41Bw74X1EYGvOgdB51oSsX7nL9HJ4M\nmjsUTz29sgTEbhVQeC+sCNHxpxEZ7j7mPpJvXCbXDvwBmg7TR6XTvFPQGb4n\ncVefeHjARZ1D1ZoALV4ItuEK6IPFi7ZJM0DGurrRo4bIp7LRPlzWa1rfEQHp\nuTJE\r\n=4WGC\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"f3d211b6e2caf8164936432fcdd3305595eb54b6","scripts":{"format":"webmat","prepack":"npm run generate-types","generate-types":"gen-typescript-declarations --deleteExisting --outDir . --verify"},"_npmUser":{"name":"bicknellr","email":"bicknellr@gmail.com"},"_npmVersion":"6.4.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"10.9.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.22"},"_hasShrinkwrap":false,"devDependencies":{"webmat":"^0.2.2","@polymer/iron-ajax":"^3.0.0-pre.22","wct-browser-legacy":"^1.0.1","@polymer/iron-icons":"^3.0.0-pre.22","@polymer/iron-pages":"^3.0.0-pre.22","@polymer/paper-card":"^3.0.0-pre.22","@polymer/paper-input":"^3.0.0-pre.22","@polymer/paper-button":"^3.0.0-pre.22","@polymer/paper-styles":"^3.0.0-pre.22","@polymer/paper-spinner":"^3.0.0-pre.22","@polymer/iron-demo-helpers":"^3.0.0-pre.22","@polymer/iron-test-helpers":"^3.0.0-pre.22","@polymer/paper-icon-button":"^3.0.0-pre.22","@polymer/paper-toggle-button":"^3.0.0-pre.22","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.23_1535181317878_0.6889044268131697","host":"s3://npm-registry-packages"}},"3.0.0-pre.24":{"name":"@polymer/app-route","version":"3.0.0-pre.24","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.24","maintainers":[{"name":"aomarks","email":"aomarks@google.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"justinfagnani","email":"justin@fagnani.com"},{"name":"keanulee","email":"npm@keanulee.com"},{"name":"notwaldorf","email":"notwaldorf@gmail.com"},{"name":"polymer-devs","email":"admin@polymer-project.org"},{"name":"samli","email":"sam@sam.li"},{"name":"sorvell","email":"sorvell@google.com"},{"name":"usergenic","email":"brendan@usergenic.com"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"07f3e883bd27754051411bdf057120d70fa07f8c","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.24.tgz","fileCount":25,"integrity":"sha512-iPZSU3YrB8fJ3Lc1/108BuqfUREwZqokltMFHvF/le8UsN63OvW0fCbpfxcNpyUV3x02gEuO8HTsamHFmxudgA==","signatures":[{"sig":"MEUCIB+D4/r8L7VA7Vyrqtt9a+hUMAvtwRCyEVrqCg7xVcIIAiEAso/5ZrKkUKvRIbmSGZukvAqszoD5swa+UwKw08Sxsc8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhgmQCRA9TVsSAnZWagAATVcQAIYw3lSn6TwWEB50X42n\nLr5afsvYZg1z1w1lIhrdOdMwycQV+nNrxC0tC2/8ND8pkw+LzCcGjANVhCoa\nNYy3yZHjzrh5eV7iS3H/hHQIb++g6wxHgPSCMDLt93f3Ml5y8XLeQH2NhwOg\nu+UUpLxbYuXWgfKp739uhip20kZCfupe9w5fcuSa3se71KSWIFBY7RlfVaiB\nTlAA2n4PxMU3sOcsyeanAGGOPMNUTdvabZ/DLDQ3/X4vhHyYcHF/PUfChzeL\nM0UVZxPcOkfdWgUjkmf05u4qfnh9RZxYUwtfcgCmsQwm+mgj36dPuaeRb5OE\nqQtWGu4opPjkZ5yL0RSxFv0s0BbEaUQftShkWAv0v47kkQMvpu12yzRxIznh\nkMxaPoR2zosAQOgSCagTu0Szglsg/U0xZpYA7XTkNmJxYkEfBz66alwFowIx\nX+/oolwwCdeI+lk9VxMLr/ALc0ppX92EIf1mMrNPvtxPZVfRlmHovUXbLS7T\noZuOJ3n4hXOotDch30SfXrjW/Jcjru748FEZWhMNinqpVxennDGGF3r0KarV\nA/TpcnigjtAxFsbk7/7IO98jytgnF64SKKwSOzU08jytsI2dIjJFK356vFvf\nWu1QcdwqUx2jE7iLl+ojxCFlqqb2m4s4JgNzgIX3Z1WUwCM7dbcxgOTrOjG5\nNqPq\r\n=CYPb\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"9ba8b829a21decec5562785a9ba7765e3e709f68","scripts":{"format":"webmat","prepack":"npm run generate-types","generate-types":"gen-typescript-declarations --deleteExisting --outDir . --verify"},"_npmUser":{"name":"bicknellr","email":"bicknellr@gmail.com"},"_npmVersion":"6.4.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"10.9.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.22"},"_hasShrinkwrap":false,"devDependencies":{"webmat":"^0.2.2","@polymer/iron-ajax":"^3.0.0-pre.22","wct-browser-legacy":"^1.0.1","@polymer/iron-icons":"^3.0.0-pre.22","@polymer/iron-pages":"^3.0.0-pre.22","@polymer/paper-card":"^3.0.0-pre.22","@polymer/paper-input":"^3.0.0-pre.22","@polymer/paper-button":"^3.0.0-pre.22","@polymer/paper-styles":"^3.0.0-pre.22","@polymer/paper-spinner":"^3.0.0-pre.22","@polymer/iron-demo-helpers":"^3.0.0-pre.22","@polymer/iron-test-helpers":"^3.0.0-pre.22","@polymer/paper-icon-button":"^3.0.0-pre.22","@polymer/paper-toggle-button":"^3.0.0-pre.22","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.24_1535510928272_0.5053225264231684","host":"s3://npm-registry-packages"}},"3.0.0-pre.25":{"name":"@polymer/app-route","version":"3.0.0-pre.25","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.25","maintainers":[{"name":"aomarks","email":"aomarks@google.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"justinfagnani","email":"justin@fagnani.com"},{"name":"keanulee","email":"npm@keanulee.com"},{"name":"notwaldorf","email":"notwaldorf@gmail.com"},{"name":"polymer-devs","email":"admin@polymer-project.org"},{"name":"samli","email":"sam@sam.li"},{"name":"sorvell","email":"sorvell@google.com"},{"name":"usergenic","email":"brendan@usergenic.com"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"b3e6396422801be017597625f6bd385e99911eea","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.25.tgz","fileCount":25,"integrity":"sha512-MzSjbOFhFmwkNdvcntmMAA+ZMZh6+4YYZ+H4vgCkCvZcvMudDrnphkmKI24l7tUZafvp7rV8g2mZdjnKzvZyXA==","signatures":[{"sig":"MEUCIQC8FVdZpHGOI7iSxLcE8QepP3fI9a9bCyeRsJXCRJ215QIgZlOemfoUlXjbRYDAmU854lyqILqjhytRO9s8IMdAZFA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhhq8CRA9TVsSAnZWagAAbnEP/3Bme+tkkgxVirWgMAKX\nP2DWYEdmBqpsM3tvTECuTUb1i/0BK3RQACmXtH090LgIa6E5kDYg2pcX6uGf\nlvXtnoNP4U7NP2o4XdC50DY7KNPYlm/R59jfiX8vdKNhbvd4+ppZOyF1HVKZ\nqpr0MpaTLLp7wdDe8+2MZynwKJ+3CmNmGXO2fCM0FwT8Paj1L9kMcnnha6zk\nHbaav0j1u7dR+YonMIqmovDpw6+pYrXV5PLK8lFBCXAo1r4d44NPYgDhxB3g\nhzNtuZZrHcYvnIXyy8Q+PVnGZX2zgW/Qq8mURoq+dmqOCdRMVQEDpeVKKxxi\nJAxSYFNJjFyxyEEJcprF+26xIOyVY5+VkWf5hhxd3T+Va5dAqyZAaYhhN5U/\nKPqqI6rhMQlSgYbjxPGXhhPMoOMkmMWdJXydz5bXPo8MTOtngzqWo4kZoRuC\nlCwuoUpJrdR4ibtERNCpVdSP6NR7HUzE7yQLnXl9f/v+gmAr6kUKuw6JCN7m\nAPd7nQ6L32LrV9SlJD7fjozpBl8defqvqQSl+Wrb8OVTz4VuCEaC7Ytviglf\nB8J020Ld9ftrQNIHKQPuVNI9l+PpPXUDbY4L0dAbtUDkaTPj6TSLJM9ZGQzy\nRUJJxoHYEXkK+oIa9BrCGxRh+CwmBJtA1OhE+efNepg/QEDD6evfL7NES0N1\nIai+\r\n=uFtl\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"bd14e605f7d08939eed9cda841f6b5e19b77c672","scripts":{"format":"webmat","prepack":"npm run generate-types","generate-types":"gen-typescript-declarations --deleteExisting --outDir . --verify"},"_npmUser":{"name":"bicknellr","email":"bicknellr@gmail.com"},"_npmVersion":"6.4.0","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"10.9.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.24"},"_hasShrinkwrap":false,"devDependencies":{"webmat":"^0.2.2","@polymer/iron-ajax":"^3.0.0-pre.24","wct-browser-legacy":"^1.0.1","@polymer/iron-icons":"^3.0.0-pre.24","@polymer/iron-pages":"^3.0.0-pre.24","@polymer/paper-card":"^3.0.0-pre.24","@polymer/paper-input":"^3.0.0-pre.24","@polymer/paper-button":"^3.0.0-pre.24","@polymer/paper-styles":"^3.0.0-pre.24","@polymer/paper-spinner":"^3.0.0-pre.24","@polymer/iron-demo-helpers":"^3.0.0-pre.24","@polymer/iron-test-helpers":"^3.0.0-pre.24","@polymer/paper-icon-button":"^3.0.0-pre.24","@polymer/paper-toggle-button":"^3.0.0-pre.24","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.25_1535515324231_0.358840042575727","host":"s3://npm-registry-packages"}},"3.0.0-pre.26":{"name":"@polymer/app-route","version":"3.0.0-pre.26","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0-pre.26","maintainers":[{"name":"aomarks","email":"aomarks@google.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"justinfagnani","email":"justin@fagnani.com"},{"name":"keanulee","email":"npm@keanulee.com"},{"name":"notwaldorf","email":"notwaldorf@gmail.com"},{"name":"polymer-devs","email":"admin@polymer-project.org"},{"name":"samli","email":"sam@sam.li"},{"name":"sorvell","email":"sorvell@google.com"},{"name":"usergenic","email":"brendan@usergenic.com"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"b160b288c7fc9ada6ce4527a8636cf7a22d3b105","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0-pre.26.tgz","fileCount":25,"integrity":"sha512-KI8bV8q9iAdIBJPUmXQhxzR9hcdntwebYY64U4nZJb0KMRAMVWKSgB1Ts3OYA1LOHgC7XE/qTaRTJkhdMDJ1gg==","signatures":[{"sig":"MEQCIDsok7qC7XZiVGb+n3O2cR4/Xq80NgVDTMJHLZbeO3AgAiAKDXl2eZvAMbFm1uNZO6BNZVRC2+5QbHq4ZLkzTzyN7w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88603,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmGhnCRA9TVsSAnZWagAAQzAP/j/KNowAci9RfbLtyGkH\n8vYCIzzsgCkTsbosbIJKEIRE37tWJu3ClLmAzvsOvaECx6/56Jon/JvoIW2i\nAjzEgdRnmhQH7PLrZThRQeMrjUdTv7ioC40oiLjgN1agl2XPabA1mqeNAhJN\nlPjciiqbc88KBdzUH30QCz/DC/ieZ1NCx6tVB5NehlBEn9oePaIQFRrzfmWl\n9HsgsKtSLiWm5oY3AUvfBsgLrcchS/2yricykX2LXforUelTSDtmTKCStG8/\n6qqX/cpcwSChVfFwHbLcgWXODuU2wSZUi2QFSY2snkovmnIKdDW+XmEqE6t/\nrIRh9esHqdoNTzna+qy20ZdSGtoi38sUyYMa8cjHkqnND1CIUGebN1a7JQgh\nGtPNp+Uq947hLx3N+DO4v/xLR7QAJ9bGler2rbbo3Je8MOtiLxjpwydb7aj9\nkhS1el1qHG0f3yjIGm89Jo90GIv0ZMgkodEucduZiGhp/yQB/jKr2nQQFi3p\niGChF+Np0RUyKYsQKdHDbduy0h3h4Fs7qXC94A8CyzPUQ7YQOxIQ/SNsQoR8\nGvm1vB+pdxXU0eHhg2XhJMFQCoyjFgYycBEOZ4GpPjx+eWX3nLC5T7fhJupP\nFJ6L0NdKna0k+3kRRwA0rVk5nNAAHxMlE9Tn1JaciZdGEHUXMUeTwsLIh4C2\nwj8+\r\n=PGTO\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"c5aa548655c55d6ad014c6202cf8015cc7069846","scripts":{"format":"webmat","prepare":"npm run generate-types","generate-types":"gen-typescript-declarations --deleteExisting --outDir . --verify"},"_npmUser":{"name":"bicknellr","email":"bicknellr@gmail.com"},"_npmVersion":"6.4.1","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"10.9.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.25"},"_hasShrinkwrap":false,"devDependencies":{"webmat":"^0.2.2","@polymer/iron-ajax":"^3.0.0-pre.25","wct-browser-legacy":"^1.0.1","@polymer/iron-icons":"^3.0.0-pre.25","@polymer/iron-pages":"^3.0.0-pre.25","@polymer/paper-card":"^3.0.0-pre.25","@polymer/paper-input":"^3.0.0-pre.25","@polymer/paper-button":"^3.0.0-pre.25","@polymer/paper-styles":"^3.0.0-pre.25","@polymer/paper-spinner":"^3.0.0-pre.25","@polymer/iron-demo-helpers":"^3.0.1","@polymer/iron-test-helpers":"^3.0.0-pre.25","@polymer/paper-icon-button":"^3.0.0-pre.25","@polymer/paper-toggle-button":"^3.0.0-pre.25","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0-pre.26_1536714854722_0.8585103528967062","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@polymer/app-route","version":"3.0.0","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.0","maintainers":[{"name":"aomarks","email":"aomarks@google.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"justinfagnani","email":"justin@fagnani.com"},{"name":"keanulee","email":"npm@keanulee.com"},{"name":"notwaldorf","email":"notwaldorf@gmail.com"},{"name":"polymer-devs","email":"admin@polymer-project.org"},{"name":"samli","email":"sam@sam.li"},{"name":"sorvell","email":"sorvell@google.com"},{"name":"usergenic","email":"brendan@usergenic.com"}],"homepage":"https://github.com/PolymerElements/app-route","dist":{"shasum":"e2a3a0cdfd3191302cff4ce46893c824ea5dbe8b","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.0.tgz","fileCount":25,"integrity":"sha512-GVB48VOB5bgroi2+T84U8ygdXDFFs2w8dL6EKMQEJ7Bcl86R8SSxIvdnezl9sy8wsehmIdmjXctOIY/KaZjgBA==","signatures":[{"sig":"MEUCIQCXvQhKHiaTzD7n39qtLRKV2w1Qczq5R6sawGXPGIMKJQIgDw3Lmuc4Y72KNUUdMOrakTf+be1yeFIGljL6uo1Nlpk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88596,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmeD+CRA9TVsSAnZWagAAc74QAJ+V1ail9PiOjd2q0zgg\nh28Gh1VpgvuiQ69JrrqIWNCw60ewY3Ig7/RxNIHiEDiqkp5mrUtHfuRvVPis\no2oLUOJCpoc/bvlMVubisfXnx11zZx9or6lHteBb3amjZYjXsUvN9SdS+uWZ\nBp+sIGfTdYLMMy7YuHF+3UbM1kHnrGyt6orOKURiN4n90kewHdzqDBtpM+zB\n78pxG7zBltGvf7uKJubQyJiZyghK5Dx8T6K5HXV87jtQJ5yxNQSUd09bdGSw\nnfHLpOmYLRO+YgiSPxx4VSBv5qigB4ZzAUWI+Q+14n4K1NdO883LUcWu07AH\nJLVDXs4Xt0lPlx8myA6G+4ZKPdBblPlEpi3GcLj9kvKugVLcQFvdXxn0KA6F\nSHjo+t4DXl0e2l0rPIdY3+yFIkeLa9ZdMkNEsRh5c7u1wdzAmk+a1KUZzu6i\nt8GcpvhgTVmHg/FB0rJsCKRNIHIaUjVyRdmSpMHSQFNA6eM8PSmJymn3tQXc\nLrwvjCa3WvJV1s23K8FCHWyev49QSGimEzi78ls+WSeCOQt95Kti1NKA9Kfy\nZOgRqmqF5Z2hrcg2d1ZTd4XIYtLAKf430+PhFT3Enp+x8k2Gy0Rtd7SAnqZ4\nSykteY2T3oLBLPpuHKMvOqMU/369k64kf3VPltl0t1cBLMkOEpFeTbezp5vT\nhlEc\r\n=DQyt\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"54b5db5da667fb841b0c26a88084fa2bda1b5856","scripts":{"format":"webmat","prepare":"npm run generate-types","generate-types":"gen-typescript-declarations --deleteExisting --outDir . --verify"},"_npmUser":{"name":"bicknellr","email":"bicknellr@gmail.com"},"_npmVersion":"6.4.1","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"10.9.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.26"},"_hasShrinkwrap":false,"devDependencies":{"webmat":"^0.2.2","@polymer/iron-ajax":"^3.0.0-pre.26","wct-browser-legacy":"^1.0.1","@polymer/iron-icons":"^3.0.0-pre.26","@polymer/iron-pages":"^3.0.0-pre.26","@polymer/paper-card":"^3.0.0-pre.26","@polymer/paper-input":"^3.0.0-pre.26","@polymer/paper-button":"^3.0.0-pre.26","@polymer/paper-styles":"^3.0.0-pre.26","@polymer/paper-spinner":"^3.0.0-pre.26","@polymer/iron-demo-helpers":"^3.0.1","@polymer/iron-test-helpers":"^3.0.0-pre.26","@polymer/paper-icon-button":"^3.0.0-pre.26","@polymer/paper-toggle-button":"^3.0.0-pre.26","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.0_1536811261765_0.3433241879398701","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"@polymer/app-route","version":"3.0.1","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.1","maintainers":[{"name":"aomarks","email":"aomarks@google.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"justinfagnani","email":"justin@fagnani.com"},{"name":"keanulee","email":"npm@keanulee.com"},{"name":"notwaldorf","email":"notwaldorf@gmail.com"},{"name":"polymer-devs","email":"admin@polymer-project.org"},{"name":"samli","email":"sam@sam.li"},{"name":"sorvell","email":"sorvell@google.com"},{"name":"usergenic","email":"brendan@usergenic.com"}],"homepage":"https://github.com/PolymerElements/app-route","bugs":{"url":"https://github.com/PolymerElements/app-route/issues"},"dist":{"shasum":"d31eca3ff109802577a02fd997873b4ef133650e","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.1.tgz","fileCount":25,"integrity":"sha512-I5dHhSO+sAhdQGr71aeoNvilPkreQ/ElWom4lUKWAO55S2GLpZGRKgsie5zGsRcvJO8cunsOXgXYwox+zQzW3g==","signatures":[{"sig":"MEQCICXrTggVtulxLg3vlQkWDECZ9P5tEmfVNlzgu7dsx1q8AiBm6twbvlgdB87nNPmfYNlE+/U3Vs6JAFe7+A/0VchOZA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88694,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmsEUCRA9TVsSAnZWagAAfTMP/2xdOXDqzcjmmW8zaFZU\nm9WlDh04sBKEdBX7Aoi5FzRQn/pni5Amd2Ksec1rfXmqPD7Ows0TsILvN5Mt\n4ZIGlRDw6KLcMtW6oDKvpuLqcsGi17MdY9z70hA1ugKvuq6VM0rZ5dLxXNgN\nOHrSie0+qqM1Uj5+JuhxbafGmN4AQYGS8+UUc7FH2s0WM1WZyNdxmSyFupWC\nK/jAFWqj0rwOUC/UxAsqbQTHQXneVwIBhXNdm5NDCxvV8uMhFvv/FZMcKTVD\nMifrjH3CCWAQiAeZ+77AOTp8xuUVx1SL5bGxm+/o0UzVz2Q6RG6Fo9OtqqPP\n77icovmlnG4bjsCa90LF30SH5X9VfJcffL+6IWXdNpe9gJDPgLMphCKCbQKx\nBotwUtNOppiNVhVFXSPRhYThv+Gey25K61r+zhUpKAkhCpu0nZwaAxbEa2Ff\nUsISLc5wqw/CdawtiUhlRcJe9czbqfCCM3myfKs19xM4iTflPebRKTiqa/Ax\nElWZlDkTmSdw6Ag0amqZYjvki9247jzpJ9liVjCTx1h0XFA/++ysB9womquU\nf5VJw/0j4LSLh1xA1Y73nfOUVTbOEc0xI3ExVkHHJeWSTjKoT6ip12khEYkX\n1HnqTmkq4zGXNXgfN2ku1GXM4XVhAT/b/j7pgRXbNpwn2zGcPS2UCJnUdwh7\no5m5\r\n=0owr\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"d21b496c1206e7858dd692b36d07914d549bbc59","scripts":{"format":"webmat","prepare":"npm run generate-types","generate-types":"gen-typescript-declarations --deleteExisting --outDir . --verify"},"_npmUser":{"name":"bicknellr","email":"bicknellr@gmail.com"},"repository":{"url":"git://github.com/PolymerElements/app-route.git","type":"git"},"_npmVersion":"6.4.1","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"10.9.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.26"},"_hasShrinkwrap":false,"devDependencies":{"webmat":"^0.2.2","@polymer/iron-ajax":"^3.0.0-pre.26","wct-browser-legacy":"^1.0.1","@polymer/iron-icons":"^3.0.0-pre.26","@polymer/iron-pages":"^3.0.0-pre.26","@polymer/paper-card":"^3.0.0-pre.26","@polymer/paper-input":"^3.0.0-pre.26","@polymer/paper-button":"^3.0.0-pre.26","@polymer/paper-styles":"^3.0.0-pre.26","@polymer/paper-spinner":"^3.0.0-pre.26","@polymer/iron-demo-helpers":"^3.0.1","@polymer/iron-test-helpers":"^3.0.0-pre.26","@polymer/paper-icon-button":"^3.0.0-pre.26","@polymer/paper-toggle-button":"^3.0.0-pre.26","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.1_1536868627674_0.5014379201324619","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"@polymer/app-route","version":"3.0.2","author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","_id":"@polymer/app-route@3.0.2","maintainers":[{"name":"aomarks","email":"aomarks@google.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"justinfagnani","email":"justin@fagnani.com"},{"name":"keanulee","email":"npm@keanulee.com"},{"name":"notwaldorf","email":"notwaldorf@gmail.com"},{"name":"polymer-devs","email":"admin@polymer-project.org"},{"name":"samli","email":"sam@sam.li"},{"name":"sorvell","email":"sorvell@google.com"},{"name":"usergenic","email":"brendan@usergenic.com"}],"homepage":"https://github.com/PolymerElements/app-route","bugs":{"url":"https://github.com/PolymerElements/app-route/issues"},"dist":{"shasum":"749096fb610fb15d27c7b68446406f30786cf93d","tarball":"https://registry.npmjs.org/@polymer/app-route/-/app-route-3.0.2.tgz","fileCount":26,"integrity":"sha512-8Y34evmsaYh7ONr+zLwLzXaU0iOZZQj1E2uB3iaToQHbOP1POhKlnmAycBQ/eFB8BwrdSUBaDQk+rZhio78FQw==","signatures":[{"sig":"MEYCIQDdZTc5AM6ZS5EZQsZZKHBoQ80jyCQGKrNYavsuSrP9DgIhAPRgJK1uU76rez3aAMksXDUq/qseBS00ZQP1/7dzmsVT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88773,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2WyUCRA9TVsSAnZWagAAGCwQAJkTH9fMkfNA6moj9KuG\nx0tgsrLf5mkwvo9IYA4B3v0xRc+Jephoz4FR5gjAhRS0Na28SEbssEqf9od+\nHqnaDXFSX3HVha2VnJRCFZQg9nsuNzTA81z/ZHynJTKqJCRcZemEq3IwtBSq\nOtfb55p9r/lV7R0zu+QElxsfykAl0XwN0WeJjFk/R1uSvTv4hOPyyi2hD1yw\nDk9wjlSBeB1L1D+63NEFFdkiQrJDvNkGOqxan2xR4Yl40l+vu6fN3DwZiOwV\nzoz61rmOb000ug/XQ8jMNpiPAfHJgLCXpdZjShER1DIzu9bNsPnOrsey6G5u\nS4qd4R15wm3yg7jX+FpIMEZkY+ZxG61maLUZ+M4xsLWxsaprLPqZISlAM4/K\nDl2POpctjT5CRrgumYAI6L5ebWrhe70M8GEwMfgCJtYnivCc8KYN0G5OGhRN\n0i9sus+tWclsn2MmIqFVd0gO860+7p2FXbPSZLLRiEP0MQsl8Qmr7Pbrk4jd\nXV+wrWJSQd8DsZMzI3QcDOWq6LriVNguMbBtb1tpc2GVLf/hTsPVfPMRDLX1\nnMCceZTTupdnQjRbSC91/rNlki8W7O+MGzKiioSQ80wnWWucKTvq9JnnknGo\nO7q2F9qu85WwYC2bC/qCGYvkFn0nTP/jICvbvQbKyEOZrfFxRwdhPggdV3SL\nFz3x\r\n=v+hA\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"c2620f58ee4c5becec273b5e02f69da09a90a49a","scripts":{"format":"webmat","prepare":"npm run generate-types","generate-types":"gen-typescript-declarations --deleteExisting --outDir . --verify"},"_npmUser":{"name":"bicknellr","email":"bicknellr@gmail.com"},"repository":{"url":"git://github.com/PolymerElements/app-route.git","type":"git"},"_npmVersion":"6.4.1","description":"App routing expressed as Polymer Custom Elements.","directories":{},"_nodeVersion":"10.9.0","dependencies":{"@polymer/polymer":"^3.0.0","@polymer/iron-location":"^3.0.0-pre.26"},"_hasShrinkwrap":false,"devDependencies":{"webmat":"^0.2.2","@polymer/iron-ajax":"^3.0.0-pre.26","wct-browser-legacy":"^1.0.1","@polymer/iron-icons":"^3.0.0-pre.26","@polymer/iron-pages":"^3.0.0-pre.26","@polymer/paper-card":"^3.0.0-pre.26","@polymer/paper-input":"^3.0.0-pre.26","@polymer/paper-button":"^3.0.0-pre.26","@polymer/paper-styles":"^3.0.0-pre.26","@polymer/paper-spinner":"^3.0.0-pre.26","@polymer/iron-demo-helpers":"^3.0.1","@polymer/iron-test-helpers":"^3.0.0-pre.26","@polymer/paper-icon-button":"^3.0.0-pre.26","@polymer/paper-toggle-button":"^3.0.0-pre.26","@webcomponents/webcomponentsjs":"^2.0.0","@polymer/gen-typescript-declarations":"^1.5.1"},"_npmOperationalInternal":{"tmp":"tmp/app-route_3.0.2_1536892959913_0.22317094347614064","host":"s3://npm-registry-packages"}}},"time":{"created":"2017-01-20T23:09:42.184Z","modified":"2024-10-07T21:27:03.734Z","0.9.3-pre.1":"2017-01-20T23:09:42.184Z","0.9.3-pre.2":"2017-01-20T23:23:29.750Z","0.9.3-pre.3":"2017-01-24T00:20:13.385Z","3.0.0-pre.1":"2017-08-22T07:17:03.515Z","3.0.0-pre.2":"2018-01-12T01:41:58.225Z","3.0.0-pre.4":"2018-01-16T23:53:55.739Z","3.0.0-pre.6":"2018-01-24T23:03:50.058Z","3.0.0-pre.7":"2018-01-30T18:48:38.099Z","3.0.0-pre.8":"2018-02-07T18:56:23.854Z","3.0.0-pre.10":"2018-02-22T23:15:13.488Z","3.0.0-pre.11":"2018-03-09T01:17:06.781Z","3.0.0-pre.12":"2018-03-22T16:56:32.001Z","3.0.0-pre.13":"2018-05-01T22:56:05.134Z","3.0.0-pre.14":"2018-05-02T00:36:54.578Z","3.0.0-pre.15":"2018-05-02T20:53:51.968Z","3.0.0-pre.16":"2018-05-04T20:17:12.781Z","3.0.0-pre.17":"2018-05-08T05:07:50.883Z","3.0.0-pre.18":"2018-05-09T10:00:02.717Z","3.0.0-pre.19":"2018-05-09T20:20:48.152Z","3.0.0-pre.20":"2018-06-23T00:18:05.925Z","3.0.0-pre.21":"2018-06-23T01:06:01.656Z","3.0.0-pre.22":"2018-08-25T03:22:49.154Z","3.0.0-pre.23":"2018-08-25T07:15:17.965Z","3.0.0-pre.24":"2018-08-29T02:48:48.403Z","3.0.0-pre.25":"2018-08-29T04:02:04.415Z","3.0.0-pre.26":"2018-09-12T01:14:14.860Z","3.0.0":"2018-09-13T04:01:02.320Z","3.0.1":"2018-09-13T19:57:07.822Z","3.0.2":"2018-09-14T02:42:40.148Z"},"bugs":{"url":"https://github.com/PolymerElements/app-route/issues"},"author":{"name":"The Polymer Authors"},"license":"BSD-3-Clause","homepage":"https://github.com/PolymerElements/app-route","repository":{"url":"git://github.com/PolymerElements/app-route.git","type":"git"},"description":"App routing expressed as Polymer Custom Elements.","maintainers":[{"email":"rictic@gmail.com","name":"rictic"},{"email":"aomarks@gmail.com","name":"aomarks"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"sorvell@google.com","name":"sorvell"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"brendan@usergenic.com","name":"usergenic"},{"email":"admin@polymer-project.org","name":"polymer-devs"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"kevinpschaaf@gmail.com","name":"kevinpschaaf"},{"email":"justin@fagnani.com","name":"justinfagnani"}],"readme":"[![Published on NPM](https://img.shields.io/npm/v/@polymer/app-route.svg)](https://www.npmjs.com/package/@polymer/app-route)\n[![Build status](https://travis-ci.org/PolymerElements/app-route.svg?branch=master)](https://travis-ci.org/PolymerElements/app-route)\n[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://webcomponents.org/element/@polymer/app-route)\n\n\n## &lt;app-route&gt;\n`app-route` is an element that enables declarative, self-describing routing\nfor a web app.\n\nSee: [Documentation](https://www.webcomponents.org/element/@polymer/app-route),\n  [Large Demo](https://www.webcomponents.org/element/@polymer/app-route/demo/demo/index.html),\n  [Simple Demo](https://www.webcomponents.org/element/@polymer/app-route/demo/demo/simple-demo.html),\n  [Data Loading Demo](https://www.webcomponents.org/element/@polymer/app-route/demo/demo/data-loading-demo.html).\n\n## Usage\n\n### Installation\n```\nnpm install --save @polymer/app-route\n```\n\n### In an HTML file\n```html\n<html>\n  <head>\n    <script type=\"module\">\n      import '@polymer/polymer/lib/elements/dom-bind.js';\n      import '@polymer/app-route/app-location.js';\n      import '@polymer/app-route/app-route.js';\n    </script>\n  </head>\n  <body>\n    <dom-bind>\n      <template>\n        <app-location route=\"{{route}}\"></app-location>\n        <app-route\n            route=\"{{route}}\"\n            pattern=\"/:page\"\n            data=\"{{routeData}}\"\n            tail=\"{{subroute}}\">\n        </app-route>\n        <app-route\n            route=\"{{subroute}}\"\n            pattern=\"/:id\"\n            data=\"{{subrouteData}}\">\n        </app-route>\n      </template>\n    </dom-bind>\n  </body>\n</html>\n```\n\n### In a Polymer 3 element\n```js\nimport {PolymerElement, html} from '@polymer/polymer';\nimport '@polymer/app-route/app-location.js';\nimport '@polymer/app-route/app-route.js';\n\nclass SampleElement extends PolymerElement {\n  static get template() {\n    return html`\n      <app-location route=\"{{route}}\"></app-location>\n      <app-route\n          route=\"{{route}}\"\n          pattern=\"/:page\"\n          data=\"{{routeData}}\"\n          tail=\"{{subroute}}\">\n      </app-route>\n      <app-route\n          route=\"{{subroute}}\"\n          pattern=\"/:id\"\n          data=\"{{subrouteData}}\">\n      </app-route>\n    `;\n  }\n}\ncustomElements.define('sample-element', SampleElement);\n```\n\n## Contributing\nIf you want to send a PR to this element, here are the instructions for running\nthe tests and demo locally:\n\n### Installation\n```sh\ngit clone https://github.com/PolymerElements/app-route\ncd app-route\nnpm install\nnpm install -g polymer-cli\n```\n\n### Running the demo locally\n```sh\npolymer serve --npm\nopen http://127.0.0.1:<port>/demo/index.html\nopen http://127.0.0.1:<port>/demo/simple-demo.html\nopen http://127.0.0.1:<port>/demo/data-loading-demo.html\n```\n\n### Running the tests\n```sh\npolymer test --npm\n```","readmeFilename":"README.md"}