@antv/s2-vue 1.0.2 → 1.2.0-alpha.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/index.js CHANGED
@@ -22,6 +22,86 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
22
22
  var s2 = require("@antv/s2");
23
23
  var vue = require("vue");
24
24
  var antDesignVue = require("ant-design-vue");
25
+ const EN_US = {
26
+ \u9009\u62E9\u5206\u6790\u4FE1\u606F: "Select Analysis Information",
27
+ \u5207\u6362\u6307\u6807: "Switch indicator",
28
+ \u786E\u5B9A: "Ok",
29
+ \u53D6\u6D88: "Cancel",
30
+ \u91CD\u7F6E: "Reset",
31
+ \u8BF7\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22: "Please enter a keyword search",
32
+ \u641C\u7D22: "Search",
33
+ \u6062\u590D: "Recover",
34
+ "\u5DF2\u9009 {} \u9879": "selected {} item",
35
+ \u6240\u9009\u9879: "selected items",
36
+ \u9009\u62E9\u4E0B\u94BB\u7EF4\u5EA6: "Select drill down dimension",
37
+ \u6062\u590D\u9ED8\u8BA4: "Restore default",
38
+ \u641C\u7D22\u5B57\u6BB5: "Search field",
39
+ \u884C\u5217\u5207\u6362: "Switch Dimensions",
40
+ \u884C\u5934: "Rows",
41
+ \u5217\u5934: "Cols",
42
+ \u503C: "Values",
43
+ \u5C55\u5F00\u5B50\u9879: "Expand Children",
44
+ \u9996\u5B57\u6BCD: "Alphabetical order",
45
+ \u624B\u52A8\u6392\u5E8F: "Custom order",
46
+ \u5176\u4ED6\u5B57\u6BB5: "Other field",
47
+ \u9AD8\u7EA7\u6392\u5E8F: "Advanced order",
48
+ \u8BBE\u7F6E\u987A\u5E8F: "SetManual",
49
+ \u53EF\u9009\u5B57\u6BB5: "Fields",
50
+ "\u6309\u4EE5\u4E0B\u89C4\u5219\u8FDB\u884C\u6392\u5E8F\uFF08\u4F18\u5148\u7EA7\u7531\u4F4E\u5230\u9AD8\uFF09": "Order according to the following rules (from low to high priority)",
51
+ \u6309: "By",
52
+ \u8BF4\u660E: "Description",
53
+ \u590D\u5236\u539F\u59CB\u6570\u636E: "Copy raw data",
54
+ \u590D\u5236\u683C\u5F0F\u5316\u6570\u636E: "Copy formatted data",
55
+ \u4E0B\u8F7D\u539F\u59CB\u6570\u636E: "Download raw data",
56
+ \u4E0B\u8F7D\u683C\u5F0F\u5316\u6570\u636E: "Download formatted data",
57
+ \u64CD\u4F5C\u6210\u529F: "Operation successful",
58
+ \u64CD\u4F5C\u5931\u8D25: "Operation failed",
59
+ \u65F6\u95F4: "Date",
60
+ \u6307\u6807: "Measure",
61
+ \u76EE\u6807\u503C: "Target Value"
62
+ };
63
+ const ZH_CN = {
64
+ \u9009\u62E9\u5206\u6790\u4FE1\u606F: "\u9009\u62E9\u5206\u6790\u4FE1\u606F",
65
+ \u5207\u6362\u6307\u6807: "\u5207\u6362\u6307\u6807",
66
+ \u786E\u5B9A: "\u786E\u5B9A",
67
+ \u53D6\u6D88: "\u53D6\u6D88",
68
+ \u91CD\u7F6E: "\u91CD\u7F6E",
69
+ \u8BF7\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22: "\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22",
70
+ \u641C\u7D22: "\u641C\u7D22",
71
+ \u6062\u590D: "\u6062\u590D",
72
+ "\u5DF2\u9009 {} \u9879": "\u5DF2\u9009 {} \u9879",
73
+ \u6240\u9009\u9879: "\u6240\u9009\u9879",
74
+ \u9009\u62E9\u4E0B\u94BB\u7EF4\u5EA6: "\u9009\u62E9\u4E0B\u94BB\u7EF4\u5EA6",
75
+ \u6062\u590D\u9ED8\u8BA4: "\u6062\u590D\u9ED8\u8BA4",
76
+ \u641C\u7D22\u5B57\u6BB5: "\u641C\u7D22\u5B57\u6BB5",
77
+ \u884C\u5217\u5207\u6362: "\u884C\u5217\u5207\u6362",
78
+ \u884C\u5934: "\u884C\u5934",
79
+ \u5217\u5934: "\u5217\u5934",
80
+ \u503C: "\u503C",
81
+ \u5C55\u5F00\u5B50\u9879: "\u5C55\u5F00\u5B50\u9879",
82
+ \u9996\u5B57\u6BCD: "\u9996\u5B57\u6BCD",
83
+ \u624B\u52A8\u6392\u5E8F: "\u624B\u52A8\u6392\u5E8F",
84
+ \u5176\u4ED6\u5B57\u6BB5: "\u5176\u4ED6\u5B57\u6BB5",
85
+ \u9AD8\u7EA7\u6392\u5E8F: "\u9AD8\u7EA7\u6392\u5E8F",
86
+ \u8BBE\u7F6E\u987A\u5E8F: "\u8BBE\u7F6E\u987A\u5E8F",
87
+ \u53EF\u9009\u5B57\u6BB5: "\u53EF\u9009\u5B57\u6BB5",
88
+ "\u6309\u4EE5\u4E0B\u89C4\u5219\u8FDB\u884C\u6392\u5E8F\uFF08\u4F18\u5148\u7EA7\u7531\u4F4E\u5230\u9AD8\uFF09": "\u6309\u4EE5\u4E0B\u89C4\u5219\u8FDB\u884C\u6392\u5E8F\uFF08\u4F18\u5148\u7EA7\u7531\u4F4E\u5230\u9AD8\uFF09",
89
+ \u6309: "\u6309",
90
+ \u8BF4\u660E: "\u8BF4\u660E",
91
+ \u590D\u5236\u539F\u59CB\u6570\u636E: "\u590D\u5236\u539F\u59CB\u6570\u636E",
92
+ \u590D\u5236\u683C\u5F0F\u5316\u6570\u636E: "\u590D\u5236\u683C\u5F0F\u5316\u6570\u636E",
93
+ \u4E0B\u8F7D\u539F\u59CB\u6570\u636E: "\u4E0B\u8F7D\u539F\u59CB\u6570\u636E",
94
+ \u4E0B\u8F7D\u683C\u5F0F\u5316\u6570\u636E: "\u4E0B\u8F7D\u683C\u5F0F\u5316\u6570\u636E",
95
+ \u64CD\u4F5C\u6210\u529F: "\u64CD\u4F5C\u6210\u529F",
96
+ \u64CD\u4F5C\u5931\u8D25: "\u64CD\u4F5C\u5931\u8D25",
97
+ \u65F6\u95F4: "\u65F6\u95F4",
98
+ \u6307\u6807: "\u6307\u6807",
99
+ \u76EE\u6807\u503C: "\u76EE\u6807\u503C"
100
+ };
101
+ const Locale = {
102
+ zh_CN: ZH_CN,
103
+ en_US: EN_US
104
+ };
25
105
  const SHEET_COMPONENT_DEFAULT_OPTIONS = {
26
106
  tooltip: {
27
107
  showTooltip: true,
@@ -34,6 +114,8 @@ const SHEET_COMPONENT_DEFAULT_OPTIONS = {
34
114
  },
35
115
  showDefaultHeaderActionIcon: true
36
116
  };
117
+ const RESIZE_RENDER_DELAY = 200;
118
+ const DRILL_DOWN_PRE_CLASS = "s2-drill-down";
37
119
  const getBaseSheetComponentOptions = (...options) => s2.customMerge(s2.DEFAULT_OPTIONS, SHEET_COMPONENT_DEFAULT_OPTIONS, ...options);
38
120
  var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
39
121
  var freeGlobal$1 = freeGlobal;
@@ -42,12 +124,12 @@ var root = freeGlobal$1 || freeSelf || Function("return this")();
42
124
  var root$1 = root;
43
125
  var Symbol$1 = root$1.Symbol;
44
126
  var Symbol$2 = Symbol$1;
45
- var objectProto$c = Object.prototype;
46
- var hasOwnProperty$9 = objectProto$c.hasOwnProperty;
47
- var nativeObjectToString$1 = objectProto$c.toString;
127
+ var objectProto$f = Object.prototype;
128
+ var hasOwnProperty$c = objectProto$f.hasOwnProperty;
129
+ var nativeObjectToString$1 = objectProto$f.toString;
48
130
  var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : void 0;
49
131
  function getRawTag(value) {
50
- var isOwn = hasOwnProperty$9.call(value, symToStringTag$1), tag = value[symToStringTag$1];
132
+ var isOwn = hasOwnProperty$c.call(value, symToStringTag$1), tag = value[symToStringTag$1];
51
133
  try {
52
134
  value[symToStringTag$1] = void 0;
53
135
  var unmasked = true;
@@ -63,8 +145,8 @@ function getRawTag(value) {
63
145
  }
64
146
  return result;
65
147
  }
66
- var objectProto$b = Object.prototype;
67
- var nativeObjectToString = objectProto$b.toString;
148
+ var objectProto$e = Object.prototype;
149
+ var nativeObjectToString = objectProto$e.toString;
68
150
  function objectToString(value) {
69
151
  return nativeObjectToString.call(value);
70
152
  }
@@ -79,9 +161,9 @@ function baseGetTag(value) {
79
161
  function isObjectLike(value) {
80
162
  return value != null && typeof value == "object";
81
163
  }
82
- var symbolTag$1 = "[object Symbol]";
164
+ var symbolTag$3 = "[object Symbol]";
83
165
  function isSymbol(value) {
84
- return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$1;
166
+ return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3;
85
167
  }
86
168
  function arrayMap(array, iteratee) {
87
169
  var index2 = -1, length = array == null ? 0 : array.length, result = Array(length);
@@ -93,7 +175,7 @@ function arrayMap(array, iteratee) {
93
175
  var isArray = Array.isArray;
94
176
  var isArray$1 = isArray;
95
177
  var INFINITY$1 = 1 / 0;
96
- var symbolProto$1 = Symbol$2 ? Symbol$2.prototype : void 0, symbolToString = symbolProto$1 ? symbolProto$1.toString : void 0;
178
+ var symbolProto$2 = Symbol$2 ? Symbol$2.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
97
179
  function baseToString(value) {
98
180
  if (typeof value == "string") {
99
181
  return value;
@@ -148,13 +230,13 @@ function toNumber(value) {
148
230
  function identity(value) {
149
231
  return value;
150
232
  }
151
- var asyncTag = "[object AsyncFunction]", funcTag$1 = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
233
+ var asyncTag = "[object AsyncFunction]", funcTag$2 = "[object Function]", genTag$1 = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
152
234
  function isFunction(value) {
153
235
  if (!isObject(value)) {
154
236
  return false;
155
237
  }
156
238
  var tag = baseGetTag(value);
157
- return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;
239
+ return tag == funcTag$2 || tag == genTag$1 || tag == asyncTag || tag == proxyTag;
158
240
  }
159
241
  var coreJsData = root$1["__core-js_shared__"];
160
242
  var coreJsData$1 = coreJsData;
@@ -182,10 +264,10 @@ function toSource(func) {
182
264
  }
183
265
  var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
184
266
  var reIsHostCtor = /^\[object .+?Constructor\]$/;
185
- var funcProto = Function.prototype, objectProto$a = Object.prototype;
267
+ var funcProto = Function.prototype, objectProto$d = Object.prototype;
186
268
  var funcToString = funcProto.toString;
187
- var hasOwnProperty$8 = objectProto$a.hasOwnProperty;
188
- var reIsNative = RegExp("^" + funcToString.call(hasOwnProperty$8).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
269
+ var hasOwnProperty$b = objectProto$d.hasOwnProperty;
270
+ var reIsNative = RegExp("^" + funcToString.call(hasOwnProperty$b).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
189
271
  function baseIsNative(value) {
190
272
  if (!isObject(value) || isMasked(value)) {
191
273
  return false;
@@ -202,6 +284,50 @@ function getNative(object, key) {
202
284
  }
203
285
  var WeakMap = getNative(root$1, "WeakMap");
204
286
  var WeakMap$1 = WeakMap;
287
+ var objectCreate = Object.create;
288
+ var baseCreate = function() {
289
+ function object() {
290
+ }
291
+ return function(proto) {
292
+ if (!isObject(proto)) {
293
+ return {};
294
+ }
295
+ if (objectCreate) {
296
+ return objectCreate(proto);
297
+ }
298
+ object.prototype = proto;
299
+ var result = new object();
300
+ object.prototype = void 0;
301
+ return result;
302
+ };
303
+ }();
304
+ var baseCreate$1 = baseCreate;
305
+ function copyArray(source, array) {
306
+ var index2 = -1, length = source.length;
307
+ array || (array = Array(length));
308
+ while (++index2 < length) {
309
+ array[index2] = source[index2];
310
+ }
311
+ return array;
312
+ }
313
+ var defineProperty = function() {
314
+ try {
315
+ var func = getNative(Object, "defineProperty");
316
+ func({}, "", {});
317
+ return func;
318
+ } catch (e) {
319
+ }
320
+ }();
321
+ var defineProperty$1 = defineProperty;
322
+ function arrayEach(array, iteratee) {
323
+ var index2 = -1, length = array == null ? 0 : array.length;
324
+ while (++index2 < length) {
325
+ if (iteratee(array[index2], index2, array) === false) {
326
+ break;
327
+ }
328
+ }
329
+ return array;
330
+ }
205
331
  var MAX_SAFE_INTEGER$1 = 9007199254740991;
206
332
  var reIsUint = /^(?:0|[1-9]\d*)$/;
207
333
  function isIndex(value, length) {
@@ -209,9 +335,47 @@ function isIndex(value, length) {
209
335
  length = length == null ? MAX_SAFE_INTEGER$1 : length;
210
336
  return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
211
337
  }
338
+ function baseAssignValue(object, key, value) {
339
+ if (key == "__proto__" && defineProperty$1) {
340
+ defineProperty$1(object, key, {
341
+ "configurable": true,
342
+ "enumerable": true,
343
+ "value": value,
344
+ "writable": true
345
+ });
346
+ } else {
347
+ object[key] = value;
348
+ }
349
+ }
212
350
  function eq(value, other) {
213
351
  return value === other || value !== value && other !== other;
214
352
  }
353
+ var objectProto$c = Object.prototype;
354
+ var hasOwnProperty$a = objectProto$c.hasOwnProperty;
355
+ function assignValue(object, key, value) {
356
+ var objValue = object[key];
357
+ if (!(hasOwnProperty$a.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) {
358
+ baseAssignValue(object, key, value);
359
+ }
360
+ }
361
+ function copyObject(source, props, object, customizer) {
362
+ var isNew = !object;
363
+ object || (object = {});
364
+ var index2 = -1, length = props.length;
365
+ while (++index2 < length) {
366
+ var key = props[index2];
367
+ var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;
368
+ if (newValue === void 0) {
369
+ newValue = source[key];
370
+ }
371
+ if (isNew) {
372
+ baseAssignValue(object, key, newValue);
373
+ } else {
374
+ assignValue(object, key, newValue);
375
+ }
376
+ }
377
+ return object;
378
+ }
215
379
  var MAX_SAFE_INTEGER = 9007199254740991;
216
380
  function isLength(value) {
217
381
  return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
@@ -219,9 +383,9 @@ function isLength(value) {
219
383
  function isArrayLike(value) {
220
384
  return value != null && isLength(value.length) && !isFunction(value);
221
385
  }
222
- var objectProto$9 = Object.prototype;
386
+ var objectProto$b = Object.prototype;
223
387
  function isPrototype(value) {
224
- var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto$9;
388
+ var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto$b;
225
389
  return value === proto;
226
390
  }
227
391
  function baseTimes(n, iteratee) {
@@ -231,34 +395,34 @@ function baseTimes(n, iteratee) {
231
395
  }
232
396
  return result;
233
397
  }
234
- var argsTag$2 = "[object Arguments]";
398
+ var argsTag$3 = "[object Arguments]";
235
399
  function baseIsArguments(value) {
236
- return isObjectLike(value) && baseGetTag(value) == argsTag$2;
400
+ return isObjectLike(value) && baseGetTag(value) == argsTag$3;
237
401
  }
238
- var objectProto$8 = Object.prototype;
239
- var hasOwnProperty$7 = objectProto$8.hasOwnProperty;
240
- var propertyIsEnumerable$1 = objectProto$8.propertyIsEnumerable;
402
+ var objectProto$a = Object.prototype;
403
+ var hasOwnProperty$9 = objectProto$a.hasOwnProperty;
404
+ var propertyIsEnumerable$1 = objectProto$a.propertyIsEnumerable;
241
405
  var isArguments = baseIsArguments(function() {
242
406
  return arguments;
243
407
  }()) ? baseIsArguments : function(value) {
244
- return isObjectLike(value) && hasOwnProperty$7.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
408
+ return isObjectLike(value) && hasOwnProperty$9.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
245
409
  };
246
410
  var isArguments$1 = isArguments;
247
411
  function stubFalse() {
248
412
  return false;
249
413
  }
250
- var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports;
251
- var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module;
252
- var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;
253
- var Buffer = moduleExports$1 ? root$1.Buffer : void 0;
254
- var nativeIsBuffer = Buffer ? Buffer.isBuffer : void 0;
414
+ var freeExports$2 = typeof exports == "object" && exports && !exports.nodeType && exports;
415
+ var freeModule$2 = freeExports$2 && typeof module == "object" && module && !module.nodeType && module;
416
+ var moduleExports$2 = freeModule$2 && freeModule$2.exports === freeExports$2;
417
+ var Buffer$1 = moduleExports$2 ? root$1.Buffer : void 0;
418
+ var nativeIsBuffer = Buffer$1 ? Buffer$1.isBuffer : void 0;
255
419
  var isBuffer = nativeIsBuffer || stubFalse;
256
420
  var isBuffer$1 = isBuffer;
257
- var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$2 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", mapTag$4 = "[object Map]", numberTag$1 = "[object Number]", objectTag$2 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$4 = "[object Set]", stringTag$2 = "[object String]", weakMapTag$1 = "[object WeakMap]";
258
- var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
421
+ var argsTag$2 = "[object Arguments]", arrayTag$2 = "[object Array]", boolTag$4 = "[object Boolean]", dateTag$3 = "[object Date]", errorTag$2 = "[object Error]", funcTag$1 = "[object Function]", mapTag$7 = "[object Map]", numberTag$3 = "[object Number]", objectTag$3 = "[object Object]", regexpTag$3 = "[object RegExp]", setTag$7 = "[object Set]", stringTag$4 = "[object String]", weakMapTag$2 = "[object WeakMap]";
422
+ var arrayBufferTag$3 = "[object ArrayBuffer]", dataViewTag$4 = "[object DataView]", float32Tag$2 = "[object Float32Array]", float64Tag$2 = "[object Float64Array]", int8Tag$2 = "[object Int8Array]", int16Tag$2 = "[object Int16Array]", int32Tag$2 = "[object Int32Array]", uint8Tag$2 = "[object Uint8Array]", uint8ClampedTag$2 = "[object Uint8ClampedArray]", uint16Tag$2 = "[object Uint16Array]", uint32Tag$2 = "[object Uint32Array]";
259
423
  var typedArrayTags = {};
260
- typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
261
- typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$2] = typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag] = typedArrayTags[mapTag$4] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] = typedArrayTags[setTag$4] = typedArrayTags[stringTag$2] = typedArrayTags[weakMapTag$1] = false;
424
+ typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = typedArrayTags[uint32Tag$2] = true;
425
+ typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = typedArrayTags[arrayBufferTag$3] = typedArrayTags[boolTag$4] = typedArrayTags[dataViewTag$4] = typedArrayTags[dateTag$3] = typedArrayTags[errorTag$2] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$7] = typedArrayTags[numberTag$3] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$3] = typedArrayTags[setTag$7] = typedArrayTags[stringTag$4] = typedArrayTags[weakMapTag$2] = false;
262
426
  function baseIsTypedArray(value) {
263
427
  return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
264
428
  }
@@ -267,13 +431,13 @@ function baseUnary(func) {
267
431
  return func(value);
268
432
  };
269
433
  }
270
- var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
271
- var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
272
- var moduleExports = freeModule && freeModule.exports === freeExports;
273
- var freeProcess = moduleExports && freeGlobal$1.process;
434
+ var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports;
435
+ var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module;
436
+ var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;
437
+ var freeProcess = moduleExports$1 && freeGlobal$1.process;
274
438
  var nodeUtil = function() {
275
439
  try {
276
- var types = freeModule && freeModule.require && freeModule.require("util").types;
440
+ var types = freeModule$1 && freeModule$1.require && freeModule$1.require("util").types;
277
441
  if (types) {
278
442
  return types;
279
443
  }
@@ -285,12 +449,12 @@ var nodeUtil$1 = nodeUtil;
285
449
  var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray;
286
450
  var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
287
451
  var isTypedArray$1 = isTypedArray;
288
- var objectProto$7 = Object.prototype;
289
- var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
452
+ var objectProto$9 = Object.prototype;
453
+ var hasOwnProperty$8 = objectProto$9.hasOwnProperty;
290
454
  function arrayLikeKeys(value, inherited) {
291
455
  var isArr = isArray$1(value), isArg = !isArr && isArguments$1(value), isBuff = !isArr && !isArg && isBuffer$1(value), isType = !isArr && !isArg && !isBuff && isTypedArray$1(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
292
456
  for (var key in value) {
293
- if ((inherited || hasOwnProperty$6.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) {
457
+ if ((inherited || hasOwnProperty$8.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) {
294
458
  result.push(key);
295
459
  }
296
460
  }
@@ -303,15 +467,15 @@ function overArg(func, transform) {
303
467
  }
304
468
  var nativeKeys = overArg(Object.keys, Object);
305
469
  var nativeKeys$1 = nativeKeys;
306
- var objectProto$6 = Object.prototype;
307
- var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
470
+ var objectProto$8 = Object.prototype;
471
+ var hasOwnProperty$7 = objectProto$8.hasOwnProperty;
308
472
  function baseKeys(object) {
309
473
  if (!isPrototype(object)) {
310
474
  return nativeKeys$1(object);
311
475
  }
312
476
  var result = [];
313
477
  for (var key in Object(object)) {
314
- if (hasOwnProperty$5.call(object, key) && key != "constructor") {
478
+ if (hasOwnProperty$7.call(object, key) && key != "constructor") {
315
479
  result.push(key);
316
480
  }
317
481
  }
@@ -320,6 +484,32 @@ function baseKeys(object) {
320
484
  function keys(object) {
321
485
  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
322
486
  }
487
+ function nativeKeysIn(object) {
488
+ var result = [];
489
+ if (object != null) {
490
+ for (var key in Object(object)) {
491
+ result.push(key);
492
+ }
493
+ }
494
+ return result;
495
+ }
496
+ var objectProto$7 = Object.prototype;
497
+ var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
498
+ function baseKeysIn(object) {
499
+ if (!isObject(object)) {
500
+ return nativeKeysIn(object);
501
+ }
502
+ var isProto = isPrototype(object), result = [];
503
+ for (var key in object) {
504
+ if (!(key == "constructor" && (isProto || !hasOwnProperty$6.call(object, key)))) {
505
+ result.push(key);
506
+ }
507
+ }
508
+ return result;
509
+ }
510
+ function keysIn(object) {
511
+ return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
512
+ }
323
513
  var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/;
324
514
  function isKey(value, object) {
325
515
  if (isArray$1(value)) {
@@ -343,21 +533,21 @@ function hashDelete(key) {
343
533
  return result;
344
534
  }
345
535
  var HASH_UNDEFINED$2 = "__lodash_hash_undefined__";
346
- var objectProto$5 = Object.prototype;
347
- var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
536
+ var objectProto$6 = Object.prototype;
537
+ var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
348
538
  function hashGet(key) {
349
539
  var data = this.__data__;
350
540
  if (nativeCreate$1) {
351
541
  var result = data[key];
352
542
  return result === HASH_UNDEFINED$2 ? void 0 : result;
353
543
  }
354
- return hasOwnProperty$4.call(data, key) ? data[key] : void 0;
544
+ return hasOwnProperty$5.call(data, key) ? data[key] : void 0;
355
545
  }
356
- var objectProto$4 = Object.prototype;
357
- var hasOwnProperty$3 = objectProto$4.hasOwnProperty;
546
+ var objectProto$5 = Object.prototype;
547
+ var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
358
548
  function hashHas(key) {
359
549
  var data = this.__data__;
360
- return nativeCreate$1 ? data[key] !== void 0 : hasOwnProperty$3.call(data, key);
550
+ return nativeCreate$1 ? data[key] !== void 0 : hasOwnProperty$4.call(data, key);
361
551
  }
362
552
  var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
363
553
  function hashSet(key, value) {
@@ -564,6 +754,8 @@ function arrayPush(array, values) {
564
754
  }
565
755
  return array;
566
756
  }
757
+ var getPrototype = overArg(Object.getPrototypeOf, Object);
758
+ var getPrototype$1 = getPrototype;
567
759
  var rsAstralRange$1 = "\\ud800-\\udfff", rsComboMarksRange$1 = "\\u0300-\\u036f", reComboHalfMarksRange$1 = "\\ufe20-\\ufe2f", rsComboSymbolsRange$1 = "\\u20d0-\\u20ff", rsComboRange$1 = rsComboMarksRange$1 + reComboHalfMarksRange$1 + rsComboSymbolsRange$1, rsVarRange$1 = "\\ufe0e\\ufe0f";
568
760
  var rsZWJ$1 = "\\u200d";
569
761
  var reHasUnicode = RegExp("[" + rsZWJ$1 + rsAstralRange$1 + rsComboRange$1 + rsVarRange$1 + "]");
@@ -620,6 +812,24 @@ Stack.prototype["delete"] = stackDelete;
620
812
  Stack.prototype.get = stackGet;
621
813
  Stack.prototype.has = stackHas;
622
814
  Stack.prototype.set = stackSet;
815
+ function baseAssign(object, source) {
816
+ return object && copyObject(source, keys(source), object);
817
+ }
818
+ function baseAssignIn(object, source) {
819
+ return object && copyObject(source, keysIn(source), object);
820
+ }
821
+ var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
822
+ var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
823
+ var moduleExports = freeModule && freeModule.exports === freeExports;
824
+ var Buffer = moduleExports ? root$1.Buffer : void 0, allocUnsafe = Buffer ? Buffer.allocUnsafe : void 0;
825
+ function cloneBuffer(buffer, isDeep) {
826
+ if (isDeep) {
827
+ return buffer.slice();
828
+ }
829
+ var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
830
+ buffer.copy(result);
831
+ return result;
832
+ }
623
833
  function arrayFilter(array, predicate) {
624
834
  var index2 = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];
625
835
  while (++index2 < length) {
@@ -633,19 +843,35 @@ function arrayFilter(array, predicate) {
633
843
  function stubArray() {
634
844
  return [];
635
845
  }
636
- var objectProto$3 = Object.prototype;
637
- var propertyIsEnumerable = objectProto$3.propertyIsEnumerable;
638
- var nativeGetSymbols = Object.getOwnPropertySymbols;
639
- var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
846
+ var objectProto$4 = Object.prototype;
847
+ var propertyIsEnumerable = objectProto$4.propertyIsEnumerable;
848
+ var nativeGetSymbols$1 = Object.getOwnPropertySymbols;
849
+ var getSymbols = !nativeGetSymbols$1 ? stubArray : function(object) {
640
850
  if (object == null) {
641
851
  return [];
642
852
  }
643
853
  object = Object(object);
644
- return arrayFilter(nativeGetSymbols(object), function(symbol) {
854
+ return arrayFilter(nativeGetSymbols$1(object), function(symbol) {
645
855
  return propertyIsEnumerable.call(object, symbol);
646
856
  });
647
857
  };
648
858
  var getSymbols$1 = getSymbols;
859
+ function copySymbols(source, object) {
860
+ return copyObject(source, getSymbols$1(source), object);
861
+ }
862
+ var nativeGetSymbols = Object.getOwnPropertySymbols;
863
+ var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
864
+ var result = [];
865
+ while (object) {
866
+ arrayPush(result, getSymbols$1(object));
867
+ object = getPrototype$1(object);
868
+ }
869
+ return result;
870
+ };
871
+ var getSymbolsIn$1 = getSymbolsIn;
872
+ function copySymbolsIn(source, object) {
873
+ return copyObject(source, getSymbolsIn$1(source), object);
874
+ }
649
875
  function baseGetAllKeys(object, keysFunc, symbolsFunc) {
650
876
  var result = keysFunc(object);
651
877
  return isArray$1(object) ? result : arrayPush(result, symbolsFunc(object));
@@ -653,39 +879,197 @@ function baseGetAllKeys(object, keysFunc, symbolsFunc) {
653
879
  function getAllKeys(object) {
654
880
  return baseGetAllKeys(object, keys, getSymbols$1);
655
881
  }
882
+ function getAllKeysIn(object) {
883
+ return baseGetAllKeys(object, keysIn, getSymbolsIn$1);
884
+ }
656
885
  var DataView = getNative(root$1, "DataView");
657
886
  var DataView$1 = DataView;
658
887
  var Promise$1 = getNative(root$1, "Promise");
659
888
  var Promise$2 = Promise$1;
660
889
  var Set = getNative(root$1, "Set");
661
890
  var Set$1 = Set;
662
- var mapTag$3 = "[object Map]", objectTag$1 = "[object Object]", promiseTag = "[object Promise]", setTag$3 = "[object Set]", weakMapTag = "[object WeakMap]";
663
- var dataViewTag$1 = "[object DataView]";
891
+ var mapTag$6 = "[object Map]", objectTag$2 = "[object Object]", promiseTag = "[object Promise]", setTag$6 = "[object Set]", weakMapTag$1 = "[object WeakMap]";
892
+ var dataViewTag$3 = "[object DataView]";
664
893
  var dataViewCtorString = toSource(DataView$1), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$2), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap$1);
665
894
  var getTag = baseGetTag;
666
- if (DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$1 || Map$1 && getTag(new Map$1()) != mapTag$3 || Promise$2 && getTag(Promise$2.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$3 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag) {
895
+ if (DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$3 || Map$1 && getTag(new Map$1()) != mapTag$6 || Promise$2 && getTag(Promise$2.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$6 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag$1) {
667
896
  getTag = function(value) {
668
- var result = baseGetTag(value), Ctor = result == objectTag$1 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
897
+ var result = baseGetTag(value), Ctor = result == objectTag$2 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
669
898
  if (ctorString) {
670
899
  switch (ctorString) {
671
900
  case dataViewCtorString:
672
- return dataViewTag$1;
901
+ return dataViewTag$3;
673
902
  case mapCtorString:
674
- return mapTag$3;
903
+ return mapTag$6;
675
904
  case promiseCtorString:
676
905
  return promiseTag;
677
906
  case setCtorString:
678
- return setTag$3;
907
+ return setTag$6;
679
908
  case weakMapCtorString:
680
- return weakMapTag;
909
+ return weakMapTag$1;
681
910
  }
682
911
  }
683
912
  return result;
684
913
  };
685
914
  }
686
915
  var getTag$1 = getTag;
916
+ var objectProto$3 = Object.prototype;
917
+ var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
918
+ function initCloneArray(array) {
919
+ var length = array.length, result = new array.constructor(length);
920
+ if (length && typeof array[0] == "string" && hasOwnProperty$3.call(array, "index")) {
921
+ result.index = array.index;
922
+ result.input = array.input;
923
+ }
924
+ return result;
925
+ }
687
926
  var Uint8Array = root$1.Uint8Array;
688
927
  var Uint8Array$1 = Uint8Array;
928
+ function cloneArrayBuffer(arrayBuffer) {
929
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
930
+ new Uint8Array$1(result).set(new Uint8Array$1(arrayBuffer));
931
+ return result;
932
+ }
933
+ function cloneDataView(dataView, isDeep) {
934
+ var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
935
+ return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
936
+ }
937
+ var reFlags = /\w*$/;
938
+ function cloneRegExp(regexp) {
939
+ var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
940
+ result.lastIndex = regexp.lastIndex;
941
+ return result;
942
+ }
943
+ var symbolProto$1 = Symbol$2 ? Symbol$2.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0;
944
+ function cloneSymbol(symbol) {
945
+ return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {};
946
+ }
947
+ function cloneTypedArray(typedArray, isDeep) {
948
+ var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
949
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
950
+ }
951
+ var boolTag$3 = "[object Boolean]", dateTag$2 = "[object Date]", mapTag$5 = "[object Map]", numberTag$2 = "[object Number]", regexpTag$2 = "[object RegExp]", setTag$5 = "[object Set]", stringTag$3 = "[object String]", symbolTag$2 = "[object Symbol]";
952
+ var arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]";
953
+ function initCloneByTag(object, tag, isDeep) {
954
+ var Ctor = object.constructor;
955
+ switch (tag) {
956
+ case arrayBufferTag$2:
957
+ return cloneArrayBuffer(object);
958
+ case boolTag$3:
959
+ case dateTag$2:
960
+ return new Ctor(+object);
961
+ case dataViewTag$2:
962
+ return cloneDataView(object, isDeep);
963
+ case float32Tag$1:
964
+ case float64Tag$1:
965
+ case int8Tag$1:
966
+ case int16Tag$1:
967
+ case int32Tag$1:
968
+ case uint8Tag$1:
969
+ case uint8ClampedTag$1:
970
+ case uint16Tag$1:
971
+ case uint32Tag$1:
972
+ return cloneTypedArray(object, isDeep);
973
+ case mapTag$5:
974
+ return new Ctor();
975
+ case numberTag$2:
976
+ case stringTag$3:
977
+ return new Ctor(object);
978
+ case regexpTag$2:
979
+ return cloneRegExp(object);
980
+ case setTag$5:
981
+ return new Ctor();
982
+ case symbolTag$2:
983
+ return cloneSymbol(object);
984
+ }
985
+ }
986
+ function initCloneObject(object) {
987
+ return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate$1(getPrototype$1(object)) : {};
988
+ }
989
+ var mapTag$4 = "[object Map]";
990
+ function baseIsMap(value) {
991
+ return isObjectLike(value) && getTag$1(value) == mapTag$4;
992
+ }
993
+ var nodeIsMap = nodeUtil$1 && nodeUtil$1.isMap;
994
+ var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
995
+ var isMap$1 = isMap;
996
+ var setTag$4 = "[object Set]";
997
+ function baseIsSet(value) {
998
+ return isObjectLike(value) && getTag$1(value) == setTag$4;
999
+ }
1000
+ var nodeIsSet = nodeUtil$1 && nodeUtil$1.isSet;
1001
+ var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
1002
+ var isSet$1 = isSet;
1003
+ var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG$1 = 4;
1004
+ var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$2 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag$3 = "[object Map]", numberTag$1 = "[object Number]", objectTag$1 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$3 = "[object Set]", stringTag$2 = "[object String]", symbolTag$1 = "[object Symbol]", weakMapTag = "[object WeakMap]";
1005
+ var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
1006
+ var cloneableTags = {};
1007
+ cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$2] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$3] = cloneableTags[numberTag$1] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$3] = cloneableTags[stringTag$2] = cloneableTags[symbolTag$1] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
1008
+ cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
1009
+ function baseClone(value, bitmask, customizer, key, object, stack) {
1010
+ var result, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG$1;
1011
+ if (customizer) {
1012
+ result = object ? customizer(value, key, object, stack) : customizer(value);
1013
+ }
1014
+ if (result !== void 0) {
1015
+ return result;
1016
+ }
1017
+ if (!isObject(value)) {
1018
+ return value;
1019
+ }
1020
+ var isArr = isArray$1(value);
1021
+ if (isArr) {
1022
+ result = initCloneArray(value);
1023
+ if (!isDeep) {
1024
+ return copyArray(value, result);
1025
+ }
1026
+ } else {
1027
+ var tag = getTag$1(value), isFunc = tag == funcTag || tag == genTag;
1028
+ if (isBuffer$1(value)) {
1029
+ return cloneBuffer(value, isDeep);
1030
+ }
1031
+ if (tag == objectTag$1 || tag == argsTag$1 || isFunc && !object) {
1032
+ result = isFlat || isFunc ? {} : initCloneObject(value);
1033
+ if (!isDeep) {
1034
+ return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));
1035
+ }
1036
+ } else {
1037
+ if (!cloneableTags[tag]) {
1038
+ return object ? value : {};
1039
+ }
1040
+ result = initCloneByTag(value, tag, isDeep);
1041
+ }
1042
+ }
1043
+ stack || (stack = new Stack());
1044
+ var stacked = stack.get(value);
1045
+ if (stacked) {
1046
+ return stacked;
1047
+ }
1048
+ stack.set(value, result);
1049
+ if (isSet$1(value)) {
1050
+ value.forEach(function(subValue) {
1051
+ result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
1052
+ });
1053
+ } else if (isMap$1(value)) {
1054
+ value.forEach(function(subValue, key2) {
1055
+ result.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
1056
+ });
1057
+ }
1058
+ var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;
1059
+ var props = isArr ? void 0 : keysFunc(value);
1060
+ arrayEach(props || value, function(subValue, key2) {
1061
+ if (props) {
1062
+ key2 = subValue;
1063
+ subValue = value[key2];
1064
+ }
1065
+ assignValue(result, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
1066
+ });
1067
+ return result;
1068
+ }
1069
+ var CLONE_SYMBOLS_FLAG = 4;
1070
+ function clone(value) {
1071
+ return baseClone(value, CLONE_SYMBOLS_FLAG);
1072
+ }
689
1073
  var HASH_UNDEFINED = "__lodash_hash_undefined__";
690
1074
  function setCacheAdd(value) {
691
1075
  this.__data__.set(value, HASH_UNDEFINED);
@@ -1152,6 +1536,19 @@ function debounce(func, wait, options) {
1152
1536
  debounced.flush = flush;
1153
1537
  return debounced;
1154
1538
  }
1539
+ function baseFilter(collection, predicate) {
1540
+ var result = [];
1541
+ baseEach$1(collection, function(value, index2, collection2) {
1542
+ if (predicate(value, index2, collection2)) {
1543
+ result.push(value);
1544
+ }
1545
+ });
1546
+ return result;
1547
+ }
1548
+ function filter(collection, predicate) {
1549
+ var func = isArray$1(collection) ? arrayFilter : baseFilter;
1550
+ return func(collection, baseIteratee(predicate));
1551
+ }
1155
1552
  var stringTag = "[object String]";
1156
1553
  function isString(value) {
1157
1554
  return typeof value == "string" || !isArray$1(value) && isObjectLike(value) && baseGetTag(value) == stringTag;
@@ -1224,7 +1621,6 @@ function size(collection) {
1224
1621
  }
1225
1622
  return baseKeys(collection).length;
1226
1623
  }
1227
- const RESIZE_RENDER_DELAY = 200;
1228
1624
  const analyzeAdaptive = (paramsContainer, adaptive) => {
1229
1625
  var _a, _b, _c;
1230
1626
  let container = paramsContainer;
@@ -1248,20 +1644,20 @@ const createResizeObserver = (params) => {
1248
1644
  if (!actualWrapper || !container || !adaptive || !s22) {
1249
1645
  return;
1250
1646
  }
1251
- const render = (width, height) => {
1647
+ const render2 = (width, height) => {
1252
1648
  s22 == null ? void 0 : s22.changeSheetSize(width, height);
1253
1649
  s22 == null ? void 0 : s22.render(false);
1254
1650
  };
1255
- const debounceRender = debounce(render, RESIZE_RENDER_DELAY);
1651
+ const debounceRender = debounce(render2, RESIZE_RENDER_DELAY);
1256
1652
  const onResize = () => {
1257
- const { clientWidth: nodeWidth, clientHeight: nodeHeight } = container;
1258
- const width = adaptiveWidth ? Math.floor(nodeWidth != null ? nodeWidth : s22.options.width) : s22.options.width;
1259
- const height = adaptiveHeight ? Math.floor(nodeHeight != null ? nodeHeight : s22.options.height) : s22.options.height;
1653
+ const { clientWidth: containerWidth, clientHeight: containerHeight } = container;
1654
+ const width = adaptiveWidth ? Math.floor(containerWidth != null ? containerWidth : s22.options.width) : s22.options.width;
1655
+ const height = adaptiveHeight ? Math.floor(containerHeight != null ? containerHeight : s22.options.height) : s22.options.height;
1260
1656
  if (!adaptiveWidth && !adaptiveHeight) {
1261
1657
  return;
1262
1658
  }
1263
1659
  if (isFirstRender) {
1264
- render(width, height);
1660
+ render2(width, height);
1265
1661
  isFirstRender = false;
1266
1662
  return;
1267
1663
  }
@@ -1279,79 +1675,100 @@ const createResizeObserver = (params) => {
1279
1675
  resizeObserver.unobserve(actualWrapper);
1280
1676
  };
1281
1677
  };
1282
- const EN_US = {
1283
- \u9009\u62E9\u5206\u6790\u4FE1\u606F: "Select Analysis Information",
1284
- \u5207\u6362\u6307\u6807: "Switch indicator",
1285
- \u786E\u5B9A: "Ok",
1286
- \u53D6\u6D88: "Cancel",
1287
- \u91CD\u7F6E: "Reset",
1288
- \u8BF7\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22: "Please enter a keyword search",
1289
- \u641C\u7D22: "Search",
1290
- \u6062\u590D: "Recover",
1291
- "\u5DF2\u9009 {} \u9879": "selected {} item",
1292
- \u6240\u9009\u9879: "selected items",
1293
- \u9009\u62E9\u4E0B\u94BB\u7EF4\u5EA6: "Select drill down dimension",
1294
- \u6062\u590D\u9ED8\u8BA4: "Restore default",
1295
- \u641C\u7D22\u5B57\u6BB5: "Search field",
1296
- \u884C\u5217\u5207\u6362: "Switch Dimensions",
1297
- \u884C\u5934: "Rows",
1298
- \u5217\u5934: "Cols",
1299
- \u503C: "Values",
1300
- \u5C55\u5F00\u5B50\u9879: "Expand Children",
1301
- \u9996\u5B57\u6BCD: "Alphabetical order",
1302
- \u624B\u52A8\u6392\u5E8F: "Custom order",
1303
- \u5176\u4ED6\u5B57\u6BB5: "Other field",
1304
- \u9AD8\u7EA7\u6392\u5E8F: "Advanced order",
1305
- \u8BBE\u7F6E\u987A\u5E8F: "SetManual",
1306
- \u53EF\u9009\u5B57\u6BB5: "Fields",
1307
- "\u6309\u4EE5\u4E0B\u89C4\u5219\u8FDB\u884C\u6392\u5E8F\uFF08\u4F18\u5148\u7EA7\u7531\u4F4E\u5230\u9AD8\uFF09": "Order according to the following rules (from low to high priority)",
1308
- \u6309: "By",
1309
- \u8BF4\u660E: "Description",
1310
- \u590D\u5236\u539F\u59CB\u6570\u636E: "Copy raw data",
1311
- \u590D\u5236\u683C\u5F0F\u5316\u6570\u636E: "Copy formatted data",
1312
- \u4E0B\u8F7D\u539F\u59CB\u6570\u636E: "Download raw data",
1313
- \u4E0B\u8F7D\u683C\u5F0F\u5316\u6570\u636E: "Download formatted data",
1314
- \u64CD\u4F5C\u6210\u529F: "Operation successful",
1315
- \u64CD\u4F5C\u5931\u8D25: "Operation failed"
1678
+ const getDrillDownCache = (spreadsheet, meta) => {
1679
+ const drillDownDataCache = spreadsheet.store.get("drillDownDataCache", []);
1680
+ const cache = drillDownDataCache.find((dc) => dc.rowId === meta.id);
1681
+ return {
1682
+ drillDownDataCache,
1683
+ drillDownCurrentCache: cache
1684
+ };
1316
1685
  };
1317
- const ZH_CN = {
1318
- \u9009\u62E9\u5206\u6790\u4FE1\u606F: "\u9009\u62E9\u5206\u6790\u4FE1\u606F",
1319
- \u5207\u6362\u6307\u6807: "\u5207\u6362\u6307\u6807",
1320
- \u786E\u5B9A: "\u786E\u5B9A",
1321
- \u53D6\u6D88: "\u53D6\u6D88",
1322
- \u91CD\u7F6E: "\u91CD\u7F6E",
1323
- \u8BF7\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22: "\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22",
1324
- \u641C\u7D22: "\u641C\u7D22",
1325
- \u6062\u590D: "\u6062\u590D",
1326
- "\u5DF2\u9009 {} \u9879": "\u5DF2\u9009 {} \u9879",
1327
- \u6240\u9009\u9879: "\u6240\u9009\u9879",
1328
- \u9009\u62E9\u4E0B\u94BB\u7EF4\u5EA6: "\u9009\u62E9\u4E0B\u94BB\u7EF4\u5EA6",
1329
- \u6062\u590D\u9ED8\u8BA4: "\u6062\u590D\u9ED8\u8BA4",
1330
- \u641C\u7D22\u5B57\u6BB5: "\u641C\u7D22\u5B57\u6BB5",
1331
- \u884C\u5217\u5207\u6362: "\u884C\u5217\u5207\u6362",
1332
- \u884C\u5934: "\u884C\u5934",
1333
- \u5217\u5934: "\u5217\u5934",
1334
- \u503C: "\u503C",
1335
- \u5C55\u5F00\u5B50\u9879: "\u5C55\u5F00\u5B50\u9879",
1336
- \u9996\u5B57\u6BCD: "\u9996\u5B57\u6BCD",
1337
- \u624B\u52A8\u6392\u5E8F: "\u624B\u52A8\u6392\u5E8F",
1338
- \u5176\u4ED6\u5B57\u6BB5: "\u5176\u4ED6\u5B57\u6BB5",
1339
- \u9AD8\u7EA7\u6392\u5E8F: "\u9AD8\u7EA7\u6392\u5E8F",
1340
- \u8BBE\u7F6E\u987A\u5E8F: "\u8BBE\u7F6E\u987A\u5E8F",
1341
- \u53EF\u9009\u5B57\u6BB5: "\u53EF\u9009\u5B57\u6BB5",
1342
- "\u6309\u4EE5\u4E0B\u89C4\u5219\u8FDB\u884C\u6392\u5E8F\uFF08\u4F18\u5148\u7EA7\u7531\u4F4E\u5230\u9AD8\uFF09": "\u6309\u4EE5\u4E0B\u89C4\u5219\u8FDB\u884C\u6392\u5E8F\uFF08\u4F18\u5148\u7EA7\u7531\u4F4E\u5230\u9AD8\uFF09",
1343
- \u6309: "\u6309",
1344
- \u8BF4\u660E: "\u8BF4\u660E",
1345
- \u590D\u5236\u539F\u59CB\u6570\u636E: "\u590D\u5236\u539F\u59CB\u6570\u636E",
1346
- \u590D\u5236\u683C\u5F0F\u5316\u6570\u636E: "\u590D\u5236\u683C\u5F0F\u5316\u6570\u636E",
1347
- \u4E0B\u8F7D\u539F\u59CB\u6570\u636E: "\u4E0B\u8F7D\u539F\u59CB\u6570\u636E",
1348
- \u4E0B\u8F7D\u683C\u5F0F\u5316\u6570\u636E: "\u4E0B\u8F7D\u683C\u5F0F\u5316\u6570\u636E",
1349
- \u64CD\u4F5C\u6210\u529F: "\u64CD\u4F5C\u6210\u529F",
1350
- \u64CD\u4F5C\u5931\u8D25: "\u64CD\u4F5C\u5931\u8D25"
1686
+ const handleActionIconClick = (params) => {
1687
+ const { meta, event, callback } = params;
1688
+ const { spreadsheet } = meta;
1689
+ spreadsheet.store.set("drillDownNode", meta);
1690
+ const { drillDownDataCache, drillDownCurrentCache } = getDrillDownCache(spreadsheet, meta);
1691
+ const cache = (drillDownCurrentCache == null ? void 0 : drillDownCurrentCache.drillField) ? [drillDownCurrentCache == null ? void 0 : drillDownCurrentCache.drillField] : [];
1692
+ const disabled = [];
1693
+ drillDownDataCache.forEach((val) => {
1694
+ if (meta.id.includes(val.rowId) && meta.id !== val.rowId) {
1695
+ disabled.push(val.drillField);
1696
+ }
1697
+ });
1698
+ if (event) {
1699
+ spreadsheet.emit(s2.S2Event.GLOBAL_ACTION_ICON_CLICK, event);
1700
+ }
1701
+ callback({
1702
+ sheetInstance: spreadsheet,
1703
+ cacheDrillFields: cache,
1704
+ disabledFields: disabled,
1705
+ event
1706
+ });
1351
1707
  };
1352
- const Locale = {
1353
- zh_CN: ZH_CN,
1354
- en_US: EN_US
1708
+ const defaultPartDrillDownDisplayCondition = (meta) => {
1709
+ var _a;
1710
+ const s22 = meta.spreadsheet;
1711
+ const { fields } = s22.dataCfg;
1712
+ const iconLevel = ((_a = fields.rows) == null ? void 0 : _a.length) - 1;
1713
+ const isValueInCols = !isEmpty(fields.values) ? s22.isValueInCols() : true;
1714
+ return iconLevel <= meta.level && s22.isHierarchyTreeType() && isValueInCols && !meta.isGrandTotals;
1715
+ };
1716
+ const buildDrillDownOptions = (options, partDrillDown, callback) => {
1717
+ var _a;
1718
+ const nextHeaderIcons = ((_a = options.headerActionIcons) == null ? void 0 : _a.length) ? [...options.headerActionIcons] : [];
1719
+ if (!isEmpty(partDrillDown)) {
1720
+ const drillDownActionIcon = {
1721
+ belongsCell: "rowCell",
1722
+ iconNames: ["DrillDownIcon"],
1723
+ defaultHide: true,
1724
+ displayCondition: partDrillDown.displayCondition || defaultPartDrillDownDisplayCondition,
1725
+ action: (actionIconProps) => {
1726
+ const { iconName, meta, event } = actionIconProps;
1727
+ if (iconName === "DrillDownIcon") {
1728
+ meta.spreadsheet.store.set("drillDownNode", meta);
1729
+ handleActionIconClick({
1730
+ meta,
1731
+ event,
1732
+ callback
1733
+ });
1734
+ }
1735
+ }
1736
+ };
1737
+ nextHeaderIcons.push(drillDownActionIcon);
1738
+ }
1739
+ return __spreadProps(__spreadValues({}, options), {
1740
+ headerActionIcons: nextHeaderIcons
1741
+ });
1742
+ };
1743
+ const handleDrillDown = (params) => {
1744
+ const { fetchData, spreadsheet, drillFields, drillItemsNum = -1 } = params;
1745
+ spreadsheet.store.set("drillItemsNum", drillItemsNum);
1746
+ const meta = spreadsheet.store.get("drillDownNode");
1747
+ const { drillDownDataCache, drillDownCurrentCache } = getDrillDownCache(spreadsheet, meta);
1748
+ let newDrillDownDataCache = clone(drillDownDataCache);
1749
+ if (drillDownCurrentCache) {
1750
+ newDrillDownDataCache = filter(drillDownDataCache, (cache) => cache.rowId !== meta.id);
1751
+ }
1752
+ if (!fetchData) {
1753
+ return;
1754
+ }
1755
+ fetchData(meta, drillFields).then((info) => {
1756
+ const { drillData, drillField } = info;
1757
+ spreadsheet.dataSet.transformDrillDownData(drillField, drillData, meta);
1758
+ if (!isEmpty(drillData)) {
1759
+ const drillLevel = meta.level + 1;
1760
+ const newDrillDownData = {
1761
+ rowId: meta.id,
1762
+ drillLevel,
1763
+ drillData,
1764
+ drillField
1765
+ };
1766
+ newDrillDownDataCache.push(newDrillDownData);
1767
+ spreadsheet.store.set("drillDownDataCache", newDrillDownDataCache);
1768
+ }
1769
+ spreadsheet.interaction.reset();
1770
+ spreadsheet.render(false);
1771
+ });
1355
1772
  };
1356
1773
  s2.extendLocale(Locale);
1357
1774
  const useExpose = (expose) => {
@@ -1438,7 +1855,7 @@ var _export_sfc = (sfc, props) => {
1438
1855
  return target;
1439
1856
  };
1440
1857
  const PRE_CLASS = `${s2.S2_PREFIX_CLS}-pagination`;
1441
- const _sfc_main$d = vue.defineComponent({
1858
+ const _sfc_main$e = vue.defineComponent({
1442
1859
  name: "s2-pagination",
1443
1860
  props: {
1444
1861
  current: {
@@ -1469,7 +1886,7 @@ const _sfc_main$d = vue.defineComponent({
1469
1886
  AntDPagination: antDesignVue.Pagination
1470
1887
  }
1471
1888
  });
1472
- function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
1889
+ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
1473
1890
  const _component_AntDPagination = vue.resolveComponent("AntDPagination");
1474
1891
  return vue.openBlock(), vue.createElementBlock("div", {
1475
1892
  class: vue.normalizeClass(_ctx.PRE_CLASS)
@@ -1490,8 +1907,8 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
1490
1907
  }, vue.toDisplayString(_ctx.i18n("\u5171\u8BA1")) + " " + vue.toDisplayString(_ctx.total || " - ") + " " + vue.toDisplayString(_ctx.i18n("\u6761")), 3)
1491
1908
  ], 2);
1492
1909
  }
1493
- var S2Pagination = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$d]]);
1494
- const _sfc_main$c = vue.defineComponent({
1910
+ var S2Pagination = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$e]]);
1911
+ const _sfc_main$d = vue.defineComponent({
1495
1912
  name: "TooltipDetail",
1496
1913
  props: ["list"],
1497
1914
  setup() {
@@ -1500,7 +1917,7 @@ const _sfc_main$c = vue.defineComponent({
1500
1917
  };
1501
1918
  }
1502
1919
  });
1503
- function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
1920
+ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
1504
1921
  return vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.list, (item, index2) => {
1505
1922
  return vue.openBlock(), vue.createElementBlock("div", {
1506
1923
  key: `${item.value}-${index2}`,
@@ -1519,8 +1936,8 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
1519
1936
  ], 2);
1520
1937
  }), 128);
1521
1938
  }
1522
- var TooltipDetail = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$c]]);
1523
- const _sfc_main$b = vue.defineComponent({
1939
+ var TooltipDetail = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$d]]);
1940
+ const _sfc_main$c = vue.defineComponent({
1524
1941
  name: "TooltipHeadInfo",
1525
1942
  props: ["rows", "cols"],
1526
1943
  setup() {
@@ -1530,8 +1947,8 @@ const _sfc_main$b = vue.defineComponent({
1530
1947
  },
1531
1948
  components: {}
1532
1949
  });
1533
- const _hoisted_1$1 = { key: 0 };
1534
- function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
1950
+ const _hoisted_1$4 = { key: 0 };
1951
+ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
1535
1952
  var _a, _b, _c, _d;
1536
1953
  return ((_a = _ctx.cols) == null ? void 0 : _a.length) || ((_b = _ctx.rows) == null ? void 0 : _b.length) ? (vue.openBlock(), vue.createElementBlock("div", {
1537
1954
  key: 0,
@@ -1542,7 +1959,7 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
1542
1959
  key: col.value
1543
1960
  }, vue.toDisplayString(col.value) + "/", 1);
1544
1961
  }), 128)),
1545
- ((_c = _ctx.cols) == null ? void 0 : _c.length) > 0 && ((_d = _ctx.rows) == null ? void 0 : _d.length) > 0 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$1, "\uFF0C")) : vue.createCommentVNode("", true),
1962
+ ((_c = _ctx.cols) == null ? void 0 : _c.length) > 0 && ((_d = _ctx.rows) == null ? void 0 : _d.length) > 0 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$4, "\uFF0C")) : vue.createCommentVNode("", true),
1546
1963
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.rows, (row) => {
1547
1964
  return vue.openBlock(), vue.createElementBlock("span", {
1548
1965
  key: row.value
@@ -1550,8 +1967,8 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
1550
1967
  }), 128))
1551
1968
  ], 2)) : vue.createCommentVNode("", true);
1552
1969
  }
1553
- var TooltipHeadInfo = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b]]);
1554
- const _sfc_main$a = vue.defineComponent({
1970
+ var TooltipHeadInfo = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$c]]);
1971
+ const _sfc_main$b = vue.defineComponent({
1555
1972
  name: "TooltipInfos",
1556
1973
  props: ["infos"],
1557
1974
  setup() {
@@ -1561,13 +1978,13 @@ const _sfc_main$a = vue.defineComponent({
1561
1978
  },
1562
1979
  components: {}
1563
1980
  });
1564
- function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
1981
+ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
1565
1982
  return vue.openBlock(), vue.createElementBlock("div", {
1566
1983
  class: vue.normalizeClass(`${_ctx.TOOLTIP_PREFIX_CLS}-infos`)
1567
1984
  }, vue.toDisplayString(_ctx.infos), 3);
1568
1985
  }
1569
- var TooltipInfos = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$a]]);
1570
- const _sfc_main$9 = vue.defineComponent({
1986
+ var TooltipInfos = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b]]);
1987
+ const _sfc_main$a = vue.defineComponent({
1571
1988
  name: "TooltipSimpleTips",
1572
1989
  props: ["name", "tips"],
1573
1990
  setup() {
@@ -1577,7 +1994,7 @@ const _sfc_main$9 = vue.defineComponent({
1577
1994
  },
1578
1995
  components: {}
1579
1996
  });
1580
- function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
1997
+ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
1581
1998
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
1582
1999
  _ctx.name ? (vue.openBlock(), vue.createElementBlock("div", {
1583
2000
  key: 0,
@@ -1589,21 +2006,27 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
1589
2006
  }, vue.toDisplayString(_ctx.tips), 3)) : vue.createCommentVNode("", true)
1590
2007
  ], 64);
1591
2008
  }
1592
- var TooltipSimpleTips = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$9]]);
1593
- const _sfc_main$8 = vue.defineComponent({
2009
+ var TooltipSimpleTips = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$a]]);
2010
+ const _sfc_main$9 = vue.defineComponent({
1594
2011
  name: "TooltipSummary",
1595
2012
  props: ["summaries"],
1596
2013
  setup(props) {
1597
- const count = vue.computed(() => reduce(props.summaries, (pre, next) => pre + size(next == null ? void 0 : next.selectedData), 0));
2014
+ const summaryInfo = vue.computed(() => reduce(props.summaries, (pre, next) => {
2015
+ pre.count += size(next == null ? void 0 : next.selectedData);
2016
+ if (next.value || next.name) {
2017
+ pre.summaries.push(next);
2018
+ }
2019
+ return pre;
2020
+ }, { count: 0, summaries: [] }));
1598
2021
  return {
1599
- count: count.value,
2022
+ summaryInfo,
1600
2023
  i18n: s2.i18n,
1601
2024
  TOOLTIP_PREFIX_CLS: s2.TOOLTIP_PREFIX_CLS
1602
2025
  };
1603
2026
  },
1604
2027
  components: {}
1605
2028
  });
1606
- function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
2029
+ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
1607
2030
  return vue.openBlock(), vue.createElementBlock("div", {
1608
2031
  class: vue.normalizeClass(`${_ctx.TOOLTIP_PREFIX_CLS}-summary`)
1609
2032
  }, [
@@ -1612,10 +2035,10 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
1612
2035
  }, [
1613
2036
  vue.createElementVNode("span", {
1614
2037
  class: vue.normalizeClass(`${_ctx.TOOLTIP_PREFIX_CLS}-selected`)
1615
- }, vue.toDisplayString(_ctx.count) + " " + vue.toDisplayString(_ctx.i18n("\u9879")), 3),
2038
+ }, vue.toDisplayString(_ctx.summaryInfo.count) + " " + vue.toDisplayString(_ctx.i18n("\u9879")), 3),
1616
2039
  vue.createTextVNode(" " + vue.toDisplayString(_ctx.i18n("\u5DF2\u9009\u62E9")), 1)
1617
2040
  ], 2),
