Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface ITree

Hierarchy

Properties

Optional alignItems

alignItems: AlignItems

Свойство указывает как выравнивать элементы. Выравнивание происходит поперек главной оси флекс контейнера.

Добавляет атрибут align-items в HTML элемент. Если свойство не задано, то атрибут не добавляется.

См. AlignItems.

Подробное описание способов выравнивания элементов смотрите здесь.

Optional alignSelf

alignSelf: AlignSelf

Расплагает элемент в одну из девяти позиций:

  • по вертикали: top, center, bottom;
  • по горизонтали: left, center, right.

ПРИМЕР

export var list: IList = <IList>{
     ...
     alignSelf: AlignSelf.topCenter,
     ...
}

Если задано, то к html элементу добавляется соответствующий класс, например для элемента из примера topCenter.

Cм. AlignSelf

Подробное описание способов выравнивания элементов смотрите здесь.

Optional allowOverflow

allowOverflow: boolean

Свойство указывает на наличие полосы прокрутки. Если значение true, то добавляет атрибут overflow-auto в HTML элемент.

Optional bindingProperty

bindingProperty: string

Свойство указывающее на данные.

ПРИМЕР данных

const person = {
 "firstName": "Иван",
 "secondName": "Иванович",
}

ПРИМЕР описания формы, где в коментариях указано, какие данные будет содержать элемент, после установки данных AppManager.forms.setData('dataForm', person).

export var form: IForm = <IForm>{
    ...
    name: "dataForm",
    bindingProperty: '', //data = {"firstName": "Иван", "secondName": "Иванович"}
    elements: [
        <IProperty>{
            ...
            bindingProperty: 'firstName', //data = "Иван"
        },
        <IProperty>{
           ...
            bindingProperty: 'secondNamae', //data = "Иванович"
        },
        <IButton>{
            ...
            onClick: function () {
                alert("Data sent!")
            }
        },
   ]
}

Как система управляет данными в элементах формы смотрите {@link UseData | здесь}

Optional bordered

bordered: boolean

Устанавливает окантовку элементу управления. По умолчанию false.

Optional caption

caption: string

Заголовок элемента.

ПРИМЕР

export var list: IList = <IList>{
     ...
     caption: "Список продуктов",
     ...
}

Заголовок отображается в верхней части элемента. Например:

<div class='app ui-list' id='a57cf348' name='productsList'>
     'Список продуктов'
     <div class='menu fixed'>...</div>
     <div class='content flexible'>...</div>
<div>

Заголовок подставляется в текст элемента, если свойство IElement.value не задано, для следующих элементов: IElement, IDataElement, IButton, IMenuItem.

Optional contextMenu

Описывает контекстное меню элемента.

defaultOptions

defaultOptions: object

Optional dom

dom: HTMLElement

Возвращает узел HTML элемента.

ПРИМЕР

export var list: IList = <IList>{
     ... ,
     onclick: function(form: IForm, elem: IList, item: IListItem): Promise<void> {
         var dom: HTMLElement = elem.dom; //IList inherit IElement
     }
}
внимание!

Зарезервированное свойство, доступное только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите это свойство в JSON объекте, ваше описание будет проигнорировано.

Optional domContent

domContent: HTMLElement

Возвращает узел HTML элемента контента. Так как IElement.dom разделяется на два элемента menu и content.

внимание!

Зарезервированное свойство, доступное только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите это свойство в JSON объекте, ваше описание будет проигнорировано.

Optional domMenu

domMenu: HTMLElement

Возвращает узел HTML элемента меню. Так как IElement.dom разделяется на два элемента menu и content.

внимание!

Зарезервированное свойство, доступное только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите это свойство в JSON объекте, ваше описание будет проигнорировано.

Optional flex

flex: Flex

Свойство, указывающее на способ позиционирования элемента внутри группы (по умолчанию гибкое - flexible):

  • гибкое (Flex.flexible) - элемент занимает все свободное место, В реальности элементу устанавливается свойство flex: 1 1 auto; т.е. он может растягиваться или сжиматься вдоль главной оси флекс контейнера.
  • фиксированное (Flex.fixed) - элемент занимает место ровно по своему размеру. В реальности элементу устанавливается свойство flex: 0 1 auto; т.е. он может только сжиматься вдоль главной оси флекс контейнера.

См. Flex.

Optional form

Возвращает форму (IForm), которой принадлежит элемент.

ПРИМЕР

export var list: IList = <IList>{
     ... ,
     async onClick(e: IMouseEvent, form: IForm, elem: IList, item: IListItem): Promise<boolean> {
         var _form: IForm = elem.form; //IList inherit IElement
         return true;
     }
}
внимание!

Зарезервированное свойство, доступное только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите это свойство в JSON объекте, ваше описание будет проигнорировано.

Optional href

href: string

Устанавливает в элемент гиперссылку

let elem: IElement = <IElement>{
 type: 'IElement',
 href: 'https://ui-organizer.ru',
 value: 'ui-organizer',
}

