UNPKG

@progress/kendo-vue-listbox

Version:
9 lines (8 loc) 3.67 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 d=require("vue"),h=require("@progress/kendo-vue-buttons"),m=require("@progress/kendo-vue-intl"),p=require("./messages/main.js"),g=require("@progress/kendo-vue-common"),a=require("@progress/kendo-svg-icons"),u=[{name:"moveUp",iconName:"caret-alt-up",svgIcon:a.caretAltUpIcon},{name:"moveDown",iconName:"caret-alt-down",svgIcon:a.caretAltDownIcon},{name:"transferTo",iconName:"caret-alt-right",svgIcon:a.caretAltRightIcon},{name:"transferFrom",iconName:"caret-alt-left",svgIcon:a.caretAltLeftIcon},{name:"transferAllTo",iconName:"caret-double-alt-right",svgIcon:a.caretDoubleAltRightIcon},{name:"transferAllFrom",iconName:"caret-double-alt-left",svgIcon:a.caretDoubleAltLeftIcon},{name:"remove",iconName:"x",svgIcon:a.xIcon}],I=d.defineComponent({name:"KendoListBoxToolbar",props:{dataItems:Array,dataConnected:Array,tools:Array,selectedField:{type:String,default:"selected"}},inject:{kendoLocalizationService:{default:null}},data(){return{currentRtl:!1}},mounted(){this.currentRtl=g.isRtl(this.$el)},render(){const t=m.provideLocalizationService(this);return d.createVNode("div",{class:"k-listbox-actions"},[this.$props.tools&&this.$props.tools.map(function(e,l){let c=u.findIndex(i=>i.name===e),o=u[c],r=this.isItemDisabled(o.name),n=`listbox.${o.name}`;const s=t.toLanguageString(n,p.messages[n]);return d.createVNode(h.Button,{key:l,disabled:r,"data-command":o.name,title:s,"aria-label":s,icon:this.currentRtl?this.getRtlFontIcon(o.iconName):o.iconName,svgIcon:this.currentRtl?this.getRtlSvgIcon(o.svgIcon):o.svgIcon,onClick:i=>{i.preventDefault(),this.handleToolClick(i,o.name||null)}},null)},this)])},methods:{getRtlSvgIcon(t){switch(t.name){case"caret-alt-right":return a.caretAltLeftIcon;case"caret-alt-left":return a.caretAltRightIcon;case"caret-double-alt-right":return a.caretDoubleAltLeftIcon;case"caret-double-alt-left":return a.caretDoubleAltRightIcon}return t},getRtlFontIcon(t){switch(t){case"caret-alt-right":return"caret-alt-left";case"caret-alt-left":return"caret-alt-right";case"caret-double-alt-right":return"caret-double-alt-left";case"caret-double-alt-left":return"caret-double-alt-right"}return t},handleToolClick(t,e){this.$emit("toolclick",{event:t,component:this,toolName:e})},isItemDisabled(t){let e=!0,l=this.$props.selectedField||"selected",c=this.$props.dataItems.length,o=this.$props.dataConnected.length,r=this.$props.dataItems.findIndex(s=>s[l]===!0)>=0,n=this.$props.dataConnected.findIndex(s=>s[l]===!0)>=0;switch(t){case"moveUp":r?e=this.$props.dataItems.length>0?this.$props.dataItems[0].selected:!0:n?e=this.$props.dataConnected.length>0?this.$props.dataConnected[0].selected:!0:e=!0;break;case"moveDown":r?e=this.$props.dataItems[c-1]?this.$props.dataItems[c-1].selectedField:!0:n?e=this.$props.dataConnected.length>0?this.$props.dataConnected[o-1].selected:!0:e=!0;break;case"transferTo":e=!(this.$props.dataConnected&&r);break;case"transferFrom":this.$props.dataConnected?e=!(this.$props.dataConnected&&n):e=!0;break;case"transferAllTo":e=!(this.$props.dataConnected&&this.$props.dataItems.length>0);break;case"transferAllFrom":e=!(this.$props.dataConnected&&this.$props.dataConnected.length>0);break;case"remove":e=!(r||n);break}return e}}});exports.ListBoxToolbar=I;