1618
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.summaries, (summary) => {
2041
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.summaryInfo.summaries, (summary) => {
1619
2042
  return vue.openBlock(), vue.createElementBlock("div", {
1620
2043
  key: `${summary.name}-${summary.value}`,
1621
2044
  class: vue.normalizeClass(`${_ctx.TOOLTIP_PREFIX_CLS}-summary-item`)
@@ -1630,8 +2053,8 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
1630
2053
  }), 128))
1631
2054
  ], 2);
1632
2055
  }
1633
- var TooltipSummary = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$8]]);
1634
- const _sfc_main$7 = vue.defineComponent({
2056
+ var TooltipSummary = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$9]]);
2057
+ const _sfc_main$8 = vue.defineComponent({
1635
2058
  name: "TooltipOperatorTitle",
1636
2059
  props: ["menu"],
1637
2060
  setup(props) {
@@ -1642,21 +2065,21 @@ const _sfc_main$7 = vue.defineComponent({
1642
2065
  };
1643
2066
  }
1644
2067
  });
1645
- const _hoisted_1 = ["innerHTML"];
1646
- function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
2068
+ const _hoisted_1$3 = ["innerHTML"];
2069
+ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
1647
2070
  return vue.openBlock(), vue.createElementBlock("span", null, [
1648
2071
  _ctx.icon ? (vue.openBlock(), vue.createElementBlock("span", {
1649
2072
  key: 0,
1650
2073
  innerHTML: _ctx.icon,
1651
2074
  class: vue.normalizeClass(`${_ctx.TOOLTIP_PREFIX_CLS}-operator-icon`)
1652
- }, null, 10, _hoisted_1)) : vue.createCommentVNode("", true),
2075
+ }, null, 10, _hoisted_1$3)) : vue.createCommentVNode("", true),
1653
2076
  vue.createElementVNode("span", {
1654
2077
  class: vue.normalizeClass(`${_ctx.TOOLTIP_PREFIX_CLS}-operator-text`)
1655
2078
  }, vue.toDisplayString(_ctx.menu.text), 3)
