Home Reference Source
import {UIBase} from './scripts/core/ui_base.js'
public class | source

UIBase

Extends:

HTMLElement → UIBase

Static Method Summary

Static Public Methods
public static

createElement(name: *, internal: boolean): *

public static

define()

Defines core attributes of the class

public static

getDPI(): *

DEPRECATED

public static
public static

getInternalName(name: *): *

public static
public static

prefix(name: *): *

public static

register(cls: *)

public static

setDefault(element: *): *

Constructor Summary

Public Constructor
public

Member Summary

Public Members
public get
public set
public
public get

ctx: *

public set

ctx

public
public get
public set
public get
public set
public

hidden: *

public get
public set
public get
public
public
public get
public set
public
public

shadow: *

public
public

title: *

public get
public set

causes calls to setPathValue to go through toolpath app.datapath_set(path="" newValueJSON="")

public get
public set
public
Private Members
private
private

__cbs: *[]

private
private
private
private
private
private
private
private
private
private

_ctx: *

private
private
private
private
private
private
private

_id: *

private
private
private
private
private
private
private
private
private
private
private get
private
private
private
private
private
private
private
private
private
private
private

Method Summary

Public Methods
public
public

abortToolTips(delayMs: number): *

public

addEventListener(type: *, cb: *, options: *): *

public

animate(_extra_handlers: {}): *

returns a new Animator instance

public

appendChild(child: *): *

public
public

checkInit(): *

public
public

set havePickClipboard to true in define() to enable mouseover pick clipboarding

public
public
public
public

doOnce(func: *, timeout: *)

public

findArea(): *

public

flash(color: *, rect_element: *, timems: number, autoFocus: boolean)

public

float(x: number, y: number, zindex: *, positionKey: *): *

public
public
public

formatNumber(value: *, args: {}): *

public

genBoxCSS(subkey: *): *

public

getClassDefault(key: *, checkForMobile: boolean, defaultval: *): *

public

getDPI(): *

try to use this method

public

getDefault(key: *, checkForMobile: boolean, defaultval: *): *

public

getDefault_intern(key: *, checkForMobile: boolean, defaultval: *): *

public

getElementById(id: *): *

public

getPathDescription(ctx: *, path: *): *

public

getPathMeta(ctx: *, path: *): *

public

getPathValue(ctx: *, path: *): *

public

getScreen(): *

public

getStyle(): *

public
public

getSubDefault(key: *, subkey: *, backupkey: *, defaultval: *): *

get a sub style from a theme style class.

public
public
public
public
public

hasClassDefault(key: *): *

public

hasDefault(key: *): *

public

hide(sethide: boolean)

public

init()

public
public

loadData(obj: *): *

for saving ui state.

public

loadJSON(obj: *)

public

noMargins(): *

public
public

noPadding(): *

public
public
public
public

on_resize(newsize: *)

public

onadd()

public

overrideClass(style: *)

public

overrideClassDefault(style: *, key: *, val: *)

public

overrideDefault(key: *, val: *, localOnly: boolean): *

public

overrideTheme(theme: *): *

public

parseNumber(value: *, args: {}): *

public

pickElement(x: *, y: *, args: {}, marginy: number, nodeclass: *, excluded_classes: *): *

public
public
public

pushModal(handlers: *, autoStopPropagation: boolean, pointerId: *, pointerElem: *): *

public
public

find owning screen and tell it to update the global tab order

public

remove(trigger_on_destroy: boolean)

public

removeChild(child: *, trigger_on_destroy: boolean)

public

removeEventListener(type: *, cb: *, options: *): *

public

replaceChild(newnode: *, node: *): boolean

public

saveData(): {}

for saving ui state.

public

setBoxCSS(subkey: *)

public

setCSS(setBG: boolean)

public

setPathValue(ctx: *, path: *, val: *)

public

setPathValueUndo(ctx: *, path: *, val: *)

public

setUndo(val: *): *

public

swapWith(b: *): boolean

public

toJSON(): *

public

traverse(type_or_set: *): *

public
public

unhide()

public

update()

public
public
Private Methods
private

__updateDisable(val: *)

private
private

_doMobileDefault(key: *, val: *): *

private
private

child classes can override this to prevent focus on flash

private

_forEachChildWidget(cb: *, thisvar: *)