Результат:

 <div class='app ui-element'>
    <a href='https://ui-organizer.ru'>ui-organizer</a>
 </div>

Optional id

id: string

Возвращает идентификатор элемента. Идентификатор задается системой при создании элемента.

ПРИМЕР

export var list: IList = <IList>{
     ... ,
     async onСlick(event:UIMouseEvent, form: IForm, elem: IList, item: IListItem): Promise<void> {
         console.log(`Идентификатор элемента ${elem.id}`);
     }
}

Из идентификатора формируется атрибут id HTML элемента.

Результат следующий:

<div class="..." id="abcff8d5" />

По id, также осуществляется доступ к элементу формы из любого метода объекта:

AppManager.ActiveForm.getElementById('abcff8d5');
внимание!

Зарезервированное свойство, доступное только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите это свойство в JSON объекте, ваше описание будет проигнорировано.

itemsBindingProperties

itemsBindingProperties: ITreeItemsBindingProperty[]

itemsElement

Optional justifyContent

justifyContent: JustifyContent

Выравнивание текста внутри элемента. Так как все элементы являются флекс контейнерами, то и выравнивание внутри элемента или группы происходит с использованием HTML стиля justify-content.

Подробное описание способов выравнивания элементов смотрите здесь.

ПРИМЕР

export var someGroup: IGroup = <IGroup>{
     ...
     justifyContent: JustifyContent.start,
     ...
}

Если задано, то соответствующий класс будет добавлен к html элементу.

<div class='... left'/>
.left{
     justify-content: left
}

Optional menu

Описывает меню элемента. Это меню встроится в элемент в соотвествии с {@link IMenuElement.menuPosition}.

Optional menuPosition

menuPosition: Position

Указывает где разместить меню внутри элемента (top, bottom, left, right).

Optional name

name: string

Наименование элемента латиницей. Не должно содержать управляющих символов и пробелов. Необязательно.

ПРИМЕР

export var productsList: IList = <IList>{
     ...
     name: 'productsList',
     ...
}

Из названия формируется атрибут name HTML элемента.

Результат следующий:

<div class="..." name="productsList" />

По названию, также осуществляется доступ к элементу формы из любого метода объекта:

AppManager.ActiveForm.getElement('productsList');

Optional owner

Возвращает элемент (наследник IContextElement), которому принадлежит этот элемент.

ПРИМЕР

export var elem: IElement = <IElement>{
     ... ,
     async onClick(e: IMouseEvent, form: IForm, elem: IElement, item: IElement): Promise<boolean> {
         var owner: IContextElement = elem.owner;
         return true;
     }
}

Элемент:

  • либо имеет значение в свойстве owner - это значит, что создан и принадлежит какому-то элементу (например, является элементом строки IList IListItem.element), - тогда свойство parent = undefined;
  • либо имеет значение в свойстве parent - это значит, что добавлен в группу IGroup.elements, - тогда свойство owner = undefined;
  • либо оба свойства undefined - это только у формы IForm.
внимание!

Зарезервированное свойство, доступное только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите это свойство в JSON объекте, ваше описание будет проигнорировано.

Optional parent

Возвращает родительскую группу (IGroup), которой принадлежит элемент.

ПРИМЕР

export var list: IList = <IList>{
     ... ,
     async onClick(e: IMouseEvent, form: IForm, elem: IList, item: IListItem): Promise<boolean> {
         var form: IGroup = elem.parent; //IList inherit IElement
         return true;
     }
}

Элемент:

  • либо имеет значение в свойстве owner - это значит, что создан и принадлежит какому-то элементу (например, является элементом строки IList {@link IList.element}), - тогда свойство parent = undefined;
  • либо имеет значение в свойстве parent - это значит, что добавлен в группу IGroup.elements, - тогда свойство owner = undefined;
  • либо оба свойства undefined - это только у формы IForm.
внимание!

Зарезервированное свойство, доступное только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите это свойство в JSON объекте, ваше описание будет проигнорировано.

Optional positionAbsolute

positionAbsolute: boolean

Устанавливает элемент в абсолютную позицию. Чаще испльзуется для задания контекстного меню или всплывающего диалога.

ПРИМЕР

export var list: IList = <IList>{
     ...
     positionAbsolute: true,
     ...
}

Если задано, и значение true, то к html элементу добавляется класс positionAbsolute. CSS

.positionAbsolute{
     position: absolute;
}

Optional readonly

readonly: boolean

Доступность элемента только для чтения.

ПРИМЕР

export var list: IList = <IList>{
     ...
     readonly: true,
     ...
}

Если значение true, то к html элементу добавляется класс readonly.

<div class="... readonly"/>

Optional rootItem

rootItem: ITreeItem

Optional selectItem

selectItem: function

Type declaration

    • Parameters

      • key: string
      • value: string

      Returns ITreeItem

Optional selectItemByData

selectItemByData: function

Type declaration

    • Parameters

      • key: string
      • value: string

      Returns ITreeItem

Optional selected

selected: ITreeItem

