@boristype/types
Version:
<h1 align="center">WT Types</h1> <div align="center"> Typescript типы для WebSoft HCM.
391 lines (334 loc) • 21.1 kB
TypeScript
/**
* Объект XmlFormElem соответствует элементу загруженной формы.
* Обычно используется для анализа содержимого формы.
*/
interface XmlFormElem {
AllowHide: unknown;
/**
* Возвращает список имен всех кастомных XML-атрибутов элемента формы в виде массива строк.
*/
AttrNames: string[];
/**
* Возвращает индекс текущего элемента формы внутри родительского элемента, начиная с 0.
* Если родительского элемента нет - возвращается ошибка.
*/
ChildIndex: number | never;
/**
* Возвращает значение атрибута COL-ALIGN, описанного в XMD-форме.
*/
ColAlign: string;
/**
* Возвращает значение атрибута COL-TITLE, описанного в XMD-форме.
*/
ColTitle: string;
/**
* Возвращает значение атрибута DEFAULT, описанного в XMD-форме.
* Атрибут доступен на запись.
*/
DefaultValue: string;
/**
* Возвращает значение атрибута EXP-MAX-LEN, описанного в XMD-форме.
*/
ExpMaxLen: number;
/**
* Возвращает значение атрибута EXPR, описанного в XMD-форме.
* Атрибут доступен на запись.
*/
Expr: string;
/**
* Возвращает значение атрибута EXPR-INIT, описанного в XMD-форме.
* Атрибут доступен на запись.
*/
ExprInit: string;
/**
* Возвращает исходное выражение, описанное в атрибуте FOREIGN-ARRAY.
* Исходное выражение восстанавливается из разобранного выражения,
* и из-за этого может несущественно отличаться от описанного в атрибуте FOREIGN-ARRAY.
* Например, могут быть утрачены пробелы и комментарии.
* Если атрибут FOREIGN-ARRAY в форме элемент не описан, возвращается ошибка.
* Атрибут доступен на запись.
*/
ForeignArrayExpr: string | never;
/**
* Позволяет установить заначение атрибута FT у элемента XMD-формы.
* Атрибут доступен только на запись.
*/
FtUseValue: unknown;
/**
* Возвращает true, если у элемента формы установлен атрибут HIDDEN="1".
*/
IsHidden: boolean;
/**
* Возвращает true, если элемент XMD-формы содержит атрибут INDEXED="1", и false в любом другом случае.
* Атрибут доступен на запись.
*/
IsIndexed: boolean;
/**
* Проверяет, является ли текущий элемент методом, или нет.
* Если является, возвращает true, если нет - false.
*/
IsMethod: boolean;
/**
* Проверяет, является ли элемент множественным, то есть содержит ли XMD-форма атрибут MULTIPLE="1".
* Если является, возвращает true, если нет - false.
* Атрибут доступен на запись.
*/
IsMultiple: boolean;
/**
* Возвращает true, если у элемента формы установлен атрибут NOT-NULL="1".
*/
IsNotNull: boolean;
/**
* Проверяет, содржит ли текущий элемент XMD-формы атрибут TEMP="1".
* Атрибут доступен на запись.
*/
IsTemp: boolean;
/**
* Возварщает имя элемента, описанное в XMD-форме.
* Атрибут доступен на запись, но эта возможность, как правило, не используется,
* так как элемент получает имя при создании, и потом нет смысла изменять имя элемента.
*/
Name: string;
/**
* Проверяет, содержит ли текущий элемент XMD-формы атрибут NULL-FALSE="1".
* Атрибут доступен на запись.
*/
NullFalse: boolean;
/**
* Возвращает родительский элемент формы по отношению к данному элементу формы.
* Для элементов формы верхнего уровня возвращает undefined.
*/
OptParent: unknown | undefined;
/**
* Возвращает исходное выражение, описанное в атрибуте PRIMARY-DISP-NAME.
* Исходное выражение восстанавливается из разобранного выражения.
* Если атрибут PRIMARY-DISP-NAME в форме элемент не описан, возвращается undefined.
*/
OptPrimaryDispName: string | undefined;
/**
* Возвращает родительский элемент формы по отношению к данному элементу формы.
* Для элементов формы верхнего уровня возвращает саму форму, для самой формы возвращает undefined.
*/
OptStrictParent: unknown | undefined;
/**
* Возвращает значение атрибута PRIMARY-KEY элемента формы.
*/
PrimaryKeyName: unknown;
/**
* Если это обычный элемент, возващает его тип.
* А если это метод, то возвращает то, что стоит в поле RESULT-DATA-TYPE.
*/
ResultDataType: unknown;
/**
* Возвращает описание местоположения элемента формы в исходном коде, например "x-app://rcr/vacancy.xmd, line 114".
* Обычно используется в отладочных целях, либо для выдачи сообщения об ошибке.
*/
SourceDesc: unknown;
/**
* Возвращает подтип для элемента формы типа "string".
* Возможные значения: "html", "binary", "code", "url". В остальных случаях возвращает пустую строку.
*/
SubType: "html" | "binary" | "code" | "url" | "";
/**
* Возвращает заголовок элемента XMD-формы, который был описан атрибутом TITLE.
* Атрибут доступен на запись.
*/
Title: string;
/**
* Возвращает корневой элемент XMD-формы.
* Если корневой элемент установить невозможно, возвращается ошибка.
*/
TopElem: XmlFormElem | never;
/**
* Возвращает тип элемента, который был описан в XMD-форме в атрибуте TYPE.
*/
Type: string;
/**
* Возвращает содержимое текущего элемента, включая дочерние элементы,
* если они есть, в виде строки в "каноническом" формате XML.
*/
Xml: string;
/**
* @deprecated
* Устаревший метод. Рекомендуется использовать {@link SetAttr}.
*/
AddAttr(): unknown;
/**
* Добавляет дочерний элемент формы и возвращает указатель на него.
* Используется для динамической генерации форм, например, в генераторе отчетов и видов.
* @param {string} name - Имя дочернего элемента.
* @param {string} type - Тип элемента. По умолчанию без типа.
*/
AddChild(name: string, type?: string): XmlFormElem;
/**
* Добавляет заранее созданный дочерний элемент формы в качестве дочернего элемента.
* Используется для динамической генерации форм, например, в генераторе отчетов и видов.
* Дочерний элемент может быть создан через через функцию {@link CreateFormElem} или метод {@link Clone}.
* @param {XmlFormElem} childElem - Дочерний элемент формы.
* Смотри также {@link InsertChildElem}.
*/
AddChildElem(childElem: XmlFormElem): unknown;
/**
* Возвращает дочерний элемент по имени.
* Если элемента с заданным именем нет, выдает ошибку.
* @param {string} name - Имя дочернего элемента.
* Смотрите также {@link OptChild}.
*/
Child(name: string | number): XmlFormElem | never;
/**
* Возвращает дочерний элемент по индексу.
* Если элемента с заданным именем нет, выдает ошибку.
* @overload
* @param {number} name - Индекс дочернего элемента.
* Смотрите также {@link OptChild}.
*/
Child(name: number): XmlFormElem | never;
/**
* Проверяет, существует ли дочерний элемент с заданым именем.
* @param {string} name - Имя элемента.
*/
ChildExists(name: string): boolean;
/**
* Создает клон текущего элемента формы и возвращает ссылку на него.
* Новый элемент не имеет родительского элемента.
* Используется для динамической генерации форм, например, в генераторе отчетов и видов.
*/
Clone(): XmlFormElem;
/**
* Удаляет элемент формы.
* Метод используется крайне редко, обычно в генераторах или редакторах форм.
*/
Delete(): unknown;
/**
* Удаляет дочерний элемент формы по порядковому индексу.
* Метод используется крайне редко, обычно в генераторах или редакторах форм.
* @param {number} index - Порядковый индекс дочернего элемента формы.
*/
DeleteChild(index: number): unknown;
/**
* Выполняет код, содержащийся в атрибуте элемента формы.
* В отличие от обычных функций {@link eval}, {@link ExtEval} и пр.,
* выполнение кода в атрибуте дает лучшую диагностику ошибок,
* поскольку вместо "Unknown source, line xxx" будет выдаваться сообщение с правильным источником исходного кода.
* @param {string} name - Имя атрибута. Если атрибут с данным именем отсутствует, возвращается ошибка.
* @param {unknown[]} objects - Массив объектов, формирумых окружение (по аналогии с конструкцией with{})
* Узкоспециализированный метод.
* Используется в автоматических генераторах экранных форм.
*/
EvalCodeAttr(name: string, objects: unknown[]): unknown | never;
/**
* Метод возвращает элемент формы вниз по иерархии с заданным путем относительно текущего элемента.
* Если элемент не найден, возвращает undefined.
* Если в аргументе path передать имя элемента (без "."), то метод будет работать также как {@link OptChild}.
* @param {string} path - Путь к элементу (через ".").
*/
EvalOptPath(path: string): XmlFormElem | never;
/**
* Возвращает внутренний (то есть ниже лежащий по иерархии относительно текущего элемента) элемент по заданному пути.
* Если путь неверный, возвращается ошибка.
* @param {string} path - Путь от текущего до целевого элемента, с разделением имен узлов точками.
*/
EvalPath(path: string): unknown;
/**
* Работает с только с дополнительными атрибутами элемента формы.
* Выводит значение дополнительного атрибута булевского типа, в том виде, как он был описан в XMD-форме.
*/
GetBoolAttr(): boolean;
/**
* Возвращает значение кастомного атрибута элемента формы.
* Значение возвращается в виде строки.
* Если атрибут с данным именем отсутствует, возвращает undefined.
* @param {string} name - Имя атрибута.
*/
GetOptAttr(name: string): unknown | undefined;
/**
* Метод возвращает значение кастомного булевого ("0" или "1") атрибута в элементе формы.
* Возвращаемое значение: true или false.
* Если атрибут отсутствует, функция возвращает undefined.
* @param {string} name - Имя атрибута.
*/
GetOptBoolAttr(name: string): boolean | undefined;
/**
* Возвращает значение кастомного атрибута элемента формы, обработанное по правилам подстановки языковых фраз.
* Значение возвращается в виде строки.
* Если атрибут с данным именем отсутствует, возвращает undefined.
* @param {string} name - Имя атрибута.
*/
GetOptUiAttr(name: string): boolean | undefined;
/**
* Возвращает значение кастомного атрибута элемента формы, содержащего url.
* Функция осуществляет проверку на формат url и, при необходимости,
* конвертацию относительного url в абсолютный, с учетом базового url формы.
* Если атрибут с данным именем отсутствует, возвращает undefined.
* @param {string} name - Имя атрибута.
*/
GetOptUrlAttr(name: string): boolean | undefined;
/**
* Используется при динамической генерации форм.
* Добавляет определенное количество дочерних элементов, описанных в элементе-образце.
* Выполняет "на лету" действие конструции INHERIT.
* При этом, если в форме методом Inherit изменяется элемент,
* от которого наследуются другие элементы при помощи конструкции INHERIT,
* то изменений в этих наследуемых элементах не происходит.
*/
Inherit(): XmlFormElem;
/**
* Добавляет дочерний элемент формы в заданную позицию и возвращает указатель на него.
* Используется для динамической генерации форм, например, в генераторе отчетов и видов.
* @param {string} name - Имя дочернего элемента.
* @param {string} type - Тип элемента.
* @param {number} index - Порядковый индекс дочернего элемента.
*/
InsertChild(name: string, type: string, index: number): unknown;
/**
* Добавляет заранее созданный дочерний элемент формы в заданную позицию.
* Используется для динамической генерации форм, например, в генераторе отчетов и видов.
* Дочерний элемент может быть создан через через функцию {@link CreateFormElem} или метод {@link Clone}.
* @param {XmlFormElem} child - Дочерний элемент формы.
* @param {number} index - Порядковый индекс дочернего элемента.
* Смотри также: {@link AddChild}, {@link AddChildElem}.
*/
InsertChildElem(child: XmlFormElem, index: number): unknown;
/**
* Проверяет, является ли текущий элемент формы нижестоящим по иерархии по отношению к другому элементу формы.
* @param {XmlFormElem} el - Вышестоящий элемент формы.
*/
IsDescendantOf(el: XmlFormElem): boolean;
/**
* В качестве аргумента этот метод принимает такой же элемент типа {@link XmlFormElem}, и далее проверяет,
* является ли текущий элемент его дочерним элементом (через один или несколько уровней),
* и стоит ли на одном или нескольких уровнях конструкция MULTIPLE.
* Редко используемый метод.
* @param {XmlFormElem} el - Элемент.
*/
IsMultipleRecChild(el: XmlFormElem): boolean;
/**
* Добавляет к данному элементу дочерние элементы, которые были описаны в виде строки в "каноническом" виде XML.
* @param {string} xml - Строка с описанием элементов XML.
*/
LoadChildTags(xml: string): XmlFormElem;
/**
* Возвращает дочерний элемент по имени.
* Если элемента с заданным именем нет, возвращает undefined.
* @param {string} name - Имя дочернего элемента.
*/
OptChild(name: string): XmlFormElem | undefined;
/**
* Проверяет существует ли вложенный (то есть ниже лежащий по иерархии относительно текущего элемента)
* элемент по заданному пути относительно текущего.
* @param {string} path - Путь от текущего до целевого элемента, с разделением имен узлов точками.
*/
PathExists(path: string): boolean;
/**
* Устанавливает значение кастомного атрибута у элемента формы.
* @param {string} name - Имя атрибута.
* @param {T} value - Значение атрибута.
*/
SetAttr<T>(name: string, value: T): unknown;
/**
* Переставляет данный элемент формы на другую позицию среди дочерних элементов его родительского элемента.
* Метод используется крайне редко, обычно в генераторах или редакторах форм.
* @param {number} index - Новый порядковый индекс элемента.
*/
SetChildIndex(index: number): unknown;
}