wijmo Module
File
wijmo.js
Module
wijmo

Properties

culture

Gets or sets an object that contains all localizable strings in the Wijmo library.

The culture selector is a two-letter string that represents an ISO 639 culture.

Type
any

Methods

addClass

addClass(e: Element, className: string): void

Adds a class to an element.

Parameters
  • e: Element

    Element that will have the class added.

  • className: string

    Class (or space-separated list of classes) to add to the element.

Returns
void

animate

animate(apply: IAnimateCallback, duration?: number, step?: number): any

Calls a function on a timer with a parameter varying between zero and one.

Use this function to create animations by modifying document properties or styles on a timer.

For example, the code below changes the opacity of an element from zero to one in one second:

import { animate } from '@mescius/wijmo';
const element = document.getElementById('someElement');
animate(pct => {
    element.style.opacity = pct;
}, 1000);

The function returns an interval ID that you can use to stop the animation. This is typically done when you are starting a new animation and wish to suspend other on-going animations on the same element. For example, the code below keeps track of the interval ID and clears if before starting a new animation:

import { animate } from '@mescius/wijmo';
const element = document.getElementById('someElement');
if (this._animInterval) {
    clearInterval(this._animInterval);
}
this._animInterval = animate(pct => {
    element.style.opacity = pct;
    if (pct == 1) {
        self._animInterval = null;
    }
}, 1000);

Parameters
  • apply: IAnimateCallback

    Callback function that modifies the document. The function takes a single parameter that represents a percentage.

  • duration: number Optional

    The duration of the animation, in milliseconds.

  • step: number Optional

    The interval between animation frames, in milliseconds.

Returns
any

asArray

asArray(value: any, nullOK?: boolean): any[]

Asserts that a value is an array.

Parameters
  • value: any

    Value supposed to be an array.

  • nullOK: boolean Optional

    Whether null values are acceptable.

Returns
any[]

asBoolean

asBoolean(value: boolean, nullOK?: boolean): boolean

Asserts that a value is a Boolean.

Parameters
  • value: boolean

    Value supposed to be Boolean.

  • nullOK: boolean Optional

    Whether null values are acceptable.

Returns
boolean

asCollectionView

asCollectionView(value: any, nullOK?: boolean): ICollectionView

Asserts that a value is an ICollectionView or an Array.

Parameters
Returns
ICollectionView

asDate

asDate(value: Date, nullOK?: boolean): Date

Asserts that a value is a Date.

Parameters
  • value: Date

    Value supposed to be a Date.

  • nullOK: boolean Optional

    Whether null values are acceptable.

Returns
Date

asEnum

asEnum(value: number, enumType: any, nullOK?: boolean): number

Asserts that a value is a valid setting for an enumeration.

Parameters
  • value: number

    Value supposed to be a member of the enumeration.

  • enumType: any

    Enumeration to test for.

  • nullOK: boolean Optional

    Whether null values are acceptable.

Returns
number

asFunction

asFunction(value: any, nullOK?: boolean): Function

Asserts that a value is a function.

Parameters
  • value: any

    Value supposed to be a function.

  • nullOK: boolean Optional

    Whether null values are acceptable.

Returns
Function

asInt

asInt(value: number, nullOK?: boolean, positive?: boolean): number

Asserts that a value is an integer.

Parameters
  • value: number

    Value supposed to be an integer.

  • nullOK: boolean Optional

    Whether null values are acceptable.

  • positive: boolean Optional

    Whether to accept only positive integers.

Returns
number

asNumber

asNumber(value: number, nullOK?: boolean, positive?: boolean): number

Asserts that a value is a number.

Parameters
  • value: number

    Value supposed to be numeric.

  • nullOK: boolean Optional

    Whether null values are acceptable.

  • positive: boolean Optional

    Whether to accept only positive numeric values.

Returns
number

assert

assert(condition: boolean, msg: string): void

