@visactor/vtable 0.13.4 → 0.13.5
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/cjs/PivotTable.d.ts +2 -1
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/body-helper/style/CheckboxStyle.d.ts +8 -2
- package/cjs/body-helper/style/CheckboxStyle.js +17 -3
- package/cjs/body-helper/style/CheckboxStyle.js.map +1 -1
- package/cjs/components/axis/get-axis-attributes.d.ts +7 -0
- package/cjs/components/axis/get-axis-attributes.js +13 -17
- package/cjs/components/axis/get-axis-attributes.js.map +1 -1
- package/cjs/components/legend/continue-legend/continue-legend.js +1 -0
- package/cjs/components/legend/continue-legend/continue-legend.js.map +1 -1
- package/cjs/components/legend/discrete-legend/discrete-legend.js +1 -0
- package/cjs/components/legend/discrete-legend/discrete-legend.js.map +1 -1
- package/cjs/components/title/title.js +7 -6
- package/cjs/components/title/title.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +1 -0
- package/cjs/core/BaseTable.js +28 -2
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/dataset/dataset.d.ts +0 -1
- package/cjs/dataset/dataset.js +3 -43
- package/cjs/dataset/dataset.js.map +1 -1
- package/cjs/header-helper/header-helper.d.ts +2 -1
- package/cjs/header-helper/style/CheckboxStyle.d.ts +8 -2
- package/cjs/header-helper/style/CheckboxStyle.js +15 -1
- package/cjs/header-helper/style/CheckboxStyle.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-config.js +71 -35
- package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-domain.d.ts +1 -1
- package/cjs/layout/chart-helper/get-axis-domain.js +18 -8
- package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
- package/cjs/layout/chart-helper/get-chart-spec.js +33 -17
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/cjs/layout/chart-helper/zero-align.js.map +1 -0
- package/cjs/layout/pivot-header-layout.js +20 -11
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/layout/simple-header-layout.js +2 -1
- package/cjs/layout/simple-header-layout.js.map +1 -1
- package/cjs/render/layout/arc.d.ts +10 -21
- package/cjs/render/layout/arc.js +7 -9
- package/cjs/render/layout/arc.js.map +1 -1
- package/cjs/render/layout/circle.d.ts +10 -17
- package/cjs/render/layout/circle.js +5 -6
- package/cjs/render/layout/circle.js.map +1 -1
- package/cjs/render/layout/container.d.ts +10 -48
- package/cjs/render/layout/container.js +15 -100
- package/cjs/render/layout/container.js.map +1 -1
- package/cjs/render/layout/group-element.d.ts +4 -24
- package/cjs/render/layout/group-element.js +4 -40
- package/cjs/render/layout/group-element.js.map +1 -1
- package/cjs/render/layout/group.d.ts +12 -0
- package/cjs/render/layout/group.js +18 -0
- package/cjs/render/layout/group.js.map +1 -0
- package/cjs/render/layout/icon.d.ts +10 -10
- package/cjs/render/layout/icon.js +11 -9
- package/cjs/render/layout/icon.js.map +1 -1
- package/cjs/render/layout/image.d.ts +10 -17
- package/cjs/render/layout/image.js +6 -7
- package/cjs/render/layout/image.js.map +1 -1
- package/cjs/render/layout/index.d.ts +2 -0
- package/cjs/render/layout/index.js +2 -1
- package/cjs/render/layout/index.js.map +1 -1
- package/cjs/render/layout/percent-calc.d.ts +1 -4
- package/cjs/render/layout/percent-calc.js.map +1 -1
- package/cjs/render/layout/rect.d.ts +10 -20
- package/cjs/render/layout/rect.js +5 -6
- package/cjs/render/layout/rect.js.map +1 -1
- package/cjs/render/layout/tag.d.ts +14 -0
- package/cjs/render/layout/tag.js +21 -0
- package/cjs/render/layout/tag.js.map +1 -0
- package/cjs/render/layout/text.d.ts +9 -46
- package/cjs/render/layout/text.js +8 -18
- package/cjs/render/layout/text.js.map +1 -1
- package/cjs/scenegraph/component/custom.d.ts +2 -2
- package/cjs/scenegraph/component/custom.js +14 -6
- package/cjs/scenegraph/component/custom.js.map +1 -1
- package/cjs/scenegraph/graphic/group.d.ts +6 -2
- package/cjs/scenegraph/graphic/group.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.d.ts +3 -3
- package/cjs/scenegraph/group-creater/cell-helper.js +40 -40
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +22 -3
- package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +2 -2
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js +2 -2
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/column-helper.d.ts +3 -2
- package/cjs/scenegraph/group-creater/column-helper.js +78 -46
- package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.js +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +2 -3
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +4 -5
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
- package/cjs/scenegraph/icon/icon-update.d.ts +17 -0
- package/cjs/scenegraph/icon/icon-update.js +165 -0
- package/cjs/scenegraph/icon/icon-update.js.map +1 -0
- package/cjs/scenegraph/layout/compute-col-width.js +22 -15
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
- package/cjs/scenegraph/layout/compute-row-height.js +49 -15
- package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
- package/cjs/scenegraph/layout/move-cell.js +8 -27
- package/cjs/scenegraph/layout/move-cell.js.map +1 -1
- package/cjs/scenegraph/layout/update-height.js +39 -29
- package/cjs/scenegraph/layout/update-height.js.map +1 -1
- package/cjs/scenegraph/layout/update-row.js +6 -2
- package/cjs/scenegraph/layout/update-row.js.map +1 -1
- package/cjs/scenegraph/layout/update-width.js +43 -29
- package/cjs/scenegraph/layout/update-width.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +7 -13
- package/cjs/scenegraph/scenegraph.js +25 -141
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/stick-text/index.js +77 -38
- package/cjs/scenegraph/stick-text/index.js.map +1 -1
- package/cjs/scenegraph/utils/is-merge-cell-group.d.ts +2 -0
- package/cjs/scenegraph/utils/is-merge-cell-group.js +16 -0
- package/cjs/scenegraph/utils/is-merge-cell-group.js.map +1 -0
- package/cjs/scenegraph/utils/text-icon-layout.d.ts +1 -1
- package/cjs/scenegraph/utils/text-icon-layout.js +11 -5
- package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
- package/cjs/state/cell-move/index.js +14 -12
- package/cjs/state/cell-move/index.js.map +1 -1
- package/cjs/state/hover/is-cell-hover.js +4 -2
- package/cjs/state/hover/is-cell-hover.js.map +1 -1
- package/cjs/state/hover/update-cell.js +10 -5
- package/cjs/state/hover/update-cell.js.map +1 -1
- package/cjs/state/state.js +1 -1
- package/cjs/state/state.js.map +1 -1
- package/cjs/themes/BRIGHT.js +2 -1
- package/cjs/themes/DARK.js +1 -2
- package/cjs/tools/calc.js +1 -1
- package/cjs/tools/util.js +1 -1
- package/cjs/tools/util.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +9 -1
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/column/style.d.ts +4 -1
- package/cjs/ts-types/column/style.js.map +1 -1
- package/cjs/ts-types/common.d.ts +2 -0
- package/cjs/ts-types/common.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +13 -0
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/dist/vtable.js +22152 -11275
- package/dist/vtable.min.js +2 -2
- package/es/PivotTable.d.ts +2 -1
- package/es/PivotTable.js.map +1 -1
- package/es/body-helper/style/CheckboxStyle.d.ts +8 -2
- package/es/body-helper/style/CheckboxStyle.js +17 -3
- package/es/body-helper/style/CheckboxStyle.js.map +1 -1
- package/es/components/axis/get-axis-attributes.d.ts +7 -0
- package/es/components/axis/get-axis-attributes.js +1 -1
- package/es/components/axis/get-axis-attributes.js.map +1 -1
- package/es/components/legend/continue-legend/continue-legend.js +1 -0
- package/es/components/legend/continue-legend/continue-legend.js.map +1 -1
- package/es/components/legend/discrete-legend/discrete-legend.js +1 -0
- package/es/components/legend/discrete-legend/discrete-legend.js.map +1 -1
- package/es/components/title/title.js +6 -6
- package/es/components/title/title.js.map +1 -1
- package/es/core/BaseTable.d.ts +1 -0
- package/es/core/BaseTable.js +28 -2
- package/es/core/BaseTable.js.map +1 -1
- package/es/dataset/dataset.d.ts +0 -1
- package/es/dataset/dataset.js +2 -46
- package/es/dataset/dataset.js.map +1 -1
- package/es/header-helper/header-helper.d.ts +2 -1
- package/es/header-helper/style/CheckboxStyle.d.ts +8 -2
- package/es/header-helper/style/CheckboxStyle.js +15 -1
- package/es/header-helper/style/CheckboxStyle.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/chart-helper/get-axis-config.js +72 -33
- package/es/layout/chart-helper/get-axis-config.js.map +1 -1
- package/es/layout/chart-helper/get-axis-domain.d.ts +1 -1
- package/es/layout/chart-helper/get-axis-domain.js +20 -8
- package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
- package/es/layout/chart-helper/get-chart-spec.js +33 -12
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/es/layout/chart-helper/zero-align.js.map +1 -0
- package/es/layout/pivot-header-layout.js +20 -11
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/layout/simple-header-layout.js +2 -1
- package/es/layout/simple-header-layout.js.map +1 -1
- package/es/render/layout/arc.d.ts +10 -21
- package/es/render/layout/arc.js +7 -7
- package/es/render/layout/arc.js.map +1 -1
- package/es/render/layout/circle.d.ts +10 -17
- package/es/render/layout/circle.js +7 -6
- package/es/render/layout/circle.js.map +1 -1
- package/es/render/layout/container.d.ts +10 -48
- package/es/render/layout/container.js +16 -107
- package/es/render/layout/container.js.map +1 -1
- package/es/render/layout/group-element.d.ts +4 -24
- package/es/render/layout/group-element.js +4 -42
- package/es/render/layout/group-element.js.map +1 -1
- package/es/render/layout/group.d.ts +12 -0
- package/es/render/layout/group.js +12 -0
- package/es/render/layout/group.js.map +1 -0
- package/es/render/layout/icon.d.ts +10 -10
- package/es/render/layout/icon.js +12 -10
- package/es/render/layout/icon.js.map +1 -1
- package/es/render/layout/image.d.ts +10 -17
- package/es/render/layout/image.js +8 -7
- package/es/render/layout/image.js.map +1 -1
- package/es/render/layout/index.d.ts +2 -0
- package/es/render/layout/index.js +4 -0
- package/es/render/layout/index.js.map +1 -1
- package/es/render/layout/percent-calc.d.ts +1 -4
- package/es/render/layout/percent-calc.js.map +1 -1
- package/es/render/layout/rect.d.ts +10 -20
- package/es/render/layout/rect.js +7 -6
- package/es/render/layout/rect.js.map +1 -1
- package/es/render/layout/tag.d.ts +14 -0
- package/es/render/layout/tag.js +15 -0
- package/es/render/layout/tag.js.map +1 -0
- package/es/render/layout/text.d.ts +9 -46
- package/es/render/layout/text.js +10 -18
- package/es/render/layout/text.js.map +1 -1
- package/es/scenegraph/component/custom.d.ts +2 -2
- package/es/scenegraph/component/custom.js +15 -7
- package/es/scenegraph/component/custom.js.map +1 -1
- package/es/scenegraph/graphic/group.d.ts +6 -2
- package/es/scenegraph/graphic/group.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.d.ts +3 -3
- package/es/scenegraph/group-creater/cell-helper.js +41 -40
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
- package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +22 -2
- package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +2 -2
- package/es/scenegraph/group-creater/cell-type/text-cell.js +2 -2
- package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/es/scenegraph/group-creater/column-helper.d.ts +3 -2
- package/es/scenegraph/group-creater/column-helper.js +75 -44
- package/es/scenegraph/group-creater/column-helper.js.map +1 -1
- package/es/scenegraph/group-creater/progress/proxy.js +1 -1
- package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +3 -4
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +3 -6
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
- package/es/scenegraph/icon/icon-update.d.ts +17 -0
- package/es/scenegraph/icon/icon-update.js +154 -0
- package/es/scenegraph/icon/icon-update.js.map +1 -0
- package/es/scenegraph/layout/compute-col-width.js +23 -14
- package/es/scenegraph/layout/compute-col-width.js.map +1 -1
- package/es/scenegraph/layout/compute-row-height.js +51 -15
- package/es/scenegraph/layout/compute-row-height.js.map +1 -1
- package/es/scenegraph/layout/move-cell.js +8 -27
- package/es/scenegraph/layout/move-cell.js.map +1 -1
- package/es/scenegraph/layout/update-height.js +41 -27
- package/es/scenegraph/layout/update-height.js.map +1 -1
- package/es/scenegraph/layout/update-row.js +6 -1
- package/es/scenegraph/layout/update-row.js.map +1 -1
- package/es/scenegraph/layout/update-width.js +45 -27
- package/es/scenegraph/layout/update-width.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +7 -13
- package/es/scenegraph/scenegraph.js +25 -142
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/stick-text/index.js +75 -38
- package/es/scenegraph/stick-text/index.js.map +1 -1
- package/es/scenegraph/utils/is-merge-cell-group.d.ts +2 -0
- package/es/scenegraph/utils/is-merge-cell-group.js +6 -0
- package/es/scenegraph/utils/is-merge-cell-group.js.map +1 -0
- package/es/scenegraph/utils/text-icon-layout.d.ts +1 -1
- package/es/scenegraph/utils/text-icon-layout.js +11 -5
- package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
- package/es/state/cell-move/index.js +14 -12
- package/es/state/cell-move/index.js.map +1 -1
- package/es/state/hover/is-cell-hover.js +3 -1
- package/es/state/hover/is-cell-hover.js.map +1 -1
- package/es/state/hover/update-cell.js +4 -2
- package/es/state/hover/update-cell.js.map +1 -1
- package/es/state/state.js +1 -1
- package/es/state/state.js.map +1 -1
- package/es/themes/BRIGHT.js +2 -1
- package/es/themes/DARK.js +1 -2
- package/es/tools/calc.js +1 -1
- package/es/tools/util.js +1 -1
- package/es/tools/util.js.map +1 -1
- package/es/ts-types/base-table.d.ts +9 -1
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/column/style.d.ts +4 -1
- package/es/ts-types/column/style.js.map +1 -1
- package/es/ts-types/common.d.ts +2 -0
- package/es/ts-types/common.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +13 -0
- package/es/ts-types/table-engine.js.map +1 -1
- package/package.json +2 -2
- package/cjs/dataset/util/zero-align.js.map +0 -1
- package/cjs/scenegraph/header-icon/layout.d.ts +0 -3
- package/cjs/scenegraph/header-icon/layout.js +0 -75
- package/cjs/scenegraph/header-icon/layout.js.map +0 -1
- package/cjs/scenegraph/hover-state.d.ts +0 -14
- package/cjs/scenegraph/hover-state.js +0 -27
- package/cjs/scenegraph/hover-state.js.map +0 -1
- package/es/dataset/util/zero-align.js.map +0 -1
- package/es/scenegraph/header-icon/layout.d.ts +0 -3
- package/es/scenegraph/header-icon/layout.js +0 -69
- package/es/scenegraph/header-icon/layout.js.map +0 -1
- package/es/scenegraph/hover-state.d.ts +0 -14
- package/es/scenegraph/hover-state.js +0 -19
- package/es/scenegraph/hover-state.js.map +0 -1
- /package/cjs/{dataset/util → layout/chart-helper}/zero-align.d.ts +0 -0
- /package/cjs/{dataset/util → layout/chart-helper}/zero-align.js +0 -0
- /package/es/{dataset/util → layout/chart-helper}/zero-align.d.ts +0 -0
- /package/es/{dataset/util → layout/chart-helper}/zero-align.js +0 -0
|
@@ -13,7 +13,21 @@ class CheckboxStyle extends Style_1.Style {
|
|
|
13
13
|
return defaultStyle || (defaultStyle = new CheckboxStyle);
|
|
14
14
|
}
|
|
15
15
|
constructor(style = {}, headerStyle = {}) {
|
|
16
|
-
|
|
16
|
+
var _a, _b;
|
|
17
|
+
super(style, headerStyle), this._size = (null !== (_a = style.size) && void 0 !== _a ? _a : null == headerStyle ? void 0 : headerStyle.size) || 14,
|
|
18
|
+
this._spaceBetweenTextAndIcon = (null !== (_b = style.spaceBetweenTextAndIcon) && void 0 !== _b ? _b : null == headerStyle ? void 0 : headerStyle.spaceBetweenTextAndIcon) || 8;
|
|
19
|
+
}
|
|
20
|
+
get size() {
|
|
21
|
+
return this._size;
|
|
22
|
+
}
|
|
23
|
+
set size(size) {
|
|
24
|
+
this._size = size;
|
|
25
|
+
}
|
|
26
|
+
get spaceBetweenTextAndIcon() {
|
|
27
|
+
return this._spaceBetweenTextAndIcon;
|
|
28
|
+
}
|
|
29
|
+
set spaceBetweenTextAndIcon(spaceBetweenTextAndIcon) {
|
|
30
|
+
this._spaceBetweenTextAndIcon = spaceBetweenTextAndIcon;
|
|
17
31
|
}
|
|
18
32
|
clone() {
|
|
19
33
|
return new CheckboxStyle(this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["header-helper/style/CheckboxStyle.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAEhC,IAAI,YAA2B,CAAC;AAEhC,MAAa,aAAc,SAAQ,aAAK;
|
|
1
|
+
{"version":3,"sources":["header-helper/style/CheckboxStyle.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAEhC,IAAI,YAA2B,CAAC;AAEhC,MAAa,aAAc,SAAQ,aAAK;IAGtC,MAAM,KAAK,OAAO;QAChB,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,YAAY,QAA6B,EAAE,EAAE,cAAmC,EAAE;;QAChF,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,mCAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,wBAAwB,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,mCAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,IAAI,CAAC,IAAY;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,IAAI,uBAAuB;QACzB,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACvC,CAAC;IACD,IAAI,uBAAuB,CAAC,uBAA+B;QACzD,IAAI,CAAC,wBAAwB,GAAG,uBAAuB,CAAC;IAC1D,CAAC;IACD,KAAK;QACH,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACF;AA1BD,sCA0BC","file":"CheckboxStyle.js","sourcesContent":["import type { CheckboxStyleOption, IStyleOption } from '../../ts-types';\nimport { Style } from './Style';\n\nlet defaultStyle: CheckboxStyle;\n\nexport class CheckboxStyle extends Style {\n private _size: number;\n private _spaceBetweenTextAndIcon: number;\n static get DEFAULT(): CheckboxStyle {\n return defaultStyle ? defaultStyle : (defaultStyle = new CheckboxStyle());\n }\n constructor(style: CheckboxStyleOption = {}, headerStyle: CheckboxStyleOption = {}) {\n super(style, headerStyle);\n this._size = (style.size ?? headerStyle?.size) || 14;\n this._spaceBetweenTextAndIcon = (style.spaceBetweenTextAndIcon ?? headerStyle?.spaceBetweenTextAndIcon) || 8;\n }\n get size(): number {\n return this._size;\n }\n set size(size: number) {\n this._size = size;\n }\n get spaceBetweenTextAndIcon(): number {\n return this._spaceBetweenTextAndIcon;\n }\n set spaceBetweenTextAndIcon(spaceBetweenTextAndIcon: number) {\n this._spaceBetweenTextAndIcon = spaceBetweenTextAndIcon;\n }\n clone(): CheckboxStyle {\n return new CheckboxStyle(this);\n }\n}\n"]}
|
package/cjs/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import type { MousePointerCellEvent } from './ts-types/events';
|
|
|
12
12
|
import * as CustomLayout from './render/layout';
|
|
13
13
|
export { getDataCellPath } from './tools/get-data-path';
|
|
14
14
|
export * from './render/jsx';
|
|
15
|
-
export declare const version = "0.13.
|
|
15
|
+
export declare const version = "0.13.5";
|
|
16
16
|
export { TYPES, core, ListTable, ListTableConstructorOptions, PivotTable, PivotTableConstructorOptions, PivotChartConstructorOptions, PivotChart, IHeaderTreeDefine, IDimension, ColumnsDefine, ColumnDefine, LinkColumnDefine, ChartColumnDefine, ImageColumnDefine, SparklineColumnDefine, ProgressbarColumnDefine, TextColumnDefine, GroupColumnDefine, TextAlignType, TextBaselineType, themes, data, MousePointerCellEvent, getIcons, clearGlobal, register, DataStatistics, CustomLayout };
|
|
17
17
|
declare function getIcons(): {
|
|
18
18
|
[key: string]: TYPES.ColumnIconOption;
|
package/cjs/index.js
CHANGED
|
@@ -101,6 +101,6 @@ Object.defineProperty(exports, "getDataCellPath", {
|
|
|
101
101
|
get: function() {
|
|
102
102
|
return get_data_path_1.getDataCellPath;
|
|
103
103
|
}
|
|
104
|
-
}), __exportStar(require("./render/jsx"), exports), exports.version = "0.13.
|
|
104
|
+
}), __exportStar(require("./render/jsx"), exports), exports.version = "0.13.5",
|
|
105
105
|
exports.getIcons = getIcons, exports.clearGlobal = clearGlobal, TYPES.AggregationType;
|
|
106
106
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAAoC;AA8ClC,sBAAK;AA7CP,6CAA+B;AA8C7B,oBAAI;AA7CN,6CAA+B;AAkE7B,oBAAI;AAjEN,+CAAiC;AACjC,qDAAuC;AAqErC,4BAAQ;AApEV,iDAAmC;AA8DjC,wBAAM;AA7DR,yEAA2D;AAuEzD,wCAAc;AApDhB,2CAAwC;AAuBtC,0FAvBO,qBAAS,OAuBP;AAtBX,6CAA0C;AAwBxC,2FAxBO,uBAAU,OAwBP;AAvBZ,6CAA0C;AA0BxC,2FA1BO,uBAAU,OA0BP;AAxBZ,8DAAgD;AAiD9C,oCAAY;AA5Cd,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAEhB,QAAA,OAAO,GAAG,QAAQ,CAAC;AA6ChC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAhBC,4BAAQ;AAkBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AArBC,kCAAW;AAsBb,KAAK,CAAC,eAAe,CAAC","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTable } from './ListTable';\nimport { PivotTable } from './PivotTable';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\n// import { container, loadCanvasPicker } from '@visactor/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\n\nexport const version = \"0.13.
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAAoC;AA8ClC,sBAAK;AA7CP,6CAA+B;AA8C7B,oBAAI;AA7CN,6CAA+B;AAkE7B,oBAAI;AAjEN,+CAAiC;AACjC,qDAAuC;AAqErC,4BAAQ;AApEV,iDAAmC;AA8DjC,wBAAM;AA7DR,yEAA2D;AAuEzD,wCAAc;AApDhB,2CAAwC;AAuBtC,0FAvBO,qBAAS,OAuBP;AAtBX,6CAA0C;AAwBxC,2FAxBO,uBAAU,OAwBP;AAvBZ,6CAA0C;AA0BxC,2FA1BO,uBAAU,OA0BP;AAxBZ,8DAAgD;AAiD9C,oCAAY;AA5Cd,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAEhB,QAAA,OAAO,GAAG,QAAQ,CAAC;AA6ChC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAhBC,4BAAQ;AAkBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AArBC,kCAAW;AAsBb,KAAK,CAAC,eAAe,CAAC","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTable } from './ListTable';\nimport { PivotTable } from './PivotTable';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\n// import { container, loadCanvasPicker } from '@visactor/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\n\nexport const version = \"0.13.5\";\n/**\n * @namespace VTable\n */\nexport {\n /**\n * Types\n * @namespace VTable.TYPES\n */\n TYPES,\n core,\n ListTable,\n ListTableConstructorOptions,\n PivotTable,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n PivotChart,\n IHeaderTreeDefine,\n IDimension,\n ColumnsDefine,\n ColumnDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n TextAlignType,\n TextBaselineType,\n themes,\n data,\n MousePointerCellEvent,\n getIcons,\n clearGlobal,\n //plugin registers\n register,\n /**\n * 暂不推荐使用\n */\n DataStatistics,\n CustomLayout\n};\n\n/** @private */\nfunction getIcons(): {\n [key: string]: TYPES.ColumnIconOption;\n} {\n return icons.get();\n}\n/** 清理内部的全局变量 如注册的icon theme等 以及共享的header column类实例 */\nfunction clearGlobal() {\n register.clearAll();\n // headers.type.clearGlobal();\n // columns.type.clearGlobal();\n}\nTYPES.AggregationType;\n"]}
|
|
@@ -4,20 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.getAxisRange = exports.checkZeroAlign = exports.getAxisOption = exports.getAxisConfigInPivotChart = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), get_axis_domain_1 = require("./get-axis-domain");
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), get_axis_domain_1 = require("./get-axis-domain"), zero_align_1 = require("./zero-align");
|
|
8
8
|
|
|
9
9
|
function getAxisConfigInPivotChart(col, row, layout) {
|
|
10
10
|
var _a, _b, _c, _d, _e, _f;
|
|
11
11
|
if (layout._table.isPivotChart()) if (layout.indicatorsAsCol) {
|
|
12
12
|
if (layout.hasTwoIndicatorAxes && row === layout.columnHeaderLevelCount - 1 && col >= layout.rowHeaderLevelCount && col < layout.colCount - layout.rightFrozenColCount) {
|
|
13
|
-
const
|
|
14
|
-
if (!
|
|
15
|
-
const
|
|
16
|
-
if (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
const axisRange = getRange("top", col, row + 1, col, layout.columnHeaderLevelCount - 1, col, row, 1, layout);
|
|
14
|
+
if (!axisRange) return;
|
|
15
|
+
const {range: range, ticks: ticks, axisOption: axisOption, isZeroAlign: isZeroAlign} = axisRange;
|
|
16
|
+
if (isZeroAlign) {
|
|
17
|
+
const subAxisRange = getRange("bottom", col, row + 1, col, layout.columnHeaderLevelCount - 1, col, row, 0, layout);
|
|
18
|
+
if (subAxisRange) {
|
|
19
|
+
const {range: subRange} = subAxisRange, align = (0, zero_align_1.getNewRangeToAlign)(range, subRange);
|
|
20
|
+
align && (range.min = align.range1[0], range.max = align.range1[1]);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return (0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min,
|
|
21
24
|
range.min > 0 && (axisOption.zero = !1)), (0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max,
|
|
22
25
|
range.max < 0 && (axisOption.zero = !1)), (0, vutils_1.merge)({
|
|
23
26
|
range: range
|
|
@@ -31,18 +34,23 @@ function getAxisConfigInPivotChart(col, row, layout) {
|
|
|
31
34
|
});
|
|
32
35
|
}
|
|
33
36
|
if (row === layout.rowCount - layout.bottomFrozenRowCount && col >= layout.rowHeaderLevelCount && col < layout.colCount - layout.rightFrozenColCount) {
|
|
34
|
-
const
|
|
35
|
-
if (!1 === (null == axisOption ? void 0 : axisOption.visible)) return;
|
|
36
|
-
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row), colPath = layout.getColKeysPath(col, row), range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, colPath, null != seriesIndice ? seriesIndice : 0);
|
|
37
|
-
if (!range) return;
|
|
37
|
+
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
|
|
38
38
|
let indicatorInfo = null;
|
|
39
39
|
null == indicatorKeys || indicatorKeys.forEach((key => {
|
|
40
40
|
const info = layout.getIndicatorInfo(key);
|
|
41
41
|
info && (indicatorInfo = info);
|
|
42
|
-
}))
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
}));
|
|
43
|
+
const axisRange = getRange("bottom", col, row - 1, col, row, col, row, 0, layout);
|
|
44
|
+
if (!axisRange) return;
|
|
45
|
+
const {range: range, ticks: ticks, axisOption: axisOption, isZeroAlign: isZeroAlign} = axisRange;
|
|
46
|
+
if (isZeroAlign) {
|
|
47
|
+
const subAxisRange = getRange("top", col, row - 1, col, row, col, row, 1, layout);
|
|
48
|
+
if (subAxisRange) {
|
|
49
|
+
const {range: subRange} = subAxisRange, align = (0, zero_align_1.getNewRangeToAlign)(range, subRange);
|
|
50
|
+
align && (range.min = align.range1[0], range.max = align.range1[1]);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return (0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min,
|
|
46
54
|
range.min > 0 && (axisOption.zero = !1)), (0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max,
|
|
47
55
|
range.max < 0 && (axisOption.zero = !1)), (0, vutils_1.merge)({
|
|
48
56
|
title: {
|
|
@@ -76,18 +84,23 @@ function getAxisConfigInPivotChart(col, row, layout) {
|
|
|
76
84
|
}
|
|
77
85
|
} else {
|
|
78
86
|
if (col === layout.rowHeaderLevelCount - 1 && row >= layout.columnHeaderLevelCount && row < layout.rowCount - layout.bottomFrozenRowCount) {
|
|
79
|
-
const
|
|
80
|
-
if (!1 === (null == axisOption ? void 0 : axisOption.visible)) return;
|
|
81
|
-
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row), rowPath = layout.getRowKeysPath(col, row), range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, rowPath, null != seriesIndice ? seriesIndice : 0);
|
|
82
|
-
if (!range) return;
|
|
87
|
+
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
|
|
83
88
|
let indicatorInfo = null;
|
|
84
89
|
null == indicatorKeys || indicatorKeys.forEach((key => {
|
|
85
90
|
const info = layout.getIndicatorInfo(key);
|
|
86
91
|
info && (indicatorInfo = info);
|
|
87
|
-
}))
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
92
|
+
}));
|
|
93
|
+
const axisRange = getRange("left", col + 1, row, col, row, col, row, 0, layout);
|
|
94
|
+
if (!axisRange) return;
|
|
95
|
+
const {range: range, ticks: ticks, axisOption: axisOption, isZeroAlign: isZeroAlign} = axisRange;
|
|
96
|
+
if (isZeroAlign) {
|
|
97
|
+
const subAxisRange = getRange("right", col + 1, row, col, row, col, row, 1, layout);
|
|
98
|
+
if (subAxisRange) {
|
|
99
|
+
const {range: subRange} = subAxisRange, align = (0, zero_align_1.getNewRangeToAlign)(range, subRange);
|
|
100
|
+
align && (range.min = align.range1[0], range.max = align.range1[1]);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return (0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min,
|
|
91
104
|
range.min > 0 && (axisOption.zero = !1)), (0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max,
|
|
92
105
|
range.max < 0 && (axisOption.zero = !1)), (0, vutils_1.merge)({
|
|
93
106
|
title: {
|
|
@@ -106,14 +119,17 @@ function getAxisConfigInPivotChart(col, row, layout) {
|
|
|
106
119
|
});
|
|
107
120
|
}
|
|
108
121
|
if (col === layout.colCount - layout.rightFrozenColCount && row >= layout.columnHeaderLevelCount && row < layout.rowCount - layout.bottomFrozenRowCount) {
|
|
109
|
-
const
|
|
110
|
-
if (!
|
|
111
|
-
const
|
|
112
|
-
if (
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
122
|
+
const axisRange = getRange("right", col - 1, row, layout.rowHeaderLevelCount - 1, row, col, row, 1, layout);
|
|
123
|
+
if (!axisRange) return;
|
|
124
|
+
const {range: range, ticks: ticks, axisOption: axisOption, isZeroAlign: isZeroAlign} = axisRange;
|
|
125
|
+
if (isZeroAlign) {
|
|
126
|
+
const subAxisRange = getRange("left", col - 1, row, layout.rowHeaderLevelCount - 1, row, col, row, 0, layout);
|
|
127
|
+
if (subAxisRange) {
|
|
128
|
+
const {range: subRange} = subAxisRange, align = (0, zero_align_1.getNewRangeToAlign)(range, subRange);
|
|
129
|
+
align && (range.min = align.range1[0], range.max = align.range1[1]);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return (0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min,
|
|
117
133
|
range.min > 0 && (axisOption.zero = !1)), (0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max,
|
|
118
134
|
range.max < 0 && (axisOption.zero = !1)), (0, vutils_1.merge)({
|
|
119
135
|
range: range,
|
|
@@ -202,8 +218,7 @@ function getAxisRange(collectedValues, indicatorKeys, isZeroAlign, colPath, seri
|
|
|
202
218
|
}
|
|
203
219
|
let defaultKey = null == indicatorKeys ? void 0 : indicatorKeys[seriesId];
|
|
204
220
|
if ((0, vutils_1.isArray)(defaultKey) && (defaultKey = defaultKey[0]), !defaultKey) return null;
|
|
205
|
-
const data = collectedValues[defaultKey
|
|
206
|
-
vutils_1.merge)({}, null !== (_a = null == data ? void 0 : data[null != colPath ? colPath : ""]) && void 0 !== _a ? _a : {
|
|
221
|
+
const data = collectedValues[defaultKey], range = (0, vutils_1.merge)({}, null !== (_a = null == data ? void 0 : data[null != colPath ? colPath : ""]) && void 0 !== _a ? _a : {
|
|
207
222
|
min: 0,
|
|
208
223
|
max: 1
|
|
209
224
|
});
|
|
@@ -212,6 +227,27 @@ function getAxisRange(collectedValues, indicatorKeys, isZeroAlign, colPath, seri
|
|
|
212
227
|
range.min === range.max && (range.min > 0 ? range.min = 0 : range.max = 0), range;
|
|
213
228
|
}
|
|
214
229
|
|
|
230
|
+
function getRange(position, colForAxisOption, rowForAxisOption, colForIndicatorKey, rowForIndicatorKey, col, row, defaultSeriesIndice, layout) {
|
|
231
|
+
const {axisOption: axisOption, isPercent: isPercent, isZeroAlign: isZeroAlign, seriesIndice: seriesIndice} = getAxisOption(colForAxisOption, rowForAxisOption, position, layout);
|
|
232
|
+
if (!1 === (null == axisOption ? void 0 : axisOption.visible)) return;
|
|
233
|
+
const indicatorKeys = layout.getIndicatorKeyInChartSpec(colForIndicatorKey, rowForIndicatorKey);
|
|
234
|
+
let path;
|
|
235
|
+
path = "top" === position || "bottom" === position ? layout.getColKeysPath(col, row) : layout.getRowKeysPath(col, row);
|
|
236
|
+
const range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, path, null != seriesIndice ? seriesIndice : defaultSeriesIndice);
|
|
237
|
+
if (!range) return;
|
|
238
|
+
isPercent && (range.min = range.min < 0 ? -1 : 0, range.max = range.max > 0 ? 1 : 0);
|
|
239
|
+
const {range: niceRange, ticks: ticks} = (0, get_axis_domain_1.getAxisDomainRangeAndLabels)(range.min, range.max, axisOption, isZeroAlign, layout._table.getColWidth(col));
|
|
240
|
+
return range.min = isNaN(niceRange[0]) ? 0 : niceRange[0], range.max = isNaN(niceRange[1]) ? 1 : niceRange[1],
|
|
241
|
+
(0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min,
|
|
242
|
+
range.min > 0 && (axisOption.zero = !1)), (0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max,
|
|
243
|
+
range.max < 0 && (axisOption.zero = !1)), {
|
|
244
|
+
axisOption: axisOption,
|
|
245
|
+
isZeroAlign: isZeroAlign,
|
|
246
|
+
range: range,
|
|
247
|
+
ticks: ticks
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
|
|
215
251
|
exports.getAxisConfigInPivotChart = getAxisConfigInPivotChart, exports.getAxisOption = getAxisOption,
|
|
216
252
|
exports.checkZeroAlign = checkZeroAlign, exports.getAxisRange = getAxisRange;
|
|
217
253
|
//# sourceMappingURL=get-axis-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["layout/chart-helper/get-axis-config.ts"],"names":[],"mappings":"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","file":"get-axis-config.js","sourcesContent":["import { isArray, isNumber, isValid, merge } from '@visactor/vutils';\nimport type { PivotHeaderLayoutMap } from '../pivot-header-layout';\nimport type { ITableAxisOption } from '../../ts-types/component/axis';\nimport type { PivotChart } from '../../PivotChart';\nimport { getAxisDomainRangeAndLabels } from './get-axis-domain';\nimport type { CollectedValue } from '../../ts-types';\n\nexport function getAxisConfigInPivotChart(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n if (!layout._table.isPivotChart()) {\n return undefined;\n }\n\n // 是否是指标\n if (layout.indicatorsAsCol) {\n if (\n layout.hasTwoIndicatorAxes &&\n row === layout.columnHeaderLevelCount - 1 &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n const { axisOption, isPercent, isZeroAlign, seriesIndice } = getAxisOption(col, row + 1, 'top', layout);\n if (axisOption?.visible === false) {\n return;\n }\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, layout.columnHeaderLevelCount - 1);\n const colPath = layout.getColKeysPath(col, row);\n\n const range = getAxisRange(\n layout.dataset.collectedValues,\n indicatorKeys,\n isZeroAlign,\n colPath,\n seriesIndice ?? 1\n );\n if (!range) {\n return;\n }\n\n // let defaultKey = indicatorKeys?.[1];\n // if (isArray(defaultKey)) {\n // defaultKey = defaultKey[0];\n // }\n // if (!defaultKey) {\n // return undefined;\n // }\n\n // // const isZeroAlign = checkZeroAlign(col, row, 'top', layout);\n // // const data = layout.dataset.collectedValues[defaultKey];\n // const data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n // ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n // : layout.dataset.collectedValues[defaultKey];\n\n // const range = merge({}, (data?.[colPath ?? ''] as { min: number; max: number }) ?? { min: 0, max: 1 });\n // if (range.positiveMax && range.positiveMax > range.max) {\n // range.max = range.positiveMax;\n // }\n // if (range.negativeMin && range.negativeMin < range.min) {\n // range.min = range.negativeMin;\n // }\n // // const { axisOption, isPercent } = getAxisOption(col, row + 1, 'top', layout);\n // if (range.min === range.max) {\n // if (range.min > 0) {\n // range.min = 0;\n // } else {\n // range.max = 0;\n // }\n // }\n if (isPercent) {\n range.min = range.min < 0 ? -1 : 0;\n range.max = range.max > 0 ? 1 : 0;\n }\n const { range: niceRange, ticks } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign);\n range.min = !isNaN(niceRange[0]) ? niceRange[0] : 0;\n range.max = !isNaN(niceRange[1]) ? niceRange[1] : 1;\n\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n if (range.min > 0) {\n axisOption.zero = false;\n }\n }\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n if (range.max < 0) {\n axisOption.zero = false;\n }\n }\n // 顶部副指标轴\n return merge(\n {\n range: range\n },\n axisOption,\n {\n orient: 'top',\n type: axisOption?.type || 'linear',\n label: {\n flush: true\n },\n __ticksForVTable: ticks\n }\n );\n } else if (\n row === layout.rowCount - layout.bottomFrozenRowCount &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n const { axisOption, isPercent, isZeroAlign, seriesIndice } = getAxisOption(col, row - 1, 'bottom', layout);\n if (axisOption?.visible === false) {\n return;\n }\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n const colPath = layout.getColKeysPath(col, row);\n\n const range = getAxisRange(\n layout.dataset.collectedValues,\n indicatorKeys,\n isZeroAlign,\n colPath,\n seriesIndice ?? 0\n );\n if (!range) {\n return;\n }\n\n // let defaultKey = indicatorKeys?.[0];\n // if (isArray(defaultKey)) {\n // defaultKey = defaultKey[0];\n // }\n // const data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n // ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n // : layout.dataset.collectedValues[defaultKey];\n // const range = merge({}, (data?.[colPath ?? ''] as { min: number; max: number }) ?? { min: 0, max: 1 });\n // if (range.positiveMax && range.positiveMax > range.max) {\n // range.max = range.positiveMax;\n // }\n // if (range.negativeMin && range.negativeMin < range.min) {\n // range.min = range.negativeMin;\n // }\n // if (range.min === range.max) {\n // if (range.min > 0) {\n // range.min = 0;\n // } else {\n // range.max = 0;\n // }\n // }\n\n let indicatorInfo = null;\n indicatorKeys?.forEach(key => {\n const info = layout.getIndicatorInfo(key);\n if (info) {\n indicatorInfo = info;\n }\n });\n\n // const { axisOption, isPercent } = getAxisOption(col, row - 1, 'bottom', layout);\n if (isPercent) {\n (range as any).min = (range as any).min < 0 ? -1 : 0;\n (range as any).max = (range as any).max > 0 ? 1 : 0;\n }\n const { range: niceRange, ticks } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign);\n range.min = !isNaN(niceRange[0]) ? niceRange[0] : 0;\n range.max = !isNaN(niceRange[1]) ? niceRange[1] : 1;\n\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n if (range.min > 0) {\n axisOption.zero = false;\n }\n }\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n if (range.max < 0) {\n axisOption.zero = false;\n }\n }\n // 底侧指标轴\n return merge(\n {\n title: {\n visible: true,\n text: (indicatorInfo as any)?.title\n // autoRotate: true\n },\n range: range\n },\n axisOption,\n {\n orient: 'bottom',\n type: axisOption?.type || 'linear',\n label: {\n flush: true\n },\n __ticksForVTable: ticks\n }\n );\n } else if (\n col === layout.rowHeaderLevelCount - 1 &&\n row >= layout.columnHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row)?.[0];\n if (isArray(rowDimensionKey)) {\n rowDimensionKey = rowDimensionKey[0];\n }\n const data = layout.dataset.collectedValues[rowDimensionKey] ?? ([] as string[]);\n\n const rowPath = layout.getRowKeysPath(col, row);\n const domain = (data[rowPath ?? ''] as Array<string>) ?? [];\n\n const { axisOption, isPercent } = getAxisOption(col + 1, row, 'left', layout);\n if (axisOption?.visible === false) {\n return;\n }\n // 左侧维度轴\n return merge(\n {\n domain: Array.from(domain).reverse(),\n title: {\n autoRotate: true\n }\n },\n axisOption,\n {\n orient: 'left',\n type: 'band'\n }\n );\n }\n } else {\n if (\n col === layout.rowHeaderLevelCount - 1 &&\n row >= layout.columnHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n const { axisOption, isPercent, isZeroAlign, seriesIndice } = getAxisOption(col + 1, row, 'left', layout);\n if (axisOption?.visible === false) {\n return;\n }\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n const rowPath = layout.getRowKeysPath(col, row);\n const range = getAxisRange(\n layout.dataset.collectedValues,\n indicatorKeys,\n isZeroAlign,\n rowPath,\n seriesIndice ?? 0\n );\n if (!range) {\n return;\n }\n\n // let defaultKey = indicatorKeys?.[0];\n // if (isArray(defaultKey)) {\n // defaultKey = defaultKey[0];\n // }\n // const data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n // ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n // : layout.dataset.collectedValues[defaultKey];\n // const range = merge({}, (data?.[rowPath ?? ''] as { min: number; max: number }) ?? { min: 0, max: 1 });\n // if (range.positiveMax && range.positiveMax > range.max) {\n // range.max = range.positiveMax;\n // }\n // if (range.negativeMin && range.negativeMin < range.min) {\n // range.min = range.negativeMin;\n // }\n // if (range.min === range.max) {\n // if (range.min > 0) {\n // range.min = 0;\n // } else {\n // range.max = 0;\n // }\n // }\n\n let indicatorInfo = null;\n indicatorKeys?.forEach(key => {\n const info = layout.getIndicatorInfo(key);\n if (info) {\n indicatorInfo = info;\n }\n });\n\n if (isPercent) {\n range.min = range.min < 0 ? -1 : 0;\n range.max = range.max > 0 ? 1 : 0;\n }\n const { range: niceRange, ticks } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign);\n range.min = !isNaN(niceRange[0]) ? niceRange[0] : 0;\n range.max = !isNaN(niceRange[1]) ? niceRange[1] : 1;\n\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n if (range.min > 0) {\n axisOption.zero = false;\n }\n }\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n if (range.max < 0) {\n axisOption.zero = false;\n }\n }\n // 左侧指标轴\n return merge(\n {\n title: {\n visible: true,\n text: (indicatorInfo as any)?.title,\n autoRotate: true\n },\n range: range\n },\n axisOption,\n {\n orient: 'left',\n type: axisOption?.type || 'linear',\n label: {\n flush: true\n },\n __ticksForVTable: ticks\n }\n );\n } else if (\n col === layout.colCount - layout.rightFrozenColCount &&\n row >= layout.columnHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n const { axisOption, isPercent, isZeroAlign, seriesIndice } = getAxisOption(col - 1, row, 'right', layout);\n if (axisOption?.visible === false) {\n return;\n }\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(layout.rowHeaderLevelCount - 1, row);\n const rowPath = layout.getRowKeysPath(col, row);\n const range = getAxisRange(\n layout.dataset.collectedValues,\n indicatorKeys,\n isZeroAlign,\n rowPath,\n seriesIndice ?? 1\n );\n if (!range) {\n return;\n }\n\n // let defaultKey = indicatorKeys?.[1];\n // if (isArray(defaultKey)) {\n // defaultKey = defaultKey[0];\n // }\n // if (!defaultKey) {\n // return undefined;\n // }\n // const data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n // ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n // : layout.dataset.collectedValues[defaultKey];\n // const range = merge({}, (data?.[rowPath ?? ''] as { min: number; max: number }) ?? { min: 0, max: 1 });\n // if (range.positiveMax && range.positiveMax > range.max) {\n // range.max = range.positiveMax;\n // }\n // if (range.negativeMin && range.negativeMin < range.min) {\n // range.min = range.negativeMin;\n // }\n // // const { axisOption, isPercent } = getAxisOption(col - 1, row, 'right', layout);\n // if (range.min === range.max) {\n // if (range.min > 0) {\n // range.min = 0;\n // } else {\n // range.max = 0;\n // }\n // }\n\n if (isPercent) {\n (range as any).min = (range as any).min < 0 ? -1 : 0;\n (range as any).max = (range as any).max > 0 ? 1 : 0;\n }\n const { range: niceRange, ticks } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign);\n range.min = !isNaN(niceRange[0]) ? niceRange[0] : 0;\n range.max = !isNaN(niceRange[1]) ? niceRange[1] : 1;\n\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n if (range.min > 0) {\n axisOption.zero = false;\n }\n }\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n if (range.max < 0) {\n axisOption.zero = false;\n }\n }\n // 右侧副指标轴\n return merge(\n {\n range: range,\n title: {\n autoRotate: true\n }\n },\n axisOption,\n {\n orient: 'right',\n type: axisOption?.type || 'linear',\n label: {\n flush: true\n },\n __ticksForVTable: ticks\n }\n );\n } else if (\n row === layout.rowCount - layout.bottomFrozenRowCount &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n\n let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount)?.[0];\n if (isArray(columnDimensionKey)) {\n columnDimensionKey = columnDimensionKey[0];\n }\n const data = layout.dataset.collectedValues[columnDimensionKey] ?? ([] as string[]);\n\n const colPath = layout.getColKeysPath(col, row);\n const domain = (data?.[colPath ?? ''] as Array<string>) ?? [];\n\n const { axisOption, isPercent } = getAxisOption(col, row - 1, 'bottom', layout);\n if (axisOption?.visible === false) {\n return;\n }\n // 底部维度轴\n return merge(\n {\n domain: Array.from(domain)\n },\n axisOption,\n {\n orient: 'bottom',\n type: 'band'\n }\n );\n }\n }\n\n return undefined;\n}\n\nexport function getAxisOption(col: number, row: number, orient: string, layout: PivotHeaderLayoutMap) {\n const spec = layout.getRawChartSpec(col, row);\n if (spec && isArray(spec.axes)) {\n const axisOption = spec.axes.find((axis: any) => {\n return axis.orient === orient;\n });\n if (axisOption) {\n const { seriesIndex, seriesId } = axisOption;\n let seriesIndice;\n if (isValid(seriesId) && isArray(spec.series)) {\n seriesIndice = (isArray(seriesId) ? seriesId : [seriesId]).map(id =>\n spec.series.findIndex((s: any) => s.id === id)\n );\n } else if (isValid(seriesIndex) && isArray(spec.series)) {\n seriesIndice = seriesIndex;\n }\n return {\n axisOption,\n isPercent: spec.percent,\n isZeroAlign: checkZeroAlign(spec, orient, layout),\n seriesIndice\n };\n }\n }\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === orient;\n });\n return {\n axisOption,\n isPercent: false,\n isZeroAlign: checkZeroAlign(spec, orient, layout)\n };\n}\n\nexport function checkZeroAlign(spec: any, orient: string, layout: PivotHeaderLayoutMap) {\n // check condition:\n // 1. two axes and one set sync\n // 2. axisId in sync is another\n const orients: string[] = [];\n if (orient === 'left' || orient === 'right') {\n orients.push('left', 'right');\n } else if (orient === 'top' || orient === 'bottom') {\n orients.push('top', 'bottom');\n }\n // const spec = layout.getRawChartSpec(col, row);\n let axesSpec;\n if (spec && isArray(spec.axes)) {\n axesSpec = spec.axes;\n } else {\n axesSpec = (layout._table as PivotChart).pivotChartAxes as ITableAxisOption[];\n }\n if (isArray(axesSpec)) {\n const axes: any[] = [];\n axesSpec.forEach((axis: any) => {\n if (orients.includes(axis.orient)) {\n axes.push(axis);\n }\n });\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n if (\n axis.sync &&\n axis.sync.zeroAlign &&\n axis.sync.axisId &&\n axes.find(axisSync => {\n return axisSync.id === axis.sync.axisId;\n })\n ) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function getAxisRange(\n collectedValues: Record<string, Record<string, CollectedValue>>,\n indicatorKeys: string[],\n isZeroAlign: boolean,\n colPath: string,\n seriesId: number | number[]\n): { max: number; min: number } | null {\n if (isArray(seriesId)) {\n const range = { min: Infinity, max: -Infinity };\n for (let i = 0; i < seriesId.length; i++) {\n const singleRange = getAxisRange(collectedValues, indicatorKeys, isZeroAlign, colPath, seriesId[i]);\n if (singleRange) {\n range.min = Math.min(range.min, singleRange.min);\n range.max = Math.max(range.max, singleRange.max);\n }\n }\n if (isFinite(range.min) && isFinite(range.max)) {\n return range;\n }\n return null;\n }\n let defaultKey = indicatorKeys?.[seriesId];\n if (isArray(defaultKey)) {\n defaultKey = defaultKey[0];\n }\n if (!defaultKey) {\n return null;\n }\n const data = collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n ? collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n : collectedValues[defaultKey];\n const range = merge({}, (data?.[colPath ?? ''] as { min: number; max: number }) ?? { min: 0, max: 1 });\n\n if (range.positiveMax && range.positiveMax > range.max) {\n range.max = range.positiveMax;\n }\n if (range.negativeMin && range.negativeMin < range.min) {\n range.min = range.negativeMin;\n }\n if (range.min === range.max) {\n if (range.min > 0) {\n range.min = 0;\n } else {\n range.max = 0;\n }\n }\n\n return range;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["layout/chart-helper/get-axis-config.ts"],"names":[],"mappings":"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","file":"get-axis-config.js","sourcesContent":["import { isArray, isNumber, isValid, merge } from '@visactor/vutils';\nimport type { PivotHeaderLayoutMap } from '../pivot-header-layout';\nimport type { ITableAxisOption } from '../../ts-types/component/axis';\nimport type { PivotChart } from '../../PivotChart';\nimport { getAxisDomainRangeAndLabels } from './get-axis-domain';\nimport type { CollectedValue } from '../../ts-types';\nimport { getNewRangeToAlign } from './zero-align';\n\nexport function getAxisConfigInPivotChart(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n if (!layout._table.isPivotChart()) {\n return undefined;\n }\n\n // 是否是指标\n if (layout.indicatorsAsCol) {\n if (\n layout.hasTwoIndicatorAxes &&\n row === layout.columnHeaderLevelCount - 1 &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n const axisRange = getRange('top', col, row + 1, col, layout.columnHeaderLevelCount - 1, col, row, 1, layout);\n if (!axisRange) {\n return;\n }\n // range for top axis\n const { range, ticks, axisOption, isZeroAlign } = axisRange;\n\n if (isZeroAlign) {\n // range for bottom axis\n const subAxisRange = getRange(\n 'bottom',\n col,\n row + 1,\n col,\n layout.columnHeaderLevelCount - 1,\n col,\n row,\n 0,\n layout\n );\n\n if (subAxisRange) {\n const { range: subRange } = subAxisRange;\n\n const align = getNewRangeToAlign(range, subRange);\n if (align) {\n range.min = align.range1[0];\n range.max = align.range1[1];\n }\n }\n }\n\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n if (range.min > 0) {\n axisOption.zero = false;\n }\n }\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n if (range.max < 0) {\n axisOption.zero = false;\n }\n }\n\n // 顶部副指标轴\n return merge(\n {\n range: range\n },\n axisOption,\n {\n orient: 'top',\n type: axisOption?.type || 'linear',\n label: {\n flush: true\n },\n __ticksForVTable: ticks\n }\n );\n } else if (\n row === layout.rowCount - layout.bottomFrozenRowCount &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n let indicatorInfo = null;\n indicatorKeys?.forEach(key => {\n const info = layout.getIndicatorInfo(key);\n if (info) {\n indicatorInfo = info;\n }\n });\n\n const axisRange = getRange('bottom', col, row - 1, col, row, col, row, 0, layout);\n if (!axisRange) {\n return;\n }\n // range for bottom axis\n const { range, ticks, axisOption, isZeroAlign } = axisRange;\n\n if (isZeroAlign) {\n // range for top axis\n const subAxisRange = getRange('top', col, row - 1, col, row, col, row, 1, layout);\n\n if (subAxisRange) {\n const { range: subRange } = subAxisRange;\n\n const align = getNewRangeToAlign(range, subRange);\n if (align) {\n range.min = align.range1[0];\n range.max = align.range1[1];\n }\n }\n }\n\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n if (range.min > 0) {\n axisOption.zero = false;\n }\n }\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n if (range.max < 0) {\n axisOption.zero = false;\n }\n }\n\n // 底侧指标轴\n return merge(\n {\n title: {\n visible: true,\n text: (indicatorInfo as any)?.title\n // autoRotate: true\n },\n range: range\n },\n axisOption,\n {\n orient: 'bottom',\n type: axisOption?.type || 'linear',\n label: {\n flush: true\n },\n __ticksForVTable: ticks\n }\n );\n } else if (\n col === layout.rowHeaderLevelCount - 1 &&\n row >= layout.columnHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row)?.[0];\n if (isArray(rowDimensionKey)) {\n rowDimensionKey = rowDimensionKey[0];\n }\n const data = layout.dataset.collectedValues[rowDimensionKey] ?? ([] as string[]);\n\n const rowPath = layout.getRowKeysPath(col, row);\n const domain = (data[rowPath ?? ''] as Array<string>) ?? [];\n\n const { axisOption, isPercent } = getAxisOption(col + 1, row, 'left', layout);\n if (axisOption?.visible === false) {\n return;\n }\n // 左侧维度轴\n return merge(\n {\n domain: Array.from(domain).reverse(),\n title: {\n autoRotate: true\n }\n },\n axisOption,\n {\n orient: 'left',\n type: 'band'\n }\n );\n }\n } else {\n if (\n col === layout.rowHeaderLevelCount - 1 &&\n row >= layout.columnHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n let indicatorInfo = null;\n indicatorKeys?.forEach(key => {\n const info = layout.getIndicatorInfo(key);\n if (info) {\n indicatorInfo = info;\n }\n });\n\n const axisRange = getRange('left', col + 1, row, col, row, col, row, 0, layout);\n if (!axisRange) {\n return;\n }\n // range for left axis\n const { range, ticks, axisOption, isZeroAlign } = axisRange;\n\n if (isZeroAlign) {\n // range for right axis\n const subAxisRange = getRange('right', col + 1, row, col, row, col, row, 1, layout);\n\n if (subAxisRange) {\n const { range: subRange } = subAxisRange;\n\n const align = getNewRangeToAlign(range, subRange);\n if (align) {\n range.min = align.range1[0];\n range.max = align.range1[1];\n }\n }\n }\n\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n if (range.min > 0) {\n axisOption.zero = false;\n }\n }\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n if (range.max < 0) {\n axisOption.zero = false;\n }\n }\n\n // 左侧指标轴\n return merge(\n {\n title: {\n visible: true,\n text: (indicatorInfo as any)?.title,\n autoRotate: true\n },\n range: range\n },\n axisOption,\n {\n orient: 'left',\n type: axisOption?.type || 'linear',\n label: {\n flush: true\n },\n __ticksForVTable: ticks\n }\n );\n } else if (\n col === layout.colCount - layout.rightFrozenColCount &&\n row >= layout.columnHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n const axisRange = getRange('right', col - 1, row, layout.rowHeaderLevelCount - 1, row, col, row, 1, layout);\n if (!axisRange) {\n return;\n }\n // range for right axis\n const { range, ticks, axisOption, isZeroAlign } = axisRange;\n\n if (isZeroAlign) {\n // range for left axis\n const subAxisRange = getRange('left', col - 1, row, layout.rowHeaderLevelCount - 1, row, col, row, 0, layout);\n\n if (subAxisRange) {\n const { range: subRange } = subAxisRange;\n\n const align = getNewRangeToAlign(range, subRange);\n if (align) {\n range.min = align.range1[0];\n range.max = align.range1[1];\n }\n }\n }\n\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n if (range.min > 0) {\n axisOption.zero = false;\n }\n }\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n if (range.max < 0) {\n axisOption.zero = false;\n }\n }\n\n // 右侧副指标轴\n return merge(\n {\n range: range,\n title: {\n autoRotate: true\n }\n },\n axisOption,\n {\n orient: 'right',\n type: axisOption?.type || 'linear',\n label: {\n flush: true\n },\n __ticksForVTable: ticks\n }\n );\n } else if (\n row === layout.rowCount - layout.bottomFrozenRowCount &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n\n let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount)?.[0];\n if (isArray(columnDimensionKey)) {\n columnDimensionKey = columnDimensionKey[0];\n }\n const data = layout.dataset.collectedValues[columnDimensionKey] ?? ([] as string[]);\n\n const colPath = layout.getColKeysPath(col, row);\n const domain = (data?.[colPath ?? ''] as Array<string>) ?? [];\n\n const { axisOption, isPercent } = getAxisOption(col, row - 1, 'bottom', layout);\n if (axisOption?.visible === false) {\n return;\n }\n // 底部维度轴\n return merge(\n {\n domain: Array.from(domain)\n },\n axisOption,\n {\n orient: 'bottom',\n type: 'band'\n }\n );\n }\n }\n\n return undefined;\n}\n\nexport function getAxisOption(col: number, row: number, orient: string, layout: PivotHeaderLayoutMap) {\n const spec = layout.getRawChartSpec(col, row);\n if (spec && isArray(spec.axes)) {\n const axisOption = spec.axes.find((axis: any) => {\n return axis.orient === orient;\n });\n if (axisOption) {\n const { seriesIndex, seriesId } = axisOption;\n let seriesIndice;\n if (isValid(seriesId) && isArray(spec.series)) {\n seriesIndice = (isArray(seriesId) ? seriesId : [seriesId]).map(id =>\n spec.series.findIndex((s: any) => s.id === id)\n );\n } else if (isValid(seriesIndex) && isArray(spec.series)) {\n seriesIndice = seriesIndex;\n }\n return {\n axisOption,\n isPercent: spec.percent,\n isZeroAlign: checkZeroAlign(spec, orient, layout),\n seriesIndice\n };\n }\n }\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === orient;\n });\n return {\n axisOption,\n isPercent: false,\n isZeroAlign: checkZeroAlign(spec, orient, layout)\n };\n}\n\nexport function checkZeroAlign(spec: any, orient: string, layout: PivotHeaderLayoutMap) {\n // check condition:\n // 1. two axes and one set sync\n // 2. axisId in sync is another\n const orients: string[] = [];\n if (orient === 'left' || orient === 'right') {\n orients.push('left', 'right');\n } else if (orient === 'top' || orient === 'bottom') {\n orients.push('top', 'bottom');\n }\n // const spec = layout.getRawChartSpec(col, row);\n let axesSpec;\n if (spec && isArray(spec.axes)) {\n axesSpec = spec.axes;\n } else {\n axesSpec = (layout._table as PivotChart).pivotChartAxes as ITableAxisOption[];\n }\n if (isArray(axesSpec)) {\n const axes: any[] = [];\n axesSpec.forEach((axis: any) => {\n if (orients.includes(axis.orient)) {\n axes.push(axis);\n }\n });\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n if (\n axis.sync &&\n axis.sync.zeroAlign &&\n axis.sync.axisId &&\n axes.find(axisSync => {\n return axisSync.id === axis.sync.axisId;\n })\n ) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function getAxisRange(\n collectedValues: Record<string, Record<string, CollectedValue>>,\n indicatorKeys: string[],\n isZeroAlign: boolean,\n colPath: string,\n seriesId: number | number[]\n): { max: number; min: number } | null {\n if (isArray(seriesId)) {\n const range = { min: Infinity, max: -Infinity };\n for (let i = 0; i < seriesId.length; i++) {\n const singleRange = getAxisRange(collectedValues, indicatorKeys, isZeroAlign, colPath, seriesId[i]);\n if (singleRange) {\n range.min = Math.min(range.min, singleRange.min);\n range.max = Math.max(range.max, singleRange.max);\n }\n }\n if (isFinite(range.min) && isFinite(range.max)) {\n return range;\n }\n return null;\n }\n let defaultKey = indicatorKeys?.[seriesId];\n if (isArray(defaultKey)) {\n defaultKey = defaultKey[0];\n }\n if (!defaultKey) {\n return null;\n }\n // const data = collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n // ? collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n // : collectedValues[defaultKey];\n const data = collectedValues[defaultKey];\n const range = merge({}, (data?.[colPath ?? ''] as { min: number; max: number }) ?? { min: 0, max: 1 });\n\n if (range.positiveMax && range.positiveMax > range.max) {\n range.max = range.positiveMax;\n }\n if (range.negativeMin && range.negativeMin < range.min) {\n range.min = range.negativeMin;\n }\n if (range.min === range.max) {\n if (range.min > 0) {\n range.min = 0;\n } else {\n range.max = 0;\n }\n }\n\n return range;\n}\n\nfunction getRange(\n position: 'left' | 'right' | 'top' | 'bottom',\n colForAxisOption: number,\n rowForAxisOption: number,\n colForIndicatorKey: number,\n rowForIndicatorKey: number,\n col: number,\n row: number,\n defaultSeriesIndice: number,\n layout: PivotHeaderLayoutMap\n) {\n const { axisOption, isPercent, isZeroAlign, seriesIndice } = getAxisOption(\n colForAxisOption,\n rowForAxisOption,\n position,\n layout\n );\n if (axisOption?.visible === false) {\n return undefined;\n }\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(colForIndicatorKey, rowForIndicatorKey);\n let path;\n if (position === 'top' || position === 'bottom') {\n path = layout.getColKeysPath(col, row);\n } else {\n path = layout.getRowKeysPath(col, row);\n }\n\n const range = getAxisRange(\n layout.dataset.collectedValues,\n indicatorKeys,\n isZeroAlign,\n path,\n seriesIndice ?? defaultSeriesIndice\n );\n if (!range) {\n return undefined;\n }\n\n if (isPercent) {\n range.min = range.min < 0 ? -1 : 0;\n range.max = range.max > 0 ? 1 : 0;\n }\n const { range: niceRange, ticks } = getAxisDomainRangeAndLabels(\n range.min,\n range.max,\n axisOption,\n isZeroAlign,\n layout._table.getColWidth(col)\n );\n range.min = !isNaN(niceRange[0]) ? niceRange[0] : 0;\n range.max = !isNaN(niceRange[1]) ? niceRange[1] : 1;\n\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n if (range.min > 0) {\n axisOption.zero = false;\n }\n }\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n if (range.max < 0) {\n axisOption.zero = false;\n }\n }\n\n return {\n axisOption,\n isZeroAlign,\n range,\n ticks\n };\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare function getAxisDomainRangeAndLabels(min: number, max: number, axisOption: any, isZeroAlign: boolean, skipTick?: boolean): {
|
|
1
|
+
export declare function getAxisDomainRangeAndLabels(min: number, max: number, axisOption: any, isZeroAlign: boolean, axisLength: number, skipTick?: boolean): {
|
|
2
2
|
range: any[];
|
|
3
3
|
ticks: number[];
|
|
4
4
|
};
|
|
@@ -4,26 +4,36 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.getAxisDomainRangeAndLabels = void 0;
|
|
6
6
|
|
|
7
|
-
const vscale_1 = require("@visactor/vscale"), vutils_1 = require("@visactor/vutils"), DEFAULT_CONTINUOUS_TICK_COUNT = 5;
|
|
7
|
+
const vscale_1 = require("@visactor/vscale"), vutils_1 = require("@visactor/vutils"), get_axis_attributes_1 = require("../../components/axis/get-axis-attributes"), DEFAULT_CONTINUOUS_TICK_COUNT = 5;
|
|
8
8
|
|
|
9
|
-
function getAxisDomainRangeAndLabels(min, max, axisOption, isZeroAlign, skipTick) {
|
|
10
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
11
|
-
let scale, scaleTicks;
|
|
9
|
+
function getAxisDomainRangeAndLabels(min, max, axisOption, isZeroAlign, axisLength, skipTick) {
|
|
10
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
12
11
|
if ((null == axisOption ? void 0 : axisOption.zero) && (min = Math.min(min, 0),
|
|
13
|
-
max = Math.max(max, 0)),
|
|
12
|
+
max = Math.max(max, 0)), null == axisOption ? void 0 : axisOption.expand) {
|
|
13
|
+
const domainMin = min, domainMax = max;
|
|
14
|
+
(0, vutils_1.isValid)(axisOption.expand.min) && (min = domainMin - (domainMax - domainMin) * axisOption.expand.min),
|
|
15
|
+
(0, vutils_1.isValid)(axisOption.expand.max) && (max = domainMax + (domainMax - domainMin) * axisOption.expand.max);
|
|
16
|
+
}
|
|
17
|
+
let scale, scaleTicks;
|
|
18
|
+
if ((0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.min) && (min = axisOption.min),
|
|
14
19
|
(0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.max) && (max = axisOption.max),
|
|
15
20
|
"log" === (null == axisOption ? void 0 : axisOption.type) ? (scale = new vscale_1.LogScale,
|
|
16
21
|
scale.base(null !== (_a = null == axisOption ? void 0 : axisOption.base) && void 0 !== _a ? _a : 10)) : "symlog" === (null == axisOption ? void 0 : axisOption.type) ? (scale = new vscale_1.SymlogScale,
|
|
17
22
|
scale.constant(null !== (_b = null == axisOption ? void 0 : axisOption.constant) && void 0 !== _b ? _b : 10)) : scale = new vscale_1.LinearScale,
|
|
18
|
-
scale.domain([ min, max ], !!(null == axisOption ? void 0 : axisOption.nice)),
|
|
23
|
+
scale.domain([ min, max ], !!(null == axisOption ? void 0 : axisOption.nice)), null == axisOption ? void 0 : axisOption.nice) {
|
|
19
24
|
let tickCount = null !== (_f = null !== (_d = null === (_c = axisOption.tick) || void 0 === _c ? void 0 : _c.forceTickCount) && void 0 !== _d ? _d : null === (_e = axisOption.tick) || void 0 === _e ? void 0 : _e.tickCount) && void 0 !== _f ? _f : 10;
|
|
20
|
-
|
|
25
|
+
(0, vutils_1.isFunction)(tickCount) && (tickCount = tickCount({
|
|
26
|
+
axisLength: axisLength,
|
|
27
|
+
labelStyle: null !== (_h = null === (_g = null == axisOption ? void 0 : axisOption.label) || void 0 === _g ? void 0 : _g.style) && void 0 !== _h ? _h : {
|
|
28
|
+
fontSize: get_axis_attributes_1.THEME_CONSTANTS.LABEL_FONT_SIZE
|
|
29
|
+
}
|
|
30
|
+
})), "accurateFirst" === axisOption.niceType && (tickCount = Math.max(10, tickCount)),
|
|
21
31
|
(0, vutils_1.isNil)(axisOption.min) && (0, vutils_1.isNil)(axisOption.max) ? scale.nice(tickCount) : (0,
|
|
22
32
|
vutils_1.isValid)(axisOption.min) && (0, vutils_1.isNil)(axisOption.max) ? scale.niceMax(tickCount) : (0,
|
|
23
33
|
vutils_1.isNil)(axisOption.min) && (0, vutils_1.isValid)(axisOption.max) && scale.niceMin(tickCount);
|
|
24
34
|
}
|
|
25
35
|
return delete scale._niceType, skipTick || (scaleTicks = scale.ticks((0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.tickCount) ? null == axisOption ? void 0 : axisOption.tickCount : 5, {
|
|
26
|
-
noDecimals: null === (
|
|
36
|
+
noDecimals: null === (_j = null == axisOption ? void 0 : axisOption.tick) || void 0 === _j ? void 0 : _j.noDecimals
|
|
27
37
|
})), {
|
|
28
38
|
range: scale.domain(),
|
|
29
39
|
ticks: scaleTicks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["layout/chart-helper/get-axis-domain.ts"],"names":[],"mappings":";;;AAAA,6CAAsE;AACtE,6CAAwE;
|
|
1
|
+
{"version":3,"sources":["layout/chart-helper/get-axis-domain.ts"],"names":[],"mappings":"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","file":"get-axis-domain.js","sourcesContent":["import { LinearScale, LogScale, SymlogScale } from '@visactor/vscale';\nimport { isFunction, isNil, isNumber, isValid } from '@visactor/vutils';\nimport { THEME_CONSTANTS } from '../../components/axis/get-axis-attributes';\n\nconst DEFAULT_CONTINUOUS_TICK_COUNT = 5;\n/**\n * @description: get axis nice domain and tick label text\n * @param {number} min\n * @param {number} max\n * @param {ITableAxisOption} axisOption\n * @return {*}\n */\nexport function getAxisDomainRangeAndLabels(\n min: number,\n max: number,\n axisOption: any,\n isZeroAlign: boolean,\n axisLength: number,\n skipTick?: boolean\n) {\n if (axisOption?.zero) {\n min = Math.min(min, 0);\n max = Math.max(max, 0);\n }\n if (axisOption?.expand) {\n const domainMin = min;\n const domainMax = max;\n if (isValid(axisOption.expand.min)) {\n min = domainMin - (domainMax - domainMin) * axisOption.expand.min;\n }\n if (isValid(axisOption.expand.max)) {\n max = domainMax + (domainMax - domainMin) * axisOption.expand.max;\n }\n }\n if (isNumber(axisOption?.min)) {\n min = axisOption.min;\n }\n if (isNumber(axisOption?.max)) {\n max = axisOption.max;\n }\n\n let scale;\n if (axisOption?.type === 'log') {\n scale = new LogScale();\n scale.base(axisOption?.base ?? 10);\n } else if (axisOption?.type === 'symlog') {\n scale = new SymlogScale();\n scale.constant(axisOption?.constant ?? 10);\n } else {\n scale = new LinearScale();\n }\n scale.domain([min, max], !!axisOption?.nice);\n\n if (axisOption?.nice) {\n let tickCount = axisOption.tick?.forceTickCount ?? axisOption.tick?.tickCount ?? 10;\n if (isFunction(tickCount)) {\n tickCount = tickCount({\n axisLength,\n labelStyle: axisOption?.label?.style ?? {\n fontSize: THEME_CONSTANTS.LABEL_FONT_SIZE\n }\n });\n }\n // 如果配置了精度优先,那么最低是10\n // 否则就直接使用tickCount即可\n if (axisOption.niceType === 'accurateFirst') {\n tickCount = Math.max(10, tickCount);\n }\n if (isNil(axisOption.min) && isNil(axisOption.max)) {\n scale.nice(tickCount);\n } else if (isValid(axisOption.min) && isNil(axisOption.max)) {\n scale.niceMax(tickCount);\n } else if (isNil(axisOption.min) && isValid(axisOption.max)) {\n scale.niceMin(tickCount);\n }\n }\n\n delete (scale as any)._niceType; // ensure scaleTicks consistent in `measurement`, `component label` and `chart`\n let scaleTicks;\n if (!skipTick) {\n scaleTicks = scale.ticks(isNumber(axisOption?.tickCount) ? axisOption?.tickCount : DEFAULT_CONTINUOUS_TICK_COUNT, {\n noDecimals: axisOption?.tick?.noDecimals\n });\n // console.log(scaleTicks);\n }\n\n return {\n range: scale.domain(),\n ticks: scaleTicks\n };\n}\n"]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.getChartDataId = exports.getChartAxes = exports.getChartSpec = exports.getRawChartSpec = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), get_axis_config_1 = require("./get-axis-config"), get_axis_domain_1 = require("./get-axis-domain"), NO_AXISID_FRO_VTABLE = "NO_AXISID_FRO_VTABLE";
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), get_axis_config_1 = require("./get-axis-config"), get_axis_domain_1 = require("./get-axis-domain"), zero_align_1 = require("./zero-align"), NO_AXISID_FRO_VTABLE = "NO_AXISID_FRO_VTABLE";
|
|
8
8
|
|
|
9
9
|
function getRawChartSpec(col, row, layout) {
|
|
10
10
|
var _a, _b;
|
|
@@ -35,14 +35,13 @@ function getChartAxes(col, row, layout) {
|
|
|
35
35
|
if (layout.indicatorsAsCol) {
|
|
36
36
|
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row), colPath = layout.getColKeysPath(col, row);
|
|
37
37
|
indicatorKeys.forEach(((key, index) => {
|
|
38
|
-
const {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
range.min = axisRange[0], range.max = axisRange[1];
|
|
38
|
+
const {range: range, isZeroAlign: isZeroAlign, axisOption: axisOption} = getRange(col, row, index, 0 === index ? "bottom" : "top", indicatorKeys, colPath, layout);
|
|
39
|
+
if (isZeroAlign) {
|
|
40
|
+
const subAxisRange = getRange(col, row, indicatorKeys.length - 1 - index, 0 === index ? "top" : "bottom", indicatorKeys, colPath, layout);
|
|
41
|
+
if (subAxisRange) {
|
|
42
|
+
const {range: subRange} = subAxisRange, align = (0, zero_align_1.getNewRangeToAlign)(range, subRange);
|
|
43
|
+
align && (range.min = align.range1[0], range.max = align.range1[1]);
|
|
44
|
+
}
|
|
46
45
|
}
|
|
47
46
|
(0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min),
|
|
48
47
|
(0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max),
|
|
@@ -96,14 +95,13 @@ function getChartAxes(col, row, layout) {
|
|
|
96
95
|
} else {
|
|
97
96
|
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row), rowPath = layout.getRowKeysPath(col, row);
|
|
98
97
|
indicatorKeys.forEach(((key, index) => {
|
|
99
|
-
const {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
range.min = axisRange[0], range.max = axisRange[1];
|
|
98
|
+
const {range: range, isZeroAlign: isZeroAlign, axisOption: axisOption} = getRange(col, row, index, 0 === index ? "left" : "right", indicatorKeys, rowPath, layout);
|
|
99
|
+
if (isZeroAlign) {
|
|
100
|
+
const subAxisRange = getRange(col, row, indicatorKeys.length - 1 - index, 0 === index ? "right" : "left", indicatorKeys, rowPath, layout);
|
|
101
|
+
if (subAxisRange) {
|
|
102
|
+
const {range: subRange} = subAxisRange, align = (0, zero_align_1.getNewRangeToAlign)(range, subRange);
|
|
103
|
+
align && (range.min = align.range1[0], range.max = align.range1[1]);
|
|
104
|
+
}
|
|
107
105
|
}
|
|
108
106
|
(0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min),
|
|
109
107
|
(0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max),
|
|
@@ -176,6 +174,24 @@ function getChartDataId(col, row, layout) {
|
|
|
176
174
|
return chartSpec.data.id;
|
|
177
175
|
}
|
|
178
176
|
|
|
177
|
+
function getRange(col, row, index, position, indicatorKeys, path, layout) {
|
|
178
|
+
const {axisOption: axisOption, isPercent: isPercent, isZeroAlign: isZeroAlign, seriesIndice: seriesIndice} = (0,
|
|
179
|
+
get_axis_config_1.getAxisOption)(col, row, position, layout), range = (0, get_axis_config_1.getAxisRange)(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, path, null != seriesIndice ? seriesIndice : index);
|
|
180
|
+
if (isPercent && (range.min = range.min < 0 ? -1 : 0, range.max = range.max > 0 ? 1 : 0),
|
|
181
|
+
((null == axisOption ? void 0 : axisOption.zero) || range.min === range.max) && (range.min = Math.min(range.min, 0),
|
|
182
|
+
range.max = Math.max(range.max, 0)), null == axisOption ? void 0 : axisOption.nice) {
|
|
183
|
+
const {range: axisRange} = (0, get_axis_domain_1.getAxisDomainRangeAndLabels)(range.min, range.max, axisOption, isZeroAlign, layout._table.getColWidth(col));
|
|
184
|
+
range.min = axisRange[0], range.max = axisRange[1];
|
|
185
|
+
}
|
|
186
|
+
return (0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min),
|
|
187
|
+
(0, vutils_1.isNumber)(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max),
|
|
188
|
+
{
|
|
189
|
+
range: range,
|
|
190
|
+
isZeroAlign: isZeroAlign,
|
|
191
|
+
axisOption: axisOption
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
|
|
179
195
|
exports.getRawChartSpec = getRawChartSpec, exports.getChartSpec = getChartSpec,
|
|
180
196
|
exports.getChartAxes = getChartAxes, exports.getChartDataId = getChartDataId;
|
|
181
197
|
//# sourceMappingURL=get-chart-spec.js.map
|