Skip to content
Open
2 changes: 2 additions & 0 deletions docs/.vitepress/config/share.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ export function getInstanceApiMenus (lang = '') {
{ text: 'setRightMinVisibleBarCount', link: `${prefix}/setRightMinVisibleBarCount` },
{ text: 'setBarSpace', link: `${prefix}/setBarSpace` },
{ text: 'getBarSpace', link: `${prefix}/getBarSpace` },
{ text: 'setBarSpaceLimit', link: `${prefix}/setBarSpaceLimit` },
{ text: 'getBarSpaceLimit', link: `${prefix}/getBarSpaceLimit` },
{ text: 'setSymbol', link: `${prefix}/setSymbol` },
{ text: 'getSymbol', link: `${prefix}/getSymbol` },
{ text: 'setPeriod', link: `${prefix}/setPeriod` },
Expand Down
3 changes: 3 additions & 0 deletions docs/@views/api/references/instance/getBarSpaceLimit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```typescript
() => BarSpaceLimit
```
7 changes: 7 additions & 0 deletions docs/@views/api/references/instance/setBarSpaceLimit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
```typescript
interface BarSpaceLimit {
min: number;
max: number;
}
(limit: BarSpaceLimit) => void
```
20 changes: 20 additions & 0 deletions docs/@views/api/samples/getBarSpaceLimit/index.data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import fs from 'fs'

export default {
watch: ['./index.js'],
load (watchedFiles) {
return watchedFiles.reduce((data, file) => {
const result = fs.readFileSync(file, 'utf-8')
let key
if (file.match('index.js')) {
key = 'js'
} else if (file.match('index.css')) {
key = 'css'
} else {
key = 'html'
}
data[key] = result
return data
}, {})
}
}
19 changes: 19 additions & 0 deletions docs/@views/api/samples/getBarSpaceLimit/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { init } from 'klinecharts'

const chart = init('getBarSpaceLimit-chart')

chart.setSymbol({ ticker: 'TestSymbol' })
chart.setPeriod({ span: 1, type: 'day' })
chart.setDataLoader({
getBars: ({
callback
}) => {
fetch('https://klinecharts.com/datas/kline.json')
.then(res => res.json())
.then(dataList => {
callback(dataList)
})
}
})

const barSpaceLimit = chart.getBarSpaceLimit()
11 changes: 11 additions & 0 deletions docs/@views/api/samples/getBarSpaceLimit/index.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<script setup>
import ChartPreview from '../../../../@components/ChartPreview.vue';
import { data } from './index.data'
</script>

<template>
<ChartPreview
title="getBarSpaceLimit"
chartId="getBarSpaceLimit-chart"
:code="data.js"/>
</template>
20 changes: 20 additions & 0 deletions docs/@views/api/samples/setBarSpaceLimit/index.data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import fs from 'fs'

export default {
watch: ['./index.js'],
load (watchedFiles) {
return watchedFiles.reduce((data, file) => {
const result = fs.readFileSync(file, 'utf-8')
let key
if (file.match('index.js')) {
key = 'js'
} else if (file.match('index.css')) {
key = 'css'
} else {
key = 'html'
}
data[key] = result
return data
}, {})
}
}
21 changes: 21 additions & 0 deletions docs/@views/api/samples/setBarSpaceLimit/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { init } from 'klinecharts'

const chart = init('setBarSpaceLimit-chart')
chart.setBarSpaceLimit({
min: 2,
max: 10
})

chart.setSymbol({ ticker: 'TestSymbol' })
chart.setPeriod({ span: 1, type: 'day' })
chart.setDataLoader({
getBars: ({
callback
}) => {
fetch('https://klinecharts.com/datas/kline.json')
.then(res => res.json())
.then(dataList => {
callback(dataList)
})
}
})
11 changes: 11 additions & 0 deletions docs/@views/api/samples/setBarSpaceLimit/index.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<script setup>
import ChartPreview from '../../../../@components/ChartPreview.vue';
import { data } from './index.data'
</script>

<template>
<ChartPreview
title="setBarSpaceLimit"
chartId="setBarSpaceLimit-chart"
:code="data.js"/>
</template>
2 changes: 1 addition & 1 deletion docs/@views/styles/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ const styles = {
}
},
candle: {
// 'candle_solid' | 'candle_stroke' | 'candle_up_stroke' | 'candle_down_stroke' | 'ohlc' | 'area'
// 'candle_solid' | 'candle_stroke' | 'candle_up_stroke' | 'candle_down_stroke' | 'ohlc' | 'area' | 'heikin_ashi'
type: 'candle_solid',
bar: {
// 'current_open' | 'previous_close'
Expand Down
23 changes: 23 additions & 0 deletions docs/api/instance/getBarSpaceLimit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
outline: deep
---

# getBarSpaceLimit()
`getBarSpaceLimit` 获取图表单根蜡烛柱所占空间最大值/最小值。

## 参考 {#reference}
<!-- @include: @/@views/api/references/instance/getBarSpaceLimit.md -->

### 参数 {#parameters}
`getBarSpaceLimit` 不接收任何参数。

### 返回值 {#returns}
`getBarSpaceLimit` 返回一个包含单根蜡烛柱所占空间信息的对象 `BarSpaceLimit` 。

## 用法 {#usage}
<script setup>
import GetBarSpaceLimit from '../../@views/api/samples/getBarSpaceLimit/index.vue'
</script>

### 基本使用 {#basic}
<GetBarSpaceLimit/>
2 changes: 1 addition & 1 deletion docs/api/instance/setBarSpace.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ outline: deep
<!--@include: @/@views/api/references/instance/setBarSpace.md-->

### 参数 {#parameters}
- `space` 空间大小,范围在 1 到 50 之间。
- `space` 空间大小,默认范围在 1 到 50 之间,可以通过`setBarSpaceLimit`设置

### 返回值 {#returns}
`setBarSpace` 返回 `undefined` 。
Expand Down
25 changes: 25 additions & 0 deletions docs/api/instance/setBarSpaceLimit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
outline: deep
---

# setBarSpaceLimit(limit)
`setBarSpaceLimit` 设置图表单根蜡烛柱所占的空间最大值和最小值

## 参考 {#reference}
<!--@include: @/@views/api/references/instance/setBarSpaceLimit.md-->

### 参数 {#parameters}
- `limit` 空间大小限制。
- `min` 最小值。
- `max` 最大值。

### 返回值 {#returns}
`setBarSpaceLimit` 返回 `undefined` 。

## 用法 {#usage}
<script setup>
import setBarSpaceLimit from '../../@views/api/samples/setBarSpaceLimit/index.vue'
</script>

### 基本用法 {#basic}
<setBarSpaceLimit/>
23 changes: 23 additions & 0 deletions docs/en-US/api/instance/getBarSpaceLimit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
outline: deep
---

# getBarSpaceLimit()
`getBarSpaceLimit` get limit size about the space occupied by a single candlestick on the chart.

## Reference {#reference}
<!-- @include: @/@views/api/references/instance/getBarSpaceLimit.md -->

### Parameters {#parameters}
`getBarSpaceLimit` does not accept any parameters.

### Returns {#returns}
`getBarSpaceLimit` returns an object containing information about the space occupied by a single candlestick `BarSpaceLimit`.

## Usage {#usage}
<script setup>
import GetBarSpaceLimit from '../../../@views/api/samples/getBarSpaceLimit/index.vue'
</script>

### Basic usage {#basic}
<GetBarSpaceLimit/>
25 changes: 25 additions & 0 deletions docs/en-US/api/instance/setBarSpaceLimit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
outline: deep
---

# setBarSpaceLimit(limit)
`setBarSpaceLimit` set the limit size of the space that a single candlestick on the chart should occupy.

## Reference {#reference}
<!--@include: @/@views/api/references/instance/setBarSpaceLimit.md-->

### Parameters {#parameters}
- `limit` The limit size of the space
- `min` min value of the space
- `max` max value of the space

### Returns {#returns}
`setBarSpaceLimit` returns `undefined` 。

## Usage {#usage}
<script setup>
import setBarSpaceLimit from '../../../@views/api/samples/setBarSpaceLimit/index.vue'
</script>

### Basic usage {#basic}
<setBarSpaceLimit/>
14 changes: 11 additions & 3 deletions src/Chart.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import type Crosshair from './common/Crosshair'
import type { ActionType, ActionCallback } from './common/Action'
import type { DataLoader } from './common/DataLoader'
import type VisibleRange from './common/VisibleRange'
import type { Formatter, DecimalFold, LayoutChild, Options, ThousandsSeparator, ZoomAnchor } from './Options'
import type { Formatter, DecimalFold, LayoutChild, Options, ThousandsSeparator, BarSpaceLimit, ZoomAnchor } from './Options'
import Animation from './common/Animation'
import { createId } from './common/utils/id'
import { createDom } from './common/utils/dom'
Expand Down Expand Up @@ -686,6 +686,14 @@ export default class ChartImp implements Chart {
return this._chartStore.getBarSpace()
}

setBarSpaceLimit (limit: Partial<BarSpaceLimit>): void {
this._chartStore.setBarSpaceLimit(limit)
}

getBarSpaceLimit (): BarSpaceLimit {
return this._chartStore.getBarSpaceLimit()
}

getVisibleRange (): VisibleRange {
return this._chartStore.getVisibleRange()
}
Expand All @@ -694,8 +702,8 @@ export default class ChartImp implements Chart {
this._chartStore.resetData()
}

getDataList (): KLineData[] {
return this._chartStore.getDataList()
getDataList (mutateToCandleType = false): KLineData[] {
return this._chartStore.getDataList(mutateToCandleType)
}

setDataLoader (dataLoader: DataLoader): void {
Expand Down
6 changes: 6 additions & 0 deletions src/Options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,11 @@ export interface ZoomAnchor {
xAxis: 'cursor_point' | 'last_bar'
}

export interface BarSpaceLimit {
min: number
max: number
}

export interface Options {
locale?: string
timezone?: string
Expand All @@ -99,4 +104,5 @@ export interface Options {
decimalFold?: Partial<DecimalFold>
layout?: LayoutChild[]
zoomAnchor?: Partial<ZoomAnchor>
barSpaceLimit?: Partial<BarSpaceLimit>
}
Loading