newAdvancedChartWidget
newAdvancedChartWidget
is a constructor function for creating the Advanced Chart widget.
Widget Constructor
Call newAdvancedChartWidget
to create a widget instance inside a browser DOM
element.
import { newAdvancedChartWidget } from '@dxfeed-widgets/advanced-chart'
const domNode = document.getElementById('widget-container')
const dataProviders = {
ipfPath: '/your-path/ipf',
ipfAuthHeader: 'your-header',
feedPath: 'wss://your-path/feed',
feedAuthHeader: 'your-header',
schedulePath: '/api/schedule'
}
const widget = newAdvancedChartWidget({
element: domNode,
providers: dataProviders,
})
Signature
newAdvancedChartWidget(props: WidgetConstructorProps): WidgetAPI
Returns
An WidgetAPI object.
WidgetConstructorProps
Name | Type | Description |
---|---|---|
element | HTMLElement | A DOM element where the widget should be attached. |
providers | Providers | An object with configuration for data providers. Refer to the Data Providers section for details |
config optional | Config | Initial configuration of the widget |
state optional | State | Initial state of the widget |
theme optional | ThemeName | Theme | Initial theme of the widget. Refer to the Styling section for details |
Widget API
getConfig
Gets the current widget config.
Signature
getConfig(): Config
Returns
setConfig
Sets widget config.
Signature
setConfig(config: Config): void
Parameters
Name | Type | Description |
---|---|---|
config | Config | Configuration object. Omitted or undefined properties will be set to default |
getState
Gets the current widget state.
Signature
getState(): State
Returns
updateState
Updates widget state.
Signature
updateState(state: Partial<State>): void
Parameters
Name | Type | Description |
---|---|---|
state | Partial<State> | State object. Merges with the previous state object. |
addStateListener
Sets up a function that will be called whenever the state or specified field is changed.
Signature
addStateListener(stateChangeCallback: (state: State) => void): void
addStateListener(field: keyof State, fieldChangeCallback: (field: State[keyof State]) => void): void
Parameters
Name | Type | Description |
---|---|---|
stateChangeCallback | (state: State) => void | Function that will be called whenever the state is changed. |
Or
Name | Type | Description |
---|---|---|
field | keyof State | The state field to listen for. |
fieldChangeCallback | (value: State[keyof State]) => void | Function that will be called whenever the specified field is changed. |
removeStateListener
Removes an state listener previously registered with addStateListener
Signature
removeStateListener(stateChangeCallback: (state: State) => void): void
removeStateListener(field: keyof State, fieldChangeCallback: (field: State[keyof State]) => void): void
Parameters
Name | Type | Description |
---|---|---|
stateChangeCallback | (state: State) => void | Listener that will be removed. |
Or
Name | Type | Description |
---|---|---|
field | keyof State | The state field for which to remove a listener. |
fieldChangeCallback | (value: State[keyof State]) => void | Listener that will be removed. |
setSlot
Inserts custom markup into widget UI. Refer to the Extend widget UI section for details.
Signature
setSlot(slot: Slot, element: HTMLElement): void
Parameters
Name | Type | Description |
---|---|---|
slot | Slot | The place where a provided element is inserted. |
element | HTMLElement | An element that is inserted. |
setTheme
Sets widget theme.
Signature
setTheme(theme: Theme | ThemeName): void
unmount
Destroys the widget.
Signature
unmount(): void
Data Providers
The Data Providers object supplies the necessary information for connecting to data sources. This can either be:
- Configuration details such as endpoint paths and authorization keys for seamless integration with dxFeed services.
- A custom implementation of the required interface to connect the widget to your own data provider.
type AdvancedChartWidgetDataProviders = AdvancedChartProvidersConfig | AdvancedChartServices
AdvancedChartProvidersConfig
The AdvancedChartProvidersConfig object supplies an information about the endpoints required by the widget, such as the path to the endpoint and the authorization key.
interface AdvancedChartProvidersConfig {
ipfPath: string
ipfAuthHeader: string
feedPath: string
feedAuthHeader: string
schedulePath: string
}
Properties
Name | Type | Description |
---|---|---|
ipfPath | string | A string containing the path to the endpoint. |
ipfAuthHeader | string | A string containing the authentication header for the endpoint. |
feedPath | string | A string containing the path to the endpoint. |
feedAuthHeader | string | A string containing the authentication header for the endpoint. |
schedulePath | string | A string containing the path to the endpoint. |
AdvancedChartServices
The AdvancedChartServices object defines a set of methods used by the chart at runtime to fetch and manage the required data. It implements the following interface:
interface AdvancedChartServices {
dataService: AdvancedChartDataService
}
The dataService is responsible for handling key data operations. You can read details about implementing AdvancedChartServices in dedicated page.
Configuration
Configuration is an object that defines the basic behavior of a widget and allows enabling or disabling widget features that cannot be configured within the widget's user interface.
Type
interface AdvancedChartWidgetConfig {
toolbarDrawingsEnabled?: boolean,
sidebarDrawingsEnabled?: boolean,
timeframeEnabled?: boolean,
timeframeEditEnabled?: boolean,
timezoneEnabled?: boolean,
availableAggregationPeriods?: AggregationPeriod[],
availableChartTypes?: ChartType[],
availablePriceLabels?: PriceLabel[],
comparisonChartsEnabled?: boolean,
indicatorSettingsEnabled?: boolean,
indicatorTemplatesEnabled?: boolean,
layoutEnabled?: boolean,
layersEnabled?: boolean,
availableSnapshotOptions?: SnapshotOption[],
periodsEditEnabled?: boolean,
availableContextMenus?: ContextMenu[],
availableSettingsTabs?: TabIdentifier[],
availablePriceTypes?: PriceType[],
dataExportEnabled?: boolean,
toolbarEnabled?: boolean,
symbolSuggestEnabled?: boolean,
maxDrawingsAmount?: number,
maxStudiesAmount?: number,
delayNotificationEnabled?: boolean,
locale?: LocaleSettings,
}
Properties
Name | Type | Default | Description |
---|---|---|---|
toolbarDrawingsEnabled Optional | boolean | true | A flag that controls a visibility of a drawing menu in the toolbar. |
sidebarDrawingsEnabled Optional | boolean | true | A flag that controls a visibility of a drawing menu in the sidebar. |
timeframeEnabled Optional | boolean | true | A flag that controls a visibility of a timeframe menu |
timeframeEditEnabled Optional | boolean | true | A flag that controls a visibility of a timeframe editor button. |
timezoneEnabled Optional | boolean | true | A flag that controls a visibility of a timezone menu. |
availableAggregationPeriods Optional | AggregationPeriod[] | [ {duration: 2, durationType: 't'}, {duration: 144, durationType: 't'}, {duration: 1, durationType: 'm'}, {duration: 5, durationType: 'm'}, {duration: 15, durationType: 'm'}, {duration: 30, durationType: 'm'}, {duration: 1, durationType: 'h'}, {duration: 2, durationType: 'h'}, {duration: 4, durationType: 'h'}, {duration: 1, durationType: 'd'}, {duration: 1, durationType: 'w'}, {duration: 1, durationType: 'mo'}, {duration: 1, durationType: 'y'}, {duration: 1, durationType: 'r'} ] | A list of available aggregation periods. |
availableChartTypes Optional | ChartType[] | [ 'area', 'line', 'candle', 'bar', 'equivolume', 'heikinAshi', 'scatterPlot', 'hollow', 'histogram', 'baseline', 'trend' ] | A list of available chart types. |
availablePriceLabels Optional | PriceLabel[] | [ 'bidAsk', 'prevDayClose', 'prePostMarket' ] | A list of available price labels in addition to symbol and indicator. |
comparisonChartsEnabled Optional | boolean | true | A flag that controls a visibility of a compare charts button. |
indicatorSettingsEnabled Optional | boolean | true | A flag that controls a visibility of an indicator settings button. |
indicatorTemplatesEnabled Optional | boolean | true | A flag that controls a visibility of a indicator templates button. |
layoutEnabled Optional | boolean | true | A flag that controls a visibility of a layout settings button. |
layersEnabled Optional | boolean | true | A flag that controls a visibility of a layers settings button. |
availableSnapshotOptions Optional | SnapshotOption[] | [ 'downloadImage', 'copyImage', 'copyLink', 'tweet', 'telegram' ] | A list of available snapshots. |
periodsEditEnabled Optional | boolean | true | A flag that controls a visibility of a custom period input. |
availableContextMenus Optional | ContextMenu[] | [ 'yAxisMenu', 'backgroundMenu', 'studiesMenu', 'drawingsMenu', 'legendMenu', 'dataMenu' ] | A list of available context menus. |
availableSettingsTabs Optional | TabIdentifier[] | [ 'ChartGeneralTab', 'ChartTradingTab', 'ChartLegendTab', 'ChartScalesTab', 'ChartMarketTab', 'ChartColorsTab', 'ChartEventsTab', 'ChartPaddingsTab' ] | A list of available settings tabs. |
availablePriceTypes Optional | PriceType[] | [ 'mark', 'bid', 'ask', 'last' ] | A list of available price types. |
dataExportEnabled Optional | boolean | true | A flag that controls a visibility of an export button. |
toolbarEnabled Optional | boolean | true | A flag that controls a visibility of a toolbar. |
symbolSuggestEnabled Optional | boolean | true | A flag that controls a visibility of selected symbol input. |
maxDrawingsAmount Optional | number | 9007199254740991 | Maximum amount of drawings. |
maxStudiesAmount Optional | number | 5 | Maximum amount of studies. |
delayNotificationEnabled Optional | boolean | false | A flag that controls a visibility of an data delay notification. |
locale Optional | LocaleSettings | { language: 'en', dateLocale: 'en-GB' } | An object that defines the language and regional settings of the widget. |
State
State is an object that represents the state of the widget.
Type
interface AdvancedChartWidgetState {
symbol?: string,
}
Properties
Name | Type | Default | Description |
---|---|---|---|
symbol Optional | string | undefined | A string containing the symbol by which the widget will display data. |
Type Reference
ChartType
Type
'area' | 'line' | 'candle' | 'bar' | 'equivolume' | 'heikinAshi' | 'scatterPlot' | 'hollow' | 'histogram' | 'baseline' | 'trend'
ContextMenu
Type
'yAxisMenu' | 'backgroundMenu' | 'studiesMenu' | 'drawingsMenu' | 'legendMenu' | 'dataMenu'
TabIdentifier
Type
'ChartGeneralTab' | 'ChartTradingTab' | 'ChartLegendTab' | 'ChartScalesTab' | 'ChartMarketTab' | 'ChartColorsTab' | 'ChartEventsTab' | 'ChartPaddingsTab'