acdr-ui/dist/dev/mp-weixin/node-modules/wot-design-uni/components/wd-checkbox/wd-checkbox.js
2024-10-01 09:15:35 +08:00

188 lines
7.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
const common_vendor = require("../../../../common/vendor.js");
if (!Array) {
const _easycom_wd_icon2 = common_vendor.resolveComponent("wd-icon");
_easycom_wd_icon2();
}
const _easycom_wd_icon = () => "../wd-icon/wd-icon.js";
if (!Math) {
_easycom_wd_icon();
}
const __default__ = {
name: "wd-checkbox",
options: {
addGlobalClass: true,
virtualHost: true,
styleIsolation: "shared"
}
};
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent(__spreadProps(__spreadValues({}, __default__), {
props: common_vendor.checkboxProps,
emits: ["change", "update:modelValue"],
setup(__props, { expose: __expose, emit: __emit }) {
const props = __props;
const emit = __emit;
__expose({
toggle
});
const { parent: checkboxGroup, index } = common_vendor.useParent(common_vendor.CHECKBOX_GROUP_KEY);
const isChecked = common_vendor.computed(() => {
if (checkboxGroup) {
return checkboxGroup.props.modelValue.indexOf(props.modelValue) > -1;
} else {
return props.modelValue === props.trueValue;
}
});
const isFirst = common_vendor.computed(() => {
return index.value === 0;
});
const isLast = common_vendor.computed(() => {
const children = common_vendor.isDef(checkboxGroup) ? checkboxGroup.children : [];
return index.value === children.length - 1;
});
const { proxy } = common_vendor.getCurrentInstance();
common_vendor.watch(
() => props.modelValue,
() => {
if (checkboxGroup) {
checkName();
}
}
);
common_vendor.watch(
() => props.shape,
(newValue) => {
const type = ["circle", "square", "button"];
if (type.indexOf(newValue) === -1)
console.error(`shape must be one of ${type.toString()}`);
}
);
const innerShape = common_vendor.computed(() => {
if (!props.shape && checkboxGroup && checkboxGroup.props.shape) {
return checkboxGroup.props.shape;
} else {
return props.shape;
}
});
const innerCheckedColor = common_vendor.computed(() => {
if (!props.checkedColor && checkboxGroup && checkboxGroup.props.checkedColor) {
return checkboxGroup.props.checkedColor;
} else {
return props.checkedColor;
}
});
const innerDisabled = common_vendor.computed(() => {
let innerDisabled2 = props.disabled;
if (checkboxGroup) {
if (
// max 生效时group 已经选满,禁止其它节点再选中。
checkboxGroup.props.max && checkboxGroup.props.modelValue.length >= checkboxGroup.props.max && !isChecked.value || // min 生效时group 选中的节点数量仅满足最小值,禁止取消已选中的节点。
checkboxGroup.props.min && checkboxGroup.props.modelValue.length <= checkboxGroup.props.min && isChecked.value || // 只要子节点自己要求 disabled那就 disabled。
props.disabled === true || // 父节点要求全局 disabled子节点没吱声那就 disabled。
checkboxGroup.props.disabled && props.disabled === null
) {
innerDisabled2 = true;
}
}
return innerDisabled2;
});
const innerInline = common_vendor.computed(() => {
if (checkboxGroup && checkboxGroup.props.inline) {
return checkboxGroup.props.inline;
} else {
return false;
}
});
const innerCell = common_vendor.computed(() => {
if (checkboxGroup && checkboxGroup.props.cell) {
return checkboxGroup.props.cell;
} else {
return false;
}
});
const innerSize = common_vendor.computed(() => {
if (!props.size && checkboxGroup && checkboxGroup.props.size) {
return checkboxGroup.props.size;
} else {
return props.size;
}
});
common_vendor.onBeforeMount(() => {
if (props.modelValue === null)
console.error("checkbox's value must be set");
});
function checkName() {
checkboxGroup && checkboxGroup.children && checkboxGroup.children.forEach((child) => {
if (child.$.uid !== proxy.$.uid && child.modelValue === props.modelValue) {
console.error(`The checkbox's bound value: ${props.modelValue} has been used`);
}
});
}
function toggle() {
if (innerDisabled.value)
return;
if (checkboxGroup) {
emit("change", {
value: !isChecked.value
});
checkboxGroup.changeSelectState(props.modelValue);
} else {
const newVal = props.modelValue === props.trueValue ? props.falseValue : props.trueValue;
emit("update:modelValue", newVal);
emit("change", {
value: newVal
});
}
}
return (_ctx, _cache) => {
return common_vendor.e({
a: innerShape.value !== "button"
}, innerShape.value !== "button" ? {
b: common_vendor.p({
["custom-class"]: "wd-checkbox__check",
name: "check-bold",
size: "14px"
}),
c: common_vendor.n(`wd-checkbox__shape ${innerShape.value === "square" ? "is-square" : ""} ${_ctx.customShapeClass}`),
d: common_vendor.s(isChecked.value && !innerDisabled.value && innerCheckedColor.value ? "color :" + innerCheckedColor.value : "")
} : {}, {
e: innerShape.value === "button" && isChecked.value
}, innerShape.value === "button" && isChecked.value ? {
f: common_vendor.p({
["custom-class"]: "wd-checkbox__btn-check",
name: "check-bold",
size: "14px"
})
} : {}, {
g: common_vendor.s(_ctx.maxWidth ? "max-width:" + _ctx.maxWidth : ""),
h: common_vendor.n(`wd-checkbox__label ${_ctx.customLabelClass}`),
i: common_vendor.s(isChecked.value && innerShape.value === "button" && !innerDisabled.value && innerCheckedColor.value ? "color:" + innerCheckedColor.value : ""),
j: common_vendor.n(`wd-checkbox ${innerCell.value ? "is-cell-box" : ""} ${innerShape.value === "button" ? "is-button-box" : ""} ${isChecked.value ? "is-checked" : ""} ${isFirst.value ? "is-first-child" : ""} ${isLast.value ? "is-last-child" : ""} ${innerInline.value ? "is-inline" : ""} ${innerShape.value === "button" ? "is-button" : ""} ${innerDisabled.value ? "is-disabled" : ""} ${innerSize.value ? "is-" + innerSize.value : ""} ${_ctx.customClass}`),
k: common_vendor.s(_ctx.customStyle),
l: common_vendor.o(toggle)
});
};
}
}));
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-d444ca85"]]);
wx.createComponent(Component);