/* @license Copyright (C) Exontrol. All rights reserved. */ /////////////////////////////////////////////////////////// (exontrol.Gantt) // // The exontrol.Gantt class provides the following fields (public): // // Listeners {object}, holds a reference to exontrol.Lts which defines the events of the control. // Shortcuts {object}, holds a reference to exontrol.Sts which defines the shortcuts of the control. // Aggregates {object}, defines the aggregate-callbacks/functions the control supports (sum, count, ... ) // // The exontrol.Gantt class provides the following methods (public): // // BeginUpdate(), suspends the control's render until the EndUpdate() method is called. It maintains performance, while multiple changes occurs within the control. // EndUpdate(), resumes the control's render, after it is suspended by the BeginUpdate() method // Refresh(), refreshes the control // Clear(), clears the control's data (columns, items and filter) // ChooseFile(error), clears the control's data and adds an input-file element to let user choose a local file (CSV format) to import data from // Update(callback, thisArg), locks the control's update during the callback, and invalidates the control once the method ends. // Smooth(callback, thisArg), performs a smooth-transition from a layout to another. The smooth-transition goes from the current layout to the new layout generated by the callback. // Home(), zooms to 100% and scrolls the control to origin (0,0) // Soom(zoomTo, oPointAbs), zooms or/and scrolls the control's content. // FitToClient(rtLayout), ensures that the entire (null/undefined) or giving layout fits the control's client area // EnsureVisibleClient(clientA[, ensureOpts]), ensures that the giving client fits the control's client area. // Selection/GetSelection()/SetSelection(value), gets or sets the control's selected-items. // SelectAll, selects all items within the control. // UnselectAll, clears the selection. // RemoveSelection() {number}, deletes the selected-items. // EnsureVisibleSelection(), scrolls the control's content to ensure that the control's selection fits the control's client area // AddTreeView(name,attributes), creates a new view to display the columns/items // RemoveTreeView(name), removes the view already created by the AddTreeView() method // Items/GetItems() {exontrol.Tree.Items}, returns the control's items. // Columns/GetColumns() {exontrol.Tree.Columns}, returns the control's columns // ConditionalFormats/GetConditionalFormats() {exontrol.Tree.ConditionalFormats}, returns the control's conditional formats // Item(item) {exontrol.Tree.Item}, returns the item based on its index or identifier. // Cell(item,column) {exontrol.Tree.Cell}, returns the cell based on the item and column. // Column(id) {exontrol.Tree.Column}, returns the column based on its index or identifier. // ConditionalFormat(id) {exontrol.Tree.ConditionalFormat}, returns a conditional format based on its key // Scroll(key), scrolls the view based on the giving key // ExpandAll(), expands all items // CollapseAll(), collapses all items // ClearFilter(), clears the control's filter (if any) // ApplyFilter(), applies the control's filter (if any) // Layout/GetLayout()/SetLayout(value) {string}, saves or loads the control's UI layout, such as positions of the columns, scroll position, filtering values // Statistics/GetStatistics() {string}, gives statistics data of objects being hold by the control // Import(source, importOpts), imports data from CSV, XML format // LoadXML(source), loads an XML document (previously saved by an exontrol component) // // Options/GetOptions()/SetOptions(value) {object}, specifies the options of the exontrol.Gantt control // Tfi/GetTfi()/SetTfi(value), specifies an object of {bold,italic,...}/exontrol.TFI type that defines font attributes to display the captions within the control. // Locked/GetLocked()/SetLocked(value) {boolean}, specifies whether the control is locked(protected) or unlocked // ReadOnly/GetReadOnly()/SetReadOnly(value) {boolean}, specifies whether the control is read-only // WheelChange/GetWheelChange()/SetWheelChange(value) {number}, defines the amount the control scrolls when the user rolls the mouse wheel. // GetSmooth()/SetSmooth(value), defines the time in ms the control goes from one layout to another. // Margins/GetMargins()/SetMargins(value), specifies the control's margins // Zoom/GetZoom()/SetZoom(value), defines the zoom factor of the control's content. // ZoomLevels/GetZoomLevels()/SetZoomLevels(value), defines the zoom-levels the user can magnify the control's content // SingleSel/GetSingleSel()/SetSingleSel(value), specifies whether the control supports single, multiple, toggle selection. // Selection/GetSelection()/SetSelection(value), gets or sets the control's selected-items. // FormatText/GetFormatText()/SetFormatText(value) {exontrol.DrawTextFormatEnum}, defines the global format to display the item's caption. // Pad/GetPad()/SetPad(value) {(number|string|array)}, specifies the space between item's content and its borders. // ImageSize/GetImageSize()/SetImageSize(value) {any}, defines the global size of the item's image. The image can be added using the exontrol.HTMLPicture.Add() method // ImageAlign/GetImageAlign()/SetImageAlign(value) {number}, defines the global-alignment of the item's image relative to its caption. // Shapes/GetShapes()/SetShapes(value) {string}, defines the shapes each part of the control can display. The shapes field customizes the control's visual appearance. // Cursors/GetCursors()/SetCursors(value) {string}, defines the mouse cursor to display when pointing over different parts of the control. // AllowActions/GetAllowActions()/SetAllowActions(value) {string}, customizes the actions the user can perform once the control is clicked or touched. // HeaderHeight/GetHeaderHeight()/SetHeaderHeight(value), specifies the height of the control's header // HeaderVisible/GetHeaderVisible()/SetHeaderVisible(value), shows or hides the control's header // CountLockedColumns/GetCountLockedColumns()/SetCountLockedColumns(value), specifies the number of locked columns (a locked column is not scrollable, and it is fixed to the left side of the control) // ColumnAutoResize/GetColumnAutoResize()/SetColumnAutoResize(value), indicates whether the control will automatically size its visible columns to fit on the control's client width // SortBarVisible/GetSortBarVisible()/SetSortBarVisible(value), shows or hides the control's sortbar // SortBarCaption/GetSortBarCaption()/SetSortBarCaption(value), specifies the caption to be shown on the control's sortbar when it is empty. // SingleSort/GetSingleSort()/SetSingleSort(value), indicates whether the control supports single or multiple-columns sort // SortOnClick/GetSortOnClick()/SetSortOnClick(value), specifies whether the column gets sorted once the user clicks its header. // AllowGroupBy/GetAllowGroupBy()/SetAllowGroupBy(value), defines whether the control supports group-by view // ColumnsFloatBarVisible/GetColumnsFloatBarVisible()/SetColumnsFloatBarVisible(value), shows or hides the Columns float-bar, which shows hidden or groupable columns // ColumnsFloatBarSortOrder/GetColumnsFloatBarSortOrder()/SetColumnsFloatBarSortOrder(value), specifies the sort order to show the columns within the control's columns floating panel // ColumnsFloatBarCaption/GetColumnsFloatBarCaption()/SetColumnsFloatBarCaption(value), specifies caption to show within the columns float bar // FilterInclude/GetFilterInclude()/SetFilterInclude(value), specifies the items to include once the control's filter is applied. // FilterBarHeight/GetFilterBarHeight()/SetFilterBarHeight(value), specifies the height of the control's filter-bar // FilterBarVisible/GetFilterBarVisible()/SetFilterBarVisible(value), shows or hides the control's filter-bar // FilterBarCaption/GetFilterBarCaption()/SetFilterBarCaption(value), customizes the caption to display within the control's filter-bar // FilterBarPrompt/GetFilterBarPrompt()/SetFilterBarPrompt(value), specifies the caption to show while the pattern of the filter-prompt is empty // FilterBarPromptPattern/GetFilterBarPromptPattern()/SetFilterBarPromptPattern(value), specifies the pattern of the control's filter-prompt. // FilterBarPromptType/GetFilterBarPromptType()/SetFilterBarPromptType(value), specifies the type of the control's filter-prompt. // FilterBarPromptColumns/GetFilterBarPromptColumns()/SetFilterBarPromptColumns(value), indicates the list of columns the pattern of filter-prompt is applying to. // DrawGridLines/GetDrawGridLines()/SetDrawGridLines(value), shows or hides the control's grid-lines // GridLines/GetGridLines()/SetGridLines(value), customizes the color, width and style of the control's grid-lines. // DefaultItemHeight/GetDefaultItemHeight()/SetDefaultItemHeight(value), defines the item's default-height // TreeColumnIndex/GetTreeColumnIndex()/SetTreeColumnIndex(value), specifies the index or identifier/key/caption of the column that displays the hierarchy // ExpandOnDblClick/GetExpandOnDblClick()/SetExpandOnDblClick(value), specifies whether the item is expanded or collapsed once the user double-clicks the item // ItemAllowSizing/GetItemAllowSizing()/SetItemAllowSizing(value), indicates whether all or none of the items are resizable or fixed // EnsureOnSort/GetEnsureOnSort()/SetEnsureOnSort(value), ensures that the selection fits the view's client-area once the user sorts or groups a column // ShowLockedItems/GetShowLockedItems()/SetShowLockedItems(value), indicates whether the locked/fixed items are visible or hidden // GetLockedItemsCount(alignment)/SetLockedItemsCount(alignment, value), specifies the number of items fixed on the top or bottom side of the control // GetLockedItem(alignment,index), gets a locked item giving its index or identifier/key // AllowDrop/GetAllowDrop()/SetAllowDrop(value), indicates whether the user can drag and drop local files into the control. // OnErrorChooseFile/GetOnErrorChooseFile()/SetOnErrorChooseFile(value), specifies whether the control displays an input-file to let user choose a local filte to import, as soon as an error occurs // ScrollPos/GetScrollPos()/SetScrollPos(value) {object}, scrolls horizontally and/or vertically the control's default view // ToolTipDelay/GetToolTipDelay()/SetToolTipDelay(value) {number}, specifies how long the mouse pointer must point to an object before the tool tip appears // ToolTipPopDelay/GetToolTipPopDelay()/SetToolTipPopDelay(value) {number}, specifies the period in ms of time the tool top remains visible if the mouse pointer is stationary within a control // ToolTipWidth/GetToolTipWidth()/SetToolTipWidth(value) {number}, specifies the width of the control's tooltip // ItemBar(item, key) {ItemBar}, returns the item-bar based on the item and its key, as an object of ItemBar type (equivalent of Item.ItemBar method) // Bar(name) {Bar}, gets the bar giving its index, name or reference. The Bar(name) method is equivalent with Chart.Bars.Item(name) method // // The exontrol.Gantt class provides the following additional methods (public): // // Chart/GetChart() {exontrol.Gantt.Chart}, gets the control's chart object // // The exontrol.Gantt class provides the following events (through Listeners): // // "onselchange", notifies your application that the control's selection has been changed. The onselchange's parameter could be any of the following: // // oEvent {null}, indicates that the control has no selected items // oEvent {object}, indicates an object of exontrol.Tree.Item type that defines the control's single-item selected. // oEvent {array}, specifies an array of [exontrol.Tree.Item] type that holds all selected items within the control // // "onadditem", notifies your application once a new item has been added. The onadditem's parameter is: // // oEvent {object}, indicates an object of Tree.Item type that defines the item being added // // "onaddgroupitem", notifies your application once a new group-item has been added. The onaddgroupitem's parameter is: // // oEvent {object}, indicates an object of Tree.Item type that defines the grouo-item being added. The GroupItem property indicates a group-item if zero or positive (specifies the index of the column that has been grouped by) // // "onremoveitem", notifies your application once an item has been removed. The onremoveitem's parameter is: // // oEvent {object}, indicates an object of Tree.Item type that defines the item being removed // // "onaddcolumn", notifies your application once a new column has been added. The onaddcolumn's parameter is: // // oEvent {object}, indicates an object of Tree.Column type that defines the column being added // // "onremovecolumn", notifies your application once a column has been removed. The onremovecolumn's parameter is: // // oEvent {object}, indicates an object of Tree.Column type that defines the column being removed // // "onclick", occurs once the user clicks or double-clicks an item. The onclick's parameter is: // // oEvent {object}, specifies an object of {dblClick,button,modifiers,..} type, that holds information about the object being clicked // // oEvent.bar {object}, specifies null/undefined or an object of exontrol.Gantt.ItemBar type that indicates the item-bar being clicked // oEvent.link {object}, specifies null/undefined or an object of exontrol.Gantt.Link type that indicates the link being clicked // oEvent.item {object}, specifies null/undefined or an object of exontrol.Tree.Item type that indicates the item being clicked // oEvent.level {object}, specifies null/undefined or an object of exontrol.Gantt.Level type that indicates the chart's level being clicked // oEvent.start {Date}, specifies null/undefined or a date object that indicates the start date-time of the base-unit being clicked // oEvent.end {Date}, specifies null/undefined or a date object that indicates the end date-time of the base-unit being clicked // oEvent.date {Date}, specifies null/undefined or the date-time being clicked // oEvent.cell {object}, specifies null/undefined or an object of exontrol.Tree.Cell type that indicates the cell being clicked // oEvent.column {object}, specifies null/undefined or an object of exontrol.Tree.Column type that specifies the column being clicked // oEvent.view {object}, indicates an object of exontrol.Tree.TV, exontrol.Tree.TV.Header, ... type that specifies the view/window where the click occurred // oEvent.dblClick {boolean}, indicates whether the user clicks or double-clicks the item // oEvent.button {number}, indicates which button is pressed while clicking the item as 1 (left), 2 (right) or 4 (middle) // oEvent.modifiers {number}, specifies a combination of 1, 2, 4 and 16 according with modifier keys (ALT, CTRL, META and SHIFT), or 0 if no modifier keys // // "onchange", notifies your application that a cell, item, column, or more has been changed (expanded, checked, ...). The onchange's parameter is: // // oEvent {object}, specifies an object of {object,action} type, that holds information about the control's object being changed. // // oEvent.object {object}, specifies an object of the control being changed. The type of the object depends on the action it occured // oEvent.action {string}, Specifies the name of action such as follow: // // "expand-item" {string}, notifies that an item has been expanded or collapsed (the object refers to an exontrol.Tree.Item type) // "resize-item" {string}, notifies that the item's height has been changed (the object refers to an exontrol.Tree.Item type) // "drag-item" {string}, notifies the user drags the item to a new position (the object refers to an exontrol.Tree.Item type) // "check-cell" {string}, notifies that a cell has been checked or unchecked (the object refers to exontrol.Tree.Cell type) // "change-cell" {string}, occurs once the cell's value has changed (while UI edit) (the object refers to exontrol.Tree.Cell type) // "expand-column" {string}, notifies that a column has been expanded or collapsed (the object refers to an exontrol.Tree.Column type) // "resize-column" {string}, notifies that a column has been resized (the object refers to an exontrol.Tree.Column type) // "show-column" {string}, notifies that a column has shows or hidden (the object refers to an exontrol.Tree.Column type) // "drag-column" {string}, notifies that a column has been moved to a new position (the object refers to an exontrol.Tree.Column type) // "sort-column" {string}, notifies that a column has been sorted (the object refers to an exontrol.Tree.Column type) // "chart-object" {string}, occurs once the user creates, moves or resizes a bar (the object refers to an exontrol.Gantt.ItemBar type), or creates/removes a link (the object refers to an exontrol.Gantt.Link type) by drag // "resize-chart" {string}, notifies that a gantt-view has been resized (the object refers to an exontrol.Gantt.GV type) (@since 1.8) // // "onscroll", notifies your application once the control's view is scrolled. The onscroll's parameter is: // // oEvent {object}, specifies an object of {view,type,value} type, that holds information about the view's scroll that has been changed as explained: // // oEvent.view {object}, specifies the view, where the scroll occurs // oEvent.type {exontrol.SB.ModeEnum}, specifies the view's scroll that has changed as 0(vertical), 1(horizontal) // oEvent.value {number}, specifies the scroll's value // // "onsort", notifies your application once a column gets sorted or grouped by. The onsort's parameter is: // // oEvent {number}, defines the sort-operation it occured as a combination of one or more flags: // // 1 {number}, indicates sort operation // 2 {number}, indicates a group-by operation // // "onfilter", notifies your application once the control's filter has been changed. The onfilter has no parameters. // "onload", notifies your application once the control loads/imports data. The onload has no parameters. // "onerror", notifies your application once the control encountered an error. The onerror's parameter is: // // oEvent {object}, specifies an object of DOMException (or any other) type that holds information about the error // // "ondatechange", occurs once the chart's first visible date is changed. The ondatechange's parameter is: // // oEvent {object}, specifies an object of exontrol.Gantt.GV type, where the first visible date has changed // // "onchartselchange", notifies your application that the chart's selection has been changed (bars). The onchartselchange's parameter could be any of the following: // // oEvent {null}, indicates that the chart has no selected objects(bars) // oEvent {object}, indicates an object of exontrol.Gantt.ItemBar type that defines the control's single item-bar selected // oEvent {array}, specifies an array of [exontrol.Gantt.ItemBar] type that holds all selected objects within the control // // "ondateselchange", notifies your application that the chart's date(s) selection has been changed (dates). The ondateselchange's parameter could be any of the following: // // oEvent {null}, indicates that the chart has no selected dates // oEvent {object}, indicates an object of {start,end} type that defines the control's single date selected // oEvent {array}, specifies an array of [{start,end}] type that holds all selected dates within the control // // "oncreatebar", notifies your application once the user creates a new item-bar by drag. The oncreatebar's parameter is: // // oEvent {object}, specifies an object of {item,start,end,bar} type that defines the item that hosts the newly created bar, the start and end margins of the bar, as explained: // item {any}, specifies the item that hosts the newly created item-bar as an object of exontrol.Tree.Item type, or a negative value, that indicates the number of items to add to cover the clicked area // start {Date}, specifies the date-time the item-bar being created starts from // end {Date}, specifies the date-time the item-bar being created ends to // bar {object}, indicates the newly item-bar being created, as an object of exontrol.Gantt.ItemBar type // // "onbarresize", notifies your application once the user resized or moved the item-bar by drag. The onbarresize's parameter is: // // oEvent {object}, specifies an object of {item,key,bar} type that defines the item-bar being resized or moved, as explained: // item {object}, specifies the item that hosts the bar being resized or moved, as an object of exontrol.Tree.Item type // key {any}, indicates the key of the item-bar being resized or moved // bar {object}, indicates the item-bar being resized or moved, as an object of exontrol.Gantt.ItemBar type // percent {number}, specifies the bar's percent as a value between 0 and 1(100%) (the percent field is defined only if the user resizes the bar's percent only) // // "onbarparentchange", notifies your application once the user is about to move a bar from an item to another, by drag. The onbarparentchange's parameter is: // // oEvent {object}, specifies an object of {newItem,item,key,bar,cancel} type that defines the bar to move to a new item, as explained: // newItem {object}, indicates the new parent-item of the item-bar, as an object of exontrol.Tree.Item type // item {object}, specifies the item that hosts the bar being moved, as an object of exontrol.Tree.Item type // key {any}, indicates the key of the item-bar being moved // bar {object}, indicates the item-bar being moved, as an object of exontrol.Gantt.ItemBar type // cancel {boolean}, indicates whether the item-bar bar can be moved from item to newItem. By default, the cancel is false, so the bar can be moved to newItem. Set the cancel field on true, to prevent moving the bar to newItem // // "onallowlink", occurs to querry if a link between two bars is possible. The onallowlink's parameter is: // // oEvent {object}, specifies an object of {start,end,cancel} type that defines the start/end bars of the link to create, as explained: // start {object}, defines the bar the link starts from, as an object of exontrol.Gantt.ItemBar type // end {object}, defines the bar the link ends to, as an object of exontrol.Gantt.ItemBar type // cancel {boolean}, specifies whether the link can be created. By default, the cancel is false, so the link is created. Set on True, to prevent creating the link between bars // // "oncreatelink", occurs once the user creates a link between two bar by drag. The oncreatelink's parameter is: // // oEvent {object}, indicates the link between two bars, as an object of exontrol.Gantt.Link type // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Def.Gantt) // // The exontrol.Def.Gantt namespace provides definitions for different objects, primitives, objects of exontrol.Gantt object // // The exontrol.Def.Gantt namespace provides the following fields: // // scrollBars {exontrol.ScrollBarsEnum}, determines whether the control has horizontal and/or vertical scroll bars // tfi {(string|object)}, holds the font attributes for captions within the control. The tfi field can be defined using a string representation such as "b monospace 16" or as an object such as {bold: true, fontName: "monospace", fontSize: 16}. // locked {boolean}, indicates whether the control is locked(protected) or unlocked // wheelChange {number}, specifies the amount the control scrolls when the user rolls the mouse wheel. // smooth {number}, defines the time in ms the control goes from one layout to another. // margins {object}, specifies control's margins. // shapes {string}, defines the shapes each part of the control can display. The shapes field customizes the control's visual appearance. // cursors {string}, specifies the mouse cursor to be displayed when pointing over a part of the control. // singleSel {exontrol.Tree.SingleSelEnum}, specifies whether the control supports single, multiple, toggle selection. // zoom {number}, defines the zoom factor of the control's content. The zoomLevels field defines the margins of the zoom-factor the control is allowed to magnify. // zoomLevels {string}, defines the zoom-levels the user can magnify the control's content // formatText {exontrol.DrawTextFormatEnum}, specifies the format to display the item's caption. // pad {(number|string|array)}, defines the item's padding (space between the item's content and its border) // imageSize {(null|number|array)}, defines the size of the item's image. // imageAlign {number}, defines the alignment of the image within the item. // allowActions {string}, customizes the actions the user can perform once the user clicks or touches the control. // expandGlyphSize {number}, specifies the size to show the item's expand/collapse glyphs // crSize {number}, specifies the size to show the check-box/radio-button // headerHeight {number}, specifies the height to display the control's header // headerVisible {boolean}, shows or hides the control's header // countLockedColumns {number}, specifies the number of locked columns (a locked column is not scrollable, and it is fixed to the left side of the control) // columnAutoResize {boolean}, specifies whether the control will automatically size its visible columns to fit on the control's client width // sortBarVisible {boolean}, shows or hides the control's sortbar // sortBarCaption {string}, defines the caption to be shown on the control's sortbar when it is empty. // singleSort {boolean}, specifies whether the control supports single or multiple columns-sort // sortOnClick {exontrol.Tree.SortOnClickEnum}, indicates whether the column gets sorted once its header is clicked. // allowGroupBy {boolean}, indicates whether the control supports Group-By view // groupByFormatCell {string}, indicates the format of the cell to be displayed when the column gets grouped by // columnsFloatBarVisible {exontrol.Tree.ColumnsFloatBarVisibleEnum}, shows or hides the columns float-bar, which displays hidden or groupable columns // columnsFloatBarSortOrder {number}, specifies the sort order to show the columns within the control's columns floating panel // columnsFloatBarCaption {string}, indicates the caption the columns floatbar displays // filterInclude {exontrol.Tree.FilterIncludeEnum}, specifies the items to include once the control's filter is applied. // filterBarHeight {number}, specifies the height to display the control's filter-bar // filterBarVisible {exontrol.Tree.FilterBarVisibleEnum}, shows or hides the control's filter-bar // filterBarCaption {string}, customizes the caption to be shown within the control's filter-bar // filterBarPrompt {string}, specifies the caption to show while the pattern of the filter-prompt is empty // filterBarPromptPattern {string}, indicates the pattern of the filter-prompt // filterBarPromptType {exontrol.Tree.FilterPromptEnum}, specifies the type of filter-prompt. // filterBarPromptColumns {any}, indicates the list of columns the pattern of filter-prompt is applying to. // drawGridLines {exontrol.Tree.GridLinesEnum}, shows or hides the control's grid-lines // gridLines {object}, defines the color, width and style of the control's grid-lines // defaultItemHeight {number}, defines the item's default-height // treeColumnIndex {any}, specifies the index or identifier/key/caption of the column that displays the hierarchy // expandOnDblClick {boolean}, specifies whether the item is expanded or collapsed once the user double-clicks the item // itemAllowSizing {boolean}, specifies whether all or none of the items are resizable or fixed // ensureOnSort {boolean}, ensures that the selection fits the view's client-area once the user sorts or groups a column // showLockedItems {boolean}, indicates whether the locked/fixed items are visible or hidden // allowDrop {boolean}, specifies whether the user can drag and drop local files into the control // onErrorChooseFile {boolean}, specifies whether the control displays an input-file to let user choose a local filte to import, as soon as an error occurs // scrollPos {object}, defines the horizontal and vertical scroll-position of the control's default view, as an object of {x,y} type // toolTipDelay {number}, specifies how long the mouse pointer must point to an object before the tool tip appears // toolTipPopDelay {number}, specifies the period in ms of time the tool top remains visible if the mouse pointer is stationary within a control // toolTipWidth {number}, indicates the width of the control's tooltip // data {any}, imports (CSV, XML) or exports(Array) the control's data // debug {boolean}, indicates whether the control displays debug-information (for instance, displays the bar's key) // // chart {object}, provides options of the control's chart as follows: // paneWidthLeft {number}, specifies the width of the control's left-pane (items) (setting the paneWidthLeft option is equivalent with OnResizeControl property on exResizeChart, or the chart-panel is resized once the control gets resized. If the paneWidthLeft option is missing it is equivalent with OnResizeControl property on exResizeList, or the items-panel is resized once the control gets resized) // paneWidthRight {number}, specifies the width of the control's right-pane (chart) (setting the paneWidthRight option is equivalent with OnResizeControl property on exResizeList, or the items-panel is resized once the control gets resized) // levelCount{number}, specifies the number of levels in the chart's header // labels {object}, indicates the predefined-labels for each time-unit // toolTips {object}, indicates the predefined-tooltips for each time-unit // unitScale {exontrol.UnitEnum}, specifies the base unit the chart displays // locale {string}, specifies the language to format the control // drawLevelSeparator {exontrol.Gantt.LevelLineEnum}, shows or hides lines between chart's levels // unitWidth {number}, specifies the width to display the units in base-level // unitWidthNonworking {number}, specifies the width to display the non-working units in base-level // minUnitWidth {number}, specifies the minimum width of the units within the base-level, while the user resizes or zooms-in/out the chart // maxUnitWidth {number}, specifies the maximum width of the units within the base-level, while the user resizes or zooms-in/out the chart // firstVisibleDate {any}, indicates the chart's first visible date // firstVisibleOffset {number}, specifies the chart's first visible offset // nonworkingDays {number}, indicates the chart's non-working days // showNonworkingDays {boolean}, shows or hides the chart's non-working days (marks the non-working days) // nonworkingHours {number}, indicates the chart's non-working hours // showNonworkingHours {boolean}, shows or hides the chart's non-working hours (marks the non-working hours) // showNonworkingUnits {boolean}, shows or hides the chart's non-working units (days and hours) // adjustLevelsToBase {boolean}, specifies whether the units of the levels are aligned with the units of the base level // scrollRange {object}, specifies the range of dates to scroll within // start {Date} indicates the scroll range's start/left-margin date/time // end {Date} indicates the scroll range's end/right-margin date/time // scrollBar {boolean}, shows or hides the chart's horizontal scroll-bar // drawGridLines {exontrol.Tree.GridLinesEnum}, shows or hides the chart's grid-lines // bars {object}, defines the predefined-bars of the control // singleSel {exontrol.Tree.SingleSelEnum}, specifies whether the chart supports single, multiple, toggle selection (equivalent of AllowSelectObjects property) // allowSelectDate {exontrol.Tree.SingleSelEnum}, indicates whether the user can select single, multiple, toggle dates // resizeUnitScale {exontrol.UnitEnum}, specifies the unit-scale to create, move or resize bars // resizeUnitCount {number}, specifies the count of unit-scales to create, move or resize bars // dateTickerLabel {string}, specifies the format to display the bar's start and end margins while creating, moving or resizing it // dateTickerLabelVAlign {number}, specifies the vertical alignment of the date label, while create, resize or move the bar // dateTickerLabelHMargin {number}, specifies the distance between the date-label and the bar, while create, resize or move it // drawDateTicker {boolean}, shows or hides the chart's ticker to indicate the date-time being hovered // showLinks {exontrol.ShowLinksEnum}, indicates whether the control shows or hides the links between bars // link {object}, specifies the appearance of the link between bars // linkStartFrom {object}, specifies the appearance of the link that starts from any selected-bar (outgoing links) // linkEndTo {object}, specifies the appearance of the link that ends to any selected-bar (incoming links) // linkUnselected {object}, specifies the appearance of the link not related to any selected-bar (unselected links) // overviewVisible {exontrol.Gantt.OverviewVisibleEnum}, specifies whether the chart's overview layout is visible or hidden // overviewHeight {number}, indicates the height of the control's overview // overviewShowSelectDates {boolean}, indicates whether the chart's overview shows the selected dates // overviewToolTip {string}, indicates the format of the tooltip being shown while the cursor hovers the chart's overview area // overviewZoomCaption{string}, specifies the captions for each zooming time-unit // allowOverviewZoom {boolean}, indicates whether the chart's overview shows the time-scales the user can zoom to // overviewZoomUnit {number}, specifies the width of the time-unit scale in the overview // histogramVisible {boolean}, specifies whether the chart's histogram is visible or hidden // histogramHeight {number}, indicates the height of the control's histogram // histogramView {exontrol.Gantt.HistogramViewEnum}, specifies the items the control's histogram displays data for // histogramUnitScale {exontrol.UnitEnum}, specifies the unit-scale to determine the effort of bars with variable-effort (effort of expression/string type) // histogramUnitCount {number}, specifies the count of unit-scales to to determine the effort of bars with variable-effort (effort of expression/string type) // histogramZOrder {string}, specifies the z-order of the bars to be shown within the chart's histogram // overlaidOnMoving {boolean}, specifies whether the overlaid bars are re-arranged while the user moves or resizes at runtime a bar // /////////////////////////////////////////////////////////// /** * @description The exontrol.Def.Gantt namespace provides definitions for different objects, primitives, objects of exontrol.Gantt object */ exontrol.Def.Tree = { /** * @description The scrollBars field determines whether the control has horizontal and/or vertical scroll bars * @type {exontrol.ScrollBarsEnum} A combination of one or more exontrol.ScrollBarsEnum flags that determines whether the control has horizontal and/or vertical scroll bars. * * The exontrol.ScrollBarsEnum type defines the following flags: * * exNoScroll (0), specifies that no scroll bars are shown (scroll is not allowed) * exHorizontal (1), specifies that only horizontal scroll bars is shown * exVertical (2), specifies that only vertical scroll bars is shown * exBoth (3), specifies that both horizontal and vertical scroll bars are shown * exDisableNoHorizontal (5), specifies that the horizontal scroll bar is always shown, it is disabled if it is unnecessary * exDisableNoVertical (10), specifies that the vertical scroll bar is always shown, it is disabled if it is unnecessary * exDisableBoth (15), specifies that both horizontal and vertical scroll bars are always shown, disabled if they are unnecessary * exHScrollOnThumbRelease (0x100), specifies that the control's content is horizontally scrolled as soon as the user releases the thumb of the horizontal scroll bar (use this option to specify that the user scrolls the control's content when the thumb of the scroll box is released) * exVScrollOnThumbRelease (0x200), specifies that the control's content is vertically scrolled as soon as the user releases the thumb of the vertical scroll bar (use this option to specify that the user scrolls the control's content when the thumb of the scroll box is released) * exScrollOnThumbRelease (0x300), specifies that the control's content is scrolled as soon as the user releases the thumb of the horizontal scroll bar (use this option to specify that the user scrolls the control's content when the thumb of the scroll box is released) * exHScrollEmptySpace (0x400), allows empty space, when the control's content is horizontally scrolled to the end * exVScrollEmptySpace (0x800), allows empty space, when the control's content is vertically scrolled to the end * exScrollEmptySpace (0xC00), allows empty space, when the control's content is scrolled to the end * exExtendSBS (0x3000), specifies that the control's scroll-bars are visible only when cursor hovers the window. Also, the control's client area is extended on the scroll bars portion * exMinSBS (0xC000), specifies that the control's scroll-bars are shown as minimized * exHideSBS (0x10000), specifies that no scroll bars are shown (scroll is allowed) * * @example * * 0 or exontrol.ScrollBarsEnum.exNoScroll {number}, removes the control's scroll bars, so scroll is not allowed * 15 or exontrol.ScrollBarsEnum.exDisableBoth {number}, the control always displays the scroll bars, and they are active only if scroll is possible * 12291 or exontrol.ScrollBarsEnum.exBoth | exontrol.ScrollBarsEnum.exExtendSBS {number}, the control shows the scroll bars only if the cursor hovers the control, and the control scroll bars are hidden as soon as the cursor leaves the control */ scrollBars: exontrol.ScrollBarsEnum.exBoth, /** * @description The tfi field applies font attributes to captions within the control. The tfi field can be defined using a string representation such as "b monospace 16" or as an object such as {bold: true, fontName: "monospace", fontSize: 16}. * * The tfi field as string supports any of the following keywords (each keyword can be specified using first letters only such as "b" for "bold) separated by space characters: * * bold, displays the text in bold (equivalent of tag) * italic, displays the text in italics (equivalent of tag) * underline, underlines the text (equivalent of tag) * strikeout, specifies whether the text is strike-through (equivalent of tag) * , specifies the font's family (equivalent of tag) * , specifies the size of the font (equivalent of tag) * , specifies the text's foreground color (equivalent of tag) * , specifies the text's background color (equivalent of tag) * , defines the text's shadow (equivalent of tag) * , shows the text with outlined characters (CSScolor) (equivalent of tag) * , defines a gradient text (equivalent of tag) * * Any other word within the tfi field that's not recognized as a keyword is interpreted as: * * name of the font (not a number), specifies the font's family (equivalent of tag) * size of the font (number), specifies the size of the font (equivalent of tag) * * The tfi field as object supports any of the following fields: * * bold {boolean}, displays the text in bold (equivalent of tag) * italic {boolean}, displays the text in italics (equivalent of tag) * underline {boolean}, underlines the text (equivalent of tag) * strikeout {boolean}, specifies whether the text is strike-through (equivalent of tag) * fontName {string}, specifies the font's family (equivalent of tag) * fontSize {number}, specifies the size of the font (equivalent of tag) * fgColor {string}, specifies the text's foreground color (CSScolor) (equivalent of tag) * bgColor {string}, specifies the text's background color (CSScolor) (equivalent of tag) * shaColor {object}, specifies an object of {color, width, offset} type that defines the text's shadow (equivalent of tag), where: * color {string}, defines the color of the text's shadow (CSScolor) * width {number}, defines the size of the text's shadow * offset {number}, defines the offset to show the text's shadow relative to the text * outColor {string}, shows the text with outlined characters (CSScolor) (equivalent of tag) * graColor {object}, specifies an object of {color, mode, blend} type that defines a gradient text (equivalent of tag), where: * color {string}, defines the gradient-color (CSScolor) * mode {number}, defines the gradient mode as a value between 0 and 4 * blend {number}, defines the gradient blend as a value between 0 and 1 * * CSSColor or CSS legal color values can be specified by the following methods: * * Hexadecimal colors, is specified with: #RRGGBB, where the RR (red), GG (green) and BB (blue) hexadecimal integers specify the components of the color. All values must be between 00 and FF. For example, #0000ff value is rendered as blue, because the blue component is set to its highest value (ff) and the others are set to 00. * Hexadecimal colors with transparency, is specified with: #RRGGBBAA, where AA (alpha) value must be between 00 and FF. For example, #0000ff80 defines a semi-transparent blue. * RGB colors, is specified with the RGB(red, green, blue) function. Each parameter (red, green, and blue) defines the intensity of the color and can be an integer between 0 and 255. For example, rgb(0,0,255) defines the blue color. * RGBA colors, are an extension of RGB color values with an alpha channel as RGBA(red, green, blue, alpha) function, where the alpha parameter is a number between 0.0 (fully transparent) and 1.0 (fully opaque). For example, rgba(0,0,255,0.5) defines a semi-transparent blue. * HSL colors, is specified with the HSL(hue, saturation, lightness) function, where hue is a degree on the color wheel (from 0 to 360) - 0 (or 360) is red, 120 is green, 240 is blue. saturation is a percentage value; 0% means a shade of gray and 100% is the full color. lightness is also a percentage; 0% is black, 100% is white. HSL stands for hue, saturation, and lightness - and represents a cylindrical-coordinate representation of colors. For example, hsl(240, 100%, 50%) defines the blue color. * HSLA colors, are an extension of HSL color values with an alpha channel - which specifies the opacity of the object as HSLA(hue, saturation, lightness, alpha) function, where alpha parameter is a number between 0.0 (fully transparent) and 1.0 (fully opaque). For example, hsla(240, 100%, 50%,0.5) defines a semi-transparent blue. * Predefined/Cross-browser color names, 140 color names are predefined in the HTML and CSS color specification. For example, blue defines the blue color. * * @type {(string|object)} * @example * * null {null}, the tfi field is ignored * "bold monospace 16" {string}, defines Monospace font of 16px height, bold * {bold: true, fontName: "monospace", fontSize: 16} {object}, defines Monospace font of 16px height, bold */ tfi: null, /** * @description The locked field indicates whether the control is locked(protected) or unlocked * @type {boolean} Specifies whether the control is protected. * @example * * false {boolean}, unlocks the control (can select any item) * true {boolean}, locks the control (can't select any item) */ locked: false, /** * @description The readOnly field indicates whether the control is read-only * @type {boolean} Specifies whether the control is read-only. * @example * * false {boolean}, the user can edit or drag any item * true {boolean}, the user can not edit or drag the items */ readOnly: false, /** * @description The wheelChange field specifies the amount the control scrolls when the user rolls the mouse wheel. * @type {number} Specifies the amount the control scrolls when the user rolls the mouse wheel. * @example * * 0 {number}, locks any action the mouse's wheel performs * 18 {number}, scrolls the control by 18-pixels when mouse's wheel is rotated (CTRL + wheel scrolls horizontally) */ wheelChange: 18, /** * @description The smooth field defines the time in ms the control goes from one layout to another. * @type {number} Indicates the time in ms the control goes from one layout to another (125, by default). * @example * * 0 {number}, no smooth changes once the control goes from a layout to another * 125 {number}, specifies that a smooth-transition is performed from a layout to another for 125 ms. */ smooth: 125, /** * @description The margins field specifies control's margins. * @type {object} Indicates an object of {border} type that defines the control's margins */ margins: { /** * @description The indent field defines the distance between a child item and its parent, while the items are arranged as a tree. * @type {number} Specifies the distance between a child item and its parent, while the items are arranged as a tree. * @example * * 0 {number}, defines no indention * 16 {number}, defines 16-pixels indention */ indent: 16 }, /** * @description The shapes field defines the shapes each part of the control can display. The shapes field customizes the control's visual appearance. * @type {string} A string expression that defines the shapes each part of the control can display. * * The format of shapes property is: * * "shape(part),shape(part),..." * * where: * * "shape", defines the shape to apply on the UI part as one of the following: * * any of 140 color names any browser supports (such as red, blue, green, ...) * hexadecimal colors, is specified with: #RRGGBB, where the RR (red), GG (green) and BB (blue) hexadecimal integers specify the components of the color. All values must be between 00 and FF (such as #0000ff which defines a blue background) * hexadecimal colors with transparency, is specified with: #RRGGBBAA, where AA (alpha) value must be between 00 and FF (such as #0000ff80 which defines a semi-transparent blue background) * RGB colors, is specified with the RGB(red, green, blue) function. Each parameter (red, green, and blue) defines the intensity of the color and can be an integer between 0 and 255( such as rgb(0,0,255) that defines a blue background) * RGBA colors, are an extension of RGB color values with an alpha channel as RGBA(red, green, blue, alpha) function, where the alpha parameter is a number between 0.0 (fully transparent) and 1.0 (fully opaque) ( such as rgba(0,0,255,0.5) which defines a semi-transparent blue background) * HSL colors, is specified with the HSL(hue, saturation, lightness) function, where hue is a degree on the color wheel (from 0 to 360) - 0 (or 360) is red, 120 is green, 240 is blue. saturation is a percentage value; 0% means a shade of gray and 100% is the full color. lightness is also a percentage; 0% is black, 100% is white. HSL stands for hue, saturation, and lightness - and represents a cylindrical-coordinate representation of colors (such as hsl(240, 100%, 50%) that defines a blue background) * HSLA colors, are an extension of HSL color values with an alpha channel - which specifies the opacity of the object as HSLA(hue, saturation, lightness, alpha) function, where alpha parameter is a number between 0.0 (fully transparent) and 1.0 (fully opaque) (such as hsla(240, 100%, 50%,0.5) that defines a semi-transparent blue background) * a JSON representation of the shape object to apply (while it starts with { character, such as '{"normal": {"primitive": "RoundRect","fillColor":"black","tfi": {"fgColor": "white"}}}') * specifies the name of the field within the exontrol.Shapes.Tree object (while it starts with a lowercase letter, such as shitem which refers to exontrol.Shapes.Tree.shitem shape) * specifies the name of the field within the exontrol.Shapes object (while it starts with an uppercase letter, such as Button which refers to exontrol.Shapes.Button shape) * * "part", defines the name of the part the shape is applied on (as defined below) * * The shapes property supports any of the following parts: * * "level", defines the visual-appearance for level's header * "nw", defines the visual-appearance to show the non-working units * "select-chart", defines the visual-appearance of selected-item (applied to chart section only) * "select-bar", defines the visual-appearance of selected item-bar * "select-date", defines the visual-appearance to display a selected-date * "select-overview", defines the visual-appearance to display the overview-selection * "selectunit-overview", defines the visual-appearance to display the selected unit within the control's overview (@since 2.4) * "selectout-overview", defines the visual-appearance to display the left/right parts outside of the overview-selection (@since 2.4) * "select-overview-resize", defines the visual-appearance to display left/right resize-margins of the overview-selection (@since 2.4) * "unavailableunit-overview", defines the visual-appearance to display unavailable-units within the control's overview (@since 2.4) * "date-ticker", defines the visual-appearance to indicate the date-time being hovered * * "lock", defines the visual-appearance for locked-part of the tree-view (left-side panel of the tree-view, determined by the countLockedColumns field, displays un-scrollable columns) * "lock-header", defines the visual-appearance for locked-part of the header (left-side panel of the header, determined by the countLockedColumns field, displays un-scrollable columns) * "unlock", defines the visual-appearance for unlocked-part of the tree-view (ride-side panel of the tree-view, determined by the countLockedColumns field, displays scrollable columns) * "unlock-header", defines the visual-appearance for unlocked-part of the header (ride-side panel of the header, determined by the countLockedColumns field, displays scrollable columns) * "filterBar-close", defines the visual-appearance of the filter-bar's close button * "filterBar", defines the visual-appearance of the control's filter-bar * "sortBar-caption", defines the visual-appearance of control's sortbar when it displays no columns * "column", defines the visual-appearance of column's header * "column-filter", defines the visual-appearance of column's filter-button * "radio", defines the visual-appearance of the radio-button * "check", defines the visual-appearance of the check-box * "expand", defines the visual-appearance of expand/collapse glyphs * "cell", defines the visual-appearance for all cells within the control * "item", defines the visual-appearance for all items within the control * "itemDiv", defines the visual-appearance for divider-items (a divider-item displays only a single-cell) * "itemAlt", defines the visual-appearance for alternate-items (every second item) * "select", defines the visual-appearance of selected-item (applied to list section only) * "frameFit", defines the visual-appearance to display the frame while fitting objects into the control's client area by drag * "frameSel", defines the visual appearance to display a frame while selecting objects by drag * "multiSel", specifies the visual appearance to show the count of multiple-selected items (for instance, when you drag and drop multiple items at once) * * @example * * null {null}, specifies the default visual appearance * "" {string}, no shape (no visual appearance is applied to any part of the control) * "red(itemAlt)", "#FF0000(itemAlt)", "rgb(255,0,0)(itemAlt)", "rgba(255,0,0,1)(itemAlt)" {string}, shows alternate-items in red * '{"hover":{"fillColor":"black","tfi":{"fgColor":"white"}}}(item)' {string}, shows the item in white on a black-background, while the cursor hovers it * "xxx(d),yyy(d,m),zzz(y)" {string}, specifies that the exontrol.Shapes.Tree.xxx combined with exontrol.Shapes.Tree.yyy object defines the visual appearance of "d" part of the control, exontrol.Shapes.Tree.yyy object defines the visual appearance of "m" part of the control and exontrol.Shapes.Tree.zzz object defines the visual appearance of "y" part of the control */ shapes: "shitem(item),shcell(cell),shcolumn(column,sortBar-caption),shfilterBar(filterBar),Expand(expand),FrameFit(frameFit),FrameSel(frameSel,select,select-chart,select-bar,select-date,select-overview),shcheck(check),shradio(radio),Button(filterBar-close),shmulti(multiSel),shnw(nw),shenlarge(select-bar),shenlargev(select-date),shrect(select-overview),black(date-ticker)", /** * @description The cursors field specifies the mouse cursor to be displayed when pointing over a part of the control. * @type {string} Specifies the mouse cursor to be displayed when pointing over a part of the control. * * The format of cursors property is: * * "cursor(part),cursor(part),..." * * where: * * "cursor", defines the CSS mouse cursor to display while cursor hovers the part * "part", defines the name of the part the cursor is applied on (as defined below) * * The cursors property supports any of the following parts: * * "create-bar", defines the mouse-cursor to show when the user creates a new item-bar * "create-link", defines the mouse-cursor to show when the user creates a new link * "itemBar", defines the mouse-cursor to show when the user hovers a movable and selectable item-bar * "itemBar-percent-resize", defines the mouse-cursor to show when the user hovers the bar's percent right-side * * "filterBar-close", defines the mouse-cursor to show when the mouse pointer hovers the filter-bar's close button * "filterBar-prompt", defines the mouse-cursor to show when the mouse pointer hovers the filter-bar's prompt field * "filterBar-caption", defines the mouse-cursor to show when the mouse pointer hovers the filter-bar's caption field * "filterBar-caption-column", defines the mouse-cursor to show when the mouse pointer hovers a column of the filter-bar's caption field * "column", defines the mouse-cursor to show when the mouse pointer hovers the column's header * "column-filter", defines the mouse-cursor to show when the mouse pointer hovers the column's filter-button * "column-drag", defines the mouse-cursor while the column is dragging * "item", defines the mouse-cursor when the mouse pointer hovers any item * "item-drag", defines the mouse-cursor while the item is dragging * "drag-drop", defines the cursor while the item is being dragged using the "drag-drop" action * "cell", defines the mouse-cursor when the mouse pointer hovers any cell * "expand", defines the mouse-cursor to be shown when the mouse pointer hovers the expand/collapse glyphs * "anchor" (hyperlink), defines the mouse-cursor when the mouse pointer hovers the anchor (the ex-HTML part marks an anchor or hyperlink element) (@since 2.2) * "check", defines the mouse-cursor to be shown when the mouse pointer hovers the check-box/radio-button * "long", specifies the mouse-cursor to be shown as soon as a "long" click or touch action begins (see allowActions field) * * @example * * "pointer(xxx,yy)" {string}, indicates that the "pointer" mouse cursor is shown while cursor hovers any "xxx" or "yyy" part of the control */ cursors: "not-allowed(no),grab(long),pointer(itemBar,expand,check,radio,filterBar-close,filterBar-caption-column,column-filter,column-drag,item-drag,drag-drop,anchor),text(filterBar-prompt),copy(create-bar,create-link),col-resize(itemBar-percent-resize)", /** * @description The singleSel field specifies whether the control supports single, multiple, toggle selection. * @type {exontrol.Tree.SingleSelEnum} Indicates whether the control supports single or multiple selection. * * The exontrol.Tree.SingleSelEnum type defines the following flags: * * exDisableSel(0), specifies that the control's selection is disabled (can not be combined with any other flags) * exEnableSel(1), specifies that the control's selection is enabled (multiple-selection, unless the exSingleSel is set ) * exSingleSel(2), specifies that the user can select a item only * exToggleSel(4), specifies that the item's selection state is toggled once the user clicks a item. * exDisableCtrlSel(8), disables toggling the item's selection state when user clicks a item, while CTRL modifier key is pressed. * exDisableShiftSel(16), disables selecting items using the SHIFT key. * exDisableDrag(32), disables selecting items by drag. * * @example * * 0 or exontrol.Tree.SingleSelEnum.exDisableSel {number}, disables selecting any item * 3 or exontrol.Tree.SingleSelEnum.exSingleSel | exontrol.Tree.SingleSelEnum.exEnableSel {number}, enables control's single selection, so only a single item can be selected * 6 or exontrol.Tree.SingleSelEnum.exToggleSel | exontrol.Tree.SingleSelEnum.exSingleSel {number}, enables control's single and toggle selection, which means that once a item is selected it gets unselected once it is clicked, or reverse, and only a single-item can be selected at once. */ singleSel: exontrol.Tree.SingleSelEnum.exEnableSel, /** * @description The zoom field defines the zoom factor of the control's content. The zoomLevels field defines the margins of the zoom-factor the control is allowed to magnify. * @type {number} Indicates the content's zoom factor in percent. The zoom field can be any value between 10 (10%) and 1000 (1000%) * @example * * null {null}, Specifies normal-view (100%) * 150 {number}, Indicates that the control's content is magnfied to 150% */ zoom: 100, /** * @description The zoomLevels field defines the zoom-levels the user can magnify the control's content * @type {string} Specifies a list of numbers separated by comma that indicates the zoom-levels/zoom-margins the control's content is allowed to zoom * @example * * null {null}, Specifies that the control's zoom factor is always 100% * 150 {number}, Specifies that the control's zoom factor is always 150% * "50,100,200,350" {string}, Indicates that the zoom-factor can be any of selected values, and the margins of zoom-factor is 50% to 350% */ zoomLevels: "50,65,75,80,90,100,110,125,150,175,200,250,300,400,500", /** * @description The formatText field specifies the format to display the item's caption. * @type {exontrol.DrawTextFormatEnum} A combination of one or more exontrol.DrawTextFormatEnum flags that defines the format to show the item's caption. * * The exontrol.DrawTextFormatEnum type supports the following flags: * * exTextAlignTop (0x00), justifies the text to the top of the rectangle * exTextAlignLeft (0x00), aligns text to the left * exTextAlignCenter (0x01), centers text horizontally in the rectangle * exTextAlignRight (0x02), aligns text to the right * exTextAlignVCenter (0x04), centers text vertically * exTextAlignBottom (0x08), justifies the text to the bottom of the rectangle. * exTextAlignMask (0x0F), specifies the mask for text's alignment. * exTextWordBreak (0x10), breaks words. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by the lpRect parameter. A carriage return-line feed sequence also breaks the line. If this is not specified, output is on one line. * exTextSingleLine (0x20), displays text on a single line only. Carriage returns and line feeds do not break the line. * exTextExpandTabs (0x40), expands tab characters. The default number of characters per tab is eight. * exPlainText (0x80), treats the text as plain text. * exTextNoClip (0x0100), draws without clipping. * exHTMLTextNoColors (0x0200), ignores the and tags. * exTextCalcRect (0x0400), determines the width and height of the text. * exHTMLTextNoTags (0x0800), ignores all HTML tags. * exTextPathEllipsis (0x4000), for displayed text, replaces characters in the middle of the string with ellipses so that the result fits in the specified rectangle. If the string contains backslash (\) characters, exTextPathEllipsis preserves as much as possible of the text after the last backslash. * exTextEndEllipsis (0x8000), for displayed text, if the end of a string does not fit in the rectangle, it is truncated and ellipses are added. If a word that is not at the end of the string goes beyond the limits of the rectangle, it is truncated without ellipses. * exTextWordEllipsis (0x040000), truncates any word that does not fit in the rectangle and adds ellipses. * * @example * * null {null}, centers the caption * 32 or exontrol.DrawTextFormatEnum.exTextSingleLine {number}, defines a single-line caption * 0x2A or exontrol.DrawTextFormatEnum.exTextSingleLine | exontrol.DrawTextFormatEnum.exTextAlignRight | exontrol.DrawTextFormatEnum.exTextAlignBottom {number}, defines a single-line caption right/bottom-aligned */ formatText: exontrol.DrawTextFormatEnum.exTextAlignLeft | exontrol.DrawTextFormatEnum.exTextAlignVCenter | exontrol.DrawTextFormatEnum.exTextSingleLine | exontrol.DrawTextFormatEnum.exTextWordEllipsis, /** * @description The pad field defines the item's padding (space between the item's content and its border) * @type {(number|string|array)} A value that could be a numeric value, to pad horizontal and vertical size with the same value, or a "x,y" or [x,y] type to specify the padding on h/v size * @example * * null {null}, indicates that the default-padding field is used ([4,4]) * 0 {number}, indicates no padding * "8,4" {string}, increases the item's width with 2 * 8-pixels and item's height with 2 * 4-pixels * [8,4] {array}, increases the item's width with 2 * 8-pixels and item's height with 2 * 4-pixels */ pad: [4,4], /** * @description The imageSize field defines the size of the item's image. * @type {(null|number|array)} Indicates the size of the item's image. * * The imageSize could be of one of the following types: * * {null}, Indicates that the item's image is displayed as it is (full-sized). * {number}, Specifies that the item's image is displayed into a square of giving size (same width and height). If 0 the item displays no image, if negative the item's image is stretched to giving square, else the item's picture is scaled to fit the giving rectangle. * {array}, Specifies an array of [aspect-width,aspect-height] type that defines the limits for width or/and height. The aspect-width and aspect-height define the width/height of the item's picture to scale or stretch to. * * @example * * null {null}, Indicates that the item's image is displayed as it is (full-sized). * 0 {number}, no image is displayed * 64 {number}, the image is scaled to fit a 64 x 64 rectangle * -64 {number}, the image is strected to a 64 x 64 rectangle * [32,64] {array}, scales the image to the largest ratio-rectangle (32 x 64) that fits the client * [-32,-64] {array}, stretches the image to a 32 x 64 rectangle */ imageSize: 18, /** * @description The imageAlign field defines the alignment of the image within the item. * @type {number} Indicates the alignment of the image within the item. as 0 (left, default), 1(right), 2(top) or 3(bottom). * * The imageAlign propery can be any of the following: * * 0, the image is on the left of the item's caption * 1, the image is on the right of the item's caption * 2, the image is on the top of the item's caption * 3, the image is on the bottom of the item's caption * * @example * * null {null}, the image is aligned left to the caption (default) * 1 {number}, the image is displayed to the right of the item's caption */ imageAlign: 0, /** * @description The allowActions field customizes the actions the user can perform once the user clicks or touches the control. * @type {string} Specifies the list and order of the actions the user can perform once the user clicks or touches the control. * * The format of allowActions field is: * * "action(shortcut,shortcut,...),action(shortcut,shortcut,...)..." * * where * * "action", indicates the name of the action. The "action" can have any of the following values: * * "chart-create", creates item-bar(s) by drag (not available if the control is read-only). The "chart-create" action allows flags such as: * [name=xxx], defines the name/type of the item-bar to create (for instance, [name=Task] creates a "Task" item-bar ) * [key=xxx], defines the key of the item-bar to create (for instance, [name=newBar] creates an item-bar with the key "newBar") * [shape=xxx], indicates the shape to display the create-bar element (for instance, [shape=Border] shows a border element, instead of bar's visual appearance) * [height=xxx], specifies the height of the create-bar element (for instance, [height=12] defines the height of the create-bar element to 12 pixels) * [empty], allows creating item-bar(s) on empty-items (new items are automatically added if "auto" flag is present) * [auto], the item-bar is automatically created and added once the drag operation ends (the "oncreatebar" event occurs as soon as the user creates a new item-bar by drag) * [zero], allows creating zero-length item-bars (for instance, if the "zero" flag is missing, the item-bar's minimum-length is defined by resize-unit scale and count) * "chart-move", moves or resizes item-bar(s) by drag (not available if the control is read-only, includes resizing the percent of the item-bar) * "chart-percent", resizes the percent of the item-bar(s) by drag (not available if the control is read-only, not required if the "chart-move" action is included) * "chart-link", links bars by drag (not available if the control is read-only). The "chart-link" action allows flags such as: * [toggle], the link is removed if the linked-bars has already a link between * "chart-zoom", scales and resizes the chart by drag (not available if the control is read-only). The "chart-zoom" action allows flags such as: * [chart], specifies that the "chart-zoom" is possible once the user clicks the chart * [level], specifies that the "chart-zoom" is possible once the user clicks the header of the chart. The unit from cursor gets zoomed as soon as the user double-clicks it (chart's header only) * [overview], specifies that the "chart-zoom" is possible once the user clicks the control's overview. * "chart-resize", resizes the chart's unit-width by drag (not available if the control is read-only). The "chart-resize" action allows flags such as: * [chart], specifies that the "chart-resize" is possible once the user clicks the chart * [level], specifies that the "chart-resize" is possible once the user clicks the header of the chart * "chart-fit", fits a portion of the chart by drag (not available if the control is read-only). The "chart-fit" action allows flags such as: * [chart], specifies that the "chart-fit" is possible once the user clicks the chart * [level], specifies that the "chart-fit" is possible once the user clicks the header of the chart * [overview], specifies that the "chart-fit" is possible once the user clicks the control's overview. * "chart-select", selects item-bars by drag. The "chart-select" action allows flags such as: * [item], specifies that the "chart-select" operation selects items by drag as well * [click-item], specifies that the "chart-select" operation selects items being clicked as well * "overview-selection-resize", resizes the chart using the left/right margins of the overview-selection (@since 2.4). The "overview-selection-resize" action allows flags such as: * [unsmooth], the chart is resized and moved unit by unit rather than pixel by pixel * "scroll", scrolls the control's content by drag. The "scroll" action allows flags such as: * [view], specifies that the "scroll" is possible once the user clicks the view * [header], specifies that the "scroll" is possible once the user clicks the header of the view * [chart], specifies that the "scroll" is possible once the user clicks the chart * [level], specifies that the "scroll" is possible once the user clicks the header of the chart * "item-drag", moves items by drag (not available if the control is read-only). The "item-drag" action allows flags such as: * [view], specifies that the "item-drag" operation once the user clicks the view * [chart], specifies that the "item-drag" is possible once the user clicks the chart * [position], The item can be dragged from a position to another, but not outside of its group. If your items are arranged as a flat list, no hierarchy, this option can be used to allow the user change the item's position at runtime by drag and drop. This option does not change the parent of any dragged item. * [keepIndent], The item can be dragged to any position or to any parent, while the dragging object keeps its indentation. This option can be used to allow the user change the item's position at runtime by drag and drop. In the same time, the parent's item could be changed but keeping the item's indentation. * [any], The item can be dragged to any position or to any parent, with no restriction (by default, if no flag is present). * "drag-drop", carries out the drag and drop of the item or item-bar (the item or item-bar can be dropped inside or outside of the control). The ExDrop(event, data) method of the target HTML element is invoked once the user drops the item/item-bar. The event parameter holds information about the mouse/touch event once the item/item-bar has been dropped. The data parameter holds information about the source-object that initiated the drag and drop operation, as an object of {object,source,client,shape} type. The "drag-drop" action allows flags such as: * [item], only items (list-section) can be dragged * [bar], only item-bars (chart-section) can be dragged * "select", selects items by drag * [view], specifies that the "select" operation once the user clicks the view * [chart], specifies that the "select" is possible once the user clicks the chart * * "zoom", zooms the control's content at dragging-point. * "fit", fits the drag-area into the control's client area. * "edit", edits the cell being clicked (not available if the control is read-only) * "item-resize", resize items by drag (available only if the control's readOnly property is false, and item's allowSizing field is true). The "item-resize" action allows flags such as: * [all], specifies that once an item gets resized all resizable-items get resized (changes the control's defaultItemHeight property). If the [all] flag is missing, only the item (or all selected items) get resized * "column-resize", resizes columns by drag (not available if the control is read-only). If "column-resize" action has no flags it indicates that resizing is possible in view and header as well (available only if the control's readOnly property is false, and the column's allowSizing field is true). The "column-resize" action allows flags such as: * [view], specifies that the "column-resize" operation is possible in the view * [header], specifies that the "column-resize" operation is possible in the header of the view * "column-drag", drags the column to a new position (not available if the control is read-only) * * "shortcut", defines the event's button or/and the modifier-keys that are required to perform the action. The "shortcut" is a combination of none, one or more of the following values: * * "Shift", indicates that the SHIFT key is pressed * "Ctrl" or "Control", indicates that the CTRL key is pressed * "Alt" or "Menu", indicates that the ALT key is pressed * "Meta" , indicates that the META key is pressed * "LButton", specifies that the mouse's left-button is pressed * "RButton", specifies that the mouse's right-button is pressed * "MButton", specifies that the mouse's middle/wheel-button is pressed * "Long", specifies that the action requires a "long" click or touch before it begins * "Double", specifies that the action requires a "double" click before it begins (this flag is available for non-dragable actions only such as "edit") * "+", indicates AND between values * * @example * * null {null}, indicates the control's default allowActions value * "" {string}, specifies that no operation is allowed once the user clicks or touches the control * "scroll" {string}, specifies that only "scroll" operation is allowed, no matter of the event's button or modifier-keys is pressed. * "column-resize[view](L5Button)" {string}, allows resizing the columns (inside the view), while pressing the mouse's left-button only * "column-drag(Shift+LButton),item-drag,scroll" {string}, indicates that dragging a column is possible only if the user presses the mouse's left-button while SHIFT key is pressed, and "item-drag" or "scroll" is possible no matter of the event's button or modifier-keys in this order (if one operation is not possible, the next one is performed). * */ allowActions: "overview-selection-resize,chart-fit(Shift+MButton,Ctrl+MButton,Alt+MButton),fit(Shift+MButton,Ctrl+MButton,Alt+MButton),chart-zoom(MButton),zoom(MButton),chart-select(Shift,Ctrl)[click-item],chart-link(Alt)[toggle],chart-move,chart-create(Alt)[name=Task][auto][empty],select(Shift,Ctrl),column-resize[header],column-drag,scroll", /** * @description The expandGlyphSize field specifies the size to show the item's expand/collapse glyphs * @type {number} Indicates the size to show the item's expand/collapse glyphs * @example * * 0 {number}, displays no node's expand/collapse glyphs * 24 {number}, specifies a size of 24x24 to display the node's expand/collapse glyphs */ expandGlyphSize: 16, /** * @description The crSize field specifies the size to show the check-box/radio-button * @type {number} Indicates the size to show the check-box/radio-button * @example * * 0 {number}, displays no check-box/radio-button * 24 {number}, specifies a size of 24x24 to display the check-box/radio-button */ crSize: 16, /** * @description The headerHeight field specifies the height to display the control's header (specifies the height the header's level, where columns header is being shown). The header displays the header of each visible-columns. * @type {number} Specifies the height to display the control's header * @example * * 0 {number}, hides the control's header * 24 {number}, indicates that the height of the control's header is 24 */ headerHeight: 24, /** * @description The headerVisible field specifies whether the control's header is visible or hidden. The header displays the header of each visible-columns. * @type {exontrol.Tree.HeaderVisibleEnum} Indicates whether the control's header is visible or hidden * * The exontrol.Tree.HeaderVisibleEnum type defines the following values: * * exHeaderHidden(0), the control's header is hidden * exHeaderVisible(-1), the control's header is visible * exHeaderVisibleExtendLevels(1), the control's header is visible, and each column's header is extended to cover all levels of the header * * @example * * false {boolean} or 0 {number}, hides the control's header * -1 {number} or exontrol.Tree.HeaderVisibleEnum.exHeaderVisible {number}, shows the control's header * true {boolean} or 1 {number}, shows the control's header (each column's header is extended to cover all levels of the header) */ headerVisible: exontrol.Tree.HeaderVisibleEnum.exHeaderVisibleExtendLevels, /** * @description The countLockedColumns field specifies the number of locked columns (a locked column is not scrollable, and it is fixed to the left side of the control) * @type {number} specifies the number of locked columns. The countLockedColumns field splits the view into lock and unlock parts. The lock-part hosts the columns that are fixed, and can not be scrolled. * @example * * 0 {number}, indicates that the control displays no locked-columns * 2 {number}, specifies that the first two-visible columns are locked (not scrollable and fixed to the left side of the control) */ countLockedColumns: 0, /** * @description The columnAutoResize field specifies whether the control will automatically size its visible columns to fit on the control's client width * @type {boolean} specifies whether the control will automatically size its visible columns to fit on the control's client width * @example * * false {boolean}, no effect * true {number}, all visible columns are proportionally resized to fit the control's width */ columnAutoResize: false, /** * @description The sortBarVisible field specifies whether the control's sortbar is visible or hidden. The sortbar displays the header of each sorted/grouped-columns. * @type {boolean} Indicates whether the control's sortbar is visible or hidden * @example * * false {boolean}, hides the control's sortbar * true {boolean}, shows the control's sortbar */ sortBarVisible: false, /** * @description The sortBarCaption field specifies the caption to be shown on the control's sortbar when it is empty. * @type {string} Defines the caption of the control's sortbar while it is empty * @example * * null {null}, the control's sortbar shows the default-caption * "Drag a column header here to drag by that column." {string}, changes the caption to be displayed on the control's sortbar while it is empty. */ sortBarCaption: "Drag a column header here to sort by that column.", /** * @description The singleSort field specifies whether the control supports single or multiple-columns sort * @type {boolean} Indicates whether the control supports single or multiple-columns sort * @example * * false {boolean}, specifies that the control supports one ore more sorted-columns * true {boolean}, the control supports single-column sorts only */ singleSort: false, /** * @description The sortOnClick field indicates whether the column gets sorted once the user clicks its header. * @type {exontrol.Tree.SortOnClickEnum} Specifies a numeric value that defines the action once the user clicks the column's header * * The exontrol.Tree.SortOnClickEnum type defines the following values: * * exNoSort(0), the column is not sorted when user clicks the column's header. * exDefaultSort(-1), The column gets sorted when user the clicks the column's header. * exUserSort(-1), The control displays the sort icons, but it doesn't sort the column (not supported) * * @example * * null {null}, specifies the control's default sort on click, equivalent of exDefaultSort * 0 {number}, no column gets sorted once the user clicks any column's header */ sortOnClick: exontrol.Tree.SortOnClickEnum.exDefaultSort, /** * @description The allowGroupBy field specifies whether the control supports group-by view * @type {boolean} Indicates whether the control supports group-by view * @example * * false {boolean}, no group-view is generated once the user drags a column to the control's group-by/sort bar * true {boolean}, the control supports group-by view */ allowGroupBy: false, /** * @description The groupByFormatCell field indicates the format of the cell to be displayed when the column gets grouped by * @type {string} Specifies the format of the cell to be displayed when the column gets grouped by * * The format-expression supports the following keywords: * * value, indicates the value of the current cell ( "value/2 format ``", displays half of the value using current regional format ) * %0, %1, %2, ... specifies the value of the cell in the column with the index 0, 1 2, ... ( "currency(%0 + %1)", adds the value of first and second cell and displays it as a currency ) * %C0, %C1, %C2, ... specifies the caption of the cell, or the string the cell displays in the column with the index 0, 1 2, ... ( "%C0 + %C1", concatenates the caption of first and second cell ) * %CD0, %CD1, %CD2, ... specifies the cell's user-date in the column with the index 0, 1 2, ... ( "%CD0 ? value : ``", displays the cell's value only if the cell's data is not empty ) * %CS0, %CS1, %CS2, ... specifies the cell's state in the column with the index 0, 1 2, ... ( "(%CS0 ? `` : ``) + value", displays the cell's value in bold only if the first cell is checked ) * * The format-expression supports the following unary-operators: * * exp(``), checks whether the item is expanded or collapsed ( "(exp(``) ? `` : ``) + value", shows expanded-items in bold ) * get(`aggregate(list,direction,formula)`), summarizes the cell based on "aggregate(list,direction,formula)" syntax, where: * * aggregate, must be one of the following: * * sum, performs addition of values * min, retrieves the minimum value * max, retrieves the maximum value * count, counts the number of items * avg, calculates the average of values * std, gets standard-deviation of numbers * * list, must be one of the following: * * a number expression that specifies the index of the item being referred * all, indicates all items, so the formula is being applied to all items. The direction has no effect * current, refers the current item * parent, refers to the parent item * root, refers to the root item (the root item has no parent items) * * direction, must be one of the following: * * dir, collects only direct descendents (child-items) * rec, collects recursivelly the leaf descendents ( leaf items ). A leaf item is an item with no child items * all, collects all descendents * * Currently, the following items are excluded by aggregate functions: * * not-sortable items. The SortableItem property specifies whether the item can be sorted ( a sortable item can change its position after sorting, while a not-sortable item keeps its position after sorting. * not-selectable items. The SelectableItem property specifies whether the user can selects/focus the specified item. * divider items. The ItemDivider property specifies whether the item displays a single cell, instead displaying whole cells. * * In conclusion, aggregate functions counts ONLY items that are sortable, selectable and not a divider-item. * * For instance: * * "get(`count(current,dir,1)`)", gets the count of child-items * "get(`count(current,all,1)`)", gets the count of all child-items (implies recursively child items) * "get(`count(current,rec,1)`)", counts the number of leaf items ( a leaf item is an item with no child items ). * "get(`sum(current,dir,%1 ? 1 : 0)`)", counts the number of child-items that have not-empty cells within the second-column * "get(`sum(current,dir,value)`)", gets the total of values of child-items (direct descendent) within the same column * "get(`sum(all,rec,value)`)", gets the total of values of leaf-items within the same column * "get(`sum(parent,dir,dbl(%1) + dbl(%2))`)", gets the addition of all cells in the second (%1) and third (%2) column that are directly descendent of the parent item (sibling). * * The format-expression supports the following binary-operators: * * 0 index `format`, gets the index of the item (0-based). The first added item has the index 0, the second added item has the index 1, and so on. The index of the item remains the same even if the order of the items is changed by sorting or grouping ( "1 index ``", gets the index of the item starting from 1 ) * 0 rindex `delimiter|format|format|...`, returns the recursive-index of the item ("1 rindex `.|A-Z`", returns values as A, A.1, A.2, B, ...) * 0 pos `format`, returns the relative position of the item (the position within the parent's children collection) ( "1 pos ``", returns the position of the item (1-based) within the parent's child items collection ) * 0 rpos `delimiter|format|format|...`, returns the recursive relative-position of the item (the position within the parent's children collection) ( "1 rpos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * 0 opos `format`, returns the relative old position of the item (the position within the parent's children collection) ( "1 opos ``", returns the position of the item (1-based) within the parent's child items collection ) * 0 ropos `delimiter|format|format|...`, returns the recursive relative-old-position of the item (the position within the parent's children collection) ( "1 ropos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * 0 apos `format`, returns the absolute position of the item (the position from the first visible item) ( "1 apos ``", gets absolute position of the item ) * 0 rapos `delimiter|format|format|...`, returns the recursive absolute-position of the item (the position from the first visible item) ( "1 rapos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * * where: * * `delimiter`, is a character to separated recursive-operators such as "rindex", "rpos", "ropos" and "rapos" * `format`, is a set of characters to be used for specifying the index * * @example * * "" {string}, the default group-by value gets displayed once the column gets grouped by * "upper(value)" {string}, the default group-by value (in upper case) gets displayed once the column gets grouped by * "value + ` ` + get(`count(current,rec,1)`)" {string}, the default group-by value plus the count of items within the group gets displayed once the column gets grouped by */ groupByFormatCell: "(exp(``) ? `` : ``) + value + (0:=get(`count(current,rec,1)`) ? (` (` + =:0 + `)`) : ``)", /** * @description The columnsFloatBarVisible field indicates whether the columns float bar is visible or hidden. * @type {exontrol.Tree.ColumnsFloatBarVisibleEnum} Specifies the type of columns the control's float bar displays when it is visible. * * The exontrol.Tree.ColumnsFloatBarVisibleEnum type supports the following values: * * exColumnsFloatBarHidden(0), the Columns float bar is hidden * exColumnsFloatBarVisibleIncludeGroupByColumns(1), the Columns float bar is visible, and it displays dragable (AllowDragging property) and groupable (AllowGroupBy property) columns of the control. * exColumnsFloatBarVisibleIncludeCheckColumns(2), the Columns float bar is visible, and it displays dragable (AllowDragging property), and a check-box for each Column to update its Visible property (shor or hide the column). * exColumnsFloatBarVisibleIncludeHiddenColumns(4), the Columns float bar is visible, and it displays dragable (AllowDragging property) and hidden (Visible property) columns of the control. * exColumnsFloatBarFloat(0x100), the columns floatbar is shows as floated. This flag can be combined with exColumnsFloatBarVisibleIncludeHiddenColumns, exColumnsFloatBarVisibleIncludeCheckColumns or exColumnsFloatBarVisibleIncludeGroupByColumns type. * * @example * * false {boolean} or 0 {number}, hides the columns float bar * true {boolean}, 1 or exontrol.Tree.ColumnsFloatBarVisibleEnum.exColumnsFloatBarVisibleIncludeGroupByColumns {number}, the columns float bar is visible and displays groupable columns */ columnsFloatBarVisible: exontrol.Tree.ColumnsFloatBarVisibleEnum.exColumnsFloatBarHidden, /** * @description The columnsFloatBarSortOrder field specifies the sort order to show the columns within the control's columns float panel * @type {number} Specifies the columns sort-order as listed: * * 0 {number}, shows columns unsorted * 1 {number}, shows columns in ascending order (by name) * 2 {number}, shows columns in descending order (by name) * * @example * * 0 {number}, shows columns unsorted * 1 {number}, shows columns in ascending order (by name) */ columnsFloatBarSortOrder: 0, /** * @description The columnsFloatBarCaption field defines the caption to display on the columns float bar. * @type {string} Specifies the caption of the columns float bar * @example * * "" {string}, hides the caption of the columns float bar * "Columns" {string}, displays in bold the caption of the columns float bar */ columnsFloatBarCaption: "Columns", /** * @description The filterInclude field specifies the items to include once the control's filter is applied. * @type {exontrol.Tree.FilterIncludeEnum} Specifies the items to include once the control's filter is applied. * * The exontrol.Tree.FilterIncludeEnum type supports the following flags: * * exItemsWithoutChilds(0), items (and parent-items) that match the filter are shown (no child-items are included) * exItemsWithChilds(1), items (parent and child-items) that match the filter are shown * exRootsWithoutChilds(2), only root-items (excludes child-items) that match the filter are displayed * exRootsWithChilds(3), root-items (and child-items) that match the filter are displayed * exMatchingItemsOnly(4), shows only the items that matches the filter (no parent or child-items are included) * exMatchIncludeParent(0xF0), specifies that the item matches the filter if any of its parent-item matches the filter. The exMatchIncludeParent flag can be combined with any other value * * @example * * null {null}, specifies the control's default FilterInclude property (exontrol.Tree.FilterIncludeEnum.exItemsWithoutChilds), so items (and parent-items) that match the filter are shown (no child-items are included) * 4 or exontrol.Tree.FilterIncludeEnum.exMatchingItemsOnly {number}, shows only the items that matches the filter (no parent or child-items are included) * 0xF4 or exontrol.Tree.FilterIncludeEnum.exMatchingItemsOnly | exontrol.Tree.FilterIncludeEnum.exMatchIncludeParent {number}, shows the items (including the child-items) that match the filter */ filterInclude: exontrol.Tree.FilterIncludeEnum.exItemsWithoutChilds, /** * @description The filterBarHeight field specifies the height to display the control's filter-bar * @type {number} Specifies the height to display the control's filter-bar * @example * * 0 {number}, hides the control's filter-bar * 24 {number}, indicates that the height of the control's filter-bar is 24 */ filterBarHeight: 24, /** * @description The filterBarVisible field indicates whether the control's filter-bar is visible or hidden * @type {exontrol.Tree.FilterBarVisibleEnum} Specifies whether the control's filter-bar is visible or hidden * * The exontrol.Tree.FilterBarVisibleEnum type supports the following flags: * * exFilterBarHidden(0), indicates that the control's filter-bar is visible only if the control has a filter applied (use the filterBarHeight on 0 to effectively hides the control's filter-bar) * exFilterBarPromptVisible(1), specifies that the control's filter-bar displays the filter prompt * exFilterBarVisible(2), forces the control's filter-bar to be shown, no matter if any filter is applied * exFilterBarCaptionVisible(4), forces the control's filter-bar to display the FilterBarCaption property. * exFilterBarSingleLine(16), specifies that the caption on the control's filter bar is displayed on a single line. The exFilterBarSingleLine flag , specifies that the filter bar's caption is shown on a single line, so
HTML tag or \r\n are not handled. By default, the control's filter description applies word wrapping. Can be combined to exFilterBarCompact to display a single-line filter bar. If missing, the caption on the control's filter bar is displayed on multiple lines. You can change the height of the control's filter bar using the FilterBarHeight property. * exFilterBarToggle(256), specifies that the user can close the control's filter bar ( removes the control's filter ) by clicking the close button of the filter bar or by pressing the CTRL + F, while the control's filter bar is visible. If no filter bar is displayed, the user can display the control's filter bar by pressing the CTRL + F key. While the control's filter bar is visible the user can navigate though the list or control's filter bar using the ALT + Up/Down keys. If missing, the control's filter bar is always shown if any of the following flags is present exFilterBarPromptVisible, exFilterBarVisible, exFilterBarCaptionVisible. * exFilterBarShowCloseIfRequired(512), indicates that the close button of the control's filter bar is displayed only if the control has any currently filter applied. * exFilterBarShowCloseOnRight(1024), specifies that the close button of the control's filter bar should be displayed on the right side. * exFilterBarCompact(2048), compacts the control's filter bar, so the filter-prompt will be displayed to the left, while the control's filter bar caption will be displayed to the right. This flag has effect only if combined with the exFilterBarPromptVisible. This flag can be combined with the exFilterBarSingleLine flag, so all filter bar will be displayed compact and on a single line. * exFilterBarShort(4096), specifies that the control's filter bar is displayed only on the default-view (has effect if the control displays multiple views). * * @example * * 0 or exontrol.Tree.FilterBarVisibleEnum.exFilterBarHidden {number}, (default) the control's filter-bar is visible only if there is a filter applied. * 1 or exontrol.Tree.FilterBarVisibleEnum.exFilterBarPromptVisible {number}, the control's filter-bar is visible and shows the control's filter-prompt */ filterBarVisible: exontrol.Tree.FilterBarVisibleEnum.exFilterBarHidden, /** * @description The filterBarCaption field customizes the caption shown within the control's filter-bar * @type {string} Defines the caption (supports expressions and ex-HTML) to show within the control's filter-bar. * * The filterBarCaption expresasion supports the following keywords, constants, operators and functions: * * "value" or "current", returns the current filter as a string. At runtime the value may return a string such as "[EmployeeID] = '4| 5| 6' and [ShipVia] = 1", so the control automatically applies HTML format, which you can change it. For instance, "upper(value)" displays the caption in uppercase or "value replace `` with `` replace `` with `
`" displays the column's name with a different foreground color. * "itemcount", returns the total number of items as indicated by ItemCount property. At runtime the itemcount is a positive integer that indicates the count of all items. For instance, "value + `Total: ` + itemcount" includes in the filter bar the number of items aligned to the right. * "visibleitemcount", returns the number of visible items as indicated by VisibleItemCount property. At runtime, the visibleitemcount is a positive integer if no filter is applied, and negative if a filter is applied. If positive, it indicates the number of visible items. The visible items does not include child items of a collapsed item. If negative, a filter is applied, and the absolute value minus one, indicates the number of visible items after filter is applied. 0 indicates no visible items, while -1 indicates that a filter is applied, but no item matches the filter criteria. For instance, "value + `` + ( visibleitemcount < 0 ? ( `Result: ` + ( abs(visibleitemcount) - 1 ) ) : ( `Visible: ` + visibleitemcount ) )" includes "Visible: " plus number of visible items, if no filter is applied or "Result: " plus number of visible items, if filter is applied, aligned to the right * "matchitemcount", returns the number of items that match the filter as indicated by MatchItemCount property. At runtime, the matchitemcount is a positive integer if no filter is applied, and negative if a filter is applied. If positive, it indicates the number of items within the control (ItemCount property). If negative, a filter is applied, and the absolute value minus one, indicates the number of matching items after filter is applied. A matching item includes its parent items, if the control's FilterInclude property allows including child items. 0 indicates no visible items, while -1 indicates that a filter is applied, but no item matches the filter criteria. For instance, "value + `` + ( matchitemcount < 0 ? ( `Result: ` + ( abs(matchitemcount) - 1 ) ) : ( `Visible: ` + matchitemcount ) )" includes "Visible: " plus number of visible items, if no filter is applied or "Result: " plus number of macthing items, if filter is applied, aligned to the right * "leafitemcount", returns the number of leaf-items. A leaf item is an item with no child items. At runtime, the leafitemcount is a positive number that computes the number of leaf-items ( expanded or collapsed ). For instance, the "value + `` + leafitemcount" displays the number of leaf-items aligned to the right with a different font and foreground color. * "promptpattern", returns the pattern in the filter bar's prompt, as a string. The FilterBarPromptPattern specifies the pattern for the filter prompt. The control's filter bar prompt is visible, if the exFilterBarPromptVisible flag is included in the FilterBarPromptVisible property. * "available", returns the list of columns that are not currently part of the control's filter, but are available to be filtered. A column is available to be filtered, if the DisplayFilterButton property of the Column object, is True. At runtime, the available keyword may return a string such as "[OrderDate] [RequiredDate] [ShippedDate] [ShipCountry] [Select]
", so the control automatically applies HTML format, which you can change it. For instance, "value + ` ` + available", displays the current filter, including all available columns to be filtered. For instance, the "value + `` + available replace `C0C0C0` with `FF0000`" displays the available columns aligned to the right with a different foreground color. * "allui", returns the list of columns that are part of the current filter and available columns to be filtered. A column is available to be filtered, if the DisplayFilterButton property of the Column object, is True. At runtime, the allui keyword may return a string such as "[EmployeeID] = '4| 5| 6' [OrderDate]
[RequiredDate]
[ShippedDate]
[ShipVia] = 1 [ShipCountry] [Select]", so the control automatically applies HTML format, which you can change it. For instance, "allui", displays the current filter, including all available columns to be filtered. For instance, the "((allui + `` + ( matchitemcount < 0 ? ( ( len(allui) ? `` : `` ) + `` + abs(matchitemcount + 1) + ` result(s)` ) : (``+ itemcount + ` item(s)`) )) replace `[` with ` ` replace `]` with ` ` replace `[` with ` ` replace `]` with ` ` )" displays all available columns to be filtered with different background/foreground colors including the number of items/results * "all", returns the list of all columns ( visible or hidden ) no matter if the DisplayFilterButton property is True or False. At runtime, the all keyword may return a string such as "[OrderID] [EmployeeID] = '4| 5| 6' [OrderDate] [RequiredDate]", so the control automatically applies HTML format, which you can change it. For instance, "all", displays the current filter, including all other columns. For instance, the "((all + `` + ( matchitemcount < 0 ? ( ( len(allui) ? `` : `` ) + `` + abs(matchitemcount + 1) + ` result(s)` ) : (``+ itemcount + ` item(s)`) )) replace `[` with ` ` replace `]` with ` ` replace `[` with ` ` replace `]` with ` ` )" displays all columns with different background/foreground colors including the number of items/results * * @example * * "" {string}, displays no filter bar while no filter is applied, else it displays the filter as default * "no filter" {string}, shows no filter caption all the time * "allui" {string}, displays all available columns (column's DisplayFilterButton property is true) * "value replace ` and ` with ` and ` replace `|` with ` or ` replace ` ` with ` `" {string}, replaces the AND and | values * "value replace `[` with ` ` replace `]` with ` `" {string}, highlights the columns being filtered with a different background/foreground colors. * */ //filterBarCaption: "(( ( current replace `[` with ` ` replace `]` with ` ` ) + ` ` + ( available replace `[` with ` ` replace `]` with ` ` replace `` with `` replace `` with `` ) + `` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `` + abs(matchitemcount + 1) + ` result(s)` ) : (``+ itemcount + ` item(s)`) )))", filterBarCaption: "(( ( current replace `[` with ` ` replace `]` with ` ` ) + `` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `` + abs(matchitemcount + 1) + ` result(s)` ) : (``+ itemcount + ` item(s)`) )))", /** * @description The filterBarPrompt field specifies the caption to show while the pattern of the filter-prompt is empty * @type {string} Defines the caption (supports ex-HTML) to show while the pattern of the filter-prompt is empty * @example * * "" {string}, displays no caption (while the pattern of the filter-prompt is empty) * "filter..." {string}, displays the message "filter..." in italics */ filterBarPrompt: "Start Filter...", /** * @description The filterBarPromptPattern field defines the filter-pattern for the control's filter-prompt * @type {string} Defines the pattern for the control's filter-prompt. * * Based on the filterBarPromptType field the filterBarPromptPattern field defines how the pattern filters for items as explained below: * * filters for items that includes all of the sequences within the filter-pattern (exFilterPromptContainsAll) * filters for items that includes any of the sequences within the filter-pattern (exFilterPromptContainsAny) * filters for items that starts with any of the sequences within the filter-pattern (exFilterPromptStartWith) * filters for items that ends with any of the sequences within the filter-pattern (exFilterPromptEndWith) * filters for items that matches the filter-pattern, which may includes wild-characters such as ?, * or # (exFilterPromptPattern) * * @example * * "" {string}, clears the pattern of the filter-prompt * "A" {string}, filters for items includes "A" (exFilterPromptContainsAll) * "A* *B" {string}, filters for items start starts with "A" or ends with "B" (exFilterPromptPattern) */ filterBarPromptPattern: "", /** * @description The filterBarPromptType field defines the type of control's filter-prompt (filterBarPromptPattern field) * @type {exontrol.Tree.FilterPromptEnum} Defines the type of control's filter-prompt. * * The exontrol.Tree.FilterPromptEnum type supports the following flags: * * exFilterPromptContainsAll(1), the list includes the items that contains all specified sequences in the filter. Can be combined with exFilterPromptCaseSensitive, exFilterPromptStartWords, exFilterPromptEndWords or exFilterPromptWords * exFilterPromptContainsAny(2), the list includes the items that contains any of specified sequences in the filter. Can be combined with exFilterPromptCaseSensitive, exFilterPromptStartWords, exFilterPromptEndWords or exFilterPromptWords * exFilterPromptStartWith(3), the list includes the items that starts with any specified sequences in the filter. Can be combined with exFilterPromptCaseSensitive, exFilterPromptStartWords, exFilterPromptEndWords or exFilterPromptWords * exFilterPromptEndWith(4), the list includes the items that ends with any specified sequences in the filter. Can be combined with exFilterPromptCaseSensitive, exFilterPromptStartWords, exFilterPromptEndWords or exFilterPromptWords * exFilterPromptPattern(16), the filter indicates a pattern that may include wild characters to be used to filter the items in the list. Can be combined with exFilterPromptCaseSensitive. The filterBarPromptPattern field may include wild characters as follows: * * '?' for any single character * '*' for zero or more occurrences of any character * '#' for any digit character * ' ' space delimits the patterns inside the filter * * exFilterPromptCaseSensitive(0x0100), filtering the list is case sensitive. Can be combined with exFilterPromptContainsAll, exFilterPromptContainsAny, exFilterPromptStartWith, exFilterPromptEndWith or exFilterPromptPattern. * exFilterPromptStartWords(0x1200), the list includes the items that starts with specified words, in any position. Can be combined with exFilterPromptContainsAll, exFilterPromptContainsAny, exFilterPromptStartWith or exFilterPromptEndWith. * exFilterPromptEndWords(0x2200), the list includes the items that ends with specified words, in any position. Can be combined with exFilterPromptContainsAll, exFilterPromptContainsAny, exFilterPromptStartWith or exFilterPromptEndWith. * exFilterPromptWords(0x3200), the filter indicates a list of words. Can be combined with exFilterPromptContainsAll, exFilterPromptContainsAny, exFilterPromptStartWith or exFilterPromptEndWith. * * @example * * 2 or exontrol.Tree.FilterPromptEnum.exFilterPromptContainsAny {number}, filters for items that contains any sequences in the filter * 0x3202 or exontrol.Tree.FilterPromptEnum.exFilterPromptContainsAny | exontrol.Tree.FilterPromptEnum.exFilterPromptWords {number}, filters for items that contains any words in the filter * 0x3203 or exontrol.Tree.FilterPromptEnum.exFilterPromptStartWith | exontrol.Tree.FilterPromptEnum.exFilterPromptWords {number}, filters for items that starts with any word within the filter */ filterBarPromptType: exontrol.Tree.FilterPromptEnum.exFilterPromptContainsAll, /** * @description The filterBarPromptColumns field defines the list of columns the pattern of filter-prompt is applying to * @type {any} Specifies the list of columns the pattern of filter-prompt is applying to (as explained below): * * null {null} or -1 {number}, all columns (visible or hidden) * {number}, specifies the index of the column * {string}, specifies a list of index/identifier/key/caption/plain-caption, separated by comma character * {exontrol.Tree.Column}, specifies the column reference * * @example * * null {null}, the pattern of filter-prompt is applying to all columns (visible or hidden) * 1 {number}, the pattern of filter-prompt is applying to a single-column only (the column wiht the index 1) * "ID,Name" {string}, the pattern of filter-prompt is applying to columns "ID" and "Name" only */ filterBarPromptColumns: -1, /** * @description The drawGridLines field specifies whether the control's grid-lines are shown or hidden. * @type {exontrol.Tree.GridLinesEnum} Shows or hides the control's grid-lines. The gridLines field defines the color, width and style of the control's grid-lines. * * The exontrol.Tree.GridLinesEnum type supports the following flags: * * exNoLines(0), no grid lines * exAllLines(-1), shows all vertical and horizontal grid lines * exRowLines(-2), shows grid lines for existing rows only * exHLines(1), shows only the horizontal grid lines * exVLines(2), shows only the vertical grid lines * * @example * * 0 or exontrol.Tree.GridLinesEnum.exNoLines {number}, hides the grid-lines (default) * -1 or exontrol.Tree.GridLinesEnum.exAllLines {number}, shows all vertical and horizontal grid lines */ drawGridLines: exontrol.Tree.GridLinesEnum.exNoLines, /** * @description The gridLines field defines the color, width and style of the control's grid-lines. * @type {object} Defines the color, width and style of the control's grid-lines. * * The gridLines object includes any of the following: * * width {number}, specifies the line's width or size (1 by default) * color {string}, indicates the line's color (partial-black by default) * style {array}, specifies the dash pattern to show the lines (dotted by default) */ gridLines: { /** * @description The width field defines the size/width of the line. * @type {number} * @example * * null {null}, indicates line of 1-pixel wide * 2 {number}, indicates line of 2-pixels wide */ width: undefined, /** * @description The color field specifies the color to show the line * @type {string} * @example * * null {null}, indicates a black line * "transparent" {string}, specifies a transparent line * "red" {string}, specifies a red line * "#00FF00" {string}, specifies a green line * "rgba(255,0,0,0.5)" {string}, indicates 50% red line */ color: "rgb(196,196,196)", /** * @description The style field defines the style of the line. An Array of numbers which specify distances to alternately draw a line and a gap. If the number of elements in the array is odd, the elements of the array get copied and concatenated. * @type {array} * @example * * null {null} or [] {array}, defines solid grid-lines * 2 {number}, becomes [2, 2, ...] * [5, 15, 25] {array}, becomes [5, 15, 25, 5, 15, 25, ...] */ style: 1 }, /** * @description The defaultItemHeight field defines the item's default height * @type {number} Indicates the item's default height * @example * * null {null}, specifies that the item's height is 24 (by default) * 18 {number}, changes the item's default height to 18 */ defaultItemHeight: 24, /** * @description The treeColumnIndex field specifies the index or identifier/key/caption of the column that displays the hierarchy. * @type {number} Indicates the index or identifier/key/caption of the column that displays the hierarchy * @example * * null {null}, no column displays the hierarchy. * 0 {number}, the column with the index 0, displays the hierarchy (displays the expand/collapse glyphs) * "xxx" {string}, the column with the key or plain-caption on "xxx" displays the hierarchy. */ treeColumnIndex: 0, /** * @description The expandOnDblClick field specifies whether the item is expanded or collapsed once the user double-clicks the item * @type {boolean} Specifies whether the item is expanded or collapsed once the user double-clicks the item * @example * * false {boolean}, the item is not expanded or collapsed once the user double-clicks it * true {boolean}, the item is expanded or collapsed once the user double-clicks it */ expandOnDblClick: true, /** * @description The itemAllowSizing field specifies whether all or none of the items are resizable or fixed * @type {boolean} Specifies whether all or none of the items are resizable or fixed * @example * * false {boolean}, none of the items are resizable (unless the item's allowSizing field is true) * true {boolean}, all of the items are resizable (unless the item's allowSizing field is false) */ itemAllowSizing: false, /** * @description The ensureOnSort field ensures that the selection (including the parent-items) fits the view's client-area once the user sorts or groups a column * @type {boolean} Specifies whether the selection fits the view's client-area once the user sorts or groups a column * @example * * false {boolean}, no effect * true {boolean}, scrolls the view, so the selection (including the parent-items) fits the view's client area */ ensureOnSort: true, /** * @description The showLockedItems field indicates whether the locked/fixed items are visible or hidden * @type {boolean} Specifies whether the locked/fixed items are visible or hidden * @example * * false {boolean}, the control's locked/fixed items are not shown * true {boolean}, the control's locked/fixed items are visible */ showLockedItems: true, /** * @description The allowDrop field specifies whether the user can drag and drop local files into the control. * @type {boolean} * @example * * false {boolean}, no file can be drop into the control * true {boolean}, the user can drag and drop files into the control */ allowDrop: true, /** * @description The onErrorChooseFile field specifies whether the control displays an input-file to let user choose a local filte to import, as soon as an error occurs * @type {boolean} Specifies whether the control displays an input-file to let user choose a local filte to import, as soon as an error occurs * @example * * false {boolean}, no input-file is displayed as soon an error occurs * true {boolean}, the control displays an input-file to let user choose a local filte to import, as soon as an error occurs */ onErrorChooseFile: true, /** * @description The scrollPos field defines the horizontal and vertical scroll-position of the control's default view. * @type {object} Specifies an object of {x,y} type that defines the control's horizontal and vertical scroll-position as explained: * * x {number}, indicates the horizontal scroll-position * y {number}, indicates the vertical scroll-position * * @example * * {x: 100} {object}, scrolls horizontally to position 100 * {x: 100, y: 50} {object}, scrolls horizontally to position 100, and vertically to 50 */ scrollPos: { /** * @description The x field defines the horizontal scroll-position of the control's default view. * @type {number} Indicates the horizontal scroll-position of the control's default view. * * @example * * 100 {number}, scrolls horizontally to position 100 * */ x: undefined, /** * @description The y field defines the vertical scroll-position of the control's default view. * @type {number} Indicates the vertical scroll-position of the control's default view. * * @example * * 50 {number}, scrolls vertically to position 50 * */ y: undefined }, /** * @description The toolTipDelay field specifies how long the mouse pointer must point to an object before the tool tip appears * @type {number} Specifies how long the mouse pointer must point to an object before the tool tip appears * @example * * 0 {number}, the tooltip is shown "immediately" * 128 {number}, the tooltip is displayed in 128 ms. */ toolTipDelay: 500, /** * @description The toolTipPopDelay field specifies the period in ms of time the tool top remains visible if the mouse pointer is stationary within a control * @type {number} Specifies the period in ms of time the tool top remains visible if the mouse pointer is stationary within a control * @example * * 0 {number}, no tooltip is shown for any object (disabled) * -1 {number}, the tooltip stays indefinitely (negative) * 1000 {number}, the tooltip is visible for 1 second */ toolTipPopDelay: 5000, /** * @description The toolTipWidth field indicates the max-width of the control's tooltip (in pixels) * @type {number} Specifies the width of the control's tooltip * @example * * 0 {number}, no tooltip is shown for any object (disabled) * -1 {number}, the tooltip's content is displayed on a single line (without limit the width of it) * 300 {number}, the tooltip's max-width is 300 pixels */ toolTipWidth: -1, /** * @description The data field defines the source the control imports data from, as one of the following: * * A String expression that specifies the URL to a CSV or XML file (contains no eof, eor or str) * A String expression in CSV format * An object that includes the "files" member of FileList type (a local file) * An array of data to load * * @type {any} * @example * * "xml/datasource.xml" {string}, imports data from datasource.xml file */ data: null, /** * @description The hasLines field defines the color, width and style of the control's hierarchy-lines. * @type {object} Defines the color, width and style of the control's hierarchy-lines. * * The hasLines object includes any of the following: * * width {number}, specifies the line's width or size (1 by default) * color {string}, indicates the line's color (partial-black by default) * style {array}, specifies the dash pattern to show the lines (dotted by default) * cap {("butt"|"round"|"square")}, determines the shape used to draw the end points of lines ("butt", the ends of lines are squared off at the endpoints by default) * join {("bevel"|"round"|"miter")}, determines the shape used to join two line segments where they meet ("miter", connected segments are joined by extending their outside edges to connect at a single point, with the effect of filling an additional lozenge-shaped area. by default) * */ hasLines: { /** * @description The width field defines the size/width of the line. * @type {number} Specifies the size/width of the line. * @example * * null {null}, indicates line of 1-pixel wide * 2 {number}, indicates line of 2-pixels wide */ width: undefined, /** * @description The color field specifies the color to show the line * @type {string} Defines the color of the line as a CSS color format * @example * * null {null}, indicates a black line * "transparent" {string}, specifies a transparent line * "red" {string}, specifies a red line * "#00FF00" {string}, specifies a green line * "rgba(255,0,0,0.5)" {string}, indicates 50% red line */ color: "rgb(128,128,128)", /** * @description The style field defines the style of the line * @type {array} An Array of numbers which specify distances to alternately draw a line and a gap. If the number of elements in the array is odd, the elements of the array get copied and concatenated. * @example * * null {null} or [] {array}, defines solid grid-lines * 2 {number}, becomes [2, 2, ...] * [5, 15, 25] {array}, becomes [5, 15, 25, 5, 15, 25, ...] */ style: null, /** * @description The cap field determines the shape used to draw the end points of lines. The cap field supports the following values: * * "butt" {string}, the ends of lines are squared off at the endpoints * "round" {string}, the ends of lines are rounded * "square" {string}, the ends of lines are squared off by adding a box with an equal width and half the height of the line's thickness * * @type {("butt"|"round"|"square")} * @example * * null {null}, "butt", the ends of lines are squared off at the endpoints by default * "round" {string}, The ends of lines are rounded */ cap: undefined, /** * @description The join field determines the shape used to join two line segments where they meet. * * "bevel" {string}, fills an additional triangular area between the common endpoint of connected segments, and the separate outside rectangular corners of each segment * "round" {string}, rounds off the corners of a shape by filling an additional sector of disc centered at the common endpoint of connected segments. The radius for these rounded corners is equal to the line width * "miter" {string}, connected segments are joined by extending their outside edges to connect at a single point, with the effect of filling an additional lozenge-shaped area * * @type {("bevel"|"round"|"miter")} * @example * * null {null}, ("miter", connected segments are joined by extending their outside edges to connect at a single point, with the effect of filling an additional lozenge-shaped area, by default * "round" {string}, rounds off the corners of a shape by filling an additional sector of disc centered at the common endpoint of connected segments. The radius for these rounded corners is equal to the line width */ join: undefined, }, /** * @description The hasButtons field shows or hides the expand/collapse glyphs (+/- buttons to expand-collapse the item) * @type {boolean} * @example * * null {null} or true {boolean}, shows the expand/collapse glyphs * false {boolean}, hides the expand/collapse glyphs * */ hasButtons: true, /** * @description The linesAtRoot field specifies how the control links the root items. * * The exontrol.Tree.LinesAtRootEnum type defines the following values: * * exNoLinesAtRoot(0), no lines at root items * exLinesAtRoot(-1), the control links the root items * exGroupLinesAtRoot(1), the control shows no links between roots, and divides them as being in the same group * exGroupLines(2), the lines between root items are no shown, and the links show the items being included in the group * exGroupLinesInside(3), the lines between root items are no shown, and the links are shown between child only * exGroupLinesInsideLeaf(4), the lines between root items are no shown, and the links are shown for first and last visible child item * exGroupLinesOutside(5), the lines between root items are no shown, and the links are shown for first and last visible child item. A parent item that contains flat child items only, does not indent the child part. By a flat child we mean an item that does not contain any child item * * @type {exontrol.Tree.LinesAtRootEnum} * @example * * 0 or exontrol.Tree.LinesAtRootEnum.exNoLinesAtRoot {number}, no lines at root items * -1 or exontrol.Tree.LinesAtRootEnum.exLinesAtRoot {number}, the control links the root items */ linesAtRoot: exontrol.Tree.LinesAtRootEnum.exNoLinesAtRoot, /** * @description The selection field defines the control's selection, as one of the following: * * value {null}, clears the entire selection (unselect all) * value {number}, selects an item giving index within the items collection * value {string}, selects an item giving its identifier/key * value {Item}, selects an item giving its reference * value {Items}, selects all items within the control * value {array}, specifies an array of [type] type, where type could be any number, string or Item type. * * @type {any} * @example * * null {null}, clears the entire selection * 0 {number}, selects the first-item * [0,"id"] {number}, selects the first-item and the item with the identifier/key "id" * * @since 1.8 */ selection: null, /** * @description The background object defines display options to show different parts of the control. * @type {BackgroundOptions} * @since 2.3 */ background: null, /** * @description The chart field holds options to apply on the control's chart * @type {object} Specifies the options to apply on the control's chart */ chart: { /** * @description The paneWidthLeft field specifies the width of the control's left-pane (items) * @type {number} Indicates the width of the control's left-pane (items) * * @example * * 0 {number}, hides the control's left-pane (items) * 300 {number}, changes the width of control's left-pane (items) to 300 * */ paneWidthLeft: null, /** * @description The paneWidthRight field specifies the width of the control's right-pane (chart) * @type {number} Indicates the width of the control's right-pane (chart) * * @example * * 0 {number}, hides the control's right-pane (chart) * 300 {number}, changes the width of control's right-pane (chart) to 300 * */ paneWidthRight: 320, /** * @description The levelCount field specifies the number of levels in the chart's header * @type {number} Indicates the number of levels in the chart's header * * @example * * 1 {number}, defines a single-level header * 2 {number}, specifies that the chart's header displays 2-levels * */ levelCount: 2, /** * @description The labels field holds predefined format to display the level's label for each time-unit. * @type {object} Specifies the predefined format to display the level's label for each time-unit as an object of {year,halfYear,quarterYear,month,thirdMonth,week,day,hour,minute,second} type as explained: * * year {string}, specifies the predefined format of the level when it displays years * halfYear {string}, specifies the predefined format of the level when it displays half of years * quarterYear {string}, specifies the predefined format of the level when it displays quarter of years * month {string}, specifies the predefined format of the level when it displays months * thirdMonth {string}, specifies the predefined format of the level when it displays third of months * week {string}, specifies the predefined format of the level when it displays weeks * day {string}, specifies the predefined format of the level when it displays days * hour {string}, specifies the predefined format of the level when it displays hours * minute {string}, specifies the predefined format of the level when it displays minutes * second {string}, specifies the predefined format of the level when it displays seconds * */ labels: { /** * @description The year field specifies the predefined format of the level when it displays years * @type {string} Specifies the predefined format of the level when it displays years */ year: "<|><%yy%><|><%yy%><|>'<%yy%><|><%yyyy%>", /** * @description The halfYear field specifies the predefined format of the level when it displays half of years * @type {string} Specifies the predefined format of the level when it displays half of years */ halfYear: undefined, /** * @description The quarterYear field specifies the predefined format of the level when it displays quarter of years * @type {string} Specifies the predefined format of the level when it displays quarter of years */ quarterYear: undefined, /** * @description The month field specifies the predefined format of the level when it displays months * @type {string} Specifies the predefined format of the level when it displays months */ month: "<|><%m1%><|><%m2%><|><%m3%><|><%mmmm%><|><%m3%> '<%yy%><|><%mmmm%> <%yyyy%>", /** * @description The thirdMonth field specifies the predefined format of the level when it displays third of months * @type {string} Specifies the predefined format of the level when it displays third of months */ thirdMonth: undefined, /** * @description The week field specifies the predefined format of the level when it displays weeks * @type {string} Specifies the predefined format of the level when it displays weeks */ week: "<|><%ww%><|><%m3%> <%d%>, '<%yy%><%ww%><|><%mmmm%> <%d%>, <%yyyy%><%ww%><||><||>256", /** * @description The day field specifies the predefined format of the level when it displays days * @type {string} Specifies the predefined format of the level when it displays days */ day: "<|><%d%><|><%d1%> <%d%><|><%d2%> <%d%><|><%d3%> <%d%><|><%dddd%> <%d%><|><%d3%>, <%m3%> <%d%>, '<%yy%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%><||><||>4096", /** * @description The hour field specifies the predefined format of the level when it displays hours * @type {string} Specifies the predefined format of the level when it displays hours */ hour: "<|><%hh%><|><%h%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, '<%yy%> <%h%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%> <%h%> <%AM/PM%><||><||>65536", /** * @description The minute field specifies the predefined format of the level when it displays minutes * @type {string} Specifies the predefined format of the level when it displays minutes */ minute: "<|><%nn%><|><%h%>:<%nn%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, '<%yy%> <%h%>:<%nn%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%> <%h%>:<%nn%> <%AM/PM%>", /** * @description The second field specifies the predefined format of the level when it displays seconds * @type {string} Specifies the predefined format of the level when it displays seconds */ second: "<|><%ss%><|><%nn%>:<%ss%><|><%h%>:<%nn%>:<%ss%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, '<%yy%> <%h%>:<%nn%>:<%ss%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%> <%h%>:<%nn%>:<%ss%> <%AM/PM%>" }, /** * @description The toolTips field holds predefined-tooltips for each time-unit. * @type {object} Specifies the predefined-tooltips for each time-unit as an object of {year,halfYear,quarterYear,month,thirdMonth,week,day,hour,minute,second} type as explained: * * year {string}, specifies the predefined-tooltip of the level when it displays years * halfYear {string}, specifies the predefined-tooltip of the level when it displays half of years * quarterYear {string}, specifies the predefined-tooltip of the level when it displays quarter of years * month {string}, specifies the predefined-tooltip of the level when it displays months * thirdMonth {string}, specifies the predefined-tooltip of the level when it displays third of months * week {string}, specifies the predefined-tooltip of the level when it displays weeks * day {string}, specifies the predefined-tooltip of the level when it displays days * hour {string}, specifies the predefined-tooltip of the level when it displays hours * minute {string}, specifies the predefined-tooltip of the level when it displays minutes * second {string}, specifies the predefined-tooltip of the level when it displays seconds * */ toolTips: { /** * @description The year field specifies the predefined format of the level when it displays years * @type {string} Specifies the predefined format of the level when it displays years */ year: "<%yyyy%>", /** * @description The halfYear field specifies the predefined format of the level when it displays half of years * @type {string} Specifies the predefined format of the level when it displays half of years */ halfYear: undefined, /** * @description The quarterYear field specifies the predefined format of the level when it displays quarter of years * @type {string} Specifies the predefined format of the level when it displays quarter of years */ quarterYear: undefined, /** * @description The month field specifies the predefined format of the level when it displays months * @type {string} Specifies the predefined format of the level when it displays months */ month: "<%mmmm%> <%yyyy%>", /** * @description The thirdMonth field specifies the predefined format of the level when it displays third of months * @type {string} Specifies the predefined format of the level when it displays third of months */ thirdMonth: undefined, /** * @description The week field specifies the predefined format of the level when it displays weeks * @type {string} Specifies the predefined format of the level when it displays weeks */ week: "<%mmmm%> <%d%>, <%yyyy%>/<%ww%>", /** * @description The day field specifies the predefined format of the level when it displays days * @type {string} Specifies the predefined format of the level when it displays days */ day: "<%dddd%>, <%mmmm%> <%d%>, <%yyyy%>", /** * @description The hour field specifies the predefined format of the level when it displays hours * @type {string} Specifies the predefined format of the level when it displays hours */ hour: "<%dddd%>, <%mmmm%> <%d%>, <%yyyy%> <%h%> <%AM/PM%>", /** * @description The minute field specifies the predefined format of the level when it displays minutes * @type {string} Specifies the predefined format of the level when it displays minutes */ minute: "<%dddd%>, <%mmmm%> <%d%>, <%yyyy%> <%h%>:<%nn%> <%AM/PM%>", /** * @description The second field specifies the predefined format of the level when it displays seconds * @type {string} Specifies the predefined format of the level when it displays seconds */ second: "<%dddd%>, <%mmmm%> <%d%>, <%yyyy%> <%h%>:<%nn%>:<%ss%> <%AM/PM%>" }, /** * @description The unitScale field specifies the base unit the chart displays * @type {exontrol.UnitEnum} Specifies the base unit being displayed * * The exontrol.UnitEnum type support the following values: * * exYear (0), indicates the year scale * exHalfYear (1), indicates the half-year scale * exQuarterYear (2), indicates the quarter-year scale * exMonth (0x10), indicates the month scale * exThirdMonth (0x11), indicates the third-month scale * exWeek (0x100), indicates the week scale * exDay (0x1000), indicates the day scale * exHour (0x10000), indicates the hour scale * exMinute (0x100000), indicates the minute scale * exSecond (0x1000000), indicates the second scale * * @example * * 256 or exontrol.UnitEnum.exWeek {number}, sets the chart to display weeks * 4096 or exontrol.UnitEnum.exDay {number}, sets the chart to display days */ unitScale: exontrol.UnitEnum.exDay, /** * @description The locale field specifies the language to format the control. * @type {string} A string with a BCP 47 language tag. * @example * * null {null}, indicates that the browser's UI language is used. * "de" {string}, defines German locale * "ro" {string}, defines Romanian locale */ locale: null, /** * @description The drawLevelSeparator field shows or hides lines between chart's levels * @type {exontrol.Gantt.LevelLineEnum} Specifies whether the lines between chart's levels are visible or hidden. * * The exontrol.Gantt.LevelLineEnum type supports the following values and flags: * * exLevelNoLine(0), no line is shown * exLevelDefaultLine(-1), indicates the default grid line style * exLevelDotLine(1), indicates a dotted line. For vertical/tick lines, it can be combined with exLevelLowerHalf, exLevelUpperHalf or exLevelMiddleLine. Can be combined with exLevelLowerHalf, exLevelUpperHalf or exLevelMiddleLine option. * exLevelSolidLine(2), indicates a solid line. For vertical/tick lines, it can be combined with exLevelLowerHalf, exLevelUpperHalf or exLevelMiddleLine. Can be combined with exLevelLowerHalf, exLevelUpperHalf or exLevelMiddleLine option. * exLevelLowerHalf(0x10), (no effect) indicates that the line is shown in the lower half of the level. For vertical/tick lines, it can be combined with exLevelDotLine or exLevelSolidLine * exLevelUpperHalf(0x20), (no effect) indicates that the line is shown in the upper half of the level. For vertical/tick lines, it can be combined with exLevelDotLine or exLevelSolidLine * exLevelMiddleLine(0x40), (no effect) indicates that the line is shown in the middle. For vertical/tick lines, it can be combined with exLevelDotLine or exLevelSolidLine * exLevelQuarterHeight(0x100), (no effect) indicates that the line is shown as a quarter of the full height. Specify the exLevelQuarterHeight option to show shorter tick lines in the chart's level. Can be combined with exLevelLowerHalf, exLevelUpperHalf or exLevelMiddleLine option * * @example * * 0 or exontrol.Gantt.LevelLineEnum.exLevelNoLine {number}, hides the lines between chart's levels * 2 or exontrol.Gantt.LevelLineEnum.exLevelSolidLine {number}, shows solid lines between chart's levels * */ drawLevelSeparator: exontrol.Gantt.LevelLineEnum.exLevelDefaultLine, /** * @description The unitWidth field specifies the width to display the units in base-level * @type {number} Indicates the width to display the units in base-level * * @example * * 8 {number}, changes the width for units in the base-level to 8-pixels * */ unitWidth: 18, /** * @description The unitWidthNonworking field specifies the width to display the non-working units in base-level * @type {number} Indicates the width to display the non-working units in base-level * * The unitWidthNonworking field can be any of the following: * * 0 {number}, no effect (the unitWidth field specifies the width for all units, including the non-working units in base-level). The showNonworkingUnits field, specifies whether the chart displays non-working units. * negative {number}, indicates that neighbor non-working units are shown as a single non-working unit with specified width ( absolute value ) * positive {number}, indicates the width for non-working units * * @example * * 0 {number}, no effect (the unitWidth field specifies the width for all units, including the non-working units in base-level) * -18 {number}, neighbor non-working units are shown as a single non-working unit with specified width (18-pixels wide) * */ unitWidthNonworking: 0, /** * @description The minUnitWidth field specifies the minimum width of the units within the base-level, while the user resizes or zooms-in/out the chart * @type {number} Indicates the minimum width to display the units in base-level * * @example * * 12 {number}, specifies that minimum width to display the units in base-level, is 12-pixels wide * */ minUnitWidth: 12, /** * @description The maxUnitWidth field specifies the maximum width of the units within the base-level, while the user resizes or zooms-in/out the chart * @type {number} Indicates the maximum width to display the units in base-level * * @example * * 36 {number}, specifies that maximum width to display the units in base-level, is 36-pixels wide * */ maxUnitWidth: 36, /** * @description The firstVisibleDate field specifies the chart's first visible date * @type {any} Indicates the chart's first visible date * * The type the firstVisibleDate field supports are: * * firstVisibleDate {string}, defines the date in string-format as "#MM/DD/YYYY[ HH:mm:ss]#" * firstVisibleDate {Date}, indicates a JavaScript date to be copied * firstVisibleDate {number} integer value representing the year of the date to be created * firstVisibleDate {null}, indicates the current date and time (equivalent of Now) * * @example * * "#1/1/2001#" {string}, scrolls the control's chart to January 1st, 2001 * Date.Today() {Date}, scrolls the control's chart to today * */ firstVisibleDate: null, /** * @description The firstVisibleOffset field specifies the chart's first visible offset (smooth horizontal scroll) * @type {number} Specifies the chart's first visible offset (indicates the horizontal-offset to display the chart's first visible date relative to its normal position) */ firstVisibleOffset: 0, /** * @description The nonworkingDays field specifies the non-working days within a week. * @type {number} Indicates the chart's non-working days within a week. * * The nonworkingDays field can be a bit-combination of one or more flags: * * 0b00000001 (1) {number}, specifies that each Sunday is a non-working day * 0b00000010 (2) {number}, specifies that each Monday is a non-working day * 0b00000100 (4) {number}, specifies that each Tuesday is a non-working day * 0b00001000 (8) {number}, specifies that each Wednesday is a non-working day * 0b00010000 (16) {number}, specifies that each Thursday is a non-working day * 0b00100000 (32) {number}, specifies that each Friday is a non-working day * 0b01000000 (64) {number}, specifies that each Saturday is a non-working day * * @example * * null {null}, the non-working days are weekend days, as defined by the chart's locale property (Saturday and Sunday are the weekend) * 0 {number}, all days of the week are working (no non-working days) * 0b01000001 or 65 {number}, every Sunday and Saturday is a non-working day * */ nonworkingDays: null, /** * @description The showNonworkingDays field shows or hides the non-working days. * @type {boolean} Indicates whether the chart's non-working days are visible or hidden (marks the non-working days). * * @example * * false {boolean}, hides the chart's non-working days * */ showNonworkingDays: true, /** * @description The nonworkingHours field specifies the non-working hours within a day. * @type {number} Indicates the chart's non-working hours within a day. * * The nonworkingHours field can be a bit-combination of one or more flags: * * 0b00000000000000000000000000000001 (1) {number}, indicates that the hour after 12PM is a non-working hour * 0b00000000000000000000000000000010 (2) {number}, indicates that the hour after 1AM is a non-working hour * 0b00000000000000000000000000000100 (4) {number}, indicates that the hour after 2AM is a non-working hour * 0b00000000000000000000000000001000 (8) {number}, indicates that the hour after 3AM is a non-working hour * 0b00000000000000000000000000010000 (16) {number}, indicates that the hour after 4AM is a non-working hour * 0b00000000000000000000000000100000 (32) {number}, indicates that the hour after 5AM is a non-working hour * 0b00000000000000000000000001000000 (64) {number}, indicates that the hour after 6AM is a non-working hour * 0b00000000000000000000000010000000 (128) {number}, indicates that the hour after 7AM is a non-working hour * 0b00000000000000000000000100000000 (256) {number}, indicates that the hour after 8AM is a non-working hour * 0b00000000000000000000001000000000 (512) {number}, indicates that the hour after 9AM is a non-working hour * 0b00000000000000000000010000000000 (1024) {number}, indicates that the hour after 10AM is a non-working hour * 0b00000000000000000000100000000000 (2048) {number}, indicates that the hour after 11AM is a non-working hour * 0b00000000000000000001000000000000 (4096) {number}, indicates that the hour after 12AM is a non-working hour * 0b00000000000000000010000000000000 (8192) {number}, indicates that the hour after 1PM is a non-working hour * 0b00000000000000000100000000000000 (16384) {number}, indicates that the hour after 2PM is a non-working hour * 0b00000000000000001000000000000000 (32768) {number}, indicates that the hour after 3PM is a non-working hour * 0b00000000000000010000000000000000 (65536) {number}, indicates that the hour after 4PM is a non-working hour * 0b00000000000000100000000000000000 (131072) {number}, indicates that the hour after 5PM is a non-working hour * 0b00000000000001000000000000000000 (262144) {number}, indicates that the hour after 6PM is a non-working hour * 0b00000000000010000000000000000000 (524288) {number}, indicates that the hour after 7PM is a non-working hour * 0b00000000000100000000000000000000 (1048576) {number}, indicates that the hour after 8PM is a non-working hour * 0b00000000001000000000000000000000 (2097152) {number}, indicates that the hour after 9PM is a non-working hour * 0b00000000010000000000000000000000 (4194304) {number}, indicates that the hour after 10PM is a non-working hour * 0b00000000100000000000000000000000 (8388608) {number}, indicates that the hour after 11PM is a non-working hour * * @example * * 0 or null {number}, all hours of the week are working (no non-working hours) * 0b00000000111110000000000011111111 or 16253183 {number}, specifies that hours 8AM to 7PM are working hours * */ nonworkingHours: null, /** * @description The showNonworkingHours field shows or hides the non-working hours. * @type {boolean} Indicates whether the chart's non-working hours are visible or hidden (marks the non-working hours). * * @example * * false {boolean}, hides the chart's non-working hours * */ showNonworkingHours: true, /** * @description The showNonworkingUnits field shows or hides the non-working units (days and hours). * @type {boolean} Indicates whether the chart's non-working units (days and hours) are visible or hidden * * @example * * false {boolean}, hides the chart's non-working units (days and hours) * */ showNonworkingUnits: true, /** * @description The adjustLevelsToBase field specifies whether the units of the levels are aligned with the units of the base level. * @type {boolean} Indicates whether the levels are adjusted on the base level. * * @example * * true {boolean}, aligns the units of the level with units of the base-level * */ adjustLevelsToBase: false, /** * @description The scrollRange field specifies the range of dates to scroll within. * @type {object} Indicates an object of {s(tart),e(nd)} type that defines the range of dates to scroll within. */ scrollRange: { /** * @description The start field indicates the scroll range's start/left-margin date/time Both start and end fields must be specified, else scroll range has no effect * @type {any} Specifies the scroll range's start/left-margin date/time which can be any of the following: * * start {string}, defines the date in string-format as "#MM/DD/YYYY[ HH:mm:ss]#" * start {Date}, indicates a JavaScript date to be copied * start {number} integer value representing the year of the date to be created * start {null}, indicates the current date and time (equivalent of Now) * * @example * * 2001 {number}, defines the scroll range's start/left-margin to January 1st, 2001 * "#6/1/2020#" {string}, defines the scroll range's start/left-margin to June 1st, 2020 */ start: null, /** * @description The end field indicates the scroll range's end/right-margin date/time Both start and end fields must be specified, else scroll range has no effect * @type {any} Specifies the scroll range's end/right-margin date/time which can be any of the following: * * end {string}, defines the date in string-format as "#MM/DD/YYYY[ HH:mm:ss]#" * end {Date}, indicates a JavaScript date to be copied * end {number} integer value representing the year of the date to be created * end {null}, indicates the current date and time (equivalent of Now) * * @example * * 2002 {number}, defines the scroll range's end/right-margin to January 1st, 2002 * "#6/1/2021#" {string}, defines the scroll range's end/right-margin to June 1st, 2021 */ end: null }, /** * @description The scrollBar field shows or hides the chart's horizontal scroll-bar * @type {boolean} Specifies whether the chart's horizontal scroll-bar * * @example * * false {boolean}, hides the chart's horizontal scroll-bar * */ scrollBar: true, /** * @description The bars field defines the predefined-bars of the control * @type {object} Specifies an object that holds objects of exontrol.Gantt.BarOptions type * * @example * * "Task": * { * height: 12, * shape: * { * frameColor: "rgb(0,0,255)", * patternColor: "rgb(0,0,255)", * pattern: exontrol.PatternEnum.exPatternBDiagonal, * primitive: "RoundRect" * } * } * */ bars: { "Task": { shape: { frameColor: "rgb(0,0,255)", patternColor: "rgb(0,0,255)", pattern: 3 /*exontrol.PatternEnum.exPatternShadow*/ } }, "Split": { shape: { frameColor: "rgb(0,0,255)", frameDash: 1, primitive: function(ctx, rtClient) { ctx.moveTo(exontrol.LOf(rtClient), exontrol.BOf(rtClient)); ctx.lineTo(exontrol.ROf(rtClient), exontrol.BOf(rtClient)); } } }, "Progress": { shape: { fillColor: "rgb(0,0,0)", client: "[,y+(height-height/4)/2,,height/4]" } }, "Milestone": { shape: { fillColor: "rgb(0,0,0)", client: "[x-height/2,,height,]", primitive: "EllipticPolygon", pArg: { edges: 4, startAngle: 0 } }, def: { canResize: false } }, "Summary": { shape: { fillColor: "rgb(0,0,0)", client: "[x-height/1.75/2,,width+height/1.75,]", primitive: "Summary" } }, "Project Summary": { shape: { fillColor: "rgb(128,128,128)", client: "[x-height/1.75/2,,width+height/1.75,]", primitive: "Summary" } }, "Deadline": { shape: { frameColor: "rgb(128,128,128)", client: "[x-height/2,,height,]", primitive: "Deadline" }, def: { canResize: false } } }, /** * @description The singleSel field specifies whether the chart supports single, multiple, toggle selection. * @type {exontrol.Tree.SingleSelEnum} Indicates whether the chart supports single or multiple selection. * * The exontrol.Tree.SingleSelEnum type defines the following flags: * * exDisableSel(0), specifies that the chart's selection is disabled (can not be combined with any other flags) * exEnableSel(1), specifies that the chart's selection is enabled (multiple-selection, unless the exSingleSel is set ) * exSingleSel(2), specifies that the user can select an item-bar only * exToggleSel(4), specifies that the item-bar's selection state is toggled once the user clicks an item-bar. * exDisableCtrlSel(8), disables toggling the item-bar's selection state when user clicks an item-bar, while CTRL modifier key is pressed. * exDisableShiftSel(16), disables selecting item-bars using the SHIFT key. * exDisableDrag(32), disables selecting item-bars by drag. * * @example * * 0 or exontrol.Tree.SingleSelEnum.exDisableSel {number}, disables selecting any item-bar * 3 or exontrol.Tree.SingleSelEnum.exSingleSel | exontrol.Tree.SingleSelEnum.exEnableSel {number}, enables chart's single selection, so only a single item-bar can be selected * 6 or exontrol.Tree.SingleSelEnum.exToggleSel | exontrol.Tree.SingleSelEnum.exSingleSel {number}, enables chart's single and toggle selection, which means that once an item-bar is selected it gets unselected once it is clicked, or reverse, and only a single-item-bar can be selected at once. */ singleSel: exontrol.Tree.SingleSelEnum.exEnableSel, /** * @description The allowSelectDate field indicates whether the user can select single, multiple, toggle dates * @type {exontrol.Tree.SingleSelEnum} indicates whether the user can select single, multiple, toggle dates. * * The exontrol.Tree.SingleSelEnum type defines the following flags: * * exDisableSel(0), specifies that the chart's date(s) selection is disabled (can not be combined with any other flags) * exEnableSel(1), specifies that the chart's date(s) selection is enabled (multiple-selection, unless the exSingleSel is set ) * exSingleSel(2), specifies that the user can select a date/time period only * exToggleSel(4), specifies that the date/time period's selection state is toggled once the user clicks an date/time period. * exDisableCtrlSel(8), disables toggling the date/time period's selection state when user clicks an date/time period, while CTRL modifier key is pressed. * exDisableShiftSel(16), disables selecting date/time periods using the SHIFT key. * exDisableDrag(32), disables selecting date/time periods by drag. * * @example * * 0 or exontrol.Tree.SingleSelEnum.exDisableSel {number}, disables selecting any date * 3 or exontrol.Tree.SingleSelEnum.exSingleSel | exontrol.Tree.SingleSelEnum.exEnableSel {number}, enables chart's date single selection, so only a single date can be selected * 6 or exontrol.Tree.SingleSelEnum.exToggleSel | exontrol.Tree.SingleSelEnum.exSingleSel {number}, enables chart's date single and toggle selection, which means that once a date is selected it gets unselected once it is clicked, or reverse, and only a single-date can be selected at once. */ allowSelectDate: exontrol.Tree.SingleSelEnum.exEnableSel, /** * @description The selectDates field specifies the chart's selected-dates, as an array of [{start,end}] type * @type {array} specifies the chart's selected-dates, as an array of [{start,end}] type, where * * start {any}, specifies the date-time the selected time period begins * end {any}, specifies the date-time the selected time period ends * * @example * * null {null}, removes all selected dates * {start: 2001, end: 2002} {object}, selects the time zone from Jan 1st 2001, to Jan 1st 2002 * {start: Date.Today(), end: Date.Today().NextDay()} {object}, selects today */ selectDates: null, /** * @description The resizeUnitScale field specifies the time-unit to create, move or resize bars (for instance, even the chart displays weeks, the user can create, more or resize hours by hours) * @type {exontrol.UnitEnum} Specifies the time-unit to create, move or resize bars. * * The exontrol.UnitEnum type support the following values: * * exYear (0), indicates the year scale * exHalfYear (1), indicates the half-year scale * exQuarterYear (2), indicates the quarter-year scale * exMonth (0x10), indicates the month scale * exThirdMonth (0x11), indicates the third-month scale * exWeek (0x100), indicates the week scale * exDay (0x1000), indicates the day scale * exHour (0x10000), indicates the hour scale * exMinute (0x100000), indicates the minute scale * exSecond (0x1000000), indicates the second scale * * @example * * null {null}, the chart's resize unit-scale is identichal with the chart's unit-scale (unitScale property) * 0x10000 or exontrol.UnitEnum.exHour {number}, sets the chart's resize unit-scale to hours */ resizeUnitScale: null, /** * @description The resizeUnitCount field specifies the count of time-unit(s) to create, move or resize bars * @type {number} Specifies the count of time-unit(s) to create, move or resize bars * * @example * * null {null}, the count of time-unit(s) of the chart's base level indicates the count of time-unit(s) to create, move or resize bars * 3 {number}, creates, moves or resizes to every third time-unit(s) */ resizeUnitCount: null, /** * @description The dateTickerLabel field specifies the format to display the bar's start and end margins while creating, moving or resizing it. The dateTickerLabel supports ex-HTLM tags such as (, , , ...), <%DATE%> and <%=FORMULA%> (@since 2.3) tags: * * The <%=FORMULA%> tag (@since 2.3) holds an expression that supports the following keywords: * * value, {Date} defines the DATE being displayed (could be the start or end) * start, {Date} defines the start-margin of the bar as a DATE type * end, {Date} defines the end-margin of the bar as a DATE type * * The <%DATE%> tag can be any of the following: * * <%d%> - Day of the month in one or two numeric digits, as needed (1 to 31) * <%dd%> - Day of the month in two numeric digits (01 to 31) * <%d1%> - First letter of the weekday (S to S) * <%loc_d1%> - Indicates day of week as a one-letter abbreviation using the current user settings * <%d2%> - First two letters of the weekday (Su to Sa) * <%loc_d2%> - Indicates day of week as a two-letters abbreviation using the current user settings * <%d3%> - First three letters of the weekday (Sun to Sat) * <%loc_d3%> equivalent with <%loc_ddd%> * <%ddd%> - First three letters of the weekday (Sun to Sat) * <%loc_ddd%> - Indicates the day of week as a three-letter abbreviation using the current user regional and language settings * <%dddd%> - Full name of the weekday (Sunday to Saturday) * <%loc_dddd%> - Indicates day of week as its full name using the current user regional and language settings * <%i%> - Displays the number instead the date * <%w%> - Day of the week (1 to 7) * <%ww%> - Week of the year (1 to 53) * <%m%> - Month of the year in one or two numeric digits, as needed (1 to 12) * <%mr%> - Month of the year in Roman numerals, as needed (I to XII) * <%mm%> - Month of the year in two numeric digits (01 to 12) * <%m1%> - First letter of the month (J to D) * <%loc_m1%> - Indicates month as a one-letter abbreviation using the current user settings * <%m2%> - First two letters of the month (Ja to De) * <%loc_m2%> - Indicates month as a two-letters abbreviation using the current user settings * <%m3%> - First three letters of the month (Jan to Dec) * <%loc_m3%> - equivalent with <%loc_mmm%> * <%mmm%> - First three letters of the month (Jan to Dec) * <%loc_mmm%> - Indicates month as a three-letter abbreviation using the current user regional and language settings * <%mmmm%> - Full name of the month (January to December) * <%loc_mmmm%> - Indicates month as its full name using the current user regional and language settings * <%q%> - Date displayed as the quarter of the year (1 to 4) * <%y%> - Number of the day of the year (1 to 366) * <%yy%> - Last two digits of the year (01 to 99) * <%yyyy%> - Full year (0100 to 9999) * <%hy%> - Date displayed as the half of the year (1 to 2) * <%loc_g%> - Indicates period/era using the current user regional and language settings * <%loc_gg%> - Indicates period/era using the current user regional and language settings * <%loc_sdate%> - Indicates the date in the short format using the current user regional and language settings * <%loc_ldate%> - Indicates the date in the long format using the current user regional and language settings * <%loc_dsep%> - Indicates the date separator using the current user regional and language settings (/) * <%h%> - Hour in one or two digits, as needed (0 to 23) * <%hh%> - Hour in two digits (00 to 23) * <%h12%> - Hour in 12-hour time format, in one or two digits - [0(12),11] * <%hh12%> - Hour in 12-hour time format, in two digits - [00(12),11] * <%n%> - Minute in one or two digits, as needed (0 to 59) * <%nn%> - Minute in two digits (00 to 59) * <%s%> - Second in one or two digits, as needed (0 to 59) * <%ss%> - Second in two digits (00 to 59) * <%AM/PM%> - Twelve-hour clock with the uppercase letters "AM" or "PM", as appropriate * <%loc_AM/PM%> - Indicates the time marker such as AM or PM using the current user regional and language settings * <%loc_A/P%> - Indicates the one character time marker such as A or P using the current user regional and language settings * <%loc_time%> - Indicates the time using the current user regional and language settings * <%loc_time24%> - Indicates the time in 24 hours format without a time marker using the current user regional and language settings * <%loc_tsep%> - indicates the time separator using the current user regional and language settings (:) * <%loc_y%> - Represents the Year only by the last digit, using current regional settings * <%loc_yy%> - Represents the Year only by the last two digits, using current regional settings. A leading zero is added for single-digit years * <%loc_yyyy%> - Represents the Year by a full four or five digits, depending on the calendar used. Thai Buddhist and Korean calendars have five-digit years. The "yyyy" pattern shows five digits for these two calendars, and four digits for all other supported calendars. Calendars that have single-digit or two-digit years, such as for the Japanese Emperor era, are represented differently. A single-digit year is represented with a leading zero, for example, "03". A two-digit year is represented with two digits, for example, "13". No additional leading zeros are displayed * * @type {string} * @example * * null {null}, no date-ticker is shown while a bar is created, moved or resized * "<%loc_sdate%>" {string}, displays the bar's margins in short format * "<%mmm%> <%d%>
<%hh%>:<%nn%>" {string}, displays the month and day on the first line, while the second shows the hour and minute * "<%=shortdate(value=end?value-1:value)%>" {string}, displays the end-margin with one day before (@since 2.3) * "<%mmm%> <%d%><%=value=end?` (`+(end - start) + `)`:``%>" {string}, displays the month, the day and for the end-margin includes the number of days of the bar being created, resized or moved (@since 2.3) * "<%=value=start?``:value%>" {string}, specifies that only end-margin of the bar is being shown (@since 2.3) */ dateTickerLabel: null, /** * @description The dateTickerLabelVAlign field specifies the vertical alignment of the date label, while create, resize or move the bar, as one of the following values: * * 0 {number}, indicates that the date-label is displayed on top, right-below the header (default) * 1 {number}, specifies that the start/end margins of the bar are displayed to left/side of it * * @type {number} * @example * * null {null}, the date-label is displayed on top, right-below the header (default) * 1 {number}, the start/end margins of the bar are displayed to left/side of it * * @since 2.3 */ dateTickerLabelVAlign: 0, /** * @description The dateTickerLabelHMargin field specifies the distance between the date-label and the bar, while create, resize or move it * @type {number} * @example * * null {null}, the distance between the date-label and the bar is 4 pixels (default) * 0 {number}, the distance between the date-label and the bar is 0 pixels * * @since 2.3 */ dateTickerLabelHMargin: 4, /** * @description The drawDateTicker field shows or hides the chart's ticker to indicate the date-time being hovered * @type {boolean} Indicates whether the chart's ticker is visible or hidden (when mouse pointer hovers the chart's client area * * @example * * true {boolean}, shows the chart's ticker that's visible only when the mouse pointer hovers the date-time * */ drawDateTicker: false, /** * @description The showLinks field indicates whether the control shows or hides the links between bars. * @type {exontrol.ShowLinksEnum} Indicates a combination of one or more exontrol.ShowLinksEnum that defines whether the links between bars are visible or hidden * * The exontrol.ShowLinksEnum type supports the following flags: * * exHide (0), specifies that no links are visible * exExtended (0x01), specifies that links are shown as extended * exShow (0x02), specifies that links are visible (the links are always shown while not exHide) * exFront (0x10), specifies that links are shown in front (by default, the control are shown on the background) * exCrossRect (0x20), shows rectangular cross-links * exCrossTriangle (0x20), shows triangular cross-links * exCrossMixt (0x60), shows mixt cross-links * * @example * * 0 or exontrol.ShowLinksEnum.exHide {number}, hides the links * 1 or exontrol.ShowLinksEnum.exShow {number}, shows the links (on the background) * 33 or exontrol.ShowLinksEnum.exExtended | exontrol.ShowLinksEnum.exCrossRect {number}, shows "extended" and "cross" links */ showLinks: exontrol.ShowLinksEnum.exExtended | exontrol.ShowLinksEnum.exCrossRect, /** * @description The link field specifies the appearance of the link between bars. * @type {object} Specifies the appearance of the link between bars. * * The link object includes any of the following: * * type {exontrol.LinkTypeEnum}, specifies the type of the link as 0 (rectangular), 1 (direct), 2(straight) or 3(round) * dir {number}, specifies whether the link's direction is shown or hidden as 0 (hidden), 1(shows the direction/arrow where the link begins), 2(shows the direction where the link ends, default) or 3 shows the arrows in both sides * width {number}, specifies the link's width or size (1 by default) * color {string}, indicates the link's color (partial-black by default) * arrow {string}, indicates the arrow's color. If it is missing or not specified the arrow is shown using the link's color (gray by default) * arrowSize {number}, indicates the arrow's size. If it is missing or not specified the arrow's size is defined by link's width (1 by default) (since 2.2) * arrowShape {object}, defines an object of exontrol.Def.Shape type to customize the shape of the link's arrow (for instance shows the link's arrow as a circle instead of a triangle) (since 2.2) * style {array}, specifies the link's dash pattern to show the lines (solid by default) * startPos {any}, indicates the list of corners of in-element, the link can start from * endPos {any}, indicates the list of corners of out-element, the link can end to */ link: { /** * @description The type field specifies the type of the link. * @type {exontrol.LinkTypeEnum} Indicates a value of exontrol.LinkTypeEnum type that defines the type of the link. * * The exontrol.LinkTypeEnum type defines the following values: * * exRect (0), defines a rectangular-link * exDirect (1), defines a direct-link * exStraight (2), defines a straight-link * exRound (3), defines a round-link * * @example * * null {null}, indicates the default type of link, which is similar with rectangular-link (equivalent of 0) * 0 or exontrol.LinkTypeEnum.exRect {null}, shows rectangular-links * 2 or exontrol.LinkTypeEnum.exStraight {null}, shows straight-links */ type: 0, /** * @description The dir field specifies whether the link's direction is shown or hidden * @type {number} Indicates a numeric value that defines whether the link's direction is shown or hidden. * * The dir field can be any of the following values: * * 0, specifies that no direction for the link is shown * 1, shows the direction/arrow where the link begins * 2, shows the direction/arrow where the link ends * 3, shows the arrows on both sides * * If not specified, the option 2 is used by default. * * @example * * null {null}, shows the direction/arrow where the link ends (equivalent of 2) * 0 {number}, hides the link's direction * 3 {number}, shows the arrows on both sides */ dir: undefined, /** * @description The width field defines the size/width of the link. * @type {number} Specifies the size/width of the link. * @example * * null {null}, indicates links of 1-pixel wide * 2 {number}, indicates links of 2-pixels wide */ width: undefined, /** * @description The color field specifies the color to show the link * @type {string} Defines the color of the link as a CSS color format * @example * * null {null}, indicates a black link * "transparent" {string}, specifies a transparent link * "red" {string}, specifies a red link * "#00FF00" {string}, specifies a green link * "rgba(255,0,0,0.5)" {string}, indicates 50% red link */ color: "black", /** * @description The arrow field indicates the arrow's color. * @type {string} Defines the color to show the link's arrow/direction into CSS color format * * If it is missing or not specified the arrow is shown using the link's color. * * @example * * null {null}, indicates that the link's color defines the color of the link's arrow * "transparent" {string}, specifies a transparent arrow * "red" {string}, specifies a red arrow * "#00FF00" {string}, specifies a green arrow * "rgba(255,0,0,0.5)" {string}, indicates 50% red arrow */ arrow: undefined, /** * @description The style field defines the style of the link * @type {array} An Array of numbers which specify distances to alternately draw a line and a gap (in coordinate space units). If the number of elements in the array is odd, the elements of the array get copied and concatenated. * @example * * null {null}, defines a solid grid-lines * [] {array}, indicates a solid grid-lines * 2 {number}, will become [2, 2, ...] * [5, 15, 25] {array}, will become [5, 15, 25, 5, 15, 25, ...] */ style: undefined, /** * @description The startPos field defines the in-element's corners, the link can start from. * @type {any} Indicates a numeric or string value that defines the in-element's corners, the link can start from, as explained bellow: * * The startPos field can be: * * startPos {undefined//null/0/false}, equivalent of ["TC","ML","BC","MR"], specifies that the link starts from the in-element's closest point to out-element. * startPos {number}, indicates an OR combination of one or more values of exontrol.CT type. * startPos {string}, indicates a list of corners separated by comma(,) which can be any of "TL", "TC", "TR", "ML", "MR", "BL", "BC" or "BR" * * The exontrol.CT type defines the following values: * * TL (17 or 0x11), indicates the top-left corner, equivalent of "TL" * TC (18 or 0x12), indicates the top-center point, equivalent of "TC" * TR (20 or 0x14), indicates the top-right corner, equivalent of "TR" * ML (33 or 0x21), indicates the middle-left point, equivalent of "ML" * C (34 or 0x22), indicates the center of the object, equivalent of "C" * MR (36 or 0x24), indicates the middle-right point, equivalent of "MR" * BL (65 or 0x41), indicates the bottom-left corner, equivalent of "BL" * BC (66 or 0x42), indicates the bottom-center point, equivalent of "BC" * BR (68 or 0x44), Indicates the bottom-right corner, equivalent of "BR" * * @example * * null {null}, equivalent of ["TC","ML","BC","MR"], specifies that the link starts from the in-element's closest point to out-element * exontrol.CT.TC {number}, indicates that the link always starts from the top-center point of the in-element * exontrol.CT.TL | exontrol.CT.TC | exontrol.CT.TR {number}, indicates that the link starts from the in-element's top side (the closest to out-element) * "MR" {string}, specifies that the link always starts from the middle-right point of the in-element * "TR,MR,BR" {string}, specifies that the link starts from the in-element's right side (the closest to out-element) */ startPos: "MR", /** * @description The endPos field defines the out-element's corners, the link can end into. * @type {any} Indicates a numeric or string value that defines the out-element's corners, the link can end into, as explained bellow: * * The endPos field can be: * * endPos {undefined//null/0/false}, equivalent of ["TC","ML","BC","MR"], specifies that the link ends into the in-element's closest point to in-element * endPos {number}, indicates an OR combination of one or more values of exontrol.CT type. * endPos {string}, indicates a list of corners separated by comma(,) which can be any of "TL", "TC", "TR", "ML", "MR", "BL", "BC" or "BR" * * The exontrol.CT type defines the following values: * * TL (17 or 0x11), indicates the top-left corner, equivalent of "TL" * TC (18 or 0x12), indicates the top-center point, equivalent of "TC" * TR (20 or 0x14), indicates the top-right corner, equivalent of "TR" * ML (33 or 0x21), indicates the middle-left point, equivalent of "ML" * C (34 or 0x22), indicates the center of the object, equivalent of "C" * MR (36 or 0x24), indicates the middle-right point, equivalent of "MR" * BL (65 or 0x41), indicates the bottom-left corner, equivalent of "BL" * BC (66 or 0x42), indicates the bottom-center point, equivalent of "BC" * BR (68 or 0x44), Indicates the bottom-right corner, equivalent of "BR" * * @example * * null {null}, equivalent of ["TC","ML","BC","MR"], specifies that the link ends into the out-element's closest point to in-element * exontrol.CT.BC {number}, indicates that the link always ends into the bottom-center point of the out-element * exontrol.CT.BL | exontrol.CT.BC | exontrol.CT.BR {number}, indicates that the link ends into the out-element's bottom side (the closest to in-element) * "ML" {string}, specifies that the link always ends to the middle-left point of the out-element * "TL,ML,BL" {string}, specifies that the link ends into the out-element's left side (the closest to in-element) */ endPos: "TL,ML,BL" }, /** * @description The linkStartFrom field specifies the appearance of the link that starts from any selected-bar (outgoing links) * @type {object} Specifies the appearance of the link that starts from any selected-bar (outgoing links). * * The linkStartFrom object includes any of the following: * * type {exontrol.LinkTypeEnum}, specifies the type of the link as 0 (rectangular), 1 (direct), 2(straight) or 3(round) * dir {number}, specifies whether the link's direction is shown or hidden as 0 (hidden), 1(shows the direction/arrow where the link begins), 2(shows the direction where the link ends, default) or 3 shows the arrows in both sides * width {number}, specifies the link's width or size (1 by default) * color {string}, indicates the link's color (partial-black by default) * arrow {string}, indicates the arrow's color. If it is missing or not specified the arrow is shown using the link's color (gray by default) * arrowSize {number}, indicates the arrow's size. If it is missing or not specified the arrow's size is defined by link's width (1 by default) (since 2.2) * arrowShape {object}, defines an object of exontrol.Def.Shape type to customize the shape of the link's arrow (for instance shows the link's arrow as a circle instead of a triangle) (since 2.2) * style {array}, specifies the link's dash pattern to show the lines (solid by default) * startPos {any}, indicates the list of corners of in-element, the link can start from * endPos {any}, indicates the list of corners of out-element, the link can end to */ linkStartFrom: { /** * @description The type field specifies the type of the link. * @type {exontrol.LinkTypeEnum} Indicates a value of exontrol.LinkTypeEnum type that defines the type of the link. * * The exontrol.LinkTypeEnum type defines the following values: * * exRect (0), defines a rectangular-link * exDirect (1), defines a direct-link * exStraight (2), defines a straight-link * exRound (3), defines a round-link * * @example * * null {null}, indicates the default type of link, which is similar with rectangular-link (equivalent of 0) * 0 or exontrol.LinkTypeEnum.exRect {null}, shows rectangular-links * 2 or exontrol.LinkTypeEnum.exStraight {null}, shows straight-links */ type: undefined, /** * @description The dir field specifies whether the link's direction is shown or hidden * @type {number} Indicates a numeric value that defines whether the link's direction is shown or hidden. * * The dir field can be any of the following values: * * 0, specifies that no direction for the link is shown * 1, shows the direction/arrow where the link begins * 2, shows the direction/arrow where the link ends * 3, shows the arrows on both sides * * If not specified, the option 2 is used by default. * * @example * * null {null}, shows the direction/arrow where the link ends (equivalent of 2) * 0 {number}, hides the link's direction * 3 {number}, shows the arrows on both sides */ dir: undefined, /** * @description The width field defines the size/width of the link. * @type {number} Specifies the size/width of the link. * @example * * null {null}, indicates links of 1-pixel wide * 2 {number}, indicates links of 2-pixels wide */ width: undefined, /** * @description The color field specifies the color to show the link * @type {string} Defines the color of the link as a CSS color format * @example * * null {null}, indicates a black link * "transparent" {string}, specifies a transparent link * "red" {string}, specifies a red link * "#00FF00" {string}, specifies a green link * "rgba(255,0,0,0.5)" {string}, indicates 50% red link */ color: undefined, /** * @description The arrow field indicates the arrow's color. * @type {string} Defines the color to show the link's arrow/direction into CSS color format * * If it is missing or not specified the arrow is shown using the link's color. * * @example * * null {null}, indicates that the link's color defines the color of the link's arrow * "transparent" {string}, specifies a transparent arrow * "red" {string}, specifies a red arrow * "#00FF00" {string}, specifies a green arrow * "rgba(255,0,0,0.5)" {string}, indicates 50% red arrow */ arrow: undefined, /** * @description The style field defines the style of the link * @type {array} An Array of numbers which specify distances to alternately draw a line and a gap (in coordinate space units). If the number of elements in the array is odd, the elements of the array get copied and concatenated. * @example * * null {null}, defines a solid grid-lines * [] {array}, indicates a solid grid-lines * 2 {number}, will become [2, 2, ...] * [5, 15, 25] {array}, will become [5, 15, 25, 5, 15, 25, ...] */ style: undefined, /** * @description The startPos field defines the in-element's corners, the link can start from. * @type {any} Indicates a numeric or string value that defines the in-element's corners, the link can start from, as explained bellow: * * The startPos field can be: * * startPos {undefined//null/0/false}, equivalent of ["TC","ML","BC","MR"], specifies that the link starts from the in-element's closest point to out-element. * startPos {number}, indicates an OR combination of one or more values of exontrol.CT type. * startPos {string}, indicates a list of corners separated by comma(,) which can be any of "TL", "TC", "TR", "ML", "MR", "BL", "BC" or "BR" * * The exontrol.CT type defines the following values: * * TL (17 or 0x11), indicates the top-left corner, equivalent of "TL" * TC (18 or 0x12), indicates the top-center point, equivalent of "TC" * TR (20 or 0x14), indicates the top-right corner, equivalent of "TR" * ML (33 or 0x21), indicates the middle-left point, equivalent of "ML" * C (34 or 0x22), indicates the center of the object, equivalent of "C" * MR (36 or 0x24), indicates the middle-right point, equivalent of "MR" * BL (65 or 0x41), indicates the bottom-left corner, equivalent of "BL" * BC (66 or 0x42), indicates the bottom-center point, equivalent of "BC" * BR (68 or 0x44), Indicates the bottom-right corner, equivalent of "BR" * * @example * * null {null}, equivalent of ["TC","ML","BC","MR"], specifies that the link starts from the in-element's closest point to out-element * exontrol.CT.TC {number}, indicates that the link always starts from the top-center point of the in-element * exontrol.CT.TL | exontrol.CT.TC | exontrol.CT.TR {number}, indicates that the link starts from the in-element's top side (the closest to out-element) * "MR" {string}, specifies that the link always starts from the middle-right point of the in-element * "TR,MR,BR" {string}, specifies that the link starts from the in-element's right side (the closest to out-element) */ startPos: undefined, /** * @description The endPos field defines the out-element's corners, the link can end into. * @type {any} Indicates a numeric or string value that defines the out-element's corners, the link can end into, as explained bellow: * * The endPos field can be: * * endPos {undefined//null/0/false}, equivalent of ["TC","ML","BC","MR"], specifies that the link ends into the in-element's closest point to in-element * endPos {number}, indicates an OR combination of one or more values of exontrol.CT type. * endPos {string}, indicates a list of corners separated by comma(,) which can be any of "TL", "TC", "TR", "ML", "MR", "BL", "BC" or "BR" * * The exontrol.CT type defines the following values: * * TL (17 or 0x11), indicates the top-left corner, equivalent of "TL" * TC (18 or 0x12), indicates the top-center point, equivalent of "TC" * TR (20 or 0x14), indicates the top-right corner, equivalent of "TR" * ML (33 or 0x21), indicates the middle-left point, equivalent of "ML" * C (34 or 0x22), indicates the center of the object, equivalent of "C" * MR (36 or 0x24), indicates the middle-right point, equivalent of "MR" * BL (65 or 0x41), indicates the bottom-left corner, equivalent of "BL" * BC (66 or 0x42), indicates the bottom-center point, equivalent of "BC" * BR (68 or 0x44), Indicates the bottom-right corner, equivalent of "BR" * * @example * * null {null}, equivalent of ["TC","ML","BC","MR"], specifies that the link ends into the out-element's closest point to in-element * exontrol.CT.BC {number}, indicates that the link always ends into the bottom-center point of the out-element * exontrol.CT.BL | exontrol.CT.BC | exontrol.CT.BR {number}, indicates that the link ends into the out-element's bottom side (the closest to in-element) * "ML" {string}, specifies that the link always ends to the middle-left point of the out-element * "TL,ML,BL" {string}, specifies that the link ends into the out-element's left side (the closest to in-element) */ endPos: undefined }, /** * @description The linkEndTo field specifies the appearance of the link that ends to any selected-bar (incoming links) * @type {object} Specifies the appearance of the link that ends to any selected-bar (incoming links). * * The linkEndTo object includes any of the following: * * type {exontrol.LinkTypeEnum}, specifies the type of the link as 0 (rectangular), 1 (direct), 2(straight) or 3(round) * dir {number}, specifies whether the link's direction is shown or hidden as 0 (hidden), 1(shows the direction/arrow where the link begins), 2(shows the direction where the link ends, default) or 3 shows the arrows in both sides * width {number}, specifies the link's width or size (1 by default) * color {string}, indicates the link's color (partial-black by default) * arrow {string}, indicates the arrow's color. If it is missing or not specified the arrow is shown using the link's color (gray by default) * arrowSize {number}, indicates the arrow's size. If it is missing or not specified the arrow's size is defined by link's width (1 by default) (since 2.2) * arrowShape {object}, defines an object of exontrol.Def.Shape type to customize the shape of the link's arrow (for instance shows the link's arrow as a circle instead of a triangle) (since 2.2) * style {array}, specifies the link's dash pattern to show the lines (solid by default) * startPos {any}, indicates the list of corners of in-element, the link can start from * endPos {any}, indicates the list of corners of out-element, the link can end to */ linkEndTo: { /** * @description The type field specifies the type of the link. * @type {exontrol.LinkTypeEnum} Indicates a value of exontrol.LinkTypeEnum type that defines the type of the link. * * The exontrol.LinkTypeEnum type defines the following values: * * exRect (0), defines a rectangular-link * exDirect (1), defines a direct-link * exStraight (2), defines a straight-link * exRound (3), defines a round-link * * @example * * null {null}, indicates the default type of link, which is similar with rectangular-link (equivalent of 0) * 0 or exontrol.LinkTypeEnum.exRect {null}, shows rectangular-links * 2 or exontrol.LinkTypeEnum.exStraight {null}, shows straight-links */ type: undefined, /** * @description The dir field specifies whether the link's direction is shown or hidden * @type {number} Indicates a numeric value that defines whether the link's direction is shown or hidden. * * The dir field can be any of the following values: * * 0, specifies that no direction for the link is shown * 1, shows the direction/arrow where the link begins * 2, shows the direction/arrow where the link ends * 3, shows the arrows on both sides * * If not specified, the option 2 is used by default. * * @example * * null {null}, shows the direction/arrow where the link ends (equivalent of 2) * 0 {number}, hides the link's direction * 3 {number}, shows the arrows on both sides */ dir: undefined, /** * @description The width field defines the size/width of the link. * @type {number} Specifies the size/width of the link. * @example * * null {null}, indicates links of 1-pixel wide * 2 {number}, indicates links of 2-pixels wide */ width: undefined, /** * @description The color field specifies the color to show the link * @type {string} Defines the color of the link as a CSS color format * @example * * null {null}, indicates a black link * "transparent" {string}, specifies a transparent link * "red" {string}, specifies a red link * "#00FF00" {string}, specifies a green link * "rgba(255,0,0,0.5)" {string}, indicates 50% red link */ color: undefined, /** * @description The arrow field indicates the arrow's color. * @type {string} Defines the color to show the link's arrow/direction into CSS color format * * If it is missing or not specified the arrow is shown using the link's color. * * @example * * null {null}, indicates that the link's color defines the color of the link's arrow * "transparent" {string}, specifies a transparent arrow * "red" {string}, specifies a red arrow * "#00FF00" {string}, specifies a green arrow * "rgba(255,0,0,0.5)" {string}, indicates 50% red arrow */ arrow: undefined, /** * @description The style field defines the style of the link * @type {array} An Array of numbers which specify distances to alternately draw a line and a gap (in coordinate space units). If the number of elements in the array is odd, the elements of the array get copied and concatenated. * @example * * null {null}, defines a solid grid-lines * [] {array}, indicates a solid grid-lines * 2 {number}, will become [2, 2, ...] * [5, 15, 25] {array}, will become [5, 15, 25, 5, 15, 25, ...] */ style: undefined, /** * @description The startPos field defines the in-element's corners, the link can start from. * @type {any} Indicates a numeric or string value that defines the in-element's corners, the link can start from, as explained bellow: * * The startPos field can be: * * startPos {undefined//null/0/false}, equivalent of ["TC","ML","BC","MR"], specifies that the link starts from the in-element's closest point to out-element. * startPos {number}, indicates an OR combination of one or more values of exontrol.CT type. * startPos {string}, indicates a list of corners separated by comma(,) which can be any of "TL", "TC", "TR", "ML", "MR", "BL", "BC" or "BR" * * The exontrol.CT type defines the following values: * * TL (17 or 0x11), indicates the top-left corner, equivalent of "TL" * TC (18 or 0x12), indicates the top-center point, equivalent of "TC" * TR (20 or 0x14), indicates the top-right corner, equivalent of "TR" * ML (33 or 0x21), indicates the middle-left point, equivalent of "ML" * C (34 or 0x22), indicates the center of the object, equivalent of "C" * MR (36 or 0x24), indicates the middle-right point, equivalent of "MR" * BL (65 or 0x41), indicates the bottom-left corner, equivalent of "BL" * BC (66 or 0x42), indicates the bottom-center point, equivalent of "BC" * BR (68 or 0x44), Indicates the bottom-right corner, equivalent of "BR" * * @example * * null {null}, equivalent of ["TC","ML","BC","MR"], specifies that the link starts from the in-element's closest point to out-element * exontrol.CT.TC {number}, indicates that the link always starts from the top-center point of the in-element * exontrol.CT.TL | exontrol.CT.TC | exontrol.CT.TR {number}, indicates that the link starts from the in-element's top side (the closest to out-element) * "MR" {string}, specifies that the link always starts from the middle-right point of the in-element * "TR,MR,BR" {string}, specifies that the link starts from the in-element's right side (the closest to out-element) */ startPos: undefined, /** * @description The endPos field defines the out-element's corners, the link can end into. * @type {any} Indicates a numeric or string value that defines the out-element's corners, the link can end into, as explained bellow: * * The endPos field can be: * * endPos {undefined//null/0/false}, equivalent of ["TC","ML","BC","MR"], specifies that the link ends into the in-element's closest point to in-element * endPos {number}, indicates an OR combination of one or more values of exontrol.CT type. * endPos {string}, indicates a list of corners separated by comma(,) which can be any of "TL", "TC", "TR", "ML", "MR", "BL", "BC" or "BR" * * The exontrol.CT type defines the following values: * * TL (17 or 0x11), indicates the top-left corner, equivalent of "TL" * TC (18 or 0x12), indicates the top-center point, equivalent of "TC" * TR (20 or 0x14), indicates the top-right corner, equivalent of "TR" * ML (33 or 0x21), indicates the middle-left point, equivalent of "ML" * C (34 or 0x22), indicates the center of the object, equivalent of "C" * MR (36 or 0x24), indicates the middle-right point, equivalent of "MR" * BL (65 or 0x41), indicates the bottom-left corner, equivalent of "BL" * BC (66 or 0x42), indicates the bottom-center point, equivalent of "BC" * BR (68 or 0x44), Indicates the bottom-right corner, equivalent of "BR" * * @example * * null {null}, equivalent of ["TC","ML","BC","MR"], specifies that the link ends into the out-element's closest point to in-element * exontrol.CT.BC {number}, indicates that the link always ends into the bottom-center point of the out-element * exontrol.CT.BL | exontrol.CT.BC | exontrol.CT.BR {number}, indicates that the link ends into the out-element's bottom side (the closest to in-element) * "ML" {string}, specifies that the link always ends to the middle-left point of the out-element * "TL,ML,BL" {string}, specifies that the link ends into the out-element's left side (the closest to in-element) */ endPos: undefined }, /** * @description The linkUnselected field specifies the appearance of the link not related to any selected-bar (unselected links) * @type {object} Specifies the appearance of the link not related to any selected-bar (unselected links). * * The linkUnselected object includes any of the following: * * type {exontrol.LinkTypeEnum}, specifies the type of the link as 0 (rectangular), 1 (direct), 2(straight) or 3(round) * dir {number}, specifies whether the link's direction is shown or hidden as 0 (hidden), 1(shows the direction/arrow where the link begins), 2(shows the direction where the link ends, default) or 3 shows the arrows in both sides * width {number}, specifies the link's width or size (1 by default) * color {string}, indicates the link's color (partial-black by default) * arrow {string}, indicates the arrow's color. If it is missing or not specified the arrow is shown using the link's color (gray by default) * arrowSize {number}, indicates the arrow's size. If it is missing or not specified the arrow's size is defined by link's width (1 by default) (since 2.2) * arrowShape {object}, defines an object of exontrol.Def.Shape type to customize the shape of the link's arrow (for instance shows the link's arrow as a circle instead of a triangle) (since 2.2) * style {array}, specifies the link's dash pattern to show the lines (solid by default) * startPos {any}, indicates the list of corners of in-element, the link can start from * endPos {any}, indicates the list of corners of out-element, the link can end to */ linkUnselected: { /** * @description The type field specifies the type of the link. * @type {exontrol.LinkTypeEnum} Indicates a value of exontrol.LinkTypeEnum type that defines the type of the link. * * The exontrol.LinkTypeEnum type defines the following values: * * exRect (0), defines a rectangular-link * exDirect (1), defines a direct-link * exStraight (2), defines a straight-link * exRound (3), defines a round-link * * @example * * null {null}, indicates the default type of link, which is similar with rectangular-link (equivalent of 0) * 0 or exontrol.LinkTypeEnum.exRect {null}, shows rectangular-links * 2 or exontrol.LinkTypeEnum.exStraight {null}, shows straight-links */ type: undefined, /** * @description The dir field specifies whether the link's direction is shown or hidden * @type {number} Indicates a numeric value that defines whether the link's direction is shown or hidden. * * The dir field can be any of the following values: * * 0, specifies that no direction for the link is shown * 1, shows the direction/arrow where the link begins * 2, shows the direction/arrow where the link ends * 3, shows the arrows on both sides * * If not specified, the option 2 is used by default. * * @example * * null {null}, shows the direction/arrow where the link ends (equivalent of 2) * 0 {number}, hides the link's direction * 3 {number}, shows the arrows on both sides */ dir: undefined, /** * @description The width field defines the size/width of the link. * @type {number} Specifies the size/width of the link. * @example * * null {null}, indicates links of 1-pixel wide * 2 {number}, indicates links of 2-pixels wide */ width: undefined, /** * @description The color field specifies the color to show the link * @type {string} Defines the color of the link as a CSS color format * @example * * null {null}, indicates a black link * "transparent" {string}, specifies a transparent link * "red" {string}, specifies a red link * "#00FF00" {string}, specifies a green link * "rgba(255,0,0,0.5)" {string}, indicates 50% red link */ color: undefined, /** * @description The arrow field indicates the arrow's color. * @type {string} Defines the color to show the link's arrow/direction into CSS color format * * If it is missing or not specified the arrow is shown using the link's color. * * @example * * null {null}, indicates that the link's color defines the color of the link's arrow * "transparent" {string}, specifies a transparent arrow * "red" {string}, specifies a red arrow * "#00FF00" {string}, specifies a green arrow * "rgba(255,0,0,0.5)" {string}, indicates 50% red arrow */ arrow: undefined, /** * @description The style field defines the style of the link * @type {array} An Array of numbers which specify distances to alternately draw a line and a gap (in coordinate space units). If the number of elements in the array is odd, the elements of the array get copied and concatenated. * @example * * null {null}, defines a solid grid-lines * [] {array}, indicates a solid grid-lines * 2 {number}, will become [2, 2, ...] * [5, 15, 25] {array}, will become [5, 15, 25, 5, 15, 25, ...] */ style: undefined, /** * @description The startPos field defines the in-element's corners, the link can start from. * @type {any} Indicates a numeric or string value that defines the in-element's corners, the link can start from, as explained bellow: * * The startPos field can be: * * startPos {undefined//null/0/false}, equivalent of ["TC","ML","BC","MR"], specifies that the link starts from the in-element's closest point to out-element. * startPos {number}, indicates an OR combination of one or more values of exontrol.CT type. * startPos {string}, indicates a list of corners separated by comma(,) which can be any of "TL", "TC", "TR", "ML", "MR", "BL", "BC" or "BR" * * The exontrol.CT type defines the following values: * * TL (17 or 0x11), indicates the top-left corner, equivalent of "TL" * TC (18 or 0x12), indicates the top-center point, equivalent of "TC" * TR (20 or 0x14), indicates the top-right corner, equivalent of "TR" * ML (33 or 0x21), indicates the middle-left point, equivalent of "ML" * C (34 or 0x22), indicates the center of the object, equivalent of "C" * MR (36 or 0x24), indicates the middle-right point, equivalent of "MR" * BL (65 or 0x41), indicates the bottom-left corner, equivalent of "BL" * BC (66 or 0x42), indicates the bottom-center point, equivalent of "BC" * BR (68 or 0x44), Indicates the bottom-right corner, equivalent of "BR" * * @example * * null {null}, equivalent of ["TC","ML","BC","MR"], specifies that the link starts from the in-element's closest point to out-element * exontrol.CT.TC {number}, indicates that the link always starts from the top-center point of the in-element * exontrol.CT.TL | exontrol.CT.TC | exontrol.CT.TR {number}, indicates that the link starts from the in-element's top side (the closest to out-element) * "MR" {string}, specifies that the link always starts from the middle-right point of the in-element * "TR,MR,BR" {string}, specifies that the link starts from the in-element's right side (the closest to out-element) */ startPos: undefined, /** * @description The endPos field defines the out-element's corners, the link can end into. * @type {any} Indicates a numeric or string value that defines the out-element's corners, the link can end into, as explained bellow: * * The endPos field can be: * * endPos {undefined//null/0/false}, equivalent of ["TC","ML","BC","MR"], specifies that the link ends into the in-element's closest point to in-element * endPos {number}, indicates an OR combination of one or more values of exontrol.CT type. * endPos {string}, indicates a list of corners separated by comma(,) which can be any of "TL", "TC", "TR", "ML", "MR", "BL", "BC" or "BR" * * The exontrol.CT type defines the following values: * * TL (17 or 0x11), indicates the top-left corner, equivalent of "TL" * TC (18 or 0x12), indicates the top-center point, equivalent of "TC" * TR (20 or 0x14), indicates the top-right corner, equivalent of "TR" * ML (33 or 0x21), indicates the middle-left point, equivalent of "ML" * C (34 or 0x22), indicates the center of the object, equivalent of "C" * MR (36 or 0x24), indicates the middle-right point, equivalent of "MR" * BL (65 or 0x41), indicates the bottom-left corner, equivalent of "BL" * BC (66 or 0x42), indicates the bottom-center point, equivalent of "BC" * BR (68 or 0x44), Indicates the bottom-right corner, equivalent of "BR" * * @example * * null {null}, equivalent of ["TC","ML","BC","MR"], specifies that the link ends into the out-element's closest point to in-element * exontrol.CT.BC {number}, indicates that the link always ends into the bottom-center point of the out-element * exontrol.CT.BL | exontrol.CT.BC | exontrol.CT.BR {number}, indicates that the link ends into the out-element's bottom side (the closest to in-element) * "ML" {string}, specifies that the link always ends to the middle-left point of the out-element * "TL,ML,BL" {string}, specifies that the link ends into the out-element's left side (the closest to in-element) */ endPos: undefined }, /** * @description The overviewVisible field specifies whether the chart's overview layout is visible or hidden * @type {exontrol.Gantt.OverviewVisibleEnum} Indicates whether the chart's overview layout is visible or hidden. * * The exontrol.Gantt.OverviewVisibleEnum type supports the following values and flags: * * exOverviewHidden(0), the control's overview is not visible * exOverviewShowOnlyVisible(1), the control's overview shows the bars from the visible items using the range of bars in the visible items only * exOverviewShowAllVisible(2), the control's overview shows the bars from the visible items using the range for all bars in the chart * exOverviewAllowVerticalScroll(0x100), indicates whether the user can vertically scroll the chart while navigating up or down the overview part of the control. For instance, you can click the overview panel, the chart displays the selected area, and you can drag the cursor left or right to select a new date-time range to be displayed, or you can go up or down, to scroll items up or down * exOverviewHideBars(0x200), prevents showing the bars in the overview part of the control. For instance, you can use this flag in combination of any other flag to show just the time-scale in the overview part of the control, to allow the user to quickly scroll the chart's content to a specific time-zone * exOverviewShowDateTimeScale(0x1000), specifies whether the overview part of the control displays the date-time scale. This flag includes the time-scale on the overview. The time-scale intersects the bars in the overview. By default, the time-scale of the overview part is shown on the top of it, so you can combine the exOverviewShowDateTimeScale flag with exOverviewShowDateTimeScaleBottom flag, to display the time-scale on the bottom side of the overview part of the control * exOverviewShowDateTimeScaleSplit(0x1400), specifies whether the overview's date-time scale is displayed into a separate portion of the overview. This flag includes the time-scale on the overview. The time-scale does not intersect the bars in the overview. By default, the time-scale of the overview part is shown on the top of it, so you can combine the exOverviewShowDateTimeScaleSplit flag with exOverviewShowDateTimeScaleBottom flag, to display the time-scale on the bottom side of the overview part of the control * exOverviewShowDateTimeScaleBottom(0x1800), specifies whether the overview's date-time scale is displayed on the bottom side of the overview. By default, the time-scale of the overview part is shown on the top of it, so you can use the exOverviewShowDateTimeScaleBottom flag with exOverviewShowDateTimeScale or exOverviewShowDateTimeScaleSplit to display the time-scale on the bottom side of the overview part of the control * exOverviewShowMargins(0x2000), displays the limits of the overview bars. You can include the exOverviewShowMargins flag to display the margins/limits of all (project) / visible bars. In other words, the exOverviewShowMargins flag displays the minimal ItemBar(exBarStart) value, and the maximal ItemBar(exBarEnd) value * exOverviewShowSelMargins(0x4000), displays the selection limits (first/last visible date in the chart) * exOverviewSplitter(0x10000), specifies whether the overview's horizontal splitter is visible or hidden(makes the control's overview resizable or fixed) * * @example * * 0 or exontrol.Gantt.OverviewVisibleEnum.exOverviewHidden {number}, the control's overview is hidden * 70658 or exontrol.Gantt.OverviewVisibleEnum.exOverviewSplitter | exontrol.Gantt.OverviewVisibleEnum.exOverviewShowDateTimeScaleSplit | exontrol.Gantt.OverviewVisibleEnum.exOverviewShowAllVisible {number}, indicates that the overview is resizable, it displays the bars for all items and the overview time-scale too * */ overviewVisible: exontrol.Gantt.OverviewVisibleEnum.exOverviewHidden, /** * @description The overviewHeight field specifies the height of the control's overview * @type {number} Indicates the height of the control's overview * * @example * * 0 {number}, hides the control's overview (use better the overviewVisible on 0) * 36 {number}, defines the height of the control's overview to 36-pixels tall * */ overviewHeight: 36, /** * @description The overviewShowSelectDates field shows or hides the selected-date(s) on the control's overview * @type {boolean} Indicates whether the chart's overview shows the selected dates * * @example * * false {boolean}, the selected-date(s) are not visible on the control's overview * true {boolean}, shows the selected-date(s) on the control's overview * */ overviewShowSelectDates: false, /** * @description The overviewToolTip field indicates the format of the tooltip being shown while the cursor hovers the chart's overview area. * @type {string} Specifies the format to display the overview's tooltip. * * The overviewToolTip field of the toolTip supports ex-HTLM tags such as (, , , ...) and <%DATE%> tags as follows: * * <%d%> - Day of the month in one or two numeric digits, as needed (1 to 31) * <%dd%> - Day of the month in two numeric digits (01 to 31) * <%d1%> - First letter of the weekday (S to S) * <%loc_d1%> - Indicates day of week as a one-letter abbreviation using the current user settings * <%d2%> - First two letters of the weekday (Su to Sa) * <%loc_d2%> - Indicates day of week as a two-letters abbreviation using the current user settings * <%d3%> - First three letters of the weekday (Sun to Sat) * <%loc_d3%> equivalent with <%loc_ddd%> * <%ddd%> - First three letters of the weekday (Sun to Sat) * <%loc_ddd%> - Indicates the day of week as a three-letter abbreviation using the current user regional and language settings * <%dddd%> - Full name of the weekday (Sunday to Saturday) * <%loc_dddd%> - Indicates day of week as its full name using the current user regional and language settings * <%i%> - Displays the number instead the date * <%w%> - Day of the week (1 to 7) * <%ww%> - Week of the year (1 to 53) * <%m%> - Month of the year in one or two numeric digits, as needed (1 to 12) * <%mr%> - Month of the year in Roman numerals, as needed (I to XII) * <%mm%> - Month of the year in two numeric digits (01 to 12) * <%m1%> - First letter of the month (J to D) * <%loc_m1%> - Indicates month as a one-letter abbreviation using the current user settings * <%m2%> - First two letters of the month (Ja to De) * <%loc_m2%> - Indicates month as a two-letters abbreviation using the current user settings * <%m3%> - First three letters of the month (Jan to Dec) * <%loc_m3%> - equivalent with <%loc_mmm%> * <%mmm%> - First three letters of the month (Jan to Dec) * <%loc_mmm%> - Indicates month as a three-letter abbreviation using the current user regional and language settings * <%mmmm%> - Full name of the month (January to December) * <%loc_mmmm%> - Indicates month as its full name using the current user regional and language settings * <%q%> - Date displayed as the quarter of the year (1 to 4) * <%y%> - Number of the day of the year (1 to 366) * <%yy%> - Last two digits of the year (01 to 99) * <%yyyy%> - Full year (0100 to 9999) * <%hy%> - Date displayed as the half of the year (1 to 2) * <%loc_g%> - Indicates period/era using the current user regional and language settings * <%loc_gg%> - Indicates period/era using the current user regional and language settings * <%loc_sdate%> - Indicates the date in the short format using the current user regional and language settings * <%loc_ldate%> - Indicates the date in the long format using the current user regional and language settings * <%loc_dsep%> - Indicates the date separator using the current user regional and language settings (/) * <%h%> - Hour in one or two digits, as needed (0 to 23) * <%hh%> - Hour in two digits (00 to 23) * <%h12%> - Hour in 12-hour time format, in one or two digits - [0(12),11] * <%hh12%> - Hour in 12-hour time format, in two digits - [00(12),11] * <%n%> - Minute in one or two digits, as needed (0 to 59) * <%nn%> - Minute in two digits (00 to 59) * <%s%> - Second in one or two digits, as needed (0 to 59) * <%ss%> - Second in two digits (00 to 59) * <%AM/PM%> - Twelve-hour clock with the uppercase letters "AM" or "PM", as appropriate * <%loc_AM/PM%> - Indicates the time marker such as AM or PM using the current user regional and language settings * <%loc_A/P%> - Indicates the one character time marker such as A or P using the current user regional and language settings * <%loc_time%> - Indicates the time using the current user regional and language settings * <%loc_time24%> - Indicates the time in 24 hours format without a time marker using the current user regional and language settings * <%loc_tsep%> - indicates the time separator using the current user regional and language settings (:) * <%loc_y%> - Represents the Year only by the last digit, using current regional settings * <%loc_yy%> - Represents the Year only by the last two digits, using current regional settings. A leading zero is added for single-digit years * <%loc_yyyy%> - Represents the Year by a full four or five digits, depending on the calendar used. Thai Buddhist and Korean calendars have five-digit years. The "yyyy" pattern shows five digits for these two calendars, and four digits for all other supported calendars. Calendars that have single-digit or two-digit years, such as for the Japanese Emperor era, are represented differently. A single-digit year is represented with a leading zero, for example, "03". A two-digit year is represented with two digits, for example, "13". No additional leading zeros are displayed * * @example * * "" {string}, displays no tooltip * "<%ddd%> <%m%>/<%d%>/<%yyyy%>" {string}, displays the date from the overview as "Sun 12/2/2007" */ overviewToolTip: "<%ddd%> <%m%>/<%d%>/<%yyyy%>", /** * @description The overviewZoomCaption field specifies the captions for each zooming time-unit. * @type {string} A string expression that defines a list of captions ( one for each unit ) being displayed in the zoom scale, separated by | character. The list should contain a caption for each unit, from the exYear to exSecond. For instance, if you want to show nothing for exHalfYear zooming unit, the overviewZoomCaption should be: "Year||¼Year...", and so on * * @example * * "|||Month||Week|Day|||" {string}, shows just month, week and day scales into the overview * "Year|||Month||Week|Day|||" {string}, shows year, month, week and day scales into the overview * */ overviewZoomCaption: "Year|½Year|¼Year|Month|Third|Week|Day|Hour|Min|Sec", /** * @description The allowOverviewZoom field indicates whether the chart's overview shows the time-scales the user can zoom to * @type {boolean} Specifies whether the chart's overview shows the time-scales the user can zoom to * * @example * * false {boolean}, the overview displays no zooming time-scales * true {boolean}, the overview displays the time-scales the user can zoom to * */ allowOverviewZoom: false, /** * @description The overviewZoomUnit field specifies the width of the time-unit scale in the overview * @type {number} Specifies whether the chart's overview shows the time-scales the user can zoom to * * @example * * 0 {number}, the overview displays no zooming time-scales * 36 {number}, sets the width of the zooming time-scale to 36 pixels * */ overviewZoomUnit: 42, /** * @description The histogramVisible field specifies whether the chart's histogram is visible or hidden * @type {boolean} Indicates whether the chart's histogram is visible or hidden. * * @example * * false {boolean}, the control's histogram is hidden * true {boolean}, the control shows the historam * */ histogramVisible: false, /** * @description The histogramHeight field specifies the height of the control's histogram * @type {number} Indicates the height of the control's histogram * * @example * * 0 {number}, hides the control's histogram (use better the histogramVisible on 0) * 36 {number}, defines the height of the control's histogram to 36-pixels tall * */ histogramHeight: 0, /** * @description The histogramView field histogramView specifies the items the control's histogram displays data for * @type {exontrol.Gantt.HistogramViewEnum} Indicates the items the control's histogram displays data for, as a combination of one or more flags of exontrol.Gantt.HistogramViewEnum type * * The exontrol.Gantt.HistogramViewEnum type supports the following values and flags: * * exHistogramVisibleItems(1), the histogram is shown for the visible items only * exHistogramSelectedItems(2), the histogram is shown for the selected items only * exHistogramCheckedItems(4), the histogram is shown for the checked items only * exHistogramSelectedBars(8), the histogram is shown for the selected bars only * exHistogramUnlockedItems(0x10), the histogram is shown only for unlocked items * exHistogramLockedTopItems(0x20), the histogram is shown only for locked items in the top side of the control * exHistogramLockedBottomItems(0x40), The histogram is shown only for locked items in the bottom side of the control * exHistogramAllItems(0x70), The histogram is shown for all items * exHistogramFilteredItems(0x80), The histogram is shown for the filtered items only * exHistogramLeafItems(0x100), The histogram shows the bars for leaf items (a leaf item contains no child items) * exHistogramRecLeafItems(0x200), The histogram shows all bars for all recursive leaf items (a leaf item contains no child items) * exHistogramNoGrouping(0x400), The histogram shows all bars without grouping based on the item's parent * exHistogramBackground(0x800), The histogram's chart goes on the background, while the non-working part is shown on front ( erases the non-working parts ) * exHistogramNoGroupCaption(0x1000), The histogram shows no caption for groups being shown * exHistogramGroupCumulative(0x2000), The histogram shows cumulative groups * * @example * */ histogramView: 1, /*exontrol.Gantt.HistogramViewEnum.exHistogramVisibleItems*/ /** * @description The histogramUnitScale field specifies the time-scale unit to determine the effort of bars with variable-effort (effort of expression/string type). The histogramUnitScale and histogramUnitCount fields have effect only if the chart displays bars with variable-effort. * @type {exontrol.UnitEnum} Indicates the time-scale unit to determine the effort of bars with variable-effort (effort of expression/string type). * * The exontrol.UnitEnum type support the following values: * * exYear (0), indicates the year scale * exHalfYear (1), indicates the half-year scale * exQuarterYear (2), indicates the quarter-year scale * exMonth (0x10), indicates the month scale * exThirdMonth (0x11), indicates the third-month scale * exWeek (0x100), indicates the week scale * exDay (0x1000), indicates the day scale * exHour (0x10000), indicates the hour scale * exMinute (0x100000), indicates the minute scale * exSecond (0x1000000), indicates the second scale * * @example * * null {null}, the chart's resizeUnitScale defines the histogram's unit-scale * 0x10000 or exontrol.UnitEnum.exHour {number}, sets the chart's histogram unit-scale to hours */ histogramUnitScale: null, /** * @description The histogramUnitCount field specifies the time-scale count to determine the effort of bars with variable-effort (effort of expression/string type). The histogramUnitScale and histogramUnitCount fields have effect only if the chart displays bars with variable-effort. * @type {number} Specifies the time-scale count to determine the effort of bars with variable-effort (effort of expression/string type) * * @example * * null {null}, defaults to 1 histogram unit-scale * 2 {number}, every second histogram unit-scale is checked */ histogramUnitCount: null, /** * @description The histogramZOrder field specifies the z-order of the bars to be shown within the chart's histogram * @type {string} Defines the z-order of the bars to be shown within the chart's histogram * * @example * * "" {string} or null {null}, no z-order is specified * "Task-A,Task" {number}, specifies that the "Task-A" bar is on top of "Task" when they display together within the chart's histogram */ histogramZOrder: "", /** * @description The overlaidOnMoving field specifies whether the overlaid bars are re-arranged while the user moves or resizes at runtime a bar * @type {boolean} Indicates whether the overlaid bars are re-arranged while the user moves or resizes at runtime a bar * * @example * * false {boolean} or null {null}, the overlaid-bars are not re-arranged while user resizes or moves the item-bars * true {boolean}, the overlaid-bars are re-arranged while user resizes or moves the item-bars */ overlaidOnMoving: false }, /** * @description The debug field indicates whether the control displays debug information * @type {boolean} Indicates whether the control debug-information * @example * * false {boolean}, no effect * true {boolean}, the control displays the keys of each visible bar */ debug: false } /////////////////////////////////////////////////////////// (exontrol.Gantt.Chart) // // The exontrol.Gantt.Chart object handles objects to be displayed by the control's chart (right-pane) // // The exontrol.Gantt.Chart object supports the following properties: // // Options/GetOptions()/SetOptions(value) {exontrol.Gantt.ChartOptions}, specifies the options of the control's chart // GetPaneWidth(right)/SetPaneWidth(right,value) {number}, gets or sets the width of the left(items) or right(chart) pane // PaneWidthLeft/GetPaneWidthLeft()/SetPaneWidthLeft(value) {number}, specifies the width of the control's left-pane (items) // PaneWidthRight/GetPaneWidthRight()/SetPaneWidthRight(value) {number}, specifies the width of the control's right-pane (chart) // LevelCount/GetLevelCount()/SetLevelCount(value) {number}, specifies the number of levels the chart's header displays // Level(index) {exontrol.Gantt.Level}, retrieves the chart's level based on its index // Labels/GetLabels()/SetLabels(value) {object}, specifies the predefined format to display the level's label of each time-unit. // ToolTips/GetToolTips()/SetToolTips(value) {object}, specifies the level's tooltip of each time-unit. // GetLabel(unit)/SetLabel(unit,value) {string}, gets or sets the predefined format of the level's label for specified unit. // UnitScale/GetUnitScale()/SetUnitScale(value) {exontrol.UnitEnum}, specifies the unit-scale the chart displays // Locale/GetLocale()/SetLocale(value) {string}, specifies the language to format the control // DrawLevelSeparator/GetDrawLevelSeparator()/SetDrawLevelSeparator(value) {exontrol.Gantt.LevelLineEnum}, specifies the language to format the control // UnitWidth/GetUnitWidth()/SetUnitWidth(value) {number}, specifies the width to display the units in base-level // UnitWidthNonworking/GetUnitWidthNonworking()/SetUnitWidthNonworking(value) {number}, specifies the width to display the non-working units in base-level // MinUnitWidth/GetMinUnitWidth()/SetMinUnitWidth(value) {number}, specifies the minimum width of the units within the base-level, while the user resizes or zooms-in/out the chart // MaxUnitWidth/GetMaxUnitWidth()/SetMaxUnitWidth(value) {number}, specifies the maximum width of the units within the base-level, while the user resizes or zooms-in/out the chart // FirstVisibleDate/GetFirstVisibleDate()/SetFirstVisibleDate(value) {Date}, defines the chart's first visible date // FirstVisibleOffset/GetFirstVisibleOffset()/SetFirstVisibleOffset(value) {number}, specifies the chart's first visible offset // LastVisibleDate/GetLastVisibleDate() {Date}, gets the chart's last visible date // NonworkingDays/GetNonworkingDays()/SetNonworkingDays(value) {number}, defines the chart's non-working days // ShowNonworkingDays/GetShowNonworkingDays()/SetShowNonworkingDays(value) {boolean}, shows or hides the chart's non-working days (marks the non-working days) // NonworkingHours/GetNonworkingHours()/SetNonworkingHours(value) {number}, defines the chart's non-working hours // ShowNonworkingHours/GetShowNonworkingHours()/SetShowNonworkingHours(value) {boolean}, shows or hides the chart's non-working hours (marks the non-working hours) // ShowNonworkingUnits/GetShowNonworkingUnits()/SetShowNonworkingUnits(value) {boolean}, shows or hides the chart's non-working units (days and hours) // AdjustLevelsToBase/GetAdjustLevelsToBase()/SetAdjustLevelsToBase(value) {boolean}, specifies whether the units of the levels are aligned with the units of the base level // ScrollRange/GetScrollRange()/SetScrollRange(value) {object}, specifies the range of dates to scroll within, as an object of {start,end} type // ScrollBar/GetScrollBar()/SetScrollBar(value) {boolean}, shows or hides the chart's horizontal scroll-bar // DrawGridLines/GetDrawGridLines()/SetDrawGridLines(value) {exontrol.Tree.GridLinesEnum}, shows or hides the chart's grid-lines // Bars/GetBars() {exontrol.Gantt.Bars}, defines the control's predefined-bars // SingleSel/GetSingleSel()/SetSingleSel(value) {exontrol.Tree.SingleSelEnum}, specifies whether the chart supports single, multiple, toggle selection (equivalent of AllowSelectObjects property) // Selection/GetSelection()/SetSelection(value) {any}, gets or sets the chart's selected-objects(bars) // RemoveSelection() {number}, deletes the selected-objects(bars) // EnsureVisibleSelection(), scrolls the chart to ensure that the chart's selection fits the chart's view // AllowSelectDate/GetAllowSelectDate()/SetAllowSelectDate(value) {exontrol.Tree.SingleSelEnum}, indicates whether the user can select single, multiple, toggle dates // SelectDates/GetSelectDates()/SetSelectDates(value) {array}, gets or sets the chart's selected-date(s) // ResizeUnitScale/GetResizeUnitScale()/SetResizeUnitScale(value) {exontrol.UnitEnum}, specifies the unit-scale to create, move or resize bars // ResizeUnitCount/GetResizeUnitCount()/SetResizeUnitCount(value) {number}, specifies the count of unit-scales to create, move or resize bars // DateTickerLabel/GetDateTickerLabel()/SetDateTickerLabel(value) {string}, specifies the format to display the bar's start and end margins while creating, moving or resizing it // DateTickerLabelVAlign/GetDateTickerLabelVAlign()/SetDateTickerLabelVAlign(value) {number}, specifies the vertical alignment of the date label, while create, resize or move the bar // DrawDateTicker/GetDrawDateTicker()/SetDrawDateTicker(value) {boolean}, shows or hides the chart's ticker to indicate the date-time being hovered // Links/GetLinks() {exontrol.Gantt.Links}, holds the control's links // ShowLinks/GetShowLinks()/SetShowLinks(value) {exontrol.ShowLinksEnum}, shows or hides the links between bars // Link/GetLink()/SetLink(value) {object}, defines the appearance of the links between bars // LinkStartFrom/GetLinkStartFrom()/SetLinkStartFrom(value) {object}, specifies the appearance of the link that starts from any selected-bar (outgoing links) // LinkEndTo/GetLinkEndTo()/SetLinkEndTo(value) {object}, specifies the appearance of the link that ends to any selected-bar (incoming links) // LinkUnselected/GetLinkUnselected()/SetLinkUnselected(value) {object}, specifies the appearance of the link not related to any selected-bar (unselected links) // OverviewVisible/GetOverviewVisible()/SetOverviewVisible(value) {exontrol.Gantt.OverviewVisibleEnum}, specifies whether the chart's overview layout is visible or hidden // OverviewHeight/GetOverviewHeight()/SetOverviewHeight(value) {number}, indicates the height of the control's overview // OverviewShowSelectDates/GetOverviewShowSelectDates()/SetOverviewShowSelectDates(value) {boolean}, shows or hides the selected-date(s) on the control's overview // OverviewToolTip/GetOverviewToolTip()/SetOverviewToolTip(value) {string}, indicates the format of the tooltip being shown while the cursor hovers the chart's overview area // AllowOverviewZoom/GetAllowOverviewZoom()/SetAllowOverviewZoom(value) {boolean}, indicates whether the chart's overview shows the time-scales the user can zoom to // OverviewZoomCaption/GetOverviewZoomCaption()/SetOverviewZoomCaption(value) {string}, specifies the captions for each zooming time-unit // OverviewZoomUnit/GetOverviewZoomUnit()/SetOverviewZoomUnit(value) {number}, specifies the width of the time-unit scale within the chart's overview // HistogramVisible/GetHistogramVisible()/SetHistogramVisible(value) {boolean}, specifies whether the chart's histogram is visible or hidden // HistogramHeight/GetHistogramHeight()/SetHistogramHeight(value) {number}, indicates the height of the control's histogram // HistogramView/GetHistogramView()/SetHistogramView(value) {exontrol.Gantt.HistogramViewEnum}, specifies the items the control's histogram displays data for // HistogramUnitScale/GetHistogramUnitScale()/SetHistogramUnitScale(value) {exontrol.UnitEnum}, specifies the unit-scale to determine the effort of bars with variable-effort (effort of expression/string type) // HistogramUnitCount/GetHistogramUnitCount()/SetHistogramUnitCount(value) {number}, specifies the time-scale count to determine the effort of bars with variable-effort (effort of expression/string type) // HistogramZOrder/GetHistogramZOrder()/SetHistogramZOrder(value) {string}, specifies the z-order of the bars to be shown within the chart's histogram // GetHistogramValue(date) {string}, gets the value in the histogram at specified date-time. The HistogramValue("min") returns the minimum cumulated histogram value excepts 0. The HistogramValue("max") returns the maximum cumulated histogram value. // OverlaidOnMoving/GetOverlaidOnMoving()/SetOverlaidOnMoving(value) {boolean}, specifies whether the overlaid bars are re-arranged while the user moves or resizes at runtime a bar // StartPrintDate/GetStartPrintDate() {Date}, get the minimum-date for the entire chart (lower date) // EndPrintDate/GetEndPrintDate() {Date}, gets the maximum-date for the entire chart (upper date) // // Also, the exontrol.Gantt.Chart object supports the following methods: // // ScrollTo(date, align), scrolls the chart to ensure that specified date fits the chart's area // Zoom(start, end, changeUnitWidth), zooms the chart so the start-end interval fits the client's area. // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Gantt.Level) // // The exontrol.Gantt.Level object describes a level in the chart // // The exontrol.Gantt.Level type provides the following fields/methods: // // Options/GetOptions()/SetOptions(value) {exontrol.Gantt.LevelOptions}, specifies the options of the chart's level // Label/GetLabel()/SetLabel(value) {string}, defines the format to display the level's label. // Unit/GetUnit()/SetUnit(value) {exontrol.UnitEnum}, specifies the level's unit-scale // Count/GetCount()/SetCount(value) {number}, indicates the count of unit-scale(s) to display at once // Align/GetAlign()/SetAlign(value) {exontrol.AlignEnum}, aligns the label relative to its level // Shape/GetShape()/SetShape(value) {any}, specifies the shape to apply on the level's background // DrawGridLines/GetDrawGridLines()/SetDrawGridLines(value) {boolean}, shows or hides the grid lines for the current level // DrawTickLines/GetDrawTickLines()/SetDrawTickLines(value) {exontrol.Gantt.LevelLineEnum}, shows or hides the tick lines for the current level // DrawTickLinesFrom/GetDrawTickLinesFrom()/SetDrawTickLinesFrom(value) {string}, shows additional tick lines from a different level (chart's header only) // FormatLabel/GetFormatLabel()/SetFormatLabel(value) {string}, formats the labels based on the specified formula // ToolTip/GetToolTip()/SetToolTip(value) {string}, specifies the level's tooltip // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Gantt.LevelOptions) // // The exontrol.Gantt.LevelOptions object indicates the options for the chart's level // // The exontrol.Gantt.LevelOptions type provides the following fields: // // label {string}, indicates the format of the level's label // unit {exontrol.UnitEnum}, specifies the level's time-unit // count {number}, indicates the count of unit-scale within the level to display at once // align {exontrol.AlignEnum}, aligns the level's label // shape {any}, specifies the shape to apply on the level's background // drawGridLines {boolean}, shows or hides the grid lines for the current level // drawTickLines {boolean}, shows or hides the tick lines for the current level (chart's header only) // drawTickLinesFrom {string}, shows additional tick lines from another level (chart's header only) // formatLabel {string}, formats the labels based on the specified formula // tooltip {string}, specifies the level's tooltip // /////////////////////////////////////////////////////////// exontrol.Gantt.LevelOptions = { /** * @description The label field indicates the format to display the level's label. * @type {string} Specifies the format to display the level's label. * * The label field supports alternative HTML labels being separated by "<|>" and values for Count and Unit being separated by "<||>". * By alternate HTML label we mean that you can define a list of HTML labels that may be displayed in the chart's header based on the space * allocated for the time-unit. In other words, the control chooses automatically the alternate HTML label to be displayed for best fitting * in the portion of the chart where the time-unit should be shown. * * The label field format is "ALT1[<|>ALT2<|>...[<||>COUNT[<||>UNIT]]]" where * * ALT defines a HTML label * COUNT specifies the value for the count field * UNIT field indicates the value for the unit field * * (the parts delimited by [] brackets may miss) * * The ALT part of the label supports ex-HTLM tags such as (, , , ...) and <%DATE%> tags as follows: * * <%d%> - Day of the month in one or two numeric digits, as needed (1 to 31) * <%dd%> - Day of the month in two numeric digits (01 to 31) * <%d1%> - First letter of the weekday (S to S) * <%loc_d1%> - Indicates day of week as a one-letter abbreviation using the current user settings * <%d2%> - First two letters of the weekday (Su to Sa) * <%loc_d2%> - Indicates day of week as a two-letters abbreviation using the current user settings * <%d3%> - First three letters of the weekday (Sun to Sat) * <%loc_d3%> equivalent with <%loc_ddd%> * <%ddd%> - First three letters of the weekday (Sun to Sat) * <%loc_ddd%> - Indicates the day of week as a three-letter abbreviation using the current user regional and language settings * <%dddd%> - Full name of the weekday (Sunday to Saturday) * <%loc_dddd%> - Indicates day of week as its full name using the current user regional and language settings * <%i%> - Displays the number instead the date * <%w%> - Day of the week (1 to 7) * <%ww%> - Week of the year (1 to 53) * <%m%> - Month of the year in one or two numeric digits, as needed (1 to 12) * <%mr%> - Month of the year in Roman numerals, as needed (I to XII) * <%mm%> - Month of the year in two numeric digits (01 to 12) * <%m1%> - First letter of the month (J to D) * <%loc_m1%> - Indicates month as a one-letter abbreviation using the current user settings * <%m2%> - First two letters of the month (Ja to De) * <%loc_m2%> - Indicates month as a two-letters abbreviation using the current user settings * <%m3%> - First three letters of the month (Jan to Dec) * <%loc_m3%> - equivalent with <%loc_mmm%> * <%mmm%> - First three letters of the month (Jan to Dec) * <%loc_mmm%> - Indicates month as a three-letter abbreviation using the current user regional and language settings * <%mmmm%> - Full name of the month (January to December) * <%loc_mmmm%> - Indicates month as its full name using the current user regional and language settings * <%q%> - Date displayed as the quarter of the year (1 to 4) * <%y%> - Number of the day of the year (1 to 366) * <%yy%> - Last two digits of the year (01 to 99) * <%yyyy%> - Full year (0100 to 9999) * <%hy%> - Date displayed as the half of the year (1 to 2) * <%loc_g%> - Indicates period/era using the current user regional and language settings * <%loc_gg%> - Indicates period/era using the current user regional and language settings * <%loc_sdate%> - Indicates the date in the short format using the current user regional and language settings * <%loc_ldate%> - Indicates the date in the long format using the current user regional and language settings * <%loc_dsep%> - Indicates the date separator using the current user regional and language settings (/) * <%h%> - Hour in one or two digits, as needed (0 to 23) * <%hh%> - Hour in two digits (00 to 23) * <%h12%> - Hour in 12-hour time format, in one or two digits - [0(12),11] * <%hh12%> - Hour in 12-hour time format, in two digits - [00(12),11] * <%n%> - Minute in one or two digits, as needed (0 to 59) * <%nn%> - Minute in two digits (00 to 59) * <%s%> - Second in one or two digits, as needed (0 to 59) * <%ss%> - Second in two digits (00 to 59) * <%AM/PM%> - Twelve-hour clock with the uppercase letters "AM" or "PM", as appropriate * <%loc_AM/PM%> - Indicates the time marker such as AM or PM using the current user regional and language settings * <%loc_A/P%> - Indicates the one character time marker such as A or P using the current user regional and language settings * <%loc_time%> - Indicates the time using the current user regional and language settings * <%loc_time24%> - Indicates the time in 24 hours format without a time marker using the current user regional and language settings * <%loc_tsep%> - indicates the time separator using the current user regional and language settings (:) * <%loc_y%> - Represents the Year only by the last digit, using current regional settings * <%loc_yy%> - Represents the Year only by the last two digits, using current regional settings. A leading zero is added for single-digit years * <%loc_yyyy%> - Represents the Year by a full four or five digits, depending on the calendar used. Thai Buddhist and Korean calendars have five-digit years. The "yyyy" pattern shows five digits for these two calendars, and four digits for all other supported calendars. Calendars that have single-digit or two-digit years, such as for the Japanese Emperor era, are represented differently. A single-digit year is represented with a leading zero, for example, "03". A two-digit year is represented with two digits, for example, "13". No additional leading zeros are displayed * * @example * * "" {string}, displays no label * "<|><%d1%><|><%d2%><|><%d3%><|><%dddd%><|><%d3%>, <%m3%> <%d%>, '<%yy%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%><||>1<||>4096" {string}, indicates a list of 7 alternate HTML labels, the Count property set on 1 and the Unit property set on exDay (4096) */ label: null, /** * @description The unit field defines the level's time-unit * @type {exontrol.UnitEnum} Specifies the level's time-unit. * @example * * 4096 or exontrol.UnitEnum.exDay {number}, indicates that the level displays days */ unit: null, /** * @description The count field counts the time-units in the level * @type {number} Counts the time-units in the level * @example * * 2 {number}, specifies that the level displays every second time-unit */ count: null, /** * @description The align field aligns the label of the level * @type {exontrol.AlignEnum} Specifies the label's alignment * * The exontrol.AlignEnum type supports the following values: * * exAlignTop (0x00), justifies the object to the top of the rectangle * exAlignLeft (0x00), aligns object to the left * exAlignCenter (0x01), centers object horizontally in the rectangle * exAlignRight (0x02), aligns object to the right * exAlignVCenter (0x04), centers object vertically * exAlignBottom (0x08), justifies the object to the bottom of the rectangle * * The align field supports the additional flags as follows: * * 16 (0x10), specifies whether the level's label is always shown inside the chart. * * @example * * null {null}, centers the label for the base level, and aligns to left for any other (equivalent of 0x15) * 4 (0x04) {number}, vertical centers the label, and left aligns the label * 24 (0x16) {number}, vertical centers the label, and right aligns the label (inside the chart) * */ align: null, /** * @description The shape field defines the shape to apply on the level's background * @type {any} A string expression that defines shape's name within the exontrol.Shape.Tree or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type * * @example * * "" {string}, null {null}, no shape is applied * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ shape: null, /** * @description The drawGridLines field shows or hides the grid lines for the current level * @type {boolean} Specifies whether the grid lines for the current level are visible or hidden. The grid lines are shown in the items section only. * * @example * * null {null}, shows the grid lines for the level above base-level * true {boolean}, shows the grid lines for the current level */ drawGridLines: null, /** * @description The drawTickLines field shows or hides the tick lines for the current level (chart's header only) * @type {exontrol.Gantt.LevelLineEnum} Specifies whether the tick lines for the current level are visible or hidden. * * The exontrol.Gantt.LevelLineEnum type supports the following values and flags: * * exLevelNoLine(0), no line is shown * exLevelDefaultLine(-1), indicates the default grid line style * exLevelDotLine(1), indicates a dotted line. For vertical/tick lines, it can be combined with exLevelLowerHalf, exLevelUpperHalf or exLevelMiddleLine. Can be combined with exLevelLowerHalf, exLevelUpperHalf or exLevelMiddleLine option. * exLevelSolidLine(2), indicates a solid line. For vertical/tick lines, it can be combined with exLevelLowerHalf, exLevelUpperHalf or exLevelMiddleLine. Can be combined with exLevelLowerHalf, exLevelUpperHalf or exLevelMiddleLine option. * exLevelLowerHalf(0x10), indicates that the line is shown in the lower half of the level. For vertical/tick lines, it can be combined with exLevelDotLine or exLevelSolidLine * exLevelUpperHalf(0x20), indicates that the line is shown in the upper half of the level. For vertical/tick lines, it can be combined with exLevelDotLine or exLevelSolidLine * exLevelMiddleLine(0x40), indicates that the line is shown in the middle. For vertical/tick lines, it can be combined with exLevelDotLine or exLevelSolidLine * exLevelQuarterHeight(0x100), indicates that the line is shown as a quarter of the full height. Specify the exLevelQuarterHeight option to show shorter tick lines in the chart's level. Can be combined with exLevelLowerHalf, exLevelUpperHalf or exLevelMiddleLine option * * @example * * 0 or exontrol.Gantt.LevelLineEnum.exLevelNoLine {number}, hides the level's tick lines * 0x22 or exontrol.Gantt.LevelLineEnum.exLevelSolidLine | exontrol.Gantt.LevelLineEnum.exLevelUpperHalf {number}, shows the level's tick lines in the upper-half as solid lines * */ drawTickLines: null, /** * @description The drawTickLinesFrom field shows additional tick lines from another level (chart's header only) * @type {string} Indicates two-values separated by comma character as "level,type" format, where * * level {number}, specifies the index of the level to show additional tick lines from * type {exontrol.Gantt.LevelLineEnum}, specifies the type of tick lines to display * * @example * * "0,2" {string}, displays additional tick-lines from level (0-index) as solid lines(exLevelSolidLine(2)) * */ drawTickLinesFrom: null, /** * @description The formatLabel field formats the labels based on the specified formula * @type {string} Specifies an expression that defines the formula to format the label. The expression supports the following keywords: * * "value", gets the label of the level (string) as provided with no format * "dvalue", indicates the date-time value of the unit in the label to format * * @example * * "weekday(dvalue) = 1 ? (` ` + value + ` `) : value", shows every Monday in black and white * "((weekday(dvalue) in (0,6)) ? `` : ``) + value" {string}, shows every Saturday and Sunday in gray * */ formatLabel: null, /** * @description The toolTip field indicates level's tooltip. * @type {string} Specifies the format to display the level's tooltip. * * The toolTip field of the toolTip supports ex-HTLM tags such as (, , , ...) and <%DATE%> tags as follows: * * <%d%> - Day of the month in one or two numeric digits, as needed (1 to 31) * <%dd%> - Day of the month in two numeric digits (01 to 31) * <%d1%> - First letter of the weekday (S to S) * <%loc_d1%> - Indicates day of week as a one-letter abbreviation using the current user settings * <%d2%> - First two letters of the weekday (Su to Sa) * <%loc_d2%> - Indicates day of week as a two-letters abbreviation using the current user settings * <%d3%> - First three letters of the weekday (Sun to Sat) * <%loc_d3%> equivalent with <%loc_ddd%> * <%ddd%> - First three letters of the weekday (Sun to Sat) * <%loc_ddd%> - Indicates the day of week as a three-letter abbreviation using the current user regional and language settings * <%dddd%> - Full name of the weekday (Sunday to Saturday) * <%loc_dddd%> - Indicates day of week as its full name using the current user regional and language settings * <%i%> - Displays the number instead the date * <%w%> - Day of the week (1 to 7) * <%ww%> - Week of the year (1 to 53) * <%m%> - Month of the year in one or two numeric digits, as needed (1 to 12) * <%mr%> - Month of the year in Roman numerals, as needed (I to XII) * <%mm%> - Month of the year in two numeric digits (01 to 12) * <%m1%> - First letter of the month (J to D) * <%loc_m1%> - Indicates month as a one-letter abbreviation using the current user settings * <%m2%> - First two letters of the month (Ja to De) * <%loc_m2%> - Indicates month as a two-letters abbreviation using the current user settings * <%m3%> - First three letters of the month (Jan to Dec) * <%loc_m3%> - equivalent with <%loc_mmm%> * <%mmm%> - First three letters of the month (Jan to Dec) * <%loc_mmm%> - Indicates month as a three-letter abbreviation using the current user regional and language settings * <%mmmm%> - Full name of the month (January to December) * <%loc_mmmm%> - Indicates month as its full name using the current user regional and language settings * <%q%> - Date displayed as the quarter of the year (1 to 4) * <%y%> - Number of the day of the year (1 to 366) * <%yy%> - Last two digits of the year (01 to 99) * <%yyyy%> - Full year (0100 to 9999) * <%hy%> - Date displayed as the half of the year (1 to 2) * <%loc_g%> - Indicates period/era using the current user regional and language settings * <%loc_gg%> - Indicates period/era using the current user regional and language settings * <%loc_sdate%> - Indicates the date in the short format using the current user regional and language settings * <%loc_ldate%> - Indicates the date in the long format using the current user regional and language settings * <%loc_dsep%> - Indicates the date separator using the current user regional and language settings (/) * <%h%> - Hour in one or two digits, as needed (0 to 23) * <%hh%> - Hour in two digits (00 to 23) * <%h12%> - Hour in 12-hour time format, in one or two digits - [0(12),11] * <%hh12%> - Hour in 12-hour time format, in two digits - [00(12),11] * <%n%> - Minute in one or two digits, as needed (0 to 59) * <%nn%> - Minute in two digits (00 to 59) * <%s%> - Second in one or two digits, as needed (0 to 59) * <%ss%> - Second in two digits (00 to 59) * <%AM/PM%> - Twelve-hour clock with the uppercase letters "AM" or "PM", as appropriate * <%loc_AM/PM%> - Indicates the time marker such as AM or PM using the current user regional and language settings * <%loc_A/P%> - Indicates the one character time marker such as A or P using the current user regional and language settings * <%loc_time%> - Indicates the time using the current user regional and language settings * <%loc_time24%> - Indicates the time in 24 hours format without a time marker using the current user regional and language settings * <%loc_tsep%> - indicates the time separator using the current user regional and language settings (:) * <%loc_y%> - Represents the Year only by the last digit, using current regional settings * <%loc_yy%> - Represents the Year only by the last two digits, using current regional settings. A leading zero is added for single-digit years * <%loc_yyyy%> - Represents the Year by a full four or five digits, depending on the calendar used. Thai Buddhist and Korean calendars have five-digit years. The "yyyy" pattern shows five digits for these two calendars, and four digits for all other supported calendars. Calendars that have single-digit or two-digit years, such as for the Japanese Emperor era, are represented differently. A single-digit year is represented with a leading zero, for example, "03". A two-digit year is represented with two digits, for example, "13". No additional leading zeros are displayed * * @example * * "" {string}, displays no tooltip * "<%ddd%> <%m%>/<%d%>/<%yyyy%>" {string}, displays the level's date such as "Sun 12/2/2007" */ toolTip: null } /////////////////////////////////////////////////////////// (exontrol.Gantt.BarOptions) // // The exontrol.Gantt.BarOptions type holds all options a bar can display or own // // The exontrol.Gantt.BarOptions type defines the following fields: // // name {string}, defines the bar's name // shortcut {string}, defines the bar's shortcut name, or an alternate name to refer the bar // shape {any}, defines the bar's shape // height {string}, defines the bar's height // def {object}, defines default options (caption, selectable, ...) for the current type of bar // histogramShape {any}, defines the shape to show the bar into the control's histogram // histogramType {exontrol.Gantt.HistogramTypeEnum}, specifies the type of the bar's histogram, or how the bar's effort is represented into the control's histogram // histogramCriticalColor {string}, specifies the color to show the bars that exceed the critical value // histogramCriticalValue {number}, specifies the bar's critical value // showHistogramValues {string}, defines the formula/expression that returns the color to display the bar's histogram value // formatHistogramValues {string}, defines the format to show the bar's value in the histogram // histogramGridLinesColor {string}, indicates the color to show histogram's grid lines // histogramRulerLinesColor {string}, indicates the color to show histogram's ruler lines // histogramItems {number}, specifies the number of items being represented in the histogram when overload histogram is shown // histogramCumulativeColors {string}, indicates the colors (separated by comma character) the histogram may show when it displays bars using cumulative type // histogramCumulativeOriginalColorBars {exontrol.Gantt.HistogramCumulativeOriginalColorBarsEnum}, specifies whether the original bar's color is changed accordingly to the cumulative histogram // histogramCumulativeShowLegend {number}, specifies the index of the column to display the legend for the cumulative bars in the histogram // overlaidType {exontrol.Gantt.OverlaidBarsTypeEnum}, specifies how overlaid bars are arranged // overlaidGroup {string}, specifies the list of bars beside the current bar that may cover each other // overlaid {object}, indicates options for the specified overlaid type // overviewColor {string}, indicates the color of the bar within the control's overview panel // /////////////////////////////////////////////////////////// /** * @description Specifies the options (name, shape, height, ...) that defines the control's bar */ exontrol.Gantt.BarOptions = { /** * @description The name field specifies the name * @type {string} Specifies the name of the bar. * * If the name includes the '%' character, it defines a bar of percent-type ("A%B"). * * A bar of percent-type displays and handles inner progress-bar, according with the bar's "percent" option. * * The A of "A%B" format can be: * * the name of already added bar, that defines the base-bar or the background-bar, such as "Task" * the index of already added bar, that defines the base-bar or the background-bar, such as 0 * * The B of "A%B" format can be: * * the name of already added bar, that defines the progress-bar or the foreground-bar, such as "Progress" * the index of already added bar, that defines the progress-bar or the foreground-bar, such as 0 * the shape to show the progress-bar or the foreground-bar as * * "red" {string}, fills the progress-bar in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the progress-bar in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the progress-bar. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * * @example * * "Task" {string}, names the bar to "Task" * "Task%Progress" {string}, defines a "Task" bar of percent-type, so it displays the bar's "percent" value using the "Progress" shape * "Summary%Task" {string}, defines a "Summary" bar of percent-type, so it displays the bar's "percent" value using another "Task" shape * "Task%red" {string}, defines a "Task" bar of percent-type, so it displays the bar's "percent" value using the "red" color * "Task%Button" {string}, defines a "Task" bar of percent-type, so it displays the bar's "percent" value using the "Button" already-defined shape * 'Summary%{"fillColor": "rgba(0,0,0,0.5)", "client": "[,y+2*height/3+3,,height/3]", "primitive": "round"}' {string}, defines a "Summary" bar of percent-type, so it displays the bar's "percent" value using a predefined shape */ name: null, /** * @description The shortcut field specifies the shortcut name, or an alternate name to refer the bar * @type {string} Specifies the shortcut name of the bar. * * @example * * "Task" {string}, renames the bar to "Task" */ shortcut: null, /** * @description The shape field defines the shape to apply on the bar's background * @type {any} A string expression that defines shape's name within the exontrol.Shape.Tree or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type * * @example * * "" {string}, null {null}, no shape is applied * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ shape: null, /** * @description The height field specifies the height of the bar * @type {number} Specifies the height of the bar * * @example * * null {null}, the bar's height is 16 by default * 0 {number}, defines a zero-height bar (bar is hidden) * 12 {number}, the bar's height is 12-pixels tall */ height: 16, /** * @description The def field defines default options for the current type of the bars * @type {object} Specifies a default options for the current type of the bars, as an object of exontrol.Gantt.ItemBarOptions type * * @example * * null {null}, resets all default-options * {selectable: false} {object}, makes unselectable all bars of the current type * {caption: "new"} {object}, all bars of the current type displays "new" caption */ def: null, /** * @description The histogramShape field defines the shape to apply on the bar's background, when it is represented into the control's histogram * @type {any} A string expression that defines shape's name within the exontrol.Shape.Tree or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type * * @example * * "" {string}, null {null}, no shape is applied (the bar is not represented into the control's histogram) * "red" {string}, shows rectangular-red histogram * '{"frameColor": "black", "primitive": "Spline"}' {string}, shows spline-curve histogram * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace * {frameColor: "blue", frameSize: 3, fillColor: "rgba(0,0,255,0.5)", primitive: "Spline"} {object}, shows filled spline-curve histogram */ histogramShape: null, /** * @description The histogramType field specifies the type of the bar's histogram, or how the bar's effort is represented into the control's histogram * @type {exontrol.Gantt.HistogramTypeEnum} Indicates the type of the bar's histogram. * * The exontrol.Gantt.HistogramTypeEnum type supports the following values and flags: * * exHistOverload(0), shows the overloads and subloads of your current planning situation (the histogram-graph shows the count of specified tasks day by day, or unit by unit) * exHistOverAllocation(1), shows in percents, the over-allocations of your current planning situation using the effort of the task divided by the length of the task (effort/length). The exHistOverAllocation flag can be combined with exHistOverAllocationFixed or exHistOverAllocationMultiply. The work-load for a task is computed as exBarEffort / length of the bar. The work-load for the task is the work effort / task duration. (i.e. If item.exBarEffort = 1 and bar's length is 10 days, then the work-load = 0.1 or 10%). The histogram- graph shows the sum of the work-loads (the work-load of each task item is added, unit by unit) * exHistCumulative(0x100), bars in the histogram show cumulative colors (the exHistCumulative can be applied to exHistOverload and exHistOverAllocation values. For instance, the exHistOverAllocation + exHistCumulative defines a cumulative histogram for exHistOverAllocation type) * exHistOverAllocationFixed(0x200), shows in percents, the over-allocations of your current planning situation using the effort of the task (effort) (the exHistOverAllocationFixed can be combined with the exHistOverAllocation flag only) * exHistOverAllocationMultiply(0x400), shows in percents, the over-allocations of your current planning situation using the effort of the task multiplied by the length of the task (effort * length) (the exHistOverAllocationFixed can be combined with the exHistOverAllocation flag only) * * @example * * 0 or exontrol.Gantt.HistogramTypeEnum.exHistOverload {number} shows the overloads and subloads of your current planning situation * 1 or exontrol.Gantt.HistogramTypeEnum.exHistOverAllocation {number} shows the overloads and subloads of your current planning situation, in percents * */ histogramType: 0, /** * @description The histogramCriticalColor field specifies the color to show the bars that exceed the critical value * @type {string} Specifies the color to show the bars that exceed the critical value * @example * * "" {string}, hides the critical value * "red" {string}, shows bars that exceed the critical value in red * "rgba(255,0,0,0.5)" {string}, shows bars that exceed the critical value in partial-transparent red */ histogramCriticalColor: "red", /** * @description The histogramCriticalValue field specifies the bar's critical value * @type {number} Specifies the bar's critical value * @example * * 0 {number}, any bar is critical * 10 {number}, any bar that exceeds the value of 10 into histogram is critical */ histogramCriticalValue: 100, /** * @description The showHistogramValues field defines the formula/expression that returns the color to display the bar's histogram value * @type {string} Specifies an expression that defines the color to show the bar's value in the histogram. The expression supports the following keywords: * * "value", defines the cumulative bar's effort or also called the bar's histogram value * * @example * * "0", "" {string} or null {null}, the bar's histogram value is never shown * "1" {string}, the bar's histogram value is always shown (#1) * "'green'" {string}, the bar's histogram value is always shown in green (please pay attention to green which is quoted by ' characters) * "value > 5 ? 'red' : 0" {string}, the bar's histogram value is displayed in red only if it greater than 5 * "value < 5 ? '#FF' : 'rgba(0,0,0,0.5)'" {string}, shows the bar's histogram value in blue if it less than 5, else in partial-gray * */ showHistogramValues: null, /** * @description The formatHistogramValues field formats the bar's value in the histogram * @type {string} Specifies the format to show bar's value in the histogram. The expression supports the following keywords: * * "value", defines the cumulative bar's effort or also called the bar's histogram value * * @example * * "" or "value" {string}, specifies that the bar's histogram value is displayed as it is (unformatted) * "value + '%'" {string}, displays the value followed by an percent character * "value format '1'" {string}, displays the value using a single digit * "value = int(value) ? value : value format ''" {string}, displays the value without digits if integer (.00), and with two digits for any other type * */ formatHistogramValues: null, /** * @description The histogramGridLinesColor field specifies the color to show the histogram's grid lines * @type {string} Specifies the color to show the histogram's grid lines * @example * * "" {string}, no grid lines are shown * "gray" {string}, shows the histogram's grid lines in gray * "rgba(0,0,0,0.5)" {string}, shows the histogram's grid lines in partial-transparent black */ histogramGridLinesColor: null, /** * @description The histogramRulerLinesColor field specifies the color to show the histogram's ruler lines * @type {string} Specifies the color to show the histogram's ruler lines * @example * * "" {string}, no ruler lines are shown * "black" {string}, shows the histogram's ruler lines in black * "rgba(0,0,0,0.5)" {string}, shows the histogram's ruler lines in partial-transparent black */ histogramRulerLinesColor: null, /** * @description The histogramItems field specifies the number of items being represented in the histogram when overload histogram is shown * @type {number} Indicates the number of items to display when overload histogram is shown, as explained: * * negative {number}, the absolute value represents the fixed number of units being displayed on the vertical axis * 0 {number}, the height of the units being displayed in the histogram is computed, so all units fit the histogram area * positive {number}, indicates the number of minimum units being displayed on the vertical axis * * @example * * 0 {number}, re-scales the histogram to fit all histogram-units * 10 {number}, prepares the histogram to display up to 10 items (rescales the histogram to fit all, if it requires more) * -10 {number}, the histogram always displays 10 items */ histogramItems: 0, /** * @description The histogramCumulativeColors field indicates the colors (separated by comma character) the histogram may show when it displays bars using cumulative type (only if the bar's histogramType option includes exHistCumulative flag, or the chart's histogramView option includes the exHistogramGroupCumulative flag ) * @type {string} Specifies the colors (separated by comma character) the histogram may show when it displays bars using cumulative type * * @example * * "" {string}, no cumulative-color is applied * "red,green,blue" {string}, the histogram shows the bars of the current type, in red, green and blue */ histogramCumulativeColors: "blue,red,green,#00FFFF,#FF00FF,#FFFF00", /** * @description The histogramCumulativeOriginalColorBars field specifies specifies whether the original bar's color is changed accordingly to the cumulative histogram * @type {exontrol.Gantt.HistogramCumulativeOriginalColorBarsEnum} Indicates specifies whether the original bar's color is changed accordingly to the cumulative histogram * * The exontrol.Gantt.HistogramCumulativeOriginalColorBarsEnum type supports the following values: * * exShowCumulativeColor(-1), the color for the bar is not changed, but its reflection in the histogram shows the corresponding cumulative color * exChangeColor(0), the color for the bar and its reflection in the histogram is showing the corresponding cumulative color * exKeepOriginalColor(1), the color for the bar and its reflection in the histogram is not changed * * @example * * null {null} or 0 or exontrol.Gantt.HistogramCumulativeOriginalColorBarsEnum.exChangeColor {number}, the color for the bar and its reflection in the histogram is showing the corresponding cumulative color * 1 or exontrol.Gantt.HistogramCumulativeOriginalColorBarsEnum.exChangeColor {number}, the color for the bar and its reflection in the histogram is not changed */ histogramCumulativeOriginalColorBars: -1, /** * @description The histogramCumulativeShowLegend field specifies the index of the column to display the legend for the cumulative bars in the histogram. * @type {number} Specifies the index of the column to display the legend for the cumulative bars in the histogram. * * @example * * -1 {number}, no histogram-legend is displayed for the current type of bars * 1 {number}, the column with the index 1, provides the histogram-legend for the current type of bars. */ histogramCumulativeShowLegend: 0, /** * @description The overlaidType field specifies specifies how overlaid bars are arranged * @type {exontrol.Gantt.OverlaidBarsTypeEnum} Indicates how overlaid bars are arranged * * The exontrol.Gantt.OverlaidBarsTypeEnum type supports the following values and flags: * * exOverlaidBarsNone(0), no overlaid bars are shown * exOverlaidBarsOffset(1), the overlaid bars are shown using a different vertical offset. The Overlaid(exOverlaidBarsOffset) specifies the vertical offset, in pixels, to display the overlaid bars. This option does NOT change the height of the item. * exOverlaidBarsIntersect(2), the overlaid portion is shown using a different type of bar. The Overlaid(exOverlaidBarsIntersect) specifies the name of the bar to be displayed on the portion that laid over bars. This option does NOT change the height of the item. * exOverlaidBarsStack(3), the bars that covers each other are shown as a stack. The Overlaid(exOverlaidBarsStack) specifies the distance in pixels between two bars that covers each other. This option changes the height of the item so the bars that covers each other are displayed entirely. * exOverlaidBarsCascade(4), the bars gets arranged as a cascade with the z-order being indicated by ItemBar(exBarOverlaidCascade) key. Arrange the bars on the same level for those with the same exBarOverlaidCascade key, and on a different level for bars with a different exBarOverlaidCascade key. This option changes the height of the item so the bars that covers each other are displayed entirely. * exOverlaidBarsTransparent(0x100), the overlaid portion is shown using a semi-transparent color. The Overlaid(exOverlaidBarsTransparent) specifies the percent of transparency being applied to the covered bar. * exOverlaidBarsStackAutoArrange(0x200), the overlaid stack is automatically arranged for best fit in the item. The exOverlaidBarsStackAutoArrange flag can be combined with exOverlaidBarsStack flag only. * exOverlaidBarsIncludeCaption(0x1000), the overlaid mechanism includes the caption for bars * exOverlaidBarsStrict(0x2000), the overlaid mechanism includes only bars in the same group ( OverlaidGroup property ) but of different types. * * @example * * 0 {number} or null {null}, no overlaid bars are shown * 4 or exontrol.Gantt.OverlaidBarsTypeEnum.exOverlaidBarsCascade {number}, the bars gets arranged as a cascade with the z-order being indicated by ItemBar(exBarOverlaidCascade) key. */ overlaidType: 0, /** * @description The overlaidGroup field specifies the list of bars beside the current bar that may cover each other * @type {string} Indicates the list of bars beside the current bar that may cover each other (separated by comma character) * * @example * * "" {string} or null {null}, only bars of the same type get arranged based on the overlaidType property. * "Task,Milestone,Deadline" {string} , all these type of bars get arranged based on the overlaidType property. */ overlaidGroup: "", /** * @description The overlaid field specifies the options for the specified overlaid type * @type {object} Indicates the options for the specified overlaid type, as an object of {offset,intersect,stack,cascade} type * * @example * * null {null}, specifies the default option for all overlaid types * {cascade: 4} {object}, changes the vertical-distance between two bars that covers each other, when overlaidType is exOverlaidBarsCascade */ overlaid: { /** * @description The offset field specifies the vertical offset, to display the overlaid bars (it has effect for exOverlaidBarsOffset type only) * @type {number} Indicates the vertical offset, to display the overlaid bars * * @example * * null {null} or undefined {undefined}, no effect * 0 {number}, indicates no vertical-distance between overlaid bars */ offset: 4, /** * @description The intersect field specifies the shape to be shown on the portion that laid over bars (it has effect for exOverlaidBarsIntersect type only) * @type {any} Indicates the shape to be shown on the portion that laid over bars * * @example * * null {null} or undefined {undefined}, no effect * "" {string}, null {null}, no shape is applied * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ intersect: "red", /** * @description The stack field specifies the vertical-distance between two bars that covers each other (it has effect for exOverlaidBarsStack type only) * @type {number} Indicates the vertical offset, to display the overlaid bars * * @example * * null {null} or undefined {undefined}, no effect * 0 {number}, indicates no vertical-distance between overlaid bars */ stack: 4, /** * @description The cascade field specifies the vertical-distance between two bars that covers each other (it has effect for exOverlaidBarsCascade type only) * @type {number} Indicates the vertical offset, to display the overlaid bars * * @example * * null {null} or undefined {undefined}, no effect * 0 {number}, indicates no vertical-distance between overlaid bars */ cascade: 4 }, /** * @description The overviewColor field defines the color to show bars of the same type within the control's overview * @type {string} Specifies the color to show bars of the same type within the control's overview * * @example * * "" {string} or null{null}, the overview color of the item-bar is defined by the item-bar's overviewColor, bar's overviewColor, item-bar's shape fill, pattern or frame color (the first truly value in this order) * "transparent" or "rgba(0,0,0,0)" {string}, the overview representation of the bar is hidden * "red" or "#FF0000", "rgb(255,0,0)", "rgba(255,0,0,1)", ... {string}, the bar is shown in red within the control's overview */ overviewColor: null }; /////////////////////////////////////////////////////////// (exontrol.Gantt.Bar) // // The exontrol.Gantt.Bar object holds information(options) about a bar within the control. // // The Add(oBarOptions) method of exontrol.Gantt.Bars creates and adds a new bar into the control. // // The exontrol.Gantt.Bar object provides the following methods: // // Options/GetOptions()/SetOptions(value) {exontrol.Gantt.BarOptions}, indicates the bar's options (at once) such as visibility, name and so on // Remove(), removes the bar itself from columns collection ( equivalent of Columns.Remove(oColumn) method ) // Name/GetName()/SetName(value) {string}, specifies the bar's name // Shortcut/GetShortcut()/SetShortcut(value) {string}, specifies the bar's shortcut name, or an alternate name to refer the bar // Shape/GetShape()/SetShape(value) {any}, specifies the shape to apply on the bar's background // Height/GetHeight()/SetHeight(value) {any}, specifies the height of the bar // Def/GetDef()/SetDef(value) {object}, defines default options (caption, selectable, ...) for the current type of bar // HistogramShape/GetHistogramShape()/SetHistogramShape(value) {any}, specifies the shape to apply on the bar's background, when it is represented into the control's histogram // HistogramType/GetHistogramType()/SetHistogramType(value) {exontrol.Gantt.HistogramTypeEnum}, specifies the type of the bar's histogram, or how the bar's effort is represented into the control's histogram // HistogramCriticalColor/GetHistogramCriticalColor()/SetHistogramCriticalColor(value) {CSS Color}, indicates the color to show the bars that exceed the critical value // HistogramCriticalValue/GetHistogramCriticalValue()/SetHistogramCriticalValue(value) {number}, indicates bar's critical value // ShowHistogramValues/GetShowHistogramValues()/SetShowHistogramValues(value) {string}, defines the formula/expression that returns the color to display the bar's histogram value // FormatHistogramValues/GetFormatHistogramValues()/SetFormatHistogramValues(value) {string}, defines the format to show the bar's value in the histogram // HistogramGridLinesColor/GetHistogramGridLinesColor()/SetHistogramGridLinesColor(value) {CSS Color}, indicates the color to show histogram's grid lines // HistogramRulerLinesColor/GetHistogramRulerLinesColor()/SetHistogramRulerLinesColor(value) {CSS Color}, indicates the color to show histogram's ruler lines // HistogramItems/GetHistogramItems()/SetHistogramItems(value) {number}, specifies the number of items being represented in the histogram when overload histogram is shown // HistogramCumulativeColors/GetHistogramCumulativeColors()/SetHistogramCumulativeColors(value) {string}, indicates the colors (separated by comma character) the histogram may show when it displays bars using cumulative type // HistogramCumulativeOriginalColorBars/GetHistogramCumulativeOriginalColorBars()/SetHistogramCumulativeOriginalColorBars(value) {exontrol.Gantt.HistogramCumulativeOriginalColorBarsEnum}, specifies whether the original bar's color is changed accordingly to the cumulative histogram // HistogramCumulativeShowLegend/GetHistogramCumulativeShowLegend()/SetHistogramCumulativeShowLegend(value) {number}, specifies the index of the column to display the legend for the cumulative bars in the histogram // OverlaidType/GetOverlaidType()/SetOverlaidType(value) {exontrol.Gantt.OverlaidBarsTypeEnum}, specifies how overlaid bars are arranged // OverlaidGroup/GetOverlaidGroup()/SetOverlaidGroup(value) {string}, specifies the list of bars beside the current bar that may cover each other // Overlaid/GetOverlaid()/SetOverlaid(value) {object}, indicates options for the specified overlaid type, as an object of {offset,intersect,stack,cascade} type // OverviewColor/GetOverviewColor()/SetOverviewColor(value) {string}, indicates the color of the bar within the control's overview panel // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Gantt.Bars) // // The exontrol.Gantt.Bars object holds a collection of exontrol.Gantt.Bar objects. The exontrol.Gantt.Bar objects define the look and feel for bars in the chart's area. // // The exontrol.Gantt.Bars type inherits the exontrol.KAr type as follows: // // exontrol.Arr // exontrol.KAr // exontrol.Gantt.Bars // // The exontrol.Gantt.Bars type provides the following fields/methods: // // Count/GetCount() {number}, gets the count of bars within the collection // Item(name) {object}, gets the bar giving its index, name or reference, an object of exontrol.Gantt.Bar type // Items(range), {object} gets a collection of bars giving its index or name separated by comma character, as an object of exontrol.Arr([exontrol.Gantt.Bar]) type // Add(oBarOptions) {object}, adds a new type of bar to the control, and returns the reference to the newly created bar, as an object of exontrol.Gantt.Bar type // Remove(name), removes a bar from the collection // RemoveRange(name), removes multiple-bars at once // Clear(), removes all bars of the control // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Tree.BackgroundOptions) // // The exontrol.Tree.BackgroundOptions type holds display options to show different parts of the control // // The exontrol.Tree.BackgroundOptions type defines the following fields: // // psLinkEditSel {DisplayLinkType}, specifies the appearance to highlight the links being selected within an editable predecessor/successor column // psBarShapeEditSel {any}, specifies the shape to highlight the incoming/outgoing bars of the links being selected within an editable predecessor/successor column // /////////////////////////////////////////////////////////// exontrol.Tree.BackgroundOptions = { /** * @description The psLinkEditSel field specifies the appearance to highlight the links being selected within an editable predecessor/successor column. The
valueToItemBarProperty: "predecessor" or valueToItemBarProperty: "successor" defines a predecessor/successor column. The Predecessor/GetPredecessor()/SetPredecessor(value) property defines the list of predecessor bars, separated by comma. The Successor/GetSuccessor()/SetSuccessor(value) property defines the list of successor bars, separated by comma. * The psLinkEditSel object includes any of the following: * * type {exontrol.LinkTypeEnum}, specifies the type of the link as 0 (rectangular), 1 (direct), 2(straight) or 3(round) * dir {number}, specifies whether the link's direction is shown or hidden as 0 (hidden), 1(shows the direction/arrow where the link begins), 2(shows the direction where the link ends, default) or 3 shows the arrows in both sides * width {number}, specifies the link's width or size (1 by default) * color {string}, indicates the link's color (partial-black by default) * arrow {string}, indicates the arrow's color. If it is missing or not specified the arrow is shown using the link's color (gray by default) * arrowSize {number}, indicates the arrow's size. If it is missing or not specified the arrow's size is defined by link's width (1 by default) (since 2.2) * arrowShape {object}, defines an object of exontrol.Def.Shape type to customize the shape of the link's arrow (for instance shows the link's arrow as a circle instead of a triangle) (since 2.2) * style {array}, specifies the link's dash pattern to show the lines (solid by default) * startPos {any}, indicates the list of corners of in-element, the link can start from * endPos {any}, indicates the list of corners of out-element, the link can end to * * @type {DisplayLinkType} * @example: * * The following sample defines "round" links shown in red: * { * type: 3, * color: "red" * } * * @since 2.3 */ psLinkEditSel: null, /** * @description The psBarShapeEditSel field specifies the shape to highlight the incoming/outgoing bars of the links being selected within an editable predecessor/successor column. * The psBarShapeEditSel field can be any of the following: * * the shape's name within the exontrol.Shape.Tree or exontrol.Shape namespace * a CSS color * a JSON string-representation of an object of exontrol.Def.Shape type, for the column itself * an object of {normal,hover,click,disabled} type. The normal, hover, click and disabled are objects of exontrol.Def.Shape type * * @type {any} * @example * * "" {string}, null {null}, no shape is applied * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace * * @since 2.3 */ psBarShapeEditSel: null, } /////////////////////////////////////////////////////////// (exontrol.Tree.EditOptions) // // The exontrol.Tree.EditOptions type holds options to apply on the input element while editing the cell // // The exontrol.Tree.EditOptions type defines the following fields: // // change {boolean}, specifies whether the cell's value is updated as soon as user types into the element. // ttc {number}, indicates the time in ms to wait until cell's value is changed once the user alters the text within the element (should be used when change field is specified) // inner {object}, specifies an object whose properties (recursively) are applied to inner HTML-element // view {object}, specifies the view where the element should be displayed. The view field has no effect, if the control displays a single view. // thisArg {any}, indicates the value of "this" keyword during the validate callback (if not specified the thisArg refers to the current cell as an object of exontrol.Tree.Cell type) // validate {callback}, defines a function of callback(value) {boolean} type that validates the newly value // /////////////////////////////////////////////////////////// exontrol.Tree.EditOptions = { /** * @description The change field specifies whether the cell's value is updated as soon as user types into the element. * @type {boolean} Defines whether the cell's value is updated as soon as user types into the element. If the change field is missing/null/undefined/0/false the cell's value is updated as soon as user clicks outside of the element, or presses Enter key * @example * * false {boolean}, the cell's value is updated as soon as user clicks outside of the element, or presses Enter key (default) * true {boolean}, the cell's value is updated (invalidates the view's conditional format, computed fields, and so on) as soon as user types into the element (based on the ttc field) */ change: null, /** * @description The ttc field indicates the time in ms to wait until cell's value is changed once the user alters the text within the element * @type {number} Defines the time in ms to wait until cell's value is changed once the user alters the text within the element (has effect only if change field is specified/true) * @example * * 0 {number}, the cell's value is updated (invalidates the view's conditional format, computed fields, and so on) as soon as user types into the element * 1000 {number}, the cell's value is updated (invalidates the view's conditional format, computed fields, and so on) as soon as user types into the element, after 1 second */ ttc: null, /** * @description The inner field specifies an object whose properties (recursively) are applied to inner HTML-element * @type {object} Defines an object whose properties (recursively) are applied to inner HTML-element */ inner: { /** * @description The value field defines the default value of an element * @type {any} Defines the input's default value when edit begins (if not specified, the cell's value is used instead) * @example * * "1234" {string}, displays "1234" as soon as edit starts */ value: null, /** * @description The type field specifies the style of the element * @type {string} Indicates the style of the element * @example * * "number" {string}, defines a field for entering a number. * "range" {string}, defines a control for entering a number whose exact value is not important (like a slider control). * "password" {string}, defines a field for entering a password. */ type: null, /** * @description The style field holds CSS properties to apply to the input element * @type {object} Specifies an object that defines the CSS properties to apply to the input element */ style: { /** * @description The background field sets the input's background color * @type {string} Specifies the input's background color * @example * * "red" {string}, shows the input's background in red * "rgba(255,0,0,0.5)" {string}, shows the input's background in partial-red */ background: null, /** * @description The color field sets the input's foreground color * @type {string} Specifies the input's foreground color * @example * * "blue" {string}, shows the input's foreground in blue * "rgba(0,0,255,0.5)" {string}, shows the input's foreground in partial-blue */ color: null, /** * @description The font field specifies the font to display text within the input element * @type {string} Specifies the font to display text within the input element * @example * * "italic bold 12px Georgia" {string}, defines a different font to display */ font: null, /** * @description The border field sets the style of the input's border * @type {string} Specifies the style of the input's border * @example * * "1px solid blue" {string}, shows a blue solid-border color arround the input element * "2px inset" {string}, shows "inset" border arround the input element */ border: null, /** * @description The padding field sets the space between input's content and its border * @type {string} Specifies the space between input's content and its border * @example * * "2px" {string}, all four paddings are 2px */ padding: null } }, /** * @description The view field specifies the view where the element should be displayed. The view field has no effect, if the control displays a single view. * @type {object} An object of exontrol.Tree.TV type. Use the AddTreeView() method to add a new view to the control. You can use the onclick event's "view" field to specify the view where the edit is displayed. */ view: null, /** * @description The thisArg field indicates the value of "this" keyword during the validate callback. * @type {any} Specifies the value of "this" keyword during the validate callback (if not specified the thisArg refers to the current cell as an object of exontrol.Tree.Cell type) */ thisArg: null, /** * @description The validate field defines a function of callback(value) {boolean} type that validates the newly value. * @type {callback} defines a function of callback(value) {boolean} type. The new value is validated if the function returns true, else the value is not validated and so no change occurs within the cell's value. * @example * * function(value) { return value < 10; } {callback} validates only values less than 10 (in other words the cell's value is changed only if the value is less than 10) * function(value) { return this.SetValue(Math.min(10, value)) || true; } {callback}, validates any value, but always ensures that's not greater than 10 */ validate: null }; /////////////////////////////////////////////////////////// (exontrol.Tree.ExportOptions) // // The exontrol.Tree.ExportOptions type defines options to export the control's data into CSV format. A comma-separated values (CSV) file is a delimited text file that uses a comma to separate values. Each line of the file is a data record. Each record consists of one or more fields, separated by commas // // The exontrol.Tree.ExportOptions type supports the following fields: // // items {string}, specifies the items to export as one of the following values: // // "all", exports all items, including the hidden or collapsed items // "vis", exports only visible items ( child items of a collapsed item, or not-visible items ( item's height is 0 ) are not exported ) // "sel", exports only selected items // "chk", exports only checked items (within the first column of columns field, else column with the index 0) // // columns {any}, specifies a list of columns to export as explained below: // // columns {null}, exports all columns of the control // columns {number}, indicates a numeric value that defines the index of the column to export // columns {string}, specifies a list of index/identifier/key/caption/plain-caption, separated by comma character // columns {exontrol.Tree.Column}, specifies the object reference to the column to export // // rtrim {boolean}, specifies whether undefined values on the right of each row/item are excluded from the export data (specifies whether the number of fields within the lines is constant or variable) // format {string}, determines the type of data the Export() method returns // eor {string}, specifies the characters the row/item/line ends (has effect only if format field is "CSV") // eof {string}, specifies the character to separate fields within the row/item/line (has effect only if format field is "CSV") // str {string}, specifies the character to quote values (has effect only if format field is "CSV") // /////////////////////////////////////////////////////////// exontrol.Tree.ExportOptions = { /** * @description The items field specifies the items to export. * @type {string} The items field can be one of the following value: * * "all", exports all items, including the hidden or collapsed items * "vis", exports only visible items ( child items of a collapsed item, or not-visible items ( item's height is 0 ) are not exported ) * "sel", exports only selected items * "chk", exports only checked items (within the first column of columns field, else column with the index 0) * * @example * * "", exports nothing * "sel", exports only selected items */ items: null, /** * @description The columns field specifies a list of columns to export * @type {any} Specifies the list of columns to export. The columns can be one of the following: * * columns {null}, exports all columns of the control * columns {number}, indicates a numeric value that defines the index of the column to export * columns {string}, specifies a list of index/identifier/key/caption/plain-caption, separated by comma character * columns {exontrol.Tree.Column}, specifies the object reference to the column to export * * @example * * null {null}, exports all columns of the control * 0 {number}, exports the first column only * "C1,C2" {string}, exports the columns C1 and C2 */ columns: null, /** * @description The rtrim field includes or excludes undefined values from right of each row/item/line * @type {boolean} Specifies a boolean value to include or exclude undefined values from right of each row/item/line * @example * * false {boolean}, all values are included in the result (generates the same number of fields on each line) * true {boolean}, undefined values on the right of each row/item/line are excluded (generates different number of fields on different lines) */ rtrim: true, /** * @description The format field determines the type of data the Export() method returns * @type {string} Specifies the type of data the Export() method returns * @example * * null {null}, specifies that the Export() method returns an array of [[value]] type * "CSV" {string}, specifies that the Export() method returns a string in CSV format */ format: null, /** * @description The eor (EndOfRow) field specifies the characters the row/item/line ends (has effect only if format field is "CSV") * @type {string} Specifies the end of the row/item/line * @example * * ";" {string}, specifies that the ; character to end each row/item/line */ eor: "\r\n", /** * @description The eof (EndOfField) field specifies the character to separate fields within the row/item/line (has effect only if format field is "CSV") * @type {string} Specifies the character to separate fields within the row/item/line * @example * * "\t" {string}, specifies TAB charactar as field separator */ eof: ",", /** * @description The str field specifies the character to quote values (has effect only if format field is "CSV") * @type {string} Specifies the character to quote values * @example * * "'" {string}, specifies ' character to quote any value that contains other ' or eof character */ str: "\"" } /////////////////////////////////////////////////////////// (exontrol.Tree.ImportOptions) // // The exontrol.Tree.ImportOptions type defines options to import data from CSV format. A comma-separated values (CSV) file is a delimited text file that uses a comma to separate values. Each line of the file is a data record. Each record consists of one or more fields, separated by commas // // The exontrol.Tree.ImportOptions type supports the following fields: // // columnCaption {string}, defines an expression that generates captions for new columns. // clear {boolean}, specifies whether previously data of the control is cleared // parent {any}, defines the parent item to insert data to // limit {number}, specifies the maximum number of rows/items/lines to import // format {string}, determines the format of source to import data from // eor {string}, specifies the characters the row/item/line ends (has effect only if format field is "CSV") // eof {string}, specifies the character to separate fields within the row/item/line (has effect only if format field is "CSV") // str {string}, specifies the character to quote values (has effect only if format field is "CSV") // hdr {boolean}, indicates whether the first line in data represents the control's header (has effect only if format field is "CSV") // ignoreXML {boolean}, specifies whether the file is loaded as CSV even if it is an .xml file (files of XML type) // /////////////////////////////////////////////////////////// exontrol.Tree.ImportOptions = { /** * @description The columnCaption field defines an expression that generates captions for new columns. * @type {string} A string value that defines the expression to generate captions for new columns. * * The columnCaption field supports the following keywords: * * index, returns the index of the column whose caption need to be generated * * @example * * "" {string}, no caption is provided for new columns * "`import`" {string}, all columns are named `import` * "index" {string}, the caption's index (0-based) is the caption of the column * "`Column ` + (1 + index)" {string}, generates captions such as "Column 1", "Column 2", ... where the index (1-based) is displayed in bold up to the caption * */ columnCaption: "`Column ` + (1 + index)", /** * @description The clear field specifies whether previously data of the control is cleared * @type {boolean} Indicates whether previously data of the control is cleared * @example * * false {boolean}, the control's data is not cleared by Import() method, so new data is appended * true {boolean}, the control's data is cleared before import new data */ clear: true, /** * @description The parent field defines the parent item the import data goes to. * @type {any} The parent field can be one of the following: * * parent {number}, indicates a numeric value that defines the index of the parent's item (0-based) * parent {string}, specifies a string expression that defines the identifier/key of the parent's item * parent {exontrol.Tree.Item}, specifies the object reference to the parent's item * * @example * * 0 {number}, the items to import are added as child-items of item with the index 0 */ parent: null, /** * @description The limit field specifies the maximum number of rows/items/lines to import * @type {number} Indicates the maximum number of rows/items/lines to import * @example * * undefined {undefined}, specifies unlimited number of rows/items/lines to import * 1000 {number}, limits the items to import to 1,000 */ limit: undefined, /** * @description The format field specifies the format of source to import data form * @type {string} Specifies the format of source to import data form * @example * * null {null}, specifies that the source of import is an array of [[value]] type * "CSV" {string}, specifies that the source of import is a string in CSV format */ format: null, /** * @description The eor (EndOfRow) field specifies the characters the row/item/line ends (has effect only if format field is "CSV") * @type {string} Specifies the end of the row/item/line * @example * * ";" {string}, specifies that the ; character to end each row/item/line */ eor: "\r\n", /** * @description The eof (EndOfField) field specifies the character to separate fields within the row/item/line (has effect only if format field is "CSV") * @type {string} Specifies the character to separate fields within the row/item/line * @example * * "\t" {string}, specifies TAB charactar as field separator */ eof: ",", /** * @description The str field specifies the character to quote values (has effect only if format field is "CSV") * @type {string} Specifies the character to quote values * @example * * "'" {string}, specifies ' character to quote any value that contains other ' or eof character */ str: "\"", /** * @description The hdr field specifies whether the first line indicates the control's header (has effect only if format field is "CSV") * @type {boolean} Specifies whether the first line indicates the control's header * @example * * false {boolean}, specifies the no header line is provided * true {boolean}, the first line defines the control's header */ hdr: true, /** * @description The ignoreXML field specifies whether the file is loaded as CSV even for .xml files (files of XML type) * @type {boolean} Indicates whether the data is imported as CSV or XML * @example * * false {boolean}, indicates that an .xml file is loaded using the LoadXML() method, any other file is loaded as CSV file * true {boolean}, no matter of file's extension the data is loaded as CSV file */ ignoreXML: false } /////////////////////////////////////////////////////////// (exontrol.Tree.ConditionalFormats) // // The exontrol.Tree.ConditionalFormats object holds a collection of exontrol.Tree.ConditionalFormat type. The conditional formatting // feature allows you to apply formats to a cell or range of cells, and have that formatting change depending on the value of the cell // or the value of a formula. // // The exontrol.Tree.ConditionalFormats object provides the following methods: // // Add(oConditionalFormatOpts) {exontrol.Tree.ConditionalFormat}, creates and adds a new conditional format into the control. // Count/GetCount() {number}, returns the number of conditional formats within the collection. // Item(id) {exontrol.Tree.ConditionalFormat}, gets the conditional format by index, key or reference. // Remove(id), removes the conditional format by index, key or reference. // Clear(), removes all conditional formats of the control. // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Tree.ConditionalFormatOptions) // // The exontrol.Tree.ConditionalFormatOptions type holds all options a conditional format can display or own // // The exontrol.Tree.ConditionalFormatOptions type defines the following fields: // // applyTo {any}, indicates whether the format is applied to items or columns. // expression {string}, defines the conditional format's expression (the condition) // enabled {boolean}, specifies whether the condition is enabled or disabled. // key {string}, specifies the key associated with the conditional format // shape {any}, defines the shape to apply on the cell or conditional format when the condition is verified // /////////////////////////////////////////////////////////// exontrol.Tree.ConditionalFormatOptions = { /** * @description The applyTo field specifies whether the conditional format is applied to items or to columns * @type {any} Indicates whether the conditional format is applied to items or to columns * @example * * null{null} or -1 {number}, the format is applied to items (negative-number) * 0 {number}, the format is applied to all cells of the conditional format with the index 0 that verify the condition * "C1,C2" {string}, the format is applied to all cells of the columns "C1" and "C2" that verify the condition */ applyTo: -1, /** * @description The expression field specifies the condition of the conditional format (no format or shape is applied if the condition is invalid or disabled) * @type {string} Specifies the condition of the conditional format * * The expression supports the following keywords: * * value, gets the value of the cell being formatted/evaluated * * The expression supports the following variables: * * %0, %1, %2, ... specifies the value of the cell in the conditional format with the index 0, 1 2, ... * %C0, %C1, %C2, ... specifies the caption of the cell, or the string the cell displays in the conditional format with the index 0, 1 2, ... * %CD0, %CD1, %CD2, ... specifies the cell's user-date in the conditional format with the index 0, 1 2, ... * %CS0, %CS1, %CS2, ... specifies the cell's state in the conditional format with the index 0, 1 2, ... * * The expression supports the following functions: * * index, gets the index of the item * rindex, returns the recursive-index of the item * pos, returns the relative position of the item (the position within the parent's children collection) * rpos, returns the recursive relative-position of the item (the position within the parent's children collection) * opos, returns the relative old position of the item (the position within the parent's children collection) * ropos, returns the recursive relative-old-position of the item (the position within the parent's children collection) * apos, returns the absolute position of the item (the position from the first visible item) * rapos, returns the recursive absolute-position of the item (the position from the first visible item) * * @example * * "1" {string}, highlights all cells or items. * "%0 >= 0" {string}, highlights the cells or items, when the cells in the first conditional format have the value greater or equal with zero * "%0 startwith 'A'" {string}, highlights the cells or items, when the cells in the first column starts with A */ expression: null, /** * @description The enabled field indicates whether the condition is enabled or disabled (no format or shape is applied if the condition is invalid or disabled) * @type {boolean} Specifies whether the condition is enabled or disabled * @example * * false {boolean}, disables the condition (no format or shape is applied if the condition is invalid or disabled) * true {boolean}, enables the condition */ enabled: true, /** * @description The key field specifies the key associated with the conditional format. * @type {string} Specifies the key associated with the conditional format. * @example * * "cond" {string}, defines the conditional format with the giving key (cond). You can use the ConditionalFormats.Item("cond") method to request the conditional format giving its key. */ key: null, /** * @description The shape field defines the shape to apply on the cell / column if the condition is verified * @type {any} A string expression that defines shape's name within the exontrol.Shape.Gantt or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type, for the conditional format itself or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type. * * @example * * "" {string}, null {null}, no shape is applied * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ shape: null } /////////////////////////////////////////////////////////// (exontrol.Tree.Columns) // // The exontrol.Tree.Columns object holds a collection of exontrol.Tree.Column type (column of the control) // // The exontrol.Tree.Columns object provides the following methods: // // Add(oColumnOpts) {exontrol.Tree.Column}, creates and adds a new column into the control. // Count/GetCount() {number}, returns the number of columns within the collection. // Item(id) {exontrol.Tree.Column}, gets the column giving its index, identifier/key/caption or reference. // Items(range) {exontrol.Arr([exontrol.Tree.Column])}, gets the columns giving its index, identifier/key/caption, separated by comma character. // Remove(id), removes the column giving its index, identifier/key/caption or reference. // Clear(), removes all columns of the control. // Sorts/GetSorts()/SetSorts(value) {string}, sorts(groups) multiple-columns at once giving a string-representation such as "C1:A C2:D, C0:A" // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Tree.Column) // // The exontrol.Tree.Column object holds information(options) about a column within the control. // // The Add(oColumnOpts) method of exontrol.Tree.Columns creates and adds a new column into the control. // // The exontrol.Tree.Column object provides the following methods: // // Options/GetOptions()/SetOptions(value) {exontrol.Tree.ColumnOptions}, indicates the column's options (at once) such as visibility, caption and so on // Remove(), removes the column itself from columns collection ( equivalent of Columns.Remove(oColumn) method ) // Index/GetIndex() {number}, returns the index of the column (0-based) // Position/GetPosition()/SetPosition(value) {number}, specifies the column's position (0-based) // Key/GetKey()/SetKey(value) {boolean}, specifies the column's key (the Columns.Item(key) requests a column by its index, identifier/key/caption or reference) // Visible/GetVisible()/SetVisible(value) {boolean}, shows or hides the column // Enabled/GetEnabled()/SetEnabled(value) {boolean}, enables or disables the column // Caption/GetCaption()/SetCaption(value) {string}, specifies the column's caption (ex-HTML format) // ToolTip/GetToolTip()/SetToolTip(value) {string}, indicates the column's predefined tooltip (ex-HTML format) // FormatText/GetFormatText()/SetFormatText(value) {exontrol.DrawTextFormatEnum}, defines the format to display the column's caption. // Pad/GetPad()/SetPad(value) {(number|string|array)}, defines the format to display the column's caption. // Image/GetImage()/SetImage(value) {string}, defines the column's image. The image can be added using the exontrol.HTMLPicture.Add() method // ImageSize/GetImageSize()/SetImageSize(value) {any}, defines the size of the column's image. The image can be added using the exontrol.HTMLPicture.Add() method // ImageAlign/GetImageAlign()/SetImageAlign(value) {number}, defines the alignment of the column's image relative to its caption. // Shape/GetShape()/SetShape(value) {any}, defines the shape for the column itself (column's header). // CellShape/GetCellShape()/SetCellShape(value) {any}, defines the shape for the column's body/data/cells. // Cursor/GetCursor()/SetCursor(value) {any}, the mouse cursor for the column itself (column's header). // CellCursor/GetCellCursor()/SetCellCursor(value) {any}, the mouse cursor for the column's body/data/cells. // Width/GetWidth()/SetWidth(value) {number}, specifies the column's width. // ExpandColumns/GetExpandColumns()/SetExpandColumns(value) {any}, specifies the list of columns to be shown when the current column is expanded. // Expanded/GetExpanded()/SetExpanded(value) {boolean}, indicates whether the column is expanded or collapsed. // AllowSizing/GetAllowSizing()/SetAllowSizing(value) {boolean}, specifies whether the column is resizable or fixed // DisplayExpandButton/GetDisplayExpandButton()/SetDisplayExpandButton(value) {boolean}, specifies whether the column displays its expand/collapse glyphs // SortOrder/GetSortOrder()/SetSortOrder(value) {number}, indicates the column's sort order // DefaultSortOrder/GetDefaultSortOrder()/SetDefaultSortOrder(value) {number}, indicates the column's default sort order // SortType/GetSortType()/SetSortType(value) {number}, specifies whether the column gets sorted as string, number or date, or by value, state or image // AllowSort/GetAllowSort()/SetAllowSort(value) {boolean}, specifies whether the column is sortable // AllowDrag/GetAllowDrag()/SetAllowDrag(value) {boolean}, specifies whether the column is dragable // AllowGroupBy/GetAllowGroupBy()/SetAllowGroupBy(value) {boolean}, specifies whether the column can be grouped by // GroupByFormatCell/GetGroupByFormatCell()/SetGroupByFormatCell(value) {string}, indicates the format of the cell to be displayed when the column gets grouped by // DisplayFilterButton/GetDisplayFilterButton()/SetDisplayFilterButton(value) {boolean}, shows or hides the column's filter button. // CellHasCheck/GetCellHasCheck()/SetCellHasCheck(value) {boolean}, shows or hides check-box, or radio-buttons for all cells within the column // PartialCheck/GetPartialCheck()/SetPartialCheck(value) {boolean}, enables or disables partial-check feature // Format/GetFormat()/SetFormat(value) {string}, specifies the format to display the cells in the column // AllowEdit/GetAllowEdit()/SetAllowEdit(value) {boolean}, specifies whether the column is editable or readonly // Filter/GetFilter()/SetFilter(value) {string}, specifies the column's filter // FilterType/GetFilterType()/SetFilterType(value) {exontrol.Tree.FilterTypeEnum}, specifies the type of the column's filter // ExcludeFilter/GetExcludeFilter()/SetExcludeFilter(value) {boolean}, specifies the state of the column's exclude flag // ChangeFilter(filterType, filter), changes the column's filter and filterType at once (validates the view and applies the filter once) // FilterList/GetFilterList()/SetFilterList(value) {exontrol.Tree.FilterListEnum}, specifies whether the drop down filter list includes visible or all items // FilterOnType/GetFilterOnType()/SetFilterOnType(value) {boolean}, allows you to filter the control's data based on the typed characters // // The exontrol.Tree.Column object provides the following additional methods: // // ValueToItemBarProperty/GetValueToItemBarProperty()/SetValueToItemBarProperty(value) {any}, specifies the property of the bar the cells of the column display // ValueToItemBarKey/GetValueToItemBarKey()/SetValueToItemBarKey(value) {string}, indicates the key of the bars whose property is shown in the column. The valueToItemBarProperty/valueToItemBarKey defines a relation/association between a specified property bar and the value of the cell within the column. // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Tree.ColumnOptions) // // The exontrol.Tree.ColumnOptions type holds all options a column can display or own // // The exontrol.Tree.ColumnOptions type defines the following fields: // // position {number}, specifies the column's position // visible {boolean}, indicates whether the column is visible or hidden // enabled {boolean}, indicates whether the column is enabled or disabled(unselectable) // key {string}, specifies the key associated with the column // caption {string}, defines the column's caption // toolTip {string}, specifies the column's predefined tooltip // formatText {exontrol.DrawTextFormatEnum}, specifies the format to display the column's caption // pad {(number|string|array)}, defines the column's padding (space between the column's content and its border) // image {string}, specifies the name of the image/picture the column displays. The image can be added using the exontrol.HTMLPicture.Add() method // imageSize {any}, defines the size of the column's image // imageAlign {number}, defines the alignment of the image within the column as 0 (left, default), 1(right), 2(top) or 3(bottom) // shape {any}, defines the shape for individual column (column's header) // cellShape {any}, defines shape to apply on the column's body/data/cells. // cursor {string}, defines the mouse-cursor for individual column (column's header) // cellCursor {string}, defines the cursor to show within the column's body/data/cells // width {number}, defines the column's width // expandColumns {any}, specifies the list of columns to be shown when the current column is expanded // expanded {boolean}, indicates whether the column is expanded or collapsed // displayExpandButton {boolean}, shows or hides the column's expand/collapse glyphs // allowSizing {boolean}, specifies whether the column is resizable or fixed // sortOrder {number}, indicates the column's sort-order as 0(unsorted), 1(ascending) and 2(descending) // defaultSortOrder {number}, indicates the column's default sort-order as 1(ascending) or 2(descending). The defaultSortOrder indicates the column's sort order once the user clicks the column's header or drags it to the control's sortbar. // sortType {exontrol.Tree.SortTypeEnum}, specifies whether the column gets sorted as string, number or date, or by value, state or image // allowSort {boolean}, specifies whether the column is sortable // allowDrag {boolean}, specifies whether the column is dragable // allowGroupBy {boolean}, specifies whether the column can be grouped by // groupByFormatCell {string}, indicates the format of the cell to be displayed when the column gets grouped by // displayFilterButton {boolean}, shows or hides the column's filter button // cellHasCheck {number}, indicates whether the cells within the column displays check-box(1) or a radio-button(2) // partialCheck {number}, specifies whether the column supports partial-check feature // format {string}, formats the column giving an expression // allowEdit {boolean}, specifies whether the column is editable or readonly // filter {string}, specifies the column's filter // filterType {exontrol.Tree.FilterTypeEnum}, specifies the column's filter type // filterList {exontrol.Tree.FilterListEnum}, specifies whether the drop down filter list includes visible or all items // filterOnType {boolean}, allows you to filter the control's data based on the typed characters // // The exontrol.Tree.ColumnOptions type defines the following fields: // // valueToItemBarProperty {any}, specifies the property of the bar the cells of the column display. The valueToItemBarProperty/valueToItemBarKey defines a relation/association between a specified property bar and the value of the cell within the column. // valueToItemBarKey {string}, indicates the key of the bars whose property is shown in the column. The valueToItemBarProperty/valueToItemBarKey defines a relation/association between a specified property bar and the value of the cell within the column. // /////////////////////////////////////////////////////////// exontrol.Tree.ColumnOptions = { /** * @description The position field specifies the column's position. * @type {number} Indicates the column's position * @example * * null {null}, the null value has no effect * 0 {number}, moves the column on the first position */ position: null, /** * @description The visible field indicates whether the column is visible or hidden. * @type {boolean} Specifies whether the column is visible or hidden. * @example * * false {boolean}, hides the column * true {boolean}, shows the column */ visible: true, /** * @description The enabled field indicates whether the column is enabled or disabled(unselectable) * @type {boolean} Specifies whether the column is enabled or disabled * @example * * false {boolean}, disables the column * true {boolean}, enables the column */ enabled: true, /** * @description The key field specifies the key associated with the column. * @type {string} Specifies the key associated with the column. If no key is provided, the column's plain-caption can be used to request an item. The plain-caption includes no ex-HTML tags, such as , and so on * @example * * "logo" {string}, defines the column with the giving key (logo). You can use the Column("logo") method to request the column giving its key. */ key: null, /** * @description The caption field defines the column's caption. * @type {string} Specifies the ex-HTML caption the column displays. * @example * * null {null}, indicates no caption * "caption" {string}, declares a plain-caption * "text" {string}, displays the text in bold * "logo" {string}, displays the "logo" image. The image can be added using the exontrol.HTMLPicture.Add() method */ caption: null, /** * @description The formatText field specifies the format to display the column's caption. * @type {exontrol.DrawTextFormatEnum} A exontrol.DrawTextFormatEnum value that defines the format to show the column's caption. * * The exontrol.DrawTextFormatEnum type supports the following flags: * * exTextAlignTop (0x00), justifies the text to the top of the rectangle * exTextAlignLeft (0x00), aligns text to the left * exTextAlignCenter (0x01), centers text horizontally in the rectangle * exTextAlignRight (0x02), aligns text to the right * exTextAlignVCenter (0x04), centers text vertically * exTextAlignBottom (0x08), justifies the text to the bottom of the rectangle. * exTextAlignMask (0x0F), specifies the mask for text's alignment. * exTextWordBreak (0x10), breaks words. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by the lpRect parameter. A carriage return-line feed sequence also breaks the line. If this is not specified, output is on one line. * exTextSingleLine (0x20), displays text on a single line only. Carriage returns and line feeds do not break the line. * exTextExpandTabs (0x40), expands tab characters. The default number of characters per tab is eight. * exPlainText (0x80), treats the text as plain text. * exTextNoClip (0x0100), draws without clipping. * exHTMLTextNoColors (0x0200), ignores the and tags. * exTextCalcRect (0x0400), determines the width and height of the text. * exHTMLTextNoTags (0x0800), ignores all HTML tags. * exTextPathEllipsis (0x4000), for displayed text, replaces characters in the middle of the string with ellipses so that the result fits in the specified rectangle. If the string contains backslash (\) characters, exTextPathEllipsis preserves as much as possible of the text after the last backslash. * exTextEndEllipsis (0x8000), for displayed text, if the end of a string does not fit in the rectangle, it is truncated and ellipses are added. If a word that is not at the end of the string goes beyond the limits of the rectangle, it is truncated without ellipses. * exTextWordEllipsis (0x040000), truncates any word that does not fit in the rectangle and adds ellipses. * * @example * * null {null}, centers the caption * 32 or exontrol.DrawTextFormatEnum.exTextSingleLine {number}, defines a single-line caption * 0x2A or exontrol.DrawTextFormatEnum.exTextSingleLine | exontrol.DrawTextFormatEnum.exTextAlignRight | exontrol.DrawTextFormatEnum.exTextAlignBottom {number}, defines a single-line caption right/bottom-aligned */ formatText: null, /** * @description The pad field defines the column's padding (space between the column's content and its border) * @type {(number|string|array)} A value that could be a numeric value, to pad horizontal and vertical size with the same value, or a "x,y" or [x,y] type to specify the padding on h/v size * @example * * null {null}, indicates that the default-padding field is used ([4,4]) * 0 {number}, indicates no padding * "8,4" {string}, increases the element's width with 2 * 8-pixels and element's height with 2 * 4-pixels * [8,4] {array}, increases the element's width with 2 * 8-pixels and element's height with 2 * 4-pixels */ pad: null, /** * @description The image field specifies the name of the image/picture the column displays. The image can be added using the exontrol.HTMLPicture.Add() method * @type {string} Indicates the name of the image/picture the column displays. */ image: null, /** * @description The imageSize field defines the size of the column's image. * @type {(null|number|array)} Indicates the size of the column's image. * * The imageSize can be of one of the following types: * * {null}, Indicates that the object's image is displayed as it is (full-sized). * {number}, Specifies that the object's image is displayed into a square of giving size (same width and height). If 0 the object displays no image, if negative the object's image is stretched to giving square, else the object's picture is scaled to fit the giving rectangle. * {array}, Specifies an array of [aspect-width,aspect-height] type that defines the limits for width or/and height. The aspect-width and aspect-height define the width/height of the object's picture to scale or stretch to. * * @example * * null {null}, Indicates that the object's image is displayed as it is (full-sized). * 0 {number}, no image is displayed * 64 {number}, the image is scaled to fit a 64 x 64 rectangle * -64 {number}, the image is strected to a 64 x 64 rectangle * [32,64] {array}, scales the image to the largest ratio-rectangle (32 x 64) that fits the client * [-32,-64] {array}, stretches the image to a 32 x 64 rectangle */ imageSize: undefined, /** * @description The imageAlign field defines the alignment of the image within the column. * @type {number} Indicates the alignment of the image within the column as explained: * * The imageAlign propery can be any of the following: * * 0, the image is on the left of the item's caption * 1, the image is on the right of the item's caption * 2, the image is on the top of the item's caption * 3, the image is on the bottom of the item's caption * * @example * * null {null}, the image is aligned left to the caption (default) * 1 {number}, the image is displayed to the right of the item's caption */ imageAlign: null, /** * @description The shape field defines the shape for individual column (column's header). * @type {any} A string expression that defines shape's name within the exontrol.Shape.Gantt or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type, for the column itself or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type. * * @example * * null {null}, no custom shape is applied (default object's shape may be applied) * "" {string}, no custom shape is applied (no default object's shape is be applied) * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ shape: null, /** * @description The cellShape field defines shape to apply on the column's body/data/cells. * @type {any} A string expression that defines shape to apply on the column's body/data/cells or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type. * * @example * * null {null}, no custom shape is applied (default object's shape may be applied) * "" {string}, no custom shape is applied (no default object's shape is be applied) * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ cellShape: null, /** * @description The cursor field defines the mouse-cursor for individual column (column's header). * @type {string} A string expression that defines the mouse-cursor for individual column. * * @example * * "pointer" {string}, The cursor is a pointer that indicates a link (typically an image of a pointing hand) */ cursor: null, /** * @description The cellCursor field defines the cursor to show within the column's body/data/cells. * @type {string} A string expression that defines the mouse-cursor for individual column. * * @example * * "pointer" {string}, The cursor is a pointer that indicates a link (typically an image of a pointing hand) */ cellCursor: null, /** * @description The width field defines the column's width. * @type {number} Defines the column's width. * @example * * 128 {number}, defines the column's width to 128 pixels. */ width: 128, /** * @description The expandColumns field specifies the list of columns to be shown when the current column is expanded. * @type {any} Defines the list of columns to be shown when the current column is expanded. * * The expandColumns field can be any of the following: * * {number} Indicates a numeric value that defines the index of the column to request * {string} Specifies a list of index/identifier/key/caption/plain-caption, separated by comma character * {exontrol.Tree.Column} specifies the object reference to be shown, once the current column is expanded * * @example * * 1 {number}, specifies that the column with the index 1, is shown once the current column is expanded. * "C1,C2" {string}, indicates that the columns C1 and C2 are being shown once the current column is expanded. */ expandColumns: null, /** * @description The expanded field indicates whether the column is expanded or collapsed. * @type {boolean} Expands or collapses the column. * @example * * false {boolean}, the column is collapsed * true {boolean}, the column is expanded */ expanded: true, /** * @description The allowSizing field indicates whether the column is resizable or fixed * @type {boolean} Enables or disables resizing the column * @example * * false {boolean}, the user can not resize the column * true {boolean}, the column is resizable */ allowSizing: true, /** * @description The displayExpandButton field specifies whether the column displays its expand/collapse glyphs. The displayExpandButton field has effect only if the column contains visible child-columns. The expandColumns property specifies the list of columns the current column expands or collapses. * @type {boolean} Shows or hides the column's expand/collapse glyphs. * @example * * false {boolean}, the column hides its expand/collapse glyphs * true {boolean}, the column shows its expand/collapse glyphs. */ displayExpandButton: true, /** * @description The sortOrder field specifies the column's sort order * @type {number} Specifies the column's sort-order as listed: * * 0 {number}, indicates an unsorted column * 1 {number}, sorts ascending the column * 2 {number}, sorts descending the column * * @example * * 0 {number}, unsorts the column * 2 {number}, sorts descending the column */ sortOrder: 0, /** * @description The defaultSortOrder field indicates the column's sort order once the user clicks the column's header or drags it to the control's sortbar. * @type {number} Specifies the column's default sort-order as listed: * * 1 {number}, sorts ascending the column * 2 {number}, sorts descending the column * * @example * * 1 {number}, sorts ascending the column * 2 {number}, sorts descending the column */ defaultSortOrder: 1, /** * @description The sortType field specifies whether the column gets sorted as string, number or date, or by value, state or image. By default, the column gets sorted as string (by "caption" as "string"). * @type {exontrol.Tree.SortTypeEnum} Indicates type of column's sort-as. * * The exontrol.Tree.SortTypeEnum type supports the following values (group A): * * exSortString (0), the column's content is sorted as string (by default) * exSortNumeric (1), the column's content is sorted as numbers * exSortDate (2), the column's content is sorted as dates * * Also, the exontrol.Tree.SortTypeEnum type supports the following additional values (group B): * * exSortByValue (0x10), the column gets sorted by cell's value rather than cell's caption (the cell's caption include formatting) * exSortByState (0x20), the column gets sorted by cell's state (checked, unchecked) rather than cell's caption (the cell's caption include formatting) * exSortByImage (0x30), the column gets sorted by cell's image rather than cell's caption (the cell's caption include formatting) * * (any value of group A can be combined with any value of group B) * * @example * * 2 or exontrol.Tree.SortTypeEnum.exSortDate {number}, sorts the columns as dates * 0x11 or exontrol.Tree.SortTypeEnum.exSortNumeric | exontrol.Tree.SortTypeEnum.exSortByValue {number}, sorts the column by "value" as numbers. For instance, column's formatColumn property formats the values within the column(cell can display number-grouping, ex-HTML format and so on), so this option sorts the column's value rather than formatted-caption it displays */ sortType: 0, /** * @description The allowSort field specifies whether the column is sortable. * @type {boolean} Enables or disables sorting the column * @example * * false {boolean}, the user can not sort the column * true {boolean}, the column is sortable */ allowSort: true, /** * @description The allowDrag field specifies whether the column is dragable. * @type {boolean} Enables or disables dragging the column * @example * * false {boolean}, the user can not drag the column * true {boolean}, the column is dragable */ allowDrag: true, /** * @description The allowGroupBy field specifies whether the column can be grouped by * @type {boolean} Enables or disables group-by the column * @example * * false {boolean}, the user can not group by this column * true {boolean}, the column gets grouped-by once the column's header is dropped into the control's sortbar */ allowGroupBy: true, /** * @description The groupByFormatCell field indicates the format of the cell to be displayed when the column gets grouped by * @type {string} Specifies the format of the cell to be displayed when the column gets grouped by * * The format-expression supports the following keywords: * * value, indicates the value of the current cell ( "value/2 format ``", displays half of the value using current regional format ) * %0, %1, %2, ... specifies the value of the cell in the column with the index 0, 1 2, ... ( "currency(%0 + %1)", adds the value of first and second cell and displays it as a currency ) * %C0, %C1, %C2, ... specifies the caption of the cell, or the string the cell displays in the column with the index 0, 1 2, ... ( "%C0 + %C1", concatenates the caption of first and second cell ) * %CD0, %CD1, %CD2, ... specifies the cell's user-date in the column with the index 0, 1 2, ... ( "%CD0 ? value : ``", displays the cell's value only if the cell's data is not empty ) * %CS0, %CS1, %CS2, ... specifies the cell's state in the column with the index 0, 1 2, ... ( "(%CS0 ? `` : ``) + value", displays the cell's value in bold only if the first cell is checked ) * * The format-expression supports the following unary-operators: * * exp(``), checks whether the item is expanded or collapsed ( "(exp(``) ? `` : ``) + value", shows expanded-items in bold ) * get(`aggregate(list,direction,formula)`), summarizes the cell based on "aggregate(list,direction,formula)" syntax, where: * * aggregate, must be one of the following: * * sum, performs addition of values * min, retrieves the minimum value * max, retrieves the maximum value * count, counts the number of items * avg, calculates the average of values * std, gets standard-deviation of numbers * * list, must be one of the following: * * a number expression that specifies the index of the item being referred * all, indicates all items, so the formula is being applied to all items. The direction has no effect * current, refers the current item * parent, refers to the parent item * root, refers to the root item (the root item has no parent items) * * direction, must be one of the following: * * dir, collects only direct descendents (child-items) * rec, collects recursivelly the leaf descendents ( leaf items ). A leaf item is an item with no child items * all, collects all descendents * * Currently, the following items are excluded by aggregate functions: * * not-sortable items. The SortableItem property specifies whether the item can be sorted ( a sortable item can change its position after sorting, while a not-sortable item keeps its position after sorting. * not-selectable items. The SelectableItem property specifies whether the user can selects/focus the specified item. * divider items. The ItemDivider property specifies whether the item displays a single cell, instead displaying whole cells. * * In conclusion, aggregate functions counts ONLY items that are sortable, selectable and not a divider-item. * * For instance: * * "get(`count(current,dir,1)`)", gets the count of child-items * "get(`count(current,all,1)`)", gets the count of all child-items (implies recursively child items) * "get(`count(current,rec,1)`)", counts the number of leaf items ( a leaf item is an item with no child items ). * "get(`sum(current,dir,%1 ? 1 : 0)`)", counts the number of child-items that have not-empty cells within the second-column * "get(`sum(current,dir,value)`)", gets the total of values of child-items (direct descendent) within the same column * "get(`sum(all,rec,value)`)", gets the total of values of leaf-items within the same column * "get(`sum(parent,dir,dbl(%1) + dbl(%2))`)", gets the addition of all cells in the second (%1) and third (%2) column that are directly descendent of the parent item (sibling). * * The format-expression supports the following binary-operators: * * 0 index `format`, gets the index of the item (0-based). The first added item has the index 0, the second added item has the index 1, and so on. The index of the item remains the same even if the order of the items is changed by sorting or grouping ( "1 index ``", gets the index of the item starting from 1 ) * 0 rindex `delimiter|format|format|...`, returns the recursive-index of the item ("1 rindex `.|A-Z`", returns values as A, A.1, A.2, B, ...) * 0 pos `format`, returns the relative position of the item (the position within the parent's children collection) ( "1 pos ``", returns the position of the item (1-based) within the parent's child items collection ) * 0 rpos `delimiter|format|format|...`, returns the recursive relative-position of the item (the position within the parent's children collection) ( "1 rpos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * 0 opos `format`, returns the relative old position of the item (the position within the parent's children collection) ( "1 opos ``", returns the position of the item (1-based) within the parent's child items collection ) * 0 ropos `delimiter|format|format|...`, returns the recursive relative-old-position of the item (the position within the parent's children collection) ( "1 ropos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * 0 apos `format`, returns the absolute position of the item (the position from the first visible item) ( "1 apos ``", gets absolute position of the item ) * 0 rapos `delimiter|format|format|...`, returns the recursive absolute-position of the item (the position from the first visible item) ( "1 rapos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * * where: * * `delimiter`, is a character to separated recursive-operators such as "rindex", "rpos", "ropos" and "rapos" * `format`, is a set of characters to be used for specifying the index * * @example * * null {null}, the control's groupByFormatCell option is used instead * "" {string}, the default group-by value gets displayed once the column gets grouped by * "upper(value)" {string}, the default group-by value (in upper case) gets displayed once the column gets grouped by * "value + ` ` + get(`count(current,rec,1)`)" {string}, the default group-by value plus the count of items within the group gets displayed once the column gets grouped by */ groupByFormatCell: null, /** * @description The displayFilterButton field specifies whether the column's filter button is shown or hidden * @type {boolean} Shows or hides the column's filter button * @example * * false {boolean}, the column's filter button is hidden * true {boolean}, the column's filter button is shown */ displayFilterButton: false, /** * @description The cellHasCheck field specifies whether the cells within the column shows a check-box or radio-button. * @type {number} Defines whether the cell's check-box, radio-button is visible as follows: * * 0 {number}, the column shows no check-box or radio-button * 1 {number}, the column displays a check-box for each cell. * 2 {number}, the column displays a radio-button for each cell (only a cell within the entire-column can be checked). * * @example * * 0 {number}, the cell's hasCheck field specifies whether a check-box or radio-button is shown within the cell * 1 {number}, the column shows a check-box for each cell (while cell's hasCheck field is not 0) * 2 {number}, the column shows a radio-button for each cell (while cell's hasCheck field is not 0). If column's cellHasCheck field is 0, you can have multiple group of radio-cells, by using the cell's hasCheck propery on 2 (sibling cells are considered a group of radio-cells) * */ cellHasCheck: 0, /** * @description The partialCheck field indicates whether the column supports partial-check feature * @type {boolean} Specifies whether the column supports partial-check feature. * * @example * * false {boolean}, the column supports no partial-check feature. * true {boolean}, the column supports partial-check feature, so once a parent item is checked/unchecked all its descendents are checked/unchecked. * */ partialCheck: false, /** * @description The format field specifies the expression to format the column * @type {string} Indicates the expression to format the column * * The format-expression supports the following keywords: * * value, indicates the value of the current cell ( "value/2 format ``", displays half of the value using current regional format ) * %0, %1, %2, ... specifies the value of the cell in the column with the index 0, 1 2, ... ( "currency(%0 + %1)", adds the value of first and second cell and displays it as a currency ) * %C0, %C1, %C2, ... specifies the caption of the cell, or the string the cell displays in the column with the index 0, 1 2, ... ( "%C0 + %C1", concatenates the caption of first and second cell ) * %CD0, %CD1, %CD2, ... specifies the cell's user-date in the column with the index 0, 1 2, ... ( "%CD0 ? value : ``", displays the cell's value only if the cell's data is not empty ) * %CS0, %CS1, %CS2, ... specifies the cell's state in the column with the index 0, 1 2, ... ( "(%CS0 ? `` : ``) + value", displays the cell's value in bold only if the first cell is checked ) * * The format-expression supports the following unary-operators: * * exp(``), checks whether the item is expanded or collapsed ( "(exp(``) ? `` : ``) + value", shows expanded-items in bold ) * get(`aggregate(list,direction,formula)`), summarizes the cell based on "aggregate(list,direction,formula)" syntax, where: * * aggregate, must be one of the following: * * sum, performs addition of values * min, retrieves the minimum value * max, retrieves the maximum value * count, counts the number of items * avg, calculates the average of values * std, gets standard-deviation of numbers * * list, must be one of the following: * * a number expression that specifies the index of the item being referred * all, indicates all items, so the formula is being applied to all items. The direction has no effect * current, refers the current item * parent, refers to the parent item * root, refers to the root item (the root item has no parent items) * * direction, must be one of the following: * * dir, collects only direct descendents (child-items) * rec, collects recursivelly the leaf descendents ( leaf items ). A leaf item is an item with no child items * all, collects all descendents * * Currently, the following items are excluded by aggregate functions: * * not-sortable items. The SortableItem property specifies whether the item can be sorted ( a sortable item can change its position after sorting, while a not-sortable item keeps its position after sorting. * not-selectable items. The SelectableItem property specifies whether the user can selects/focus the specified item. * divider items. The ItemDivider property specifies whether the item displays a single cell, instead displaying whole cells. * * In conclusion, aggregate functions counts ONLY items that are sortable, selectable and not a divider-item. * * For instance: * * "get(`count(current,dir,1)`)", gets the count of child-items * "get(`count(current,all,1)`)", gets the count of all child-items (implies recursively child items) * "get(`count(current,rec,1)`)", counts the number of leaf items ( a leaf item is an item with no child items ). * "get(`sum(current,dir,%1 ? 1 : 0)`)", counts the number of child-items that have not-empty cells within the second-column * "get(`sum(current,dir,value)`)", gets the total of values of child-items (direct descendent) within the same column * "get(`sum(all,rec,value)`)", gets the total of values of leaf-items within the same column * "get(`sum(parent,dir,dbl(%1) + dbl(%2))`)", gets the addition of all cells in the second (%1) and third (%2) column that are directly descendent of the parent item (sibling). * * The format-expression supports the following binary-operators: * * 0 index `format`, gets the index of the item (0-based). The first added item has the index 0, the second added item has the index 1, and so on. The index of the item remains the same even if the order of the items is changed by sorting or grouping ( "1 index ``", gets the index of the item starting from 1 ) * 0 rindex `delimiter|format|format|...`, returns the recursive-index of the item ("1 rindex `.|A-Z`", returns values as A, A.1, A.2, B, ...) * 0 pos `format`, returns the relative position of the item (the position within the parent's children collection) ( "1 pos ``", returns the position of the item (1-based) within the parent's child items collection ) * 0 rpos `delimiter|format|format|...`, returns the recursive relative-position of the item (the position within the parent's children collection) ( "1 rpos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * 0 opos `format`, returns the relative old position of the item (the position within the parent's children collection) ( "1 opos ``", returns the position of the item (1-based) within the parent's child items collection ) * 0 ropos `delimiter|format|format|...`, returns the recursive relative-old-position of the item (the position within the parent's children collection) ( "1 ropos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * 0 apos `format`, returns the absolute position of the item (the position from the first visible item) ( "1 apos ``", gets absolute position of the item ) * 0 rapos `delimiter|format|format|...`, returns the recursive absolute-position of the item (the position from the first visible item) ( "1 rapos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * * where: * * `delimiter`, is a character to separated recursive-operators such as "rindex", "rpos", "ropos" and "rapos" * `format`, is a set of characters to be used for specifying the index * * @example * * "value format ``" {string}, shows the column's value formatted as a number (as in regional settings) * "1 index ``" {string}, gets the index (1-based) of the item * "1 rpos `.|A-Z`" {string}, displays A, B, C for root-items, and A.1, A.2, A.1.1, ... B.1, B.2, ... for child-items * "currency(dbl(%0) + dbl(%1))" {string}, adds columns 0 and 1 and displays the result as currency * */ format: null, /** * @description The allowEdit field specifies whether the column is editable or readonly * @type {boolean} Specifies whether the cells within the column are editable or readonly * * @example * * false {boolean}, specifies a readonly column * true {boolean}, the cells within the column are editable (if "edit" action is allowed) * */ allowEdit: false, /** * @description The filter field defines the filter to apply to this column only. * @type {string} Specifies the column's filter. The filter depends on the filterType as explained: * * filterType = exFilter, the filter field indicates the list (separated by "|" character) of values to filter for. For instance, filter = "Cell A", filters for items with the caption "Cell A", filter = "Cell A|Cell B", filters for items with the caption "CellA" or "CellB". * filterType = exPattern, the filter field defines the wild-patterns to filter for items (separated by "|" character). A pattern-filter may contain wild card characters like '?' for any single character, '*' for zero or more occurrences of any character, '#' for any digit character. For instance: "A*" filters for items that begins with "A" or "a", "A*|B*" filters for items that starts with "A", "a", "B" or "b". * filterType = exDate, the filter field contains alternative interval-dates to filter for (separated by "|" character). An interval-date could be of "[dateFrom] [to] [dateTo]" or "[operator] date [operator date ...]" format. The "[dateFrom] [to] [dateTo]" format filter for items that fit the interval. For instance: "2/13/2004" filter only for items with the date on 2/13/2004, "2/13/2004 to", filter for items whose date is greater or equal with 2/13/2004, "to 2/13/2004" filter for items with the date less or equal with 2/13/2004. For instance: "2/13/2004 | 2/13/2005 to" filter for items with the date on 2/13/2004 or greater or equal with 2/13/2005. The "operator date [operator date ...]" format allows to filter using multiple operators as <, <=, =, <>, !=, >= or >. For instance: "> 2/13/2004" filter for items with the date greater than 2/13/2004, "> 2/13/2004 | <= 2/13/2002" filter for dates greater than 2/13/2004 or less or greater than 2/13/2002 * filterType = exNumeric, the filter field specifies a list of numeric-rules to filter for (separated by "|" character). The format of filter field is "[operator] number [operator number ...]", which define numeric-rule, where operator is one of <, <=, =, <>, !=, >= or >. For instance, the "> 10" filters for numbers greater than 10, "> 10 < 100" filters for numbers greater than 10 and less than 100, "10|20|>50" filters for items that include 10, 20 or any number greater than 50 * filterType = exCheck, the filter field specifies a list of states to filter for (separated by "|" character). The cell's state is "0" (unchecked), "1" (checked) and "2" (partial-checked). For instance: "1" filters for checked items, "1|2" filters for partially and checked items * filterType = exImage, the filter field defines the list of images (separated by "|" character) to filter for. The cell's image property specifies the image of the cell. For instance, "Al" filters for items that displays the "Al" picture/image, "Al|Peggy" filters for items that displays the "Al" or "Peggy" images. The exontrol.HTMLPicture.Add() method adds named images to the control. * * The filter field has no effect if the filterType field is exAll, exBlanks or exNonBlanks. The filter is case-sensitive, if the filterType includes the exFilterDoCaseSensitive flag. * * @example * * null {null}, clears the column's filter * "" {string}, filters for empty-captions * "Cell A|Cell B" {string}, filters for items that include "Cell A" or "Cell B" within the column * */ filter: null, /** * @description The filterType field defines the type of the column's filter. * @type {exontrol.Tree.FilterTypeEnum} Indicates the type of the column's filter. * * The exontrol.Tree.FilterTypeEnum type supports the following values and flags: * * exAll (0), no filter is applied * exBlanks (1), includes only blank/empty items (a blank item is an empty item or an item that displays whitespace characters) * exNonBlanks (2), includes only non blank/empty items (a blank item is an empty item or an item that displays whitespace characters) * exPattern (3), includes only items that match the pattern. The Filter property defines the pattern. A pattern may contain the wild card characters '?' for any single character, '*' for zero or more occurrences of any character, '#' for any digit character, and [chars] indicates a group of characters. If any of the *, ?, # or | characters are preceded by a \ ( escape character ) it masks the character itself. Can be combined with exFilterDoCaseSensitive flag * exDate (4), includes only items that fit the date interval. The Filter property of the Column object defines the interval of dates being used to filter items. The interval of dates should be as [dateFrom] to [dateTo]. If the dateFrom value is missing, the control includes only the items before the dateTo date, if the dateTo value is missing, the control includes the items after the dateFrom date. If both dates ( dateFrom and dateTo ) are present, the control includes the items between this interval of dates. For instance, the "2/13/2004 to" includes all items after 2/13/2004 inclusive, or "2/13/2004 to Feb 14 2005" includes all items between 2/13/2004 and 2/14/2004. * exNumeric (5), includes only items of numeric type that check the expression. The expression supports operators like <, <=, =, <>, >= or > and numbers to define rules. For instance, the "> 10 < 100" filter indicates all numbers greater than 10 and less than 100. * exCheck (6), includes only checked-items, while Filter property is "1" or unchecked-items if Filter is "0" * exImage (10), includes only items that match the images within the Filter property. * exFilter (240), includes only items that match the Filter property. Can be combined with exFilterDoCaseSensitive flag * exFilterDoCaseSensitive (0x100), By default, the column's filter is case-insensitive. Specifies a case-sensitive column's filter. Can be combined with exPattern or exFilter flag * exFilterExclude (0x200), The flag indicates that the Exclude field of the column is checked. The flag indicates that the items that match the filter are excluded from the list. * * The filter depends on the filterType as explained: * * filterType = exFilter, the filter field indicates the list (separated by "|" character) of values to filter for. For instance, filter = "Cell A", filters for items with the caption "Cell A", filter = "Cell A|Cell B", filters for items with the caption "CellA" or "CellB". * filterType = exPattern, the filter field defines the wild-patterns to filter for items (separated by "|" character). A pattern-filter may contain wild card characters like '?' for any single character, '*' for zero or more occurrences of any character, '#' for any digit character. For instance: "A*" filters for items that begins with "A" or "a", "A*|B*" filters for items that starts with "A", "a", "B" or "b". * filterType = exDate, the filter field contains alternative interval-dates to filter for (separated by "|" character). An interval-date could be of "[dateFrom] [to] [dateTo]" or "[operator] date [operator date ...]" format. The "[dateFrom] [to] [dateTo]" format filter for items that fit the interval. For instance: "2/13/2004" filter only for items with the date on 2/13/2004, "2/13/2004 to", filter for items whose date is greater or equal with 2/13/2004, "to 2/13/2004" filter for items with the date less or equal with 2/13/2004. For instance: "2/13/2004 | 2/13/2005 to" filter for items with the date on 2/13/2004 or greater or equal with 2/13/2005. The "operator date [operator date ...]" format allows to filter using multiple operators as <, <=, =, <>, !=, >= or >. For instance: "> 2/13/2004" filter for items with the date greater than 2/13/2004, "> 2/13/2004 | <= 2/13/2002" filter for dates greater than 2/13/2004 or less or greater than 2/13/2002 * filterType = exNumeric, the filter field specifies a list of numeric-rules to filter for (separated by "|" character). The format of filter field is "[operator] number [operator number ...]", which define numeric-rule, where operator is one of <, <=, =, <>, !=, >= or >. For instance, the "> 10" filters for numbers greater than 10, "> 10 < 100" filters for numbers greater than 10 and less than 100, "10|20|>50" filters for items that include 10, 20 or any number greater than 50 * filterType = exCheck, the filter field specifies a list of states to filter for (separated by "|" character). The cell's state is "0" (unchecked), "1" (checked) and "2" (partial-checked). For instance: "1" filters for checked items, "1|2" filters for partially and checked items * filterType = exImage, the filter field defines the list of images (separated by "|" character) to filter for. The cell's image property specifies the image of the cell. For instance, "Al" filters for items that displays the "Al" picture/image, "Al|Peggy" filters for items that displays the "Al" or "Peggy" images. The exontrol.HTMLPicture.Add() method adds named images to the control. * * The filter field has no effect if the filterType field is exAll, exBlanks or exNonBlanks. The filter is case-sensitive, if the filterType includes the exFilterDoCaseSensitive flag. * * @example * * 2 or exontrol.Tree.FilterTypeEnum.exNonBlanks {number}, filters for not-blank items (a blank item is an empty item or an item that displays whitespace characters) * 6 or exontrol.Tree.FilterTypeEnum.exCheck {number}, filters for checked-items (while filter field is "1") or unchecked-items (while filter field is "0") * */ filterType: exontrol.Tree.FilterTypeEnum.exAll, /** * @description The filterList field specifies whether the drop down filter list includes visible or all items. * @type {exontrol.Tree.FilterListEnum} Specifies options to display the column's drop down filter * * The exontrol.Tree.FilterListEnum type supports the following values and flags: * * exAllItems (0), the filter's list includes all values in the column. * exVisibleItems (1), the filter's list includes only visible (filtered) items from the column. The visible items include child items of collapsed items. * exNoItems (2), the filter's list includes no item from the column. * exLeafItems (3), the filter's list includes the leaf items only. A leaf item is an item with no child items. * exRootItems (4), the filter's list includes the root items only. A root item has no parent item. * exSortItemsDesc (0x10), sorts descending the items of the filter's list. If none of the exSortItemsAsc or exSortItemsDesc is present, the list is built as the items are displayed in the control. * exSortItemsAsc (0x20), sorts ascending the items of the filter's list. If none of the exSortItemsAsc or exSortItemsDesc is present, the list is built as the items are displayed in the control. * exShowCheckBox (0x100), Displays a check-box for each item within the filter's list. * exShowExclude (0x2000), Shows or hides the Exclude field. The exFilterExclude flag excludes programmatically the selected items in the drop down filter panel. * exShowBlanks (0x4000), The filter's list includes (Blanks) and (NonBlanks) items * * @example * * 2 or exontrol.Tree.FilterTypeEnum.exNonBlanks {number}, filters for not-blank items (a blank item is an empty item or an item that displays whitespace characters) * 6 or exontrol.Tree.FilterTypeEnum.exCheck {number}, filters for checked-items (while filter field is "1") or unchecked-items (while filter field is "0") */ filterList: exontrol.Tree.FilterListEnum.exAllItems, /** * @description The filterOnType field allows you to filter the control's data based on the typed characters * @type {boolean} Specifies whether the column gets filtered as soon as user types characters * * @example * * false {boolean}, no filter-on-type input is available for the column (excepts columns of exPattern, exDate or exNumeric type) * true {boolean}, the column's filter-on-type input is displayed as soon as the user clicks the column's funnel glyph (no column's filter-list is displayed, if available) */ filterOnType: false, /** * @description The valueToItemBarProperty field specifies the property of the bar the cells of the column display. The valueToItemBarProperty/valueToItemBarKey defines a relation/association between a specified property bar and the value of the cell within the column. * @type {any} Indicates the property of the bar the cells of the column display as explained: * * valueToItemBarProperty {number}, indicates a value of ItemBarPropertyEnum type as explained: * * -1 {number}, no property assigned * 0 {number}, (exBarName) equivalent of 'name' option of the item-bar, indicates the bar's name (defines the bar's visual appearance) * 1 {number}, (exBarStart) equivalent of 'start' option of the item-bar, specifies the date-time the bar starts from * 2 {number}, (exBarEnd) equivalent of 'end' option of the item-bar, specifies the date-time the bar ends to * 3 {number}, (exBarCaption) equivalent of 'caption' option of the item-bar, specifies the caption to display within the bar * 4 {number}, (exBarHAlignCaption) equivalent of 'hAlignCaption' option of the item-bar, specifies the horizontal-alignment / clipping of the item-bar's caption inside / outside the bar * 5 {number}, (exBarVAlignCaption) equivalent of 'vAlignCaption' option of the item-bar, specifies the vertical-alignment of the item-bar's caption inside / outside the bar * 6 {number}, (exBarToolTip) equivalent of 'toolTip' option of the item-bar, specifies the tooltip to be shown once the cursor hovers the bar * 9 {number}, (exBarKey) equivalent of 'key' option of the item-bar, indicates the bar's key (used only if item hosts multiple bars) * 10 {number}, (exBarCanResize) equivalent of 'canResize' option of the item-bar, specifies whether the user can resize the bar on both margins by drag (requires to be selectable too) * 11 {number}, (exBarCanMove) equivalent of 'canMove' option of the item-bar, specifies whether the user can move the bar within the same item by drag (requires to be selectable too) * 12 {number}, (exBarPercent) equivalent of 'percent' option of the item-bar, specifies the bar's percent, as a value from 0 to 1 (for 100%) * 13 {number}, (exBarPercentCaptionFormat) equivalent of 'percentCaptionFormat' option of the item-bar, specifies the HTML format to display the bar's percent * 14 {number}, (exBarShowPercentCaption) equivalent of 'showPercentCaption' option of the item-bar, shows or hides the bar's percent-caption * 15 {number}, (exBarAlignPercentCaption) equivalent of 'alignPercentCaption' option of the item-bar, horizontally aligns the bar's percent-caption * 16 {number}, (exBarCanResizePercent) equivalent of 'canResizePercent' option of the item-bar, specifies whether the user can resize the percent at runtime * 18 {number}, (exBarOffset) equivalent of 'offset' option of the item-bar, indicates the vertical-offset relative to the default position, the bar is displayed * 21 {number}, (exBarEffort) equivalent of 'effort' option of the item-bar, indicates the bar's effort, or the effort to execute an unit within the bar (bar's histogram value) * 28 {number}, (exBarCanMoveToAnother) equivalent of 'canMoveToAnother' option of the item-bar, specifies whether the bar can be moved to another item by drag and drop (requires to be selectable too) * 29 {number}, (exBarSelectable) equivalent of 'selectable' option of the item-bar, indicates whether the item-bar is selectable or unselectable * 33 {number}, (exBarColor) equivalent of 'shape' option of the item-bar, defines the bar's individual-shape * 41 {number}, (exBarOverviewColor) equivalent of 'overviewColor' option of the item-bar, defines the bar's individual overview-color (the color to show this particular bar within the control's overview panel) * 44 {number}, (exBarExtraCaption) equivalent of 'extraCaption' option of the item-bar, specifies the extra caption to display within the bar * 45 {number}, (exBarExtraCaptionHAlign) equivalent of 'extraCaptionHAlign' option of the item-bar, specifies the horizontal-alignment / clipping of the item-bar's extra caption inside / outside the bar * 46 {number}, (exBarExtraCaptionVAlign) equivalent of 'extraCaptionVAlign' option of the item-bar, specifies the vertical-alignment of the item-bar's extra caption inside / outside the bar * 52 {number}, (exBarOverlaidKey) equivalent of 'overlaidKey' option of the item-bar, specifies the z-order of the bar when it overlaps other bars (exOverlaidBarsCascade type) * 56 {number}, (exBarShowCaption) equivalent of 'showCaption' option of the item-bar, shows or hides the bar's caption * 57 {number}, (exBarShowExtraCaption) equivalent of 'showExtraCaption' option of the item-bar, shows or hides the bar's extra caption * 60 {number}, (exBarHistLegend) equivalent of 'histLegend' option of the item-bar, shows or hides the bar's description within the histogram-legend * 269 {number}, (exBarCriticalPath) equivalent of 'criticalPath' option of the item-bar, indicates whether the current bar is part of the critical path (currently, the exBarCriticalPath property specifies the position (1-based) of the bar in the critical path) * 270 {number}, (exBarPredecessor) equivalent of 'predecessor' option of the item-bar, indicates the list of predecessor bars (INDEX1['SF'|'FS'|'FF'|'SS'][KEY][:['W']LAG|:LAG['W']] format), separated by comma (@since 2.3) * 271 {number}, (exBarSuccessor) equivalent of 'successor' option of the item-bar, indicates the list of successor bars (INDEX1['SF'|'FS'|'FF'|'SS'][KEY][:['W']LAG|:LAG['W']] format), separated by comma (@since 2.3) * 512 {number}, (exBarParent) equivalent of 'parent' option of the item-bar, gets the item that hosts the item bar * 513 {number}, (exBarDuration) equivalent of 'duration' option of the item-bar, gets the item-bar's duration or length in days * * valueToItemBarProperty {string}, specifies a field of exontrol.Gantt.BarOptions type as explained: * * "" {string}, no property assigned * "alignPercentCaption" {string}, equivalent of exBarAlignPercentCaption(15), horizontally aligns the bar's percent-caption * "canMove" {string}, equivalent of exBarCanMove(11), specifies whether the user can move the bar within the same item by drag (requires to be selectable too) * "canMoveToAnother" {string}, equivalent of exBarCanMoveToAnother(28), specifies whether the bar can be moved to another item by drag and drop (requires to be selectable too) * "canResize" {string}, equivalent of exBarCanResize(10), specifies whether the user can resize the bar on both margins by drag (requires to be selectable too) * "canResizePercent" {string}, equivalent of exBarCanResizePercent(16), specifies whether the user can resize the percent at runtime * "caption" {string}, equivalent of exBarCaption(3), specifies the caption to display within the bar * "criticalPath" {string}, equivalent of exBarCriticalPath(269), indicates whether the current bar is part of the critical path (currently, the exBarCriticalPath property specifies the position (1-based) of the bar in the critical path) * "duration" {string}, equivalent of exBarDuration(513), gets the item-bar's duration or length in days * "effort" {string}, equivalent of exBarEffort(21), indicates the bar's effort, or the effort to execute an unit within the bar (bar's histogram value) * "end" {string}, equivalent of exBarEnd(2), specifies the date-time the bar ends to * "extraCaption" {string}, equivalent of exBarExtraCaption(44), specifies the extra caption to display within the bar * "extraCaptionHAlign" {string}, equivalent of exBarExtraCaptionHAlign(45), specifies the horizontal-alignment / clipping of the item-bar's extra caption inside / outside the bar * "extraCaptionVAlign" {string}, equivalent of exBarExtraCaptionVAlign(46), specifies the vertical-alignment of the item-bar's extra caption inside / outside the bar * "hAlignCaption" {string}, equivalent of exBarHAlignCaption(4), specifies the horizontal-alignment / clipping of the item-bar's caption inside / outside the bar * "key" {string}, equivalent of exBarKey(9), indicates the bar's key (used only if item hosts multiple bars) * "name" {string}, equivalent of exBarName(0), defines the bar's name (defines the bar's visual appearance) * "offset" {string}, equivalent of exBarOffset(18), indicates the vertical-offset relative to the default position, the bar is displayed * "overlaidKey" {string}, equivalent of exBarOverlaidKey(52), specifies the z-order of the bar when it overlaps other bars (exOverlaidBarsCascade type) * "overviewColor" {string}, equivalent of exBarOverlaidKey(41), defines the bar's individual overview-color (the color to show this particular bar within the control's overview panel) * "parent" {string}, equivalent of exBarParent(512), gets the item that hosts the item bar * "percent" {string}, equivalent of exBarPercent(12), specifies the bar's percent, as a value from 0 to 1 (for 100%) * "percentCaptionFormat" {string}, equivalent of exBarPercentCaptionFormat(13), specifies the HTML format to display the bar's percent * "selectable" {string}, equivalent of exBarSelectable(29), indicates whether the item-bar is selectable or unselectable * "shape" {string}, equivalent of exBarColor(33), defines the bar's individual-shape * "showCaption" {string}, equivalent of exBarShowCaption(56), shows or hides the bar's caption * "showExtraCaption" {string}, equivalent of exBarShowExtraCaption(57), shows or hides the bar's extra caption * "showPercentCaption" {string}, equivalent of exBarShowPercentCaption(14), shows or hides the bar's percent-caption * "start" {string}, equivalent of exBarStart(1), specifies the date-time the bar starts from * "toolTip" {string}, equivalent of exBarToolTip(6), specifies the tooltip to be shown once the cursor hovers the bar * "vAlignCaption" {string}, equivalent of exBarVAlignCaption(5), specifies the vertical-alignment of the item-bar's caption inside / outside the bar * "histLegend" {string}, equivalent of exBarHistLegend(60), specifies the description to show within the histogram's legend for the bar in the control's histogram * "predecessor" {string}, equivalent of exBarPredecessor(270), indicates the list of predecessor bars (INDEX1['SF'|'FS'|'FF'|'SS'][KEY][:['W']LAG|:LAG['W']] format), separated by comma (@since 2.3) * "successor" {string}, equivalent of exBarSuccessor(271), indicates the list of successor bars (INDEX1['SF'|'FS'|'FF'|'SS'][KEY][:['W']LAG|:LAG['W']] format), separated by comma (@since 2.3) * * @example * * "" {string} or null {null}, no effect (the column is not associated with any property of the bar) * "name" {string}, the column displays the name of the bars * 21 {number}, the column displays the bar's effort (the effort to execute an unit within the bar (bar's histogram value)) * */ valueToItemBarProperty: null, /** * @description The valueToItemBarKey field indicates the key of the bars whose property is shown in the column. The valueToItemBarProperty/valueToItemBarKey defines a relation/association between a specified property bar and the value of the cell within the column. * @type {string} Specifies the key of the bars whose property is shown in the column. * * @example * * "" {string} or null {null}, the column displays the bar's property, whose "key" is empty (the control's Debug property forces the control to display the key for all visible bars) */ valueToItemBarKey: null }; /////////////////////////////////////////////////////////// (exontrol.Tree.Items) // // The exontrol.Tree.Items object holds a collection of exontrol.Tree.Item type (item of the control) // // The exontrol.Tree.Items object provides the following methods: // // Add(oItemOpts) {exontrol.Tree.Item}, creates and adds a new item into the control // Count/GetCount() {number}, returns the number of items within the collection. // Item(id) {exontrol.Tree.Item}, gets the item giving its index, identifier/key or reference // Remove(id), removes the item giving its index, identifier/key or reference // Clear(), removes all items of the control // VisibleCount/GetVisibleCount() {number}, returns the number of visible-items // MatchCount/GetMatchCount() {number}, returns the number of items that match the filter // LeafCount/GetLeafCount() {number}, counts the leaf-items (a leaf item is an item with no child items) // HasChildren/GetHasChildren() {boolean}, checks whether the control contains any child-item (list or tree) // // Additionally, the exontrol.Tree.Items object provides the following methods: // // DefSchedulePDM/GetDefSchedulePDM()/SetDefSchedulePDM(value) {object}, defines the options for the SchedulePDM() method, as an object of exontrol.Gantt.DefSchedulePDM type // SchedulePDM(item, key) {number}, arranges the activities on the plan based on the links / relationships / dependencies (returns 0 if successful) // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Tree.Item) // // The exontrol.Tree.Item object holds information(options) about an item within the control. // // The Add(oItemOpts) method of exontrol.Tree.Items creates and adds a new item into the control. The Add(oItemOpts) method of exontrol.Tree.Item creates and adds a new child-item into the control. // // The exontrol.Tree.Item object provides the following methods: // // Add(oItemOpts) {exontrol.Tree.Item}, creates and adds a new child-item into the control. // Remove(), removes the item itself from items collection ( equivalent of Items.Remove(oItem) method ) // Options/GetOptions()/SetOptions(value) {exontrol.Tree.ItemOptions}, indicates the item's options (at once) such as visibility, position and so on // Index/GetIndex() {number}, returns the index of the item (0-based) // Position/GetPosition()/SetPosition(value) {number}, specifies the item's position (0-based) // Key/GetKey()/SetKey(value) {boolean}, specifies the item's key (the Items.Item(key) requests an item by its index, identifier/key or reference) // Visible/GetVisible()/SetVisible(value) {boolean}, shows or hides the item // Enabled/GetEnabled()/SetEnabled(value) {boolean}, enables or disables the item // Shape/GetShape()/SetShape(value) {any}, the shape for the item itself. // Cursor/GetCursor()/SetCursor(value) {any}, the mouse cursor for the item itself. // Height/GetHeight()/SetHeight(value) {array}, specifies the item's height. // Parent/GetParent()/SetParent(value) {any}, specifies the parent's item. // Expanded/GetExpanded()/SetExpanded(value) {any}, expands or collapses the item // ToggleExpand(), toggles the item's expand state. For instance, if the item is expanded, the ToggleExpand() method collapses the item. // Divider/GetDivider()/SetDivider(value) {any}, shows the item as a divider (an divider-item shows a cell only) // Selectable/GetSelectable()/SetSelectable(value) {any}, specifies whether the item is selectable // AllowSizing/GetAllowSizing()/SetAllowSizing(value) {any}, indicates whether the item is resizable // Sortable/GetSortable()/SetSortable(value) {any}, specifies whether the item is sortable // ShowExpand/GetShowExpand()/SetShowExpand(value) {boolean}, specifies whether the item's expand/collapse glyph is visible or hidden // // Additionally, the exontrol.Tree.Item object provides the following methods: // // AddBar(name, start, end, key, text)/AddBar({exontrol.Gantt.ItemBarOptions}) {object}, adds a bar for the current item, and returns an object of exontrol.Gantt.ItemBar type // RemoveBar(key), removes a bar of the current item giving its key // ClearBars(), clears all bars of the item // ItemBar(key) {object}, gets undefined or the bar of the current item giving its key, and returns an object of exontrol.Gantt.ItemBar type // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Tree.ItemOptions) // // The exontrol.Tree.ItemOptions type holds all options an item can display or own // // The exontrol.Tree.ItemOptions type defines the following fields: // // value {any}, defines the value(s) of the item's first-cell(s) at adding time // visible {boolean}, indicates whether the item is visible or hidden // enabled {boolean}, indicates whether the item is enabled or disabled // key {string}, specifies the key associated with the item // shape {any}, defines the shape for individual item // cursor {string}, defines the mouse-cursor for individual item // height {number}, specifies the item's height // parent {any}, indicates the item's parent // expanded {boolean}, specifies whether the item is expanded or collapsed // divider {any}, shows the item as a divider (an divider-item shows a cell only) // selectable {boolean}, specifies whether the item is selectable // sortable {boolean}, specifies whether the item is sortable, // showExpand {boolean}, shows or hides the item's expand/collapse glyphs // selected {boolean}, specifies whether the item is selected or unselected // /////////////////////////////////////////////////////////// exontrol.Tree.ItemOptions = { /** * @description The value field defines the value(s) of first cell(s) once the item is added. * @type {any} Defines the value of the first cell(s). The value field has effect only while using with the Add({value}) method of exontrol.Tree.Items or exontrol.Tree.Item type. If the value is an array, it specifies the values for cells within the item to be added, else it specifies the value for the first-cell (the cell with the index 0) * * @example * * Add("caption") {exontrol.Tree.Item}, adds a new item, and sets the caption for the first cell. * Add({value: "caption"}) {exontrol.Tree.Item}, adds a new item, and sets the caption for the first cell. * Add(["Cell 1","Cell 2"]) {exontrol.Tree.Item}, adds a new item, and sets the caption for the first and second cell. * Add({value: ["Cell 1","Cell 2"]}) {exontrol.Tree.Item}, adds a new item, and sets the caption for the first and second cell. * */ value: undefined, /** * @description The visible field indicates whether the item is visible or hidden. * @type {boolean} Specifies whether the item is visible or hidden. * @example * * false {boolean}, hides the item * true {boolean}, shows the item */ visible: true, /** * @description The enabled field indicates whether the item is enabled or disabled * @type {boolean} Specifies whether the item is enabled or disabled * @example * * false {boolean}, disables the item * true {boolean}, enables the item */ enabled: true, /** * @description The key field specifies the key associated with the item. * @type {string} Specifies the key associated with the item. If no key is provided, the item's plain-caption can be used to request an item. The plain-caption includes no ex-HTML tags, such as , and so on * @example * * "logo" {string}, defines the item with the giving key (logo). You can use the Root.Item("logo") method to request the item giving its key. */ key: null, /** * @description The shape field defines the shape for individual item. * @type {any} A string expression that defines shape's name within the exontrol.Shape.Gantt or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type, for the item itself or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type. * @example * * null {null}, no custom shape is applied (default object's shape may be applied) * "" {string}, no custom shape is applied (no default object's shape is be applied) * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ shape: null, /** * @description The cursor field defines the mouse-cursor for individual item. * @type {string} A string expression that defines the mouse-cursor for individual item. * @example * * "pointer" {string}, The cursor is a pointer that indicates a link (typically an image of a pointing hand) */ cursor: null, /** * @description The height field defines the item's height. * @type {number} Defines the item's height. If height field is not specified, the control's defaultItemHeight field defines the item's height. * @example * * null {null}, indicates that the item's height is defined by the control's defaultItemHeight field (22) * 18 {number}, specifies the item's height to 18 */ height: null, /** * @description The parent field defines the item's parent. * @type {any} The parent field can be one of the following: * * parent {number}, indicates a numeric value that defines the index of the parent's item (0-based) * parent {string}, specifies a string expression that defines the identifier/key of the parent's item * parent {exontrol.Tree.Item}, specifies the object reference to the parent's item * * @example * * 0 {number}, indicates that the item with the index 0 is the parent of the current item * "key" {string}, specifies that the parent of the current item is the item with the giving key * */ parent: null, /** * @description The expanded field indicates whether the item is expanded or collapsed. * @type {boolean} Indicates whether the item's children are shown(expanded) or hidden(collapsed) * @example * * false {boolean}, the item is collapsed * true {boolean}, the item is expanded (item's children are shown) * */ expanded: true, /** * @description The divider field shows the item as a divider (an divider-item shows a cell only) * @type {any} Specifies the index or identifier/key/caption of the only cell the divider-item shows * @example * * null {null}, multiple-columns item (no divider-item) * 0 {number}, divider-item that always displays the cell with the index 0 * "xxx" {string}, divider-item that always displays the cell on the column "xxx" (key or plain-caption) */ divider: null, /** * @description The selectable field indicates whether the item is selectable or unselectable * @type {boolean} Specifies whether the item is selectable * @example * * false {boolean}, the item is unselectable * true {boolean}, the item is selectable */ selectable: true, /** * @description The allowSizing field specifies whether the item is resizable or fixed * @type {boolean} Specifies whether the item is resizable or fixed * @example * * null {null}, the control's itemAllowSizing field specifies whether the item is resizable or fixed * false {boolean}, the item is fixed * true {boolean}, the item is resizable, so user can resize the item by drag (if "item-resize" action is allowed) */ allowSizing: null, /** * @description The sortable field indicates whether the item is sortable or unsortable * @type {boolean} Specifies whether the item is sortable * @example * * false {boolean}, the item is unsortable (an unsortable item keeps its position after user performs a sort operation) * true {boolean}, the item is sortable */ sortable: true, /** * @description The showExpand field specifies whether the item displays its expand/collapse glyphs. * @type {boolean} Shows or hides the item's expand/collapse glyphs. * @example * * false {boolean}, the item hides its expand/collapse glyphs (no indentation is applied) * true {boolean}, the item shows its expand/collapse glyphs (indentation is applied) * -1 {number}, the item shows no expand/collapse glyphs, instead indentation is applied */ showExpand: true, /** * @description The selected field indicates whether the item is selected or unselected * @type {boolean} Specifies whether the item is selected * @example * * false {boolean}, the item is unselected * true {boolean}, the item is selected */ selected: null }; /////////////////////////////////////////////////////////// (exontrol.Tree.Cell) // // The exontrol.Tree.Cell object defines a cell within the control. The cell is the intersection of an item with a column. // // The exontrol.Tree.Cell object provides the following methods: // // Options/GetOptions()/SetOptions(value) {exontrol.Tree.Cellptions}, indicates the cell's options (at once) such as caption, image and so on // Item/GetItem() {exontrol.Tree.Item}, gets the cell's item, as an object of exontrol.Tree.Item type // Column/GetColumn() {exontrol.Tree.Column}, gets the cell's column, as an object of exontrol.Tree.Column type // Enabled/GetEnabled()/SetEnabled(value) {boolean}, enables or disables the cell // Value/GetValue()/SetValue(value) {any}, specifies the cell's value // ToolTip/GetToolTip()/SetToolTip(value) {any}, indicates the cell's predefined tooltip // FormatText/GetFormatText()/SetFormatText(value) {exontrol.DrawTextFormatEnum}, defines the format to display the cell's caption. // Pad/GetPad()/SetPad(value) {(number|string|array)}, defines the format to display the cell's caption. // Image/GetImage()/SetImage(value) {string}, defines the cell's image. The image can be added using the exontrol.HTMLPicture.Add() method // ImageSize/GetImageSize()/SetImageSize(value) {any}, defines the size of the cell's image. The image can be added using the exontrol.HTMLPicture.Add() method // ImageAlign/GetImageAlign()/SetImageAlign(value) {number}, defines the alignment of the cell's image relative to its caption. // Shape/GetShape()/SetShape(value) {any}, the shape for the item itself. // Cursor/GetCursor()/SetCursor(value) {any}, the mouse cursor for the item itself. // State/GetState()/SetState(value) {any}, specifies the cell's state (checked or unchecked). // HasCheck/GetHasCheck/()/SetHasCheck/(value) {any}, specifies whether the cell's check-box or radio-button is visible or hidden // Format/GetFormat()/SetFormat(value) {string}, specifies the format to display the cell // Evaluate(formula) {any}, evaluates the formula and returns the result. // Data/GetData()/SetData(value) {string}, associates any extra data to the current cell // Edit(editOpts), edits the current cell. // // The exontrol.Tree.Cell object provides the following additional methods: // // ValueToItemBar(property, key), associates a different property or a different bar with the current cell. The column's valueToItemBarProperty/valueToItemBarKey options define a relation/association between a specified property bar and the value of the cell within the entire column. // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Tree.CellOptions) // // The exontrol.Tree.CellOptions type holds all options an cell can display or own // // The exontrol.Tree.CellOptions type defines the following fields: // // enabled {boolean}, indicates whether the cell is enabled or disabled // value {string}, defines the cell's value (can be requested within format-expression using the % syntax) // formatText {exontrol.DrawTextFormatEnum}, specifies the format to display the cell's caption // pad {(number|string|array)}, defines the cell's padding (space between the cell's content and its border) // image {string}, specifies the name of the image/picture the cell displays. The image can be added using the exontrol.HTMLPicture.Add() method // imageSize {any}, defines the size of the cell's image // imageAlign {number}, defines the alignment of the image within the cell // shape {any}, defines the shape for individual cell // cursor {string}, defines the mouse-cursor for individual cell // state {number}, specifies the cell's state (unchecked or checked) (can be requested within format-expression using the %CS syntax) // hasCheck {number}, indicates whether the cell displays a check-box(1) or a radio-button(2) // format {string}, formats the cell giving an expression // data {string}, associates any extra data to the current cell (can be requested within format-expression using the %CD syntax) // /////////////////////////////////////////////////////////// exontrol.Tree.CellOptions = { /** * @description The enabled field indicates whether the cell is enabled or disabled * @type {boolean} Specifies whether the cell is enabled or disabled * @example * * false {boolean}, disables the cell * true {boolean}, enables the cell */ enabled: true, /** * @description The value field defines the cell's value (can be requested within format-expression using the % syntax). * @type {string} Specifies the cell's value, that defines what cell displays. * @example * * null {null}, indicates no caption * "caption" {string}, declares a plain-caption * "text" {string}, displays the text in bold * "logo" {string}, displays the "logo" image. The image can be added using the exontrol.HTMLPicture.Add() method */ value: null, /** * @description The formatText field specifies the format to display the cell's caption. * @type {exontrol.DrawTextFormatEnum} A exontrol.DrawTextFormatEnum value that defines the format to show the cell's caption. * * The exontrol.DrawTextFormatEnum type supports the following flags: * * exTextAlignTop (0x00), justifies the text to the top of the rectangle * exTextAlignLeft (0x00), aligns text to the left * exTextAlignCenter (0x01), centers text horizontally in the rectangle * exTextAlignRight (0x02), aligns text to the right * exTextAlignVCenter (0x04), centers text vertically * exTextAlignBottom (0x08), justifies the text to the bottom of the rectangle. * exTextAlignMask (0x0F), specifies the mask for text's alignment. * exTextWordBreak (0x10), breaks words. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by the lpRect parameter. A carriage return-line feed sequence also breaks the line. If this is not specified, output is on one line. * exTextSingleLine (0x20), displays text on a single line only. Carriage returns and line feeds do not break the line. * exTextExpandTabs (0x40), expands tab characters. The default number of characters per tab is eight. * exPlainText (0x80), treats the text as plain text. * exTextNoClip (0x0100), draws without clipping. * exHTMLTextNoColors (0x0200), ignores the and tags. * exTextCalcRect (0x0400), determines the width and height of the text. * exHTMLTextNoTags (0x0800), ignores all HTML tags. * exTextPathEllipsis (0x4000), for displayed text, replaces characters in the middle of the string with ellipses so that the result fits in the specified rectangle. If the string contains backslash (\) characters, exTextPathEllipsis preserves as much as possible of the text after the last backslash. * exTextEndEllipsis (0x8000), for displayed text, if the end of a string does not fit in the rectangle, it is truncated and ellipses are added. If a word that is not at the end of the string goes beyond the limits of the rectangle, it is truncated without ellipses. * exTextWordEllipsis (0x040000), truncates any word that does not fit in the rectangle and adds ellipses. * * @example * * null {null}, centers the caption * 32 or exontrol.DrawTextFormatEnum.exTextSingleLine {number}, defines a single-line caption * 0x2A or exontrol.DrawTextFormatEnum.exTextSingleLine | exontrol.DrawTextFormatEnum.exTextAlignRight | exontrol.DrawTextFormatEnum.exTextAlignBottom {number}, defines a single-line caption right/bottom-aligned */ formatText: null, /** * @description The pad field defines the cell's padding (space between the cell's content and its border) * @type {(number|string|array)} A value that could be a numeric value, to pad horizontal and vertical size with the same value, or a "x,y" or [x,y] type to specify the padding on h/v size * * null {null}, indicates that the default-padding field is used ([4,4]) * 0 {number}, indicates no padding * "8,4" {string}, increases the element's width with 2 * 8-pixels and element's height with 2 * 4-pixels * [8,4] {array}, increases the element's width with 2 * 8-pixels and element's height with 2 * 4-pixels */ pad: null, /** * @description The image field specifies the name of the image/picture the cell displays. The image can be added using the exontrol.HTMLPicture.Add() method * @type {string} Indicates the name of the image/picture the cell displays. */ image: null, /** * @description The imageSize field defines the size of the cell's image. * @type {(null|number|array)} Indicates the size of the cell's image. * * The imageSize could be of one of the following types: * * {null}, Indicates that the object's image is displayed as it is (full-sized). * {number}, Specifies that the object's image is displayed into a square of giving size (same width and height). If 0 the object displays no image, if negative the object's image is stretched to giving square, else the object's picture is scaled to fit the giving rectangle. * {array}, Specifies an array of [aspect-width,aspect-height] type that defines the limits for width or/and height. The aspect-width and aspect-height define the width/height of the object's picture to scale or stretch to. * * @example * * null {null}, Indicates that the object's image is displayed as it is (full-sized). * 0 {number}, no image is displayed * 64 {number}, the image is scaled to fit a 64 x 64 rectangle * -64 {number}, the image is strected to a 64 x 64 rectangle * [32,64] {array}, scales the image to the largest ratio-rectangle (32 x 64) that fits the client * [-32,-64] {array}, stretches the image to a 32 x 64 rectangle */ imageSize: undefined, /** * @description The imageAlign field defines the alignment of the image within the cell. * @type {number} Indicates the alignment of the image within the cell. as 0 (left, default), 1(right), 2(top) or 3(bottom). * * The imageAlign propery can be any of the following: * * 0, the image is on the left of the cell's caption * 1, the image is on the right of the cell's caption * 2, the image is on the top of the cell's caption * 3, the image is on the bottom of the cell's caption * * @example * * null {null}, the image is aligned left to the caption (default) * 1 {number}, the image is displayed to the right of the cell's caption */ imageAlign: null, /** * @description The shape field defines the shape for individual cell. * @type {any} A string expression that defines shape's name within the exontrol.Shape.Gantt or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type, for the cell itself or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type. * * @example * * null {null}, no custom shape is applied (default object's shape may be applied) * "" {string}, no custom shape is applied (no default object's shape is be applied) * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ shape: null, /** * @description The cursor field defines the mouse-cursor for individual cell. * @type {string} A string expression that defines the mouse-cursor for individual cell. * * @example * * "pointer" {string}, The cursor is a pointer that indicates a link (typically an image of a pointing hand) */ cursor: null, /** * @description The state field specifies the cell's state (unchecked or checked) (can be requested within format-expression using the %CS syntax) * @type {number} A numeric expression that specifies whether the cell is checked or unchecked * * @example * * 0 {number}, the cell is unchecked * 1 {number}, the cell is checked * 2 {number}, the cell is partially-checked (valid for cells of check-box type) */ state: null, /** * @description The hasCheck field specifies whether the cell's check-box, radio-button is visible or hidden * @type {number} Defines whether the cell's check-box, radio-button is visible as follows: * * null {null}, the column's hasCheck field determines whether the cell's check-box, radio-button is visible or hidden * 0 {number}, the cell displays no check-box or radio-button * 1 {number}, the cell displays its check-box. * 2 {number}, the cell displays its radio-button (only a cell within the children of the parent-item can be checked). * * @example * * null {null}, the cell's check-box or radio-button is determined by the column's hasCheck field * 2 {number}, the cell displays its radio-button (cells of the same parent-item make the group of radio-cells, so only once can be checked at the time). By using the cell's individual hasCheck field on 2, you can specify multiple group of radio-buttons within the same column. * */ hasCheck: null, /** * @description The format field specifies the expression to format the cell * @type {string} Indicates the expression to format the cell * * The format-expression supports the following keywords: * * value, indicates the value of the current cell ( "value/2 format ``", displays half of the value using current regional format ) * %0, %1, %2, ... specifies the value of the cell in the column with the index 0, 1 2, ... ( "currency(%0 + %1)", adds the value of first and second cell and displays it as a currency ) * %C0, %C1, %C2, ... specifies the caption of the cell, or the string the cell displays in the column with the index 0, 1 2, ... ( "%C0 + %C1", concatenates the caption of first and second cell ) * %CD0, %CD1, %CD2, ... specifies the cell's user-date in the column with the index 0, 1 2, ... ( "%CD0 ? value : ``", displays the cell's value only if the cell's data is not empty ) * %CS0, %CS1, %CS2, ... specifies the cell's state in the column with the index 0, 1 2, ... ( "(%CS0 ? `` : ``) + value", displays the cell's value in bold only if the first cell is checked ) * * The format-expression supports the following unary-operators: * * exp(``), checks whether the item is expanded or collapsed ( "(exp(``) ? `` : ``) + value", shows expanded-items in bold ) * get(`aggregate(list,direction,formula)`), summarizes the cell based on "aggregate(list,direction,formula)" syntax, where: * * aggregate, must be one of the following: * * sum, performs addition of values * min, retrieves the minimum value * max, retrieves the maximum value * count, counts the number of items * avg, calculates the average of values * std, gets standard-deviation of numbers * * list, must be one of the following: * * a number expression that specifies the index of the item being referred * all, indicates all items, so the formula is being applied to all items. The direction has no effect * current, refers the current item * parent, refers to the parent item * root, refers to the root item (the root item has no parent items) * * direction, must be one of the following: * * dir, collects only direct descendents (child-items) * rec, collects recursivelly the leaf descendents ( leaf items ). A leaf item is an item with no child items * all, collects all descendents * * Currently, the following items are excluded by aggregate functions: * * not-sortable items. The SortableItem property specifies whether the item can be sorted ( a sortable item can change its position after sorting, while a not-sortable item keeps its position after sorting. * not-selectable items. The SelectableItem property specifies whether the user can selects/focus the specified item. * divider items. The ItemDivider property specifies whether the item displays a single cell, instead displaying whole cells. * * In conclusion, aggregate functions counts ONLY items that are sortable, selectable and not a divider-item. * * For instance: * * "get(`count(current,dir,1)`)", gets the count of child-items * "get(`count(current,all,1)`)", gets the count of all child-items (implies recursively child items) * "get(`count(current,rec,1)`)", counts the number of leaf items ( a leaf item is an item with no child items ). * "get(`sum(current,dir,%1 ? 1 : 0)`)", counts the number of child-items that have not-empty cells within the second-column * "get(`sum(current,dir,value)`)", gets the total of values of child-items (direct descendent) within the same column * "get(`sum(all,rec,value)`)", gets the total of values of leaf-items within the same column * "get(`sum(parent,dir,dbl(%1) + dbl(%2))`)", gets the addition of all cells in the second (%1) and third (%2) column that are directly descendent of the parent item (sibling). * * The format-expression supports the following binary-operators: * * 0 index `format`, gets the index of the item (0-based). The first added item has the index 0, the second added item has the index 1, and so on. The index of the item remains the same even if the order of the items is changed by sorting or grouping ( "1 index ``", gets the index of the item starting from 1 ) * 0 rindex `delimiter|format|format|...`, returns the recursive-index of the item ("1 rindex `.|A-Z`", returns values as A, A.1, A.2, B, ...) * 0 pos `format`, returns the relative position of the item (the position within the parent's children collection) ( "1 pos ``", returns the position of the item (1-based) within the parent's child items collection ) * 0 rpos `delimiter|format|format|...`, returns the recursive relative-position of the item (the position within the parent's children collection) ( "1 rpos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * 0 opos `format`, returns the relative old position of the item (the position within the parent's children collection) ( "1 opos ``", returns the position of the item (1-based) within the parent's child items collection ) * 0 ropos `delimiter|format|format|...`, returns the recursive relative-old-position of the item (the position within the parent's children collection) ( "1 ropos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * 0 apos `format`, returns the absolute position of the item (the position from the first visible item) ( "1 apos ``", gets absolute position of the item ) * 0 rapos `delimiter|format|format|...`, returns the recursive absolute-position of the item (the position from the first visible item) ( "1 rapos `.|A-Z`", returns values as A, A.1, A.2, B, ... ) * * where: * * `delimiter`, is a character to separated recursive-operators such as "rindex", "rpos", "ropos" and "rapos" * `format`, is a set of characters to be used for specifying the index * * @example * * "value format ``" {string}, shows the cell's value formatted as a number (as in regional settings) * "1 index ``" {string}, gets the index (1-based) of the item * "1 rpos `.|A-Z`" {string}, displays A, B, C for root-items, and A.1, A.2, A.1.1, ... B.1, B.2, ... for child-items * "currency(dbl(%0) + dbl(%1))" {string}, adds columns 0 and 1 and displays the result as currency * */ format: null, /** * @description The data field associates any extra data to the current cell (can be requested within format-expression using the %CD syntax) * @type {any} Any type of object you associate with the current cell * * @example * * 0 {number}, the cell's data is 0. For instance, "%CD0 == 0" format-expression selects all cells with the cell's data on 0 * "name" {string}, the cell's data is "name". For instance, "%CD0 like `name*`" format-expression selects all cells with the cell's data starting with "name" */ data: undefined }; /////////////////////////////////////////////////////////// (exontrol.Gantt.ItemBarOptions) // // The exontrol.Gantt.ItemBarOptions type holds all options an item-bar can display or own // // The exontrol.Gantt.ItemBarOptions type defines the following fields: // // name {string}, defines the bar's name (defines the bar's visual appearance) // key {any}, indicates the bar's key (used only if item hosts multiple bars) // start {any}, specifies the date-time the bar starts from // end {any}, specifies the date-time the bar ends to // shape {any}, defines the bar's individual-shape // height {number}, specifies the bar's individual-height // selected {boolean}, specifies whether the bar is selected or unselected // selectable {boolean}, indicates whether the item-bar is selectable or unselectable // caption {string}, specifies the caption to display within the bar // hAlignCaption {number}, specifies the horizontal-alignment / clipping of the item-bar's caption inside / outside the bar // vAlignCaption {number}, specifies the vertical-alignment of the item-bar's caption inside / outside the bar // showCaption {boolean}, shows or hides the bar's caption // extraCaption {string}, specifies the extra caption to display within the bar // extraCaptionHAlign {number}, specifies the horizontal-alignment / clipping of the item-bar's extra caption inside / outside the bar // extraCaptionVAlign {number}, specifies the vertical-alignment of the item-bar's extra caption inside / outside the bar // showExtraCaption {boolean}, shows or hides the bar's extra caption // toolTip {string}, specifies the tooltip to be shown once the cursor hovers the bar // canResize {number}, specifies whether the user can resize the bar on both margins by drag (requires to be selectable too) // canMove {boolean}, specifies whether the user can move the bar within the same item by drag (requires to be selectable too) // canMoveToAnother {boolean}, specifies whether the bar can be moved to another item by drag and drop (requires to be selectable too) // summaryBarShape {any}, defines the shape to apply on the background of all summary-bar's child item-bars (valid for summary-bars only) // captionHOffset {number}, indicates the bar's caption horizontal-offset (relative to its alignment/default-position) // captionVOffset {number}, indicates the bar's caption vertical-offset (relative to its alignment/default-position) // extraCaptionHOffset {number}, indicates the bar's extra-caption horizontal-offset (relative to its alignment/default-position) // extraCaptionVOffset {number}, indicates the bar's extra-caption vertical-offset (relative to its alignment/default-position) // canStartLink {boolean}, specifies whether a link can start from this bar // canEndLink {boolean}, specifies whether a link can end on this bar // canBeLinked {boolean}, specifies whether the bar can be linked // effort {number}, indicates the bar's effort, or the effort to execute an unit within the bar (bar's histogram value) // overlaidKey {string}, specifies the z-order of the bar when it overlaps other bars (exOverlaidBarsCascade type) // offset {number}, indicates the vertical-offset relative to the default position, the bar is displayed // percent {number}, specifies the bar's percent, as a value from 0 to 1 (for 100%) // showPercentCaption {boolean}, shows or hides the bar's percent-caption // alignPercentCaption {number}, horizontally aligns the bar's percent-caption // canResizePercent {boolean}, specifies whether the user can resize the percent at runtime // percentCaptionFormat {string}, specifies the HTML format to display the bar's percent // overviewColor {string}, specifies the color to show the bar within the control's overview // histLegend {string}, specifies the description to show within the histogram's legend for the bar in the control's histogram // predecessor {string}, indicates the list of predecessor bars (INDEX1['SF'|'FS'|'FF'|'SS'][KEY][:['W']LAG|:LAG['W']] format), separated by comma (@since 2.3) // successor {string}, indicates the list of successor bars (INDEX1['SF'|'FS'|'FF'|'SS'][KEY][:['W']LAG|:LAG['W']] format), separated by comma (@since 2.3) // /////////////////////////////////////////////////////////// /** * @description Specifies the options (name, start, end, ...) that defines the item's bar */ exontrol.Gantt.ItemBarOptions = { /** * @description The name field specifies the name/type of the bar * @type {string} Specifies the name/type of the bar * * @example * * "Task" {string}, defines the current bar to look and act as a "Task" bar * "Task%Progress" {string}, defines the bar to look as a "Task" bar and to display the bar's "percent" option, as an inside "Progress"-bar. The Chart.Bars.Add("Task%Progress") should be previously called to define a bar of percent-type. */ name: null, /** * @description The key field specifies the key of the bar (used only if item hosts multiple bars) * @type {string} Specifies the key of the bar * @example * * "A" {string}, defines a bar with the key "A" */ key: null, /** * @description The start field indicates the date-time the bar starts from * @type {any} Indicates the date-time the bar starts from * * The type the start field supports are: * * start {string}, defines the date in string-format as "#MM/DD/YYYY[ HH:mm:ss]#" * start {Date}, indicates a JavaScript date to be copied * start {number} integer value representing the year of the date to be created * start {null}, indicates the current date and time (equivalent of Now) * * @example * * "#1/1/2001#" {string}, defines the bar's start date-time as January 1st, 2001 * Date.Today() {Date}, changes the bar's start date-time to today * */ start: null, /** * @description The end field indicates the date-time the bar ends to * @type {any} Indicates the date-time the bar ends to * * The type the end field supports are: * * end {string}, defines the date in string-format as "#MM/DD/YYYY[ HH:mm:ss]#" * end {Date}, indicates a JavaScript date to be copied * end {number} integer value representing the year of the date to be created * end {null}, indicates the current date and time (equivalent of Now) * * @example * * "#1/2/2001#" {string}, defines the bar's end date-time as January 2nd, 2001 * Date.Today().NextDay(2) {Date}, changes the bar's end date-time to 1 day after tomorrow * */ end: null, /** * @description The shape field defines the shape to apply on the bar's background * @type {any} A string expression that defines shape's name within the exontrol.Shape.Tree or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type * * @example * * "" {string}, null {null}, no shape is applied * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ shape: null, /** * @description The height field defines the height of the bar * @type {number} Specifies the bar's height. * * @example * * null {null}, the bar's height is defined by the height of the bar of the same type/name * 4 {number}, the bar's height is set to 4 pixels */ height: null, /** * @description The selected field specifies whether the bar is selected or unselected * @type {boolean} Specifies whether the bar is selected or unselected * * @example * * false {boolean}, unselects the bar * true {boolean}, selects the bar */ selected: null, /** * @description The selectable field indicates whether the item-bar is selectable or unselectable * @type {boolean} Specifies whether the item-bar is selectable * @example * * false {boolean}, the item-bar is unselectable (the user can not select, move or resize the item-bar) * true {boolean}, the item-bar is selectable */ selectable: true, /** * @description The caption field specifies the caption to display within the bar. * @type {string} Specifies the caption of the bar. The caption supports exHTML format, including the <%=formula%> tag, where formula is an expression that supports predefined operators, functions and % keywords such as %0 (itembar's property), %C0 (cell's value), %CD0 (cell's extra-data) or %CS0 (cell' checkbox-state) * * The caption-expression supports the following keywords: * * %0, %1, %2, ... specifies the value/option of the item-bar as name, start, end and so on (ItemBarPropertyEnum type) * %C0, %C1, %C2, ... specifies the caption of the cell, or the string the cell displays in the column with the index 0, 1 2, ... * %CD0, %CD1, %CD2, ... specifies the item-bar's user-date in the column with the index 0, 1 2, ... * %CS0, %CS1, %CS2, ... specifies the item-bar's state in the column with the index 0, 1 2, ... * * @example * * "task" {string}, the item-bar displays the task string in bold * " <%=%0%> " {string}, the item-bar displays its type/name in black/white * "<%=shortdate(%1)%>
<%=shortdate(%2)%>" {string}, the item-bar displays its start date-time in short format on the first line, and the end date-time in short format, on the second line * "<%=%C0 + %C1%>" {string}, concatenates and displays the caption of first and second cell * "<%=(%CD0 ? %0 : ``)%>" {string}, displays the first-column only if the item's data is not empty * "<%=(%CS0 ? %0 : ``)%><%=(%CS0 ? `` : %0)%>" {string}, displays the item-bar's name in bold only if the first cell is checked ) * */ caption: null, /** * @description The hAlignCaption field specifies the horizontal-alignment / clipping of the item-bar's caption inside / outside the bar * @type {number} Specifies the caption horizontal-alignment as explained: * * 0, 1 or 2 the caption is not clipped and it is aligned to the left, center or right side of the bar ( no clip ) * 3, 4 or 5 the caption of the bar gets clipped to the bar's client area, else the caption is aligned to the left, center or right side of the bar ( clip, inside ) * 6, 7 or 8 the bar's caption is hidden if its size is less or equal with MinUnitWidth property, else if it does not fit the bar's client are, gets clipped or else fully aligned to left, center or right side of the bar ( hide if min, clip if not fit, inside ) * 9, 10 or 11 the bar's caption is hidden if it does not fit entirely into the bar's client area, else it is fully displayed aligned to the left, center or right side of the bar ( hide if not fit, no clip, inside ) * 12, 13 or 14 the bar's caption is displayed inside of the bar's client area if it fits entirely, else it is displayed outside of the bar aligned to the left, center or right ( no clip, inside, outside ) * 16, 17, 18, the bar's caption is displayed outside of the bar to the left or to the right ( no clip, outside ) * * Also, the field supports the following flag (OR combination with any other value): * * 32 (0x20), which indicates that the bar's caption fits the bar and view (that bar's caption is aligned relative to the horizontal-intersection of the bar with the view). * * @example * * null {null}, the item-bar's caption is horizontally centered * 18 {number}, the item-bar's caption is displayed outside of the bar to the right ( no clip, outside ) * 33 {number}, (1 + 32) the item-bar's caption is always shown within the center (horizontally) of item-bar intersected with the current view * */ hAlignCaption: 1, /** * @description The vAlignCaption field specifies the vertical-alignment of the item-bar's caption inside / outside the bar * @type {number} Specifies the caption vertical-alignment as explained: * * 0, the caption is aligned to the top * 1, the caption is vertically centered * 2, the caption is aligned to the bottom * 16 (0x10), The caption is displayed outside of the item-bar (16 outside on top, 18 outside on bottom) * 32 (0x20), which indicates that the bar's caption fits the bar and view (that bar's caption is aligned relative to the vertical-intersection of the bar with the view). * * @example * * null {null}, the item-bar's caption is vertically centered * 18 {number}, the item-bar's caption is displayed outside of the bar to the bottom * */ vAlignCaption: 1, /** * @description The showCaption field specifies whether the bar's caption is visible or hidden * @type {boolean} Specifies whether the bar's caption is visible or hidden * @example * * false {boolean}, hides the item-bar's caption * true {boolean}, shows the item-bar's caption * */ showCaption: true, /** * @description The extraCaption field associates an extra caption with the current item-bar. * @type {string} Specifies the extra caption of the bar. The caption supports exHTML format, including the <%=formula%> tag, where formula is an expression that supports predefined operators, functions and % keywords such as %0 (itembar's property), %C0 (cell's value), %CD0 (cell's extra-data) or %CS0 (cell' checkbox-state) * * The caption-expression supports the following keywords: * * %0, %1, %2, ... specifies the value/option of the item-bar as name, start, end and so on (ItemBarPropertyEnum type) * %C0, %C1, %C2, ... specifies the caption of the cell, or the string the cell displays in the column with the index 0, 1 2, ... * %CD0, %CD1, %CD2, ... specifies the item-bar's user-date in the column with the index 0, 1 2, ... * %CS0, %CS1, %CS2, ... specifies the item-bar's state in the column with the index 0, 1 2, ... * * @example * * "task" {string}, the item-bar displays the task string in bold * " <%=%0%> " {string}, the item-bar displays its type/name in black/white * "<%=shortdate(%1)%>
<%=shortdate(%2)%>" {string}, the item-bar displays its start date-time in short format on the first line, and the end date-time in short format, on the second line * "<%=%C0 + %C1%>" {string}, concatenates and displays the caption of first and second cell * "<%=(%CD0 ? %0 : ``)%>" {string}, displays the first-column only if the item's data is not empty * "<%=(%CS0 ? %0 : ``)%><%=(%CS0 ? `` : %0)%>" {string}, displays the item-bar's name in bold only if the first cell is checked ) * */ extraCaption: null, /** * @description The extraCaptionHAlign field specifies the horizontal-alignment / clipping of the item-bar's extra caption inside / outside the bar * @type {number} Specifies the extra caption horizontal-alignment as explained: * * 0, 1 or 2 the caption is not clipped and it is aligned to the left, center or right side of the bar ( no clip ) * 3, 4 or 5 the caption of the bar gets clipped to the bar's client area, else the caption is aligned to the left, center or right side of the bar ( clip, inside ) * 6, 7 or 8 the bar's caption is hidden if its size is less or equal with MinUnitWidth property, else if it does not fit the bar's client are, gets clipped or else fully aligned to left, center or right side of the bar ( hide if min, clip if not fit, inside ) * 9, 10 or 11 the bar's caption is hidden if it does not fit entirely into the bar's client area, else it is fully displayed aligned to the left, center or right side of the bar ( hide if not fit, no clip, inside ) * 12, 13 or 14 the bar's caption is displayed inside of the bar's client area if it fits entirely, else it is displayed outside of the bar aligned to the left, center or right ( no clip, inside, outside ) * 16, 17, 18, the bar's caption is displayed outside of the bar to the left or to the right ( no clip, outside ) * * Also, the field supports the following flag (OR combination with any other value): * * 32 (0x20), which indicates that the bar's caption fits the bar and view (that bar's caption is aligned relative to the horizontal-intersection of the bar with the view). * * @example * * null {null}, the item-bar's extra caption is horizontally centered * 18 {number}, the item-bar's extra caption is displayed outside of the bar to the right ( no clip, outside ) * */ extraCaptionHAlign: 1, /** * @description The extraCaptionVAlign field specifies the vertical-alignment of the item-bar's extra caption inside / outside the bar * @type {number} Specifies the extra caption vertical-alignment as explained: * * 0, the caption is aligned to the top * 1, the caption is vertically centered * 2, the caption is aligned to the bottom * 16 (0x10), The caption is displayed outside of the item-bar (16 outside on top, 18 outside on bottom) * 32 (0x20), which indicates that the bar's caption fits the bar and view (that bar's caption is aligned relative to the vertical-intersection of the bar with the view). * * @example * * null {null}, the item-bar's extra caption is vertically centered * 18 {number}, the item-bar's extra caption is displayed outside of the bar to the bottom * */ extraCaptionVAlign: 1, /** * @description The showExtraCaption field specifies whether the bar's extra caption is visible or hidden * @type {boolean} Specifies whether the bar's extra caption is visible or hidden * @example * * false {boolean}, hides the item-bar's extra caption * true {boolean}, shows the item-bar's extra caption * */ showExtraCaption: true, /** * @description The toolTip field specifies the tooltip to be shown once the cursor hovers the bar * @type {string} Specifies the bar's tooltip. The tooltip supports exHTML format, including the <%=formula%> tag, where formula is an expression that supports predefined operators, functions and % keywords such as %0 (itembar's property), %C0 (cell's value), %CD0 (cell's extra-data) or %CS0 (cell' checkbox-state) * * The expression supports the following keywords: * * %0, %1, %2, ... specifies the value/option of the item-bar as name, start, end and so on (ItemBarPropertyEnum type) * %C0, %C1, %C2, ... specifies the caption of the cell, or the string the cell displays in the column with the index 0, 1 2, ... * %CD0, %CD1, %CD2, ... specifies the item-bar's user-date in the column with the index 0, 1 2, ... * %CS0, %CS1, %CS2, ... specifies the item-bar's state in the column with the index 0, 1 2, ... * * @example * * "task" {string}, the tooltip displays the task string in bold * "<%=%0%> " {string}, the tooltip displays the bar's type/name * "Start: <%=shortdate(%1)%>
End: <%=shortdate(%2)%>" {string}, the tooltip displays the bar's start date-time in short format on the first line, and the end date-time in short format, on the second line * "<%=%C0 + %C1%>" {string}, concatenates and displays the caption of first and second cell * "Duration: <%=((1:=int(0:= (%513))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0 ? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')%>", {string} shows the item-bar's duration/length in days, hours and minutes * */ toolTip: null, /** * @description The canResize field specifies whether the user can resize the bar on both margins by drag (requires to be selectable too) * @type {number} Indicates whether the user can resize the bar on both margins by drag as explained: * * 0 {number} or false {boolean}, the user can not resize the bar by drag * -1 {number} or null {null}, the bar can be resized on both sides * 1 {number} or true {boolean}, the bar can be resized on left side, and can not be resized on right * 2 {number}, the bar can be resized on right side, and can not be resized on left * * @example * * false {boolean}, the user can't resize the item-bar * true {boolean}, the user can resize the bar on left side, and can not be resize on right * -1 {number} or null {null}, the user can resize the bar on both sides * */ canResize: -1, /** * @description The canMove field specifies whether the user can move the bar within the same item by drag (requires to be selectable too) * @type {boolean} Indicates whether the user can move the bar within the same item by drag * * @example * * false {boolean}, the user can't move the item-bar * true {boolean} or null{null}, the user can move the item-bar by drag * */ canMove: true, /** * @description The canMoveToAnother field specifies whether the bar can be moved to another item by drag and drop (requires to be selectable too) * @type {boolean} Indicates whether the user can move the bar from an item to another by drag * * @example * * false {boolean} or null{null}, the user can't move the item-bar * true {boolean}, the user can move the item-bar from an item to another, by drag * */ canMoveToAnother: false, /** * @description The summaryBarShape field defines the shape to apply on the background of all summary-bar's child item-bars (have effect only for summary-bars, union of child item-bars) * @type {any} A string expression that defines shape's name within the exontrol.Shape.Tree or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type * * @example * * "" {string}, null {null}, no shape is applied * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ summaryBarShape: null, /** * @description The captionHOffset field defines the bar's caption horizontal-offset (relative to its alignment/default-position) * @type {number} Indicates the bar's caption horizontal-offset (relative to its alignment/default-position) * * @example * * 0 {number}, null {null}, the bar's caption is shown at its alignment/default-position * -4 {number}, the bar's caption is shown 4-pixels left to its alignment/default-position * 4 {number}, the bar's caption is shown 4-pixels right to its alignment/default-position * */ captionHOffset: 0, /** * @description The captionVOffset field defines the bar's caption vertical-offset (relative to its alignment/default-position) * @type {number} Indicates the bar's caption vertical-offset (relative to its alignment/default-position) * * @example * * 0 {number}, null {null}, the bar's caption is shown at its alignment/default-position * -4 {number}, the bar's caption is shown 4-pixels up to its alignment/default-position * 4 {number}, the bar's caption is shown 4-pixels down to its alignment/default-position * */ captionVOffset: 0, /** * @description The extraCaptionHOffset field defines the bar's extra-caption horizontal-offset (relative to its alignment/default-position) * @type {number} Indicates the bar's extra-caption horizontal-offset (relative to its alignment/default-position) * * @example * * 0 {number}, null {null}, the bar's caption is shown at its alignment/default-position * -4 {number}, the bar's caption is shown 4-pixels left to its alignment/default-position * 4 {number}, the bar's caption is shown 4-pixels right to its alignment/default-position * */ extraCaptionHOffset: 0, /** * @description The extraCaptionVOffset field defines the bar's extra-caption vertical-offset (relative to its alignment/default-position) * @type {number} Indicates the bar's extra-caption vertical-offset (relative to its alignment/default-position) * * @example * * 0 {number}, null {null}, the bar's caption is shown at its alignment/default-position * -4 {number}, the bar's caption is shown 4-pixels up to its alignment/default-position * 4 {number}, the bar's caption is shown 4-pixels down to its alignment/default-position * */ extraCaptionVOffset: 0, /** * @description The canStartLink field specifies whether a link can start from this bar * @type {boolean} Indicates whether a link can start from this bar * * @example * * false {boolean}, no link can start from the current bar * true {boolean} or null {null}, any link can start from the current bar * */ canStartLink: true, /** * @description The canEndLink field specifies whether a link can end on this bar * @type {boolean} Indicates whether a link can end on this bar * * @example * * false {boolean}, no link can end on this bar * true {boolean} or null {null}, any link can end on this bar * */ canEndLink: true, /** * @description The canBeLinked field specifies whether the bar can be linked * @type {boolean} Indicates whether the bar can be linked * * @example * * false {boolean}, no link can start from, or end into the current bar * true {boolean} or null {null}, the bar can be linked * */ canBeLinked: true, /** * @description The effort field specifies the bar's effort, or the effort to execute an unit within the bar * @type {any} Indicates the bar's histogram value, which is interpreted based on bar's histogramType property. * * The effort field could be: * * a numeric value which it is applied for all units in the task (constant-effort) * a string that indicates the expression/formula to get the effort of the bar to be represented on the chart's histogram (variant-expression). The value keyword indicates the date-time being queried, the start and end keywords specify the starting and ending points of the bar as indicated by exBarStart and exBarEnd fields in the ItemBar property * * @example * * 0 {number}, the bar is not represented into the control's histogram * 1.5 {number}, the bar's histogram value is based on the bar's histogramType option as explained: * * exHistOverload(0), adds 1.5-unit(s) to the histogram for each date-time of the bar * exHistOverAllocation(1), adds 150% to the histogram for each date-time of the bar (1 day long), 75% for a 2-days long or shortly effort divided by length (in days) (effort/length) * exHistOverAllocationFixed(512), adds 150% to the histogram for each date-time of the bar (no matter of its length) (fixed percent) * exHistOverAllocationMultiply(1024), adds 150% to the histogram for each date-time of the bar (1 day long), 300% for a 2-days long or shortly effort multiplied by length (in days) (effort*length) * * "weekday(value) in (0,6) ? 0 : 2" {string}, defines an effort-expression or a variable-effort as explained: the effort to do the job is 2 for any day in the task, excepts the Sundays(0) and Saturdays(6) (weekend) * "weekday(value) = 1 ? 2 : 1" {string}, indicates that the effort to do the job is 2 for Mondays(1), else 1 * "(month(value)=month(value+1)) ? 1 : 0" {string}, indicates that the effort to do the job is 1 for any day, excepts the last day in the month * "int((value-start)/86400000) ? 1 : 2" {string}, indicates that the effort to do the job is 2 for the first day in the task, and 1 for the others (86400000 represents the number of mili-seconds within a day, as 24 * 60 * 60 * 1000) * "(int((value-start)/86400000)+1) mod 2 ? 1 : 0" {string}, indicates that the effort to do the job is 2 for the first day in the task, and 1 for the others (86400000 represents the number of mili-seconds within a day, as 24 * 60 * 60 * 1000) */ effort: 1, /** * @description The overlaidKey field specifies the z-order of the bar when it overlaps other bars (exOverlaidBarsCascade type) * @type {string} Specifies the z-order of the bar when it overlaps other bars * * @example * * "Z" {string}, all overlaid-bars of the same overlaid-key "Z" are displayed on the same level */ overlaidKey: null, /** * @description The offset field specifies the vertical-offset relative to the default position, the bar is displayed * @type {number} Indicates the vertical-offset relative to the default position, the bar is shown * * @example * * 0 {number} or null {null}, the item bar is shown in its default position, ussualy centered to the item, while it is not part of overlaid-bars * -4 {number}, shifts vertically the item bar by 4-pixels */ offset: 0, /** * @description The percent field specifies the bar's percent, as a value from 0 to 1 (for 100%) * @type {number} Indicates the bar's percent, as a value from 0 to 1 (for 100%). Only bars of percent-type ("A%B") display and handle the inner progress-bar * * @example * * 0 {number} or null {null}, the bar's percent is set to 0% * 1 {number}, the bar's percent is set to 100% */ percent: 0, /** * @description The showPercentCaption field shows or hides the bar's percent-caption * @type {boolean} Specifies whether the percent-caption is shown on the bar. Only bars of percent-type ("A%B") display and handle the inner progress-bar * * @example * * false {boolean} or null {null}, the bar's percent-caption is hidden * true {boolean}, the bar's percent-caption is shown */ showPercentCaption: false, /** * @description The alignPercentCaption field horizontally aligns the bar's percent-caption * @type {number} Specifies the percent-caption horizontal-alignment as explained: * * 0, 1 or 2 the caption is not clipped and it is aligned to the left, center or right side of the bar ( no clip ) * 3, 4 or 5 the caption of the bar gets clipped to the bar's client area, else the caption is aligned to the left, center or right side of the bar ( clip, inside ) * 6, 7 or 8 the bar's caption is hidden if its size is less or equal with MinUnitWidth property, else if it does not fit the bar's client are, gets clipped or else fully aligned to left, center or right side of the bar ( hide if min, clip if not fit, inside ) * 9, 10 or 11 the bar's caption is hidden if it does not fit entirely into the bar's client area, else it is fully displayed aligned to the left, center or right side of the bar ( hide if not fit, no clip, inside ) * 12, 13 or 14 the bar's caption is displayed inside of the bar's client area if it fits entirely, else it is displayed outside of the bar aligned to the left, center or right ( no clip, inside, outside ) * 16, 17, 18, the bar's caption is displayed outside of the bar to the left or to the right ( no clip, outside ) * * @example * * 18 {number} or null {null}, the bar's percent-caption is displayed right-outside * 0 {boolean}, the bar's percent-caption is aligned to the left */ alignPercentCaption: 18, /** * @description The canResizePercent field specifies whether the user can resize the percent at runtime * @type {boolean} specifies whether the user can resize the percent at runtime. Only bars of percent-type ("A%B") display and handle the inner progress-bar * * @example * * false {boolean}, the bar's percent can not be resized by drag * true {boolean} or null {null}, the user can resize the bar's percent at runtime */ canResizePercent: true, /** * @description The percentCaptionFormat field specifies the HTML format to display the bar's percent * @type {string} Indicates the HTML format to display the bar's percent. The %p keyword defines the bar's percent. * * @example * * "" {string}, displays the bar's percent as it is (no % character is displayed) * "%p%" {string}, shows the bar's percent in bold */ percentCaptionFormat: "%p%", /** * @description The overviewColor field defines the color to show a particular bar within the control's overview * @type {string} Specifies the color to show a particular bar within the control's overview * * @example * * "" {string} or null{null}, the overview color of the current item-bar is defined by the bar's overviewColor, item-bar's shape fill, pattern or frame color (the first truly value in this order) * "transparent" or "rgba(0,0,0,0)" {string}, the overview representation of the current item-bar is hidden * "red" or "#FF0000", "rgb(255,0,0)", "rgba(255,0,0,1)", ... {string}, the current item-bar is shown in red within the control's overview */ overviewColor: null, /** * @description The histLegend field specifies the description to show within the histogram's legend for the bar in the control's histogram. The exBarHistLegend option has effect only if the Bar.HistogramCumulativeOriginalColorBars is exKeepOriginalColor. * The histLegend supports exHTML format, including the <%=formula%> tag, where formula is an expression that supports predefined operators, functions and % keywords such as %0 (itembar's property), %C0 (cell's value), %CD0 (cell's extra-data) or %CS0 (cell' checkbox-state) * * The histLegend-expression supports the following keywords: *
* %0, %1, %2, ... specifies the value/option of the item-bar as name, start, end and so on (ItemBarPropertyEnum type)
* %C0, %C1, %C2, ... specifies the caption of the cell, or the string the cell displays in the column with the index 0, 1 2, ...
* %CD0, %CD1, %CD2, ... specifies the item-bar's user-date in the column with the index 0, 1 2, ...
* %CS0, %CS1, %CS2, ... specifies the item-bar's state in the column with the index 0, 1 2, ...
*
* @type {string} * @example * * "<b>cust</b>" {string}, the legend displays the cust string in bold * "<%=%0%> " {string}, the legend displays the bar's type/name * "<fgcolor gray><%=lower(%3)%>" {string}, the histogram-legend displays the bar's caption in gray and lowercase * */ histLegend: null, /** * @description The predecessor field defines the list of predecessor bars, separated by comma. Tasks may have multiple predecessors or multiple successors. Before you begin establishing dependencies, it’s important to understand that there are four types: *
    *
  • Finish to Start (FS), the predecessor ends before the successor can begin *
  • Start to Start (SS), the predecessor begins before the successor can begin *
  • Finish to Finish (FF), the predecessor ends before the successor can end *
  • Start to Finish (SF), the predecessor begins before the successor can end *
*

The format of bar's predecessor is INDEX1["SF"|"FS"|"FF"|"SS"][KEY][:["W"]LAG|:LAG["W"]], where:

*
    *
  • INDEX1 is the 1-based index of the item that hosts the bar *
  • followed by the type of the link which can be one any of SF(Start-Finish), FS(Finish-Start), SS(Start-Start) or FF(Finish-Finish) sequence (FS if missing) *
  • continues with the KEY of the bar (empty is not used) *
  • and ends with the LAG of the link (specifies the delay the activity is postponed by the link). The "W" indicates a working-lag for the link (specifies the delay in working-units the activity is postponed by the link).  *
* @type {string} * @example * * "2FSZ", specifies that the current item-bar is linked with the "Z" bar of the second item (item with the index 1) using a Finish-Start link * "1SF:-2", adds a Start-Finish link with the bar '' of the first-item, using a lag of -2 days * * @since 2.3 */ predecessor: null, /** * @description The successor field defines the list of successor bars, separated by comma. Tasks may have multiple predecessors or multiple successors. Before you begin establishing dependencies, it’s important to understand that there are four types: *
    *
  • Finish to Start (FS), the predecessor ends before the successor can begin *
  • Start to Start (SS), the predecessor begins before the successor can begin *
  • Finish to Finish (FF), the predecessor ends before the successor can end *
  • Start to Finish (SF), the predecessor begins before the successor can end *
*

The format of bar's successor is INDEX1["SF"|"FS"|"FF"|"SS"][KEY][:["W"]LAG|:LAG["W"]], where:

*
    *
  • INDEX1 is the 1-based index of the item that hosts the bar *
  • followed by the type of the link which can be one any of SF(Start-Finish), FS(Finish-Start), SS(Start-Start) or FF(Finish-Finish) sequence (FS if missing) *
  • continues with the KEY of the bar (empty is not used) *
  • and ends with the LAG of the link (specifies the delay the activity is postponed by the link). The "W" indicates a working-lag for the link (specifies the delay in working-units the activity is postponed by the link).  *
* @type {string} * @example * * "3SFy", specifies that the current item-bar is linked with the "y" bar of the third item (item with the index 1) using a Start-Finish link * * @since 2.3 */ successor: null } /////////////////////////////////////////////////////////// (exontrol.Gantt.ItemBar) // // The exontrol.Gantt.ItemBar object holds information(options) about a bar within the control. // // The AddBar(name, start, end, key, text) method of exontrol.Tree.Item creates and adds a new bar for the item. // // The exontrol.Gantt.ItemBar object provides the following methods: // // Name/GetName()/SetName(value) {string}, specifies the bar's name and so the bar's visual appearance // Key/GetKey()/SetKey(value) {any}, indicates the bar's key (used only if item hosts multiple bars) // Start/GetStart()/SetStart(value) {any}, indicates the date-time the bar starts from // End/GetEnd()/SetEnd(value) {any}, indicates the date-time the bar ends to // Shape/GetShape()/SetShape(value) {any}, specifies the bar's individual-shape // Height/GetHeight()/SetHeight(value) {any}, specifies the bar's individual-height // Selected/GetSelected()/SetSelected(value) {boolean}, indicates whether the bar is selected or unselected // Selectable/GetSelectable()/SetSelectable(value) {boolean}, specifies whether the bar is selectable or unselectable // Caption/GetCaption()/SetCaption(value) {string}, specifies the bar's caption // HAlignCaption/GetHAlignCaption()/SetHAlignCaption(value) {number}, specifies the horizontal-alignment / clipping of the item-bar's caption inside / outside the bar // VAlignCaption/GetVAlignCaption()/SetVAlignCaption(value) {number}, specifies the vertical-alignment of the item-bar's caption inside / outside the bar // ShowCaption/GetShowCaption()/SetShowCaption(value) {boolean},shows or hides the bar's caption // ExtraCaption/GetExtraCaption()/SetExtraCaption(value) {string}, specifies the bar's extra caption // ExtraCaptionHAlign/GetExtraCaptionHAlign()/SetExtraCaptionHAlign(value) {number}, specifies the horizontal-alignment / clipping of the item-bar's extra caption inside / outside the bar // ExtraCaptionVAlign/GetExtraCaptionVAlign()/SetExtraCaptionVAlign(value) {number}, specifies the vertical-alignment of the item-bar's extra caption inside / outside the bar // ShowExtraCaption/GetShowExtraCaption()/SetShowExtraCaption(value) {boolean},shows or hides the bar's extra caption // ToolTip/GetToolTip()/SetToolTip(value) {string}, specifies the tooltip to be shown once the cursor hovers the bar // CanResize/GetCanResize()/SetCanResize(value) {number}, specifies whether the user can resize the bar on both margins by drag (requires to be selectable too) // CanMove/GetCanMove()/SetCanMove(value) {boolean}, specifies whether the user can move the bar within the same item by drag (requires to be selectable too) // CanMoveToAnother/GetCanMoveToAnother()/SetCanMoveToAnother(value) {boolean}, specifies whether the bar can be moved to another item by drag and drop (requires to be selectable too) // SummaryBarShape/GetSummaryBarShape()/SetSummaryBarShape(value) {any}, defines the shape to apply on the background of all summary-bar's child item-bars (union) // CaptionHOffset/GetCaptionHOffset()/SetCaptionHOffset(value) {number}, indicates the bar's caption horizontal-offset (relative to its alignment/default-position) // CaptionVOffset/GetCaptionVOffset()/SetCaptionVOffset(value) {number}, indicates the bar's caption vertical-offset (relative to its alignment/default-position) // ExtraCaptionHOffset/GetExtraCaptionHOffset()/SetExtraCaptionHOffset(value) {number}, indicates the bar's extra-caption horizontal-offset (relative to its alignment/default-position) // ExtraCaptionVOffset/GetExtraCaptionVOffset()/SetExtraCaptionVOffset(value) {number}, indicates the bar's extra-caption vertical-offset (relative to its alignment/default-position) // CanStartLink/GetCanStartLink()/SetCanStartLink(value) {boolean}, specifies whether a link can start from this bar // CanEndLink/GetCanEndLink()/SetCanEndLink(value) {boolean}, specifies whether a link can end on this bar // CanBeLinked/GetCanBeLinked()/SetCanBeLinked(value) {boolean}, specifies whether the bar can be linked // Effort/GetEffort()/SetEffort(value) {number}, indicates the bar's effort, or the effort to execute an unit within the bar (bar's histogram value) // CriticalPath/GetCriticalPath() {number}, indicates whether the current bar is part of the critical path (non-zero, specifies the position (1-based) of the bar in the critical path) // OverlaidKey/GetOverlaidKey()/SetOverlaidKey(value) {string}, specifies the z-order of the bar when it overlaps other bars (exOverlaidBarsCascade type) // Offset/GetOffset()/SetOffset(value) {number}, indicates the vertical-offset relative to the default position, the bar is displayed // Percent/GetPercent()/SetPercent(value) {number}, specifies the bar's percent, as a value from 0 to 1 (for 100%) // ShowPercentCaption/GetShowPercentCaption()/SetShowPercentCaption(value) {boolean}, shows or hides the bar's percent-caption // AlignPercentCaption/GetAlignPercentCaption()/SetAlignPercentCaption(value) {number}, horizontally aligns the bar's percent-caption // CanResizePercent/GetCanResizePercent()/SetCanResizePercent(value) {boolean}, specifies whether the user can resize the percent at runtime // PercentCaptionFormat/GetPercentCaptionFormat()/SetPercentCaptionFormat(value) {string}, specifies the HTML format to display the bar's percent // OverviewColor/GetOverviewColor()/SetOverviewColor(value) {string}, specifies the color to show the item-bar within the control's overview // HistLegend/GetHistLegend()/SetHistLegend(value) {string}, specifies the description to show within the histogram's legend for the bar in the control's histogram // // Also, the exontrol.Gantt.ItemBar object provides the following methods: // // Options/GetOptions()/SetOptions(value) {exontrol.Gantt.ItemBarOptions}, indicates the bar's options (at once) such as visibility, name and so on // Remove(), removes the bar itself from columns collection ( equivalent of Columns.Remove(oColumn) method ) // DefineSummaryBars(itemAdd, keyAdd), defines bars of the summary bar // UndefineSummaryBars(itemRemove, keyRemove), undefines bars of the summary bar // Parent/GetParent()/SetParent(value) {object}, Gets or sets the item that hosts the item-bar, as an object of exontrol.Tree.Item type // Duration/GetDuration()/SetDuration(value) {number}, Gets or sets the item-bar's duration in days (or hours if including the decimal point, for instance 0.5 indicates a 12 hours lenght) // Move/SetMove(value) {number}, moves the item-bar by days(or hours if including the decimal point, for instance 0.5 moves by 12 hours) // DateToPercent(date) {number}, gets the percent of the giving date relative to the start/end margins of the bar, as 0 for start and 1(100%) for end margin of the bar // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Gantt.Links) // // The exontrol.Gantt.Links object holds a collection of exontrol.Gantt.Link type (link of the control) // // The exontrol.Gantt.Links object provides the following methods: // // Add(oLinkOpts) {exontrol.Gantt.Link}, creates and adds a new link into the control // Create(oFrom, oTo) {exontrol.Gantt.Link}, creates and adds a link between from and to item-bars // Count/GetCount() {number}, returns the number of links within the collection. // Item(id) {exontrol.Gantt.Link}, gets the link giving its index, identifier/key or reference // Remove(id), removes the link giving its index, identifier/key or reference // Clear(), removes all links of the control // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Gantt.LinkOptions) // // The exontrol.Gantt.LinkOptions class holds all options an link can display or own // // The exontrol.Gantt.LinkOptions class defines the following fields: // // visible {boolean}, indicates whether the link is visible or hidden // key {string}, specifies the key associated with the link // caption {string}, defines the link's caption // from {any}, indicates the index, identifier/key of the item that hosts the bar, or reference of the item-bar the link starts from (in-item-bar) // to {any}, indicates the index, identifier/key of the item that hosts the bar, or reference of the item-bar the link ends to (out-item-bar) // lag {number}, specifies the delay between linked-activities during the SchedulePDM() method. This property specifies the number of days between two linked bars // workingLag {number}, specifies the working-delay between linked-activities during the SchedulePDM() method. This property specifies the number of working-days between two linked bars // link {object}, specifies the appearance of the link between item-bars // type {number}, defines the link's type as 1(Start-Finish), 2(FS or Finish-Start), 4(Finish-Finish) or 8 (Start-Start) (@since 2.3) // /////////////////////////////////////////////////////////// exontrol.Gantt.LinkOptions = { /** * @description The visible field indicates whether the link is visible or hidden. * @type {boolean} Specifies whether the link is visible or hidden. * @example * * false {boolean}, hides the link * true {boolean}, shows the link */ visible: true, /** * @description The key field specifies the key associated with the link. * @type {string} Specifies the key associated with the link. If no key is provided, the link's plain-caption can be used to request an item. The plain-caption includes no ex-HTML tags, such as , and so on * @example * * "logo" {string}, defines the link with the giving key (logo). You can use the Root.Item("logo") method to request the link giving its key. */ key: null, /** * @description The caption field defines the link's caption. * @type {string} Specifies the ex-HTML caption an link displays. * @example * * null {null}, indicates no caption * "caption" {string}, declares a plain-caption * "text" {string}, displays the text in bold * "logo" {string}, displays the "logo" image. The image can be added using the exontrol.HTMLPicture.Add() method */ caption: null, /** * @description The from field indicates the index, identifier/key of the item that hosts the bar, or reference of the item-bar the link starts from (in-item-bar) * @type {any} The from field could be any of the following: * * from {number}, indicates a numeric value that defines the index of the item (single/first item-bar of the item) * from {string}, specifies a string expression that defines the identifier/key of the item (single/first item-bar of the item) * from {exontrol.Gantt.ItemBar}, specifies the object reference to the item-bar */ from: null, /** * @description The to field indicates the index, identifier/key of the item that hosts the bar, or reference of the item-bar the link ends to (out-item-bar) * @type {any} The to field could be any of the following: * * to {number}, indicates a numeric value that defines the index of the item (single/first item-bar of the item) * to {string}, specifies a string expression that defines the identifier/key of the item (single/first item-bar of the item) * to {exontrol.Gantt.ItemBar}, specifies the object reference to the item-bar */ to: null, /** * @description The lag field specifies the delay between linked-activities during the SchedulePDM() method (exLinkPDMDelay). * @type {number} The lag field indicates the lag between linked-activities during the SchedulePDM() method. This property specifies the number of days between two linked bars. * @example * * 0 {number} or null {null}, no lag between linked-activities * 2 {number}, indicates 2 days between linked-activities */ lag: 0, /** * @description The workingLag field specifies the working-delay between linked-activities during the SchedulePDM() method (exLinkPDMWorkingDelay). * @type {number} The workingLag field indicates the working-lag between linked-activities during the SchedulePDM() method. This property specifies the number of working-days between two linked bars. * @example * * 0 {number} or null {null}, no lag between linked-activities * 2 {number}, indicates 2 working-days between linked-activities */ workingLag: 0, /** * @description The link field specifies the appearance of the link between item-bars. * @type {object} Specifies the appearance of the link between item-bars. The link object includes any of the following: * * type {exontrol.LinkTypeEnum}, specifies the type of the link as 0 (rectangular), 1 (direct), 2(straight) or 3(round) * dir {number}, specifies whether the link's direction is shown or hidden as 0 (hidden), 1(shows the direction/arrow where the link begins), 2(shows the direction where the link ends, default) or 3 shows the arrows in both sides * width {number}, specifies the link's width or size (1 by default) * color {string}, indicates the link's color (partial-black by default) * arrow {string}, indicates the arrow's color. If it is missing or not specified the arrow is shown using the link's color (gray by default) * arrowSize {number}, indicates the arrow's size. If it is missing or not specified the arrow's size is defined by link's width (1 by default) (since 2.2) * arrowShape {object}, defines an object of exontrol.Def.Shape type to customize the shape of the link's arrow (for instance shows the link's arrow as a circle instead of a triangle) (since 2.2) * style {array}, specifies the link's dash pattern to show the lines (solid by default) * startPos {any}, indicates the list of corners of in-item-bar, the link can start from * endPos {any}, indicates the list of corners of out-item-bar, the link can end to * */ link: null, /** * @description The type field defines the link's type as 1(Start-Finish), 2(FS or Finish-Start), 4(Finish-Finish) or 8 (Start-Start). Tasks may have multiple predecessors or multiple successors. * * Before you begin establishing dependencies, it’s important to understand that there are four types: * * Finish to Start (FS), the predecessor ends before the successor can begin * Start to Start (SS), the predecessor begins before the successor can begin * Finish to Finish (FF), the predecessor ends before the successor can end * Start to Finish (SF), the predecessor begins before the successor can end * * The type supports the following values: * * 1 {number} indicates a SF link (SF, S(tart)-F(inish)) * 2 {number} indicates a FS link (FS, F(inish)-S(tart), default) * 4 {number} indicates a FF link (FF, F(inish)-F(inish)) * 8 {number} indicates a SS link (SS, S(tart)-S(tart)) * * or * * "SF" {string} indicates a SF link (SF, S(tart)-F(inish)) (the startPos is set on left, endPos is set on right, the Type returns 1) * "FS" {string} indicates a FS link (FS, F(inish)-S(tart)) (the startPos is set on right, endPos is set on left, the Type returns 2) * "FF" {string} indicates a FF link (FF, F(inish)-F(inish)) (the startPos is set on right, endPos is set on right, the Type returns 4) * "SS" {string} indicates a SS link (SS, S(tart)-S(tart)) (the startPos is set on left, endPos is set on left, the Type returns 8) * * @type {any} * @example * * 2 or any other value except 1, 4 or 8 {number}, indicates a FS link (FS, F(inish)-S(tart)) * 4 {number}, indicates a FF link (FF, F(inish)-F(inish)) * "SS" {string}, indicates a SS link (SS, S(tart)-S(tart)) * * @since 2.3 */ type: 2 }; /////////////////////////////////////////////////////////// (exontrol.Gantt.Link) // // The exontrol.Gantt.Link object holds information(options) about an link within the control. // // The Add(oLinkOpts) method of exontrol.Gantt.Links creates and adds a new link into the control. // // The exontrol.Gantt.Link object provides the following methods: // // Options/GetOptions()/SetOptions(value) {exontrol.Gantt.LinkOptions}, indicates the link's options (at once) such as visibility, caption and so on // Remove(), removes the link itself from links collection ( equivalent of Links.Remove(oLink) method ) // Index/GetIndex() {number}, returns the index of the link (0-based) // Key/GetKey()/SetKey(value) {boolean}, specifies the link's key (the Links.Item(key) requests an link by its index, identifier/key or reference) // Visible/GetVisible()/SetVisible(value) {boolean}, shows or hides the link // Caption/GetCaption()/SetCaption(value) {string}, specifies the link's caption (ex-HTML format) // FormatText/GetFormatText()/SetFormatText(value) {exontrol.DrawTextFormatEnum}, defines the format to display the link's caption. // From/GetFrom()/SetFrom(value) {any}, indicates the index, identifier/key of the item that hosts the bar, or reference of the item-bar the link starts from (in-item-bar) // To/GetTo()/SetTo(value) {any}, indicates the index, identifier/key of the item that hosts the bar, or reference of the item-bar the link ends to (out-item-bar) // Lag/GetLag()/SetLag(value) {number}, specifies the delay between linked-activities during the SchedulePDM() method. This property specifies the number of days between two linked bars // WorkingLag/GetWorkingLag()/SetWorkingLag(value) {number}, specifies the working-delay between linked-activities during the SchedulePDM() method. This property specifies the number of working-days between two linked bars // Link/GetLink()/SetLink(value) {object}, defines the link's individual appearance as an object of {type,dir,width,color,arrow,style,startPos,endPos} type // Type/GetType()/SetType(value) {number}, specifies the link's type as 1(Start-Finish), 2(FS or Finish-Start), 4(Finish-Finish) or 8 (Start-Start) (@since 2.3) // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Gantt.DefSchedulePDM) // // The exontrol.Gantt.DefSchedulePDM type defines the options to call the SchedulePDM() method. // // The exontrol.Gantt.DefSchedulePDM type includes the following fields: // // scheduleType {number}, indicates the type the next SchedulePDM call executes // scheduleDate {any}, specifies the date to start or end the project (valid only if the scheduleType field is 1 or 2) // errorShape {any}, specifies shape to apply on error-bars (highlights the bars that makes the layout impossible to complete) // cycleShape {any}, specifies shape to apply on cycling-bars (set the callHasCycle field on true, so the chart displays the entire cycle, not just the node that fails to be arranged in the layout) // callHasCycle {boolean}, indicates whether the control shows the entire cycle, so the layout can not be completed // criticalPathBarShape {any}, specifies shape to apply on critical-path bars (highlights the bars that are part of the critical-path) // criticalPathOffBarShape {any}, specifies shape to apply on non critical-path bars (highlights the bars that are not part of the critical-path) // criticalPathLinkApp {string}, indicates the color to show the links of the critical path (highlights the links that are part of the critical-path) // criticalPathOffLinkApp {string}, indicates the color to show the links off of the critical path (highlights the links that are not part of the critical-path) // criticalPathLenMethod {number}, defines the way how the length of the critical path is computed // /////////////////////////////////////////////////////////// exontrol.Gantt.DefSchedulePDM = { /** * @description The scheduleType(exPDMScheduleType) field indicates the type the next SchedulePDM call executes * @type {number} Specifies the type the next SchedulePDM call executes, as explained: * * 0 {number}, no effect. The start and end of the project is not fixed, so once a bar is moved the starting or ending point of the project may be variable * 1 {number}, fixes the start of the project to date indicated by the scheduleDate field (the scheduleDate indicates the start of the project) * 2 {number}, fixes the end of the project to date indicated by the scheduleDate field (the scheduleDate indicates the end of the project) * * @example * * null {null}, defaults to 0, no effect * 1 {number}, the scheduleDate indicates the start of the project */ scheduleType: null, /** * @description The scheduleDate(exPDMScheduleDate) field specifies the date to start or end the project (valid only if the scheduleType field is 1 or 2) * @type {any} Indicates the date to start or end the project * * The type the scheduleDate field supports are: * * scheduleDate {string}, defines the date in string-format as "#MM/DD/YYYY[ HH:mm:ss]#" * scheduleDate {Date}, indicates a JavaScript date to be copied * scheduleDate {number} integer value representing the year of the date to be created * scheduleDate {null}, indicates the current date and time (equivalent of Now) * * @example * * null {null}, the project starts or ends today (depending on scheduleType field) * "#12/1/2020#" {string}, the project starts or ends on Dec 1st, 2020 (depending on scheduleType field) */ scheduleDate: null, /** * @description The errorShape(exPDMErrorColor) field specifies shape to apply on error-bars (highlights the bars that makes the layout impossible to complete) * @type {any} A string expression that defines shape's name within the exontrol.Shape.Tree or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type * * @example * * "" {string}, null {null}, no shape is applied * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ errorShape: "lightcoral", /** * @description The cycleShape(exPDMCycleColor) field specifies shape to apply on cycling-bars (set the callHasCycle field on true, so the chart displays the entire cycle, not just the node that fails to be arranged in the layout) * @type {any} A string expression that defines shape's name within the exontrol.Shape.Tree or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type * * @example * * "" {string}, null {null}, no shape is applied * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ cycleShape: "red", /** * @description The callHasCycle(exPDMCallHasCycle) field indicates whether the control shows the entire cycle, so the layout can not be completed * @type {boolean} A boolean expression that specifies whether the control shows the entire cycle, so the layout can not be completed * * @example * * false {boolean}, no cycle is displayed * true {boolean} or null {null}, the entire cycle is shown with a different shape, as specified by cycleShape field */ callHasCycle: null, /** * @description The criticalPathBarShape(exPDMCriticalPathBarColor) field specifies shape to apply on critical-path bars (highlights the bars that are part of the critical-path) * @type {any} A string expression that defines shape's name within the exontrol.Shape.Tree or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type * * @example * * "" {string} or null {null}, no shape is applied * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * {fillColor: "red"} {object}, fills the object's background in red * {frameColor: "rgb(0,255,0)", frameSize: 2, opacity: 0.5} {object}, shows the object as semi-transparent and displays a green and ticker-frame arround it * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ criticalPathBarShape: null, /** * @description The criticalPathOffBarShape(exPDMCriticalPathOffBarColor) field specifies shape to apply on non critical-path bars (highlights the bars that are not part of the critical-path) * @type {any} A string expression that defines shape's name within the exontrol.Shape.Tree or exontrol.Shape namespace, a CSS color, a JSON string-representation of an object of exontrol.Def.Shape type or an object of {normal,hover,click,disabled} type. The normal,hover,click and disabled are objects of exontrol.Def.Shape type * * @example * * "" {string} or null {null}, no shape is applied * "red" {string}, fills the object's background in red (CSS color) * '{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type) * {fillColor: "red"} {object}, fills the object's background in red * {frameColor: "rgb(0,255,0)", frameSize: 2, opacity: 0.5} {object}, shows the object as semi-transparent and displays a green and ticker-frame arround it * "xxx" {string}, indicates that exontrol.Shapes.Tree.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied) * exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace */ criticalPathOffBarShape: null, /** * @description The criticalPathLinkApp(exPDMCriticalPathLinkColor) field specifies the appearance (color, width, ...) to apply on links of the critical path (highlights the links that are part of the critical-path) * @type {any} Specifies the CSS color to show links of the critical path, or an object of {type,dir,width,color,arrow,style,startPos,endPos} type as explained bellow: * * type {exontrol.LinkTypeEnum}, specifies the type of the link as 0 (rectangular), 1 (direct), 2(straight) or 3(round) * dir {number}, specifies whether the link's direction is shown or hidden as 0 (hidden), 1(shows the direction/arrow where the link begins), 2(shows the direction where the link ends, default) or 3 shows the arrows in both sides * width {number}, specifies the link's width or size (1 by default) * color {string}, indicates the link's color (partial-black by default) * arrow {string}, indicates the arrow's color. If it is missing or not specified the arrow is shown using the link's color (gray by default) * arrowSize {number}, indicates the arrow's size. If it is missing or not specified the arrow's size is defined by link's width (1 by default) (since 2.2) * arrowShape {object}, defines an object of exontrol.Def.Shape type to customize the shape of the link's arrow (for instance shows the link's arrow as a circle instead of a triangle) (since 2.2) * style {array}, specifies the link's dash pattern to show the lines (solid by default) * startPos {any}, indicates the list of corners of in-element, the link can start from * endPos {any}, indicates the list of corners of out-element, the link can end to * * @example * * "red" {string}, shows the link in red * "#ff0000" {string}, shows the link in red * "rgba(255,0,0,0.5)" {string}, shows the link in partial-red * "rgba(0,0,0,0)", hides the link (transparent-color) * {color: "green", width: 2} {object}, shows the off-link ticker in green */ criticalPathLinkApp: null, /** * @description The criticalPathOffLinkApp(exPDMCriticalPathOffLinkColor) field specifies the appearance (color, width, ...) to apply on links that are not part of the critical path (highlights the links that are part of the critical-path) * @type {any} Specifies the CSS color to show links that are not part of the critical path, or an object of {type,dir,width,color,arrow,style,startPos,endPos} type as explained bellow: * * type {exontrol.LinkTypeEnum}, specifies the type of the link as 0 (rectangular), 1 (direct), 2(straight) or 3(round) * dir {number}, specifies whether the link's direction is shown or hidden as 0 (hidden), 1(shows the direction/arrow where the link begins), 2(shows the direction where the link ends, default) or 3 shows the arrows in both sides * width {number}, specifies the link's width or size (1 by default) * color {string}, indicates the link's color (partial-black by default) * arrow {string}, indicates the arrow's color. If it is missing or not specified the arrow is shown using the link's color (gray by default) * arrowSize {number}, indicates the arrow's size. If it is missing or not specified the arrow's size is defined by link's width (1 by default) (since 2.2) * arrowShape {object}, defines an object of exontrol.Def.Shape type to customize the shape of the link's arrow (for instance shows the link's arrow as a circle instead of a triangle) (since 2.2) * style {array}, specifies the link's dash pattern to show the lines (solid by default) * startPos {any}, indicates the list of corners of in-element, the link can start from * endPos {any}, indicates the list of corners of out-element, the link can end to * * @example * * "gray" {string}, shows the off-link in gray * "#bebebe" {string}, shows the off-link in gray * "rgba(0,0,0,0.5)" {string}, shows the off-link in partial-black * "rgba(0,0,0,0)", hides the off-link (transparent-color) * {color: "rgb(190,190,190)", style: 2} {object}, shows the off-link dotted in light-gray */ criticalPathOffLinkApp: null, /** * @description The criticalPathLenMethod(exPDMCriticalPathLenMethod) field defines the way how the length of the critical path is computed * @type {number} Determines the way how the length of the critical path is computed */ criticalPathLenMethod: null } /////////////////////////////////////////////////////////// (exontrol.Shapes.Tree) // // The exontrol.Shapes.Tree namespace provides support to customize the visual appearance of different parts of the exontrol.Gantt object. // /////////////////////////////////////////////////////////// /** * @description The exontrol.Shapes.Tree namespace provides support to customize the visual appearance of different parts of the exontrol.Gantt object. */ exontrol.Shapes.Tree = { /** * @description The shitem field specifies the visual appearance to display the items * @type {object} Indicates an object of {normal,disabled,hover,click} type */ shitem: { /** * @description The hover field includes definitions to draw the object while cursor hovers it. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background while cursor hovers it. */ hover: { frameColor: "rgba(64,128,255,0.50)", fillColor: "rgba(64,128,255,0.10)" }, /** * @description The disabled field includes definitions to draw the object in disabled state. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background on disabled state. */ disabled: { opacity: 0.5 } }, /** * @description The shitemAlt field specifies the visual appearance to display the alternate-items * @type {object} Indicates an object of {normal,disabled,hover,click} type */ shitemAlt: { /** * @description The hover field includes definitions to draw the object while cursor hovers it. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background while cursor hovers it. */ normal: { fillColor: "rgba(0,0,0,0.025)" }, /** * @description The hover field includes definitions to draw the object while cursor hovers it. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background while cursor hovers it. */ hover: { frameColor: "rgba(64,128,255,0.50)", fillColor: "rgba(64,128,255,0.10)" }, /** * @description The disabled field includes definitions to draw the object in disabled state. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background on disabled state. */ disabled: { opacity: 0.5 } }, /** * @description The shcolumn field specifies the visual appearance to display the header of columns * @type {object} Indicates an object of {normal,disabled,hover,click} type */ shcolumn: { /** * @description The normal field includes definitions to draw the object in normal state. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background on normal state. */ normal: { primitive: "RoundRect", fillColor: "rgb(240,240,240)", frameColor: "rgb(128,128,128)" }, /** * @description The hover field includes definitions to draw the object while cursor hovers it. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background while cursor hovers it. */ hover: { fillColor: "rgb(200,200,200)" }, /** * @description The click field includes definitions to draw the object while it is clicked. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background while it is clicked. */ click: { fillColor: "rgb(200,200,200)" // "rgb(160,160,160)" }, /** * @description The disabled field includes definitions to draw the object in disabled state. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background on disabled state. */ disabled: { opacity: 0.5 } }, /** * @description The shcell field specifies the visual appearance to display the cells * @type {object} Indicates an object of {normal,disabled,hover,click} type */ shcell: { /** * @description The disabled field includes definitions to draw the object in disabled state. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background on disabled state. */ disabled: { opacity: 0.5 } }, /** * @description The shfilterBar field specifies the visual appearance to display the filter-bar * @type {object} Indicates an object of {normal,disabled,hover,click} type */ shfilterBar: { /** * @description The normal field includes definitions to draw the object in normal state. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background on normal state. */ normal: { fillColor: "rgb(240,240,240)" }, /** * @description The disabled field includes definitions to draw the object in disabled state. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background on disabled state. */ disabled: { opacity: 0.5 } }, /** * @description The shcheck field specifies the visual appearance to display the check-boxes * @type {object} Indicates an object of {normal,disabled,hover,click} type */ shcheck: { /** * @description The normal field holds an object of exontrol.Def.Shape type that's applied on the part. * @type {object} Indicates an object of exontrol.Def.Shape type that's applied on the part. */ normal: { pad: -1, fillColor: "white", frameColor: "gray", primitive: "Rect", draw: function( ctx, client , clientShape, oShapeData ) { oShapeData && oShapeData.state && ctx.noFD(function() // ignores the context's font-decoration (bold, italic, underline, ...) { ctx.drawHTMLText( "✓", client, exontrol.DrawTextFormatEnum.exTextAlignCenter | exontrol.DrawTextFormatEnum.exTextAlignVCenter | exontrol.DrawTextFormatEnum.exTextNoClip ); }) } }, /** * @description The disabled field includes definitions to draw the object in disabled state. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background on disabled state. */ disabled: { opacity: 0.5 } }, /** * @description The shcheck field specifies the visual appearance to display the radio-buttons * @type {object} Indicates an object of {normal,disabled,hover,click} type */ shradio: { /** * @description The normal field holds an object of exontrol.Def.Shape type that's applied on the part. * @type {object} Indicates an object of exontrol.Def.Shape type that's applied on the part. */ normal: { pad: -1, fillColor: "white", frameColor: "gray", primitive: "Circle", draw: function( ctx, client , clientShape, oShapeData ) { oShapeData && oShapeData.state && exontrol.D.P.fill( ctx, exontrol.IRt( clientShape.slice(),-clientShape[exontrol.w] * 0.20,-clientShape[exontrol.w] *.20 ), "#666666", this.primitive, this.primitiveArg ); } }, /** * @description The disabled field includes definitions to draw the object in disabled state. * @type {object} An object of exontrol.Def.Shape type to be applied on the part's background on disabled state. */ disabled: { opacity: 0.5 } }, /** * @description The shmulti field specifies the visual appearance to show the count of dragged items * @type {object} Indicates an object of exontrol.Def.Shape type */ shmulti: { primitive: "RoundRect", fillColor: "black", tfi: { fgColor: "white" } }, /** * @description The shnw field specifies the visual appearance to show the non-working units * @type {object} Indicates an object of exontrol.Def.Shape type */ shnw: { //frameColor: "rgb(196,196,196)", pattern: exontrol.PatternEnum.exPatternBDiagonal, patternColor: "rgba(0,0,0,0.10)", //client: "[,-1,,height+2]" }, /** * @description The shenlarge field increases the object's client-rectangle by 3-pixels * @type {object} Indicates an object of exontrol.Def.Shape type */ shenlarge: { /** * @description The normal field holds an object of exontrol.Def.Shape type that's applied on the part. * @type {object} Indicates an object of exontrol.Def.Shape type that's applied on the part. */ normal: { client: "[x-3,y-3,width+6,height+6]" } }, /** * @description The shenlargev field increases the object's client-rectangle by 3-pixels (vertically) * @type {object} Indicates an object of exontrol.Def.Shape type */ shenlargev: { /** * @description The normal field holds an object of exontrol.Def.Shape type that's applied on the part. * @type {object} Indicates an object of exontrol.Def.Shape type that's applied on the part. */ normal: { client: "[,y-3,,height+6]" } }, /** * @description The shrect field specifies a rectangular-primitive * @type {object} Indicates an object of exontrol.Def.Shape type */ shrect: { /** * @description The normal field holds an object of exontrol.Def.Shape type that's applied on the part. * @type {object} Indicates an object of exontrol.Def.Shape type that's applied on the part. */ normal: { primitive: "Rect" } } }