├── .browserslistrc ├── example └── nuxtjs │ ├── .gitignore │ ├── pages │ ├── Fun │ │ ├── _id.vue │ │ ├── _id │ │ │ ├── _name.vue │ │ │ ├── index.vue │ │ │ └── _name │ │ │ │ └── index.vue │ │ └── index.vue │ ├── index.vue │ └── Fun.vue │ ├── readme.md │ ├── plugins │ ├── vue-breadcrumbs.ts │ └── shims-vue.d.ts │ ├── nuxt.config.js │ ├── package.json │ ├── tsconfig.json │ └── layouts │ └── default.vue ├── src ├── docs │ ├── .npmrc │ ├── .browserslistrc │ ├── .env.production │ ├── src │ │ ├── assets │ │ │ └── logo.png │ │ ├── shims-vue.d.ts │ │ ├── main.ts │ │ ├── shims-tsx.d.ts │ │ ├── views │ │ │ └── Home.vue │ │ ├── App.vue │ │ └── router │ │ │ └── index.ts │ ├── vue.config.js │ ├── .gitignore │ ├── README.md │ ├── package.json │ └── tsconfig.json ├── shims-vue.d.ts └── index.ts ├── .lintstagedrc ├── .nycrc ├── ava.config.js ├── .gitignore ├── docs ├── img │ └── logo.82b9c7a5.png ├── css │ ├── chunk-3302e43a.13378d60.css │ └── app.b107de8b.css ├── index.html └── js │ ├── chunk-3302e43a.400b482c.js │ ├── chunk-3302e43a.400b482c.js.map │ ├── app.d9802201.js │ └── app.d9802201.js.map ├── tslint.json ├── .huskyrc ├── test └── test-registration.js ├── .npmignore ├── .clintonrc.json ├── .editorconfig ├── tsconfig.json ├── .github ├── funding.yml └── workflows │ └── nodejs.yml ├── rollup.config.js ├── license ├── package.json ├── readme.md └── changelog.md /.browserslistrc: -------------------------------------------------------------------------------- 1 | ie 11 2 | -------------------------------------------------------------------------------- /example/nuxtjs/.gitignore: -------------------------------------------------------------------------------- 1 | .nuxt -------------------------------------------------------------------------------- /src/docs/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false -------------------------------------------------------------------------------- /.lintstagedrc: -------------------------------------------------------------------------------- 1 | { 2 | "src/*.ts": "tslint -c tslint.json" 3 | } -------------------------------------------------------------------------------- /src/docs/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | -------------------------------------------------------------------------------- /example/nuxtjs/pages/Fun/_id.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "reporter": ["lcov", "text"], 3 | "extension": [".js", ".vue"] 4 | } -------------------------------------------------------------------------------- /example/nuxtjs/pages/index.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /src/docs/.env.production: -------------------------------------------------------------------------------- 1 | NODE_ENV=production 2 | VUE_APP_BASE_URL=/vue-2-breadcrumbs/ -------------------------------------------------------------------------------- /example/nuxtjs/pages/Fun/_id/_name.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /ava.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | babel: true, 3 | files: [ 4 | "test/test-*.js" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .nyc_output 3 | npm-debug.log 4 | lib 5 | _gh-pages 6 | .publish 7 | coverage 8 | -------------------------------------------------------------------------------- /docs/img/logo.82b9c7a5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Scrum/vue-2-breadcrumbs/HEAD/docs/img/logo.82b9c7a5.png -------------------------------------------------------------------------------- /src/docs/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Scrum/vue-2-breadcrumbs/HEAD/src/docs/src/assets/logo.png -------------------------------------------------------------------------------- /example/nuxtjs/readme.md: -------------------------------------------------------------------------------- 1 | ### Insall 2 | ```bash 3 | $ npm install 4 | ``` 5 | 6 | ### Run 7 | ```bash 8 | $ npm start 9 | ``` -------------------------------------------------------------------------------- /src/docs/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | publicPath: '', 3 | outputDir: '../../docs', 4 | runtimeCompiler: true 5 | } -------------------------------------------------------------------------------- /example/nuxtjs/pages/Fun.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "tslint:latest", 3 | "rules": { 4 | "no-implicit-dependencies": [true, "dev"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /example/nuxtjs/plugins/vue-breadcrumbs.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueBreadcrumbs from '../../../src/index' 3 | 4 | Vue.use(VueBreadcrumbs) -------------------------------------------------------------------------------- /example/nuxtjs/pages/Fun/index.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /example/nuxtjs/pages/Fun/_id/index.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /example/nuxtjs/pages/Fun/_id/_name/index.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /example/nuxtjs/nuxt.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | buildModules: ['@nuxt/typescript-build'], 3 | plugins: [{ssr: false, src: '~/plugins/vue-breadcrumbs.ts'}] 4 | } -------------------------------------------------------------------------------- /src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | import { RouteRecord } from "vue-router"; 2 | 3 | declare module 'vue/types/vue' { 4 | interface Vue { 5 | $breadcrumbs: RouteRecord[] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/docs/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | import { RouteRecord } from 'vue-router' 2 | 3 | declare module 'vue/types/vue' { 4 | interface Vue { 5 | $breadcrumbs: Array 6 | } 7 | } -------------------------------------------------------------------------------- /.huskyrc: -------------------------------------------------------------------------------- 1 | { 2 | "hooks": { 3 | "pre-push": "npm t", 4 | "pre-commit": "clinton && lint-staged", 5 | "commit-msg": "commitlint --extends=@commitlint/config-angular -e" 6 | } 7 | } -------------------------------------------------------------------------------- /docs/css/chunk-3302e43a.13378d60.css: -------------------------------------------------------------------------------- 1 | .sidebar[data-v-0bc3afe8]{display:flex;align-items:center}.sidebar a{color:#2c3e50;text-decoration:none;padding-top:.25rem;padding-bottom:.25rem;padding-left:1em}.sidebar a.router-link-active{color:#42b983} -------------------------------------------------------------------------------- /test/test-registration.js: -------------------------------------------------------------------------------- 1 | import test from 'ava'; 2 | import VueBreadcrumbs from '../lib/vue-2-breadcrumbs.common'; 3 | 4 | test('default export should be a function', t => { 5 | t.true(VueBreadcrumbs.install instanceof Function); 6 | }); 7 | -------------------------------------------------------------------------------- /example/nuxtjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nuxt-breadcrumbs", 3 | "scripts": { 4 | "start": "nuxt" 5 | }, 6 | "dependencies": {}, 7 | "devDependencies": { 8 | "@nuxt/types": "^2.15.4", 9 | "@nuxt/typescript-build": "^2.1.0", 10 | "nuxt": "^2.15.4" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /example/nuxtjs/plugins/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.vue" { 2 | import Vue from 'vue' 3 | export default Vue 4 | } 5 | 6 | import { RouteRecord } from "vue-router"; 7 | 8 | declare module 'vue/types/vue' { 9 | interface Vue { 10 | $breadcrumbs: RouteRecord[] 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/docs/src/main.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import Plugin from '../../index' 5 | 6 | Vue.config.productionTip = false 7 | 8 | Vue.use(Plugin) 9 | 10 | new Vue({ 11 | router, 12 | render: h => h(App) 13 | }).$mount('#app') 14 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | src 3 | example 4 | .gitignore 5 | .github 6 | .travis.yml 7 | coverage 8 | .nyc_output 9 | npm-debug.log 10 | docs 11 | dist 12 | test 13 | .clinton.json 14 | .editorconfig 15 | .huskyrc 16 | .lintstagedrc 17 | .nycrc 18 | ava.config.js 19 | rollup.config.js 20 | tsconfig.json 21 | tslint.json -------------------------------------------------------------------------------- /src/docs/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /public 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw? 22 | -------------------------------------------------------------------------------- /src/docs/README.md: -------------------------------------------------------------------------------- 1 | # demo 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Customize configuration 19 | See [Configuration Reference](https://cli.vuejs.org/config/). 20 | -------------------------------------------------------------------------------- /.clintonrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignores": [ 3 | "test/**", 4 | "tmp/**", 5 | "lib/**", 6 | "dist/**", 7 | "docs/**", 8 | "example/**", 9 | "src/docs/**", 10 | "*.{html,jpg}" 11 | ], 12 | "rules": { 13 | "pkg-main": "off", 14 | "xo": "off", 15 | "use-travis": "off", 16 | "ava": "off", 17 | "pkg-schema": "off" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/docs/src/shims-tsx.d.ts: -------------------------------------------------------------------------------- 1 | import Vue, { VNode } from 'vue' 2 | 3 | declare global { 4 | namespace JSX { 5 | // tslint:disable no-empty-interface 6 | interface Element extends VNode {} 7 | // tslint:disable no-empty-interface 8 | interface ElementClass extends Vue {} 9 | interface IntrinsicElements { 10 | [elem: string]: any 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 4 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [{package.json,*.yml,*.jade,*.pss,*.css,*.js,*.md,.*,*.ts}] 12 | indent_size = 2 13 | 14 | [{changelog.md,.*}] 15 | insert_final_newline = false 16 | 17 | [*.md] 18 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /src/docs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "docs", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build" 8 | }, 9 | "dependencies": { 10 | "vue": "^2.6.11", 11 | "vue-router": "^3.1.6" 12 | }, 13 | "devDependencies": { 14 | "@vue/cli-plugin-router": "^4.5.7", 15 | "@vue/cli-plugin-typescript": "^4.5.7", 16 | "@vue/cli-service": "^4.5.7", 17 | "typescript": "^4.0.3", 18 | "vue-template-compiler": "^2.6.11" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "esnext", 5 | "strict": true, 6 | "allowJs": true, 7 | "checkJs": true, 8 | "importHelpers": true, 9 | "moduleResolution": "node", 10 | "allowSyntheticDefaultImports": true, 11 | "esModuleInterop": true, 12 | "experimentalDecorators": true, 13 | "baseUrl": ".", 14 | "types": ["node", "Vue"], 15 | "declaration": true, 16 | "lib": ["es2015", "DOM", "DOM.Iterable"] 17 | }, 18 | "include": [ 19 | "src/*.ts" 20 | ], 21 | "exclude": ["node_modules"] 22 | } 23 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | Vue App
-------------------------------------------------------------------------------- /.github/funding.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # scrums 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: ['https://paypal.me/scrumpay'] 13 | -------------------------------------------------------------------------------- /example/nuxtjs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2018", 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "lib": [ 7 | "ESNext", 8 | "ESNext.AsyncIterable", 9 | "DOM" 10 | ], 11 | "esModuleInterop": true, 12 | "allowJs": true, 13 | "sourceMap": true, 14 | "strict": true, 15 | "noEmit": true, 16 | "baseUrl": ".", 17 | "paths": { 18 | "~/*": [ 19 | "./*" 20 | ], 21 | "@/*": [ 22 | "./*" 23 | ] 24 | }, 25 | "types": [ 26 | "@types/node", 27 | "@nuxt/types" 28 | ] 29 | }, 30 | "exclude": [ 31 | "node_modules" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /src/docs/src/views/Home.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 17 | 18 | 34 | -------------------------------------------------------------------------------- /docs/js/chunk-3302e43a.400b482c.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-3302e43a"],{2154:function(t,e,n){"use strict";var a=n("ed34"),s=n.n(a);s.a},"61f4":function(t,e,n){"use strict";var a=n("63a8"),s=n.n(a);s.a},"63a8":function(t,e,n){},bb51:function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"home"},[a("img",{attrs:{alt:"Vue logo",src:n("cf05")}}),a("section",[a("router-view",{staticClass:"sidebar",attrs:{name:"sidebar"}}),a("router-view",{staticClass:"content",attrs:{name:"content"}})],1)])},s=[],c=(n("61f4"),n("2154"),n("2877")),i={},r=Object(c["a"])(i,a,s,!1,null,"0bc3afe8",null);e["default"]=r.exports},ed34:function(t,e,n){}}]); 2 | //# sourceMappingURL=chunk-3302e43a.400b482c.js.map -------------------------------------------------------------------------------- /src/docs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "esnext", 5 | "strict": true, 6 | "jsx": "preserve", 7 | "importHelpers": true, 8 | "moduleResolution": "node", 9 | "esModuleInterop": true, 10 | "allowSyntheticDefaultImports": true, 11 | "sourceMap": true, 12 | "baseUrl": ".", 13 | "types": [ 14 | "webpack-env" 15 | ], 16 | "paths": { 17 | "@/*": [ 18 | "src/*" 19 | ] 20 | }, 21 | "lib": [ 22 | "esnext", 23 | "dom", 24 | "dom.iterable", 25 | "scripthost" 26 | ] 27 | }, 28 | "include": [ 29 | "src/**/*.ts", 30 | "src/**/*.tsx", 31 | "src/**/*.vue", 32 | "tests/**/*.ts", 33 | "tests/**/*.tsx" 34 | ], 35 | "exclude": [ 36 | "node_modules" 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- 1 | name: Actions Status 2 | on: 3 | pull_request: 4 | types: [opened, synchronize] 5 | branches: 6 | - master 7 | env: 8 | CI: true 9 | 10 | jobs: 11 | run: 12 | name: Node ${{ matrix.node }} on ${{ matrix.os }} 13 | runs-on: ${{ matrix.os }} 14 | 15 | strategy: 16 | fail-fast: false 17 | matrix: 18 | node: [12, 14, 16] 19 | os: [ubuntu-latest] 20 | 21 | steps: 22 | - name: Clone repository 23 | uses: actions/checkout@v2 24 | 25 | - name: Set Node.js version 26 | uses: actions/setup-node@v1 27 | with: 28 | node-version: ${{ matrix.node }} 29 | 30 | - name: Install npm dependencies 31 | run: npm ci 32 | 33 | - name: Run tests 34 | run: npm run test 35 | 36 | - name: Run Coveralls 37 | uses: coverallsapp/github-action@master 38 | with: 39 | github-token: "${{ secrets.GITHUB_TOKEN }}" 40 | -------------------------------------------------------------------------------- /docs/css/app.b107de8b.css: -------------------------------------------------------------------------------- 1 | pre{text-align:left}nav{width:150px}nav img{height:46px;margin-bottom:16px}ul{list-style:none;margin:0;padding:0}li{text-align:left}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;list-style:none;background-color:rgba(66,185,131,.2);margin-top:0;margin-bottom:16px}.breadcrumb-item+.breadcrumb-item{padding-left:6px}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;color:#2c3e50;content:"/"}.breadcrumb-item a{font-weight:700;color:#2c3e50;text-decoration:none}.breadcrumb-item span{color:#42b983}main{flex-grow:1;margin-left:24px}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;display:flex}#nav ul li a{padding:.35rem 1rem .35rem 1.25rem;display:block}#nav>ul>li:first-child>a{font-size:1.1em;font-weight:700;line-height:1.4}#nav ul ul{padding-left:1rem;font-size:.95em}#nav ul ul li a{padding-top:.25rem;padding-bottom:.25rem;font-weight:500}#nav a{color:#2c3e50;text-decoration:none}#nav a.router-link-exact-active{color:#42b983} -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import resolve from '@rollup/plugin-node-resolve'; 2 | import typescript from 'rollup-plugin-typescript2'; 3 | import {terser} from 'rollup-plugin-terser'; 4 | 5 | export default { 6 | input: 'src/index.ts', 7 | external: [ 'components/breadcrumbs.ts' ], 8 | output: [ 9 | { 10 | file: 'lib/vue-2-breadcrumbs.umd.min.js', 11 | format: 'umd', 12 | name: 'VueBreadcrumbs', 13 | exports: 'named', 14 | plugins: [terser()], 15 | globals: { 16 | vue: 'Vue' 17 | }, 18 | }, 19 | { 20 | file: 'lib/vue-2-breadcrumbs.umd.js', 21 | format: 'umd', 22 | name: 'VueBreadcrumbs', 23 | exports: 'named', 24 | globals: { 25 | vue: 'Vue' 26 | }, 27 | }, 28 | { 29 | file: 'lib/vue-2-breadcrumbs.esm.js', 30 | format: 'esm', 31 | exports: 'named', 32 | }, 33 | { 34 | file: 'lib/vue-2-breadcrumbs.common.js', 35 | format: 'cjs', 36 | exports: 'named' 37 | } 38 | ], 39 | plugins: [typescript(), resolve({resolveOnly: ['@/components/breadcrumbs']})] 40 | }; 41 | -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Ivan Demidov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /example/nuxtjs/layouts/default.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-2-breadcrumbs", 3 | "version": "0.8.1", 4 | "description": "Breadcrumbs for Vue.js 2.0", 5 | "license": "MIT", 6 | "repository": "Scrum/vue-2-breadcrumbs", 7 | "homepage": "https://github.com/Scrum/vue-2-breadcrumbs#readme", 8 | "bugs": "Scrum/vue-2-breadcrumbs/issues", 9 | "author": { 10 | "name": "Ivan Demidov", 11 | "email": "Scrum@list.ru", 12 | "url": "https://twitter.com/Scrum_" 13 | }, 14 | "main": "lib/vue-2-breadcrumbs.common.js", 15 | "module": "lib/vue-2-breadcrumbs.esm.js", 16 | "browser": "lib/vue-2-breadcrumbs.umd.js", 17 | "engines": { 18 | "node": ">=10" 19 | }, 20 | "scripts": { 21 | "version": "conventional-changelog -i changelog.md -s -r 0 && git add changelog.md", 22 | "prepare": "npm run build", 23 | "build": "rimraf lib && rollup -c", 24 | "build:w": "rimraf lib && rollup -c -w", 25 | "docs": "npm install --prefix src/docs && npm run build --prefix src/docs", 26 | "test": "npm run build && nyc ava", 27 | "pretest": "clinton" 28 | }, 29 | "files": [ 30 | "lib" 31 | ], 32 | "keywords": [ 33 | "breadcrumbs", 34 | "plugin", 35 | "vue", 36 | "vuejs" 37 | ], 38 | "devDependencies": { 39 | "@ava/babel": "^1.0.1", 40 | "@ava/typescript": "^1.1.1", 41 | "@commitlint/cli": "^11.0.0", 42 | "@commitlint/config-angular": "^11.0.0", 43 | "@rollup/plugin-node-resolve": "^11.1.0", 44 | "@vue/compiler-sfc": "^2.7.14", 45 | "@vue/test-utils": "^1.1.2", 46 | "ava": "^3.15.0", 47 | "clinton": "^0.14.0", 48 | "conventional-changelog-cli": "^2.1.1", 49 | "husky": "^4.3.8", 50 | "lint-staged": "^10.5.3", 51 | "nyc": "^15.1.0", 52 | "rimraf": "^3.0.2", 53 | "rollup": "^2.38.0", 54 | "rollup-plugin-terser": "^7.0.2", 55 | "rollup-plugin-typescript2": "^0.29.0", 56 | "tslint": "^6.1.3", 57 | "typescript": "^4.1.3", 58 | "vue": "^2.6.12", 59 | "vue-router": "^3.5.1", 60 | "vue-template-compiler": "^2.6.12" 61 | }, 62 | "types": "./lib/index.d.ts", 63 | "jsdelivr": "lib/vue-2-breadcrumbs.umd.min.js", 64 | "unpkg": "lib/vue-2-breadcrumbs.umd.min.js", 65 | "funding": { 66 | "type": "patreon", 67 | "url": "https://patreon.com/scrums" 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/docs/src/App.vue: -------------------------------------------------------------------------------- 1 | 49 | 50 | 128 | -------------------------------------------------------------------------------- /docs/js/chunk-3302e43a.400b482c.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///./src/views/Home.vue?50e7","webpack:///./src/views/Home.vue?9cb7","webpack:///./src/views/Home.vue?bb7c","webpack:///./src/views/Home.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","staticRenderFns","script","component"],"mappings":"gHAAA,yBAA2c,EAAG,G,oCCA9c,yBAAme,EAAG,G,kECAte,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACG,MAAM,CAAC,IAAM,WAAW,IAAM,EAAQ,WAAyBH,EAAG,UAAU,CAACA,EAAG,cAAc,CAACE,YAAY,UAAUC,MAAM,CAAC,KAAO,aAAaH,EAAG,cAAc,CAACE,YAAY,UAAUC,MAAM,CAAC,KAAO,cAAc,MACzVC,EAAkB,G,kCCAlBC,EAAS,GAOTC,EAAY,eACdD,EACAV,EACAS,GACA,EACA,KACA,WACA,MAIa,aAAAE,E","file":"js/chunk-3302e43a.400b482c.js","sourcesContent":["import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=1&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=1&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=0bc3afe8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=0bc3afe8&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"home\"},[_c('img',{attrs:{\"alt\":\"Vue logo\",\"src\":require(\"../assets/logo.png\")}}),_c('section',[_c('router-view',{staticClass:\"sidebar\",attrs:{\"name\":\"sidebar\"}}),_c('router-view',{staticClass:\"content\",attrs:{\"name\":\"content\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=0bc3afe8&scoped=true&\"\nvar script = {}\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=0bc3afe8&scoped=true&lang=css&\"\nimport style1 from \"./Home.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0bc3afe8\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} -------------------------------------------------------------------------------- /src/docs/src/router/index.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | import { RouteConfig, Dictionary } from 'vue-router/types/router' 4 | 5 | Vue.use(VueRouter) 6 | 7 | const routes: Array = [ 8 | { 9 | path: '/', 10 | name: 'Home', 11 | component: () => import('../views/Home.vue'), 12 | meta: { 13 | breadcrumb: 'Home' 14 | }, 15 | children: [ 16 | { 17 | path: 'settings', 18 | name: 'settings', 19 | components: { 20 | content: { template: `` }, 21 | sidebar: { template: `

Settings:

entities 1
entities 2
entities 3
` } 22 | }, 23 | meta: { 24 | breadcrumb: 'Settings' 25 | }, 26 | children: [{ 27 | path: 'entities/:entityName', 28 | name: 'entities', 29 | component: { template: `` }, 30 | redirect: { 31 | name: 'entityView' 32 | }, 33 | meta: { 34 | breadcrumb: (routeParams: Dictionary) => `${routeParams.entityName}` 35 | }, 36 | children: [{ 37 | path: 'view', 38 | name: 'entityView', 39 | component: { template: '

View

{{ $route.params }}
' }, 40 | props: true, 41 | meta: { 42 | breadcrumb: 'View' 43 | }, 44 | } 45 | ] 46 | } 47 | ] 48 | } 49 | ] 50 | }, 51 | { 52 | path: '/about', 53 | component: { template: '' }, 54 | meta: { 55 | breadcrumb: 'About' 56 | }, 57 | children: [ 58 | { 59 | path: '', 60 | name: 'About', 61 | component: { template: '

About

' } 62 | }, 63 | { 64 | path: 'foo', 65 | component: { template: '

Foo

' }, 66 | meta: { 67 | breadcrumb: () => `foo ${1 + 1}` 68 | } 69 | }, 70 | { 71 | path: 'bar', 72 | component: { template: '

Bar

' }, 73 | meta: { 74 | breadcrumb: 'bar' 75 | } 76 | }, 77 | { 78 | name: 'baz', 79 | path: 'baz', 80 | component: { template: '

Baz

' }, 81 | meta: { 82 | breadcrumb() { 83 | const { name } = this.$route; 84 | return `name "${name}" of context route`; 85 | } 86 | } 87 | }, 88 | { 89 | path: ':id', 90 | component: { template: '' }, 91 | meta: { 92 | breadcrumb: (params: Dictionary) => `Other Feed ${params.id}` 93 | }, 94 | redirect: { 95 | name: 'view' 96 | }, 97 | children: [ 98 | { 99 | path: 'view', 100 | name: 'view', 101 | component: { template: '

View

{{ $route.params }}
' }, 102 | meta: { 103 | breadcrumb: 'View' 104 | } 105 | } 106 | ] 107 | } 108 | ] 109 | }, 110 | { 111 | path: '/parent', 112 | name: 'parent', 113 | component: { template: '

Parent

' }, 114 | meta: { 115 | breadcrumb: { 116 | label: 'Parent to settings', 117 | parent: 'settings' 118 | } 119 | }, 120 | }, 121 | { 122 | path: '/multi-parents', 123 | component: { template: '

Multi Parents

' }, 124 | meta: { 125 | breadcrumb: { 126 | label: 'Multi Parents', 127 | parent: 'parent' 128 | } 129 | }, 130 | }, 131 | { 132 | name: 'dynamic-parent', 133 | path: '/dynamic-parent', 134 | component: { template: '

Dynamic Parent

' }, 135 | meta: { 136 | breadcrumb() { 137 | const { name } = this.$route; 138 | 139 | return { 140 | label: name, 141 | parent: 'settings' 142 | }; 143 | } 144 | }, 145 | } 146 | ] 147 | 148 | const router = new VueRouter({ 149 | mode: 'history', 150 | base: process.env.VUE_APP_BASE_URL, 151 | routes 152 | }) 153 | 154 | export default router 155 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # breadcrumbs 2 | > Vue breadcrumbs builds on the official [vue-router](https://github.com/vuejs/vue-router) package to provide simple breadcrumbs. [Demo](https://scrum.github.io/vue-2-breadcrumbs/) 3 | 4 | [![Actions Status](https://github.com/Scrum/vue-2-breadcrumbs/workflows/Actions%20Status/badge.svg?style=flat-square)](https://github.com/Scrum/vue-2-breadcrumbs/actions?query=workflow%3A%22CI+tests%22)[![vue2](https://img.shields.io/badge/vue-2.x-brightgreen.svg?style=flat-square)](https://vuejs.org/)[![node](https://img.shields.io/node/v/post-sequence.svg?style=flat-square)]()[![npm version](https://img.shields.io/npm/v/vue-2-breadcrumbs.svg?style=flat-square)](https://www.npmjs.com/package/vue-2-breadcrumbs)[![Dependency Status](https://david-dm.org/scrum/vue-2-breadcrumbs.svg?style=flat-square)](https://david-dm.org/scrum/vue-2-breadcrumbs)[![XO code style](https://badgen.net/xo/status/chalk?style=flat-square)](https://github.com/sindresorhus/xo)[![Coveralls status](https://img.shields.io/coveralls/Scrum/vue-2-breadcrumbs.svg?style=flat-square)](https://coveralls.io/r/Scrum/vue-2-breadcrumbs) 5 | 6 | [![npm downloads](https://img.shields.io/npm/dm/vue-2-breadcrumbs.svg?style=flat-square)](https://www.npmjs.com/package/vue-2-breadcrumbs)[![npm](https://img.shields.io/npm/dt/vue-2-breadcrumbs.svg?style=flat-square)](https://www.npmjs.com/package/vue-2-breadcrumbs)[![size](https://badgen.net/bundlephobia/minzip/vue-2-breadcrumbs?color=364a5e&style=flat)](https://www.npmjs.com/package/vue-2-breadcrumbs) 7 | 8 | ## Support 9 | - Support Nuxjs ([example](https://github.com/Scrum/vue-2-breadcrumbs/tree/master/example/nuxtjs)) 10 | - Support SSR 11 | - Setting parent route without need to actually nest it in children array 12 | - Customized template 13 | - Dynamic breadcrumbs 14 | - Dynamic parent 15 | - Dynamic label 16 | - Shorthand labeling (`breadcrumb: 'Page Label'`) 17 | - Sub-routing 18 | 19 | 20 | ## Install 21 | 22 | ```bash 23 | $ npm install vue-2-breadcrumbs 24 | ``` 25 | 26 | > **Note:** This project is compatible with node v10+ 27 | 28 | 29 | ## Usage 30 | 31 | ```js 32 | import Vue from 'vue'; 33 | import VueBreadcrumbs from 'vue-2-breadcrumbs'; 34 | import App from './App.vue'; 35 | 36 | Vue.use(VueBreadcrumbs); 37 | ``` 38 | > Note: After that `` component would be at your disposal. 39 | 40 | ## Meta in router 41 | ```js 42 | import Vue from 'vue'; 43 | import VueRouter from 'vue-router'; 44 | 45 | Vue.use(VueRouter); 46 | 47 | const router = new VueRouter({ 48 | routes: [ 49 | { 50 | path: '/', 51 | name: 'Home', 52 | component: { template: '

Home

' }, 53 | meta: { 54 | breadcrumb: 'Home' 55 | } 56 | }, 57 | { 58 | path: '/params', 59 | name: 'Params', 60 | component: { template: '

Params

' }, 61 | meta: { 62 | breadcrumb: routeParams => `route params id: ${routeParams.id}` 63 | } 64 | }, 65 | { 66 | path: '/context', 67 | name: 'Context', 68 | component: { template: '

Context

' }, 69 | meta: { 70 | breadcrumb() { 71 | const { name } = this.$route; 72 | return `name "${name}" of context route`; 73 | } 74 | } 75 | }, 76 | { 77 | path: '/parent', 78 | component: { template: '' }, 79 | meta: { 80 | breadcrumb: { 81 | label: 'Parent to Params', 82 | parent: 'Params' 83 | } 84 | }, 85 | { 86 | name: 'dynamic-parent', 87 | path: '/dynamic-parent', 88 | component: { template: '

Dynamic Parent

' }, 89 | meta: { 90 | breadcrumb() { 91 | const { name } = this.$route; 92 | 93 | return { 94 | label: name, 95 | parent: 'settings' 96 | }; 97 | } 98 | } 99 | } 100 | ] 101 | }); 102 | ``` 103 | ## Options 104 | > An options object can also be passed into the plugin to specify your own template and rendering methods if desired. For example: 105 | 106 | ```js 107 | import Vue from 'vue'; 108 | import VueBreadcrumbs from 'vue-2-breadcrumbs'; 109 | 110 | Vue.use(VueBreadcrumbs, { 111 | template: 112 | ' ' 119 | }); 120 | ``` 121 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { ComponentOptions, PluginObject, VueConstructor, VNode } from 'vue' 2 | 3 | import { RouteRecord } from 'vue-router'; 4 | 5 | type Dictionary = { [key: string]: T } 6 | type CallbackFunction = (params: Dictionary) => string; 7 | 8 | type Breadcrumbs = { 9 | label: string 10 | parent: string 11 | } 12 | 13 | function pathSeparate(path: string): string[] { 14 | const ROOT = '/'; 15 | const SEPARATOR = '/'; 16 | return path.slice(ROOT.length).split(SEPARATOR).reverse(); 17 | } 18 | 19 | class VueBreadcrumbs implements PluginObject> { 20 | public install(Vue: VueConstructor, options: Dictionary = {}) { 21 | 22 | if (options.template) { 23 | options.render = undefined; 24 | } 25 | 26 | 27 | Object.defineProperties(Vue.prototype, { 28 | $breadcrumbs: { 29 | get(): RouteRecord[] { 30 | function findParents(this: Vue, routeName: string, matches: RouteRecord[] = []): RouteRecord[] { 31 | const routeParents: RouteRecord[] = this.$router.resolve({ name: routeName }).route.matched; 32 | const routeParentLast: RouteRecord | undefined = routeParents.pop(); 33 | 34 | if (routeParentLast) { 35 | matches.unshift(routeParentLast); 36 | 37 | let breadcrumb = routeParentLast.meta?.breadcrumb; 38 | 39 | if (breadcrumb === undefined) { 40 | if (routeParentLast.name) { 41 | breadcrumb = routeParentLast.name; 42 | } 43 | } 44 | 45 | if (typeof breadcrumb === 'function') { 46 | breadcrumb = breadcrumb.call(this, this.$route.params); 47 | } 48 | 49 | if (breadcrumb?.parent) { 50 | return findParents.call(this, breadcrumb.parent, matches); 51 | } 52 | } 53 | return routeParents.concat(matches); 54 | } 55 | 56 | function resolveByPath(route: RouteRecord, params: Record): void { 57 | const [label] = pathSeparate(route.path); 58 | const isRoot: boolean = route.parent === undefined; 59 | const isRootChildren = label.length === 0; 60 | const isDynamicPath = label.startsWith(':'); 61 | 62 | if (isRoot && isRootChildren) { 63 | // TODO: add options home name 64 | // const label = 'Home'; 65 | route.meta.breadcrumb = 'Home'; 66 | return; 67 | } 68 | 69 | if (isRoot) { 70 | route.meta.breadcrumb = label; 71 | return; 72 | } 73 | 74 | if (isRootChildren && route.meta?.breadcrumb) { 75 | delete route.meta.breadcrumb; 76 | return; 77 | } 78 | 79 | if (isDynamicPath) { 80 | const key = label.slice(1); 81 | if (Reflect.has(params, key)) { 82 | route.meta.breadcrumb = params[key]; 83 | return; 84 | } 85 | } 86 | 87 | route.meta.breadcrumb = label 88 | return; 89 | } 90 | 91 | return this.$route.matched 92 | .flatMap((route: RouteRecord) => { 93 | let routeRecord: RouteRecord[] = [route]; 94 | let breadcrumb = route.meta?.breadcrumb; 95 | 96 | if (breadcrumb === undefined) { 97 | resolveByPath(route, this.$route.params); 98 | } 99 | 100 | if (typeof breadcrumb === 'function') { 101 | breadcrumb = breadcrumb.call(this, this.$route.params); 102 | } 103 | 104 | if (breadcrumb?.parent) { 105 | const matched = findParents.call(this, breadcrumb.parent, []); 106 | routeRecord = [...matched, ...routeRecord]; 107 | } 108 | 109 | return routeRecord 110 | }) 111 | .map((route: RouteRecord) => route.path.length === 0 112 | ? ({ ...route, path: '/' }) 113 | : route 114 | ); 115 | } 116 | } 117 | }); 118 | 119 | Vue.component('Breadcrumbs', Vue.extend({ 120 | methods: { 121 | getBreadcrumb(bc: string | CallbackFunction | Breadcrumbs): string { 122 | let name = bc; 123 | 124 | if (typeof name === 'function') { 125 | name = name.call(this, this.$route.params); 126 | } 127 | 128 | if (typeof name === 'object') { 129 | name = name.label 130 | } 131 | 132 | return name; 133 | }, 134 | getPath(crumb: RouteRecord): string { 135 | let { path } = crumb; 136 | 137 | for (const [key, value] of Object.entries(this.$route.params)) { 138 | path = path.replace(`:${key}`, value); 139 | } 140 | 141 | return path; 142 | } 143 | }, 144 | render(createElement): VNode { 145 | if (this.$breadcrumbs.length) { 146 | return createElement( 147 | 'ol', 148 | { 149 | class: { 150 | 'breadcrumb': true 151 | } 152 | }, 153 | this.$breadcrumbs.map((crumb: RouteRecord, index: number) => { 154 | if (crumb?.meta?.breadcrumb) { 155 | const label = this.getBreadcrumb(crumb.meta.breadcrumb); 156 | if (label?.length > 0) { 157 | let item; 158 | if (index !== this.$breadcrumbs.length - 1) { 159 | item = createElement( 160 | 'router-link', 161 | { 162 | props: { 163 | to: { path: this.getPath(crumb) }, 164 | tag: 'a' 165 | } 166 | }, 167 | ` ${label}` 168 | ); 169 | } 170 | else { 171 | item = createElement( 172 | 'span', ` ${label}` 173 | ); 174 | } 175 | return createElement( 176 | 'li', 177 | { 178 | class: { 179 | 'breadcrumb-item': true 180 | }, 181 | props: { 182 | key: index 183 | } 184 | }, 185 | [ 186 | item 187 | ] 188 | ) 189 | } 190 | } 191 | 192 | return createElement(); 193 | }) 194 | ) 195 | } 196 | 197 | return createElement(); 198 | }, 199 | ...options 200 | })) 201 | } 202 | } 203 | 204 | export default new VueBreadcrumbs(); 205 | 206 | // Automatic installation if Vue has been added to the global scope. 207 | if (typeof window !== 'undefined' && window.Vue) { 208 | window.Vue.use(new VueBreadcrumbs()) 209 | } 210 | -------------------------------------------------------------------------------- /docs/js/app.d9802201.js: -------------------------------------------------------------------------------- 1 | (function(e){function t(t){for(var n,a,u=t[0],c=t[1],l=t[2],s=0,p=[];s"},sidebar:{template:"

Settings:

entities 1
entities 2
entities 3
"}},meta:{breadcrumb:"Settings"},children:[{path:"entities/:entityName",name:"entities",component:{template:""},redirect:{name:"entityView"},meta:{breadcrumb:function(e){return""+e.entityName}},children:[{path:"view",name:"entityView",component:{template:"

View

{{ $route.params }}
"},props:!0,meta:{breadcrumb:"View"}}]}]}]},{path:"/about",component:{template:""},meta:{breadcrumb:"About"},children:[{path:"",name:"About",component:{template:"

About

"}},{path:"foo",component:{template:"

Foo

"},meta:{breadcrumb:function(){return"foo 2"}}},{path:"bar",component:{template:"

Bar

"},meta:{breadcrumb:"bar"}},{name:"baz",path:"baz",component:{template:"

Baz

"},meta:{breadcrumb:function(){var e=this.$route.name;return'name "'+e+'" of context route'}}},{path:":id",component:{template:""},meta:{breadcrumb:function(e){return"Other Feed "+e.id}},redirect:{name:"view"},children:[{path:"view",name:"view",component:{template:"

View

{{ $route.params }}
"},meta:{breadcrumb:"View"}}]}]},{path:"/parent",name:"parent",component:{template:"

Parent

"},meta:{breadcrumb:{label:"Parent to settings",parent:"settings"}}},{path:"/multi-parents",component:{template:"

Multi Parents

"},meta:{breadcrumb:{label:"Multi Parents",parent:"parent"}}},{name:"dynamic-parent",path:"/dynamic-parent",component:{template:"

Dynamic Parent

"},meta:{breadcrumb:function(){var e=this.$route.name;return{label:e,parent:"settings"}}}}],m=new s["a"]({mode:"history",base:"/vue-2-breadcrumbs/",routes:p}),d=m,h=r("0f9e"),b=function(){function e(){}return e.prototype.install=function(e,t){void 0===t&&(t={}),t.template&&(t.render=void 0),Object.defineProperties(e.prototype,{$breadcrumbs:{get:function(){var e=this;function t(e,r){var n;void 0===r&&(r=[]);var a=this.$router.resolve({name:e}).route.matched,o=a.pop();if(o){r.unshift(o);var i=null===(n=o.meta)||void 0===n?void 0:n.breadcrumb;if("function"===typeof i&&(i=i.call(this,this.$route.params)),null===i||void 0===i?void 0:i.parent)return t.call(this,i.parent,r)}return a.concat(r)}return this.$route.matched.flatMap((function(r){var n,a=[r],o=null===(n=r.meta)||void 0===n?void 0:n.breadcrumb;if("function"===typeof o&&(o=o.call(e,e.$route.params)),null===o||void 0===o?void 0:o.parent){var i=t.call(e,o.parent,[]);a=Object(h["b"])(i,a)}return a})).map((function(e){return 0===e.path.length?Object(h["a"])(Object(h["a"])({},e),{path:"/"}):e}))}}}),e.component("Breadcrumbs",e.extend(Object(h["a"])({methods:{getBreadcrumb:function(e){var t=e;return"function"===typeof t&&(t=t.call(this,this.$route.params)),"object"===typeof t&&(t=t.label),t},getPath:function(e){for(var t=e.path,r=0,n=Object.entries(this.$route.params);r0)return e("li",{class:{"breadcrumb-item":!0},props:{key:n}},[e("router-link",{props:{to:{path:t.getPath(r)},tag:n!==t.$breadcrumbs.length-1?"a":"span"}}," "+o)])}return e()}))):e()}},t)))},e}(),f=new b;"undefined"!==typeof window&&window.Vue&&window.Vue.use(new b),n["a"].config.productionTip=!1,n["a"].use(f),new n["a"]({router:d,render:function(e){return e(l)}}).$mount("#app")},cf05:function(e,t,r){e.exports=r.p+"img/logo.82b9c7a5.png"}}); 2 | //# sourceMappingURL=app.d9802201.js.map -------------------------------------------------------------------------------- /docs/js/app.d9802201.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?9b05","webpack:///./src/App.vue?5a1c","webpack:///./src/App.vue","webpack:///./src/router/index.ts","webpack:///../index.ts","webpack:///./src/main.ts","webpack:///./src/assets/logo.png"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","render","_vm","this","_h","$createElement","_c","_self","attrs","_v","staticRenderFns","component","use","routes","path","meta","breadcrumb","children","components","content","template","sidebar","redirect","routeParams","entityName","props","$route","params","id","label","parent","router","base","VueBreadcrumbs","install","Vue","options","defineProperties","$breadcrumbs","_this","findParents","routeName","matches","_a","routeParents","$router","route","matched","routeParentLast","pop","unshift","concat","flatMap","routeRecord","map","extend","methods","getBreadcrumb","bc","getPath","crumb","_i","entries","_b","replace","class","index","to","config","productionTip","h","App","$mount"],"mappings":"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","file":"js/app.d9802201.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-3302e43a\":\"400b482c\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-3302e43a\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-3302e43a\":\"13378d60\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('nav',[_c('img',{attrs:{\"alt\":\"Vue logo\",\"src\":require(\"./assets/logo.png\")}}),_c('div',{attrs:{\"id\":\"nav\"}},[_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":\"/\"}},[_vm._v(\"Home\")]),_c('ul',[_c('router-link',{attrs:{\"to\":{ name: 'settings'}}},[_vm._v(\"Settings\")])],1)],1)]),_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":\"/about\"}},[_vm._v(\"About\")]),_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":\"/about/foo\"}},[_vm._v(\"foo\")])],1),_c('li',[_c('router-link',{attrs:{\"to\":\"/about/bar\"}},[_vm._v(\"bar\")])],1),_c('li',[_c('router-link',{attrs:{\"to\":\"/about/baz\"}},[_vm._v(\"baz\")])],1),_c('li',[_c('router-link',{attrs:{\"to\":\"/about/1\"}},[_vm._v(\"Other Feed 1\")])],1),_c('li',[_c('router-link',{attrs:{\"to\":\"/about/2\"}},[_vm._v(\"Other Feed 2\")])],1),_c('li',[_c('router-link',{attrs:{\"to\":\"/about/3\"}},[_vm._v(\"Other Feed 3\")])],1)])],1)]),_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":\"/parent\"}},[_vm._v(\"Parent\")])],1),_c('li',[_c('router-link',{attrs:{\"to\":\"/multi-parents\"}},[_vm._v(\"Multi Parents\")])],1)]),_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":\"/dynamic-parent\"}},[_vm._v(\"Dynamic Parent\")])],1)])])]),_c('main',[_c('Breadcrumbs'),_c('router-view')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=72b920fe&\"\nvar script = {}\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport VueRouter from 'vue-router';\nVue.use(VueRouter);\nvar routes = [\n {\n path: '/',\n name: 'Home',\n component: function () { return import('../views/Home.vue'); },\n meta: {\n breadcrumb: 'Home'\n },\n children: [\n {\n path: 'settings',\n name: 'settings',\n components: {\n content: { template: \"\" },\n sidebar: { template: \"

Settings:

entities 1
entities 2
entities 3
\" }\n },\n meta: {\n breadcrumb: 'Settings'\n },\n children: [{\n path: 'entities/:entityName',\n name: 'entities',\n component: { template: \"\" },\n redirect: {\n name: 'entityView'\n },\n meta: {\n breadcrumb: function (routeParams) { return \"\" + routeParams.entityName; }\n },\n children: [{\n path: 'view',\n name: 'entityView',\n component: { template: '

View

{{ $route.params }}
' },\n props: true,\n meta: {\n breadcrumb: 'View'\n },\n }\n ]\n }\n ]\n }\n ]\n },\n {\n path: '/about',\n component: { template: '' },\n meta: {\n breadcrumb: 'About'\n },\n children: [\n {\n path: '',\n name: 'About',\n component: { template: '

About

' }\n },\n {\n path: 'foo',\n component: { template: '

Foo

' },\n meta: {\n breadcrumb: function () { return \"foo \" + (1 + 1); }\n }\n },\n {\n path: 'bar',\n component: { template: '

Bar

' },\n meta: {\n breadcrumb: 'bar'\n }\n },\n {\n name: 'baz',\n path: 'baz',\n component: { template: '

Baz

' },\n meta: {\n breadcrumb: function () {\n var name = this.$route.name;\n return \"name \\\"\" + name + \"\\\" of context route\";\n }\n }\n },\n {\n path: ':id',\n component: { template: '' },\n meta: {\n breadcrumb: function (params) { return \"Other Feed \" + params.id; }\n },\n redirect: {\n name: 'view'\n },\n children: [\n {\n path: 'view',\n name: 'view',\n component: { template: '

View

{{ $route.params }}
' },\n meta: {\n breadcrumb: 'View'\n }\n }\n ]\n }\n ]\n },\n {\n path: '/parent',\n name: 'parent',\n component: { template: '

Parent

' },\n meta: {\n breadcrumb: {\n label: 'Parent to settings',\n parent: 'settings'\n }\n },\n },\n {\n path: '/multi-parents',\n component: { template: '

Multi Parents

' },\n meta: {\n breadcrumb: {\n label: 'Multi Parents',\n parent: 'parent'\n }\n },\n },\n {\n name: 'dynamic-parent',\n path: '/dynamic-parent',\n component: { template: '

Dynamic Parent

' },\n meta: {\n breadcrumb: function () {\n var name = this.$route.name;\n return {\n label: name,\n parent: 'settings'\n };\n }\n },\n }\n];\nvar router = new VueRouter({\n mode: 'history',\n base: process.env.VUE_APP_BASE_URL,\n routes: routes\n});\nexport default router;\n","import { __assign, __spreadArrays } from \"tslib\";\nvar VueBreadcrumbs = /** @class */ (function () {\n function VueBreadcrumbs() {\n }\n VueBreadcrumbs.prototype.install = function (Vue, options) {\n if (options === void 0) { options = {}; }\n if (options.template) {\n options.render = undefined;\n }\n Object.defineProperties(Vue.prototype, {\n $breadcrumbs: {\n get: function () {\n var _this = this;\n function findParents(routeName, matches) {\n var _a;\n if (matches === void 0) { matches = []; }\n var routeParents = this.$router.resolve({ name: routeName }).route.matched;\n var routeParentLast = routeParents.pop();\n if (routeParentLast) {\n matches.unshift(routeParentLast);\n var breadcrumb = (_a = routeParentLast.meta) === null || _a === void 0 ? void 0 : _a.breadcrumb;\n if (typeof breadcrumb === 'function') {\n breadcrumb = breadcrumb.call(this, this.$route.params);\n }\n if (breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.parent) {\n return findParents.call(this, breadcrumb.parent, matches);\n }\n }\n return routeParents.concat(matches);\n }\n return this.$route.matched\n .flatMap(function (route) {\n var _a;\n var routeRecord = [route];\n var breadcrumb = (_a = route.meta) === null || _a === void 0 ? void 0 : _a.breadcrumb;\n if (typeof breadcrumb === 'function') {\n breadcrumb = breadcrumb.call(_this, _this.$route.params);\n }\n if (breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.parent) {\n var matched = findParents.call(_this, breadcrumb.parent, []);\n routeRecord = __spreadArrays(matched, routeRecord);\n }\n return routeRecord;\n })\n .map(function (route) { return route.path.length === 0\n ? (__assign(__assign({}, route), { path: '/' }))\n : route; });\n }\n }\n });\n Vue.component('Breadcrumbs', Vue.extend(__assign({ methods: {\n getBreadcrumb: function (bc) {\n var name = bc;\n if (typeof name === 'function') {\n name = name.call(this, this.$route.params);\n }\n if (typeof name === 'object') {\n name = name.label;\n }\n return name;\n },\n getPath: function (crumb) {\n var path = crumb.path;\n for (var _i = 0, _a = Object.entries(this.$route.params); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n path = path.replace(\":\" + key, value);\n }\n return path;\n }\n }, render: function (createElement) {\n var _this = this;\n if (this.$breadcrumbs.length) {\n return createElement('ol', {\n class: {\n 'breadcrumb': true\n }\n }, this.$breadcrumbs.map(function (crumb, index) {\n var _a;\n if ((_a = crumb === null || crumb === void 0 ? void 0 : crumb.meta) === null || _a === void 0 ? void 0 : _a.breadcrumb) {\n var label = _this.getBreadcrumb(crumb.meta.breadcrumb);\n if ((label === null || label === void 0 ? void 0 : label.length) > 0) {\n return createElement('li', {\n class: {\n 'breadcrumb-item': true\n },\n props: {\n key: index\n }\n }, [\n createElement('router-link', {\n props: {\n to: { path: _this.getPath(crumb) },\n tag: index !== _this.$breadcrumbs.length - 1 ? 'a' : 'span'\n }\n }, \" \" + label)\n ]);\n }\n }\n return createElement();\n }));\n }\n return createElement();\n } }, options)));\n };\n return VueBreadcrumbs;\n}());\nexport default new VueBreadcrumbs();\n// Automatic installation if Vue has been added to the global scope.\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(new VueBreadcrumbs());\n}\n","import Vue from 'vue'\nimport App from './App.vue'\nimport router from './router'\nimport Plugin from '../../index'\n\nVue.config.productionTip = false\n\nVue.use(Plugin)\n\nnew Vue({\n router,\n render: h => h(App)\n}).$mount('#app')\n","module.exports = __webpack_public_path__ + \"img/logo.82b9c7a5.png\";"],"sourceRoot":""} -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | ## 0.8.1 (2022-12-12) 2 | 3 | * feat: plain span element for last item ([c3d2636](https://github.com/Scrum/vue-2-breadcrumbs/commit/c3d2636)) 4 | * ci: bump node versions on github build ([af096f2](https://github.com/Scrum/vue-2-breadcrumbs/commit/af096f2)) 5 | * ci: disable pkg-schema validation ([53a6b83](https://github.com/Scrum/vue-2-breadcrumbs/commit/53a6b83)) 6 | * Generate new package-lock for newer npm versions ([cb02058](https://github.com/Scrum/vue-2-breadcrumbs/commit/cb02058)) 7 | * Update funding.yml ([48a334a](https://github.com/Scrum/vue-2-breadcrumbs/commit/48a334a)) 8 | * Update funding.yml ([3b3e5a3](https://github.com/Scrum/vue-2-breadcrumbs/commit/3b3e5a3)) 9 | * Update funding.yml ([8e1974d](https://github.com/Scrum/vue-2-breadcrumbs/commit/8e1974d)) 10 | * Update funding.yml ([fe24bfd](https://github.com/Scrum/vue-2-breadcrumbs/commit/fe24bfd)) 11 | * build(deps): bump browserslist from 4.16.4 to 4.16.6 in /example/nuxtjs ([6e17e77](https://github.com/Scrum/vue-2-breadcrumbs/commit/6e17e77)) 12 | * build(deps): bump handlebars from 4.7.6 to 4.7.7 ([f08913a](https://github.com/Scrum/vue-2-breadcrumbs/commit/f08913a)) 13 | * build(deps): bump hosted-git-info from 2.8.8 to 2.8.9 ([6a1ade2](https://github.com/Scrum/vue-2-breadcrumbs/commit/6a1ade2)) 14 | * build(deps): bump lodash from 4.17.15 to 4.17.21 ([c152863](https://github.com/Scrum/vue-2-breadcrumbs/commit/c152863)) 15 | * build(deps): bump nanoid from 3.1.22 to 3.2.0 in /example/nuxtjs ([ce57300](https://github.com/Scrum/vue-2-breadcrumbs/commit/ce57300)) 16 | * build(deps): bump normalize-url from 4.5.0 to 4.5.1 ([174d4c9](https://github.com/Scrum/vue-2-breadcrumbs/commit/174d4c9)) 17 | * build(deps): bump path-parse from 1.0.6 to 1.0.7 ([aaac267](https://github.com/Scrum/vue-2-breadcrumbs/commit/aaac267)) 18 | * build(deps): bump path-parse from 1.0.6 to 1.0.7 in /example/nuxtjs ([6bfb74d](https://github.com/Scrum/vue-2-breadcrumbs/commit/6bfb74d)) 19 | * build(deps): bump postcss from 7.0.35 to 7.0.36 ([1e178df](https://github.com/Scrum/vue-2-breadcrumbs/commit/1e178df)) 20 | * build(deps): bump postcss from 7.0.35 to 7.0.36 in /example/nuxtjs ([1a52fd8](https://github.com/Scrum/vue-2-breadcrumbs/commit/1a52fd8)) 21 | * build(deps): bump shelljs from 0.8.4 to 0.8.5 ([59fc68b](https://github.com/Scrum/vue-2-breadcrumbs/commit/59fc68b)) 22 | * build(deps): bump tar from 6.1.0 to 6.1.5 in /example/nuxtjs ([45ea0d5](https://github.com/Scrum/vue-2-breadcrumbs/commit/45ea0d5)) 23 | * build(deps): bump tar from 6.1.5 to 6.1.11 in /example/nuxtjs ([8c4ba79](https://github.com/Scrum/vue-2-breadcrumbs/commit/8c4ba79)) 24 | * build(deps): bump trim-off-newlines from 1.0.1 to 1.0.3 ([73b8ec7](https://github.com/Scrum/vue-2-breadcrumbs/commit/73b8ec7)) 25 | * build(deps): bump ws from 7.4.4 to 7.4.6 in /example/nuxtjs ([49be46a](https://github.com/Scrum/vue-2-breadcrumbs/commit/49be46a)) 26 | 27 | 28 | 29 | ## 0.8.0 (2021-04-16) 30 | 31 | * 0.8.0 ([0e957ea](https://github.com/Scrum/vue-2-breadcrumbs/commit/0e957ea)) 32 | * build: ignore build static ([798c068](https://github.com/Scrum/vue-2-breadcrumbs/commit/798c068)) 33 | * build: ignore example for npm ([721c941](https://github.com/Scrum/vue-2-breadcrumbs/commit/721c941)) 34 | * build(deps): bump y18n from 4.0.0 to 4.0.1 ([83d450f](https://github.com/Scrum/vue-2-breadcrumbs/commit/83d450f)) 35 | * docs: add nuxtjs example, issue #115 ([ca25cfb](https://github.com/Scrum/vue-2-breadcrumbs/commit/ca25cfb)), closes [#115](https://github.com/Scrum/vue-2-breadcrumbs/issues/115) 36 | * feat: add nuxtjs support, close #115 ([cbacf68](https://github.com/Scrum/vue-2-breadcrumbs/commit/cbacf68)), closes [#115](https://github.com/Scrum/vue-2-breadcrumbs/issues/115) 37 | * feat: resolve by name for nuxtjs, close #115 ([bb0a6e8](https://github.com/Scrum/vue-2-breadcrumbs/commit/bb0a6e8)), closes [#115](https://github.com/Scrum/vue-2-breadcrumbs/issues/115) 38 | 39 | 40 | 41 | ## 0.7.12 (2021-01-26) 42 | 43 | * 0.7.12 ([4ea6d6a](https://github.com/Scrum/vue-2-breadcrumbs/commit/4ea6d6a)) 44 | * Fix missing nested dynamic parents ([9793cfa](https://github.com/Scrum/vue-2-breadcrumbs/commit/9793cfa)) 45 | * docs: update docs ([246c162](https://github.com/Scrum/vue-2-breadcrumbs/commit/246c162)) 46 | * build: perf version commit ([07a9432](https://github.com/Scrum/vue-2-breadcrumbs/commit/07a9432)) 47 | * build: update dep dev ([e20751f](https://github.com/Scrum/vue-2-breadcrumbs/commit/e20751f)) 48 | 49 | 50 | 51 | ## 0.7.11 (2020-12-22) 52 | 53 | * 0.7.11 ([1313ba2](https://github.com/Scrum/vue-2-breadcrumbs/commit/1313ba2)) 54 | * build: update changelog ([3b50573](https://github.com/Scrum/vue-2-breadcrumbs/commit/3b50573)) 55 | * build: update dep dev ([821af44](https://github.com/Scrum/vue-2-breadcrumbs/commit/821af44)) 56 | * build(deps): bump ini from 1.3.5 to 1.3.7 ([751f6fe](https://github.com/Scrum/vue-2-breadcrumbs/commit/751f6fe)) 57 | * docs: rebuild bundle ([37d4c4b](https://github.com/Scrum/vue-2-breadcrumbs/commit/37d4c4b)) 58 | * docs: update badges ([698b28e](https://github.com/Scrum/vue-2-breadcrumbs/commit/698b28e)) 59 | * fix: not full matched parents, close #109 ([e03fda9](https://github.com/Scrum/vue-2-breadcrumbs/commit/e03fda9)), closes [#109](https://github.com/Scrum/vue-2-breadcrumbs/issues/109) 60 | 61 | 62 | 63 | ## 0.7.10 (2020-10-12) 64 | 65 | * 0.7.10 ([ce0610a](https://github.com/Scrum/vue-2-breadcrumbs/commit/ce0610a)) 66 | * build: update changelog ([fe99b9d](https://github.com/Scrum/vue-2-breadcrumbs/commit/fe99b9d)) 67 | * build: update dep dev ([6b2debe](https://github.com/Scrum/vue-2-breadcrumbs/commit/6b2debe)) 68 | * docs: add multi parents, issue, #105 ([3f40102](https://github.com/Scrum/vue-2-breadcrumbs/commit/3f40102)), closes [#105](https://github.com/Scrum/vue-2-breadcrumbs/issues/105) 69 | * docs: rebuild bundle ([66ac684](https://github.com/Scrum/vue-2-breadcrumbs/commit/66ac684)) 70 | * docs: rebuild bundles ([f6a009e](https://github.com/Scrum/vue-2-breadcrumbs/commit/f6a009e)) 71 | * fix: incorrect resolve multi parents, close #105 ([ca1831d](https://github.com/Scrum/vue-2-breadcrumbs/commit/ca1831d)), closes [#105](https://github.com/Scrum/vue-2-breadcrumbs/issues/105) 72 | 73 | 74 | 75 | ## 0.7.9 (2020-07-21) 76 | 77 | * 0.7.9 ([0a2a260](https://github.com/Scrum/vue-2-breadcrumbs/commit/0a2a260)) 78 | * build: update changelog ([421fee1](https://github.com/Scrum/vue-2-breadcrumbs/commit/421fee1)) 79 | * build: update dep dev ([dbc9990](https://github.com/Scrum/vue-2-breadcrumbs/commit/dbc9990)) 80 | * docs: add dynamic breadcrumb example ([41324e7](https://github.com/Scrum/vue-2-breadcrumbs/commit/41324e7)) 81 | * docs: add dynamic breadcrumbs example ([ec8ab79](https://github.com/Scrum/vue-2-breadcrumbs/commit/ec8ab79)) 82 | * docs: add dynamic parent ([dfc255f](https://github.com/Scrum/vue-2-breadcrumbs/commit/dfc255f)) 83 | * docs: rebuild bundle ([e80f35d](https://github.com/Scrum/vue-2-breadcrumbs/commit/e80f35d)) 84 | * perf: dynamic breadcrumbs, issue #99, #100 ([cc58782](https://github.com/Scrum/vue-2-breadcrumbs/commit/cc58782)), closes [#99](https://github.com/Scrum/vue-2-breadcrumbs/issues/99) [#100](https://github.com/Scrum/vue-2-breadcrumbs/issues/100) 85 | 86 | 87 | 88 | ## 0.7.8 (2020-06-30) 89 | 90 | * 0.7.8 ([c9d17d3](https://github.com/Scrum/vue-2-breadcrumbs/commit/c9d17d3)) 91 | * build: update changelog ([e1a4fea](https://github.com/Scrum/vue-2-breadcrumbs/commit/e1a4fea)) 92 | * ci: perf run actions ([ea7d9cb](https://github.com/Scrum/vue-2-breadcrumbs/commit/ea7d9cb)) 93 | * ci: remove coverage script and pkg, close #97 ([6ed5f87](https://github.com/Scrum/vue-2-breadcrumbs/commit/6ed5f87)), closes [#97](https://github.com/Scrum/vue-2-breadcrumbs/issues/97) 94 | 95 | 96 | 97 | ## 0.7.7 (2020-06-25) 98 | 99 | * 0.7.7 ([f0d306f](https://github.com/Scrum/vue-2-breadcrumbs/commit/f0d306f)) 100 | * build: update changelog ([2409bb0](https://github.com/Scrum/vue-2-breadcrumbs/commit/2409bb0)) 101 | * fix: long path after install, close #95 ([8ac8b8c](https://github.com/Scrum/vue-2-breadcrumbs/commit/8ac8b8c)), closes [#95](https://github.com/Scrum/vue-2-breadcrumbs/issues/95) 102 | 103 | 104 | 105 | ## 0.7.6 (2020-06-16) 106 | 107 | * 0.7.6 ([029abc1](https://github.com/Scrum/vue-2-breadcrumbs/commit/029abc1)) 108 | * Added test to exclude blank breadcrumbs ([dc73ddb](https://github.com/Scrum/vue-2-breadcrumbs/commit/dc73ddb)) 109 | * Added test to exclude blank breadcrumbs ([d3021bb](https://github.com/Scrum/vue-2-breadcrumbs/commit/d3021bb)) 110 | * Added test to exclude blank breadcrumbs ([00d87bf](https://github.com/Scrum/vue-2-breadcrumbs/commit/00d87bf)) 111 | * Added test to exclude blank breadcrumbs ([88a296c](https://github.com/Scrum/vue-2-breadcrumbs/commit/88a296c)) 112 | * Added test to exclude blank breadcrumbs ([cb70e36](https://github.com/Scrum/vue-2-breadcrumbs/commit/cb70e36)) 113 | * build: of ava ([6a89895](https://github.com/Scrum/vue-2-breadcrumbs/commit/6a89895)) 114 | * build: update changelog ([9773be0](https://github.com/Scrum/vue-2-breadcrumbs/commit/9773be0)) 115 | * build: update dep dev ([826bc15](https://github.com/Scrum/vue-2-breadcrumbs/commit/826bc15)) 116 | * perf: label condition ([a92fec4](https://github.com/Scrum/vue-2-breadcrumbs/commit/a92fec4)) 117 | * fix: trailingspace ([1a34893](https://github.com/Scrum/vue-2-breadcrumbs/commit/1a34893)) 118 | 119 | 120 | 121 | ## 0.7.5 (2020-06-09) 122 | 123 | * 0.7.5 ([d4b25ff](https://github.com/Scrum/vue-2-breadcrumbs/commit/d4b25ff)) 124 | * build: update changelog ([3983493](https://github.com/Scrum/vue-2-breadcrumbs/commit/3983493)) 125 | * docs: rebuild ([d4b9fc9](https://github.com/Scrum/vue-2-breadcrumbs/commit/d4b9fc9)) 126 | * docs: ts config to es5 ([6225ea6](https://github.com/Scrum/vue-2-breadcrumbs/commit/6225ea6)) 127 | * fix: set options, close #88 ([ef943a4](https://github.com/Scrum/vue-2-breadcrumbs/commit/ef943a4)), closes [#88](https://github.com/Scrum/vue-2-breadcrumbs/issues/88) 128 | 129 | 130 | 131 | ## 0.7.4 (2020-06-08) 132 | 133 | * 0.7.4 ([fcda1e6](https://github.com/Scrum/vue-2-breadcrumbs/commit/fcda1e6)) 134 | * build: update changelog ([4273bb1](https://github.com/Scrum/vue-2-breadcrumbs/commit/4273bb1)) 135 | * build: update dep dev ([3070437](https://github.com/Scrum/vue-2-breadcrumbs/commit/3070437)) 136 | * build(deps): bump websocket-extensions from 0.1.3 to 0.1.4 in /src/docs ([fc38ae4](https://github.com/Scrum/vue-2-breadcrumbs/commit/fc38ae4)) 137 | * docs: rebuild ([57fef75](https://github.com/Scrum/vue-2-breadcrumbs/commit/57fef75)) 138 | * refactor: es10 features ([67935e4](https://github.com/Scrum/vue-2-breadcrumbs/commit/67935e4)) 139 | * refactor: minor stuff ([25550ba](https://github.com/Scrum/vue-2-breadcrumbs/commit/25550ba)) 140 | 141 | 142 | 143 | ## 0.7.3 (2020-06-05) 144 | 145 | * 0.7.3 ([3e90adb](https://github.com/Scrum/vue-2-breadcrumbs/commit/3e90adb)) 146 | * build: update changelog ([579e416](https://github.com/Scrum/vue-2-breadcrumbs/commit/579e416)) 147 | * build: update dep dev ([dfb7a48](https://github.com/Scrum/vue-2-breadcrumbs/commit/dfb7a48)) 148 | * docs: add ssr support ([9d20ea9](https://github.com/Scrum/vue-2-breadcrumbs/commit/9d20ea9)) 149 | * docs: fix header for parent ([671db80](https://github.com/Scrum/vue-2-breadcrumbs/commit/671db80)) 150 | * docs: rebuild ([2291644](https://github.com/Scrum/vue-2-breadcrumbs/commit/2291644)) 151 | * docs: rebuild after reinstall module ([754a5eb](https://github.com/Scrum/vue-2-breadcrumbs/commit/754a5eb)) 152 | 153 | 154 | 155 | ## 0.7.2 (2020-06-03) 156 | 157 | * 0.7.2 ([f0b9915](https://github.com/Scrum/vue-2-breadcrumbs/commit/f0b9915)) 158 | * build: update changelog ([c3a0ebc](https://github.com/Scrum/vue-2-breadcrumbs/commit/c3a0ebc)) 159 | * fix: ignore lock in npm ([270b7df](https://github.com/Scrum/vue-2-breadcrumbs/commit/270b7df)) 160 | * fix: support old browser ([c4e00c4](https://github.com/Scrum/vue-2-breadcrumbs/commit/c4e00c4)) 161 | * ci: nyc show report text ([d4b2cf1](https://github.com/Scrum/vue-2-breadcrumbs/commit/d4b2cf1)) 162 | 163 | 164 | 165 | ## 0.7.1 (2020-06-01) 166 | 167 | * 0.7.1 ([14e16b3](https://github.com/Scrum/vue-2-breadcrumbs/commit/14e16b3)) 168 | * build: fix nyc config ([a174aa3](https://github.com/Scrum/vue-2-breadcrumbs/commit/a174aa3)) 169 | * build: update changelog ([b603e92](https://github.com/Scrum/vue-2-breadcrumbs/commit/b603e92)) 170 | * ci: change name to Actions Status ([6651ac0](https://github.com/Scrum/vue-2-breadcrumbs/commit/6651ac0)) 171 | * ci: drop windows ([ccf3cb9](https://github.com/Scrum/vue-2-breadcrumbs/commit/ccf3cb9)) 172 | * fix: off travis in rules, close #80 ([6ceb3bb](https://github.com/Scrum/vue-2-breadcrumbs/commit/6ceb3bb)), closes [#80](https://github.com/Scrum/vue-2-breadcrumbs/issues/80) 173 | * docs: update action badges name ([2872661](https://github.com/Scrum/vue-2-breadcrumbs/commit/2872661)) 174 | * docs: update description component name ([208dddc](https://github.com/Scrum/vue-2-breadcrumbs/commit/208dddc)) 175 | * docs: update github actions badges ([6a148ba](https://github.com/Scrum/vue-2-breadcrumbs/commit/6a148ba)) 176 | 177 | 178 | 179 | ## 0.7.0 (2020-06-01) 180 | 181 | * 0.7.0 ([21e2d58](https://github.com/Scrum/vue-2-breadcrumbs/commit/21e2d58)) 182 | * build: add build watch ([099ba82](https://github.com/Scrum/vue-2-breadcrumbs/commit/099ba82)) 183 | * build: update changelog ([325c4fb](https://github.com/Scrum/vue-2-breadcrumbs/commit/325c4fb)) 184 | * build: update dep dev ([7ce17b5](https://github.com/Scrum/vue-2-breadcrumbs/commit/7ce17b5)) 185 | * ci: add github actions ([14fd912](https://github.com/Scrum/vue-2-breadcrumbs/commit/14fd912)) 186 | * ci: drop travis support ([e7af46e](https://github.com/Scrum/vue-2-breadcrumbs/commit/e7af46e)) 187 | * docs: add feat set parent ([978bdb8](https://github.com/Scrum/vue-2-breadcrumbs/commit/978bdb8)) 188 | * docs: add github actions badge ([d520126](https://github.com/Scrum/vue-2-breadcrumbs/commit/d520126)) 189 | * docs: rebuild demo ([e605be6](https://github.com/Scrum/vue-2-breadcrumbs/commit/e605be6)) 190 | * docs: update example, issue #75 ([d43ad77](https://github.com/Scrum/vue-2-breadcrumbs/commit/d43ad77)), closes [#75](https://github.com/Scrum/vue-2-breadcrumbs/issues/75) 191 | * perf: drop use template for component ([342fd2a](https://github.com/Scrum/vue-2-breadcrumbs/commit/342fd2a)) 192 | * perf: type for breadcrumbs ([09bad28](https://github.com/Scrum/vue-2-breadcrumbs/commit/09bad28)) 193 | * perf: type for route ([c8abf59](https://github.com/Scrum/vue-2-breadcrumbs/commit/c8abf59)) 194 | * feat: set route parent, close #76 ([9c2396a](https://github.com/Scrum/vue-2-breadcrumbs/commit/9c2396a)), closes [#76](https://github.com/Scrum/vue-2-breadcrumbs/issues/76) 195 | 196 | 197 | 198 | ## 0.6.3 (2020-05-18) 199 | 200 | * 0.6.3 ([683fa52](https://github.com/Scrum/vue-2-breadcrumbs/commit/683fa52)) 201 | * build: add dom iterable ([7b6a543](https://github.com/Scrum/vue-2-breadcrumbs/commit/7b6a543)) 202 | * build: update changelog ([e0bffa5](https://github.com/Scrum/vue-2-breadcrumbs/commit/e0bffa5)) 203 | * docs: perf env ([2ba3565](https://github.com/Scrum/vue-2-breadcrumbs/commit/2ba3565)) 204 | * docs: rebuild ([119d186](https://github.com/Scrum/vue-2-breadcrumbs/commit/119d186)) 205 | * docs: rebuild ([599a989](https://github.com/Scrum/vue-2-breadcrumbs/commit/599a989)) 206 | * docs: rebuild bunbdle ([19ac9f0](https://github.com/Scrum/vue-2-breadcrumbs/commit/19ac9f0)) 207 | * docs: rebuild bundle ([3a15c99](https://github.com/Scrum/vue-2-breadcrumbs/commit/3a15c99)) 208 | * docs: rever history mod and on runtimeCompiler ([45a7d72](https://github.com/Scrum/vue-2-breadcrumbs/commit/45a7d72)) 209 | * docs: update config ([daee189](https://github.com/Scrum/vue-2-breadcrumbs/commit/daee189)) 210 | * perf: add declare breadcrumbs ([a277a28](https://github.com/Scrum/vue-2-breadcrumbs/commit/a277a28)) 211 | * perf: rewrite to declarative, close #64 ([6f8a4ff](https://github.com/Scrum/vue-2-breadcrumbs/commit/6f8a4ff)), closes [#64](https://github.com/Scrum/vue-2-breadcrumbs/issues/64) 212 | 213 | 214 | 215 | ## 0.6.2 (2020-05-14) 216 | 217 | * 0.6.2 ([9a2831d](https://github.com/Scrum/vue-2-breadcrumbs/commit/9a2831d)) 218 | * build: update changelog ([0d0ac0d](https://github.com/Scrum/vue-2-breadcrumbs/commit/0d0ac0d)) 219 | * docs: rebuild ([92d4c7e](https://github.com/Scrum/vue-2-breadcrumbs/commit/92d4c7e)) 220 | * fix: switch to hash mode ([5140f11](https://github.com/Scrum/vue-2-breadcrumbs/commit/5140f11)) 221 | 222 | 223 | 224 | ## 0.6.1 (2020-05-14) 225 | 226 | * 0.6.1 ([16ec72d](https://github.com/Scrum/vue-2-breadcrumbs/commit/16ec72d)) 227 | * build: update changelog ([10dd169](https://github.com/Scrum/vue-2-breadcrumbs/commit/10dd169)) 228 | * docs: fix public path ([39f4b97](https://github.com/Scrum/vue-2-breadcrumbs/commit/39f4b97)) 229 | * docs: rebuild ([5144f62](https://github.com/Scrum/vue-2-breadcrumbs/commit/5144f62)) 230 | * docs: rebuild ([229a84b](https://github.com/Scrum/vue-2-breadcrumbs/commit/229a84b)) 231 | 232 | 233 | 234 | ## 0.6.0 (2020-05-14) 235 | 236 | * 0.6.0 ([9cef60e](https://github.com/Scrum/vue-2-breadcrumbs/commit/9cef60e)) 237 | * build: add script build docs ([60cc1a4](https://github.com/Scrum/vue-2-breadcrumbs/commit/60cc1a4)) 238 | * build: not used dir dist ([c5c579c](https://github.com/Scrum/vue-2-breadcrumbs/commit/c5c579c)) 239 | * build: update after migrate to TS ([93e22d5](https://github.com/Scrum/vue-2-breadcrumbs/commit/93e22d5)) 240 | * build: update changelog ([89d643e](https://github.com/Scrum/vue-2-breadcrumbs/commit/89d643e)) 241 | * build: update dep dev ([bb83254](https://github.com/Scrum/vue-2-breadcrumbs/commit/bb83254)) 242 | * build: update dep dev ([d4f9141](https://github.com/Scrum/vue-2-breadcrumbs/commit/d4f9141)) 243 | * build: update rules ([d9ee081](https://github.com/Scrum/vue-2-breadcrumbs/commit/d9ee081)) 244 | * build(deps): bump handlebars from 4.1.2 to 4.5.3 ([6838d73](https://github.com/Scrum/vue-2-breadcrumbs/commit/6838d73)) 245 | * docs: update ([be1226d](https://github.com/Scrum/vue-2-breadcrumbs/commit/be1226d)) 246 | * docs: update demo ([b410093](https://github.com/Scrum/vue-2-breadcrumbs/commit/b410093)) 247 | * docs: update demo and builder demo ([454bd6f](https://github.com/Scrum/vue-2-breadcrumbs/commit/454bd6f)) 248 | * perf: update callback type ([3b5ce89](https://github.com/Scrum/vue-2-breadcrumbs/commit/3b5ce89)) 249 | * ci: drop support old node ([4cd9327](https://github.com/Scrum/vue-2-breadcrumbs/commit/4cd9327)) 250 | * test: fix after migrate to class ([977b3f8](https://github.com/Scrum/vue-2-breadcrumbs/commit/977b3f8)) 251 | * test: fix after update deps ([92274e1](https://github.com/Scrum/vue-2-breadcrumbs/commit/92274e1)) 252 | * feat: migrate to TS, close #70 ([bc77070](https://github.com/Scrum/vue-2-breadcrumbs/commit/bc77070)), closes [#70](https://github.com/Scrum/vue-2-breadcrumbs/issues/70) 253 | 254 | 255 | 256 | ## 0.5.2 (2019-11-21) 257 | 258 | * 0.5.2 ([f60df77](https://github.com/Scrum/vue-2-breadcrumbs/commit/f60df77)) 259 | * Create funding.yml ([ebd846f](https://github.com/Scrum/vue-2-breadcrumbs/commit/ebd846f)) 260 | * build: add funding field for npm ([559a05f](https://github.com/Scrum/vue-2-breadcrumbs/commit/559a05f)) 261 | * build: bundle ([93b2425](https://github.com/Scrum/vue-2-breadcrumbs/commit/93b2425)) 262 | * build: move config to file ([cd39a59](https://github.com/Scrum/vue-2-breadcrumbs/commit/cd39a59)) 263 | * build: update changelog ([5a62710](https://github.com/Scrum/vue-2-breadcrumbs/commit/5a62710)) 264 | * build: update depdev ([dafef7f](https://github.com/Scrum/vue-2-breadcrumbs/commit/dafef7f)) 265 | * build(deps): bump eslint-utils from 1.3.1 to 1.4.2 ([b79f3f1](https://github.com/Scrum/vue-2-breadcrumbs/commit/b79f3f1)) 266 | * build(deps): bump lodash.template from 4.4.0 to 4.5.0 ([dd6f8f0](https://github.com/Scrum/vue-2-breadcrumbs/commit/dd6f8f0)) 267 | * build(deps): bump mixin-deep from 1.3.1 to 1.3.2 ([4fb7e9a](https://github.com/Scrum/vue-2-breadcrumbs/commit/4fb7e9a)) 268 | * docs: change url to demo page ([f14fa5f](https://github.com/Scrum/vue-2-breadcrumbs/commit/f14fa5f)) 269 | * docs: fix badges ([0905dae](https://github.com/Scrum/vue-2-breadcrumbs/commit/0905dae)) 270 | * docs: perf usege, close #63 ([dd9d373](https://github.com/Scrum/vue-2-breadcrumbs/commit/dd9d373)), closes [#63](https://github.com/Scrum/vue-2-breadcrumbs/issues/63) 271 | * docs: prettier arg ([27673fc](https://github.com/Scrum/vue-2-breadcrumbs/commit/27673fc)) 272 | 273 | 274 | 275 | ## 0.5.1 (2019-06-24) 276 | 277 | * 0.5.1 ([bdb0261](https://github.com/Scrum/vue-2-breadcrumbs/commit/bdb0261)) 278 | * build: add src docs ignore ([4b01ff8](https://github.com/Scrum/vue-2-breadcrumbs/commit/4b01ff8)) 279 | * build: bundle ([793cdd6](https://github.com/Scrum/vue-2-breadcrumbs/commit/793cdd6)) 280 | * build: bundle ([ec0329a](https://github.com/Scrum/vue-2-breadcrumbs/commit/ec0329a)) 281 | * build: change main file ([2152ae6](https://github.com/Scrum/vue-2-breadcrumbs/commit/2152ae6)) 282 | * build: change to new build system ([5d36e13](https://github.com/Scrum/vue-2-breadcrumbs/commit/5d36e13)) 283 | * build: enabled terser ([be9cc26](https://github.com/Scrum/vue-2-breadcrumbs/commit/be9cc26)) 284 | * build: made configs from package ([6ffae4e](https://github.com/Scrum/vue-2-breadcrumbs/commit/6ffae4e)) 285 | * build: update changelog ([07ab03f](https://github.com/Scrum/vue-2-breadcrumbs/commit/07ab03f)) 286 | * build(deps): bump extend from 3.0.1 to 3.0.2 ([ad66243](https://github.com/Scrum/vue-2-breadcrumbs/commit/ad66243)) 287 | * build(deps): bump handlebars from 4.0.12 to 4.1.2 ([ba83f42](https://github.com/Scrum/vue-2-breadcrumbs/commit/ba83f42)) 288 | * build(deps): bump js-yaml from 3.9.1 to 3.13.1 ([2891c3c](https://github.com/Scrum/vue-2-breadcrumbs/commit/2891c3c)) 289 | * build(deps): bump lodash from 4.17.4 to 4.17.11 ([7133b08](https://github.com/Scrum/vue-2-breadcrumbs/commit/7133b08)) 290 | * docs: add demo page ([20ad120](https://github.com/Scrum/vue-2-breadcrumbs/commit/20ad120)) 291 | * docs: small update ([1b93d4d](https://github.com/Scrum/vue-2-breadcrumbs/commit/1b93d4d)) 292 | * docs: update breadcrumbs name ([dcefeb2](https://github.com/Scrum/vue-2-breadcrumbs/commit/dcefeb2)) 293 | * fix: error on ie 11, close #49 ([36a5638](https://github.com/Scrum/vue-2-breadcrumbs/commit/36a5638)), closes [#49](https://github.com/Scrum/vue-2-breadcrumbs/issues/49) 294 | * fix: named routes close #55 ([cd41adc](https://github.com/Scrum/vue-2-breadcrumbs/commit/cd41adc)), closes [#55](https://github.com/Scrum/vue-2-breadcrumbs/issues/55) 295 | * ci: drop support old node ([ddf9248](https://github.com/Scrum/vue-2-breadcrumbs/commit/ddf9248)) 296 | * refactor: small ) ([a13100f](https://github.com/Scrum/vue-2-breadcrumbs/commit/a13100f)) 297 | * perf: add dist for browser ([e48e129](https://github.com/Scrum/vue-2-breadcrumbs/commit/e48e129)) 298 | * test: add simple test, close #3 ([56ecd05](https://github.com/Scrum/vue-2-breadcrumbs/commit/56ecd05)), closes [#3](https://github.com/Scrum/vue-2-breadcrumbs/issues/3) 299 | 300 | 301 | 302 | ## 0.5.0 (2019-02-06) 303 | 304 | * 0.5.0 ([ddd02ca](https://github.com/Scrum/vue-2-breadcrumbs/commit/ddd02ca)) 305 | * build: update changelog ([1fd3901](https://github.com/Scrum/vue-2-breadcrumbs/commit/1fd3901)) 306 | * build: update dep dev ([1ee3913](https://github.com/Scrum/vue-2-breadcrumbs/commit/1ee3913)) 307 | * docs: add example witch context ([ea60887](https://github.com/Scrum/vue-2-breadcrumbs/commit/ea60887)) 308 | * feat: add context for callback, close #53 ([c6b838e](https://github.com/Scrum/vue-2-breadcrumbs/commit/c6b838e)), closes [#53](https://github.com/Scrum/vue-2-breadcrumbs/issues/53) 309 | 310 | 311 | 312 | ## 0.4.2 (2019-01-29) 313 | 314 | * 0.4.2 ([bedf7fe](https://github.com/Scrum/vue-2-breadcrumbs/commit/bedf7fe)) 315 | * Update readme.md ([b1556eb](https://github.com/Scrum/vue-2-breadcrumbs/commit/b1556eb)) 316 | * build: bundle ([41d695a](https://github.com/Scrum/vue-2-breadcrumbs/commit/41d695a)) 317 | * build: update changelog ([3e4dc36](https://github.com/Scrum/vue-2-breadcrumbs/commit/3e4dc36)) 318 | * build: update changelog ([d8853a3](https://github.com/Scrum/vue-2-breadcrumbs/commit/d8853a3)) 319 | * fix: build scripts ([5ce1433](https://github.com/Scrum/vue-2-breadcrumbs/commit/5ce1433)) 320 | * fix: fix replace params ([cf15658](https://github.com/Scrum/vue-2-breadcrumbs/commit/cf15658)) 321 | * fix: uri to homepage ([8b02004](https://github.com/Scrum/vue-2-breadcrumbs/commit/8b02004)) 322 | 323 | 324 | 325 | ## 0.4.0 (2018-07-26) 326 | 327 | * 0.4.0 ([7d2a718](https://github.com/Scrum/vue-2-breadcrumbs/commit/7d2a718)) 328 | * docs: add description on options ([80a4279](https://github.com/Scrum/vue-2-breadcrumbs/commit/80a4279)) 329 | * docs: remove license because redundantly ([c4983fc](https://github.com/Scrum/vue-2-breadcrumbs/commit/c4983fc)) 330 | * feat: add options for overwriting default configure close #44 close #47 ([88f3da2](https://github.com/Scrum/vue-2-breadcrumbs/commit/88f3da2)), closes [#44](https://github.com/Scrum/vue-2-breadcrumbs/issues/44) [#47](https://github.com/Scrum/vue-2-breadcrumbs/issues/47) 331 | * build: update changelog ([82f07ee](https://github.com/Scrum/vue-2-breadcrumbs/commit/82f07ee)) 332 | 333 | 334 | 335 | ## 0.3.1 (2018-07-18) 336 | 337 | * 0.3.1 ([6381083](https://github.com/Scrum/vue-2-breadcrumbs/commit/6381083)) 338 | * fix: prepend all breadcrumbs with Home, close #45 ([00e2b1a](https://github.com/Scrum/vue-2-breadcrumbs/commit/00e2b1a)), closes [#45](https://github.com/Scrum/vue-2-breadcrumbs/issues/45) 339 | * fix: previous crumb link wrong, close #43 ([8e9454e](https://github.com/Scrum/vue-2-breadcrumbs/commit/8e9454e)), closes [#43](https://github.com/Scrum/vue-2-breadcrumbs/issues/43) 340 | * build: update changelog ([b1d0daa](https://github.com/Scrum/vue-2-breadcrumbs/commit/b1d0daa)) 341 | 342 | 343 | 344 | ## 0.3.0 (2018-04-29) 345 | 346 | * 0.3.0 ([5160ffb](https://github.com/Scrum/vue-2-breadcrumbs/commit/5160ffb)) 347 | * style: according eslint ([ee62a28](https://github.com/Scrum/vue-2-breadcrumbs/commit/ee62a28)) 348 | * style: fix typo ([0172a29](https://github.com/Scrum/vue-2-breadcrumbs/commit/0172a29)) 349 | * style: update rules for editorconfig ([52a0e3b](https://github.com/Scrum/vue-2-breadcrumbs/commit/52a0e3b)) 350 | * build: update changelog ([61e155b](https://github.com/Scrum/vue-2-breadcrumbs/commit/61e155b)) 351 | * build: update depDev ([d834285](https://github.com/Scrum/vue-2-breadcrumbs/commit/d834285)) 352 | * build: update pkg for build ([a5a636c](https://github.com/Scrum/vue-2-breadcrumbs/commit/a5a636c)) 353 | * feat: pass current route params into breadcrumb function ([8dcf9e2](https://github.com/Scrum/vue-2-breadcrumbs/commit/8dcf9e2)) 354 | * docs: add demo link ([59a545f](https://github.com/Scrum/vue-2-breadcrumbs/commit/59a545f)) 355 | 356 | 357 | 358 | ## 0.2.4 (2018-04-21) 359 | 360 | * 0.2.4 ([4e971cf](https://github.com/Scrum/vue-2-breadcrumbs/commit/4e971cf)) 361 | * fix: change dist to lib ([69b052a](https://github.com/Scrum/vue-2-breadcrumbs/commit/69b052a)) 362 | * fix: change main dir ([80f80bd](https://github.com/Scrum/vue-2-breadcrumbs/commit/80f80bd)) 363 | * build: remove dist folder ([122305c](https://github.com/Scrum/vue-2-breadcrumbs/commit/122305c)) 364 | * build: update changelog ([5038d8a](https://github.com/Scrum/vue-2-breadcrumbs/commit/5038d8a)) 365 | * build: update depDev ([54f6cf7](https://github.com/Scrum/vue-2-breadcrumbs/commit/54f6cf7)) 366 | * style: change user name ([927c583](https://github.com/Scrum/vue-2-breadcrumbs/commit/927c583)) 367 | 368 | 369 | 370 | ## 0.2.3 (2018-04-14) 371 | 372 | * 0.2.3 ([11057b4](https://github.com/Scrum/vue-2-breadcrumbs/commit/11057b4)) 373 | * fix breadcrumbs to populate params in matched routes ([d4097e6](https://github.com/Scrum/vue-2-breadcrumbs/commit/d4097e6)) 374 | * docs: remove window badge ([e930de5](https://github.com/Scrum/vue-2-breadcrumbs/commit/e930de5)) 375 | * build: update changelog ([dc26398](https://github.com/Scrum/vue-2-breadcrumbs/commit/dc26398)) 376 | 377 | 378 | 379 | ## 0.2.2 (2018-01-29) 380 | 381 | * 0.2.2 ([ae8c449](https://github.com/Scrum/vue-2-breadcrumbs/commit/ae8c449)) 382 | * build: fix version ([bc3287d](https://github.com/Scrum/vue-2-breadcrumbs/commit/bc3287d)) 383 | * build: update changelog ([8506938](https://github.com/Scrum/vue-2-breadcrumbs/commit/8506938)) 384 | 385 | 386 | 387 | ## 0.1.3 (2018-01-29) 388 | 389 | * 0.1.3 ([5e2c102](https://github.com/Scrum/vue-2-breadcrumbs/commit/5e2c102)) 390 | * Make breadcrumbs dynamic, i.e. now they may be functions. ([ccb0b83](https://github.com/Scrum/vue-2-breadcrumbs/commit/ccb0b83)) 391 | * Update README to reflect new dynamic breadcrumb feature ([58e7c63](https://github.com/Scrum/vue-2-breadcrumbs/commit/58e7c63)) 392 | * Update readme.md ([7a0ec7f](https://github.com/Scrum/vue-2-breadcrumbs/commit/7a0ec7f)) 393 | * build: Add Babel locally ([401a519](https://github.com/Scrum/vue-2-breadcrumbs/commit/401a519)) 394 | * build: add lint staged ([a19c84e](https://github.com/Scrum/vue-2-breadcrumbs/commit/a19c84e)) 395 | * build: change babili to minify ([8cb35cd](https://github.com/Scrum/vue-2-breadcrumbs/commit/8cb35cd)) 396 | * build: change prepublish to prepare ([89b3725](https://github.com/Scrum/vue-2-breadcrumbs/commit/89b3725)) 397 | * build: drop np and script for np ([792af11](https://github.com/Scrum/vue-2-breadcrumbs/commit/792af11)) 398 | * build: drop path exists for eslint ([a220960](https://github.com/Scrum/vue-2-breadcrumbs/commit/a220960)) 399 | * build: drop unused pkg ([d32107f](https://github.com/Scrum/vue-2-breadcrumbs/commit/d32107f)) 400 | * build: drop updtr ([f5a6282](https://github.com/Scrum/vue-2-breadcrumbs/commit/f5a6282)) 401 | * build: drop updtr script ([7a7ba73](https://github.com/Scrum/vue-2-breadcrumbs/commit/7a7ba73)) 402 | * build: fix eslint config ([98168b5](https://github.com/Scrum/vue-2-breadcrumbs/commit/98168b5)) 403 | * build: remove test script ([537aa78](https://github.com/Scrum/vue-2-breadcrumbs/commit/537aa78)) 404 | * build: update build script ([7d800ea](https://github.com/Scrum/vue-2-breadcrumbs/commit/7d800ea)) 405 | * build: update commit linter ([02d1a7c](https://github.com/Scrum/vue-2-breadcrumbs/commit/02d1a7c)) 406 | * build: update depDev ([0b90d73](https://github.com/Scrum/vue-2-breadcrumbs/commit/0b90d73)) 407 | * build: update lint config ([7870016](https://github.com/Scrum/vue-2-breadcrumbs/commit/7870016)) 408 | * build: update markdown plugin for eslint ([6393f97](https://github.com/Scrum/vue-2-breadcrumbs/commit/6393f97)) 409 | * style: Improve Code style ([a8e0737](https://github.com/Scrum/vue-2-breadcrumbs/commit/a8e0737)) 410 | * chore(changelog): Update changelog ([2265ab1](https://github.com/Scrum/vue-2-breadcrumbs/commit/2265ab1)) 411 | 412 | 413 | 414 | ## 0.1.2 (2017-08-11) 415 | 416 | * 0.1.2 ([9537f7e](https://github.com/Scrum/vue-2-breadcrumbs/commit/9537f7e)) 417 | * Update .editorconfig ([866ae01](https://github.com/Scrum/vue-2-breadcrumbs/commit/866ae01)) 418 | * Update .gitignore ([1064bfb](https://github.com/Scrum/vue-2-breadcrumbs/commit/1064bfb)) 419 | * Update .npmignore ([d16ae18](https://github.com/Scrum/vue-2-breadcrumbs/commit/d16ae18)) 420 | * style: linters ([60623ce](https://github.com/Scrum/vue-2-breadcrumbs/commit/60623ce)) 421 | * fix: index name ([b183284](https://github.com/Scrum/vue-2-breadcrumbs/commit/b183284)) 422 | * fix: typo ([e988bb3](https://github.com/Scrum/vue-2-breadcrumbs/commit/e988bb3)) 423 | * chore: add lock file ([7f408a9](https://github.com/Scrum/vue-2-breadcrumbs/commit/7f408a9)) 424 | * chore(changelog): Update changelog ([5c51241](https://github.com/Scrum/vue-2-breadcrumbs/commit/5c51241)) 425 | * chore(package): update babel-cli to version 6.24.1 ([2c099f1](https://github.com/Scrum/vue-2-breadcrumbs/commit/2c099f1)) 426 | * chore(package): update babel-eslint to version 7.2.3 ([2045850](https://github.com/Scrum/vue-2-breadcrumbs/commit/2045850)) 427 | * chore(package): update babel-preset-env to version 1.3.3 ([d234179](https://github.com/Scrum/vue-2-breadcrumbs/commit/d234179)) 428 | * chore(package): update babel-preset-env to version 1.4.0 ([03f8fbe](https://github.com/Scrum/vue-2-breadcrumbs/commit/03f8fbe)) 429 | * chore(package): update babel-register to version 6.24.0 ([31461e4](https://github.com/Scrum/vue-2-breadcrumbs/commit/31461e4)) 430 | * chore(package): update babel-register to version 6.24.1 ([853a832](https://github.com/Scrum/vue-2-breadcrumbs/commit/853a832)) 431 | * chore(package): update clinton to version 0.13.0 ([5115166](https://github.com/Scrum/vue-2-breadcrumbs/commit/5115166)) 432 | * chore(package): update conventional-changelog-lint to version 1.1.8 ([914a1d3](https://github.com/Scrum/vue-2-breadcrumbs/commit/914a1d3)) 433 | * chore(package): update dependencies ([1c0e400](https://github.com/Scrum/vue-2-breadcrumbs/commit/1c0e400)) 434 | * chore(package): update eslint to version 3.19.0 ([5f28fe6](https://github.com/Scrum/vue-2-breadcrumbs/commit/5f28fe6)) 435 | * chore(package): update husky to version 0.13.4 ([d06bc56](https://github.com/Scrum/vue-2-breadcrumbs/commit/d06bc56)) 436 | * chore(package): update np to version 2.15.0 ([7c75148](https://github.com/Scrum/vue-2-breadcrumbs/commit/7c75148)) 437 | * chore(package): update updtr to version 1.0.0 ([4a48dbd](https://github.com/Scrum/vue-2-breadcrumbs/commit/4a48dbd)) 438 | 439 | 440 | 441 | ## 0.1.1 (2017-03-30) 442 | 443 | * 0.1.1 ([df9e233](https://github.com/Scrum/vue-2-breadcrumbs/commit/df9e233)) 444 | * chore(*): lib to dist and unpkg ([e830da2](https://github.com/Scrum/vue-2-breadcrumbs/commit/e830da2)) 445 | * chore(changelog): Update changelog ([93db0c4](https://github.com/Scrum/vue-2-breadcrumbs/commit/93db0c4)) 446 | * docs(readme): add, close #1 ([ff8f589](https://github.com/Scrum/vue-2-breadcrumbs/commit/ff8f589)), closes [#1](https://github.com/Scrum/vue-2-breadcrumbs/issues/1) 447 | 448 | 449 | 450 | ## 0.1.0 (2017-03-29) 451 | 452 | * 0.1.0 ([dfcadec](https://github.com/Scrum/vue-2-breadcrumbs/commit/dfcadec)) 453 | * feat(index): disable last link ([add9b00](https://github.com/Scrum/vue-2-breadcrumbs/commit/add9b00)) 454 | * style(package): fix path ([9f0363e](https://github.com/Scrum/vue-2-breadcrumbs/commit/9f0363e)) 455 | * docs(changelog): add changelog ([a58fe36](https://github.com/Scrum/vue-2-breadcrumbs/commit/a58fe36)) 456 | * docs(readme): add install ([d9b5027](https://github.com/Scrum/vue-2-breadcrumbs/commit/d9b5027)) 457 | * chore(changelog): Update changelog ([550e9ff](https://github.com/Scrum/vue-2-breadcrumbs/commit/550e9ff)) 458 | 459 | 460 | 461 | ## 0.0.1 (2017-03-28) 462 | 463 | * 0.0.1 ([d3dd94c](https://github.com/Scrum/vue-2-breadcrumbs/commit/d3dd94c)) 464 | * style(package): fix version ([3953c35](https://github.com/Scrum/vue-2-breadcrumbs/commit/3953c35)) 465 | * feat(*): init project ([aa22325](https://github.com/Scrum/vue-2-breadcrumbs/commit/aa22325)) 466 | 467 | 468 | 469 | --------------------------------------------------------------------------------