Iterates over all child widgets, including ones that might be inside of normal DOM nodes.

private
private

Static Public Methods

public static createElement(name: *, internal: boolean): * source

Params:

NameTypeAttributeDescription
name *
internal boolean
  • optional
  • default: false

Return:

*

public static define() source

Defines core attributes of the class

Example:


static define() {return {
  tagname             : "custom-element-x",
  style               : "[style class in theme]"
  subclassChecksTheme : boolean //set to true to disable base class invokation of checkTheme()
  havePickClipboard   : boolean //whether element supports mouse hover copy/paste
  pasteForAllChildren : boolean //mouse hover paste happens even over child widgets
  copyForAllChildren  : boolean //mouse hover copy happens even over child widgets
}}

public static getDPI(): * source

DEPRECATED

scaling ratio (e.g. for high-resolution displays)

Return:

*

public static getIconEnum(): * source

Return:

*

public static getInternalName(name: *): * source

Params:

NameTypeAttributeDescription
name *

Return:

*

public static internalRegister(cls: *) source

Params:

NameTypeAttributeDescription
cls *

public static prefix(name: *): * source

Params:

NameTypeAttributeDescription
name *

Return:

*

public static register(cls: *) source

Params:

NameTypeAttributeDescription
cls *

public static setDefault(element: *): * source

Params:

NameTypeAttributeDescription
element *

Return:

*

Public Constructors

public constructor() source

Public Members

public get background: * source

public set background source

public class_default_overrides: {} source

public get ctx: * source

public set ctx source

public default_overrides: {} source

public get description: * source

public set description source

public get disabled: * source

public set disabled source

public hidden: * source

public get internalDisabled: * source

public set internalDisabled source

public get modalRunning: * source

public my_default_overrides: {} source

public packflag: * source

public get parentWidget: * source

public set parentWidget source

public pathUndoGen: number source

public shadow: * source

public tabIndex: number source

public title: * source

public get useDataPathUndo: boolean source

public set useDataPathUndo source

causes calls to setPathValue to go through toolpath app.datapath_set(path="" newValueJSON="")

every child will inherit

public get useNativeToolTips: * source

public set useNativeToolTips source

public visibleToPick: boolean source

Private Members

private __background: * source

private __cbs: *[] source

private __disabledState: boolean source

private _active_animations: *[] source

private _checkTheme: boolean source

private _client_disabled_set: * source

private _clipboard_events: boolean source

private _clipboard_keydown: * source

private _clipboard_keyend: * source

private _clipboard_keystart: * source

private _clipboard_over: boolean source

private _ctx: * source

private _description: * source

private _description_final: * source

private _disdata: * source

private _flashcolor: * source

private _flashtimer: * source

private _has_own_tooltips: * source

private _id: * source

private _init_done: boolean source

private _internalDisabled: boolean source

private _lastPathUndoGen: number source

private _last_clipboard_keyevt: * source

private _last_description: * source

private _last_theme_update_key: * source

private _modaldata: * source

private _modalstack: *[] source

private _override_class: * source

private _parentWidget: * source

private get _reportCtxName: * source

private _screenStyleTag: * source

private _screenStyleUpdateHash: number source

private _textBoxEvents: boolean source

private _themeOverride: * source

private _tool_tip_abort_delay: * source

private _tooltip_ref: * source

private _tooltip_timer: * source

private _useDataPathUndo: * source

private _useNativeToolTips: * source

private _useNativeToolTips_set: boolean source

private _wasAddedToNodeAtSomeTime: boolean source

Public Methods

public abortAnimations() source

public abortToolTips(delayMs: number): * source

Params:

NameTypeAttributeDescription
delayMs number
  • optional
  • default: 500

Return:

*

public addEventListener(type: *, cb: *, options: *): * source

Params:

NameTypeAttributeDescription
type *
cb *
options *

Return:

*

public animate(_extra_handlers: {}): * source

returns a new Animator instance

example:

container.animate().goto("style.width", 500, 100, "ease");

Params:

NameTypeAttributeDescription
_extra_handlers {}
  • optional
  • default: {}

Return:

*

public appendChild(child: *): * source

Params:

NameTypeAttributeDescription
child *

Return:

*

public calcZ(): number source

Return:

