@agions/taroviz 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -5415,6 +5415,54 @@ var WordCloudChart = /*#__PURE__*/(0,external_react_.memo)(function (props) {
5415
5415
  });
5416
5416
  WordCloudChart.displayName = 'WordCloudChart';
5417
5417
  /* harmony default export */ const wordcloud = (WordCloudChart);
5418
+ ;// ./src/charts/boxplot/index.tsx
5419
+ var boxplot_assign = undefined && undefined.__assign || function () {
5420
+ boxplot_assign = Object.assign || function (t) {
5421
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5422
+ s = arguments[i];
5423
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
5424
+ }
5425
+ return t;
5426
+ };
5427
+ return boxplot_assign.apply(this, arguments);
5428
+ };
5429
+ /**
5430
+ * 箱线图组件
5431
+ * 用于展示数据的分布情况,包括最小值、Q1、中位数、Q3、最大值
5432
+ */
5433
+
5434
+
5435
+ var BoxplotChart = /*#__PURE__*/(0,external_react_.memo)(function (props) {
5436
+ return /*#__PURE__*/external_react_default().createElement(BaseChartWrapper/* default */.A, boxplot_assign({}, props, {
5437
+ chartType: "boxplot"
5438
+ }));
5439
+ });
5440
+ BoxplotChart.displayName = 'BoxplotChart';
5441
+ /* harmony default export */ const boxplot = (BoxplotChart);
5442
+ ;// ./src/charts/parallel/index.tsx
5443
+ var parallel_assign = undefined && undefined.__assign || function () {
5444
+ parallel_assign = Object.assign || function (t) {
5445
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5446
+ s = arguments[i];
5447
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
5448
+ }
5449
+ return t;
5450
+ };
5451
+ return parallel_assign.apply(this, arguments);
5452
+ };
5453
+ /**
5454
+ * 平行坐标图组件
5455
+ * 用于展示高维数据各维度之间的关系
5456
+ */
5457
+
5458
+
5459
+ var ParallelChart = /*#__PURE__*/(0,external_react_.memo)(function (props) {
5460
+ return /*#__PURE__*/external_react_default().createElement(BaseChartWrapper/* default */.A, parallel_assign({}, props, {
5461
+ chartType: "parallel"
5462
+ }));
5463
+ });
5464
+ ParallelChart.displayName = 'ParallelChart';
5465
+ /* harmony default export */ const parallel = (ParallelChart);
5418
5466
  // EXTERNAL MODULE: ./src/adapters/index.ts + 5 modules
5419
5467
  var adapters = __webpack_require__(574);
5420
5468
  // EXTERNAL MODULE: ./src/adapters/h5/index.ts