Throws an exception if a condition is false.

Parameters
  • condition: boolean

    Condition expected to be true.

  • msg: string

    Message of the exception if the condition is not true.

Returns
void

asString

asString(value: string, nullOK?: boolean): string

Asserts that a value is a string.

Parameters
  • value: string

    Value supposed to be a string.

  • nullOK: boolean Optional

    Whether null values are acceptable.

Returns
string

asType

asType(value: any, type: any, nullOK?: boolean): any

Asserts that a value is an instance of a given type.

Parameters
  • value: any

    Value to be checked.

  • type: any

    Type of value expected.

  • nullOK: boolean Optional

    Whether null values are acceptable.

Returns
any

changeType

changeType(value: any, type: DataType, format?: string, refDate?: Date): any

Changes the type of a value.

If the conversion fails, the original value is returned. To check if a conversion succeeded, you should check the type of the returned value.

Parameters
  • value: any

    Value to convert.

  • type: DataType

    DataType to convert the value to.

  • format: string Optional

    Format to use when converting to or from strings.

  • refDate: Date Optional

    Reference date to use when parsing strings with missing information.

Returns
any

clamp

clamp(value: number, min: number, max: number): number

Clamps a value between a minimum and a maximum.

Parameters
  • value: number

    Original value.

  • min: number

    Minimum allowed value.

  • max: number

    Maximum allowed value.

Returns
number

closest

closest(e: any, selector: string): Element

Finds the closest ancestor (including the original element) that satisfies a selector.

Parameters
  • e: any

    Element where the search should start.

  • selector: string

    A string containing a selector expression to match elements against.

Returns
Element

closestClass

closestClass(e: any, className: string): Node

Finds the closest ancestor (including the original element) that satisfies a class selector.

Parameters
  • e: any

    Element where the search should start.

  • className: string

    A string containing the class name to match elements against.

Returns
Node

contains

contains(parent: any, child: any, popup?: boolean): boolean

Checks whether an HTML element contains another.

Parameters
  • parent: any

    Parent element.

  • child: any

    Child element.

  • popup: boolean Optional

    Whether to take Wijmo popups into account.

Returns
boolean

copy

copy(dst: any, src: any, copySubObjects?: boolean, copyNativeSubObjects?: boolean): any

Copies properties from an object to another.

This method is typically used to initialize controls and other Wijmo objects by setting their properties and assigning event handlers.

The destination object must define all the properties defined in the source, or an error will be thrown.

Parameters
  • dst: any

    The destination object.

  • src: any

    The source object.

  • copySubObjects: boolean Optional

    Whether to copy properties of Object type props.

  • copyNativeSubObjects: boolean Optional
Returns
any

createElement

createElement(html: string, appendTo?: HTMLElement, css?: any): HTMLElement

Creates an element from an HTML string.

Parameters
  • html: string

    HTML fragment to convert into an HTMLElement.

  • appendTo: HTMLElement Optional

    Optional HTMLElement to append the new element to.

  • css: any Optional

    Optional CSS attributes to apply to the root of the new element.

Returns
HTMLElement

disableAutoComplete

disableAutoComplete(e: HTMLInputElement): void

Disables the autocomplete, autocorrect, autocapitalize, and spellcheck properties of an input element.

Parameters
Returns
void

enable

enable(e: HTMLElement, value: boolean): void

Enables or disables an element.

Parameters
  • e: HTMLElement

    Element to enable or disable.

  • value: boolean

    Whether to enable or disable the element.

Returns
void

escapeHtml

escapeHtml(text: string): string

Escapes a string by replacing HTML characters with text entities.

Strings entered by users should always be escaped before they are displayed in HTML pages. This helps ensure page integrity and prevent HTML/javascript injection attacks.

Parameters
  • text: string

    Text to escape.

Returns
string

escapeRegExp

escapeRegExp(text: string): string

Escapes a string by prefixing special regular expression characters with backslashes.