Optional tabindex

tabindex: number

Позволяет разработчикам делать элементы управления фокусируемыми, разрешать или запрещать их последовательную фокусировку (обычно с помощью клавиши tab, отсюда и название) и определять их относительный порядок для последовательной навигации между элементами формы

Порядок навигации (при нажатии клавиши tab) следующий:

  • Элементы с положительным tabIndex фокусируются в порядке номера tabIndex. Навигация осуществляется от самого низкого tabIndex к самому высокому tabIndex.
  • Элементы, у которых tabIndex = 0, и элементы, имеющие одинаковые tabIndex значения, фокусируются в порядке их расположения на форме.
  • Элементы с отрицательным tabIndex фокусируются только программно.

Optional textSelect

textSelect: boolean

Возможность выделения текста внутри элемента на html странице.

ПРИМЕР

export var list: IList = <IList>{
     ...
     textSelect: false,
     ...
}

Если задано, и значение false, то к html элементу добавляется класс unselectable. CSS

.unselectable {
     user-select: none;
}

type

type: string | typeof RuntimeElement | typeof UIElement

Свойство, которое описывает тип объекта, который будет создан. Тип должет реализовывать этот интерфейс. В примере ниже тип UIList реализует интерфейс IList.

ПРИМЕР

export var list: IList = <IList>{
     type: 'IList',
     ...
}

По типу объекта формируется название класса HTML элемента. Для этого в начало типа добавляется префикс: "ui-".

Для html элемента объекта из примера результат следующий:

<div class="... ui-list" id="..." />

Optional value

value: any

Текст HTML элемента.

Если вы хотите установить текст HTML элемента IContextElement задайте значение value.

В процессе описания:

let contextElem: IContextElement = <IContextElement>{
    type: 'IContextElement',
    value: 'Элемент с меню и контекстным меню' 
}

Либо в процессе выполнения:

let contextElem: IContextElement = <IContextElement>{
    type: 'IContextElement',
    onAfterLoad: async function (event: UILoadEvent, form: IForm, elem: IContextElement) {
        elem.value = 'Элемент с меню и контекстным меню';
    }   
}

Результат следующий:

<div class='app ui-context-element' id='a57cf348'>
     <div class='menu fixed'>...</div>//Не добавляется если не указано свойство menu
     <div class='content flexible'>
         Элемент с меню и контекстным меню
     </div>
<div>

В отличие от элементов IElement, IDataElement, IButton, IMenuItem, - IElement.caption и IElement.name не влияют на содержание

.

Если value == undefined, то значение устанавливается из данных при первоначальном заполнении и последующих вызовах метода setData() для всех наследников IDataElement.

Optional visibility

visibility: boolean

Видимость элемента.

ПРИМЕР

export var list: IList = <IList>{
     ...
     visibility: true,
     ...
}

При установке значения генерируются события:

  • "show" при visibility = true,
  • "hide" при visibility = false.

ПРИМЕР прослушивания этих событий

function addListener(elem: IElement) {
     elem.on("hide", ()=>{
         console.log("Элемент скрыт");
     })
}

Methods

Optional addClass

  • addClass(className: string): void
  • Добавляет класс к HTML элементу.

    ПРИМЕР

    function someFunction(elem: IElement) {
         elem.addClass("someClass");
    }
    

    РЕЗУЛЬТАТ

    <div class="someClass"></div>
    
    внимание!

    Зарезервированный метод, доступный только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите этот метод в JSON объекте, ваше описание будет проигнорировано.

    Parameters

    • className: string

    Returns void

Optional addListener

  • addListener<P, T>(event: P, listener: function): T
  • addListener(event: typeof assignmentCompatibilityHack, listener: function): void
  • Описание addListener() в StrictEventEmitter

    Type parameters

    • P: keyof IContextElementEvents

    • T

    Parameters

    • event: P
    • listener: function
        • (...args: ListenerType<IContextElementEvents[P]>): void
        • Parameters

          • Rest ...args: ListenerType<IContextElementEvents[P]>

          Returns void

    Returns T

  • Parameters

    • event: typeof assignmentCompatibilityHack
    • listener: function
        • (...args: any[]): any
        • Parameters

          • Rest ...args: any[]

          Returns any

    Returns void

Optional addStyle

  • addStyle(property: string, value: string): void
  • Добавляет стиль к HTML элементу.

    addStyle('color', 'grey');
    

    Добавит к HTML элементу атрибут style:

    <div class='app ui-element' style='color:grey;'>
    

    Parameters

    • property: string

      Название свойства, например: color

    • value: string

      Значение свойства, например: grey

    Returns void

Optional blur

  • blur(): Promise<void>
  • Убирает фокус с элемента.

    Returns Promise<void>

Optional collectData

  • collectData(data?: any): any
  • Собирает данные со всех подэлементов. Внутреннее свойство _data остается неизменным. т.е. метод getData() вернет данные, переданные изначально.

    Подробнее в getData().

    Parameters

    • Optional data: any

      Любые данные (обычно данные родительского объекта) или undefined.

    Returns any

    Возвращаемые данные зависят от передаваемых данных.

