Socket
Socket
Sign inDemoInstall

druxt-breadcrumb

Package Overview
Dependencies
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

druxt-breadcrumb - npm Package Compare versions

Comparing version 0.7.2 to 0.8.0

75

dist/druxt-breadcrumb.esm.js
import { resolve } from 'path';
import { DruxtComponentMixin } from 'druxt';
import { DruxtModule } from 'druxt';
import { mapState, mapActions } from 'vuex';

@@ -47,4 +47,2 @@ import { DruxtBlocksBlockMixin } from 'druxt-blocks';

//
/**

@@ -59,3 +57,3 @@ * The `<DruxtBreadcrumb />` Vue.js component.

mixins: [DruxtComponentMixin],
extends: DruxtModule,

@@ -87,10 +85,6 @@ /**

await this.fetchCrumbs();
// Fetch theme component.
await DruxtComponentMixin.fetch.call(this);
await DruxtModule.fetch.call(this);
},
/**
* Vue.js Data object.
*
* @property {objects[]} crumbs - The Breadcrumbs.

@@ -134,5 +128,6 @@ */

// Current route crumb.
var crumbs = [{
text: this.route.label
}];
var crumbs = [];
if (this.route.label) {
crumbs.push({ text: this.route.label });
}

@@ -174,2 +169,30 @@ // If we are at the root of the site, stop here.

this.crumbs = crumbs.reverse();
},
/**
* Provides the scoped slots object for the Module render function.
*
* The `default` slot renders crumbs as as list of NuxtLink's.
*
* @return {ScopedSlots} The Scoped slots object.
*/
getScopedSlots: function getScopedSlots() {
var this$1 = this;
// Build scoped slots for each field.
var scopedSlots = {};
// Build default slot.
scopedSlots.default = function () { return this$1.$createElement('ul', this$1.crumbs.map(function (crumb) { return this$1.$createElement('li', [
crumb.to
? this$1.$createElement('NuxtLink', { props: { to: crumb.to }}, [crumb.text])
: crumb.text
]); }
)); };
if (this.$scopedSlots.default) {
scopedSlots.default = function (attrs) { return this$1.$scopedSlots.default(Object.assign({}, this$1.$options.druxt.propsData(this$1),
attrs)); };
}
return scopedSlots
}},

@@ -187,12 +210,10 @@

*/
druxt: function (ref) {
var vm = ref.vm;
druxt: {
componentOptions: function (ref) { return [['default']]; },
propsData: function (ref) {
var crumbs = ref.crumbs;
return ({
componentOptions: [['default']],
propsData: {
crumbs: vm.crumbs
}
});
},
return ({ crumbs: crumbs });
}
},
};

@@ -279,4 +300,2 @@

/* template */
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.$fetchState.pending)?_c(_vm.wrapper.component,_vm._b({tag:"component",class:_vm.wrapper.class,style:(_vm.wrapper.style)},'component',_vm.wrapper.propsData,false),[_c(_vm.component.is,_vm._b({tag:"component",scopedSlots:_vm._u([{key:"default",fn:function(){return [_vm._v("\n "+_vm._s(_vm.crumbs)+"\n ")]},proxy:true}],null,false,2189858211)},'component',_vm.component.propsData,false))],1):_vm._e()};
var __vue_staticRenderFns__ = [];

@@ -290,3 +309,3 @@ /* style */

/* functional template */
var __vue_is_functional_template__ = false;
var __vue_is_functional_template__ = undefined;
/* style inject */

@@ -301,3 +320,3 @@

