UNPKG

@progress/kendo-vue-data-tools

Version:
9 lines (8 loc) 2.5 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("vue"),a=require("./ColumnMenuItem.js"),h=require("./ColumnMenuItemGroup.js"),C=require("../interfaces/SortSettings.js"),M=require("@progress/kendo-vue-intl"),t=require("../messages/main.js"),v=require("@progress/kendo-vue-common"),d=require("@progress/kendo-svg-icons"),m="asc",S="desc",I={true:{asc:{asc:"",desc:"desc"},desc:{asc:"asc",desc:""},"":{asc:"asc",desc:"desc"}},false:{asc:{asc:"asc",desc:"desc"},desc:{asc:"asc",desc:"desc"},"":{asc:"asc",desc:"desc"}}},k=(e,n)=>n?n.findIndex(o=>o.field===e):-1,D=(e,n)=>!!(n&&e>-1&&n[e].dir===m),q=(e,n)=>!!(n&&e>-1&&n[e].dir===S),A=s.defineComponent({props:{sortable:[Boolean,Object],sort:{type:Array},column:Object,onSortchange:Function,onClosemenu:Function},inject:{kendoLocalizationService:{default:null}},methods:{onAscClick(e){this.onSort(e,m),this.$emit("closemenu")},onDescClick(e){this.onSort(e,S),this.$emit("closemenu")},onSort(e,n){if(e.preventDefault(),!v.hasListener.call(this,"sortchange"))return;const{column:o,sortable:c,sort:f}=this.$props,{allowUnsort:g,mode:p}=C.normalize(c||!1,!1),r=(f||[]).filter(i=>i.field===o.field)[0],l=I[g][r&&r.dir||""][n],u=p==="single"?[]:(this.$props.sort||[]).filter(i=>i.field!==o.field);l!==""&&o.field&&u.push({field:o.field,dir:l}),this.$emit("sortchange",u,{event:e,field:this.$props.column.field})}},setup(){return{kendoLocalizationService:s.inject("kendoLocalizationService",{})}},render(){const{sort:e,column:n}=this.$props,o=k(n.field,e),c=M.provideLocalizationService(this);return s.createVNode(h.ColumnMenuItemGroup,null,{default:()=>[s.createVNode(a.ColumnMenuItem,{title:c.toLanguageString(t.columnMenuSortAscending,t.messages[t.columnMenuSortAscending]),icon:"sort-asc-small",svgIcon:d.sortAscSmallIcon,selected:D(o,e),onMenuitemclick:this.onAscClick},null),s.createVNode(a.ColumnMenuItem,{title:c.toLanguageString(t.columnMenuSortDescending,t.messages[t.columnMenuSortDescending]),icon:"sort-desc-small",svgIcon:d.sortDescSmallIcon,selected:q(o,e),onMenuitemclick:this.onDescClick},null)]})}});exports.ColumnMenuSort=A;