primo commit
This commit is contained in:
		
							
								
								
									
										86
									
								
								components/com_tabulizer/assets/js/slickgrid/plugins/slick.cellcopymanager.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								components/com_tabulizer/assets/js/slickgrid/plugins/slick.cellcopymanager.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,86 @@ | ||||
| (function ($) { | ||||
|   // register namespace | ||||
|   $.extend(true, window, { | ||||
|     "Slick": { | ||||
|       "CellCopyManager": CellCopyManager | ||||
|     } | ||||
|   }); | ||||
|  | ||||
|  | ||||
|   function CellCopyManager() { | ||||
|     var _grid; | ||||
|     var _self = this; | ||||
|     var _copiedRanges; | ||||
|  | ||||
|     function init(grid) { | ||||
|       _grid = grid; | ||||
|       _grid.onKeyDown.subscribe(handleKeyDown); | ||||
|     } | ||||
|  | ||||
|     function destroy() { | ||||
|       _grid.onKeyDown.unsubscribe(handleKeyDown); | ||||
|     } | ||||
|  | ||||
|     function handleKeyDown(e, args) { | ||||
|       var ranges; | ||||
|       if (!_grid.getEditorLock().isActive()) { | ||||
|         if (e.which == $.ui.keyCode.ESCAPE) { | ||||
|           if (_copiedRanges) { | ||||
|             e.preventDefault(); | ||||
|             clearCopySelection(); | ||||
|             _self.onCopyCancelled.notify({ranges: _copiedRanges}); | ||||
|             _copiedRanges = null; | ||||
|           } | ||||
|         } | ||||
|  | ||||
|         if (e.which == 67 && (e.ctrlKey || e.metaKey)) { | ||||
|           ranges = _grid.getSelectionModel().getSelectedRanges(); | ||||
|           if (ranges.length != 0) { | ||||
|             e.preventDefault(); | ||||
|             _copiedRanges = ranges; | ||||
|             markCopySelection(ranges); | ||||
|             _self.onCopyCells.notify({ranges: ranges}); | ||||
|           } | ||||
|         } | ||||
|  | ||||
|         if (e.which == 86 && (e.ctrlKey || e.metaKey)) { | ||||
|           if (_copiedRanges) { | ||||
|             e.preventDefault(); | ||||
|             clearCopySelection(); | ||||
|             ranges = _grid.getSelectionModel().getSelectedRanges(); | ||||
|             _self.onPasteCells.notify({from: _copiedRanges, to: ranges}); | ||||
|             _copiedRanges = null; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     function markCopySelection(ranges) { | ||||
|       var columns = _grid.getColumns(); | ||||
|       var hash = {}; | ||||
|       for (var i = 0; i < ranges.length; i++) { | ||||
|         for (var j = ranges[i].fromRow; j <= ranges[i].toRow; j++) { | ||||
|           hash[j] = {}; | ||||
|           for (var k = ranges[i].fromCell; k <= ranges[i].toCell; k++) { | ||||
|             hash[j][columns[k].id] = "copied"; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|       _grid.setCellCssStyles("copy-manager", hash); | ||||
|     } | ||||
|  | ||||
|     function clearCopySelection() { | ||||
|       _grid.removeCellCssStyles("copy-manager"); | ||||
|     } | ||||
|  | ||||
|     $.extend(this, { | ||||
|       "init": init, | ||||
|       "destroy": destroy, | ||||
|       "clearCopySelection": clearCopySelection, | ||||
|  | ||||
|       "onCopyCells": new Slick.Event(), | ||||
|       "onCopyCancelled": new Slick.Event(), | ||||
|       "onPasteCells": new Slick.Event() | ||||
|     }); | ||||
|   } | ||||
| })(jQuery); | ||||
		Reference in New Issue
	
	Block a user