Parameters
  • text: string

    Text to escape.

Returns
string

evalTemplate

evalTemplate(template: string, ctx?: any): string

Evaluates a string in template literal notation.

This function allows you to evaluate template literals on-demand, rather than when they are declared.

The template string uses the standard template literal syntax, except it is a regular string (enclosed in single or double quotes) rather than a template literal (enclosed in back-quotes).

The template string may contain references to variables provided in a context object passed as a parameter.

The template string may contain formatting information as used with the glbz tag function.

For example:

import { evalTemplate } from '@mescius/wijmo';
const msg = evalTemplate('hello ${user}, want some ${Math.PI}:n2?', { user: 'Chris' }));
console.log(msg);
> hello Chris, want some 3.14?

Parameters
  • template: string

    String in template literal notation.

  • ctx: any Optional

    Object with properties acessible to the template.

Returns
string

focusFirst

focusFirst(container: HTMLElement, focusableSelector?: string): boolean

Moves the focus to the first focusable element within a given container. Optionally, focuses the first element that matches a specific selector. The element would not be focused if it's disabled or it's tabIndex < 0

Parameters
  • container: HTMLElement

    The DOM element.

  • focusableSelector: string Optional

    Optional. A CSS selector specifying which elements to consider for focusing.

Returns
boolean

format

format(format: string, data: any, formatFunction?: Function): string

Replaces each format item in a specified string with the text equivalent of an object's value.

The function works by replacing parts of the formatString with the pattern '{name:format}' with properties of the data parameter. For example:

import { format } from '@mescius/wijmo';
let data = { name: 'Joe', amount: 123456 },
    msg = format('Hello {name}, you won {amount:n2}!', data);

The format function supports pluralization. If the format string is a JSON-encoded object with 'count' and 'when' properties, the method uses the 'count' parameter of the data object to select the appropriate format from the 'when' property. For example:

import { format } from '@mescius/wijmo';
fmtObj fmt = {
    count: 'count',
    when: {
        0: 'No items selected.',
        1: 'One item is selected.',
        2: 'A pair is selected.',
        'other': '{count:n0} items are selected.'
    }
};
let fmt = JSON.stringify(fmtObj);
console.log(format(fmt, { count: 0 }));  // No items selected.
console.log(format(fmt, { count: 1 }));  // One item is selected.
console.log(format(fmt, { count: 2 }));  // A pair is selected.
console.log(format(fmt, { count: 12 })); // 12 items are selected.

The optional formatFunction allows you to customize the content by providing context-sensitive formatting. If provided, the format function gets called for each format element and gets passed the data object, the parameter name, the format, and the value; it should return an output string. For example:

import { format, isString, escapeHtml } from '@mescius/wijmo';
let data = { name: 'Joe', amount: 123456 },
    msg = format('Hello {name}, you won {amount:n2}!', data,
    (data, name, fmt, val) => {
        if (isString(data[name])) {
            val = escapeHtml(data[name]);
        }
        return val;
    }
);

Parameters
  • format: string

    A composite format string.

  • data: any

    The data object used to build the string.

  • formatFunction: Function Optional

    An optional function used to format items in context.

Returns
string

getActiveElement

getActiveElement(): HTMLElement

Gets a reference to the element that contains the focus, accounting for shadow document fragments.

Returns
HTMLElement

getAggregate

getAggregate(aggType: Aggregate, items: any[], binding?: string, sheet?: any): void

Calculates an aggregate value from the values in an array.

Parameters
  • aggType: Aggregate

    Type of aggregate to calculate.

  • items: any[]

    Array with the items to aggregate.

  • binding: string Optional

    Name of the property to aggregate on (in case the items are not simple values).

  • sheet: any Optional
Returns
void

getElement

getElement(selector: any): HTMLElement

Gets an element from a query selector.

Parameters
  • selector: any

    An element, a query selector string, or a jQuery object.

