UNPKG

@vuesax-alpha/nightly

Version:
63 lines (58 loc) 1.75 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); require('../../../../constants/index.js'); require('../../../../utils/index.js'); require('../../../../hooks/index.js'); var index = require('../../../../hooks/use-namespace/index.js'); var shared = require('@vue/shared'); var event = require('../../../../constants/event.js'); const useTable = (props, emit) => { const ns = index.useNamespace("table"); const colspan = vue.ref(0); const theadRef = vue.ref(); const isMultipleSelected = vue.computed( () => props.multiple && shared.isArray(props.modelValue) ); const tableKls = vue.computed(() => [ ns.b(), ns.is("striped", props.striped), ns.is("multiple", props.multiple) ]); const selectedMultiple = (val) => { const newVal = props.modelValue; if (props.modelValue.includes(val)) { newVal.splice(props.modelValue.indexOf(val), 1); } else { newVal.push(val); } emit(event.UPDATE_MODEL_EVENT, newVal); }; const selected = (val) => { if (isMultipleSelected.value) { selectedMultiple(val); } else { emit(event.UPDATE_MODEL_EVENT, val); } }; vue.onMounted(() => { var _a; if (props.multiple) { if (!shared.isArray(props.modelValue)) { const value = props.modelValue ? [props.modelValue] : []; emit(event.UPDATE_MODEL_EVENT, [...value]); } } const tds = (_a = theadRef.value) == null ? void 0 : _a.querySelectorAll("th"); colspan.value = (tds == null ? void 0 : tds.length) || 0; }); return { tableKls, colspan, isMultipleSelected, selected, theadRef }; }; exports.useTable = useTable; //# sourceMappingURL=use-table.js.map