UNPKG

@vuesax-alpha/nightly

Version:
1 lines 5.38 kB
{"version":3,"file":"tr2.mjs","sources":["../../../../../../packages/components/table/src/tr.vue"],"sourcesContent":["<template>\n <tr ref=\"trRef\" :class=\"trKls\" :style=\"trStyles\" @click=\"click\">\n <slot />\n </tr>\n <template v-if=\"$slots.expand\">\n <transition name=\"fade-expand\">\n <tr v-if=\"expand\" ref=\"trRef\" :class=\"ns.b('tr-expand')\">\n <td :class=\"ns.be('tr-expand', 'td')\" :colspan=\"unref(table.colspan)\">\n <div ref=\"contentExpandRef\" :class=\"ns.be('tr-expand', 'content')\">\n <div :class=\"ns.bem('tr-expand', 'content', 'inner')\">\n <slot name=\"expand\" />\n </div>\n </div>\n </td>\n </tr>\n </transition>\n </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, inject, nextTick, ref, unref, useSlots, watch } from 'vue'\nimport { isEqual } from 'lodash-unified'\nimport {\n useColor,\n useNamespace,\n useVuesaxBaseComponent,\n} from '@vuesax-alpha/hooks'\nimport { tableContextKey } from '@vuesax-alpha/tokens'\nimport { getVsColor, isArray, throwError } from '@vuesax-alpha/utils'\n\nimport { tableTrEmits, tableTrProps } from './tr'\n\ndefineOptions({\n name: 'VsTr',\n})\n\nconst ns = useNamespace('table')\n\nconst props = defineProps(tableTrProps)\nconst emit = defineEmits(tableTrEmits)\n\nconst slots = useSlots()\n\nconst table = inject(tableContextKey)\n\nif (!table) {\n throwError('vs-tr', 'component must be called inside table component')\n}\n\nconst trRef = ref<HTMLElement>()\nconst contentExpandRef = ref<HTMLElement>()\n\nconst expand = ref<boolean>(false)\n\nconst isSelected = computed(() => {\n if (props.isSelected != null) return props.isSelected\n\n const modelValue = isArray(table.modelValue.value)\n ? table.modelValue.value\n : [table.modelValue.value]\n\n return modelValue.some((e) => isEqual(e, props.data))\n})\nconst vsBaseClasses = useVuesaxBaseComponent(useColor())\nconst trKls = computed(() => [\n vsBaseClasses,\n ns.b('tr'),\n ns.is('selected', isSelected.value),\n ns.is('expand', expand.value),\n ns.is('has-expand-slot', !!slots.expand),\n])\n\nconst trStyles = computed(() => [\n ns.cssVar({\n color: getVsColor(props.color),\n }),\n])\n\nconst click = (evs: any) => {\n if (slots.expand) {\n if (!evs.target.className.includes(ns.is('edit'))) {\n expand.value = !expand.value\n }\n }\n\n if (evs.target.nodeName == 'TD' && !props.notClickSelected) {\n table.selected(props.data)\n emit('selected', props.data)\n }\n\n emit('click', evs)\n}\n\nwatch(expand, (val: boolean) => {\n if (val) {\n nextTick(() => {\n const content = contentExpandRef.value\n if (!content) return\n\n content.style.height = `${content.scrollHeight}px`\n })\n }\n})\n\nwatch(\n () => props.data,\n () => {\n trRef.value?.style.removeProperty(ns.cssVarName('color'))\n expand.value = false\n }\n)\n</script>\n"],"names":[],"mappings":"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"}