newTimeAndSalesWidget
newTimeAndSalesWidget is a constructor function for creating the Time and Sales widget.
Widget Constructor
Call newTimeAndSalesWidget to create a widget instance inside a browser DOM
element.
import { newTimeAndSalesWidget } from '@dx-display/widgets-time-and-sales'
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 = newTimeAndSalesWidget({
  element: domNode,
  providers: dataProviders,
})
Signature
newTimeAndSalesWidget(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 an information about the endpoints required by the widget, such as the path to the endpoint and the authorization key.
interface TimeAndSalesWidgetDataProviders {
  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. | 
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 TimeAndSalesWidgetConfig {
  symbolSearchTypes?: TimeAndSalesWidgetSymbolSearchType[],
  symbolSearchViewMode?: SymbolSearchViewMode,
  dataExportEnabled?: boolean,
  timeFormatSelectorViewMode?: ToolbarSelectorViewMode,
  tradeTypeSelectorViewMode?: ToolbarSelectorViewMode,
  snapshotSize?: SnapshotSize,
  sortable?: boolean,
  filterable?: boolean,
  reorderable?: boolean,
  resizable?: boolean,
  columnSelectMenuEnabled?: boolean,
  delayNotificationEnabled?: boolean,
  symbolScheduleStatusEnabled?: boolean,
  timezone?: string,
  locale?: LocaleSettings,
}Properties
| Name | Type | Default | Description | 
|---|---|---|---|
| symbolSearchTypes Optional | TimeAndSalesWidgetSymbolSearchType[] | [ 'STOCK', 'FUTURE', 'OPTION', 'INDEX', 'SPREAD' ] | A list of instrument types uses for symbols search. | 
| symbolSearchViewMode Optional | SymbolSearchViewMode | 'available' | View mode of the symbol search in the toolbar. | 
| dataExportEnabled Optional | boolean | false | A flag that controls a visibility of an export button. | 
| timeFormatSelectorViewMode Optional | ToolbarSelectorViewMode | 'available' | View mode of the time format in the toolbar. | 
| tradeTypeSelectorViewMode Optional | ToolbarSelectorViewMode | 'available' | View mode of the valid trade type in the toolbar. | 
| snapshotSize Optional | SnapshotSize | 'Full' | Number which will be interpreted as last minutes count in snapshot. Or you can set value as "Full" to get the full snapshot. | 
| sortable Optional | boolean | true | A flag that controls the table sorting feature. | 
| filterable Optional | boolean | true | A flag that controls the filtering function of table columns. | 
| reorderable Optional | boolean | true | A flag that controls the column reorder feature. | 
| resizable Optional | boolean | true | A flag that controls the column resizing feature. | 
| columnSelectMenuEnabled Optional | boolean | false | A flag that controls the column select menu feature visibility. Disabling this feature will lead to inability to change columns. | 
| delayNotificationEnabled Optional | boolean | false | A flag that controls a visibility of an data delay notification. | 
| symbolScheduleStatusEnabled Optional | boolean | false | A flag that controls a visibility of symbol schedule status in widget toolbar | 
| timezone Optional | string | client environment timezone | String corresponds to IANA Time Zone name used to display dates in spicified time zone | 
| locale Optional | LocaleSettings | 
{
  language: 'en',
  dateLocale: 'en-GB',
  numberLocale: '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 TimeAndSalesWidgetState {
  columns: TimeAndSalesColumnName[],
  symbol?: string,
  columnSizes: TimeAndSalesColumnSizes,
  filters: TimeAndSalesFilters,
  sort?: Sort<TimeAndSalesColumnName>,
  timeFormat: TimeAndSalesTimeFormat,
  tradeType: TradeType,
}Properties
| Name | Type | Default | Description | 
|---|---|---|---|
| columns | TimeAndSalesColumnName[] | [ 'time', 'price', 'size', 'side', 'Exchange', 'bid', 'ask', 'conditionsDescr', 'eth', 'spread' ] | A list of column identifiers that are added to the table. The columns are displayed in the order specified by the array. | 
| symbol Optional | string | undefined | A string containing the symbol by which the widget will display data. | 
| columnSizes | TimeAndSalesColumnSizes | {} | An object that specifies column sizes where key is a column identificator and value is a column width in pixels. If the object does not contain a column width, then default width is used. | 
| filters | TimeAndSalesFilters | {} | An object that defines enabled filters and their parameters. | 
| sort Optional | Sort<TimeAndSalesColumnName> | undefined | An object that defines table sort. | 
| timeFormat | TimeAndSalesTimeFormat | 'time-with-seconds' | Value that specifies time format in the timecolumn. | 
| tradeType | TradeType | 'only-valid' | value that specifies a kind of trades to show. | 
Type Reference
Sort
An object that defines table sort.
Type
{
  property: TimeAndSalesColumnName,
  direction: SortDirection,
}