var __vue_component__ = /*#__PURE__*/normalizeComponent(
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
{},
__vue_inject_styles__,

@@ -346,4 +365,4 @@ __vue_script__,

/* template */
var __vue_render__$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DruxtBreadcrumb')};
var __vue_staticRenderFns__$1 = [];
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DruxtBreadcrumb')};
var __vue_staticRenderFns__ = [];

@@ -367,3 +386,3 @@ /* style */

var __vue_component__$1 = /*#__PURE__*/normalizeComponent(
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
__vue_inject_styles__$1,

@@ -370,0 +389,0 @@ __vue_script__$1,

@@ -1,1 +0,1 @@

var DruxtBreadcrumb=function(t,e,r,n,o){"use strict";function s(t,e,r,n,o,s,i,u,a,c){"boolean"!=typeof i&&(a=u,u=i,i=!1);var d,p="function"==typeof r?r.options:r;if(t&&t.render&&(p.render=t.render,p.staticRenderFns=t.staticRenderFns,p._compiled=!0,o&&(p.functional=!0)),n&&(p._scopeId=n),s?(d=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,a(t)),t&&t._registeredComponents&&t._registeredComponents.add(s)},p._ssrRegister=d):e&&(d=i?function(t){e.call(this,c(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,u(t))}),d)if(p.functional){var l=p.render;p.render=function(t,e){return d.call(e),l(t,e)}}else{var m=p.beforeCreate;p.beforeCreate=m?[].concat(m,d):[d]}return r}var i=s({render:function(){var t=this,e=t.$createElement,r=t._self._c||e;return t.$fetchState.pending?t._e():r(t.wrapper.component,t._b({tag:"component",class:t.wrapper.class,style:t.wrapper.style},"component",t.wrapper.propsData,!1),[r(t.component.is,t._b({tag:"component",scopedSlots:t._u([{key:"default",fn:function(){return[t._v("\n "+t._s(t.crumbs)+"\n ")]},proxy:!0}],null,!1,2189858211)},"component",t.component.propsData,!1))],1)},staticRenderFns:[]},undefined,{name:"DruxtBreadcrumb",mixins:[r.DruxtComponentMixin],props:{home:{type:Boolean,default:!0}},fetch:async function(){await this.fetchCrumbs(),await r.DruxtComponentMixin.fetch.call(this)},data:function(){return{crumbs:[]}},computed:Object.assign({},n.mapState({route:function(t){return t.druxtRouter.route},routes:function(t){return t.druxtRouter.routes}})),watch:{$route:async function(){await this.$fetch()}},methods:Object.assign({},{fetchCrumbs:async function(){if(this.route&&Object.keys(this.route).length&&("/"!==this.$route.path||this.home)){var t=[{text:this.route.label}];if("/"!==this.$route.path){var e=this.$route.path.split("/").filter(String);for(e.pop();e.length>0;){var r="/"+e.join("/"),n=void 0;try{n=await this.getRoute(r)}catch(t){n=!1}n.label&&t.push({to:r,text:n.label}),e.pop()}this.home&&t.push({to:"/",text:"Home"}),this.crumbs=t.reverse()}else this.crumbs=t}}},n.mapActions({getRoute:"druxtRouter/getRoute"})),druxt:function(t){return{componentOptions:[["default"]],propsData:{crumbs:t.vm.crumbs}}}},undefined,false,undefined,!1,void 0,void 0,void 0),u=s({render:function(){var t=this.$createElement;return(this._self._c||t)("DruxtBreadcrumb")},staticRenderFns:[]},undefined,{name:"DruxtBlockSystemBreadcrumbBlock",mixins:[o.DruxtBlocksBlockMixin]},undefined,false,undefined,!1,void 0,void 0,void 0),a=Object.freeze({__proto__:null,DruxtBreadcrumb:i,DruxtBlockSystemBreadcrumbBlock:u}),c={props:{crumbs:{type:Array,require:!0}}};return t.DruxtBlockSystemBreadcrumbBlock=u,t.DruxtBreadcrumb=i,t.DruxtBreadcrumbComponents=a,t.DruxtBreadcrumbMixin=c,t.default=function(t){if(void 0===this.options||!this.options.druxt)throw new TypeError("Druxt settings missing.");var r=this.options.druxt;r.breadcrumb=Object.assign({},{home:!0},r.breadcrumb),this.addPlugin({src:e.resolve(__dirname,"../nuxt/plugin.js"),fileName:"druxt-breadcrumb.js",options:r})},t}({},path,druxt,vuex,druxtBlocks);
var DruxtBreadcrumb=function(t,e,r,n,o){"use strict";function u(t,e,r,n,o,u,i,s,a,c){"boolean"!=typeof i&&(a=s,s=i,i=!1);var d,l="function"==typeof r?r.options:r;if(t&&t.render&&(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0,o&&(l.functional=!0)),n&&(l._scopeId=n),u?(d=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,a(t)),t&&t._registeredComponents&&t._registeredComponents.add(u)},l._ssrRegister=d):e&&(d=i?function(t){e.call(this,c(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,s(t))}),d)if(l.functional){var f=l.render;l.render=function(t,e){return d.call(e),f(t,e)}}else{var h=l.beforeCreate;l.beforeCreate=h?[].concat(h,d):[d]}return r}var i=u({},undefined,{name:"DruxtBreadcrumb",extends:r.DruxtModule,props:{home:{type:Boolean,default:!0}},fetch:async function(){await this.fetchCrumbs(),await r.DruxtModule.fetch.call(this)},data:function(){return{crumbs:[]}},computed:Object.assign({},n.mapState({route:function(t){return t.druxtRouter.route},routes:function(t){return t.druxtRouter.routes}})),watch:{$route:async function(){await this.$fetch()}},methods:Object.assign({},{fetchCrumbs:async function(){if(this.route&&Object.keys(this.route).length&&("/"!==this.$route.path||this.home)){var t=[];if(this.route.label&&t.push({text:this.route.label}),"/"!==this.$route.path){var e=this.$route.path.split("/").filter(String);for(e.pop();e.length>0;){var r="/"+e.join("/"),n=void 0;try{n=await this.getRoute(r)}catch(t){n=!1}n.label&&t.push({to:r,text:n.label}),e.pop()}this.home&&t.push({to:"/",text:"Home"}),this.crumbs=t.reverse()}else this.crumbs=t}},getScopedSlots:function(){var t=this,e={default:function(){return t.$createElement("ul",t.crumbs.map((function(e){return t.$createElement("li",[e.to?t.$createElement("NuxtLink",{props:{to:e.to}},[e.text]):e.text])})))}};return this.$scopedSlots.default&&(e.default=function(e){return t.$scopedSlots.default(Object.assign({},t.$options.druxt.propsData(t),e))}),e}},n.mapActions({getRoute:"druxtRouter/getRoute"})),druxt:{componentOptions:function(t){return[["default"]]},propsData:function(t){return{crumbs:t.crumbs}}}},undefined,undefined,undefined,!1,void 0,void 0,void 0),s=u({render:function(){var t=this.$createElement;return(this._self._c||t)("DruxtBreadcrumb")},staticRenderFns:[]},undefined,{name:"DruxtBlockSystemBreadcrumbBlock",mixins:[o.DruxtBlocksBlockMixin]},undefined,false,undefined,!1,void 0,void 0,void 0),a=Object.freeze({__proto__:null,DruxtBreadcrumb:i,DruxtBlockSystemBreadcrumbBlock:s}),c={props:{crumbs:{type:Array,require:!0}}};return t.DruxtBlockSystemBreadcrumbBlock=s,t.DruxtBreadcrumb=i,t.DruxtBreadcrumbComponents=a,t.DruxtBreadcrumbMixin=c,t.default=function(t){if(void 0===this.options||!this.options.druxt)throw new TypeError("Druxt settings missing.");var r=this.options.druxt;r.breadcrumb=Object.assign({},{home:!0},r.breadcrumb),this.addPlugin({src:e.resolve(__dirname,"../nuxt/plugin.js"),fileName:"druxt-breadcrumb.js",options:r})},t}({},path,druxt,vuex,druxtBlocks);

