/* @license Copyright (C) Exontrol. All rights reserved. */ /////////////////////////////////////////////////////////// (exontrol.ComboBox) // // The exontrol.ComboBox class provides the following fields (public): // // Listeners {object}, holds a reference to exontrol.Lts which defines the items of the control. // Shortcuts {object}, holds a reference to exontrol.Sts which defines the shortcuts of the control. // // The exontrol.ComboBox class provides the following methods (public): // // BeginUpdate(), prevents invalidating the control until the EndUpdate() method is called // EndUpdate(), resumes invalidating the control // Refresh(), refreshes the control // Update(callback, thisArg), locks the control's update during the callback, and invalidates the control once the method ends. // Layout/GetLayout()/SetLayout(value) {string}, saves or loads the control's UI layout // Statistics/GetStatistics() {string}, gives statistics data of objects being hold by the control // // Options/GetOptions()/SetOptions(value) {object}, specifies the options of the exontrol.ComboBox 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 // Zoom/GetZoom()/SetZoom(value) {number}, defines the zoom factor of the control's label // FormatText/GetFormatText()/SetFormatText(value) {exontrol.DrawTextFormatEnum}, defines the global format to display the control's label. // Pad/GetPad()/SetPad(value) {(number|number[]|string)}, specifies the space between item's content and its borders. // 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. // 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 // Label/GetLabel()/SetLabel(value) {string}, defines the caption to show within the control's label // Host/GetHost()/SetHost(value) {any}, defines the host(control) to shown within the control's drop-down panel // AllowDrop/GetAllowDrop()/SetAllowDrop(value) {boolean}, specifies whether the user can drag and drop local files into the control // Align/GetAlign()/SetAlign(value) {any}, specifies the alignment of the drop-down panel relative to the control // DropDown/GetDropDown()/SetDropDown(value) {boolean}, specifies whether the control's drop-down panel is visible or hidden // AllowResize/GetAllowResize()/SetAllowResize(value) {string}, specifies whether the user can resize the control's drop-down portion of the control // // The exontrol.ComboBox class provides the following items (through Listeners): // // "onclick", occurs once the user clicks or double-clicks the control. The onclick's parameter is: // // oEvent {object}, specifies an object of {dblClick,button,modifiers,view} type, that holds information about the object being clicked // // oEvent.view {object}, indicates an object of exontrol.ComboBox.CV, ... 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 // // "onanchorclick", (@since 2.2) occurs once the user clicks an anchor element (the ex-HTML part marks an anchor or hyperlink element). The onanchorclick's parameter is: // // oEvent {object}, specifies an object of {id,options} type, that holds information about the anchor being clicked. // // oEvent.id {string}, specifies null or the identifier of the anchor being clicked // oEvent.options {string}, specifies null or the options of the anchor being clicked // // "ond2", occurs once the user clicks the drop-down button. The ond2 event has no parameters. // "onclear", occurs once the user clicks the clear button (showClearButton option). The onclear event has no parameters (@since 1.9) // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// (exontrol.Def.ComboBox) // // The exontrol.Def.ComboBox namespace provides definitions for different objects, primitives, objects of exontrol.ComboBox object // // The exontrol.Def.ComboBox namespace provides the following fields: // // 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 // readOnly{boolean}, indicates whether the control (including its host) is read-only // 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. // formatText {exontrol.DrawTextFormatEnum}, specifies the format to display the control's label. // pad {(number|string|array)}, defines the item's padding (space between the item's content and its border) // allowActions {string}, customizes the actions the user can perform once the user clicks or touches the control. // 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 // label {string}, defines the caption to show within the control's label // host {any}, defines the host(control) to shown within the control's drop-down panel // allowDrop {boolean}, specifies whether the user can drag and drop local files into the control // align {any}, specifies the alignment of the drop-down panel relative to the control // dropDown {boolean}, specifies whether the control's drop-down panel is visible or hidden // allowResize {string}, specifies whether the user can resize the control's drop-down portion of the control // showClearButton {number}, shows or hides the control's clear-button (the clear button clears the control's label and selection, @since 1.9) // /////////////////////////////////////////////////////////// /** * @description The exontrol.Def.ComboBox namespace provides definitions for different objects, primitives, objects of exontrol.ComboBox object */ exontrol.Def.ComboBox = { /** * @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} * @example * * false {boolean}, unlocks the control (the control's drop down is available) * true {boolean}, locks the control (the control's drop down is not available) */ locked: false, /** * @description The readOnly field indicates whether the control (including its host) is read-only * @type {boolean} * @example * * false {boolean}, the control's drop down is available and the user can select new items * true {boolean}, the control's drop down is available but the user can't select items */ readOnly: false, /** * @description The shapes field defines the shapes each part of the control can display. The shapes field customizes the control's visual appearance. * 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.ComboBox object (while it starts with a lowercase letter, such as shitem which refers to exontrol.Shapes.ComboBox.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: * * "button", defines the visual-appearance to show the drop-down button * "clear", defines the visual-appearance to show the clear button (@since 1.9) * * @type {string} * @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.ComboBox.xxx combined with exontrol.Shapes.ComboBox.yyy object defines the visual appearance of "d" part of the control, exontrol.Shapes.ComboBox.yyy object defines the visual appearance of "m" part of the control and exontrol.Shapes.ComboBox.zzz object defines the visual appearance of "y" part of the control */ shapes: 'Button(button),{"normal":{"text":"▼"},"hover":{"fillColor":"#B2B2B2"}}(button),{"normal":{"text":"✖"}}(clear)', /** * @description The cursors field specifies the mouse cursor to be displayed when pointing over a part of the control. * * 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: * * "button", defines the mouse-cursor when the mouse pointer hovers the drop-down button * "clear", defines the mouse-cursor when the mouse pointer hovers the clear button (@since 1.9) * "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) * "drag-drop", defines the cursor while the control is being dragged using the "drag-drop" action * "long", specifies the mouse-cursor to be shown as soon as a "long" click or touch action begins (see allowActions field) * * @type {string} * @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: "pointer(drag-drop,button,clear,anchor)", /** * @description The zoom field defines the zoom factor of the control's label. The zoom field can be any value between 10 (10%) and 1000 (1000%) * @type {number} * @example * * null {null}, Specifies normal-view (100%) * 150 {number}, Indicates that the control's label is magnfied to 150% */ zoom: null, /** * @description The formatText field specifies the format to display the control's label. * * A combination of one or more exontrol.DrawTextFormatEnum flags that defines the format to show the control's label. * * 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. * * @type {exontrol.DrawTextFormatEnum} * @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). 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 * @type {(number|string|array)} * @example * * null {null}, indicates that the default-padding field is used ([2,2]) * 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: [2,2], /** * @description The allowActions field customizes the actions the user can perform once the user clicks or touches the control. * * 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: * * "d2", shows the control's drop-down list(panel) once the user clicks the control's drop-down button * "drag-drop", carries out the drag and drop of the control (the control 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 control. The event parameter holds information about the mouse/touch event once the control 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. * * "shortcut", defines the item'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 * * @type {string} * @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 item's button or modifier-keys is pressed. * */ allowActions: "d2,d2(double)", /** * @description The toolTipDelay field specifies how long the mouse pointer must point to an object before the tool tip appears * @type {number} * @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} * @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} * @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 label field specifies the ex-html caption to display within the control's label * @type {string} * @example * * null {null} or "" {string}, displays nothing * "item" {string}, displays "item" word in bold */ label: null, /** * @description The host field defines the host(control) to shown within the control's drop-down panel. * @type {(string|object|HTMLElement)} * @example * * "id" {string} or id {HTMLElement}, refers to any HTML element of the current document, as an identifier (string) or as an HTMLElement type, to display within the control's drop-down panel * exobj {object}, where exobj can be any of exontrol canvas-types as listed: * * {exontrol.Bezier}, The ExBezier/JS component displays Bézier curves. The Bézier curves are also used in the time domain, particularly in animation, user interface design and smoothing cursor trajectory in eye gaze controlled interfaces (requires "exontrol.bezier.js" library) * {exontrol.Calendar}, The ExCalendar/JS component provides calendar capabilities for your application. A calendar is a system of organizing days for social, religious, commercial or administrative purposes. This is done by giving names to periods of time, typically days, weeks, months and years. A date is the designation of a single, specific day within such a system (requires "exontrol.calendar.js" library) * {exontrol.Gantt}, The ExGantt/JS component is our approach to create timeline charts (also known as Gantt charts). Gantt chart is a time-phased graphic display of activity durations. Activities are listed with other tabular information on the left side with time intervals over the bars. Activity durations are shown in the form of horizontal bars (requires "exontrol.menu.js", "exontrol.tree.js", "exontrol.gantt.js" libraries) * {exontrol.Gauge}, The ExGauge/JS library provides graphics capabilities to visually display and edit the amount, level, or contents of something. The view can show one or more layers, where each layer can display one or more transparent pictures, HTML captions which can be clipped, moved, rotated or combination of them, by dragging the mouse, rolling the mouse wheel, or using the keyboard (requires "exontrol.gauge.js" library) * {exontrol.Menu}, The ExMenu/JS component provides menu-functionaly which includes top-level menus, context, popup, drop down or shortcut menus. A menu presents a list of items, commands, attributes, or states from which a user can choose. An item within a menu is known as a menu item, and may be configured to initiate an action, toggle a state on or off, or display a submenu of additional menu items when it is selected. A context menu is a menu in a graphical user interface (GUI) that appears upon user interaction, such as a right-click mouse operation (requires "exontrol.menu.js" library) * {exontrol.OrgChart}, The ExOrgChart/JS component permits the totally automatic generation of organigrams. An organigram generally provides a clear picture of the hierarchical position of the various actors. The control shows a hierarchical display of nodes, each one having an HTML caption, pictures and icons aligned to any side of the node. Each node can have child-nodes, assistant-nodes or group-nodes (requires "exontrol.orgchart.js" library) * {exontrol.Pivot}, The ExPivot/JS is our approach to provide data summarization, as a pivot table. A pivot-table can automatically sort, count, total or give the average of the data stored in one table or spreadsheet (requires "exontrol.menu.js", "exontrol.tree.js", "exontrol.pivot.js" libraries) * {exontrol.RadialMenu}, The ExRadialMenu/JS (radial or pie menu) component is similar to the Microsoft's OneNote radial menu with ability to customize the appearance and functionality. The component is designed using tree structure so an item can hold none or more children, and so any item can be browsed, and show its children around it (requires "exontrol.radialmenu.js" library) * {exontrol.Schedule}, The ExSchedule/JS library is our approach to provide scheduling of appointments into your web application. The ExSchedule/JS is a visual HTML5 component that shows a timeline view for multiple activities (event calendar). The time is displayed on the vertical (Y) axis and the activities are automatically arranged over a single or multiple dates (requires "exontrol.menu.js", "exontrol.calendar.js", "exontrol.icalendar.js", "exontrol.schedule.js" libraries) * {exontrol.ScrollBar}, The ExScollBar/JS components provides scroll-bar/slider/track functionality for your application. A vertical or horizontal bar commonly located on the far right or bottom of a window that allows you to move the window viewing area up, down, left, or right. A slider or track bar is a graphical control element with which a user may set a value by moving an indicator * {exontrol.Surface}, The ExSurface/JS lets you organize your objects to a surface. You can use the tool to generate organigrams, diagrams, graphs, flowcharts and so on (requires "exontrol.surface.js" library) * {exontrol.SwimLane}, The ExSwimlane/JS lets you draw swim lane diagrams. A swim lane (or swimlane diagram) is a visual element used in process flow diagrams, or flowcharts, that visually distinguishes job sharing and responsibilities for sub-processes of a business process. Swim lanes may be arranged either horizontally or vertically (requires "exontrol.surface.js", "exontrol.swimlane.js" libraries) * {exontrol.Tree}, The ExTree/JS component allows you to display and edit hierarchical-data. Features include: Multiple-Columns, Multiple-Views, Drag and Drop, Group-By, Filter-Prompt, Conditional-Format, Total Fields, and much more (requires "exontrol.menu.js", "exontrol.tree.js" libraries) * */ host: null, /** * @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 (default) * true {boolean}, the user can drag and drop files into the control */ allowDrop: false, /** * @description The align field specifies the alignment of the drop-down panel relative to the control. The align field is composed by two parts separated by comma that specifies a point/corner of the control to coincide with a point/corner of the control, of "corner-control,corner-dropdown" type, where: * * corner-control, corner-dropdown can be any of the following: * * "TL", top-left corner * "TC", top-center point * "TR", top-right corner * "ML", middle-left point * "C", center of the object * "MR", middle-right point * "BL", bottom-left corner * "BC", bottom-center point * "BR", bottom-right corner * * @type {string} * @example * * "BR,TR" {string}, indicates that the bottom-right corner of the control coincides with the top-right corner of the drop-down panel (default) * "BL,TL" {string}, indicates that the bottom-left corner of the control coincides with the top-left corner of the drop-down panel */ align: "BR,TR", /** * @description The dropDown field specifies whether the control's drop-down panel is visible or hidden. * @type {boolean} * @example * * false {boolean}, the control's drop-down panel is hidden * true {boolean}, shows programmatically the control's drop-down panel */ dropDown: false, /** * @description The allowResize field specifies whether the user can resize the control's drop-down portion of the control. The allowResize field supports one of the following values: * * "", the drop-down portion offers no user-controllable method for resizing it (default) * "both", the drop-down portion displays a mechanism for allowing the user to resize it, which may be resized both horizontally and vertically * "horizontal", the drop-down portion displays a mechanism for allowing the user to resize it in the horizontal direction * "vertical", the drop-down portion displays a mechanism for allowing the user to resize it in the vertical direction * * @type {string} * @example * * "" {string}, the drop-down portion offers no user-controllable method for resizing it (default) * "both" {string}, the drop-down portion displays a mechanism for allowing the user to resize it, which may be resized both horizontally and vertically */ allowResize: "", /** * @description The showClearButton field specifies whether the control's clear-button is visible or hidden. The clear button clears the control's label and selection. The clear-button is displayed next to drop down button, and can be hidden, always visible or visible if required (for instance the drop down control has any selection). The showClearButton field supports the following values: * * 0, the clear-button is hidden * -1, the clear-button is always visible * * The showClearButton field supports the following flags: * * 1, the clear-button is visible only if the control's label/drop-down panel displays a non-empty value or contains any selection * 2, the clear-button is visible only if the pointer hovers the control * * @type {number} * @example * * 0 {number}, the clear-button is hidden (default) * -1 {number}, the clear-button is always visible * 3 {number}, the clear-button is visible only if required and the pointer hovers the control * * @since 1.9 */ showClearButton: 0 } /////////////////////////////////////////////////////////// (exontrol.Shapes.ComboBox) // // The exontrol.Shapes.ComboBox namespace provides support to customize the visual appearance of different parts of the exontrol.ComboBox object. // /////////////////////////////////////////////////////////// /** * @description The exontrol.Shapes.ComboBox namespace provides support to customize the visual appearance of different parts of the exontrol.ComboBox object. */ exontrol.Shapes.ComboBox = { }