1656
2079
  ]);
1657
2080
  }
1658
- var TooltipOperatorTitle = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7]]);
1659
- const _sfc_main$6 = vue.defineComponent({
2081
+ var TooltipOperatorTitle = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$8]]);
2082
+ const _sfc_main$7 = vue.defineComponent({
1660
2083
  name: "TooltipOperatorMenu",
1661
2084
  props: ["menu", "cell"],
1662
2085
  setup(props) {
@@ -1666,6 +2089,7 @@ const _sfc_main$6 = vue.defineComponent({
1666
2089
  };
1667
2090
  return {
1668
2091
  onMenuTitleClick,
2092
+ isEmpty,
1669
2093
  TOOLTIP_PREFIX_CLS: s2.TOOLTIP_PREFIX_CLS
1670
2094
  };
1671
2095
  },
@@ -1675,53 +2099,67 @@ const _sfc_main$6 = vue.defineComponent({
1675
2099
  TooltipOperatorTitle
1676
2100
  }
1677
2101
  });
1678
- function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
2102
+ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
1679
2103
  const _component_TooltipOperatorTitle = vue.resolveComponent("TooltipOperatorTitle");
1680
2104
  const _component_TooltipOperatorMenu = vue.resolveComponent("TooltipOperatorMenu");
1681
2105
  const _component_MenuItem = vue.resolveComponent("MenuItem");
1682
2106
  const _component_SubMenu = vue.resolveComponent("SubMenu");
1683
- return vue.openBlock(), vue.createBlock(_component_SubMenu, {
1684
- key: _ctx.menu.key,
1685
- popupClassName: `${_ctx.TOOLTIP_PREFIX_CLS}-operator-submenu-popup`,
1686
- onTitleClick: _ctx.onMenuTitleClick
1687
- }, {
1688
- title: vue.withCtx(() => [
1689
- vue.createVNode(_component_TooltipOperatorTitle, {
1690
- menu: _ctx.menu,
1691
- onClick: _ctx.onMenuTitleClick
1692
- }, null, 8, ["menu", "onClick"])
1693
- ]),
1694
- default: vue.withCtx(() => [
1695
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.menu.children, (subMenu) => {
1696
- var _a;
1697
- return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
1698
- key: subMenu.key
1699
- }, [
1700
- ((_a = subMenu == null ? void 0 : subMenu.children) == null ? void 0 : _a.length) ? (vue.openBlock(), vue.createBlock(_component_TooltipOperatorMenu, {
1701
- key: 0,
1702
- menu: subMenu,
1703
- cell: _ctx.cell
1704
- }, null, 8, ["menu", "cell"])) : (vue.openBlock(), vue.createBlock(_component_MenuItem, {
1705
- title: subMenu.text,
2107
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
2108
+ !_ctx.isEmpty(_ctx.menu.children) ? (vue.openBlock(), vue.createBlock(_component_SubMenu, {
2109
+ key: _ctx.menu.key,
2110
+ popupClassName: `${_ctx.TOOLTIP_PREFIX_CLS}-operator-submenu-popup`,
2111
+ onTitleClick: _ctx.onMenuTitleClick
2112
+ }, {
2113
+ title: vue.withCtx(() => [
2114
+ vue.createVNode(_component_TooltipOperatorTitle, {
2115
+ menu: _ctx.menu,
2116
+ onClick: _ctx.onMenuTitleClick
2117
+ }, null, 8, ["menu", "onClick"])
2118
+ ]),
2119
+ default: vue.withCtx(() => [
2120
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.menu.children, (subMenu) => {
2121
+ var _a;
2122
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
1706
2123
  key: subMenu.key
1707
- }, {
1708
- default: vue.withCtx(() => [
1709
- vue.createVNode(_component_TooltipOperatorTitle, {
1710
- menu: subMenu,
1711
- onClick: _ctx.onMenuTitleClick
1712
- }, null, 8, ["menu", "onClick"])
1713
- ]),
1714
- _: 2
1715
- }, 1032, ["title"]))
1716
- ], 64);
1717
- }), 128))
1718
- ]),
1719
- _: 1
1720
- }, 8, ["popupClassName", "onTitleClick"]);
2124
+ }, [
2125
+ ((_a = subMenu == null ? void 0 : subMenu.children) == null ? void 0 : _a.length) ? (vue.openBlock(), vue.createBlock(_component_TooltipOperatorMenu, {
2126
+ key: 0,
2127
+ menu: subMenu,
2128
+ cell: _ctx.cell
2129
+ }, null, 8, ["menu", "cell"])) : (vue.openBlock(), vue.createBlock(_component_MenuItem, {
2130
+ title: subMenu.text,
2131
+ key: subMenu.key
2132
+ }, {
2133
+ default: vue.withCtx(() => [
2134
+ vue.createVNode(_component_TooltipOperatorTitle, {
2135
+ menu: subMenu,
2136
+ onClick: _ctx.onMenuTitleClick
2137
+ }, null, 8, ["menu", "onClick"])
2138
+ ]),
2139
+ _: 2
2140
+ }, 1032, ["title"]))
2141
+ ], 64);
2142
+ }), 128))
2143
+ ]),
2144
+ _: 1
2145
+ }, 8, ["popupClassName", "onTitleClick"])) : vue.createCommentVNode("", true),
2146
+ _ctx.isEmpty(_ctx.menu.children) ? (vue.openBlock(), vue.createBlock(_component_MenuItem, {
2147
+ title: _ctx.menu.text,
2148
+ key: _ctx.menu.key
2149
+ }, {
2150
+ default: vue.withCtx(() => [
2151
+ vue.createVNode(_component_TooltipOperatorTitle, {
2152
+ menu: _ctx.menu,
2153
+ onClick: _ctx.onMenuTitleClick
2154
+ }, null, 8, ["menu", "onClick"])
2155
+ ]),
2156
+ _: 1
2157
+ }, 8, ["title"])) : vue.createCommentVNode("", true)
2158
+ ], 64);
1721
2159
  }