@@ -40,5 +40,3 @@ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var path=require('path'),druxt=require('druxt'),vuex=require('vuex'),druxtBlocks=require('druxt-blocks');/**

});
};//
/**
};/**
* The `<DruxtBreadcrumb />` Vue.js component.

@@ -52,3 +50,3 @@ *

mixins: [druxt.DruxtComponentMixin],
extends: druxt.DruxtModule,

@@ -80,10 +78,6 @@ /**

await this.fetchCrumbs();
// Fetch theme component.
await druxt.DruxtComponentMixin.fetch.call(this);
await druxt.DruxtModule.fetch.call(this);
},
/**
* Vue.js Data object.
*
* @property {objects[]} crumbs - The Breadcrumbs.

@@ -127,5 +121,6 @@ */

// Current route crumb.
var crumbs = [{
text: this.route.label
}];
var crumbs = [];
if (this.route.label) {
crumbs.push({ text: this.route.label });
}

@@ -167,2 +162,30 @@ // If we are at the root of the site, stop here.

this.crumbs = crumbs.reverse();
},
/**
* Provides the scoped slots object for the Module render function.
*
* The `default` slot renders crumbs as as list of NuxtLink's.
*
* @return {ScopedSlots} The Scoped slots object.
*/
getScopedSlots: function getScopedSlots() {
var this$1 = this;
// Build scoped slots for each field.
var scopedSlots = {};
// Build default slot.
scopedSlots.default = function () { return this$1.$createElement('ul', this$1.crumbs.map(function (crumb) { return this$1.$createElement('li', [
crumb.to
? this$1.$createElement('NuxtLink', { props: { to: crumb.to }}, [crumb.text])
: crumb.text
]); }
)); };
if (this.$scopedSlots.default) {
scopedSlots.default = function (attrs) { return this$1.$scopedSlots.default(Object.assign({}, this$1.$options.druxt.propsData(this$1),
attrs)); };
}
return scopedSlots
}},

@@ -180,12 +203,10 @@