Optional edit

  • edit(elementId?: string): Promise<string>
  • Вызывает режим редактирования элемента. По завершении редактирования устанавливает значение IElement.value. Возвращает результат редактирования.

    внимание!

    Зарезервированный метод, доступный только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите этот метод в JSON объекте, ваше описание будет проигнорировано.

    Parameters

    • Optional elementId: string

      Идентификатор подэлемента (если есть). Если не указан, то используется идентификатор самого элемента IElement.id или идентификатор выбранного подэлемента, например, выбранная строка в списке IList.

    Returns Promise<string>

Optional emit

  • emit<P, T>(event: P, ...args: ListenerType<IContextElementEvents[P]>): T
  • emit(event: typeof assignmentCompatibilityHack, ...args: any[]): void
  • Описание emit() в StrictEventEmitter

    Type parameters

    • P: keyof IContextElementEvents

    • T

    Parameters

    • event: P
    • Rest ...args: ListenerType<IContextElementEvents[P]>

    Returns T

  • Parameters

    • event: typeof assignmentCompatibilityHack
    • Rest ...args: any[]

    Returns void

Optional emitWithOptions

  • emitWithOptions(eventName: string | symbol, opt: object, ...args: any[]): boolean
  • Parameters

    • eventName: string | symbol
    • opt: object
    • Rest ...args: any[]

    Returns boolean

Optional focus

  • focus(): Promise<void>
  • Устанавливает фокус на элементе.

    Returns Promise<void>

Optional getData

  • getData(data?: any): any
  • Получает данные элемента, записанные во внутреннем свойстве _data. Во внутреннем свойстве _data хранятся изначальные данные (если вы их, конечно, не изменяяете в методах) и не зависят от изменений подэлементов.

    ПРИМЕР сначала устанавливаем данные

    export var dataElem: IDataElement = <IDataElement>{
        type: 'IDataElement',
        name: 'dataElement',
        bindingProperty: "firstName"
    }
    ...
    (async function setData(){
         var elem = AppManager.activeForm.getElement("dataElement");
         await elem.setData({firstName: "Иван"});//во внутреннем свойстве elem._data сохранены данные "Иван".
    })();
    

    ПРИМЕР теперь получаем данные:

    • Если передать данные родительского элемента, тогда в передавемых данных изменится только атрибут, соответствующий свойству 'bindingProperty'.
         var elem = AppManager.activeForm.getElement("dataElement");
         console.log(elem.getData({firstName: "Петр", secondName: "Петров"}));
      
      РЕЗУЛЬТАТ
      {
         firstName: "Иван", 
         secondName: "Петров"
      }
      
    • Если передать данные, в которых нет атрибута, соответствующего свойству 'bindingProperty', тогда такой атрибут с данными элемента добавится.
         var elem = AppManager.activeForm.getElement("dataElement");
         console.log(elem.getData({}));
      
      РЕЗУЛЬТАТ
      {
         firstName: "Иван"
      }
      
    • Если передать undefined, тогда будут возвращены непосредственно данные элемента.
         var elem = AppManager.activeForm.getElement("dataElement");
         console.log(elem.getData(undefined));
      
      РЕЗУЛЬТАТ
      "Иван"
      

    Parameters

    • Optional data: any

      Любые данные (обычно данные родительского объекта) или undefined.

    Returns any

    Возвращаемые данные зависят от передаваемых данных.

Optional getElement

  • Осуществляет поиск элемента по названию.

    внимание!

    Зарезервированный метод, доступный только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите этот метод в JSON объекте, ваше описание будет проигнорировано.

    Parameters

    • elemName: string

      Название элемента

    • Optional throwNotFound: boolean

      Если true, то выдает исключение.

    Returns IElement<IElementEvents>

Optional getType

  • getType(): string
  • Возвращает название типа элемента: "RuntimeElement", "RuntimeDataElement" и т.д.

    Returns string

Optional hasClass

  • hasClass(className: string): boolean
  • Проверяет наличие класса в HTML элементе.

    внимание!

    Зарезервированный метод, доступный только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите этот метод в JSON объекте, ваше описание будет проигнорировано.

    Parameters

    • className: string

    Returns boolean

Optional isFocused

  • isFocused(): boolean
  • Имеет ли элемент фокус.

    Returns boolean

Optional isType

  • isType(type: string | typeof UIElement): this
  • Проверяет тип элемента. Тип элемента, который определен в свойстве IElement.type.

    внимание!

    Зарезервированный метод, доступный только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите этот метод в JSON объекте, ваше описание будет проигнорировано.

    Parameters

    • type: string | typeof UIElement

    Returns this

Optional listenerCount

  • listenerCount(eventName: EventName): number

