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.4.0 to 0.5.0

254

dist/druxt-breadcrumb.esm.js
import { resolve } from 'path';
import { mapState, mapActions } from 'vuex';
import { DruxtBlocksBlockMixin } from 'druxt-blocks';
var component = {
//
var script = {
name: 'DruxtBreadcrumb',

@@ -10,13 +13,11 @@

type: String,
default: function() {
// @TODO - Get default from site configuration.
return 'div'
}
default: 'div'
},
home: {
type: Boolean,
default: true
}
},
created: function created() {
this.getItems();
},
data: function () { return ({

@@ -35,2 +36,25 @@ loading: 0,

})
},
settings: function settings() {
var settings = {
component: null,
home: null
};
for (var setting in settings) {
if (typeof this.$options.propsData[setting] !== 'undefined') {
settings[setting] = this[setting];
continue
}
if (typeof this.$druxtBreadcrumb.options[setting] !== 'undefined') {
settings[setting] = this.$druxtBreadcrumb.options[setting];
continue
}
settings[setting] = this[setting];
}
return settings
}},

@@ -43,2 +67,10 @@

watch: {
'$route': 'getItems'
},
created: function created() {
this.getItems();
},
methods: Object.assign({}, {getItems: function getItems() {

@@ -54,7 +86,8 @@ var this$1 = this;

// Home crumb.
// @TODO - Make this configurable.
this.items['/'] = {
to: '/',
text: 'Home'
};
if (this.settings.home) {
this.items['/'] = {
to: '/',
text: 'Home'
};
}

@@ -99,23 +132,180 @@ // If we are at the root of the site, stop here.

getRoute: 'druxtRouter/getRoute'
})),
}))
};
watch: {
'$route': 'getItems'
},
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
if (typeof shadowMode !== 'boolean') {
createInjectorSSR = createInjector;
createInjector = shadowMode;
shadowMode = false;
}
// Vue.extend constructor export interop.
var options = typeof script === 'function' ? script.options : script;
// render functions
if (template && template.render) {
options.render = template.render;
options.staticRenderFns = template.staticRenderFns;
options._compiled = true;
// functional template
if (isFunctionalTemplate) {
options.functional = true;
}
}
// scopedId
if (scopeId) {
options._scopeId = scopeId;
}
var hook;
if (moduleIdentifier) {
// server build
hook = function (context) {
// 2.3 injection
context =
context || // cached call
(this.$vnode && this.$vnode.ssrContext) || // stateful
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional
// 2.2 with runInNewContext: true
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__;
}
// inject component styles
if (style) {
style.call(this, createInjectorSSR(context));
}
// register component module identifier for async chunk inference
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier);
}
};
// used by ssr in case component is cached and beforeCreate
// never gets called
options._ssrRegister = hook;
}
else if (style) {
hook = shadowMode
? function (context) {
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
}
: function (context) {
style.call(this, createInjector(context));
};
}
if (hook) {
if (options.functional) {
// register for functional component in vue file
var originalRender = options.render;
options.render = function renderWithStyleInjection(h, context) {
hook.call(context);
return originalRender(h, context);
};
}
else {
// inject component registration as beforeCreate hook
var existing = options.beforeCreate;
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
}
}
return script;
}
render: function (createElement) {
if (this.crumbs.length === 0) { return }
/* script */
var __vue_script__ = script;
// @TODO - Make component configurable.
return createElement(this.component, {
props: {
items: this.crumbs
}
})
}
/* template */
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.crumbs.length)?_c(_vm.settings.component,{tag:"component",attrs:{"items":_vm.crumbs}}):_vm._e()};
var __vue_staticRenderFns__ = [];
/* style */
var __vue_inject_styles__ = undefined;
/* scoped */
var __vue_scope_id__ = undefined;
/* module identifier */
var __vue_module_identifier__ = undefined;
/* functional template */
var __vue_is_functional_template__ = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var __vue_component__ = /*#__PURE__*/normalizeComponent(
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
__vue_inject_styles__,
__vue_script__,
__vue_scope_id__,
__vue_is_functional_template__,
__vue_module_identifier__,
false,
undefined,
undefined,
undefined
);
//
var script$1 = {
name: 'DruxtBlockSystemBreadcrumbBlock',
mixins: [DruxtBlocksBlockMixin],
};
function index (moduleOptions) {
if ( moduleOptions === void 0 ) moduleOptions = {};
/* script */
var __vue_script__$1 = script$1;
/* template */
var __vue_render__$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('druxt-breadcrumb')};
var __vue_staticRenderFns__$1 = [];
/* style */
var __vue_inject_styles__$1 = undefined;
/* scoped */
var __vue_scope_id__$1 = undefined;
/* module identifier */
var __vue_module_identifier__$1 = undefined;
/* functional template */
var __vue_is_functional_template__$1 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var __vue_component__$1 = /*#__PURE__*/normalizeComponent(
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
__vue_inject_styles__$1,
__vue_script__$1,
__vue_scope_id__$1,
__vue_is_functional_template__$1,
__vue_module_identifier__$1,
false,
undefined,
undefined,
undefined
);
var index = /*#__PURE__*/Object.freeze({
__proto__: null,
DruxtBreadcrumb: __vue_component__,
DruxtBlockSystemBreadcrumbBlock: __vue_component__$1
});
function index$1 (moduleOptions) {
// Use root level Druxt options.
if (typeof this.options === 'undefined' || !this.options.druxt) {
throw new TypeError('Druxt settings missing.')
}
var options = this.options.druxt;
options.breadcrumb = Object.assign({}, {home: true},
options.breadcrumb);
// Add plugin.

@@ -125,7 +315,7 @@ this.addPlugin({

fileName: 'druxt-breadcrumb.js',
moduleOptions: moduleOptions
options: options
});
}
export default index;
export { component as DruxtBreadcrumb };
export default index$1;
export { __vue_component__$1 as DruxtBlockSystemBreadcrumbBlock, __vue_component__ as DruxtBreadcrumb, index as DruxtBreadcrumbComponents };

