facade.js 2.2 KB

1
  1. "use strict";const r=require("@univerjs/sheets-sort"),h=require("@univerjs/sheets/facade"),c=require("@univerjs/core");class l extends h.FRange{sort(o){const e=this._range.startColumn,s=(Array.isArray(o)?o:[o]).map(n=>typeof n=="number"?{colIndex:n+e,type:r.SortType.ASC}:{colIndex:n.column+e,type:n.ascending?r.SortType.ASC:r.SortType.DESC});return this._commandService.syncExecuteCommand(r.SortRangeCommand.id,{orderRules:s,range:this._range,hasTitle:!1,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}}h.FRange.extend(l);class R extends h.FWorksheet{sort(o,e=!0){const t=[{colIndex:o,type:e?r.SortType.ASC:r.SortType.DESC}],s={startRow:0,startColumn:0,endRow:this._worksheet.getRowCount()-1,endColumn:this._worksheet.getColumnCount()-1,rangeType:c.RANGE_TYPE.ALL};return this._commandService.syncExecuteCommand(r.SortRangeCommand.id,{orderRules:t,range:s,hasTitle:!1,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}}h.FWorksheet.extend(R);c.FEventName.extend(h.FSheetEventName);class C extends c.FUniver{_initialize(o){const e=o.get(c.ICommandService);this.disposeWithMe(e.beforeCommandExecuted(t=>{switch(t.id){case r.SortRangeCommand.id:this._beforeRangeSort(t);break}})),this.disposeWithMe(e.onCommandExecuted(t=>{switch(t.id){case r.SortRangeCommand.id:this._onRangeSorted(t);break}}))}_beforeRangeSort(o){const e=o.params,t=this.getUniverSheet(e.unitId),s=t.getSheetBySheetId(e.subUnitId),{startColumn:n,endColumn:m,startRow:a,endRow:S}=e.range,g=s.getRange(a,n,S-a+1,m-n+1),i={workbook:t,worksheet:s,range:g,sortColumn:e.orderRules.map(d=>({column:d.colIndex-n,ascending:d.type===r.SortType.ASC}))};if(this.fireEvent(this.Event.SheetBeforeRangeSort,i),i.cancel)throw new Error("SortRangeCommand canceled.")}_onRangeSorted(o){const e=o.params,t=this.getUniverSheet(e.unitId),s=t.getSheetBySheetId(e.subUnitId),{startColumn:n,endColumn:m,startRow:a,endRow:S}=e.range,g=s.getRange(a,n,S-a+1,m-n+1),i={workbook:t,worksheet:s,range:g,sortColumn:e.orderRules.map(d=>({column:d.colIndex-n,ascending:d.type===r.SortType.ASC}))};if(this.fireEvent(this.Event.SheetRangeSorted,i),i.cancel)throw new Error("SortRangeCommand canceled.")}}c.FUniver.extend(C);