Optional off

  • off<P, T>(event: P, listener: function): T
  • off(event: typeof assignmentCompatibilityHack, listener: function): void
  • Описание removeListener() в StrictEventEmitter

    Type parameters

    • P: keyof IContextElementEvents

    • T

    Parameters

    • event: P
    • listener: function
        • (...args: ListenerType<IContextElementEvents[P]>): void
        • Parameters

          • Rest ...args: ListenerType<IContextElementEvents[P]>

          Returns void

    Returns T

  • Parameters

    • event: typeof assignmentCompatibilityHack
    • listener: function
        • (...args: any[]): any
        • Parameters

          • Rest ...args: any[]

          Returns any

    Returns void

Optional on

  • on<P, T>(event: P, listener: function): T
  • on<P, T>(event: P, listener: function, options?: object): T
  • on(event: typeof assignmentCompatibilityHack, listener: function): void
  • Описание on() в StrictEventEmitter

    Type parameters

    • P: keyof IContextElementEvents

    • T

    Parameters

    • event: P
    • listener: function
        • (...args: ListenerType<IContextElementEvents[P]>): void
        • Parameters

          • Rest ...args: ListenerType<IContextElementEvents[P]>

          Returns void

    Returns T

  • Type parameters

    • P: keyof IContextElementEvents

    • T

    Parameters

    • event: P
    • listener: function
        • (...args: ListenerType<IContextElementEvents[P]>): void
        • Parameters

          • Rest ...args: ListenerType<IContextElementEvents[P]>

          Returns void

    • Optional options: object

    Returns T

  • Parameters

    • event: typeof assignmentCompatibilityHack
    • listener: function
        • (...args: any[]): any
        • Parameters

          • Rest ...args: any[]

          Returns any

    Returns void

Optional onAfterEdit

  • Этот метод вызывается после редактирования элемента в результате вызова метода IElement.edit.

    Для получения или изменения значения после редактирования используйте UIEditEvent.value.

    По завершении метода результат редактирования UIEditEvent.value будет подставлен в IElement.value.

    Так как редактирование завершено вызов UIEditEvent.stop игнорируется.

    На данные (если элемент - наследник IDataElement) возвращаемое значение никак не влияет. Если вы хотите изменить данные элемента вызывайте метод this.setData(...).

    ПРИМЕР

    export var form: IForm = <IForm>{
         type: 'IForm',
         name: "emptyForm",
         ...
         elements: [
             <IElement> {
                 type: 'IElement',
                 name: 'elem',
                 async onAfterEdit(editEvent:UIEditEvent, form: IForm, elem: IElement, item:IElement): Promise<void> {
                     editEvent.value = 'prefix-' + editEvent.value;
                 }
             }
         ],
    }
    

    Перед выполнением метода генерируется событие afterEdit.

    Метод не вызывается, если в методе onBeforeEdit() вызван UIEditEvent.stop.

    Parameters

    • editEvent: UIEditEvent

      Объект для управлиения событием onBeforeedit.

    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IElement<IElementEvents>

      Текущий элемент формы, для которого вызывается метод.

    • item: IElement<IElementEvents>

      Подэлемент, если у элемента редактируется подэлемент (например, в IList или IGroup).

    Returns Promise<void>

Optional onAfterLoad

  • Этот метод вызывается после загрузки элемента, но до установки данных, для каждого элемента формы.

    ПРИМЕР

    export var form: IForm = <IForm>{
         type: 'IForm',
         name: "emptyForm",
         caption: "Пустая форма",
         ...
         elements: [],
         async onAfterLoad(event: UILoadEvent, form: IForm, elem: IElement): Promise<void> {
             console.log(`Форма ${form.name} после загрузки`);
         }
    }
    

    Перед выполнением метода генерируется событие afterLoad.

    Метод не вызывается, если в методе IElement.onBeforeLoad или событии IElementEvents.beforeLoad вызвали UILoadEvent.stop.

    Parameters

    • event: UILoadEvent

      Объект события загузки.

    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IElement<IElementEvents>

      Текущий элемент формы, для которого вызывается метод.

    Returns Promise<void>

Optional onAfterOpenContextMenu

  • onAfterOpenContextMenu(form: IForm<IFormEvents>, elem: IContextMenuElement, data: any): Promise<boolean>
  • Вызывается после открытия контекстного меню.

    ПРИМЕР

    export var form: IList = <IList>{
         type: 'IList',
         name: "IList",
         ...
         onAfterOpenContextMenu: async function(form: IForm, elem: IList, data: any) {
             console.log(`Элемент ${elem.name} после открытия контекстного меню`);
             return true;
         }
    }
    

    Перед выполнением метода генерируется событие {@link IContextMenuElementEvents.afterOpenContextMenu | afterOpenContextMenu}.

    Метод не вызывается, если метод {@link IContextMenuElement.onBeforeOpenContextMenu | onBeforeOpenContextMenu()} вернул false.

    Parameters

    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IContextMenuElement

      Текущий элемент формы, для которого вызывается метод.

    • data: any

      Данные элемента.

    Returns Promise<boolean>

    Возвращаемое значение ни на что не влияет. Тип boolean введен для унификации с onBeforeOpenContextMenu().

