@opensig/opendesign
Version:
108 lines (107 loc) • 5.56 kB
JavaScript
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
};