@univerjs/sheets-sort 0.4.2 → 0.5.0-alpha.0

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/index.js CHANGED
@@ -1 +1 @@
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"),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}=this._config;this._configService.setConfig(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
+ "use strict";var j=Object.defineProperty;var M=(e,r,t)=>r in e?j(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var d=(e,r,t)=>M(e,typeof r!="symbol"?r+"":r,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),R=require("@univerjs/sheets"),$=require("@univerjs/engine-formula"),V="sheets-sort.config",x={};var f=(e=>(e.DESC="desc",e.ASC="asc",e))(f||{});const A=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===f.ASC?-1:1:e>r?t===f.ASC?1:-1:0:o?t===f.ASC?1:-1:n?t===f.ASC?-1:1:null},q=(e,r,t)=>{const o=typeof e=="string",n=typeof r=="string";if(o&&(e=A(e.toLocaleLowerCase())),n&&(r=A(r.toLocaleLowerCase())),!o&&!n)return null;if(o&&n){const s=e,i=r;return s<i?t===f.ASC?-1:1:s>i?t===f.ASC?1:-1:0}return o?t===f.ASC?1:-1:n?t===f.ASC?-1:1:null},F=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 c.Disposable{constructor(t,o,n){super();d(this,"_compareFns",[]);this._univerInstanceService=t,this._commandService=o,this._formulaDataModel=n}mergeCheck(t){var u;const{unitId:o,subUnitId:n,range:s}=t,i=(u=this._univerInstanceService.getUnit(o))==null?void 0:u.getSheetBySheetId(n);if(!i)return!1;const l=i.getMergeData().filter(a=>c.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 u=s.startRow;u<=s.endRow;u++)for(let a=s.startColumn;a<=s.endColumn;a++)if(!F(i.getCellRaw(u,a)))return!0;return!1}singleCheck(t){return t.range.startRow!==t.range.endRow}formulaCheck(t){var l,u;const{unitId:o,subUnitId:n,range:s}=t,i=(u=(l=this._formulaDataModel.getArrayFormulaRange())==null?void 0:l[o])==null?void 0:u[n];for(const a in i){const g=i[Number(a)];for(const C in g){const S=g[Number(C)];if(S&&c.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,c.IUniverInstanceService),p(1,c.ICommandService),p(2,c.Inject($.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 u of r)if(u.startRow>=e.startRow&&u.endRow<=e.endRow&&u.startColumn>=e.startColumn&&u.endColumn<=e.endColumn){const a=u.endRow-u.startRow+1,g=u.endColumn-u.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:c.CommandType.COMMAND,handler:(e,r)=>{const{range:t,orderRules:o,hasTitle:n,unitId:s,subUnitId:i}=r,l=e.get(exports.SheetsSortService),u=e.get(c.IUniverInstanceService),{worksheet:a}=R.getSheetCommandTarget(u,r)||{};if(!a)return!1;const g=a.getMergeData().filter(m=>c.Rectangle.contains(t,m)),C=g.map(m=>m.startRow),{startRow:S,endRow:D}=t,N=n?S+1:S,_=[],w=[];for(let m=N;m<=D;m++)a.getRowFiltered(m)||a.getRowRawVisible(m)!==!1&&(g.length&&!C.includes(m)||(_.push({index:m,value:Y(a,m,o)}),w.push(m)));const O=l.getAllCompareFns();_.sort(J(o,z(O)));const b={};_.forEach(({index:m,value:oe},E)=>{b[w[E]]=m});const U={id:R.ReorderRangeCommand.id,params:{unitId:s,subUnitId:i,range:t,order:b}},T=e.get(c.ICommandService);return c.sequenceExecute([U],T).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},P=(e,r)=>(t,o)=>r(t,o,e);let h=class extends c.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 u=i[l](n,s,r);if(u!==null)return u}return null};this._sortService.registerCompareFn(e)}_getCommonValue(e){var t,o;if(F(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)===c.CellValueType.NUMBER?Number.parseFloat(`${e.v}`):(e==null?void 0:e.t)===c.CellValueType.STRING?typeof e.v=="number"?e.v:`${e.v}`:(e==null?void 0:e.t)===c.CellValueType.BOOLEAN?`${e.v}`:(e==null?void 0:e.t)===c.CellValueType.FORCE_STRING?Number.parseFloat(`${e.v}`):`${e==null?void 0:e.v}`)}};h=Z([P(0,c.ICommandService),P(1,c.Inject(exports.SheetsSortService))],h);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},y=(e,r)=>(t,o)=>r(t,o,e);const re="SHEET_SORT_PLUGIN";var v;exports.UniverSheetsSortPlugin=(v=class extends c.Plugin{constructor(r=x,t,o){super(),this._config=r,this._injector=t,this._configService=o;const{...n}=this._config;this._configService.setConfig(V,n)}onStarting(){[[h],[exports.SheetsSortService]].forEach(r=>this._injector.add(r))}onReady(){this._injector.get(h)}},d(v,"type",c.UniverInstanceType.UNIVER_SHEET),d(v,"pluginName",re),v);exports.UniverSheetsSortPlugin=te([y(1,c.Inject(c.Injector)),y(2,c.IConfigService)],exports.UniverSheetsSortPlugin);exports.SortRangeCommand=I;exports.SortType=f;
@@ -0,0 +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;
@@ -0,0 +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;
@@ -0,0 +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;
@@ -0,0 +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;
@@ -0,0 +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;
@@ -0,0 +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;
package/lib/es/index.js CHANGED
@@ -1,247 +1,242 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
3
- var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
- import { Inject, Disposable, Rectangle, IUniverInstanceService, ICommandService, CommandType, sequenceExecute, CellValueType, Plugin, UniverInstanceType, Injector, IConfigService } from "@univerjs/core";
6
- import { getSheetCommandTarget, ReorderRangeCommand } from "@univerjs/sheets";
7
- import { FormulaDataModel } from "@univerjs/engine-formula";
8
- const PLUGIN_CONFIG_KEY = "sheets-sort.config", defaultPluginConfig = {};
9
- var SortType = /* @__PURE__ */ ((SortType2) => (SortType2.DESC = "desc", SortType2.ASC = "asc", SortType2))(SortType || {});
10
- const removeStringSymbol = /* @__PURE__ */ __name((str) => str.replace(/-/gi, "").replace(/'/gi, ""), "removeStringSymbol"), compareNull = /* @__PURE__ */ __name((a1, a2) => {
11
- const isA1Null = a1 === null || a1 === "", isA2Null = a2 === null || a2 === "";
12
- return isA1Null && isA2Null ? 0 : isA1Null ? 1 : isA2Null ? -1 : null;
13
- }, "compareNull"), compareNumber = /* @__PURE__ */ __name((a1, a2, type) => {
14
- const isA1Num = typeof a1 == "number", isA2Num = typeof a2 == "number";
15
- 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;
16
- }, "compareNumber"), compareString = /* @__PURE__ */ __name((a1, a2, type) => {
17
- const isA1Str = typeof a1 == "string", isA2Str = typeof a2 == "string";
18
- if (isA1Str && (a1 = removeStringSymbol(a1.toLocaleLowerCase())), isA2Str && (a2 = removeStringSymbol(a2.toLocaleLowerCase())), !isA1Str && !isA2Str)
1
+ var B = Object.defineProperty;
2
+ var q = (e, t, r) => t in e ? B(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
+ var h = (e, t, r) => q(e, typeof t != "symbol" ? t + "" : t, r);
4
+ import { Inject as w, Disposable as y, Rectangle as R, IUniverInstanceService as E, ICommandService as I, CommandType as H, sequenceExecute as K, CellValueType as v, Plugin as W, UniverInstanceType as Y, Injector as z, IConfigService as J } from "@univerjs/core";
5
+ import { getSheetCommandTarget as U, ReorderRangeCommand as Q } from "@univerjs/sheets";
6
+ import { FormulaDataModel as X } from "@univerjs/engine-formula";
7
+ const Z = "sheets-sort.config", k = {};
8
+ var f = /* @__PURE__ */ ((e) => (e.DESC = "desc", e.ASC = "asc", e))(f || {});
9
+ const N = (e) => e.replace(/-/gi, "").replace(/'/gi, ""), ee = (e, t) => {
10
+ const r = e === null || e === "", o = t === null || t === "";
11
+ return r && o ? 0 : r ? 1 : o ? -1 : null;
12
+ }, te = (e, t, r) => {
13
+ const o = typeof e == "number", n = typeof t == "number";
14
+ return o && n ? e < t ? r === f.ASC ? -1 : 1 : e > t ? r === f.ASC ? 1 : -1 : 0 : o ? r === f.ASC ? 1 : -1 : n ? r === f.ASC ? -1 : 1 : null;
15
+ }, re = (e, t, r) => {
16
+ const o = typeof e == "string", n = typeof t == "string";
17
+ if (o && (e = N(e.toLocaleLowerCase())), n && (t = N(t.toLocaleLowerCase())), !o && !n)
19
18
  return null;
20
- if (isA1Str && isA2Str) {
21
- const a1AsString = a1, a2AsString = a2;
22
- return a1AsString < a2AsString ? type === SortType.ASC ? -1 : 1 : a1AsString > a2AsString ? type === SortType.ASC ? 1 : -1 : 0;
23
- }
24
- return isA1Str ? type === SortType.ASC ? 1 : -1 : isA2Str ? type === SortType.ASC ? -1 : 1 : null;
25
- }, "compareString"), isNullValue = /* @__PURE__ */ __name((cell) => !cell || Object.keys(cell).length === 0 || (cell == null ? void 0 : cell.v) == null && (cell == null ? void 0 : cell.p) == null, "isNullValue");
26
- var __defProp$2 = Object.defineProperty, __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor, __decorateClass$2 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
27
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
28
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
29
- return kind && result && __defProp$2(target, key, result), result;
30
- }, "__decorateClass$2"), __decorateParam$2 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$2"), _a;
31
- let SheetsSortService = (_a = class extends Disposable {
32
- constructor(_univerInstanceService, _commandService, _formulaDataModel) {
19
+ if (o && n) {
20
+ const s = e, i = t;
21
+ return s < i ? r === f.ASC ? -1 : 1 : s > i ? r === f.ASC ? 1 : -1 : 0;
22
+ }
23
+ return o ? r === f.ASC ? 1 : -1 : n ? r === f.ASC ? -1 : 1 : null;
24
+ }, M = (e) => !e || Object.keys(e).length === 0 || (e == null ? void 0 : e.v) == null && (e == null ? void 0 : e.p) == null;
25
+ var ne = Object.defineProperty, oe = Object.getOwnPropertyDescriptor, se = (e, t, r, o) => {
26
+ for (var n = o > 1 ? void 0 : o ? oe(t, r) : t, s = e.length - 1, i; s >= 0; s--)
27
+ (i = e[s]) && (n = (o ? i(t, r, n) : i(n)) || n);
28
+ return o && n && ne(t, r, n), n;
29
+ }, p = (e, t) => (r, o) => t(r, o, e);
30
+ let g = class extends y {
31
+ constructor(t, r, o) {
33
32
  super();
34
- __publicField(this, "_compareFns", []);
35
- this._univerInstanceService = _univerInstanceService, this._commandService = _commandService, this._formulaDataModel = _formulaDataModel;
33
+ h(this, "_compareFns", []);
34
+ this._univerInstanceService = t, this._commandService = r, this._formulaDataModel = o;
36
35
  }
37
- mergeCheck(location) {
38
- var _a4;
39
- const { unitId, subUnitId, range } = location, sheet = (_a4 = this._univerInstanceService.getUnit(unitId)) == null ? void 0 : _a4.getSheetBySheetId(subUnitId);
40
- if (!sheet)
36
+ mergeCheck(t) {
37
+ var c;
38
+ const { unitId: r, subUnitId: o, range: n } = t, s = (c = this._univerInstanceService.getUnit(r)) == null ? void 0 : c.getSheetBySheetId(o);
39
+ if (!s)
41
40
  return !1;
42
- const mergeDataInRange = sheet.getMergeData().filter((merge) => Rectangle.contains(range, merge));
43
- return mergeDataInRange.length === 0 ? !0 : isRangeDividedEqually(range, mergeDataInRange);
41
+ const i = s.getMergeData().filter((u) => R.contains(n, u));
42
+ return i.length === 0 ? !0 : ie(n, i);
44
43
  }
45
- emptyCheck(location) {
46
- var _a4;
47
- const { unitId, subUnitId, range } = location, sheet = (_a4 = this._univerInstanceService.getUnit(unitId)) == null ? void 0 : _a4.getSheetBySheetId(subUnitId);
48
- if (!sheet)
44
+ emptyCheck(t) {
45
+ var i;
46
+ const { unitId: r, subUnitId: o, range: n } = t, s = (i = this._univerInstanceService.getUnit(r)) == null ? void 0 : i.getSheetBySheetId(o);
47
+ if (!s)
49
48
  return !1;
50
- for (let row = range.startRow; row <= range.endRow; row++)
51
- for (let col = range.startColumn; col <= range.endColumn; col++)
52
- if (!isNullValue(sheet.getCellRaw(row, col)))
49
+ for (let c = n.startRow; c <= n.endRow; c++)
50
+ for (let u = n.startColumn; u <= n.endColumn; u++)
51
+ if (!M(s.getCellRaw(c, u)))
53
52
  return !0;
54
53
  return !1;
55
54
  }
56
- singleCheck(location) {
57
- return location.range.startRow !== location.range.endRow;
58
- }
59
- formulaCheck(location) {
60
- var _a4, _b;
61
- const { unitId, subUnitId, range } = location, arrayFormulaRange = (_b = (_a4 = this._formulaDataModel.getArrayFormulaRange()) == null ? void 0 : _a4[unitId]) == null ? void 0 : _b[subUnitId];
62
- for (const row in arrayFormulaRange) {
63
- const rowData = arrayFormulaRange[Number(row)];
64
- for (const col in rowData) {
65
- const arrayFormula = rowData[Number(col)];
66
- if (arrayFormula && Rectangle.intersects(range, arrayFormula))
55
+ singleCheck(t) {
56
+ return t.range.startRow !== t.range.endRow;
57
+ }
58
+ formulaCheck(t) {
59
+ var i, c;
60
+ const { unitId: r, subUnitId: o, range: n } = t, s = (c = (i = this._formulaDataModel.getArrayFormulaRange()) == null ? void 0 : i[r]) == null ? void 0 : c[o];
61
+ for (const u in s) {
62
+ const a = s[Number(u)];
63
+ for (const m in a) {
64
+ const d = a[Number(m)];
65
+ if (d && R.intersects(n, d))
67
66
  return !1;
68
67
  }
69
68
  }
70
69
  return !0;
71
70
  }
72
- registerCompareFn(fn) {
73
- this._compareFns.unshift(fn);
71
+ registerCompareFn(t) {
72
+ this._compareFns.unshift(t);
74
73
  }
75
74
  getAllCompareFns() {
76
75
  return this._compareFns;
77
76
  }
78
- applySort(sortOption, unitId, subUnitId) {
79
- var _a4;
80
- const { unitId: _unitId, subUnitId: _subUnitId } = getSheetCommandTarget(this._univerInstanceService) || {};
81
- this._commandService.executeCommand(SortRangeCommand.id, {
82
- orderRules: sortOption.orderRules,
83
- range: sortOption.range,
84
- hasTitle: (_a4 = sortOption.hasTitle) != null ? _a4 : !1,
85
- unitId: unitId || _unitId,
86
- subUnitId: subUnitId || _subUnitId
77
+ applySort(t, r, o) {
78
+ var i;
79
+ const { unitId: n, subUnitId: s } = U(this._univerInstanceService) || {};
80
+ this._commandService.executeCommand(T.id, {
81
+ orderRules: t.orderRules,
82
+ range: t.range,
83
+ hasTitle: (i = t.hasTitle) != null ? i : !1,
84
+ unitId: r || n,
85
+ subUnitId: o || s
87
86
  });
88
87
  }
89
- }, __name(_a, "SheetsSortService"), _a);
90
- SheetsSortService = __decorateClass$2([
91
- __decorateParam$2(0, IUniverInstanceService),
92
- __decorateParam$2(1, ICommandService),
93
- __decorateParam$2(2, Inject(FormulaDataModel))
94
- ], SheetsSortService);
95
- function isRangeDividedEqually(range, merges) {
96
- const rangeRows = range.endRow - range.startRow + 1, rangeCols = range.endColumn - range.startColumn + 1;
97
- let mergeRows = null, mergeCols = null;
98
- const totalArea = rangeRows * rangeCols;
99
- let totalMergeArea = 0;
100
- for (const merge of merges)
101
- if (merge.startRow >= range.startRow && merge.endRow <= range.endRow && merge.startColumn >= range.startColumn && merge.endColumn <= range.endColumn) {
102
- const currentMergeRows = merge.endRow - merge.startRow + 1, currentMergeCols = merge.endColumn - merge.startColumn + 1;
103
- if (mergeRows === null && mergeCols === null)
104
- mergeRows = currentMergeRows, mergeCols = currentMergeCols;
105
- else if (currentMergeRows !== mergeRows || currentMergeCols !== mergeCols)
88
+ };
89
+ g = se([
90
+ p(0, E),
91
+ p(1, I),
92
+ p(2, w(X))
93
+ ], g);
94
+ function ie(e, t) {
95
+ const r = e.endRow - e.startRow + 1, o = e.endColumn - e.startColumn + 1;
96
+ let n = null, s = null;
97
+ const i = r * o;
98
+ let c = 0;
99
+ for (const u of t)
100
+ if (u.startRow >= e.startRow && u.endRow <= e.endRow && u.startColumn >= e.startColumn && u.endColumn <= e.endColumn) {
101
+ const a = u.endRow - u.startRow + 1, m = u.endColumn - u.startColumn + 1;
102
+ if (n === null && s === null)
103
+ n = a, s = m;
104
+ else if (a !== n || m !== s)
106
105
  return !1;
107
- totalMergeArea += currentMergeRows * currentMergeCols;
106
+ c += a * m;
108
107
  }
109
- return totalMergeArea === totalArea;
108
+ return c === i;
110
109
  }
111
- __name(isRangeDividedEqually, "isRangeDividedEqually");
112
- const SortRangeCommand = {
110
+ const T = {
113
111
  id: "sheet.command.sort-range",
114
- type: CommandType.COMMAND,
115
- handler: /* @__PURE__ */ __name((accessor, params) => {
116
- const { range, orderRules, hasTitle, unitId, subUnitId } = params, sortService = accessor.get(SheetsSortService), univerInstanceService = accessor.get(IUniverInstanceService), { worksheet } = getSheetCommandTarget(univerInstanceService, params) || {};
117
- if (!worksheet)
112
+ type: H.COMMAND,
113
+ handler: (e, t) => {
114
+ const { range: r, orderRules: o, hasTitle: n, unitId: s, subUnitId: i } = t, c = e.get(g), u = e.get(E), { worksheet: a } = U(u, t) || {};
115
+ if (!a)
118
116
  return !1;
119
- const mergeDataInRange = worksheet.getMergeData().filter((mergeData) => Rectangle.contains(range, mergeData)), mergeMainRowIndexes = mergeDataInRange.map((mergeData) => mergeData.startRow), { startRow: rangeStartRow, endRow } = range, startRow = hasTitle ? rangeStartRow + 1 : rangeStartRow, toReorder = [], oldOrder = [];
120
- for (let rowIndex = startRow; rowIndex <= endRow; rowIndex++)
121
- worksheet.getRowFiltered(rowIndex) || worksheet.getRowRawVisible(rowIndex) !== !1 && (mergeDataInRange.length && !mergeMainRowIndexes.includes(rowIndex) || (toReorder.push({
122
- index: rowIndex,
123
- value: getRowCellData(worksheet, rowIndex, orderRules)
124
- }), oldOrder.push(rowIndex)));
125
- const compareFns = sortService.getAllCompareFns();
126
- toReorder.sort(reorderFnGenerator(orderRules, combineCompareFnsAsOne(compareFns)));
127
- const order = {};
128
- toReorder.forEach(({ index, value }, oldIndex) => {
129
- order[oldOrder[oldIndex]] = index;
117
+ const m = a.getMergeData().filter((l) => R.contains(r, l)), d = m.map((l) => l.startRow), { startRow: b, endRow: $ } = r, j = n ? b + 1 : b, S = [], A = [];
118
+ for (let l = j; l <= $; l++)
119
+ a.getRowFiltered(l) || a.getRowRawVisible(l) !== !1 && (m.length && !d.includes(l) || (S.push({
120
+ index: l,
121
+ value: ue(a, l, o)
122
+ }), A.push(l)));
123
+ const x = c.getAllCompareFns();
124
+ S.sort(le(o, ce(x)));
125
+ const F = {};
126
+ S.forEach(({ index: l, value: _e }, G) => {
127
+ F[A[G]] = l;
130
128
  });
131
- const reorderRangeCommand = {
132
- id: ReorderRangeCommand.id,
129
+ const V = {
130
+ id: Q.id,
133
131
  params: {
134
- unitId,
135
- subUnitId,
136
- range,
137
- order
132
+ unitId: s,
133
+ subUnitId: i,
134
+ range: r,
135
+ order: F
138
136
  }
139
- }, commandService = accessor.get(ICommandService);
140
- return sequenceExecute([reorderRangeCommand], commandService).result;
141
- }, "handler")
137
+ }, L = e.get(I);
138
+ return K([V], L).result;
139
+ }
142
140
  };
143
- function getRowCellData(worksheet, rowIndex, orderRules) {
144
- const result = [];
145
- return orderRules.forEach(({ colIndex }) => {
146
- result.push(worksheet.getCellRaw(rowIndex, colIndex));
147
- }), result;
141
+ function ue(e, t, r) {
142
+ const o = [];
143
+ return r.forEach(({ colIndex: n }) => {
144
+ o.push(e.getCellRaw(t, n));
145
+ }), o;
148
146
  }
149
- __name(getRowCellData, "getRowCellData");
150
- function combineCompareFnsAsOne(compareFns) {
151
- return (type, a, b) => {
152
- for (let i = 0; i < compareFns.length; i++) {
153
- const res = compareFns[i](type, a, b);
154
- if (res != null)
155
- return res;
147
+ function ce(e) {
148
+ return (t, r, o) => {
149
+ for (let n = 0; n < e.length; n++) {
150
+ const s = e[n](t, r, o);
151
+ if (s != null)
152
+ return s;
156
153
  }
157
154
  return 0;
158
155
  };
159
156
  }
160
- __name(combineCompareFnsAsOne, "combineCompareFnsAsOne");
161
- function reorderFnGenerator(orderRules, valueCompare) {
162
- return function(a, b) {
163
- let ret = null;
164
- for (let index = 0; index < orderRules.length; index++) {
165
- const aCellData = a.value[index], bCellData = b.value[index];
166
- if (ret = valueCompare(orderRules[index].type, aCellData, bCellData), ret !== 0 && ret !== null && ret !== void 0)
167
- return ret;
157
+ function le(e, t) {
158
+ return function(r, o) {
159
+ let n = null;
160
+ for (let s = 0; s < e.length; s++) {
161
+ const i = r.value[s], c = o.value[s];
162
+ if (n = t(e[s].type, i, c), n !== 0 && n !== null && n !== void 0)
163
+ return n;
168
164
  }
169
165
  return 0;
170
166
  };
171
167
  }
172
- __name(reorderFnGenerator, "reorderFnGenerator");
173
- var __defProp$1 = Object.defineProperty, __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor, __decorateClass$1 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
174
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
175
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
176
- return kind && result && __defProp$1(target, key, result), result;
177
- }, "__decorateClass$1"), __decorateParam$1 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$1"), _a2;
178
- let SheetsSortController = (_a2 = class extends Disposable {
179
- constructor(_commandService, _sortService) {
180
- super(), this._commandService = _commandService, this._sortService = _sortService, this._initCommands(), this._registerCompareFns();
168
+ var ae = Object.defineProperty, fe = Object.getOwnPropertyDescriptor, me = (e, t, r, o) => {
169
+ for (var n = o > 1 ? void 0 : o ? fe(t, r) : t, s = e.length - 1, i; s >= 0; s--)
170
+ (i = e[s]) && (n = (o ? i(t, r, n) : i(n)) || n);
171
+ return o && n && ae(t, r, n), n;
172
+ }, D = (e, t) => (r, o) => t(r, o, e);
173
+ let _ = class extends y {
174
+ constructor(e, t) {
175
+ super(), this._commandService = e, this._sortService = t, this._initCommands(), this._registerCompareFns();
181
176
  }
182
177
  _initCommands() {
183
178
  [
184
- SortRangeCommand
185
- ].forEach((command) => this.disposeWithMe(this._commandService.registerCommand(command)));
179
+ T
180
+ ].forEach((e) => this.disposeWithMe(this._commandService.registerCommand(e)));
186
181
  }
187
182
  _registerCompareFns() {
188
- const commonFn = /* @__PURE__ */ __name((type, a, b) => {
189
- const valueA = this._getCommonValue(a), valueB = this._getCommonValue(b), compareTypeFns = [
190
- compareNull,
191
- compareString,
192
- compareNumber
183
+ const e = (t, r, o) => {
184
+ const n = this._getCommonValue(r), s = this._getCommonValue(o), i = [
185
+ ee,
186
+ re,
187
+ te
193
188
  ];
194
- for (let i = 0; i < compareTypeFns.length; i++) {
195
- const res = compareTypeFns[i](valueA, valueB, type);
196
- if (res !== null)
197
- return res;
189
+ for (let c = 0; c < i.length; c++) {
190
+ const u = i[c](n, s, t);
191
+ if (u !== null)
192
+ return u;
198
193
  }
199
194
  return null;
200
- }, "commonFn");
201
- this._sortService.registerCompareFn(commonFn);
195
+ };
196
+ this._sortService.registerCompareFn(e);
202
197
  }
203
- _getCommonValue(a) {
204
- var _a4, _b;
205
- if (isNullValue(a))
198
+ _getCommonValue(e) {
199
+ var r, o;
200
+ if (M(e))
206
201
  return null;
207
- const richTextValue = (_b = (_a4 = a == null ? void 0 : a.p) == null ? void 0 : _a4.body) == null ? void 0 : _b.dataStream;
208
- return richTextValue || ((a == null ? void 0 : a.t) === CellValueType.NUMBER ? Number.parseFloat(`${a.v}`) : (a == null ? void 0 : a.t) === CellValueType.STRING ? typeof a.v == "number" ? a.v : `${a.v}` : (a == null ? void 0 : a.t) === CellValueType.BOOLEAN ? `${a.v}` : (a == null ? void 0 : a.t) === CellValueType.FORCE_STRING ? Number.parseFloat(`${a.v}`) : `${a == null ? void 0 : a.v}`);
209
- }
210
- }, __name(_a2, "SheetsSortController"), _a2);
211
- SheetsSortController = __decorateClass$1([
212
- __decorateParam$1(0, ICommandService),
213
- __decorateParam$1(1, Inject(SheetsSortService))
214
- ], SheetsSortController);
215
- var __defProp2 = Object.defineProperty, __getOwnPropDesc = Object.getOwnPropertyDescriptor, __decorateClass = /* @__PURE__ */ __name((decorators, target, key, kind) => {
216
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
217
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
218
- return kind && result && __defProp2(target, key, result), result;
219
- }, "__decorateClass"), __decorateParam = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam");
220
- const NAME = "SHEET_SORT_PLUGIN";
221
- var _a3;
222
- let UniverSheetsSortPlugin = (_a3 = class extends Plugin {
223
- constructor(_config = defaultPluginConfig, _injector, _configService) {
224
- super(), this._config = _config, this._injector = _injector, this._configService = _configService;
225
- const { ...rest } = this._config;
226
- this._configService.setConfig(PLUGIN_CONFIG_KEY, rest);
202
+ const t = (o = (r = e == null ? void 0 : e.p) == null ? void 0 : r.body) == null ? void 0 : o.dataStream;
203
+ return t || ((e == null ? void 0 : e.t) === v.NUMBER ? Number.parseFloat(`${e.v}`) : (e == null ? void 0 : e.t) === v.STRING ? typeof e.v == "number" ? e.v : `${e.v}` : (e == null ? void 0 : e.t) === v.BOOLEAN ? `${e.v}` : (e == null ? void 0 : e.t) === v.FORCE_STRING ? Number.parseFloat(`${e.v}`) : `${e == null ? void 0 : e.v}`);
204
+ }
205
+ };
206
+ _ = me([
207
+ D(0, I),
208
+ D(1, w(g))
209
+ ], _);
210
+ var ge = Object.defineProperty, de = Object.getOwnPropertyDescriptor, he = (e, t, r, o) => {
211
+ for (var n = o > 1 ? void 0 : o ? de(t, r) : t, s = e.length - 1, i; s >= 0; s--)
212
+ (i = e[s]) && (n = (o ? i(t, r, n) : i(n)) || n);
213
+ return o && n && ge(t, r, n), n;
214
+ }, P = (e, t) => (r, o) => t(r, o, e);
215
+ const ve = "SHEET_SORT_PLUGIN";
216
+ var C;
217
+ let O = (C = class extends W {
218
+ constructor(e = k, t, r) {
219
+ super(), this._config = e, this._injector = t, this._configService = r;
220
+ const { ...o } = this._config;
221
+ this._configService.setConfig(Z, o);
227
222
  }
228
223
  onStarting() {
229
224
  [
230
- [SheetsSortController],
231
- [SheetsSortService]
232
- ].forEach((d) => this._injector.add(d));
225
+ [_],
226
+ [g]
227
+ ].forEach((e) => this._injector.add(e));
233
228
  }
234
229
  onReady() {
235
- this._injector.get(SheetsSortController);
230
+ this._injector.get(_);
236
231
  }
237
- }, __name(_a3, "UniverSheetsSortPlugin"), __publicField(_a3, "type", UniverInstanceType.UNIVER_SHEET), __publicField(_a3, "pluginName", NAME), _a3);
238
- UniverSheetsSortPlugin = __decorateClass([
239
- __decorateParam(1, Inject(Injector)),
240
- __decorateParam(2, IConfigService)
241
- ], UniverSheetsSortPlugin);
232
+ }, h(C, "type", Y.UNIVER_SHEET), h(C, "pluginName", ve), C);
233
+ O = he([
234
+ P(1, w(z)),
235
+ P(2, J)
236
+ ], O);
242
237
  export {
243
- SheetsSortService,
244
- SortRangeCommand,
245
- SortType,
246
- UniverSheetsSortPlugin
238
+ g as SheetsSortService,
239
+ T as SortRangeCommand,
240
+ f as SortType,
241
+ O as UniverSheetsSortPlugin
247
242
  };
@@ -1,7 +1,7 @@
1
- {
2
- "sheetsSort": {
3
- "title": "Sort",
4
- "toolbar": {
1
+ const o = {
2
+ sheetsSort: {
3
+ title: "Sort",
4
+ toolbar: {
5
5
  "sort-asc": "ascending order",
6
6
  "sort-desc": "descending order",
7
7
  "sort-custom": "custom order"
@@ -12,4 +12,7 @@
12
12
  "sort-custom": "custom order"
13
13
  }
14
14
  }
15
- }
15
+ };
16
+ export {
17
+ o as default
18
+ };
@@ -1,7 +1,7 @@
1
- {
2
- "sheetsSort": {
3
- "title": "مرتب‌سازی",
4
- "toolbar": {
1
+ const t = {
2
+ sheetsSort: {
3
+ title: "مرتب‌سازی",
4
+ toolbar: {
5
5
  "sort-asc": "ترتیب صعودی",
6
6
  "sort-desc": "ترتیب نزولی",
7
7
  "sort-custom": "ترتیب سفارشی"
@@ -12,4 +12,7 @@
12
12
  "sort-custom": "ترتیب سفارشی"
13
13
  }
14
14
  }
15
- }
15
+ };
16
+ export {
17
+ t as default
18
+ };
@@ -1,7 +1,7 @@
1
- {
2
- "sheetsSort": {
3
- "title": "Sort",
4
- "toolbar": {
1
+ const o = {
2
+ sheetsSort: {
3
+ title: "Sort",
4
+ toolbar: {
5
5
  "sort-asc": "ascending order",
6
6
  "sort-desc": "descending order",
7
7
  "sort-custom": "custom order"
@@ -12,4 +12,7 @@
12
12
  "sort-custom": "custom order"
13
13
  }
14
14
  }
15
- }
15
+ };
16
+ export {
17
+ o as default
18
+ };
@@ -1,7 +1,7 @@
1
- {
2
- "sheetsSort": {
3
- "title": "Sort",
4
- "toolbar": {
1
+ const o = {
2
+ sheetsSort: {
3
+ title: "Sort",
4
+ toolbar: {
5
5
  "sort-asc": "ascending order",
6
6
  "sort-desc": "descending order",
7
7
  "sort-custom": "custom order"
@@ -12,4 +12,7 @@
12
12
  "sort-custom": "custom order"
13
13
  }
14
14
  }
15
- }
15
+ };
16
+ export {
17
+ o as default
18
+ };
@@ -1,7 +1,7 @@
1
- {
2
- "sheetsSort": {
3
- "title": "排序",
4
- "toolbar": {
1
+ const t = {
2
+ sheetsSort: {
3
+ title: "排序",
4
+ toolbar: {
5
5
  "sort-asc": "升序",
6
6
  "sort-desc": "降序",
7
7
  "sort-custom": "自定义排序"
@@ -12,4 +12,7 @@
12
12
  "sort-custom": "自定义排序"
13
13
  }
14
14
  }
15
- }
15
+ };
16
+ export {
17
+ t as default
18
+ };
@@ -1,7 +1,7 @@
1
- {
2
- "sheetsSort": {
3
- "title": "Sắp xếp",
4
- "toolbar": {
1
+ const t = {
2
+ sheetsSort: {
3
+ title: "Sắp xếp",
4
+ toolbar: {
5
5
  "sort-asc": "Tăng dần",
6
6
  "sort-desc": "Giảm dần",
7
7
  "sort-custom": "Sắp xếp tùy chỉnh"
@@ -12,4 +12,7 @@
12
12
  "sort-custom": "Sắp xếp tùy chỉnh"
13
13
  }
14
14
  }
15
- }
15
+ };
16
+ export {
17
+ t as default
18
+ };
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports,require("@univerjs/core"),require("@univerjs/sheets"),require("@univerjs/engine-formula")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/sheets","@univerjs/engine-formula"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global.UniverSheetsSort={},global.UniverCore,global.UniverSheets,global.UniverEngineFormula))})(this,function(exports2,core,sheets,engineFormula){"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);var _a,_b,_c;const 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");exports2.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 _a2;const{unitId,subUnitId,range}=location,sheet=(_a2=this._univerInstanceService.getUnit(unitId))==null?void 0:_a2.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 _a2;const{unitId,subUnitId,range}=location,sheet=(_a2=this._univerInstanceService.getUnit(unitId))==null?void 0:_a2.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 _a2,_b2;const{unitId,subUnitId,range}=location,arrayFormulaRange=(_b2=(_a2=this._formulaDataModel.getArrayFormulaRange())==null?void 0:_a2[unitId])==null?void 0:_b2[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 _a2;const{unitId:_unitId,subUnitId:_subUnitId}=sheets.getSheetCommandTarget(this._univerInstanceService)||{};this._commandService.executeCommand(SortRangeCommand.id,{orderRules:sortOption.orderRules,range:sortOption.range,hasTitle:(_a2=sortOption.hasTitle)!=null?_a2:!1,unitId:unitId||_unitId,subUnitId:subUnitId||_subUnitId})}},__name(_a,"SheetsSortService"),_a),exports2.SheetsSortService=__decorateClass$2([__decorateParam$2(0,core.IUniverInstanceService),__decorateParam$2(1,core.ICommandService),__decorateParam$2(2,core.Inject(engineFormula.FormulaDataModel))],exports2.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(exports2.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");let SheetsSortController=(_b=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 _a2,_b2;if(isNullValue(a))return null;const richTextValue=(_b2=(_a2=a==null?void 0:a.p)==null?void 0:_a2.body)==null?void 0:_b2.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(_b,"SheetsSortController"),_b);SheetsSortController=__decorateClass$1([__decorateParam$1(0,core.ICommandService),__decorateParam$1(1,core.Inject(exports2.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";exports2.UniverSheetsSortPlugin=(_c=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_configService){super(),this._config=_config,this._injector=_injector,this._configService=_configService;const{...rest}=this._config;this._configService.setConfig(PLUGIN_CONFIG_KEY,rest)}onStarting(){[[SheetsSortController],[exports2.SheetsSortService]].forEach(d=>this._injector.add(d))}onReady(){this._injector.get(SheetsSortController)}},__name(_c,"UniverSheetsSortPlugin"),__publicField(_c,"type",core.UniverInstanceType.UNIVER_SHEET),__publicField(_c,"pluginName",NAME),_c),exports2.UniverSheetsSortPlugin=__decorateClass([__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,core.IConfigService)],exports2.UniverSheetsSortPlugin),exports2.SortRangeCommand=SortRangeCommand,exports2.SortType=SortType,Object.defineProperty(exports2,Symbol.toStringTag,{value:"Module"})});
1
+ (function(l,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@univerjs/core"),require("@univerjs/sheets"),require("@univerjs/engine-formula")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/sheets","@univerjs/engine-formula"],i):(l=typeof globalThis<"u"?globalThis:l||self,i(l.UniverSheetsSort={},l.UniverCore,l.UniverSheets,l.UniverEngineFormula))})(this,function(l,i,S,j){"use strict";var ne=Object.defineProperty;var re=(l,i,S)=>i in l?ne(l,i,{enumerable:!0,configurable:!0,writable:!0,value:S}):l[i]=S;var _=(l,i,S)=>re(l,typeof i!="symbol"?i+"":i,S);var C;const D="sheets-sort.config",N={};var d=(e=>(e.DESC="desc",e.ASC="asc",e))(d||{});const b=e=>e.replace(/-/gi,"").replace(/'/gi,""),T=(e,s)=>{const t=e===null||e==="",r=s===null||s==="";return t&&r?0:t?1:r?-1:null},O=(e,s,t)=>{const r=typeof e=="number",n=typeof s=="number";return r&&n?e<s?t===d.ASC?-1:1:e>s?t===d.ASC?1:-1:0:r?t===d.ASC?1:-1:n?t===d.ASC?-1:1:null},E=(e,s,t)=>{const r=typeof e=="string",n=typeof s=="string";if(r&&(e=b(e.toLocaleLowerCase())),n&&(s=b(s.toLocaleLowerCase())),!r&&!n)return null;if(r&&n){const o=e,u=s;return o<u?t===d.ASC?-1:1:o>u?t===d.ASC?1:-1:0}return r?t===d.ASC?1:-1:n?t===d.ASC?-1:1:null},A=e=>!e||Object.keys(e).length===0||(e==null?void 0:e.v)==null&&(e==null?void 0:e.p)==null;var M=Object.defineProperty,$=Object.getOwnPropertyDescriptor,V=(e,s,t,r)=>{for(var n=r>1?void 0:r?$(s,t):s,o=e.length-1,u;o>=0;o--)(u=e[o])&&(n=(r?u(s,t,n):u(n))||n);return r&&n&&M(s,t,n),n},p=(e,s)=>(t,r)=>s(t,r,e);l.SheetsSortService=class extends i.Disposable{constructor(t,r,n){super();_(this,"_compareFns",[]);this._univerInstanceService=t,this._commandService=r,this._formulaDataModel=n}mergeCheck(t){var a;const{unitId:r,subUnitId:n,range:o}=t,u=(a=this._univerInstanceService.getUnit(r))==null?void 0:a.getSheetBySheetId(n);if(!u)return!1;const c=u.getMergeData().filter(f=>i.Rectangle.contains(o,f));return c.length===0?!0:L(o,c)}emptyCheck(t){var c;const{unitId:r,subUnitId:n,range:o}=t,u=(c=this._univerInstanceService.getUnit(r))==null?void 0:c.getSheetBySheetId(n);if(!u)return!1;for(let a=o.startRow;a<=o.endRow;a++)for(let f=o.startColumn;f<=o.endColumn;f++)if(!A(u.getCellRaw(a,f)))return!0;return!1}singleCheck(t){return t.range.startRow!==t.range.endRow}formulaCheck(t){var c,a;const{unitId:r,subUnitId:n,range:o}=t,u=(a=(c=this._formulaDataModel.getArrayFormulaRange())==null?void 0:c[r])==null?void 0:a[n];for(const f in u){const g=u[Number(f)];for(const I in g){const v=g[Number(I)];if(v&&i.Rectangle.intersects(o,v))return!1}}return!0}registerCompareFn(t){this._compareFns.unshift(t)}getAllCompareFns(){return this._compareFns}applySort(t,r,n){var c;const{unitId:o,subUnitId:u}=S.getSheetCommandTarget(this._univerInstanceService)||{};this._commandService.executeCommand(R.id,{orderRules:t.orderRules,range:t.range,hasTitle:(c=t.hasTitle)!=null?c:!1,unitId:r||o,subUnitId:n||u})}},l.SheetsSortService=V([p(0,i.IUniverInstanceService),p(1,i.ICommandService),p(2,i.Inject(j.FormulaDataModel))],l.SheetsSortService);function L(e,s){const t=e.endRow-e.startRow+1,r=e.endColumn-e.startColumn+1;let n=null,o=null;const u=t*r;let c=0;for(const a of s)if(a.startRow>=e.startRow&&a.endRow<=e.endRow&&a.startColumn>=e.startColumn&&a.endColumn<=e.endColumn){const f=a.endRow-a.startRow+1,g=a.endColumn-a.startColumn+1;if(n===null&&o===null)n=f,o=g;else if(f!==n||g!==o)return!1;c+=f*g}return c===u}const R={id:"sheet.command.sort-range",type:i.CommandType.COMMAND,handler:(e,s)=>{const{range:t,orderRules:r,hasTitle:n,unitId:o,subUnitId:u}=s,c=e.get(l.SheetsSortService),a=e.get(i.IUniverInstanceService),{worksheet:f}=S.getSheetCommandTarget(a,s)||{};if(!f)return!1;const g=f.getMergeData().filter(m=>i.Rectangle.contains(t,m)),I=g.map(m=>m.startRow),{startRow:v,endRow:Q}=t,X=n?v+1:v,w=[],U=[];for(let m=X;m<=Q;m++)f.getRowFiltered(m)||f.getRowRawVisible(m)!==!1&&(g.length&&!I.includes(m)||(w.push({index:m,value:G(f,m,r)}),U.push(m)));const Z=c.getAllCompareFns();w.sort(B(r,q(Z)));const F={};w.forEach(({index:m,value:oe},te)=>{F[U[te]]=m});const k={id:S.ReorderRangeCommand.id,params:{unitId:o,subUnitId:u,range:t,order:F}},ee=e.get(i.ICommandService);return i.sequenceExecute([k],ee).result}};function G(e,s,t){const r=[];return t.forEach(({colIndex:n})=>{r.push(e.getCellRaw(s,n))}),r}function q(e){return(s,t,r)=>{for(let n=0;n<e.length;n++){const o=e[n](s,t,r);if(o!=null)return o}return 0}}function B(e,s){return function(t,r){let n=null;for(let o=0;o<e.length;o++){const u=t.value[o],c=r.value[o];if(n=s(e[o].type,u,c),n!==0&&n!==null&&n!==void 0)return n}return 0}}var x=Object.defineProperty,H=Object.getOwnPropertyDescriptor,K=(e,s,t,r)=>{for(var n=r>1?void 0:r?H(s,t):s,o=e.length-1,u;o>=0;o--)(u=e[o])&&(n=(r?u(s,t,n):u(n))||n);return r&&n&&x(s,t,n),n},y=(e,s)=>(t,r)=>s(t,r,e);let h=class extends i.Disposable{constructor(e,s){super(),this._commandService=e,this._sortService=s,this._initCommands(),this._registerCompareFns()}_initCommands(){[R].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_registerCompareFns(){const e=(s,t,r)=>{const n=this._getCommonValue(t),o=this._getCommonValue(r),u=[T,E,O];for(let c=0;c<u.length;c++){const a=u[c](n,o,s);if(a!==null)return a}return null};this._sortService.registerCompareFn(e)}_getCommonValue(e){var t,r;if(A(e))return null;const s=(r=(t=e==null?void 0:e.p)==null?void 0:t.body)==null?void 0:r.dataStream;return s||((e==null?void 0:e.t)===i.CellValueType.NUMBER?Number.parseFloat(`${e.v}`):(e==null?void 0:e.t)===i.CellValueType.STRING?typeof e.v=="number"?e.v:`${e.v}`:(e==null?void 0:e.t)===i.CellValueType.BOOLEAN?`${e.v}`:(e==null?void 0:e.t)===i.CellValueType.FORCE_STRING?Number.parseFloat(`${e.v}`):`${e==null?void 0:e.v}`)}};h=K([y(0,i.ICommandService),y(1,i.Inject(l.SheetsSortService))],h);var W=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,z=(e,s,t,r)=>{for(var n=r>1?void 0:r?Y(s,t):s,o=e.length-1,u;o>=0;o--)(u=e[o])&&(n=(r?u(s,t,n):u(n))||n);return r&&n&&W(s,t,n),n},P=(e,s)=>(t,r)=>s(t,r,e);const J="SHEET_SORT_PLUGIN";l.UniverSheetsSortPlugin=(C=class extends i.Plugin{constructor(s=N,t,r){super(),this._config=s,this._injector=t,this._configService=r;const{...n}=this._config;this._configService.setConfig(D,n)}onStarting(){[[h],[l.SheetsSortService]].forEach(s=>this._injector.add(s))}onReady(){this._injector.get(h)}},_(C,"type",i.UniverInstanceType.UNIVER_SHEET),_(C,"pluginName",J),C),l.UniverSheetsSortPlugin=z([P(1,i.Inject(i.Injector)),P(2,i.IConfigService)],l.UniverSheetsSortPlugin),l.SortRangeCommand=R,l.SortType=d,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
@@ -0,0 +1 @@
1
+ (function(e,o){typeof exports=="object"&&typeof module<"u"?module.exports=o():typeof define=="function"&&define.amd?define(o):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverSheetsSortEnUS=o())})(this,function(){"use strict";return{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"}}}});
@@ -0,0 +1 @@
1
+ (function(e,t){typeof exports=="object"&&typeof module<"u"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverSheetsSortFaIR=t())})(this,function(){"use strict";return{sheetsSort:{title:"مرتب‌سازی",toolbar:{"sort-asc":"ترتیب صعودی","sort-desc":"ترتیب نزولی","sort-custom":"ترتیب سفارشی"},"context-menu":{"sort-asc":"ترتیب صعودی","sort-desc":"ترتیب نزولی","sort-custom":"ترتیب سفارشی"}}}});
@@ -0,0 +1 @@
1
+ (function(e,o){typeof exports=="object"&&typeof module<"u"?module.exports=o():typeof define=="function"&&define.amd?define(o):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverSheetsSortRuRU=o())})(this,function(){"use strict";return{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"}}}});
@@ -0,0 +1 @@
1
+ (function(e,o){typeof exports=="object"&&typeof module<"u"?module.exports=o():typeof define=="function"&&define.amd?define(o):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverSheetsSortViVN=o())})(this,function(){"use strict";return{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"}}}});
@@ -0,0 +1 @@
1
+ (function(e,t){typeof exports=="object"&&typeof module<"u"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverSheetsSortZhCN=t())})(this,function(){"use strict";return{sheetsSort:{title:"排序",toolbar:{"sort-asc":"升序","sort-desc":"降序","sort-custom":"自定义排序"},"context-menu":{"sort-asc":"升序","sort-desc":"降序","sort-custom":"自定义排序"}}}});
@@ -0,0 +1 @@
1
+ (function(e,t){typeof exports=="object"&&typeof module<"u"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverSheetsSortZhTW=t())})(this,function(){"use strict";return{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"}}}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-sort",
3
- "version": "0.4.2",
3
+ "version": "0.5.0-alpha.0",
4
4
  "private": false,
5
5
  "description": "A library for sorting data in Univer Sheet",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -29,11 +29,14 @@
29
29
  "require": "./lib/cjs/*",
30
30
  "types": "./lib/types/index.d.ts"
31
31
  },
32
- "./lib/*": "./lib/*",
33
- "./locale/*": "./lib/locale/*.json"
32
+ "./locale/*": {
33
+ "import": "./lib/es/locale/*.js",
34
+ "require": "./lib/cjs/locale/*.js",
35
+ "types": "./lib/types/locale/*.d.ts"
36
+ },
37
+ "./lib/*": "./lib/*"
34
38
  },
35
- "main": "./lib/cjs/index.js",
36
- "module": "./lib/es/index.js",
39
+ "main": "./lib/es/index.js",
37
40
  "types": "./lib/types/index.d.ts",
38
41
  "publishConfig": {
39
42
  "access": "public"
@@ -44,24 +47,19 @@
44
47
  "files": [
45
48
  "lib"
46
49
  ],
47
- "peerDependencies": {
48
- "@univerjs/core": "0.4.2",
49
- "@univerjs/engine-formula": "0.4.2",
50
- "@univerjs/sheets": "0.4.2"
51
- },
52
50
  "dependencies": {
53
- "@univerjs/core": "0.4.2",
54
- "@univerjs/engine-formula": "0.4.2",
55
- "@univerjs/sheets": "0.4.2"
51
+ "@vitejs/plugin-react": "4.3.3",
52
+ "@univerjs/core": "0.5.0-alpha.0",
53
+ "@univerjs/engine-formula": "0.5.0-alpha.0",
54
+ "@univerjs/sheets": "0.5.0-alpha.0"
56
55
  },
57
56
  "devDependencies": {
58
- "rxjs": "^7.8.1",
59
57
  "typescript": "^5.6.3",
60
- "vite": "^5.4.8",
61
- "vitest": "^2.1.2",
62
- "@univerjs-infra/shared": "0.4.2"
58
+ "vite": "^5.4.10",
59
+ "vitest": "^2.1.4",
60
+ "@univerjs-infra/shared": "0.5.0-alpha.0"
63
61
  },
64
- "univerSpace": {
62
+ "space": {
65
63
  ".": {
66
64
  "import": "./lib/es/index.js",
67
65
  "require": "./lib/cjs/index.js",
@@ -72,14 +70,19 @@
72
70
  "require": "./lib/cjs/*",
73
71
  "types": "./lib/types/index.d.ts"
74
72
  },
75
- "./lib/*": "./lib/*",
76
- "./locale/*": "./lib/locale/*.json"
73
+ "./locale/*": {
74
+ "import": "./lib/es/locale/*.js",
75
+ "require": "./lib/cjs/locale/*.js",
76
+ "types": "./lib/types/locale/*.d.ts"
77
+ },
78
+ "./lib/*": "./lib/*"
77
79
  },
78
80
  "scripts": {
79
81
  "test": "vitest run",
80
82
  "test:watch": "vitest",
81
83
  "coverage": "vitest run --coverage",
82
84
  "lint:types": "tsc --noEmit",
83
- "build": "tsc && vite build"
84
- }
85
+ "build": "tsx build.ts"
86
+ },
87
+ "module": "./lib/es/index.js"
85
88
  }