@@ -6955,6 +7003,754 @@ var ThemeEditor = function (_a) {
6955
7003
 
6956
7004
 
6957
7005
  /* harmony default export */ const editor = ((/* unused pure expression or super */ null && (src_editor_ThemeEditor)));
7006
+ ;// ./src/charts/index.ts
7007
+ /**
7008
+ * TaroViz 图表组件集合
7009
+ */
7010
+ // 导出基础图表组件
7011
+
7012
+
7013
+
7014
+
7015
+
7016
+
7017
+
7018
+
7019
+ // 导出扩展图表组件
7020
+
7021
+
7022
+
7023
+ // 导出新增图表组件
7024
+
7025
+
7026
+
7027
+ // 导出 v1.6.0 新增图表组件
7028
+
7029
+
7030
+ // 导出类型定义
7031
+
7032
+ /**
7033
+ * 版本信息
7034
+ */
7035
+ var version = '1.6.0';
7036
+ ;// ./src/editor/EnhancedThemeEditor.tsx
7037
+ var EnhancedThemeEditor_assign = undefined && undefined.__assign || function () {
7038
+ EnhancedThemeEditor_assign = Object.assign || function (t) {
7039
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
7040
+ s = arguments[i];
7041
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
7042
+ }
7043
+ return t;
7044
+ };
7045
+ return EnhancedThemeEditor_assign.apply(this, arguments);
7046
+ };
7047
+ var EnhancedThemeEditor_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
7048
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
7049
+ if (ar || !(i in from)) {
7050
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
7051
+ ar[i] = from[i];
7052
+ }
7053
+ }
7054
+ return to.concat(ar || Array.prototype.slice.call(from));
7055
+ };
7056
+ /**
7057
+ * TaroViz 增强版主题编辑器组件
7058
+ * 提供实时预览、导入导出、预设主题等高级功能
7059
+ */
7060
+
7061
+
7062
+
7063
+ var EnhancedThemeEditor_PRESET_THEMES = [{
7064
+ name: '预设-科技蓝',
7065
+ colors: ['#0050b3', '#1890ff', '#40a9ff', '#69c0ff', '#bae7ff'],
7066
+ backgroundColor: '#001529',
7067
+ textColor: '#ffffff',
7068
+ darkMode: true
7069
+ }, {
7070
+ name: '预设-活力橙',
7071
+ colors: ['#d46b08', '#ff7a45', '#ffa940', '#ffc53d', '#ffe58f'],
7072
+ backgroundColor: '#f5f5f5',
7073
+ textColor: '#333333',
7074
+ darkMode: false
7075
+ }, {
7076
+ name: '预设-森林绿',
7077
+ colors: ['#237804', '#52c41a', '#73d13d', '#95de64', '#b7eb8f'],
7078
+ backgroundColor: '#f6ffed',
7079
+ textColor: '#333333',
7080
+ darkMode: false
7081
+ }, {
7082
+ name: '预设-神秘紫',
7083
+ colors: ['#531dab', '#722ed1', '#9254de', '#b37feb', '#d3adf7'],
7084
+ backgroundColor: '#f9f0ff',
7085
+ textColor: '#333333',
7086
+ darkMode: false
7087
+ }, {
7088
+ name: '预设-商务灰',
7089
+ colors: ['#434343', '#595959', '#8c8c8c', '#bfbfbf', '#e8e8e8'],
7090
+ backgroundColor: '#fafafa',
7091
+ textColor: '#333333',
7092
+ darkMode: false
7093
+ }];
7094
+ var EnhancedThemeEditor = function (_a) {
7095
+ var selectedTheme = _a.selectedTheme,
7096
+ onThemeChange = _a.onThemeChange,
7097
+ onThemeSave = _a.onThemeSave,
7098
+ _b = _a.disabled,
7099
+ disabled = _b === void 0 ? false : _b,
7100
+ _c = _a.enableLivePreview,
7101
+ enableLivePreview = _c === void 0 ? true : _c,
7102
+ _d = _a.enableImportExport,
7103
+ enableImportExport = _d === void 0 ? true : _d,
7104
+ _e = _a.enablePresets,
7105
+ enablePresets = _e === void 0 ? true : _e,
7106
+ _f = _a.style,
7107
+ style = _f === void 0 ? {} : _f,
7108
+ _g = _a.className,
7109
+ className = _g === void 0 ? '' : _g;
7110
+ var registeredThemes = getRegisteredThemes();
7111
+ // 状态
7112
+ var _h = (0,external_react_.useState)(registeredThemes.find(function (t) {
7113
+ return t.name === selectedTheme;
7114
+ }) || registeredThemes[0] || {}),
7115
+ currentTheme = _h[0],
7116
+ setCurrentTheme = _h[1];
7117
+ var _j = (0,external_react_.useState)(''),
7118
+ newThemeName = _j[0],
7119
+ setNewThemeName = _j[1];
7120
+ var _k = (0,external_react_.useState)(false),
7121
+ isEditing = _k[0],
7122
+ setIsEditing = _k[1];
7123
+ var _l = (0,external_react_.useState)(currentTheme.colors || []),
7124
+ colors = _l[0],
7125
+ setColors = _l[1];
7126
+ var _m = (0,external_react_.useState)(currentTheme.backgroundColor || '#ffffff'),
7127
+ backgroundColor = _m[0],
7128
+ setBackgroundColor = _m[1];
7129
+ var _o = (0,external_react_.useState)(currentTheme.textColor || '#333333'),
7130
+ textColor = _o[0],
7131
+ setTextColor = _o[1];
7132
+ var _p = (0,external_react_.useState)(currentTheme.darkMode || false),
7133
+ darkMode = _p[0],
7134
+ setDarkMode = _p[1];
7135
+ var _q = (0,external_react_.useState)('basic'),
7136
+ activeTab = _q[0],
7137
+ setActiveTab = _q[1];
7138
+ // 预览数据
7139
+ var previewOption = {
7140
+ title: {
7141
+ text: '主题预览',
7142
+ textStyle: {
7143
+ color: textColor
7144
+ }
7145
+ },
7146
+ xAxis: {
7147
+ type: 'category',
7148
+ data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'],
7149
+ axisLabel: {
7150
+ color: textColor
7151
+ }
7152
+ },
7153
+ yAxis: {
7154
+ type: 'value',
7155
+ axisLabel: {
7156
+ color: textColor
7157
+ }
7158
+ },
7159
+ series: [{
7160
+ data: [120, 200, 150, 80, 70],
7161
+ type: 'bar',
7162
+ itemStyle: {
7163
+ color: colors[0] || '#1890ff'
7164
+ }
7165
+ }, {
7166
+ data: [120, 200, 150, 80, 70].map(function (v) {
7167
+ return {
7168
+ value: v * 1.2,
7169
+ itemStyle: {
7170
+ color: colors[1] || '#40a9ff'
7171
+ }
7172
+ };
7173
+ }),
7174
+ type: 'bar'
7175
+ }],
7176
+ backgroundColor: backgroundColor
7177
+ };
7178
+ // 同步主题状态
7179
+ (0,external_react_.useEffect)(function () {
7180
+ if (selectedTheme) {
7181
+ var theme = registeredThemes.find(function (t) {
7182
+ return t.name === selectedTheme;
7183
+ });
7184
+ if (theme) {
7185
+ setCurrentTheme(theme);
7186
+ setColors(theme.colors || []);
7187
+ setBackgroundColor(theme.backgroundColor || '#ffffff');
7188
+ setTextColor(theme.textColor || '#333333');
7189
+ setDarkMode(theme.darkMode || false);
7190
+ }
7191
+ }
7192
+ }, [selectedTheme, registeredThemes]);
7193
+ // 更新主题
7194
+ var updateTheme = (0,external_react_.useCallback)(function (updates) {
7195
+ var updated = EnhancedThemeEditor_assign(EnhancedThemeEditor_assign({}, currentTheme), updates);
7196
+ setCurrentTheme(updated);
7197
+ setColors(updated.colors || []);
7198
+ setBackgroundColor(updated.backgroundColor || '#ffffff');
7199
+ setTextColor(updated.textColor || '#333333');
7200
+ setDarkMode(updated.darkMode || false);
7201
+ if (enableLivePreview) {
7202
+ switchTheme(updated);
7203
+ }
7204
+ onThemeChange === null || onThemeChange === void 0 ? void 0 : onThemeChange(updated);
7205
+ }, [currentTheme, enableLivePreview, onThemeChange]);
7206
+ // 处理颜色变化
7207
+ var handleColorChange = function (index, color) {
7208
+ var newColors = EnhancedThemeEditor_spreadArray([], colors, true);
7209
+ newColors[index] = color;
7210
+ updateTheme({
7211
+ colors: newColors
7212
+ });
7213
+ };
7214
+ // 添加颜色
7215
+ var handleAddColor = function () {
7216
+ var newColors = EnhancedThemeEditor_spreadArray(EnhancedThemeEditor_spreadArray([], colors, true), ['#000000'], false);
7217
+ updateTheme({
7218
+ colors: newColors
7219
+ });
7220
+ };
7221
+ // 删除颜色
7222
+ var handleRemoveColor = function (index) {
7223
+ if (colors.length <= 1) return;
7224
+ var newColors = colors.filter(function (_, i) {
7225
+ return i !== index;
7226
+ });
7227
+ updateTheme({
7228
+ colors: newColors
7229
+ });
7230
+ };
7231
+ // 选择预设主题
7232
+ var handlePresetSelect = function (preset) {
7233
+ updateTheme(EnhancedThemeEditor_assign(EnhancedThemeEditor_assign({}, preset), {
7234
+ name: isEditing && newThemeName ? newThemeName : preset.name
7235
+ }));
7236
+ if (!isEditing) {
7237
+ switchTheme(preset);
7238
+ onThemeChange === null || onThemeChange === void 0 ? void 0 : onThemeChange(preset);
7239
+ }
7240
+ };
7241
+ // 保存主题
7242
+ var handleSaveTheme = function () {
7243
+ var name = isEditing && newThemeName ? newThemeName : currentTheme.name || 'custom';
7244
+ var themeToSave = EnhancedThemeEditor_assign(EnhancedThemeEditor_assign({}, currentTheme), {
7245
+ name: name,
7246
+ colors: colors,
7247
+ backgroundColor: backgroundColor,
7248
+ textColor: textColor,
7249
+ darkMode: darkMode
7250
+ });
7251
+ registerTheme(name, themeToSave);
7252
+ setIsEditing(false);
7253
+ setNewThemeName('');
7254
+ if (onThemeSave) {
7255
+ onThemeSave(themeToSave);
7256
+ }
7257
+ };
7258
+ // 导出主题
7259
+ var handleExportTheme = function (format) {
7260
+ var theme = EnhancedThemeEditor_assign(EnhancedThemeEditor_assign({}, currentTheme), {
7261
+ colors: colors,
7262
+ backgroundColor: backgroundColor,
7263
+ textColor: textColor,
7264
+ darkMode: darkMode
7265
+ });
7266
+ var content = '';
7267
+ var filename = '';
7268
+ var mimeType = '';
7269
+ if (format === 'json') {
7270
+ content = JSON.stringify(theme, null, 2);
7271
+ filename = "".concat(theme.name || 'theme', ".json");
7272
+ mimeType = 'application/json';
7273
+ } else if (format === 'css') {
7274
+ content = ":root {\n --theme-colors: ".concat(colors.join(', '), ";\n --theme-bg: ").concat(backgroundColor, ";\n --theme-text: ").concat(textColor, ";\n}");
7275
+ filename = "".concat(theme.name || 'theme', ".css");
7276
+ mimeType = 'text/css';
7277
+ } else {
7278
+ content = "$theme-colors: (".concat(colors.join(', '), ");\n$theme-bg: ").concat(backgroundColor, ";\n$theme-text: ").concat(textColor, ";");
7279
+ filename = "".concat(theme.name || 'theme', ".scss");
7280
+ mimeType = 'text/x-scss';
7281
+ }
7282
+ var blob = new Blob([content], {
7283
+ type: mimeType
7284
+ });
7285
+ var url = URL.createObjectURL(blob);
7286
+ var a = document.createElement('a');
7287
+ a.href = url;
7288
+ a.download = filename;
7289
+ a.click();
7290
+ URL.revokeObjectURL(url);
7291
+ };
7292
+ // 导入主题
7293
+ var handleImportTheme = function (event) {
7294
+ var _a;
7295
+ var file = (_a = event.target.files) === null || _a === void 0 ? void 0 : _a[0];
7296
+ if (!file) return;
7297
+ var reader = new FileReader();
7298
+ reader.onload = function (e) {
7299
+ var _a;
7300
+ try {
7301
+ var content = (_a = e.target) === null || _a === void 0 ? void 0 : _a.result;
7302
+ if (file.name.endsWith('.json')) {
7303
+ var theme = JSON.parse(content);
7304
+ updateTheme(theme);
7305
+ } else {
7306
+ alert('请选择 JSON 格式的主题文件');
7307
+ }
7308
+ } catch (_b) {
7309
+ alert('文件格式错误');
7310
+ }
7311
+ };
7312
+ reader.readAsText(file);
7313
+ };
7314
+ // 开始编辑新主题
7315
+ var handleStartEdit = function () {
7316
+ setIsEditing(true);
7317
+ setNewThemeName('');
7318
+ };
7319
+ return /*#__PURE__*/external_react_default().createElement("div", {
7320
+ className: "taroviz-enhanced-theme-editor ".concat(className),
7321
+ style: EnhancedThemeEditor_assign({
7322
+ padding: '20px',
7323
+ border: '1px solid #e0e0e0',
7324
+ borderRadius: '8px',
7325
+ backgroundColor: '#ffffff',
7326
+ boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)'
7327
+ }, style)
7328
+ }, /*#__PURE__*/external_react_default().createElement("h3", {
7329
+ style: {
7330
+ marginBottom: '20px'
7331
+ }
7332
+ }, "\u589E\u5F3A\u7248\u4E3B\u9898\u7F16\u8F91\u5668"), /*#__PURE__*/external_react_default().createElement("div", {
7333
+ style: {
7334
+ display: 'flex',
7335
+ borderBottom: '1px solid #e0e0e0',
7336
+ marginBottom: '20px'
7337
+ }
7338
+ }, ['basic', 'advanced', 'presets'].map(function (tab) {
7339
+ return /*#__PURE__*/external_react_default().createElement("button", {
7340
+ key: tab,
7341
+ onClick: function () {
7342
+ return setActiveTab(tab);
7343
+ },
7344
+ style: {
7345
+ padding: '10px 20px',
7346
+ border: 'none',
7347
+ borderBottom: activeTab === tab ? '2px solid #1890ff' : '2px solid transparent',
7348
+ backgroundColor: 'transparent',
7349
+ color: activeTab === tab ? '#1890ff' : '#666',
7350
+ cursor: 'pointer',
7351
+ fontWeight: activeTab === tab ? 'bold' : 'normal'
7352
+ }
7353
+ }, tab === 'basic' ? '基础配置' : tab === 'advanced' ? '高级配置' : '预设主题');
7354
+ })), activeTab === 'basic' && (/*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
7355
+ style: {
7356
+ marginBottom: '20px'
7357
+ }
7358
+ }, /*#__PURE__*/external_react_default().createElement("h4", null, "\u9009\u62E9\u4E3B\u9898"), /*#__PURE__*/external_react_default().createElement("div", {
7359
+ style: {
7360
+ display: 'flex',
7361
+ flexWrap: 'wrap',
7362
+ gap: '10px',
7363
+ marginTop: '10px'
7364
+ }
7365
+ }, registeredThemes.map(function (theme) {
7366
+ return /*#__PURE__*/external_react_default().createElement("button", {
7367
+ key: theme.name,
7368
+ onClick: function () {
7369
+ setIsEditing(false);
7370
+ updateTheme(theme);
7371
+ },
7372
+ disabled: disabled,
7373
+ style: {
7374
+ padding: '8px 16px',
7375
+ border: "2px solid ".concat(currentTheme.name === theme.name ? '#1890ff' : '#e0e0e0'),
7376
+ borderRadius: '4px',
7377
+ backgroundColor: currentTheme.name === theme.name ? '#1890ff' : '#ffffff',
7378
+ color: currentTheme.name === theme.name ? '#ffffff' : '#333',
7379
+ cursor: disabled ? 'not-allowed' : 'pointer',
7380
+ opacity: disabled ? 0.6 : 1
7381
+ }
7382
+ }, theme.name);
7383
+ }), /*#__PURE__*/external_react_default().createElement("button", {
7384
+ onClick: handleStartEdit,
7385
+ disabled: disabled,
7386
+ style: {
7387
+ padding: '8px 16px',
7388
+ border: '2px dashed #e0e0e0',
7389
+ borderRadius: '4px',
7390
+ backgroundColor: '#f5f5f5',
7391
+ color: '#333',
7392
+ cursor: disabled ? 'not-allowed' : 'pointer',
7393
+ opacity: disabled ? 0.6 : 1
7394
+ }
7395
+ }, "+ \u65B0\u4E3B\u9898"))), isEditing && (/*#__PURE__*/external_react_default().createElement("div", {
7396
+ style: {
7397
+ marginBottom: '20px',
7398
+ padding: '15px',
7399
+ backgroundColor: '#f9f9f9',
7400
+ borderRadius: '4px'
7401
+ }
7402
+ }, /*#__PURE__*/external_react_default().createElement("h4", null, "\u65B0\u5EFA\u4E3B\u9898"), /*#__PURE__*/external_react_default().createElement("input", {
7403
+ type: "text",
7404
+ value: newThemeName,
7405
+ onChange: function (e) {
7406
+ return setNewThemeName(e.target.value);
7407
+ },
7408
+ disabled: disabled,
7409
+ placeholder: "\u8F93\u5165\u4E3B\u9898\u540D\u79F0",
7410
+ style: {
7411
+ padding: '8px',
7412
+ border: '1px solid #e0e0e0',
7413
+ borderRadius: '4px',
7414
+ width: '100%',
7415
+ marginTop: '10px',
7416
+ opacity: disabled ? 0.6 : 1
7417
+ }
7418
+ }))), /*#__PURE__*/external_react_default().createElement("div", {
7419
+ style: {
7420
+ marginBottom: '20px'
7421
+ }
7422
+ }, /*#__PURE__*/external_react_default().createElement("div", {
7423
+ style: {
7424
+ display: 'flex',
7425
+ justifyContent: 'space-between',
7426
+ alignItems: 'center',
7427
+ marginBottom: '10px'
7428
+ }
7429
+ }, /*#__PURE__*/external_react_default().createElement("h4", null, "\u4E3B\u9898\u989C\u8272"), /*#__PURE__*/external_react_default().createElement("button", {
7430
+ onClick: handleAddColor,
7431
+ disabled: disabled,
7432
+ style: {
7433
+ padding: '4px 8px',
7434
+ border: '1px solid #e0e0e0',
7435
+ borderRadius: '4px',
7436
+ backgroundColor: '#ffffff',
7437
+ cursor: disabled ? 'not-allowed' : 'pointer',
7438
+ opacity: disabled ? 0.6 : 1
7439
+ }
7440
+ }, "+ \u6DFB\u52A0\u989C\u8272")), /*#__PURE__*/external_react_default().createElement("div", {
7441
+ style: {
7442
+ display: 'flex',
7443
+ flexWrap: 'wrap',
7444
+ gap: '10px'
7445
+ }
7446
+ }, colors.map(function (color, index) {
7447
+ return /*#__PURE__*/external_react_default().createElement("div", {
7448
+ key: index,
7449
+ style: {
7450
+ display: 'flex',
7451
+ alignItems: 'center',
7452
+ gap: '5px'
7453
+ }
7454
+ }, /*#__PURE__*/external_react_default().createElement("input", {
7455
+ type: "color",
7456
+ value: color,
7457
+ onChange: function (e) {
7458
+ return handleColorChange(index, e.target.value);
7459
+ },
7460
+ disabled: disabled,
7461
+ style: {
7462
+ width: '50px',
7463
+ height: '30px',
7464
+ border: 'none',
7465
+ cursor: 'pointer'
7466
+ }
7467
+ }), /*#__PURE__*/external_react_default().createElement("input", {
7468
+ type: "text",
7469
+ value: color,
7470
+ onChange: function (e) {
7471
+ return handleColorChange(index, e.target.value);
7472
+ },
7473
+ disabled: disabled,
7474
+ style: {
7475
+ width: '80px',
7476
+ padding: '4px',
7477
+ border: '1px solid #e0e0e0',
7478
+ borderRadius: '4px'
7479
+ }
7480
+ }), /*#__PURE__*/external_react_default().createElement("button", {
7481
+ onClick: function () {
7482
+ return handleRemoveColor(index);
7483
+ },
7484
+ disabled: disabled || colors.length <= 1,
7485
+ style: {
7486
+ padding: '4px 8px',
7487
+ border: '1px solid #ff4d4f',
7488
+ borderRadius: '4px',
7489
+ backgroundColor: '#ffffff',
7490
+ color: '#ff4d4f',
7491
+ cursor: disabled || colors.length <= 1 ? 'not-allowed' : 'pointer',
7492
+ opacity: disabled || colors.length <= 1 ? 0.6 : 1
7493
+ }
7494
+ }, "\u5220\u9664"));
7495
+ }))), /*#__PURE__*/external_react_default().createElement("div", {
7496
+ style: {
7497
+ marginBottom: '20px'
7498
+ }
7499
+ }, /*#__PURE__*/external_react_default().createElement("h4", null, "\u57FA\u7840\u914D\u7F6E"), /*#__PURE__*/external_react_default().createElement("div", {
7500
+ style: {
7501
+ display: 'grid',
7502
+ gridTemplateColumns: '1fr 1fr',
7503
+ gap: '15px',
7504
+ marginTop: '10px'
7505
+ }
7506
+ }, /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("label", {
7507
+ style: {
7508
+ display: 'block',
7509
+ marginBottom: '5px'
7510
+ }
7511
+ }, "\u80CC\u666F\u8272:"), /*#__PURE__*/external_react_default().createElement("div", {
7512
+ style: {
7513
+ display: 'flex',
7514
+ alignItems: 'center',
7515
+ gap: '10px'
7516
+ }
7517
+ }, /*#__PURE__*/external_react_default().createElement("input", {
7518
+ type: "color",
7519
+ value: backgroundColor,
7520
+ onChange: function (e) {
7521
+ return updateTheme({
7522
+ backgroundColor: e.target.value
7523
+ });
7524
+ },
7525
+ disabled: disabled,
7526
+ style: {
7527
+ width: '50px',
7528
+ height: '30px',
7529
+ border: 'none',
7530
+ cursor: 'pointer'
7531
+ }
7532
+ }), /*#__PURE__*/external_react_default().createElement("input", {
7533
+ type: "text",
7534
+ value: backgroundColor,
7535
+ onChange: function (e) {
7536
+ return updateTheme({
7537
+ backgroundColor: e.target.value
7538
+ });
7539
+ },
7540
+ disabled: disabled,
7541
+ style: {
7542
+ width: '100px',
7543
+ padding: '4px',
7544
+ border: '1px solid #e0e0e0',
7545
+ borderRadius: '4px'
7546
+ }
7547
+ }))), /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("label", {
7548
+ style: {
7549
+ display: 'block',
7550
+ marginBottom: '5px'
7551
+ }
7552
+ }, "\u6587\u672C\u989C\u8272:"), /*#__PURE__*/external_react_default().createElement("div", {
7553
+ style: {
7554
+ display: 'flex',
7555
+ alignItems: 'center',
7556
+ gap: '10px'
7557
+ }
7558
+ }, /*#__PURE__*/external_react_default().createElement("input", {
7559
+ type: "color",
7560
+ value: textColor,
7561
+ onChange: function (e) {
7562
+ return updateTheme({
7563
+ textColor: e.target.value
7564
+ });
7565
+ },
7566
+ disabled: disabled,
7567
+ style: {
7568
+ width: '50px',
7569
+ height: '30px',
7570
+ border: 'none',
7571
+ cursor: 'pointer'
7572
+ }
7573
+ }), /*#__PURE__*/external_react_default().createElement("input", {
7574
+ type: "text",
7575
+ value: textColor,
7576
+ onChange: function (e) {
7577
+ return updateTheme({
7578
+ textColor: e.target.value
7579
+ });
7580
+ },
7581
+ disabled: disabled,
7582
+ style: {
7583
+ width: '100px',
7584
+ padding: '4px',
7585
+ border: '1px solid #e0e0e0',
7586
+ borderRadius: '4px'
7587
+ }
7588
+ })))), /*#__PURE__*/external_react_default().createElement("div", {
7589
+ style: {
7590
+ marginTop: '10px'
7591
+ }
7592
+ }, /*#__PURE__*/external_react_default().createElement("label", {
7593
+ style: {
7594
+ display: 'flex',
7595
+ alignItems: 'center',
7596
+ gap: '10px'
7597
+ }
7598
+ }, /*#__PURE__*/external_react_default().createElement("input", {
7599
+ type: "checkbox",
7600
+ checked: darkMode,
7601
+ onChange: function (e) {
7602
+ return updateTheme({
7603
+ darkMode: e.target.checked
7604
+ });
7605
+ },
7606
+ disabled: disabled
7607
+ }), "\u6DF1\u8272\u6A21\u5F0F"))))), activeTab === 'presets' && enablePresets && (/*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("h4", null, "\u9009\u62E9\u9884\u8BBE\u4E3B\u9898"), /*#__PURE__*/external_react_default().createElement("div", {
7608
+ style: {
7609
+ display: 'grid',
7610
+ gridTemplateColumns: 'repeat(auto-fill, minmax(200px, 1fr))',
7611
+ gap: '15px',
7612
+ marginTop: '15px'
7613
+ }
7614
+ }, EnhancedThemeEditor_PRESET_THEMES.map(function (preset) {
7615
+ return /*#__PURE__*/external_react_default().createElement("div", {
7616
+ key: preset.name,
7617
+ onClick: function () {
7618
+ return handlePresetSelect(preset);
7619
+ },
7620
+ style: {
7621
+ padding: '15px',
7622
+ border: '2px solid #e0e0e0',
7623
+ borderRadius: '8px',
7624
+ cursor: 'pointer',
7625
+ backgroundColor: preset.backgroundColor,
7626
+ color: preset.textColor,
7627
+ transition: 'all 0.2s'
7628
+ }
7629
+ }, /*#__PURE__*/external_react_default().createElement("div", {
7630
+ style: {
7631
+ display: 'flex',
7632
+ gap: '5px',
7633
+ marginBottom: '10px'
7634
+ }
7635
+ }, (preset.colors || []).map(function (color, i) {
7636
+ return /*#__PURE__*/external_react_default().createElement("div", {
7637
+ key: i,
7638
+ style: {
7639
+ width: '30px',
7640
+ height: '30px',
7641
+ backgroundColor: color,
7642
+ borderRadius: '4px'
7643
+ }
7644
+ });
7645
+ })), /*#__PURE__*/external_react_default().createElement("div", {
7646
+ style: {
7647
+ fontSize: '14px',
7648
+ fontWeight: 'bold'
7649
+ }
7650
+ }, preset.name), /*#__PURE__*/external_react_default().createElement("div", {
7651
+ style: {
7652
+ fontSize: '12px',
7653
+ opacity: 0.7
7654
+ }
7655
+ }, preset.darkMode ? '深色' : '浅色'));
7656
+ })))), activeTab === 'advanced' && (/*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("h4", null, "\u5BFC\u5165\u5BFC\u51FA"), enableImportExport && (/*#__PURE__*/external_react_default().createElement("div", {
7657
+ style: {
7658
+ display: 'flex',
7659
+ gap: '10px',
7660
+ marginTop: '15px'
7661
+ }
7662
+ }, /*#__PURE__*/external_react_default().createElement("button", {
7663
+ onClick: function () {
7664
+ return handleExportTheme('json');
7665
+ },
7666
+ disabled: disabled,
7667
+ style: {
7668
+ padding: '8px 16px',
7669
+ border: '1px solid #e0e0e0',
7670
+ borderRadius: '4px',
7671
+ backgroundColor: '#ffffff',
7672
+ cursor: disabled ? 'not-allowed' : 'pointer',
7673
+ opacity: disabled ? 0.6 : 1
7674
+ }
7675
+ }, "\u5BFC\u51FA JSON"), /*#__PURE__*/external_react_default().createElement("button", {
7676
+ onClick: function () {
7677
+ return handleExportTheme('css');
7678
+ },
7679
+ disabled: disabled,
7680
+ style: {
7681
+ padding: '8px 16px',
7682
+ border: '1px solid #e0e0e0',
7683
+ borderRadius: '4px',
7684
+ backgroundColor: '#ffffff',
7685
+ cursor: disabled ? 'not-allowed' : 'pointer',
7686
+ opacity: disabled ? 0.6 : 1
7687
+ }
7688
+ }, "\u5BFC\u51FA CSS"), /*#__PURE__*/external_react_default().createElement("label", {
7689
+ style: {
7690
+ padding: '8px 16px',
7691
+ border: '1px solid #1890ff',
7692
+ borderRadius: '4px',
7693
+ backgroundColor: '#1890ff',
7694
+ color: '#ffffff',
7695
+ cursor: 'pointer'
7696
+ }
7697
+ }, "\u5BFC\u5165 JSON", /*#__PURE__*/external_react_default().createElement("input", {
7698
+ type: "file",
7699
+ accept: ".json",
7700
+ onChange: handleImportTheme,
7701
+ style: {
7702
+ display: 'none'
7703
+ }
7704
+ })))))), enableLivePreview && (/*#__PURE__*/external_react_default().createElement("div", {
7705
+ style: {
7706
+ marginTop: '20px'
7707
+ }
7708
+ }, /*#__PURE__*/external_react_default().createElement("h4", null, "\u5B9E\u65F6\u9884\u89C8"), /*#__PURE__*/external_react_default().createElement("div", {
7709
+ style: {
7710
+ marginTop: '10px',
7711
+ border: '1px solid #e0e0e0',
7712
+ borderRadius: '8px',
7713
+ overflow: 'hidden'
7714
+ }
7715
+ }, /*#__PURE__*/external_react_default().createElement(line["default"], {
7716
+ option: previewOption,
7717
+ width: "100%",
7718
+ height: 200
7719
+ })))), /*#__PURE__*/external_react_default().createElement("div", {
7720
+ style: {
7721
+ marginTop: '20px',
7722
+ display: 'flex',
7723
+ gap: '10px'
7724
+ }
7725
+ }, /*#__PURE__*/external_react_default().createElement("button", {
7726
+ onClick: handleSaveTheme,
7727
+ disabled: disabled,
7728
+ style: {
7729
+ padding: '10px 20px',
7730
+ border: 'none',
7731
+ borderRadius: '4px',
7732
+ backgroundColor: '#1890ff',
7733
+ color: '#ffffff',
7734
+ cursor: disabled ? 'not-allowed' : 'pointer',
7735
+ opacity: disabled ? 0.6 : 1
7736
+ }
7737
+ }, "\u4FDD\u5B58\u4E3B\u9898"), /*#__PURE__*/external_react_default().createElement("button", {
7738
+ onClick: function () {
7739
+ return updateTheme(currentTheme);
7740
+ },
7741
+ disabled: disabled,
7742
+ style: {
7743
+ padding: '10px 20px',
7744
+ border: '1px solid #e0e0e0',
7745
+ borderRadius: '4px',
7746
+ backgroundColor: '#ffffff',
7747
+ color: '#333',
7748
+ cursor: disabled ? 'not-allowed' : 'pointer',
7749
+ opacity: disabled ? 0.6 : 1
7750
+ }
7751
+ }, "\u91CD\u7F6E\u9884\u89C8")));
7752
+ };
7753
+ /* harmony default export */ const editor_EnhancedThemeEditor = (EnhancedThemeEditor);
6958
7754
  ;// ./src/core/components/ErrorBoundary.tsx