Optional onAfterSetData

  • Этот метод вызывается после установки данных элемента.

    ПРИМЕР

    export var form: IForm = <IForm>{
         type: 'IForm',
         name: "emptyForm",
         caption: "Пустая форма",
         ...
         elements: [],
         async onAfterSetData(event: UISetDataEvent, form: IForm, elem: IDataElement): Promise<void> {
             console.log(`Форма ${form.name} после установки данных`);
         }
    }
    

    Перед выполнением метода генерируется событие IDataElementEvents.afterSetData.

    Метод не вызывается, если в методе IDataElement.onBeforeSetData вызван UISetDataEvent.stop.

    Parameters

    • event: UISetDataEvent

      Объект события установки данных.

    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IDataElement<IDataElementEvents>

      Текущий элемент формы, для которого вызывается метод.

    Returns Promise<void>

Optional onBeforeEdit

  • Этот метод вызывается перед редактированием элемента в результате вызова метода IElement.edit.

    Для получения значения до изменения используйте UIEditEvent.value.

    Для отмены редактирования выполните UIEditEvent.stop.

    ПРИМЕР:

    export var form: IForm = <IForm>{
         type: 'IForm',
         name: "emptyForm",
         ...
         elements: [
             <IElement> {
                 type: 'IElement',
                 name: 'elem',
                 async onBeforeEdit(editEvent:UIEditEvent, form: IForm, elem: IElement, item:IElement): Promise<void> {
                     console.log(`Значение перед редактированием: ${editEvent.value}`);
                     if (editEvent.value === '') {
                         editEvent.stopPropagation();//Отменить редактирование
                     }
                 }
             }
         ],
    }
    

    Перед выполнением метода генерируется событие beforeEdit.

    Parameters

    • editEvent: UIEditEvent

      Объект для управлиения событием onBeforeedit.

    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IElement<IElementEvents>

      Текущий элемент формы, для которого вызывается метод.

    • item: IElement<IElementEvents>

      Подэлемент, если у элемента редактируется подэлемент (например, в IList или IGroup).

    Returns Promise<void>

Optional onBeforeLoad

  • Этот метод вызывается перед загрузкой элемента, для каждого элемента формы.

    ПРИМЕР

    export var form: IForm = <IForm>{
         type: 'IForm',
         name: "emptyForm",
         caption: "Пустая форма",
         ...
         elements: [],
         async onBeforeLoad(event: UILoadEvent, form: IForm, elem: IElement): Promise<void> {
             console.log(`Форма ${form.name} перед загрузкой`);
         }
    }
    

    Перед выполнением метода генерируется событие IElementEvents.beforeLoad.

    Если вы хотите получить данные, переданные в событие onBeforeLoad, или хотите остановить загрузку элемента, используйте объект event: UILoadEvent, соответственно UILoadEvent.data и UILoadEvent.stop.

    Parameters

    • event: UILoadEvent

      Объект события загузки.

    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент. В примере form будет иметь тип IForm.

    • elem: IElement<IElementEvents>

      Текущий элемент формы, для которого вызывается метод. В примере elem будет иметь тип IForm и будет совпадать с form.

    Returns Promise<void>

Optional onBeforeOpenContextMenu

  • onBeforeOpenContextMenu(form: IForm<IFormEvents>, elem: IContextMenuElement, data?: any): Promise<boolean>
  • Вызывается перед открытием контекстного меню.

    ПРИМЕР

    export var form: IList = <IList>{
         type: 'IList',
         name: "IList",
         ...
         onBeforeOpenContextMenu: async function(form: IForm, elem: IList, data: any) {
             console.log(`Элемент ${elem.name} перед открытием контекстного меню`);
             return true;
         }
    }
    

    Перед выполнением метода генерируется событие beforeOpenContextMenu.

    Parameters

    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IContextMenuElement

      Текущий элемент формы, для которого вызывается метод.

    • Optional data: any

      Данные элемента.

    Returns Promise<boolean>

    Если вернуть false, то открытие контекстного меню прекратится.

Optional onBeforeSetData

  • Этот метод вызывается перед установкой данных элемента.

    ПРИМЕР

    export var form: IForm = <IForm>{
         type: 'IForm',
         name: "emptyForm",
         caption: "Пустая форма",
         ...
         elements: [],
         async onBeforeSetData(event: UISetDataEvent, form: IForm, elem: IDataElement): Promise<void> {
             console.log(`Форма ${form.name} перед установкой данных`);
         }
    }
    

    Перед выполнением метода генерируется событие IDataElementEvents.beforeSetData.

    Если внутри метода вызвать UISetDataEvent.stop, то установка данных для элемента прекратится.

    Parameters

    • event: UISetDataEvent

      Объект события установки данных.

    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IDataElement<IDataElementEvents>

      Текущий элемент формы, для которого вызывается метод.

    Returns Promise<void>

