@seafile/sdoc-editor 0.3.25 → 0.3.26-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/api/seafile-api.js +20 -0
  2. package/dist/basic-sdk/editor/sdoc-editor.js +20 -2
  3. package/dist/basic-sdk/extension/constants/element-type.js +1 -0
  4. package/dist/basic-sdk/extension/constants/index.js +2 -2
  5. package/dist/basic-sdk/extension/constants/menus-config.js +6 -1
  6. package/dist/basic-sdk/extension/plugins/chart/chart-components/base-setting/index.js +46 -0
  7. package/dist/basic-sdk/extension/plugins/chart/chart-components/chart-type-setting/index.css +29 -0
  8. package/dist/basic-sdk/extension/plugins/chart/chart-components/chart-type-setting/index.js +23 -0
  9. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/column-setting.js +119 -0
  10. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/data-sort-setting.js +54 -0
  11. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/date-granularities.js +55 -0
  12. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/dtable-select-setting.js +86 -0
  13. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/geolocation-granularities.js +97 -0
  14. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/groupby-numeric-item.js +108 -0
  15. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/groupby-numeric-items.js +87 -0
  16. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/include-empty-setting.js +35 -0
  17. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/summary-field-setting.js +64 -0
  18. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/summary-method-setting.js +61 -0
  19. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/summary-type-setting.js +74 -0
  20. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/x-axis-group-setting.js +108 -0
  21. package/dist/basic-sdk/extension/plugins/chart/chart-components/common-settings/y-axis-group-settings.js +182 -0
  22. package/dist/basic-sdk/extension/plugins/chart/chart-components/seatable-radio/index.js +28 -0
  23. package/dist/basic-sdk/extension/plugins/chart/chart-components/seatable-radio/style.css +52 -0
  24. package/dist/basic-sdk/extension/plugins/chart/chart-components/table-setting/index.js +46 -0
  25. package/dist/basic-sdk/extension/plugins/chart/chart-components/toggle-setting/index.js +27 -0
  26. package/dist/basic-sdk/extension/plugins/chart/chart-components/toggle-setting/style.css +29 -0
  27. package/dist/basic-sdk/extension/plugins/chart/chart-edit-dialog/index.css +22 -0
  28. package/dist/basic-sdk/extension/plugins/chart/chart-edit-dialog/index.js +50 -0
  29. package/dist/basic-sdk/extension/plugins/chart/chart-setting/index.css +24 -0
  30. package/dist/basic-sdk/extension/plugins/chart/chart-setting/index.js +115 -0
  31. package/dist/basic-sdk/extension/plugins/chart/chart-utils/common-utils/base-utils.js +349 -0
  32. package/dist/basic-sdk/extension/plugins/chart/chart-utils/common-utils/dtable-utils.js +147 -0
  33. package/dist/basic-sdk/extension/plugins/chart/chart-utils/histogram-bar-utils.js +84 -0
  34. package/dist/basic-sdk/extension/plugins/chart/constants/date-constants.js +9 -0
  35. package/dist/basic-sdk/extension/plugins/chart/constants/geolocation-constants.js +11 -0
  36. package/dist/basic-sdk/extension/plugins/chart/constants/index.js +109 -0
  37. package/dist/basic-sdk/extension/plugins/chart/constants/special-column-types.js +7 -0
  38. package/dist/basic-sdk/extension/plugins/chart/constants/summary-constants.js +18 -0
  39. package/dist/basic-sdk/extension/plugins/chart/helpers.js +82 -0
  40. package/dist/basic-sdk/extension/plugins/chart/hover-menu/index.css +55 -0
  41. package/dist/basic-sdk/extension/plugins/chart/hover-menu/index.js +55 -0
  42. package/dist/basic-sdk/extension/plugins/chart/index.js +12 -0
  43. package/dist/basic-sdk/extension/plugins/chart/menu/index.js +23 -0
  44. package/dist/basic-sdk/extension/plugins/chart/model.js +33 -0
  45. package/dist/basic-sdk/extension/plugins/chart/plugin.js +20 -0
  46. package/dist/basic-sdk/extension/plugins/chart/render-elem.css +26 -0
  47. package/dist/basic-sdk/extension/plugins/chart/render-elem.js +284 -0
  48. package/dist/basic-sdk/extension/plugins/index.js +3 -2
  49. package/dist/basic-sdk/extension/plugins/link/hover/index.js +3 -1
  50. package/dist/basic-sdk/extension/plugins/link/render-elem.js +4 -3
  51. package/dist/basic-sdk/extension/render/custom-element.js +10 -4
  52. package/dist/basic-sdk/extension/toolbar/header-toolbar/insert-toolbar/index.js +2 -1
  53. package/dist/components/doc-operations/more-operations.js +21 -12
  54. package/dist/constants/index.js +3 -0
  55. package/dist/context.js +40 -0
  56. package/package.json +7 -1
  57. package/public/locales/en/sdoc-editor.json +34 -1
  58. package/public/locales/zh_CN/sdoc-editor.json +35 -1
  59. package/public/media/{sdoc-editor-font.css → iconfont.css} +10 -10
  60. package/public/media/sdoc-editor-font/iconfont.eot +0 -0
  61. package/public/media/sdoc-editor-font/iconfont.svg +2 -2
  62. package/public/media/sdoc-editor-font/iconfont.ttf +0 -0
  63. package/public/media/sdoc-editor-font/iconfont.woff +0 -0
  64. package/public/media/sdoc-editor-font/iconfont.woff2 +0 -0