1722
- var TooltipOperatorMenu = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$6]]);
2160
+ var TooltipOperatorMenu = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7]]);
1723
2161
  var index_vue_vue_type_style_index_0_lang$1 = "";
1724
- const _sfc_main$5 = vue.defineComponent({
2162
+ const _sfc_main$6 = vue.defineComponent({
1725
2163
  name: "TooltipOperator",
1726
2164
  props: [
1727
2165
  "menus",
@@ -1729,9 +2167,13 @@ const _sfc_main$5 = vue.defineComponent({
1729
2167
  "onClick",
1730
2168
  "cell"
1731
2169
  ],
1732
- setup() {
2170
+ setup(props, { emit }) {
2171
+ const onMenuClick = (...args) => {
2172
+ emit("click", ...args);
2173
+ };
1733
2174
  return {
1734
- TOOLTIP_PREFIX_CLS: s2.TOOLTIP_PREFIX_CLS
2175
+ TOOLTIP_PREFIX_CLS: s2.TOOLTIP_PREFIX_CLS,
2176
+ onMenuClick
1735
2177
  };
1736
2178
  },
1737
2179
  components: {
@@ -1741,7 +2183,7 @@ const _sfc_main$5 = vue.defineComponent({
1741
2183
  TooltipOperatorMenu
1742
2184
  }
1743
2185
  });
1744
- function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
2186
+ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
1745
2187
  const _component_TooltipOperatorMenu = vue.resolveComponent("TooltipOperatorMenu");
1746
2188
  const _component_Menu = vue.resolveComponent("Menu");
1747
2189
  const _component_TooltipOperatorTitle = vue.resolveComponent("TooltipOperatorTitle");
@@ -1752,7 +2194,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
1752
2194
  _ctx.onlyMenu ? (vue.openBlock(), vue.createBlock(_component_Menu, {
1753
2195
  key: 0,
1754
2196
  class: vue.normalizeClass(`${_ctx.TOOLTIP_PREFIX_CLS}-operator-menus`),
1755
- onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$.emit("click"))
2197
+ onClick: _ctx.onMenuClick
1756
2198
  }, {
1757
2199
  default: vue.withCtx(() => [
1758
2200
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.menus, (menu) => {
@@ -1764,7 +2206,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
1764
2206
  }), 128))
1765
2207
  ]),
1766
2208
  _: 1
1767
- }, 8, ["class"])) : (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(_ctx.menus, (menu) => {
2209
+ }, 8, ["class", "onClick"])) : (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(_ctx.menus, (menu) => {
1768
2210
  return vue.openBlock(), vue.createBlock(_component_Dropdown, {
1769
2211
  key: menu.key,
1770
2212
  class: vue.normalizeClass(`${_ctx.TOOLTIP_PREFIX_CLS}-operator-dropdown`)
@@ -1775,7 +2217,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
1775
2217
  ((_a = menu == null ? void 0 : menu.children) == null ? void 0 : _a.length) ? (vue.openBlock(), vue.createBlock(_component_Menu, {
1776
2218
  key: 0,
1777
2219
  class: vue.normalizeClass(`${_ctx.TOOLTIP_PREFIX_CLS}-operator-menus`),
1778
- onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$.emit("click"))
2220
+ onClick: _ctx.onMenuClick
1779
2221
  }, {
1780
2222
  default: vue.withCtx(() => [
1781
2223
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.menus, (menu2) => {
@@ -1787,7 +2229,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
1787
2229
  }), 128))
1788
2230
  ]),
1789
2231
  _: 2
1790
- }, 1032, ["class"])) : vue.createCommentVNode("", true)
2232
+ }, 1032, ["class", "onClick"])) : vue.createCommentVNode("", true)
1791
2233
  ];
