Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing & incorrect Typescript type definitions #102

Open
DanielRose opened this issue Oct 5, 2023 · 1 comment
Open

Missing & incorrect Typescript type definitions #102

DanielRose opened this issue Oct 5, 2023 · 1 comment

Comments

@DanielRose
Copy link

DanielRose commented Oct 5, 2023

Here are some incorrect type definitions which I found:

  • InlineEditorMethods.setMapping(): all functions (init, onShow, onHide, destroy) are optional
  • DatastoreMethods.attachEvent & InlineEditorMethods.attachEvent should return a string

The following type definitions are missing (and in some cases also not documented):

  • ZoomMethods.getLevels()
getLevels(): ZoomLevel[] | undefined;

interface ZoomLevel {
	/**
	 * the name of the level
	 */
	name: string;

	/**
	 * the height of the scale
	 */
	scale_height?: number;

	/**
	 * the height of the scale
	 */
	height?: number;

	/**
	 * the minimal width of a column. It has a higher priority than minColumnWidth and maxColumnWidth
	 */
	min_column_width?: number;

	/**
	 * an array of scales to switch between while zooming in/out on this level
	 */
	scales: Scale[];
}
  • DomHelpers.locateAttribute()
locateAttribute(e: Event, qualifiedName: string): Element | null;
  • DomHelpers.getRelativeEventPosition() could return something like:
interface RelativeEventPosition{
  x: number;
  y: number;
}
  • DomHelpers.getNodePosition() could return something like:
interface NodePosition{
  x: number;
  y: number;
  width: number;
  height: number;
  right: number;
  bottom: number;
}
  • GanttStatic.getTaskPosition() could return something like:
interface TaskPosition {
  left: number;
  top: number;
  height: number;
  rowHeight?: number;
  width: number;
}
  • GanttStatic.getState() could return something like:
export interface IGanttState {
	/**
	 * the id of a task that the user is currently dragging in the Gantt chart. 'Undefined' or 'null', if no tasks are being dragged in the Gantt chart.
	 */
	drag_id?: string | number | null;

	/**
	 * the drag mode. 'Undefined' or 'null', if no tasks are currently being dragged in the Gantt chart.
	 */
	drag_mode?: 'move' | 'resize' | 'progress' | 'ignore' | null;

	/**
	 * the flag for the fullscreen mode. 'True', if the Gantt chart is in the fullscreen mode, 'false' otherwise.
	 */
	fullscreen: boolean;

	/**
	 * the id of a task that is currently opened in the lightbox. 'Undefined' or 'null', if no tasks are opened in the lightbox.
	 */
	lightbox?: string | number | null;

	/**
	 * the date that tasks are displayed in the chart from
	 */
	min_date: Date;

	/**
	 * the date that tasks are displayed in the chart till
	 */
	max_date: Date;

	/**
	 * the id of the currently selected task. 'Undefined' or 'null', if no tasks are selected in the Gantt chart.
	 */
	selected_task?: string | number | null;

	/**
	 * the unit of the background grid of the timeline
	 */
	scale_unit: string;

	/**
	 * the step of the background grid of the timeline
	 */
	scale_step: number;
}
  • GanttConfigOptions.layout could use some actual values (a bit complex for this issue)
  • GanttStatic.getScrollState() could return something like:
interface ScrollState {
	x: number;
	y: number;
}
@MaksimLakatkouXBS
Copy link

Thanks for the detailed description and recommendations. I've added it to our development tracker and it will be implemented at some point in the future. Unfortunately, I cannot provide an estimated time for the fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants