Загрузка данных


public activateCursor = (cursorType: CursorType): void => {
  this.removePendingDrawings(false);
  this.activeCursor$.next(cursorType);
  this.activateCurrentCursor();
  this.DOM.refreshEntities();
};

public getActiveCursor(): Observable<CursorType> {
  return this.activeCursor$.asObservable();
}

private activateCurrentCursor(): void {
  const cursorType = this.activeCursor$.value;

  this.applyCursor(cursorType);
  this.activeTool$.next(cursorType);
}

private applyCursor(cursorType: CursorType): void {
  const config = cursorConfigByType[cursorType];

  this.lwcChart.applyOptions({
    crosshair: {
      mode: config.crosshairMode,
    },
  });

  this.lwcChart.chartElement().style.cursor = config.cursor;
}



export const cursorTools = (): MenuOption<CursorType>[] => [
  {
    value: CursorType.crosshair,
    icon: <CrossIcon />,
    label: t('Crosshair'),
  },
  {
    value: CursorType.arrow,
    icon: <ArrowCursorIcon />,
    label: t('Arrow'),
  },
];


{implemented.cursor && (
  <SplitDropdown
    anchorRef={toolbarRef}
    mainContent={ensureDefined(selectedCursorOption?.icon)}
    mainTooltip={ensureDefined(selectedCursorOption).label}
    onMainClick={() => activateCursor(activeCursor)}
    menuTooltip={t('Cursor')}
    mainButtonClassName={getButtonClassName(activeCursor)}
    tooltipClassName={getTooltipClassName()}
  >
    <MenuList
      mode="single"
      value={activeCursor}
      options={cursorTools()}
      onClick={activateCursor}
    />
  </SplitDropdown>
)}