@opensig/opendesign
Version:
61 lines (60 loc) • 2.21 kB
JavaScript
;
const vue = require("vue");
const index = require("../select/index.js");
const OCascaderPanel_vue_vue_type_script_setup_true_lang = require("./OCascaderPanel.vue.js");
const types = require("./types.js");
const is = require("../_utils/is.js");
const vueUtils = require("../_utils/vue-utils.js");
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
__name: "OCascader",
props: types.cascaderProps,
emits: ["change", "update:modelValue"],
setup(__props, { emit: __emit }) {
const props = __props;
const emits = __emit;
const handleChange = (val) => {
emits("change", val);
emits("update:modelValue", val);
};
const innerTrigger = vue.computed(() => {
if (!is.isTouchDevice) {
return props.trigger;
}
if (props.trigger === "hover") {
return "click";
}
if (props.trigger === "hover-outclick") {
return "click-outclick";
}
return props.trigger;
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.unref(index.OSelect), {
"model-value": props.modelValue,
round: props.round,
variant: props.variant,
placeholder: props.placeholder,
trigger: innerTrigger.value,
"option-position": props.optionPosition,
"option-width-mode": "auto",
"unmount-on-hide": props.unmountOnHide,
transition: props.transition,
"option-wrap-class": vue.unref(vueUtils.mergeClass)("o-cascader", props.optionWrapClass),
size: props.size
}, {
default: vue.withCtx(() => [
vue.createVNode(OCascaderPanel_vue_vue_type_script_setup_true_lang, {
options: props.options,
"model-value": props.modelValue,
"path-mode": props.pathMode,
"expand-trigger": props.expandTrigger,
onChange: handleChange
}, null, 8, ["options", "model-value", "path-mode", "expand-trigger"])
]),
_: 1
/* STABLE */
}, 8, ["model-value", "round", "variant", "placeholder", "trigger", "option-position", "unmount-on-hide", "transition", "option-wrap-class", "size"]);
};
}
});
module.exports = _sfc_main;