1792
2234
  }),
1793
2235
  default: vue.withCtx(() => [
@@ -1804,17 +2246,17 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
1804
2246
  }), 128))
1805
2247
  ], 2);
1806
2248
  }
1807
- var TooltipOperator = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$5]]);
2249
+ var TooltipOperator = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$6]]);
1808
2250
  var index_vue_vue_type_style_index_0_lang = "";
1809
- const _sfc_main$4 = vue.defineComponent({
2251
+ const _sfc_main$5 = vue.defineComponent({
1810
2252
  name: "TooltipComponent",
1811
2253
  props: [
1812
- "content",
1813
2254
  "data",
1814
2255
  "options",
1815
2256
  "cell",
1816
2257
  "position",
1817
- "event"
2258
+ "event",
2259
+ "content"
1818
2260
  ],
1819
2261
  setup(props) {
1820
2262
  const { operator, onlyMenu } = s2.getTooltipDefaultOptions(props.options);
@@ -1832,7 +2274,7 @@ const _sfc_main$4 = vue.defineComponent({
1832
2274
  TooltipOperator
1833
2275
  }
1834
2276
  });
1835
- function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
2277
+ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
1836
2278
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
1837
2279
  const _component_TooltipOperator = vue.resolveComponent("TooltipOperator");
1838
2280
  const _component_TooltipSimpleTips = vue.resolveComponent("TooltipSimpleTips");
@@ -1853,9 +2295,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
1853
2295
  cell: _ctx.cell,
1854
2296
  onClick: (_d = _ctx.operator) == null ? void 0 : _d.onClick
1855
2297
  }, null, 8, ["menus", "cell", "onClick"]),
1856
- _ctx.content ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
1857
- vue.createTextVNode(vue.toDisplayString(_ctx.content), 1)
1858
- ], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
2298
+ _ctx.content ? vue.renderSlot(_ctx.$slots, "content", { key: 0 }) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
1859
2299
  vue.createVNode(_component_TooltipSimpleTips, {
1860
2300
  name: (_e = _ctx.data) == null ? void 0 : _e.name,
1861
2301
  tips: (_f = _ctx.data) == null ? void 0 : _f.tips
@@ -1878,7 +2318,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
1878
2318
  ], 64))
