UNPKG

@opensig/opendesign

Version:

108 lines (107 loc) 5.56 kB
import { defineComponent, mergeModels, useModel, createBlock, openBlock, unref, normalizeClass } from "vue"; import "../icon-components/OIconZoomOut/OIconZoomOut.vue2.mjs"; import "../icon-components/OIconZoomIn/OIconZoomIn.vue2.mjs"; import "../icon-components/OIconVideoPlay/OIconVideoPlay.vue2.mjs"; import "../icon-components/OIconTime/OIconTime.vue2.mjs"; import "../icon-components/OIconStar/OIconStar.vue2.mjs"; import "../icon-components/OIconSearch/OIconSearch.vue2.mjs"; import "../icon-components/OIconRefresh/OIconRefresh.vue2.mjs"; import "../icon-components/OIconOneToOne/OIconOneToOne.vue2.mjs"; import "../icon-components/OIconMinus/OIconMinus.vue2.mjs"; import "../icon-components/OIconLoading/OIconLoading.vue2.mjs"; import "../icon-components/OIconLoadingSmall/OIconLoadingSmall.vue2.mjs"; import "../icon-components/OIconLink/OIconLink.vue2.mjs"; import "../icon-components/OIconInfoTip/OIconInfoTip.vue2.mjs"; import "../icon-components/OIconImgError/OIconImgError.vue2.mjs"; import "../icon-components/OIconImageError/OIconImageError.vue2.mjs"; import "../icon-components/OIconFilter/OIconFilter.vue2.mjs"; import "../icon-components/OIconFile/OIconFile.vue2.mjs"; import "../icon-components/OIconEye/OIconEye.vue2.mjs"; import "../icon-components/OIconEyeOff/OIconEyeOff.vue2.mjs"; import "../icon-components/OIconEllipsis/OIconEllipsis.vue2.mjs"; import "../icon-components/OIconEdit/OIconEdit.vue2.mjs"; import "../icon-components/OIconDownload/OIconDownload.vue2.mjs"; import "../icon-components/OIconDoubleArrowUp/OIconDoubleArrowUp.vue2.mjs"; import "../icon-components/OIconDoubleArrowRight/OIconDoubleArrowRight.vue2.mjs"; import "../icon-components/OIconDoubleArrowLeft/OIconDoubleArrowLeft.vue2.mjs"; import "../icon-components/OIconDoubleArrowDown/OIconDoubleArrowDown.vue2.mjs"; import "../icon-components/OIconDone/OIconDone.vue2.mjs"; import "../icon-components/OIconDelete/OIconDelete.vue2.mjs"; import "../icon-components/OIconClose/OIconClose.vue2.mjs"; import "../icon-components/OIconChevronUp/OIconChevronUp.vue2.mjs"; import "../icon-components/OIconChevronRight/OIconChevronRight.vue2.mjs"; import "../icon-components/OIconChevronRightSmall/OIconChevronRightSmall.vue2.mjs"; import "../icon-components/OIconChevronLeft/OIconChevronLeft.vue2.mjs"; import "../icon-components/OIconChevronDown/OIconChevronDown.vue2.mjs"; import "../icon-components/OIconChevronDownBold/OIconChevronDownBold.vue2.mjs"; import "../icon-components/OIconChecked/OIconChecked.vue2.mjs"; import "../icon-components/OIconCaretUp/OIconCaretUp.vue2.mjs"; import "../icon-components/OIconCaretRight/OIconCaretRight.vue2.mjs"; import "../icon-components/OIconCaretLeft/OIconCaretLeft.vue2.mjs"; import "../icon-components/OIconCaretDown/OIconCaretDown.vue2.mjs"; import "../icon-components/OIconCalendar/OIconCalendar.vue2.mjs"; import "../icon-components/OIconAvatar/OIconAvatar.vue2.mjs"; import "../icon-components/OIconArrowUp/OIconArrowUp.vue2.mjs"; import "../icon-components/OIconArrowRight/OIconArrowRight.vue2.mjs"; import "../icon-components/OIconArrowLeft/OIconArrowLeft.vue2.mjs"; import "../icon-components/OIconArrowDown/OIconArrowDown.vue2.mjs"; import "../icon-components/OIconAdd/OIconAdd.vue2.mjs"; import "../icon-components/OIconWarning/OIconWarning.vue2.mjs"; import "../icon-components/OIconSun/OIconSun.vue2.mjs"; import "../icon-components/OIconSuccess/OIconSuccess.vue2.mjs"; import OIconSort from "../icon-components/OIconSort/OIconSort.vue.mjs"; import "../icon-components/OIconSkill/OIconSkill.vue2.mjs"; import "../icon-components/OIconNoData/OIconNoData.vue2.mjs"; import "../icon-components/OIconMoon/OIconMoon.vue2.mjs"; import "../icon-components/OIconKunpeng/OIconKunpeng.vue2.mjs"; import "../icon-components/OIconInfo/OIconInfo.vue2.mjs"; import "../icon-components/OIconExclamationMark/OIconExclamationMark.vue2.mjs"; import "../icon-components/OIconDanger/OIconDanger.vue2.mjs"; import "../icon-components/OIconCheckMark/OIconCheckMark.vue2.mjs"; import "../icon-components/OIconAscend/OIconAscend.vue2.mjs"; import { OButton } from "../button/index.mjs"; import { DataTableSortMethod } from "./types.mjs"; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "TableColumnSorter", props: /* @__PURE__ */ mergeModels({ disabled: { type: Boolean } }, { "modelValue": { default: () => void 0 }, "modelModifiers": {} }), emits: ["update:modelValue"], setup(__props) { const props = __props; const modelValue = useModel(__props, "modelValue"); const handleSorterClick = () => { switch (modelValue.value) { case DataTableSortMethod.ASC: modelValue.value = DataTableSortMethod.DESC; return; case DataTableSortMethod.DESC: modelValue.value = DataTableSortMethod.NA; return; case DataTableSortMethod.NA: modelValue.value = DataTableSortMethod.ASC; return; } }; return (_ctx, _cache) => { return openBlock(), createBlock(unref(OButton), { disabled: props.disabled, icon: unref(OIconSort), size: "small", class: normalizeClass({ "o-data-table-sorter": true, "o-data-table-sorter-asc": modelValue.value === unref(DataTableSortMethod).ASC, "o-data-table-sorter-desc": modelValue.value === unref(DataTableSortMethod).DESC, disabled: props.disabled }), onClick: handleSorterClick }, null, 8, ["disabled", "icon", "class"]); }; } }); export { _sfc_main as default };