Returns
HTMLElement

getElementRect

getElementRect(e: Element): Rect

Gets the bounding rectangle of an element in page coordinates.

This is similar to the getBoundingClientRect function, except that uses viewport coordinates, which change when the document scrolls.

Parameters
Returns
Rect

getType

getType(value: any): DataType

Gets the type of a value.

Parameters
  • value: any

    Value to test.

Returns
DataType

getTypes

getTypes(arr: any[], limit?: number): IBindingInfo[]

Gets an array containing the names and types of items in an array.

Parameters
  • arr: any[]

    Array containing data items.

  • limit: number Optional

    Number of the array items to scan (1000 by default). Zero or negative value causes the function to scan all items.

Returns
IBindingInfo[]

getUniqueId

getUniqueId(baseId: string): string

Creates a new unique id for an element by adding sequential numbers to a given base id.

Parameters
  • baseId: string

    String to use as a basis for generating the unique id.

Returns
string

getVersion

getVersion(): string

Gets the version of the Wijmo library that is currently loaded.

Returns
string

glbz

glbz(...args: any[]): string

Tag function for use with template literals.

The glbz tag function allows you to specify formatting for variables in template literal expressions.

To format a variable in a template literal using glbz, add a colon and the format string after the name of the variable you want to format.

For example:

import { glbz } from '@mescius/wijmo';
let num = 42,
    dt = new Date(),
    msg = glbz`the number is ${num}:n2, and the date is ${dt}:'MMM d, yyyy'!`;

Parameters
  • ...args: any[]
Returns
string

hasClass

hasClass(e: Element, className: string): boolean

Checks whether an element has a class.

Parameters
  • e: Element

    Element to check.

  • className: string

    Class to check for.

Returns
boolean

hasItems

hasItems(value: ICollectionView): boolean

Checks whether an ICollectionView is defined and not empty.

Parameters
Returns
boolean

hidePopup

hidePopup(popup: HTMLElement, remove?: any, fadeOut?: boolean): any

Hides a popup element previously displayed with the showPopup method.

Parameters
  • popup: HTMLElement

    Popup element to hide.

  • remove: any Optional

    Whether to remove the popup from the DOM or just to hide it. This parameter may be a boolean or a callback function that gets invoked after the popup has been removed from the DOM.

  • fadeOut: boolean Optional

    Whether to use a fade-out animation to make the popup disappear gradually.

Returns
any

httpRequest

httpRequest(url: string, options?: IHttpRequestOptions): XMLHttpRequest

Performs HTTP requests.

Use the success method to obtain the result of the request which is provided in the callback's XMLHttpRequest parameter. For example, the code below uses the httpRequest method to retrieve a list of customers from an OData service:

import { httpRequest } from '@mescius/wijmo';
httpRequest('https://services.odata.org/Northwind/Northwind.svc/Customers?$format=json', {
  success: xhr => {
    let response = JSON.parse(xhr.responseText),
        customers = response.value;

    // do something with the customers...
  }
});

Parameters
Returns
XMLHttpRequest

isArray

isArray(value: any): value

Determines whether an object is an Array.

Parameters
  • value: any

    Value to test.

Returns
value

isBoolean

isBoolean(value: any): value

Determines whether an object is a Boolean.

Parameters
  • value: any

    Value to test.

Returns
value

isDate

isDate(value: any): value

Determines whether an object is a Date.

Parameters
  • value: any

    Value to test.

Returns
value

isEmpty

isEmpty(obj: any): boolean

Determines whether an object is empty (contains no enumerable properties).

Parameters
  • obj: any

    Object to test.

Returns
boolean

isFunction

isFunction(value: any): value

Determines whether an object is a function.

Parameters
  • value: any

    Value to test.

Returns
value

isInt

isInt(value: any): value

Determines whether an object is an integer.

Parameters
  • value: any

    Value to test.

Returns
value