1879
2319
  ], 64));
1880
2320
  }
1881
- var TooltipComponent = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4]]);
2321
+ var TooltipComponent = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$5]]);
1882
2322
  class CustomTooltip extends s2.BaseTooltip {
1883
2323
  constructor(spreadsheet) {
1884
2324
  super(spreadsheet);
@@ -1893,7 +2333,9 @@ class CustomTooltip extends s2.BaseTooltip {
1893
2333
  cell,
1894
2334
  content
1895
2335
  });
1896
- const tooltipVNode = vue.createVNode(TooltipComponent, tooltipProps);
2336
+ const tooltipVNode = vue.createVNode(TooltipComponent, tooltipProps, {
2337
+ content: () => content
2338
+ });
1897
2339
  vue.render(null, this.container);
1898
2340
  vue.render(tooltipVNode, this.container);
1899
2341
  }
@@ -1938,6 +2380,7 @@ const useEvents = (s2Ref, emit) => {
1938
2380
  useCellEvent(s2Ref, emit, s2.S2Event.ROW_CELL_MOUSE_UP, "rowCellMouseUp");
1939
2381
  useCellEvent(s2Ref, emit, s2.S2Event.ROW_CELL_MOUSE_MOVE, "rowCellMouseMove");
1940
2382
  useS2Event(s2Ref, emit, s2.S2Event.ROW_CELL_COLLAPSE_TREE_ROWS, "rowCellCollapseTreeRows");
2383
+ useS2Event(s2Ref, emit, s2.S2Event.ROW_CELL_SCROLL, "rowCellScroll");
1941
2384
  useCellEvent(s2Ref, emit, s2.S2Event.COL_CELL_HOVER, "colCellHover");
1942
2385
  useCellEvent(s2Ref, emit, s2.S2Event.COL_CELL_CLICK, "colCellClick");
1943
2386
  useCellEvent(s2Ref, emit, s2.S2Event.COL_CELL_DOUBLE_CLICK, "colCellDoubleClick");
@@ -1953,7 +2396,8 @@ const useEvents = (s2Ref, emit) => {
1953
2396
  useCellEvent(s2Ref, emit, s2.S2Event.DATA_CELL_MOUSE_UP, "dataCellMouseUp");
1954
2397
  useCellEvent(s2Ref, emit, s2.S2Event.DATA_CELL_MOUSE_MOVE, "dataCellMouseMove");
1955
2398
  useS2Event(s2Ref, emit, s2.S2Event.DATA_CELL_TREND_ICON_CLICK, "dataCellTrendIconClick");
1956
- useS2Event(s2Ref, emit, s2.S2Event.DATE_CELL_BRUSH_SELECTION, "dataCellBrushSelection");
2399
+ useS2Event(s2Ref, emit, s2.S2Event.DATA_CELL_BRUSH_SELECTION, "dataCellBrushSelection");
2400
+ useS2Event(s2Ref, emit, s2.S2Event.DATA_CELL_SELECT_MOVE, "dataCellSelectMove");
1957
2401
  useCellEvent(s2Ref, emit, s2.S2Event.CORNER_CELL_HOVER, "cornerCellHover");
1958
2402
  useCellEvent(s2Ref, emit, s2.S2Event.CORNER_CELL_CLICK, "cornerCellClick");
1959
2403
  useCellEvent(s2Ref, emit, s2.S2Event.CORNER_CELL_DOUBLE_CLICK, "cornerCellDoubleClick");
@@ -2005,6 +2449,7 @@ const useEvents = (s2Ref, emit) => {
2005
2449
  useS2Event(s2Ref, emit, s2.S2Event.GLOBAL_MOUSE_UP, "mouseUp");
2006
2450
  useS2Event(s2Ref, emit, s2.S2Event.GLOBAL_RESET, "reset");
2007
2451
  useS2Event(s2Ref, emit, s2.S2Event.GLOBAL_LINK_FIELD_JUMP, "linkFieldJump");
2452
+ useS2Event(s2Ref, emit, s2.S2Event.GLOBAL_SCROLL, "scroll");
2008
2453
  });
2009
2454
  };
