UNPKG

@progress/kendo-vue-grid

Version:
9 lines (8 loc) 6.78 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 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 i=require("vue"),s=require("@progress/kendo-vue-intl"),d=require("@progress/kendo-vue-layout"),o=require("@progress/kendo-svg-icons"),t=require("./enums.js"),r={[t.GridContextMenuItemNames.create]:{name:"create",text:"Add",icon:"plus",svgIcon:o.plusIcon,data:{action:"AddCommand"}},[t.GridContextMenuItemNames.edit]:{name:"edit",text:"Edit",icon:"pencil",svgIcon:o.pencilIcon,data:{action:"EditCommand"}},[t.GridContextMenuItemNames.delete]:{name:"delete",text:"Delete",icon:"trash",svgIcon:o.trashIcon,data:{action:"DeleteCommand"}},[t.GridContextMenuItemNames.select]:{name:"select",text:"Select",icon:"table-body",svgIcon:o.tableBodyIcon,items:[{name:"selectRow",text:"Row",icon:"table-row-groups",svgIcon:o.tableRowGroupsIcon,data:{action:"SelectRowCommand"}},{name:"selectAllRows",text:"All rows",icon:"grid",svgIcon:o.gridIcon,data:{action:"SelectAllRowsCommand"}},{name:"clearSelection",text:"Clear selection",icon:"table-unmerge",svgIcon:o.tableUnmergeIcon,data:{action:"ClearSelectionCommand"}}]},[t.GridContextMenuItemNames.pinRow]:{name:"pinRow",text:"Pin row",icon:"pin",svgIcon:o.pinIcon,items:[{name:"pinTop",text:"Pin to Top",icon:"pin-top",svgIcon:o.pinTopIcon,data:{action:"PinTopCommand"}},{name:"pinBottom",text:"Pin to Bottom",icon:"pin-bottom",svgIcon:o.pinBottomIcon,data:{action:"PinBottomCommand"}},{name:"unpin",text:"Unpin",icon:"unpin",svgIcon:o.unpinIcon,data:{action:"UnpinCommand"}}]},[t.GridContextMenuItemNames.pinTop]:{name:"pinTop",text:"Pin to Top",icon:"pin-top",svgIcon:o.pinTopIcon,data:{action:"PinTopCommand"}},[t.GridContextMenuItemNames.pinBottom]:{name:"pinBottom",text:"Pin to Bottom",icon:"pin-bottom",svgIcon:o.pinBottomIcon,data:{action:"PinBottomCommand"}},[t.GridContextMenuItemNames.unpin]:{name:"unpin",text:"Unpin",icon:"unpin",svgIcon:o.unpinIcon,data:{action:"UnpinCommand"}},[t.GridContextMenuItemNames.copySelection]:{name:"copySelection",text:"Copy selection",icon:"page-header-section",svgIcon:o.pageHeaderSectionIcon,data:{action:"CopySelectionCommand"},options:"withHeaders"},[t.GridContextMenuItemNames.copySelectionNoHeaders]:{name:"copySelectionNoHeaders",text:"Copy selection (No Headers)",icon:"file-txt",svgIcon:o.fileTxtIcon,data:{action:"CopySelectionCommand"}},[t.GridContextMenuItemNames.paste]:{name:"paste",text:"Paste (use CTRL/⌘ + V)",icon:"clipboard",svgIcon:o.clipboardIcon,data:{action:"PasteCommand"}},[t.GridContextMenuItemNames.reorderRow]:{name:"reorderRow",text:"Reorder row",icon:"chevron-down",svgIcon:o.chevronDownIcon,items:[{name:"reorderRowUp",text:"Up",icon:"chevron-up",svgIcon:o.chevronUpIcon,data:{action:"ReorderRowCommand"}},{name:"reorderRowDown",text:"Down",icon:"chevron-down",svgIcon:o.chevronDownIcon,data:{action:"ReorderRowCommand"}},{name:"reorderRowTop",text:"Top",icon:"chevron-double-up",svgIcon:o.chevronDoubleUpIcon,data:{action:"ReorderRowCommand"}},{name:"reorderRowBottom",text:"Bottom",icon:"chevron-double-down",svgIcon:o.chevronDoubleDownIcon,data:{action:"ReorderRowCommand"}}]},[t.GridContextMenuItemNames.exportPDF]:{name:"exportPDF",text:"Export to PDF",icon:"file-pdf",svgIcon:o.filePdfIcon,data:{action:"ExportPDFCommand"}},[t.GridContextMenuItemNames.exportExcel]:{name:"exportExcel",text:"Export to Excel",icon:"file-excel",svgIcon:o.fileExcelIcon,items:[{name:"exportToExcelAll",text:"All",data:{action:"ExportExcelCommand"}},{name:"exportToExcelSelection",text:"Selection",data:{action:"ExportExcelCommand"},options:"selection,withHeaders"},{name:"exportToExcelSelectionNoHeaders",text:"Selection (No Headers)",data:{action:"ExportExcelCommand"},options:"selection"}]},[t.GridContextMenuItemNames.separator]:{name:"separator",separator:!0},[t.GridContextMenuItemNames.sortAsc]:{name:"sortAsc",text:"Sort Ascending",icon:"sort-asc-small",svgIcon:o.sortAscSmallIcon,data:{action:"SortCommand"}},[t.GridContextMenuItemNames.sortDesc]:{name:"sortDesc",text:"Sort Descending",icon:"sort-desc-small",svgIcon:o.sortDescSmallIcon,data:{action:"SortCommand"}}},l=n=>{let e=[];return n.sortable&&(e=e.concat([t.GridContextMenuItemNames.sortAsc,t.GridContextMenuItemNames.sortDesc])),n.pdf&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.exportPDF])),e},p=n=>{let e=[];return n.clipboard&&(e=e.concat([t.GridContextMenuItemNames.copySelection,t.GridContextMenuItemNames.copySelectionNoHeaders,t.GridContextMenuItemNames.paste])),n.editable&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.create,t.GridContextMenuItemNames.edit,t.GridContextMenuItemNames.delete])),n.selectable&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.select])),n.rowReorderable&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.reorderRow])),n.pdf&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.exportPDF])),n.pinnable&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.pinRow])),e},u=i.defineComponent({name:"GridContextMenu",props:{show:{type:Boolean,default:!1},offset:{type:Object,default:()=>({left:0,top:0})},dataItem:{type:Object,default:void 0},field:{type:String,default:void 0},items:{type:Array,default:void 0}},inject:{kendoLocalizationService:{default:null}},emits:["close","select"],methods:{localizeItem(n,e){const a={...n};return a.text&&a.name&&(a.text=e.toLanguageString(`contextMenu.${a.name}`,a.text||"")),a.items&&Array.isArray(a.items)&&(a.items=a.items.map(c=>this.localizeItem(c,e))),a},menuItems(){if(this.$props.items)return this.$props.items.map(n=>typeof n=="string"?{...r[n]}:{...n})},handleSelect(n){this.$emit("select",{event:n,dataItem:this.$props.dataItem,field:this.$props.field})},handleClose(){this.$emit("close")}},render(){const n=s.provideLocalizationService(this),e=this.menuItems(),a=e==null?void 0:e.map(m=>this.localizeItem(m,n)),c=!!(this.$props.show&&(a!=null&&a.length));return i.createVNode(d.ContextMenu,{show:c,offset:this.$props.offset,items:a,onClose:this.handleClose,onSelect:this.handleSelect},null)}});exports.GridContextMenu=u;exports.contextMenuItemsMap=r;exports.getDefaultBodyContextMenuItems=p;exports.getDefaultHeadContextMenuItems=l;