stz-chart-maker 2.3.8 → 2.3.10
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/CHANGELOG.md +239 -0
- package/dist/index.d.ts +31 -2
- package/dist/index.mjs +4707 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +11 -10
- package/dist/index.js +0 -4607
- package/dist/index.js.map +0 -1
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,4707 @@
|
|
|
1
|
+
const V = q;
|
|
2
|
+
(function (k, H) {
|
|
3
|
+
const G = q, c = k();
|
|
4
|
+
while (!![]) {
|
|
5
|
+
try {
|
|
6
|
+
const a = -parseInt(G(0xb1)) / 0x1 * (parseInt(G(0x1d2)) / 0x2) + parseInt(G(0x268)) / 0x3 * (-parseInt(G(0xc8)) / 0x4) + parseInt(G(0x194)) / 0x5 * (-parseInt(G(0xa1)) / 0x6) + parseInt(G(0x152)) / 0x7 + -parseInt(G(0x1f1)) / 0x8 + parseInt(G(0x1d1)) / 0x9 * (parseInt(G(0x1f3)) / 0xa) + parseInt(G(0x205)) / 0xb;
|
|
7
|
+
if (a === H)
|
|
8
|
+
break;
|
|
9
|
+
else
|
|
10
|
+
c['push'](c['shift']());
|
|
11
|
+
} catch (X) {
|
|
12
|
+
c['push'](c['shift']());
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}(i, 0x5359b));
|
|
16
|
+
import { Chart as Chart$1 } from 'chart.js';
|
|
17
|
+
const LoggerConfig = {
|
|
18
|
+
'errorLogging': !![],
|
|
19
|
+
'silentMode': !![]
|
|
20
|
+
};
|
|
21
|
+
var Logger = Object[V(0x215)]({
|
|
22
|
+
'__proto__': null,
|
|
23
|
+
'LoggerConfig': LoggerConfig
|
|
24
|
+
}), ErrorMsg;
|
|
25
|
+
(function (k) {
|
|
26
|
+
const Y = q;
|
|
27
|
+
k['CHART_TYPE_REQUIRED'] = 'Chart\x20type\x20is\x20required.', k['INVALID_CHART_TYPE'] = Y(0x178), k[Y(0xd6)] = 'Datasets\x20cannot\x20be\x20empty.', k[Y(0x251)] = Y(0x17e), k[Y(0x257)] = 'Labels\x20cannot\x20be\x20empty.', k['LABELS_NOT_SUPPORTED'] = 'This\x20chart\x20type\x20does\x20not\x20support\x20labels.', k[Y(0x261)] = 'Options\x20cannot\x20be\x20null\x20or\x20undefined.', k['NOT_REGISTERED_CHART_TYPE'] = 'This\x20chart\x20type\x20is\x20not\x20registered.\x20Please\x20call\x20ChartWrapper.register().', k[Y(0xd1)] = 'Parameter\x20type\x20mismatch.\x20Please\x20check\x20the\x20types\x20of\x20the\x20provided\x20parameters.', k['EMPTY_REQUIRED_PROPERTY'] = 'A\x20required\x20property\x20is\x20missing\x20in\x20the\x20dataset\x20or\x20options.', k['INVALID_DATA_STRUCTURE'] = 'Invalid\x20data\x20structure.\x20Please\x20check\x20the\x20dataset\x20or\x20labels\x20format.', k['AXIS_KEY_REQUIRED'] = 'xAxisKey\x20or\x20yAxisKey\x20is\x20required\x20for\x20parsing.', k[Y(0x1b3)] = 'Labels\x20length\x20does\x20not\x20match\x20datasets\x20data\x20length.', k['IMAGE_PROPERTY_MISSING'] = 'Image\x20property\x20is\x20missing\x20in\x20the\x20dataset.\x20Please\x20provide\x20a\x20valid\x20image\x20URL.', k['DATASET_IDENTIFIER_NOT_FOUND'] = 'Dataset\x20identifier\x20not\x20found.', k['NOT_FOUND_DATASET'] = 'Dataset\x20not\x20found\x20for\x20the\x20given\x20identifier.', k['PLUGIN_NOT_FOUND'] = 'Plugin\x20not\x20found\x20in\x20options.plugins.', k[Y(0x211)] = 'Plugin\x20already\x20exists.\x20Use\x20setPlugin()\x20to\x20override.', k['PLUGIN_REMOVE_FAILED'] = Y(0xea), k['CHART_INSTANCE_NOT_FOUND'] = Y(0x1b8), k['CHART_ALREADY_INITIALIZED'] = 'Chart\x20instance\x20is\x20already\x20initialized.', k['INVALID_BAR_THICKNESS'] = Y(0x20a), k['INVALID_BAR_PERCENTAGE'] = 'Bar\x20percentage\x20must\x20be\x20between\x200\x20and\x201.', k['INVALID_CATEGORY_PERCENTAGE'] = 'Category\x20percentage\x20must\x20be\x20between\x200\x20and\x201.', k['UNKNOWN_ERROR'] = 'An\x20unknown\x20error\x20has\x20occurred.', k[Y(0x1a6)] = Y(0x207), k[Y(0x200)] = 'The\x20number\x20of\x20colors\x20must\x20match\x20the\x20number\x20of\x20gradient\x20steps.', k['INVALID_AXIS_KEY'] = 'Invalid\x20axis\x20key\x20provided.\x20Please\x20check\x20the\x20axis\x20configuration.', k['INVALID_TIME_SCALE'] = Y(0x249);
|
|
28
|
+
}(ErrorMsg || (ErrorMsg = {})));
|
|
29
|
+
var ErrorCode;
|
|
30
|
+
(function (k) {
|
|
31
|
+
const K = q;
|
|
32
|
+
k[k[K(0x1e4)] = 0x4b0] = 'CHART_TYPE_REQUIRED', k[k['INVALID_CHART_TYPE'] = 0x4b1] = K(0x231), k[k[K(0x261)] = 0x4b2] = 'OPTIONS_REQUIRED', k[k['NOT_REGISTERED_CHART_TYPE'] = 0x4b3] = K(0x146), k[k['PARAMETER_TYPE_MISMATCH'] = 0x4b4] = K(0xd1), k[k['DATASET_REQUIRED'] = 0x898] = 'DATASET_REQUIRED', k[k[K(0x257)] = 0x8a3] = 'LABELS_REQUIRED', k[k[K(0x1ac)] = 0x8a4] = 'LABELS_NOT_SUPPORTED', k[k['EMPTY_REQUIRED_PROPERTY'] = 0x8a5] = 'EMPTY_REQUIRED_PROPERTY', k[k['INVALID_DATA_STRUCTURE'] = 0x8a6] = K(0x10c), k[k['AXIS_KEY_REQUIRED'] = 0x8a7] = 'AXIS_KEY_REQUIRED', k[k[K(0x1b3)] = 0x8a8] = 'DATA_LENGTH_MISMATCH', k[k['NOT_SUPPORTED_OPTION'] = 0x8a9] = 'NOT_SUPPORTED_OPTION', k[k['IMAGE_PROPERTY_MISSING'] = 0x8aa] = 'IMAGE_PROPERTY_MISSING', k[k['DATASET_IDENTIFIER_NOT_FOUND'] = 0x8ab] = 'DATASET_IDENTIFIER_NOT_FOUND', k[k['NOT_FOUND_DATASET'] = 0x8ac] = 'NOT_FOUND_DATASET', k[k['PLUGIN_NOT_FOUND'] = 0xc94] = K(0x1a8), k[k['PLUGIN_ALREADY_EXISTS'] = 0xc95] = 'PLUGIN_ALREADY_EXISTS', k[k[K(0x108)] = 0xc96] = 'PLUGIN_REMOVE_FAILED', k[k['CHART_INSTANCE_NOT_FOUND'] = 0x1086] = 'CHART_INSTANCE_NOT_FOUND', k[k[K(0x1f4)] = 0x1087] = 'CHART_ALREADY_INITIALIZED', k[k['INVALID_BAR_THICKNESS'] = 0x1478] = 'INVALID_BAR_THICKNESS', k[k['INVALID_BAR_PERCENTAGE'] = 0x1479] = K(0x1df), k[k['INVALID_CATEGORY_PERCENTAGE'] = 0x147a] = 'INVALID_CATEGORY_PERCENTAGE', k[k[K(0xb4)] = 0x1481] = 'UNKNOWN_ERROR', k[k['GRADIENT_STEP_MINIMUM'] = 0x1482] = 'GRADIENT_STEP_MINIMUM', k[k['GRADIENT_COLOR_STEP_MISMATCH'] = 0x1483] = 'GRADIENT_COLOR_STEP_MISMATCH', k[k['INVALID_AXIS_KEY'] = 0x186a] = K(0xc6), k[k[K(0x123)] = 0x186b] = K(0x123);
|
|
33
|
+
}(ErrorCode || (ErrorCode = {})));
|
|
34
|
+
const ErrorMessage = {
|
|
35
|
+
[ErrorCode[V(0x1e4)]]: ErrorMsg['CHART_TYPE_REQUIRED'],
|
|
36
|
+
[ErrorCode[V(0x231)]]: ErrorMsg['INVALID_CHART_TYPE'],
|
|
37
|
+
[ErrorCode['OPTIONS_REQUIRED']]: ErrorMsg['OPTIONS_REQUIRED'],
|
|
38
|
+
[ErrorCode['NOT_REGISTERED_CHART_TYPE']]: ErrorMsg['NOT_REGISTERED_CHART_TYPE'],
|
|
39
|
+
[ErrorCode['PARAMETER_TYPE_MISMATCH']]: ErrorMsg['PARAMETER_TYPE_MISMATCH'],
|
|
40
|
+
[ErrorCode['DATASET_REQUIRED']]: ErrorMsg[V(0xd6)],
|
|
41
|
+
[ErrorCode[V(0x257)]]: ErrorMsg['LABELS_REQUIRED'],
|
|
42
|
+
[ErrorCode['LABELS_NOT_SUPPORTED']]: ErrorMsg['LABELS_NOT_SUPPORTED'],
|
|
43
|
+
[ErrorCode['EMPTY_REQUIRED_PROPERTY']]: ErrorMsg[V(0x132)],
|
|
44
|
+
[ErrorCode[V(0x10c)]]: ErrorMsg['INVALID_DATA_STRUCTURE'],
|
|
45
|
+
[ErrorCode['AXIS_KEY_REQUIRED']]: ErrorMsg['AXIS_KEY_REQUIRED'],
|
|
46
|
+
[ErrorCode['DATA_LENGTH_MISMATCH']]: ErrorMsg[V(0x1b3)],
|
|
47
|
+
[ErrorCode['NOT_SUPPORTED_OPTION']]: ErrorMsg['NOT_SUPPORTED_OPTION'],
|
|
48
|
+
[ErrorCode['DATASET_IDENTIFIER_NOT_FOUND']]: ErrorMsg['DATASET_IDENTIFIER_NOT_FOUND'],
|
|
49
|
+
[ErrorCode['NOT_FOUND_DATASET']]: ErrorMsg['NOT_FOUND_DATASET'],
|
|
50
|
+
[ErrorCode['PLUGIN_NOT_FOUND']]: ErrorMsg['PLUGIN_NOT_FOUND'],
|
|
51
|
+
[ErrorCode['PLUGIN_ALREADY_EXISTS']]: ErrorMsg['PLUGIN_ALREADY_EXISTS'],
|
|
52
|
+
[ErrorCode[V(0x108)]]: ErrorMsg[V(0x108)],
|
|
53
|
+
[ErrorCode[V(0x219)]]: ErrorMsg['CHART_INSTANCE_NOT_FOUND'],
|
|
54
|
+
[ErrorCode['CHART_ALREADY_INITIALIZED']]: ErrorMsg['CHART_ALREADY_INITIALIZED'],
|
|
55
|
+
[ErrorCode['INVALID_BAR_THICKNESS']]: ErrorMsg[V(0xa5)],
|
|
56
|
+
[ErrorCode['INVALID_BAR_PERCENTAGE']]: ErrorMsg[V(0x1df)],
|
|
57
|
+
[ErrorCode['INVALID_CATEGORY_PERCENTAGE']]: ErrorMsg[V(0x14c)],
|
|
58
|
+
[ErrorCode['UNKNOWN_ERROR']]: ErrorMsg['UNKNOWN_ERROR'],
|
|
59
|
+
[ErrorCode['IMAGE_PROPERTY_MISSING']]: ErrorMsg[V(0x218)],
|
|
60
|
+
[ErrorCode['GRADIENT_STEP_MINIMUM']]: ErrorMsg[V(0x1a6)],
|
|
61
|
+
[ErrorCode['GRADIENT_COLOR_STEP_MISMATCH']]: ErrorMsg[V(0x200)],
|
|
62
|
+
[ErrorCode['INVALID_AXIS_KEY']]: ErrorMsg['INVALID_AXIS_KEY'],
|
|
63
|
+
[ErrorCode['INVALID_TIME_SCALE']]: ErrorMsg['INVALID_TIME_SCALE']
|
|
64
|
+
};
|
|
65
|
+
class CustomError extends Error {
|
|
66
|
+
['code'];
|
|
67
|
+
['detail'];
|
|
68
|
+
constructor(k, H) {
|
|
69
|
+
const h = q, c = H ? ErrorMessage[k] + '\x20-\x20' + H : ErrorMessage[k];
|
|
70
|
+
super(c), this['code'] = k, this['detail'] = H, this['name'] = 'CustomError';
|
|
71
|
+
if (LoggerConfig['errorLogging']) {
|
|
72
|
+
const a = 'color:\x20green;\x20font-weight:\x20bold;', X = h(0x150);
|
|
73
|
+
console['error']('%c[' + k + ']\x20%c' + c, a, X);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
static [V(0x16d)](k, H) {
|
|
77
|
+
const L = q, c = new CustomError(k, H);
|
|
78
|
+
if (!LoggerConfig['silentMode'])
|
|
79
|
+
throw c;
|
|
80
|
+
else {
|
|
81
|
+
if (LoggerConfig['errorLogging']) {
|
|
82
|
+
const a = H ? ErrorMessage[k] + '\x20-\x20' + H : ErrorMessage[k], X = 'color:\x20green;\x20font-weight:\x20bold;', p = 'color:\x20orange;';
|
|
83
|
+
console[L(0x22c)]('%c[' + k + ']\x20%c' + a, X, p);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return c;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
class ChartFactory {
|
|
90
|
+
static ['registry'] = new Map();
|
|
91
|
+
static ['register'](k, H) {
|
|
92
|
+
const O = q;
|
|
93
|
+
this['registry'][O(0x1d0)](k, H);
|
|
94
|
+
}
|
|
95
|
+
static ['create'](k, H, c, a, X) {
|
|
96
|
+
const P = q, p = this['registry']['get'](k);
|
|
97
|
+
if (!p)
|
|
98
|
+
throw new CustomError(ErrorCode[P(0x146)], 'type\x20=\x20' + k);
|
|
99
|
+
return new p(k, H, c, a, X);
|
|
100
|
+
}
|
|
101
|
+
static ['has'](k) {
|
|
102
|
+
const S = q;
|
|
103
|
+
return this[S(0x157)]['has'](k);
|
|
104
|
+
}
|
|
105
|
+
static ['clear']() {
|
|
106
|
+
this['registry']['clear']();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
class StzUtils {
|
|
110
|
+
static ['isNullOrUndefined'](k) {
|
|
111
|
+
return k === null || k === undefined;
|
|
112
|
+
}
|
|
113
|
+
static ['isNull'](k) {
|
|
114
|
+
return this['getType'](k) === 'Null';
|
|
115
|
+
}
|
|
116
|
+
static ['isUndefined'](k) {
|
|
117
|
+
return this['getType'](k) === 'Undefined';
|
|
118
|
+
}
|
|
119
|
+
static ['isString'](k) {
|
|
120
|
+
return this['getType'](k) === 'String';
|
|
121
|
+
}
|
|
122
|
+
static ['isNumber'](k) {
|
|
123
|
+
return this['getType'](k) === 'Number';
|
|
124
|
+
}
|
|
125
|
+
static [V(0x23a)](k) {
|
|
126
|
+
return this['getType'](k) === 'Boolean';
|
|
127
|
+
}
|
|
128
|
+
static ['isArray'](k) {
|
|
129
|
+
const j = q;
|
|
130
|
+
return this[j(0x21b)](k) === j(0x130);
|
|
131
|
+
}
|
|
132
|
+
static ['isObject'](k) {
|
|
133
|
+
return this['getType'](k) === 'Object';
|
|
134
|
+
}
|
|
135
|
+
static ['isDate'](k) {
|
|
136
|
+
const C = q;
|
|
137
|
+
return this[C(0x21b)](k) === 'Date';
|
|
138
|
+
}
|
|
139
|
+
static ['isRegExp'](k) {
|
|
140
|
+
return this['getType'](k) === 'RegExp';
|
|
141
|
+
}
|
|
142
|
+
static ['isFunction'](k) {
|
|
143
|
+
const l = q;
|
|
144
|
+
return this[l(0x21b)](k) === 'Function';
|
|
145
|
+
}
|
|
146
|
+
static ['isUrl'](k) {
|
|
147
|
+
const e = q;
|
|
148
|
+
if (!this['isString'](k))
|
|
149
|
+
return ![];
|
|
150
|
+
const H = /^(https?:\/\/)?([\w-]+(\.[\w-]+)+)(:\d+)?(\/[^\s]*)?$/i;
|
|
151
|
+
try {
|
|
152
|
+
const c = new URL(k[e(0x153)]('http') ? k : e(0xa6) + k);
|
|
153
|
+
return H[e(0x1c2)](k) && !!c['hostname'];
|
|
154
|
+
} catch {
|
|
155
|
+
return ![];
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
static [V(0x233)](k) {
|
|
159
|
+
const w = q;
|
|
160
|
+
if (!this['isString'](k) || this[w(0x201)](k))
|
|
161
|
+
return ![];
|
|
162
|
+
const H = new RegExp(w(0x99));
|
|
163
|
+
return H['test'](k['trim']());
|
|
164
|
+
}
|
|
165
|
+
static [V(0x16b)](k) {
|
|
166
|
+
if (!this['isString'](k))
|
|
167
|
+
return ![];
|
|
168
|
+
const H = new RegExp('^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@#$%^&*(),.?\x22:{}|<>])[a-zA-Z0-9!@#$%^&*(),.?\x22:{}|<>]{8,20}$');
|
|
169
|
+
return H['test'](k);
|
|
170
|
+
}
|
|
171
|
+
static [V(0x22e)](k, H = 'normal') {
|
|
172
|
+
const f = q;
|
|
173
|
+
if (!this['isString'](k) || this[f(0x201)](k))
|
|
174
|
+
return ![];
|
|
175
|
+
const c = k['trim']();
|
|
176
|
+
if (H === 'normal')
|
|
177
|
+
return this['isValidPassword'](c);
|
|
178
|
+
const a = new RegExp('^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*(),.?\x22:{}|<>])[a-zA-Z0-9!@#$%^&*(),.?\x22:{}|<>]{10,20}$');
|
|
179
|
+
return a['test'](c);
|
|
180
|
+
}
|
|
181
|
+
static [V(0x19f)](k) {
|
|
182
|
+
const U = q;
|
|
183
|
+
if (!this[U(0x233)](k))
|
|
184
|
+
return ![];
|
|
185
|
+
const H = k['trim']()['toLowerCase']()['split']('@')[0x1], c = [
|
|
186
|
+
U(0x11d),
|
|
187
|
+
U(0x17c),
|
|
188
|
+
'guerrillamail.com',
|
|
189
|
+
U(0xdc),
|
|
190
|
+
'mailinator.com',
|
|
191
|
+
'temp-mail.org',
|
|
192
|
+
'tempmail.com',
|
|
193
|
+
'trashmail.com',
|
|
194
|
+
U(0x26f)
|
|
195
|
+
];
|
|
196
|
+
return c['some'](a => H === a || H['endsWith']('.' + a));
|
|
197
|
+
}
|
|
198
|
+
static ['isValidUserId'](k, H = 0x4, c = 0x14) {
|
|
199
|
+
const o = q;
|
|
200
|
+
if (!this[o(0x120)](k))
|
|
201
|
+
return ![];
|
|
202
|
+
const a = k['trim']();
|
|
203
|
+
if (a['length'] < H || a['length'] > c)
|
|
204
|
+
return ![];
|
|
205
|
+
const X = new RegExp(o(0x240));
|
|
206
|
+
return X['test'](a);
|
|
207
|
+
}
|
|
208
|
+
static [V(0x143)](k) {
|
|
209
|
+
const E = q;
|
|
210
|
+
if (!this['isValidUserId'](k))
|
|
211
|
+
return ![];
|
|
212
|
+
const H = k['trim']()['toLowerCase'](), c = [
|
|
213
|
+
'admin',
|
|
214
|
+
E(0x160),
|
|
215
|
+
'guest',
|
|
216
|
+
'manager',
|
|
217
|
+
'master',
|
|
218
|
+
'operator',
|
|
219
|
+
E(0x105),
|
|
220
|
+
'staff',
|
|
221
|
+
'support',
|
|
222
|
+
'system',
|
|
223
|
+
'test'
|
|
224
|
+
];
|
|
225
|
+
if (c[E(0x1ad)](X => this[E(0x165)](H, X)))
|
|
226
|
+
return ![];
|
|
227
|
+
if (new RegExp('^[0-9]+$')[E(0x1c2)](H))
|
|
228
|
+
return ![];
|
|
229
|
+
if (new RegExp('(.)\x5c1{3,}')['test'](H))
|
|
230
|
+
return ![];
|
|
231
|
+
const a = (X, p = 0x4) => {
|
|
232
|
+
const J = q;
|
|
233
|
+
if (X['length'] < p)
|
|
234
|
+
return ![];
|
|
235
|
+
for (let d = 0x0; d <= X[J(0x21f)] - p; d++) {
|
|
236
|
+
let Q = !![], s = !![];
|
|
237
|
+
for (let m = 0x1; m < p; m++) {
|
|
238
|
+
const z = X['charCodeAt'](d + m - 0x1), r = X['charCodeAt'](d + m), Z = r - z;
|
|
239
|
+
if (Z !== 0x1)
|
|
240
|
+
Q = ![];
|
|
241
|
+
if (Z !== -0x1)
|
|
242
|
+
s = ![];
|
|
243
|
+
}
|
|
244
|
+
if (Q || s)
|
|
245
|
+
return !![];
|
|
246
|
+
}
|
|
247
|
+
return ![];
|
|
248
|
+
};
|
|
249
|
+
if (a(H))
|
|
250
|
+
return ![];
|
|
251
|
+
return !![];
|
|
252
|
+
}
|
|
253
|
+
static ['isValidNickname'](k, H = 0x2, c = 0x14) {
|
|
254
|
+
const D = q;
|
|
255
|
+
if (!this['isString'](k))
|
|
256
|
+
return ![];
|
|
257
|
+
const a = k['trim']();
|
|
258
|
+
if (a[D(0x21f)] < H || a['length'] > c)
|
|
259
|
+
return ![];
|
|
260
|
+
const X = new RegExp('^[a-zA-Z0-9가-힣_]+$');
|
|
261
|
+
return X['test'](a);
|
|
262
|
+
}
|
|
263
|
+
static [V(0x116)](k) {
|
|
264
|
+
const T = q;
|
|
265
|
+
if (!this[T(0x120)](k))
|
|
266
|
+
return ![];
|
|
267
|
+
const H = k['replace'](/[\s-]/g, ''), c = new RegExp('^(01[016789]|02|0[3-9][0-9])[0-9]{7,8}$');
|
|
268
|
+
return c['test'](H);
|
|
269
|
+
}
|
|
270
|
+
static ['isValidVerificationCode'](k, H = 0x6) {
|
|
271
|
+
const F = q;
|
|
272
|
+
if (!this[F(0x120)](k) || H <= 0x0)
|
|
273
|
+
return ![];
|
|
274
|
+
const c = new RegExp(F(0x22d) + H + '}$');
|
|
275
|
+
return c[F(0x1c2)](k['trim']());
|
|
276
|
+
}
|
|
277
|
+
static [V(0xad)](k, H) {
|
|
278
|
+
const b = q;
|
|
279
|
+
if (!this[b(0x120)](k) || !this[b(0x120)](H))
|
|
280
|
+
return ![];
|
|
281
|
+
return k === H;
|
|
282
|
+
}
|
|
283
|
+
static ['removeWhitespace'](k) {
|
|
284
|
+
if (!this['isString'](k))
|
|
285
|
+
return '';
|
|
286
|
+
return k['replace'](/\s+/g, '');
|
|
287
|
+
}
|
|
288
|
+
static [V(0x221)](k) {
|
|
289
|
+
const i0 = q;
|
|
290
|
+
if (!this['isString'](k))
|
|
291
|
+
return ![];
|
|
292
|
+
const H = k[i0(0x21c)](/-/g, '')[i0(0x199)](), c = new RegExp(i0(0x8b));
|
|
293
|
+
if (!c['test'](H))
|
|
294
|
+
return ![];
|
|
295
|
+
const a = Number(H['slice'](0x0, 0x4)), X = Number(H[i0(0x142)](0x4, 0x6)), p = Number(H[i0(0x142)](0x6, 0x8)), d = new Date(a, X - 0x1, p);
|
|
296
|
+
return d['getFullYear']() === a && d[i0(0x133)]() === X - 0x1 && d[i0(0x1a7)]() === p;
|
|
297
|
+
}
|
|
298
|
+
static ['isValidBirtDate'](k) {
|
|
299
|
+
const i1 = q;
|
|
300
|
+
return this[i1(0x221)](k);
|
|
301
|
+
}
|
|
302
|
+
static ['isAdult'](k, H = 0x13, c = new Date()) {
|
|
303
|
+
const i2 = q;
|
|
304
|
+
if (!this['isValidBirthDate'](k) || H < 0x0)
|
|
305
|
+
return ![];
|
|
306
|
+
const a = k['replace'](/-/g, '')[i2(0x199)](), X = Number(a['slice'](0x0, 0x4)), p = Number(a[i2(0x142)](0x4, 0x6)), d = Number(a[i2(0x142)](0x6, 0x8)), Q = new Date(X, p - 0x1, d);
|
|
307
|
+
let s = c['getFullYear']() - Q['getFullYear']();
|
|
308
|
+
const m = c['getMonth']() > Q['getMonth']() || c[i2(0x133)]() === Q['getMonth']() && c[i2(0x1a7)]() >= Q['getDate']();
|
|
309
|
+
if (!m)
|
|
310
|
+
s -= 0x1;
|
|
311
|
+
return s >= H;
|
|
312
|
+
}
|
|
313
|
+
static ['isMinor'](k, H = 0x13, c = new Date()) {
|
|
314
|
+
if (!this['isValidBirthDate'](k) || H < 0x0)
|
|
315
|
+
return ![];
|
|
316
|
+
return !this['isAdult'](k, H, c);
|
|
317
|
+
}
|
|
318
|
+
static ['str'](k) {
|
|
319
|
+
const i3 = q;
|
|
320
|
+
if (this['getType'](k) === 'Object')
|
|
321
|
+
return JSON['stringify'](k);
|
|
322
|
+
if (this[i3(0x21b)](k) === 'Number')
|
|
323
|
+
return k['toString']();
|
|
324
|
+
if (this['getType'](k) === 'String')
|
|
325
|
+
return k;
|
|
326
|
+
if (this[i3(0x17f)](k))
|
|
327
|
+
return '';
|
|
328
|
+
return String(k);
|
|
329
|
+
}
|
|
330
|
+
static [V(0xfb)](k) {
|
|
331
|
+
const i4 = q;
|
|
332
|
+
if (this[i4(0x17f)](k))
|
|
333
|
+
return 0x0;
|
|
334
|
+
return k;
|
|
335
|
+
}
|
|
336
|
+
static ['coalesce'](k, H) {
|
|
337
|
+
return this['isNullOrUndefined'](k) ? H : k;
|
|
338
|
+
}
|
|
339
|
+
static ['convertEmptyToTarget'](k, H) {
|
|
340
|
+
if (this['isEmpty'](k))
|
|
341
|
+
return H;
|
|
342
|
+
return k;
|
|
343
|
+
}
|
|
344
|
+
static ['zeroConvert'](k, H = 0x0) {
|
|
345
|
+
const i5 = q;
|
|
346
|
+
if (this['isNullOrUndefined'](k) || k === 'null' || k === '')
|
|
347
|
+
return 0x0;
|
|
348
|
+
if (this[i5(0xa9)](k))
|
|
349
|
+
return Math['floor'](k);
|
|
350
|
+
if (this['isString'](k)) {
|
|
351
|
+
const c = parseInt(k['trim'](), 0xa);
|
|
352
|
+
return isNaN(c) ? H : c;
|
|
353
|
+
}
|
|
354
|
+
return H;
|
|
355
|
+
}
|
|
356
|
+
static [V(0x18f)](k, H = 0x0) {
|
|
357
|
+
const i6 = q;
|
|
358
|
+
if (this[i6(0x17f)](k))
|
|
359
|
+
return H;
|
|
360
|
+
if (this['isNumber'](k))
|
|
361
|
+
return Math['floor'](k);
|
|
362
|
+
if (this['isString'](k)) {
|
|
363
|
+
const c = parseInt(k['trim'](), 0xa);
|
|
364
|
+
return isNaN(c) ? H : c;
|
|
365
|
+
}
|
|
366
|
+
return H;
|
|
367
|
+
}
|
|
368
|
+
static [V(0x1a3)](k, H = 0x0) {
|
|
369
|
+
const i7 = q;
|
|
370
|
+
if (this[i7(0x17f)](k))
|
|
371
|
+
return H;
|
|
372
|
+
if (this['isNumber'](k))
|
|
373
|
+
return k;
|
|
374
|
+
if (this['isString'](k)) {
|
|
375
|
+
const c = parseFloat(k['trim']());
|
|
376
|
+
return isNaN(c) ? H : c;
|
|
377
|
+
}
|
|
378
|
+
return H;
|
|
379
|
+
}
|
|
380
|
+
static [V(0x1c0)](k) {
|
|
381
|
+
const i8 = q;
|
|
382
|
+
if (this['isNullOrUndefined'](k))
|
|
383
|
+
return '';
|
|
384
|
+
const H = String(k)[i8(0x199)]();
|
|
385
|
+
if (H === '' || H === '-' || H === '+')
|
|
386
|
+
return H;
|
|
387
|
+
const c = H[i8(0x153)]('-') ? '-' : H[i8(0x153)]('+') ? '+' : '', a = c ? H['slice'](0x1) : H, X = a[i8(0x21c)](/,/g, '');
|
|
388
|
+
if (!/^\d+(\.\d+)?$/['test'](X))
|
|
389
|
+
return H;
|
|
390
|
+
const [p, d] = X[i8(0xc0)]('.'), Q = p['replace'](/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
391
|
+
return d !== undefined ? '' + c + Q + '.' + d : '' + c + Q;
|
|
392
|
+
}
|
|
393
|
+
static ['toBoolean'](k) {
|
|
394
|
+
const i9 = q, H = [
|
|
395
|
+
'true',
|
|
396
|
+
i9(0xc5),
|
|
397
|
+
'1',
|
|
398
|
+
'on',
|
|
399
|
+
'Y'
|
|
400
|
+
];
|
|
401
|
+
if (this['isBoolean'](k))
|
|
402
|
+
return k;
|
|
403
|
+
if (this[i9(0x17f)](k))
|
|
404
|
+
return ![];
|
|
405
|
+
if (this['isString'](k)) {
|
|
406
|
+
if (this['isBlank'](k))
|
|
407
|
+
return ![];
|
|
408
|
+
const c = k['toLowerCase']()['trim']();
|
|
409
|
+
return H['includes'](c);
|
|
410
|
+
}
|
|
411
|
+
if (this[i9(0xa9)](k))
|
|
412
|
+
return k !== 0x0;
|
|
413
|
+
return Boolean(k);
|
|
414
|
+
}
|
|
415
|
+
static [V(0x208)](k, H) {
|
|
416
|
+
const ii = q;
|
|
417
|
+
if (this['isNullOrUndefined'](k) || this['isNullOrUndefined'](H))
|
|
418
|
+
return ![];
|
|
419
|
+
return String(k)[ii(0x199)]()['toLowerCase']() === String(H)['trim']()['toLowerCase']();
|
|
420
|
+
}
|
|
421
|
+
static ['containsTrimLowercase'](k, H) {
|
|
422
|
+
const iq = q;
|
|
423
|
+
if (this['isBlank'](k) || this['isBlank'](H))
|
|
424
|
+
return ![];
|
|
425
|
+
const c = String(k)['trim']()[iq(0x1de)](), a = String(H)['trim']()['toLowerCase']();
|
|
426
|
+
return c['includes'](a);
|
|
427
|
+
}
|
|
428
|
+
static ['isBlank'](k) {
|
|
429
|
+
const ik = q;
|
|
430
|
+
if (this[ik(0x17f)](k))
|
|
431
|
+
return !![];
|
|
432
|
+
if (!this['isString'](k))
|
|
433
|
+
return ![];
|
|
434
|
+
return k[ik(0x199)]() === '';
|
|
435
|
+
}
|
|
436
|
+
static ['isNotBlank'](k) {
|
|
437
|
+
const iH = q;
|
|
438
|
+
if (!this['isString'](k))
|
|
439
|
+
return ![];
|
|
440
|
+
return !this[iH(0x201)](k);
|
|
441
|
+
}
|
|
442
|
+
static [V(0x1f5)](k, H, c = '...') {
|
|
443
|
+
if (!this['isString'](k))
|
|
444
|
+
return '';
|
|
445
|
+
if (k['length'] <= H)
|
|
446
|
+
return k;
|
|
447
|
+
return k['substring'](0x0, H - c['length']) + c;
|
|
448
|
+
}
|
|
449
|
+
static ['capitalize'](k) {
|
|
450
|
+
const ic = q;
|
|
451
|
+
if (!this[ic(0x120)](k) || k[ic(0x21f)] === 0x0)
|
|
452
|
+
return '';
|
|
453
|
+
return k['charAt'](0x0)['toUpperCase']() + k[ic(0x142)](0x1)['toLowerCase']();
|
|
454
|
+
}
|
|
455
|
+
static [V(0xd8)](k) {
|
|
456
|
+
const iy = q;
|
|
457
|
+
if (!this['isString'](k))
|
|
458
|
+
return '';
|
|
459
|
+
return k['replace'](/[A-Z]/g, H => '_' + H[iy(0x1de)]())['replace'](/^_/, '');
|
|
460
|
+
}
|
|
461
|
+
static ['toCamelCase'](k) {
|
|
462
|
+
if (!this['isString'](k))
|
|
463
|
+
return '';
|
|
464
|
+
return k['replace'](/_([a-z])/g, (H, c) => c['toUpperCase']());
|
|
465
|
+
}
|
|
466
|
+
static ['toKebabCase'](k) {
|
|
467
|
+
if (!this['isString'](k))
|
|
468
|
+
return '';
|
|
469
|
+
return k['replace'](/([a-z])([A-Z])/g, '$1-$2')['replace'](/[\s_]+/g, '-')['toLowerCase']();
|
|
470
|
+
}
|
|
471
|
+
static ['mask'](k, H = 0x0, c, a = '*') {
|
|
472
|
+
const ia = q;
|
|
473
|
+
if (!this['isString'](k) || k['length'] === 0x0)
|
|
474
|
+
return '';
|
|
475
|
+
const X = c ?? k['length'], p = k[ia(0x11e)](0x0, H), d = Math['max'](0x0, X - H), Q = a['repeat'](d), s = k['substring'](X);
|
|
476
|
+
return p + Q + s;
|
|
477
|
+
}
|
|
478
|
+
static ['maskEmail'](k, H = 0x2, c = '*') {
|
|
479
|
+
const iX = q;
|
|
480
|
+
if (!this['isString'](k) || !k['includes']('@'))
|
|
481
|
+
return k;
|
|
482
|
+
const [a, X] = k['split']('@');
|
|
483
|
+
if (a['length'] <= H)
|
|
484
|
+
return this['mask'](a, 0x1, undefined, c) + '@' + X;
|
|
485
|
+
const p = this[iX(0x151)](a, H, undefined, c);
|
|
486
|
+
return p + '@' + X;
|
|
487
|
+
}
|
|
488
|
+
static ['maskPhoneNumber'](k, H = '*') {
|
|
489
|
+
if (!this['isString'](k) || k['length'] === 0x0)
|
|
490
|
+
return '';
|
|
491
|
+
return k['replace'](/\d/g, H);
|
|
492
|
+
}
|
|
493
|
+
static [V(0x91)](k, H = '*') {
|
|
494
|
+
const ip = q;
|
|
495
|
+
if (!this['isString'](k) || k['length'] === 0x0)
|
|
496
|
+
return '';
|
|
497
|
+
return H['repeat'](k[ip(0x21f)]);
|
|
498
|
+
}
|
|
499
|
+
static [V(0x181)](k, H) {
|
|
500
|
+
return Math['floor'](Math['random']() * (H - k + 0x1)) + k;
|
|
501
|
+
}
|
|
502
|
+
static [V(0x179)](k, H, c) {
|
|
503
|
+
const id = q;
|
|
504
|
+
return Math[id(0x9b)](Math[id(0x15b)](k, H), c);
|
|
505
|
+
}
|
|
506
|
+
static ['chunk'](k, H) {
|
|
507
|
+
if (!this['isArray'](k) || H <= 0x0)
|
|
508
|
+
return [];
|
|
509
|
+
const c = [];
|
|
510
|
+
for (let a = 0x0; a < k['length']; a += H) {
|
|
511
|
+
c['push'](k['slice'](a, a + H));
|
|
512
|
+
}
|
|
513
|
+
return c;
|
|
514
|
+
}
|
|
515
|
+
static ['unique'](k) {
|
|
516
|
+
if (!this['isArray'](k))
|
|
517
|
+
return [];
|
|
518
|
+
return [...new Set(k)];
|
|
519
|
+
}
|
|
520
|
+
static ['shuffle'](k) {
|
|
521
|
+
const iQ = q;
|
|
522
|
+
if (!this[iQ(0x161)](k))
|
|
523
|
+
return [];
|
|
524
|
+
const H = [...k];
|
|
525
|
+
for (let c = H['length'] - 0x1; c > 0x0; c--) {
|
|
526
|
+
const a = Math[iQ(0x12a)](Math['random']() * (c + 0x1));
|
|
527
|
+
[H[c], H[a]] = [
|
|
528
|
+
H[a],
|
|
529
|
+
H[c]
|
|
530
|
+
];
|
|
531
|
+
}
|
|
532
|
+
return H;
|
|
533
|
+
}
|
|
534
|
+
static ['getType'](k) {
|
|
535
|
+
return Object['prototype']['toString']['call'](k)['slice'](0x8, -0x1);
|
|
536
|
+
}
|
|
537
|
+
static ['buildTree'](k, H, c, a = 'children') {
|
|
538
|
+
const is = q, X = [], p = {};
|
|
539
|
+
return k['forEach'](d => {
|
|
540
|
+
p[d[H]] = {
|
|
541
|
+
...d,
|
|
542
|
+
[a]: []
|
|
543
|
+
};
|
|
544
|
+
}), k[is(0x1e8)](d => {
|
|
545
|
+
d[c] !== null && p[d[c]] ? p[d[c]][a]['push'](p[d[H]]) : X['push'](p[d[H]]);
|
|
546
|
+
}), X;
|
|
547
|
+
}
|
|
548
|
+
static ['isObj'](k) {
|
|
549
|
+
return this['getType'](k) === 'Object';
|
|
550
|
+
}
|
|
551
|
+
static [V(0xd5)](k) {
|
|
552
|
+
return this['getType'](k) === 'Array';
|
|
553
|
+
}
|
|
554
|
+
static ['isNumeric'](k) {
|
|
555
|
+
return !isNaN(parseFloat(k)) && isFinite(k);
|
|
556
|
+
}
|
|
557
|
+
static [V(0x171)](k, H) {
|
|
558
|
+
const im = q, c = this[im(0x21b)](k);
|
|
559
|
+
if (c === im(0xe7) || c !== 'Object' && c !== im(0x130))
|
|
560
|
+
return k;
|
|
561
|
+
if (c === im(0x130))
|
|
562
|
+
return k[im(0x241)](X => this['omit'](X, H));
|
|
563
|
+
const a = {};
|
|
564
|
+
for (const X in k) {
|
|
565
|
+
if (H[im(0x113)](X))
|
|
566
|
+
continue;
|
|
567
|
+
const p = k[X];
|
|
568
|
+
a[X] = this[im(0x171)](p, H);
|
|
569
|
+
}
|
|
570
|
+
return a;
|
|
571
|
+
}
|
|
572
|
+
static ['pick'](k, H) {
|
|
573
|
+
const iz = q;
|
|
574
|
+
if (Object['prototype'][iz(0x177)]['call'](k, H)) {
|
|
575
|
+
const {
|
|
576
|
+
[H]: c,
|
|
577
|
+
...a
|
|
578
|
+
} = k;
|
|
579
|
+
return a;
|
|
580
|
+
} else
|
|
581
|
+
throw new Error(iz(0x262));
|
|
582
|
+
}
|
|
583
|
+
static ['isEmpty'](k) {
|
|
584
|
+
const ir = q;
|
|
585
|
+
if (this['isNullOrUndefined'](k))
|
|
586
|
+
return !![];
|
|
587
|
+
const H = this['getType'](k);
|
|
588
|
+
if (H === 'String' && this['isBlank'](k))
|
|
589
|
+
return !![];
|
|
590
|
+
if (H === 'Array' && k[ir(0x21f)] === 0x0)
|
|
591
|
+
return !![];
|
|
592
|
+
if (H === ir(0x97) && Object['keys'](k)['length'] === 0x0)
|
|
593
|
+
return !![];
|
|
594
|
+
return ![];
|
|
595
|
+
}
|
|
596
|
+
static ['cloneDeep'](k, H = new Map()) {
|
|
597
|
+
const iZ = q;
|
|
598
|
+
if (this['isNullOrUndefined'](k) || typeof k !== iZ(0x1cf))
|
|
599
|
+
return k;
|
|
600
|
+
if (H['has'](k))
|
|
601
|
+
return H['get'](k);
|
|
602
|
+
const c = this['getType'](k);
|
|
603
|
+
let a;
|
|
604
|
+
if (c === 'Array') {
|
|
605
|
+
a = [], H[iZ(0x1d0)](k, a);
|
|
606
|
+
for (const X of k) {
|
|
607
|
+
a['push'](this['cloneDeep'](X, H));
|
|
608
|
+
}
|
|
609
|
+
} else {
|
|
610
|
+
if (c === iZ(0x97)) {
|
|
611
|
+
a = {}, H['set'](k, a);
|
|
612
|
+
for (const p in k) {
|
|
613
|
+
Object['prototype']['hasOwnProperty'][iZ(0x1c5)](k, p) && (a[p] = this['cloneDeep'](k[p], H));
|
|
614
|
+
}
|
|
615
|
+
} else
|
|
616
|
+
return k;
|
|
617
|
+
}
|
|
618
|
+
return a;
|
|
619
|
+
}
|
|
620
|
+
static ['merge'](k, H) {
|
|
621
|
+
const ig = q, c = new Set([
|
|
622
|
+
ig(0x24e),
|
|
623
|
+
'constructor',
|
|
624
|
+
'prototype'
|
|
625
|
+
]), a = this['isObj'](k) ? k : {}, X = this[ig(0x269)](H) ? H : {}, p = { ...a };
|
|
626
|
+
for (const d of Reflect['ownKeys'](X)) {
|
|
627
|
+
if (typeof d === 'string' && c['has'](d))
|
|
628
|
+
continue;
|
|
629
|
+
let Q;
|
|
630
|
+
try {
|
|
631
|
+
Q = Reflect['get'](X, d);
|
|
632
|
+
} catch {
|
|
633
|
+
continue;
|
|
634
|
+
}
|
|
635
|
+
const m = Reflect['get'](a, d);
|
|
636
|
+
if (Q === undefined)
|
|
637
|
+
continue;
|
|
638
|
+
if (this[ig(0xd5)](Q)) {
|
|
639
|
+
p[d] = Q['slice']();
|
|
640
|
+
continue;
|
|
641
|
+
}
|
|
642
|
+
if (this['isObj'](Q) && this[ig(0x269)](m)) {
|
|
643
|
+
p[d] = this['merge'](m, Q);
|
|
644
|
+
continue;
|
|
645
|
+
}
|
|
646
|
+
p[d] = Q;
|
|
647
|
+
}
|
|
648
|
+
return p;
|
|
649
|
+
}
|
|
650
|
+
static ['isEqual'](H, c) {
|
|
651
|
+
const iB = q;
|
|
652
|
+
if (H === c)
|
|
653
|
+
return !![];
|
|
654
|
+
if (typeof H !== typeof c)
|
|
655
|
+
return ![];
|
|
656
|
+
if (typeof H !== 'object' || H == null || c == null)
|
|
657
|
+
return ![];
|
|
658
|
+
const X = Object['keys'](H), p = Object['keys'](c);
|
|
659
|
+
if (X['length'] !== p['length'])
|
|
660
|
+
return ![];
|
|
661
|
+
for (const d of X) {
|
|
662
|
+
if (!StzUtils[iB(0x244)](H[d], c[d]))
|
|
663
|
+
return ![];
|
|
664
|
+
}
|
|
665
|
+
return !![];
|
|
666
|
+
}
|
|
667
|
+
static ['donwnloadTableByCSV'](k, H = 'table.csv') {
|
|
668
|
+
const iA = q;
|
|
669
|
+
if (!k) {
|
|
670
|
+
console['error'](iA(0x11a));
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
673
|
+
const c = Array['from'](k['querySelectorAll']('tr')), X = c['map'](m => {
|
|
674
|
+
const iR = q, z = Array['from'](m['querySelectorAll']('th,\x20td'));
|
|
675
|
+
return z['map'](r => '\x22' + r[iR(0x14a)] + '\x22')['join'](',');
|
|
676
|
+
})['join']('\x0a'), p = '\ufeff', d = new Blob([p + X], { 'type': 'text/csv;charset=utf-8;' }), Q = URL['createObjectURL'](d), s = document['createElement']('a');
|
|
677
|
+
s[iA(0x124)] = Q, s['download'] = H, document['body'][iA(0x23d)](s), s[iA(0x1e0)](), document['body']['removeChild'](s), URL[iA(0xd0)](Q);
|
|
678
|
+
}
|
|
679
|
+
static [V(0x1f2)](k) {
|
|
680
|
+
const iN = q;
|
|
681
|
+
if (this[iN(0x197)](k) || !this['isString'](k))
|
|
682
|
+
return 'unknown';
|
|
683
|
+
const H = k['trim']();
|
|
684
|
+
if (H['startsWith']('#'))
|
|
685
|
+
return 'hex';
|
|
686
|
+
if (H['startsWith']('rgba('))
|
|
687
|
+
return 'rgba';
|
|
688
|
+
if (H[iN(0x153)]('rgb('))
|
|
689
|
+
return 'rgb';
|
|
690
|
+
return iN(0xc1);
|
|
691
|
+
}
|
|
692
|
+
static [V(0x1c1)](k, H = 0.5) {
|
|
693
|
+
const iI = q;
|
|
694
|
+
if (!k || !this['isString'](k))
|
|
695
|
+
throw new Error('Invalid\x20hex\x20color');
|
|
696
|
+
let c = k['trim']()[iI(0x21c)]('#', '');
|
|
697
|
+
c['length'] === 0x3 && (c = c[iI(0xc0)]('')[iI(0x241)](Q => Q + Q)['join'](''));
|
|
698
|
+
if (c['length'] !== 0x6)
|
|
699
|
+
throw new Error('Hex\x20color\x20must\x20be\x203\x20or\x206\x20characters');
|
|
700
|
+
const a = Math[iI(0x15b)](0x0, Math['min'](0x1, H)), X = parseInt(c['substring'](0x0, 0x2), 0x10), p = parseInt(c['substring'](0x2, 0x4), 0x10), d = parseInt(c['substring'](0x4, 0x6), 0x10);
|
|
701
|
+
if (isNaN(X) || isNaN(p) || isNaN(d))
|
|
702
|
+
throw new Error(iI(0xfc));
|
|
703
|
+
return iI(0x154) + X + ',\x20' + p + ',\x20' + d + ',\x20' + a + ')';
|
|
704
|
+
}
|
|
705
|
+
static [V(0xe8)](k) {
|
|
706
|
+
const iu = q;
|
|
707
|
+
if (!k || !this['isString'](k))
|
|
708
|
+
throw new Error('Invalid\x20rgba\x20color');
|
|
709
|
+
const H = k[iu(0x24f)](/\d+/g);
|
|
710
|
+
if (!H || H[iu(0x21f)] < 0x3)
|
|
711
|
+
throw new Error('Invalid\x20rgba\x20format');
|
|
712
|
+
const [c, a, X] = H['slice'](0x0, 0x3)['map'](Number);
|
|
713
|
+
if (c > 0xff || a > 0xff || X > 0xff || c < 0x0 || a < 0x0 || X < 0x0)
|
|
714
|
+
throw new Error('RGB\x20values\x20must\x20be\x20between\x200\x20and\x20255');
|
|
715
|
+
const p = d => d[iu(0x1e7)](0x10)['padStart'](0x2, '0')[iu(0xdb)]();
|
|
716
|
+
return '#' + p(c) + p(a) + p(X);
|
|
717
|
+
}
|
|
718
|
+
static ['rgbAddOpacity'](k, H) {
|
|
719
|
+
const iv = q;
|
|
720
|
+
if (!k || !this['isString'](k))
|
|
721
|
+
throw new Error(iv(0x1e2));
|
|
722
|
+
const c = k['match'](/\d+/g);
|
|
723
|
+
if (!c || c['length'] < 0x3)
|
|
724
|
+
throw new Error('Invalid\x20rgb\x20format');
|
|
725
|
+
const [a, X, p] = c['slice'](0x0, 0x3)['map'](Number);
|
|
726
|
+
if (a > 0xff || X > 0xff || p > 0xff || a < 0x0 || X < 0x0 || p < 0x0)
|
|
727
|
+
throw new Error('RGB\x20values\x20must\x20be\x20between\x200\x20and\x20255');
|
|
728
|
+
const d = Math['max'](0x0, Math['min'](0x1, H));
|
|
729
|
+
return iv(0x154) + a + ',\x20' + X + ',\x20' + p + ',\x20' + d + ')';
|
|
730
|
+
}
|
|
731
|
+
static [V(0x180)](k) {
|
|
732
|
+
const it = q;
|
|
733
|
+
if (!k || !this['isString'](k))
|
|
734
|
+
throw new Error(it(0xf2));
|
|
735
|
+
const H = k['match'](/\d+/g);
|
|
736
|
+
if (!H || H['length'] < 0x3)
|
|
737
|
+
throw new Error('Invalid\x20rgba\x20format');
|
|
738
|
+
const [c, a, X] = H['slice'](0x0, 0x3)['map'](Number);
|
|
739
|
+
if (c > 0xff || a > 0xff || X > 0xff || c < 0x0 || a < 0x0 || X < 0x0)
|
|
740
|
+
throw new Error('RGB\x20values\x20must\x20be\x20between\x200\x20and\x20255');
|
|
741
|
+
return it(0x98) + c + ',\x20' + a + ',\x20' + X + ')';
|
|
742
|
+
}
|
|
743
|
+
static ['hexToRgb'](k) {
|
|
744
|
+
const H = this['hexToRgba'](k, 0x1);
|
|
745
|
+
return this['rgbaToRgb'](H);
|
|
746
|
+
}
|
|
747
|
+
static ['rgbToHex'](k) {
|
|
748
|
+
const iM = q;
|
|
749
|
+
return this[iM(0xe8)](k);
|
|
750
|
+
}
|
|
751
|
+
static ['hasUpperCase'](k) {
|
|
752
|
+
return k !== k['toLowerCase']();
|
|
753
|
+
}
|
|
754
|
+
static [V(0x223)](k) {
|
|
755
|
+
const iW = q;
|
|
756
|
+
if (this[iW(0x21b)](window) === 'undefined')
|
|
757
|
+
return null;
|
|
758
|
+
if (!window['localStorage'])
|
|
759
|
+
return null;
|
|
760
|
+
const H = window[iW(0x159)][iW(0x265)](k);
|
|
761
|
+
if (H == null)
|
|
762
|
+
return null;
|
|
763
|
+
return this['str'](H);
|
|
764
|
+
}
|
|
765
|
+
static ['getLocalStorageJson'](k) {
|
|
766
|
+
const iG = q, H = this['getLocalStorageByKey'](k);
|
|
767
|
+
if (H == null)
|
|
768
|
+
return null;
|
|
769
|
+
try {
|
|
770
|
+
return JSON[iG(0x212)](H);
|
|
771
|
+
} catch {
|
|
772
|
+
return null;
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
static [V(0x18c)](k, H) {
|
|
776
|
+
try {
|
|
777
|
+
if (typeof window === 'undefined')
|
|
778
|
+
return ![];
|
|
779
|
+
const c = window['localStorage'];
|
|
780
|
+
if (!c)
|
|
781
|
+
return ![];
|
|
782
|
+
if (H === undefined)
|
|
783
|
+
return c['removeItem'](k), !![];
|
|
784
|
+
const a = typeof H === 'string' ? H : JSON['stringify'](H);
|
|
785
|
+
return c['setItem'](k, a), !![];
|
|
786
|
+
} catch (X) {
|
|
787
|
+
return ![];
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
static [V(0xe6)](k) {
|
|
791
|
+
const iV = q;
|
|
792
|
+
if (k === ![] || k === 0x0 || k === '' || k === null || k === undefined || this['isArray'](k) && k[iV(0x21f)] === 0x0 || this['isObj'](k) && Object['keys'](k)['length'] === 0x0)
|
|
793
|
+
return !![];
|
|
794
|
+
return ![];
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
let configLoaded = ![], manualConfig = null, activeConfig = null;
|
|
798
|
+
function setChartConfig(k) {
|
|
799
|
+
manualConfig = k, configLoaded = ![], ensureConfigLoaded();
|
|
800
|
+
}
|
|
801
|
+
function loadBrowserConfig() {
|
|
802
|
+
try {
|
|
803
|
+
const k = globalThis['__STZ_CONFIG__'];
|
|
804
|
+
if (!k)
|
|
805
|
+
return null;
|
|
806
|
+
if (StzUtils['isObject'](k) && 'default' in k)
|
|
807
|
+
return k['default'] || null;
|
|
808
|
+
return k;
|
|
809
|
+
} catch {
|
|
810
|
+
return null;
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
function applyConfig(k) {
|
|
814
|
+
const iY = q;
|
|
815
|
+
(!StzUtils[iY(0x238)](k['errorLogging']) || !StzUtils['isUndefined'](k[iY(0xf8)])) && Promise['resolve']()[iY(0x206)](function () {
|
|
816
|
+
return Logger;
|
|
817
|
+
})['then'](({LoggerConfig: H}) => {
|
|
818
|
+
const iK = q;
|
|
819
|
+
!StzUtils['isUndefined'](k[iK(0x1eb)]) && (H[iK(0x1eb)] = k['errorLogging']), !StzUtils['isUndefined'](k['silentMode']) && (H['silentMode'] = k['silentMode']);
|
|
820
|
+
})['catch'](() => {
|
|
821
|
+
});
|
|
822
|
+
}
|
|
823
|
+
function ensureConfigLoaded() {
|
|
824
|
+
if (configLoaded)
|
|
825
|
+
return;
|
|
826
|
+
configLoaded = !![], activeConfig = null;
|
|
827
|
+
if (manualConfig) {
|
|
828
|
+
activeConfig = manualConfig, applyConfig(manualConfig);
|
|
829
|
+
return;
|
|
830
|
+
}
|
|
831
|
+
const k = loadBrowserConfig();
|
|
832
|
+
k && (activeConfig = k, applyConfig(k));
|
|
833
|
+
}
|
|
834
|
+
function getChartConfig() {
|
|
835
|
+
return ensureConfigLoaded(), activeConfig || {};
|
|
836
|
+
}
|
|
837
|
+
class ChartInstance {
|
|
838
|
+
static ['map'] = new Map();
|
|
839
|
+
static [V(0x1e9)](k, H) {
|
|
840
|
+
this['map']['set'](k, H);
|
|
841
|
+
}
|
|
842
|
+
static ['get'](k) {
|
|
843
|
+
return this['map']['get'](k);
|
|
844
|
+
}
|
|
845
|
+
static [V(0x12f)](k) {
|
|
846
|
+
const ih = q, H = this[ih(0x10f)](k);
|
|
847
|
+
if (StzUtils[ih(0x197)](H))
|
|
848
|
+
throw new CustomError(ErrorCode[ih(0xb4)]);
|
|
849
|
+
return H;
|
|
850
|
+
}
|
|
851
|
+
static ['unregister'](k) {
|
|
852
|
+
return this['map']['delete'](k);
|
|
853
|
+
}
|
|
854
|
+
static ['has'](k) {
|
|
855
|
+
const iL = q;
|
|
856
|
+
return this[iL(0x241)]['has'](k);
|
|
857
|
+
}
|
|
858
|
+
static [V(0xbc)]() {
|
|
859
|
+
const iO = q;
|
|
860
|
+
this[iO(0x241)]['clear']();
|
|
861
|
+
}
|
|
862
|
+
static ['update'](k, H, c = 'default') {
|
|
863
|
+
const iP = q, a = this[iP(0x10f)](k);
|
|
864
|
+
if (StzUtils['isEmpty'](a))
|
|
865
|
+
this['register'](k, H), H['update'](c);
|
|
866
|
+
else
|
|
867
|
+
throw new CustomError(ErrorCode['UNKNOWN_ERROR']);
|
|
868
|
+
}
|
|
869
|
+
static ['resize'](k) {
|
|
870
|
+
const iS = q, H = this['get'](k);
|
|
871
|
+
if (StzUtils['isEmpty'](H))
|
|
872
|
+
throw new CustomError(ErrorCode[iS(0xb4)]);
|
|
873
|
+
H['resize']();
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
function resolveChartTarget(k) {
|
|
877
|
+
const ij = q;
|
|
878
|
+
return typeof k === ij(0x25d) ? ChartInstance['getChart'](k) : k;
|
|
879
|
+
}
|
|
880
|
+
function resolveTooltipPosition(k, H) {
|
|
881
|
+
const iC = q, c = H[0x0];
|
|
882
|
+
if (!c)
|
|
883
|
+
return {
|
|
884
|
+
'x': (k['chartArea']['left'] + k[iC(0x260)]['right']) / 0x2,
|
|
885
|
+
'y': (k['chartArea'][iC(0x278)] + k['chartArea'][iC(0x276)]) / 0x2
|
|
886
|
+
};
|
|
887
|
+
const a = k[iC(0x12e)](c['datasetIndex'])['data'][c['index']];
|
|
888
|
+
return {
|
|
889
|
+
'x': a?.['x'] ?? (k['chartArea']['left'] + k['chartArea'][iC(0x18b)]) / 0x2,
|
|
890
|
+
'y': a?.['y'] ?? (k[iC(0x260)]['top'] + k['chartArea']['bottom']) / 0x2
|
|
891
|
+
};
|
|
892
|
+
}
|
|
893
|
+
const CHART_COLOR = [
|
|
894
|
+
'#FF3B30',
|
|
895
|
+
V(0x1ef),
|
|
896
|
+
'#FFCC00',
|
|
897
|
+
'#34C759',
|
|
898
|
+
'#00C7BE',
|
|
899
|
+
'#30B0C7',
|
|
900
|
+
'#32ADE6',
|
|
901
|
+
'#007AFF',
|
|
902
|
+
V(0x25c),
|
|
903
|
+
'#AF52DE'
|
|
904
|
+
];
|
|
905
|
+
function getChartInstance(k) {
|
|
906
|
+
return resolveChartTarget(k);
|
|
907
|
+
}
|
|
908
|
+
function resetChartZoom(k) {
|
|
909
|
+
const H = resolveChartTarget(k);
|
|
910
|
+
H['resetZoom']?.();
|
|
911
|
+
}
|
|
912
|
+
function updateChart(k, H) {
|
|
913
|
+
const il = q;
|
|
914
|
+
resolveChartTarget(k)[il(0x1b9)](H);
|
|
915
|
+
}
|
|
916
|
+
function resizeChart(k) {
|
|
917
|
+
const ie = q;
|
|
918
|
+
resolveChartTarget(k)[ie(0x258)]();
|
|
919
|
+
}
|
|
920
|
+
function setChartActiveElements(k, H) {
|
|
921
|
+
resolveChartTarget(k)['setActiveElements'](H);
|
|
922
|
+
}
|
|
923
|
+
function clearChartActiveElements(k) {
|
|
924
|
+
resolveChartTarget(k)['setActiveElements']([]);
|
|
925
|
+
}
|
|
926
|
+
function setChartDatasetVisibility(k, H, c) {
|
|
927
|
+
const iw = q, a = resolveChartTarget(k);
|
|
928
|
+
a[iw(0x192)](H, c), a[iw(0x1b9)]();
|
|
929
|
+
}
|
|
930
|
+
function toggleChartDatasetVisibility(k, H) {
|
|
931
|
+
const c = resolveChartTarget(k), a = !c['isDatasetVisible'](H);
|
|
932
|
+
return c['setDatasetVisibility'](H, a), c['update'](), a;
|
|
933
|
+
}
|
|
934
|
+
function isChartDatasetVisible(k, H) {
|
|
935
|
+
return resolveChartTarget(k)['isDatasetVisible'](H);
|
|
936
|
+
}
|
|
937
|
+
function showChartTooltip(k, H, c) {
|
|
938
|
+
const ix = q, a = resolveChartTarget(k), X = a['tooltip'], p = c ?? resolveTooltipPosition(a, H);
|
|
939
|
+
a['setActiveElements'](H), X?.['setActiveElements']?.(H, p), a[ix(0x1b9)]();
|
|
940
|
+
}
|
|
941
|
+
function hideChartTooltip(k) {
|
|
942
|
+
const iU = q, H = resolveChartTarget(k), c = H[iU(0x19e)];
|
|
943
|
+
H['setActiveElements']([]), c?.['setActiveElements']?.([], {
|
|
944
|
+
'x': 0x0,
|
|
945
|
+
'y': 0x0
|
|
946
|
+
}), H['update']();
|
|
947
|
+
}
|
|
948
|
+
function getChartDatasetMeta(k, H) {
|
|
949
|
+
return resolveChartTarget(k)['getDatasetMeta'](H);
|
|
950
|
+
}
|
|
951
|
+
function downloadChartAsImage(k, H = {}) {
|
|
952
|
+
downloadChartAsImageByInstance(resolveChartTarget(k), H);
|
|
953
|
+
}
|
|
954
|
+
function downloadChartAsImageByInstance(k, H = {}) {
|
|
955
|
+
const io = q, {
|
|
956
|
+
format: format = 'png',
|
|
957
|
+
quality: quality = 0.95,
|
|
958
|
+
backgroundColor: c,
|
|
959
|
+
filename: a,
|
|
960
|
+
scale: scale = 0x1
|
|
961
|
+
} = H, X = k[io(0x167)];
|
|
962
|
+
if (!X)
|
|
963
|
+
throw new CustomError(ErrorCode[io(0xb4)]);
|
|
964
|
+
let p;
|
|
965
|
+
if (scale !== 0x1 || c) {
|
|
966
|
+
const Q = document['createElement']('canvas'), s = Q[io(0x1af)]('2d');
|
|
967
|
+
if (!s)
|
|
968
|
+
throw new CustomError(ErrorCode[io(0xb4)]);
|
|
969
|
+
Q['width'] = X['width'] * scale, Q[io(0x17b)] = X['height'] * scale, c && (s[io(0x8f)] = c, s['fillRect'](0x0, 0x0, Q[io(0x1ab)], Q[io(0x17b)])), s['scale'](scale, scale), s['drawImage'](X, 0x0, 0x0), p = Q['toDataURL']('image/' + format, quality);
|
|
970
|
+
} else
|
|
971
|
+
p = X[io(0xed)](io(0x216) + format, quality);
|
|
972
|
+
const d = document['createElement']('a');
|
|
973
|
+
d['download'] = a || 'chart-' + Date[io(0xf0)]() + '.' + format, d['href'] = p, document[io(0xd4)]['appendChild'](d), d['click'](), document['body']['removeChild'](d);
|
|
974
|
+
}
|
|
975
|
+
function getChartAsBase64(k, H = {}) {
|
|
976
|
+
return getChartAsBase64ByInstance(resolveChartTarget(k), H);
|
|
977
|
+
}
|
|
978
|
+
function getChartAsBase64ByInstance(k, H = {}) {
|
|
979
|
+
const iE = q, {
|
|
980
|
+
format: format = iE(0x1cd),
|
|
981
|
+
quality: quality = 0.95,
|
|
982
|
+
backgroundColor: c,
|
|
983
|
+
scale: scale = 0x1
|
|
984
|
+
} = H, a = k['canvas'];
|
|
985
|
+
if (!a)
|
|
986
|
+
throw new CustomError(ErrorCode['UNKNOWN_ERROR']);
|
|
987
|
+
if (scale !== 0x1 || c) {
|
|
988
|
+
const X = document['createElement'](iE(0x167)), p = X['getContext']('2d');
|
|
989
|
+
if (!p)
|
|
990
|
+
throw new CustomError(ErrorCode['UNKNOWN_ERROR']);
|
|
991
|
+
return X[iE(0x1ab)] = a['width'] * scale, X['height'] = a['height'] * scale, c && (p[iE(0x8f)] = c, p['fillRect'](0x0, 0x0, X['width'], X['height'])), p[iE(0x1bb)](scale, scale), p['drawImage'](a, 0x0, 0x0), X['toDataURL']('image/' + format, quality);
|
|
992
|
+
}
|
|
993
|
+
return a['toDataURL']('image/' + format, quality);
|
|
994
|
+
}
|
|
995
|
+
function getChartAsBlob(k, H = {}) {
|
|
996
|
+
return getChartAsBlobByInstance(resolveChartTarget(k), H);
|
|
997
|
+
}
|
|
998
|
+
function getChartAsBlobByInstance(k, H = {}) {
|
|
999
|
+
const iJ = q, {
|
|
1000
|
+
format: format = 'png',
|
|
1001
|
+
quality: quality = 0.95,
|
|
1002
|
+
backgroundColor: c,
|
|
1003
|
+
scale: scale = 0x1
|
|
1004
|
+
} = H, a = k[iJ(0x167)];
|
|
1005
|
+
if (!a)
|
|
1006
|
+
return Promise['reject'](new CustomError(ErrorCode['UNKNOWN_ERROR']));
|
|
1007
|
+
return new Promise((X, p) => {
|
|
1008
|
+
const iD = q;
|
|
1009
|
+
if (scale !== 0x1 || c) {
|
|
1010
|
+
const d = document[iD(0x195)]('canvas'), Q = d[iD(0x1af)]('2d');
|
|
1011
|
+
if (!Q) {
|
|
1012
|
+
p(new CustomError(ErrorCode['UNKNOWN_ERROR']));
|
|
1013
|
+
return;
|
|
1014
|
+
}
|
|
1015
|
+
d['width'] = a['width'] * scale, d['height'] = a[iD(0x17b)] * scale, c && (Q['fillStyle'] = c, Q[iD(0x15c)](0x0, 0x0, d['width'], d['height'])), Q['scale'](scale, scale), Q[iD(0xc9)](a, 0x0, 0x0), d['toBlob'](s => {
|
|
1016
|
+
const iT = q;
|
|
1017
|
+
s ? X(s) : p(new CustomError(ErrorCode[iT(0xb4)]));
|
|
1018
|
+
}, iD(0x216) + format, quality);
|
|
1019
|
+
} else
|
|
1020
|
+
a['toBlob'](s => {
|
|
1021
|
+
s ? X(s) : p(new CustomError(ErrorCode['UNKNOWN_ERROR']));
|
|
1022
|
+
}, 'image/' + format, quality);
|
|
1023
|
+
});
|
|
1024
|
+
}
|
|
1025
|
+
function buildClickItem(k, H) {
|
|
1026
|
+
const iF = q, {
|
|
1027
|
+
datasetIndex: c,
|
|
1028
|
+
index: a
|
|
1029
|
+
} = H, X = k['data']['datasets'][c], p = X['data'][a], d = p !== null && typeof p === iF(0x1cf) ? p : undefined;
|
|
1030
|
+
return {
|
|
1031
|
+
'datasetIndex': c,
|
|
1032
|
+
'dataIndex': a,
|
|
1033
|
+
'datasetLabel': X['label'],
|
|
1034
|
+
'datasetUid': X[iF(0x16a)],
|
|
1035
|
+
'label': k['data']['labels']?.[a],
|
|
1036
|
+
'raw': p,
|
|
1037
|
+
'value': p,
|
|
1038
|
+
'x': d?.['x'],
|
|
1039
|
+
'y': d?.['y'],
|
|
1040
|
+
'radius': typeof d?.['r'] === 'number' ? d['r'] : undefined
|
|
1041
|
+
};
|
|
1042
|
+
}
|
|
1043
|
+
function scaleValue(k, H, c) {
|
|
1044
|
+
const ib = q;
|
|
1045
|
+
if (c === null)
|
|
1046
|
+
return undefined;
|
|
1047
|
+
return k['scales'][H]?.[ib(0xb3)](c);
|
|
1048
|
+
}
|
|
1049
|
+
function resolveChartType(k, H) {
|
|
1050
|
+
const q0 = q;
|
|
1051
|
+
if ('type' in k['config'])
|
|
1052
|
+
return k[q0(0x1d8)]['type'];
|
|
1053
|
+
const c = H[0x0];
|
|
1054
|
+
if (!c)
|
|
1055
|
+
return undefined;
|
|
1056
|
+
return k['data'][q0(0x247)][c[q0(0x1ce)]]?.['type'];
|
|
1057
|
+
}
|
|
1058
|
+
function createStzClickContext(k, H, c) {
|
|
1059
|
+
const q1 = q, a = c[q1(0x241)](X => buildClickItem(k, X));
|
|
1060
|
+
return {
|
|
1061
|
+
'chart': k,
|
|
1062
|
+
'chartType': resolveChartType(k, c),
|
|
1063
|
+
'primary': a[0x0],
|
|
1064
|
+
'items': a,
|
|
1065
|
+
'pointer': {
|
|
1066
|
+
'canvasX': H['x'],
|
|
1067
|
+
'canvasY': H['y'],
|
|
1068
|
+
'xValue': scaleValue(k, 'x', H['x']),
|
|
1069
|
+
'yValue': scaleValue(k, 'y', H['y'])
|
|
1070
|
+
}
|
|
1071
|
+
};
|
|
1072
|
+
}
|
|
1073
|
+
function stzOnClick(k) {
|
|
1074
|
+
if (!k)
|
|
1075
|
+
return undefined;
|
|
1076
|
+
return function (H, c) {
|
|
1077
|
+
const a = createStzClickContext(this, H, c);
|
|
1078
|
+
k['call'](this, H, c, a);
|
|
1079
|
+
};
|
|
1080
|
+
}
|
|
1081
|
+
class Chart {
|
|
1082
|
+
['type'];
|
|
1083
|
+
['labels'];
|
|
1084
|
+
[V(0x89)];
|
|
1085
|
+
['options'];
|
|
1086
|
+
['plugins'];
|
|
1087
|
+
get ['datasets']() {
|
|
1088
|
+
const q2 = q;
|
|
1089
|
+
return this[q2(0x89)];
|
|
1090
|
+
}
|
|
1091
|
+
set [V(0x247)](k) {
|
|
1092
|
+
this['_datasets'] = k;
|
|
1093
|
+
}
|
|
1094
|
+
constructor(k, H, c, a, X) {
|
|
1095
|
+
this['type'] = k, this['labels'] = H, this['_datasets'] = c, this['options'] = a, this['plugins'] = X, this['applyGlobalPluginConfig']();
|
|
1096
|
+
}
|
|
1097
|
+
static ['create'](k, H, c, a, X) {
|
|
1098
|
+
return ensureConfigLoaded(), ChartFactory['create'](k, H, c, a, X);
|
|
1099
|
+
}
|
|
1100
|
+
static ['register'](k, H) {
|
|
1101
|
+
ensureConfigLoaded(), ChartFactory['register'](k, H);
|
|
1102
|
+
}
|
|
1103
|
+
static ['has'](k) {
|
|
1104
|
+
return ChartFactory['has'](k);
|
|
1105
|
+
}
|
|
1106
|
+
[V(0x9e)](k) {
|
|
1107
|
+
return StzUtils['cloneDeep'](k);
|
|
1108
|
+
}
|
|
1109
|
+
['clonePlugins'](k) {
|
|
1110
|
+
return StzUtils['isArray'](k) ? [...k] : k;
|
|
1111
|
+
}
|
|
1112
|
+
['applyGlobalPluginConfig']() {
|
|
1113
|
+
const q3 = q, k = getChartConfig();
|
|
1114
|
+
if (!k['legend'] && !k['tooltip'])
|
|
1115
|
+
return;
|
|
1116
|
+
const H = this['options'] = StzUtils['coalesce'](this[q3(0xb7)], {}), c = H['plugins'] = StzUtils['coalesce'](H['plugins'], {});
|
|
1117
|
+
k[q3(0xf3)] && (c[q3(0xf3)] = StzUtils[q3(0x248)](StzUtils['cloneDeep'](k[q3(0xf3)]), StzUtils[q3(0x183)](c['legend'] || {}))), k['tooltip'] && (c['tooltip'] = StzUtils['merge'](StzUtils['cloneDeep'](k['tooltip']), StzUtils['cloneDeep'](c[q3(0x19e)] || {})));
|
|
1118
|
+
}
|
|
1119
|
+
['requireDatasets']() {
|
|
1120
|
+
const q4 = q;
|
|
1121
|
+
if (!this['datasets'] || !StzUtils['isArray'](this['datasets']))
|
|
1122
|
+
throw CustomError[q4(0x16d)](ErrorCode['DATASET_REQUIRED']);
|
|
1123
|
+
return this['datasets'];
|
|
1124
|
+
}
|
|
1125
|
+
['resolveDatasetIndex'](k) {
|
|
1126
|
+
const q5 = q, H = this['requireDatasets']();
|
|
1127
|
+
if (StzUtils['isNumber'](k)) {
|
|
1128
|
+
if (k < 0x0 || k >= H['length'])
|
|
1129
|
+
throw CustomError['shield'](ErrorCode['NOT_FOUND_DATASET'], 'Dataset\x20index\x20' + k + q5(0x119));
|
|
1130
|
+
return k;
|
|
1131
|
+
}
|
|
1132
|
+
const c = H['findIndex'](a => a && (a['_uid'] === k || a['label'] === k));
|
|
1133
|
+
if (c === -0x1)
|
|
1134
|
+
throw CustomError['shield'](ErrorCode['NOT_FOUND_DATASET']);
|
|
1135
|
+
return c;
|
|
1136
|
+
}
|
|
1137
|
+
[V(0x1e5)](k) {
|
|
1138
|
+
return this['requireDatasets']()[this['resolveDatasetIndex'](k)];
|
|
1139
|
+
}
|
|
1140
|
+
[V(0x13d)](k) {
|
|
1141
|
+
const q6 = q, H = this[q6(0x104)](), c = H[k]?.[q6(0x1a2)];
|
|
1142
|
+
if (c === undefined || c === null || c === '')
|
|
1143
|
+
return [k];
|
|
1144
|
+
return H['reduce']((a, X, p) => {
|
|
1145
|
+
const q7 = q;
|
|
1146
|
+
return X?.[q7(0x1a2)] === c && a['push'](p), a;
|
|
1147
|
+
}, []);
|
|
1148
|
+
}
|
|
1149
|
+
['setDatasetVisibilityState'](k, H) {
|
|
1150
|
+
const q8 = q;
|
|
1151
|
+
k['_visible'] = H, k[q8(0x232)] = !H;
|
|
1152
|
+
}
|
|
1153
|
+
['getDatasetVisibilityState'](k) {
|
|
1154
|
+
const q9 = q;
|
|
1155
|
+
if (typeof k[q9(0x23e)] === q9(0x196))
|
|
1156
|
+
return k[q9(0x23e)];
|
|
1157
|
+
return !k['hidden'];
|
|
1158
|
+
}
|
|
1159
|
+
['prepareOptions'](k) {
|
|
1160
|
+
const qi = q, H = this['cloneValue'](k), c = H['onClick'];
|
|
1161
|
+
return c && (H[qi(0xaf)] = stzOnClick(c)), H;
|
|
1162
|
+
}
|
|
1163
|
+
['clone']() {
|
|
1164
|
+
const qq = q, k = Object['create'](Object[qq(0xa8)](this));
|
|
1165
|
+
return Object['assign'](k, this), k['labels'] = this['cloneValue'](this[qq(0xf4)]), k['_datasets'] = this[qq(0x9e)](this[qq(0x247)]), k['options'] = this['cloneValue'](this['options']), k['plugins'] = this[qq(0x83)](this['plugins']), k;
|
|
1166
|
+
}
|
|
1167
|
+
['copy']() {
|
|
1168
|
+
return this['clone']();
|
|
1169
|
+
}
|
|
1170
|
+
['mergePlugins'](k, required) {
|
|
1171
|
+
const qk = q, H = StzUtils['isArray'](k) ? [...k] : [], c = new Set(H[qk(0x241)](a => a?.['id'])['filter'](Boolean));
|
|
1172
|
+
return required['forEach'](a => {
|
|
1173
|
+
const qH = q, X = a?.['id'];
|
|
1174
|
+
if (!X || !c[qH(0x17a)](X)) {
|
|
1175
|
+
H['push'](a);
|
|
1176
|
+
if (X)
|
|
1177
|
+
c['add'](X);
|
|
1178
|
+
}
|
|
1179
|
+
}), H;
|
|
1180
|
+
}
|
|
1181
|
+
['setPlugin'](k, H = !![]) {
|
|
1182
|
+
const qc = q;
|
|
1183
|
+
!this['plugins'] && (this['plugins'] = []);
|
|
1184
|
+
if (StzUtils['isArray'](k))
|
|
1185
|
+
return k['forEach'](c => this[qc(0x84)](c, H)), this;
|
|
1186
|
+
if (k['id'] && H) {
|
|
1187
|
+
const c = this['plugins'][qc(0x1f8)](a => a['id'] === k['id']);
|
|
1188
|
+
if (c !== -0x1)
|
|
1189
|
+
return this['plugins'][c] = k, this;
|
|
1190
|
+
}
|
|
1191
|
+
return this['plugins']['push'](k), this;
|
|
1192
|
+
}
|
|
1193
|
+
['makeConfig'](k) {
|
|
1194
|
+
return this['build'](k);
|
|
1195
|
+
}
|
|
1196
|
+
['removePlugin'](k) {
|
|
1197
|
+
const qy = q;
|
|
1198
|
+
if (!this['plugins'] || !StzUtils['isArray'](this[qy(0x1dc)]))
|
|
1199
|
+
return this;
|
|
1200
|
+
return this['plugins'] = this[qy(0x1dc)][qy(0xaa)](H => H['id'] !== k), this;
|
|
1201
|
+
}
|
|
1202
|
+
[V(0xf5)](k) {
|
|
1203
|
+
const qa = q;
|
|
1204
|
+
if (!this[qa(0x1dc)] || !StzUtils['isArray'](this[qa(0x1dc)]))
|
|
1205
|
+
return ![];
|
|
1206
|
+
return this[qa(0x1dc)]['some'](H => H['id'] === k);
|
|
1207
|
+
}
|
|
1208
|
+
[V(0x13a)](k) {
|
|
1209
|
+
const qX = q, H = this[qX(0xb7)] = StzUtils['coalesce'](this['options'], {});
|
|
1210
|
+
return H[qX(0x13a)] = (c, a) => {
|
|
1211
|
+
k(c, a);
|
|
1212
|
+
}, this;
|
|
1213
|
+
}
|
|
1214
|
+
['setTitle'](k) {
|
|
1215
|
+
const qp = q, H = this[qp(0xb7)] = StzUtils['coalesce'](this[qp(0xb7)], {}), c = H['plugins'] = StzUtils[qp(0x92)](H[qp(0x1dc)], {});
|
|
1216
|
+
return c['title'] = {
|
|
1217
|
+
'display': !![],
|
|
1218
|
+
...k
|
|
1219
|
+
}, this;
|
|
1220
|
+
}
|
|
1221
|
+
[V(0x158)](k) {
|
|
1222
|
+
const qd = q, H = this['options'] = StzUtils['coalesce'](this[qd(0xb7)], {}), c = H['plugins'] = StzUtils['coalesce'](H[qd(0x1dc)], {}), a = StzUtils['merge']({ 'display': !![] }, StzUtils['cloneDeep'](c['legend'] || {}));
|
|
1223
|
+
return c['legend'] = StzUtils['merge'](a, this[qd(0x9e)](k)), this;
|
|
1224
|
+
}
|
|
1225
|
+
['setTooltip'](k) {
|
|
1226
|
+
const qQ = q, H = this[qQ(0xb7)] = StzUtils[qQ(0x92)](this['options'], {}), c = H['plugins'] = StzUtils['coalesce'](H[qQ(0x1dc)], {}), a = StzUtils[qQ(0x248)]({ 'enabled': !![] }, StzUtils['cloneDeep'](c[qQ(0x19e)] || {}));
|
|
1227
|
+
return c['tooltip'] = StzUtils['merge'](a, this[qQ(0x9e)](k)), this;
|
|
1228
|
+
}
|
|
1229
|
+
['setSpinnerOverlay'](k) {
|
|
1230
|
+
const qs = q, H = this[qs(0xb7)] = StzUtils[qs(0x92)](this['options'], {});
|
|
1231
|
+
return H['spinnerOverlay'] = this[qs(0x9e)](k), this;
|
|
1232
|
+
}
|
|
1233
|
+
['mergeOptions'](k) {
|
|
1234
|
+
const H = this['options'] = StzUtils['coalesce'](this['options'], {});
|
|
1235
|
+
return this['options'] = StzUtils['merge'](H, this['cloneValue'](k)), this;
|
|
1236
|
+
}
|
|
1237
|
+
['getChartData'](k) {
|
|
1238
|
+
const qm = q;
|
|
1239
|
+
if (StzUtils['isEmpty'](k))
|
|
1240
|
+
throw CustomError[qm(0x16d)](ErrorCode[qm(0x26d)]);
|
|
1241
|
+
return this['getDatasetByTarget'](k);
|
|
1242
|
+
}
|
|
1243
|
+
['setChartData'](k, H) {
|
|
1244
|
+
const qz = q;
|
|
1245
|
+
if (StzUtils['isEmpty'](k))
|
|
1246
|
+
throw CustomError[qz(0x16d)](ErrorCode['DATASET_IDENTIFIER_NOT_FOUND']);
|
|
1247
|
+
const c = this['requireDatasets'](), a = this['resolveDatasetIndex'](k), X = [...c];
|
|
1248
|
+
X[a] = H, this['datasets'] = X;
|
|
1249
|
+
}
|
|
1250
|
+
[V(0x20b)](k, H) {
|
|
1251
|
+
const qr = q, c = this[qr(0x104)](), a = this[qr(0x109)](k);
|
|
1252
|
+
return c[a] = StzUtils[qr(0x248)](c[a], this['cloneValue'](H)), this;
|
|
1253
|
+
}
|
|
1254
|
+
[V(0xbf)](k) {
|
|
1255
|
+
const qZ = q, H = this['requireDatasets'](), c = this[qZ(0x9e)](k);
|
|
1256
|
+
return this['datasets'] = H['map'](a => StzUtils['merge'](a, this[qZ(0x9e)](c))), this;
|
|
1257
|
+
}
|
|
1258
|
+
['removeDataset'](k) {
|
|
1259
|
+
const qg = q, H = this['requireDatasets'](), c = this['resolveDatasetIndex'](k);
|
|
1260
|
+
return H[qg(0x168)](c, 0x1), this;
|
|
1261
|
+
}
|
|
1262
|
+
['removeData'](k, H) {
|
|
1263
|
+
const qB = q, c = this['getDatasetByTarget'](k);
|
|
1264
|
+
if (!StzUtils['isArray'](c['data']) || c[qB(0x102)][qB(0x21f)] === 0x0)
|
|
1265
|
+
return this;
|
|
1266
|
+
if (StzUtils[qB(0x238)](H))
|
|
1267
|
+
return c['data'][qB(0x1d5)](), this;
|
|
1268
|
+
if (StzUtils[qB(0xa9)](H)) {
|
|
1269
|
+
if (H < 0x0 || H >= c['data']['length'])
|
|
1270
|
+
throw CustomError['shield'](ErrorCode[qB(0x25f)], qB(0x136) + H + '\x20is\x20out\x20of\x20bounds');
|
|
1271
|
+
return c['data'][qB(0x168)](H, 0x1), this;
|
|
1272
|
+
}
|
|
1273
|
+
const a = c['data'][qB(0x1f8)](X => StzUtils['isObject'](X) && X['_uid'] === H);
|
|
1274
|
+
if (a === -0x1)
|
|
1275
|
+
throw CustomError[qB(0x16d)](ErrorCode[qB(0x25f)], 'Data\x20identifier\x20' + H + '\x20not\x20found');
|
|
1276
|
+
return c['data'][qB(0x168)](a, 0x1), this;
|
|
1277
|
+
}
|
|
1278
|
+
['clearData'](k) {
|
|
1279
|
+
const qA = q, H = this['requireDatasets']();
|
|
1280
|
+
if (StzUtils[qA(0x238)](k))
|
|
1281
|
+
return H['forEach'](c => {
|
|
1282
|
+
c['data'] = [];
|
|
1283
|
+
}), this;
|
|
1284
|
+
return this[qA(0x1e5)](k)[qA(0x102)] = [], this;
|
|
1285
|
+
}
|
|
1286
|
+
['setDatasetVisible'](k, H, c = !![]) {
|
|
1287
|
+
const qR = q, a = this['requireDatasets'](), X = this['resolveDatasetIndex'](k), p = a[X];
|
|
1288
|
+
if (p[qR(0x24d)] === 'disabled')
|
|
1289
|
+
return this;
|
|
1290
|
+
const d = c ? this['getGroupedDatasetIndexes'](X) : [X];
|
|
1291
|
+
if (H && p[qR(0x24d)] === 'radio' && d[qR(0x21f)] > 0x1)
|
|
1292
|
+
return d[qR(0x1e8)](Q => {
|
|
1293
|
+
this['setDatasetVisibilityState'](a[Q], Q === X);
|
|
1294
|
+
}), this;
|
|
1295
|
+
return d[qR(0x1e8)](Q => {
|
|
1296
|
+
this['setDatasetVisibilityState'](a[Q], H);
|
|
1297
|
+
}), this;
|
|
1298
|
+
}
|
|
1299
|
+
['toggleDataset'](k, H = !![]) {
|
|
1300
|
+
const qN = q, c = this[qN(0x1e5)](k);
|
|
1301
|
+
if (c['_toggleBehavior'] === qN(0x191))
|
|
1302
|
+
return this;
|
|
1303
|
+
return this[qN(0xde)](k, !this['getDatasetVisibilityState'](c), H);
|
|
1304
|
+
}
|
|
1305
|
+
['setDatasetGroup'](k, H) {
|
|
1306
|
+
const qI = q;
|
|
1307
|
+
return this[qI(0x1e5)](k)[qI(0x1a2)] = H, this;
|
|
1308
|
+
}
|
|
1309
|
+
['addStreaming'](k) {
|
|
1310
|
+
const qu = q, H = this[qu(0xb7)] = StzUtils['coalesce'](this['options'], {}), c = H['scales'] = StzUtils[qu(0x92)](H['scales'], {});
|
|
1311
|
+
c['x'] = {
|
|
1312
|
+
...c['x'],
|
|
1313
|
+
'type': qu(0x23f)
|
|
1314
|
+
};
|
|
1315
|
+
const a = H[qu(0x1dc)] = StzUtils[qu(0x92)](H['plugins'], {});
|
|
1316
|
+
a['streaming'] = k;
|
|
1317
|
+
const X = !StzUtils['isNullOrUndefined'](H['parsing']), p = this['datasets']['some'](s => !StzUtils['isNullOrUndefined'](s?.['parsing'])), d = this[qu(0x247)]['some'](s => {
|
|
1318
|
+
const qv = q, m = s?.[qv(0x102)];
|
|
1319
|
+
if (!StzUtils['isArray'](m))
|
|
1320
|
+
return ![];
|
|
1321
|
+
return m['some'](z => !StzUtils[qv(0x17f)](z) && !StzUtils[qv(0x209)](z));
|
|
1322
|
+
}), Q = this;
|
|
1323
|
+
return !X && !p && !d && StzUtils['isFunction'](Q[qu(0xe0)]) && Q['setParsingKey']('x', 'y'), this;
|
|
1324
|
+
}
|
|
1325
|
+
}
|
|
1326
|
+
const DefaultZoomOptions = {
|
|
1327
|
+
'zoom': {
|
|
1328
|
+
'drag': {
|
|
1329
|
+
'enabled': !![],
|
|
1330
|
+
'borderColor': 'rgba(0,\x20123,\x20255,\x201)',
|
|
1331
|
+
'borderWidth': 0x1,
|
|
1332
|
+
'backgroundColor': 'rgba(0,\x20123,\x20255,\x200.1)'
|
|
1333
|
+
},
|
|
1334
|
+
'mode': 'xy',
|
|
1335
|
+
'overScaleMode': null
|
|
1336
|
+
},
|
|
1337
|
+
'pan': { 'enabled': ![] }
|
|
1338
|
+
}, DefaultDataLabelsOptions = {
|
|
1339
|
+
'formatter': function (k, H) {
|
|
1340
|
+
return k;
|
|
1341
|
+
},
|
|
1342
|
+
'display': function (k) {
|
|
1343
|
+
return !![];
|
|
1344
|
+
},
|
|
1345
|
+
'color': function (k) {
|
|
1346
|
+
return '#000';
|
|
1347
|
+
},
|
|
1348
|
+
'font': {
|
|
1349
|
+
'size': 0xd,
|
|
1350
|
+
'weight': 'bold'
|
|
1351
|
+
},
|
|
1352
|
+
'anchor': 'end',
|
|
1353
|
+
'align': 'center'
|
|
1354
|
+
}, DefaultTimeScaleOptions = {
|
|
1355
|
+
'unit': 'hour',
|
|
1356
|
+
'tooltipFormat': 'yyyy-MM-dd\x20HH:mm',
|
|
1357
|
+
'displayFormats': { 'hour': 'HH:mm' }
|
|
1358
|
+
}, DEFAULT_STATUS_ICONS = {
|
|
1359
|
+
0x1: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMyMmM1NWUiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPgogIDxwYXRoIGQ9Ik04IDEybDIgMiA0LTQiLz4KPC9zdmc+',
|
|
1360
|
+
0x2: V(0x1a9),
|
|
1361
|
+
0x3: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPgogIDxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMiIgeTI9IjEyIi8+CiAgPGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIxMi4wMSIgeTI9IjE2Ii8+Cjwvc3ZnPg=='
|
|
1362
|
+
}, createTodayLinePlugin = (k = V(0x222), H = 'TODAY') => {
|
|
1363
|
+
return {
|
|
1364
|
+
'id': 'todayLine',
|
|
1365
|
+
'afterDatasetsDraw'(c, a, X) {
|
|
1366
|
+
const qt = q, {
|
|
1367
|
+
ctx: p,
|
|
1368
|
+
chartArea: {
|
|
1369
|
+
top: d,
|
|
1370
|
+
bottom: Q,
|
|
1371
|
+
left: s,
|
|
1372
|
+
right: m
|
|
1373
|
+
},
|
|
1374
|
+
scales: {x: z}
|
|
1375
|
+
} = c;
|
|
1376
|
+
p['save'](), z[qt(0x1bc)](new Date()) >= s && z['getPixelForValue'](new Date()) <= m && (p[qt(0x81)](), p['lineWidth'] = 0x3, p['strokeStyle'] = k, p[qt(0x103)]([
|
|
1377
|
+
0x5,
|
|
1378
|
+
0x5
|
|
1379
|
+
]), p['moveTo'](z['getPixelForValue'](new Date()), d), p[qt(0x21d)](z['getPixelForValue'](new Date()), Q), p[qt(0x128)](), p['setLineDash']([]), p[qt(0x81)](), p['lineWidth'] = 0x3, p['strokeStyle'] = k, p['fillStyle'] = k, p[qt(0x1ae)](z[qt(0x1bc)](new Date()), d + 0x3), p['lineTo'](z['getPixelForValue'](new Date()) - 0x6, d - 0x6), p['lineTo'](z[qt(0x1bc)](new Date()) + 0x6, d - 0x6), p['closePath'](), p[qt(0x128)](), p['fill'](), p[qt(0xae)](), p['font'] = 'bold\x2012px\x20sans-serif', p[qt(0x8f)] = k, p['textAlign'] = 'center', p['fillText'](H, z['getPixelForValue'](new Date()), Q + 0xf), p['restore']());
|
|
1380
|
+
}
|
|
1381
|
+
};
|
|
1382
|
+
}, createWeekendPlugin = (k = 'rgba(102,\x20102,\x20102,\x200.2)') => {
|
|
1383
|
+
const qM = q;
|
|
1384
|
+
return {
|
|
1385
|
+
'id': qM(0x21a),
|
|
1386
|
+
'beforeDatasetsDraw'(H, c, a) {
|
|
1387
|
+
const {
|
|
1388
|
+
ctx: X,
|
|
1389
|
+
chartArea: {
|
|
1390
|
+
top: p,
|
|
1391
|
+
height: d
|
|
1392
|
+
},
|
|
1393
|
+
scales: {x: Q}
|
|
1394
|
+
} = H;
|
|
1395
|
+
X['save'](), Q['ticks']['forEach']((s, m) => {
|
|
1396
|
+
const qW = q, z = new Date(s['value'])['getDay']();
|
|
1397
|
+
(z === 0x0 || z === 0x6) && (X[qW(0x8f)] = k, X[qW(0x15c)](Q['getPixelForValue'](s['value']), p, Q[qW(0x1bc)](new Date(s['value'])[qW(0xd9)](0x18)) - Q[qW(0x1bc)](s['value']), d));
|
|
1398
|
+
}), X['restore']();
|
|
1399
|
+
}
|
|
1400
|
+
};
|
|
1401
|
+
}, createStatusPlugin = (k, H = 'status') => {
|
|
1402
|
+
const qn = q, c = k || DEFAULT_STATUS_ICONS;
|
|
1403
|
+
return {
|
|
1404
|
+
'id': qn(0x82),
|
|
1405
|
+
'imageCache': {},
|
|
1406
|
+
'afterDatasetsDraw'(a, X, p) {
|
|
1407
|
+
const qG = q, {
|
|
1408
|
+
ctx: d,
|
|
1409
|
+
data: Q,
|
|
1410
|
+
chartArea: {right: s},
|
|
1411
|
+
scales: {y: m}
|
|
1412
|
+
} = a;
|
|
1413
|
+
d[qG(0x8a)](), Q[qG(0x247)]['forEach']((z, r) => {
|
|
1414
|
+
const qV = q;
|
|
1415
|
+
if (!z['data'] || !StzUtils[qV(0x161)](z['data']))
|
|
1416
|
+
return;
|
|
1417
|
+
z['data']['forEach']((Z, g) => {
|
|
1418
|
+
const qY = q, B = Z[H], A = c[B];
|
|
1419
|
+
if (!A)
|
|
1420
|
+
return;
|
|
1421
|
+
if (!this[qY(0x93)][B]) {
|
|
1422
|
+
const N = new Image();
|
|
1423
|
+
N['src'] = A, this['imageCache'][B] = N, N['onload'] = () => {
|
|
1424
|
+
const qK = q;
|
|
1425
|
+
a[qK(0x1b9)]();
|
|
1426
|
+
};
|
|
1427
|
+
}
|
|
1428
|
+
const R = this['imageCache'][B];
|
|
1429
|
+
if (R['complete']) {
|
|
1430
|
+
const I = 0x14;
|
|
1431
|
+
d['drawImage'](R, s + 0x1e, m['getPixelForValue'](g) - I / 0x2, I, I);
|
|
1432
|
+
}
|
|
1433
|
+
});
|
|
1434
|
+
}), d['restore']();
|
|
1435
|
+
}
|
|
1436
|
+
};
|
|
1437
|
+
}, createAssignedTasksPlugin = (k = 'assignee', H = {}) => {
|
|
1438
|
+
const c = {
|
|
1439
|
+
'font': 'bold\x2012px\x20sans-serif',
|
|
1440
|
+
'color': 'black',
|
|
1441
|
+
'x': 0xa,
|
|
1442
|
+
'textAlign': 'left',
|
|
1443
|
+
'textBaseline': 'middle',
|
|
1444
|
+
...H
|
|
1445
|
+
};
|
|
1446
|
+
return {
|
|
1447
|
+
'id': 'assignedTasks',
|
|
1448
|
+
'afterDatasetsDraw'(a, X, p) {
|
|
1449
|
+
const qh = q, {
|
|
1450
|
+
ctx: d,
|
|
1451
|
+
data: Q,
|
|
1452
|
+
scales: {y: s}
|
|
1453
|
+
} = a;
|
|
1454
|
+
d['save'](), d[qh(0x148)] = c[qh(0x148)], d['fillStyle'] = c['color'], d['textBaseline'] = c[qh(0xcf)], d['textAlign'] = c['textAlign'], Q[qh(0x247)][qh(0x1e8)](m => {
|
|
1455
|
+
const qL = q;
|
|
1456
|
+
if (!m['data'] || !StzUtils[qL(0x161)](m['data']))
|
|
1457
|
+
return;
|
|
1458
|
+
m[qL(0x102)]['forEach']((z, r) => {
|
|
1459
|
+
const qO = q, Z = z[k];
|
|
1460
|
+
!StzUtils['isNullOrUndefined'](Z) && d['fillText'](Z[qO(0x1e7)](), c['x'], s['getPixelForValue'](r));
|
|
1461
|
+
});
|
|
1462
|
+
}), d['restore']();
|
|
1463
|
+
}
|
|
1464
|
+
};
|
|
1465
|
+
}, noDataPlugin = {
|
|
1466
|
+
'id': 'noDataPlugin',
|
|
1467
|
+
'beforeUpdate': function (k) {
|
|
1468
|
+
},
|
|
1469
|
+
'afterDraw': function (k) {
|
|
1470
|
+
const qP = q;
|
|
1471
|
+
if (k[qP(0xc4)])
|
|
1472
|
+
return;
|
|
1473
|
+
const H = k['config']['type'];
|
|
1474
|
+
let c = ![];
|
|
1475
|
+
if (H === 'treemap') {
|
|
1476
|
+
const a = k['data']['datasets']?.[0x0]?.['tree'];
|
|
1477
|
+
c = !StzUtils[qP(0x161)](a) || a[qP(0x21f)] === 0x0;
|
|
1478
|
+
} else
|
|
1479
|
+
c = !k['data'][qP(0x247)] || !StzUtils['isArray'](k['data']['datasets'][0x0]?.['data']) || k[qP(0x102)]['datasets'][0x0][qP(0x102)]['length'] === 0x0;
|
|
1480
|
+
k['_noDataAct'] = c;
|
|
1481
|
+
if (c) {
|
|
1482
|
+
const X = k['ctx'], p = k['width'], d = k['height'], {
|
|
1483
|
+
text: text = 'No\x20Data',
|
|
1484
|
+
color: Q
|
|
1485
|
+
} = k[qP(0xb7)]?.['_noData'] || {};
|
|
1486
|
+
X[qP(0x8a)](), X['textAlign'] = 'center', X['textBaseline'] = qP(0x14d), X['font'] = '30px\x20Arial';
|
|
1487
|
+
if (Q)
|
|
1488
|
+
X['fillStyle'] = Q;
|
|
1489
|
+
X['fillText'](text, p / 0x2, d / 0x2), X['restore']();
|
|
1490
|
+
}
|
|
1491
|
+
},
|
|
1492
|
+
'beforeDestroy'(k) {
|
|
1493
|
+
const qS = q;
|
|
1494
|
+
console['log']('차트\x20사라짐\x20,\x20' + k['canvas']['id']), delete k['_noDataAct'], k['_initVisible'] = ![], k['_initVisibleComp'] && delete k[qS(0x19d)];
|
|
1495
|
+
}
|
|
1496
|
+
}, zoomResetPlugin = {
|
|
1497
|
+
'id': 'zoomResetButton',
|
|
1498
|
+
'afterDraw'(k, H, c) {
|
|
1499
|
+
const qj = q, a = k[qj(0x167)], X = a['parentNode'];
|
|
1500
|
+
if (k[qj(0x193)])
|
|
1501
|
+
return;
|
|
1502
|
+
getComputedStyle(X)['position'] === 'static' && (X[qj(0x1c3)]['position'] = qj(0x1fe));
|
|
1503
|
+
const p = document['createElement']('button');
|
|
1504
|
+
p[qj(0xe2)] = 'Zoom\x20Reset', p['className'] = 'chart-zoom-reset-btn', Object['assign'](p[qj(0x1c3)], {
|
|
1505
|
+
'position': 'absolute',
|
|
1506
|
+
'zIndex': '10',
|
|
1507
|
+
'padding': qj(0x275),
|
|
1508
|
+
'fontSize': qj(0xa4),
|
|
1509
|
+
'background': 'rgba(0,0,0,0.7)',
|
|
1510
|
+
'color': '#fff',
|
|
1511
|
+
'border': '1px\x20solid\x20#fff',
|
|
1512
|
+
'borderRadius': '4px',
|
|
1513
|
+
'cursor': 'pointer',
|
|
1514
|
+
'display': 'none'
|
|
1515
|
+
}), p['onclick'] = () => {
|
|
1516
|
+
const qC = q;
|
|
1517
|
+
k['resetZoom'] && k['resetZoom'](), p[qC(0x1c3)][qC(0x26a)] = 'none';
|
|
1518
|
+
}, X['appendChild'](p), k['_zoomResetBtnDom'] = p;
|
|
1519
|
+
},
|
|
1520
|
+
'afterEvent'(k, H) {
|
|
1521
|
+
const ql = q, c = k['_zoomResetBtnDom'];
|
|
1522
|
+
if (!c)
|
|
1523
|
+
return;
|
|
1524
|
+
const a = k[ql(0xab)]?.();
|
|
1525
|
+
if (!a) {
|
|
1526
|
+
c[ql(0x1c3)][ql(0x26a)] = ql(0xcc);
|
|
1527
|
+
return;
|
|
1528
|
+
}
|
|
1529
|
+
const {chartArea: X} = k, p = X['right'] - 0x5a, d = X['top'] + 0xa;
|
|
1530
|
+
c['style']['left'] = p + 'px', c[ql(0x1c3)]['top'] = d + 'px', c['style']['display'] = ql(0x264);
|
|
1531
|
+
}
|
|
1532
|
+
}, loadingPlugin = {
|
|
1533
|
+
'id': 'loadingPlugin',
|
|
1534
|
+
'beforeInit'(k) {
|
|
1535
|
+
const qe = q;
|
|
1536
|
+
k[qe(0x12c)] = !![], k['_loadingRenderedOnce'] = ![], k['_loadingActive'] = ![], k['_loadingScheduled'] = ![];
|
|
1537
|
+
},
|
|
1538
|
+
'beforeDraw'(k) {
|
|
1539
|
+
const qw = q;
|
|
1540
|
+
k[qw(0xc4)] = Boolean(k[qw(0x12c)] && !k['_loadingRenderedOnce']);
|
|
1541
|
+
if (!k[qw(0xc4)])
|
|
1542
|
+
return;
|
|
1543
|
+
return this['drawLoadingPlaceholder'](k), k['_loadingRenderedOnce'] = !![], k[qw(0x12c)] = ![], !k['_loadingScheduled'] && (k[qw(0x1c6)] = !![], requestAnimationFrame(() => {
|
|
1544
|
+
const qx = q;
|
|
1545
|
+
if (!k || k['_destroyed'] || !k['canvas']?.['isConnected'])
|
|
1546
|
+
return;
|
|
1547
|
+
k[qx(0xc4)] = ![], k['_loadingScheduled'] = ![], k['draw']();
|
|
1548
|
+
})), ![];
|
|
1549
|
+
},
|
|
1550
|
+
'drawLoadingPlaceholder'(k) {
|
|
1551
|
+
const qf = q, H = k['ctx'], c = k[qf(0x1ab)], a = k['height'], X = c / 0x2, p = a / 0x2, d = Math['min'](c, a) * 0.12, Q = Math['max'](0x4, d * 0.16);
|
|
1552
|
+
H['save'](), H[qf(0x8f)] = qf(0x112), H['fillRect'](0x0, 0x0, c, a), H['beginPath'](), H['lineWidth'] = Q, H['strokeStyle'] = '#dbeafe', H['arc'](X, p, d, 0x0, Math['PI'] * 0x2), H['stroke'](), H['beginPath'](), H[qf(0x263)] = Q, H['lineCap'] = qf(0x12d), H[qf(0x117)] = qf(0x204), H['arc'](X, p, d, -Math['PI'] / 0x2, Math['PI'] * 0.9), H['stroke'](), H['fillStyle'] = qf(0x204), H['font'] = '600\x20' + Math[qf(0x15b)](0xc, Math[qf(0x12a)](a * 0.045)) + 'px\x20Arial', H['textAlign'] = 'center', H[qf(0xcf)] = 'middle', H[qf(0x166)]('Loading...', X, p + d + Math['max'](0x10, d * 0.6)), H[qf(0xae)]();
|
|
1553
|
+
},
|
|
1554
|
+
'afterDestroy'(k) {
|
|
1555
|
+
const qU = q;
|
|
1556
|
+
delete k['_loadingPending'], delete k['_loadingRenderedOnce'], delete k['_loadingActive'], delete k[qU(0x1c6)];
|
|
1557
|
+
}
|
|
1558
|
+
}, customLegend = {
|
|
1559
|
+
'id': 'htmlLegend',
|
|
1560
|
+
'_Default': {
|
|
1561
|
+
'containerID': '',
|
|
1562
|
+
'className': {
|
|
1563
|
+
'list': 'list-container',
|
|
1564
|
+
'item': 'legend-item',
|
|
1565
|
+
'box': 'legend-box',
|
|
1566
|
+
'text': 'text-container'
|
|
1567
|
+
},
|
|
1568
|
+
'styles': {
|
|
1569
|
+
'text': {
|
|
1570
|
+
'textDecoration': 'none',
|
|
1571
|
+
'color': '#111827'
|
|
1572
|
+
},
|
|
1573
|
+
'textHidden': {
|
|
1574
|
+
'textDecoration': 'line-through',
|
|
1575
|
+
'color': '#9ca3af'
|
|
1576
|
+
},
|
|
1577
|
+
'box': (k, H) => ({
|
|
1578
|
+
'width': '12px',
|
|
1579
|
+
'height': '12px',
|
|
1580
|
+
'borderRadius': H === V(0x189) ? '50%' : '4px',
|
|
1581
|
+
'borderWidth': '2px',
|
|
1582
|
+
'backgroundColor': k['fillStyle'],
|
|
1583
|
+
'borderColor': k['strokeStyle']
|
|
1584
|
+
})
|
|
1585
|
+
},
|
|
1586
|
+
'getItemText': k => k[V(0x10d)],
|
|
1587
|
+
'getDatasetType': (k, H) => {
|
|
1588
|
+
const qo = q, c = k[qo(0x1d8)]['data']?.['datasets']?.[H['datasetIndex']];
|
|
1589
|
+
if (c?.['type'])
|
|
1590
|
+
return c[qo(0x227)];
|
|
1591
|
+
const a = k[qo(0x1d8)];
|
|
1592
|
+
return qo(0x227) in a ? a['type'] : undefined;
|
|
1593
|
+
}
|
|
1594
|
+
},
|
|
1595
|
+
'_fnc': (k, H, c) => {
|
|
1596
|
+
const qE = q;
|
|
1597
|
+
if (!H)
|
|
1598
|
+
return;
|
|
1599
|
+
const a = document['getElementById'](H);
|
|
1600
|
+
let X = a?.[qE(0x1ee)]('div');
|
|
1601
|
+
return !X && (X = document['createElement']('div'), X['className'] = c['className']['list'], a[qE(0x23d)](X)), X;
|
|
1602
|
+
},
|
|
1603
|
+
'afterUpdate'(k, H, c) {
|
|
1604
|
+
const qJ = q;
|
|
1605
|
+
if (!c || !c[qJ(0x115)])
|
|
1606
|
+
return;
|
|
1607
|
+
const a = JSON['parse'](JSON['stringify'](c)), X = StzUtils['merge'](this[qJ(0x1b1)], a), p = this['_fnc'](k, X[qJ(0x115)], X);
|
|
1608
|
+
if (!p)
|
|
1609
|
+
return console['error']('none\x20customLegend');
|
|
1610
|
+
while (p?.['firstChild']) {
|
|
1611
|
+
p['firstChild']['remove']();
|
|
1612
|
+
}
|
|
1613
|
+
const d = k[qJ(0xb7)]['plugins'][qJ(0xf3)]['labels']['generateLabels'](k);
|
|
1614
|
+
d[qJ(0x1e8)](Q => {
|
|
1615
|
+
const qD = q, s = document['createElement']('div');
|
|
1616
|
+
s['className'] = X['className']['item'];
|
|
1617
|
+
const m = document['createElement'](qD(0x255));
|
|
1618
|
+
m['className'] = X[qD(0x17d)][qD(0x8e)], m['style']['backgroundColor'] = Q[qD(0x8f)], m[qD(0x1c3)]['borderColor'] = Q[qD(0x117)];
|
|
1619
|
+
const z = document[qD(0x195)]('div');
|
|
1620
|
+
z[qD(0x17d)] = X['className']['text'], z['style']['color'] = Q[qD(0x15f)], s[qD(0x147)](qD(0x1e0), () => {
|
|
1621
|
+
const qT = q, {type: Z} = k['config'];
|
|
1622
|
+
Z === 'pie' || Z === qT(0x1d3) ? k['toggleDataVisibility'](Q['index']) : k[qT(0x192)](Q['datasetIndex'], !k['isDatasetVisible'](Q[qT(0x1ce)])), k['update']();
|
|
1623
|
+
});
|
|
1624
|
+
const r = document['createTextNode'](Q['text']);
|
|
1625
|
+
z['appendChild'](r), z['style'][qD(0x9a)] = Q['hidden'] ? 'line-through' : '', s[qD(0x23d)](m), s['appendChild'](z), p?.[qD(0x23d)](s);
|
|
1626
|
+
});
|
|
1627
|
+
}
|
|
1628
|
+
}, chartMountPlugin = {
|
|
1629
|
+
'id': 'chartMountedPlugin',
|
|
1630
|
+
'beforeInit'(k) {
|
|
1631
|
+
const qF = q, H = k['options']?.[qF(0xe3)];
|
|
1632
|
+
H && k['canvas']?.['id'] !== H && (k['canvas']['id'] = H);
|
|
1633
|
+
},
|
|
1634
|
+
'afterDraw'(k, H, c) {
|
|
1635
|
+
const qb = q;
|
|
1636
|
+
if (!k['_mountedCalled']) {
|
|
1637
|
+
k[qb(0x101)] = !![], requestAnimationFrame(() => {
|
|
1638
|
+
const k0 = q;
|
|
1639
|
+
StzUtils['isFunction'](k[k0(0x1d8)]['options']['_mounted']) && k[k0(0x1d8)][k0(0xb7)][k0(0x270)](k);
|
|
1640
|
+
});
|
|
1641
|
+
const a = k['options'][qb(0xe3)];
|
|
1642
|
+
a && !ChartInstance['has'](a) && (k['canvas']?.['id'] !== a && (k[qb(0x167)]['id'] = a), ChartInstance['register'](a, k));
|
|
1643
|
+
}
|
|
1644
|
+
},
|
|
1645
|
+
'afterDestroy'(k) {
|
|
1646
|
+
const k1 = q, H = k['options']['_chartId'];
|
|
1647
|
+
H && ChartInstance[k1(0xdd)](H);
|
|
1648
|
+
}
|
|
1649
|
+
}, customDatasetPlugins = {
|
|
1650
|
+
'id': V(0x214),
|
|
1651
|
+
'_tooltips': new WeakMap(),
|
|
1652
|
+
'_resolveLegendDatasetIndex'(k) {
|
|
1653
|
+
return k?.['_datasetIndex'] ?? k?.['datasetIndex'];
|
|
1654
|
+
},
|
|
1655
|
+
'afterInit'(k, H, c) {
|
|
1656
|
+
const k2 = q, a = k[k2(0x1d8)]['plugins']?.['some'](X => X && (X['id'] === 'htmlLegend' || X['id'] === 'customLegend'));
|
|
1657
|
+
if (a)
|
|
1658
|
+
return;
|
|
1659
|
+
if (!k['options']?.['plugins']?.[k2(0xf3)]?.['display'])
|
|
1660
|
+
return;
|
|
1661
|
+
this['_setupLegendTooltip'](k);
|
|
1662
|
+
},
|
|
1663
|
+
'beforeUpdate'(k, H, c) {
|
|
1664
|
+
const k3 = q, a = k['config']['plugins']?.['some'](p => p && (p['id'] === 'htmlLegend' || p['id'] === k3(0xc7)));
|
|
1665
|
+
if (a)
|
|
1666
|
+
return;
|
|
1667
|
+
if (!k['options']?.['plugins']?.['legend']?.[k3(0x26a)])
|
|
1668
|
+
return;
|
|
1669
|
+
!k['_originalGenerateLabels'] && (k['_originalGenerateLabels'] = k['options'][k3(0x1dc)]['legend']['labels']['generateLabels']);
|
|
1670
|
+
!k[k3(0x163)] && (k['_originalLegendOnClick'] = k['options']['plugins']['legend'][k3(0xaf)]);
|
|
1671
|
+
const X = this;
|
|
1672
|
+
k['options']['plugins']['legend']['onClick'] = (p, d, Q) => {
|
|
1673
|
+
const k4 = q, s = d['_dataset'], m = s?.['_toggleBehavior'] || k4(0x1b0);
|
|
1674
|
+
if (m === k4(0x191))
|
|
1675
|
+
return;
|
|
1676
|
+
X['_handleLegendClick'](p, d, Q, m);
|
|
1677
|
+
}, k[k3(0xb7)][k3(0x1dc)]['legend']['labels']['generateLabels'] = p => {
|
|
1678
|
+
const k6 = q, d = k['_originalGenerateLabels'](p), Q = p['data']['datasets'], s = [], m = new Map(), z = [];
|
|
1679
|
+
return d['forEach']((r, Z) => {
|
|
1680
|
+
const k5 = q, g = Q[Z];
|
|
1681
|
+
if (!g)
|
|
1682
|
+
return;
|
|
1683
|
+
if (g['_aux'] === !![])
|
|
1684
|
+
return;
|
|
1685
|
+
if (g['_visible'] === ![]) {
|
|
1686
|
+
p['setDatasetVisibility'](Z, ![]);
|
|
1687
|
+
return;
|
|
1688
|
+
}
|
|
1689
|
+
if (g['_groupLabel']) {
|
|
1690
|
+
const B = g[k5(0x22b)];
|
|
1691
|
+
!m['has'](B) && m['set'](B, {
|
|
1692
|
+
'groupLabel': B,
|
|
1693
|
+
'datasets': [],
|
|
1694
|
+
'_legendOrder': g['_legendOrder'] || 0x0,
|
|
1695
|
+
'firstDataset': g,
|
|
1696
|
+
'firstIndex': Z
|
|
1697
|
+
}), m['get'](B)['datasets']['push']({
|
|
1698
|
+
'label': r,
|
|
1699
|
+
'dataset': g,
|
|
1700
|
+
'index': Z
|
|
1701
|
+
});
|
|
1702
|
+
} else
|
|
1703
|
+
r[k5(0xe4)] = g['_legendOrder'] || 0x0, r['_dataset'] = g, r['_datasetIndex'] = Z, r['_tooltip'] = g['_tooltip'], z['push'](r);
|
|
1704
|
+
}), m[k6(0x1e8)](r => {
|
|
1705
|
+
const k7 = q, Z = {
|
|
1706
|
+
...r[k7(0x247)][0x0]['label'],
|
|
1707
|
+
'text': r[k7(0xe9)],
|
|
1708
|
+
'datasetIndex': r[k7(0xf6)],
|
|
1709
|
+
'_legendOrder': r[k7(0xe4)],
|
|
1710
|
+
'_isGroupLabel': !![],
|
|
1711
|
+
'_groupDatasets': r['datasets'],
|
|
1712
|
+
'_dataset': r['firstDataset'],
|
|
1713
|
+
'_tooltip': r['firstDataset']['_tooltip']
|
|
1714
|
+
};
|
|
1715
|
+
z[k7(0x185)](Z);
|
|
1716
|
+
}), z['sort']((r, Z) => {
|
|
1717
|
+
const k8 = q, g = r?.[k8(0xe4)] || 0x0, B = Z?.['_legendOrder'] || 0x0;
|
|
1718
|
+
return g - B;
|
|
1719
|
+
}), s['push'](...z), X['_handleGroupVisibility'](p, Q), s;
|
|
1720
|
+
};
|
|
1721
|
+
},
|
|
1722
|
+
'_handleGroupVisibility'(k, H) {
|
|
1723
|
+
const k9 = q, c = new Map();
|
|
1724
|
+
H[k9(0x1e8)]((a, X) => {
|
|
1725
|
+
const ki = q;
|
|
1726
|
+
a['_group'] && (!c[ki(0x17a)](a[ki(0x1a2)]) && c['set'](a[ki(0x1a2)], []), c['get'](a['_group'])[ki(0x185)]({
|
|
1727
|
+
'dataset': a,
|
|
1728
|
+
'index': X
|
|
1729
|
+
}));
|
|
1730
|
+
}), c['forEach']((a, X) => {
|
|
1731
|
+
const kk = q, p = a['sort']((s, m) => {
|
|
1732
|
+
const kq = q, z = !StzUtils[kq(0x238)](s['dataset']['order']) ? s['dataset'][kq(0x134)] : s[kq(0x1c7)], r = !StzUtils['isUndefined'](m[kq(0x1e6)]['order']) ? m['dataset']['order'] : m['index'];
|
|
1733
|
+
return z - r;
|
|
1734
|
+
}), d = p[0x0], Q = k[kk(0xce)](d['index']);
|
|
1735
|
+
p[kk(0x1e8)](({index: s}) => {
|
|
1736
|
+
const kH = q;
|
|
1737
|
+
k['isDatasetVisible'](s) !== Q && k[kH(0x192)](s, Q);
|
|
1738
|
+
});
|
|
1739
|
+
});
|
|
1740
|
+
},
|
|
1741
|
+
'_handleLegendClick'(k, H, c, a) {
|
|
1742
|
+
const kc = q, X = c['chart'];
|
|
1743
|
+
if (a === 'radio') {
|
|
1744
|
+
if (H['_isGroupLabel'])
|
|
1745
|
+
X['data']['datasets']['forEach']((p, d) => {
|
|
1746
|
+
X['setDatasetVisibility'](d, ![]);
|
|
1747
|
+
}), H['_groupDatasets']['forEach'](({index: p}) => {
|
|
1748
|
+
X['setDatasetVisibility'](p, !![]);
|
|
1749
|
+
});
|
|
1750
|
+
else {
|
|
1751
|
+
X['data']['datasets']['forEach']((d, Q) => {
|
|
1752
|
+
X['setDatasetVisibility'](Q, ![]);
|
|
1753
|
+
});
|
|
1754
|
+
const p = this[kc(0x272)](H);
|
|
1755
|
+
!StzUtils['isUndefined'](p) && X['setDatasetVisibility'](p, !![]);
|
|
1756
|
+
}
|
|
1757
|
+
} else {
|
|
1758
|
+
if (H[kc(0x170)]) {
|
|
1759
|
+
const d = H['_groupDatasets']['every'](({index: Q}) => X[kc(0xce)](Q));
|
|
1760
|
+
H[kc(0x250)]['forEach'](({index: Q}) => {
|
|
1761
|
+
const ky = q;
|
|
1762
|
+
X[ky(0x192)](Q, !d);
|
|
1763
|
+
});
|
|
1764
|
+
} else {
|
|
1765
|
+
const Q = this['_resolveLegendDatasetIndex'](H);
|
|
1766
|
+
if (StzUtils['isUndefined'](Q))
|
|
1767
|
+
return;
|
|
1768
|
+
const s = X[kc(0xce)](Q);
|
|
1769
|
+
X['setDatasetVisibility'](Q, !s);
|
|
1770
|
+
const m = X[kc(0x102)]['datasets'][Q];
|
|
1771
|
+
m['_group'] && X['data'][kc(0x247)]['forEach']((z, r) => {
|
|
1772
|
+
r !== Q && z['_group'] === m['_group'] && X['setDatasetVisibility'](r, !s);
|
|
1773
|
+
});
|
|
1774
|
+
}
|
|
1775
|
+
}
|
|
1776
|
+
X['update']();
|
|
1777
|
+
},
|
|
1778
|
+
'_setupLegendTooltip'(k) {
|
|
1779
|
+
const ka = q, H = k[ka(0x167)], c = X => {
|
|
1780
|
+
const kX = q, p = k['legend'];
|
|
1781
|
+
if (!p || !p['legendItems']) {
|
|
1782
|
+
this[kX(0x1aa)](k);
|
|
1783
|
+
return;
|
|
1784
|
+
}
|
|
1785
|
+
const d = H['getBoundingClientRect'](), Q = X[kX(0xcd)] - d['left'], s = X['clientY'] - d['top'], m = this['_hitTestLegend'](k, Q, s);
|
|
1786
|
+
m && m[kX(0x169)] ? this[kX(0xb0)](k, X, m['_tooltip'], m) : this['_hideTooltip'](k);
|
|
1787
|
+
}, a = () => {
|
|
1788
|
+
const kp = q;
|
|
1789
|
+
this[kp(0x1aa)](k);
|
|
1790
|
+
};
|
|
1791
|
+
H['addEventListener']('mousemove', c), H['addEventListener']('mouseleave', a), k[ka(0x25e)] = {
|
|
1792
|
+
'mousemove': c,
|
|
1793
|
+
'mouseleave': a
|
|
1794
|
+
};
|
|
1795
|
+
},
|
|
1796
|
+
'_hitTestLegend'(k, H, c) {
|
|
1797
|
+
const kd = q, a = k['legend'];
|
|
1798
|
+
if (!a || !a[kd(0x1da)])
|
|
1799
|
+
return null;
|
|
1800
|
+
if (a[kd(0xf1)])
|
|
1801
|
+
for (let X = 0x0; X < a['legendHitBoxes']['length']; X++) {
|
|
1802
|
+
const p = a['legendHitBoxes'][X];
|
|
1803
|
+
if (H >= p['left'] && H <= p['left'] + p[kd(0x1ab)] && c >= p['top'] && c <= p[kd(0x278)] + p[kd(0x17b)])
|
|
1804
|
+
return a['legendItems'][X];
|
|
1805
|
+
}
|
|
1806
|
+
return null;
|
|
1807
|
+
},
|
|
1808
|
+
'_showTooltip'(k, H, c, a) {
|
|
1809
|
+
const kQ = q;
|
|
1810
|
+
this[kQ(0x1aa)](k);
|
|
1811
|
+
const X = document['createElement'](kQ(0x255));
|
|
1812
|
+
X['className'] = 'chart-legend-tooltip', X['style']['cssText'] = '\x0a\x09\x09\x09position:\x20absolute;\x0a\x09\x09\x09background:\x20rgba(0,\x200,\x200,\x200.8);\x0a\x09\x09\x09color:\x20white;\x0a\x09\x09\x09padding:\x206px\x2010px;\x0a\x09\x09\x09border-radius:\x204px;\x0a\x09\x09\x09font-size:\x2012px;\x0a\x09\x09\x09pointer-events:\x20none;\x0a\x09\x09\x09z-index:\x201000;\x0a\x09\x09\x09white-space:\x20nowrap;\x0a\x09\x09\x09box-shadow:\x200\x202px\x208px\x20rgba(0,0,0,0.2);\x0a\x09\x09';
|
|
1813
|
+
const p = StzUtils[kQ(0x86)](c) ? c(a) : c;
|
|
1814
|
+
X[kQ(0x14a)] = p, document['body']['appendChild'](X);
|
|
1815
|
+
const d = X['getBoundingClientRect']();
|
|
1816
|
+
let Q = H['clientX'] + 0xa, s = H['clientY'] - d['height'] - 0xa;
|
|
1817
|
+
Q + d['width'] > window[kQ(0x22f)] && (Q = H['clientX'] - d['width'] - 0xa), s < 0x0 && (s = H['clientY'] + 0xa), X[kQ(0x1c3)]['left'] = Q + 'px', X[kQ(0x1c3)][kQ(0x278)] = s + 'px', this[kQ(0xcb)]['set'](k, X);
|
|
1818
|
+
},
|
|
1819
|
+
'_hideTooltip'(k) {
|
|
1820
|
+
const ks = q, H = this[ks(0xcb)]['get'](k);
|
|
1821
|
+
H && (H['remove'](), this['_tooltips']['delete'](k));
|
|
1822
|
+
},
|
|
1823
|
+
'afterDestroy'(k) {
|
|
1824
|
+
const km = q;
|
|
1825
|
+
k[km(0x229)] && (k['options']?.['plugins']?.['legend']?.['labels'] && (k[km(0xb7)]['plugins']['legend']['labels']['generateLabels'] = k[km(0x229)]), delete k['_originalGenerateLabels']);
|
|
1826
|
+
k['_originalLegendOnClick'] && (k[km(0xb7)]?.['plugins']?.['legend'] && (k['options']['plugins'][km(0xf3)]['onClick'] = k['_originalLegendOnClick']), delete k[km(0x163)]);
|
|
1827
|
+
if (k['_legendTooltipHandlers']) {
|
|
1828
|
+
const H = k['canvas'];
|
|
1829
|
+
H && (H['removeEventListener']('mousemove', k[km(0x25e)]['mousemove']), H['removeEventListener']('mouseleave', k['_legendTooltipHandlers']['mouseleave'])), delete k['_legendTooltipHandlers'];
|
|
1830
|
+
}
|
|
1831
|
+
this['_hideTooltip'](k);
|
|
1832
|
+
}
|
|
1833
|
+
}, blinkPlugin = {
|
|
1834
|
+
'id': V(0x24c),
|
|
1835
|
+
'afterDatasetDraw'(k, H) {
|
|
1836
|
+
const kz = q, c = k['getDatasetMeta'](H['index']), a = k['data']['datasets'][H['index']];
|
|
1837
|
+
k[kz(0x274)], c['data']['forEach']((X, p) => {
|
|
1838
|
+
a['data'][p];
|
|
1839
|
+
});
|
|
1840
|
+
}
|
|
1841
|
+
}, makeCenterHtml = (k, H, c, a) => {
|
|
1842
|
+
const kr = q, X = c ? '<span\x20class=\x22text-warning\x22>' + StzUtils['addComma'](c) + kr(0x1fd) : '';
|
|
1843
|
+
return '\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22fs-6\x20text-white\x22>' + StzUtils[kr(0x1c0)](k) + kr(0x106) + (!StzUtils['isUndefined'](H) ? '\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22text-success\x22>' + StzUtils['addComma'](H) + kr(0x10b) + X + '\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22text-danger\x22>' + StzUtils['addComma'](a ?? 0x0) + kr(0xba) : '') + '\x0a\x20\x20\x20\x20';
|
|
1844
|
+
}, barScaleImgPlugin = {
|
|
1845
|
+
'id': 'scaleImg',
|
|
1846
|
+
'beforeDatasetsDraw'(k, H, c) {
|
|
1847
|
+
const kZ = q, {
|
|
1848
|
+
ctx: a,
|
|
1849
|
+
data: X,
|
|
1850
|
+
scales: {
|
|
1851
|
+
x: p,
|
|
1852
|
+
y: d
|
|
1853
|
+
}
|
|
1854
|
+
} = k, Q = 0x1e, s = k['options'][kZ(0x19a)] === 'y';
|
|
1855
|
+
a['save'](), X[kZ(0x247)]['forEach']((m, z) => {
|
|
1856
|
+
const kg = q, r = new Image();
|
|
1857
|
+
r['src'] = m[kg(0x1f7)], s ? a['drawImage'](r, 0x0, d['getPixelForValue'](z) - Q / 0x2, Q, Q) : a['drawImage'](r, p[kg(0x1bc)](z) - Q / 0x2, p['top'], Q, Q);
|
|
1858
|
+
}), a['restore']();
|
|
1859
|
+
}
|
|
1860
|
+
}, changeSetting = {
|
|
1861
|
+
'id': 'setting',
|
|
1862
|
+
'_Default': {
|
|
1863
|
+
'img': '/img/setting.svg',
|
|
1864
|
+
'iconSize': {
|
|
1865
|
+
'w': 0x1e,
|
|
1866
|
+
'h': 0x1e
|
|
1867
|
+
},
|
|
1868
|
+
'radiusExtra': 0x2,
|
|
1869
|
+
'offset': {
|
|
1870
|
+
'right': 0xa,
|
|
1871
|
+
'top': 0xa
|
|
1872
|
+
},
|
|
1873
|
+
'colors': {
|
|
1874
|
+
'fill': 'rgba(0,123,255,0.5)',
|
|
1875
|
+
'fillHover': 'rgba(0,150,255,0.8)',
|
|
1876
|
+
'stroke': 'rgba(0,123,255,1)',
|
|
1877
|
+
'strokeHover': 'rgba(0,150,255,1)'
|
|
1878
|
+
},
|
|
1879
|
+
'borderWidth': {
|
|
1880
|
+
'normal': 0x2,
|
|
1881
|
+
'hover': 0x3
|
|
1882
|
+
},
|
|
1883
|
+
'cursor': 'pointer',
|
|
1884
|
+
'onClick': ({
|
|
1885
|
+
chart: k,
|
|
1886
|
+
event: H
|
|
1887
|
+
}) => {
|
|
1888
|
+
alert('클릭');
|
|
1889
|
+
}
|
|
1890
|
+
},
|
|
1891
|
+
'afterInit'(k, H, c) {
|
|
1892
|
+
const kB = q, a = k[kB(0x167)], X = StzUtils[kB(0x248)](this['_Default'], c);
|
|
1893
|
+
k['T$opts'] = X;
|
|
1894
|
+
if (!a)
|
|
1895
|
+
return;
|
|
1896
|
+
if (k['T$settingClickHandler'])
|
|
1897
|
+
return;
|
|
1898
|
+
const p = s => {
|
|
1899
|
+
const kA = q, m = a['getBoundingClientRect'](), z = a['width'] / m['width'], r = a[kA(0x17b)] / m['height'];
|
|
1900
|
+
return {
|
|
1901
|
+
'x': (s['clientX'] - m['left']) * z,
|
|
1902
|
+
'y': (s['clientY'] - m['top']) * r
|
|
1903
|
+
};
|
|
1904
|
+
}, d = s => {
|
|
1905
|
+
const kR = q, {
|
|
1906
|
+
x: m,
|
|
1907
|
+
y: z
|
|
1908
|
+
} = p(s), Z = k['T$settingBtnRect'];
|
|
1909
|
+
if (!Z)
|
|
1910
|
+
return;
|
|
1911
|
+
if (m >= Z['left'] && m <= Z['right'] && z >= Z['top'] && z <= Z[kR(0x276)])
|
|
1912
|
+
try {
|
|
1913
|
+
(X['onClick'] || this['_Default'][kR(0xaf)])({
|
|
1914
|
+
'chart': k,
|
|
1915
|
+
'event': s
|
|
1916
|
+
});
|
|
1917
|
+
} catch (g) {
|
|
1918
|
+
console[kR(0x22c)]('error', g);
|
|
1919
|
+
}
|
|
1920
|
+
}, Q = s => {
|
|
1921
|
+
const kN = q, {
|
|
1922
|
+
x: m,
|
|
1923
|
+
y: z
|
|
1924
|
+
} = p(s), Z = k[kN(0x111)];
|
|
1925
|
+
if (!Z)
|
|
1926
|
+
return;
|
|
1927
|
+
const g = m - Z['cx'], B = z - Z['cy'], A = g * g + B * B <= Z['radius'] * Z[kN(0x162)];
|
|
1928
|
+
k[kN(0x141)] !== A && (k['T$isHover'] = A, a['style'][kN(0x18d)] = A ? X['cursor'] || 'pointer' : 'default', k[kN(0x1b9)]('none'));
|
|
1929
|
+
};
|
|
1930
|
+
a['addEventListener']('mousemove', Q), a[kB(0x147)](kB(0x1e0), d), k[kB(0x15d)] = d, k['_settingMoveHandler'] = Q, k['T$settingImg'] = new Image(), k[kB(0xe1)]['src'] = X['img'];
|
|
1931
|
+
},
|
|
1932
|
+
'beforeDraw'(k) {
|
|
1933
|
+
const kI = q, {
|
|
1934
|
+
ctx: H,
|
|
1935
|
+
chartArea: {right: c}
|
|
1936
|
+
} = k;
|
|
1937
|
+
H['save']();
|
|
1938
|
+
const a = k['T$opts'] || this['_Default'], X = k['T$settingImg'], p = a[kI(0x267)]?.['w'] ?? 0x1e, d = a[kI(0x267)]?.['h'] ?? 0x1e, Q = c - (p + (a['offset']?.[kI(0x18b)] ?? 0xa)), s = a[kI(0x9d)]?.['top'] ?? 0xa, m = Math[kI(0x15b)](p, d) / 0x2 + (a['radiusExtra'] ?? 0x0), z = Q + p / 0x2, r = s + d / 0x2, Z = !!k['T$isHover'];
|
|
1939
|
+
H[kI(0x263)] = Z ? a[kI(0x88)]?.['hover'] ?? 0x3 : a['borderWidth']?.['normal'] ?? 0x2, H['strokeStyle'] = Z ? a['colors']?.['strokeHover'] ?? 'rgba(0,150,255,1)' : a[kI(0x15e)]?.[kI(0x128)] ?? 'rgba(0,123,255,1)', H[kI(0x81)](), H[kI(0x1d9)](z, r, m, 0x0, Math['PI'] * 0x2), H[kI(0x128)](), H['closePath'](), H['beginPath'](), H['arc'](z, r, m, 0x0, Math['PI'] * 0x2), H['fillStyle'] = Z ? a[kI(0x15e)]?.['fillHover'] ?? 'rgba(0,150,255,0.8)' : a['colors']?.['fill'] ?? 'rgba(0,123,255,0.5)', H[kI(0x1a4)](), H['closePath'](), X && H[kI(0xc9)](X, Q, s, p, d), k[kI(0x111)] = {
|
|
1940
|
+
'cx': z,
|
|
1941
|
+
'cy': r,
|
|
1942
|
+
'radius': m
|
|
1943
|
+
}, k[kI(0x19b)] = {
|
|
1944
|
+
'top': s,
|
|
1945
|
+
'bottom': s + d,
|
|
1946
|
+
'left': Q,
|
|
1947
|
+
'right': Q + p
|
|
1948
|
+
}, H[kI(0xae)]();
|
|
1949
|
+
},
|
|
1950
|
+
'afterDestroy'(k) {
|
|
1951
|
+
const ku = q, H = k['canvas'];
|
|
1952
|
+
H && k['T$settingClickHandler'] && H[ku(0x1ed)]('click', k['_settingClickHandler']), H && k[ku(0x266)] && H['removeEventListener']('mousemove', k[ku(0x266)]), k['T$settingClickHandler'] = null, k[ku(0x19b)] = null, k[ku(0xe1)] = null;
|
|
1953
|
+
}
|
|
1954
|
+
}, zoomRangeSlider = {
|
|
1955
|
+
'id': 'zoomRangeSlider',
|
|
1956
|
+
'var': {
|
|
1957
|
+
'min': 0x0,
|
|
1958
|
+
'isDragging': ![],
|
|
1959
|
+
'circlePosition': null
|
|
1960
|
+
},
|
|
1961
|
+
'afterDatasetDraw'(k, H, c) {
|
|
1962
|
+
const kv = q, {
|
|
1963
|
+
ctx: a,
|
|
1964
|
+
chartArea: {
|
|
1965
|
+
left: X,
|
|
1966
|
+
right: p,
|
|
1967
|
+
top: d,
|
|
1968
|
+
bottom: Q,
|
|
1969
|
+
width: s,
|
|
1970
|
+
height: m
|
|
1971
|
+
}
|
|
1972
|
+
} = k;
|
|
1973
|
+
this[kv(0xbb)]['circlePosition'] = this[kv(0xbb)]['circlePosition'] || X, a['beginPath'](), a['fillStyle'] = '#e0e0e0', a['roundRect'](X, Q + 0x28, s, 0x6, 0x3), a[kv(0x1a4)]();
|
|
1974
|
+
const z = this['var']['circlePosition'] - X;
|
|
1975
|
+
z > 0x0 && (a['beginPath'](), a['fillStyle'] = '#4285f4', a['roundRect'](X, Q + 0x28, z, 0x6, 0x3), a['fill']()), a[kv(0x81)](), a[kv(0x8f)] = '#ffffff', a['arc'](this[kv(0xbb)]['circlePosition'], Q + 0x28, 0x8, 0x0, Math['PI'] * 0x2), a['fill'](), a['beginPath'](), a[kv(0x117)] = '#4285f4', a['lineWidth'] = 0x2, a['arc'](this['var']['circlePosition'], Q + 0x28, 0x8, 0x0, Math['PI'] * 0x2), a['stroke'](), this['var'][kv(0x138)] && (a['beginPath'](), a[kv(0x8f)] = 'rgba(66,\x20133,\x20244,\x200.2)', a['arc'](this['var'][kv(0x273)], Q + 0x28, 0xc, 0x0, Math['PI'] * 0x2), a['fill']());
|
|
1976
|
+
},
|
|
1977
|
+
'afterUpdate'(k, H, c) {
|
|
1978
|
+
k['options']['scales']['x']['min'] = this['var']['min'];
|
|
1979
|
+
},
|
|
1980
|
+
'afterEvent'(k, H, c) {
|
|
1981
|
+
const kt = q, {
|
|
1982
|
+
ctx: a,
|
|
1983
|
+
canvas: X,
|
|
1984
|
+
chartArea: {
|
|
1985
|
+
left: p,
|
|
1986
|
+
top: d,
|
|
1987
|
+
right: Q,
|
|
1988
|
+
width: s
|
|
1989
|
+
}
|
|
1990
|
+
} = k;
|
|
1991
|
+
X['addEventListener'](kt(0x1a0), m => {
|
|
1992
|
+
this['var']['isDragging'] = !![];
|
|
1993
|
+
}), X[kt(0x147)](kt(0x96), m => {
|
|
1994
|
+
this['var']['isDragging'] = ![];
|
|
1995
|
+
});
|
|
1996
|
+
if (H['event']['type'] === 'mousemove' && this['var']['isDragging']) {
|
|
1997
|
+
const m = H[kt(0x217)]['x'] / (s + p);
|
|
1998
|
+
this['var']['min'] = m * k['config']['data']['labels']['length'] - 0x1, H['changed'] = !![], this['var'][kt(0x273)] = H['event']['x'] < p ? p : H['event']['x'] > Q ? Q : H['event']['x'], k['update']();
|
|
1999
|
+
}
|
|
2000
|
+
}
|
|
2001
|
+
}, CreateZoomRangeSlider = (k = {}) => {
|
|
2002
|
+
const {
|
|
2003
|
+
sliderTrackColor: sliderTrackColor = '#e0e0e0',
|
|
2004
|
+
sliderActiveColor: sliderActiveColor = '#4285f4',
|
|
2005
|
+
sliderHandleColor: sliderHandleColor = '#ffffff',
|
|
2006
|
+
sliderHandleBorderColor: sliderHandleBorderColor = '#4285f4',
|
|
2007
|
+
sliderHandleHoverColor: sliderHandleHoverColor = 'rgba(66,\x20133,\x20244,\x200.2)'
|
|
2008
|
+
} = k;
|
|
2009
|
+
return {
|
|
2010
|
+
'id': 'zoomRangeSlider',
|
|
2011
|
+
'var': {
|
|
2012
|
+
'min': 0x0,
|
|
2013
|
+
'isDragging': ![],
|
|
2014
|
+
'circlePosition': null
|
|
2015
|
+
},
|
|
2016
|
+
'afterDatasetDraw'(H, c, a) {
|
|
2017
|
+
const kM = q, {
|
|
2018
|
+
ctx: X,
|
|
2019
|
+
chartArea: {
|
|
2020
|
+
left: p,
|
|
2021
|
+
right: d,
|
|
2022
|
+
top: Q,
|
|
2023
|
+
bottom: s,
|
|
2024
|
+
width: m,
|
|
2025
|
+
height: z
|
|
2026
|
+
}
|
|
2027
|
+
} = H;
|
|
2028
|
+
this['var'][kM(0x273)] = this['var']['circlePosition'] || p, X[kM(0x81)](), X[kM(0x8f)] = sliderTrackColor, X['roundRect'](p, s + 0x28, m, 0x6, 0x3), X['fill']();
|
|
2029
|
+
const r = this['var']['circlePosition'] - p;
|
|
2030
|
+
r > 0x0 && (X[kM(0x81)](), X[kM(0x8f)] = sliderActiveColor, X[kM(0x246)](p, s + 0x28, r, 0x6, 0x3), X['fill']()), X[kM(0x81)](), X['fillStyle'] = sliderHandleColor, X['arc'](this[kM(0xbb)]['circlePosition'], s + 0x28, 0x8, 0x0, Math['PI'] * 0x2), X['fill'](), X['beginPath'](), X['strokeStyle'] = sliderHandleBorderColor, X['lineWidth'] = 0x2, X[kM(0x1d9)](this[kM(0xbb)]['circlePosition'], s + 0x28, 0x8, 0x0, Math['PI'] * 0x2), X['stroke'](), this['var'][kM(0x138)] && (X[kM(0x81)](), X['fillStyle'] = sliderHandleHoverColor, X['arc'](this[kM(0xbb)]['circlePosition'], s + 0x28, 0xc, 0x0, Math['PI'] * 0x2), X['fill']());
|
|
2031
|
+
},
|
|
2032
|
+
'afterUpdate'(H, c, a) {
|
|
2033
|
+
const kW = q;
|
|
2034
|
+
H['options'][kW(0x85)]['x'][kW(0x9b)] = this['var']['min'];
|
|
2035
|
+
},
|
|
2036
|
+
'afterEvent'(H, c, a) {
|
|
2037
|
+
const kV = q, {
|
|
2038
|
+
ctx: X,
|
|
2039
|
+
canvas: p,
|
|
2040
|
+
chartArea: {
|
|
2041
|
+
left: d,
|
|
2042
|
+
top: Q,
|
|
2043
|
+
right: s,
|
|
2044
|
+
width: m
|
|
2045
|
+
}
|
|
2046
|
+
} = H;
|
|
2047
|
+
p['addEventListener']('mousedown', z => {
|
|
2048
|
+
const kn = q;
|
|
2049
|
+
this['var'][kn(0x138)] = !![];
|
|
2050
|
+
}), p['addEventListener']('mouseup', z => {
|
|
2051
|
+
const kG = q;
|
|
2052
|
+
this[kG(0xbb)][kG(0x138)] = ![];
|
|
2053
|
+
});
|
|
2054
|
+
if (c['event']['type'] === 'mousemove' && this['var']['isDragging']) {
|
|
2055
|
+
const z = c[kV(0x217)]['x'] / (m + d);
|
|
2056
|
+
this['var']['min'] = z * H['config']['data']['labels']['length'] - 0x1, c['changed'] = !![], this[kV(0xbb)]['circlePosition'] = c['event']['x'] < d ? d : c['event']['x'] > s ? s : c['event']['x'], H['update']();
|
|
2057
|
+
}
|
|
2058
|
+
}
|
|
2059
|
+
};
|
|
2060
|
+
};
|
|
2061
|
+
function doughnutCenterTextPlugin(k) {
|
|
2062
|
+
const {
|
|
2063
|
+
text: H,
|
|
2064
|
+
color: color = '#000',
|
|
2065
|
+
fontStyle: fontStyle = 'Arial',
|
|
2066
|
+
fontSize: fontSize = '24px'
|
|
2067
|
+
} = k, c = a => {
|
|
2068
|
+
const kY = q, X = a[kY(0xdf)];
|
|
2069
|
+
if (typeof X === kY(0x196))
|
|
2070
|
+
return X;
|
|
2071
|
+
const p = a['data']['datasets']?.[0x0];
|
|
2072
|
+
return !p || !StzUtils['isArray'](p['data']) || p['data'][kY(0x21f)] === 0x0;
|
|
2073
|
+
};
|
|
2074
|
+
return {
|
|
2075
|
+
'id': 'doughnutCenterTextPlugin',
|
|
2076
|
+
'afterInit'(a) {
|
|
2077
|
+
const kK = q, X = a['canvas'], p = X[kK(0x137)];
|
|
2078
|
+
if (!p || !H)
|
|
2079
|
+
return;
|
|
2080
|
+
getComputedStyle(p)['position'] === 'static' && (p['style']['position'] = 'relative');
|
|
2081
|
+
const d = document['createElement']('div');
|
|
2082
|
+
d[kK(0x17d)] = 'doughnut-center-text', Object[kK(0x220)](d[kK(0x1c3)], {
|
|
2083
|
+
'position': 'absolute',
|
|
2084
|
+
'pointerEvents': 'none',
|
|
2085
|
+
'color': color,
|
|
2086
|
+
'fontFamily': fontStyle,
|
|
2087
|
+
'fontSize': fontSize,
|
|
2088
|
+
'textAlign': kK(0x135),
|
|
2089
|
+
'fontWeight': 'bold',
|
|
2090
|
+
'whiteSpace': kK(0x11b)
|
|
2091
|
+
}), StzUtils[kK(0x161)](H) ? d[kK(0x22a)] = H['map'](Q => '<div>' + Q + '</div>')['join']('') : d['textContent'] = H, p['appendChild'](d), a[kK(0x245)] = d, this[kK(0x164)](a);
|
|
2092
|
+
},
|
|
2093
|
+
'afterUpdate'(a) {
|
|
2094
|
+
this['updatePosition'](a);
|
|
2095
|
+
},
|
|
2096
|
+
'updatePosition'(a) {
|
|
2097
|
+
const kh = q, X = a['_centerTextDiv'];
|
|
2098
|
+
if (!X)
|
|
2099
|
+
return;
|
|
2100
|
+
if (c(a)) {
|
|
2101
|
+
X['style']['display'] = kh(0xcc);
|
|
2102
|
+
return;
|
|
2103
|
+
}
|
|
2104
|
+
const p = a['chartArea'];
|
|
2105
|
+
if (!p)
|
|
2106
|
+
return;
|
|
2107
|
+
const d = (p['left'] + p['right']) / 0x2, Q = (p['top'] + p[kh(0x276)]) / 0x2;
|
|
2108
|
+
X['style']['left'] = d + 'px', X['style'][kh(0x278)] = Q + 'px', X['style']['transform'] = kh(0x190), X['style']['display'] = 'block';
|
|
2109
|
+
},
|
|
2110
|
+
'destroy'(a) {
|
|
2111
|
+
const kL = q, X = a['_centerTextDiv'];
|
|
2112
|
+
X && (X[kL(0x155)](), delete a['_centerTextDiv']);
|
|
2113
|
+
}
|
|
2114
|
+
};
|
|
2115
|
+
}
|
|
2116
|
+
function segmentImagePlugin(k) {
|
|
2117
|
+
const kO = q, {
|
|
2118
|
+
images: H,
|
|
2119
|
+
width: width = 0x1e,
|
|
2120
|
+
height: height = 0x1e,
|
|
2121
|
+
backgroundColor: backgroundColor = 'white',
|
|
2122
|
+
borderRadius: borderRadius = width / 0x2
|
|
2123
|
+
} = k, c = H[kO(0x21f)] > 0x0 && StzUtils[kO(0x209)](H[0x0]) && '_uid' in H[0x0], a = new Map(), X = c ? H['map'](d => d['image']) : H;
|
|
2124
|
+
X['map'](d => new Promise((Q, s) => {
|
|
2125
|
+
const kP = q;
|
|
2126
|
+
if (!d) {
|
|
2127
|
+
Q();
|
|
2128
|
+
return;
|
|
2129
|
+
}
|
|
2130
|
+
const m = new Image();
|
|
2131
|
+
m['onload'] = () => {
|
|
2132
|
+
a['set'](d, m), Q();
|
|
2133
|
+
}, m[kP(0x14f)] = () => {
|
|
2134
|
+
const kS = q;
|
|
2135
|
+
console[kS(0x1fc)]('Failed\x20to\x20load\x20image:\x20' + d), Q();
|
|
2136
|
+
}, m['src'] = d;
|
|
2137
|
+
}));
|
|
2138
|
+
const p = c ? new Map(H['map'](d => [
|
|
2139
|
+
d['_uid'],
|
|
2140
|
+
d['image']
|
|
2141
|
+
])) : null;
|
|
2142
|
+
return {
|
|
2143
|
+
'id': 'segmentImagePlugin',
|
|
2144
|
+
'afterDatasetDraw'(d, Q) {
|
|
2145
|
+
const kj = q, s = d['ctx'], m = d[kj(0x12e)](Q['index']);
|
|
2146
|
+
if (!m || !m['data'])
|
|
2147
|
+
return;
|
|
2148
|
+
const z = d['data'][kj(0x247)][Q['index']], r = z['_uid'];
|
|
2149
|
+
s[kj(0x8a)](), m['data']['forEach']((Z, g) => {
|
|
2150
|
+
const kC = q;
|
|
2151
|
+
let B;
|
|
2152
|
+
c && p ? B = p[kC(0x10f)](r) : B = H[g];
|
|
2153
|
+
if (!B)
|
|
2154
|
+
return;
|
|
2155
|
+
const A = a['get'](B);
|
|
2156
|
+
if (!A)
|
|
2157
|
+
return;
|
|
2158
|
+
const {
|
|
2159
|
+
x: R,
|
|
2160
|
+
y: N
|
|
2161
|
+
} = Z['getCenterPoint']();
|
|
2162
|
+
backgroundColor && (s[kC(0x81)](), s['arc'](R, N, borderRadius, 0x0, Math['PI'] * 0x2), s['fillStyle'] = backgroundColor, s['fill']()), s['save'](), s['beginPath'](), s['arc'](R, N, borderRadius, 0x0, Math['PI'] * 0x2), s[kC(0x127)](), s[kC(0x18e)](), s[kC(0xc9)](A, R - width / 0x2, N - height / 0x2, width, height), s[kC(0xae)]();
|
|
2163
|
+
}), s['restore']();
|
|
2164
|
+
}
|
|
2165
|
+
};
|
|
2166
|
+
}
|
|
2167
|
+
const DefaultResponsiveChartOptions = {
|
|
2168
|
+
'responsive': !![],
|
|
2169
|
+
'maintainAspectRatio': ![]
|
|
2170
|
+
}, DefaultSparkPluginOptions = {
|
|
2171
|
+
'legend': { 'display': ![] },
|
|
2172
|
+
'tooltip': { 'enabled': ![] },
|
|
2173
|
+
'title': { 'display': ![] }
|
|
2174
|
+
}, DefaultHiddenSparkScales = {
|
|
2175
|
+
'x': {
|
|
2176
|
+
'display': ![],
|
|
2177
|
+
'grid': { 'display': ![] },
|
|
2178
|
+
'border': { 'display': ![] }
|
|
2179
|
+
},
|
|
2180
|
+
'y': {
|
|
2181
|
+
'display': ![],
|
|
2182
|
+
'grid': { 'display': ![] },
|
|
2183
|
+
'border': { 'display': ![] }
|
|
2184
|
+
}
|
|
2185
|
+
}, DefaultTopLegendOptions = {
|
|
2186
|
+
'display': !![],
|
|
2187
|
+
'position': 'top'
|
|
2188
|
+
}, DefaultHiddenLegendTopOptions = {
|
|
2189
|
+
'display': ![],
|
|
2190
|
+
'position': 'top'
|
|
2191
|
+
}, DefaultArcRadius = '90%', createDefaultCartesianScales = ({
|
|
2192
|
+
xType: xType = 'category',
|
|
2193
|
+
yType: yType = V(0x1f0),
|
|
2194
|
+
xTickAlign: xTickAlign = V(0x135),
|
|
2195
|
+
yTickAlign: yTickAlign = 'end'
|
|
2196
|
+
} = {}) => ({
|
|
2197
|
+
'x': {
|
|
2198
|
+
'type': xType,
|
|
2199
|
+
'display': !![],
|
|
2200
|
+
'ticks': {
|
|
2201
|
+
'display': !![],
|
|
2202
|
+
'color': '#000',
|
|
2203
|
+
'autoSkip': !![],
|
|
2204
|
+
'align': xTickAlign
|
|
2205
|
+
},
|
|
2206
|
+
'grid': { 'display': !![] }
|
|
2207
|
+
},
|
|
2208
|
+
'y': {
|
|
2209
|
+
'type': yType,
|
|
2210
|
+
'display': !![],
|
|
2211
|
+
'ticks': {
|
|
2212
|
+
'display': !![],
|
|
2213
|
+
'color': '#000',
|
|
2214
|
+
'autoSkip': !![],
|
|
2215
|
+
'align': yTickAlign
|
|
2216
|
+
},
|
|
2217
|
+
'grid': { 'display': !![] }
|
|
2218
|
+
}
|
|
2219
|
+
}), defaultBarTooltipCallback = k => {
|
|
2220
|
+
const H = k['dataset']['label'] || '', c = k['parsed']?.['y'] ?? k['raw'] ?? 'No\x20Data', a = StzUtils['isNumber'](c) ? StzUtils['addComma'](c) : c;
|
|
2221
|
+
return H + ':\x20' + a;
|
|
2222
|
+
}, defaultBarScales = createDefaultCartesianScales(), createDefaultBarOptions = (k = {}, H = defaultBarScales) => {
|
|
2223
|
+
const kl = q, c = k[kl(0x85)] || {}, a = {
|
|
2224
|
+
...H,
|
|
2225
|
+
...c
|
|
2226
|
+
};
|
|
2227
|
+
return {
|
|
2228
|
+
'_mounted': k['_mounted'] ?? (() => {
|
|
2229
|
+
}),
|
|
2230
|
+
'indexAxis': k?.['indexAxis'] ?? 'x',
|
|
2231
|
+
'responsive': k['responsive'] ?? DefaultResponsiveChartOptions['responsive'],
|
|
2232
|
+
'maintainAspectRatio': k['maintainAspectRatio'] ?? DefaultResponsiveChartOptions['maintainAspectRatio'],
|
|
2233
|
+
'plugins': {
|
|
2234
|
+
'tooltip': {
|
|
2235
|
+
'enabled': k[kl(0x1dc)]?.['tooltip']?.[kl(0x1be)] ?? !![],
|
|
2236
|
+
'mode': k['plugins']?.[kl(0x19e)]?.[kl(0x1ca)] ?? 'index',
|
|
2237
|
+
'intersect': k[kl(0x1dc)]?.['tooltip']?.[kl(0xa3)] ?? ![],
|
|
2238
|
+
'callbacks': {
|
|
2239
|
+
'label': defaultBarTooltipCallback,
|
|
2240
|
+
...k?.['plugins']?.['tooltip']?.['callbacks'] ?? {}
|
|
2241
|
+
}
|
|
2242
|
+
},
|
|
2243
|
+
...k?.['plugins'] ?? {}
|
|
2244
|
+
},
|
|
2245
|
+
'scales': a,
|
|
2246
|
+
...StzUtils['omit'](k, [
|
|
2247
|
+
'scales',
|
|
2248
|
+
'plugins',
|
|
2249
|
+
'indexAxis'
|
|
2250
|
+
])
|
|
2251
|
+
};
|
|
2252
|
+
}, sparkBarOptions = {
|
|
2253
|
+
'animation': ![],
|
|
2254
|
+
'plugins': DefaultSparkPluginOptions,
|
|
2255
|
+
'scales': DefaultHiddenSparkScales
|
|
2256
|
+
}, defaultLineTooltipCallback = k => {
|
|
2257
|
+
const ke = q, H = k[ke(0x1e6)], c = k['parsed'], a = k['raw'];
|
|
2258
|
+
let X;
|
|
2259
|
+
if (StzUtils['isObject'](c)) {
|
|
2260
|
+
const Q = c;
|
|
2261
|
+
X = !StzUtils['isNullOrUndefined'](Q['y']) ? Q['y'] : Q['x'];
|
|
2262
|
+
} else {
|
|
2263
|
+
if (StzUtils['isObject'](a)) {
|
|
2264
|
+
const s = a, m = H?.[ke(0x1e1)]?.['yAxisKey'];
|
|
2265
|
+
!StzUtils[ke(0x17f)](m) && !StzUtils[ke(0x17f)](s[m]) ? X = s[m] : X = s['y'] ?? s['value'] ?? s['trade_price'] ?? s;
|
|
2266
|
+
} else
|
|
2267
|
+
X = a;
|
|
2268
|
+
}
|
|
2269
|
+
let p;
|
|
2270
|
+
if (StzUtils['isNumber'](X))
|
|
2271
|
+
p = X[ke(0x14e)](0x2);
|
|
2272
|
+
else {
|
|
2273
|
+
if (StzUtils[ke(0x209)](X)) {
|
|
2274
|
+
const z = X, r = z['y'] ?? z['value'] ?? z['trade_price'];
|
|
2275
|
+
p = StzUtils['isNumber'](r) ? r['toFixed'](0x2) : 'No\x20Data';
|
|
2276
|
+
} else
|
|
2277
|
+
!StzUtils['isNullOrUndefined'](X) ? p = String(X) : p = 'No\x20Data';
|
|
2278
|
+
}
|
|
2279
|
+
const d = H?.['label'] ?? '값';
|
|
2280
|
+
return d + ':\x20' + p;
|
|
2281
|
+
}, defaultLineScales = createDefaultCartesianScales(), createDefaultLineOptions = (k = {}, H = defaultLineScales) => {
|
|
2282
|
+
const kw = q, c = k['scales'] || {};
|
|
2283
|
+
return {
|
|
2284
|
+
'hover': undefined,
|
|
2285
|
+
'indexAxis': undefined,
|
|
2286
|
+
'_mounted': k[kw(0x270)] ?? (() => {
|
|
2287
|
+
}),
|
|
2288
|
+
'responsive': k[kw(0x156)] ?? DefaultResponsiveChartOptions[kw(0x156)],
|
|
2289
|
+
'maintainAspectRatio': k[kw(0x254)] ?? DefaultResponsiveChartOptions['maintainAspectRatio'],
|
|
2290
|
+
'interaction': {
|
|
2291
|
+
'mode': k['interaction']?.[kw(0x1ca)] ?? 'index',
|
|
2292
|
+
'intersect': k['interaction']?.[kw(0xa3)] ?? ![]
|
|
2293
|
+
},
|
|
2294
|
+
'plugins': {
|
|
2295
|
+
...k['plugins'] || {},
|
|
2296
|
+
'tooltip': {
|
|
2297
|
+
'enabled': k['plugins']?.[kw(0x19e)]?.['enabled'] ?? !![],
|
|
2298
|
+
'mode': k[kw(0x1dc)]?.['tooltip']?.['mode'] ?? 'index',
|
|
2299
|
+
'intersect': k[kw(0x1dc)]?.['tooltip']?.['intersect'] ?? ![],
|
|
2300
|
+
...k['plugins']?.['tooltip'],
|
|
2301
|
+
'callbacks': {
|
|
2302
|
+
'label': defaultLineTooltipCallback,
|
|
2303
|
+
...k?.['plugins']?.[kw(0x19e)]?.['callbacks']
|
|
2304
|
+
}
|
|
2305
|
+
}
|
|
2306
|
+
},
|
|
2307
|
+
'elements': {
|
|
2308
|
+
'point': {
|
|
2309
|
+
'radius': k['elements']?.['point']?.['radius'] ?? 0x0,
|
|
2310
|
+
'hoverRadius': k[kw(0x16e)]?.['point']?.[kw(0x1b2)] ?? 0x0
|
|
2311
|
+
},
|
|
2312
|
+
'line': { 'tension': k['elements']?.['line']?.['tension'] ?? 0.1 }
|
|
2313
|
+
},
|
|
2314
|
+
'scales': StzUtils['merge'](H, c)
|
|
2315
|
+
};
|
|
2316
|
+
}, sparkLineOptions = {
|
|
2317
|
+
'animation': ![],
|
|
2318
|
+
'plugins': DefaultSparkPluginOptions,
|
|
2319
|
+
'elements': {
|
|
2320
|
+
'point': {
|
|
2321
|
+
'radius': 0x0,
|
|
2322
|
+
'hoverRadius': 0x0
|
|
2323
|
+
},
|
|
2324
|
+
'line': {
|
|
2325
|
+
'tension': 0.3,
|
|
2326
|
+
'borderWidth': 0x1
|
|
2327
|
+
}
|
|
2328
|
+
},
|
|
2329
|
+
'scales': DefaultHiddenSparkScales
|
|
2330
|
+
}, defaultBubbleTooltipCallback = k => {
|
|
2331
|
+
const kx = q, H = k[kx(0x1e6)], c = k['raw'], a = H?.['label'] ?? '값', X = c?.['x'] ?? 'N/A', p = c?.['y'] ?? 'N/A', d = c?.['r'] ?? 'N/A';
|
|
2332
|
+
return a + ':\x20(' + X + ',\x20' + p + kx(0x210) + d;
|
|
2333
|
+
}, defaultBubbleScales = createDefaultCartesianScales({
|
|
2334
|
+
'xType': 'linear',
|
|
2335
|
+
'yType': 'linear'
|
|
2336
|
+
}), createDefaultBubbleOptions = (k = {}, H = defaultBubbleScales) => {
|
|
2337
|
+
const kf = q, c = k['scales'] || {}, a = {
|
|
2338
|
+
...H,
|
|
2339
|
+
...c
|
|
2340
|
+
};
|
|
2341
|
+
return {
|
|
2342
|
+
'_mounted': k['_mounted'] ?? (() => {
|
|
2343
|
+
}),
|
|
2344
|
+
'responsive': k[kf(0x156)] ?? DefaultResponsiveChartOptions[kf(0x156)],
|
|
2345
|
+
'maintainAspectRatio': k[kf(0x254)] ?? DefaultResponsiveChartOptions['maintainAspectRatio'],
|
|
2346
|
+
'interaction': {
|
|
2347
|
+
'mode': k['interaction']?.['mode'] ?? 'nearest',
|
|
2348
|
+
'intersect': k['interaction']?.[kf(0xa3)] ?? !![]
|
|
2349
|
+
},
|
|
2350
|
+
'plugins': {
|
|
2351
|
+
'tooltip': {
|
|
2352
|
+
'enabled': k['plugins']?.['tooltip']?.['enabled'] ?? !![],
|
|
2353
|
+
'mode': k[kf(0x1dc)]?.['tooltip']?.[kf(0x1ca)] ?? 'nearest',
|
|
2354
|
+
'intersect': k['plugins']?.['tooltip']?.['intersect'] ?? !![],
|
|
2355
|
+
'callbacks': {
|
|
2356
|
+
'label': defaultBubbleTooltipCallback,
|
|
2357
|
+
...k?.['plugins']?.['tooltip']?.['callbacks'] ?? {}
|
|
2358
|
+
}
|
|
2359
|
+
},
|
|
2360
|
+
...k?.['plugins'] ?? {}
|
|
2361
|
+
},
|
|
2362
|
+
'scales': a,
|
|
2363
|
+
...StzUtils['omit'](k, [
|
|
2364
|
+
'scales',
|
|
2365
|
+
kf(0x1dc)
|
|
2366
|
+
])
|
|
2367
|
+
};
|
|
2368
|
+
}, sparkBubbleOptions = {
|
|
2369
|
+
'animation': ![],
|
|
2370
|
+
'plugins': DefaultSparkPluginOptions,
|
|
2371
|
+
'scales': DefaultHiddenSparkScales
|
|
2372
|
+
}, defaultDoughnutTooltipCallback = k => {
|
|
2373
|
+
const kU = q;
|
|
2374
|
+
k['dataset']['label'] || '';
|
|
2375
|
+
const H = k['label'] || '', c = k['parsed'] ?? k['raw'] ?? 'No\x20Data', a = StzUtils['isNumber'](c) ? StzUtils[kU(0x1c0)](c) : c;
|
|
2376
|
+
return H + ':\x20' + a;
|
|
2377
|
+
}, createDefaultDoughnutOptions = (k = {}) => {
|
|
2378
|
+
const ko = q;
|
|
2379
|
+
return {
|
|
2380
|
+
'_mounted': k['_mounted'] ?? (() => {
|
|
2381
|
+
}),
|
|
2382
|
+
'responsive': k['responsive'] ?? DefaultResponsiveChartOptions[ko(0x156)],
|
|
2383
|
+
'maintainAspectRatio': k['maintainAspectRatio'] ?? DefaultResponsiveChartOptions['maintainAspectRatio'],
|
|
2384
|
+
'cutout': k['cutout'] ?? '50%',
|
|
2385
|
+
'radius': k[ko(0x162)] ?? DefaultArcRadius,
|
|
2386
|
+
'plugins': {
|
|
2387
|
+
'tooltip': {
|
|
2388
|
+
'enabled': k['plugins']?.[ko(0x19e)]?.['enabled'] ?? !![],
|
|
2389
|
+
'callbacks': {
|
|
2390
|
+
'label': defaultDoughnutTooltipCallback,
|
|
2391
|
+
...k?.[ko(0x1dc)]?.['tooltip']?.[ko(0x182)] ?? {}
|
|
2392
|
+
}
|
|
2393
|
+
},
|
|
2394
|
+
'legend': {
|
|
2395
|
+
'display': k['plugins']?.['legend']?.['display'] ?? DefaultTopLegendOptions[ko(0x26a)],
|
|
2396
|
+
'position': k['plugins']?.['legend']?.['position'] ?? DefaultTopLegendOptions['position']
|
|
2397
|
+
},
|
|
2398
|
+
...k?.['plugins'] ?? {}
|
|
2399
|
+
},
|
|
2400
|
+
...StzUtils['omit'](k, [
|
|
2401
|
+
ko(0x1dc),
|
|
2402
|
+
'cutout',
|
|
2403
|
+
ko(0x162)
|
|
2404
|
+
])
|
|
2405
|
+
};
|
|
2406
|
+
}, defaultPieTooltipCallback = k => {
|
|
2407
|
+
const kE = q;
|
|
2408
|
+
k['dataset']['label'] || '';
|
|
2409
|
+
const H = k[kE(0x16f)] || '', c = k['parsed'] ?? k['raw'] ?? 'No\x20Data', a = StzUtils['isNumber'](c) ? StzUtils[kE(0x1c0)](c) : c;
|
|
2410
|
+
return H + ':\x20' + a;
|
|
2411
|
+
}, createDefaultPieOptions = (k = {}) => {
|
|
2412
|
+
const kJ = q;
|
|
2413
|
+
return {
|
|
2414
|
+
'_mounted': k['_mounted'] ?? (() => {
|
|
2415
|
+
}),
|
|
2416
|
+
'responsive': k['responsive'] ?? DefaultResponsiveChartOptions[kJ(0x156)],
|
|
2417
|
+
'maintainAspectRatio': k[kJ(0x254)] ?? DefaultResponsiveChartOptions['maintainAspectRatio'],
|
|
2418
|
+
'cutout': 0x0,
|
|
2419
|
+
'radius': k[kJ(0x162)] ?? DefaultArcRadius,
|
|
2420
|
+
'plugins': {
|
|
2421
|
+
'tooltip': {
|
|
2422
|
+
'enabled': k['plugins']?.[kJ(0x19e)]?.['enabled'] ?? !![],
|
|
2423
|
+
'callbacks': {
|
|
2424
|
+
'label': defaultPieTooltipCallback,
|
|
2425
|
+
...k?.[kJ(0x1dc)]?.['tooltip']?.[kJ(0x182)] ?? {}
|
|
2426
|
+
}
|
|
2427
|
+
},
|
|
2428
|
+
'legend': {
|
|
2429
|
+
'display': k['plugins']?.[kJ(0xf3)]?.['display'] ?? DefaultTopLegendOptions['display'],
|
|
2430
|
+
'position': k[kJ(0x1dc)]?.['legend']?.['position'] ?? DefaultTopLegendOptions['position']
|
|
2431
|
+
},
|
|
2432
|
+
...k?.[kJ(0x1dc)] ?? {}
|
|
2433
|
+
},
|
|
2434
|
+
...StzUtils['omit'](k, [
|
|
2435
|
+
'plugins',
|
|
2436
|
+
kJ(0x1b7),
|
|
2437
|
+
'radius'
|
|
2438
|
+
])
|
|
2439
|
+
};
|
|
2440
|
+
}, defaultTreemapTooltipCallback = {
|
|
2441
|
+
'title'(k) {
|
|
2442
|
+
const kD = q;
|
|
2443
|
+
if (!k || k[kD(0x21f)] === 0x0)
|
|
2444
|
+
return '';
|
|
2445
|
+
const H = k[0x0];
|
|
2446
|
+
return H[kD(0xf7)]['_data']?.['name'] || H['raw']['g'] || '';
|
|
2447
|
+
},
|
|
2448
|
+
'label'(k) {
|
|
2449
|
+
const kT = q, H = k['raw'][kT(0x1c4)];
|
|
2450
|
+
if (!H)
|
|
2451
|
+
return '';
|
|
2452
|
+
const c = H[kT(0x1ff)] || H['v'] || 0x0, a = StzUtils[kT(0xa9)](c) ? StzUtils['addComma'](c) : c;
|
|
2453
|
+
return kT(0x1db) + a;
|
|
2454
|
+
}
|
|
2455
|
+
}, createDefaultTreemapOptions = (k = {}) => {
|
|
2456
|
+
const kF = q;
|
|
2457
|
+
return {
|
|
2458
|
+
'_mounted': k[kF(0x270)] ?? (() => {
|
|
2459
|
+
}),
|
|
2460
|
+
'responsive': k['responsive'] ?? DefaultResponsiveChartOptions['responsive'],
|
|
2461
|
+
'maintainAspectRatio': k[kF(0x254)] ?? DefaultResponsiveChartOptions['maintainAspectRatio'],
|
|
2462
|
+
'plugins': {
|
|
2463
|
+
'tooltip': {
|
|
2464
|
+
'enabled': k['plugins']?.[kF(0x19e)]?.['enabled'] ?? !![],
|
|
2465
|
+
'callbacks': {
|
|
2466
|
+
...defaultTreemapTooltipCallback,
|
|
2467
|
+
...k?.[kF(0x1dc)]?.[kF(0x19e)]?.[kF(0x182)] ?? {}
|
|
2468
|
+
}
|
|
2469
|
+
},
|
|
2470
|
+
'legend': {
|
|
2471
|
+
'display': k['plugins']?.['legend']?.['display'] ?? DefaultHiddenLegendTopOptions['display'],
|
|
2472
|
+
'position': k['plugins']?.[kF(0xf3)]?.['position'] ?? DefaultHiddenLegendTopOptions[kF(0xbd)]
|
|
2473
|
+
},
|
|
2474
|
+
...k?.['plugins'] ?? {}
|
|
2475
|
+
},
|
|
2476
|
+
...StzUtils[kF(0x171)](k, ['plugins'])
|
|
2477
|
+
};
|
|
2478
|
+
};
|
|
2479
|
+
var LocalDefaults = Object[V(0x215)]({
|
|
2480
|
+
'__proto__': null,
|
|
2481
|
+
'CreateZoomRangeSlider': CreateZoomRangeSlider,
|
|
2482
|
+
'DefaultArcRadius': DefaultArcRadius,
|
|
2483
|
+
'DefaultDataLabelsOptions': DefaultDataLabelsOptions,
|
|
2484
|
+
'DefaultHiddenLegendTopOptions': DefaultHiddenLegendTopOptions,
|
|
2485
|
+
'DefaultHiddenSparkScales': DefaultHiddenSparkScales,
|
|
2486
|
+
'DefaultResponsiveChartOptions': DefaultResponsiveChartOptions,
|
|
2487
|
+
'DefaultSparkPluginOptions': DefaultSparkPluginOptions,
|
|
2488
|
+
'DefaultTimeScaleOptions': DefaultTimeScaleOptions,
|
|
2489
|
+
'DefaultTopLegendOptions': DefaultTopLegendOptions,
|
|
2490
|
+
'DefaultZoomOptions': DefaultZoomOptions,
|
|
2491
|
+
'barScaleImgPlugin': barScaleImgPlugin,
|
|
2492
|
+
'blinkPlugin': blinkPlugin,
|
|
2493
|
+
'changeSetting': changeSetting,
|
|
2494
|
+
'chartMountPlugin': chartMountPlugin,
|
|
2495
|
+
'createAssignedTasksPlugin': createAssignedTasksPlugin,
|
|
2496
|
+
'createDefaultBarOptions': createDefaultBarOptions,
|
|
2497
|
+
'createDefaultBubbleOptions': createDefaultBubbleOptions,
|
|
2498
|
+
'createDefaultCartesianScales': createDefaultCartesianScales,
|
|
2499
|
+
'createDefaultDoughnutOptions': createDefaultDoughnutOptions,
|
|
2500
|
+
'createDefaultLineOptions': createDefaultLineOptions,
|
|
2501
|
+
'createDefaultPieOptions': createDefaultPieOptions,
|
|
2502
|
+
'createDefaultTreemapOptions': createDefaultTreemapOptions,
|
|
2503
|
+
'createStatusPlugin': createStatusPlugin,
|
|
2504
|
+
'createTodayLinePlugin': createTodayLinePlugin,
|
|
2505
|
+
'createWeekendPlugin': createWeekendPlugin,
|
|
2506
|
+
'customDatasetPlugins': customDatasetPlugins,
|
|
2507
|
+
'customLegend': customLegend,
|
|
2508
|
+
'defaultBarScales': defaultBarScales,
|
|
2509
|
+
'defaultBarTooltipCallback': defaultBarTooltipCallback,
|
|
2510
|
+
'defaultBubbleScales': defaultBubbleScales,
|
|
2511
|
+
'defaultBubbleTooltipCallback': defaultBubbleTooltipCallback,
|
|
2512
|
+
'defaultDoughnutTooltipCallback': defaultDoughnutTooltipCallback,
|
|
2513
|
+
'defaultLineScales': defaultLineScales,
|
|
2514
|
+
'defaultLineTooltipCallback': defaultLineTooltipCallback,
|
|
2515
|
+
'defaultPieTooltipCallback': defaultPieTooltipCallback,
|
|
2516
|
+
'defaultTreemapTooltipCallback': defaultTreemapTooltipCallback,
|
|
2517
|
+
'doughnutCenterTextPlugin': doughnutCenterTextPlugin,
|
|
2518
|
+
'loadingPlugin': loadingPlugin,
|
|
2519
|
+
'makeCenterHtml': makeCenterHtml,
|
|
2520
|
+
'noDataPlugin': noDataPlugin,
|
|
2521
|
+
'segmentImagePlugin': segmentImagePlugin,
|
|
2522
|
+
'sparkBarOptions': sparkBarOptions,
|
|
2523
|
+
'sparkBubbleOptions': sparkBubbleOptions,
|
|
2524
|
+
'sparkLineOptions': sparkLineOptions,
|
|
2525
|
+
'zoomRangeSlider': zoomRangeSlider,
|
|
2526
|
+
'zoomResetPlugin': zoomResetPlugin
|
|
2527
|
+
});
|
|
2528
|
+
class CartesianChart extends Chart {
|
|
2529
|
+
['type'];
|
|
2530
|
+
[V(0xe3)];
|
|
2531
|
+
constructor(k, H, c, a, X) {
|
|
2532
|
+
super(k, H, c, a, X), this['type'] = k, this['applyGlobalZoomConfig']();
|
|
2533
|
+
}
|
|
2534
|
+
get ['chartId']() {
|
|
2535
|
+
const kb = q;
|
|
2536
|
+
return !this['_chartId'] && (this[kb(0xe3)] = this[kb(0x227)] + '_' + Math['random']()), this['_chartId'];
|
|
2537
|
+
}
|
|
2538
|
+
set ['chartId'](k) {
|
|
2539
|
+
const H0 = q;
|
|
2540
|
+
this['_chartId'] = k;
|
|
2541
|
+
const H = this['options'] = StzUtils[H0(0x92)](this['options'], {});
|
|
2542
|
+
H['_chartId'] = k;
|
|
2543
|
+
}
|
|
2544
|
+
[V(0xb5)]() {
|
|
2545
|
+
return ![];
|
|
2546
|
+
}
|
|
2547
|
+
['decorateDataset'](k, H) {
|
|
2548
|
+
const H1 = q, a = getChartConfig(), X = a?.['defaultColor'] && StzUtils[H1(0x161)](a['defaultColor']) ? a['defaultColor'] : CHART_COLOR, p = X[H % X['length']];
|
|
2549
|
+
k[H1(0x20d)] ??= p, k[H1(0xef)] ??= p, k['yAxisID'] ??= 'y', k['_uid'] = this[H1(0x1ec)] + '_ds_' + H;
|
|
2550
|
+
}
|
|
2551
|
+
['mustHavePlugins']() {
|
|
2552
|
+
return [
|
|
2553
|
+
chartMountPlugin,
|
|
2554
|
+
customDatasetPlugins
|
|
2555
|
+
];
|
|
2556
|
+
}
|
|
2557
|
+
['resolveMustHavePlugins'](k) {
|
|
2558
|
+
const H2 = q, H = k || this['options'], c = getChartConfig(), a = H?.['_loading'] ?? c[H2(0x126)] ?? ![], X = StzUtils['isString'](H?.['_noDataText']), p = [...this['mustHavePlugins']()];
|
|
2559
|
+
return a && p['push'](loadingPlugin), X && p['push'](noDataPlugin), p;
|
|
2560
|
+
}
|
|
2561
|
+
['isLine']() {
|
|
2562
|
+
return this['type'] === 'line';
|
|
2563
|
+
}
|
|
2564
|
+
['isScatter']() {
|
|
2565
|
+
const H3 = q;
|
|
2566
|
+
return this[H3(0x227)] === 'scatter';
|
|
2567
|
+
}
|
|
2568
|
+
[V(0xc2)]() {
|
|
2569
|
+
return this['type'] === 'bar';
|
|
2570
|
+
}
|
|
2571
|
+
[V(0x118)]() {
|
|
2572
|
+
const H4 = q, k = getChartConfig();
|
|
2573
|
+
if (k[H4(0x256)] === !![]) {
|
|
2574
|
+
this['setZoom'](!![]);
|
|
2575
|
+
return;
|
|
2576
|
+
}
|
|
2577
|
+
StzUtils['isObject'](k['zoom']) && this[H4(0x14b)](!![], k['zoom']);
|
|
2578
|
+
}
|
|
2579
|
+
[V(0x9c)]() {
|
|
2580
|
+
this['setPlugin'](zoomResetPlugin);
|
|
2581
|
+
}
|
|
2582
|
+
['removeZoomResetPlugin']() {
|
|
2583
|
+
const H5 = q;
|
|
2584
|
+
this[H5(0x175)](zoomResetPlugin['id']);
|
|
2585
|
+
}
|
|
2586
|
+
['normalizeZoomOptions'](k) {
|
|
2587
|
+
const H6 = q, H = StzUtils['cloneDeep'](k || {}), c = H['autoLimits'], a = H[H6(0x230)];
|
|
2588
|
+
delete H['autoLimits'], delete H[H6(0x230)];
|
|
2589
|
+
let X = {};
|
|
2590
|
+
return c && (X = StzUtils['merge'](X, this['resolveAutoZoomLimits'](c))), a && (X = StzUtils['merge'](X, a)), Object['keys'](X)['length'] > 0x0 && (H['limits'] = StzUtils[H6(0x248)](X, StzUtils['cloneDeep'](H[H6(0x16c)] || {}))), H;
|
|
2591
|
+
}
|
|
2592
|
+
[V(0x176)](k) {
|
|
2593
|
+
const H7 = q, H = StzUtils[H7(0x120)](k) ? {
|
|
2594
|
+
'x': k,
|
|
2595
|
+
'y': k
|
|
2596
|
+
} : k, c = {};
|
|
2597
|
+
return Object[H7(0x202)](H)['forEach'](([a, X]) => {
|
|
2598
|
+
const H8 = q;
|
|
2599
|
+
if (!X)
|
|
2600
|
+
return;
|
|
2601
|
+
const p = X === 'original' ? {
|
|
2602
|
+
'min': H8(0x114),
|
|
2603
|
+
'max': H8(0x114)
|
|
2604
|
+
} : this['resolveAxisZoomLimits'](a);
|
|
2605
|
+
if (!p)
|
|
2606
|
+
return;
|
|
2607
|
+
c[a] = p;
|
|
2608
|
+
}), c;
|
|
2609
|
+
}
|
|
2610
|
+
['resolveAxisZoomLimits'](k) {
|
|
2611
|
+
const H9 = q, H = this['resolveZoomAxis'](k);
|
|
2612
|
+
if (!H)
|
|
2613
|
+
return undefined;
|
|
2614
|
+
const c = [], a = k === H ? this['datasets'] : this[H9(0x247)][H9(0xaa)](p => (p?.[H === 'x' ? H9(0x1c8) : 'yAxisID'] || H) === k);
|
|
2615
|
+
let X = ![];
|
|
2616
|
+
return a['forEach'](p => {
|
|
2617
|
+
const Hi = q, d = p?.['data'];
|
|
2618
|
+
if (!StzUtils['isArray'](d))
|
|
2619
|
+
return;
|
|
2620
|
+
d[Hi(0x1e8)](Q => {
|
|
2621
|
+
const Hq = q;
|
|
2622
|
+
if (StzUtils[Hq(0x17f)](Q))
|
|
2623
|
+
return;
|
|
2624
|
+
if (StzUtils[Hq(0x209)](Q)) {
|
|
2625
|
+
const s = this[Hq(0x1a5)](Q, p, H);
|
|
2626
|
+
!StzUtils[Hq(0x17f)](s) && c['push'](s);
|
|
2627
|
+
return;
|
|
2628
|
+
}
|
|
2629
|
+
if (H === 'x')
|
|
2630
|
+
X = !![];
|
|
2631
|
+
else {
|
|
2632
|
+
const m = this[Hq(0x239)](Q);
|
|
2633
|
+
!StzUtils[Hq(0x17f)](m) && c['push'](m);
|
|
2634
|
+
}
|
|
2635
|
+
});
|
|
2636
|
+
}), H === 'x' && (X || c['length'] === 0x0) && c['push'](...this['resolveAxisLabelLimitValues'](k, a)), this['toZoomScaleLimits'](c);
|
|
2637
|
+
}
|
|
2638
|
+
['resolveZoomAxis'](k) {
|
|
2639
|
+
const Hk = q, H = this[Hk(0xb7)]?.[Hk(0x85)]?.[k]?.['axis'];
|
|
2640
|
+
if (H === 'x' || H === 'y')
|
|
2641
|
+
return H;
|
|
2642
|
+
if (k === 'x' || k['startsWith']('x'))
|
|
2643
|
+
return 'x';
|
|
2644
|
+
if (k === 'y' || k['startsWith']('y'))
|
|
2645
|
+
return 'y';
|
|
2646
|
+
return undefined;
|
|
2647
|
+
}
|
|
2648
|
+
['resolveAxisLabelLimitValues'](k, H) {
|
|
2649
|
+
const HH = q, c = Math[HH(0x15b)](this[HH(0xf4)]?.[HH(0x21f)] || 0x0, ...H['map'](Q => (Q?.['data'] || [])[HH(0x21f)])), a = this['options']?.['scales'], X = a?.[k]?.['type'] || a?.['x']?.['type'], p = !X || X === HH(0x10a);
|
|
2650
|
+
if (p)
|
|
2651
|
+
return Array[HH(0x1a1)]({ 'length': c }, (Q, s) => s);
|
|
2652
|
+
const d = (this['labels'] || [])['map'](Q => this['normalizeLimitValue'](Q))['filter'](Q => !StzUtils['isNullOrUndefined'](Q));
|
|
2653
|
+
return d['length'] > 0x0 ? d : Array[HH(0x1a1)]({ 'length': c }, (Q, s) => s);
|
|
2654
|
+
}
|
|
2655
|
+
[V(0x1a5)](k, H, c) {
|
|
2656
|
+
const Hc = q;
|
|
2657
|
+
if (!StzUtils[Hc(0x209)](k))
|
|
2658
|
+
return this['normalizeLimitValue'](k);
|
|
2659
|
+
const a = this[Hc(0x11c)](H, c), X = this['readValueByPath'](k, a);
|
|
2660
|
+
return this['normalizeLimitValue'](X);
|
|
2661
|
+
}
|
|
2662
|
+
['resolveParsingKey'](k, H) {
|
|
2663
|
+
const Hy = q, c = k?.['parsing'], a = this['options']?.['parsing'], X = H === 'x' ? Hy(0x1cb) : 'yAxisKey';
|
|
2664
|
+
return c?.[X] || a?.[X] || H;
|
|
2665
|
+
}
|
|
2666
|
+
[V(0x226)](k, H) {
|
|
2667
|
+
return H['split']('.')['reduce']((c, a) => {
|
|
2668
|
+
if (!c || !StzUtils['isObject'](c))
|
|
2669
|
+
return undefined;
|
|
2670
|
+
return c[a];
|
|
2671
|
+
}, k);
|
|
2672
|
+
}
|
|
2673
|
+
['normalizeLimitValue'](k) {
|
|
2674
|
+
const Ha = q;
|
|
2675
|
+
if (k instanceof Date)
|
|
2676
|
+
return k['getTime']();
|
|
2677
|
+
if (StzUtils[Ha(0xa9)](k) && Number['isFinite'](k))
|
|
2678
|
+
return k;
|
|
2679
|
+
if (StzUtils['isString'](k)) {
|
|
2680
|
+
const H = k['trim']();
|
|
2681
|
+
if (!H)
|
|
2682
|
+
return undefined;
|
|
2683
|
+
const c = Number(H);
|
|
2684
|
+
if (Number[Ha(0x15a)](c))
|
|
2685
|
+
return c;
|
|
2686
|
+
const a = Date['parse'](H);
|
|
2687
|
+
if (Number[Ha(0x15a)](a))
|
|
2688
|
+
return a;
|
|
2689
|
+
}
|
|
2690
|
+
return undefined;
|
|
2691
|
+
}
|
|
2692
|
+
['toZoomScaleLimits'](k) {
|
|
2693
|
+
const HX = q, H = k[HX(0xaa)](c => Number['isFinite'](c));
|
|
2694
|
+
if (H['length'] === 0x0)
|
|
2695
|
+
return undefined;
|
|
2696
|
+
return {
|
|
2697
|
+
'min': Math['min'](...H),
|
|
2698
|
+
'max': Math[HX(0x15b)](...H)
|
|
2699
|
+
};
|
|
2700
|
+
}
|
|
2701
|
+
['normalize']() {
|
|
2702
|
+
const Hp = q;
|
|
2703
|
+
this['requireLabels']() && (!this['labels'] || this['labels']['length'] === 0x0) && CustomError['shield'](ErrorCode[Hp(0x257)]);
|
|
2704
|
+
}
|
|
2705
|
+
['configAop'](k) {
|
|
2706
|
+
const H = {
|
|
2707
|
+
'get': (c, a, X) => {
|
|
2708
|
+
const Hd = q;
|
|
2709
|
+
if (a === Hd(0x102)) {
|
|
2710
|
+
const p = c['data'];
|
|
2711
|
+
this['requireLabels']() && (!p?.['labels'] || p[Hd(0xf4)]['length'] === 0x0) && CustomError['shield'](ErrorCode['LABELS_REQUIRED']), p && StzUtils[Hd(0x161)](p['datasets']) && p['datasets']['length'] > 0x0 && (p[Hd(0x247)] = p[Hd(0x247)][Hd(0x241)]((d, Q) => {
|
|
2712
|
+
const HQ = q;
|
|
2713
|
+
if (!StzUtils[HQ(0x209)](d))
|
|
2714
|
+
return d;
|
|
2715
|
+
return this['decorateDataset'](d, Q), d;
|
|
2716
|
+
}));
|
|
2717
|
+
}
|
|
2718
|
+
if (a === 'plugins') {
|
|
2719
|
+
const d = this['resolveMustHavePlugins'](c['options']);
|
|
2720
|
+
c[Hd(0x1dc)] = this['mergePlugins'](StzUtils['isArray'](c['plugins']) ? c['plugins'] : undefined, d);
|
|
2721
|
+
}
|
|
2722
|
+
return Reflect['get'](c, a, X);
|
|
2723
|
+
}
|
|
2724
|
+
};
|
|
2725
|
+
return new Proxy(k, H);
|
|
2726
|
+
}
|
|
2727
|
+
[V(0x10e)](k) {
|
|
2728
|
+
const Hs = q;
|
|
2729
|
+
this['normalize']();
|
|
2730
|
+
const H = k || this[Hs(0x227)] + '_' + Math['random']();
|
|
2731
|
+
this[Hs(0xe3)] = H;
|
|
2732
|
+
const c = this['prepareOptions']({
|
|
2733
|
+
...this['cloneValue'](this['options']),
|
|
2734
|
+
'_chartId': H
|
|
2735
|
+
}), a = {
|
|
2736
|
+
'_chartId': H,
|
|
2737
|
+
'type': this['type'],
|
|
2738
|
+
'data': {
|
|
2739
|
+
'labels': this[Hs(0x9e)](this['labels']),
|
|
2740
|
+
'datasets': this['cloneValue'](this['datasets'])
|
|
2741
|
+
},
|
|
2742
|
+
'options': c,
|
|
2743
|
+
'plugins': this[Hs(0x83)](this['plugins'])
|
|
2744
|
+
}, X = this['configAop'](a);
|
|
2745
|
+
return void X['data'], void X[Hs(0x1dc)], {
|
|
2746
|
+
'_chartId': X['_chartId'],
|
|
2747
|
+
'type': X['type'],
|
|
2748
|
+
'datasetIdKey': '_uid',
|
|
2749
|
+
'data': X[Hs(0x102)],
|
|
2750
|
+
'options': X['options'],
|
|
2751
|
+
'plugins': X['plugins']
|
|
2752
|
+
};
|
|
2753
|
+
}
|
|
2754
|
+
['makeConfig'](k = '') {
|
|
2755
|
+
const Hm = q;
|
|
2756
|
+
this['normalize']();
|
|
2757
|
+
if (k)
|
|
2758
|
+
this['_chartId'] = k;
|
|
2759
|
+
const H = this['chartId'], c = {
|
|
2760
|
+
...this['cloneValue'](this['options']),
|
|
2761
|
+
'_chartId': k || this[Hm(0x227)] + '_' + Math['random']()
|
|
2762
|
+
}, a = {
|
|
2763
|
+
'_chartId': H,
|
|
2764
|
+
'type': this['type'],
|
|
2765
|
+
'data': {
|
|
2766
|
+
'labels': this['cloneValue'](this[Hm(0xf4)]),
|
|
2767
|
+
'datasets': this['cloneValue'](this['datasets'])
|
|
2768
|
+
},
|
|
2769
|
+
'options': c,
|
|
2770
|
+
'plugins': this[Hm(0x83)](this['plugins'])
|
|
2771
|
+
}, X = this[Hm(0x174)](a);
|
|
2772
|
+
return void X['data'], void X['plugins'], {
|
|
2773
|
+
'_chartId': X['_chartId'],
|
|
2774
|
+
'type': X['type'],
|
|
2775
|
+
'data': X['data'],
|
|
2776
|
+
'options': X['options'],
|
|
2777
|
+
'plugins': X['plugins']
|
|
2778
|
+
};
|
|
2779
|
+
}
|
|
2780
|
+
[V(0x1dd)]() {
|
|
2781
|
+
const Hr = q;
|
|
2782
|
+
return [
|
|
2783
|
+
'line',
|
|
2784
|
+
Hr(0x144),
|
|
2785
|
+
'scatter',
|
|
2786
|
+
'bubble'
|
|
2787
|
+
][Hr(0x113)](this['type']);
|
|
2788
|
+
}
|
|
2789
|
+
['setScales'](k) {
|
|
2790
|
+
const HZ = q, H = this[HZ(0xb7)] = StzUtils[HZ(0x92)](this['options'], {});
|
|
2791
|
+
return H['scales'] = k, this;
|
|
2792
|
+
}
|
|
2793
|
+
['setTimeScale'](k = 'x', H = {}) {
|
|
2794
|
+
const Hg = q, c = this[Hg(0xb7)] = StzUtils['coalesce'](this['options'], {}), a = c['scales'] = StzUtils['coalesce'](c[Hg(0x85)], {}), X = a[k] = StzUtils['coalesce'](a[k], {}), {
|
|
2795
|
+
type: type = 'time',
|
|
2796
|
+
unit: p,
|
|
2797
|
+
displayFormats: d,
|
|
2798
|
+
tooltipFormat: Q,
|
|
2799
|
+
parser: s,
|
|
2800
|
+
min: m,
|
|
2801
|
+
max: z,
|
|
2802
|
+
suggestedMin: r,
|
|
2803
|
+
suggestedMax: Z,
|
|
2804
|
+
stepSize: g,
|
|
2805
|
+
bounds: B,
|
|
2806
|
+
offsetAfterAutoskip: A,
|
|
2807
|
+
isoWeekday: R,
|
|
2808
|
+
round: N,
|
|
2809
|
+
minUnit: I,
|
|
2810
|
+
adapters: u,
|
|
2811
|
+
ticks: v,
|
|
2812
|
+
grid: t,
|
|
2813
|
+
border: M,
|
|
2814
|
+
parsing: W,
|
|
2815
|
+
...n
|
|
2816
|
+
} = H;
|
|
2817
|
+
X['type'] = type;
|
|
2818
|
+
if (!StzUtils[Hg(0x238)](m))
|
|
2819
|
+
X[Hg(0x9b)] = m;
|
|
2820
|
+
if (!StzUtils['isUndefined'](z))
|
|
2821
|
+
X['max'] = z;
|
|
2822
|
+
if (!StzUtils[Hg(0x238)](r))
|
|
2823
|
+
X[Hg(0x1f9)] = r;
|
|
2824
|
+
if (!StzUtils['isUndefined'](Z))
|
|
2825
|
+
X['suggestedMax'] = Z;
|
|
2826
|
+
if (!StzUtils[Hg(0x238)](B))
|
|
2827
|
+
X['bounds'] = B;
|
|
2828
|
+
if (!StzUtils['isUndefined'](A))
|
|
2829
|
+
X['offsetAfterAutoskip'] = A;
|
|
2830
|
+
if (!StzUtils['isUndefined'](g))
|
|
2831
|
+
X['ticks'] = {
|
|
2832
|
+
...X['ticks'] || {},
|
|
2833
|
+
'stepSize': g
|
|
2834
|
+
};
|
|
2835
|
+
if (v)
|
|
2836
|
+
X[Hg(0x198)] = StzUtils[Hg(0x248)](X[Hg(0x198)] || {}, v);
|
|
2837
|
+
if (t)
|
|
2838
|
+
X[Hg(0x94)] = StzUtils['merge'](X['grid'] || {}, t);
|
|
2839
|
+
if (M)
|
|
2840
|
+
X[Hg(0x1b6)] = StzUtils['merge'](X['border'] || {}, M);
|
|
2841
|
+
if (u)
|
|
2842
|
+
X[Hg(0x8c)] = StzUtils['merge'](X['adapters'] || {}, u);
|
|
2843
|
+
return X['time'] = StzUtils['merge'](X['time'] || {}, {
|
|
2844
|
+
'unit': p ?? DefaultTimeScaleOptions['unit'],
|
|
2845
|
+
'tooltipFormat': Q ?? DefaultTimeScaleOptions['tooltipFormat'],
|
|
2846
|
+
'displayFormats': StzUtils['merge'](DefaultTimeScaleOptions[Hg(0x19c)], d || {}),
|
|
2847
|
+
...s ? { 'parser': s } : {},
|
|
2848
|
+
...!StzUtils['isUndefined'](R) ? { 'isoWeekday': R } : {},
|
|
2849
|
+
...!StzUtils[Hg(0x238)](N) ? { 'round': N } : {},
|
|
2850
|
+
...!StzUtils['isUndefined'](I) ? { 'minUnit': I } : {}
|
|
2851
|
+
}), !StzUtils['isEmpty'](n) && StzUtils['merge'](X, n), W && (!StzUtils['isUndefined'](W['xAxisKey']) || !StzUtils[Hg(0x238)](W['yAxisKey'])) && this['setParsingKey'](StzUtils['isUndefined'](W[Hg(0x1cb)]) ? ![] : W[Hg(0x1cb)], StzUtils['isUndefined'](W['yAxisKey']) ? ![] : W['yAxisKey']), this;
|
|
2852
|
+
}
|
|
2853
|
+
['setAxisTitle'](k, H) {
|
|
2854
|
+
const HB = q, c = this['options'] = StzUtils['coalesce'](this[HB(0xb7)], {}), a = c['scales'] = StzUtils[HB(0x92)](c[HB(0x85)], {}), X = a[k] = StzUtils['coalesce'](a[k], {});
|
|
2855
|
+
return X['title'] = H, this;
|
|
2856
|
+
}
|
|
2857
|
+
['setGridOptions'](k, H) {
|
|
2858
|
+
const HA = q, c = this['options'] = StzUtils['coalesce'](this[HA(0xb7)], {}), a = c[HA(0x85)] = StzUtils['coalesce'](c['scales'], {}), X = a[k] = StzUtils['coalesce'](a[k], {});
|
|
2859
|
+
return X['grid'] = {
|
|
2860
|
+
...X['grid'],
|
|
2861
|
+
...H
|
|
2862
|
+
}, this;
|
|
2863
|
+
}
|
|
2864
|
+
['setZoom'](k, H) {
|
|
2865
|
+
const HR = q, c = this['options'] = StzUtils['coalesce'](this[HR(0xb7)], {}), a = c[HR(0x1dc)] = StzUtils[HR(0x92)](c['plugins'], {});
|
|
2866
|
+
if (!k)
|
|
2867
|
+
return HR(0x256) in a && delete a['zoom'], this[HR(0x242)](), this;
|
|
2868
|
+
const X = this['normalizeZoomOptions'](H), p = StzUtils['merge'](StzUtils['cloneDeep'](DefaultZoomOptions), X);
|
|
2869
|
+
return a['zoom'] = StzUtils['merge'](a['zoom'] || {}, p), this['ensureZoomResetPlugin'](), this;
|
|
2870
|
+
}
|
|
2871
|
+
['addZoom'](k = ![], H) {
|
|
2872
|
+
const HN = q;
|
|
2873
|
+
if (k || StzUtils['isUndefined'](H))
|
|
2874
|
+
return this[HN(0x14b)](!![]);
|
|
2875
|
+
return this[HN(0x14b)](!![], H);
|
|
2876
|
+
}
|
|
2877
|
+
['addDataLabels'](k = ![], H) {
|
|
2878
|
+
const HI = q, c = this[HI(0xb7)] = StzUtils['coalesce'](this[HI(0xb7)], {}), a = c['plugins'] = StzUtils['coalesce'](c['plugins'], {}), X = k ? StzUtils['cloneDeep'](DefaultDataLabelsOptions) : StzUtils['cloneDeep'](H);
|
|
2879
|
+
return a['datalabels'] = X, this;
|
|
2880
|
+
}
|
|
2881
|
+
['setYAxisForDataset'](k, H = 'y') {
|
|
2882
|
+
const Hu = q;
|
|
2883
|
+
if (!this['datasets'] || !this[Hu(0x247)][k])
|
|
2884
|
+
return this;
|
|
2885
|
+
return this['isCartesianChartType']() && (this['datasets'][k]['yAxisID'] = H, H === 'y1' && this['ensureY1AxisExists']()), this;
|
|
2886
|
+
}
|
|
2887
|
+
['ensureY1AxisExists']() {
|
|
2888
|
+
const Hv = q, k = this['options'] = StzUtils['coalesce'](this['options'], {}), H = k['scales'] = StzUtils['coalesce'](k[Hv(0x85)], {});
|
|
2889
|
+
!('y1' in H) && (H['y1'] = {
|
|
2890
|
+
'type': 'linear',
|
|
2891
|
+
'display': !![],
|
|
2892
|
+
'position': 'right',
|
|
2893
|
+
'grid': { 'drawOnChartArea': ![] },
|
|
2894
|
+
'ticks': {
|
|
2895
|
+
'color': '#000',
|
|
2896
|
+
'align': 'start'
|
|
2897
|
+
}
|
|
2898
|
+
});
|
|
2899
|
+
}
|
|
2900
|
+
['setAxisRange'](k, H, c) {
|
|
2901
|
+
const Ht = q, a = this['options'] = StzUtils['coalesce'](this['options'], {}), X = a['scales'] = StzUtils['coalesce'](a['scales'], {}), p = X[k] = StzUtils['coalesce'](X[k], {});
|
|
2902
|
+
return !StzUtils[Ht(0x238)](H) && (p[Ht(0x9b)] = H), !StzUtils['isUndefined'](c) && (p['max'] = c), this;
|
|
2903
|
+
}
|
|
2904
|
+
[V(0xeb)](k, H) {
|
|
2905
|
+
const HM = q, c = [
|
|
2906
|
+
'bar',
|
|
2907
|
+
'line',
|
|
2908
|
+
'scatter',
|
|
2909
|
+
'bubble'
|
|
2910
|
+
];
|
|
2911
|
+
return this[HM(0x247)] && this['datasets'][k] && (c[HM(0x113)](this['type']) ? this['datasets'][k]['yAxisID'] = H : CustomError[HM(0x16d)](ErrorCode[HM(0x251)], this['type'] + '\x20support\x20yAxisId\x20option')), this;
|
|
2912
|
+
}
|
|
2913
|
+
[V(0x13b)](k, H) {
|
|
2914
|
+
const HW = q, c = this['options'] = StzUtils['coalesce'](this['options'], {}), a = c[HW(0x85)] = StzUtils['coalesce'](c['scales'], {});
|
|
2915
|
+
if (a[k]) {
|
|
2916
|
+
const X = a[k];
|
|
2917
|
+
'position' in X ? X[HW(0xbd)] = H : CustomError['shield'](ErrorCode[HW(0x251)], a + HW(0x25a));
|
|
2918
|
+
}
|
|
2919
|
+
return this;
|
|
2920
|
+
}
|
|
2921
|
+
['setAddImg'](k) {
|
|
2922
|
+
const Hn = q, H = this['options'] = StzUtils[Hn(0x92)](this['options'], {}), c = H['scales'] = StzUtils[Hn(0x92)](H['scales'], {});
|
|
2923
|
+
if (c[k])
|
|
2924
|
+
return console['warn'](Hn(0x1fb) + k + '\x22\x20already\x20exists'), this;
|
|
2925
|
+
(!this['datasets'] || this[Hn(0x247)][Hn(0x21f)] === 0x0) && CustomError[Hn(0x16d)](ErrorCode['DATASET_REQUIRED']);
|
|
2926
|
+
const a = this[Hn(0x247)];
|
|
2927
|
+
for (let p = 0x0; p < a[Hn(0x21f)]; p++) {
|
|
2928
|
+
const d = a[p];
|
|
2929
|
+
!d && CustomError[Hn(0x16d)](ErrorCode['EMPTY_REQUIRED_PROPERTY'], Hn(0x24a) + p + '\x20is\x20null\x20or\x20undefined'), !d['image'] && (!d['images'] || d['images'][Hn(0x21f)] === 0x0) && CustomError['shield'](ErrorCode['IMAGE_PROPERTY_MISSING'], 'Dataset\x20\x22' + (d['label'] || '#' + p) + '\x22\x20has\x20no\x20image\x20property');
|
|
2930
|
+
}
|
|
2931
|
+
const X = k['startsWith']('x');
|
|
2932
|
+
if (X) {
|
|
2933
|
+
const Q = { 'id': k + Hn(0xfe) + this['_chartId'] };
|
|
2934
|
+
this['setPlugin'](Q);
|
|
2935
|
+
} else {
|
|
2936
|
+
const s = { 'id': k + Hn(0xfe) + this['_chartId'] };
|
|
2937
|
+
this['setPlugin'](s);
|
|
2938
|
+
}
|
|
2939
|
+
return this;
|
|
2940
|
+
}
|
|
2941
|
+
[V(0x13e)](k) {
|
|
2942
|
+
const H = CreateZoomRangeSlider(k);
|
|
2943
|
+
return this['setPlugin'](H), this;
|
|
2944
|
+
}
|
|
2945
|
+
['setPadding'](k) {
|
|
2946
|
+
const HG = q, H = this[HG(0xb7)] = StzUtils['coalesce'](this['options'], {}), c = H['layout'] = StzUtils['coalesce'](H['layout'], {});
|
|
2947
|
+
return c[HG(0x187)] = k, this;
|
|
2948
|
+
}
|
|
2949
|
+
[V(0x243)](k) {
|
|
2950
|
+
const HV = q;
|
|
2951
|
+
(k < 0x0 || k > 0x1) && CustomError['shield'](ErrorCode['UNKNOWN_ERROR'], 'Alpha\x20value\x20must\x20be\x20between\x200.0\x20and\x201.0');
|
|
2952
|
+
if (!this['datasets'] || this['datasets']['length'] === 0x0)
|
|
2953
|
+
return this;
|
|
2954
|
+
return this[HV(0x247)]['forEach'](H => {
|
|
2955
|
+
const HY = q;
|
|
2956
|
+
if (H) {
|
|
2957
|
+
!H['backgroundColor'] && H['borderColor'] && (H['backgroundColor'] = H['borderColor']);
|
|
2958
|
+
if (H[HY(0x20d)]) {
|
|
2959
|
+
if (typeof H['backgroundColor'] === 'string')
|
|
2960
|
+
H['backgroundColor'] = this['addAlphaToColor'](H['backgroundColor'], k);
|
|
2961
|
+
else
|
|
2962
|
+
StzUtils[HY(0x161)](H['backgroundColor']) && (H[HY(0x20d)] = H['backgroundColor']['map'](c => typeof c === 'string' ? this['addAlphaToColor'](c, k) : c));
|
|
2963
|
+
}
|
|
2964
|
+
}
|
|
2965
|
+
}), this;
|
|
2966
|
+
}
|
|
2967
|
+
['addAlphaToColor'](k, H) {
|
|
2968
|
+
const HK = q;
|
|
2969
|
+
if (k[HK(0x153)]('#')) {
|
|
2970
|
+
const X = k[HK(0x142)](0x1);
|
|
2971
|
+
let p, d, Q;
|
|
2972
|
+
if (X['length'] === 0x3)
|
|
2973
|
+
p = parseInt(X[0x0] + X[0x0], 0x10), d = parseInt(X[0x1] + X[0x1], 0x10), Q = parseInt(X[0x2] + X[0x2], 0x10);
|
|
2974
|
+
else {
|
|
2975
|
+
if (X['length'] === 0x6)
|
|
2976
|
+
p = parseInt(X['slice'](0x0, 0x2), 0x10), d = parseInt(X['slice'](0x2, 0x4), 0x10), Q = parseInt(X[HK(0x142)](0x4, 0x6), 0x10);
|
|
2977
|
+
else
|
|
2978
|
+
return k;
|
|
2979
|
+
}
|
|
2980
|
+
return HK(0x154) + p + ',\x20' + d + ',\x20' + Q + ',\x20' + H + ')';
|
|
2981
|
+
}
|
|
2982
|
+
const c = k[HK(0x24f)](/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);
|
|
2983
|
+
if (c) {
|
|
2984
|
+
const [, s, m, z] = c;
|
|
2985
|
+
return 'rgba(' + s + ',\x20' + m + ',\x20' + z + ',\x20' + H + ')';
|
|
2986
|
+
}
|
|
2987
|
+
const a = k['match'](/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([0-9.]+)\)/);
|
|
2988
|
+
if (a) {
|
|
2989
|
+
const [, Z, B, A] = a;
|
|
2990
|
+
return 'rgba(' + Z + ',\x20' + B + ',\x20' + A + ',\x20' + H + ')';
|
|
2991
|
+
}
|
|
2992
|
+
return k;
|
|
2993
|
+
}
|
|
2994
|
+
['setParsingKey'](k, H) {
|
|
2995
|
+
const Hh = q, c = this['options'] = StzUtils['coalesce'](this['options'], {});
|
|
2996
|
+
return c['parsing'] = !StzUtils['isFalsy'](k) || !StzUtils['isFalsy'](H) ? {
|
|
2997
|
+
...!StzUtils['isFalsy'](k) && { 'xAxisKey': k },
|
|
2998
|
+
...!StzUtils[Hh(0xe6)](H) && { 'yAxisKey': H }
|
|
2999
|
+
} : ![], this;
|
|
3000
|
+
}
|
|
3001
|
+
[V(0xb2)](k, H, c) {
|
|
3002
|
+
const HL = q;
|
|
3003
|
+
if (this[HL(0x247)] && this[HL(0x247)][k]) {
|
|
3004
|
+
const a = {};
|
|
3005
|
+
if (!StzUtils['isFalsy'](H))
|
|
3006
|
+
a['xAxisKey'] = H;
|
|
3007
|
+
if (!StzUtils['isFalsy'](c))
|
|
3008
|
+
a['yAxisKey'] = c;
|
|
3009
|
+
this['datasets'][k][HL(0x1e1)] = a;
|
|
3010
|
+
} else
|
|
3011
|
+
CustomError['shield'](ErrorCode[HL(0x25f)]);
|
|
3012
|
+
return this;
|
|
3013
|
+
}
|
|
3014
|
+
['setAllDatasetsParsing'](k, H) {
|
|
3015
|
+
const HO = q;
|
|
3016
|
+
if (this[HO(0x247)]) {
|
|
3017
|
+
const c = {};
|
|
3018
|
+
if (!StzUtils['isFalsy'](k))
|
|
3019
|
+
c[HO(0x1cb)] = k;
|
|
3020
|
+
if (!StzUtils['isFalsy'](H))
|
|
3021
|
+
c['yAxisKey'] = H;
|
|
3022
|
+
this['datasets']['forEach'](a => {
|
|
3023
|
+
const HP = q;
|
|
3024
|
+
a[HP(0x1e1)] = c;
|
|
3025
|
+
});
|
|
3026
|
+
} else
|
|
3027
|
+
CustomError['shield'](ErrorCode['DATASET_REQUIRED']);
|
|
3028
|
+
return this;
|
|
3029
|
+
}
|
|
3030
|
+
[V(0xc7)](k) {
|
|
3031
|
+
const HS = q, H = this['options'] = StzUtils['coalesce'](this['options'], {}), c = H[HS(0x1dc)] = StzUtils['coalesce'](H['plugins'], {});
|
|
3032
|
+
return c['htmlLegend'] = k, this['setPlugin'](customLegend), this;
|
|
3033
|
+
}
|
|
3034
|
+
[V(0x1ea)](k) {
|
|
3035
|
+
const Hj = q;
|
|
3036
|
+
return (!this[Hj(0x247)] || !StzUtils['isArray'](this[Hj(0x247)])) && CustomError['shield'](ErrorCode[Hj(0xd6)]), this['datasets'][Hj(0x213)](H => H && H['_uid'] === k);
|
|
3037
|
+
}
|
|
3038
|
+
['setDataset'](k, H) {
|
|
3039
|
+
const HC = q;
|
|
3040
|
+
(!this[HC(0x247)] || !StzUtils[HC(0x161)](this['datasets'])) && CustomError['shield'](ErrorCode['DATASET_REQUIRED']);
|
|
3041
|
+
const c = this['datasets']['findIndex'](a => a && a[HC(0x16a)] === k);
|
|
3042
|
+
return c === -0x1 && CustomError[HC(0x16d)](ErrorCode['DATASET_IDENTIFIER_NOT_FOUND']), H['_uid'] = k, this['datasets'][c] = H, this;
|
|
3043
|
+
}
|
|
3044
|
+
[V(0x186)](k) {
|
|
3045
|
+
const Hl = q;
|
|
3046
|
+
return (!this['datasets'] || !StzUtils['isArray'](this['datasets'])) && CustomError['shield'](ErrorCode['DATASET_REQUIRED']), StzUtils['isNumber'](k) ? ((k < 0x0 || k >= this['datasets'][Hl(0x21f)]) && CustomError[Hl(0x16d)](ErrorCode[Hl(0x25f)], 'Dataset\x20index\x20' + k + Hl(0x119)), this[Hl(0x247)][k]) : this['datasets']['find'](H => H && H['_uid'] === k);
|
|
3047
|
+
}
|
|
3048
|
+
[V(0x225)](k, H) {
|
|
3049
|
+
const He = q;
|
|
3050
|
+
(!this['datasets'] || !StzUtils[He(0x161)](this[He(0x247)])) && CustomError['shield'](ErrorCode[He(0xd6)]);
|
|
3051
|
+
let c;
|
|
3052
|
+
StzUtils['isNumber'](k) ? (c = k, (c < 0x0 || c >= this['datasets'][He(0x21f)]) && CustomError['shield'](ErrorCode['NOT_FOUND_DATASET'], 'Dataset\x20index\x20' + c + '\x20is\x20out\x20of\x20bounds')) : (c = this[He(0x247)]['findIndex'](X => X && X['_uid'] === k), c === -0x1 && CustomError['shield'](ErrorCode['DATASET_IDENTIFIER_NOT_FOUND']));
|
|
3053
|
+
const a = this[He(0x247)][c]['_uid'];
|
|
3054
|
+
return H['_uid'] = a || this[He(0x1ec)] + '_ds_' + c, this[He(0x247)][c] = H, this;
|
|
3055
|
+
}
|
|
3056
|
+
['addDataset'](k) {
|
|
3057
|
+
const Hw = q;
|
|
3058
|
+
!this['datasets'] && (this[Hw(0x247)] = []);
|
|
3059
|
+
const H = this['datasets']['length'], c = this['chartId'] + Hw(0x1d6) + H;
|
|
3060
|
+
return k['_uid'] = c, this['decorateDataset'](k, H), this['datasets'][Hw(0x185)](k), c;
|
|
3061
|
+
}
|
|
3062
|
+
[V(0x188)](k, H) {
|
|
3063
|
+
const Hx = q, c = this[Hx(0xb7)] = StzUtils[Hx(0x92)](this[Hx(0xb7)], {}), a = c['scales'] = StzUtils[Hx(0x92)](c['scales'], {}), X = a[k] = StzUtils[Hx(0x92)](a[k], {});
|
|
3064
|
+
return X['grid'] = H, this;
|
|
3065
|
+
}
|
|
3066
|
+
['setBackgroundColor'](k) {
|
|
3067
|
+
return this['setPlugin']({
|
|
3068
|
+
'id': 'customCanvasBackgroundColor',
|
|
3069
|
+
'beforeDraw': H => {
|
|
3070
|
+
const Hf = q, {ctx: c} = H;
|
|
3071
|
+
c['save'](), c['globalCompositeOperation'] = 'destination-over', c[Hf(0x8f)] = k, c['fillRect'](0x0, 0x0, H[Hf(0x1ab)], H[Hf(0x17b)]), c['restore']();
|
|
3072
|
+
}
|
|
3073
|
+
}), this;
|
|
3074
|
+
}
|
|
3075
|
+
['addData'](k, H) {
|
|
3076
|
+
const HU = q;
|
|
3077
|
+
let c, a;
|
|
3078
|
+
StzUtils['isNumber'](k) ? (c = k, a = H) : ((!this['datasets'] || this['datasets'][HU(0x21f)] === 0x0) && CustomError['shield'](ErrorCode[HU(0xd6)]), c = this['datasets']['length'] - 0x1, a = k);
|
|
3079
|
+
(!this[HU(0x247)] || this[HU(0x247)]['length'] === 0x0) && CustomError[HU(0x16d)](ErrorCode['DATASET_REQUIRED']);
|
|
3080
|
+
(c < 0x0 || c >= this[HU(0x247)]['length']) && CustomError['shield'](ErrorCode[HU(0x25f)], 'Dataset\x20index\x20' + c + '\x20is\x20out\x20of\x20bounds');
|
|
3081
|
+
const X = this[HU(0x247)][c];
|
|
3082
|
+
!X['data'] && (X['data'] = []);
|
|
3083
|
+
if (StzUtils['isArray'](a)) {
|
|
3084
|
+
const p = a[HU(0x241)]((d, Q) => {
|
|
3085
|
+
const Ho = q;
|
|
3086
|
+
if (StzUtils['isObject'](d))
|
|
3087
|
+
return {
|
|
3088
|
+
...d,
|
|
3089
|
+
'_uid': d['_uid'] || this['chartId'] + '_ds_' + c + Ho(0xec) + (X[Ho(0x102)]['length'] + Q)
|
|
3090
|
+
};
|
|
3091
|
+
return d;
|
|
3092
|
+
});
|
|
3093
|
+
X['data']['push'](...p);
|
|
3094
|
+
} else {
|
|
3095
|
+
if (StzUtils[HU(0x209)](a)) {
|
|
3096
|
+
const d = {
|
|
3097
|
+
...a,
|
|
3098
|
+
'_uid': a[HU(0x16a)] || this['chartId'] + HU(0x1d6) + c + '_pt_' + X['data'][HU(0x21f)]
|
|
3099
|
+
};
|
|
3100
|
+
X['data']['push'](d);
|
|
3101
|
+
} else
|
|
3102
|
+
X['data'][HU(0x185)](a);
|
|
3103
|
+
}
|
|
3104
|
+
return this['isTemporalScale']() && X['data']['sort']((Q, s) => {
|
|
3105
|
+
const HE = q, m = StzUtils['isArray'](Q['x']) ? Q['x'][0x0] : Q['x'], z = StzUtils['isArray'](s['x']) ? s['x'][0x0] : s['x'], r = m instanceof Date ? m : new Date(m), Z = z instanceof Date ? z : new Date(z);
|
|
3106
|
+
return r[HE(0x20c)]() - Z['getTime']();
|
|
3107
|
+
}), this;
|
|
3108
|
+
}
|
|
3109
|
+
['isTemporalScale'](k = 'x') {
|
|
3110
|
+
const HJ = q, H = this['options']?.[HJ(0x85)]?.[k]?.[HJ(0x227)];
|
|
3111
|
+
return H === 'time' || H === HJ(0x224) || H === HJ(0x23f);
|
|
3112
|
+
}
|
|
3113
|
+
}
|
|
3114
|
+
class BarChart extends CartesianChart {
|
|
3115
|
+
constructor(k, H, c, a, X) {
|
|
3116
|
+
const p = {
|
|
3117
|
+
...defaultBarScales,
|
|
3118
|
+
...a?.['scales'] ?? {}
|
|
3119
|
+
}, d = createDefaultBarOptions(a, p);
|
|
3120
|
+
super(k, H, c, d, X);
|
|
3121
|
+
}
|
|
3122
|
+
['requireLabels']() {
|
|
3123
|
+
return ![];
|
|
3124
|
+
}
|
|
3125
|
+
[V(0x26e)](k) {
|
|
3126
|
+
return super['makeConfig'](k);
|
|
3127
|
+
}
|
|
3128
|
+
['setBarThickness'](k, H) {
|
|
3129
|
+
return this['datasets'] && this['datasets'][k] && (this['datasets'][k]['barThickness'] = H), this;
|
|
3130
|
+
}
|
|
3131
|
+
['setAllBarThickness'](k) {
|
|
3132
|
+
const HD = q;
|
|
3133
|
+
return this[HD(0x247)] && this['datasets'][HD(0x1e8)]((H, c) => {
|
|
3134
|
+
this['setBarThickness'](c, k);
|
|
3135
|
+
}), this;
|
|
3136
|
+
}
|
|
3137
|
+
[V(0x203)](k, H) {
|
|
3138
|
+
return this['datasets'] && this['datasets'][k] && (this['datasets'][k]['maxBarThickness'] = H), this;
|
|
3139
|
+
}
|
|
3140
|
+
['setAllMaxBarThickness'](k) {
|
|
3141
|
+
const HT = q;
|
|
3142
|
+
return this['datasets'] && this[HT(0x247)]['forEach']((H, c) => {
|
|
3143
|
+
this['setMaxBarThickness'](c, k);
|
|
3144
|
+
}), this;
|
|
3145
|
+
}
|
|
3146
|
+
['setBarPercentage'](k, H) {
|
|
3147
|
+
const HF = q;
|
|
3148
|
+
return this['datasets'] && this['datasets'][k] && (this['datasets'][k][HF(0x1f6)] = H), this;
|
|
3149
|
+
}
|
|
3150
|
+
['setAllBarPercentage'](k) {
|
|
3151
|
+
const Hb = q;
|
|
3152
|
+
return this[Hb(0x247)] && this['datasets']['forEach']((H, c) => {
|
|
3153
|
+
const c0 = q;
|
|
3154
|
+
this[c0(0x259)](c, k);
|
|
3155
|
+
}), this;
|
|
3156
|
+
}
|
|
3157
|
+
['setCategoryPercentage'](k, H) {
|
|
3158
|
+
const c1 = q;
|
|
3159
|
+
return this['datasets'] && this['datasets'][k] && (this['datasets'][k][c1(0xbe)] = H), this;
|
|
3160
|
+
}
|
|
3161
|
+
[V(0xfd)](k) {
|
|
3162
|
+
const c2 = q;
|
|
3163
|
+
return this['datasets'] && this['datasets'][c2(0x1e8)]((H, c) => {
|
|
3164
|
+
this['setCategoryPercentage'](c, k);
|
|
3165
|
+
}), this;
|
|
3166
|
+
}
|
|
3167
|
+
['setBorderWidth'](k, H) {
|
|
3168
|
+
const c3 = q;
|
|
3169
|
+
return this['datasets'] && this['datasets'][k] && (this['datasets'][k][c3(0x88)] = H), this;
|
|
3170
|
+
}
|
|
3171
|
+
['setAllBorderWidth'](k) {
|
|
3172
|
+
const c4 = q;
|
|
3173
|
+
return this['datasets'] && this['datasets'][c4(0x1e8)](H => {
|
|
3174
|
+
H['borderWidth'] = k;
|
|
3175
|
+
}), this;
|
|
3176
|
+
}
|
|
3177
|
+
['setBorderRadius'](k, H) {
|
|
3178
|
+
const c5 = q;
|
|
3179
|
+
return this[c5(0x247)] && this['datasets'][k] && (this['datasets'][k][c5(0xac)] = H), this;
|
|
3180
|
+
}
|
|
3181
|
+
['setAllBorderRadius'](k) {
|
|
3182
|
+
const c6 = q;
|
|
3183
|
+
return this[c6(0x247)] && this['datasets']['forEach']((H, c) => {
|
|
3184
|
+
const c7 = q;
|
|
3185
|
+
this[c7(0x139)](c, k);
|
|
3186
|
+
}), this;
|
|
3187
|
+
}
|
|
3188
|
+
['setStacked'](k) {
|
|
3189
|
+
const c8 = q, H = this[c8(0xb7)]?.['scales'];
|
|
3190
|
+
if (!H)
|
|
3191
|
+
return this;
|
|
3192
|
+
return Object['entries'](H)[c8(0x1e8)](([c, a]) => {
|
|
3193
|
+
const c9 = q;
|
|
3194
|
+
StzUtils['isObject'](a) && (a[c9(0x145)] = k);
|
|
3195
|
+
}), this;
|
|
3196
|
+
}
|
|
3197
|
+
['setBarImg'](k) {
|
|
3198
|
+
const ci = q;
|
|
3199
|
+
if (StzUtils['isEmpty'](this['datasets']))
|
|
3200
|
+
return this;
|
|
3201
|
+
const H = this[ci(0xb7)] = StzUtils['coalesce'](this[ci(0xb7)], {}), c = H['scales'] = StzUtils[ci(0x92)](H['scales'], {});
|
|
3202
|
+
if (StzUtils['isEmpty'](c[k]))
|
|
3203
|
+
return this;
|
|
3204
|
+
return this['plugins']?.[ci(0x185)](barScaleImgPlugin), this;
|
|
3205
|
+
}
|
|
3206
|
+
[V(0x1cc)]() {
|
|
3207
|
+
const cq = q, k = this[cq(0xb7)] = StzUtils['coalesce'](this['options'], {}), H = StzUtils['merge'](k, sparkBarOptions);
|
|
3208
|
+
return this[cq(0xb7)] = H, this;
|
|
3209
|
+
}
|
|
3210
|
+
['ganttChart']() {
|
|
3211
|
+
const ck = q, k = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;
|
|
3212
|
+
return this['datasets'] && this['datasets'][ck(0x1e8)]((H, c) => {
|
|
3213
|
+
const cH = q;
|
|
3214
|
+
H['data'] && StzUtils[cH(0x161)](H['data']) && H['data'][cH(0x1e8)]((a, X) => {
|
|
3215
|
+
const cc = q;
|
|
3216
|
+
if (StzUtils['isArray'](a))
|
|
3217
|
+
a['forEach']((p, d) => {
|
|
3218
|
+
if (typeof p === 'string' && !k['test'](p))
|
|
3219
|
+
throw CustomError['shield'](ErrorCode['INVALID_DATA_STRUCTURE'], 'Dataset\x20' + c + ',\x20point\x20' + X + '[' + d + ']:\x20Invalid\x20date\x20format.\x20Expected\x20yyyy-mm-dd,\x20got:\x20' + p);
|
|
3220
|
+
});
|
|
3221
|
+
else {
|
|
3222
|
+
if (StzUtils['isObject'](a) && 'x' in a) {
|
|
3223
|
+
if (typeof a['x'] === cc(0x25d) && !k[cc(0x1c2)](a['x']))
|
|
3224
|
+
throw CustomError['shield'](ErrorCode['INVALID_DATA_STRUCTURE'], cc(0xd3) + c + ',\x20point\x20' + X + cc(0xda) + a['x']);
|
|
3225
|
+
}
|
|
3226
|
+
}
|
|
3227
|
+
}), H['borderWidth'] = 0x1, H['borderSkipped'] = ![];
|
|
3228
|
+
}), !(this[ck(0xb7)]['scales']['x'][ck(0x227)] === 'time') && (this['options']['scales']['x']['type'] = 'time'), this['options'][ck(0x85)]['x']['time'] = {
|
|
3229
|
+
'unit': ck(0x26b),
|
|
3230
|
+
'displayFormats': { 'day': 'yyyy-MM-dd' }
|
|
3231
|
+
}, this['options']['indexAxis'] = 'y', this;
|
|
3232
|
+
}
|
|
3233
|
+
}
|
|
3234
|
+
class LineChart extends CartesianChart {
|
|
3235
|
+
constructor(k, H, c, a) {
|
|
3236
|
+
const X = {
|
|
3237
|
+
...defaultLineScales,
|
|
3238
|
+
...a?.['scales'] ?? {}
|
|
3239
|
+
}, p = createDefaultLineOptions(a, X);
|
|
3240
|
+
super(k, H, c, p);
|
|
3241
|
+
}
|
|
3242
|
+
['requireLabels']() {
|
|
3243
|
+
const cy = q;
|
|
3244
|
+
return this['options']?.['scales']?.['x']?.[cy(0x227)] === 'category';
|
|
3245
|
+
}
|
|
3246
|
+
['makeConfig'](k) {
|
|
3247
|
+
return super['makeConfig'](k);
|
|
3248
|
+
}
|
|
3249
|
+
[V(0x1d4)](k, H, c) {
|
|
3250
|
+
const ca = q;
|
|
3251
|
+
if (this[ca(0x247)] && this['datasets'][k]) {
|
|
3252
|
+
if (H) {
|
|
3253
|
+
this[ca(0x247)][k]['fill'] = ca(0x8d);
|
|
3254
|
+
if (c)
|
|
3255
|
+
this[ca(0x247)][k][ca(0x20d)] = c;
|
|
3256
|
+
else
|
|
3257
|
+
!this['datasets'][k]['backgroundColor'] && (this['datasets'][k]['backgroundColor'] = 'rgba(75,\x20192,\x20192,\x200.2)');
|
|
3258
|
+
} else
|
|
3259
|
+
this['datasets'][k]['fill'] = ![];
|
|
3260
|
+
}
|
|
3261
|
+
return this;
|
|
3262
|
+
}
|
|
3263
|
+
['setAllFill'](k, H) {
|
|
3264
|
+
const cX = q;
|
|
3265
|
+
return this['datasets'] && this['datasets'][cX(0x1e8)]((c, a) => {
|
|
3266
|
+
const cp = q;
|
|
3267
|
+
this[cp(0x1d4)](a, k, H);
|
|
3268
|
+
}), this;
|
|
3269
|
+
}
|
|
3270
|
+
['setTension'](k, H) {
|
|
3271
|
+
const cd = q;
|
|
3272
|
+
return this[cd(0x247)] && this['datasets'][k] && (this['datasets'][k]['tension'] = H), this;
|
|
3273
|
+
}
|
|
3274
|
+
['setAllTension'](k) {
|
|
3275
|
+
return this['datasets'] && this['datasets']['forEach']((H, c) => {
|
|
3276
|
+
this['setTension'](c, k);
|
|
3277
|
+
}), this;
|
|
3278
|
+
}
|
|
3279
|
+
[V(0x172)](k, H) {
|
|
3280
|
+
const cQ = q;
|
|
3281
|
+
return this['datasets'] && this[cQ(0x247)][k] && (this['datasets'][k][cQ(0x88)] = H), this;
|
|
3282
|
+
}
|
|
3283
|
+
['setAllBorderWidth'](k) {
|
|
3284
|
+
const cs = q;
|
|
3285
|
+
return this['datasets'] && this['datasets'][cs(0x1e8)]((H, c) => {
|
|
3286
|
+
this['setBorderWidth'](c, k);
|
|
3287
|
+
}), this;
|
|
3288
|
+
}
|
|
3289
|
+
['setPointRadius'](k, H) {
|
|
3290
|
+
const cm = q;
|
|
3291
|
+
return this[cm(0x247)] && this['datasets'][k] && (this[cm(0x247)][k]['pointRadius'] = H), this;
|
|
3292
|
+
}
|
|
3293
|
+
['setAllPointRadius'](k) {
|
|
3294
|
+
const cz = q;
|
|
3295
|
+
return this['datasets'] && this[cz(0x247)]['forEach']((H, c) => {
|
|
3296
|
+
this['setPointRadius'](c, k);
|
|
3297
|
+
}), this;
|
|
3298
|
+
}
|
|
3299
|
+
['setPointHoverRadius'](k, H) {
|
|
3300
|
+
const cr = q;
|
|
3301
|
+
return this[cr(0x247)] && this['datasets'][k] && (this['datasets'][k]['pointHoverRadius'] = H), this;
|
|
3302
|
+
}
|
|
3303
|
+
['setAllPointHoverRadius'](k) {
|
|
3304
|
+
const cZ = q;
|
|
3305
|
+
return this[cZ(0x247)] && this['datasets']['forEach']((H, c) => {
|
|
3306
|
+
const cg = q;
|
|
3307
|
+
this[cg(0x107)](c, k);
|
|
3308
|
+
}), this;
|
|
3309
|
+
}
|
|
3310
|
+
[V(0x12b)](k, H, c, a = V(0x21e)) {
|
|
3311
|
+
const cB = q;
|
|
3312
|
+
(!this['datasets'] || !this['datasets'][k]) && CustomError['shield'](ErrorCode['DATASET_IDENTIFIER_NOT_FOUND']);
|
|
3313
|
+
H < 0x2 && console['warn']('Gradient\x20steps\x20must\x20be\x20at\x20least\x202');
|
|
3314
|
+
c['length'] !== H && console['warn']('Colors\x20array\x20length\x20(' + c[cB(0x21f)] + cB(0x173) + H + ')');
|
|
3315
|
+
const X = () => {
|
|
3316
|
+
const cA = q, p = ChartInstance['getChart'](this['chartId']), {
|
|
3317
|
+
ctx: d,
|
|
3318
|
+
chartArea: Q
|
|
3319
|
+
} = p;
|
|
3320
|
+
if (!Q)
|
|
3321
|
+
return null;
|
|
3322
|
+
let s = 0x0, m = Q['top'], z = 0x0, r = Q[cA(0x276)];
|
|
3323
|
+
a === 'horizontal' && (s = Q['left'], m = 0x0, z = Q[cA(0x18b)], r = 0x0);
|
|
3324
|
+
const Z = d['createLinearGradient'](s, m, z, r), g = this['calculateGradientPositions'](H);
|
|
3325
|
+
return g['forEach']((B, A) => {
|
|
3326
|
+
const cR = q;
|
|
3327
|
+
A < c[cR(0x21f)] && Z['addColorStop'](B, c[A]);
|
|
3328
|
+
}), Z;
|
|
3329
|
+
};
|
|
3330
|
+
return this['datasets'][k]['borderColor'] = X, this[cB(0x247)][k]['fill'] !== ![] && (this['datasets'][k]['backgroundColor'] = X), this;
|
|
3331
|
+
}
|
|
3332
|
+
['setAllGradient'](k, H, c = V(0x21e)) {
|
|
3333
|
+
return this['datasets'] && this['datasets']['forEach']((a, X) => {
|
|
3334
|
+
this['setGradient'](X, k, H, c);
|
|
3335
|
+
}), this;
|
|
3336
|
+
}
|
|
3337
|
+
[V(0xb6)](k) {
|
|
3338
|
+
const cN = q;
|
|
3339
|
+
return this['datasets'] && this['datasets'][k] && (this['datasets'][k]['borderColor'] = cN(0xa0), this['datasets'][k]['backgroundColor'] = 'rgba(54,\x20162,\x20235,\x200.2)'), this;
|
|
3340
|
+
}
|
|
3341
|
+
[V(0x140)]() {
|
|
3342
|
+
return this['datasets'] && this['datasets']['forEach']((k, H) => {
|
|
3343
|
+
this['removeGradient'](H);
|
|
3344
|
+
}), this;
|
|
3345
|
+
}
|
|
3346
|
+
[V(0x26c)](k) {
|
|
3347
|
+
if (k === 0x1)
|
|
3348
|
+
return [0x0];
|
|
3349
|
+
if (k === 0x2)
|
|
3350
|
+
return [
|
|
3351
|
+
0x0,
|
|
3352
|
+
0x1
|
|
3353
|
+
];
|
|
3354
|
+
const H = [];
|
|
3355
|
+
for (let c = 0x0; c < k; c++) {
|
|
3356
|
+
H['push'](c / (k - 0x1));
|
|
3357
|
+
}
|
|
3358
|
+
return H;
|
|
3359
|
+
}
|
|
3360
|
+
['sparkLineChart']() {
|
|
3361
|
+
const cI = q, k = this['options'] = StzUtils['coalesce'](this[cI(0xb7)], {}), H = StzUtils['merge'](k, sparkLineOptions);
|
|
3362
|
+
return this[cI(0xb7)] = H, this;
|
|
3363
|
+
}
|
|
3364
|
+
}
|
|
3365
|
+
class BubbleChart extends CartesianChart {
|
|
3366
|
+
constructor(k, H, c, a, X) {
|
|
3367
|
+
const cu = q, p = {
|
|
3368
|
+
...defaultBubbleScales,
|
|
3369
|
+
...a?.[cu(0x85)] ?? {}
|
|
3370
|
+
}, d = createDefaultBubbleOptions(a, p);
|
|
3371
|
+
super(k, H, c, d, X);
|
|
3372
|
+
}
|
|
3373
|
+
['requireLabels']() {
|
|
3374
|
+
return ![];
|
|
3375
|
+
}
|
|
3376
|
+
['makeConfig'](k) {
|
|
3377
|
+
return super['makeConfig'](k);
|
|
3378
|
+
}
|
|
3379
|
+
[V(0x1b4)](k, H) {
|
|
3380
|
+
return this['datasets'] && this['datasets'][k] && (this['datasets'][k]['radius'] = H), this;
|
|
3381
|
+
}
|
|
3382
|
+
[V(0x13c)](k) {
|
|
3383
|
+
const cv = q;
|
|
3384
|
+
return this[cv(0x247)] && this['datasets']['forEach']((H, c) => {
|
|
3385
|
+
const ct = q;
|
|
3386
|
+
this[ct(0x1b4)](c, k);
|
|
3387
|
+
}), this;
|
|
3388
|
+
}
|
|
3389
|
+
['setBubbleDataRadius'](k, H, c) {
|
|
3390
|
+
const cM = q;
|
|
3391
|
+
if (this['datasets'] && this[cM(0x247)][k]) {
|
|
3392
|
+
const a = this[cM(0x247)][k];
|
|
3393
|
+
if (a['data'] && a[cM(0x102)][H]) {
|
|
3394
|
+
const X = a['data'][H];
|
|
3395
|
+
StzUtils[cM(0x209)](X) && 'r' in X && (X['r'] = c);
|
|
3396
|
+
}
|
|
3397
|
+
}
|
|
3398
|
+
return this;
|
|
3399
|
+
}
|
|
3400
|
+
[V(0xb8)](k, H) {
|
|
3401
|
+
const cW = q;
|
|
3402
|
+
if (this[cW(0x247)] && this['datasets'][k]) {
|
|
3403
|
+
const c = this['datasets'][k];
|
|
3404
|
+
c['data'] && c['data'][cW(0x1e8)](a => {
|
|
3405
|
+
StzUtils['isObject'](a) && 'r' in a && (a['r'] = H);
|
|
3406
|
+
});
|
|
3407
|
+
}
|
|
3408
|
+
return this;
|
|
3409
|
+
}
|
|
3410
|
+
['setBubbleDataRadiusByName'](k, H, c) {
|
|
3411
|
+
const cn = q;
|
|
3412
|
+
if (this[cn(0x247)] && this['datasets'][k]) {
|
|
3413
|
+
const a = this[cn(0x247)][k];
|
|
3414
|
+
a['data'] && a['data'][cn(0x1e8)](X => {
|
|
3415
|
+
StzUtils['isObject'](X) && X['name'] === H && 'r' in X && (X['r'] = c);
|
|
3416
|
+
});
|
|
3417
|
+
}
|
|
3418
|
+
return this;
|
|
3419
|
+
}
|
|
3420
|
+
['updateBubbleDataRadius'](k, H) {
|
|
3421
|
+
const cG = q;
|
|
3422
|
+
if (this['datasets'] && this['datasets'][k]) {
|
|
3423
|
+
const c = this[cG(0x247)][k];
|
|
3424
|
+
c[cG(0x102)] && c['data']['forEach']((a, X) => {
|
|
3425
|
+
StzUtils['isObject'](a) && 'r' in a && (a['r'] = H(a, X));
|
|
3426
|
+
});
|
|
3427
|
+
}
|
|
3428
|
+
return this;
|
|
3429
|
+
}
|
|
3430
|
+
['setBubbleDataRadiusWhere'](k, H, c) {
|
|
3431
|
+
const cV = q;
|
|
3432
|
+
if (this['datasets'] && this['datasets'][k]) {
|
|
3433
|
+
const a = this['datasets'][k];
|
|
3434
|
+
a[cV(0x102)] && a[cV(0x102)]['forEach'](X => {
|
|
3435
|
+
StzUtils['isObject'](X) && 'r' in X && H(X) && (X['r'] = c);
|
|
3436
|
+
});
|
|
3437
|
+
}
|
|
3438
|
+
return this;
|
|
3439
|
+
}
|
|
3440
|
+
['setHoverRadius'](k, H) {
|
|
3441
|
+
const cY = q;
|
|
3442
|
+
if (this[cY(0x247)] && this['datasets'][k])
|
|
3443
|
+
this[cY(0x247)][k]['hoverRadius'] = H;
|
|
3444
|
+
else
|
|
3445
|
+
throw new CustomError(ErrorCode['DATASET_REQUIRED']);
|
|
3446
|
+
return this;
|
|
3447
|
+
}
|
|
3448
|
+
['setAllHoverRadius'](k) {
|
|
3449
|
+
const cK = q;
|
|
3450
|
+
return this['datasets'] && this[cK(0x247)]['forEach']((H, c) => {
|
|
3451
|
+
this['setHoverRadius'](c, k);
|
|
3452
|
+
}), this;
|
|
3453
|
+
}
|
|
3454
|
+
['setBorderWidth'](k, H) {
|
|
3455
|
+
return this['datasets'] && this['datasets'][k] && (this['datasets'][k]['borderWidth'] = H), this;
|
|
3456
|
+
}
|
|
3457
|
+
[V(0x1bf)](k) {
|
|
3458
|
+
const ch = q;
|
|
3459
|
+
return this[ch(0x247)] && this[ch(0x247)]['forEach'](H => {
|
|
3460
|
+
H['borderWidth'] = k;
|
|
3461
|
+
}), this;
|
|
3462
|
+
}
|
|
3463
|
+
['sparkBubbleChart']() {
|
|
3464
|
+
const k = this['options'] = StzUtils['coalesce'](this['options'], {}), H = StzUtils['merge'](k, sparkBubbleOptions);
|
|
3465
|
+
return this['options'] = H, this;
|
|
3466
|
+
}
|
|
3467
|
+
['setRotation'](k, H) {
|
|
3468
|
+
const cL = q;
|
|
3469
|
+
return this[cL(0x247)] && this['datasets'][k] && (this['datasets'][k][cL(0x184)] = H), this;
|
|
3470
|
+
}
|
|
3471
|
+
[V(0xca)](k) {
|
|
3472
|
+
const cO = q;
|
|
3473
|
+
return this['datasets'] && this['datasets'][cO(0x1e8)]((H, c) => {
|
|
3474
|
+
this['setRotation'](c, k);
|
|
3475
|
+
}), this;
|
|
3476
|
+
}
|
|
3477
|
+
}
|
|
3478
|
+
class ArcChart extends Chart {
|
|
3479
|
+
['type'];
|
|
3480
|
+
['_chartId'];
|
|
3481
|
+
constructor(k, H, c, a, X) {
|
|
3482
|
+
const cP = q;
|
|
3483
|
+
super(k, H, c, a, X), this[cP(0x227)] = k;
|
|
3484
|
+
}
|
|
3485
|
+
get ['chartId']() {
|
|
3486
|
+
const cS = q;
|
|
3487
|
+
return !this['_chartId'] && (this['_chartId'] = this['type'] + '_' + Math[cS(0xc3)]()), this[cS(0xe3)];
|
|
3488
|
+
}
|
|
3489
|
+
set ['chartId'](k) {
|
|
3490
|
+
const cj = q;
|
|
3491
|
+
this['_chartId'] = k;
|
|
3492
|
+
const H = this['options'] = StzUtils['coalesce'](this[cj(0xb7)], {});
|
|
3493
|
+
H[cj(0xe3)] = k;
|
|
3494
|
+
}
|
|
3495
|
+
[V(0xb5)]() {
|
|
3496
|
+
return !![];
|
|
3497
|
+
}
|
|
3498
|
+
['decorateDataset'](k, H) {
|
|
3499
|
+
const cC = q, c = CHART_COLOR;
|
|
3500
|
+
!k['backgroundColor'] && (StzUtils[cC(0x161)](k['data']) ? k[cC(0x20d)] = k['data']['map']((a, X) => c[(H + X) % c['length']]) : k[cC(0x20d)] = c[H % c['length']]), !k['borderColor'] && (k['borderColor'] = '#fff'), k[cC(0x88)] ??= 0x2, k['_uid'] = this['chartId'] + '_ds_' + H;
|
|
3501
|
+
}
|
|
3502
|
+
['mustHavePlugins']() {
|
|
3503
|
+
return [chartMountPlugin];
|
|
3504
|
+
}
|
|
3505
|
+
['resolveMustHavePlugins'](k) {
|
|
3506
|
+
const cl = q, H = k || this['options'], c = getChartConfig(), a = H?.['_loading'] ?? c[cl(0x126)] ?? ![], X = [...this['mustHavePlugins']()];
|
|
3507
|
+
return a && X['push'](loadingPlugin), StzUtils['isString'](H?.['_noDataText']) && X['push'](noDataPlugin), X;
|
|
3508
|
+
}
|
|
3509
|
+
[V(0x100)]() {
|
|
3510
|
+
const ce = q;
|
|
3511
|
+
if (this[ce(0xb5)]() && (!this['labels'] || this[ce(0xf4)]['length'] === 0x0))
|
|
3512
|
+
throw new CustomError(ErrorCode[ce(0x257)]);
|
|
3513
|
+
}
|
|
3514
|
+
[V(0x174)](k) {
|
|
3515
|
+
const H = {
|
|
3516
|
+
'get': (c, a, X) => {
|
|
3517
|
+
const cw = q;
|
|
3518
|
+
if (a === 'data') {
|
|
3519
|
+
const p = c[cw(0x102)];
|
|
3520
|
+
if (this['requireLabels']() && (!p?.['labels'] || p['labels']['length'] === 0x0))
|
|
3521
|
+
throw new CustomError(ErrorCode['LABELS_REQUIRED']);
|
|
3522
|
+
p && StzUtils['isArray'](p[cw(0x247)]) && p[cw(0x247)][cw(0x21f)] > 0x0 && (p[cw(0x247)] = p[cw(0x247)]['map']((d, Q) => {
|
|
3523
|
+
const cx = q;
|
|
3524
|
+
if (!StzUtils[cx(0x209)](d))
|
|
3525
|
+
return d;
|
|
3526
|
+
return this['decorateDataset'](d, Q), d;
|
|
3527
|
+
}));
|
|
3528
|
+
}
|
|
3529
|
+
if (a === 'plugins') {
|
|
3530
|
+
const d = this['resolveMustHavePlugins'](c['options']);
|
|
3531
|
+
c['plugins'] = this['mergePlugins'](StzUtils['isArray'](c['plugins']) ? c['plugins'] : undefined, d);
|
|
3532
|
+
}
|
|
3533
|
+
return Reflect[cw(0x10f)](c, a, X);
|
|
3534
|
+
}
|
|
3535
|
+
};
|
|
3536
|
+
return new Proxy(k, H);
|
|
3537
|
+
}
|
|
3538
|
+
['build'](k) {
|
|
3539
|
+
const cf = q;
|
|
3540
|
+
this['normalize']();
|
|
3541
|
+
const H = k || this['type'] + '_' + Math['random']();
|
|
3542
|
+
this['_chartId'] = H;
|
|
3543
|
+
const c = {
|
|
3544
|
+
...this[cf(0x9e)](this['options']),
|
|
3545
|
+
'_chartId': H
|
|
3546
|
+
}, a = {
|
|
3547
|
+
'_chartId': H,
|
|
3548
|
+
'type': this[cf(0x227)],
|
|
3549
|
+
'data': {
|
|
3550
|
+
'labels': this['cloneValue'](this['labels']),
|
|
3551
|
+
'datasets': this[cf(0x9e)](this['datasets'])
|
|
3552
|
+
},
|
|
3553
|
+
'options': c,
|
|
3554
|
+
'plugins': this['clonePlugins'](this['plugins'])
|
|
3555
|
+
}, X = this[cf(0x174)](a);
|
|
3556
|
+
return void X['data'], void X['plugins'], {
|
|
3557
|
+
'_chartId': X['_chartId'],
|
|
3558
|
+
'type': X['type'],
|
|
3559
|
+
'datasetIdKey': '_uid',
|
|
3560
|
+
'data': X[cf(0x102)],
|
|
3561
|
+
'options': X['options'],
|
|
3562
|
+
'plugins': X[cf(0x1dc)]
|
|
3563
|
+
};
|
|
3564
|
+
}
|
|
3565
|
+
[V(0x236)](k) {
|
|
3566
|
+
const cU = q, H = this['options'] = StzUtils['coalesce'](this['options'], {});
|
|
3567
|
+
return H[cU(0x184)] = k, this;
|
|
3568
|
+
}
|
|
3569
|
+
['setCircumference'](k) {
|
|
3570
|
+
const co = q, H = this['options'] = StzUtils[co(0x92)](this['options'], {});
|
|
3571
|
+
return H[co(0x252)] = k, this;
|
|
3572
|
+
}
|
|
3573
|
+
['setCutout'](k) {
|
|
3574
|
+
const cE = q, H = this['options'] = StzUtils[cE(0x92)](this[cE(0xb7)], {});
|
|
3575
|
+
return H['cutout'] = k, this;
|
|
3576
|
+
}
|
|
3577
|
+
['setRadius'](k) {
|
|
3578
|
+
const cJ = q, H = this['options'] = StzUtils['coalesce'](this['options'], {});
|
|
3579
|
+
return H[cJ(0x162)] = k, this;
|
|
3580
|
+
}
|
|
3581
|
+
['setBorderWidth'](k, H) {
|
|
3582
|
+
const cD = q;
|
|
3583
|
+
return this['datasets'] && this['datasets'][k] && (this['datasets'][k][cD(0x88)] = H), this;
|
|
3584
|
+
}
|
|
3585
|
+
['setAllBorderWidth'](k) {
|
|
3586
|
+
return this['datasets'] && this['datasets']['forEach'](H => {
|
|
3587
|
+
H['borderWidth'] = k;
|
|
3588
|
+
}), this;
|
|
3589
|
+
}
|
|
3590
|
+
['setBorderColor'](k, H) {
|
|
3591
|
+
return this['datasets'] && this['datasets'][k] && (this['datasets'][k]['borderColor'] = H), this;
|
|
3592
|
+
}
|
|
3593
|
+
['setAllBorderColor'](k) {
|
|
3594
|
+
const cT = q;
|
|
3595
|
+
return this['datasets'] && this['datasets'][cT(0x1e8)](H => {
|
|
3596
|
+
H['borderColor'] = k;
|
|
3597
|
+
}), this;
|
|
3598
|
+
}
|
|
3599
|
+
[V(0x228)](k, H) {
|
|
3600
|
+
const cF = q, c = {
|
|
3601
|
+
'images': k,
|
|
3602
|
+
'width': H?.['width'] ?? 0x1e,
|
|
3603
|
+
'height': H?.[cF(0x17b)] ?? 0x1e,
|
|
3604
|
+
'backgroundColor': H?.['backgroundColor'] ?? cF(0xff),
|
|
3605
|
+
'borderRadius': H?.['borderRadius']
|
|
3606
|
+
};
|
|
3607
|
+
return !c[cF(0xac)] && (c['borderRadius'] = c['width'] / 0x2), this[cF(0x84)](segmentImagePlugin(c), !![]), this;
|
|
3608
|
+
}
|
|
3609
|
+
}
|
|
3610
|
+
class DoughnutChart extends ArcChart {
|
|
3611
|
+
constructor(k, H, c, a, X) {
|
|
3612
|
+
const p = createDefaultDoughnutOptions(a);
|
|
3613
|
+
super(k, H, c, p, X);
|
|
3614
|
+
}
|
|
3615
|
+
['requireLabels']() {
|
|
3616
|
+
return !![];
|
|
3617
|
+
}
|
|
3618
|
+
[V(0x26e)](k) {
|
|
3619
|
+
return super['build'](k);
|
|
3620
|
+
}
|
|
3621
|
+
[V(0x1fa)](k) {
|
|
3622
|
+
return super['setCutout'](k);
|
|
3623
|
+
}
|
|
3624
|
+
[V(0x121)]() {
|
|
3625
|
+
return this['setCutout'](0x0);
|
|
3626
|
+
}
|
|
3627
|
+
[V(0x20f)](k) {
|
|
3628
|
+
const cb = q;
|
|
3629
|
+
return this['datasets'] && this['datasets'][0x0] && (this[cb(0x247)][0x0][cb(0x20d)] = k), this;
|
|
3630
|
+
}
|
|
3631
|
+
['setSegmentOffset'](k, H) {
|
|
3632
|
+
const y0 = q;
|
|
3633
|
+
return this[y0(0x247)] && this['datasets'][0x0] && (!StzUtils['isArray'](this[y0(0x247)][0x0]['offset']) && (this['datasets'][0x0]['offset'] = new Array(this[y0(0x247)][0x0]['data']?.['length'] || 0x0)[y0(0x1a4)](0x0)), this[y0(0x247)][0x0]['offset'][k] = H), this;
|
|
3634
|
+
}
|
|
3635
|
+
['setRotation'](k) {
|
|
3636
|
+
return super['setRotation'](k);
|
|
3637
|
+
}
|
|
3638
|
+
[V(0x277)](k) {
|
|
3639
|
+
return super['setCircumference'](k);
|
|
3640
|
+
}
|
|
3641
|
+
['setRadius'](k) {
|
|
3642
|
+
const y1 = q;
|
|
3643
|
+
return super[y1(0x1b5)](k);
|
|
3644
|
+
}
|
|
3645
|
+
['setAllBorderWidth'](k) {
|
|
3646
|
+
const y2 = q;
|
|
3647
|
+
return super[y2(0x1bf)](k);
|
|
3648
|
+
}
|
|
3649
|
+
[V(0x23b)](k) {
|
|
3650
|
+
const y3 = q;
|
|
3651
|
+
return super[y3(0x23b)](k);
|
|
3652
|
+
}
|
|
3653
|
+
['setCenterText'](k) {
|
|
3654
|
+
return this['setPlugin'](doughnutCenterTextPlugin(k)), this;
|
|
3655
|
+
}
|
|
3656
|
+
}
|
|
3657
|
+
class PieChart extends ArcChart {
|
|
3658
|
+
constructor(k, H, c, a, X) {
|
|
3659
|
+
const p = createDefaultPieOptions(a);
|
|
3660
|
+
super(k, H, c, p, X);
|
|
3661
|
+
}
|
|
3662
|
+
['requireLabels']() {
|
|
3663
|
+
return !![];
|
|
3664
|
+
}
|
|
3665
|
+
['makeConfig'](k) {
|
|
3666
|
+
return super['build'](k);
|
|
3667
|
+
}
|
|
3668
|
+
['setSegmentColors'](k) {
|
|
3669
|
+
const y4 = q;
|
|
3670
|
+
return this[y4(0x247)] && this[y4(0x247)][0x0] && (this['datasets'][0x0][y4(0x20d)] = k), this;
|
|
3671
|
+
}
|
|
3672
|
+
['setSegmentOffset'](k, H) {
|
|
3673
|
+
const y5 = q;
|
|
3674
|
+
return this['datasets'] && this['datasets'][0x0] && (!StzUtils['isArray'](this[y5(0x247)][0x0]['offset']) && (this['datasets'][0x0]['offset'] = new Array(this[y5(0x247)][0x0][y5(0x102)]?.[y5(0x21f)] || 0x0)['fill'](0x0)), this['datasets'][0x0][y5(0x9d)][k] = H), this;
|
|
3675
|
+
}
|
|
3676
|
+
['setRotation'](k) {
|
|
3677
|
+
const y6 = q;
|
|
3678
|
+
return super[y6(0x236)](k);
|
|
3679
|
+
}
|
|
3680
|
+
[V(0x277)](k) {
|
|
3681
|
+
return super['setCircumference'](k);
|
|
3682
|
+
}
|
|
3683
|
+
['setRadius'](k) {
|
|
3684
|
+
return super['setRadius'](k);
|
|
3685
|
+
}
|
|
3686
|
+
['setAllBorderWidth'](k) {
|
|
3687
|
+
return super['setAllBorderWidth'](k);
|
|
3688
|
+
}
|
|
3689
|
+
['setAllBorderColor'](k) {
|
|
3690
|
+
const y7 = q;
|
|
3691
|
+
return super[y7(0x23b)](k);
|
|
3692
|
+
}
|
|
3693
|
+
['setHalfPieTop']() {
|
|
3694
|
+
return this['setRotation'](-0x5a), this['setCircumference'](0xb4), this;
|
|
3695
|
+
}
|
|
3696
|
+
['setHalfPieBottom']() {
|
|
3697
|
+
return this['setRotation'](0x5a), this['setCircumference'](0xb4), this;
|
|
3698
|
+
}
|
|
3699
|
+
['setHalfPieLeft']() {
|
|
3700
|
+
return this['setRotation'](0xb4), this['setCircumference'](0xb4), this;
|
|
3701
|
+
}
|
|
3702
|
+
[V(0x235)]() {
|
|
3703
|
+
return this['setRotation'](0x0), this['setCircumference'](0xb4), this;
|
|
3704
|
+
}
|
|
3705
|
+
[V(0xb9)](k = 0xa) {
|
|
3706
|
+
const y8 = q;
|
|
3707
|
+
if (this['datasets'] && this['datasets'][0x0] && this['datasets'][0x0]['data']) {
|
|
3708
|
+
const H = this['datasets'][0x0]['data'], c = H['indexOf'](Math[y8(0x15b)](...H));
|
|
3709
|
+
this['setSegmentOffset'](c, k);
|
|
3710
|
+
}
|
|
3711
|
+
return this;
|
|
3712
|
+
}
|
|
3713
|
+
['highlightMinSegment'](k = 0xa) {
|
|
3714
|
+
const y9 = q;
|
|
3715
|
+
if (this['datasets'] && this['datasets'][0x0] && this['datasets'][0x0]['data']) {
|
|
3716
|
+
const H = this['datasets'][0x0]['data'], c = H['indexOf'](Math['min'](...H));
|
|
3717
|
+
this[y9(0x24b)](c, k);
|
|
3718
|
+
}
|
|
3719
|
+
return this;
|
|
3720
|
+
}
|
|
3721
|
+
['setAllSegmentOffsets'](k) {
|
|
3722
|
+
const yi = q;
|
|
3723
|
+
if (this['datasets'] && this[yi(0x247)][0x0] && this['datasets'][0x0]['data']) {
|
|
3724
|
+
const H = this[yi(0x247)][0x0]['data']['length'];
|
|
3725
|
+
if (StzUtils[yi(0xa9)](k))
|
|
3726
|
+
this['datasets'][0x0]['offset'] = new Array(H)['fill'](k);
|
|
3727
|
+
else
|
|
3728
|
+
StzUtils['isArray'](k) && (this['datasets'][0x0]['offset'] = k['slice'](0x0, H));
|
|
3729
|
+
}
|
|
3730
|
+
return this;
|
|
3731
|
+
}
|
|
3732
|
+
[V(0x1d7)](k, H) {
|
|
3733
|
+
const yq = q;
|
|
3734
|
+
if (this['datasets'] && this['datasets'][0x0] && this['datasets'][0x0]['data']) {
|
|
3735
|
+
const c = this[yq(0x247)][0x0][yq(0x102)]['length'], a = this[yq(0x149)](k, H, c);
|
|
3736
|
+
this['setSegmentColors'](a);
|
|
3737
|
+
}
|
|
3738
|
+
return this;
|
|
3739
|
+
}
|
|
3740
|
+
['setSegmentColorWhere'](k, H) {
|
|
3741
|
+
const yk = q;
|
|
3742
|
+
if (this['datasets'] && this['datasets'][0x0] && this[yk(0x247)][0x0]['data']) {
|
|
3743
|
+
const c = this['datasets'][0x0][yk(0x102)], a = this[yk(0x247)][0x0]['backgroundColor'] || [];
|
|
3744
|
+
c[yk(0x1e8)]((X, p) => {
|
|
3745
|
+
k(X, p) && (a[p] = H);
|
|
3746
|
+
}), this['datasets'][0x0]['backgroundColor'] = a;
|
|
3747
|
+
}
|
|
3748
|
+
return this;
|
|
3749
|
+
}
|
|
3750
|
+
['hexToRgb'](k) {
|
|
3751
|
+
const yH = q, H = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i[yH(0x13f)](k);
|
|
3752
|
+
return H ? {
|
|
3753
|
+
'r': parseInt(H[0x1], 0x10),
|
|
3754
|
+
'g': parseInt(H[0x2], 0x10),
|
|
3755
|
+
'b': parseInt(H[0x3], 0x10)
|
|
3756
|
+
} : null;
|
|
3757
|
+
}
|
|
3758
|
+
['rgbToHex'](k, H, c) {
|
|
3759
|
+
const yc = q;
|
|
3760
|
+
return '#' + [
|
|
3761
|
+
k,
|
|
3762
|
+
H,
|
|
3763
|
+
c
|
|
3764
|
+
][yc(0x241)](a => Math[yc(0x12d)](a)['toString'](0x10)[yc(0x18a)](0x2, '0'))[yc(0x20e)]('');
|
|
3765
|
+
}
|
|
3766
|
+
[V(0x149)](k, H, c) {
|
|
3767
|
+
const yy = q, a = this[yy(0x237)](k), X = this[yy(0x237)](H);
|
|
3768
|
+
if (!a || !X)
|
|
3769
|
+
return [];
|
|
3770
|
+
const p = [];
|
|
3771
|
+
for (let d = 0x0; d < c; d++) {
|
|
3772
|
+
const Q = d / (c - 0x1), s = a['r'] + (X['r'] - a['r']) * Q, m = a['g'] + (X['g'] - a['g']) * Q, z = a['b'] + (X['b'] - a['b']) * Q;
|
|
3773
|
+
p[yy(0x185)](this[yy(0x271)](s, m, z));
|
|
3774
|
+
}
|
|
3775
|
+
return p;
|
|
3776
|
+
}
|
|
3777
|
+
}
|
|
3778
|
+
class TreemapChart extends Chart {
|
|
3779
|
+
['_chartId'];
|
|
3780
|
+
constructor(k, H, c, a, X) {
|
|
3781
|
+
const p = createDefaultTreemapOptions(a);
|
|
3782
|
+
super(k, undefined, c, p, X);
|
|
3783
|
+
}
|
|
3784
|
+
get [V(0x1ec)]() {
|
|
3785
|
+
const ya = q;
|
|
3786
|
+
return !this['_chartId'] && (this['_chartId'] = ya(0x87) + Math['random']()), this['_chartId'];
|
|
3787
|
+
}
|
|
3788
|
+
set ['chartId'](k) {
|
|
3789
|
+
const yX = q;
|
|
3790
|
+
this[yX(0xe3)] = k, this[yX(0xb7)] && (this['options']['_chartId'] = k);
|
|
3791
|
+
}
|
|
3792
|
+
['normalize']() {
|
|
3793
|
+
}
|
|
3794
|
+
[V(0x1ba)]() {
|
|
3795
|
+
return [chartMountPlugin];
|
|
3796
|
+
}
|
|
3797
|
+
['resolveMustHavePlugins'](k) {
|
|
3798
|
+
const yp = q, H = [...this[yp(0x1ba)]()];
|
|
3799
|
+
return StzUtils['isString'](k?.['_noDataText']) && H['push'](noDataPlugin), H;
|
|
3800
|
+
}
|
|
3801
|
+
['configAop'](k) {
|
|
3802
|
+
const H = {
|
|
3803
|
+
'get': (c, a, X) => {
|
|
3804
|
+
const yd = q;
|
|
3805
|
+
if (a === 'data') {
|
|
3806
|
+
const p = c['data'];
|
|
3807
|
+
p?.['labels'] && StzUtils['isArray'](p['labels']) && p['labels'][yd(0x21f)] > 0x0 && CustomError['shield'](ErrorCode['LABELS_NOT_SUPPORTED']);
|
|
3808
|
+
}
|
|
3809
|
+
return Reflect['get'](c, a, X);
|
|
3810
|
+
}
|
|
3811
|
+
};
|
|
3812
|
+
return new Proxy(k, H);
|
|
3813
|
+
}
|
|
3814
|
+
['build'](k) {
|
|
3815
|
+
const yQ = q;
|
|
3816
|
+
this['normalize']();
|
|
3817
|
+
const H = k || 'treemap_' + Math[yQ(0xc3)]();
|
|
3818
|
+
this['_chartId'] = H;
|
|
3819
|
+
const c = this['cloneValue'](this[yQ(0xb7)]), a = {
|
|
3820
|
+
'_chartId': H,
|
|
3821
|
+
'type': this['type'],
|
|
3822
|
+
'data': { 'datasets': this['cloneValue'](this[yQ(0x247)]) },
|
|
3823
|
+
'options': {
|
|
3824
|
+
...c,
|
|
3825
|
+
'_chartId': H,
|
|
3826
|
+
'plugins': {
|
|
3827
|
+
...c?.['plugins'],
|
|
3828
|
+
'legend': {
|
|
3829
|
+
...c?.[yQ(0x1dc)]?.['legend'] ?? {},
|
|
3830
|
+
'display': ![]
|
|
3831
|
+
}
|
|
3832
|
+
}
|
|
3833
|
+
},
|
|
3834
|
+
'plugins': this['mergePlugins'](this['clonePlugins'](this['plugins']), this['resolveMustHavePlugins'](c))
|
|
3835
|
+
};
|
|
3836
|
+
return {
|
|
3837
|
+
'_chartId': a[yQ(0xe3)],
|
|
3838
|
+
'type': a[yQ(0x227)],
|
|
3839
|
+
'datasetIdKey': '_uid',
|
|
3840
|
+
'data': a['data'],
|
|
3841
|
+
'options': a['options'],
|
|
3842
|
+
'plugins': a['plugins']
|
|
3843
|
+
};
|
|
3844
|
+
}
|
|
3845
|
+
['setTreeData'](k) {
|
|
3846
|
+
const ys = q;
|
|
3847
|
+
if (this['datasets'] && this[ys(0x247)][0x0]) {
|
|
3848
|
+
const H = this['datasets'][0x0];
|
|
3849
|
+
H['tree'] = k;
|
|
3850
|
+
}
|
|
3851
|
+
return this;
|
|
3852
|
+
}
|
|
3853
|
+
['setColorKey'](k) {
|
|
3854
|
+
const ym = q;
|
|
3855
|
+
if (this['datasets'] && this[ym(0x247)][0x0]) {
|
|
3856
|
+
const H = this[ym(0x247)][0x0];
|
|
3857
|
+
H['key'] = k;
|
|
3858
|
+
}
|
|
3859
|
+
return this;
|
|
3860
|
+
}
|
|
3861
|
+
['setLabelKey'](k) {
|
|
3862
|
+
const yz = q;
|
|
3863
|
+
if (this['datasets'] && this[yz(0x247)][0x0]) {
|
|
3864
|
+
const H = this['datasets'][0x0];
|
|
3865
|
+
H['labels'] = {
|
|
3866
|
+
'display': !![],
|
|
3867
|
+
'formatter': c => c['raw']['_data'][k]
|
|
3868
|
+
};
|
|
3869
|
+
}
|
|
3870
|
+
return this;
|
|
3871
|
+
}
|
|
3872
|
+
[V(0xf9)](k) {
|
|
3873
|
+
const yr = q;
|
|
3874
|
+
if (this['datasets'] && this['datasets'][0x0]) {
|
|
3875
|
+
const H = this['datasets'][0x0];
|
|
3876
|
+
H[yr(0x122)] = k;
|
|
3877
|
+
}
|
|
3878
|
+
return this;
|
|
3879
|
+
}
|
|
3880
|
+
['setSpacing'](k) {
|
|
3881
|
+
const yZ = q;
|
|
3882
|
+
if (this[yZ(0x247)] && this['datasets'][0x0]) {
|
|
3883
|
+
const H = this['datasets'][0x0];
|
|
3884
|
+
H[yZ(0x11f)] = k;
|
|
3885
|
+
}
|
|
3886
|
+
return this;
|
|
3887
|
+
}
|
|
3888
|
+
['setBorderWidth'](k) {
|
|
3889
|
+
const yg = q;
|
|
3890
|
+
if (this['datasets'] && this['datasets'][0x0]) {
|
|
3891
|
+
const H = this['datasets'][0x0];
|
|
3892
|
+
H[yg(0x88)] = k;
|
|
3893
|
+
}
|
|
3894
|
+
return this;
|
|
3895
|
+
}
|
|
3896
|
+
['setBorderColor'](k) {
|
|
3897
|
+
const yB = q;
|
|
3898
|
+
if (this[yB(0x247)] && this[yB(0x247)][0x0]) {
|
|
3899
|
+
const H = this['datasets'][0x0];
|
|
3900
|
+
H['borderColor'] = k;
|
|
3901
|
+
}
|
|
3902
|
+
return this;
|
|
3903
|
+
}
|
|
3904
|
+
}
|
|
3905
|
+
var ChartTypes;
|
|
3906
|
+
(function (ChartTypes) {
|
|
3907
|
+
const yA = q;
|
|
3908
|
+
ChartTypes['BAR'] = 'bar', ChartTypes['LINE'] = 'line', ChartTypes[yA(0x1e3)] = 'doughnut', ChartTypes[yA(0xd2)] = yA(0x129), ChartTypes['RADAR'] = 'radar', ChartTypes['BUBBLE'] = 'bubble', ChartTypes['SCATTER'] = 'scatter', ChartTypes['TREEMAP'] = 'treemap';
|
|
3909
|
+
}(ChartTypes || (ChartTypes = {})));
|
|
3910
|
+
var Types = Object['freeze']({ '__proto__': null });
|
|
3911
|
+
function q(k, H) {
|
|
3912
|
+
const c = i();
|
|
3913
|
+
return q = function (y, a) {
|
|
3914
|
+
y = y - 0x81;
|
|
3915
|
+
let X = c[y];
|
|
3916
|
+
return X;
|
|
3917
|
+
}, q(k, H);
|
|
3918
|
+
}
|
|
3919
|
+
const OVERLAY_ATTRIBUTE = 'data-stz-spinner-overlay-for';
|
|
3920
|
+
function toSpinnerOverlayConfig(k) {
|
|
3921
|
+
if (k === ![] || k == null)
|
|
3922
|
+
return undefined;
|
|
3923
|
+
if (k === !![])
|
|
3924
|
+
return { 'enabled': !![] };
|
|
3925
|
+
if (k['enabled'] === ![])
|
|
3926
|
+
return undefined;
|
|
3927
|
+
return {
|
|
3928
|
+
'enabled': !![],
|
|
3929
|
+
...k
|
|
3930
|
+
};
|
|
3931
|
+
}
|
|
3932
|
+
function resolveSpinnerOverlay(k, H) {
|
|
3933
|
+
const yR = q, c = typeof k !== yR(0x25b);
|
|
3934
|
+
return toSpinnerOverlayConfig(c ? k : H);
|
|
3935
|
+
}
|
|
3936
|
+
function wait(k) {
|
|
3937
|
+
return new Promise(H => globalThis['setTimeout'](H, k));
|
|
3938
|
+
}
|
|
3939
|
+
function waitForNextPaint() {
|
|
3940
|
+
return new Promise(k => {
|
|
3941
|
+
const yN = q, H = globalThis[yN(0xee)] || (c => globalThis['setTimeout'](() => c(Date[yN(0xf0)]()), 0x10));
|
|
3942
|
+
H(() => H(() => k()));
|
|
3943
|
+
});
|
|
3944
|
+
}
|
|
3945
|
+
function resolveChartId(k) {
|
|
3946
|
+
const H = k['_chartId'] || k['options']?.['_chartId'];
|
|
3947
|
+
if (!H)
|
|
3948
|
+
throw new Error('mountChart\x20requires\x20a\x20stable\x20chart\x20id.\x20Call\x20build(\x22chart-id\x22)\x20first.');
|
|
3949
|
+
return H;
|
|
3950
|
+
}
|
|
3951
|
+
function resolveCanvas(k) {
|
|
3952
|
+
const yI = q, H = document[yI(0x1bd)](k);
|
|
3953
|
+
if (!(H instanceof HTMLCanvasElement))
|
|
3954
|
+
throw new Error('mountChart\x20could\x20not\x20find\x20a\x20canvas\x20element\x20with\x20id\x20\x22' + k + '\x22.');
|
|
3955
|
+
return H;
|
|
3956
|
+
}
|
|
3957
|
+
function i() {
|
|
3958
|
+
const yY = [
|
|
3959
|
+
'772346TiDXDV',
|
|
3960
|
+
'doughnut',
|
|
3961
|
+
'setFill',
|
|
3962
|
+
'pop',
|
|
3963
|
+
'_ds_',
|
|
3964
|
+
'setGradientColors',
|
|
3965
|
+
'config',
|
|
3966
|
+
'arc',
|
|
3967
|
+
'legendItems',
|
|
3968
|
+
'Value:\x20',
|
|
3969
|
+
'plugins',
|
|
3970
|
+
'isCartesianChartType',
|
|
3971
|
+
'toLowerCase',
|
|
3972
|
+
'INVALID_BAR_PERCENTAGE',
|
|
3973
|
+
'click',
|
|
3974
|
+
'parsing',
|
|
3975
|
+
'Invalid\x20rgb\x20color',
|
|
3976
|
+
'DOUGHNUT',
|
|
3977
|
+
'CHART_TYPE_REQUIRED',
|
|
3978
|
+
'getDatasetByTarget',
|
|
3979
|
+
'dataset',
|
|
3980
|
+
'toString',
|
|
3981
|
+
'forEach',
|
|
3982
|
+
'register',
|
|
3983
|
+
'getDataset',
|
|
3984
|
+
'errorLogging',
|
|
3985
|
+
'chartId',
|
|
3986
|
+
'removeEventListener',
|
|
3987
|
+
'querySelector',
|
|
3988
|
+
'#FF9500',
|
|
3989
|
+
'linear',
|
|
3990
|
+
'1256976wqHTNH',
|
|
3991
|
+
'getColorType',
|
|
3992
|
+
'442570zKwUsr',
|
|
3993
|
+
'CHART_ALREADY_INITIALIZED',
|
|
3994
|
+
'truncate',
|
|
3995
|
+
'barPercentage',
|
|
3996
|
+
'image',
|
|
3997
|
+
'findIndex',
|
|
3998
|
+
'suggestedMin',
|
|
3999
|
+
'setCutout',
|
|
4000
|
+
'Axis\x20\x22',
|
|
4001
|
+
'warn',
|
|
4002
|
+
'</span><span\x20class=\x22text-white\x22>/</span>',
|
|
4003
|
+
'relative',
|
|
4004
|
+
'value',
|
|
4005
|
+
'GRADIENT_COLOR_STEP_MISMATCH',
|
|
4006
|
+
'isBlank',
|
|
4007
|
+
'entries',
|
|
4008
|
+
'setMaxBarThickness',
|
|
4009
|
+
'#2563eb',
|
|
4010
|
+
'10295384NInBIs',
|
|
4011
|
+
'then',
|
|
4012
|
+
'Gradient\x20requires\x20at\x20least\x20two\x20steps.',
|
|
4013
|
+
'equalsTrimLowercase',
|
|
4014
|
+
'isObject',
|
|
4015
|
+
'Bar\x20thickness\x20must\x20be\x20a\x20positive\x20number.',
|
|
4016
|
+
'setDatasetStyle',
|
|
4017
|
+
'getTime',
|
|
4018
|
+
'backgroundColor',
|
|
4019
|
+
'join',
|
|
4020
|
+
'setSegmentColors',
|
|
4021
|
+
'),\x20크기:\x20',
|
|
4022
|
+
'PLUGIN_ALREADY_EXISTS',
|
|
4023
|
+
'parse',
|
|
4024
|
+
'find',
|
|
4025
|
+
'customDatasetPlugins',
|
|
4026
|
+
'freeze',
|
|
4027
|
+
'image/',
|
|
4028
|
+
'event',
|
|
4029
|
+
'IMAGE_PROPERTY_MISSING',
|
|
4030
|
+
'CHART_INSTANCE_NOT_FOUND',
|
|
4031
|
+
'weekendLine',
|
|
4032
|
+
'getType',
|
|
4033
|
+
'replace',
|
|
4034
|
+
'lineTo',
|
|
4035
|
+
'vertical',
|
|
4036
|
+
'length',
|
|
4037
|
+
'assign',
|
|
4038
|
+
'isValidBirthDate',
|
|
4039
|
+
'rgb(26,110,255)',
|
|
4040
|
+
'getLocalStorageByKey',
|
|
4041
|
+
'timeseries',
|
|
4042
|
+
'setData',
|
|
4043
|
+
'readValueByPath',
|
|
4044
|
+
'type',
|
|
4045
|
+
'setSegmentImages',
|
|
4046
|
+
'_originalGenerateLabels',
|
|
4047
|
+
'innerHTML',
|
|
4048
|
+
'_groupLabel',
|
|
4049
|
+
'error',
|
|
4050
|
+
'^[0-9]{',
|
|
4051
|
+
'isStrongPasswordLevel',
|
|
4052
|
+
'innerWidth',
|
|
4053
|
+
'zoomLimits',
|
|
4054
|
+
'INVALID_CHART_TYPE',
|
|
4055
|
+
'hidden',
|
|
4056
|
+
'isValidEmail',
|
|
4057
|
+
'zIndex',
|
|
4058
|
+
'setHalfPieRight',
|
|
4059
|
+
'setRotation',
|
|
4060
|
+
'hexToRgb',
|
|
4061
|
+
'isUndefined',
|
|
4062
|
+
'normalizeLimitValue',
|
|
4063
|
+
'isBoolean',
|
|
4064
|
+
'setAllBorderColor',
|
|
4065
|
+
'\x0a\x09\x09\x09@keyframes\x20stz-spinner-overlay-spin\x20{\x0a\x09\x09\x09\x09from\x20{\x20transform:\x20rotate(0deg);\x20}\x0a\x09\x09\x09\x09to\x20{\x20transform:\x20rotate(360deg);\x20}\x0a\x09\x09\x09}\x0a\x09\x09',
|
|
4066
|
+
'appendChild',
|
|
4067
|
+
'_visible',
|
|
4068
|
+
'realtime',
|
|
4069
|
+
'^[a-zA-Z0-9_]+$',
|
|
4070
|
+
'map',
|
|
4071
|
+
'removeZoomResetPlugin',
|
|
4072
|
+
'setBackgroundAlpha',
|
|
4073
|
+
'isEqual',
|
|
4074
|
+
'_centerTextDiv',
|
|
4075
|
+
'roundRect',
|
|
4076
|
+
'datasets',
|
|
4077
|
+
'merge',
|
|
4078
|
+
'It\x27s\x20not\x20a\x20time\x20scale.',
|
|
4079
|
+
'Dataset\x20at\x20index\x20',
|
|
4080
|
+
'setSegmentOffset',
|
|
4081
|
+
'highlightThresholdPlugin',
|
|
4082
|
+
'_toggleBehavior',
|
|
4083
|
+
'__proto__',
|
|
4084
|
+
'match',
|
|
4085
|
+
'_groupDatasets',
|
|
4086
|
+
'NOT_SUPPORTED_OPTION',
|
|
4087
|
+
'circumference',
|
|
4088
|
+
'mountChart\x20for\x20\x22',
|
|
4089
|
+
'maintainAspectRatio',
|
|
4090
|
+
'div',
|
|
4091
|
+
'zoom',
|
|
4092
|
+
'LABELS_REQUIRED',
|
|
4093
|
+
'resize',
|
|
4094
|
+
'setBarPercentage',
|
|
4095
|
+
'\x20not\x20support\x20scales\x20position\x20',
|
|
4096
|
+
'undefined',
|
|
4097
|
+
'#5856D6',
|
|
4098
|
+
'string',
|
|
4099
|
+
'_legendTooltipHandlers',
|
|
4100
|
+
'NOT_FOUND_DATASET',
|
|
4101
|
+
'chartArea',
|
|
4102
|
+
'OPTIONS_REQUIRED',
|
|
4103
|
+
'Object\x20does\x20not\x20have\x20PROPERTY',
|
|
4104
|
+
'lineWidth',
|
|
4105
|
+
'block',
|
|
4106
|
+
'getItem',
|
|
4107
|
+
'_settingMoveHandler',
|
|
4108
|
+
'iconSize',
|
|
4109
|
+
'273dXZdgk',
|
|
4110
|
+
'isObj',
|
|
4111
|
+
'display',
|
|
4112
|
+
'day',
|
|
4113
|
+
'calculateGradientPositions',
|
|
4114
|
+
'DATASET_IDENTIFIER_NOT_FOUND',
|
|
4115
|
+
'makeConfig',
|
|
4116
|
+
'yopmail.com',
|
|
4117
|
+
'_mounted',
|
|
4118
|
+
'rgbToHex',
|
|
4119
|
+
'_resolveLegendDatasetIndex',
|
|
4120
|
+
'circlePosition',
|
|
4121
|
+
'ctx',
|
|
4122
|
+
'4px\x208px',
|
|
4123
|
+
'bottom',
|
|
4124
|
+
'setCircumference',
|
|
4125
|
+
'top',
|
|
4126
|
+
'beginPath',
|
|
4127
|
+
'status',
|
|
4128
|
+
'clonePlugins',
|
|
4129
|
+
'setPlugin',
|
|
4130
|
+
'scales',
|
|
4131
|
+
'isFunction',
|
|
4132
|
+
'treemap_',
|
|
4133
|
+
'borderWidth',
|
|
4134
|
+
'_datasets',
|
|
4135
|
+
'save',
|
|
4136
|
+
'^(19|20)\x5cd{2}(0[1-9]|1[0-2])(0[1-9]|[12]\x5cd|3[01])$',
|
|
4137
|
+
'adapters',
|
|
4138
|
+
'origin',
|
|
4139
|
+
'box',
|
|
4140
|
+
'fillStyle',
|
|
4141
|
+
'destroy',
|
|
4142
|
+
'maskPassword',
|
|
4143
|
+
'coalesce',
|
|
4144
|
+
'imageCache',
|
|
4145
|
+
'grid',
|
|
4146
|
+
'spinnerStyle',
|
|
4147
|
+
'mouseup',
|
|
4148
|
+
'Object',
|
|
4149
|
+
'rgb(',
|
|
4150
|
+
'^[^\x5cs@]+@[^\x5cs@]+\x5c.[^\x5cs@]+$',
|
|
4151
|
+
'textDecoration',
|
|
4152
|
+
'min',
|
|
4153
|
+
'ensureZoomResetPlugin',
|
|
4154
|
+
'offset',
|
|
4155
|
+
'cloneValue',
|
|
4156
|
+
'stz-spinner-overlay-style',
|
|
4157
|
+
'#36A2EB',
|
|
4158
|
+
'918ZVTsdQ',
|
|
4159
|
+
'spinnerOverlay',
|
|
4160
|
+
'intersect',
|
|
4161
|
+
'12px',
|
|
4162
|
+
'INVALID_BAR_THICKNESS',
|
|
4163
|
+
'https://',
|
|
4164
|
+
'spinnerClassName',
|
|
4165
|
+
'getPrototypeOf',
|
|
4166
|
+
'isNumber',
|
|
4167
|
+
'filter',
|
|
4168
|
+
'isZoomedOrPanned',
|
|
4169
|
+
'borderRadius',
|
|
4170
|
+
'isPasswordConfirmed',
|
|
4171
|
+
'restore',
|
|
4172
|
+
'onClick',
|
|
4173
|
+
'_showTooltip',
|
|
4174
|
+
'1HbhxOo',
|
|
4175
|
+
'setDatasetParsing',
|
|
4176
|
+
'getValueForPixel',
|
|
4177
|
+
'UNKNOWN_ERROR',
|
|
4178
|
+
'requireLabels',
|
|
4179
|
+
'removeGradient',
|
|
4180
|
+
'options',
|
|
4181
|
+
'setAllBubbleDataRadius',
|
|
4182
|
+
'highlightMaxSegment',
|
|
4183
|
+
'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>',
|
|
4184
|
+
'var',
|
|
4185
|
+
'clear',
|
|
4186
|
+
'position',
|
|
4187
|
+
'categoryPercentage',
|
|
4188
|
+
'setAllDatasetStyle',
|
|
4189
|
+
'split',
|
|
4190
|
+
'unknown',
|
|
4191
|
+
'isBar',
|
|
4192
|
+
'random',
|
|
4193
|
+
'_loadingActive',
|
|
4194
|
+
'yes',
|
|
4195
|
+
'INVALID_AXIS_KEY',
|
|
4196
|
+
'customLegend',
|
|
4197
|
+
'21772jEpvab',
|
|
4198
|
+
'drawImage',
|
|
4199
|
+
'setAllRotation',
|
|
4200
|
+
'_tooltips',
|
|
4201
|
+
'none',
|
|
4202
|
+
'clientX',
|
|
4203
|
+
'isDatasetVisible',
|
|
4204
|
+
'textBaseline',
|
|
4205
|
+
'revokeObjectURL',
|
|
4206
|
+
'PARAMETER_TYPE_MISMATCH',
|
|
4207
|
+
'PIE',
|
|
4208
|
+
'Dataset\x20',
|
|
4209
|
+
'body',
|
|
4210
|
+
'isArr',
|
|
4211
|
+
'DATASET_REQUIRED',
|
|
4212
|
+
'textClassName',
|
|
4213
|
+
'toSnakeCase',
|
|
4214
|
+
'setHours',
|
|
4215
|
+
':\x20Invalid\x20date\x20format.\x20Expected\x20yyyy-mm-dd,\x20got:\x20',
|
|
4216
|
+
'toUpperCase',
|
|
4217
|
+
'maildrop.cc',
|
|
4218
|
+
'unregister',
|
|
4219
|
+
'setDatasetVisible',
|
|
4220
|
+
'_noDataAct',
|
|
4221
|
+
'setParsingKey',
|
|
4222
|
+
'T$settingImg',
|
|
4223
|
+
'innerText',
|
|
4224
|
+
'_chartId',
|
|
4225
|
+
'_legendOrder',
|
|
4226
|
+
'textStyle',
|
|
4227
|
+
'isFalsy',
|
|
4228
|
+
'Null',
|
|
4229
|
+
'rgbaToHex',
|
|
4230
|
+
'groupLabel',
|
|
4231
|
+
'Cannot\x20remove\x20a\x20non-existing\x20plugin.',
|
|
4232
|
+
'setYAxisID',
|
|
4233
|
+
'_pt_',
|
|
4234
|
+
'toDataURL',
|
|
4235
|
+
'requestAnimationFrame',
|
|
4236
|
+
'borderColor',
|
|
4237
|
+
'now',
|
|
4238
|
+
'legendHitBoxes',
|
|
4239
|
+
'Invalid\x20rgba\x20color',
|
|
4240
|
+
'legend',
|
|
4241
|
+
'labels',
|
|
4242
|
+
'hasPlugin',
|
|
4243
|
+
'firstIndex',
|
|
4244
|
+
'raw',
|
|
4245
|
+
'silentMode',
|
|
4246
|
+
'setValueKey',
|
|
4247
|
+
'spinnerTrackColor',
|
|
4248
|
+
'convertNullToZero',
|
|
4249
|
+
'Invalid\x20hex\x20color\x20format',
|
|
4250
|
+
'setAllCategoryPercentage',
|
|
4251
|
+
'ScalesImage-',
|
|
4252
|
+
'white',
|
|
4253
|
+
'normalize',
|
|
4254
|
+
'_mountedCalled',
|
|
4255
|
+
'data',
|
|
4256
|
+
'setLineDash',
|
|
4257
|
+
'requireDatasets',
|
|
4258
|
+
'root',
|
|
4259
|
+
'%</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20',
|
|
4260
|
+
'setPointHoverRadius',
|
|
4261
|
+
'PLUGIN_REMOVE_FAILED',
|
|
4262
|
+
'resolveDatasetIndex',
|
|
4263
|
+
'category',
|
|
4264
|
+
'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22text-white\x22>/</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',
|
|
4265
|
+
'INVALID_DATA_STRUCTURE',
|
|
4266
|
+
'text',
|
|
4267
|
+
'build',
|
|
4268
|
+
'get',
|
|
4269
|
+
'rgba(37,\x2099,\x20235,\x200.18)',
|
|
4270
|
+
'T$settingBtnCircle',
|
|
4271
|
+
'rgba(255,\x20255,\x20255,\x200.88)',
|
|
4272
|
+
'includes',
|
|
4273
|
+
'original',
|
|
4274
|
+
'containerID',
|
|
4275
|
+
'isValidPhoneNumber',
|
|
4276
|
+
'strokeStyle',
|
|
4277
|
+
'applyGlobalZoomConfig',
|
|
4278
|
+
'\x20is\x20out\x20of\x20bounds',
|
|
4279
|
+
'Table\x20element\x20not\x20found.',
|
|
4280
|
+
'nowrap',
|
|
4281
|
+
'resolveParsingKey',
|
|
4282
|
+
'10minutemail.com',
|
|
4283
|
+
'substring',
|
|
4284
|
+
'spacing',
|
|
4285
|
+
'isString',
|
|
4286
|
+
'convertToPie',
|
|
4287
|
+
'key',
|
|
4288
|
+
'INVALID_TIME_SCALE',
|
|
4289
|
+
'href',
|
|
4290
|
+
'#1d4ed8',
|
|
4291
|
+
'loading',
|
|
4292
|
+
'closePath',
|
|
4293
|
+
'stroke',
|
|
4294
|
+
'pie',
|
|
4295
|
+
'floor',
|
|
4296
|
+
'setGradient',
|
|
4297
|
+
'_loadingPending',
|
|
4298
|
+
'round',
|
|
4299
|
+
'getDatasetMeta',
|
|
4300
|
+
'getChart',
|
|
4301
|
+
'Array',
|
|
4302
|
+
'cloneNode',
|
|
4303
|
+
'EMPTY_REQUIRED_PROPERTY',
|
|
4304
|
+
'getMonth',
|
|
4305
|
+
'order',
|
|
4306
|
+
'center',
|
|
4307
|
+
'Data\x20index\x20',
|
|
4308
|
+
'parentNode',
|
|
4309
|
+
'isDragging',
|
|
4310
|
+
'setBorderRadius',
|
|
4311
|
+
'onResize',
|
|
4312
|
+
'setAxisPosition',
|
|
4313
|
+
'setAllBubbleRadius',
|
|
4314
|
+
'getGroupedDatasetIndexes',
|
|
4315
|
+
'addRangeSlider',
|
|
4316
|
+
'exec',
|
|
4317
|
+
'removeAllGradients',
|
|
4318
|
+
'T$isHover',
|
|
4319
|
+
'slice',
|
|
4320
|
+
'isAllowedLoginId',
|
|
4321
|
+
'bar',
|
|
4322
|
+
'stacked',
|
|
4323
|
+
'NOT_REGISTERED_CHART_TYPE',
|
|
4324
|
+
'addEventListener',
|
|
4325
|
+
'font',
|
|
4326
|
+
'generateGradientColors',
|
|
4327
|
+
'textContent',
|
|
4328
|
+
'setZoom',
|
|
4329
|
+
'INVALID_CATEGORY_PERCENTAGE',
|
|
4330
|
+
'middle',
|
|
4331
|
+
'toFixed',
|
|
4332
|
+
'onerror',
|
|
4333
|
+
'color:\x20orange;',
|
|
4334
|
+
'mask',
|
|
4335
|
+
'3402896ffJGIp',
|
|
4336
|
+
'startsWith',
|
|
4337
|
+
'rgba(',
|
|
4338
|
+
'remove',
|
|
4339
|
+
'responsive',
|
|
4340
|
+
'registry',
|
|
4341
|
+
'setLegend',
|
|
4342
|
+
'localStorage',
|
|
4343
|
+
'isFinite',
|
|
4344
|
+
'max',
|
|
4345
|
+
'fillRect',
|
|
4346
|
+
'_settingClickHandler',
|
|
4347
|
+
'colors',
|
|
4348
|
+
'fontColor',
|
|
4349
|
+
'administrator',
|
|
4350
|
+
'isArray',
|
|
4351
|
+
'radius',
|
|
4352
|
+
'_originalLegendOnClick',
|
|
4353
|
+
'updatePosition',
|
|
4354
|
+
'containsTrimLowercase',
|
|
4355
|
+
'fillText',
|
|
4356
|
+
'canvas',
|
|
4357
|
+
'splice',
|
|
4358
|
+
'_tooltip',
|
|
4359
|
+
'_uid',
|
|
4360
|
+
'isValidPassword',
|
|
4361
|
+
'limits',
|
|
4362
|
+
'shield',
|
|
4363
|
+
'elements',
|
|
4364
|
+
'label',
|
|
4365
|
+
'_isGroupLabel',
|
|
4366
|
+
'omit',
|
|
4367
|
+
'setBorderWidth',
|
|
4368
|
+
')\x20must\x20match\x20steps\x20(',
|
|
4369
|
+
'configAop',
|
|
4370
|
+
'removePlugin',
|
|
4371
|
+
'resolveAutoZoomLimits',
|
|
4372
|
+
'hasOwnProperty',
|
|
4373
|
+
'Invalid\x20chart\x20type.\x20Supported\x20types\x20are\x20bar,\x20line,\x20scatter,\x20bubble,\x20etc.',
|
|
4374
|
+
'clamp',
|
|
4375
|
+
'has',
|
|
4376
|
+
'height',
|
|
4377
|
+
'dispostable.com',
|
|
4378
|
+
'className',
|
|
4379
|
+
'It\x20does\x20not\x20support\x20that\x20option.',
|
|
4380
|
+
'isNullOrUndefined',
|
|
4381
|
+
'rgbaToRgb',
|
|
4382
|
+
'randomInt',
|
|
4383
|
+
'callbacks',
|
|
4384
|
+
'cloneDeep',
|
|
4385
|
+
'rotation',
|
|
4386
|
+
'push',
|
|
4387
|
+
'getData',
|
|
4388
|
+
'padding',
|
|
4389
|
+
'setGrid',
|
|
4390
|
+
'line',
|
|
4391
|
+
'padStart',
|
|
4392
|
+
'right',
|
|
4393
|
+
'setLocalStorageByKey',
|
|
4394
|
+
'cursor',
|
|
4395
|
+
'clip',
|
|
4396
|
+
'toInt',
|
|
4397
|
+
'translate(-50%,\x20-50%)',
|
|
4398
|
+
'disabled',
|
|
4399
|
+
'setDatasetVisibility',
|
|
4400
|
+
'_zoomResetBtnDom',
|
|
4401
|
+
'12945yUcJAu',
|
|
4402
|
+
'createElement',
|
|
4403
|
+
'boolean',
|
|
4404
|
+
'isEmpty',
|
|
4405
|
+
'ticks',
|
|
4406
|
+
'trim',
|
|
4407
|
+
'indexAxis',
|
|
4408
|
+
'T$settingBtnRect',
|
|
4409
|
+
'displayFormats',
|
|
4410
|
+
'_initVisibleComp',
|
|
4411
|
+
'tooltip',
|
|
4412
|
+
'isDisposableEmail',
|
|
4413
|
+
'mousedown',
|
|
4414
|
+
'from',
|
|
4415
|
+
'_group',
|
|
4416
|
+
'toFloat',
|
|
4417
|
+
'fill',
|
|
4418
|
+
'extractParsedPointValue',
|
|
4419
|
+
'GRADIENT_STEP_MINIMUM',
|
|
4420
|
+
'getDate',
|
|
4421
|
+
'PLUGIN_NOT_FOUND',
|
|
4422
|
+
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmNTllMGIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPgogIDxwYXRoIGQ9Ik0xMiA2djZsNCAyIi8+Cjwvc3ZnPg==',
|
|
4423
|
+
'_hideTooltip',
|
|
4424
|
+
'width',
|
|
4425
|
+
'LABELS_NOT_SUPPORTED',
|
|
4426
|
+
'some',
|
|
4427
|
+
'moveTo',
|
|
4428
|
+
'getContext',
|
|
4429
|
+
'normal',
|
|
4430
|
+
'_Default',
|
|
4431
|
+
'hoverRadius',
|
|
4432
|
+
'DATA_LENGTH_MISMATCH',
|
|
4433
|
+
'setBubbleRadius',
|
|
4434
|
+
'setRadius',
|
|
4435
|
+
'border',
|
|
4436
|
+
'cutout',
|
|
4437
|
+
'Chart\x20instance\x20is\x20not\x20initialized.',
|
|
4438
|
+
'update',
|
|
4439
|
+
'mustHavePlugins',
|
|
4440
|
+
'scale',
|
|
4441
|
+
'getPixelForValue',
|
|
4442
|
+
'getElementById',
|
|
4443
|
+
'enabled',
|
|
4444
|
+
'setAllBorderWidth',
|
|
4445
|
+
'addComma',
|
|
4446
|
+
'hexToRgba',
|
|
4447
|
+
'test',
|
|
4448
|
+
'style',
|
|
4449
|
+
'_data',
|
|
4450
|
+
'call',
|
|
4451
|
+
'_loadingScheduled',
|
|
4452
|
+
'index',
|
|
4453
|
+
'xAxisID',
|
|
4454
|
+
'create',
|
|
4455
|
+
'mode',
|
|
4456
|
+
'xAxisKey',
|
|
4457
|
+
'sparkBarChart',
|
|
4458
|
+
'png',
|
|
4459
|
+
'datasetIndex',
|
|
4460
|
+
'object',
|
|
4461
|
+
'set',
|
|
4462
|
+
'72BIsqqh'
|
|
4463
|
+
];
|
|
4464
|
+
i = function () {
|
|
4465
|
+
return yY;
|
|
4466
|
+
};
|
|
4467
|
+
return i();
|
|
4468
|
+
}
|
|
4469
|
+
function applyStyle(k, H) {
|
|
4470
|
+
if (!H)
|
|
4471
|
+
return;
|
|
4472
|
+
Object['entries'](H)['forEach'](([c, a]) => {
|
|
4473
|
+
const yu = q;
|
|
4474
|
+
k[yu(0x1c3)]['setProperty'](c, String(a));
|
|
4475
|
+
});
|
|
4476
|
+
}
|
|
4477
|
+
function createDefaultSpinner(k) {
|
|
4478
|
+
const yv = q, H = document['createElement']('div');
|
|
4479
|
+
return k['spinnerClassName'] && (H[yv(0x17d)] = k['spinnerClassName']), Object[yv(0x220)](H['style'], {
|
|
4480
|
+
'width': '42px',
|
|
4481
|
+
'height': '42px',
|
|
4482
|
+
'borderRadius': '999px',
|
|
4483
|
+
'border': '4px\x20solid\x20' + (k[yv(0xfa)] || yv(0x110)),
|
|
4484
|
+
'borderTopColor': k['spinnerColor'] || '#2563eb',
|
|
4485
|
+
'animation': 'stz-spinner-overlay-spin\x200.8s\x20linear\x20infinite'
|
|
4486
|
+
}), applyStyle(H, k['spinnerStyle']), H;
|
|
4487
|
+
}
|
|
4488
|
+
function createSpinnerElement(k, H, c) {
|
|
4489
|
+
const yt = q;
|
|
4490
|
+
if (!k)
|
|
4491
|
+
return createDefaultSpinner(c);
|
|
4492
|
+
const a = typeof k === 'function' ? k({ 'chartId': H }) : k;
|
|
4493
|
+
if (typeof a === 'string') {
|
|
4494
|
+
const p = document['createElement']('div');
|
|
4495
|
+
return c[yt(0xa7)] && (p[yt(0x17d)] = c['spinnerClassName']), p[yt(0x22a)] = a, applyStyle(p, c['spinnerStyle']), p;
|
|
4496
|
+
}
|
|
4497
|
+
const X = a[yt(0x131)](!![]);
|
|
4498
|
+
return c['spinnerClassName'] && X['classList']['add'](...c['spinnerClassName']['split']('\x20')['filter'](Boolean)), applyStyle(X, c[yt(0x95)]), X;
|
|
4499
|
+
}
|
|
4500
|
+
function createSpinnerOverlay(k, H, c) {
|
|
4501
|
+
const yM = q, a = k[yM(0x1ee)]('[' + OVERLAY_ATTRIBUTE + '=\x22' + H + '\x22]');
|
|
4502
|
+
a && a['remove']();
|
|
4503
|
+
getComputedStyle(k)['position'] === 'static' && (k['style']['position'] = yM(0x1fe));
|
|
4504
|
+
const X = document['createElement']('div');
|
|
4505
|
+
X['setAttribute'](OVERLAY_ATTRIBUTE, H), X['className'] = c['className'] || '', Object['assign'](X['style'], {
|
|
4506
|
+
'position': 'absolute',
|
|
4507
|
+
'inset': '0',
|
|
4508
|
+
'display': 'flex',
|
|
4509
|
+
'alignItems': 'center',
|
|
4510
|
+
'justifyContent': 'center',
|
|
4511
|
+
'flexDirection': 'column',
|
|
4512
|
+
'gap': '12px',
|
|
4513
|
+
'background': c['backgroundColor'] || 'rgba(255,\x20255,\x20255,\x200.92)',
|
|
4514
|
+
'color': c['textColor'] || yM(0x125),
|
|
4515
|
+
'zIndex': String(c[yM(0x234)] ?? 0xa),
|
|
4516
|
+
'pointerEvents': 'none'
|
|
4517
|
+
}), applyStyle(X, c['overlayStyle']);
|
|
4518
|
+
if (!document['getElementById'](yM(0x9f))) {
|
|
4519
|
+
const d = document['createElement'](yM(0x1c3));
|
|
4520
|
+
d['id'] = 'stz-spinner-overlay-style', d['textContent'] = yM(0x23c), document['head']['appendChild'](d);
|
|
4521
|
+
}
|
|
4522
|
+
const p = createSpinnerElement(c['spinner'], H, c);
|
|
4523
|
+
X['appendChild'](p);
|
|
4524
|
+
if (c['text'] !== ![]) {
|
|
4525
|
+
const Q = document['createElement'](yM(0x255));
|
|
4526
|
+
c[yM(0xd7)] && (Q['className'] = c['textClassName']), Q['textContent'] = c[yM(0x10d)] || 'Loading...', Object[yM(0x220)](Q['style'], {
|
|
4527
|
+
'fontSize': '14px',
|
|
4528
|
+
'fontWeight': '700',
|
|
4529
|
+
'letterSpacing': '0.01em'
|
|
4530
|
+
}), applyStyle(Q, c[yM(0xe5)]), X['appendChild'](Q);
|
|
4531
|
+
}
|
|
4532
|
+
return k[yM(0x23d)](X), X;
|
|
4533
|
+
}
|
|
4534
|
+
function removeSpinnerOverlay(k) {
|
|
4535
|
+
document['querySelectorAll']('[' + OVERLAY_ATTRIBUTE + '=\x22' + k + '\x22]')['forEach'](H => H['remove']());
|
|
4536
|
+
}
|
|
4537
|
+
function mountChart(k) {
|
|
4538
|
+
const yW = q, H = resolveChartId(k), c = resolveCanvas(H);
|
|
4539
|
+
c['id'] = H;
|
|
4540
|
+
const a = getChartConfig(), X = resolveSpinnerOverlay(k[yW(0xb7)]?.[yW(0xa2)], a[yW(0xa2)]), p = Boolean(X?.[yW(0x1be)]), d = c['parentElement'] || c, Q = {
|
|
4541
|
+
...k,
|
|
4542
|
+
'options': {
|
|
4543
|
+
...k['options'] || {},
|
|
4544
|
+
'_chartId': H,
|
|
4545
|
+
'_loading': p ? ![] : k['options']?.['_loading']
|
|
4546
|
+
}
|
|
4547
|
+
};
|
|
4548
|
+
let s = ![], m, z = 0x0;
|
|
4549
|
+
const r = (async () => {
|
|
4550
|
+
const yn = q, existingChart = Chart$1['getChart'](c);
|
|
4551
|
+
existingChart && existingChart['destroy']();
|
|
4552
|
+
p && (createSpinnerOverlay(d, H, X), z = performance['now'](), await waitForNextPaint(), X?.['delayMs'] && await wait(X['delayMs']));
|
|
4553
|
+
if (s) {
|
|
4554
|
+
removeSpinnerOverlay(H);
|
|
4555
|
+
throw new Error(yn(0x253) + H + '\x22\x20was\x20cancelled\x20before\x20chart\x20creation.');
|
|
4556
|
+
}
|
|
4557
|
+
m = new Chart$1(c, Q);
|
|
4558
|
+
if (!p)
|
|
4559
|
+
return m;
|
|
4560
|
+
await waitForNextPaint();
|
|
4561
|
+
const Z = performance['now']() - z, g = Math[yn(0x15b)](0x0, (X?.['minVisibleMs'] ?? 0x0) - Z);
|
|
4562
|
+
return g > 0x0 && await wait(g), removeSpinnerOverlay(H), m;
|
|
4563
|
+
})()['catch'](Z => {
|
|
4564
|
+
removeSpinnerOverlay(H);
|
|
4565
|
+
throw Z;
|
|
4566
|
+
});
|
|
4567
|
+
return {
|
|
4568
|
+
'chartId': H,
|
|
4569
|
+
'destroy': () => {
|
|
4570
|
+
const yG = q;
|
|
4571
|
+
s = !![], removeSpinnerOverlay(H);
|
|
4572
|
+
const currentChart = m || Chart$1['getChart'](c);
|
|
4573
|
+
currentChart?.[yG(0x90)]();
|
|
4574
|
+
},
|
|
4575
|
+
'ready': r
|
|
4576
|
+
};
|
|
4577
|
+
}
|
|
4578
|
+
function bootstrapBuiltInChartTypes() {
|
|
4579
|
+
const yV = q;
|
|
4580
|
+
ChartFactory['register']('bar', BarChart), ChartFactory['register'](yV(0x189), LineChart), ChartFactory['register']('bubble', BubbleChart), ChartFactory['register']('doughnut', DoughnutChart), ChartFactory['register']('pie', PieChart), ChartFactory['register']('treemap', TreemapChart);
|
|
4581
|
+
}
|
|
4582
|
+
bootstrapBuiltInChartTypes();
|
|
4583
|
+
const ChartToolBox = {
|
|
4584
|
+
'setErrorLog'(k = !![]) {
|
|
4585
|
+
LoggerConfig['errorLogging'] = k;
|
|
4586
|
+
},
|
|
4587
|
+
'setErrorShield'(k = !![]) {
|
|
4588
|
+
LoggerConfig['silentMode'] = k;
|
|
4589
|
+
}
|
|
4590
|
+
}, T$ = {
|
|
4591
|
+
'create': Chart[V(0x1c9)]['bind'](Chart),
|
|
4592
|
+
'register': Chart['register']['bind'](Chart),
|
|
4593
|
+
'Chart': Chart,
|
|
4594
|
+
'CartesianChart': CartesianChart,
|
|
4595
|
+
'BarChart': BarChart,
|
|
4596
|
+
'LineChart': LineChart,
|
|
4597
|
+
'BubbleChart': BubbleChart,
|
|
4598
|
+
'ArcChart': ArcChart,
|
|
4599
|
+
'DoughnutChart': DoughnutChart,
|
|
4600
|
+
'PieChart': PieChart,
|
|
4601
|
+
'TreemapChart': TreemapChart,
|
|
4602
|
+
'ChartWrapper': Chart,
|
|
4603
|
+
'CartesianChartWrapper': CartesianChart,
|
|
4604
|
+
'BarChartWrapper': BarChart,
|
|
4605
|
+
'LineChartWrapper': LineChart,
|
|
4606
|
+
'BubbleChartWrapper': BubbleChart,
|
|
4607
|
+
'ArcChartWrapper': ArcChart,
|
|
4608
|
+
'DoughnutChartWrapper': DoughnutChart,
|
|
4609
|
+
'PieChartWrapper': PieChart,
|
|
4610
|
+
'TreemapChartWrapper': TreemapChart,
|
|
4611
|
+
'defaultTypes': Types,
|
|
4612
|
+
'defaultsOptions': LocalDefaults,
|
|
4613
|
+
'toolBox': ChartToolBox
|
|
4614
|
+
};
|
|
4615
|
+
export {
|
|
4616
|
+
ArcChart,
|
|
4617
|
+
ArcChart as ArcChartWrapper,
|
|
4618
|
+
BarChart,
|
|
4619
|
+
BarChart as BarChartWrapper,
|
|
4620
|
+
BubbleChart,
|
|
4621
|
+
BubbleChart as BubbleChartWrapper,
|
|
4622
|
+
CartesianChart,
|
|
4623
|
+
CartesianChart as CartesianChartWrapper,
|
|
4624
|
+
Chart,
|
|
4625
|
+
ChartFactory,
|
|
4626
|
+
ChartInstance,
|
|
4627
|
+
ChartToolBox,
|
|
4628
|
+
ChartTypes,
|
|
4629
|
+
Chart as ChartWrapper,
|
|
4630
|
+
CreateZoomRangeSlider,
|
|
4631
|
+
DefaultArcRadius,
|
|
4632
|
+
DefaultDataLabelsOptions,
|
|
4633
|
+
DefaultHiddenLegendTopOptions,
|
|
4634
|
+
DefaultHiddenSparkScales,
|
|
4635
|
+
DefaultResponsiveChartOptions,
|
|
4636
|
+
DefaultSparkPluginOptions,
|
|
4637
|
+
DefaultTimeScaleOptions,
|
|
4638
|
+
DefaultTopLegendOptions,
|
|
4639
|
+
DefaultZoomOptions,
|
|
4640
|
+
DoughnutChart,
|
|
4641
|
+
DoughnutChart as DoughnutChartWrapper,
|
|
4642
|
+
LineChart,
|
|
4643
|
+
LineChart as LineChartWrapper,
|
|
4644
|
+
PieChart,
|
|
4645
|
+
PieChart as PieChartWrapper,
|
|
4646
|
+
T$,
|
|
4647
|
+
TreemapChart,
|
|
4648
|
+
TreemapChart as TreemapChartWrapper,
|
|
4649
|
+
barScaleImgPlugin,
|
|
4650
|
+
blinkPlugin,
|
|
4651
|
+
changeSetting,
|
|
4652
|
+
chartMountPlugin,
|
|
4653
|
+
clearChartActiveElements,
|
|
4654
|
+
createAssignedTasksPlugin,
|
|
4655
|
+
createDefaultBarOptions,
|
|
4656
|
+
createDefaultBubbleOptions,
|
|
4657
|
+
createDefaultCartesianScales,
|
|
4658
|
+
createDefaultDoughnutOptions,
|
|
4659
|
+
createDefaultLineOptions,
|
|
4660
|
+
createDefaultPieOptions,
|
|
4661
|
+
createDefaultTreemapOptions,
|
|
4662
|
+
createStatusPlugin,
|
|
4663
|
+
createTodayLinePlugin,
|
|
4664
|
+
createWeekendPlugin,
|
|
4665
|
+
customDatasetPlugins,
|
|
4666
|
+
customLegend,
|
|
4667
|
+
T$ as default,
|
|
4668
|
+
defaultBarScales,
|
|
4669
|
+
defaultBarTooltipCallback,
|
|
4670
|
+
defaultBubbleScales,
|
|
4671
|
+
defaultBubbleTooltipCallback,
|
|
4672
|
+
defaultDoughnutTooltipCallback,
|
|
4673
|
+
defaultLineScales,
|
|
4674
|
+
defaultLineTooltipCallback,
|
|
4675
|
+
defaultPieTooltipCallback,
|
|
4676
|
+
defaultTreemapTooltipCallback,
|
|
4677
|
+
doughnutCenterTextPlugin,
|
|
4678
|
+
downloadChartAsImage,
|
|
4679
|
+
downloadChartAsImageByInstance,
|
|
4680
|
+
getChartAsBase64,
|
|
4681
|
+
getChartAsBase64ByInstance,
|
|
4682
|
+
getChartAsBlob,
|
|
4683
|
+
getChartAsBlobByInstance,
|
|
4684
|
+
getChartDatasetMeta,
|
|
4685
|
+
getChartInstance,
|
|
4686
|
+
hideChartTooltip,
|
|
4687
|
+
isChartDatasetVisible,
|
|
4688
|
+
loadingPlugin,
|
|
4689
|
+
makeCenterHtml,
|
|
4690
|
+
mountChart,
|
|
4691
|
+
noDataPlugin,
|
|
4692
|
+
resetChartZoom,
|
|
4693
|
+
resizeChart,
|
|
4694
|
+
segmentImagePlugin,
|
|
4695
|
+
setChartActiveElements,
|
|
4696
|
+
setChartConfig,
|
|
4697
|
+
setChartDatasetVisibility,
|
|
4698
|
+
showChartTooltip,
|
|
4699
|
+
sparkBarOptions,
|
|
4700
|
+
sparkBubbleOptions,
|
|
4701
|
+
sparkLineOptions,
|
|
4702
|
+
toggleChartDatasetVisibility,
|
|
4703
|
+
updateChart,
|
|
4704
|
+
zoomRangeSlider,
|
|
4705
|
+
zoomResetPlugin
|
|
4706
|
+
};
|
|
4707
|
+
//# sourceMappingURL=index.mjs.map
|