2

dist/druxt-breadcrumb.min.js

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

var VueDrupalEntity=function(t,e,r){"use strict";var i={name:"DruxtBreadcrumb",props:{component:{type:String,default:function(){return"div"}}},created:function(){this.getItems()},data:function(){return{loading:0,items:{}}},computed:Object.assign({},{crumbs:function(){var t=this;return this.loading?[]:Object.keys(this.items).sort((function(t,e){return t.length-e.length})).map((function(e){return t.items[e]}))}},r.mapState({route:function(t){return t.druxtRouter.route},routes:function(t){return t.druxtRouter.routes}})),methods:Object.assign({},{getItems:function(){var t=this;if(this.items={},this.route&&Object.keys(this.route).length&&(this.items["/"]={to:"/",text:"Home"},"/"!==this.$route.path)){this.items[this.$route.path]={text:this.route.label};var e=this.$route.path.split("/").filter(String);e.pop();for(var r=function(){t.loading++;var r="/"+e.join("/");t.items[r]={},t.getRoute(r).then((function(e){t.loading--,delete t.items[r],e.label&&(t.items[r]={to:r,text:e.label}),t.$forceUpdate()})).catch((function(e){t.loading--,delete t.items[r]})),e.pop()};e.length>0;)r()}}},r.mapActions({getRoute:"druxtRouter/getRoute"})),watch:{$route:"getItems"},render:function(t){if(0!==this.crumbs.length)return t(this.component,{props:{items:this.crumbs}})}};return t.DruxtBreadcrumb=i,t.default=function(t){void 0===t&&(t={}),this.addPlugin({src:e.resolve(__dirname,"../nuxt/plugin.js"),fileName:"druxt-breadcrumb.js",moduleOptions:t})},t}({},path,vuex);
var DruxtBreadcrumb=function(t,e,r,n){"use strict";function o(t,e,r,n,o,i,s,u,a,c){"boolean"!=typeof s&&(a=u,u=s,s=!1);var d,h="function"==typeof r?r.options:r;if(t&&t.render&&(h.render=t.render,h.staticRenderFns=t.staticRenderFns,h._compiled=!0,o&&(h.functional=!0)),n&&(h._scopeId=n),i?(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(i)},h._ssrRegister=d):e&&(d=s?function(t){e.call(this,c(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,u(t))}),d)if(h.functional){var l=h.render;h.render=function(t,e){return d.call(e),l(t,e)}}else{var m=h.beforeCreate;h.beforeCreate=m?[].concat(m,d):[d]}return r}var i=o({render:function(){var t=this.$createElement,e=this._self._c||t;return this.crumbs.length?e(this.settings.component,{tag:"component",attrs:{items:this.crumbs}}):this._e()},staticRenderFns:[]},void 0,{name:"DruxtBreadcrumb",props:{component:{type:String,default:"div"},home:{type:Boolean,default:!0}},data:function(){return{loading:0,items:{}}},computed:Object.assign({},{crumbs:function(){var t=this;return this.loading?[]:Object.keys(this.items).sort((function(t,e){return t.length-e.length})).map((function(e){return t.items[e]}))},settings:function(){var t={component:null,home:null};for(var e in t)void 0===this.$options.propsData[e]?void 0===this.$druxtBreadcrumb.options[e]?t[e]=this[e]:t[e]=this.$druxtBreadcrumb.options[e]:t[e]=this[e];return t}},r.mapState({route:function(t){return t.druxtRouter.route},routes:function(t){return t.druxtRouter.routes}})),watch:{$route:"getItems"},created:function(){this.getItems()},methods:Object.assign({},{getItems:function(){var t=this;if(this.items={},this.route&&Object.keys(this.route).length&&(this.settings.home&&(this.items["/"]={to:"/",text:"Home"}),"/"!==this.$route.path)){this.items[this.$route.path]={text:this.route.label};var e=this.$route.path.split("/").filter(String);e.pop();for(var r=function(){t.loading++;var r="/"+e.join("/");t.items[r]={},t.getRoute(r).then((function(e){t.loading--,delete t.items[r],e.label&&(t.items[r]={to:r,text:e.label}),t.$forceUpdate()})).catch((function(e){t.loading--,delete t.items[r]})),e.pop()};e.length>0;)r()}}},r.mapActions({getRoute:"druxtRouter/getRoute"}))},void 0,!1,void 0,!1,void 0,void 0,void 0),s=o({render:function(){var t=this.$createElement;return(this._self._c||t)("druxt-breadcrumb")},staticRenderFns:[]},void 0,{name:"DruxtBlockSystemBreadcrumbBlock",mixins:[n.DruxtBlocksBlockMixin]},void 0,!1,void 0,!1,void 0,void 0,void 0),u=Object.freeze({__proto__:null,DruxtBreadcrumb:i,DruxtBlockSystemBreadcrumbBlock:s});return t.DruxtBlockSystemBreadcrumbBlock=s,t.DruxtBreadcrumb=i,t.DruxtBreadcrumbComponents=u,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,vuex,druxtBlocks);

