@dialpad/dialtone
Version:
Dialpad's Dialtone design system monorepo
72 lines (71 loc) • 2.03 kB
JavaScript
import { BREADCRUMBS_INVERTED_MODIFIER } from "./breadcrumbs_constants.js";
import DtBreadcrumbItem from "./breadcrumb_item.vue.js";
import utils from "../../common/utils.js";
import normalizeComponent from "../../_virtual/_plugin-vue2_normalizer.js";
const _sfc_main = {
name: "DtBreadcrumbs",
components: {
DtBreadcrumbItem
},
props: {
/**
* A provided list of breadcrumbs. Overridden by default slot
*/
breadcrumbs: {
type: Array,
default: () => [],
validate(breadcrumbs2) {
return breadcrumbs2.every(({ href, label }) => {
return href !== void 0 && label !== void 0;
});
}
},
/**
* Passed through to link. If true, applies inverted styles to the link.
* @values true, false
*/
inverted: {
type: Boolean,
default: false
},
/**
* Descriptive label for the navigation content.
*/
ariaLabel: {
type: String,
default: "breadcrumb"
}
},
data() {
return {
BREADCRUMBS_INVERTED_MODIFIER
};
},
methods: {
getBreadcrumbItemKey(index) {
return `breadcrumbs-item-${index}-${utils.getUniqueString()}`;
}
}
};
var _sfc_render = function render() {
var _vm = this, _c = _vm._self._c;
return _c("nav", { class: [
"d-breadcrumbs",
{ [_vm.BREADCRUMBS_INVERTED_MODIFIER]: _vm.inverted }
], attrs: { "aria-label": _vm.ariaLabel, "data-qa": "dt-breadcrumbs" } }, [_c("ol", [_vm._t("default", function() {
return _vm._l(_vm.breadcrumbs, function(item, index) {
return _c("dt-breadcrumb-item", _vm._g(_vm._b({ key: _vm.getBreadcrumbItemKey(index), attrs: { "inverted": _vm.inverted } }, "dt-breadcrumb-item", item, false), _vm.$listeners));
});
})], 2)]);
};
var _sfc_staticRenderFns = [];
var __component__ = /* @__PURE__ */ normalizeComponent(
_sfc_main,
_sfc_render,
_sfc_staticRenderFns
);
const breadcrumbs = __component__.exports;
export {
breadcrumbs as default
};
//# sourceMappingURL=breadcrumbs.vue.js.map