isNullOrWhiteSpace

isNullOrWhiteSpace(value: string): boolean

Determines whether a string is null, empty, or whitespace only.

Parameters
  • value: string

    Value to test.

Returns
boolean

isNumber

isNumber(value: any): value

Determines whether an object is a number.

Parameters
  • value: any

    Value to test.

Returns
value

isObject

isObject(value: any): boolean

Determines whether a value is an object (as opposed to a value type, an array, or a Date).

Parameters
  • value: any

    Value to test.

Returns
boolean

isPrimitive

isPrimitive(value: any): value

Determines whether an object is a primitive type (string, number, Boolean, or Date).

Parameters
  • value: any

    Value to test.

Returns
value

isString

isString(value: any): value

Determines whether an object is a string.

Parameters
  • value: any

    Value to test.

Returns
value

isUndefined

isUndefined(value: any): value

Determines whether an object is undefined.

Parameters
  • value: any

    Value to test.

Returns
value

mouseToPage

mouseToPage(e: any): Point

Converts mouse or touch event arguments into a Point in page coordinates.

Parameters
  • e: any
Returns
Point

moveFocus

moveFocus(parent: HTMLElement, offset: number): boolean

Moves the focus to the next/previous/first focusable child within a given parent element.

Parameters
  • parent: HTMLElement

    Parent element.

  • offset: number

    Offset to use when moving the focus (use zero to focus on the first focusable child).

Returns
boolean

removeChild

removeChild(e: Node): Node

Safely removes an element from the DOM tree.

Parameters
  • e: Node

    Element to remove from the DOM tree.

Returns
Node

removeClass

removeClass(e: Element, className: string): void

Removes a class from an element.

Parameters
  • e: Element

    Element that will have the class removed.

  • className: string

    Class (or space-separated list of classes) to remove from the element.

Returns
void

saveFile

saveFile(content: string | Blob, fileName: string, type?: string): void

Saves content to a file.

Parameters
  • content: string | Blob

    A string or a Blob object to be saved to a file.

  • fileName: string

    Name of the file to save, including extension.

  • type: string Optional

    Optional file MIME type, used if the **content** argument is a string.

    The saveFile method can be used to create text files (txt, csv, html) as well as image files.

    For example, this code saves the current selection of a FlexGrid to a CSV file:

    import { saveFile } from '@mescius/wijmo';
    const clipString = theGrid.getClipString(null, true, true, false);
    saveFile(clipString, 'grid.csv', 'text/csv');
    
    

    And this code saves the content of a canvas element to a JPG file:

    import { saveFile } from '@mescius/wijmo';



    canvas.toBlob(blob => { saveFile(blob, 'image.jpg'); }, 'image/jpeg');

Returns
void

setAriaLabel

setAriaLabel(e: Element, value?: string): void

Sets or clears an element's aria-label attribute.

Parameters
  • e: Element

    Element that will be updated.

  • value: string Optional

    Value of the aria label, or null to remove the label from the element.

Returns
void

setAttribute

setAttribute(e: Element, name: string, value?: any, keep?: boolean): void

Sets or clears an attribute on an element.

Parameters
  • e: Element

    Element that will be updated.

  • name: string

    Name of the attribute to add or remove.

  • value: any Optional

    Value of the attribute, or null to remove the attribute from the element.

  • keep: boolean Optional

    Whether to keep original attribute if present.

Returns
void

setChecked

setChecked(cb: HTMLInputElement, checked: boolean): void

Sets the checked and indeterminate properties of a checkbox input element.

Parameters
  • cb: HTMLInputElement

    Checkbox element.

  • checked: boolean

    True, false, or null for checked, unchecked, or indeterminate.

Returns
void

setCss

setCss(e: any, css: any): void

Modifies the style of an element by applying the properties specified in an object.

Parameters
  • e: any

    Element or array of elements whose style will be modified.

  • css: any

    Object containing the style properties to apply to the element.

