slickgrid
Version:
A lightning fast JavaScript grid/spreadsheet
9 lines • 1.31 kB
JavaScript
/**
* SlickGrid v3.0.2
* (c) 2009-present Michael Leibman
* homepage: http://github.com/mleibman/slickgrid
* license: MIT
* date: 2022-11-14
* file: ./plugins/slick.cellcopymanager.js
*/
!function(e){e.extend(!0,window,{Slick:{CellCopyManager:function(){var s,C,y=this;function n(e,n){var o;if(!s.getEditorLock().isActive()){if(e.which==Slick.keyCode.ESCAPE&&C&&(e.preventDefault(),f(),y.onCopyCancelled.notify({ranges:C}),C=null),67==e.which&&(e.ctrlKey||e.metaKey)&&0!==(o=s.getSelectionModel().getSelectedRanges()).length){e.preventDefault();for(var t=C=o,l=s.getColumns(),i={},c=0;c<t.length;c++)for(var r=t[c].fromRow;r<=t[c].toRow;r++){i[r]={};for(var a=t[c].fromCell;a<=t[c].toCell;a++)i[r][l[a].id]="copied"}s.setCellCssStyles("copy-manager",i),y.onCopyCells.notify({ranges:o})}86==e.which&&(e.ctrlKey||e.metaKey)&&C&&(e.preventDefault(),o=s.getSelectionModel().getSelectedRanges(),y.onPasteCells.notify({from:C,to:o}),s.getOptions().preserveCopiedSelectionOnPaste||(f(),C=null))}}function f(){s.removeCellCssStyles("copy-manager")}e.extend(this,{init:function(e){(s=e).onKeyDown.subscribe(n)},destroy:function(){s.onKeyDown.unsubscribe(n)},pluginName:"CellCopyManager",clearCopySelection:f,onCopyCells:new Slick.Event,onCopyCancelled:new Slick.Event,onPasteCells:new Slick.Event})}}})}(jQuery);