@univerjs/sheets-sort 0.2.4-alpha.0 → 0.2.4

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 E=Object.defineProperty;var M=(e,r,t)=>r in e?E(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 u=require("@univerjs/core"),R=require("@univerjs/sheets"),j=require("@univerjs/engine-formula");var f=(e=>(e.DESC="desc",e.ASC="asc",e))(f||{});const y=e=>e.replace(/-/gi,"").replace(/'/gi,""),$=(e,r)=>{const t=e===null||e==="",o=r===null||r==="";return t&&o?0:t?1:o?-1:null},V=(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},x=(e,r,t)=>{const o=typeof e=="string",n=typeof r=="string";if(o&&(e=y(e.toLocaleLowerCase())),n&&(r=y(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},D=e=>!e||Object.keys(e).length===0||(e==null?void 0:e.v)==null&&(e==null?void 0:e.p)==null;var L=Object.defineProperty,q=Object.getOwnPropertyDescriptor,B=(e,r,t,o)=>{for(var n=o>1?void 0:o?q(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&&L(r,t,n),n},_=(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 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;const c=i.getMergeData().filter(a=>u.Rectangle.contains(s,a));return c.length===0?!0:G(s,c)}emptyCheck(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;for(let l=s.startRow;l<=s.endRow;l++)for(let a=s.startColumn;a<=s.endColumn;a++)if(!D(i.getCellRaw(l,a)))return!0;return!1}singleCheck(t){return t.range.startRow!==t.range.endRow}formulaCheck(t){var c,l;const{unitId:o,subUnitId:n,range:s}=t,i=(l=(c=this._formulaDataModel.getArrayFormulaRange())==null?void 0:c[o])==null?void 0:l[n];for(const a in i){const S=i[Number(a)];for(const C in S){const g=S[Number(C)];if(g&&u.Rectangle.intersects(s,g))return!1}}return!0}registerCompareFn(t){this._compareFns.unshift(t)}getAllCompareFns(){return this._compareFns}applySort(t,o,n){var c;const{unitId:s,subUnitId:i}=R.getSheetCommandTarget(this._univerInstanceService)||{};this._commandService.executeCommand(I.id,{orderRules:t.orderRules,range:t.range,hasTitle:(c=t.hasTitle)!=null?c:!1,unitId:o||s,subUnitId:n||i})}};exports.SheetsSortService=B([u.OnLifecycle(u.LifecycleStages.Ready,exports.SheetsSortService),_(0,u.IUniverInstanceService),_(1,u.ICommandService),_(2,u.Inject(j.FormulaDataModel))],exports.SheetsSortService);function G(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 c=0;for(const l of r)if(l.startRow>=e.startRow&&l.endRow<=e.endRow&&l.startColumn>=e.startColumn&&l.endColumn<=e.endColumn){const a=l.endRow-l.startRow+1,S=l.endColumn-l.startColumn+1;if(n===null&&s===null)n=a,s=S;else if(a!==n||S!==s)return!1;c+=a*S}return c===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,c=e.get(exports.SheetsSortService),l=e.get(u.IUniverInstanceService),{worksheet:a}=R.getSheetCommandTarget(l,r)||{};if(!a)return!1;const S=a.getMergeData().filter(m=>u.Rectangle.contains(t,m)),C=S.map(m=>m.startRow),{startRow:g,endRow:F}=t,P=n?g+1:g,p=[],w=[];for(let m=P;m<=F;m++)a.getRowFiltered(m)||a.getRowRawVisible(m)!==!1&&(S.length&&!C.includes(m)||(p.push({index:m,value:H(a,m,o)}),w.push(m)));const N=c.getAllCompareFns();p.sort(z(o,W(N)));const b={};p.forEach(({index:m,value:re},T)=>{b[w[T]]=m});const O={id:R.ReorderRangeCommand.id,params:{unitId:s,subUnitId:i,range:t,order:b}},U=e.get(u.ICommandService);return u.sequenceExecute([O],U).result}};function H(e,r,t){const o=[];return t.forEach(({colIndex:n})=>{o.push(e.getCellRaw(r,n))}),o}function W(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 z(e,r){return function(t,o){let n=null;for(let s=0;s<e.length;s++){const i=t.value[s],c=o.value[s];if(n=r(e[s].type,i,c),n!==0&&n!==null&&n!==void 0)return n}return 0}}var J=Object.defineProperty,K=Object.getOwnPropertyDescriptor,Q=(e,r,t,o)=>{for(var n=o>1?void 0:o?K(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&&J(r,t,n),n},A=(e,r)=>(t,o)=>r(t,o,e);let h=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=[$,x,V];for(let c=0;c<i.length;c++){const l=i[c](n,s,r);if(l!==null)return l}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}`)}};h=Q([u.OnLifecycle(u.LifecycleStages.Ready,h),A(0,u.ICommandService),A(1,u.Inject(exports.SheetsSortService))],h);var X=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,Z=(e,r,t,o)=>{for(var n=o>1?void 0:o?Y(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&&X(r,t,n),n},k=(e,r)=>(t,o)=>r(t,o,e);const ee="UNIVER_SHEETS_SORT_PLUGIN";var v;exports.UniverSheetsSortPlugin=(v=class extends u.Plugin{constructor(r,t){super(),this._injector=t}onStarting(r){[[h],[exports.SheetsSortService]].forEach(t=>r.add(t))}},d(v,"type",u.UniverInstanceType.UNIVER_SHEET),d(v,"pluginName",ee),v);exports.UniverSheetsSortPlugin=Z([k(1,u.Inject(u.Injector))],exports.UniverSheetsSortPlugin);exports.SortRangeCommand=I;exports.SortType=f;
1
+ "use strict";var M=Object.defineProperty;var j=(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)=>j(e,typeof r!="symbol"?r+"":r,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),C=require("@wendellhu/redi"),I=require("@univerjs/sheets"),$=require("@univerjs/engine-formula");var f=(e=>(e.DESC="desc",e.ASC="asc",e))(f||{});const A=e=>e.replace(/-/gi,"").replace(/'/gi,""),V=(e,r)=>{const t=e===null||e==="",o=r===null||r==="";return t&&o?0:t?1:o?-1:null},x=(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},L=(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 q=Object.defineProperty,B=Object.getOwnPropertyDescriptor,G=(e,r,t,o)=>{for(var n=o>1?void 0:o?B(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},R=(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:H(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 S=i[Number(a)];for(const p in S){const g=S[Number(p)];if(g&&c.Rectangle.intersects(s,g))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}=I.getSheetCommandTarget(this._univerInstanceService)||{};this._commandService.executeCommand(w.id,{orderRules:t.orderRules,range:t.range,hasTitle:(l=t.hasTitle)!=null?l:!1,unitId:o||s,subUnitId:n||i})}};exports.SheetsSortService=G([c.OnLifecycle(c.LifecycleStages.Ready,exports.SheetsSortService),R(0,c.IUniverInstanceService),R(1,c.ICommandService),R(2,C.Inject($.FormulaDataModel))],exports.SheetsSortService);function H(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,S=u.endColumn-u.startColumn+1;if(n===null&&s===null)n=a,s=S;else if(a!==n||S!==s)return!1;l+=a*S}return l===i}const w={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}=I.getSheetCommandTarget(u,r)||{};if(!a)return!1;const S=a.getMergeData().filter(m=>c.Rectangle.contains(t,m)),p=S.map(m=>m.startRow),{startRow:g,endRow:P}=t,N=n?g+1:g,_=[],b=[];for(let m=N;m<=P;m++)a.getRowFiltered(m)||a.getRowRawVisible(m)!==!1&&(S.length&&!p.includes(m)||(_.push({index:m,value:W(a,m,o)}),b.push(m)));const O=l.getAllCompareFns();_.sort(J(o,z(O)));const y={};_.forEach(({index:m,value:ne},E)=>{y[b[E]]=m});const U={id:I.ReorderRangeCommand.id,params:{unitId:s,subUnitId:i,range:t,order:y}},T=e.get(c.ICommandService);return c.sequenceExecute([U],T).result}};function W(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 K=Object.defineProperty,Q=Object.getOwnPropertyDescriptor,X=(e,r,t,o)=>{for(var n=o>1?void 0:o?Q(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},D=(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(){[w].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_registerCompareFns(){const e=(r,t,o)=>{const n=this._getCommonValue(t),s=this._getCommonValue(o),i=[V,L,x];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=X([c.OnLifecycle(c.LifecycleStages.Ready,h),D(0,c.ICommandService),D(1,C.Inject(exports.SheetsSortService))],h);var Y=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,k=(e,r,t,o)=>{for(var n=o>1?void 0:o?Z(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&&Y(r,t,n),n},ee=(e,r)=>(t,o)=>r(t,o,e);const te="UNIVER_SHEETS_SORT_PLUGIN";var v;exports.UniverSheetsSortPlugin=(v=class extends c.Plugin{constructor(r,t){super(),this._injector=t}onStarting(r){[[h],[exports.SheetsSortService]].forEach(t=>r.add(t))}},d(v,"type",c.UniverInstanceType.UNIVER_SHEET),d(v,"pluginName",te),v);exports.UniverSheetsSortPlugin=k([ee(1,C.Inject(C.Injector))],exports.UniverSheetsSortPlugin);exports.SortRangeCommand=w;exports.SortType=f;
package/lib/es/index.js CHANGED
@@ -1,86 +1,87 @@
1
1
  var q = Object.defineProperty;
2
- var H = (e, t, n) => t in e ? q(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
- var v = (e, t, n) => H(e, typeof t != "symbol" ? t + "" : t, n);
4
- import { OnLifecycle as O, LifecycleStages as P, Inject as w, Disposable as E, Rectangle as R, IUniverInstanceService as U, ICommandService as I, CommandType as W, sequenceExecute as z, CellValueType as C, Plugin as J, UniverInstanceType as K, Injector as Q } from "@univerjs/core";
2
+ var H = (e, r, n) => r in e ? q(e, r, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[r] = n;
3
+ var v = (e, r, n) => H(e, typeof r != "symbol" ? r + "" : r, n);
4
+ import { OnLifecycle as O, LifecycleStages as P, Disposable as E, Rectangle as R, IUniverInstanceService as U, ICommandService as w, CommandType as W, sequenceExecute as z, CellValueType as C, Plugin as J, UniverInstanceType as K } from "@univerjs/core";
5
+ import { Inject as I, Injector as Q } from "@wendellhu/redi";
5
6
  import { getSheetCommandTarget as M, ReorderRangeCommand as X } from "@univerjs/sheets";
6
7
  import { FormulaDataModel as Y } from "@univerjs/engine-formula";
7
8
  var m = /* @__PURE__ */ ((e) => (e.DESC = "desc", e.ASC = "asc", e))(m || {});
8
- const F = (e) => e.replace(/-/gi, "").replace(/'/gi, ""), Z = (e, t) => {
9
- const n = e === null || e === "", o = t === null || t === "";
9
+ const F = (e) => e.replace(/-/gi, "").replace(/'/gi, ""), Z = (e, r) => {
10
+ const n = e === null || e === "", o = r === null || r === "";
10
11
  return n && o ? 0 : n ? 1 : o ? -1 : null;
11
- }, k = (e, t, n) => {
12
- const o = typeof e == "number", r = typeof t == "number";
13
- return o && r ? e < t ? n === m.ASC ? -1 : 1 : e > t ? n === m.ASC ? 1 : -1 : 0 : o ? n === m.ASC ? 1 : -1 : r ? n === m.ASC ? -1 : 1 : null;
14
- }, ee = (e, t, n) => {
15
- const o = typeof e == "string", r = typeof t == "string";
16
- if (o && (e = F(e.toLocaleLowerCase())), r && (t = F(t.toLocaleLowerCase())), !o && !r)
12
+ }, k = (e, r, n) => {
13
+ const o = typeof e == "number", t = typeof r == "number";
14
+ return o && t ? e < r ? n === m.ASC ? -1 : 1 : e > r ? n === m.ASC ? 1 : -1 : 0 : o ? n === m.ASC ? 1 : -1 : t ? n === m.ASC ? -1 : 1 : null;
15
+ }, ee = (e, r, n) => {
16
+ const o = typeof e == "string", t = typeof r == "string";
17
+ if (o && (e = F(e.toLocaleLowerCase())), t && (r = F(r.toLocaleLowerCase())), !o && !t)
17
18
  return null;
18
- if (o && r) {
19
- const s = e, u = t;
19
+ if (o && t) {
20
+ const s = e, u = r;
20
21
  return s < u ? n === m.ASC ? -1 : 1 : s > u ? n === m.ASC ? 1 : -1 : 0;
21
22
  }
22
- return o ? n === m.ASC ? 1 : -1 : r ? n === m.ASC ? -1 : 1 : null;
23
+ return o ? n === m.ASC ? 1 : -1 : t ? n === m.ASC ? -1 : 1 : null;
23
24
  }, T = (e) => !e || Object.keys(e).length === 0 || (e == null ? void 0 : e.v) == null && (e == null ? void 0 : e.p) == null;
24
- var te = Object.defineProperty, re = Object.getOwnPropertyDescriptor, ne = (e, t, n, o) => {
25
- for (var r = o > 1 ? void 0 : o ? re(t, n) : t, s = e.length - 1, u; s >= 0; s--)
26
- (u = e[s]) && (r = (o ? u(t, n, r) : u(r)) || r);
27
- return o && r && te(t, n, r), r;
28
- }, _ = (e, t) => (n, o) => t(n, o, e);
25
+ var re = Object.defineProperty, te = Object.getOwnPropertyDescriptor, ne = (e, r, n, o) => {
26
+ for (var t = o > 1 ? void 0 : o ? te(r, n) : r, s = e.length - 1, u; s >= 0; s--)
27
+ (u = e[s]) && (t = (o ? u(r, n, t) : u(t)) || t);
28
+ return o && t && re(r, n, t), t;
29
+ }, _ = (e, r) => (n, o) => r(n, o, e);
29
30
  let d = class extends E {
30
- constructor(t, n, o) {
31
+ constructor(r, n, o) {
31
32
  super();
32
33
  v(this, "_compareFns", []);
33
- this._univerInstanceService = t, this._commandService = n, this._formulaDataModel = o;
34
+ this._univerInstanceService = r, this._commandService = n, this._formulaDataModel = o;
34
35
  }
35
- mergeCheck(t) {
36
+ mergeCheck(r) {
36
37
  var l;
37
- const { unitId: n, subUnitId: o, range: r } = t, s = (l = this._univerInstanceService.getUnit(n)) == null ? void 0 : l.getSheetBySheetId(o);
38
+ const { unitId: n, subUnitId: o, range: t } = r, s = (l = this._univerInstanceService.getUnit(n)) == null ? void 0 : l.getSheetBySheetId(o);
38
39
  if (!s)
39
40
  return !1;
40
- const u = s.getMergeData().filter((i) => R.contains(r, i));
41
- return u.length === 0 ? !0 : oe(r, u);
41
+ const u = s.getMergeData().filter((i) => R.contains(t, i));
42
+ return u.length === 0 ? !0 : oe(t, u);
42
43
  }
43
- emptyCheck(t) {
44
+ emptyCheck(r) {
44
45
  var u;
45
- const { unitId: n, subUnitId: o, range: r } = t, s = (u = this._univerInstanceService.getUnit(n)) == null ? void 0 : u.getSheetBySheetId(o);
46
+ const { unitId: n, subUnitId: o, range: t } = r, s = (u = this._univerInstanceService.getUnit(n)) == null ? void 0 : u.getSheetBySheetId(o);
46
47
  if (!s)
47
48
  return !1;
48
- for (let l = r.startRow; l <= r.endRow; l++)
49
- for (let i = r.startColumn; i <= r.endColumn; i++)
49
+ for (let l = t.startRow; l <= t.endRow; l++)
50
+ for (let i = t.startColumn; i <= t.endColumn; i++)
50
51
  if (!T(s.getCellRaw(l, i)))
51
52
  return !0;
52
53
  return !1;
53
54
  }
54
- singleCheck(t) {
55
- return t.range.startRow !== t.range.endRow;
55
+ singleCheck(r) {
56
+ return r.range.startRow !== r.range.endRow;
56
57
  }
57
- formulaCheck(t) {
58
+ formulaCheck(r) {
58
59
  var u, l;
59
- const { unitId: n, subUnitId: o, range: r } = t, s = (l = (u = this._formulaDataModel.getArrayFormulaRange()) == null ? void 0 : u[n]) == null ? void 0 : l[o];
60
+ const { unitId: n, subUnitId: o, range: t } = r, s = (l = (u = this._formulaDataModel.getArrayFormulaRange()) == null ? void 0 : u[n]) == null ? void 0 : l[o];
60
61
  for (const i in s) {
61
62
  const a = s[Number(i)];
62
63
  for (const f in a) {
63
64
  const g = a[Number(f)];
64
- if (g && R.intersects(r, g))
65
+ if (g && R.intersects(t, g))
65
66
  return !1;
66
67
  }
67
68
  }
68
69
  return !0;
69
70
  }
70
- registerCompareFn(t) {
71
- this._compareFns.unshift(t);
71
+ registerCompareFn(r) {
72
+ this._compareFns.unshift(r);
72
73
  }
73
74
  getAllCompareFns() {
74
75
  return this._compareFns;
75
76
  }
76
- applySort(t, n, o) {
77
+ applySort(r, n, o) {
77
78
  var u;
78
- const { unitId: r, subUnitId: s } = M(this._univerInstanceService) || {};
79
+ const { unitId: t, subUnitId: s } = M(this._univerInstanceService) || {};
79
80
  this._commandService.executeCommand($.id, {
80
- orderRules: t.orderRules,
81
- range: t.range,
82
- hasTitle: (u = t.hasTitle) != null ? u : !1,
83
- unitId: n || r,
81
+ orderRules: r.orderRules,
82
+ range: r.range,
83
+ hasTitle: (u = r.hasTitle) != null ? u : !1,
84
+ unitId: n || t,
84
85
  subUnitId: o || s
85
86
  });
86
87
  }
@@ -88,20 +89,20 @@ let d = class extends E {
88
89
  d = ne([
89
90
  O(P.Ready, d),
90
91
  _(0, U),
91
- _(1, I),
92
- _(2, w(Y))
92
+ _(1, w),
93
+ _(2, I(Y))
93
94
  ], d);
94
- function oe(e, t) {
95
+ function oe(e, r) {
95
96
  const n = e.endRow - e.startRow + 1, o = e.endColumn - e.startColumn + 1;
96
- let r = null, s = null;
97
+ let t = null, s = null;
97
98
  const u = n * o;
98
99
  let l = 0;
99
- for (const i of t)
100
+ for (const i of r)
100
101
  if (i.startRow >= e.startRow && i.endRow <= e.endRow && i.startColumn >= e.startColumn && i.endColumn <= e.endColumn) {
101
102
  const a = i.endRow - i.startRow + 1, f = i.endColumn - i.startColumn + 1;
102
- if (r === null && s === null)
103
- r = a, s = f;
104
- else if (a !== r || f !== s)
103
+ if (t === null && s === null)
104
+ t = a, s = f;
105
+ else if (a !== t || f !== s)
105
106
  return !1;
106
107
  l += a * f;
107
108
  }
@@ -110,11 +111,11 @@ function oe(e, t) {
110
111
  const $ = {
111
112
  id: "sheet.command.sort-range",
112
113
  type: W.COMMAND,
113
- handler: (e, t) => {
114
- const { range: n, orderRules: o, hasTitle: r, unitId: s, subUnitId: u } = t, l = e.get(d), i = e.get(U), { worksheet: a } = M(i, t) || {};
114
+ handler: (e, r) => {
115
+ const { range: n, orderRules: o, hasTitle: t, unitId: s, subUnitId: u } = r, l = e.get(d), i = e.get(U), { worksheet: a } = M(i, r) || {};
115
116
  if (!a)
116
117
  return !1;
117
- const f = a.getMergeData().filter((c) => R.contains(n, c)), g = f.map((c) => c.startRow), { startRow: b, endRow: x } = n, j = r ? b + 1 : b, S = [], A = [];
118
+ const f = a.getMergeData().filter((c) => R.contains(n, c)), g = f.map((c) => c.startRow), { startRow: b, endRow: x } = n, j = t ? b + 1 : b, S = [], A = [];
118
119
  for (let c = j; c <= x; c++)
119
120
  a.getRowFiltered(c) || a.getRowRawVisible(c) !== !1 && (f.length && !g.includes(c) || (S.push({
120
121
  index: c,
@@ -134,45 +135,45 @@ const $ = {
134
135
  range: n,
135
136
  order: D
136
137
  }
137
- }, B = e.get(I);
138
+ }, B = e.get(w);
138
139
  return z([L], B).result;
139
140
  }
140
141
  };
141
- function se(e, t, n) {
142
+ function se(e, r, n) {
142
143
  const o = [];
143
- return n.forEach(({ colIndex: r }) => {
144
- o.push(e.getCellRaw(t, r));
144
+ return n.forEach(({ colIndex: t }) => {
145
+ o.push(e.getCellRaw(r, t));
145
146
  }), o;
146
147
  }
147
148
  function ue(e) {
148
- return (t, n, o) => {
149
- for (let r = 0; r < e.length; r++) {
150
- const s = e[r](t, n, o);
149
+ return (r, n, o) => {
150
+ for (let t = 0; t < e.length; t++) {
151
+ const s = e[t](r, n, o);
151
152
  if (s != null)
152
153
  return s;
153
154
  }
154
155
  return 0;
155
156
  };
156
157
  }
157
- function ie(e, t) {
158
+ function ie(e, r) {
158
159
  return function(n, o) {
159
- let r = null;
160
+ let t = null;
160
161
  for (let s = 0; s < e.length; s++) {
161
162
  const u = n.value[s], l = o.value[s];
162
- if (r = t(e[s].type, u, l), r !== 0 && r !== null && r !== void 0)
163
- return r;
163
+ if (t = r(e[s].type, u, l), t !== 0 && t !== null && t !== void 0)
164
+ return t;
164
165
  }
165
166
  return 0;
166
167
  };
167
168
  }
168
- var le = Object.defineProperty, ce = Object.getOwnPropertyDescriptor, ae = (e, t, n, o) => {
169
- for (var r = o > 1 ? void 0 : o ? ce(t, n) : t, s = e.length - 1, u; s >= 0; s--)
170
- (u = e[s]) && (r = (o ? u(t, n, r) : u(r)) || r);
171
- return o && r && le(t, n, r), r;
172
- }, N = (e, t) => (n, o) => t(n, o, e);
169
+ var le = Object.defineProperty, ce = Object.getOwnPropertyDescriptor, ae = (e, r, n, o) => {
170
+ for (var t = o > 1 ? void 0 : o ? ce(r, n) : r, s = e.length - 1, u; s >= 0; s--)
171
+ (u = e[s]) && (t = (o ? u(r, n, t) : u(t)) || t);
172
+ return o && t && le(r, n, t), t;
173
+ }, N = (e, r) => (n, o) => r(n, o, e);
173
174
  let p = class extends E {
174
- constructor(e, t) {
175
- super(), this._commandService = e, this._sortService = t, this._initCommands(), this._registerCompareFns();
175
+ constructor(e, r) {
176
+ super(), this._commandService = e, this._sortService = r, this._initCommands(), this._registerCompareFns();
176
177
  }
177
178
  _initCommands() {
178
179
  [
@@ -180,14 +181,14 @@ let p = class extends E {
180
181
  ].forEach((e) => this.disposeWithMe(this._commandService.registerCommand(e)));
181
182
  }
182
183
  _registerCompareFns() {
183
- const e = (t, n, o) => {
184
- const r = this._getCommonValue(n), s = this._getCommonValue(o), u = [
184
+ const e = (r, n, o) => {
185
+ const t = this._getCommonValue(n), s = this._getCommonValue(o), u = [
185
186
  Z,
186
187
  ee,
187
188
  k
188
189
  ];
189
190
  for (let l = 0; l < u.length; l++) {
190
- const i = u[l](r, s, t);
191
+ const i = u[l](t, s, r);
191
192
  if (i !== null)
192
193
  return i;
193
194
  }
@@ -199,35 +200,35 @@ let p = class extends E {
199
200
  var n, o;
200
201
  if (T(e))
201
202
  return null;
202
- const t = (o = (n = e == null ? void 0 : e.p) == null ? void 0 : n.body) == null ? void 0 : o.dataStream;
203
- return t || ((e == null ? void 0 : e.t) === C.NUMBER ? Number.parseFloat(`${e.v}`) : (e == null ? void 0 : e.t) === C.STRING ? typeof e.v == "number" ? e.v : `${e.v}` : (e == null ? void 0 : e.t) === C.BOOLEAN ? `${e.v}` : (e == null ? void 0 : e.t) === C.FORCE_STRING ? Number.parseFloat(`${e.v}`) : `${e == null ? void 0 : e.v}`);
203
+ const r = (o = (n = e == null ? void 0 : e.p) == null ? void 0 : n.body) == null ? void 0 : o.dataStream;
204
+ return r || ((e == null ? void 0 : e.t) === C.NUMBER ? Number.parseFloat(`${e.v}`) : (e == null ? void 0 : e.t) === C.STRING ? typeof e.v == "number" ? e.v : `${e.v}` : (e == null ? void 0 : e.t) === C.BOOLEAN ? `${e.v}` : (e == null ? void 0 : e.t) === C.FORCE_STRING ? Number.parseFloat(`${e.v}`) : `${e == null ? void 0 : e.v}`);
204
205
  }
205
206
  };
206
207
  p = ae([
207
208
  O(P.Ready, p),
208
- N(0, I),
209
- N(1, w(d))
209
+ N(0, w),
210
+ N(1, I(d))
210
211
  ], p);
211
- var me = Object.defineProperty, fe = Object.getOwnPropertyDescriptor, de = (e, t, n, o) => {
212
- for (var r = o > 1 ? void 0 : o ? fe(t, n) : t, s = e.length - 1, u; s >= 0; s--)
213
- (u = e[s]) && (r = (o ? u(t, n, r) : u(r)) || r);
214
- return o && r && me(t, n, r), r;
215
- }, ge = (e, t) => (n, o) => t(n, o, e);
212
+ var me = Object.defineProperty, fe = Object.getOwnPropertyDescriptor, de = (e, r, n, o) => {
213
+ for (var t = o > 1 ? void 0 : o ? fe(r, n) : r, s = e.length - 1, u; s >= 0; s--)
214
+ (u = e[s]) && (t = (o ? u(r, n, t) : u(t)) || t);
215
+ return o && t && me(r, n, t), t;
216
+ }, ge = (e, r) => (n, o) => r(n, o, e);
216
217
  const ve = "UNIVER_SHEETS_SORT_PLUGIN";
217
218
  var h;
218
219
  let y = (h = class extends J {
219
- constructor(e, t) {
220
- super(), this._injector = t;
220
+ constructor(e, r) {
221
+ super(), this._injector = r;
221
222
  }
222
223
  onStarting(e) {
223
224
  [
224
225
  [p],
225
226
  [d]
226
- ].forEach((t) => e.add(t));
227
+ ].forEach((r) => e.add(r));
227
228
  }
228
229
  }, v(h, "type", K.UNIVER_SHEET), v(h, "pluginName", ve), h);
229
230
  y = de([
230
- ge(1, w(Q))
231
+ ge(1, I(Q))
231
232
  ], y);
232
233
  export {
233
234
  d as SheetsSortService,
@@ -1,4 +1,5 @@
1
- import { Dependency, IWorkbookData, Workbook, Injector, Univer } from '@univerjs/core';
1
+ import { IWorkbookData, Univer, Workbook } from '@univerjs/core';
2
+ import { Dependency, Injector } from '@wendellhu/redi';
2
3
 
3
4
  export interface ITestBed {
4
5
  univer: Univer;
@@ -1,4 +1,5 @@
1
- import { Injector, Plugin, UniverInstanceType } from '@univerjs/core';
1
+ import { Plugin, UniverInstanceType } from '@univerjs/core';
2
+ import { Injector } from '@wendellhu/redi';
2
3
 
3
4
  export declare class UniverSheetsSortPlugin extends Plugin {
4
5
  protected readonly _injector: Injector;
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
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,v,F){"use strict";var ee=Object.defineProperty;var te=(l,i,v)=>i in l?ee(l,i,{enumerable:!0,configurable:!0,writable:!0,value:v}):l[i]=v;var _=(l,i,v)=>te(l,typeof i!="symbol"?i+"":i,v);var C;var S=(e=>(e.DESC="desc",e.ASC="asc",e))(S||{});const y=e=>e.replace(/-/gi,"").replace(/'/gi,""),P=(e,s)=>{const t=e===null||e==="",n=s===null||s==="";return t&&n?0:t?1:n?-1:null},N=(e,s,t)=>{const n=typeof e=="number",r=typeof s=="number";return n&&r?e<s?t===S.ASC?-1:1:e>s?t===S.ASC?1:-1:0:n?t===S.ASC?1:-1:r?t===S.ASC?-1:1:null},O=(e,s,t)=>{const n=typeof e=="string",r=typeof s=="string";if(n&&(e=y(e.toLocaleLowerCase())),r&&(s=y(s.toLocaleLowerCase())),!n&&!r)return null;if(n&&r){const o=e,u=s;return o<u?t===S.ASC?-1:1:o>u?t===S.ASC?1:-1:0}return n?t===S.ASC?1:-1:r?t===S.ASC?-1:1:null},b=e=>!e||Object.keys(e).length===0||(e==null?void 0:e.v)==null&&(e==null?void 0:e.p)==null;var T=Object.defineProperty,j=Object.getOwnPropertyDescriptor,E=(e,s,t,n)=>{for(var r=n>1?void 0:n?j(s,t):s,o=e.length-1,u;o>=0;o--)(u=e[o])&&(r=(n?u(s,t,r):u(r))||r);return n&&r&&T(s,t,r),r},p=(e,s)=>(t,n)=>s(t,n,e);l.SheetsSortService=class extends i.Disposable{constructor(t,n,r){super();_(this,"_compareFns",[]);this._univerInstanceService=t,this._commandService=n,this._formulaDataModel=r}mergeCheck(t){var a;const{unitId:n,subUnitId:r,range:o}=t,u=(a=this._univerInstanceService.getUnit(n))==null?void 0:a.getSheetBySheetId(r);if(!u)return!1;const c=u.getMergeData().filter(f=>i.Rectangle.contains(o,f));return c.length===0?!0:M(o,c)}emptyCheck(t){var c;const{unitId:n,subUnitId:r,range:o}=t,u=(c=this._univerInstanceService.getUnit(n))==null?void 0:c.getSheetBySheetId(r);if(!u)return!1;for(let a=o.startRow;a<=o.endRow;a++)for(let f=o.startColumn;f<=o.endColumn;f++)if(!b(u.getCellRaw(a,f)))return!0;return!1}singleCheck(t){return t.range.startRow!==t.range.endRow}formulaCheck(t){var c,a;const{unitId:n,subUnitId:r,range:o}=t,u=(a=(c=this._formulaDataModel.getArrayFormulaRange())==null?void 0:c[n])==null?void 0:a[r];for(const f in u){const d=u[Number(f)];for(const I in d){const g=d[Number(I)];if(g&&i.Rectangle.intersects(o,g))return!1}}return!0}registerCompareFn(t){this._compareFns.unshift(t)}getAllCompareFns(){return this._compareFns}applySort(t,n,r){var c;const{unitId:o,subUnitId:u}=v.getSheetCommandTarget(this._univerInstanceService)||{};this._commandService.executeCommand(R.id,{orderRules:t.orderRules,range:t.range,hasTitle:(c=t.hasTitle)!=null?c:!1,unitId:n||o,subUnitId:r||u})}},l.SheetsSortService=E([i.OnLifecycle(i.LifecycleStages.Ready,l.SheetsSortService),p(0,i.IUniverInstanceService),p(1,i.ICommandService),p(2,i.Inject(F.FormulaDataModel))],l.SheetsSortService);function M(e,s){const t=e.endRow-e.startRow+1,n=e.endColumn-e.startColumn+1;let r=null,o=null;const u=t*n;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,d=a.endColumn-a.startColumn+1;if(r===null&&o===null)r=f,o=d;else if(f!==r||d!==o)return!1;c+=f*d}return c===u}const R={id:"sheet.command.sort-range",type:i.CommandType.COMMAND,handler:(e,s)=>{const{range:t,orderRules:n,hasTitle:r,unitId:o,subUnitId:u}=s,c=e.get(l.SheetsSortService),a=e.get(i.IUniverInstanceService),{worksheet:f}=v.getSheetCommandTarget(a,s)||{};if(!f)return!1;const d=f.getMergeData().filter(m=>i.Rectangle.contains(t,m)),I=d.map(m=>m.startRow),{startRow:g,endRow:K}=t,Q=r?g+1:g,w=[],U=[];for(let m=Q;m<=K;m++)f.getRowFiltered(m)||f.getRowRawVisible(m)!==!1&&(d.length&&!I.includes(m)||(w.push({index:m,value:$(f,m,n)}),U.push(m)));const X=c.getAllCompareFns();w.sort(L(n,V(X)));const D={};w.forEach(({index:m,value:ne},k)=>{D[U[k]]=m});const Y={id:v.ReorderRangeCommand.id,params:{unitId:o,subUnitId:u,range:t,order:D}},Z=e.get(i.ICommandService);return i.sequenceExecute([Y],Z).result}};function $(e,s,t){const n=[];return t.forEach(({colIndex:r})=>{n.push(e.getCellRaw(s,r))}),n}function V(e){return(s,t,n)=>{for(let r=0;r<e.length;r++){const o=e[r](s,t,n);if(o!=null)return o}return 0}}function L(e,s){return function(t,n){let r=null;for(let o=0;o<e.length;o++){const u=t.value[o],c=n.value[o];if(r=s(e[o].type,u,c),r!==0&&r!==null&&r!==void 0)return r}return 0}}var q=Object.defineProperty,B=Object.getOwnPropertyDescriptor,G=(e,s,t,n)=>{for(var r=n>1?void 0:n?B(s,t):s,o=e.length-1,u;o>=0;o--)(u=e[o])&&(r=(n?u(s,t,r):u(r))||r);return n&&r&&q(s,t,r),r},A=(e,s)=>(t,n)=>s(t,n,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,n)=>{const r=this._getCommonValue(t),o=this._getCommonValue(n),u=[P,O,N];for(let c=0;c<u.length;c++){const a=u[c](r,o,s);if(a!==null)return a}return null};this._sortService.registerCompareFn(e)}_getCommonValue(e){var t,n;if(b(e))return null;const s=(n=(t=e==null?void 0:e.p)==null?void 0:t.body)==null?void 0:n.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=G([i.OnLifecycle(i.LifecycleStages.Ready,h),A(0,i.ICommandService),A(1,i.Inject(l.SheetsSortService))],h);var H=Object.defineProperty,x=Object.getOwnPropertyDescriptor,W=(e,s,t,n)=>{for(var r=n>1?void 0:n?x(s,t):s,o=e.length-1,u;o>=0;o--)(u=e[o])&&(r=(n?u(s,t,r):u(r))||r);return n&&r&&H(s,t,r),r},z=(e,s)=>(t,n)=>s(t,n,e);const J="UNIVER_SHEETS_SORT_PLUGIN";l.UniverSheetsSortPlugin=(C=class extends i.Plugin{constructor(s,t){super(),this._injector=t}onStarting(s){[[h],[l.SheetsSortService]].forEach(t=>s.add(t))}},_(C,"type",i.UniverInstanceType.UNIVER_SHEET),_(C,"pluginName",J),C),l.UniverSheetsSortPlugin=W([z(1,i.Inject(i.Injector))],l.UniverSheetsSortPlugin),l.SortRangeCommand=R,l.SortType=S,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
1
+ (function(l,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/sheets"),require("@univerjs/engine-formula")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/sheets","@univerjs/engine-formula"],i):(l=typeof globalThis<"u"?globalThis:l||self,i(l.UniverSheetsSort={},l.UniverCore,l["@wendellhu/redi"],l.UniverSheets,l.UniverEngineFormula))})(this,function(l,i,S,p,P){"use strict";var te=Object.defineProperty;var re=(l,i,S)=>i in l?te(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;var d=(e=>(e.DESC="desc",e.ASC="asc",e))(d||{});const b=e=>e.replace(/-/gi,"").replace(/'/gi,""),N=(e,s)=>{const t=e===null||e==="",n=s===null||s==="";return t&&n?0:t?1:n?-1:null},O=(e,s,t)=>{const n=typeof e=="number",r=typeof s=="number";return n&&r?e<s?t===d.ASC?-1:1:e>s?t===d.ASC?1:-1:0:n?t===d.ASC?1:-1:r?t===d.ASC?-1:1:null},T=(e,s,t)=>{const n=typeof e=="string",r=typeof s=="string";if(n&&(e=b(e.toLocaleLowerCase())),r&&(s=b(s.toLocaleLowerCase())),!n&&!r)return null;if(n&&r){const o=e,u=s;return o<u?t===d.ASC?-1:1:o>u?t===d.ASC?1:-1:0}return n?t===d.ASC?1:-1:r?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 j=Object.defineProperty,E=Object.getOwnPropertyDescriptor,M=(e,s,t,n)=>{for(var r=n>1?void 0:n?E(s,t):s,o=e.length-1,u;o>=0;o--)(u=e[o])&&(r=(n?u(s,t,r):u(r))||r);return n&&r&&j(s,t,r),r},R=(e,s)=>(t,n)=>s(t,n,e);l.SheetsSortService=class extends i.Disposable{constructor(t,n,r){super();_(this,"_compareFns",[]);this._univerInstanceService=t,this._commandService=n,this._formulaDataModel=r}mergeCheck(t){var a;const{unitId:n,subUnitId:r,range:o}=t,u=(a=this._univerInstanceService.getUnit(n))==null?void 0:a.getSheetBySheetId(r);if(!u)return!1;const c=u.getMergeData().filter(f=>i.Rectangle.contains(o,f));return c.length===0?!0:$(o,c)}emptyCheck(t){var c;const{unitId:n,subUnitId:r,range:o}=t,u=(c=this._univerInstanceService.getUnit(n))==null?void 0:c.getSheetBySheetId(r);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:n,subUnitId:r,range:o}=t,u=(a=(c=this._formulaDataModel.getArrayFormulaRange())==null?void 0:c[n])==null?void 0:a[r];for(const f in u){const v=u[Number(f)];for(const I in v){const g=v[Number(I)];if(g&&i.Rectangle.intersects(o,g))return!1}}return!0}registerCompareFn(t){this._compareFns.unshift(t)}getAllCompareFns(){return this._compareFns}applySort(t,n,r){var c;const{unitId:o,subUnitId:u}=p.getSheetCommandTarget(this._univerInstanceService)||{};this._commandService.executeCommand(w.id,{orderRules:t.orderRules,range:t.range,hasTitle:(c=t.hasTitle)!=null?c:!1,unitId:n||o,subUnitId:r||u})}},l.SheetsSortService=M([i.OnLifecycle(i.LifecycleStages.Ready,l.SheetsSortService),R(0,i.IUniverInstanceService),R(1,i.ICommandService),R(2,S.Inject(P.FormulaDataModel))],l.SheetsSortService);function $(e,s){const t=e.endRow-e.startRow+1,n=e.endColumn-e.startColumn+1;let r=null,o=null;const u=t*n;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,v=a.endColumn-a.startColumn+1;if(r===null&&o===null)r=f,o=v;else if(f!==r||v!==o)return!1;c+=f*v}return c===u}const w={id:"sheet.command.sort-range",type:i.CommandType.COMMAND,handler:(e,s)=>{const{range:t,orderRules:n,hasTitle:r,unitId:o,subUnitId:u}=s,c=e.get(l.SheetsSortService),a=e.get(i.IUniverInstanceService),{worksheet:f}=p.getSheetCommandTarget(a,s)||{};if(!f)return!1;const v=f.getMergeData().filter(m=>i.Rectangle.contains(t,m)),I=v.map(m=>m.startRow),{startRow:g,endRow:Q}=t,X=r?g+1:g,y=[],D=[];for(let m=X;m<=Q;m++)f.getRowFiltered(m)||f.getRowRawVisible(m)!==!1&&(v.length&&!I.includes(m)||(y.push({index:m,value:V(f,m,n)}),D.push(m)));const Y=c.getAllCompareFns();y.sort(q(n,L(Y)));const F={};y.forEach(({index:m,value:se},ee)=>{F[D[ee]]=m});const Z={id:p.ReorderRangeCommand.id,params:{unitId:o,subUnitId:u,range:t,order:F}},k=e.get(i.ICommandService);return i.sequenceExecute([Z],k).result}};function V(e,s,t){const n=[];return t.forEach(({colIndex:r})=>{n.push(e.getCellRaw(s,r))}),n}function L(e){return(s,t,n)=>{for(let r=0;r<e.length;r++){const o=e[r](s,t,n);if(o!=null)return o}return 0}}function q(e,s){return function(t,n){let r=null;for(let o=0;o<e.length;o++){const u=t.value[o],c=n.value[o];if(r=s(e[o].type,u,c),r!==0&&r!==null&&r!==void 0)return r}return 0}}var B=Object.defineProperty,G=Object.getOwnPropertyDescriptor,H=(e,s,t,n)=>{for(var r=n>1?void 0:n?G(s,t):s,o=e.length-1,u;o>=0;o--)(u=e[o])&&(r=(n?u(s,t,r):u(r))||r);return n&&r&&B(s,t,r),r},U=(e,s)=>(t,n)=>s(t,n,e);let h=class extends i.Disposable{constructor(e,s){super(),this._commandService=e,this._sortService=s,this._initCommands(),this._registerCompareFns()}_initCommands(){[w].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_registerCompareFns(){const e=(s,t,n)=>{const r=this._getCommonValue(t),o=this._getCommonValue(n),u=[N,T,O];for(let c=0;c<u.length;c++){const a=u[c](r,o,s);if(a!==null)return a}return null};this._sortService.registerCompareFn(e)}_getCommonValue(e){var t,n;if(A(e))return null;const s=(n=(t=e==null?void 0:e.p)==null?void 0:t.body)==null?void 0:n.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=H([i.OnLifecycle(i.LifecycleStages.Ready,h),U(0,i.ICommandService),U(1,S.Inject(l.SheetsSortService))],h);var x=Object.defineProperty,W=Object.getOwnPropertyDescriptor,z=(e,s,t,n)=>{for(var r=n>1?void 0:n?W(s,t):s,o=e.length-1,u;o>=0;o--)(u=e[o])&&(r=(n?u(s,t,r):u(r))||r);return n&&r&&x(s,t,r),r},J=(e,s)=>(t,n)=>s(t,n,e);const K="UNIVER_SHEETS_SORT_PLUGIN";l.UniverSheetsSortPlugin=(C=class extends i.Plugin{constructor(s,t){super(),this._injector=t}onStarting(s){[[h],[l.SheetsSortService]].forEach(t=>s.add(t))}},_(C,"type",i.UniverInstanceType.UNIVER_SHEET),_(C,"pluginName",K),C),l.UniverSheetsSortPlugin=z([J(1,S.Inject(S.Injector))],l.UniverSheetsSortPlugin),l.SortRangeCommand=w,l.SortType=d,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-sort",
3
- "version": "0.2.4-alpha.0",
3
+ "version": "0.2.4",
4
4
  "private": false,
5
5
  "description": "A library for sorting data in Univer Sheet",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -45,19 +45,21 @@
45
45
  "lib"
46
46
  ],
47
47
  "peerDependencies": {
48
- "@univerjs/core": "0.2.4-alpha.0",
49
- "@univerjs/engine-formula": "0.2.4-alpha.0",
50
- "@univerjs/sheets": "0.2.4-alpha.0"
48
+ "@wendellhu/redi": "0.16.0",
49
+ "@univerjs/core": "0.2.4",
50
+ "@univerjs/engine-formula": "0.2.4",
51
+ "@univerjs/sheets": "0.2.4"
51
52
  },
52
53
  "devDependencies": {
54
+ "@wendellhu/redi": "0.16.0",
53
55
  "rxjs": "^7.8.1",
54
56
  "typescript": "^5.5.3",
55
57
  "vite": "^5.3.4",
56
58
  "vitest": "^2.0.3",
57
- "@univerjs/core": "0.2.4-alpha.0",
58
- "@univerjs/engine-formula": "0.2.4-alpha.0",
59
- "@univerjs/shared": "0.2.4-alpha.0",
60
- "@univerjs/sheets": "0.2.4-alpha.0"
59
+ "@univerjs/engine-formula": "0.2.4",
60
+ "@univerjs/core": "0.2.4",
61
+ "@univerjs/shared": "0.2.4",
62
+ "@univerjs/sheets": "0.2.4"
61
63
  },
62
64
  "univerSpace": {
63
65
  ".": {