@visactor/vtable 1.4.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/ListTable-all.d.ts +3 -0
- package/cjs/ListTable-all.js +18 -0
- package/cjs/ListTable-all.js.map +1 -0
- package/cjs/ListTable-simple.d.ts +3 -0
- package/cjs/ListTable-simple.js +14 -0
- package/cjs/ListTable-simple.js.map +1 -0
- package/cjs/ListTable.js +38 -22
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.js +34 -14
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable-all.d.ts +3 -0
- package/cjs/PivotTable-all.js +19 -0
- package/cjs/PivotTable-all.js.map +1 -0
- package/cjs/PivotTable-simple.d.ts +3 -0
- package/cjs/PivotTable-simple.js +14 -0
- package/cjs/PivotTable-simple.js.map +1 -0
- package/cjs/PivotTable.js +32 -17
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/body-helper/style.js +1 -2
- package/cjs/components/axis/axis.d.ts +3 -0
- package/cjs/components/axis/axis.js +3 -3
- package/cjs/components/axis/axis.js.map +1 -1
- package/cjs/components/axis/get-axis-component-size.d.ts +2 -0
- package/cjs/components/axis/get-axis-component-size.js.map +1 -1
- package/cjs/components/empty-tip/empty-tip.d.ts +3 -0
- package/cjs/components/empty-tip/empty-tip.js.map +1 -1
- package/cjs/components/index.d.ts +6 -0
- package/cjs/components/index.js +44 -0
- package/cjs/components/index.js.map +1 -0
- package/cjs/components/legend/create-legend.d.ts +1 -0
- package/cjs/components/legend/create-legend.js.map +1 -1
- package/cjs/components/menu/dom/MenuHandler.d.ts +3 -0
- package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
- package/cjs/components/title/title.d.ts +3 -0
- package/cjs/components/title/title.js.map +1 -1
- package/cjs/components/tooltip/TooltipHandler.d.ts +3 -0
- package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +4 -2
- package/cjs/core/BaseTable.js +57 -35
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/factory.d.ts +11 -0
- package/cjs/core/factory.js +29 -0
- package/cjs/core/factory.js.map +1 -0
- package/cjs/core/row-series-number-helper.js +2 -1
- package/cjs/core/utils/get-cell-position.js +6 -2
- package/cjs/core/utils/get-cell-position.js.map +1 -1
- package/cjs/edit/edit-manager.js +1 -2
- package/cjs/event/listener/container-dom.js +3 -2
- package/cjs/event/listener/container-dom.js.map +1 -1
- package/cjs/event/listener/table-group.d.ts +3 -0
- package/cjs/event/listener/table-group.js +3 -2
- package/cjs/event/listener/table-group.js.map +1 -1
- package/cjs/event/media-click.js +3 -1
- package/cjs/event/media-click.js.map +1 -1
- package/cjs/index.d.ts +8 -4
- package/cjs/index.js +26 -7
- package/cjs/index.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-config.d.ts +1 -1
- package/cjs/layout/chart-helper/get-axis-config.js +4 -4
- package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-domain.d.ts +1 -0
- package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
- package/cjs/layout/chart-helper/get-chart-spec.js +31 -9
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/cjs/layout/pivot-header-layout.js +8 -6
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/layout/row-height-map.js +0 -1
- package/cjs/plugins/themes.js +2 -1
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +2 -2
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +18 -11
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -0
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +3 -2
- package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +21 -4
- package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +4 -2
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js +34 -14
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/index.d.ts +8 -0
- package/cjs/scenegraph/group-creater/cell-type/index.js +55 -0
- package/cjs/scenegraph/group-creater/cell-type/index.js.map +1 -0
- package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +1 -0
- package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/radio-cell.d.ts +1 -0
- package/cjs/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +1 -0
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -0
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/video-cell.d.ts +3 -1
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js +21 -5
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +8 -8
- package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.js +4 -4
- package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/sort-horizontal.js +2 -2
- package/cjs/scenegraph/group-creater/progress/update-position/sort-horizontal.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js +7 -8
- package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js +3 -3
- package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/util.js +3 -3
- package/cjs/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js +3 -3
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
- package/cjs/scenegraph/layout/compute-row-height.js +3 -3
- package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
- package/cjs/scenegraph/layout/update-height.js +5 -6
- package/cjs/scenegraph/layout/update-height.js.map +1 -1
- package/cjs/scenegraph/layout/update-width.js +5 -6
- package/cjs/scenegraph/layout/update-width.js.map +1 -1
- package/cjs/scenegraph/refresh-node/update-chart.js +2 -2
- package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/cjs/scenegraph/scenegraph.js +5 -5
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/select/update-select-border.js +72 -49
- package/cjs/scenegraph/select/update-select-border.js.map +1 -1
- package/cjs/scenegraph/utils/text-icon-layout.d.ts +16 -0
- package/cjs/scenegraph/utils/text-icon-layout.js +80 -58
- package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
- package/cjs/state/select/update-position.js +2 -2
- package/cjs/state/select/update-position.js.map +1 -1
- package/cjs/state/state.js +1 -1
- package/cjs/themes/ARCO.js +1 -1
- package/cjs/themes/BRIGHT.js +1 -1
- package/cjs/themes/DARK.js +1 -1
- package/cjs/themes/DEFAULT.js +1 -1
- package/cjs/themes/SIMPLIFY.js +1 -1
- package/cjs/ts-types/base-table.d.ts +5 -3
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/ts-types/theme.js.map +1 -1
- package/cjs/vrender.js +7 -7
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +30693 -30803
- package/dist/vtable.min.js +2 -2
- package/es/ListTable-all.d.ts +3 -0
- package/es/ListTable-all.js +12 -0
- package/es/ListTable-all.js.map +1 -0
- package/es/ListTable-simple.d.ts +3 -0
- package/es/ListTable-simple.js +8 -0
- package/es/ListTable-simple.js.map +1 -0
- package/es/ListTable.js +34 -19
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.js +35 -15
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable-all.d.ts +3 -0
- package/es/PivotTable-all.js +13 -0
- package/es/PivotTable-all.js.map +1 -0
- package/es/PivotTable-simple.d.ts +3 -0
- package/es/PivotTable-simple.js +8 -0
- package/es/PivotTable-simple.js.map +1 -0
- package/es/PivotTable.js +31 -18
- package/es/PivotTable.js.map +1 -1
- package/es/body-helper/style.js +1 -2
- package/es/components/axis/axis.d.ts +3 -0
- package/es/components/axis/axis.js +4 -3
- package/es/components/axis/axis.js.map +1 -1
- package/es/components/axis/get-axis-component-size.d.ts +2 -0
- package/es/components/axis/get-axis-component-size.js.map +1 -1
- package/es/components/empty-tip/empty-tip.d.ts +3 -0
- package/es/components/empty-tip/empty-tip.js.map +1 -1
- package/es/components/index.d.ts +6 -0
- package/es/components/index.js +44 -0
- package/es/components/index.js.map +1 -0
- package/es/components/legend/create-legend.d.ts +1 -0
- package/es/components/legend/create-legend.js.map +1 -1
- package/es/components/menu/dom/MenuHandler.d.ts +3 -0
- package/es/components/menu/dom/MenuHandler.js.map +1 -1
- package/es/components/title/title.d.ts +3 -0
- package/es/components/title/title.js.map +1 -1
- package/es/components/tooltip/TooltipHandler.d.ts +3 -0
- package/es/components/tooltip/TooltipHandler.js.map +1 -1
- package/es/core/BaseTable.d.ts +4 -2
- package/es/core/BaseTable.js +58 -38
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/factory.d.ts +11 -0
- package/es/core/factory.js +23 -0
- package/es/core/factory.js.map +1 -0
- package/es/core/row-series-number-helper.js +2 -1
- package/es/core/utils/get-cell-position.js +6 -2
- package/es/core/utils/get-cell-position.js.map +1 -1
- package/es/edit/edit-manager.js +1 -2
- package/es/event/listener/container-dom.js +3 -1
- package/es/event/listener/container-dom.js.map +1 -1
- package/es/event/listener/table-group.d.ts +3 -0
- package/es/event/listener/table-group.js +2 -2
- package/es/event/listener/table-group.js.map +1 -1
- package/es/event/media-click.js +3 -1
- package/es/event/media-click.js.map +1 -1
- package/es/index.d.ts +8 -4
- package/es/index.js +12 -4
- package/es/index.js.map +1 -1
- package/es/layout/chart-helper/get-axis-config.d.ts +1 -1
- package/es/layout/chart-helper/get-axis-config.js +4 -4
- package/es/layout/chart-helper/get-axis-config.js.map +1 -1
- package/es/layout/chart-helper/get-axis-domain.d.ts +1 -0
- package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
- package/es/layout/chart-helper/get-chart-spec.js +34 -10
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/es/layout/pivot-header-layout.js +8 -6
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/layout/row-height-map.js +1 -2
- package/es/plugins/themes.js +2 -1
- package/es/scenegraph/graphic/contributions/group-contribution-render.js +2 -2
- package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +18 -24
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -0
- package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/checkbox-cell.d.ts +3 -2
- package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +21 -3
- package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +4 -2
- package/es/scenegraph/group-creater/cell-type/image-cell.js +34 -13
- package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/index.d.ts +8 -0
- package/es/scenegraph/group-creater/cell-type/index.js +52 -0
- package/es/scenegraph/group-creater/cell-type/index.js.map +1 -0
- package/es/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +1 -0
- package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/radio-cell.d.ts +1 -0
- package/es/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +1 -0
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -0
- package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/video-cell.d.ts +3 -1
- package/es/scenegraph/group-creater/cell-type/video-cell.js +21 -4
- package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
- package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +8 -8
- package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
- package/es/scenegraph/group-creater/progress/proxy.js +4 -4
- package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/sort-horizontal.js +4 -3
- package/es/scenegraph/group-creater/progress/update-position/sort-horizontal.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js +7 -8
- package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js +3 -3
- package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/util.js +3 -3
- package/es/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
- package/es/scenegraph/layout/compute-col-width.js +3 -5
- package/es/scenegraph/layout/compute-col-width.js.map +1 -1
- package/es/scenegraph/layout/compute-row-height.js +3 -5
- package/es/scenegraph/layout/compute-row-height.js.map +1 -1
- package/es/scenegraph/layout/update-height.js +6 -8
- package/es/scenegraph/layout/update-height.js.map +1 -1
- package/es/scenegraph/layout/update-width.js +5 -9
- package/es/scenegraph/layout/update-width.js.map +1 -1
- package/es/scenegraph/refresh-node/update-chart.js +2 -2
- package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/es/scenegraph/scenegraph.js +6 -6
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/select/update-select-border.js +72 -49
- package/es/scenegraph/select/update-select-border.js.map +1 -1
- package/es/scenegraph/utils/text-icon-layout.d.ts +16 -0
- package/es/scenegraph/utils/text-icon-layout.js +78 -56
- package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
- package/es/state/select/update-position.js +2 -2
- package/es/state/select/update-position.js.map +1 -1
- package/es/state/state.js +1 -1
- package/es/themes/ARCO.js +1 -1
- package/es/themes/BRIGHT.js +1 -1
- package/es/themes/DARK.js +1 -1
- package/es/themes/DEFAULT.js +1 -1
- package/es/themes/SIMPLIFY.js +1 -1
- package/es/ts-types/base-table.d.ts +5 -3
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/ts-types/theme.js.map +1 -1
- package/es/vrender.js +5 -5
- package/es/vrender.js.map +1 -1
- package/package.json +12 -3
- package/cjs/vutil-extension-temp/algorithm/binary-search.d.ts +0 -2
- package/cjs/vutil-extension-temp/algorithm/binary-search.js +0 -21
- package/cjs/vutil-extension-temp/algorithm/binary-search.js.map +0 -1
- package/cjs/vutil-extension-temp/algorithm/index.d.ts +0 -1
- package/cjs/vutil-extension-temp/algorithm/index.js +0 -21
- package/cjs/vutil-extension-temp/algorithm/index.js.map +0 -1
- package/cjs/vutil-extension-temp/index.d.ts +0 -4
- package/cjs/vutil-extension-temp/index.js +0 -22
- package/cjs/vutil-extension-temp/index.js.map +0 -1
- package/cjs/vutil-extension-temp/spec/clone-deep.d.ts +0 -1
- package/cjs/vutil-extension-temp/spec/clone-deep.js +0 -27
- package/cjs/vutil-extension-temp/spec/clone-deep.js.map +0 -1
- package/cjs/vutil-extension-temp/spec/common.d.ts +0 -3
- package/cjs/vutil-extension-temp/spec/common.js +0 -23
- package/cjs/vutil-extension-temp/spec/common.js.map +0 -1
- package/cjs/vutil-extension-temp/spec/index.d.ts +0 -3
- package/cjs/vutil-extension-temp/spec/index.js +0 -22
- package/cjs/vutil-extension-temp/spec/index.js.map +0 -1
- package/cjs/vutil-extension-temp/spec/merge-spec.d.ts +0 -5
- package/cjs/vutil-extension-temp/spec/merge-spec.js +0 -69
- package/cjs/vutil-extension-temp/spec/merge-spec.js.map +0 -1
- package/cjs/vutil-extension-temp/transform/tick-data/config.d.ts +0 -1
- package/cjs/vutil-extension-temp/transform/tick-data/config.js +0 -6
- package/cjs/vutil-extension-temp/transform/tick-data/config.js.map +0 -1
- package/cjs/vutil-extension-temp/transform/tick-data/continuous.d.ts +0 -3
- package/cjs/vutil-extension-temp/transform/tick-data/continuous.js +0 -57
- package/cjs/vutil-extension-temp/transform/tick-data/continuous.js.map +0 -1
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.d.ts +0 -6
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.js +0 -101
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.js.map +0 -1
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.d.ts +0 -3
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js +0 -53
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js.map +0 -1
- package/cjs/vutil-extension-temp/transform/tick-data/index.d.ts +0 -6
- package/cjs/vutil-extension-temp/transform/tick-data/index.js +0 -41
- package/cjs/vutil-extension-temp/transform/tick-data/index.js.map +0 -1
- package/cjs/vutil-extension-temp/transform/tick-data/interface.d.ts +0 -38
- package/cjs/vutil-extension-temp/transform/tick-data/interface.js +0 -6
- package/cjs/vutil-extension-temp/transform/tick-data/interface.js.map +0 -1
- package/cjs/vutil-extension-temp/transform/tick-data/util.d.ts +0 -17
- package/cjs/vutil-extension-temp/transform/tick-data/util.js +0 -91
- package/cjs/vutil-extension-temp/transform/tick-data/util.js.map +0 -1
- package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.d.ts +0 -8
- package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js +0 -20
- package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js.map +0 -1
- package/cjs/vutil-extension-temp/utils/index.d.ts +0 -3
- package/cjs/vutil-extension-temp/utils/index.js +0 -22
- package/cjs/vutil-extension-temp/utils/index.js.map +0 -1
- package/cjs/vutil-extension-temp/utils/object.d.ts +0 -3
- package/cjs/vutil-extension-temp/utils/object.js +0 -30
- package/cjs/vutil-extension-temp/utils/object.js.map +0 -1
- package/cjs/vutil-extension-temp/utils/polar.d.ts +0 -5
- package/cjs/vutil-extension-temp/utils/polar.js +0 -23
- package/cjs/vutil-extension-temp/utils/polar.js.map +0 -1
- package/cjs/vutil-extension-temp/utils/text.d.ts +0 -4
- package/cjs/vutil-extension-temp/utils/text.js +0 -17
- package/cjs/vutil-extension-temp/utils/text.js.map +0 -1
- package/es/vutil-extension-temp/algorithm/binary-search.d.ts +0 -2
- package/es/vutil-extension-temp/algorithm/binary-search.js +0 -11
- package/es/vutil-extension-temp/algorithm/binary-search.js.map +0 -1
- package/es/vutil-extension-temp/algorithm/index.d.ts +0 -1
- package/es/vutil-extension-temp/algorithm/index.js +0 -2
- package/es/vutil-extension-temp/algorithm/index.js.map +0 -1
- package/es/vutil-extension-temp/index.d.ts +0 -4
- package/es/vutil-extension-temp/index.js +0 -8
- package/es/vutil-extension-temp/index.js.map +0 -1
- package/es/vutil-extension-temp/spec/clone-deep.d.ts +0 -1
- package/es/vutil-extension-temp/spec/clone-deep.js +0 -20
- package/es/vutil-extension-temp/spec/clone-deep.js.map +0 -1
- package/es/vutil-extension-temp/spec/common.d.ts +0 -3
- package/es/vutil-extension-temp/spec/common.js +0 -15
- package/es/vutil-extension-temp/spec/common.js.map +0 -1
- package/es/vutil-extension-temp/spec/index.d.ts +0 -3
- package/es/vutil-extension-temp/spec/index.js +0 -6
- package/es/vutil-extension-temp/spec/index.js.map +0 -1
- package/es/vutil-extension-temp/spec/merge-spec.d.ts +0 -5
- package/es/vutil-extension-temp/spec/merge-spec.js +0 -57
- package/es/vutil-extension-temp/spec/merge-spec.js.map +0 -1
- package/es/vutil-extension-temp/transform/tick-data/config.d.ts +0 -1
- package/es/vutil-extension-temp/transform/tick-data/config.js +0 -2
- package/es/vutil-extension-temp/transform/tick-data/config.js.map +0 -1
- package/es/vutil-extension-temp/transform/tick-data/continuous.d.ts +0 -3
- package/es/vutil-extension-temp/transform/tick-data/continuous.js +0 -56
- package/es/vutil-extension-temp/transform/tick-data/continuous.js.map +0 -1
- package/es/vutil-extension-temp/transform/tick-data/discrete/linear.d.ts +0 -6
- package/es/vutil-extension-temp/transform/tick-data/discrete/linear.js +0 -92
- package/es/vutil-extension-temp/transform/tick-data/discrete/linear.js.map +0 -1
- package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.d.ts +0 -3
- package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js +0 -45
- package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js.map +0 -1
- package/es/vutil-extension-temp/transform/tick-data/index.d.ts +0 -6
- package/es/vutil-extension-temp/transform/tick-data/index.js +0 -23
- package/es/vutil-extension-temp/transform/tick-data/index.js.map +0 -1
- package/es/vutil-extension-temp/transform/tick-data/interface.d.ts +0 -38
- package/es/vutil-extension-temp/transform/tick-data/interface.js +0 -2
- package/es/vutil-extension-temp/transform/tick-data/interface.js.map +0 -1
- package/es/vutil-extension-temp/transform/tick-data/util.d.ts +0 -17
- package/es/vutil-extension-temp/transform/tick-data/util.js +0 -78
- package/es/vutil-extension-temp/transform/tick-data/util.js.map +0 -1
- package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.d.ts +0 -8
- package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js +0 -12
- package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js.map +0 -1
- package/es/vutil-extension-temp/utils/index.d.ts +0 -3
- package/es/vutil-extension-temp/utils/index.js +0 -6
- package/es/vutil-extension-temp/utils/index.js.map +0 -1
- package/es/vutil-extension-temp/utils/object.d.ts +0 -3
- package/es/vutil-extension-temp/utils/object.js +0 -15
- package/es/vutil-extension-temp/utils/object.js.map +0 -1
- package/es/vutil-extension-temp/utils/polar.d.ts +0 -5
- package/es/vutil-extension-temp/utils/polar.js +0 -16
- package/es/vutil-extension-temp/utils/polar.js.map +0 -1
- package/es/vutil-extension-temp/utils/text.d.ts +0 -4
- package/es/vutil-extension-temp/utils/text.js +0 -13
- package/es/vutil-extension-temp/utils/text.js.map +0 -1
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { IBaseScale } from '@visactor/vscale';
|
|
2
|
-
import type { IBoundsLike } from '@visactor/vutils';
|
|
3
|
-
import { AABBBounds } from '@visactor/vutils';
|
|
4
|
-
import type { IGraphic } from '@visactor/vrender-core';
|
|
5
|
-
import type { ICartesianTickDataOpt, IOrientType, IPolarTickDataOpt, ITickData } from './interface';
|
|
6
|
-
export declare const convertDomainToTickData: (domain: any[]) => ITickData[];
|
|
7
|
-
export declare const labelOverlap: (prevLabel: AABBBounds, nextLabel: AABBBounds, gap?: number) => boolean;
|
|
8
|
-
export declare const labelDistance: (prevLabel: AABBBounds, nextLabel: AABBBounds) => [number, number];
|
|
9
|
-
export declare function intersect(a: IBoundsLike, b: IBoundsLike, sep: number): boolean;
|
|
10
|
-
export interface ILabelItem<T> extends Pick<IGraphic, 'AABBBounds'> {
|
|
11
|
-
value?: T;
|
|
12
|
-
}
|
|
13
|
-
export declare function hasOverlap<T>(items: ILabelItem<T>[], pad: number): boolean;
|
|
14
|
-
export declare const MIN_TICK_GAP = 12;
|
|
15
|
-
export declare const getCartesianLabelBounds: (scale: IBaseScale, domain: any[], op: ICartesianTickDataOpt) => AABBBounds[];
|
|
16
|
-
export declare const getPolarAngleLabelBounds: (scale: IBaseScale, domain: any[], op: IPolarTickDataOpt) => AABBBounds[];
|
|
17
|
-
export declare const isAxisHorizontal: (axisOrientType: IOrientType) => boolean;
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.isAxisHorizontal = exports.getPolarAngleLabelBounds = exports.getCartesianLabelBounds = exports.MIN_TICK_GAP = exports.hasOverlap = exports.intersect = exports.labelDistance = exports.labelOverlap = exports.convertDomainToTickData = void 0;
|
|
6
|
-
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), text_1 = require("../../utils/text"), polar_label_position_1 = require("./utils/polar-label-position"), convertDomainToTickData = domain => domain.map(((t, index) => ({
|
|
8
|
-
index: index,
|
|
9
|
-
value: t
|
|
10
|
-
})));
|
|
11
|
-
|
|
12
|
-
exports.convertDomainToTickData = convertDomainToTickData;
|
|
13
|
-
|
|
14
|
-
const labelOverlap = (prevLabel, nextLabel, gap = 0) => {
|
|
15
|
-
const prevBounds = new vutils_1.AABBBounds(prevLabel).expand(gap / 2), nextBounds = new vutils_1.AABBBounds(nextLabel).expand(gap / 2);
|
|
16
|
-
return prevBounds.intersects(nextBounds);
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
exports.labelOverlap = labelOverlap;
|
|
20
|
-
|
|
21
|
-
const labelDistance = (prevLabel, nextLabel) => {
|
|
22
|
-
let horizontal = 0;
|
|
23
|
-
prevLabel.x2 < nextLabel.x1 ? horizontal = nextLabel.x1 - prevLabel.x2 : nextLabel.x2 < prevLabel.x1 && (horizontal = prevLabel.x1 - nextLabel.x2);
|
|
24
|
-
let vertical = 0;
|
|
25
|
-
return prevLabel.y2 < nextLabel.y1 ? vertical = nextLabel.y1 - prevLabel.y2 : nextLabel.y2 < prevLabel.y1 && (vertical = prevLabel.y1 - nextLabel.y2),
|
|
26
|
-
[ horizontal, vertical ];
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
function intersect(a, b, sep) {
|
|
30
|
-
return sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function hasOverlap(items, pad) {
|
|
34
|
-
for (let b, i = 1, n = items.length, a = items[0]; i < n; a = b, ++i) if (b = items[i],
|
|
35
|
-
intersect(a.AABBBounds, b.AABBBounds, pad)) return !0;
|
|
36
|
-
return !1;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
exports.labelDistance = labelDistance, exports.intersect = intersect, exports.hasOverlap = hasOverlap,
|
|
40
|
-
exports.MIN_TICK_GAP = 12;
|
|
41
|
-
|
|
42
|
-
const getCartesianLabelBounds = (scale, domain, op) => {
|
|
43
|
-
var _a;
|
|
44
|
-
const {labelStyle: labelStyle, axisOrientType: axisOrientType, labelFlush: labelFlush, labelFormatter: labelFormatter, startAngle: startAngle = 0} = op;
|
|
45
|
-
let labelAngle = null !== (_a = labelStyle.angle) && void 0 !== _a ? _a : 0;
|
|
46
|
-
"vertical" === labelStyle.direction && (labelAngle += (0, vutils_1.degreeToRadian)(90));
|
|
47
|
-
const isHorizontal = [ "bottom", "top" ].includes(axisOrientType), isVertical = [ "left", "right" ].includes(axisOrientType);
|
|
48
|
-
let scaleX = 1, scaleY = 0;
|
|
49
|
-
isHorizontal || (isVertical ? (scaleX = 0, scaleY = 1) : startAngle && (scaleX = Math.cos(startAngle),
|
|
50
|
-
scaleY = -Math.sin(startAngle)));
|
|
51
|
-
const textMeasure = (0, text_1.initTextMeasure)(labelStyle), labelBoundsList = domain.map(((v, i) => {
|
|
52
|
-
var _a, _b;
|
|
53
|
-
const str = labelFormatter ? labelFormatter(v) : `${v}`, {width: width, height: height} = textMeasure.quickMeasure(str), textWidth = Math.max(width, exports.MIN_TICK_GAP), textHeight = Math.max(height, exports.MIN_TICK_GAP), pos = scale.scale(v), baseTextX = scaleX * pos, baseTextY = scaleY * pos;
|
|
54
|
-
let align, baseline, textX = baseTextX, textY = baseTextY;
|
|
55
|
-
align = labelFlush && isHorizontal && 0 === i ? "left" : labelFlush && isHorizontal && i === domain.length - 1 ? "right" : null !== (_a = labelStyle.textAlign) && void 0 !== _a ? _a : "center",
|
|
56
|
-
"right" === align ? textX -= textWidth : "center" === align && (textX -= textWidth / 2),
|
|
57
|
-
baseline = labelFlush && isVertical && 0 === i ? "top" : labelFlush && isVertical && i === domain.length - 1 ? "bottom" : null !== (_b = labelStyle.textBaseline) && void 0 !== _b ? _b : "middle",
|
|
58
|
-
"bottom" === baseline ? textY -= textHeight : "middle" === baseline && (textY -= textHeight / 2);
|
|
59
|
-
const bounds = (new vutils_1.AABBBounds).set(textX, textY, textX + textWidth, textY + textHeight);
|
|
60
|
-
return labelAngle && bounds.rotate(labelAngle, baseTextX, baseTextY), bounds;
|
|
61
|
-
}));
|
|
62
|
-
return labelBoundsList;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
exports.getCartesianLabelBounds = getCartesianLabelBounds;
|
|
66
|
-
|
|
67
|
-
const getPolarAngleLabelBounds = (scale, domain, op) => {
|
|
68
|
-
var _a;
|
|
69
|
-
const {labelStyle: labelStyle, getRadius: getRadius, labelOffset: labelOffset, labelFormatter: labelFormatter, inside: inside} = op, radius = null == getRadius ? void 0 : getRadius(), labelAngle = null !== (_a = labelStyle.angle) && void 0 !== _a ? _a : 0, textMeasure = (0,
|
|
70
|
-
text_1.initTextMeasure)(labelStyle), labelBoundsList = domain.map((v => {
|
|
71
|
-
var _a, _b;
|
|
72
|
-
const str = labelFormatter ? labelFormatter(v) : `${v}`, {width: width, height: height} = textMeasure.quickMeasure(str), textWidth = Math.max(width, exports.MIN_TICK_GAP), textHeight = Math.max(height, exports.MIN_TICK_GAP), angle = scale.scale(v);
|
|
73
|
-
let textX = 0, textY = 0;
|
|
74
|
-
const orient_align = null !== (_a = labelStyle.textAlign) && void 0 !== _a ? _a : "center", orient_baseline = null !== (_b = labelStyle.textBaseline) && void 0 !== _b ? _b : "middle", {x: x, y: y} = (0,
|
|
75
|
-
polar_label_position_1.getLabelPosition)(angle, {
|
|
76
|
-
x: 0,
|
|
77
|
-
y: 0
|
|
78
|
-
}, radius, labelOffset, inside, str, labelStyle);
|
|
79
|
-
textX = x + ("right" === orient_align ? -textWidth : "center" === orient_align ? -textWidth / 2 : 0),
|
|
80
|
-
textY = y + ("bottom" === orient_baseline ? -textHeight : "middle" === orient_baseline ? -textHeight / 2 : 0);
|
|
81
|
-
return (new vutils_1.AABBBounds).set(textX, textY, textX + textWidth, textY + textHeight).rotate(labelAngle, textX + textWidth / 2, textY + textHeight / 2);
|
|
82
|
-
}));
|
|
83
|
-
return labelBoundsList;
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
exports.getPolarAngleLabelBounds = getPolarAngleLabelBounds;
|
|
87
|
-
|
|
88
|
-
const isAxisHorizontal = axisOrientType => [ "bottom", "top", "z" ].includes(axisOrientType);
|
|
89
|
-
|
|
90
|
-
exports.isAxisHorizontal = isAxisHorizontal;
|
|
91
|
-
//# sourceMappingURL=util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/transform/tick-data/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { AABBBounds, degreeToRadian } from '@visactor/vutils';\nimport type { IGraphic, TextAlignType, TextBaselineType } from '@visactor/vrender-core';\nimport { initTextMeasure } from '../../utils/text';\nimport type { ICartesianTickDataOpt, IOrientType, IPolarTickDataOpt, ITickData } from './interface';\nimport { getLabelPosition } from './utils/polar-label-position';\n\nexport const convertDomainToTickData = (domain: any[]): ITickData[] => {\n const ticks = domain.map((t: number, index: number) => {\n return {\n index,\n value: t\n };\n });\n return ticks;\n};\n\n/** 判断两个label是否有重叠情况 */\nexport const labelOverlap = (prevLabel: AABBBounds, nextLabel: AABBBounds, gap = 0): boolean => {\n const prevBounds = new AABBBounds(prevLabel).expand(gap / 2);\n const nextBounds = new AABBBounds(nextLabel).expand(gap / 2);\n return prevBounds.intersects(nextBounds);\n};\n\n/** 判断两个不相交的label相隔的距离 */\nexport const labelDistance = (prevLabel: AABBBounds, nextLabel: AABBBounds): [number, number] => {\n let horizontal = 0;\n if (prevLabel.x2 < nextLabel.x1) {\n horizontal = nextLabel.x1 - prevLabel.x2;\n } else if (nextLabel.x2 < prevLabel.x1) {\n horizontal = prevLabel.x1 - nextLabel.x2;\n }\n\n let vertical = 0;\n if (prevLabel.y2 < nextLabel.y1) {\n vertical = nextLabel.y1 - prevLabel.y2;\n } else if (nextLabel.y2 < prevLabel.y1) {\n vertical = prevLabel.y1 - nextLabel.y2;\n }\n\n return [horizontal, vertical];\n};\n\nexport function intersect(a: IBoundsLike, b: IBoundsLike, sep: number) {\n return sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);\n}\n\nexport interface ILabelItem<T> extends Pick<IGraphic, 'AABBBounds'> {\n value?: T;\n}\n\nexport function hasOverlap<T>(items: ILabelItem<T>[], pad: number): boolean {\n for (let i = 1, n = items.length, a = items[0], b; i < n; a = b, ++i) {\n b = items[i];\n if (intersect(a.AABBBounds, b.AABBBounds, pad)) {\n return true;\n }\n }\n return false;\n}\n\nexport const MIN_TICK_GAP = 12;\n\nexport const getCartesianLabelBounds = (scale: IBaseScale, domain: any[], op: ICartesianTickDataOpt): AABBBounds[] => {\n const { labelStyle, axisOrientType, labelFlush, labelFormatter, startAngle = 0 } = op;\n let labelAngle = labelStyle.angle ?? 0;\n if (labelStyle.direction === 'vertical') {\n labelAngle += degreeToRadian(90);\n }\n const isHorizontal = ['bottom', 'top'].includes(axisOrientType);\n const isVertical = ['left', 'right'].includes(axisOrientType);\n let scaleX = 1;\n let scaleY = 0;\n if (isHorizontal) {\n // nothing to update\n } else if (isVertical) {\n scaleX = 0;\n scaleY = 1;\n } else if (startAngle) {\n scaleX = Math.cos(startAngle);\n scaleY = -Math.sin(startAngle);\n }\n\n const textMeasure = initTextMeasure(labelStyle);\n const labelBoundsList = domain.map((v: any, i: number) => {\n const str = labelFormatter ? labelFormatter(v) : `${v}`;\n\n // 估算文本宽高\n const { width, height } = textMeasure.quickMeasure(str);\n const textWidth = Math.max(width, MIN_TICK_GAP);\n const textHeight = Math.max(height, MIN_TICK_GAP);\n\n // 估算文本位置\n const pos = scale.scale(v);\n const baseTextX = scaleX * pos;\n const baseTextY = scaleY * pos;\n let textX = baseTextX;\n let textY = baseTextY;\n\n let align: TextAlignType;\n if (labelFlush && isHorizontal && i === 0) {\n align = 'left';\n } else if (labelFlush && isHorizontal && i === domain.length - 1) {\n align = 'right';\n } else {\n align = labelStyle.textAlign ?? 'center';\n }\n if (align === 'right') {\n textX -= textWidth;\n } else if (align === 'center') {\n textX -= textWidth / 2;\n }\n\n let baseline: TextBaselineType;\n if (labelFlush && isVertical && i === 0) {\n baseline = 'top';\n } else if (labelFlush && isVertical && i === domain.length - 1) {\n baseline = 'bottom';\n } else {\n baseline = labelStyle.textBaseline ?? 'middle';\n }\n if (baseline === 'bottom') {\n textY -= textHeight;\n } else if (baseline === 'middle') {\n textY -= textHeight / 2;\n }\n\n // 计算 label 包围盒\n const bounds = new AABBBounds().set(textX, textY, textX + textWidth, textY + textHeight);\n\n if (labelAngle) {\n bounds.rotate(labelAngle, baseTextX, baseTextY);\n }\n\n return bounds;\n });\n\n return labelBoundsList;\n};\n\nexport const getPolarAngleLabelBounds = (scale: IBaseScale, domain: any[], op: IPolarTickDataOpt): AABBBounds[] => {\n const { labelStyle, getRadius, labelOffset, labelFormatter, inside } = op;\n const radius = getRadius?.();\n const labelAngle = labelStyle.angle ?? 0;\n\n const textMeasure = initTextMeasure(labelStyle);\n const labelBoundsList = domain.map((v: any) => {\n const str = labelFormatter ? labelFormatter(v) : `${v}`;\n\n // 估算文本宽高\n const { width, height } = textMeasure.quickMeasure(str);\n const textWidth = Math.max(width, MIN_TICK_GAP);\n const textHeight = Math.max(height, MIN_TICK_GAP);\n\n // 估算文本位置\n const angle = scale.scale(v);\n let textX = 0;\n let textY = 0;\n const orient = {\n align: labelStyle.textAlign ?? 'center',\n baseline: labelStyle.textBaseline ?? 'middle'\n };\n\n const { x, y } = getLabelPosition(angle, { x: 0, y: 0 }, radius, labelOffset, inside, str, labelStyle);\n textX = x + (orient.align === 'right' ? -textWidth : orient.align === 'center' ? -textWidth / 2 : 0);\n textY = y + (orient.baseline === 'bottom' ? -textHeight : orient.baseline === 'middle' ? -textHeight / 2 : 0);\n\n // 计算 label 包围盒\n const bounds = new AABBBounds()\n .set(textX, textY, textX + textWidth, textY + textHeight)\n .rotate(labelAngle, textX + textWidth / 2, textY + textHeight / 2);\n return bounds;\n });\n\n return labelBoundsList;\n};\n\nexport const isAxisHorizontal = (axisOrientType: IOrientType) => {\n return (['bottom', 'top', 'z'] as IOrientType[]).includes(axisOrientType);\n};\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ITextGraphicAttribute } from '@visactor/vrender-core';
|
|
2
|
-
export declare function getLabelPosition(angle: number, center: {
|
|
3
|
-
x: number;
|
|
4
|
-
y: number;
|
|
5
|
-
}, radius: number, labelOffset: number, inside: boolean, text: string | number, style: Partial<ITextGraphicAttribute>): {
|
|
6
|
-
x: number;
|
|
7
|
-
y: number;
|
|
8
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.getLabelPosition = void 0;
|
|
6
|
-
|
|
7
|
-
const vrender_components_1 = require("@visactor/vrender-components"), vutils_1 = require("@visactor/vutils");
|
|
8
|
-
|
|
9
|
-
function getLabelPosition(angle, center, radius, labelOffset, inside, text, style) {
|
|
10
|
-
const point = (0, vutils_1.polarToCartesian)({
|
|
11
|
-
x: 0,
|
|
12
|
-
y: 0
|
|
13
|
-
}, radius, angle), labelPoint = (0, vrender_components_1.getVerticalCoord)(point, (0,
|
|
14
|
-
vrender_components_1.getCircleVerticalVector)(labelOffset, point, center, inside)), vector = (0,
|
|
15
|
-
vrender_components_1.getCircleVerticalVector)(labelOffset || 1, labelPoint, center, inside);
|
|
16
|
-
return (0, vrender_components_1.getCircleLabelPosition)(labelPoint, vector, text, style);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
exports.getLabelPosition = getLabelPosition;
|
|
20
|
-
//# sourceMappingURL=polar-label-position.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/transform/tick-data/utils/polar-label-position.ts"],"names":[],"mappings":";;;AACA,qEAAiH;AACjH,6CAAoD;AAEpD,SAAgB,gBAAgB,CAC9B,KAAa,EACb,MAAgC,EAChC,MAAc,EACd,WAAmB,EACnB,MAAe,EACf,IAAqB,EACrB,KAAqC;IAErC,MAAM,KAAK,GAAG,IAAA,yBAAgB,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAA,qCAAgB,EAAC,KAAK,EAAE,IAAA,4CAAuB,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxG,MAAM,MAAM,GAAG,IAAA,4CAAuB,EAAC,WAAW,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrF,OAAO,IAAA,2CAAsB,EAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAbD,4CAaC","file":"polar-label-position.js","sourcesContent":["import type { ITextGraphicAttribute } from '@visactor/vrender-core';\nimport { getCircleLabelPosition, getCircleVerticalVector, getVerticalCoord } from '@visactor/vrender-components';\nimport { polarToCartesian } from '@visactor/vutils';\n\nexport function getLabelPosition(\n angle: number,\n center: { x: number; y: number },\n radius: number,\n labelOffset: number,\n inside: boolean,\n text: string | number,\n style: Partial<ITextGraphicAttribute>\n) {\n const point = polarToCartesian({ x: 0, y: 0 }, radius, angle);\n const labelPoint = getVerticalCoord(point, getCircleVerticalVector(labelOffset, point, center, inside));\n const vector = getCircleVerticalVector(labelOffset || 1, labelPoint, center, inside);\n return getCircleLabelPosition(labelPoint, vector, text, style);\n}\n"]}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
4
|
-
void 0 === k2 && (k2 = k);
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
|
|
7
|
-
enumerable: !0,
|
|
8
|
-
get: function() {
|
|
9
|
-
return m[k];
|
|
10
|
-
}
|
|
11
|
-
}), Object.defineProperty(o, k2, desc);
|
|
12
|
-
} : function(o, m, k, k2) {
|
|
13
|
-
void 0 === k2 && (k2 = k), o[k2] = m[k];
|
|
14
|
-
}), __exportStar = this && this.__exportStar || function(m, exports) {
|
|
15
|
-
for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
Object.defineProperty(exports, "__esModule", {
|
|
19
|
-
value: !0
|
|
20
|
-
}), __exportStar(require("./object"), exports), __exportStar(require("./polar"), exports),
|
|
21
|
-
__exportStar(require("./text"), exports);
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB","file":"index.js","sourcesContent":["export * from './object';\nexport * from './polar';\nexport * from './text';\n"]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare const includeSpec: <T = any>(spec: Partial<T>, searchSpec: Partial<T>) => boolean;
|
|
2
|
-
export declare const setProperty: <T>(target: T, path: Array<string | number>, value: any) => T;
|
|
3
|
-
export declare const getProperty: <T>(target: any, path: Array<string | number>, defaultValue?: T) => T;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.getProperty = exports.setProperty = exports.includeSpec = void 0;
|
|
6
|
-
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), includeSpec = (spec, searchSpec) => spec === searchSpec || !(0,
|
|
8
|
-
vutils_1.isFunction)(spec) && !(0, vutils_1.isFunction)(searchSpec) && ((0, vutils_1.isArray)(spec) && (0,
|
|
9
|
-
vutils_1.isArray)(searchSpec) ? searchSpec.every((searchItem => spec.some((item => (0,
|
|
10
|
-
exports.includeSpec)(item, searchItem))))) : !(!(0, vutils_1.isObject)(spec) || !(0,
|
|
11
|
-
vutils_1.isObject)(searchSpec)) && Object.keys(searchSpec).every((key => (0, exports.includeSpec)(spec[key], searchSpec[key]))));
|
|
12
|
-
|
|
13
|
-
exports.includeSpec = includeSpec;
|
|
14
|
-
|
|
15
|
-
const setProperty = (target, path, value) => {
|
|
16
|
-
if ((0, vutils_1.isNil)(path)) return target;
|
|
17
|
-
const key = path[0];
|
|
18
|
-
return (0, vutils_1.isNil)(key) ? target : 1 === path.length ? (target[key] = value,
|
|
19
|
-
target) : ((0, vutils_1.isNil)(target[key]) && ("number" == typeof path[1] ? target[key] = [] : target[key] = {}),
|
|
20
|
-
(0, exports.setProperty)(target[key], path.slice(1), value));
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
exports.setProperty = setProperty;
|
|
24
|
-
|
|
25
|
-
const getProperty = (target, path, defaultValue) => {
|
|
26
|
-
if (!(0, vutils_1.isNil)(path)) return (0, vutils_1.get)(target, path, defaultValue);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
exports.getProperty = getProperty;
|
|
30
|
-
//# sourceMappingURL=object.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/utils/object.ts"],"names":[],"mappings":";;;AAAA,6CAA6E;AAOtE,MAAM,WAAW,GAAG,CAAU,IAAgB,EAAE,UAAsB,EAAW,EAAE;IACxF,IAAI,IAAI,KAAK,UAAU,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,IAAA,mBAAU,EAAC,UAAU,CAAC,EAAE;QAC9C,OAAO,KAAK,CAAC;KACd;IACD,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,IAAI,IAAA,gBAAO,EAAC,UAAU,CAAC,EAAE;QACxC,OAAO,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,mBAAW,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;KACzF;IACD,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,IAAI,IAAA,iBAAQ,EAAC,UAAU,CAAC,EAAE;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACtF;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAdW,QAAA,WAAW,eActB;AAEK,MAAM,WAAW,GAAG,CAAI,MAAS,EAAE,IAA4B,EAAE,KAAU,EAAK,EAAE;IACvF,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE;QACf,OAAO,MAAM,CAAC;KACf;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,EAAE;QACd,OAAO,MAAM,CAAC;KACf;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,OAAO,MAAM,CAAC;KACf;IACD,IAAI,IAAA,cAAK,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;QACtB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SAClB;aAAM;YACL,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SAClB;KACF;IACD,OAAO,IAAA,mBAAW,EAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC;AApBW,QAAA,WAAW,eAoBtB;AAEK,MAAM,WAAW,GAAG,CAAI,MAAW,EAAE,IAA4B,EAAE,YAAgB,EAAK,EAAE;IAC/F,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE;QACf,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,IAAA,YAAG,EAAC,MAAM,EAAE,IAAgB,EAAE,YAAY,CAAM,CAAC;AAC1D,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB","file":"object.js","sourcesContent":["import { get, isArray, isFunction, isNil, isObject } from '@visactor/vutils';\n\n/**\n * 判断一个 spec 是否包含另一个 spec 片段\n * @param spec 原始 spec\n * @param searchSpec 要匹配的 spec 片段\n */\nexport const includeSpec = <T = any>(spec: Partial<T>, searchSpec: Partial<T>): boolean => {\n if (spec === searchSpec) {\n return true;\n }\n if (isFunction(spec) || isFunction(searchSpec)) {\n return false;\n }\n if (isArray(spec) && isArray(searchSpec)) {\n return searchSpec.every(searchItem => spec.some(item => includeSpec(item, searchItem)));\n }\n if (isObject(spec) && isObject(searchSpec)) {\n return Object.keys(searchSpec).every(key => includeSpec(spec[key], searchSpec[key]));\n }\n return false;\n};\n\nexport const setProperty = <T>(target: T, path: Array<string | number>, value: any): T => {\n if (isNil(path)) {\n return target;\n }\n const key = path[0];\n if (isNil(key)) {\n return target;\n }\n if (path.length === 1) {\n target[key] = value;\n return target;\n }\n if (isNil(target[key])) {\n if (typeof path[1] === 'number') {\n target[key] = [];\n } else {\n target[key] = {};\n }\n }\n return setProperty(target[key], path.slice(1), value);\n};\n\nexport const getProperty = <T>(target: any, path: Array<string | number>, defaultValue?: T): T => {\n if (isNil(path)) {\n return undefined;\n }\n return get(target, path as string[], defaultValue) as T;\n};\n"]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function normalizeAngle(angle) {
|
|
4
|
-
for (;angle < 0; ) angle += 2 * Math.PI;
|
|
5
|
-
for (;angle >= 2 * Math.PI; ) angle -= 2 * Math.PI;
|
|
6
|
-
return angle;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
function angleLabelOrientAttribute(angle) {
|
|
10
|
-
let align = "center", baseline = "middle";
|
|
11
|
-
return align = (angle = normalizeAngle(angle)) >= Math.PI * (5 / 3) || angle <= Math.PI * (1 / 3) ? "left" : angle >= Math.PI * (2 / 3) && angle <= Math.PI * (4 / 3) ? "right" : "center",
|
|
12
|
-
baseline = angle >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6) ? "bottom" : angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6) ? "top" : "middle",
|
|
13
|
-
{
|
|
14
|
-
align: align,
|
|
15
|
-
baseline: baseline
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
Object.defineProperty(exports, "__esModule", {
|
|
20
|
-
value: !0
|
|
21
|
-
}), exports.angleLabelOrientAttribute = exports.normalizeAngle = void 0, exports.normalizeAngle = normalizeAngle,
|
|
22
|
-
exports.angleLabelOrientAttribute = angleLabelOrientAttribute;
|
|
23
|
-
//# sourceMappingURL=polar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/utils/polar.ts"],"names":[],"mappings":";;;AAMA,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,GAAG,CAAC,EAAE;QAChB,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;KACtB;IACD,OAAO,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE;QAC3B,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;KACtB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AARD,wCAQC;AAOD,SAAgB,yBAAyB,CAAC,KAAa;IACrD,IAAI,KAAK,GAAkB,QAAQ,CAAC;IACpC,IAAI,QAAQ,GAAqB,QAAQ,CAAC;IAE1C,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAG9B,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;QAC5D,KAAK,GAAG,MAAM,CAAC;KAChB;SAAM,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;QACnE,KAAK,GAAG,OAAO,CAAC;KACjB;SAAM;QACL,KAAK,GAAG,QAAQ,CAAC;KAClB;IAGD,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;QAC7D,QAAQ,GAAG,QAAQ,CAAC;KACrB;SAAM,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;QACnE,QAAQ,GAAG,KAAK,CAAC;KAClB;SAAM;QACL,QAAQ,GAAG,QAAQ,CAAC;KACrB;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAzBD,8DAyBC","file":"polar.js","sourcesContent":["import type { TextAlignType, TextBaselineType } from '@visactor/vrender-core';\n\n/**\n * 角度标准化处理\n * @param angle 弧度角\n */\nexport function normalizeAngle(angle: number): number {\n while (angle < 0) {\n angle += Math.PI * 2;\n }\n while (angle >= Math.PI * 2) {\n angle -= Math.PI * 2;\n }\n return angle;\n}\n\n/**\n * 计算对应角度下的角度轴标签定位属性\n * @param angle 弧度角,需要注意是逆时针计算的\n * @returns\n */\nexport function angleLabelOrientAttribute(angle: number) {\n let align: TextAlignType = 'center';\n let baseline: TextBaselineType = 'middle';\n\n angle = normalizeAngle(angle);\n\n // left: 5/3 - 1/3; right: 2/3 - 4/3; center: 5/3 - 1/3 & 2/3 - 4/3\n if (angle >= Math.PI * (5 / 3) || angle <= Math.PI * (1 / 3)) {\n align = 'left';\n } else if (angle >= Math.PI * (2 / 3) && angle <= Math.PI * (4 / 3)) {\n align = 'right';\n } else {\n align = 'center';\n }\n\n // bottom: 7/6 - 11/6; top: 1/6 - 5/6; middle: 11/6 - 1/6 & 5/6 - 7/6\n if (angle >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6)) {\n baseline = 'bottom';\n } else if (angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6)) {\n baseline = 'top';\n } else {\n baseline = 'middle';\n }\n\n return { align, baseline };\n}\n"]}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { ITextMeasureOption } from '@visactor/vutils';
|
|
2
|
-
import { TextMeasure } from '@visactor/vutils';
|
|
3
|
-
import type { ITextGraphicAttribute } from '@visactor/vrender-core';
|
|
4
|
-
export declare const initTextMeasure: (textSpec?: Partial<ITextGraphicAttribute>, option?: Partial<ITextMeasureOption>, useNaiveCanvas?: boolean, defaultFontParams?: Partial<ITextGraphicAttribute>) => TextMeasure<ITextGraphicAttribute>;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.initTextMeasure = void 0;
|
|
6
|
-
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), vrender_core_1 = require("@visactor/vrender-core"), initTextMeasure = (textSpec, option, useNaiveCanvas, defaultFontParams) => new vutils_1.TextMeasure(Object.assign({
|
|
8
|
-
defaultFontParams: Object.assign({
|
|
9
|
-
fontFamily: "PingFang SC,Helvetica Neue,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol",
|
|
10
|
-
fontSize: 14
|
|
11
|
-
}, defaultFontParams),
|
|
12
|
-
getTextBounds: useNaiveCanvas ? void 0 : vrender_core_1.getTextBounds,
|
|
13
|
-
specialCharSet: "-/: .,@%'\"~" + vutils_1.TextMeasure.ALPHABET_CHAR_SET + vutils_1.TextMeasure.ALPHABET_CHAR_SET.toUpperCase()
|
|
14
|
-
}, null != option ? option : {}), textSpec);
|
|
15
|
-
|
|
16
|
-
exports.initTextMeasure = initTextMeasure;
|
|
17
|
-
//# sourceMappingURL=text.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/utils/text.ts"],"names":[],"mappings":";;;AAEA,6CAA+C;AAE/C,yDAAuD;AAEhD,MAAM,eAAe,GAAG,CAC7B,QAAyC,EACzC,MAAoC,EACpC,cAAwB,EACxB,iBAAkD,EACd,EAAE;IACtC,OAAO,IAAI,oBAAW,iBAElB,iBAAiB,kBACf,UAAU,EAER,gKAAgK,EAClK,QAAQ,EAAE,EAAE,IACT,iBAAiB,GAEtB,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,4BAAa,EACzD,cAAc,EAAE,cAAc,GAAG,oBAAW,CAAC,iBAAiB,GAAG,oBAAW,CAAC,iBAAiB,CAAC,WAAW,EAAE,IACzG,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,GAEnB,QAAQ,CACT,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,eAAe,mBAqB1B","file":"text.js","sourcesContent":["import type { ITextMeasureOption } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { TextMeasure } from '@visactor/vutils';\nimport type { ITextGraphicAttribute } from '@visactor/vrender-core';\nimport { getTextBounds } from '@visactor/vrender-core';\n\nexport const initTextMeasure = (\n textSpec?: Partial<ITextGraphicAttribute>,\n option?: Partial<ITextMeasureOption>,\n useNaiveCanvas?: boolean,\n defaultFontParams?: Partial<ITextGraphicAttribute>\n): TextMeasure<ITextGraphicAttribute> => {\n return new TextMeasure<ITextGraphicAttribute>(\n {\n defaultFontParams: {\n fontFamily:\n // eslint-disable-next-line max-len\n 'PingFang SC,Helvetica Neue,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol',\n fontSize: 14,\n ...defaultFontParams\n },\n getTextBounds: useNaiveCanvas ? undefined : getTextBounds,\n specialCharSet: '-/: .,@%\\'\"~' + TextMeasure.ALPHABET_CHAR_SET + TextMeasure.ALPHABET_CHAR_SET.toUpperCase(),\n ...(option ?? {})\n },\n textSpec\n );\n};\n"]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export const binaryFuzzySearch = (arr, compareFn) => binaryFuzzySearchInNumberRange(0, arr.length, (value => compareFn(arr[value])));
|
|
2
|
-
|
|
3
|
-
export const binaryFuzzySearchInNumberRange = (x1, x2, compareFn) => {
|
|
4
|
-
let left = x1, right = x2;
|
|
5
|
-
for (;left < right; ) {
|
|
6
|
-
const mid = Math.floor((left + right) / 2);
|
|
7
|
-
compareFn(mid) >= 0 ? right = mid : left = mid + 1;
|
|
8
|
-
}
|
|
9
|
-
return left;
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=binary-search.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/algorithm/binary-search.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAI,GAAQ,EAAE,SAA+B,EAAE,EAAE;IAChF,OAAO,8BAA8B,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,SAAoC,EAAE,EAAE;IAC7G,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,OAAO,IAAI,GAAG,KAAK,EAAE;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACvB,KAAK,GAAG,GAAG,CAAC;SACb;aAAM;YACL,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;SAChB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","file":"binary-search.js","sourcesContent":["/**\n * 二分靠近框架,返回数组中第一个大于等于目标值的数的索引\n * @param arr 数组\n * @param compareFn 比较函数,返回(当前值-目标值)\n */\nexport const binaryFuzzySearch = <T>(arr: T[], compareFn: (value: T) => number) => {\n return binaryFuzzySearchInNumberRange(0, arr.length, value => compareFn(arr[value]));\n};\n\n/**\n * 二分靠近框架,返回数字区间中第一个大于等于目标值的数字\n * @param x1 区间上界\n * @param x2 区间下界(不包含)\n * @param compareFn 比较函数,返回(当前值-目标值)\n */\nexport const binaryFuzzySearchInNumberRange = (x1: number, x2: number, compareFn: (value: number) => number) => {\n let left = x1;\n let right = x2;\n while (left < right) {\n const mid = Math.floor((left + right) / 2);\n if (compareFn(mid) >= 0) {\n right = mid; // 第一个大于等于目标值的数\n } else {\n left = mid + 1;\n }\n }\n return left;\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './binary-search';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/algorithm/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC","file":"index.js","sourcesContent":["export * from './binary-search';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC","file":"index.js","sourcesContent":["export * from './transform/tick-data';\nexport * from './utils';\nexport * from './algorithm';\nexport * from './spec';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function cloneDeepSpec(spec: any, excludeKeys?: string[]): any;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { isArray, isBoolean, isDate, isNumber, isString, isValid } from "@visactor/vutils";
|
|
2
|
-
|
|
3
|
-
import { isDataView, isHTMLElement } from "./common";
|
|
4
|
-
|
|
5
|
-
export function cloneDeepSpec(spec, excludeKeys = [ "data" ]) {
|
|
6
|
-
const value = spec;
|
|
7
|
-
let result;
|
|
8
|
-
if (!isValid(value) || "object" != typeof value) return value;
|
|
9
|
-
if (isDataView(value) || isHTMLElement(value)) return value;
|
|
10
|
-
const isArr = isArray(value), length = value.length;
|
|
11
|
-
result = isArr ? new Array(length) : "object" == typeof value ? {} : isBoolean(value) || isNumber(value) || isString(value) ? value : isDate(value) ? new Date(+value) : void 0;
|
|
12
|
-
const props = isArr ? void 0 : Object.keys(Object(value));
|
|
13
|
-
let index = -1;
|
|
14
|
-
if (result) for (;++index < (props || value).length; ) {
|
|
15
|
-
const key = props ? props[index] : index, subValue = value[key];
|
|
16
|
-
(null == excludeKeys ? void 0 : excludeKeys.includes(key.toString())) ? result[key] = subValue : result[key] = cloneDeepSpec(subValue, excludeKeys);
|
|
17
|
-
}
|
|
18
|
-
return result;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=clone-deep.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/spec/clone-deep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMrD,MAAM,UAAU,aAAa,CAAC,IAAS,EAAE,cAAwB,CAAC,MAAM,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC;IAEnB,IAAI,MAAM,CAAC;IACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAChD,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;QAC7C,OAAO,KAAK,CAAC;KACd;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B,IAAI,KAAK,EAAE;QACT,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;KAC5B;SAEI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAClC,MAAM,GAAG,EAAE,CAAC;KACb;SAEI,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC/D,MAAM,GAAG,KAAK,CAAC;KAChB;SAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;KAC3B;SAEI;QACH,MAAM,GAAG,SAAS,CAAC;KACpB;IAKD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7D,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,IAAI,MAAM,EAAE;QACV,OAAO,EAAE,KAAK,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE;YACxC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACzC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;aACxB;iBAAM;gBACL,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;aACpD;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","file":"clone-deep.js","sourcesContent":["import { isArray, isBoolean, isDate, isNumber, isString, isValid } from '@visactor/vutils';\nimport { isDataView, isHTMLElement } from './common';\n\n/**\n * 深拷贝 spec,为避免循环引用,DataView 维持原有引用\n * @param spec 原spec\n */\nexport function cloneDeepSpec(spec: any, excludeKeys: string[] = ['data']) {\n const value = spec;\n\n let result;\n if (!isValid(value) || typeof value !== 'object') {\n return value;\n }\n\n // 判断是不是不能深拷贝的对象\n if (isDataView(value) || isHTMLElement(value)) {\n return value;\n }\n\n const isArr = isArray(value);\n const length = value.length;\n // 不考虑特殊数组的额外处理\n if (isArr) {\n result = new Array(length);\n }\n // 不考虑 buffer / arguments 类型的处理以及 prototype 的额外处理\n else if (typeof value === 'object') {\n result = {};\n }\n // 不建议使用作为 Boolean / Number / String 作为构造器\n else if (isBoolean(value) || isNumber(value) || isString(value)) {\n result = value;\n } else if (isDate(value)) {\n result = new Date(+value);\n }\n // 不考虑 ArrayBuffer / DataView / TypedArray / map / set / regexp / symbol 类型\n else {\n result = undefined;\n }\n\n // 不考虑 map / set / TypedArray 类型的赋值\n\n // 不考虑对象的 symbol 属性\n const props = isArr ? undefined : Object.keys(Object(value));\n\n let index = -1;\n if (result) {\n while (++index < (props || value).length) {\n const key = props ? props[index] : index;\n const subValue = value[key];\n if (excludeKeys?.includes(key.toString())) {\n result[key] = subValue;\n } else {\n result[key] = cloneDeepSpec(subValue, excludeKeys);\n }\n }\n }\n\n return result;\n}\n"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { DataView } from "@visactor/vdataset";
|
|
2
|
-
|
|
3
|
-
export function isDataView(obj) {
|
|
4
|
-
return obj instanceof DataView;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export function isHTMLElement(obj) {
|
|
8
|
-
try {
|
|
9
|
-
return obj instanceof Element;
|
|
10
|
-
} catch (_a) {
|
|
11
|
-
const htmlElementKeys = [ "children", "innerHTML", "classList", "setAttribute", "tagName", "getBoundingClientRect" ], keys = Object.keys(obj);
|
|
12
|
-
return htmlElementKeys.every((key => keys.includes(key)));
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=common.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/spec/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,UAAU,UAAU,CAAC,GAAQ;IACjC,OAAO,GAAG,YAAY,QAAQ,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAQ;IACpC,IAAI;QACF,OAAO,GAAG,YAAY,OAAO,CAAC;KAC/B;IAAC,WAAM;QAEN,MAAM,eAAe,GAAsB;YACzC,UAAU;YACV,WAAW;YACX,WAAW;YACX,cAAc;YACd,SAAS;YACT,uBAAuB;SACxB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD;AACH,CAAC","file":"common.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\n\nexport function isDataView(obj: any): obj is DataView {\n return obj instanceof DataView;\n}\n\nexport function isHTMLElement(obj: any): obj is Element {\n try {\n return obj instanceof Element;\n } catch {\n // 跨端 plan B\n const htmlElementKeys: (keyof Element)[] = [\n 'children',\n 'innerHTML',\n 'classList',\n 'setAttribute',\n 'tagName',\n 'getBoundingClientRect'\n ];\n const keys = Object.keys(obj);\n return htmlElementKeys.every(key => keys.includes(key));\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/spec/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC","file":"index.js","sourcesContent":["export * from './clone-deep';\nexport * from './common';\nexport * from './merge-spec';\n"]}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { isArray, isArrayLike, isObject, isPlainObject, isValid } from "@visactor/vutils";
|
|
2
|
-
|
|
3
|
-
function baseMerge(target, source, shallowArray = !1) {
|
|
4
|
-
if (source) {
|
|
5
|
-
if (target === source) return;
|
|
6
|
-
if (isValid(source) && "object" == typeof source) {
|
|
7
|
-
const iterable = Object(source), props = [];
|
|
8
|
-
for (const key in iterable) props.push(key);
|
|
9
|
-
let {length: length} = props, propIndex = -1;
|
|
10
|
-
for (;length--; ) {
|
|
11
|
-
const key = props[++propIndex];
|
|
12
|
-
isValid(iterable[key]) && "object" == typeof iterable[key] && !isArray(target[key]) ? baseMergeDeep(target, source, key, shallowArray) : assignMergeValue(target, key, iterable[key]);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function baseMergeDeep(target, source, key, shallowArray = !1) {
|
|
19
|
-
const objValue = target[key], srcValue = source[key];
|
|
20
|
-
let newValue = source[key], isCommon = !0;
|
|
21
|
-
if (isArray(srcValue)) {
|
|
22
|
-
if (shallowArray) newValue = []; else if (isArray(objValue)) newValue = objValue; else if (isArrayLike(objValue)) {
|
|
23
|
-
newValue = new Array(objValue.length);
|
|
24
|
-
let index = -1;
|
|
25
|
-
const length = objValue.length;
|
|
26
|
-
for (;++index < length; ) newValue[index] = objValue[index];
|
|
27
|
-
}
|
|
28
|
-
} else isPlainObject(srcValue) ? (newValue = null != objValue ? objValue : {}, "function" != typeof objValue && "object" == typeof objValue || (newValue = {})) : isCommon = !1;
|
|
29
|
-
isCommon && baseMerge(newValue, srcValue, shallowArray), assignMergeValue(target, key, newValue);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function assignMergeValue(target, key, value) {
|
|
33
|
-
(void 0 !== value && !eq(target[key], value) || void 0 === value && !(key in target)) && (target[key] = value);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function eq(value, other) {
|
|
37
|
-
return value === other || Number.isNaN(value) && Number.isNaN(other);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function mergeSpec(target, ...sources) {
|
|
41
|
-
let sourceIndex = -1;
|
|
42
|
-
const length = sources.length;
|
|
43
|
-
for (;++sourceIndex < length; ) {
|
|
44
|
-
baseMerge(target, sources[sourceIndex], !0);
|
|
45
|
-
}
|
|
46
|
-
return target;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export function mergeSpecWithFilter(target, filter, spec, forceMerge) {
|
|
50
|
-
Object.keys(target).forEach((k => {
|
|
51
|
-
if (isObject(filter)) filter.type === k && (isArray(target[k]) ? target[k].length >= filter.index && (target[k][filter.index] = forceMerge ? mergeSpec({}, target[k][filter.index], spec) : spec) : target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec); else if (isArray(target[k])) {
|
|
52
|
-
const index = target[k].findIndex((_s => _s.id === filter));
|
|
53
|
-
index >= 0 && (target[k][index] = forceMerge ? mergeSpec({}, target[k][index], spec) : spec);
|
|
54
|
-
} else target.id === filter && (target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec);
|
|
55
|
-
}));
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=merge-spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/spec/merge-spec.ts"],"names":[],"mappings":"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","file":"merge-spec.js","sourcesContent":["import { isArray, isArrayLike, isObject, isPlainObject, isValid } from '@visactor/vutils';\n\nfunction baseMerge(target: any, source: any, shallowArray = false) {\n if (source) {\n if (target === source) {\n return;\n }\n if (isValid(source) && typeof source === 'object') {\n // baseFor\n const iterable = Object(source);\n const props = [];\n // keysIn\n for (const key in iterable) {\n props.push(key);\n }\n let { length } = props;\n let propIndex = -1;\n while (length--) {\n const key = props[++propIndex];\n if (\n isValid(iterable[key]) &&\n typeof iterable[key] === 'object' &&\n !isArray(target[key]) // VChart 特有逻辑\n ) {\n baseMergeDeep(target, source, key, shallowArray);\n } else {\n assignMergeValue(target, key, iterable[key]);\n }\n }\n }\n }\n}\n\n// 由于目前 VChart 内部对 spec 会先执行一次深拷贝,merge 暂时不考虑 source 中有环的问题\nfunction baseMergeDeep(target: object, source: object, key: string, shallowArray = false) {\n const objValue = target[key];\n const srcValue = source[key];\n let newValue = source[key];\n let isCommon = true;\n // 不考虑 buffer / typedArray 类型\n if (isArray(srcValue)) {\n if (shallowArray) {\n // 依据参数对数组做浅拷贝\n newValue = [];\n } else if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLike(objValue)) {\n // 如果 source 为数组,则 target 的 arrayLike 对象也视作为数组处理\n newValue = new Array(objValue.length);\n let index = -1;\n const length = objValue.length;\n while (++index < length) {\n newValue[index] = objValue[index];\n }\n }\n }\n // else if (isArray(srcValue) && shallowArray) {\n // newValue = [];\n // }\n // 不考虑 argument 类型\n else if (isPlainObject(srcValue)) {\n newValue = objValue ?? {};\n // 不考虑 prototype 的额外处理\n if (typeof objValue === 'function' || typeof objValue !== 'object') {\n newValue = {};\n }\n } else {\n isCommon = false;\n }\n // 对 class 等复杂对象或者浅拷贝的 array 不做拷贝处理\n if (isCommon) {\n baseMerge(newValue, srcValue, shallowArray);\n }\n assignMergeValue(target, key, newValue);\n}\n\nfunction assignMergeValue(target: object, key: string, value: any) {\n if ((value !== undefined && !eq(target[key], value)) || (value === undefined && !(key in target))) {\n // 不考虑 __proto__ 的赋值处理\n target[key] = value;\n }\n}\n\nfunction eq(value: any, other: any) {\n return value === other || (Number.isNaN(value) && Number.isNaN(other));\n}\n\n/* 与原生的 lodash merge 差异在于对数组是否应用最后一个 source 的结果\n * 以及对一些特殊情况的处理,比如对数组类型 padding 和对象类型的 padding 的 merge\n */\nexport function mergeSpec(target: any, ...sources: any[]): any {\n let sourceIndex = -1;\n const length = sources.length;\n while (++sourceIndex < length) {\n const source = sources[sourceIndex];\n baseMerge(target, source, true);\n }\n return target;\n}\n\nexport function mergeSpecWithFilter(\n target: any,\n filter: string | { type: string; index: number },\n spec: any,\n forceMerge: boolean\n) {\n Object.keys(target).forEach(k => {\n if (isObject(filter)) {\n if (filter.type === k) {\n if (isArray(target[k])) {\n if (target[k].length >= filter.index) {\n target[k][filter.index] = forceMerge ? mergeSpec({}, target[k][filter.index], spec) : spec;\n }\n } else {\n target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec;\n }\n }\n } else {\n // filter === user id\n if (isArray(target[k])) {\n const index = target[k].findIndex((_s: { id: string | number }) => _s.id === filter);\n if (index >= 0) {\n target[k][index] = forceMerge ? mergeSpec({}, target[k][index], spec) : spec;\n }\n } else if (target.id === filter) {\n target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec;\n }\n }\n });\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const DEFAULT_CONTINUOUS_TICK_COUNT = 5;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/vutil-extension-temp/transform/tick-data/config.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC","file":"config.js","sourcesContent":["/** 连续轴默认 tick 数量 */\nexport const DEFAULT_CONTINUOUS_TICK_COUNT = 5;\n"]}
|