tor-univer-sheet 1.1.1 → 1.1.3
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/dist/tor-univer-sheet.es.js +293 -258
- package/dist/tor-univer-sheet.umd.js +1 -1
- package/package.json +1 -1
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { CellValueType as
|
|
3
|
-
import
|
|
4
|
-
const
|
|
5
|
-
for (const
|
|
6
|
-
|
|
1
|
+
import b from "dayjs";
|
|
2
|
+
import { CellValueType as j } from "@univerjs/presets";
|
|
3
|
+
import V from "decimal.js";
|
|
4
|
+
const re = (e, o) => {
|
|
5
|
+
for (const r of o)
|
|
6
|
+
e[r] = null;
|
|
7
7
|
}, F = () => {
|
|
8
8
|
if (typeof crypto == "object") {
|
|
9
9
|
if (typeof crypto.randomUUID == "function")
|
|
10
10
|
return crypto.randomUUID();
|
|
11
11
|
if (typeof crypto.getRandomValues == "function" && typeof Uint8Array == "function") {
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
return (
|
|
12
|
+
const r = (t) => {
|
|
13
|
+
const l = Number(t);
|
|
14
|
+
return (l ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> l / 4).toString(16);
|
|
15
15
|
};
|
|
16
|
-
return "10000000-1000-4000-8000-100000000000".replace(/[018]/g,
|
|
16
|
+
return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, r);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
let
|
|
20
|
-
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (
|
|
21
|
-
let
|
|
22
|
-
return
|
|
19
|
+
let e = (/* @__PURE__ */ new Date()).getTime(), o = typeof performance < "u" && performance.now && performance.now() * 1e3 || 0;
|
|
20
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (r) => {
|
|
21
|
+
let t = Math.random() * 16;
|
|
22
|
+
return e > 0 ? (t = (e + t) % 16 | 0, e = Math.floor(e / 16)) : (t = (o + t) % 16 | 0, o = Math.floor(o / 16)), (r === "x" ? t : t & 3 | 8).toString(16);
|
|
23
23
|
});
|
|
24
24
|
};
|
|
25
|
-
function
|
|
25
|
+
function oe(e) {
|
|
26
26
|
return {
|
|
27
|
-
...
|
|
28
|
-
id:
|
|
29
|
-
name:
|
|
30
|
-
appVersion:
|
|
27
|
+
...e?.workbookData,
|
|
28
|
+
id: e?.id || F(),
|
|
29
|
+
name: e?.name || "未命名",
|
|
30
|
+
appVersion: e?.appVersion || "1.0.0"
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
const $ = Object.prototype.toString, A = (
|
|
33
|
+
const $ = Object.prototype.toString, A = (e, o) => $.call(e) === `[object ${o}]`, J = (e) => typeof e < "u", z = (e) => !J(e), B = (e) => e !== null && A(e, "Object"), R = (e) => e == null || typeof e > "u" ? !0 : G(e) || K(e) ? e.length === 0 : e instanceof Map || e instanceof Set ? e.size === 0 : B(e) ? Object.keys(e).length === 0 : !1, Z = (e) => e === null, _ = (e) => z(e) || Z(e), K = (e) => A(e, "String"), G = (e) => e && Array.isArray(e);
|
|
34
34
|
class L {
|
|
35
35
|
value;
|
|
36
36
|
constructor(o) {
|
|
37
|
-
this.value = new
|
|
37
|
+
this.value = new V(o);
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
40
|
* 加法运算
|
|
@@ -67,10 +67,10 @@ class L {
|
|
|
67
67
|
* @throws 当除数为0时抛出错误
|
|
68
68
|
*/
|
|
69
69
|
divide(o) {
|
|
70
|
-
const
|
|
71
|
-
if (
|
|
70
|
+
const r = new V(o);
|
|
71
|
+
if (r.isZero())
|
|
72
72
|
throw new Error("除数是0");
|
|
73
|
-
return this.value = this.value.div(
|
|
73
|
+
return this.value = this.value.div(r), this;
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
76
76
|
* 保留小数位数
|
|
@@ -78,8 +78,8 @@ class L {
|
|
|
78
78
|
* @param rounding 舍入模式,默认为四舍五入
|
|
79
79
|
* @returns DecimalChain 实例,支持链式调用
|
|
80
80
|
*/
|
|
81
|
-
toFixed(o,
|
|
82
|
-
return this.value = new
|
|
81
|
+
toFixed(o, r) {
|
|
82
|
+
return this.value = new V(this.value.toFixed(o, r)), this;
|
|
83
83
|
}
|
|
84
84
|
/**
|
|
85
85
|
* 返回当前值
|
|
@@ -103,362 +103,397 @@ class L {
|
|
|
103
103
|
return this.value.toNumber();
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
function
|
|
107
|
-
return new L(
|
|
106
|
+
function k(e = 0) {
|
|
107
|
+
return new L(e);
|
|
108
108
|
}
|
|
109
|
-
var Q = /* @__PURE__ */ ((
|
|
110
|
-
async function
|
|
109
|
+
var Q = /* @__PURE__ */ ((e) => (e.无 = "no", e.年 = "year", e.月 = "month", e.周 = "week", e.天 = "day", e.班组 = "shift", e.小时 = "hour", e.半小时 = "half_hour", e))(Q || {}), W = /* @__PURE__ */ ((e) => (e.view = "view", e.edit = "edit", e))(W || {});
|
|
110
|
+
async function ne(e, o) {
|
|
111
111
|
if (!o) return Promise.reject("日期不能为空");
|
|
112
|
-
switch (
|
|
112
|
+
switch (e) {
|
|
113
113
|
case "year":
|
|
114
|
-
if (
|
|
114
|
+
if (G(o))
|
|
115
115
|
return Promise.resolve(o);
|
|
116
|
-
const
|
|
117
|
-
if (!
|
|
116
|
+
const r = b(o);
|
|
117
|
+
if (!r.isValid())
|
|
118
118
|
return Promise.reject("无效的日期格式");
|
|
119
|
-
const
|
|
120
|
-
return Promise.resolve([
|
|
119
|
+
const t = r.year(), l = `${t}-01`, a = `${t}-12`;
|
|
120
|
+
return Promise.resolve([l, a]);
|
|
121
121
|
case "month":
|
|
122
|
-
if (
|
|
122
|
+
if (G(o))
|
|
123
123
|
return Promise.resolve(o);
|
|
124
|
-
const
|
|
125
|
-
if (!
|
|
124
|
+
const d = b(o);
|
|
125
|
+
if (!d.isValid())
|
|
126
126
|
return Promise.reject("无效的日期格式");
|
|
127
|
-
const
|
|
128
|
-
return Promise.resolve([
|
|
127
|
+
const T = d.startOf("month").format("YYYY-MM-DD"), i = d.endOf("month").format("YYYY-MM-DD");
|
|
128
|
+
return Promise.resolve([T, i]);
|
|
129
129
|
case "day":
|
|
130
|
-
if (
|
|
130
|
+
if (G(o))
|
|
131
131
|
return Promise.resolve(o);
|
|
132
|
-
const
|
|
133
|
-
if (!
|
|
132
|
+
const x = b(o);
|
|
133
|
+
if (!x.isValid())
|
|
134
134
|
return Promise.reject("无效的日期格式");
|
|
135
|
-
const
|
|
136
|
-
return Promise.resolve([
|
|
135
|
+
const m = x.startOf("day").format("YYYY-MM-DD HH:mm:ss"), h = x.endOf("day").format("YYYY-MM-DD HH:mm:ss");
|
|
136
|
+
return Promise.resolve([m, h]);
|
|
137
137
|
default:
|
|
138
138
|
return Promise.reject("不支持的周期类型");
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
function
|
|
142
|
-
if (!
|
|
143
|
-
const
|
|
141
|
+
function H(e, o, r) {
|
|
142
|
+
if (!r) return 0;
|
|
143
|
+
const t = {
|
|
144
144
|
year: "YYYY",
|
|
145
145
|
month: "YYYY-MM",
|
|
146
146
|
day: "YYYY-MM-DD",
|
|
147
147
|
hour: "HH:mm:ss"
|
|
148
|
-
}[
|
|
149
|
-
return ["day", "hour"].includes(
|
|
148
|
+
}[r];
|
|
149
|
+
return ["day", "hour"].includes(r) ? b(o, t).diff(b(e, t), r) + 1 : b(o, t).diff(b(e, t), r);
|
|
150
150
|
}
|
|
151
|
-
function q(
|
|
152
|
-
const
|
|
151
|
+
function q(e, o, r) {
|
|
152
|
+
const t = {
|
|
153
153
|
year: "YYYY",
|
|
154
154
|
month: "YYYY-MM",
|
|
155
155
|
day: "YYYY-MM-DD",
|
|
156
156
|
hour: "HH:mm:ss"
|
|
157
|
-
}[
|
|
158
|
-
return
|
|
157
|
+
}[r];
|
|
158
|
+
return b(e).subtract(o, r).format(t);
|
|
159
159
|
}
|
|
160
|
-
function
|
|
161
|
-
const
|
|
160
|
+
function N(e, o, r, t) {
|
|
161
|
+
const l = {
|
|
162
162
|
year: "YYYY",
|
|
163
163
|
month: "YYYY-MM",
|
|
164
164
|
day: "YYYY-MM-DD",
|
|
165
165
|
hour: "YYYY-MM-DD HH:mm:ss"
|
|
166
166
|
}[o];
|
|
167
|
-
return
|
|
167
|
+
return b(e, l).add(r * t, o).format(l);
|
|
168
168
|
}
|
|
169
|
-
function
|
|
170
|
-
|
|
169
|
+
function I(e, o, r, t) {
|
|
170
|
+
const l = {
|
|
171
|
+
year: "YYYY",
|
|
172
|
+
month: "YYYY-MM",
|
|
173
|
+
day: "YYYY-MM-DD",
|
|
174
|
+
hour: "YYYY-MM-DD HH:mm:ss"
|
|
175
|
+
}[o];
|
|
176
|
+
return b(e, l).subtract(r * t, o).format(l);
|
|
177
|
+
}
|
|
178
|
+
function D(e, o, r) {
|
|
179
|
+
return e[o] || (e[o] = {}), e[o][r] || (e[o][r] = {}), e[o][r];
|
|
171
180
|
}
|
|
172
|
-
async function
|
|
173
|
-
if (!
|
|
181
|
+
async function se(e) {
|
|
182
|
+
if (!e)
|
|
174
183
|
throw new Error("cellData is required");
|
|
175
|
-
const o = Object.entries(
|
|
176
|
-
const [
|
|
177
|
-
for (const [
|
|
178
|
-
const { custom:
|
|
179
|
-
if (!
|
|
180
|
-
const { cellType:
|
|
181
|
-
if (
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
...
|
|
185
|
-
required:
|
|
186
|
-
defaultShift:
|
|
187
|
-
forwardPush:
|
|
188
|
-
},
|
|
184
|
+
const o = Object.entries(e).reduce((r, t) => {
|
|
185
|
+
const [l, a] = t;
|
|
186
|
+
for (const [d, T] of Object.entries(a)) {
|
|
187
|
+
const { custom: i, v: x, t: m, s: h } = T;
|
|
188
|
+
if (!i) continue;
|
|
189
|
+
const { cellType: Y } = i;
|
|
190
|
+
if (Y === "indicator") {
|
|
191
|
+
const O = D(r, l, d);
|
|
192
|
+
O.custom = {
|
|
193
|
+
...i,
|
|
194
|
+
required: R(i?.required) ? !1 : i?.required,
|
|
195
|
+
defaultShift: R(i?.defaultShift) ? !1 : i?.defaultShift,
|
|
196
|
+
forwardPush: R(i?.forwardPush) ? !1 : i?.forwardPush
|
|
197
|
+
}, O.s = h, O.t = m, O.v = x;
|
|
189
198
|
}
|
|
190
199
|
}
|
|
191
|
-
return
|
|
200
|
+
return r;
|
|
192
201
|
}, {});
|
|
193
|
-
return !o ||
|
|
202
|
+
return !o || R(o) ? Promise.reject(new Error("No data found")) : Promise.resolve(o);
|
|
194
203
|
}
|
|
195
204
|
function X({
|
|
196
|
-
acc:
|
|
205
|
+
acc: e,
|
|
197
206
|
params: o,
|
|
198
|
-
initRowNum:
|
|
199
|
-
initColNum:
|
|
200
|
-
cellData:
|
|
207
|
+
initRowNum: r,
|
|
208
|
+
initColNum: t,
|
|
209
|
+
cellData: l
|
|
201
210
|
}) {
|
|
202
|
-
const { rangeData:
|
|
203
|
-
|
|
204
|
-
|
|
211
|
+
const { rangeData: a, currentDay: d, extraArgs: T } = o;
|
|
212
|
+
T?.teamData;
|
|
213
|
+
const { cycleType: i, timeIncrement: x, forwardPush: m, copyType: h, copyInterval: Y, defaultShift: O } = l.custom;
|
|
214
|
+
let y = 0;
|
|
215
|
+
switch (i) {
|
|
205
216
|
case "day": {
|
|
206
|
-
let
|
|
207
|
-
if (
|
|
208
|
-
|
|
217
|
+
let n = "";
|
|
218
|
+
if (m && (n = q(
|
|
219
|
+
a[0],
|
|
209
220
|
6,
|
|
210
221
|
"day"
|
|
211
222
|
/* day */
|
|
212
|
-
)), !
|
|
213
|
-
let
|
|
214
|
-
|
|
215
|
-
const
|
|
216
|
-
|
|
223
|
+
)), !h) {
|
|
224
|
+
let f = "";
|
|
225
|
+
m ? f = n : f = a[0];
|
|
226
|
+
const c = D(e, r, t);
|
|
227
|
+
c.v = f, c.t = j.STRING;
|
|
217
228
|
break;
|
|
218
229
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
230
|
+
m ? y = H(
|
|
231
|
+
n,
|
|
232
|
+
a[0],
|
|
222
233
|
"day"
|
|
223
234
|
/* day */
|
|
224
|
-
) :
|
|
225
|
-
|
|
226
|
-
|
|
235
|
+
) : y = H(
|
|
236
|
+
a[0],
|
|
237
|
+
a[1],
|
|
227
238
|
"day"
|
|
228
239
|
/* day */
|
|
229
240
|
);
|
|
230
|
-
for (let
|
|
231
|
-
const
|
|
241
|
+
for (let f = 0; f <= Math.abs(y === 0 ? 1 : y); f++) {
|
|
242
|
+
const c = f * (Y + 1);
|
|
232
243
|
let w = "";
|
|
233
|
-
|
|
234
|
-
const
|
|
235
|
-
|
|
244
|
+
m ? w = N(n, "day", f, x) : w = N(a[0], "day", f, x);
|
|
245
|
+
const g = h === "right" ? r : r + c, p = h === "right" ? t + c : t, M = D(e, g, p);
|
|
246
|
+
M.v = w, M.t = j.STRING;
|
|
236
247
|
}
|
|
237
248
|
break;
|
|
238
249
|
}
|
|
239
250
|
case "month": {
|
|
240
|
-
if (!
|
|
241
|
-
const
|
|
242
|
-
|
|
251
|
+
if (!h) {
|
|
252
|
+
const n = D(e, r, t);
|
|
253
|
+
n.v = a[0], n.t = j.STRING;
|
|
243
254
|
break;
|
|
244
255
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
256
|
+
y = H(
|
|
257
|
+
a[0],
|
|
258
|
+
a[1],
|
|
248
259
|
"month"
|
|
249
260
|
/* month */
|
|
250
261
|
);
|
|
251
|
-
for (let
|
|
252
|
-
const
|
|
253
|
-
|
|
262
|
+
for (let n = 0; n <= Math.abs(y === 0 ? 1 : y); n++) {
|
|
263
|
+
const f = n * (Y + 1), c = h === "right" ? r : r + f, w = h === "right" ? t + f : t, g = D(e, c, w);
|
|
264
|
+
g.v = N(a[0], "month", n, x), g.t = j.STRING;
|
|
254
265
|
}
|
|
255
266
|
break;
|
|
256
267
|
}
|
|
257
268
|
case "year": {
|
|
258
|
-
if (!
|
|
259
|
-
const
|
|
260
|
-
|
|
269
|
+
if (!h) {
|
|
270
|
+
const n = D(e, r, t);
|
|
271
|
+
n.v = a[0], n.t = j.STRING;
|
|
261
272
|
break;
|
|
262
273
|
}
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
274
|
+
y = H(
|
|
275
|
+
a[0],
|
|
276
|
+
a[1],
|
|
266
277
|
"year"
|
|
267
278
|
/* year */
|
|
268
279
|
);
|
|
269
|
-
for (let
|
|
270
|
-
const
|
|
271
|
-
|
|
280
|
+
for (let n = 0; n <= Math.abs(y === 0 ? 1 : y); n++) {
|
|
281
|
+
const f = n * (Y + 1), c = h === "right" ? r : r + f, w = h === "right" ? t + f : t, g = D(e, c, w);
|
|
282
|
+
g.v = N(a[0], "year", n, x), g.t = j.STRING;
|
|
272
283
|
}
|
|
273
284
|
break;
|
|
274
285
|
}
|
|
275
286
|
case "hour": {
|
|
276
|
-
if (!
|
|
277
|
-
const
|
|
278
|
-
if (
|
|
279
|
-
|
|
287
|
+
if (!h) {
|
|
288
|
+
const n = D(e, r, t);
|
|
289
|
+
if (n.t = j.STRING, O) {
|
|
290
|
+
n.v = b(a[0]).add(1, "hour").format("YYYY-MM-DD HH:mm:ss");
|
|
280
291
|
break;
|
|
281
292
|
}
|
|
282
|
-
|
|
293
|
+
n.v = b(d).add(1, "hour").format("YYYY-MM-DD HH:mm:ss");
|
|
283
294
|
break;
|
|
284
295
|
}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
296
|
+
y = H(
|
|
297
|
+
a[0],
|
|
298
|
+
a[1],
|
|
288
299
|
"hour"
|
|
289
300
|
/* hour */
|
|
290
301
|
);
|
|
291
|
-
for (let
|
|
292
|
-
const
|
|
293
|
-
if (
|
|
294
|
-
const p =
|
|
295
|
-
|
|
302
|
+
for (let n = 0; n < Math.abs(y === 0 ? 1 : y); n++) {
|
|
303
|
+
const f = n * (Y + 1), c = h === "right" ? r : r + f, w = h === "right" ? t + f : t, g = D(e, c, w);
|
|
304
|
+
if (g.t = j.STRING, O) {
|
|
305
|
+
const p = b(a[0]).add(1, "hour").format("YYYY-MM-DD HH:mm:ss");
|
|
306
|
+
g.v = N(p, "hour", n, x);
|
|
296
307
|
continue;
|
|
297
308
|
}
|
|
298
|
-
|
|
309
|
+
g.v = N(b(d).add(1, "hour").format("YYYY-MM-DD HH:mm:ss"), "hour", n, x);
|
|
299
310
|
}
|
|
300
311
|
}
|
|
301
312
|
}
|
|
302
313
|
}
|
|
303
|
-
async function
|
|
304
|
-
if (!
|
|
314
|
+
async function ae(e, o) {
|
|
315
|
+
if (!e)
|
|
305
316
|
return Promise.reject("没有可用的单元格数据");
|
|
306
|
-
const { extraArgs:
|
|
307
|
-
if (!
|
|
317
|
+
const { extraArgs: r, rangeData: t } = o;
|
|
318
|
+
if (!t.length)
|
|
308
319
|
return Promise.reject("处理时间范围失败, rangeData不能为空");
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
320
|
+
r?.teamData;
|
|
321
|
+
const l = o?.currentDay || b().format("YYYY-MM-DD"), a = Object.entries(e).reduce((d, T) => {
|
|
322
|
+
const [i, x] = T;
|
|
323
|
+
for (const [m, h] of Object.entries(x)) {
|
|
324
|
+
const { custom: Y } = h;
|
|
325
|
+
if (!Y) continue;
|
|
326
|
+
const { cellType: O, cycleType: y, timeIncrement: n, forwardPush: f, copyType: c, copyInterval: w, defaultShift: g } = Y;
|
|
327
|
+
if (O === "time") {
|
|
328
|
+
X({ acc: d, params: o, initRowNum: Number(i), initColNum: Number(m), cellData: h });
|
|
317
329
|
continue;
|
|
318
330
|
}
|
|
319
331
|
const p = {
|
|
320
|
-
cycleType:
|
|
321
|
-
indicatorName:
|
|
322
|
-
indicatorCode:
|
|
323
|
-
indicatorId:
|
|
324
|
-
indicatorDimensionName:
|
|
325
|
-
indicatorDimensionConfig:
|
|
326
|
-
required:
|
|
327
|
-
cellType:
|
|
328
|
-
defaultShift:
|
|
332
|
+
cycleType: y,
|
|
333
|
+
indicatorName: Y.indicatorName,
|
|
334
|
+
indicatorCode: Y.indicatorCode,
|
|
335
|
+
indicatorId: Y.indicatorId,
|
|
336
|
+
indicatorDimensionName: Y.indicatorDimensionName,
|
|
337
|
+
indicatorDimensionConfig: Y.indicatorDimensionConfig,
|
|
338
|
+
required: _(Y?.required) ?? !1,
|
|
339
|
+
cellType: Y.cellType,
|
|
340
|
+
defaultShift: Y?.defaultShift || !1
|
|
329
341
|
};
|
|
330
|
-
let
|
|
331
|
-
switch (
|
|
342
|
+
let M = 0;
|
|
343
|
+
switch (y) {
|
|
332
344
|
case "day": {
|
|
333
|
-
let
|
|
334
|
-
if (
|
|
335
|
-
|
|
345
|
+
let s = "";
|
|
346
|
+
if (f && (s = q(
|
|
347
|
+
t[0],
|
|
336
348
|
6,
|
|
337
349
|
"day"
|
|
338
350
|
/* day */
|
|
339
|
-
)), !
|
|
340
|
-
let
|
|
341
|
-
|
|
342
|
-
const
|
|
343
|
-
|
|
351
|
+
)), !c) {
|
|
352
|
+
let u = "";
|
|
353
|
+
f ? u = s : u = t[0];
|
|
354
|
+
const v = D(d, i, m);
|
|
355
|
+
v.custom = {
|
|
344
356
|
...p,
|
|
345
|
-
businessDate:
|
|
346
|
-
|
|
357
|
+
businessDate: u,
|
|
358
|
+
startTime: "",
|
|
359
|
+
endTime: ""
|
|
360
|
+
}, g && (v.custom.startTime = t[0], v.custom.endTime = t[1]);
|
|
347
361
|
break;
|
|
348
362
|
}
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
363
|
+
f ? M = H(
|
|
364
|
+
s,
|
|
365
|
+
t[0],
|
|
352
366
|
"day"
|
|
353
367
|
/* day */
|
|
354
|
-
) :
|
|
355
|
-
|
|
356
|
-
|
|
368
|
+
) : M = H(
|
|
369
|
+
t[0],
|
|
370
|
+
t[1],
|
|
357
371
|
"day"
|
|
358
372
|
/* day */
|
|
359
373
|
);
|
|
360
|
-
for (let
|
|
361
|
-
const
|
|
362
|
-
let
|
|
363
|
-
|
|
364
|
-
const
|
|
365
|
-
|
|
374
|
+
for (let u = 0; u < Math.abs(M === 0 ? 1 : M); u++) {
|
|
375
|
+
const v = u * (w + 1);
|
|
376
|
+
let S = "";
|
|
377
|
+
f ? S = N(s, "day", u, n) : S = N(t[0], "day", u, n);
|
|
378
|
+
const C = c === "right" ? i : k(i).add(v).toNumber(), U = c === "right" ? k(m).add(v).toNumber() : m, P = D(d, C, U);
|
|
379
|
+
P.custom = {
|
|
366
380
|
...p,
|
|
367
|
-
businessDate:
|
|
368
|
-
|
|
381
|
+
businessDate: S,
|
|
382
|
+
startTime: "",
|
|
383
|
+
endTime: ""
|
|
384
|
+
}, g && (P.custom.startTime = I(S, "day", u, n), P.custom.endTime = S);
|
|
369
385
|
}
|
|
370
386
|
break;
|
|
371
387
|
}
|
|
372
388
|
case "month": {
|
|
373
|
-
if (!
|
|
374
|
-
const
|
|
375
|
-
|
|
389
|
+
if (!c) {
|
|
390
|
+
const s = D(d, i, m);
|
|
391
|
+
s.custom = {
|
|
376
392
|
...p,
|
|
377
|
-
businessDate:
|
|
393
|
+
businessDate: t[0],
|
|
394
|
+
startTime: "",
|
|
395
|
+
endTime: ""
|
|
378
396
|
};
|
|
379
397
|
break;
|
|
380
398
|
}
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
399
|
+
M = H(
|
|
400
|
+
t[0],
|
|
401
|
+
t[1],
|
|
384
402
|
"month"
|
|
385
403
|
/* month */
|
|
386
404
|
);
|
|
387
|
-
for (let
|
|
388
|
-
const
|
|
389
|
-
|
|
405
|
+
for (let s = 0; s <= Math.abs(M === 0 ? 1 : M); s++) {
|
|
406
|
+
const u = s * (w + 1), v = c === "right" ? i : k(i).add(u).toNumber(), S = c === "right" ? k(m).add(u).toNumber() : m, C = D(d, v, S);
|
|
407
|
+
C.custom = {
|
|
390
408
|
...p,
|
|
391
|
-
businessDate:
|
|
409
|
+
businessDate: N(t[0], "month", s, n)
|
|
392
410
|
};
|
|
393
411
|
}
|
|
394
412
|
break;
|
|
395
413
|
}
|
|
396
414
|
case "year": {
|
|
397
|
-
if (!
|
|
398
|
-
const
|
|
399
|
-
|
|
415
|
+
if (!c) {
|
|
416
|
+
const s = D(d, i, m);
|
|
417
|
+
s.custom = {
|
|
400
418
|
...p,
|
|
401
|
-
businessDate:
|
|
419
|
+
businessDate: t[0],
|
|
420
|
+
startTime: "",
|
|
421
|
+
endTime: ""
|
|
402
422
|
};
|
|
403
423
|
break;
|
|
404
424
|
}
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
425
|
+
M = H(
|
|
426
|
+
t[0],
|
|
427
|
+
t[1],
|
|
408
428
|
"year"
|
|
409
429
|
/* year */
|
|
410
430
|
);
|
|
411
|
-
for (let
|
|
412
|
-
const
|
|
413
|
-
|
|
431
|
+
for (let s = 0; s < Math.abs(M === 0 ? 1 : M); s++) {
|
|
432
|
+
const u = s * (w + 1), v = c === "right" ? i : k(i).add(u).toNumber(), S = c === "right" ? k(m).add(u).toNumber() : m, C = D(d, v, S);
|
|
433
|
+
C.custom = {
|
|
414
434
|
...p,
|
|
415
|
-
businessDate:
|
|
435
|
+
businessDate: N(t[0], "year", s, n)
|
|
416
436
|
};
|
|
417
437
|
}
|
|
418
438
|
break;
|
|
419
439
|
}
|
|
420
440
|
case "hour": {
|
|
421
|
-
if (!
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
441
|
+
if (!c) {
|
|
442
|
+
let s = "";
|
|
443
|
+
const u = D(d, i, m);
|
|
444
|
+
if (g) {
|
|
445
|
+
s = N(t[0], "hour", 1, 1), u.custom = {
|
|
425
446
|
...p,
|
|
426
|
-
|
|
427
|
-
|
|
447
|
+
businessDate: s,
|
|
448
|
+
startTime: I(s, "hour", 1, 1),
|
|
449
|
+
endTime: s
|
|
428
450
|
};
|
|
429
451
|
break;
|
|
430
452
|
}
|
|
431
|
-
|
|
453
|
+
s = N(t[0] ?? l, "hour", 1, 1), u.custom = {
|
|
432
454
|
...p,
|
|
433
|
-
businessDate:
|
|
455
|
+
businessDate: s,
|
|
456
|
+
startTime: I(s, "hour", 1, 1),
|
|
457
|
+
endTime: s
|
|
458
|
+
// businessDate: dayjs(currentDay).add(1, 'hour').format('YYYY-MM-DD HH:mm:ss')
|
|
434
459
|
};
|
|
435
460
|
break;
|
|
436
461
|
}
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
462
|
+
M = H(
|
|
463
|
+
t[0],
|
|
464
|
+
t[1],
|
|
440
465
|
"hour"
|
|
441
466
|
/* hour */
|
|
442
467
|
);
|
|
443
|
-
for (let
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
468
|
+
for (let s = 0; s < Math.abs(M === 0 ? 1 : M); s++) {
|
|
469
|
+
let u = "";
|
|
470
|
+
const v = s * (w + 1), S = c === "right" ? i : k(i).add(v).toNumber(), C = c === "right" ? k(m).add(v).toNumber() : m, U = D(d, S, C);
|
|
471
|
+
if (g) {
|
|
472
|
+
const P = b(t[0]).add(1, "hour").format("YYYY-MM-DD HH:mm:ss");
|
|
473
|
+
u = N(P, "hour", s, n), U.custom = {
|
|
448
474
|
...p,
|
|
449
|
-
|
|
450
|
-
|
|
475
|
+
businessDate: u,
|
|
476
|
+
startTime: I(u, "hour", s, n),
|
|
477
|
+
endTime: u
|
|
478
|
+
// businessDate: generateTime(laterOneHour, dateTypeEnum.hour, i, timeIncrement)
|
|
451
479
|
};
|
|
452
480
|
continue;
|
|
453
481
|
}
|
|
454
|
-
|
|
482
|
+
u = N(
|
|
483
|
+
b(l).add(1, "hour").format("YYYY-MM-DD HH:mm:ss"),
|
|
484
|
+
"hour",
|
|
485
|
+
s,
|
|
486
|
+
n
|
|
487
|
+
), U.custom = {
|
|
455
488
|
...p,
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
489
|
+
startTime: I(u, "hour", s, n),
|
|
490
|
+
endTime: u
|
|
491
|
+
// businessDate: generateTime(
|
|
492
|
+
// dayjs(currentDay).add(1, 'hour').format('YYYY-MM-DD HH:mm:ss'),
|
|
493
|
+
// dateTypeEnum.hour,
|
|
494
|
+
// i,
|
|
495
|
+
// timeIncrement
|
|
496
|
+
// )
|
|
462
497
|
};
|
|
463
498
|
}
|
|
464
499
|
break;
|
|
@@ -467,44 +502,44 @@ async function at(t, o) {
|
|
|
467
502
|
}
|
|
468
503
|
return d;
|
|
469
504
|
}, {});
|
|
470
|
-
return Promise.resolve(
|
|
505
|
+
return Promise.resolve(a);
|
|
471
506
|
}
|
|
472
|
-
function
|
|
473
|
-
return Object.entries(
|
|
474
|
-
const
|
|
475
|
-
return
|
|
507
|
+
function ie(e) {
|
|
508
|
+
return Object.entries(e).reduce((r, [t, l]) => {
|
|
509
|
+
const a = Math.max(...Object.keys(l).map(Number));
|
|
510
|
+
return a > r ? r = Number(a) : r = Number(r) || 0, r;
|
|
476
511
|
}, 0);
|
|
477
512
|
}
|
|
478
|
-
function
|
|
479
|
-
const
|
|
480
|
-
for (const [
|
|
481
|
-
|
|
482
|
-
for (const [
|
|
483
|
-
const
|
|
484
|
-
|
|
485
|
-
...
|
|
486
|
-
...
|
|
513
|
+
function ue(e, o) {
|
|
514
|
+
const r = JSON.parse(JSON.stringify(e || {}));
|
|
515
|
+
for (const [t, l] of Object.entries(o)) {
|
|
516
|
+
r[t] || (r[t] = {});
|
|
517
|
+
for (const [a, d] of Object.entries(l)) {
|
|
518
|
+
const T = d, i = r[t]?.[a];
|
|
519
|
+
i ? r[t][a] = {
|
|
520
|
+
...i,
|
|
521
|
+
...T,
|
|
487
522
|
custom: {
|
|
488
|
-
...
|
|
489
|
-
...
|
|
523
|
+
...i.custom,
|
|
524
|
+
...T.custom || {}
|
|
490
525
|
}
|
|
491
|
-
} :
|
|
526
|
+
} : r[t][a] = T;
|
|
492
527
|
}
|
|
493
528
|
}
|
|
494
|
-
return
|
|
529
|
+
return r;
|
|
495
530
|
}
|
|
496
|
-
const
|
|
531
|
+
const ce = "./style.css";
|
|
497
532
|
export {
|
|
498
533
|
Q as CycleTypeEnum,
|
|
499
534
|
W as ModeEnum,
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
535
|
+
k as decimal,
|
|
536
|
+
se as filterIndicatorsCell,
|
|
537
|
+
ae as generateIndicatorsCells,
|
|
503
538
|
F as generateUUID,
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
539
|
+
ie as getNumColumns,
|
|
540
|
+
re as handleClearInput,
|
|
541
|
+
ne as initDateRange,
|
|
542
|
+
ue as mergeCellData,
|
|
543
|
+
ce as stylePath,
|
|
544
|
+
oe as useData
|
|
510
545
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(Y,m){typeof exports=="object"&&typeof module<"u"?m(exports,require("dayjs"),require("@univerjs/presets"),require("decimal.js")):typeof define=="function"&&define.amd?define(["exports","dayjs","@univerjs/presets","decimal.js"],m):(Y=typeof globalThis<"u"?globalThis:Y||self,m(Y.TorUniverSheet={},Y.dayjs,Y.presets,Y.Decimal))})(this,(function(Y,m,I,G){"use strict";const B=(e,n)=>{for(const r of n)e[r]=null},A=()=>{if(typeof crypto=="object"){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();if(typeof crypto.getRandomValues=="function"&&typeof Uint8Array=="function"){const r=t=>{const d=Number(t);return(d^crypto.getRandomValues(new Uint8Array(1))[0]&15>>d/4).toString(16)};return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,r)}}let e=new Date().getTime(),n=typeof performance<"u"&&performance.now&&performance.now()*1e3||0;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{let t=Math.random()*16;return e>0?(t=(e+t)%16|0,e=Math.floor(e/16)):(t=(n+t)%16|0,n=Math.floor(n/16)),(r==="x"?t:t&3|8).toString(16)})};function Z(e){return{...e?.workbookData,id:e?.id||A(),name:e?.name||"未命名",appVersion:e?.appVersion||"1.0.0"}}const _=Object.prototype.toString,F=(e,n)=>_.call(e)===`[object ${n}]`,E=e=>typeof e<"u",K=e=>!E(e),L=e=>e!==null&&F(e,"Object"),U=e=>e==null||typeof e>"u"?!0:R(e)||X(e)?e.length===0:e instanceof Map||e instanceof Set?e.size===0:L(e)?Object.keys(e).length===0:!1,Q=e=>e===null,W=e=>K(e)||Q(e),X=e=>F(e,"String"),R=e=>e&&Array.isArray(e);class ee{value;constructor(n){this.value=new G(n)}add(n){return this.value=this.value.add(n||0),this}subtract(n){return this.value=this.value.sub(n||0),this}multiply(n){return this.value=this.value.mul(n||0),this}divide(n){const r=new G(n);if(r.isZero())throw new Error("除数是0");return this.value=this.value.div(r),this}toFixed(n,r){return this.value=new G(this.value.toFixed(n,r)),this}valueOf(){return this.value}toString(){return this.value.toString()}toNumber(){return this.value.toNumber()}}function O(e=0){return new ee(e)}var $=(e=>(e.无="no",e.年="year",e.月="month",e.周="week",e.天="day",e.班组="shift",e.小时="hour",e.半小时="half_hour",e))($||{}),J=(e=>(e.view="view",e.edit="edit",e))(J||{});async function te(e,n){if(!n)return Promise.reject("日期不能为空");switch(e){case"year":if(R(n))return Promise.resolve(n);const r=m(n);if(!r.isValid())return Promise.reject("无效的日期格式");const t=r.year(),d=`${t}-01`,i=`${t}-12`;return Promise.resolve([d,i]);case"month":if(R(n))return Promise.resolve(n);const h=m(n);if(!h.isValid())return Promise.reject("无效的日期格式");const p=h.startOf("month").format("YYYY-MM-DD"),a=h.endOf("month").format("YYYY-MM-DD");return Promise.resolve([p,a]);case"day":if(R(n))return Promise.resolve(n);const v=m(n);if(!v.isValid())return Promise.reject("无效的日期格式");const f=v.startOf("day").format("YYYY-MM-DD HH:mm:ss"),D=v.endOf("day").format("YYYY-MM-DD HH:mm:ss");return Promise.resolve([f,D]);default:return Promise.reject("不支持的周期类型")}}function H(e,n,r){if(!r)return 0;const t={year:"YYYY",month:"YYYY-MM",day:"YYYY-MM-DD",hour:"HH:mm:ss"}[r];return["day","hour"].includes(r)?m(n,t).diff(m(e,t),r)+1:m(n,t).diff(m(e,t),r)}function z(e,n,r){const t={year:"YYYY",month:"YYYY-MM",day:"YYYY-MM-DD",hour:"HH:mm:ss"}[r];return m(e).subtract(n,r).format(t)}function T(e,n,r,t){const d={year:"YYYY",month:"YYYY-MM",day:"YYYY-MM-DD",hour:"YYYY-MM-DD HH:mm:ss"}[n];return m(e,d).add(r*t,n).format(d)}function j(e,n,r,t){const d={year:"YYYY",month:"YYYY-MM",day:"YYYY-MM-DD",hour:"YYYY-MM-DD HH:mm:ss"}[n];return m(e,d).subtract(r*t,n).format(d)}function b(e,n,r){return e[n]||(e[n]={}),e[n][r]||(e[n][r]={}),e[n][r]}async function re(e){if(!e)throw new Error("cellData is required");const n=Object.entries(e).reduce((r,t)=>{const[d,i]=t;for(const[h,p]of Object.entries(i)){const{custom:a,v,t:f,s:D}=p;if(!a)continue;const{cellType:g}=a;if(g==="indicator"){const P=b(r,d,h);P.custom={...a,required:U(a?.required)?!1:a?.required,defaultShift:U(a?.defaultShift)?!1:a?.defaultShift,forwardPush:U(a?.forwardPush)?!1:a?.forwardPush},P.s=D,P.t=f,P.v=v}}return r},{});return!n||U(n)?Promise.reject(new Error("No data found")):Promise.resolve(n)}function ne({acc:e,params:n,initRowNum:r,initColNum:t,cellData:d}){const{rangeData:i,currentDay:h,extraArgs:p}=n;p?.teamData;const{cycleType:a,timeIncrement:v,forwardPush:f,copyType:D,copyInterval:g,defaultShift:P}=d.custom;let y=0;switch(a){case"day":{let o="";if(f&&(o=z(i[0],6,"day")),!D){let c="";f?c=o:c=i[0];const l=b(e,r,t);l.v=c,l.t=I.CellValueType.STRING;break}f?y=H(o,i[0],"day"):y=H(i[0],i[1],"day");for(let c=0;c<=Math.abs(y===0?1:y);c++){const l=c*(g+1);let x="";f?x=T(o,"day",c,v):x=T(i[0],"day",c,v);const M=D==="right"?r:r+l,N=D==="right"?t+l:t,w=b(e,M,N);w.v=x,w.t=I.CellValueType.STRING}break}case"month":{if(!D){const o=b(e,r,t);o.v=i[0],o.t=I.CellValueType.STRING;break}y=H(i[0],i[1],"month");for(let o=0;o<=Math.abs(y===0?1:y);o++){const c=o*(g+1),l=D==="right"?r:r+c,x=D==="right"?t+c:t,M=b(e,l,x);M.v=T(i[0],"month",o,v),M.t=I.CellValueType.STRING}break}case"year":{if(!D){const o=b(e,r,t);o.v=i[0],o.t=I.CellValueType.STRING;break}y=H(i[0],i[1],"year");for(let o=0;o<=Math.abs(y===0?1:y);o++){const c=o*(g+1),l=D==="right"?r:r+c,x=D==="right"?t+c:t,M=b(e,l,x);M.v=T(i[0],"year",o,v),M.t=I.CellValueType.STRING}break}case"hour":{if(!D){const o=b(e,r,t);if(o.t=I.CellValueType.STRING,P){o.v=m(i[0]).add(1,"hour").format("YYYY-MM-DD HH:mm:ss");break}o.v=m(h).add(1,"hour").format("YYYY-MM-DD HH:mm:ss");break}y=H(i[0],i[1],"hour");for(let o=0;o<Math.abs(y===0?1:y);o++){const c=o*(g+1),l=D==="right"?r:r+c,x=D==="right"?t+c:t,M=b(e,l,x);if(M.t=I.CellValueType.STRING,P){const N=m(i[0]).add(1,"hour").format("YYYY-MM-DD HH:mm:ss");M.v=T(N,"hour",o,v);continue}M.v=T(m(h).add(1,"hour").format("YYYY-MM-DD HH:mm:ss"),"hour",o,v)}}}}async function oe(e,n){if(!e)return Promise.reject("没有可用的单元格数据");const{extraArgs:r,rangeData:t}=n;if(!t.length)return Promise.reject("处理时间范围失败, rangeData不能为空");r?.teamData;const d=n?.currentDay||m().format("YYYY-MM-DD"),i=Object.entries(e).reduce((h,p)=>{const[a,v]=p;for(const[f,D]of Object.entries(v)){const{custom:g}=D;if(!g)continue;const{cellType:P,cycleType:y,timeIncrement:o,forwardPush:c,copyType:l,copyInterval:x,defaultShift:M}=g;if(P==="time"){ne({acc:h,params:n,initRowNum:Number(a),initColNum:Number(f),cellData:D});continue}const N={cycleType:y,indicatorName:g.indicatorName,indicatorCode:g.indicatorCode,indicatorId:g.indicatorId,indicatorDimensionName:g.indicatorDimensionName,indicatorDimensionConfig:g.indicatorDimensionConfig,required:W(g?.required)??!1,cellType:g.cellType,defaultShift:g?.defaultShift||!1};let w=0;switch(y){case"day":{let s="";if(c&&(s=z(t[0],6,"day")),!l){let u="";c?u=s:u=t[0];const C=b(h,a,f);C.custom={...N,businessDate:u,startTime:"",endTime:""},M&&(C.custom.startTime=t[0],C.custom.endTime=t[1]);break}c?w=H(s,t[0],"day"):w=H(t[0],t[1],"day");for(let u=0;u<Math.abs(w===0?1:w);u++){const C=u*(x+1);let S="";c?S=T(s,"day",u,o):S=T(t[0],"day",u,o);const k=l==="right"?a:O(a).add(C).toNumber(),q=l==="right"?O(f).add(C).toNumber():f,V=b(h,k,q);V.custom={...N,businessDate:S,startTime:"",endTime:""},M&&(V.custom.startTime=j(S,"day",u,o),V.custom.endTime=S)}break}case"month":{if(!l){const s=b(h,a,f);s.custom={...N,businessDate:t[0],startTime:"",endTime:""};break}w=H(t[0],t[1],"month");for(let s=0;s<=Math.abs(w===0?1:w);s++){const u=s*(x+1),C=l==="right"?a:O(a).add(u).toNumber(),S=l==="right"?O(f).add(u).toNumber():f,k=b(h,C,S);k.custom={...N,businessDate:T(t[0],"month",s,o)}}break}case"year":{if(!l){const s=b(h,a,f);s.custom={...N,businessDate:t[0],startTime:"",endTime:""};break}w=H(t[0],t[1],"year");for(let s=0;s<Math.abs(w===0?1:w);s++){const u=s*(x+1),C=l==="right"?a:O(a).add(u).toNumber(),S=l==="right"?O(f).add(u).toNumber():f,k=b(h,C,S);k.custom={...N,businessDate:T(t[0],"year",s,o)}}break}case"hour":{if(!l){let s="";const u=b(h,a,f);if(M){s=T(t[0],"hour",1,1),u.custom={...N,businessDate:s,startTime:j(s,"hour",1,1),endTime:s};break}s=T(t[0]??d,"hour",1,1),u.custom={...N,businessDate:s,startTime:j(s,"hour",1,1),endTime:s};break}w=H(t[0],t[1],"hour");for(let s=0;s<Math.abs(w===0?1:w);s++){let u="";const C=s*(x+1),S=l==="right"?a:O(a).add(C).toNumber(),k=l==="right"?O(f).add(C).toNumber():f,q=b(h,S,k);if(M){const V=m(t[0]).add(1,"hour").format("YYYY-MM-DD HH:mm:ss");u=T(V,"hour",s,o),q.custom={...N,businessDate:u,startTime:j(u,"hour",s,o),endTime:u};continue}u=T(m(d).add(1,"hour").format("YYYY-MM-DD HH:mm:ss"),"hour",s,o),q.custom={...N,startTime:j(u,"hour",s,o),endTime:u}}break}}}return h},{});return Promise.resolve(i)}function se(e){return Object.entries(e).reduce((r,[t,d])=>{const i=Math.max(...Object.keys(d).map(Number));return i>r?r=Number(i):r=Number(r)||0,r},0)}function ie(e,n){const r=JSON.parse(JSON.stringify(e||{}));for(const[t,d]of Object.entries(n)){r[t]||(r[t]={});for(const[i,h]of Object.entries(d)){const p=h,a=r[t]?.[i];a?r[t][i]={...a,...p,custom:{...a.custom,...p.custom||{}}}:r[t][i]=p}}return r}const ae="./style.css";Y.CycleTypeEnum=$,Y.ModeEnum=J,Y.decimal=O,Y.filterIndicatorsCell=re,Y.generateIndicatorsCells=oe,Y.generateUUID=A,Y.getNumColumns=se,Y.handleClearInput=B,Y.initDateRange=te,Y.mergeCellData=ie,Y.stylePath=ae,Y.useData=Z,Object.defineProperty(Y,Symbol.toStringTag,{value:"Module"})}));
|