number

public checkInit(): * source

Return:

*

public checkThemeUpdate(): boolean source

Return:

boolean

public clipboardCopy() source

set havePickClipboard to true in define() to enable mouseover pick clipboarding

public clipboardPaste() source

public connectedCallback() source

public destroy() source

public doOnce(func: *, timeout: *) source

Params:

NameTypeAttributeDescription
func *
timeout *
  • optional
  • default: undefined

public findArea(): * source

Return:

*

public flash(color: *, rect_element: *, timems: number, autoFocus: boolean) source

Params:

NameTypeAttributeDescription
color *
rect_element *
  • optional
timems number
  • optional
  • default: 355
autoFocus boolean
  • optional
  • default: true

public float(x: number, y: number, zindex: *, positionKey: *): * source

Params:

NameTypeAttributeDescription
x number
  • optional
  • default: 0
y number
  • optional
  • default: 0
zindex *
  • optional
  • default: undefined
positionKey *
  • optional

Return:

*

public flushSetCSS() source

public flushUpdate(force: boolean) source

Params:

NameTypeAttributeDescription
force boolean
  • optional
  • default: false

public formatNumber(value: *, args: {}): * source

Params:

NameTypeAttributeDescription
value *
args {}
  • optional
  • default: {}

Return:

*

public genBoxCSS(subkey: *): * source

Params:

NameTypeAttributeDescription
subkey *

Return:

*

public getClassDefault(key: *, checkForMobile: boolean, defaultval: *): * source

Params:

NameTypeAttributeDescription
key *
checkForMobile boolean
  • optional
  • default: true
defaultval *
  • optional
  • default: undefined

Return:

*

public getDPI(): * source

try to use this method

scaling ratio (e.g. for high-resolution displays) for zoom ratio use getZoom()

Return:

*

public getDefault(key: *, checkForMobile: boolean, defaultval: *): * source

Params:

NameTypeAttributeDescription
key *
checkForMobile boolean
  • optional
  • default: true
defaultval *
  • optional
  • default: undefined

Return:

*

public getDefault_intern(key: *, checkForMobile: boolean, defaultval: *): * source

Params:

NameTypeAttributeDescription
key *
checkForMobile boolean
  • optional
  • default: true
defaultval *
  • optional
  • default: undefined

Return:

*

public getElementById(id: *): * source

Params:

NameTypeAttributeDescription
id *

Return:

*

public getPathDescription(ctx: *, path: *): * source

Params:

NameTypeAttributeDescription
ctx *
path *

Return:

*

public getPathMeta(ctx: *, path: *): * source

Params:

NameTypeAttributeDescription
ctx *
path *

Return:

*

public getPathValue(ctx: *, path: *): * source

Params:

NameTypeAttributeDescription
ctx *
path *

Return:

*

public getScreen(): * source

Return:

*

public getStyle(): * source

Return:

*

public getStyleClass(): string source

Return:

string

public getSubDefault(key: *, subkey: *, backupkey: *, defaultval: *): * source

get a sub style from a theme style class. note that if key is falsy then it just forwards to this.getDefault directly

Params:

NameTypeAttributeDescription
key *
subkey *
backupkey *
  • optional
  • default: subkey
defaultval *
  • optional
  • default: undefined

Return:

*

public getTotalRect(): * source

Return:

*

public getWinHeight(): * source

Return:

*

public getWinWidth(): * source

Return:

*

public getZoom(): number source

Return:

number

public hasClassDefault(key: *): * source

Params:

NameTypeAttributeDescription
key *

Return:

*

public hasDefault(key: *): * source

Params:

NameTypeAttributeDescription
key *

Return:

*

public hide(sethide: boolean) source

Params:

NameTypeAttributeDescription
sethide boolean
  • optional
  • default: true

public init() source

public isDead(): boolean source

Return:

boolean

public loadData(obj: *): * source

for saving ui state. see saveUIData() export

should fail gracefully.

also, it doesn't rebuild the object graph, it patches it; for true serialization use the toJSON/loadJSON or STRUCT interfaces.

Params:

NameTypeAttributeDescription
obj *

Return:

*

public loadJSON(obj: *) source

Params:

NameTypeAttributeDescription
obj *

public noMargins(): * source

Return:

*

