@univerjs/sheets-sort 0.5.4 → 0.5.5-experimental.20250123-34738ff

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/facade.js CHANGED
@@ -1 +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);
1
+ "use strict";var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});const sheetsSort=require("@univerjs/sheets-sort"),facade=require("@univerjs/sheets/facade"),core=require("@univerjs/core"),_FRangeSort=class _FRangeSort extends facade.FRange{sort(column){const columnBase=this._range.startColumn,orderRules=(Array.isArray(column)?column:[column]).map(c=>typeof c=="number"?{colIndex:c+columnBase,type:sheetsSort.SortType.ASC}:{colIndex:c.column+columnBase,type:c.ascending?sheetsSort.SortType.ASC:sheetsSort.SortType.DESC});return this._commandService.syncExecuteCommand(sheetsSort.SortRangeCommand.id,{orderRules,range:this._range,hasTitle:!1,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}};__name(_FRangeSort,"FRangeSort");let FRangeSort=_FRangeSort;facade.FRange.extend(FRangeSort);const _FWorksheetSort=class _FWorksheetSort extends facade.FWorksheet{sort(colIndex,asc=!0){const orderRules=[{colIndex,type:asc?sheetsSort.SortType.ASC:sheetsSort.SortType.DESC}],range={startRow:0,startColumn:0,endRow:this._worksheet.getRowCount()-1,endColumn:this._worksheet.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL};return this._commandService.syncExecuteCommand(sheetsSort.SortRangeCommand.id,{orderRules,range,hasTitle:!1,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}};__name(_FWorksheetSort,"FWorksheetSort");let FWorksheetSort=_FWorksheetSort;facade.FWorksheet.extend(FWorksheetSort);core.FEventName.extend(facade.FSheetEventName);const _FUniverSheetsSortEventMixin=class _FUniverSheetsSortEventMixin extends core.FUniver{_initialize(injector){const commandService=injector.get(core.ICommandService);this.disposeWithMe(commandService.beforeCommandExecuted(commandInfo=>{switch(commandInfo.id){case sheetsSort.SortRangeCommand.id:this._beforeRangeSort(commandInfo);break}})),this.disposeWithMe(commandService.onCommandExecuted(commandInfo=>{switch(commandInfo.id){case sheetsSort.SortRangeCommand.id:this._onRangeSorted(commandInfo);break}}))}_beforeRangeSort(commandInfo){const params=commandInfo.params,fWorkbook=this.getUniverSheet(params.unitId),fWorksheet=fWorkbook.getSheetBySheetId(params.subUnitId),{startColumn,endColumn,startRow,endRow}=params.range,fRange=fWorksheet.getRange(startRow,startColumn,endRow-startRow+1,endColumn-startColumn+1),eventParams={workbook:fWorkbook,worksheet:fWorksheet,range:fRange,sortColumn:params.orderRules.map(rule=>({column:rule.colIndex-startColumn,ascending:rule.type===sheetsSort.SortType.ASC}))};if(this.fireEvent(this.Event.SheetBeforeRangeSort,eventParams),eventParams.cancel)throw new Error("SortRangeCommand canceled.")}_onRangeSorted(commandInfo){const params=commandInfo.params,fWorkbook=this.getUniverSheet(params.unitId),fWorksheet=fWorkbook.getSheetBySheetId(params.subUnitId),{startColumn,endColumn,startRow,endRow}=params.range,fRange=fWorksheet.getRange(startRow,startColumn,endRow-startRow+1,endColumn-startColumn+1),eventParams={workbook:fWorkbook,worksheet:fWorksheet,range:fRange,sortColumn:params.orderRules.map(rule=>({column:rule.colIndex-startColumn,ascending:rule.type===sheetsSort.SortType.ASC}))};if(this.fireEvent(this.Event.SheetRangeSorted,eventParams),eventParams.cancel)throw new Error("SortRangeCommand canceled.")}};__name(_FUniverSheetsSortEventMixin,"FUniverSheetsSortEventMixin");let FUniverSheetsSortEventMixin=_FUniverSheetsSortEventMixin;core.FUniver.extend(FUniverSheetsSortEventMixin);
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var M=Object.defineProperty;var $=(e,r,t)=>r in e?M(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var d=(e,r,t)=>$(e,typeof r!="symbol"?r+"":r,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("@univerjs/core"),R=require("@univerjs/sheets"),V=require("@univerjs/engine-formula"),x="sheets-sort.config",A={};var m=(e=>(e.DESC="desc",e.ASC="asc",e))(m||{});const P=e=>e.replace(/-/gi,"").replace(/'/gi,""),L=(e,r)=>{const t=e===null||e==="",o=r===null||r==="";return t&&o?0:t?1:o?-1:null},G=(e,r,t)=>{const o=typeof e=="number",n=typeof r=="number";return o&&n?e<r?t===m.ASC?-1:1:e>r?t===m.ASC?1:-1:0:o?t===m.ASC?1:-1:n?t===m.ASC?-1:1:null},q=(e,r,t)=>{const o=typeof e=="string",n=typeof r=="string";if(o&&(e=P(e.toLocaleLowerCase())),n&&(r=P(r.toLocaleLowerCase())),!o&&!n)return null;if(o&&n){const s=e,i=r;return s<i?t===m.ASC?-1:1:s>i?t===m.ASC?1:-1:0}return o?t===m.ASC?1:-1:n?t===m.ASC?-1:1:null},D=e=>!e||Object.keys(e).length===0||(e==null?void 0:e.v)==null&&(e==null?void 0:e.p)==null;var B=Object.defineProperty,H=Object.getOwnPropertyDescriptor,K=(e,r,t,o)=>{for(var n=o>1?void 0:o?H(r,t):r,s=e.length-1,i;s>=0;s--)(i=e[s])&&(n=(o?i(r,t,n):i(n))||n);return o&&n&&B(r,t,n),n},p=(e,r)=>(t,o)=>r(t,o,e);exports.SheetsSortService=class extends u.Disposable{constructor(t,o,n){super();d(this,"_compareFns",[]);this._univerInstanceService=t,this._commandService=o,this._formulaDataModel=n}mergeCheck(t){var c;const{unitId:o,subUnitId:n,range:s}=t,i=(c=this._univerInstanceService.getUnit(o))==null?void 0:c.getSheetBySheetId(n);if(!i)return!1;const l=i.getMergeData().filter(a=>u.Rectangle.contains(s,a));return l.length===0?!0:W(s,l)}emptyCheck(t){var l;const{unitId:o,subUnitId:n,range:s}=t,i=(l=this._univerInstanceService.getUnit(o))==null?void 0:l.getSheetBySheetId(n);if(!i)return!1;for(let c=s.startRow;c<=s.endRow;c++)for(let a=s.startColumn;a<=s.endColumn;a++)if(!D(i.getCellRaw(c,a)))return!0;return!1}singleCheck(t){return t.range.startRow!==t.range.endRow}formulaCheck(t){var l,c;const{unitId:o,subUnitId:n,range:s}=t,i=(c=(l=this._formulaDataModel.getArrayFormulaRange())==null?void 0:l[o])==null?void 0:c[n];for(const a in i){const g=i[Number(a)];for(const C in g){const S=g[Number(C)];if(S&&u.Rectangle.intersects(s,S))return!1}}return!0}registerCompareFn(t){this._compareFns.unshift(t)}getAllCompareFns(){return this._compareFns}applySort(t,o,n){var l;const{unitId:s,subUnitId:i}=R.getSheetCommandTarget(this._univerInstanceService)||{};this._commandService.executeCommand(I.id,{orderRules:t.orderRules,range:t.range,hasTitle:(l=t.hasTitle)!=null?l:!1,unitId:o||s,subUnitId:n||i})}};exports.SheetsSortService=K([p(0,u.IUniverInstanceService),p(1,u.ICommandService),p(2,u.Inject(V.FormulaDataModel))],exports.SheetsSortService);function W(e,r){const t=e.endRow-e.startRow+1,o=e.endColumn-e.startColumn+1;let n=null,s=null;const i=t*o;let l=0;for(const c of r)if(c.startRow>=e.startRow&&c.endRow<=e.endRow&&c.startColumn>=e.startColumn&&c.endColumn<=e.endColumn){const a=c.endRow-c.startRow+1,g=c.endColumn-c.startColumn+1;if(n===null&&s===null)n=a,s=g;else if(a!==n||g!==s)return!1;l+=a*g}return l===i}const I={id:"sheet.command.sort-range",type:u.CommandType.COMMAND,handler:(e,r)=>{const{range:t,orderRules:o,hasTitle:n,unitId:s,subUnitId:i}=r,l=e.get(exports.SheetsSortService),c=e.get(u.IUniverInstanceService),{worksheet:a}=R.getSheetCommandTarget(c,r)||{};if(!a)return!1;const g=a.getMergeData().filter(f=>u.Rectangle.contains(t,f)),C=g.map(f=>f.startRow),{startRow:S,endRow:N}=t,O=n?S+1:S,_=[],w=[];for(let f=O;f<=N;f++)a.getRowFiltered(f)||a.getRowRawVisible(f)!==!1&&(g.length&&!C.includes(f)||(_.push({index:f,value:Y(a,f,o)}),w.push(f)));const T=l.getAllCompareFns();_.sort(J(o,z(T)));const b={};_.forEach(({index:f,value:oe},j)=>{b[w[j]]=f});const U={id:R.ReorderRangeCommand.id,params:{unitId:s,subUnitId:i,range:t,order:b}},E=e.get(u.ICommandService);return u.sequenceExecute([U],E).result}};function Y(e,r,t){const o=[];return t.forEach(({colIndex:n})=>{o.push(e.getCellRaw(r,n))}),o}function z(e){return(r,t,o)=>{for(let n=0;n<e.length;n++){const s=e[n](r,t,o);if(s!=null)return s}return 0}}function J(e,r){return function(t,o){let n=null;for(let s=0;s<e.length;s++){const i=t.value[s],l=o.value[s];if(n=r(e[s].type,i,l),n!==0&&n!==null&&n!==void 0)return n}return 0}}var Q=Object.defineProperty,X=Object.getOwnPropertyDescriptor,Z=(e,r,t,o)=>{for(var n=o>1?void 0:o?X(r,t):r,s=e.length-1,i;s>=0;s--)(i=e[s])&&(n=(o?i(r,t,n):i(n))||n);return o&&n&&Q(r,t,n),n},y=(e,r)=>(t,o)=>r(t,o,e);let v=class extends u.Disposable{constructor(e,r){super(),this._commandService=e,this._sortService=r,this._initCommands(),this._registerCompareFns()}_initCommands(){[I].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_registerCompareFns(){const e=(r,t,o)=>{const n=this._getCommonValue(t),s=this._getCommonValue(o),i=[L,q,G];for(let l=0;l<i.length;l++){const c=i[l](n,s,r);if(c!==null)return c}return null};this._sortService.registerCompareFn(e)}_getCommonValue(e){var t,o;if(D(e))return null;const r=(o=(t=e==null?void 0:e.p)==null?void 0:t.body)==null?void 0:o.dataStream;return r||((e==null?void 0:e.t)===u.CellValueType.NUMBER?Number.parseFloat(`${e.v}`):(e==null?void 0:e.t)===u.CellValueType.STRING?typeof e.v=="number"?e.v:`${e.v}`:(e==null?void 0:e.t)===u.CellValueType.BOOLEAN?`${e.v}`:(e==null?void 0:e.t)===u.CellValueType.FORCE_STRING?Number.parseFloat(`${e.v}`):`${e==null?void 0:e.v}`)}};v=Z([y(0,u.ICommandService),y(1,u.Inject(exports.SheetsSortService))],v);var k=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=(e,r,t,o)=>{for(var n=o>1?void 0:o?ee(r,t):r,s=e.length-1,i;s>=0;s--)(i=e[s])&&(n=(o?i(r,t,n):i(n))||n);return o&&n&&k(r,t,n),n},F=(e,r)=>(t,o)=>r(t,o,e);const re="SHEET_SORT_PLUGIN";var h;exports.UniverSheetsSortPlugin=(h=class extends u.Plugin{constructor(r=A,t,o){super(),this._config=r,this._injector=t,this._configService=o;const{...n}=u.merge({},A,this._config);this._configService.setConfig(x,n)}onStarting(){[[v],[exports.SheetsSortService]].forEach(r=>this._injector.add(r))}onReady(){this._injector.get(v)}},d(h,"type",u.UniverInstanceType.UNIVER_SHEET),d(h,"pluginName",re),h);exports.UniverSheetsSortPlugin=te([F(1,u.Inject(u.Injector)),F(2,u.IConfigService)],exports.UniverSheetsSortPlugin);exports.SortRangeCommand=I;exports.SortType=m;
1
+ "use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),sheets=require("@univerjs/sheets"),engineFormula=require("@univerjs/engine-formula"),SHEETS_SORT_PLUGIN_CONFIG_KEY="sheets-sort.config",defaultPluginConfig={};var SortType=(SortType2=>(SortType2.DESC="desc",SortType2.ASC="asc",SortType2))(SortType||{});const removeStringSymbol=__name(str=>str.replace(/-/gi,"").replace(/'/gi,""),"removeStringSymbol"),compareNull=__name((a1,a2)=>{const isA1Null=a1===null||a1==="",isA2Null=a2===null||a2==="";return isA1Null&&isA2Null?0:isA1Null?1:isA2Null?-1:null},"compareNull"),compareNumber=__name((a1,a2,type)=>{const isA1Num=typeof a1=="number",isA2Num=typeof a2=="number";return isA1Num&&isA2Num?a1<a2?type===SortType.ASC?-1:1:a1>a2?type===SortType.ASC?1:-1:0:isA1Num?type===SortType.ASC?1:-1:isA2Num?type===SortType.ASC?-1:1:null},"compareNumber"),compareString=__name((a1,a2,type)=>{const isA1Str=typeof a1=="string",isA2Str=typeof a2=="string";if(isA1Str&&(a1=removeStringSymbol(a1.toLocaleLowerCase())),isA2Str&&(a2=removeStringSymbol(a2.toLocaleLowerCase())),!isA1Str&&!isA2Str)return null;if(isA1Str&&isA2Str){const a1AsString=a1,a2AsString=a2;return a1AsString<a2AsString?type===SortType.ASC?-1:1:a1AsString>a2AsString?type===SortType.ASC?1:-1:0}return isA1Str?type===SortType.ASC?1:-1:isA2Str?type===SortType.ASC?-1:1:null},"compareString"),isNullValue=__name(cell=>!cell||Object.keys(cell).length===0||(cell==null?void 0:cell.v)==null&&(cell==null?void 0:cell.p)==null,"isNullValue");var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2"),_a;exports.SheetsSortService=(_a=class extends core.Disposable{constructor(_univerInstanceService,_commandService,_formulaDataModel){super();__publicField(this,"_compareFns",[]);this._univerInstanceService=_univerInstanceService,this._commandService=_commandService,this._formulaDataModel=_formulaDataModel}mergeCheck(location){var _a4;const{unitId,subUnitId,range}=location,sheet=(_a4=this._univerInstanceService.getUnit(unitId))==null?void 0:_a4.getSheetBySheetId(subUnitId);if(!sheet)return!1;const mergeDataInRange=sheet.getMergeData().filter(merge=>core.Rectangle.contains(range,merge));return mergeDataInRange.length===0?!0:isRangeDividedEqually(range,mergeDataInRange)}emptyCheck(location){var _a4;const{unitId,subUnitId,range}=location,sheet=(_a4=this._univerInstanceService.getUnit(unitId))==null?void 0:_a4.getSheetBySheetId(subUnitId);if(!sheet)return!1;for(let row=range.startRow;row<=range.endRow;row++)for(let col=range.startColumn;col<=range.endColumn;col++)if(!isNullValue(sheet.getCellRaw(row,col)))return!0;return!1}singleCheck(location){return location.range.startRow!==location.range.endRow}formulaCheck(location){var _a4,_b;const{unitId,subUnitId,range}=location,arrayFormulaRange=(_b=(_a4=this._formulaDataModel.getArrayFormulaRange())==null?void 0:_a4[unitId])==null?void 0:_b[subUnitId];for(const row in arrayFormulaRange){const rowData=arrayFormulaRange[Number(row)];for(const col in rowData){const arrayFormula=rowData[Number(col)];if(arrayFormula&&core.Rectangle.intersects(range,arrayFormula))return!1}}return!0}registerCompareFn(fn){this._compareFns.unshift(fn)}getAllCompareFns(){return this._compareFns}applySort(sortOption,unitId,subUnitId){var _a4;const{unitId:_unitId,subUnitId:_subUnitId}=sheets.getSheetCommandTarget(this._univerInstanceService)||{};this._commandService.executeCommand(SortRangeCommand.id,{orderRules:sortOption.orderRules,range:sortOption.range,hasTitle:(_a4=sortOption.hasTitle)!=null?_a4:!1,unitId:unitId||_unitId,subUnitId:subUnitId||_subUnitId})}},__name(_a,"SheetsSortService"),_a);exports.SheetsSortService=__decorateClass$2([__decorateParam$2(0,core.IUniverInstanceService),__decorateParam$2(1,core.ICommandService),__decorateParam$2(2,core.Inject(engineFormula.FormulaDataModel))],exports.SheetsSortService);function isRangeDividedEqually(range,merges){const rangeRows=range.endRow-range.startRow+1,rangeCols=range.endColumn-range.startColumn+1;let mergeRows=null,mergeCols=null;const totalArea=rangeRows*rangeCols;let totalMergeArea=0;for(const merge of merges)if(merge.startRow>=range.startRow&&merge.endRow<=range.endRow&&merge.startColumn>=range.startColumn&&merge.endColumn<=range.endColumn){const currentMergeRows=merge.endRow-merge.startRow+1,currentMergeCols=merge.endColumn-merge.startColumn+1;if(mergeRows===null&&mergeCols===null)mergeRows=currentMergeRows,mergeCols=currentMergeCols;else if(currentMergeRows!==mergeRows||currentMergeCols!==mergeCols)return!1;totalMergeArea+=currentMergeRows*currentMergeCols}return totalMergeArea===totalArea}__name(isRangeDividedEqually,"isRangeDividedEqually");const SortRangeCommand={id:"sheet.command.sort-range",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{const{range,orderRules,hasTitle,unitId,subUnitId}=params,sortService=accessor.get(exports.SheetsSortService),univerInstanceService=accessor.get(core.IUniverInstanceService),{worksheet}=sheets.getSheetCommandTarget(univerInstanceService,params)||{};if(!worksheet)return!1;const mergeDataInRange=worksheet.getMergeData().filter(mergeData=>core.Rectangle.contains(range,mergeData)),mergeMainRowIndexes=mergeDataInRange.map(mergeData=>mergeData.startRow),{startRow:rangeStartRow,endRow}=range,startRow=hasTitle?rangeStartRow+1:rangeStartRow,toReorder=[],oldOrder=[];for(let rowIndex=startRow;rowIndex<=endRow;rowIndex++)worksheet.getRowFiltered(rowIndex)||worksheet.getRowRawVisible(rowIndex)!==!1&&(mergeDataInRange.length&&!mergeMainRowIndexes.includes(rowIndex)||(toReorder.push({index:rowIndex,value:getRowCellData(worksheet,rowIndex,orderRules)}),oldOrder.push(rowIndex)));const compareFns=sortService.getAllCompareFns();toReorder.sort(reorderFnGenerator(orderRules,combineCompareFnsAsOne(compareFns)));const order={};toReorder.forEach(({index,value},oldIndex)=>{order[oldOrder[oldIndex]]=index});const reorderRangeCommand={id:sheets.ReorderRangeCommand.id,params:{unitId,subUnitId,range,order}},commandService=accessor.get(core.ICommandService);return core.sequenceExecute([reorderRangeCommand],commandService).result},"handler")};function getRowCellData(worksheet,rowIndex,orderRules){const result=[];return orderRules.forEach(({colIndex})=>{result.push(worksheet.getCellRaw(rowIndex,colIndex))}),result}__name(getRowCellData,"getRowCellData");function combineCompareFnsAsOne(compareFns){return(type,a,b)=>{for(let i=0;i<compareFns.length;i++){const res=compareFns[i](type,a,b);if(res!=null)return res}return 0}}__name(combineCompareFnsAsOne,"combineCompareFnsAsOne");function reorderFnGenerator(orderRules,valueCompare){return function(a,b){let ret=null;for(let index=0;index<orderRules.length;index++){const aCellData=a.value[index],bCellData=b.value[index];if(ret=valueCompare(orderRules[index].type,aCellData,bCellData),ret!==0&&ret!==null&&ret!==void 0)return ret}return 0}}__name(reorderFnGenerator,"reorderFnGenerator");var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1"),_a2;let SheetsSortController=(_a2=class extends core.Disposable{constructor(_commandService,_sortService){super(),this._commandService=_commandService,this._sortService=_sortService,this._initCommands(),this._registerCompareFns()}_initCommands(){[SortRangeCommand].forEach(command=>this.disposeWithMe(this._commandService.registerCommand(command)))}_registerCompareFns(){const commonFn=__name((type,a,b)=>{const valueA=this._getCommonValue(a),valueB=this._getCommonValue(b),compareTypeFns=[compareNull,compareString,compareNumber];for(let i=0;i<compareTypeFns.length;i++){const res=compareTypeFns[i](valueA,valueB,type);if(res!==null)return res}return null},"commonFn");this._sortService.registerCompareFn(commonFn)}_getCommonValue(a){var _a4,_b;if(isNullValue(a))return null;const richTextValue=(_b=(_a4=a==null?void 0:a.p)==null?void 0:_a4.body)==null?void 0:_b.dataStream;return richTextValue||((a==null?void 0:a.t)===core.CellValueType.NUMBER?Number.parseFloat(`${a.v}`):(a==null?void 0:a.t)===core.CellValueType.STRING?typeof a.v=="number"?a.v:`${a.v}`:(a==null?void 0:a.t)===core.CellValueType.BOOLEAN?`${a.v}`:(a==null?void 0:a.t)===core.CellValueType.FORCE_STRING?Number.parseFloat(`${a.v}`):`${a==null?void 0:a.v}`)}},__name(_a2,"SheetsSortController"),_a2);SheetsSortController=__decorateClass$1([__decorateParam$1(0,core.ICommandService),__decorateParam$1(1,core.Inject(exports.SheetsSortService))],SheetsSortController);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam");const NAME="SHEET_SORT_PLUGIN";var _a3;exports.UniverSheetsSortPlugin=(_a3=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_configService){super(),this._config=_config,this._injector=_injector,this._configService=_configService;const{...rest}=core.merge({},defaultPluginConfig,this._config);this._configService.setConfig(SHEETS_SORT_PLUGIN_CONFIG_KEY,rest)}onStarting(){[[SheetsSortController],[exports.SheetsSortService]].forEach(d=>this._injector.add(d))}onReady(){this._injector.get(SheetsSortController)}},__name(_a3,"UniverSheetsSortPlugin"),__publicField(_a3,"type",core.UniverInstanceType.UNIVER_SHEET),__publicField(_a3,"pluginName",NAME),_a3);exports.UniverSheetsSortPlugin=__decorateClass([__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,core.IConfigService)],exports.UniverSheetsSortPlugin);exports.SortRangeCommand=SortRangeCommand;exports.SortType=SortType;
@@ -1 +1 @@
1
- "use strict";const o={sheetsSort:{title:"Sort",toolbar:{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"},"context-menu":{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"}}};module.exports=o;
1
+ "use strict";const locale={sheetsSort:{title:"Sort",toolbar:{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"},"context-menu":{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"}}};module.exports=locale;
@@ -1 +1 @@
1
- "use strict";const t={sheetsSort:{title:"مرتب‌سازی",toolbar:{"sort-asc":"ترتیب صعودی","sort-desc":"ترتیب نزولی","sort-custom":"ترتیب سفارشی"},"context-menu":{"sort-asc":"ترتیب صعودی","sort-desc":"ترتیب نزولی","sort-custom":"ترتیب سفارشی"}}};module.exports=t;
1
+ "use strict";const locale={sheetsSort:{title:"مرتب‌سازی",toolbar:{"sort-asc":"ترتیب صعودی","sort-desc":"ترتیب نزولی","sort-custom":"ترتیب سفارشی"},"context-menu":{"sort-asc":"ترتیب صعودی","sort-desc":"ترتیب نزولی","sort-custom":"ترتیب سفارشی"}}};module.exports=locale;
@@ -1 +1 @@
1
- "use strict";const r={sheetsSort:{title:"Trier",toolbar:{"sort-asc":"ordre croissant","sort-desc":"ordre décroissant","sort-custom":"ordre personnalisé"},"context-menu":{"sort-asc":"ordre croissant","sort-desc":"ordre décroissant","sort-custom":"ordre personnalisé"}}};module.exports=r;
1
+ "use strict";const locale={sheetsSort:{title:"Trier",toolbar:{"sort-asc":"ordre croissant","sort-desc":"ordre décroissant","sort-custom":"ordre personnalisé"},"context-menu":{"sort-asc":"ordre croissant","sort-desc":"ordre décroissant","sort-custom":"ordre personnalisé"}}};module.exports=locale;
@@ -1 +1 @@
1
- "use strict";const o={sheetsSort:{title:"Sort",toolbar:{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"},"context-menu":{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"}}};module.exports=o;
1
+ "use strict";const locale={sheetsSort:{title:"Sort",toolbar:{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"},"context-menu":{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"}}};module.exports=locale;
@@ -1 +1 @@
1
- "use strict";const o={sheetsSort:{title:"Sort",toolbar:{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"},"context-menu":{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"}}};module.exports=o;
1
+ "use strict";const locale={sheetsSort:{title:"Sort",toolbar:{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"},"context-menu":{"sort-asc":"ascending order","sort-desc":"descending order","sort-custom":"custom order"}}};module.exports=locale;
@@ -1 +1 @@
1
- "use strict";const t={sheetsSort:{title:"排序",toolbar:{"sort-asc":"升序","sort-desc":"降序","sort-custom":"自定义排序"},"context-menu":{"sort-asc":"升序","sort-desc":"降序","sort-custom":"自定义排序"}}};module.exports=t;
1
+ "use strict";const locale={sheetsSort:{title:"排序",toolbar:{"sort-asc":"升序","sort-desc":"降序","sort-custom":"自定义排序"},"context-menu":{"sort-asc":"升序","sort-desc":"降序","sort-custom":"自定义排序"}}};module.exports=locale;
@@ -1 +1 @@
1
- "use strict";const t={sheetsSort:{title:"Sắp xếp",toolbar:{"sort-asc":"Tăng dần","sort-desc":"Giảm dần","sort-custom":"Sắp xếp tùy chỉnh"},"context-menu":{"sort-asc":"Tăng dần","sort-desc":"Giảm dần","sort-custom":"Sắp xếp tùy chỉnh"}}};module.exports=t;
1
+ "use strict";const locale={sheetsSort:{title:"Sắp xếp",toolbar:{"sort-asc":"Tăng dần","sort-desc":"Giảm dần","sort-custom":"Sắp xếp tùy chỉnh"},"context-menu":{"sort-asc":"Tăng dần","sort-desc":"Giảm dần","sort-custom":"Sắp xếp tùy chỉnh"}}};module.exports=locale;
package/lib/es/facade.js CHANGED
@@ -1,88 +1,99 @@
1
- import { SortType as r, SortRangeCommand as c } from "@univerjs/sheets-sort";
2
- import { FRange as S, FWorksheet as l, FSheetEventName as R } from "@univerjs/sheets/facade";
3
- import { RANGE_TYPE as k, FEventName as w, FUniver as C, ICommandService as p } from "@univerjs/core";
4
- class f extends S {
5
- sort(o) {
6
- const e = this._range.startColumn, s = (Array.isArray(o) ? o : [o]).map((n) => typeof n == "number" ? { colIndex: n + e, type: r.ASC } : {
7
- colIndex: n.column + e,
8
- type: n.ascending ? r.ASC : r.DESC
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
3
+ import { SortType, SortRangeCommand } from "@univerjs/sheets-sort";
4
+ import { FRange, FWorksheet, FSheetEventName } from "@univerjs/sheets/facade";
5
+ import { RANGE_TYPE, FEventName, FUniver, ICommandService } from "@univerjs/core";
6
+ const _FRangeSort = class _FRangeSort extends FRange {
7
+ sort(column) {
8
+ const columnBase = this._range.startColumn, orderRules = (Array.isArray(column) ? column : [column]).map((c) => typeof c == "number" ? { colIndex: c + columnBase, type: SortType.ASC } : {
9
+ colIndex: c.column + columnBase,
10
+ type: c.ascending ? SortType.ASC : SortType.DESC
9
11
  });
10
- return this._commandService.syncExecuteCommand(c.id, {
11
- orderRules: s,
12
+ return this._commandService.syncExecuteCommand(SortRangeCommand.id, {
13
+ orderRules,
12
14
  range: this._range,
13
15
  hasTitle: !1,
14
16
  unitId: this._workbook.getUnitId(),
15
17
  subUnitId: this._worksheet.getSheetId()
16
18
  }), this;
17
19
  }
18
- }
19
- S.extend(f);
20
- class v extends l {
21
- sort(o, e = !0) {
22
- const t = [{
20
+ };
21
+ __name(_FRangeSort, "FRangeSort");
22
+ let FRangeSort = _FRangeSort;
23
+ FRange.extend(FRangeSort);
24
+ const _FWorksheetSort = class _FWorksheetSort extends FWorksheet {
25
+ sort(colIndex, asc = !0) {
26
+ const orderRules = [{
23
27
  // real column index should be colIndex - 1.
24
- colIndex: o,
25
- type: e ? r.ASC : r.DESC
26
- }], s = {
28
+ colIndex,
29
+ type: asc ? SortType.ASC : SortType.DESC
30
+ }], range = {
27
31
  startRow: 0,
28
32
  startColumn: 0,
29
33
  endRow: this._worksheet.getRowCount() - 1,
30
34
  endColumn: this._worksheet.getColumnCount() - 1,
31
- rangeType: k.ALL
35
+ rangeType: RANGE_TYPE.ALL
32
36
  };
33
- return this._commandService.syncExecuteCommand(c.id, {
34
- orderRules: t,
35
- range: s,
37
+ return this._commandService.syncExecuteCommand(SortRangeCommand.id, {
38
+ orderRules,
39
+ range,
36
40
  hasTitle: !1,
37
41
  unitId: this._workbook.getUnitId(),
38
42
  subUnitId: this._worksheet.getSheetId()
39
43
  }), this;
40
44
  }
41
- }
42
- l.extend(v);
43
- w.extend(R);
44
- class E extends C {
45
- _initialize(o) {
46
- const e = o.get(p);
47
- this.disposeWithMe(e.beforeCommandExecuted((t) => {
48
- switch (t.id) {
49
- case c.id:
50
- this._beforeRangeSort(t);
45
+ };
46
+ __name(_FWorksheetSort, "FWorksheetSort");
47
+ let FWorksheetSort = _FWorksheetSort;
48
+ FWorksheet.extend(FWorksheetSort);
49
+ FEventName.extend(FSheetEventName);
50
+ const _FUniverSheetsSortEventMixin = class _FUniverSheetsSortEventMixin extends FUniver {
51
+ /**
52
+ * @ignore
53
+ */
54
+ _initialize(injector) {
55
+ const commandService = injector.get(ICommandService);
56
+ this.disposeWithMe(commandService.beforeCommandExecuted((commandInfo) => {
57
+ switch (commandInfo.id) {
58
+ case SortRangeCommand.id:
59
+ this._beforeRangeSort(commandInfo);
51
60
  break;
52
61
  }
53
- })), this.disposeWithMe(e.onCommandExecuted((t) => {
54
- switch (t.id) {
55
- case c.id:
56
- this._onRangeSorted(t);
62
+ })), this.disposeWithMe(commandService.onCommandExecuted((commandInfo) => {
63
+ switch (commandInfo.id) {
64
+ case SortRangeCommand.id:
65
+ this._onRangeSorted(commandInfo);
57
66
  break;
58
67
  }
59
68
  }));
60
69
  }
61
- _beforeRangeSort(o) {
62
- const e = o.params, t = this.getUniverSheet(e.unitId), s = t.getSheetBySheetId(e.subUnitId), { startColumn: n, endColumn: h, startRow: a, endRow: m } = e.range, g = s.getRange(a, n, m - a + 1, h - n + 1), i = {
63
- workbook: t,
64
- worksheet: s,
65
- range: g,
66
- sortColumn: e.orderRules.map((d) => ({
67
- column: d.colIndex - n,
68
- ascending: d.type === r.ASC
70
+ _beforeRangeSort(commandInfo) {
71
+ const params = commandInfo.params, fWorkbook = this.getUniverSheet(params.unitId), fWorksheet = fWorkbook.getSheetBySheetId(params.subUnitId), { startColumn, endColumn, startRow, endRow } = params.range, fRange = fWorksheet.getRange(startRow, startColumn, endRow - startRow + 1, endColumn - startColumn + 1), eventParams = {
72
+ workbook: fWorkbook,
73
+ worksheet: fWorksheet,
74
+ range: fRange,
75
+ sortColumn: params.orderRules.map((rule) => ({
76
+ column: rule.colIndex - startColumn,
77
+ ascending: rule.type === SortType.ASC
69
78
  }))
70
79
  };
71
- if (this.fireEvent(this.Event.SheetBeforeRangeSort, i), i.cancel)
80
+ if (this.fireEvent(this.Event.SheetBeforeRangeSort, eventParams), eventParams.cancel)
72
81
  throw new Error("SortRangeCommand canceled.");
73
82
  }
74
- _onRangeSorted(o) {
75
- const e = o.params, t = this.getUniverSheet(e.unitId), s = t.getSheetBySheetId(e.subUnitId), { startColumn: n, endColumn: h, startRow: a, endRow: m } = e.range, g = s.getRange(a, n, m - a + 1, h - n + 1), i = {
76
- workbook: t,
77
- worksheet: s,
78
- range: g,
79
- sortColumn: e.orderRules.map((d) => ({
80
- column: d.colIndex - n,
81
- ascending: d.type === r.ASC
83
+ _onRangeSorted(commandInfo) {
84
+ const params = commandInfo.params, fWorkbook = this.getUniverSheet(params.unitId), fWorksheet = fWorkbook.getSheetBySheetId(params.subUnitId), { startColumn, endColumn, startRow, endRow } = params.range, fRange = fWorksheet.getRange(startRow, startColumn, endRow - startRow + 1, endColumn - startColumn + 1), eventParams = {
85
+ workbook: fWorkbook,
86
+ worksheet: fWorksheet,
87
+ range: fRange,
88
+ sortColumn: params.orderRules.map((rule) => ({
89
+ column: rule.colIndex - startColumn,
90
+ ascending: rule.type === SortType.ASC
82
91
  }))
83
92
  };
84
- if (this.fireEvent(this.Event.SheetRangeSorted, i), i.cancel)
93
+ if (this.fireEvent(this.Event.SheetRangeSorted, eventParams), eventParams.cancel)
85
94
  throw new Error("SortRangeCommand canceled.");
86
95
  }
87
- }
88
- C.extend(E);
96
+ };
97
+ __name(_FUniverSheetsSortEventMixin, "FUniverSheetsSortEventMixin");
98
+ let FUniverSheetsSortEventMixin = _FUniverSheetsSortEventMixin;
99
+ FUniver.extend(FUniverSheetsSortEventMixin);