Returns
void

setLicenseKey

setLicenseKey(licenseKey: string): void

Sets the license key that identifies licensed Wijmo applications.

If you do not set the license key, Wijmo will run in evaluation mode, adding a watermark element to the page.

Licensed users may obtain keys at the My Account section of the Wijmo site.

Note that Wijmo does not send keys or any licensing information to any servers. It only checks the internal consistency of the key provided.

Parameters
  • licenseKey: string

    String containing the license key to use in this application.

Returns
void

setSelectionRange

setSelectionRange(e: any, start: number, end?: number, needFocus?: boolean): boolean

Sets the start and end positions of a selection in a text field.

This method is similar to the native setSelectionRange method in HTMLInputElement objects, except it checks for conditions that may cause exceptions (element not in the DOM, disabled, or hidden).

Parameters
  • e: any

    HTMLInputElement or HTMLTextAreaElement to select.

  • start: number

    Offset into the text field for the start of the selection.

  • end: number Optional

    Offset into the text field for the end of the selection.

  • needFocus: boolean Optional
Returns
boolean

setText

setText(e: HTMLElement, text: string): void

Sets the text content of an element.

Parameters
  • e: HTMLElement

    Element that will have its content updated.

  • text: string

    Plain text to be assigned to the element.

Returns
void

showPopup

showPopup(popup: HTMLElement, ref?: any, position?: PopupPosition | Boolean, fadeIn?: boolean, copyStyles?: any, hideOnScroll?: Function): any

Shows an element as a popup.

The popup element becomes a child of the body element, and is positioned with respect to reference rectangle according to the given PopupPosition.

The reference rectangle may be specified as one of the following:

HTMLElement
The bounding rectangle of the element.
MouseEvent
The bounding rectangle of the event's target element.
Rect
The given rectangle.
null
No reference rectangle; the popup is centered on the window.

Call the hidePopup method to hide the popup.

Parameters
  • popup: HTMLElement

    Element to show as a popup.

  • ref: any Optional

    Reference element or rectangle used to position the popup.

  • position: PopupPosition | Boolean Optional

    Position of the popup with respect to the reference element.

  • fadeIn: boolean Optional

    Use a fade-in animation to make the popup appear gradually.

  • copyStyles: any Optional

    Whether to copy font and color styles from the reference element, or an element to use as the style source.

  • hideOnScroll: Function Optional

    An optional function called when the popup is hidden as a result of a parent element scrolling.

Returns
any

toFixed

toFixed(value: number, prec: number, truncate: boolean): number

Rounds or truncates a number to a specified precision.

Parameters
  • value: number

    Value to round or truncate.

  • prec: number

    Number of decimal digits for the result.

  • truncate: boolean

    Whether to truncate or round the original value.

Returns
number

toggleClass

toggleClass(e: Element, className: string, addOrRemove?: boolean): void

Adds or removes a class to or from an element.

Parameters
  • e: Element

    Element that will have the class added.

  • className: string

    Class to add or remove.

  • addOrRemove: boolean Optional

    Whether to add or remove the class. If not provided, toggle the class.

Returns
void

toHeaderCase

toHeaderCase(text: string): string

Converts a camel-cased string into a header-type string by capitalizing the first letter and adding spaces before uppercase characters preceded by lower-case characters.

For example, 'somePropertyName' becomes 'Some Property Name'.

Parameters
  • text: string

    String to convert to header case.

Returns
string

toPlainText

toPlainText(html: string): string

Converts an HTML string into plain text.

Parameters
  • html: string

    HTML string to convert to plain text.

Returns
string

tryCast

tryCast(value: any, type: any): any

Casts a value to a type if possible.

Parameters
  • value: any

    Value to cast.

  • type: any

    Type or interface name to cast to.

Returns
any

uidGenerator

uidGenerator(): string

Creates an unique id

Returns
string