6959
7755
  var __extends = undefined && undefined.__extends || function () {
6960
7756
  var extendStatics = function (d, b) {
@@ -9287,7 +10083,7 @@ function useChartTools(instance) {
9287
10083
  // ============================================================================
9288
10084
  // 导出
9289
10085
  // ============================================================================
9290
- var version = '1.4.0';
10086
+ var hooks_version = '1.4.0';
9291
10087
  // 新增数据转换 hooks
9292
10088
 
9293
10089
  /* harmony default export */ const hooks = ({
@@ -9308,7 +10104,7 @@ var version = '1.4.0';
9308
10104
  ;// ./src/index.ts
9309
10105
  /**
9310
10106
  * TaroViz - 基于 Taro 和 ECharts 的多端图表组件库
9311
- * @version 1.2.1
10107
+ * @version 1.6.0
9312
10108
  */
9313
10109
 
9314
10110
  // 核心工具函数
@@ -9322,7 +10118,7 @@ var version = '1.4.0';
9322
10118
 
9323
10119
 
9324
10120
 
9325
- // 扩展图表组件 (新增)
10121
+ // 扩展图表组件
9326
10122
 
9327
10123
 
9328
10124
 
@@ -9330,22 +10126,26 @@ var version = '1.4.0';
9330
10126
 
9331
10127
 
9332
10128
 
10129
+ // v1.6.0 新增图表组件
10130
+
10131
+
9333
10132
  // 适配器
9334
10133
 
9335
10134
 
9336
10135
 
9337
10136
 
9338
- // 主题管理器 (新增)
10137
+ // 主题管理器
9339
10138
 
9340
10139
  // 编辑器
9341
10140
 
9342
- // 错误边界组件 (新增)
9343
10141
 
9344
- // 懒加载组件 (新增)
10142
+ // 错误边界组件
10143
+
10144
+ // 懒加载组件
9345
10145
 
9346
- // 标注系统 (新增)
10146
+ // 标注系统
9347
10147
 
9348
- // 导出工具 (新增)
10148
+ // 导出工具
9349
10149
 
9350
10150
  // Hooks
9351
10151
 
@@ -9353,8 +10153,8 @@ var version = '1.4.0';
9353
10153
  * 库信息
9354
10154
  */
9355
10155
  var src_name = 'taroviz';
9356
- var src_version = '1.4.0';
9357
- export { AnnotationPresets, components_BaseChart as BaseChart, candlestick as CandlestickChart, ErrorBoundary, graph as GraphChart, LazyChartRegistry, PRESET_THEMES, editor_ThemeEditor as ThemeEditor, wordcloud as WordCloudChart, convertAnnotationToMarkArea, convertAnnotationToMarkLine, convertAnnotationToScatter, createCompositeAnnotation, createLazyChart, darkTheme, defaultTheme, exportChart, getDarkThemes, getLightThemes, getRegisteredThemes, getTheme, getThemeByName, getThemesByTag, src_name as name, preloadAllCharts, preloadChart, registerTheme, switchTheme, themeManager, useAnnotation, useChart, useChartData, useChartTheme, useChartTools, useDataPolling, useDataTransform, useEvents, useExport, useFullscreen, useLoading, useOption, useResize, useResponsive, useTableTransform, useThemeSwitcher, useTimeSeriesTransform, src_version as version, withErrorBoundary, withLazyLoad };
10156
+ var src_version = '1.6.0';
10157
+ export { AnnotationPresets, components_BaseChart as BaseChart, boxplot as BoxplotChart, candlestick as CandlestickChart, editor_EnhancedThemeEditor as EnhancedThemeEditor, ErrorBoundary, graph as GraphChart, LazyChartRegistry, PRESET_THEMES, parallel as ParallelChart, editor_ThemeEditor as ThemeEditor, wordcloud as WordCloudChart, convertAnnotationToMarkArea, convertAnnotationToMarkLine, convertAnnotationToScatter, createCompositeAnnotation, createLazyChart, darkTheme, defaultTheme, exportChart, getDarkThemes, getLightThemes, getRegisteredThemes, getTheme, getThemeByName, getThemesByTag, src_name as name, preloadAllCharts, preloadChart, registerTheme, switchTheme, themeManager, useAnnotation, useChart, useChartData, useChartTheme, useChartTools, useDataPolling, useDataTransform, useEvents, useExport, useFullscreen, useLoading, useOption, useResize, useResponsive, useTableTransform, useThemeSwitcher, useTimeSeriesTransform, src_version as version, withErrorBoundary, withLazyLoad };
9358
10158
  export const BarChart = bar["default"];
9359
10159
  export const FunnelChart = funnel["default"];
9360
10160
  export const GaugeChart = gauge["default"];