@@ -0,0 +1,109 @@
1
+ export const internalFilePath = '/_Internal/seatable-integration.json';
2
+ export const DEFAULT_LABEL_FONT_SIZE = 12;
3
+ export const DEFAULT_NUMBER_FORMAT_OBJECT = {
4
+ format: 'number'
5
+ };
6
+ export const STATISTICS_COUNT_TYPE = {
7
+ COUNT: 'count',
8
+ ADVANCED: 'advanced',
9
+ DISTRICT: 'district',
10
+ CITY: 'city',
11
+ PROVINCE: 'province',
12
+ MAX: 'Max',
13
+ MEAN: 'Mean',
14
+ MIN: 'Min',
15
+ SUM: 'Sum',
16
+ DAY: 'day',
17
+ WEEK: 'week',
18
+ MONTH: 'month',
19
+ QUARTER: 'quarter',
20
+ YEAR: 'year',
21
+ ROW_COUNT: 'Row_count'
22
+ };
23
+ export const STAT_TYPE = {
24
+ MAP: 'map',
25
+ MAP_BUBBLE: 'map_bubble',
26
+ HEAT_MAP: 'heat_map',
27
+ WORLD_MAP: 'world_map',
28
+ WORLD_MAP_BUBBLE: 'world_map_bubble',
29
+ MIRROR: 'mirror',
30
+ BAR: 'chart_bar',
31
+ BAR_GROUP: 'chart_bar_group',
32
+ BAR_STACK: 'chart_bar_stack',
33
+ LINE: 'chart_line',
34
+ GROUP_LINE: 'chart_group_line',
35
+ PIE: 'chart_pie',
36
+ RING: 'chart_ring',
37
+ SCATTER: 'scatter_chart',
38
+ BASIC_NUMBER_CARD: 'basic_number_card',
39
+ HORIZONTAL_BAR: 'horizontal_bar',
40
+ HORIZONTAL_GROUP_BAR: 'horizontal_group_bar',
41
+ STACKED_HORIZONTAL_BAR: 'stacked_horizontal_bar',
42
+ COMBINATION_CHART: 'combination_chart',
43
+ TREND_CHART: 'trend_chart',
44
+ AREA_CHART: 'area_chart',
45
+ AREA_GROUP_CHART: 'area_group_chart',
46
+ COMPARE_BAR: 'compare_bar',
47
+ COMPLETENESS_CHART: 'completeness_chart',
48
+ DASHBOARD: 'dashboard',
49
+ GROUP_COMPLETENESS_CHART: 'group_completeness_chart',
50
+ TREEMAP: 'treemap',
51
+ PIVOT_TABLE: 'pivot_table'
52
+ };
53
+ export const DATA_SORT_TYPE = {
54
+ NOT_SORTED: 'not_sorted',
55
+ ASCENDING: 'ascending',
56
+ DESCENDING: 'descending'
57
+ };
58
+ export const DATA_SORT_TYPES = [DATA_SORT_TYPE.NOT_SORTED, DATA_SORT_TYPE.ASCENDING, DATA_SORT_TYPE.DESCENDING];
59
+ export const DATA_SORT_TYPE_LABEL = {
60
+ [DATA_SORT_TYPE.NOT_SORTED]: 'Not_sorted',
61
+ [DATA_SORT_TYPE.ASCENDING]: 'Ascending',
62
+ [DATA_SORT_TYPE.DESCENDING]: 'Descending'
63
+ };
64
+ export const STATISTIC_TYPE_SHOW = {
65
+ [STAT_TYPE.BAR]: 'Basic_histogram',
66
+ [STAT_TYPE.BAR_GROUP]: 'Grouped_histogram',
67
+ [STAT_TYPE.BAR_STACK]: 'Stacked_histogram',
68
+ [STAT_TYPE.COMPARE_BAR]: 'Time_comparison_histogram',
69
+ [STAT_TYPE.HORIZONTAL_BAR]: 'Basic_bar_chart',
70
+ [STAT_TYPE.HORIZONTAL_GROUP_BAR]: 'Grouped_bar_chart',
71
+ [STAT_TYPE.STACKED_HORIZONTAL_BAR]: 'Stacked_bar_chart',
72
+ [STAT_TYPE.COMPLETENESS]: 'COMPLETENESS',
73
+ [STAT_TYPE.COMPLETENESS_GROUP]: 'Grouped_COMPLETENESS',
74
+ [STAT_TYPE.LINE]: 'Basic_line_chart',
75
+ [STAT_TYPE.LINE_GROUP]: 'Grouped_line_chart',
76
+ [STAT_TYPE.AREA]: 'Area',
77
+ [STAT_TYPE.PIE]: 'Basic_pie_chart',
78
+ [STAT_TYPE.RING]: 'Ring_chart',
79
+ [STAT_TYPE.SCATTER]: 'Scatter_chart',
80
+ [STAT_TYPE.COMBINATION]: 'Combination',
81
+ [STAT_TYPE.MAP]: '中国地图',
82
+ [STAT_TYPE.MAP_BUBBLE]: '中国地图(气泡图)',
83
+ [STAT_TYPE.WORLD_MAP]: 'World_map',
84
+ [STAT_TYPE.WORLD_MAP_BUBBLE]: 'World_map_bubble',
85
+ [STAT_TYPE.HEAT_MAP]: 'Heat_map',
86
+ [STAT_TYPE.MIRROR]: 'Mirror_chart',
87
+ [STAT_TYPE.BASIC_NUMBER_CARD]: 'Basic_number_card',
88
+ [STAT_TYPE.TREND]: 'Trend',
89
+ [STAT_TYPE.DASHBOARD]: 'Gauge',
90
+ [STAT_TYPE.TABLE]: 'Pivot_table'
91
+ };
92
+ export const STATISTICS_COUNT_SHOW = {
93
+ Max: 'Max',
94
+ Mean: 'Mean',
95
+ Min: 'Min',
96
+ Sum: 'Sum',
97
+ Distinct_values: 'Number_of_distinct_values',
98
+ Row_count: 'Row_count',
99
+ advanced: 'Summarize_a_field',
100
+ city: 'By_city',
101
+ district: 'By_district_county',
102
+ province: 'By_province',
103
+ count: 'Count',
104
+ day: 'By_day',
105
+ week: 'By_week',
106
+ month: 'By_month',
107
+ quarter: 'By_quarter',
108
+ year: 'By_year'
109
+ };
@@ -0,0 +1,7 @@
1
+ import { CELL_TYPE } from 'dtable-sdk';
2
+ export const DATE_COLUMN_TYPES = [CELL_TYPE.DATE, CELL_TYPE.MTIME, CELL_TYPE.CTIME];
3
+ export const COLLABORATOR_COLUMN_TYPES = [CELL_TYPE.COLLABORATOR, CELL_TYPE.CREATOR, CELL_TYPE.LAST_MODIFIER];
4
+ export const GEOLOCATION_COLUMN_OPTIONS = [CELL_TYPE.GEOLOCATION];
5
+ export const FORMULA_COLUMN_TYPES = [CELL_TYPE.FORMULA, CELL_TYPE.LINK_FORMULA];
6
+ export const MULTIPLE_CELL_VALUE_COLUMN_TYPES = [CELL_TYPE.MULTIPLE_SELECT, CELL_TYPE.COLLABORATOR, CELL_TYPE.LINK];
7
+ export const NAME_FIELD_COLUMN_TYPES = [CELL_TYPE.TEXT, CELL_TYPE.COLLABORATOR, CELL_TYPE.SINGLE_SELECT];
@@ -0,0 +1,18 @@
1
+ export const GROUP_TYPES = {
2
+ COUNT: 'count',
3
+ SINGLE_NUMERIC_COLUMN: 'single_numeric_column',
4
+ MULTIPLE_NUMERIC_COLUMN: 'multiple_numeric_column'
5
+ };
6
+ export const SUMMARY_TYPE = {
7
+ COUNT: 'count',
8
+ ADVANCED: 'advanced'
9
+ };
10
+ export const SUMMARY_METHOD = ['Sum', 'Max', 'Min', 'Mean', 'Distinct_values'];
11
+ export const DATE_COLUMN_SUMMARY_METHOD = ['Max', 'Min'];
12
+ export const SUMMARY_METHOD_MAP = {
13
+ Sum: 'Sum',
14
+ Max: 'Max',
15
+ Min: 'Min',
16
+ Mean: 'Mean',
17
+ Distinct_values: 'Distinct_values'
18
+ };
@@ -0,0 +1,82 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import { Editor, Range, Transforms } from '@seafile/slate';
3
+ import context from '../../../../context';
4
+ import { HistogramBar } from './model';
5
+ import { generateEmptyElement, getNodeType, isTextNode, getParentNode } from '../../core';
6
+ import { CODE_BLOCK, TABLE, CHART } from '../../constants';
7
+ import { STAT_TYPE } from './constants';
8
+ import { internalFilePath } from './constants';
9
+ export const isInsertChartMenuDisabled = (editor, readonly) => {
10
+ if (readonly) return true;
11
+ const {
12
+ selection
13
+ } = editor;
14
+ if (selection === null) return true;
15
+ if (!Range.isCollapsed(selection)) return true;
16
+ const [match] = Editor.nodes(editor, {
17
+ match: n => {
18
+ let type = getNodeType(n);
19
+ if (!type && isTextNode(n) && n.id) {
20
+ const parentNode = getParentNode(editor.children, n.id);
21
+ type = getNodeType(parentNode);
22
+ }
23
+ if (type === CODE_BLOCK) return true;
24
+ if (type === TABLE) return true;
25
+ if (type.startsWith('header')) return true;
26
+ if (Editor.isVoid(editor, n)) return true;
27
+ return false;
28
+ },
29
+ universal: true
30
+ });
31
+ if (match) return true;
32
+ return false;
33
+ };
34
+ export const generateChartNode = () => {
35
+ const element = generateEmptyElement(CHART);
36
+ const model = new HistogramBar({});
37
+ return _objectSpread(_objectSpread({}, element), {}, {
38
+ statItem: _objectSpread(_objectSpread({}, model), {}, {
39
+ _id: element.id,
40
+ type: STAT_TYPE.BAR
41
+ })
42
+ });
43
+ };
44
+ export const insertChart = editor => {
45
+ const chartNode = generateChartNode();
46
+ const path = Editor.path(editor, editor.selection);
47
+ Transforms.insertNodes(editor, chartNode, {
48
+ at: [path[0]]
49
+ });
50
+ };
51
+ export const isInViewPort = element => {
52
+ const viewHeight = window.innerHeight || document.documentElement.clientHeight;
53
+ const {
54
+ top
55
+ } = element.getBoundingClientRect();
56
+ return top >= 0 && top <= viewHeight;
57
+ };
58
+ export const getChartMetaData = async (statItem, dtableBases) => {
59
+ const {
60
+ base_id,
61
+ table_name
62
+ } = statItem;
63
+ const integrationConfig = dtableBases === null || dtableBases === void 0 ? void 0 : dtableBases.find(item => item.base_api_token === base_id);
64
+ if (integrationConfig) {
65
+ const dtableServer = await context.getDtableServer(integrationConfig);
66
+ const res = await context.getDtableMetaData(dtableServer, table_name);
67
+ if (res === null || res === void 0 ? void 0 : res.data) {
68
+ return res.data;
69
+ }
70
+ }
71
+ };
72
+ export const getDtableBases = async editor => {
73
+ const fileLinkRes = await context.getFileDownloadLink(internalFilePath);
74
+ console.log(11, fileLinkRes);
75
+ if (fileLinkRes === null || fileLinkRes === void 0 ? void 0 : fileLinkRes.data) {
76
+ const fileContentRes = await context.getFileContentByLink(fileLinkRes.data);
77
+ if (fileContentRes === null || fileContentRes === void 0 ? void 0 : fileContentRes.data) {
78
+ editor.dtableBases = fileContentRes.data;
79
+ editor.onChange();
80
+ }
81
+ }
82
+ };
@@ -0,0 +1,55 @@
1
+ .sdoc-chart-hover-menu-container {
2
+ position: absolute;
3
+ height: 42px;
4
+ z-index: 101;
5
+ width: auto;
6
+ }
7
+
8
+ .sdoc-chart-hover-menu-container .hover-menu-container {
9
+ height: 36px;
10
+ padding: 7px 8px;
11
+ background-color: #fff;
12
+ display: flex;
13
+ justify-content: flex-start;
14
+ align-items: center;
15
+ border-radius: 3px;
16
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
17
+ border: 1px solid #e8e8e8;
18
+ }
19
+
20
+ .sdoc-chart-hover-menu-container .hover-menu-container > span:not(:last-of-type) {
21
+ padding: 0 6px;
22
+ border-right: 1px solid #e5e5e5;
23
+ }
24
+
25
+ .sdoc-chart-hover-menu-container .hover-menu-container .op-item {
26
+ position: relative;
27
+ font-size: 12px;
28
+ color: #212529;
29
+ padding: 0 5px;
30
+ border-radius: 2px;
31
+ min-width: 24px;
32
+ height: 24px;
33
+ display: inline-flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ }
37
+
38
+ .sdoc-chart-hover-menu-container .hover-menu-container .op-item:hover {
39
+ color: #212529;
40
+ text-decoration: none;
41
+ background: #f1f1f1;
42
+ }
43
+
44
+ .sdoc-chart-hover-menu-container .op-group-item:last-child .op-item {
45
+ margin-left: 8px;
46
+ }
47
+
48
+ .sdoc-chart-hover-menu-container .hover-menu-container .active {
49
+ background: #f1f1f1;
50
+ }
51
+
52
+ .sdoc-chart-hover-menu-container .hover-menu-container .icon-font {
53
+ font-size: 12px;
54
+ color: #999999;
55
+ }
@@ -0,0 +1,55 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { withTranslation } from 'react-i18next';
3
+ import classnames from 'classnames';
4
+ import { ElementPopover } from '../../../commons';
5
+ import Tooltip from '../../../../../components/tooltip';
6
+ import './index.css';
7
+ const ChartHoverMenu = _ref => {
8
+ let {
9
+ editor,
10
+ menuPosition,
11
+ element,
12
+ onEditChart,
13
+ onHideChartHoverMenu,
14
+ t
15
+ } = _ref;
16
+ const [isShowTooltip, setIsShowTooltip] = useState(false);
17
+ useEffect(() => {
18
+ setIsShowTooltip(true);
19
+ }, []);
20
+ return /*#__PURE__*/React.createElement(ElementPopover, null, /*#__PURE__*/React.createElement("div", {
21
+ className: "sdoc-chart-hover-menu-container",
22
+ style: menuPosition
23
+ }, /*#__PURE__*/React.createElement("div", {
24
+ className: "hover-menu-container"
25
+ }, /*#__PURE__*/React.createElement("span", {
26
+ className: "op-group-item"
27
+ }, /*#__PURE__*/React.createElement("span", {
28
+ id: "sdoc_chart_edit",
29
+ role: "button",
30
+ className: "op-item",
31
+ onClick: onEditChart
32
+ }, /*#__PURE__*/React.createElement("i", {
33
+ className: "sdocfont sdoc-rename icon-font"
34
+ }), isShowTooltip && /*#__PURE__*/React.createElement(Tooltip, {
35
+ target: "sdoc_chart_edit",
36
+ placement: "top",
37
+ fade: true
38
+ }, t('Edit_chart')))), /*#__PURE__*/React.createElement("span", {
39
+ className: "op-group-item"
40
+ }, /*#__PURE__*/React.createElement("span", {
41
+ id: "sdoc_chart_full_screen_mode",
42
+ role: "button",
43
+ className: "op-item",
44
+ onClick: e => {
45
+ console.log(33);
46
+ }
47
+ }, /*#__PURE__*/React.createElement("i", {
48
+ className: "sdocfont sdoc-fullscreen icon-font"
49
+ }), isShowTooltip && /*#__PURE__*/React.createElement(Tooltip, {
50
+ target: "sdoc_chart_full_screen_mode",
51
+ placement: "top",
52
+ fade: true
53
+ }, t('Full_screen_mode')))))));
54
+ };
55
+ export default withTranslation('sdoc-editor')(ChartHoverMenu);
@@ -0,0 +1,12 @@
1
+ import { CHART } from '../../constants';
2
+ import ChartMenu from './menu';
3
+ import withChart from './plugin';
4
+ import renderChart from './render-elem';
5
+ const ChartPlugin = {
6
+ type: CHART,
7
+ nodeType: 'element',
8
+ editorMenus: [ChartMenu],
9
+ editorPlugin: withChart,
10
+ renderElements: [renderChart]
11
+ };
12
+ export default ChartPlugin;
@@ -0,0 +1,23 @@
1
+ import React, { useCallback } from 'react';
2
+ import { isInsertChartMenuDisabled, insertChart } from '../helpers';
3
+ import { MENUS_CONFIG_MAP, CHART } from '../../../constants';
4
+ import DropdownMenuItem from '../../../commons/dropdown-menu-item';
5
+ const ChartMenu = _ref => {
6
+ let {
7
+ editor,
8
+ readonly,
9
+ toggle
10
+ } = _ref;
11
+ const disabled = isInsertChartMenuDisabled(editor, readonly);
12
+ const menuConfig = MENUS_CONFIG_MAP[CHART];
13
+ const onInsertChart = useCallback(() => {
14
+ insertChart(editor);
15
+ toggle && toggle();
16
+ }, [editor, toggle]);
17
+ return /*#__PURE__*/React.createElement(DropdownMenuItem, {
18
+ disabled: disabled,
19
+ menuConfig: menuConfig,
20
+ onClick: onInsertChart
21
+ });
22
+ };
23
+ export default ChartMenu;
@@ -0,0 +1,33 @@
1
+ export default class CommonModel {
2
+ constructor(object) {
3
+ this.base_id = object.base_id;
4
+ this._id = object._id;
5
+ this.name = object.name;
6
+ this.type = object.type;
7
+ this.table_name = object.table_name;
8
+ this.table_id = object.table_id;
9
+ this.view_id = object.view_id;
10
+ this.bg_image = object.bg_image;
11
+ this.background_transparency = object.background_transparency;
12
+ this.background_color = object.background_color;
13
+ this.display_border = object.display_border;
14
+ }
15
+ }
16
+ export class HistogramBar extends CommonModel {
17
+ constructor(object) {
18
+ super(object);
19
+ this.x_axis_column_key = object.x_axis_column_key;
20
+ this.x_axis_date_granularity = object.x_axis_date_granularity;
21
+ this.x_axis_geolocation_granularity = object.x_axis_geolocation_granularity;
22
+ this.x_axis_include_empty = object.x_axis_include_empty;
23
+ this.show_x_axis_label = object.show_x_axis_label;
24
+ this.x_axis_label_position = object.x_axis_label_position;
25
+ this.y_axis_column_key = object.y_axis_column_key;
26
+ this.y_axis_summary_method = object.y_axis_summary_method;
27
+ this.y_axis_summary_type = object.y_axis_summary_type;
28
+ this.show_y_axis_label = object.show_y_axis_label;
29
+ this.y_axis_label_position = object.y_axis_label_position;
30
+ this.y_axis_label_color = object.y_axis_label_color;
31
+ this.y_axis_label_color_rules = object.y_axis_label_color_rules;
32
+ }
33
+ }
@@ -0,0 +1,20 @@
1
+ import { CHART } from '../../constants';
2
+ const withChart = editor => {
3
+ const {
4
+ isVoid
5
+ } = editor;
6
+ const newEditor = editor;
7
+
8
+ // Rewrite isVoid
9
+ newEditor.isVoid = elem => {
10
+ const {
11
+ type
12
+ } = elem;
13
+ if (type === CHART) {
14
+ return true;
15
+ }
16
+ return isVoid(elem);
17
+ };
18
+ return newEditor;
19
+ };
20
+ export default withChart;
@@ -0,0 +1,26 @@
1
+ .sdoc-chart-container {
2
+ width: 100%;
3
+ height: 300px;
4
+ padding: 8px;
5
+ cursor: pointer;
6
+ }
7
+
8
+ .sdoc-chart-container .sdoc-chart-view {
9
+ position: relative;
10
+ background-color: #f5f5f5;
11
+ border-radius: 4px;
12
+ width: 100%;
13
+ height: 100%;
14
+ padding: 10px;
15
+ }
16
+
17
+ .sdoc-chart-container .active {
18
+ box-shadow: 0 0 0 2px #007bff;
19
+ }
20
+
21
+ .sdoc-chart-container .sdoc-chart-view .sdoc-chart-tip {
22
+ top: 50%;
23
+ left: 50%;
24
+ transform: translate(-50%, -50%);
25
+ position: absolute;
26
+ }