@@ -1,2 +0,4 @@

'use strict';Object.defineProperty(exports,'__esModule',{value:true});var path=require('path'),vuex=require('vuex');var component = {
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var path=require('path'),vuex=require('vuex'),druxtBlocks=require('druxt-blocks');//
var script = {
name: 'DruxtBreadcrumb',

@@ -7,13 +9,11 @@

type: String,
default: function() {
// @TODO - Get default from site configuration.
return 'div'
}
default: 'div'
},
home: {
type: Boolean,
default: true
}
},
created: function created() {
this.getItems();
},
data: function () { return ({

@@ -32,2 +32,25 @@ loading: 0,

})
},
settings: function settings() {
var settings = {
component: null,
home: null
};
for (var setting in settings) {
if (typeof this.$options.propsData[setting] !== 'undefined') {
settings[setting] = this[setting];
continue
}
if (typeof this.$druxtBreadcrumb.options[setting] !== 'undefined') {
settings[setting] = this.$druxtBreadcrumb.options[setting];
continue
}
settings[setting] = this[setting];
}
return settings
}},

@@ -40,2 +63,10 @@

watch: {
'$route': 'getItems'
},
created: function created() {
this.getItems();
},
methods: Object.assign({}, {getItems: function getItems() {

@@ -51,7 +82,8 @@ var this$1 = this;

// Home crumb.
// @TODO - Make this configurable.
this.items['/'] = {
to: '/',
text: 'Home'
};
if (this.settings.home) {
this.items['/'] = {
to: '/',
text: 'Home'
};
}

@@ -96,21 +128,162 @@ // If we are at the root of the site, stop here.

getRoute: 'druxtRouter/getRoute'
})),
}))
};function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
if (typeof shadowMode !== 'boolean') {
createInjectorSSR = createInjector;
createInjector = shadowMode;
shadowMode = false;
}
// Vue.extend constructor export interop.
var options = typeof script === 'function' ? script.options : script;
// render functions
if (template && template.render) {
options.render = template.render;
options.staticRenderFns = template.staticRenderFns;
options._compiled = true;
// functional template
if (isFunctionalTemplate) {
options.functional = true;
}
}
// scopedId
if (scopeId) {
options._scopeId = scopeId;
}
var hook;
if (moduleIdentifier) {
// server build
hook = function (context) {
// 2.3 injection
context =
context || // cached call
(this.$vnode && this.$vnode.ssrContext) || // stateful
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional
// 2.2 with runInNewContext: true
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__;
}
// inject component styles
if (style) {
style.call(this, createInjectorSSR(context));
}
// register component module identifier for async chunk inference
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier);
}
};
// used by ssr in case component is cached and beforeCreate
// never gets called
options._ssrRegister = hook;
}
else if (style) {
hook = shadowMode
? function (context) {
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
}
: function (context) {
style.call(this, createInjector(context));
};
}
if (hook) {
if (options.functional) {
// register for functional component in vue file
var originalRender = options.render;
options.render = function renderWithStyleInjection(h, context) {
hook.call(context);
return originalRender(h, context);
};
}
else {
// inject component registration as beforeCreate hook
var existing = options.beforeCreate;
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
}
}
return script;
}/* script */
var __vue_script__ = script;
watch: {
'$route': 'getItems'
},
/* template */
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.crumbs.length)?_c(_vm.settings.component,{tag:"component",attrs:{"items":_vm.crumbs}}):_vm._e()};
var __vue_staticRenderFns__ = [];
render: function (createElement) {
if (this.crumbs.length === 0) { return }
/* style */
var __vue_inject_styles__ = undefined;
/* scoped */
var __vue_scope_id__ = undefined;
/* module identifier */
var __vue_module_identifier__ = "data-v-013bec76";
/* functional template */
var __vue_is_functional_template__ = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
// @TODO - Make component configurable.
return createElement(this.component, {
props: {
items: this.crumbs
}
})
var __vue_component__ = /*#__PURE__*/normalizeComponent(
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
__vue_inject_styles__,
__vue_script__,
__vue_scope_id__,
__vue_is_functional_template__,
__vue_module_identifier__,
false,
undefined,
undefined,
undefined
);//
var script$1 = {
name: 'DruxtBlockSystemBreadcrumbBlock',
mixins: [druxtBlocks.DruxtBlocksBlockMixin],
};/* script */
var __vue_script__$1 = script$1;
/* template */
var __vue_render__$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('druxt-breadcrumb')};
var __vue_staticRenderFns__$1 = [];
/* style */
var __vue_inject_styles__$1 = undefined;
/* scoped */
var __vue_scope_id__$1 = undefined;
/* module identifier */
var __vue_module_identifier__$1 = "data-v-3c9da916";
/* functional template */
var __vue_is_functional_template__$1 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var __vue_component__$1 = /*#__PURE__*/normalizeComponent(
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
__vue_inject_styles__$1,
__vue_script__$1,
__vue_scope_id__$1,
__vue_is_functional_template__$1,
__vue_module_identifier__$1,
false,
undefined,
undefined,
undefined
);var index=/*#__PURE__*/Object.freeze({__proto__:null,DruxtBreadcrumb: __vue_component__,DruxtBlockSystemBreadcrumbBlock: __vue_component__$1});function index$1 (moduleOptions) {
// Use root level Druxt options.
if (typeof this.options === 'undefined' || !this.options.druxt) {
throw new TypeError('Druxt settings missing.')
}
};function index (moduleOptions) {
if ( moduleOptions === void 0 ) moduleOptions = {};
var options = this.options.druxt;
options.breadcrumb = Object.assign({}, {home: true},
options.breadcrumb);
// Add plugin.

@@ -120,4 +293,4 @@ this.addPlugin({

fileName: 'druxt-breadcrumb.js',
moduleOptions: moduleOptions
options: options
});
}exports.DruxtBreadcrumb=component;exports.default=index;
}exports.DruxtBlockSystemBreadcrumbBlock=__vue_component__$1;exports.DruxtBreadcrumb=__vue_component__;exports.DruxtBreadcrumbComponents=index;exports.default=index$1;
import Vue from 'vue'
import { DruxtBreadcrumb } from 'druxt-breadcrumb'
import { DruxtBreadcrumbComponents } from 'druxt-breadcrumb'
Vue.use({

@@ -10,4 +11,12 @@ install: function (Vue) {

// Register components.
Vue.component('DruxtBreadcrumb', DruxtBreadcrumb)
for (const component in DruxtBreadcrumbComponents) {
Vue.component(component, DruxtBreadcrumbComponents[component])
}
}
})
export default (context, inject) => {
const options = <%= JSON.stringify(options.breadcrumb) %>
inject('druxtBreadcrumb', { options })
}
{
"name": "druxt-breadcrumb",
"version": "0.4.0",
"version": "0.5.0",
"description": "Provides a Breadcrumb Vue component to be used within a Druxt (DRUpal nuXT) project.",

@@ -46,3 +46,3 @@ "repository": {

"codecov": "^3.7.0",
"vuex": "^3.1.3"
"vuex": "^3.5.1"
},

@@ -53,22 +53,24 @@ "peerDependencies": {

"devDependencies": {
"@babel/plugin-transform-runtime": "^7.9.0",
"@babel/preset-env": "^7.9.0",
"@babel/plugin-transform-runtime": "^7.10.4",
"@babel/preset-env": "^7.10.4",
"@rollup/plugin-alias": "^2.2.0",
"@rollup/plugin-buble": "^0.20.0",
"@rollup/plugin-replace": "^2.2.1",
"@vue/test-utils": "^1.0.0-beta.32",
"@rollup/plugin-replace": "^2.3.3",
"@vue/test-utils": "^1.0.3",
"babel-core": "^7.0.0-bridge.0",
"babel-eslint": "^10.1.0",
"cross-env": "^6.0.3",
"druxt-blocks": "^0.3.0",
"druxt-router": "^0.8.0",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^6.2.2",
"jest": "^25.1.0",
"jest": "^25.5.4",
"minimist": "^1.2.0",
"nodemon": "^2.0.2",
"nodemon": "^2.0.4",
"rollup": "^1.26.3",
"rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-terser": "^5.1.2",
"rollup-plugin-vue": "^5.1.6",
"rollup-plugin-vue": "^5.1.9",
"vue": "^2.6.10",
"vue-jest": "^3.0.6",
"vue-template-compiler": "^2.6.11",

@@ -82,4 +84,13 @@ "vue-test-utils": "^1.0.0-beta.11"

"coverageDirectory": "./coverage/",
"collectCoverage": true
"collectCoverage": true,
"moduleFileExtensions": [
"js",
"json",
"vue"
],
"transform": {
".*\\.(vue)$": "vue-jest",
"^.+\\.js$": "<rootDir>/node_modules/babel-jest"
}
}
}

@@ -19,8 +19,36 @@ # \<druxt-breadcrumb />

module.exports = {
modules: [
...
'druxt-breadcrumb'
]
'druxt-breadcrumb',
'druxt-entity'
],
druxt: {
baseUrl: 'https://example.com',
breadcrumb: {
component: 'b-breadcrumb'
}
}
}
```
**Note:** Requires [Druxt router](https://github.com/Realityloop/druxt-router) to be installed and configured.
## Options
### Base Druxt options
These options are available to all Druxt modules.
| 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 Breadcrumb options
These options are specific to this module.
| Option | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `breadcrumb.component` | `string` | No | `div` | The component to use to render the breadcrumb. E.g., `b-breadcrumb` |
| `breadcrumb.home` | `boolean` | No | `true` | Show optional 'Home' crumb. |
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