public noMarginsOrPadding(): * source

Return:

*

public noPadding(): * source

Return:

*

public on_disabled() source

public on_enabled() source

public on_remove() source

public on_resize(newsize: *) source

Params:

NameTypeAttributeDescription
newsize *

public onadd() source

public overrideClass(style: *) source

Params:

NameTypeAttributeDescription
style *

public overrideClassDefault(style: *, key: *, val: *) source

Params:

NameTypeAttributeDescription
style *
key *
val *

public overrideDefault(key: *, val: *, localOnly: boolean): * source

Params:

NameTypeAttributeDescription
key *
val *
localOnly boolean
  • optional
  • default: false

Return:

*

public overrideTheme(theme: *): * source

Params:

NameTypeAttributeDescription
theme *

Return:

*

public parseNumber(value: *, args: {}): * source

Params:

NameTypeAttributeDescription
value *
args {}
  • optional
  • default: {}

Return:

*

public pickElement(x: *, y: *, args: {}, marginy: number, nodeclass: *, excluded_classes: *): * source

Params:

NameTypeAttributeDescription
x *
y *
args {}
  • optional
  • default: {}
marginy number
  • optional
  • default: 0
nodeclass *
  • optional
  • default: UIBase
excluded_classes *
  • optional
  • default: undefined

Return:

*

public popModal() source

public popReportContext() source

public pushModal(handlers: *, autoStopPropagation: boolean, pointerId: *, pointerElem: *): * source

Params:

NameTypeAttributeDescription
handlers *
  • optional
autoStopPropagation boolean
  • optional
  • default: true
pointerId *
  • optional
  • default: undefined
pointerElem *
  • optional

Return:

*

public pushReportContext(key: *) source

Params:

NameTypeAttributeDescription
key *

public regenTabOrder(): * source

find owning screen and tell it to update the global tab order

Return:

*

public remove(trigger_on_destroy: boolean) source

Params:

NameTypeAttributeDescription
trigger_on_destroy boolean
  • optional
  • default: true

public removeChild(child: *, trigger_on_destroy: boolean) source

Params:

NameTypeAttributeDescription
child *
trigger_on_destroy boolean
  • optional
  • default: true

public removeEventListener(type: *, cb: *, options: *): * source

Params:

NameTypeAttributeDescription
type *
cb *
options *

Return:

*

public replaceChild(newnode: *, node: *): boolean source

Params:

NameTypeAttributeDescription
newnode *
node *

Return:

boolean

public saveData(): {} source

for saving ui state. see saveUIData() export

should fail gracefully.

Return:

{}

public setBoxCSS(subkey: *) source

Params:

NameTypeAttributeDescription
subkey *

public setCSS(setBG: boolean) source

Params:

NameTypeAttributeDescription
setBG boolean
  • optional
  • default: true

public setPathValue(ctx: *, path: *, val: *) source

Params:

NameTypeAttributeDescription
ctx *
path *
val *

public setPathValueUndo(ctx: *, path: *, val: *) source

Params:

NameTypeAttributeDescription
ctx *
path *
val *

public setUndo(val: *): * source

Params:

NameTypeAttributeDescription
val *

Return:

*

public swapWith(b: *): boolean source

Params:

NameTypeAttributeDescription
b *

Return:

boolean

public toJSON(): * source

Return:

*

public traverse(type_or_set: *): * source

Params:

NameTypeAttributeDescription
type_or_set *

Return:

*

public undoBreakPoint() source

public unhide() source

public update() source

public updateToolTipHandlers() source

public updateToolTips() source

Private Methods

private __updateDisable(val: *) source

Params:

NameTypeAttributeDescription
val *

private _clipboardHotkeyInit() source

private _doMobileDefault(key: *, val: *): * source

Params:

NameTypeAttributeDescription
key *
val *

Return:

*

private _ensureChildrenCtx() source

private _flash_focus() source

child classes can override this to prevent focus on flash

private _forEachChildWidget(cb: *, thisvar: *) source

Iterates over all child widgets, including ones that might be inside of normal DOM nodes.

This is done by recursing into the dom tree and stopping at any node that's descended from ui_base.UIBase

Params:

NameTypeAttributeDescription
cb *
thisvar *

private _init(): boolean source

Return:

boolean

private _ondestroy() source