Skip to content

ptcs-chart-core-schedule

Visual

Overview

ptcs-chart-core-schedule is a slotted core component for visualizing schedule data. Schedule data consists of a collection of objects with associated schedule items. A schedule object is represented using a unique name, where each schedule item has the following properties:

name description
reason the reason for the item (e.g. 'Maintenance', 'Running', ... )
info optional info, to be displayed in the items tooltip
start the start time of the item (a JavaScript Date)
start the end time of the item (a JavaScript Date)
color an optional CSS color for explicitly controlling the color of the item

The syntax for the schedule data is therefore:

data ::= [
    object,
    [
        item+  // Any number of items here
    ]
]

object ::= <string>

item ::= {
    reason: <string>,
    info:   <string>?,
    start:  <Date>
    end:    <Date>
    color:  <CSS color, e.g. 'red' or '#8030F7'>?
}

Usage Example

                <ptcs-chart-core-schedule slot="chart" id="chart" part="core-chart" style="pointer-events: auto"
                    tabindex\$="[[_delegatedFocus]]"
                    disabled="[[disabled]]"
                    legend="[[legend]]"
                    tooltip-template="[[tooltipTemplate]]"
                    data="[[data]]"
                    selected-data="{{selectedData}}"
                    labels="{{labels}}"
                    x-min="{{_xMin}}"
                    x-max="{{_xMax}}"
                    y-min="{{_yMin}}"
                    y-max="{{_yMax}}"
                    flip-axes="[[flipAxes]]"
                    reverse-x-axis="[[!reverseXAxis]]"
                    reverse-y-axis="[[reverseYAxis]]"
                    x-scale="[[_xScale]]"
                    y-scale="[[_yScale]]"
                    filter-legend="[[_selectedLegend]]"
                    zoom-select="[[_zoomMouseOpt(zoomSelect, noXZoom, noYZoom)]]"
                    zoom-drag="[[_zoomMouseOpt(zoomDrag, noXZoom, noYZoom)]]"
                    selection-mode="[[selectionMode]]"
                    on-selection="_onChartSelection"></ptcs-chart-core-schedule>

Component API

Properties

Property Type Description
data Array Schedule data
labels Array Labels array
disabled Boolean Is the schedule chart disabled?
xMin Number Minimum x value in data
xMax Number Maximum x value in data
yMin Number Minimum y value in data
yMax Number Maximum y value in data
xScale Function Scale that maps x-positions to x-axis
yScale Function Scale that maps y-positions to y-axis
flipAxes Boolean Swap the position of the x- and y-axes?
reverseYAxis Boolean Reverse the y-axis direction?
legend Array Array of strings that specifies the legend names
filterLegend Array Array to hide or show the corresponding legend
zoomSelect Boolean Zoom by selecting two elements?
zoomDrag String Zoom by click-dragging the mouse over the chart: 'x' || 'y' || 'xy' || undefined
dragging Boolean Dragging the mouse over the chart?
selectedData Object Selected chart data
selectionMode String Set selection mode: "none" (default) - no items can be selected. "single" - one item can be selected. "multiple" - any number of items can be selected.
tooltipTemplate String Custom tooltip to display when a data point on the chart is selected. You can show a title, text, data values, and create new lines. Use the following syntax: Add #title# before a string to show a title, #newline# to create a new line, ${} to display data from available bar chart tokens: ${label}, ${series}, ${value}).

Events

Name Data Description
series-click Info about schedule item Event generated when the user selects a schedule item
chart-selection selection Chart selection

Styling

Parts

Part Description
group A row in the schedule chart
task An entry within a group
drag-rect The zoom drag rectangle

State attributes

Attribute Description Part
disabled Is the Schedule Chart disabled? :host
flip-axes Swap the positions of the x and y axes? :host
dragging Dragging mouse over chart? :host