@dialpad/dialtone
Version:
Dialpad's Dialtone design system monorepo
86 lines (85 loc) • 2.65 kB
JavaScript
"use strict";
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const breadcrumbs_constants = require("./breadcrumbs_constants.cjs");
const common_utils = require("../../common/utils.cjs");
const link_constants = require("../link/link_constants.cjs");
const vue = require("vue");
const _pluginVue_exportHelper = require("../../_virtual/_plugin-vue_export-helper.cjs");
const link = require("../link/link.vue.cjs");
const _sfc_main = {
name: "DtBreadcrumbItem",
components: {
DtLink: link.default
},
inheritAttrs: false,
props: {
/**
* Passed through to link. If true, applies inverted styles to the link.
*/
inverted: {
type: Boolean,
default: false
},
/**
* Applies selected styles to the breadcrumb
*/
selected: {
type: Boolean,
default: false
},
/**
* Describes the breadcrumb. Overridden by default slot
*/
label: {
type: String,
default: ""
}
},
data() {
return {
BREADCRUMB_ITEM_SELECTED_MODIFIER: breadcrumbs_constants.BREADCRUMB_ITEM_SELECTED_MODIFIER
};
},
computed: {
linkKind() {
return this.inverted ? "" : link_constants.MUTED;
},
linkInverted() {
return !!this.inverted;
},
ariaCurrent() {
return this.selected ? "location" : void 0;
}
},
methods: {
removeClassStyleAttrs: common_utils.removeClassStyleAttrs,
addClassStyleAttrs: common_utils.addClassStyleAttrs
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_dt_link = vue.resolveComponent("dt-link");
return vue.openBlock(), vue.createElementBlock("li", vue.mergeProps({
"data-qa": "dt-breadcrumb-item",
class: [
"d-breadcrumbs__item",
{ [$data.BREADCRUMB_ITEM_SELECTED_MODIFIER]: $props.selected }
]
}, $options.addClassStyleAttrs(_ctx.$attrs)), [
vue.createVNode(_component_dt_link, vue.mergeProps({
kind: $options.linkKind,
inverted: $options.linkInverted,
"aria-current": $options.ariaCurrent,
"data-qa": "breadcrumb-item"
}, $options.removeClassStyleAttrs(_ctx.$attrs)), {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default", {}, () => [
vue.createTextVNode(vue.toDisplayString($props.label), 1)
])
]),
_: 3
}, 16, ["kind", "inverted", "aria-current"])
], 16);
}
const DtBreadcrumbItem = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
exports.default = DtBreadcrumbItem;
//# sourceMappingURL=breadcrumb_item.vue.cjs.map