2010
2455
  const useLoading = (s2Ref, loadingProp = false) => {
@@ -2038,11 +2483,14 @@ const useSheetUpdate = (s2Ref, props) => {
2038
2483
  (_a = s2Ref.value) == null ? void 0 : _a.setOptions(options);
2039
2484
  (_b = s2Ref.value) == null ? void 0 : _b.changeSheetSize(options == null ? void 0 : options.width, options == null ? void 0 : options.height);
2040
2485
  }, { deep: vue.isProxy(props.options) });
2041
- vue.watch(() => props.dataCfg, (dataCfg) => {
2042
- var _a;
2486
+ vue.watch(() => props.dataCfg, (dataCfg, prevDataCfg) => {
2487
+ var _a, _b, _c, _d, _e, _f;
2488
+ if (((_b = (_a = prevDataCfg == null ? void 0 : prevDataCfg.fields) == null ? void 0 : _a.columns) == null ? void 0 : _b.length) !== ((_d = (_c = dataCfg == null ? void 0 : dataCfg.fields) == null ? void 0 : _c.columns) == null ? void 0 : _d.length)) {
2489
+ (_e = s2Ref.value) == null ? void 0 : _e.clearColumnLeafNodes();
2490
+ }
2043
2491
  updateFlag.rerender = true;
2044
2492
  updateFlag.reloadData = true;
2045
- (_a = s2Ref.value) == null ? void 0 : _a.setDataCfg(dataCfg);
2493
+ (_f = s2Ref.value) == null ? void 0 : _f.setDataCfg(dataCfg);
2046
2494
  }, { deep: vue.isProxy(props.dataCfg) });
2047
2495
  vue.watch(() => props.themeCfg, (themeCfg) => {
2048
2496
  var _a;
@@ -2139,7 +2587,7 @@ const initBaseSheetProps = () => ({
2139
2587
  dataCfg: Object,
2140
2588
  themeCfg: Object,
2141
2589
  showPagination: {
2142
- type: Object,
2590
+ type: [Object, Boolean],
2143
2591
  default: false
2144
2592
  },
2145
2593
  loading: Boolean,
@@ -2150,12 +2598,40 @@ const initBaseSheetProps = () => ({
2150
2598
  default: {}
2151
2599
  },
2152
2600
  adaptive: {
2153
- type: Object,
2601
+ type: [Object, Boolean],
2154
2602
  default: false
2155
2603
  },
2156
2604
  onSpreadsheet: Function,
2157
2605
  onGetSpreadSheet: Function
2158
2606
  });
2607
+ const initDrillDownProps = () => ({
2608
+ className: String,
2609
+ titleText: {
2610
+ type: String,
2611
+ default: s2.i18n("\u9009\u62E9\u4E0B\u94BB\u7EF4\u5EA6")
2612
+ },
2613
+ searchText: {
2614
+ type: String,
2615
+ default: s2.i18n("\u641C\u7D22\u5B57\u6BB5")
2616
+ },
2617
+ clearButtonText: {
2618
+ type: String,
2619
+ default: s2.i18n("\u6062\u590D\u9ED8\u8BA4")
2620
+ },
2621
+ extra: Node,
2622
+ dataSet: {
2623
+ type: Array,
2624
+ default: []
2625
+ },
2626
+ drillFields: Array,
2627
+ disabledFields: Array,
2628
+ getDrillFields: Function,
2629
+ setDrillFields: Function
2630
+ });
2631
+ const initDrillDownEmits = () => {
2632
+ const keys2 = ["getDrillFields", "setDrillFields"];
2633
+ return keys2;
2634
+ };
2159
2635
  const initBaseSheetEmits = () => {
2160
2636
  const keys2 = [
2161
2637
  "spreadsheet",
@@ -2181,6 +2657,7 @@ const initBaseSheetEmits = () => {
2181
2657
  "dataCellMouseMove",
2182
2658
  "dataCellTrendIconClick",
2183
2659
  "dataCellBrushSelection",
2660
+ "dataCellSelectMove",
2184
2661
  "cornerCellHover",
2185
2662
  "cornerCellClick",
2186
2663
  "cornerCellDoubleClick",
@@ -2227,12 +2704,13 @@ const initBaseSheetEmits = () => {
2227
2704
  "mouseUp",
2228
2705
  "selected",
2229
2706
  "reset",
2230
- "linkFieldJump"
2707
+ "linkFieldJump",
2708
+ "scroll"
2231
2709
  ];
2232
2710
  return keys2;
2233
2711
  };
2234
2712
  var baseSheet_vue_vue_type_style_index_0_lang = "";
2235
- const _sfc_main$3 = vue.defineComponent({
2713
+ const _sfc_main$4 = vue.defineComponent({
2236
2714
  name: "BaseSheet",
2237
2715
  props: initBaseSheetProps(),
2238
2716
  emits: initBaseSheetEmits(),
@@ -2273,7 +2751,7 @@ const _sfc_main$3 = vue.defineComponent({
2273
2751
  S2Pagination
2274
2752
  }
2275
2753
  });
2276
- function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
2754
+ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
2277
2755
  const _component_S2Pagination = vue.resolveComponent("S2Pagination");
2278
2756
  const _component_Spin = vue.resolveComponent("Spin");
2279
2757
  return vue.openBlock(), vue.createBlock(_component_Spin, {
@@ -2302,14 +2780,251 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
2302
2780
  _: 1
2303
2781
  }, 8, ["wrapperClassName", "spinning"]);
2304
2782
  }
2305
- var BaseSheet = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3]]);
2783
+ var BaseSheet = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4]]);
2784
+ const _hoisted_1$2 = {
2785
+ class: "antv-s2-icon",
2786
+ viewBox: "0 0 1024 1024",
2787
+ xmlns: "http://www.w3.org/2000/svg",
2788
+ width: "12.6",
2789
+ height: "12.6"
2790
+ };
2791
+ const _hoisted_2$2 = /* @__PURE__ */ vue.createElementVNode("path", {
2792
+ d: "M511.804 222.338c-57.117 0-105.737 20.061-145.86 60.184-40.122 40.123-60.184 88.569-60.184 145.337 0 56.769 20.062 105.214 60.185 145.337 40.122 40.123 88.742 60.185 145.859 60.185 57.116 0 105.736-20.062 145.859-60.185 40.123-40.123 60.184-88.568 60.184-145.337 0-56.768-20.061-105.214-60.184-145.337-40.123-40.123-88.743-60.184-145.86-60.184zm0 338.619c-36.729 0-68.007-12.925-93.835-38.774-25.827-25.85-38.752-57.127-38.773-93.834-.022-36.707 12.902-68.16 38.773-94.357 25.872-26.197 57.15-39.285 93.835-39.263 36.685.022 67.963 13.11 93.834 39.263 25.871 26.154 38.796 57.606 38.774 94.357-.022 36.75-12.946 68.028-38.774 93.834-25.828 25.806-57.106 38.73-93.834 38.774zm366.165-295.766c-21.084-42.168-50.327-79.223-87.73-111.165-37.404-31.941-79.898-57.105-127.484-75.491C614.472 60.845 564.155 52 511.804 52c-52.352 0-103.006 8.845-151.963 26.535-46.911 18.364-89.069 43.528-126.472 75.491-37.403 31.964-66.647 69.019-87.731 111.165C123.879 308.71 113 353.923 113 400.835c0 65.95 15.982 132.924 47.945 200.92 26.524 56.441 63.58 112.198 111.165 167.27 62.556 73.435 134.632 138.71 216.227 195.827 6.81 4.765 14.459 7.148 22.945 7.148 8.485 0 16.47-2.383 23.956-7.148 81.595-57.79 153.67-123.067 216.227-195.828 47.608-55.767 84.663-111.524 111.165-167.27 31.963-67.995 47.945-134.969 47.945-200.919 0-46.912-10.88-92.126-32.638-135.644h.032zm-40.797 136.656c0 55.07-13.6 111.513-40.798 169.326-23.129 49.631-56.452 99.948-99.97 150.95-52.351 61.208-113.885 117.65-184.6 169.326-70.716-51.676-132.25-108.118-184.6-169.326-42.844-51.002-76.167-101.319-99.971-150.95-27.198-57.791-40.797-114.57-40.797-170.338 0-36.032 8.159-70.716 24.478-104.05 16.994-32.638 40.45-61.882 70.368-87.73 30.592-26.525 65.276-47.26 104.05-62.209 40.797-14.97 82.954-22.455 126.472-22.455 43.517 0 85.675 7.485 126.472 22.455 38.752 14.97 73.436 35.706 104.05 62.208 30.593 25.85 54.048 55.093 70.367 87.731 16.32 34.009 24.479 69.03 24.479 105.062z",
2793
+ fill: "currentColor"
2794
+ }, null, -1);
2795
+ const _hoisted_3$2 = [
2796
+ _hoisted_2$2
2797
+ ];
2798
+ function render$2(_ctx, _cache) {
2799
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$2, _hoisted_3$2);
2800
+ }
2801
+ var LocationIcon = { render: render$2 };
2802
+ const _hoisted_1$1 = {
2803
+ class: "antv-s2-icon",
2804
+ viewBox: "0 0 1024 1024",
2805
+ xmlns: "http://www.w3.org/2000/svg",
2806
+ width: "12.6",
2807
+ height: "12.6"
2808
+ };
2809
+ const _hoisted_2$1 = /* @__PURE__ */ vue.createElementVNode("path", {
2810
+ d: "M86.016 805.888H0l143.872-529.92h79.36l144.896 529.92h-91.136l-29.696-109.056H115.2S85.504 805.888 86.016 805.888zM225.28 613.376 181.248 455.68 138.24 613.376h87.04zM519.168 430.08c24.576-16.384 47.616-25.088 69.12-25.088 30.72 0 58.368 14.848 81.92 44.032 24.064 29.184 35.328 72.192 35.328 128.512 0 44.032-7.168 83.456-22.528 118.272-14.848 34.816-35.328 62.976-60.416 83.456-26.112 20.992-57.856 31.232-95.232 31.232-15.36-.512-31.232-1.536-46.592-3.584-4.096-.512-8.704-1.024-12.8-1.536h-66.56V256h81.92v206.336c11.264-12.8 23.04-23.552 35.84-32.256zM483.84 587.264v135.168c13.824 3.072 26.112 4.608 37.376 4.608 27.648 0 50.176-11.776 69.12-36.352 19.456-25.088 28.672-59.392 28.672-104.96 0-32.256-5.12-55.296-14.848-70.144-9.216-13.824-18.432-19.968-28.672-19.968-12.288 0-27.136 7.68-44.544 24.064-16.896 16.896-32.768 39.424-47.104 67.584zm529.92 207.36c-36.864 14.336-71.68 20.992-104.96 20.992-32.768.512-64.512-9.216-91.648-27.136-27.136-18.432-48.64-44.032-62.464-73.728-14.848-30.72-22.528-65.536-22.528-104.448 0-58.88 16.896-108.032 51.2-146.944 33.792-38.912 75.264-58.88 123.392-58.88 34.304 0 70.144 7.168 108.032 21.504l10.24 4.096v95.232l-20.992-10.752c-34.816-17.92-65.536-26.624-92.16-26.624-16.896 0-32.768 4.608-47.104 13.824-13.824 8.704-25.088 23.04-32.768 42.496-8.192 19.968-12.288 41.472-12.288 63.488 0 28.672 7.68 55.808 24.064 82.432 14.848 24.576 37.888 36.352 71.168 36.352 10.752 0 21.504-1.024 31.744-2.56 9.728-1.536 29.696-8.192 58.88-18.944l19.456-7.68v92.672l-11.264 4.608z",
2811
+ fill: "currentColor"
2812
+ }, null, -1);
2813
+ const _hoisted_3$1 = [
2814
+ _hoisted_2$1
2815
+ ];
2816
+ function render$1(_ctx, _cache) {
2817
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$1, _hoisted_3$1);
2818
+ }
2819
+ var TextIcon = { render: render$1 };
2820
+ const _hoisted_1 = {
2821
+ class: "antv-s2-icon",
2822
+ viewBox: "0 0 1024 1024",
2823
+ xmlns: "http://www.w3.org/2000/svg",
2824
+ width: "12.6",
2825
+ height: "12.6"
2826
+ };
2827
+ const _hoisted_2 = /* @__PURE__ */ vue.createElementVNode("path", {
2828
+ d: "M950.016 898.016 744 693.024q88-107.008 88-244.992 0-159.008-112.512-271.488T448 64.032 176.512 176.544 64 448.032 176.512 719.52 448 832.032q138.016 0 244.992-88l206.016 206.016q10.016 10.016 24.992 10.016t26.016-10.016q10.016-11.008 10.016-26.016t-10.016-26.016zM568.992 736Q512 760 448 760t-120.992-24q-56-24-99.488-67.488t-66.496-99.488q-24.992-56.992-24.992-120.992t24.992-120.992q23.008-56 66.496-99.488t99.488-67.488q56.992-24 120.992-24t120.992 24q56 24 99.488 67.488t67.488 99.488q24 56.992 24 120.992t-24 120.992q-24 56-67.488 99.488T568.992 736z",
2829
+ fill: "currentColor"
2830
+ }, null, -1);
2831
+ const _hoisted_3 = [
2832
+ _hoisted_2
2833
+ ];
2834
+ function render(_ctx, _cache) {
2835
+ return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1, _hoisted_3);
2836
+ }
2837
+ var CalendarIcon = { render };
2838
+ var index_vue_vue_type_style_index_0_scoped_true_lang = "";
2839
+ const _sfc_main$3 = vue.defineComponent({
2840
+ name: "DrillDown",
2841
+ props: initDrillDownProps(),
2842
+ emits: initDrillDownEmits(),
2843
+ methods: {},
2844
+ components: {
2845
+ Button: antDesignVue.Button,
2846
+ Input: antDesignVue.Input,
2847
+ Empty: antDesignVue.Empty,
2848
+ Menu: antDesignVue.Menu,
2849
+ MenuItem: antDesignVue.MenuItem,
2850
+ LocationIcon,
2851
+ TextIcon,
2852
+ CalendarIcon
2853
+ },
2854
+ setup(props) {
2855
+ const {
2856
+ dataSet,
2857
+ disabledFields,
2858
+ getDrillFields,
2859
+ setDrillFields,
2860
+ className
2861
+ } = props;
2862
+ const getOptions = () => {
2863
+ return dataSet.map((val) => {
2864
+ val.disabled = !!(disabledFields && disabledFields.includes(val.value));
2865
+ return val;
2866
+ });
2867
+ };
2868
+ const options = vue.ref(getOptions());
2869
+ const selected = vue.ref([]);
2870
+ const handleSearch = (e) => {
2871
+ const { value } = e.target;
2872
+ if (!value) {
2873
+ options.value = [...dataSet];
2874
+ } else {
2875
+ const reg = new RegExp(value, "gi");
2876
+ const result = dataSet.filter((item) => reg.test(item.name));
2877
+ options.value = [...result];
2878
+ }
2879
+ };
2880
+ const handleSelect = (value) => {
2881
+ const key = value == null ? void 0 : value.selectedKeys;
2882
+ selected.value = key;
2883
+ if (getDrillFields) {
2884
+ getDrillFields(key);
2885
+ }
2886
+ if (setDrillFields)
2887
+ setDrillFields(key);
2888
+ };
2889
+ const handleClear = (e) => {
2890
+ e.stopPropagation();
2891
+ selected.value = [];
2892
+ if (getDrillFields)
2893
+ getDrillFields([]);
2894
+ if (setDrillFields)
2895
+ setDrillFields([]);
2896
+ };
2897
+ return {
2898
+ options,
2899
+ handleSearch,
2900
+ handleSelect,
2901
+ handleClear,
2902
+ className,
2903
+ selected,
2904
+ isEmpty,
2905
+ DRILL_DOWN_PRE_CLASS
2906
+ };
2907
+ }
2908
+ });
2909
+ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
2910
+ const _component_Button = vue.resolveComponent("Button");
2911
+ const _component_Input = vue.resolveComponent("Input");
2912
+ const _component_Empty = vue.resolveComponent("Empty");
2913
+ const _component_text_icon = vue.resolveComponent("text-icon");
2914
+ const _component_calendar_icon = vue.resolveComponent("calendar-icon");
2915
+ const _component_location_icon = vue.resolveComponent("location-icon");
2916
+ const _component_MenuItem = vue.resolveComponent("MenuItem");
2917
+ const _component_Menu = vue.resolveComponent("Menu");
2918
+ return vue.openBlock(), vue.createElementBlock("div", {
2919
+ class: vue.normalizeClass([_ctx.DRILL_DOWN_PRE_CLASS, _ctx.className])
2920
+ }, [
2921
+ vue.createElementVNode("header", {
2922
+ class: vue.normalizeClass(`${_ctx.DRILL_DOWN_PRE_CLASS}-header`)
2923
+ }, [
2924
+ vue.createElementVNode("div", null, vue.toDisplayString(_ctx.titleText), 1),
2925
+ vue.createVNode(_component_Button, {
2926
+ type: "link",
2927
+ onClick: _ctx.handleClear
2928
+ }, {
2929
+ default: vue.withCtx(() => [
2930
+ vue.createTextVNode(vue.toDisplayString(_ctx.clearButtonText), 1)
2931
+ ]),
2932
+ _: 1
2933
+ }, 8, ["onClick"])
2934
+ ], 2),
2935
+ vue.createVNode(_component_Input, {
2936
+ class: vue.normalizeClass(`${_ctx.DRILL_DOWN_PRE_CLASS}-search`),
2937
+ placeholder: _ctx.searchText,
2938
+ onChange: _ctx.handleSearch,
2939
+ onPressEnter: _ctx.handleSearch,
2940
+ allowClear: true
2941
+ }, null, 8, ["class", "placeholder", "onChange", "onPressEnter"]),
2942
+ _ctx.isEmpty(_ctx.options) ? (vue.openBlock(), vue.createBlock(_component_Empty, {
2943
+ key: 0,
2944
+ imageStyle: { height: "64px" },
2945
+ class: vue.normalizeClass(`${_ctx.DRILL_DOWN_PRE_CLASS}-empty`)
2946
+ }, null, 8, ["class"])) : vue.createCommentVNode("", true),
2947
+ vue.createVNode(_component_Menu, {
2948
+ class: "`${DRILL_DOWN_PRE_CLASS}-menu`",
2949
+ selectedKeys: _ctx.selected,
2950
+ "onUpdate:selectedKeys": _cache[0] || (_cache[0] = ($event) => _ctx.selected = $event),
2951
+ onSelect: _ctx.handleSelect
2952
+ }, {
2953
+ default: vue.withCtx(() => [
2954
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.options, (option) => {
2955
+ return vue.openBlock(), vue.createBlock(_component_MenuItem, {
2956
+ key: option.value,
2957
+ disabled: option.disabled,
2958
+ class: vue.normalizeClass(`${_ctx.DRILL_DOWN_PRE_CLASS}-menu-item`)
2959
+ }, {
2960
+ icon: vue.withCtx(() => [
2961
+ option.type === "text" ? (vue.openBlock(), vue.createBlock(_component_text_icon, { key: 0 })) : vue.createCommentVNode("", true),
2962
+ option.type === "date" ? (vue.openBlock(), vue.createBlock(_component_calendar_icon, { key: 1 })) : vue.createCommentVNode("", true),
2963
+ option.type === "location" ? (vue.openBlock(), vue.createBlock(_component_location_icon, { key: 2 })) : vue.createCommentVNode("", true)
2964
+ ]),
2965
+ default: vue.withCtx(() => [
2966
+ vue.createTextVNode(" " + vue.toDisplayString(option == null ? void 0 : option.name), 1)
2967
+ ]),
2968
+ _: 2
2969
+ }, 1032, ["disabled", "class"]);
2970
+ }), 128))
2971
+ ]),
2972
+ _: 1
2973
+ }, 8, ["selectedKeys", "onSelect"])
2974
+ ], 2);
2975
+ }
2976
+ var DrillDown = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3], ["__scopeId", "data-v-6eb1ccd0"]]);
2306
2977
  const _sfc_main$2 = vue.defineComponent({
2307
2978
  name: "PivotSheet",
2308
- props: [],
2309
- emits: [],
2979
+ props: initBaseSheetProps(),
2980
+ emits: initBaseSheetEmits(),
2310
2981
  setup(props, ctx) {
2311
2982
  const s2Ref = useExpose(ctx.expose);
2312
- return { s2Ref };
2983
+ const { options: pivotOptions } = vue.toRefs(props);
2984
+ const { dataCfg, partDrillDown } = vue.toRefs(props);
2985
+ const drillFields = vue.ref([]);
2986
+ const setDrillFields = (fields) => {
2987
+ var _a, _b, _c, _d, _e, _f;
2988
+ const instance = (_a = s2Ref == null ? void 0 : s2Ref.value) == null ? void 0 : _a.instance;
2989
+ drillFields.value = fields;
2990
+ instance == null ? void 0 : instance.hideTooltip();
2991
+ if (isEmpty(fields)) {
2992
+ instance == null ? void 0 : instance.clearDrillDownData((_b = instance == null ? void 0 : instance.store.get("drillDownNode")) == null ? void 0 : _b.id);
2993
+ } else {
2994
+ handleDrillDown({
2995
+ rows: (_d = (_c = dataCfg.value) == null ? void 0 : _c.fields.rows) != null ? _d : [],
2996
+ drillFields: fields,
2997
+ fetchData: (_e = partDrillDown.value) == null ? void 0 : _e.fetchData,
2998
+ drillItemsNum: (_f = partDrillDown.value) == null ? void 0 : _f.drillItemsNum,
2999
+ spreadsheet: instance
3000
+ });
3001
+ }
3002
+ };
3003
+ const onDrillDownIconClick = (params) => {
3004
+ var _a, _b;
3005
+ const { event, disabledFields } = params;
3006
+ if (event) {
3007
+ const instance = (_a = s2Ref == null ? void 0 : s2Ref.value) == null ? void 0 : _a.instance;
3008
+ const drillDownNode = vue.createVNode(DrillDown, __spreadProps(__spreadValues({}, (_b = partDrillDown.value) == null ? void 0 : _b.drillConfig), {
3009
+ setDrillFields,
3010
+ drillFields: drillFields.value,
3011
+ disabledFields
3012
+ }));
3013
+ instance == null ? void 0 : instance.showTooltip({
3014
+ position: {
3015
+ x: event.clientX,
3016
+ y: event.clientY
3017
+ },
3018
+ event,
3019
+ content: drillDownNode
3020
+ });
3021
+ }
3022
+ };
3023
+ const options = vue.computed(() => buildDrillDownOptions(pivotOptions.value, partDrillDown.value, (params) => onDrillDownIconClick(params)));
3024
+ return {
3025
+ s2Ref,
3026
+ options
3027
+ };
2313
3028
  },
2314
3029
  components: {
2315
3030
  BaseSheet
@@ -2317,7 +3032,10 @@ const _sfc_main$2 = vue.defineComponent({
2317
3032
  });
2318
3033
  function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
2319
3034
  const _component_BaseSheet = vue.resolveComponent("BaseSheet");
2320
- return vue.openBlock(), vue.createBlock(_component_BaseSheet, { ref: "s2Ref" }, null, 512);
3035
+ return vue.openBlock(), vue.createBlock(_component_BaseSheet, vue.mergeProps(_ctx.$props, {
3036
+ ref: "s2Ref",
3037
+ options: _ctx.options
3038
+ }), null, 16, ["options"]);
2321
3039
  }
2322
3040
  var PivotSheet = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2]]);
2323
3041
  const _sfc_main$1 = vue.defineComponent({