*/
druxt: function (ref) {
var vm = ref.vm;
druxt: {
componentOptions: function (ref) { return [['default']]; },
propsData: function (ref) {
var crumbs = ref.crumbs;
return ({
componentOptions: [['default']],
propsData: {
crumbs: vm.crumbs
}
});
},
return ({ crumbs: crumbs });
}
},
};function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {

@@ -268,4 +289,2 @@ if (typeof shadowMode !== 'boolean') {

/* template */
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.$fetchState.pending)?_c(_vm.wrapper.component,_vm._b({tag:"component",class:_vm.wrapper.class,style:(_vm.wrapper.style)},'component',_vm.wrapper.propsData,false),[_c(_vm.component.is,_vm._b({tag:"component",scopedSlots:_vm._u([{key:"default",fn:function(){return [_vm._v("\n "+_vm._s(_vm.crumbs)+"\n ")]},proxy:true}],null,false,2189858211)},'component',_vm.component.propsData,false))],1):_vm._e()};
var __vue_staticRenderFns__ = [];

@@ -277,5 +296,5 @@ /* style */

/* module identifier */
var __vue_module_identifier__ = "data-v-8983a4ae";
var __vue_module_identifier__ = "data-v-1e40a024";
/* functional template */
var __vue_is_functional_template__ = false;
var __vue_is_functional_template__ = undefined;
/* style inject */

@@ -290,3 +309,3 @@

var __vue_component__ = /*#__PURE__*/normalizeComponent(
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
{},
__vue_inject_styles__,

@@ -331,4 +350,4 @@ __vue_script__,

/* template */
var __vue_render__$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DruxtBreadcrumb')};
var __vue_staticRenderFns__$1 = [];
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DruxtBreadcrumb')};
var __vue_staticRenderFns__ = [];

@@ -352,3 +371,3 @@ /* style */

var __vue_component__$1 = /*#__PURE__*/normalizeComponent(
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
__vue_inject_styles__$1,

@@ -355,0 +374,0 @@ __vue_script__$1,

{
"name": "druxt-breadcrumb",
"version": "0.7.2",
"version": "0.8.0",
"description": "Provides a Breadcrumb Vue component to be used within a Druxt (DRUpal nuXT) project.",

@@ -16,3 +16,7 @@ "repository": {

],
"author": "Stuart Clark <stuart@realityloop.com> (realityloop.com)",
"author": {
"name": "Stuart Clark",
"email": "stuart@realityloop.com",
"url": "https://realityloop.com"
},
"license": "MIT",

@@ -48,5 +52,5 @@ "bugs": {

"dependencies": {
"codecov": "^3.8.1",
"druxt": "^0.4.1",
"druxt-blocks": "^0.8.0",
"codecov": "^3.8.2",
"druxt": "^0.6.0",
"druxt-blocks": "^0.9.0",
"druxt-router": "^0.18.0",

@@ -53,0 +57,0 @@ "vuex": "^3.6.0"

@@ -6,2 +6,3 @@ # DruxtJS Breadcrumb

[![codecov](https://codecov.io/gh/druxt/druxt-breadcrumb/branch/develop/graph/badge.svg)](https://codecov.io/gh/druxt/druxt-breadcrumb)
[![npm](https://badgen.net/npm/v/druxt-breadcrumb)](https://www.npmjs.com/package/druxt-breadcrumb)

@@ -20,3 +21,3 @@ > Provides a Breadcrumb Vue.js component to be used within a Druxt (DRUpal nuXT) project.

## Usage
### Nuxt.js

@@ -37,2 +38,34 @@ Add module to `nuxt.config.js`

## Usage
### DruxtBreadcrumb component
The DruxtBreadcrumb component uses the Vue Router and DruxtRouter to build a list of crumbs.
```vue
<DruxtBreadcrumb />
```
The crumbs can be themed by providing a default scoped slot:
```vue
<DruxtBreadcrumb>
<template #default="{ crumbs }">
{{ crumbs }}
</template>
</DruxtBreadcrumb>
```
The DruxtBreadcrumb also provide a DruxtWrapper component for theming:
```vue
<!-- DruxtBreadcrumbDefault.vue -->
<template>
<div>
<slot />
<div>
</template>
```
See the [DruxtBreadcrumb API documentation](https://breadcrumb.druxtjs.org/api/components/DruxtBreadcrumb.html) for more information.
## Options

@@ -42,7 +75,7 @@

These options are available to all Druxt modules.
These options are available to all Druxt modules, in the `nuxt.config.js` file.
| Option | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `axios` | `object` | No | `{}` | [Axios instance settings](https://github.com/axios/axios#axioscreateconfig). |
| `baseUrl` | `string` | Yes | `null` | Base URL for the Drupal installation. |
| `druxt.axios` | `object` | No | `{}` | [Axios instance settings](https://github.com/axios/axios#axioscreateconfig). |
| `druxt.baseUrl` | `string` | Yes | `null` | Base URL for the Drupal installation. |
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc