hongluan-ui
Version:
Hongluan Component Library for Vue 3
1 lines • 3.92 kB
Source Map (JSON)
{"version":3,"file":"filter.mjs","sources":["../../../../../../packages/components/simple-table/src/filter.vue"],"sourcesContent":["<template>\n <hl-tooltip\n ref=\"tooltip\"\n :visible=\"tooltipVisible\"\n :offset=\"0\"\n :placement=\"placement\"\n :show-arrow=\"false\"\n :stop-popper-mouse-event=\"false\"\n :popper-class=\"`popover popover-table-filter ${popperClass}`\"\n :effect=\"effect\"\n trigger=\"click\"\n manual-mode\n append-to-body\n >\n <template #content>\n <slot :close=\"hidden\"></slot>\n </template>\n <template #default>\n <span\n v-click-outside:[popperPaneRef]=\"hidden\"\n class=\"table-filter-trigger\"\n @click=\"showByClick\"\n @mouseover=\"showByHover\"\n >\n <hl-icon>\n <system-filter />\n </hl-icon>\n </span>\n </template>\n </hl-tooltip>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed } from 'vue'\nimport HlTooltip from '@hongluan-ui/components/tooltip'\nimport { Effect } from '@hongluan-ui/components/popper'\nimport HlIcon from '@hongluan-ui/components/icon'\nimport { SystemFilter } from '@hongluan-ui/components/system-icon'\nimport { ClickOutside } from '@hongluan-ui/directives'\n\nimport type { PropType } from 'vue'\nimport type { Placement, PopperEffect } from '@hongluan-ui/components/popper'\n\nexport default defineComponent({\n name: 'SimpleTableFilterIcon',\n components: {\n HlTooltip,\n HlIcon,\n SystemFilter,\n },\n directives: { ClickOutside },\n props: {\n placement: {\n type: String as PropType<Placement>,\n default: 'bottom',\n },\n effect: {\n type: String as PropType<PopperEffect>,\n default: Effect.LIGHT,\n },\n popperClass: {\n type: String,\n default: '',\n },\n trigger: {\n type: String as PropType<'hover' | 'click' | 'all'>,\n default: 'click',\n },\n },\n setup(props) {\n const tooltipVisible = ref(false)\n const tooltip = ref(null)\n\n const hidden = () => {\n tooltipVisible.value = false\n }\n const show = () => {\n tooltipVisible.value = true\n }\n const showByClick = (e: MouseEvent) => {\n if (props.trigger === 'click' || props.trigger === 'all') {\n e.stopPropagation()\n tooltipVisible.value = !tooltipVisible.value\n }\n }\n const showByHover = (e: MouseEvent) => {\n if (props.trigger === 'hover' || props.trigger === 'all') {\n e.stopPropagation()\n show()\n }\n }\n const popperPaneRef = computed(() => {\n return tooltip.value?.popperRef?.contentRef\n })\n\n return {\n tooltipVisible,\n hidden,\n showByClick,\n showByHover,\n popperPaneRef,\n tooltip,\n }\n },\n})\n</script>\n"],"names":["_openBlock"],"mappings":";;;;;;;;;;;AA2CA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AACF,EACA,YAAY,EAAE;AAAa,EAC3B,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS,OAAO;AAAA;AAClB,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA;AACX;AACF,EACA,MAAM,OAAO;AACX,UAAM,iBAAiB,IAAI,KAAK;AAChC,UAAM,UAAU,IAAI,IAAI;AAExB,UAAM,SAAS,MAAM;AACnB,qBAAe,QAAQ;AAAA;AAEzB,UAAM,OAAO,MAAM;AACjB,qBAAe,QAAQ;AAAA;AAEzB,UAAM,cAAc,CAAC,MAAkB;AACrC,UAAI,MAAM,YAAY,WAAW,MAAM,YAAY,OAAO;AACxD,UAAE;AACF,uBAAe,QAAQ,CAAC,eAAe;AAAA;AACzC;AAEF,UAAM,cAAc,CAAC,MAAkB;AACrC,UAAI,MAAM,YAAY,WAAW,MAAM,YAAY,OAAO;AACxD,UAAE;AACF;AAAK;AACP;AAEF,UAAM,gBAAgB,SAAS,MAAM;AACnC;AAAiC;AAGnC;AAAO;AACL,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ;;;;;;;AA3Ee,SA3BPA;AAAA,IACH;AAAS,IACT;AAAQ,IACR;AAAW,IACX;AAAY,IACZ;AAAyB,IACzB;AAA8C,IAC9C;AAAQ,IACT;AAAQ,IACR;AAAA,IACA;AAAA;;AAG+B;AAAT;;AAYb;AAAA;AAPC,QACL;AAAO,QACP,aAAW;AAAA;;AAIF;AADS;AAAA;;;;;AANY;;;;;;;;;;"}