constructor()

in src/timeLine.ts [584:637]


    constructor(options: powerbiVisualsApi.extensibility.visual.VisualConstructorOptions) {
        const element: HTMLElement = options.element;

        this.host = options.host;

        this.calendarFactory = new CalendarFactory();

        this.selectionManager = this.host.createSelectionManager();

        this.initialized = false;
        this.locale = this.host.locale;

        this.localizationManager = this.host.createLocalizationManager();

        this.timelineProperties = {
            bottomMargin: Timeline.TimelineMargins.BottomMargin,
            cellHeight: Timeline.TimelineMargins.CellHeight,
            cellWidth: Timeline.TimelineMargins.CellWidth,
            cellsYPosition: Timeline.TimelineMargins.TopMargin * Timeline.CellsYPositionFactor + Timeline.CellsYPositionOffset,
            elementWidth: Timeline.TimelineMargins.ElementWidth,
            leftMargin: Timeline.TimelineMargins.LeftMargin,
            legendHeight: Timeline.TimelineMargins.LegendHeight,
            rightMargin: Timeline.TimelineMargins.RightMargin,
            startXpoint: Timeline.TimelineMargins.StartXpoint,
            startYpoint: Timeline.TimelineMargins.StartYpoint,
            textYPosition: Timeline.DefaultTextYPosition,
            topMargin: Timeline.TimelineMargins.TopMargin,
        };

        this.rootSelection = d3Select(element)
            .append("div")
            .classed("timeline-component", true)
            .on("click", null)
            .on("click", () => this.clearUserSelection());

        this.headerWrapperSelection = this.rootSelection
            .append("div");

        this.headerSelection = this.headerWrapperSelection
            .append("svg")
            .attr("width", "100%")
            .style("display", "block")
            .style("position", "absolute");

        this.mainSvgWrapperSelection = this.rootSelection
            .append("div")
            .classed(Timeline.TimelineSelectors.TimelineWrapper.className, true);

        this.mainSvgSelection = this.mainSvgWrapperSelection
            .append("svg")
            .classed(Timeline.TimelineSelectors.TimelineVisual.className, true);

        this.addElements();
    }