Optional onBlur

  • Метод вызывается при потере фокуса элементом в следующих случаях:

    • при клике мыши на другом элементе (если на другом элементе установлено свойство tabindex),
    • при переключении между элементами с помощью клавиатуры,
    • при вызове метода IElement.blur.

    Перед выполнением метода генерируется событие IElementEvents.blur.

    Сначала происходит погружение от элемента ко всем подэлементам, т.е. метод onBlur вызывается сначала у элемента, потом по всей иерархии вложенных элементов с фокусом. Затем всплытие от вложенного элемента с фокусом к элементу. При всплытии метод onBlur не вызывается.

    Parameters

    • event: UIFocusEvent
    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IElement<IElementEvents>

      Элемент формы, на котором происходит событие.

    • item: IElement<IElementEvents>

      Подэлемент, если элемент формы включает другие элементы (например, подэлемент IList - элемент IListItem).

    Returns Promise<void>

Optional onClick

  • Этот метод вызывается при клике мыши по элементу.

    ПРИМЕР

    export var sendButton: IElement = <IElement>{
         type: 'IElement',
         name: 'elem',
         ...
         async onClick(event: UIMouseEvent, form: IForm, elem: IElement, item: IElement: Promise<void> {
             console.log(`Клик по элементу  ${elem.name}!`);
             return;
         }
    }
    

    Перед выполнением метода генерируется событие click.

    Parameters

    • event: UIMouseEvent
    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IElement<IElementEvents>

      Элемент формы, на котором клик.

    • item: IElement<IElementEvents>

      Подэлемент, на котором клик, если элемент формы включает другие элементы (например, подэлемент IList - элемент IListItem).

    Returns Promise<void>

Optional onCollapseItem

Optional onDblClick

  • Этот метод вызывается при двойном клике мыши по элементу.

    ПРИМЕР

    export var sendButton: IElement = <IElement>{
         type: 'IElement',
         name: 'elem',
         ...
         async ondblClick(event: UIMouseEvent, form: IForm, elem: IElement, item: IElement: Promise<void> {
             console.log(`Двойной клик по элементу  ${elem.name}!`);
             return;
         }
    }
    

    Перед выполнением метода генерируется событие dblclick.

    Parameters

    • event: UIMouseEvent
    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IElement<IElementEvents>

      Элемент формы, на котором клик.

    • item: IElement<IElementEvents>

      Подэлемент, на котором клик, если элемент формы включает другие элементы (например, подэлемент IList - элемент IListItem).

    Returns Promise<void>

Optional onExpandItem

Optional onFocus

  • Фокус на IElement появляется при клике и при навигации клавишами, только если установлено свойство tabindex, кроме IElements, являющихся подэлементом IList, ITable. Для них фокус если IList и ITable с tabindex.

    Метод вызывается при фокусе на элементе в следующих случаях:

    • при клике мыши (если установлено свойство tabindex),
    • при переключении между элементами с помощью клавиатуры (если установлено свойство tabindex),
    • при вызове метода IElement.focus.

    Перед выполнением метода генерируется событие IElementEvents.focus.

    Сначала происходит погружение от формы к элементу, т.е. метод onFocus вызывается сначала у формы, потом по всей иерархии вложенных элементов. Затем всплытие от элемента к форме. При всплытии метод onFocus не вызывается.

    Parameters

    • event: UIFocusEvent
    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IElement<IElementEvents>

      Элемент формы, на котором происходит событие.

    • item: IElement<IElementEvents>

      Подэлемент, если элемент формы включает другие элементы (например, подэлемент IList - элемент IListItem).

    Returns Promise<void>

Optional onKeyDown

  • Метод вызывается при нажатии клавиши на элементе, на котором установлен фокус (IElement.focus):

    Перед выполнением метода генерируется событие IElementEvents.keydown.

    Сначала происходит погружение от формы к элементу с фокусом, т.е. метод onKeyDown вызывается сначала у формы, потом по всей иерархии вложенных элементов до элемента с фокусом. Затем всплытие от элемента с фокусом к форме. При всплытии метод onKeyDown не вызывается.

    Parameters

    • event: UIKeyboardEvent
    • form: IForm<IFormEvents>

      Объект формы, которая содержит элемент.

    • elem: IElement<IElementEvents>

      Элемент формы, на котором происходит событие.

    • item: IElement<IElementEvents>

      Подэлемент, если элемент формы включает другие элементы с фокусом (например, подэлемент IList - элемент IListItem).

    Returns Promise<void>

Optional onKeyUp

  • Метод вызывается при отпускании клавиши на элементе, на котором установлен фокус (IElement.focus):

    Перед выполнением метода генерируется событие IElementEvents.keyup.

    Сначала происходит погружение от формы к элементу с фокусом, т.е. метод onKeyUp вызывается сначала у формы, потом по всей иерархии вложенных элементов до элемента с фокусом. Затем всплытие от элемента с фокусом к форме. При всплытии метод onKeyUp не вызывается.

    Parameters

    Returns Promise<void>

Optional onSelectItem

Optional onSetItem

Optional onUnSelectItem

Optional once

  • once<P, T>(event: P, listener: function): T
  • once(event: typeof assignmentCompatibilityHack, listener: function): void
  • Описание once() в StrictEventEmitter

    Type parameters

    • P: keyof IContextElementEvents

    • T

    Parameters

    • event: P
    • listener: function
        • (...args: ListenerType<IContextElementEvents[P]>): void
        • Parameters

          • Rest ...args: ListenerType<IContextElementEvents[P]>

          Returns void

    Returns T

  • Parameters

    • event: typeof assignmentCompatibilityHack
    • listener: function
        • (...args: any[]): any
        • Parameters

          • Rest ...args: any[]

          Returns any

    Returns void

Optional prependListener

  • prependListener<P, T>(event: P, listener: function): T
  • prependListener(event: typeof assignmentCompatibilityHack, listener: function): void
  • Описание prependListener() в StrictEventEmitter

    Type parameters

    • P: keyof IContextElementEvents

    • T

    Parameters

    • event: P
    • listener: function
        • (...args: ListenerType<IContextElementEvents[P]>): void
        • Parameters

          • Rest ...args: ListenerType<IContextElementEvents[P]>

          Returns void

    Returns T

  • Parameters

    • event: typeof assignmentCompatibilityHack
    • listener: function
        • (...args: any[]): any
        • Parameters

          • Rest ...args: any[]

          Returns any

    Returns void

Optional prependOnceListener

  • prependOnceListener<P, T>(event: P, listener: function): T
  • prependOnceListener(event: typeof assignmentCompatibilityHack, listener: function): void
  • Описание prependOnceListener() в StrictEventEmitter

    Type parameters

    • P: keyof IContextElementEvents

    • T

    Parameters

    • event: P
    • listener: function
        • (...args: ListenerType<IContextElementEvents[P]>): void
        • Parameters

          • Rest ...args: ListenerType<IContextElementEvents[P]>

          Returns void

    Returns T

  • Parameters

    • event: typeof assignmentCompatibilityHack
    • listener: function
        • (...args: any[]): any
        • Parameters

          • Rest ...args: any[]

          Returns any

    Returns void

Optional rawListeners

  • rawListeners(eventName: EventName): EventHandler[]
  • Parameters

    • eventName: EventName

    Returns EventHandler[]

Optional removeClass

  • removeClass(className: string): void
  • Удаляет класс из HTML элемента.

    внимание!

    Зарезервированный метод, доступный только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите этот метод в JSON объекте, ваше описание будет проигнорировано.

    Parameters

    • className: string

    Returns void

Optional removeListener

  • removeListener<P, T>(event: P, listener: function): T
  • removeListener(event: typeof assignmentCompatibilityHack, listener: function): void
  • Описание removeListener() в StrictEventEmitter

    Type parameters

    • P: keyof IContextElementEvents

    • T

    Parameters

    • event: P
    • listener: function
        • (...args: ListenerType<IContextElementEvents[P]>): void
        • Parameters

          • Rest ...args: ListenerType<IContextElementEvents[P]>

          Returns void

    Returns T

  • Parameters

    • event: typeof assignmentCompatibilityHack
    • listener: function
        • (...args: any[]): any
        • Parameters

          • Rest ...args: any[]

          Returns any

    Returns void

Optional removeStyle

  • removeStyle(property: string): void
  • Удаляет стиль из HTML элемента

    Parameters

    • property: string

      Название стиля, например: color

    Returns void

Optional setData

  • setData(data: any, throwOnError?: boolean): Promise<any>
  • Устанавливает данные элементу, в том числе, всем подэлементам. Если у элемента задано свойство 'bindingProperty', тогда будут установленны данные соответствующие этому свойству.

    ПРИМЕР

    export var dataElem: IDataElement = <IDataElement>{
        type: 'IDataElement',
        name: 'dataElement',
        bindingProperty: "firstName"
    }
    ...
    (async function setData(){
         var elem = AppManager.activeForm.getElement("dataElement");
         await elem.setData({firstName: "Иван"});//во внутреннем свойстве elem._data сохранены данные "Иван".
    })();
    
    внимание!

    Зарезервированный метод, доступный только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите этот метод в JSON объекте, ваше описание будет проигнорировано.

    Parameters

    • data: any

      Любые данные. Обычно передается JSON объект, который содержит свойство, определенное в свойстве 'bindingProperty' элемента. Если свойство 'bindingProperty' элемента не задано, то элементу устанавливается весь объект данных.

    • Optional throwOnError: boolean

      Если хотите выяснить, почему не устанавливаются данные, задайте значение true (используется для отладки). Необязательно.

    Returns Promise<any>

    Возвращаются данные, которые установлены элементу.

Optional stopEdit

  • stopEdit(): void
  • Останавливает редактирование элемента.

    внимание!

    Зарезервированный метод, доступный только в процессе выполнения (методах). Не указывайте его в описании элемента в JSON объекте. Если вы опишите этот метод в JSON объекте, ваше описание будет проигнорировано.

    Returns void

Generated using TypeDoc