UNPKG

@progress/kendo-vue-grid

Version:
9 lines (8 loc) 2.57 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"),u=require("./GridColumnMenuItem.js"),v=require("./GridColumnMenuItemGroup.js"),k=require("../interfaces/GridSortSettings.js"),D=require("@progress/kendo-vue-intl"),t=require("../messages/main.js"),a=require("@progress/kendo-svg-icons"),G=require("@progress/kendo-vue-common"),m="asc",S="desc",M={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"}}},f=(e,n)=>n?n.findIndex(o=>o.field===e):-1,p=(e,n)=>!!(n&&e>-1&&n[e].dir===m),g=(e,n)=>!!(n&&e>-1&&n[e].dir===S),q=(e,n)=>{const o=f(e,n);return g(o,n)||p(o,n)},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(),!G.hasListener.call(this,"sortchange"))return;const{column:o,sortable:c,sort:h}=this.$props,{allowUnsort:C,mode:I}=k.normalize(c||!1,!1),i=(h||[]).filter(r=>r.field===o.field)[0],l=M[C][i&&i.dir||""][n],d=I==="single"?[]:(this.$props.sort||[]).filter(r=>r.field!==o.field);l!==""&&o.field&&d.push({field:o.field,dir:l}),this.$emit("sortchange",d,{event:e,field:this.$props.column.field})}},setup(){return{kendoLocalizationService:s.inject("kendoLocalizationService",{})}},render(){const{sort:e,column:n}=this.$props,o=f(n.field,e),c=D.provideLocalizationService(this);return s.createVNode(v.GridColumnMenuItemGroup,null,{default:()=>[s.createVNode(u.GridColumnMenuItem,{title:c.toLanguageString(t.sortAscending,t.messages[t.sortAscending]),icon:"sort-asc-small",svgIcon:a.sortAscSmallIcon,selected:p(o,e),onMenuitemclick:this.onAscClick},null),s.createVNode(u.GridColumnMenuItem,{title:c.toLanguageString(t.sortDescending,t.messages[t.sortDescending]),icon:"sort-desc-small",svgIcon:a.sortDescSmallIcon,selected:g(o,e),onMenuitemclick:this.onDescClick},null)]})}});exports.GridColumnMenuSort=A;exports.sortGroupByField=q;