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